@k-int/stripes-kint-components 5.1.3 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/CHANGELOG.md +23 -7
  2. package/README.md +3 -1
  3. package/es/lib/constants/comparators.js +6 -1
  4. package/es/lib/utils/filterParsers/deparseKiwtQueryFilters.js +2 -2
  5. package/es/lib/utils/filterParsers/parseKiwtQueryString.js +1 -1
  6. package/package.json +13 -4
  7. package/src/lib/constants/comparators.js +10 -6
  8. package/src/lib/utils/filterParsers/deparseKiwtQueryFilters.js +2 -2
  9. package/src/lib/utils/filterParsers/parseKiwtQueryString.js +0 -1
  10. package/es/artifacts/coverage-jest/lcov-report/block-navigation.js +0 -69
  11. package/es/artifacts/coverage-jest/lcov-report/prettify.js +0 -814
  12. package/es/artifacts/coverage-jest/lcov-report/sorter.js +0 -181
  13. package/junit.xml +0 -293
  14. package/src/artifacts/coverage-jest/lcov-report/ActionList/ActionList.js.html +0 -373
  15. package/src/artifacts/coverage-jest/lcov-report/ActionList/ActionListFieldArray.js.html +0 -1468
  16. package/src/artifacts/coverage-jest/lcov-report/ActionList/index.html +0 -146
  17. package/src/artifacts/coverage-jest/lcov-report/ActionList/index.js.html +0 -88
  18. package/src/artifacts/coverage-jest/lcov-report/ComboButton/ComboButton.js.html +0 -568
  19. package/src/artifacts/coverage-jest/lcov-report/ComboButton/index.html +0 -131
  20. package/src/artifacts/coverage-jest/lcov-report/ComboButton/index.js.html +0 -88
  21. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertiesLookup.js.html +0 -667
  22. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertiesSettings.js.html +0 -1240
  23. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertyForm.js.html +0 -1474
  24. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertyView.js.html +0 -733
  25. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/index.html +0 -176
  26. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/index.js.html +0 -97
  27. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/testResources.js.html +0 -793
  28. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesEdit.js.html +0 -208
  29. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesEditCtx.js.html +0 -352
  30. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesListField.js.html +0 -835
  31. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertyField.js.html +0 -1300
  32. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertyFormCard.js.html +0 -454
  33. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/index.html +0 -206
  34. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/index.js.html +0 -100
  35. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/testResources.js.html +0 -271
  36. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilter.js.html +0 -499
  37. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterField.js.html +0 -568
  38. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js.html +0 -415
  39. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterForm.js.html +0 -340
  40. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesRule.js.html +0 -502
  41. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/index.html +0 -251
  42. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/index.js.html +0 -103
  43. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/testResources.js.html +0 -223
  44. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useOperators.js.html +0 -271
  45. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useParseActiveFilterStrings.js.html +0 -199
  46. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useValueProps.js.html +0 -253
  47. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertiesView.js.html +0 -211
  48. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertiesViewCtx.js.html +0 -445
  49. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertyCard.js.html +0 -619
  50. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/index.html +0 -176
  51. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/index.js.html +0 -94
  52. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/testResources.js.html +0 -571
  53. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/index.html +0 -116
  54. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/index.js.html +0 -175
  55. package/src/artifacts/coverage-jest/lcov-report/CycleButton/CycleButton.js.html +0 -217
  56. package/src/artifacts/coverage-jest/lcov-report/CycleButton/index.html +0 -131
  57. package/src/artifacts/coverage-jest/lcov-report/CycleButton/index.js.html +0 -88
  58. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/EditableRefdataCategoryList.js.html +0 -751
  59. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/index.html +0 -131
  60. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/index.js.html +0 -88
  61. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/EditableRefdataList.js.html +0 -853
  62. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/index.html +0 -131
  63. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/index.js.html +0 -88
  64. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/EditableSettingsList.js.html +0 -280
  65. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/EditableSettingsListFieldArray.js.html +0 -259
  66. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/EditSettingValue.js.html +0 -412
  67. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/RenderSettingValue.js.html +0 -313
  68. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/SettingField.js.html +0 -574
  69. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/index.html +0 -161
  70. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/index.js.html +0 -94
  71. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/index.html +0 -146
  72. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/index.js.html +0 -94
  73. package/src/artifacts/coverage-jest/lcov-report/FormModal/FormModal.js.html +0 -379
  74. package/src/artifacts/coverage-jest/lcov-report/FormModal/index.html +0 -131
  75. package/src/artifacts/coverage-jest/lcov-report/FormModal/index.js.html +0 -88
  76. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/FormattedKintMessage.js.html +0 -247
  77. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/index.html +0 -131
  78. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/index.js.html +0 -88
  79. package/src/artifacts/coverage-jest/lcov-report/IconSelect/IconSelect.js.html +0 -508
  80. package/src/artifacts/coverage-jest/lcov-report/IconSelect/index.html +0 -131
  81. package/src/artifacts/coverage-jest/lcov-report/IconSelect/index.js.html +0 -88
  82. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/NoResultsMessage.js.html +0 -361
  83. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/index.html +0 -131
  84. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/index.js.html +0 -88
  85. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/QueryTypedown.js.html +0 -205
  86. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/index.html +0 -131
  87. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/index.js.html +0 -88
  88. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/RefdataButtons.js.html +0 -370
  89. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/index.html +0 -131
  90. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/index.js.html +0 -88
  91. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/ResponsiveButtonGroup.js.html +0 -580
  92. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/index.html +0 -146
  93. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/index.js.html +0 -88
  94. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js.html +0 -301
  95. package/src/artifacts/coverage-jest/lcov-report/RichSelect/RichSelect.js.html +0 -718
  96. package/src/artifacts/coverage-jest/lcov-report/RichSelect/index.html +0 -146
  97. package/src/artifacts/coverage-jest/lcov-report/RichSelect/index.js.html +0 -91
  98. package/src/artifacts/coverage-jest/lcov-report/RichSelect/useSelectedOption.js.html +0 -127
  99. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/SASQLookupComponent.js.html +0 -1069
  100. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/TableBody.js.html +0 -400
  101. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/index.html +0 -131
  102. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/index.js.html +0 -88
  103. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/index.html +0 -131
  104. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/index.js.html +0 -91
  105. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/SASQRoute.js.html +0 -346
  106. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/index.html +0 -131
  107. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/index.js.html +0 -88
  108. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/SASQViewComponent.js.html +0 -307
  109. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/index.html +0 -131
  110. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/index.js.html +0 -88
  111. package/src/artifacts/coverage-jest/lcov-report/SearchField/SearchField.js.html +0 -214
  112. package/src/artifacts/coverage-jest/lcov-report/SearchField/index.html +0 -131
  113. package/src/artifacts/coverage-jest/lcov-report/SearchField/index.js.html +0 -88
  114. package/src/artifacts/coverage-jest/lcov-report/SettingPage/SettingPage.js.html +0 -220
  115. package/src/artifacts/coverage-jest/lcov-report/SettingPage/SettingPagePane.js.html +0 -208
  116. package/src/artifacts/coverage-jest/lcov-report/SettingPage/index.html +0 -146
  117. package/src/artifacts/coverage-jest/lcov-report/SettingPage/index.js.html +0 -91
  118. package/src/artifacts/coverage-jest/lcov-report/SettingsFormContainer/SettingsFormContainer.js.html +0 -409
  119. package/src/artifacts/coverage-jest/lcov-report/SettingsFormContainer/index.html +0 -131
  120. package/src/artifacts/coverage-jest/lcov-report/SettingsFormContainer/index.js.html +0 -88
  121. package/src/artifacts/coverage-jest/lcov-report/Typedown/Typedown.js.html +0 -913
  122. package/src/artifacts/coverage-jest/lcov-report/Typedown/index.html +0 -131
  123. package/src/artifacts/coverage-jest/lcov-report/Typedown/index.js.html +0 -88
  124. package/src/artifacts/coverage-jest/lcov-report/base.css +0 -224
  125. package/src/artifacts/coverage-jest/lcov-report/block-navigation.js +0 -87
  126. package/src/artifacts/coverage-jest/lcov-report/constants/comparators.js.html +0 -124
  127. package/src/artifacts/coverage-jest/lcov-report/constants/customProperties.js.html +0 -121
  128. package/src/artifacts/coverage-jest/lcov-report/constants/endpoints.js.html +0 -91
  129. package/src/artifacts/coverage-jest/lcov-report/constants/eventCodes.js.html +0 -94
  130. package/src/artifacts/coverage-jest/lcov-report/constants/index.html +0 -161
  131. package/src/artifacts/coverage-jest/lcov-report/contexts/SettingsContext.js.html +0 -97
  132. package/src/artifacts/coverage-jest/lcov-report/contexts/index.html +0 -131
  133. package/src/artifacts/coverage-jest/lcov-report/contexts/index.js.html +0 -91
  134. package/src/artifacts/coverage-jest/lcov-report/favicon.png +0 -0
  135. package/src/artifacts/coverage-jest/lcov-report/hooks/index.html +0 -401
  136. package/src/artifacts/coverage-jest/lcov-report/hooks/index.js.html +0 -142
  137. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/index.html +0 -161
  138. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/index.js.html +0 -94
  139. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/useAppSettings.js.html +0 -292
  140. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/useSettingSection.js.html +0 -214
  141. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/useSettings.js.html +0 -463
  142. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/index.html +0 -161
  143. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/index.js.html +0 -94
  144. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedown.js.html +0 -520
  145. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedownData.js.html +0 -181
  146. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedownToggle.js.html +0 -163
  147. package/src/artifacts/coverage-jest/lcov-report/hooks/useActiveElement.js.html +0 -157
  148. package/src/artifacts/coverage-jest/lcov-report/hooks/useAvailableCustomProperties.js.html +0 -205
  149. package/src/artifacts/coverage-jest/lcov-report/hooks/useCustomProperties.js.html +0 -325
  150. package/src/artifacts/coverage-jest/lcov-report/hooks/useHelperApp.js.html +0 -295
  151. package/src/artifacts/coverage-jest/lcov-report/hooks/useIntlKey.js.html +0 -151
  152. package/src/artifacts/coverage-jest/lcov-report/hooks/useIntlKeyStore.js.html +0 -199
  153. package/src/artifacts/coverage-jest/lcov-report/hooks/useInvalidateRefdata.js.html +0 -118
  154. package/src/artifacts/coverage-jest/lcov-report/hooks/useKintIntl.js.html +0 -238
  155. package/src/artifacts/coverage-jest/lcov-report/hooks/useKiwtFieldArray.js.html +0 -274
  156. package/src/artifacts/coverage-jest/lcov-report/hooks/useKiwtSASQuery.js.html +0 -196
  157. package/src/artifacts/coverage-jest/lcov-report/hooks/useLocalStorageState.js.html +0 -136
  158. package/src/artifacts/coverage-jest/lcov-report/hooks/useModConfigEntries.js.html +0 -226
  159. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateCustomProperties.js.html +0 -283
  160. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateModConfigEntry.js.html +0 -238
  161. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateRefdataCategory.js.html +0 -274
  162. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateRefdataValue.js.html +0 -322
  163. package/src/artifacts/coverage-jest/lcov-report/hooks/useQIndex.js.html +0 -208
  164. package/src/artifacts/coverage-jest/lcov-report/hooks/useRefdata.js.html +0 -265
  165. package/src/artifacts/coverage-jest/lcov-report/hooks/useSASQQueryMeta.js.html +0 -187
  166. package/src/artifacts/coverage-jest/lcov-report/hooks/useTemplates.js.html +0 -166
  167. package/src/artifacts/coverage-jest/lcov-report/index.html +0 -641
  168. package/src/artifacts/coverage-jest/lcov-report/prettify.css +0 -1
  169. package/src/artifacts/coverage-jest/lcov-report/prettify.js +0 -2
  170. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/index.html +0 -161
  171. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/index.js.html +0 -94
  172. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/useAppSettings.js.html +0 -292
  173. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/useSettingSection.js.html +0 -211
  174. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/useSettings.js.html +0 -466
  175. package/src/artifacts/coverage-jest/lcov-report/sort-arrow-sprite.png +0 -0
  176. package/src/artifacts/coverage-jest/lcov-report/sorter.js +0 -196
  177. package/src/artifacts/coverage-jest/lcov-report/utils/buildUrl.js.html +0 -181
  178. package/src/artifacts/coverage-jest/lcov-report/utils/filterParsers/deparseKiwtQueryFilters.js.html +0 -181
  179. package/src/artifacts/coverage-jest/lcov-report/utils/filterParsers/index.html +0 -176
  180. package/src/artifacts/coverage-jest/lcov-report/utils/filterParsers/index.js.html +0 -124
  181. package/src/artifacts/coverage-jest/lcov-report/utils/filterParsers/parseKiwtQueryFilters.js.html +0 -211
  182. package/src/artifacts/coverage-jest/lcov-report/utils/filterParsers/parseKiwtQueryGroups.js.html +0 -367
  183. package/src/artifacts/coverage-jest/lcov-report/utils/filterParsers/parseKiwtQueryString.js.html +0 -184
  184. package/src/artifacts/coverage-jest/lcov-report/utils/generateKiwtQuery.js.html +0 -109
  185. package/src/artifacts/coverage-jest/lcov-report/utils/generateKiwtQueryParams.js.html +0 -637
  186. package/src/artifacts/coverage-jest/lcov-report/utils/groupCustomPropertiesByCtx.js.html +0 -124
  187. package/src/artifacts/coverage-jest/lcov-report/utils/highlightString.js.html +0 -211
  188. package/src/artifacts/coverage-jest/lcov-report/utils/index.html +0 -341
  189. package/src/artifacts/coverage-jest/lcov-report/utils/index.js.html +0 -190
  190. package/src/artifacts/coverage-jest/lcov-report/utils/matchString.js.html +0 -127
  191. package/src/artifacts/coverage-jest/lcov-report/utils/modConfigEntriesQueryKey.js.html +0 -142
  192. package/src/artifacts/coverage-jest/lcov-report/utils/parseErrorResponse.js.html +0 -142
  193. package/src/artifacts/coverage-jest/lcov-report/utils/parseKiwtQueryGroups.js.html +0 -361
  194. package/src/artifacts/coverage-jest/lcov-report/utils/parseModConfigEntry.js.html +0 -130
  195. package/src/artifacts/coverage-jest/lcov-report/utils/refdataOptions.js.html +0 -109
  196. package/src/artifacts/coverage-jest/lcov-report/utils/refdataQueryKey.js.html +0 -112
  197. package/src/artifacts/coverage-jest/lcov-report/utils/renderHelpText.js.html +0 -166
  198. package/src/artifacts/coverage-jest/lcov-report/utils/selectorSafe.js.html +0 -145
  199. package/src/artifacts/coverage-jest/lcov-report/utils/sortByLabel.js.html +0 -130
  200. package/src/artifacts/coverage-jest/lcov-report/utils/toCamelCase.js.html +0 -127
  201. package/src/artifacts/coverage-jest/lcov-report/utils/typedownQueryKey.js.html +0 -112
  202. package/src/artifacts/coverage-jest/lcov-report/utils/validators.js.html +0 -370
  203. package/src/artifacts/coverage-jest/lcov-report/validators/index.html +0 -131
  204. package/src/artifacts/coverage-jest/lcov-report/validators/index.js.html +0 -88
  205. package/src/artifacts/coverage-jest/lcov-report/validators/validators.js.html +0 -370
  206. package/src/artifacts/coverage-jest/lcov.info +0 -5423
  207. package/yarn-error.log +0 -129
