@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,574 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/stock-locations/location-admin-form.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-locations</a> location-admin-form.component.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">73.07% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>19/26</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">52.63% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>10/19</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>4/8</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">76% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>19/25</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 medium'></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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-neutral">&nbsp;</span>
238
- <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">1x</span>
251
- <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-yes">1x</span>
267
- <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">14x</span>
273
- <span class="cline-any cline-neutral">&nbsp;</span>
274
- <span class="cline-any cline-yes">14x</span>
275
- <span class="cline-any cline-yes">14x</span>
276
- <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">14x</span>
279
- <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-yes">14x</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">14x</span>
295
- <span class="cline-any cline-yes">3x</span>
296
- <span class="cline-any cline-yes">3x</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-yes">3x</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-yes">3x</span>
303
- <span class="cline-any cline-yes">3x</span>
304
- <span class="cline-any cline-yes">3x</span>
305
- <span class="cline-any cline-yes">3x</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-yes">14x</span>
310
- <span class="cline-any cline-no">&nbsp;</span>
311
- <span class="cline-any cline-no">&nbsp;</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">14x</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">34x</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-yes">11x</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-no">&nbsp;</span>
350
- <span class="cline-any cline-no">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</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-neutral">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useState } from 'react';
393
- import { z } from 'zod';
394
- import { useForm, Controller } from 'react-hook-form';
395
- import { zodResolver } from '@hookform/resolvers/zod';
396
- import {
397
- Button,
398
- FilterableMultiSelect,
399
- FormGroup,
400
- InlineNotification,
401
- ModalBody,
402
- ModalFooter,
403
- ModalHeader,
404
- Stack,
405
- TextInput,
406
- } from '@carbon/react';
407
- import { getCoreTranslation } from '@openmrs/esm-framework';
408
- import { useTranslation } from 'react-i18next';
409
- import { type locationData } from '../stock-items/types';
410
- import { useLocationTags } from './stock-locations-table.resource';
411
- import styles from './stock-locations-table.scss';
412
- &nbsp;
413
- const LocationAdministrationSchema = z.object({
414
- name: z.string().max(255),
415
- });
416
- &nbsp;
417
- interface LocationAdministrationFormProps {
418
- close: () =&gt; void;
419
- handleCreateQuestion: (formData: locationData) =&gt; Promise&lt;void&gt;;
420
- handleDeleteBedTag?: () =&gt; void;
421
- headerTitle: string;
422
- initialData: locationData;
423
- }
424
- &nbsp;
425
- interface ErrorType {
426
- message: string;
427
- }
428
- &nbsp;
429
- const LocationAdministrationForm: React.FC&lt;LocationAdministrationFormProps&gt; = ({
430
- close,
431
- handleCreateQuestion,
432
- headerTitle,
433
- initialData,
434
- }) =&gt; {
435
- const { t } = useTranslation();
436
- &nbsp;
437
- const [showErrorNotification, setShowErrorNotification] = useState(false);
438
- const [formStateError, setFormStateError] = useState('');
439
- &nbsp;
440
- // Location tag types
441
- const { locationTagList: Tags } = useLocationTags();
442
- &nbsp;
443
- const {
444
- handleSubmit,
445
- control,
446
- getValues,
447
- formState: { isDirty, isSubmitting },
448
- } = useForm&lt;locationData&gt;({
449
- mode: 'all',
450
- resolver: zodResolver(LocationAdministrationSchema),
451
- defaultValues: {
452
- name: initialData.name || '',
453
- tags: initialData.tags || <span class="branch-1 cbranch-no" title="branch not covered" >[],</span>
454
- },
455
- });
456
- &nbsp;
457
- const onSubmit = (formData: locationData) =&gt; {
458
- const formDataFormSubmission = getValues();
459
- const locationTagsUuid = formDataFormSubmission?.tags?.['selectedItems']?.<span class="fstat-no" title="function not covered" >map((t</span>ag) =&gt; <span class="cstat-no" title="statement not covered" >tag.uuid) </span>?? [];
460
- &nbsp;
461
- const payload = {
462
- name: formDataFormSubmission.name,
463
- tags: locationTagsUuid,
464
- };
465
- const result = LocationAdministrationSchema.safeParse(formData);
466
- <span class="missing-if-branch" title="else path not taken" >E</span>if (result.success) {
467
- setShowErrorNotification(false);
468
- return handleCreateQuestion(payload);
469
- }
470
- };
471
- &nbsp;
472
- const <span class="fstat-no" title="function not covered" >onError = (e</span>rror: { [key: string]: ErrorType }) =&gt; {
473
- <span class="cstat-no" title="statement not covered" > setFormStateError(Object.entries(error)[0][1].message);</span>
474
- <span class="cstat-no" title="statement not covered" > setShowErrorNotification(true);</span>
475
- };
476
- &nbsp;
477
- return (
478
- &lt;&gt;
479
- &lt;ModalHeader closeModal={close} title={headerTitle} /&gt;
480
- &lt;ModalBody hasScrollingContent&gt;
481
- &lt;form id="stock-location-form" onSubmit={handleSubmit(onSubmit, onError)}&gt;
482
- &lt;Stack gap={3}&gt;
483
- &lt;FormGroup legendText={''}&gt;
484
- &lt;Controller
485
- name="name"
486
- control={control}
487
- rules={{ required: true }}
488
- render={({ field, fieldState }) =&gt; (
489
- &lt;&gt;
490
- &lt;TextInput
491
- id="location"
492
- labelText={t('locationName', 'Location name')}
493
- placeholder={t('locationPlaceholder', 'Add a location')}
494
- invalidText={fieldState.error?.message}
495
- {...field}
496
- /&gt;
497
- &lt;/&gt;
498
- )}
499
- /&gt;
500
- &lt;div className={styles.loaderContainer}&gt;
501
- &lt;Controller
502
- name="tags"
503
- control={control}
504
- render={({ field }) =&gt; (
505
- &lt;FilterableMultiSelect
506
- id="tag"
507
- titleText={t('selectTags', 'Select tags')}
508
- helperText={t('selectTagsHelper', 'Select one or more tags for this location')}
509
- items={Tags ?? <span class="branch-1 cbranch-no" title="branch not covered" >[]}</span>
510
- {...field}
511
- <span class="fstat-no" title="function not covered" > itemToString={(i</span>tem) =&gt; {
512
- <span class="cstat-no" title="statement not covered" > if (item &amp;&amp; typeof item === 'object' &amp;&amp; 'display' in item) {</span>
513
- <span class="cstat-no" title="statement not covered" > return (item as { display: string }).display;</span>
514
- }
515
- <span class="cstat-no" title="statement not covered" > return '';</span>
516
- }}
517
- selectionFeedback="top-after-reopen"
518
- /&gt;
519
- )}
520
- /&gt;
521
- &lt;/div&gt;
522
- &lt;/FormGroup&gt;
523
- &nbsp;
524
- {showErrorNotification &amp;&amp; (
525
- <span class="branch-1 cbranch-no" title="branch not covered" > &lt;InlineNotification</span>
526
- lowContrast
527
- title={t('error', 'Error')}
528
- style={{ minWidth: '100%', margin: '0rem', padding: '0rem' }}
529
- role="alert"
530
- kind="error"
531
- subtitle={
532
- t('pleaseFillField', '{{message}}', {
533
- message: formStateError,
534
- }) + '.'
535
- }
536
- <span class="fstat-no" title="function not covered" > onClose={() =&gt; <span class="cstat-no" title="statement not covered" >s</span>etShowErrorNotification(false)}</span>
537
- /&gt;
538
- )}
539
- &lt;/Stack&gt;
540
- &lt;/form&gt;
541
- &lt;/ModalBody&gt;
542
- &lt;ModalFooter&gt;
543
- &lt;Button onClick={close} kind="secondary"&gt;
544
- {getCoreTranslation('cancel')}
545
- &lt;/Button&gt;
546
- &lt;Button disabled={!isDirty || isSubmitting} type="submit" form="stock-location-form"&gt;
547
- &lt;span&gt;{t('save', 'Save')}&lt;/span&gt;
548
- &lt;/Button&gt;
549
- &lt;/ModalFooter&gt;
550
- &lt;/&gt;
551
- );
552
- };
553
- &nbsp;
554
- export default LocationAdministrationForm;
555
- &nbsp;</pre></td></tr></table></pre>
556
-
557
- <div class='push'></div><!-- for sticky footer -->
558
- </div><!-- /wrapper -->
559
- <div class='footer quiet pad2 space-top1 center small'>
560
- Code coverage generated by
561
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
562
- at 2026-10-19T11:46:33.626Z
563
- </div>
564
- <script src="../../prettify.js"></script>
565
- <script>
566
- window.onload = function () {
567
- prettyPrint();
568
- };
569
- </script>
570
- <script src="../../sorter.js"></script>
571
- <script src="../../block-navigation.js"></script>
572
- </body>
573
- </html>
574
-