@openmrs/esm-stock-management-app 3.0.1-pre.879 → 3.0.1-pre.889

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/10.js +1 -1
  2. package/dist/119.js +1 -1
  3. package/dist/152.js +1 -1
  4. package/dist/172.js +1 -1
  5. package/dist/20.js +1 -1
  6. package/dist/235.js +1 -1
  7. package/dist/27.js +1 -1
  8. package/dist/27.js.map +1 -1
  9. package/dist/290.js +1 -1
  10. package/dist/291.js +1 -0
  11. package/dist/291.js.map +1 -0
  12. package/dist/299.js +1 -0
  13. package/dist/299.js.map +1 -0
  14. package/dist/33.js +1 -1
  15. package/dist/467.js +1 -1
  16. package/dist/574.js +1 -1
  17. package/dist/642.js +1 -1
  18. package/dist/675.js +1 -1
  19. package/dist/703.js +1 -1
  20. package/dist/734.js +2 -0
  21. package/dist/{842.js.map → 734.js.map} +1 -1
  22. package/dist/793.js +1 -1
  23. package/dist/793.js.map +1 -1
  24. package/dist/93.js +1 -1
  25. package/dist/main.js +1 -1
  26. package/dist/main.js.map +1 -1
  27. package/dist/openmrs-esm-stock-management-app.js +1 -1
  28. package/dist/openmrs-esm-stock-management-app.js.buildmanifest.json +105 -105
  29. package/dist/openmrs-esm-stock-management-app.js.map +1 -1
  30. package/dist/routes.json +1 -1
  31. package/package.json +1 -1
  32. package/src/dashboard/home-dashboard.component.tsx +8 -12
  33. package/src/index.ts +2 -2
  34. package/src/routes.json +2 -2
  35. package/src/stock-items/add-stock-item/stock-item-details/stock-item-details.component.tsx +1 -1
  36. package/src/stock-management-header/stock-management-header.component.tsx +11 -12
  37. package/src/stock-management-header/stock-management-header.scss +6 -25
  38. package/src/stock-operations/stock-operation-actions.component.tsx +8 -8
  39. package/src/stock-operations/stock-operation.utils.tsx +3 -3
  40. package/src/stock-operations/stock-operations-forms/step2.test.tsx +0 -4
  41. package/src/stock-operations/stock-operations-forms/step3.test.tsx +0 -4
  42. package/src/stock-operations/stock-operations-forms/steps/stock-operation-submission-form-step.component.tsx +5 -5
  43. package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-approve-button.component.tsx +1 -1
  44. package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-approve-dispatch-button.component.tsx +1 -1
  45. package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-cancel-button.component.tsx +1 -1
  46. package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-complete-button.component.tsx +1 -1
  47. package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-completed-dispatch-button.component.tsx +1 -1
  48. package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-reject-button.component.tsx +1 -1
  49. package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-return-button.component.tsx +1 -1
  50. package/src/stock-operations/{stock-operations-dialog/stock-operations-dialog.component.tsx → stock-operations-modal/stock-operations.modal.tsx} +6 -12
  51. package/src/stock-sources/add-stock-sources/add-stock-sources.test.tsx +2 -2
  52. package/translations/en.json +0 -3
  53. package/dist/14.js +0 -1
  54. package/dist/14.js.map +0 -1
  55. package/dist/606.js +0 -1
  56. package/dist/606.js.map +0 -1
  57. package/dist/842.js +0 -2
  58. package/src/core/components/overlay/hook.ts +0 -47
  59. package/src/core/components/overlay/overlay.component.tsx +0 -43
  60. package/src/core/components/overlay/overlay.scss +0 -98
  61. package/src/stock-management-header/stock-management-Illustration.tsx +0 -30
  62. /package/dist/{842.js.LICENSE.txt → 734.js.LICENSE.txt} +0 -0
  63. /package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-issue-stock-button.component.tsx +0 -0
  64. /package/src/stock-operations/{stock-operations-dialog → stock-operations-modal}/stock-operations-print-button.component.tsx +0 -0
  65. /package/src/stock-operations/{stock-operations-dialog/stock-operations-dialog.scss → stock-operations-modal/stock-operations.scss} +0 -0
