@openmrs/esm-stock-management-app 3.3.1 → 3.3.2-pre.12

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 (116) hide show
  1. package/dist/openmrs-esm-stock-management-app.js +1 -1
  2. package/dist/openmrs-esm-stock-management-app.js.map +1 -1
  3. package/dist/routes.json +1 -1
  4. package/package.json +3 -2
  5. package/coverage/__mocks__/index.html +0 -161
  6. package/coverage/__mocks__/index.ts.html +0 -91
  7. package/coverage/__mocks__/operation-type.mock.ts.html +0 -1681
  8. package/coverage/__mocks__/react-i18next.js.html +0 -259
  9. package/coverage/__mocks__/workspace2-props.mock.ts.html +0 -145
  10. package/coverage/base.css +0 -224
  11. package/coverage/block-navigation.js +0 -87
  12. package/coverage/clover.xml +0 -1659
  13. package/coverage/coverage-final.json +0 -69
  14. package/coverage/favicon.png +0 -0
  15. package/coverage/index.html +0 -611
  16. package/coverage/prettify.css +0 -1
  17. package/coverage/prettify.js +0 -2
  18. package/coverage/sort-arrow-sprite.png +0 -0
  19. package/coverage/sorter.js +0 -210
  20. package/coverage/src/constants.ts.html +0 -598
  21. package/coverage/src/core/api/api.ts.html +0 -181
  22. package/coverage/src/core/api/index.html +0 -116
  23. package/coverage/src/core/api/types/BatchJob.ts.html +0 -415
  24. package/coverage/src/core/api/types/index.html +0 -116
  25. package/coverage/src/core/api/types/stockOperation/StockOperationStatus.ts.html +0 -139
  26. package/coverage/src/core/api/types/stockOperation/StockOperationType.ts.html +0 -460
  27. package/coverage/src/core/api/types/stockOperation/index.html +0 -131
  28. package/coverage/src/core/components/carbon/controlled-number-input.component.tsx.html +0 -226
  29. package/coverage/src/core/components/carbon/controlled-radio-button-group.component.tsx.html +0 -253
  30. package/coverage/src/core/components/carbon/controlled-text-input.component.tsx.html +0 -202
  31. package/coverage/src/core/components/carbon/index.html +0 -146
  32. package/coverage/src/core/hooks/debounce-hook.ts.html +0 -181
  33. package/coverage/src/core/hooks/index.html +0 -116
  34. package/coverage/src/core/utils/datetimeUtils.ts.html +0 -289
  35. package/coverage/src/core/utils/index.html +0 -131
  36. package/coverage/src/core/utils/utils.ts.html +0 -382
  37. package/coverage/src/index.html +0 -131
  38. package/coverage/src/stock-items/add-bulk-stock-item/add-stock-items-bulk-import-action-button.component.tsx.html +0 -151
  39. package/coverage/src/stock-items/add-bulk-stock-item/index.html +0 -131
  40. package/coverage/src/stock-items/add-bulk-stock-item/stock-items-bulk-import.modal.tsx.html +0 -340
  41. package/coverage/src/stock-items/add-stock-item/add-stock-action-button.component.tsx.html +0 -145
  42. package/coverage/src/stock-items/add-stock-item/add-stock-item.component.tsx.html +0 -376
  43. package/coverage/src/stock-items/add-stock-item/batch-information/batch-information.resource.ts.html +0 -262
  44. package/coverage/src/stock-items/add-stock-item/batch-information/index.html +0 -116
  45. package/coverage/src/stock-items/add-stock-item/concepts-selector/concepts-selector.component.tsx.html +0 -301
  46. package/coverage/src/stock-items/add-stock-item/concepts-selector/index.html +0 -116
  47. package/coverage/src/stock-items/add-stock-item/drug-selector/drug-selector.component.tsx.html +0 -454
  48. package/coverage/src/stock-items/add-stock-item/drug-selector/index.html +0 -116
  49. package/coverage/src/stock-items/add-stock-item/index.html +0 -131
  50. package/coverage/src/stock-items/add-stock-item/stock-item-category-selector/index.html +0 -116
  51. package/coverage/src/stock-items/add-stock-item/stock-item-category-selector/stock-item-category-selector.component.tsx.html +0 -319
  52. package/coverage/src/stock-items/add-stock-item/stock-item-details/index.html +0 -131
  53. package/coverage/src/stock-items/add-stock-item/stock-item-details/stock-item-details.component.tsx.html +0 -862
  54. package/coverage/src/stock-items/add-stock-item/stock-item-details/stock-item-details.resource.ts.html +0 -142
  55. package/coverage/src/stock-items/components/filter-stock-items/filter-stock-items.component.tsx.html +0 -166
  56. package/coverage/src/stock-items/components/filter-stock-items/index.html +0 -116
  57. package/coverage/src/stock-items/edit-stock-item/edit-stock-item-action-menu.component.tsx.html +0 -169
  58. package/coverage/src/stock-items/edit-stock-item/index.html +0 -116
  59. package/coverage/src/stock-items/index.html +0 -161
  60. package/coverage/src/stock-items/stock-item.utils.tsx.html +0 -103
  61. package/coverage/src/stock-items/stock-items-table.component.tsx.html +0 -910
  62. package/coverage/src/stock-items/stock-items.resource.ts.html +0 -1342
  63. package/coverage/src/stock-items/validationSchema.ts.html +0 -325
  64. package/coverage/src/stock-locations/add-location.modal.tsx.html +0 -289
  65. package/coverage/src/stock-locations/index.html +0 -146
  66. package/coverage/src/stock-locations/location-admin-form.component.tsx.html +0 -574
  67. package/coverage/src/stock-locations/stock-locations-table.resource.ts.html +0 -370
  68. package/coverage/src/stock-lookups/index.html +0 -116
  69. package/coverage/src/stock-lookups/stock-lookups.resource.ts.html +0 -997
  70. package/coverage/src/stock-operations/index.html +0 -131
  71. package/coverage/src/stock-operations/stock-operation.utils.tsx.html +0 -184
  72. package/coverage/src/stock-operations/stock-operations-forms/hooks/index.html +0 -161
  73. package/coverage/src/stock-operations/stock-operations-forms/hooks/useFilterableStockItems.ts.html +0 -211
  74. package/coverage/src/stock-operations/stock-operations-forms/hooks/useOperationTypePermisions.ts.html +0 -172
  75. package/coverage/src/stock-operations/stock-operations-forms/hooks/useSearchUser.ts.html +0 -226
  76. package/coverage/src/stock-operations/stock-operations-forms/hooks/useStockItemBatchNumbers.ts.html +0 -208
  77. package/coverage/src/stock-operations/stock-operations-forms/index.html +0 -116
  78. package/coverage/src/stock-operations/stock-operations-forms/input-components/batch-no-selector.component.tsx.html +0 -439
  79. package/coverage/src/stock-operations/stock-operations-forms/input-components/index.html +0 -176
  80. package/coverage/src/stock-operations/stock-operations-forms/input-components/quantity-uom-selector.component.tsx.html +0 -259
  81. package/coverage/src/stock-operations/stock-operations-forms/input-components/stock-item-search.component.tsx.html +0 -319
  82. package/coverage/src/stock-operations/stock-operations-forms/input-components/stock-operation-reason-selector.component.tsx.html +0 -286
  83. package/coverage/src/stock-operations/stock-operations-forms/input-components/users-selector.component.tsx.html +0 -412
  84. package/coverage/src/stock-operations/stock-operations-forms/steps/base-operation-details-form-step.tsx.html +0 -868
  85. package/coverage/src/stock-operations/stock-operations-forms/steps/index.html +0 -236
  86. package/coverage/src/stock-operations/stock-operations-forms/steps/quantity-uom-cell.component.tsx.html +0 -184
  87. package/coverage/src/stock-operations/stock-operations-forms/steps/received-items.component.tsx.html +0 -433
  88. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-availability-cell.component.tsx.html +0 -238
  89. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-item-batch-no-cell.component.tsx.html +0 -205
  90. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-item-cell.component.tsx.html +0 -232
  91. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-item-expiry-cell.component.tsx.html +0 -208
  92. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.component.tsx.html +0 -910
  93. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-submission-form-step.component.tsx.html +0 -850
  94. package/coverage/src/stock-operations/stock-operations-forms/stock-item-form/index.html +0 -116
  95. package/coverage/src/stock-operations/stock-operations-forms/stock-item-form/stock-item-form.workspace.tsx.html +0 -781
  96. package/coverage/src/stock-operations/stock-operations-forms/stock-operation-form.component.tsx.html +0 -973
  97. package/coverage/src/stock-operations/stock-operations-forms/stock-operation-stepper/index.html +0 -116
  98. package/coverage/src/stock-operations/stock-operations-forms/stock-operation-stepper/stock-operation-stepper.component.tsx.html +0 -238
  99. package/coverage/src/stock-operations/validation-schema.ts.html +0 -847
  100. package/coverage/src/stock-reports/report-list/index.html +0 -116
  101. package/coverage/src/stock-reports/report-list/stock-report-status.utils.ts.html +0 -130
  102. package/coverage/src/stock-sources/add-stock-source-button.component.tsx.html +0 -145
  103. package/coverage/src/stock-sources/add-stock-sources/add-stock-sources.workspace.tsx.html +0 -550
  104. package/coverage/src/stock-sources/add-stock-sources/index.html +0 -116
  105. package/coverage/src/stock-sources/edit-stock-source/edit-stock-source.component.tsx.html +0 -175
  106. package/coverage/src/stock-sources/edit-stock-source/index.html +0 -116
  107. package/coverage/src/stock-sources/index.html +0 -146
  108. package/coverage/src/stock-sources/stock-sources-delete/index.html +0 -116
  109. package/coverage/src/stock-sources/stock-sources-delete/stock-sources-delete.component.tsx.html +0 -277
  110. package/coverage/src/stock-sources/stock-sources-filter/index.html +0 -116
  111. package/coverage/src/stock-sources/stock-sources-filter/stock-sources-filter.component.tsx.html +0 -235
  112. package/coverage/src/stock-sources/stock-sources-items-table.component.tsx.html +0 -661
  113. package/coverage/src/stock-sources/stock-sources.resource.ts.html +0 -295
  114. package/coverage/src/stock-user-role-scopes/delete-stock-user-scope.modal.tsx.html +0 -214
  115. package/coverage/src/stock-user-role-scopes/index.html +0 -116
  116. package/coverage/src/utils.ts.html +0 -133