@@ -1,1468 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for ActionList/ActionListFieldArray.js</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">ActionList</a> ActionListFieldArray.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">6.45% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>8/124</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/93</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/28</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">6.77% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>8/118</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 oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></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>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a></td><td class="line-coverage quiet"><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-neutral">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-yes">20x</span>
540
- <span class="cline-any cline-yes">20x</span>
541
- <span class="cline-any cline-yes">20x</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-yes">20x</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</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">20x</span>
570
- <span class="cline-any cline-no">&nbsp;</span>
571
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</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-yes">20x</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-yes">20x</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>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-no">&nbsp;</span>
622
- <span class="cline-any cline-no">&nbsp;</span>
623
- <span class="cline-any cline-no">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-no">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-no">&nbsp;</span>
632
- <span class="cline-any cline-no">&nbsp;</span>
633
- <span class="cline-any cline-no">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-no">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-no">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-no">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-no">&nbsp;</span>
649
- <span class="cline-any cline-no">&nbsp;</span>
650
- <span class="cline-any cline-no">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-no">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-no">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-no">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-no">&nbsp;</span>
668
- <span class="cline-any cline-no">&nbsp;</span>
669
- <span class="cline-any cline-no">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-no">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-no">&nbsp;</span>
679
- <span class="cline-any cline-no">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-no">&nbsp;</span>
684
- <span class="cline-any cline-no">&nbsp;</span>
685
- <span class="cline-any cline-no">&nbsp;</span>
686
- <span class="cline-any cline-no">&nbsp;</span>
687
- <span class="cline-any cline-no">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-no">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-no">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-no">&nbsp;</span>
699
- <span class="cline-any cline-no">&nbsp;</span>
700
- <span class="cline-any cline-no">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-no">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-no">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-no">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-no">&nbsp;</span>
715
- <span class="cline-any cline-no">&nbsp;</span>
716
- <span class="cline-any cline-no">&nbsp;</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-no">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-no">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-no">&nbsp;</span>
736
- <span class="cline-any cline-no">&nbsp;</span>
737
- <span class="cline-any cline-no">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-no">&nbsp;</span>
740
- <span class="cline-any cline-no">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-no">&nbsp;</span>
754
- <span class="cline-any cline-neutral">&nbsp;</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-neutral">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-neutral">&nbsp;</span>
762
- <span class="cline-any cline-no">&nbsp;</span>
763
- <span class="cline-any cline-no">&nbsp;</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-no">&nbsp;</span>
768
- <span class="cline-any cline-no">&nbsp;</span>
769
- <span class="cline-any cline-no">&nbsp;</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-no">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-no">&nbsp;</span>
774
- <span class="cline-any cline-neutral">&nbsp;</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-neutral">&nbsp;</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-no">&nbsp;</span>
780
- <span class="cline-any cline-no">&nbsp;</span>
781
- <span class="cline-any cline-no">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-no">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-no">&nbsp;</span>
787
- <span class="cline-any cline-no">&nbsp;</span>
788
- <span class="cline-any cline-no">&nbsp;</span>
789
- <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-no">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-no">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-neutral">&nbsp;</span>
801
- <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-no">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-neutral">&nbsp;</span>
807
- <span class="cline-any cline-neutral">&nbsp;</span>
808
- <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-no">&nbsp;</span>
813
- <span class="cline-any cline-no">&nbsp;</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-no">&nbsp;</span>
828
- <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-no">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
- <span class="cline-any cline-no">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-no">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-neutral">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-no">&nbsp;</span>
850
- <span class="cline-any cline-no">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-no">&nbsp;</span>
854
- <span class="cline-any cline-no">&nbsp;</span>
855
- <span class="cline-any cline-no">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-no">&nbsp;</span>
861
- <span class="cline-any cline-no">&nbsp;</span>
862
- <span class="cline-any cline-no">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-no">&nbsp;</span>
867
- <span class="cline-any cline-no">&nbsp;</span>
868
- <span class="cline-any cline-no">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-no">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-no">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-no">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-no">&nbsp;</span>
882
- <span class="cline-any cline-no">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-no">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-no">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-no">&nbsp;</span>
904
- <span class="cline-any cline-no">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-no">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-no">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-no">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-no">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-no">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-no">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-no">&nbsp;</span>
968
- <span class="cline-any cline-no">&nbsp;</span>
969
- <span class="cline-any cline-no">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-neutral">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-yes">20x</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { forwardRef, useImperativeHandle, useState } from 'react';
989
- import PropTypes from 'prop-types';
990
- &nbsp;
991
- import get from 'lodash/get';
992
- import cloneDeep from 'lodash/cloneDeep';
993
- &nbsp;
994
- import { Field, useForm, useFormState } from 'react-final-form';
995
- import { Button, Headline, IconButton, MultiColumnList, TextField, Tooltip } from '@folio/stripes/components';
996
- import { useKintIntl } from '../hooks';
997
- &nbsp;
998
- import css from '../../../styles/ActionListFieldArray.css';
999
- &nbsp;
1000
- const EDITING_ACTIONS_WIDTH = 25;
1001
- const NON_EDITING_ACTIONS_WIDTH = 20;
1002
- const TOTAL_WIDTH = 100;
1003
- &nbsp;
1004
- const propTypes = {
1005
- actionAssigner: PropTypes.func,
1006
- columnMapping: PropTypes.object,
1007
- creatableFields: PropTypes.object,
1008
- createCallback: PropTypes.func,
1009
- defaultNewObject: PropTypes.object,
1010
- editableFields: PropTypes.object,
1011
- fields: PropTypes.object,
1012
- fieldComponents: PropTypes.object,
1013
- formatter: PropTypes.object,
1014
- hideActionsColumn: PropTypes.bool,
1015
- hideCreateButton: PropTypes.bool,
1016
- intlKey: PropTypes.string,
1017
- intlNS: PropTypes.string,
1018
- label: PropTypes.oneOfType([
1019
- PropTypes.string,
1020
- PropTypes.node
1021
- ]),
1022
- labelOverrides: PropTypes.object,
1023
- onRowClick: PropTypes.func,
1024
- triggerFormSubmit: PropTypes.func.isRequired,
1025
- validateFields: PropTypes.object,
1026
- visibleFields: PropTypes.arrayOf(PropTypes.string)
1027
- };
1028
- &nbsp;
1029
- // This needs to be outside of the main component for forwardRef to work properly it seems.
1030
- const ActionTrigger = forwardRef(<span class="fstat-no" title="function not covered" >({</span> action, ...actionTriggerProps }, ref) =&gt; {
1031
- <span class="cstat-no" title="statement not covered" > if (action.icon) {</span>
1032
- <span class="cstat-no" title="statement not covered" > return (</span>
1033
- &lt;IconButton
1034
- ref={ref}
1035
- icon={action.icon}
1036
- {...actionTriggerProps}
1037
- /&gt;
1038
- );
1039
- }
1040
- &nbsp;
1041
- <span class="cstat-no" title="statement not covered" > return (</span>
1042
- &lt;Button
1043
- ref={ref}
1044
- marginBottom0
1045
- {...actionTriggerProps}
1046
- &gt;
1047
- {action.label ?? action.name}
1048
- &lt;/Button&gt;
1049
- );
1050
- });
1051
- &nbsp;
1052
- ActionTrigger.propTypes = {
1053
- action: PropTypes.shape({
1054
- icon: PropTypes.string,
1055
- label: PropTypes.string,
1056
- name: PropTypes.string
1057
- })
1058
- };
1059
- &nbsp;
1060
- const ActionListFieldArray = forwardRef(<span class="fstat-no" title="function not covered" >({</span>
1061
- actionAssigner,
1062
- columnMapping,
1063
- creatableFields,
1064
- createCallback,
1065
- defaultNewObject,
1066
- editableFields,
1067
- fields,
1068
- fieldComponents,
1069
- hideActionsColumn = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
1070
- hideCreateButton = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
1071
- intlKey: passedIntlKey,
1072
- intlNS: passedIntlNS,
1073
- label,
1074
- labelOverrides = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
1075
- onRowClick,
1076
- validateFields,
1077
- visibleFields,
1078
- triggerFormSubmit,
1079
- ...mclProps // Assume anything left over is to directly apply to the MCL
1080
- }, ref) =&gt; {
1081
- // Grab finalForm functions/values from form hooks
1082
- const { change } = <span class="cstat-no" title="statement not covered" >useForm();</span>
1083
- const { hasValidationErrors, initialValues, pristine, submitting, values } = <span class="cstat-no" title="statement not covered" >useFormState();</span>
1084
- const kintIntl = <span class="cstat-no" title="statement not covered" >useKintIntl(passedIntlKey, passedIntlNS);</span>
1085
- /*
1086
- Keep track of which field we are editing.
1087
- null for no field, string id if we are editing an existing field and
1088
- 'NEW_ROW' for a new row
1089
- */
1090
- const [editing, setEditing] = <span class="cstat-no" title="statement not covered" >useState(null);</span>
1091
- &nbsp;
1092
- const toggleEditing = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>d) =&gt; {</span>
1093
- <span class="cstat-no" title="statement not covered" > if (editing) {</span>
1094
- <span class="cstat-no" title="statement not covered" > setEditing(null);</span>
1095
- } else {
1096
- <span class="cstat-no" title="statement not covered" > setEditing(id);</span>
1097
- }
1098
- };
1099
- &nbsp;
1100
- const handleSave = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>ndex) =&gt; {</span>
1101
- const {
1102
- actionListActions: _a,
1103
- fieldName: _fn,
1104
- fieldIndex: _fi,
1105
- ...rowData
1106
- } = <span class="cstat-no" title="statement not covered" >fields.value[index];</span>
1107
- &nbsp;
1108
- // Find "edit" entry in actionAssigner
1109
- const editCallback = <span class="cstat-no" title="statement not covered" >actionAssigner(rowData)?.find(<span class="fstat-no" title="function not covered" >ac</span>t =&gt; <span class="cstat-no" title="statement not covered" >act.name === 'edit')</span>?.callback;</span>
1110
- <span class="cstat-no" title="statement not covered" > if (editCallback) {</span>
1111
- <span class="cstat-no" title="statement not covered" > editCallback(rowData);</span>
1112
- }
1113
- };
1114
- &nbsp;
1115
- const handleCreate = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>ndex) =&gt; {</span>
1116
- const {
1117
- actionListActions: _a,
1118
- fieldName: _fn,
1119
- fieldIndex: _fi,
1120
- ...rowData
1121
- } = <span class="cstat-no" title="statement not covered" >fields.value[index];</span>
1122
- &nbsp;
1123
- <span class="cstat-no" title="statement not covered" > if (createCallback) {</span>
1124
- <span class="cstat-no" title="statement not covered" > createCallback(rowData);</span>
1125
- }
1126
- };
1127
- &nbsp;
1128
- const handleClickCreate = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
1129
- <span class="cstat-no" title="statement not covered" > toggleEditing('NEW_ROW');</span>
1130
- <span class="cstat-no" title="statement not covered" > fields.unshift(defaultNewObject);</span>
1131
- };
1132
- &nbsp;
1133
- // Way to go into create mode from external component, and way to tell internal editing state
1134
- <span class="cstat-no" title="statement not covered" > useImperativeHandle(ref, <span class="fstat-no" title="function not covered" >()</span> =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
1135
- create: handleClickCreate,
1136
- editing
1137
- }));
1138
- &nbsp;
1139
- const getColumnWidths = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
1140
- const widthNotInUseByActions = <span class="cstat-no" title="statement not covered" >editing ?</span>
1141
- TOTAL_WIDTH - EDITING_ACTIONS_WIDTH :
1142
- TOTAL_WIDTH - NON_EDITING_ACTIONS_WIDTH;
1143
- &nbsp;
1144
- const staticWidth = (<span class="cstat-no" title="statement not covered" >widthNotInUseByActions / (visibleFields.length))</span>;
1145
- const widthsObject = <span class="cstat-no" title="statement not covered" >{};</span>
1146
- <span class="cstat-no" title="statement not covered" > visibleFields.forEach(<span class="fstat-no" title="function not covered" >(f</span>) =&gt; {</span>
1147
- <span class="cstat-no" title="statement not covered" > if (f !== 'actionListActions') {</span>
1148
- <span class="cstat-no" title="statement not covered" > widthsObject[f] = `${staticWidth}%`;</span>
1149
- }
1150
- });
1151
- &nbsp;
1152
- <span class="cstat-no" title="statement not covered" > widthsObject.actionListActions = editing ?</span>
1153
- `${EDITING_ACTIONS_WIDTH}%` :
1154
- `${NON_EDITING_ACTIONS_WIDTH}%`;
1155
- &nbsp;
1156
- <span class="cstat-no" title="statement not covered" > return widthsObject;</span>
1157
- };
1158
- &nbsp;
1159
- const renderActionButtons = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(d</span>ata) =&gt; {</span>
1160
- const fieldName = <span class="cstat-no" title="statement not covered" >`contentData[${data.rowIndex}]`;</span>
1161
- const { actionListActions: actions, ...rest } = <span class="cstat-no" title="statement not covered" >data;</span>
1162
- &nbsp;
1163
- <span class="cstat-no" title="statement not covered" > if (data.id === editing || (!data.id &amp;&amp; editing === 'NEW_ROW')) {</span>
1164
- // Render the save/cancel buttons
1165
- <span class="cstat-no" title="statement not covered" > return (</span>
1166
- &lt;div id={`action-button-parent-${data.rowIndex + 1}`}&gt;
1167
- &lt;Button
1168
- key={`save[${data.rowIndex}]`}
1169
- buttonStyle="primary"
1170
- disabled={hasValidationErrors || submitting || pristine}
1171
- marginBottom0
1172
- onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
1173
- <span class="cstat-no" title="statement not covered" > triggerFormSubmit(); </span>// This is set up as () =&gt; null in ActionList, so essentially only acts here to force validation
1174
- &nbsp;
1175
- <span class="cstat-no" title="statement not covered" > if (!hasValidationErrors) {</span>
1176
- <span class="cstat-no" title="statement not covered" > if (!data.id &amp;&amp; editing === 'NEW_ROW') {</span>
1177
- <span class="cstat-no" title="statement not covered" > handleCreate(data.rowIndex);</span>
1178
- } else {
1179
- <span class="cstat-no" title="statement not covered" > handleSave(data.rowIndex);</span>
1180
- }
1181
- <span class="cstat-no" title="statement not covered" > toggleEditing(data.id);</span>
1182
- }
1183
- }}
1184
- type="submit"
1185
- &gt;
1186
- {kintIntl.formatKintMessage({
1187
- id: 'save',
1188
- overrideValue: labelOverrides?.save
1189
- })}
1190
- &lt;/Button&gt;
1191
- &lt;Button
1192
- key={`cancel[${data.rowIndex}]`}
1193
- data-type-button="cancel"
1194
- marginBottom0
1195
- onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
1196
- <span class="cstat-no" title="statement not covered" > if (!data.id &amp;&amp; editing === 'NEW_ROW') {</span>
1197
- <span class="cstat-no" title="statement not covered" > fields.remove(data.rowIndex);</span>
1198
- <span class="cstat-no" title="statement not covered" > toggleEditing('NEW_ROW');</span>
1199
- } else {
1200
- <span class="cstat-no" title="statement not covered" > change(fieldName, get(initialValues, fieldName));</span>
1201
- <span class="cstat-no" title="statement not covered" > toggleEditing(data.id);</span>
1202
- }
1203
- }}
1204
- &gt;
1205
- {kintIntl.formatKintMessage({
1206
- id: 'cancel',
1207
- overrideValue: labelOverrides?.cancel
1208
- })}
1209
- &lt;/Button&gt;
1210
- &lt;/div&gt;
1211
- );
1212
- }
1213
- &nbsp;
1214
- <span class="cstat-no" title="statement not covered" > return (</span>
1215
- &lt;div id={`action-button-parent-${data.rowIndex + 1}`}&gt;
1216
- {actions?.map(<span class="fstat-no" title="function not covered" >ac</span>tion =&gt; {
1217
- let actionFunction;
1218
- <span class="cstat-no" title="statement not covered" > if (action.callback) {</span>
1219
- <span class="cstat-no" title="statement not covered" > actionFunction = <span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >action.callback(rest);</span></span>
1220
- }
1221
- &nbsp;
1222
- // Edit has special action functionality, revealing fields etc.
1223
- <span class="cstat-no" title="statement not covered" > if (action.name === 'edit') {</span>
1224
- <span class="cstat-no" title="statement not covered" > actionFunction = <span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >toggleEditing(data.id);</span></span>
1225
- }
1226
- &nbsp;
1227
- let ariaLabel = <span class="cstat-no" title="statement not covered" >`action-${action.name}[${data.rowIndex}]`;</span>
1228
- <span class="cstat-no" title="statement not covered" > if (action?.ariaLabel) {</span>
1229
- <span class="cstat-no" title="statement not covered" > if (typeof action.ariaLabel === 'function') {</span>
1230
- <span class="cstat-no" title="statement not covered" > ariaLabel = action.ariaLabel(data);</span>
1231
- } else <span class="cstat-no" title="statement not covered" >if (typeof action.ariaLabel === 'string') {</span>
1232
- <span class="cstat-no" title="statement not covered" > ariaLabel = action.ariaLabel;</span>
1233
- } else {
1234
- <span class="cstat-no" title="statement not covered" > throw new Error(`Provided ariaLabel for action "${action.name}" must be a function or a string.`);</span>
1235
- }
1236
- }
1237
- &nbsp;
1238
- let tooltip;
1239
- let tooltipSub;
1240
- <span class="cstat-no" title="statement not covered" > if (action?.tooltip) {</span>
1241
- <span class="cstat-no" title="statement not covered" > if (typeof action.tooltip === 'function') {</span>
1242
- <span class="cstat-no" title="statement not covered" > tooltip = action.tooltip(data);</span>
1243
- } else {
1244
- <span class="cstat-no" title="statement not covered" > tooltip = action.tooltip;</span>
1245
- }
1246
- &nbsp;
1247
- <span class="cstat-no" title="statement not covered" > if (action?.tooltipSub) {</span>
1248
- <span class="cstat-no" title="statement not covered" > if (typeof action.tooltipSub === 'function') {</span>
1249
- <span class="cstat-no" title="statement not covered" > tooltipSub = action.tooltipSub(data);</span>
1250
- } else {
1251
- <span class="cstat-no" title="statement not covered" > tooltipSub = action.tooltipSub;</span>
1252
- }
1253
- }
1254
- }
1255
- &nbsp;
1256
- // If a tooltip is declared, render that around the actionButton
1257
- <span class="cstat-no" title="statement not covered" > if (tooltip) {</span>
1258
- <span class="cstat-no" title="statement not covered" > return (</span>
1259
- &lt;Tooltip
1260
- id={`action-${action.name}[${data.rowIndex}]-tooltip`}
1261
- sub={tooltipSub}
1262
- text={tooltip}
1263
- &gt;
1264
- {<span class="fstat-no" title="function not covered" >({</span> ref: actionTriggerRef, ariaIds }) =&gt; (
1265
- <span class="cstat-no" title="statement not covered" > &lt;ActionTrigger</span>
1266
- key={`action-${action.name}[${data.rowIndex}]`}
1267
- ref={actionTriggerRef}
1268
- action={action}
1269
- aria-describedby={ariaIds.sub}
1270
- aria-labelledby={ariaIds.text}
1271
- disabled={!!editing}
1272
- onClick={<span class="fstat-no" title="function not covered" >e </span>=&gt; {
1273
- <span class="cstat-no" title="statement not covered" > e.stopPropagation();</span>
1274
- <span class="cstat-no" title="statement not covered" > if (actionFunction) {</span>
1275
- <span class="cstat-no" title="statement not covered" > return actionFunction();</span>
1276
- }
1277
- &nbsp;
1278
- <span class="cstat-no" title="statement not covered" > return null;</span>
1279
- }}
1280
- to={action.to}
1281
- /&gt;
1282
- )}
1283
- &lt;/Tooltip&gt;
1284
- );
1285
- }
1286
- &nbsp;
1287
- // Finally, render the action button itself
1288
- <span class="cstat-no" title="statement not covered" > return (</span>
1289
- &lt;ActionTrigger
1290
- key={`action-${action.name}[${data.rowIndex}]`}
1291
- action={action}
1292
- ariaLabel={ariaLabel}
1293
- disabled={!!editing}
1294
- onClick={<span class="fstat-no" title="function not covered" >e </span>=&gt; {
1295
- <span class="cstat-no" title="statement not covered" > e.stopPropagation();</span>
1296
- <span class="cstat-no" title="statement not covered" > if (actionFunction) {</span>
1297
- <span class="cstat-no" title="statement not covered" > return actionFunction();</span>
1298
- }
1299
- &nbsp;
1300
- <span class="cstat-no" title="statement not covered" > return null;</span>
1301
- }}
1302
- to={action.to}
1303
- /&gt;
1304
- );
1305
- })}
1306
- &lt;/div&gt;
1307
- );
1308
- };
1309
- &nbsp;
1310
- const assignActions = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
1311
- <span class="cstat-no" title="statement not covered" > return (</span>
1312
- fields.map(<span class="fstat-no" title="function not covered" >(f</span>ieldName, fieldIndex) =&gt; {
1313
- // Fetch the content from the field Values
1314
- const cd = <span class="cstat-no" title="statement not covered" >cloneDeep(get(values, fieldName));</span>
1315
- <span class="cstat-no" title="statement not covered" > cd.actionListActions = actionAssigner(cd);</span>
1316
- <span class="cstat-no" title="statement not covered" > return { ...cd, fieldName, fieldIndex };</span>
1317
- })
1318
- );
1319
- };
1320
- &nbsp;
1321
- const { formatter, ...restOfMclProps } = <span class="cstat-no" title="statement not covered" >mclProps;</span> // Destructure formatter part of mclProps
1322
- const fieldAwareFormatter = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
1323
- const returnObj = <span class="cstat-no" title="statement not covered" >{};</span>
1324
- // For each visible field, if it's being edited then ignore passed formatters, else use them
1325
- &nbsp;
1326
- // Track whether we've autoFocused on a field yet
1327
- let autoFocus = <span class="cstat-no" title="statement not covered" >true;</span>
1328
- <span class="cstat-no" title="statement not covered" > visibleFields.forEach(<span class="fstat-no" title="function not covered" >ke</span>y =&gt; {</span>
1329
- <span class="cstat-no" title="statement not covered" > returnObj[key] = <span class="fstat-no" title="function not covered" >cd</span> =&gt; {</span>
1330
- // Row is being edited if it has no id, or its id is in the editing string
1331
- const editingRow = <span class="cstat-no" title="statement not covered" >cd.id === editing || !cd.id;</span>
1332
- &nbsp;
1333
- // Default to the passed formatter values
1334
- let returnValue = <span class="cstat-no" title="statement not covered" >formatter?.[key] ? formatter[key](cd) : cd[key];</span>
1335
- &nbsp;
1336
- // If editing, replace values with fields
1337
- <span class="cstat-no" title="statement not covered" > if (editingRow) {</span>
1338
- /*
1339
- Check if the property is a visible field.
1340
- If it is not then we don't allow editing in this component.
1341
- */
1342
- const editFunction = <span class="cstat-no" title="statement not covered" >editableFields[key] ?? (<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >true)</span>;</span>
1343
- const createFunction = <span class="cstat-no" title="statement not covered" >creatableFields[key] ?? (<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >true)</span>;</span>
1344
- /*
1345
- Next check if this is a new row, if so we should run the createableField function with the data.
1346
- If it is not a new row, then we run the editableField function with the data,
1347
- and it should return true/false
1348
- &nbsp;
1349
- For both checks
1350
- true =&gt; Field, false =&gt; display value
1351
- */
1352
- <span class="cstat-no" title="statement not covered" > if (</span>
1353
- (!cd.id &amp;&amp; createFunction(cd)) ||
1354
- (!!cd.id &amp;&amp; editFunction(cd))
1355
- ) {
1356
- const passedObject = <span class="cstat-no" title="statement not covered" >{</span>
1357
- allValues: values,
1358
- index: cd?.fieldIndex,
1359
- key,
1360
- name: `${cd.fieldName}.${key}`,
1361
- rowFieldName: cd.fieldName
1362
- };
1363
- &nbsp;
1364
- const validateFunction = <span class="cstat-no" title="statement not covered" >validateFields?.[key] ? validateFields?.[key](passedObject) : null;</span>
1365
- <span class="cstat-no" title="statement not covered" > returnValue =</span>
1366
- fieldComponents[key] ?
1367
- fieldComponents[key](passedObject) :
1368
- &lt;Field
1369
- ariaLabel={key} // TODO at the moment the only way to override this is passing in an entire fieldComponent.
1370
- autoFocus={autoFocus}
1371
- component={TextField}
1372
- marginBottom0
1373
- name={`${cd.fieldName}.${key}`}
1374
- parse={<span class="fstat-no" title="function not covered" >v </span>=&gt; <span class="cstat-no" title="statement not covered" >v}</span>
1375
- validate={validateFunction}
1376
- /&gt;;
1377
- // After first field, every other field should not autofocus
1378
- <span class="cstat-no" title="statement not covered" > autoFocus = false;</span>
1379
- }
1380
- }
1381
- &nbsp;
1382
- <span class="cstat-no" title="statement not covered" > return returnValue;</span>
1383
- };
1384
- });
1385
- <span class="cstat-no" title="statement not covered" > return returnObj;</span>
1386
- };
1387
- &nbsp;
1388
- <span class="cstat-no" title="statement not covered" > return (</span>
1389
- &lt;&gt;
1390
- &lt;div className={css.header}&gt;
1391
- &lt;Headline
1392
- className={css.headerText}
1393
- &gt;
1394
- {label}
1395
- &lt;/Headline&gt;
1396
- {!hideCreateButton &amp;&amp;
1397
- &lt;Button
1398
- disabled={!!editing || !createCallback}
1399
- marginBottom0
1400
- onClick={handleClickCreate}
1401
- &gt;
1402
- {kintIntl.formatKintMessage({
1403
- id: 'new',
1404
- overrideValue: labelOverrides?.new
1405
- })}
1406
- &lt;/Button&gt;
1407
- }
1408
- &lt;/div&gt;
1409
- &lt;MultiColumnList
1410
- columnMapping={{
1411
- ...columnMapping,
1412
- actionListActions: kintIntl.formatKintMessage({
1413
- id: 'actions',
1414
- overrideValue: labelOverrides?.actions
1415
- })
1416
- }}
1417
- columnWidths={getColumnWidths()}
1418
- contentData={assignActions()}
1419
- formatter={{
1420
- actionListActions: renderActionButtons,
1421
- ...fieldAwareFormatter()
1422
- }}
1423
- interactive={!!onRowClick}
1424
- onRowClick={onRowClick ? <span class="fstat-no" title="function not covered" >(e</span>, row) =&gt; {
1425
- // Make sure we ONLY fire row click from row, and not from action buttons.
1426
- const targetIsAction = <span class="cstat-no" title="statement not covered" >e.target.closest('[id^=action-button-parent]') !== null;</span>
1427
- &nbsp;
1428
- <span class="cstat-no" title="statement not covered" > if (!targetIsAction) {</span>
1429
- const { actionListActions: _ala, ...rowWithoutActions } = <span class="cstat-no" title="statement not covered" >row;</span>
1430
- <span class="cstat-no" title="statement not covered" > onRowClick(e, rowWithoutActions);</span>
1431
- }
1432
- } : null}
1433
- visibleColumns={(
1434
- !hideActionsColumn ||
1435
- !!editing
1436
- ) ?
1437
- [...visibleFields, 'actionListActions'] :
1438
- visibleFields
1439
- }
1440
- {...restOfMclProps}
1441
- /&gt;
1442
- &lt;/&gt;
1443
- );
1444
- });
1445
- &nbsp;
1446
- ActionListFieldArray.propTypes = propTypes;
1447
- &nbsp;
1448
- export default ActionListFieldArray;
1449
- &nbsp;</pre></td></tr></table></pre>
1450
-
1451
- <div class='push'></div><!-- for sticky footer -->
1452
- </div><!-- /wrapper -->
1453
- <div class='footer quiet pad2 space-top1 center small'>
1454
- Code coverage generated by
1455
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1456
- at 2023-10-18T12:55:05.261Z
1457
- </div>
1458
- <script src="../prettify.js"></script>
1459
- <script>
1460
- window.onload = function () {
1461
- prettyPrint();
1462
- };
1463
- </script>
1464
- <script src="../sorter.js"></script>
1465
- <script src="../block-navigation.js"></script>
1466
- </body>
1467
- </html>
1468
-