@@ -1,9 +1,14 @@
1
- import { formatDate, useSession } from '@openmrs/esm-framework';
2
1
  import React from 'react';
3
- import styles from './stock-management-header.scss';
4
- import StockManagementIllustration from './stock-management-Illustration';
5
2
  import { Calendar, Location } from '@carbon/react/icons';
6
3
  import { useTranslation } from 'react-i18next';
4
+ import {
5
+ formatDate,
6
+ PageHeader,
7
+ PageHeaderContent,
8
+ StockManagementPictogram,
9
+ useSession,
10
+ } from '@openmrs/esm-framework';
11
+ import styles from './stock-management-header.scss';
7
12
 
8
13
  export const StockManagementHeader: React.FC = () => {
9
14
  const { t } = useTranslation();
@@ -11,14 +16,8 @@ export const StockManagementHeader: React.FC = () => {
11
16
  const userLocation = userSession?.sessionLocation?.display;
12
17
 
13
18
  return (
14
- <div className={styles.header}>
15
- <div className={styles['left-justified-items']}>
16
- <StockManagementIllustration />
17
- <div className={styles['page-labels']}>
18
- <p>{t('home', 'Home')}</p>
19
- <p className={styles['page-name']}>{t('stockManagement', 'Stock Management')}</p>
20
- </div>
21
- </div>
19
+ <PageHeader className={styles.header} data-testid="stock-management-header">
20
+ <PageHeaderContent illustration={<StockManagementPictogram />} title={t('stockManagement', 'Stock management')} />
22
21
  <div className={styles['right-justified-items']}>
23
22
  <div className={styles['date-and-location']}>
24
23
  <Location size={16} />
@@ -28,6 +27,6 @@ export const StockManagementHeader: React.FC = () => {
28
27
  <span className={styles.value}>{formatDate(new Date(), { mode: 'standard' })}</span>
29
28
  </div>
30
29
  </div>
31
- </div>
30
+ </PageHeader>
32
31
  );
33
32
  };
@@ -4,38 +4,23 @@
4
4
  @use '@openmrs/esm-styleguide/src/vars' as *;
5
5
 
6
6
  .header {
7
- @include type.type-style('body-compact-02');
8
- color: colors.$gray-70;
9
- height: layout.$spacing-12;
10
7
  background-color: $ui-02;
8
+ border: 1px solid $ui-03;
9
+ border-left: 0;
11
10
  display: flex;
12
- padding-left: 8px;
13
11
  justify-content: space-between;
14
- }
15
-
16
- .left-justified-items {
17
- display: flex;
18
- flex-direction: row;
19
12
  align-items: center;
20
- cursor: pointer;
13
+ padding-right: layout.$spacing-03;
21
14
  }
22
15
 
23
16
  .right-justified-items {
24
17
  @include type.type-style('body-compact-02');
25
18
  color: colors.$gray-70;
26
- margin: 0.5rem;
27
- }
28
-
29
- .page-name {
30
- @include type.type-style('heading-04');
31
- }
32
-
33
- .page-labels {
34
- margin: 1rem;
19
+ margin: layout.$spacing-03;
35
20
  }
36
21
 
37
22
  .middot {
38
- margin: 0 0.5rem;
23
+ margin: 0 layout.$spacing-03;
39
24
  }
40
25
 
41
26
  .date-and-location {
@@ -46,11 +31,7 @@
46
31
  }
47
32
 
48
33
  .value {
49
- margin-left: 0.25rem;
50
- }
51
-
52
- .middot {
53
- margin: 0 0.5rem;
34
+ margin-left: layout.$spacing-02;
54
35
  }
55
36
 
56
37
  .view {
@@ -6,14 +6,14 @@ import {
6
6
  type StockOperationType,
7
7
  StockOperationTypeHasPrint,
8
8
  } from '../core/api/types/stockOperation/StockOperationType';
9
- import StockOperationApprovalButton from './stock-operations-dialog/stock-operations-approve-button.component';
10
- import StockOperationApproveDispatchButton from './stock-operations-dialog/stock-operations-approve-dispatch-button.component';
11
- import StockOperationCancelButton from './stock-operations-dialog/stock-operations-cancel-button.component';
12
- import StockOperationCompleteDispatchButton from './stock-operations-dialog/stock-operations-completed-dispatch-button.component';
13
- import StockOperationIssueStockButton from './stock-operations-dialog/stock-operations-issue-stock-button.component';
14
- import StockOperationPrintButton from './stock-operations-dialog/stock-operations-print-button.component';
15
- import StockOperationRejectButton from './stock-operations-dialog/stock-operations-reject-button.component';
16
- import StockOperationReturnButton from './stock-operations-dialog/stock-operations-return-button.component';
9
+ import StockOperationApprovalButton from './stock-operations-modal/stock-operations-approve-button.component';
10
+ import StockOperationApproveDispatchButton from './stock-operations-modal/stock-operations-approve-dispatch-button.component';
11
+ import StockOperationCancelButton from './stock-operations-modal/stock-operations-cancel-button.component';
12
+ import StockOperationCompleteDispatchButton from './stock-operations-modal/stock-operations-completed-dispatch-button.component';
13
+ import StockOperationIssueStockButton from './stock-operations-modal/stock-operations-issue-stock-button.component';
14
+ import StockOperationPrintButton from './stock-operations-modal/stock-operations-print-button.component';
15
+ import StockOperationRejectButton from './stock-operations-modal/stock-operations-reject-button.component';
16
+ import StockOperationReturnButton from './stock-operations-modal/stock-operations-return-button.component';
17
17
  import useOperationTypePermisions from './stock-operations-forms/hooks/useOperationTypePermisions';
18
18
  import styles from './stock-operations-table.scss';
19
19
 
@@ -8,7 +8,7 @@ export const launchStockoperationAddOrEditWorkSpace = (
8
8
  t: TFunction,
9
9
  operationType: StockOperationType,
10
10
  stockOperation?: StockOperationDTO,
11
- stockRequisitionUuid?: string, // Only suplied on stock issue (when overlay is launched for stock issue)
11
+ stockRequisitionUuid?: string, // Only supplied on stock issue (when workspace is launched for stock issue)
12
12
  ) => {
13
13
  launchWorkspace('stock-operation-form-workspace', {
14
14
  workspaceTitle: stockOperation
@@ -32,8 +32,8 @@ export function getStockOperationUniqueId() {
32
32
  return `${new Date().getTime()}-${Math.random().toString(36).substring(2, 16)}`;
33
33
  }
34
34
 
35
- export const showActionDialogButton = (title: string, requireReason: boolean, operation: StockOperationDTO) => {
36
- const dispose = showModal('stock-operation-dialog', {
35
+ export const launchStockOperationsModal = (title: string, requireReason: boolean, operation: StockOperationDTO) => {
36
+ const dispose = showModal('stock-operations-modal', {
37
37
  title: title,
38
38
  operation: operation,
39
39
  requireReason: requireReason,
@@ -48,10 +48,6 @@ jest.mock('../stock-operations.resource', () => ({
48
48
  }),
49
49
  }));
50
50
 
51
- jest.mock('../../core/components/overlay/hook', () => ({
52
- closeOverlay: jest.fn(),
53
- }));
54
-
55
51
  jest.mock('../../stock-items/stock-items.resource', () => ({
56
52
  useStockItem: jest.fn().mockReturnValue({
57
53
  isLoading: false,
@@ -40,10 +40,6 @@ jest.mock('../stock-operations.resource', () => ({
40
40
  }),
41
41
  }));
42
42
 
43
- jest.mock('../../core/components/overlay/hook', () => ({
44
- closeOverlay: jest.fn(),
45
- }));
46
-
47
43
  jest.mock('../../stock-items/stock-items.resource', () => ({
48
44
  useStockItem: jest.fn(),
49
45
  useStockItems: jest.fn().mockReturnValue({
@@ -9,12 +9,12 @@ import { extractErrorMessagesFromResponse } from '../../../constants';
9
9
  import { handleMutate } from '../../../utils';
10
10
  import { OperationType, type StockOperationType } from '../../../core/api/types/stockOperation/StockOperationType';
11
11
  import { otherUser } from '../../../core/utils/utils';
12
- import { showActionDialogButton } from '../../stock-operation.utils';
12
+ import { launchStockOperationsModal } from '../../stock-operation.utils';
13
13
  import { type StockOperationDTO } from '../../../core/api/types/stockOperation/StockOperationDTO';
14
14
  import { type StockOperationItemDTO } from '../../../core/api/types/stockOperation/StockOperationItemDTO';
15
15
  import { type StockOperationItemDtoSchema } from '../../validation-schema';
16
- import styles from '../stock-operation-form.scss';
17
16
  import useOperationTypePermisions from '../hooks/useOperationTypePermisions';
17
+ import styles from '../stock-operation-form.scss';
18
18
 
19
19
  type StockOperationSubmissionFormStepProps = {
20
20
  onPrevious?: () => void;
@@ -125,17 +125,17 @@ const StockOperationSubmissionFormStep: React.FC<StockOperationSubmissionFormSte
125
125
 
126
126
  const handleComplete = useCallback(() => {
127
127
  handleSave().then((operation) => {
128
- showActionDialogButton('Complete', false, { ...operation, status: 'COMPLETED' });
128
+ launchStockOperationsModal('Complete', false, { ...operation, status: 'COMPLETED' });
129
129
  });
130
130
  }, [handleSave]);
131
131
  const handleSubmitForReview = useCallback(() => {
132
132
  handleSave().then((operation) => {
133
- showActionDialogButton('Submit', false, { ...operation, status: 'SUBMITTED' });
133
+ launchStockOperationsModal('Submit', false, { ...operation, status: 'SUBMITTED' });
134
134
  });
135
135
  }, [handleSave]);
136
136
  const handleDispatch = useCallback(() => {
137
137
  handleSave().then((operation) => {
138
- showActionDialogButton('Dispatch', false, { ...operation, status: 'DISPATCHED' });
138
+ launchStockOperationsModal('Dispatch', false, { ...operation, status: 'DISPATCHED' });
139
139
  });
140
140
  }, [handleSave]);
141
141
 
@@ -13,7 +13,7 @@ interface StockOperationApprovalButtonProps {
13
13
  const StockOperationApprovalButton: React.FC<StockOperationApprovalButtonProps> = ({ operation }) => {
14
14
  const { t } = useTranslation();
15
15
  const launchApprovalModal = useCallback(() => {
16
- const dispose = showModal('stock-operation-dialog', {
16
+ const dispose = showModal('stock-operations-modal', {
17
17
  title: 'Approve',
18
18
  operation: operation,
19
19
  requireReason: false,
@@ -13,7 +13,7 @@ interface StockOperationApproveDispatchButtonProps {
13
13
  const StockOperationApproveDispatchButton: React.FC<StockOperationApproveDispatchButtonProps> = ({ operation }) => {
14
14
  const { t } = useTranslation();
15
15
  const launchApproveDispatchModal = useCallback(() => {
16
- const dispose = showModal('stock-operation-dialog', {
16
+ const dispose = showModal('stock-operations-modal', {
17
17
  title: 'Dispatch',
18
18
  operation: operation,
19
19
  requireReason: false,
@@ -13,7 +13,7 @@ interface StockOperationCancelButtonProps {
13
13
  const StockOperationCancelButton: React.FC<StockOperationCancelButtonProps> = ({ operation }) => {
14
14
  const { t } = useTranslation();
15
15
  const launchCancelModal = useCallback(() => {
16
- const dispose = showModal('stock-operation-dialog', {
16
+ const dispose = showModal('stock-operations-modal', {
17
17
  title: 'Cancel',
18
18
  operation: operation,
19
19
  requireReason: true,
@@ -14,7 +14,7 @@ interface StockOperationCompleteButtonProps {
14
14
  const StockOperationCompleteButton: React.FC<StockOperationCompleteButtonProps> = ({ operation, reason }) => {
15
15
  const { t } = useTranslation();
16
16
  const launchCompleteModal = useCallback(() => {
17
- const dispose = showModal('stock-operation-dialog', {
17
+ const dispose = showModal('stock-operations-modal', {
18
18
  title: 'Complete',
19
19
  operation: operation,
20
20
  requireReason: reason,
@@ -17,7 +17,7 @@ const StockOperationCompleteDispatchButton: React.FC<StockOperationCompleteDispa
17
17
  }) => {
18
18
  const { t } = useTranslation();
19
19
  const launchcompletedDispatchModal = useCallback(() => {
20
- const dispose = showModal('stock-operation-dialog', {
20
+ const dispose = showModal('stock-operations-modal', {
21
21
  title: 'Complete Dispatch',
22
22
  operation: operation,
23
23
  requireReason: reason,
@@ -13,7 +13,7 @@ interface StockOperationRejectButtonProps {
13
13
  const StockOperationRejectButton: React.FC<StockOperationRejectButtonProps> = ({ operation }) => {
14
14
  const { t } = useTranslation();
15
15
  const launchRejectModal = useCallback(() => {
16
- const dispose = showModal('stock-operation-dialog', {
16
+ const dispose = showModal('stock-operations-modal', {
17
17
  title: 'Reject',
18
18
  operation: operation,
19
19
  requireReason: true,
@@ -13,7 +13,7 @@ interface StockOperationReturnButtonProps {
13
13
  const StockOperationReturnButton: React.FC<StockOperationReturnButtonProps> = ({ operation }) => {
14
14
  const { t } = useTranslation();
15
15
  const launchReturnModal = useCallback(() => {
16
- const dispose = showModal('stock-operation-dialog', {
16
+ const dispose = showModal('stock-operations-modal', {
17
17
  title: 'Return',
18
18
  operation: operation,
19
19
  requireReason: true,
@@ -1,32 +1,28 @@
1
1
  import React, { useState } from 'react';
2
2
  import { useTranslation } from 'react-i18next';
3
+ import { Button, Form, InlineLoading, ModalBody, ModalFooter, ModalHeader, TextArea } from '@carbon/react';
4
+ import { getCoreTranslation, restBaseUrl, showSnackbar } from '@openmrs/esm-framework';
3
5
  import { type StockOperationDTO } from '../../core/api/types/stockOperation/StockOperationDTO';
4
- import { Button, Form, ModalBody, ModalFooter, ModalHeader, TextArea, InlineLoading } from '@carbon/react';
5
- import styles from './stock-operations-dialog.scss';
6
6
  import {
7
7
  type StopOperationAction,
8
8
  type StopOperationActionType,
9
9
  } from '../../core/api/types/stockOperation/StockOperationAction';
10
10
  import { executeStockOperationAction } from '../stock-operations.resource';
11
- import { getCoreTranslation, restBaseUrl, showSnackbar } from '@openmrs/esm-framework';
12
- import { closeOverlay } from '../../core/components/overlay/hook';
13
11
  import { extractErrorMessagesFromResponse } from '../../constants';
14
12
  import { handleMutate } from '../../utils';
13
+ import styles from './stock-operations.scss';
15
14
 
16
- interface StockOperationDialogProps {
15
+ interface StockOperationsModalProps {
17
16
  title: string;
18
17
  requireReason: boolean;
19
18
  operation: StockOperationDTO;
20
19
  closeModal: () => void;
21
20
  }
22
21
 
23
- const StockOperationDialog: React.FC<StockOperationDialogProps> = ({ title, requireReason, operation, closeModal }) => {
22
+ const StockOperationsModal: React.FC<StockOperationsModalProps> = ({ title, requireReason, operation, closeModal }) => {
24
23
  const confirmType = title.toLocaleLowerCase().trim();
25
-
26
24
  const { t } = useTranslation();
27
-
28
25
  const [notes, setNotes] = useState('');
29
-
30
26
  const [isApproving, setIsApproving] = useState(false);
31
27
 
32
28
  const handleClick = async (event) => {
@@ -88,7 +84,6 @@ const StockOperationDialog: React.FC<StockOperationDialogProps> = ({ title, requ
88
84
  kind: 'success',
89
85
  }),
90
86
  closeModal();
91
- closeOverlay();
92
87
  handleMutate(`${restBaseUrl}/stockmanagement/stockoperation`);
93
88
  },
94
89
  (err) => {
@@ -103,7 +98,6 @@ const StockOperationDialog: React.FC<StockOperationDialogProps> = ({ title, requ
103
98
  kind: 'error',
104
99
  }),
105
100
  closeModal();
106
- closeOverlay();
107
101
  },
108
102
  );
109
103
  };
@@ -144,4 +138,4 @@ const StockOperationDialog: React.FC<StockOperationDialogProps> = ({ title, requ
144
138
  );
145
139
  };
146
140
 
147
- export default StockOperationDialog;
141
+ export default StockOperationsModal;
@@ -149,7 +149,7 @@ describe('StockSourcesAddOrUpdate', () => {
149
149
  await user.click(screen.getByText('Save'));
150
150
  });
151
151
 
152
- it('shows success message and closes overlay on successful submission', async () => {
152
+ it('shows success message and closes the workspace on successful submission', async () => {
153
153
  const user = userEvent.setup();
154
154
  mockCreateOrUpdateStockSource.mockResolvedValue({
155
155
  data: {},
@@ -186,7 +186,7 @@ describe('StockSourcesAddOrUpdate', () => {
186
186
  await user.click(screen.getByText(/save/i));
187
187
  });
188
188
 
189
- it('closes overlay when cancel button is clicked', async () => {
189
+ it('closes workspace when cancel button is clicked', async () => {
190
190
  const user = userEvent.setup();
191
191
  render(
192
192
  <StockSourcesAddOrUpdate
@@ -30,7 +30,6 @@
30
30
  "BatchJobSuccess": "Batch job created successfully",
31
31
  "batchNo": "Batch No",
32
32
  "batchNumber": "Batch Number",
33
- "batchNumberAlreadyUsed": "Batch number already used",
34
33
  "bincard": "Stock Card",
35
34
  "by": "By",
36
35
  "cancel": "Cancel",
@@ -142,7 +141,6 @@
142
141
  "generatedMessage": "The card has been electronically generated and is a valid document. It was created by {{userName}} on {{date}}",
143
142
  "genericName": "Generic Name",
144
143
  "hasExpiration": "Does the item expire?",
145
- "home": "Home",
146
144
  "import": "Import",
147
145
  "importStockItems": "Import Stock Items",
148
146
  "in6Months": "In 6 months",
@@ -329,7 +327,6 @@
329
327
  "submittingForReview": "Submitting for review",
330
328
  "success": "Success",
331
329
  "successfullysaved": "You have successfully saved user role scope",
332
- "tabletOverlay": "Tablet overlay",
333
330
  "tags": "Tags",
334
331
  "timeTaken": "Time Taken",
335
332
  "to": "To",