@@ -1,910 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.component.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/stock-operations/stock-operations-forms/steps</a> stock-operation-items-form-step.component.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">89.28% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>25/28</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">65.71% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>23/35</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">84.61% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>11/13</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">89.28% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>25/28</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-yes">3x</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">13x</span>
386
- <span class="cline-any cline-yes">13x</span>
387
- <span class="cline-any cline-yes">13x</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-yes">13x</span>
390
- <span class="cline-any cline-yes">13x</span>
391
- <span class="cline-any cline-yes">13x</span>
392
- <span class="cline-any cline-yes">11x</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">13x</span>
450
- <span class="cline-any cline-yes">11x</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-yes">1x</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-yes">1x</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-no">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-no">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-yes">13x</span>
520
- <span class="cline-any cline-yes">6x</span>
521
- <span class="cline-any cline-yes">6x</span>
522
- <span class="cline-any cline-yes">6x</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-yes">13x</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">13x</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-yes">1x</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-yes">22x</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-yes">172x</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">172x</span>
570
- <span class="cline-any cline-yes">172x</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-yes">2x</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-yes">16x</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useId, useMemo } from 'react';
617
- import { ArrowLeft, ArrowRight, Edit, TrashCan } from '@carbon/react/icons';
618
- import {
619
- Button,
620
- DataTable,
621
- Table,
622
- TableBody,
623
- TableCell,
624
- TableContainer,
625
- TableHead,
626
- TableHeader,
627
- TableRow,
628
- } from '@carbon/react';
629
- import { useFormContext } from 'react-hook-form';
630
- import { useTranslation } from 'react-i18next';
631
- import { showSnackbar } from '@openmrs/esm-framework';
632
- import { type StockOperationDTO } from '../../../core/api/types/stockOperation/StockOperationDTO';
633
- import { type StockOperationType } from '../../../core/api/types/stockOperation/StockOperationType';
634
- import { getStockOperationUniqueId } from '../../stock-operation.utils';
635
- import { type BaseStockOperationItemFormData, type StockOperationItemDtoSchema } from '../../validation-schema';
636
- import useOperationTypePermisions from '../hooks/useOperationTypePermisions';
637
- import StockItemSearch from '../input-components/stock-item-search.component';
638
- import QuantityUomCell from './quantity-uom-cell.component';
639
- import StockAvailability from './stock-availability-cell.component';
640
- import StockOperationItemBatchNoCell from './stock-operation-item-batch-no-cell.component';
641
- import StockOperationItemCell from './stock-operation-item-cell.component';
642
- import StockoperationItemExpiryCell from './stock-operation-item-expiry-cell.component';
643
- import { type CustomTableHeader } from '../../../core/components/table/types';
644
- import styles from './stock-operation-items-form-step.scc.scss';
645
- &nbsp;
646
- type StockOperationItemsFormStepProps = {
647
- stockOperation?: StockOperationDTO;
648
- stockOperationType: StockOperationType;
649
- onNext?: () =&gt; void;
650
- onPrevious?: () =&gt; void;
651
- onLaunchItemsForm?: (stockOperationItem?: BaseStockOperationItemFormData) =&gt; void;
652
- };
653
- const StockOperationItemsFormStep: React.FC&lt;StockOperationItemsFormStepProps&gt; = ({
654
- stockOperationType,
655
- stockOperation,
656
- onNext,
657
- onPrevious,
658
- onLaunchItemsForm,
659
- }) =&gt; {
660
- const { t } = useTranslation();
661
- const operationTypePermision = useOperationTypePermisions(stockOperationType);
662
- const uniqueId = useId();
663
- &nbsp;
664
- const form = useFormContext&lt;StockOperationItemDtoSchema&gt;();
665
- const observableOperationItems = form.watch('stockOperationItems');
666
- const headers = useMemo(() =&gt; {
667
- return [
668
- {
669
- key: 'item',
670
- header: t('item', 'Item'),
671
- styles: { width: '40% !important' },
672
- },
673
- {
674
- key: 'itemDetails',
675
- header: t('itemDetails', 'Item Details'),
676
- styles: { width: '20% !important' },
677
- },
678
- ...(operationTypePermision.requiresBatchUuid || operationTypePermision.requiresActualBatchInfo
679
- ? [
680
- {
681
- key: 'batch',
682
- header: t('batchNo', 'Batch number'),
683
- styles: { width: '15% !important' },
684
- },
685
- ]
686
- : <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>,
687
- ...(operationTypePermision.requiresActualBatchInfo
688
- ? [
689
- {
690
- key: 'expiry',
691
- header: t('expiry', 'Expiry'),
692
- },
693
- ]
694
- : []),
695
- ...(operationTypePermision.requiresBatchUuid
696
- ? [
697
- {
698
- key: 'expiry',
699
- header: t('expiry', 'Expiry'),
700
- },
701
- ]
702
- : []),
703
- &nbsp;
704
- {
705
- key: 'quantity',
706
- header: t('quantity', 'Quantity'),
707
- },
708
- {
709
- key: 'quantityuom',
710
- header: t('quantityUom', 'Quantity unit of measurement'),
711
- },
712
- ...(operationTypePermision.canCaptureQuantityPrice
713
- ? [
714
- {
715
- key: 'purchasePrice',
716
- header: t('purchasePrice', 'Purchase Price'),
717
- },
718
- ]
719
- : []),
720
- { key: 'actions', header: t('actions', 'Actions') },
721
- ];
722
- }, [operationTypePermision, t]);
723
- &nbsp;
724
- const tableRows = useMemo(() =&gt; {
725
- return observableOperationItems?.map((item, index) =&gt; {
726
- const {
727
- batchNo,
728
- expiration,
729
- quantity,
730
- purchasePrice,
731
- uuid,
732
- stockItemUuid,
733
- stockItemPackagingUOMUuid,
734
- stockBatchUuid,
735
- } = item;
736
- &nbsp;
737
- return {
738
- id: uuid || `${uniqueId}-${index}`,
739
- item: stockItemUuid ? <span class="branch-0 cbranch-no" title="branch not covered" >&lt;StockOperationItemCell stockItemUuid={stockItemUuid} /&gt; : '</span>--',
740
- itemDetails: stockItemUuid ? <span class="branch-0 cbranch-no" title="branch not covered" >&lt;StockAvailability stockItemUuid={stockItemUuid} /&gt; : '</span>--',
741
- batch: (
742
- &lt;StockOperationItemBatchNoCell
743
- operation={stockOperationType}
744
- stockBatchUuid={stockBatchUuid}
745
- batchNo={batchNo}
746
- stockItemUuid={stockItemUuid}
747
- /&gt;
748
- ),
749
- expiry: (
750
- &lt;StockoperationItemExpiryCell
751
- operation={stockOperationType}
752
- stockBatchUuid={stockBatchUuid}
753
- expiration={expiration}
754
- stockItemUuid={stockItemUuid}
755
- /&gt;
756
- ),
757
- quantity: quantity?.toLocaleString(),
758
- quantityuom: stockItemPackagingUOMUuid ? (
759
- <span class="branch-0 cbranch-no" title="branch not covered" > &lt;QuantityUomCell stockItemPackagingUOMUuid={stockItemPackagingUOMUuid} stockItemUuid={stockItemUuid} /&gt;</span>
760
- ) : (
761
- '--'
762
- ),
763
- purchasePrice: purchasePrice,
764
- actions: (
765
- &lt;&gt;
766
- &lt;Button
767
- type="button"
768
- size="sm"
769
- className="submitButton clear-padding-margin"
770
- iconDescription={t('edit', 'Edit')}
771
- kind="ghost"
772
- renderIcon={Edit}
773
- <span class="fstat-no" title="function not covered" > onClick={() =&gt; {</span>
774
- <span class="cstat-no" title="statement not covered" > onLaunchItemsForm?.(item);</span>
775
- }}
776
- /&gt;
777
- &lt;Button
778
- type="button"
779
- size="sm"
780
- className="submitButton clear-padding-margin"
781
- iconDescription={t('delete', 'Delete')}
782
- kind="ghost"
783
- renderIcon={TrashCan}
784
- <span class="fstat-no" title="function not covered" > onClick={() =&gt; {</span>
785
- <span class="cstat-no" title="statement not covered" > onLaunchItemsForm?.(item);</span>
786
- }}
787
- /&gt;
788
- &lt;/&gt;
789
- ),
790
- };
791
- });
792
- }, [observableOperationItems, onLaunchItemsForm, stockOperationType, t, uniqueId]);
793
- &nbsp;
794
- const handleNext = async () =&gt; {
795
- const valid = await form.trigger(['stockOperationItems']);
796
- if (valid) {
797
- onNext();
798
- } else <span class="missing-if-branch" title="else path not taken" >E</span>{
799
- <span class="cstat-no" title="statement not covered" > showSnackbar({</span>
800
- kind: 'error',
801
- title: 'Validation error',
802
- subtitle:
803
- observableOperationItems &amp;&amp; observableOperationItems.length &gt; 0
804
- ? 'You must update batch infomation for items'
805
- : 'You must add atleast one item',
806
- });
807
- }
808
- };
809
- &nbsp;
810
- const headerTitle = t('stockOperationItems', 'Stock operation items');
811
- &nbsp;
812
- return (
813
- &lt;div style={{ margin: '10px' }}&gt;
814
- &lt;div className={styles.tableContainer}&gt;
815
- &lt;div className={styles.heading}&gt;
816
- &lt;h4&gt;{headerTitle}&lt;/h4&gt;
817
- &lt;/div&gt;
818
- &lt;StockItemSearch
819
- onSelectedItem={(stockItem) =&gt;
820
- onLaunchItemsForm({
821
- uuid: `new-item-${getStockOperationUniqueId()}`,
822
- stockItemUuid: stockItem.uuid,
823
- hasExpiration: stockItem.hasExpiration,
824
- purchasePrice: stockItem.purchasePrice,
825
- })
826
- }
827
- /&gt;
828
- &lt;DataTable rows={tableRows ?? []} headers={headers} isSortable={false} useZebraStyles&gt;
829
- {({ rows, headers, getTableProps, getHeaderProps, getRowProps }) =&gt; (
830
- &lt;TableContainer&gt;
831
- &lt;Table {...getTableProps()}&gt;
832
- &lt;TableHead&gt;
833
- &lt;TableRow&gt;
834
- {headers.map((header) =&gt; (
835
- &lt;TableHeader
836
- {...getHeaderProps({
837
- header,
838
- isSortable: false,
839
- })}
840
- style={(header as CustomTableHeader)?.styles}
841
- key={header.key}
842
- &gt;
843
- {(() =&gt; {
844
- const customHeader = header as CustomTableHeader;
845
- return typeof customHeader.header === 'object' &amp;&amp;
846
- <span class="branch-1 cbranch-no" title="branch not covered" > customHeader.header !== null &amp;&amp;</span>
847
- <span class="branch-2 cbranch-no" title="branch not covered" > 'content' in customHeader.header</span>
848
- ? (<span class="branch-0 cbranch-no" title="branch not covered" >customHeader.header.content as React.ReactNode)</span>
849
- : (customHeader.header as React.ReactNode);
850
- })()}
851
- &lt;/TableHeader&gt;
852
- ))}
853
- &lt;/TableRow&gt;
854
- &lt;/TableHead&gt;
855
- &lt;TableBody&gt;
856
- {rows.map((row) =&gt; (
857
- &lt;TableRow {...getRowProps({ row })} key={row.id}&gt;
858
- {row.cells.map((cell) =&gt; (
859
- &lt;TableCell key={cell.id}&gt;{cell.value}&lt;/TableCell&gt;
860
- ))}
861
- &lt;/TableRow&gt;
862
- ))}
863
- &lt;/TableBody&gt;
864
- &lt;/Table&gt;
865
- &lt;/TableContainer&gt;
866
- )}
867
- &lt;/DataTable&gt;
868
- &lt;div className={styles.btnSet}&gt;
869
- {typeof onNext === 'function' &amp;&amp; (
870
- &lt;Button kind="primary" onClick={handleNext} renderIcon={ArrowRight}&gt;
871
- {t('nextButton', 'Next')}
872
- &lt;/Button&gt;
873
- )}
874
- {typeof onPrevious === 'function' &amp;&amp; (
875
- &lt;Button
876
- kind="secondary"
877
- onClick={onPrevious}
878
- renderIcon={ArrowLeft}
879
- hasIconOnly
880
- data-testid="previous-btn"
881
- iconDescription={t('previousButton', 'Previous')}
882
- /&gt;
883
- )}
884
- &lt;/div&gt;
885
- &lt;/div&gt;
886
- &lt;/div&gt;
887
- );
888
- };
889
- &nbsp;
890
- export default StockOperationItemsFormStep;
891
- &nbsp;</pre></td></tr></table></pre>
892
-
893
- <div class='push'></div><!-- for sticky footer -->
894
- </div><!-- /wrapper -->
895
- <div class='footer quiet pad2 space-top1 center small'>
896
- Code coverage generated by
897
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
898
- at 2026-10-19T11:46:33.626Z
899
- </div>
900
- <script src="../../../../prettify.js"></script>
901
- <script>
902
- window.onload = function () {
903
- prettyPrint();
904
- };
905
- </script>
906
- <script src="../../../../sorter.js"></script>
907
- <script src="../../../../block-navigation.js"></script>
908
- </body>
909
- </html>
910
-