@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,1300 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for CustomProperties/Edit/CustomPropertyField.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">CustomProperties/Edit</a> CustomPropertyField.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">61.17% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>52/85</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">62.29% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>38/61</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">52.38% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>11/21</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">64.19% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>52/81</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 medium'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-yes">19x</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-yes">14x</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-yes">14x</span>
508
- <span class="cline-any cline-yes">14x</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">14x</span>
511
- <span class="cline-any cline-no">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-no">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-no">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-yes">14x</span>
532
- <span class="cline-any cline-yes">1x</span>
533
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
540
- <span class="cline-any cline-yes">13x</span>
541
- <span class="cline-any cline-yes">1x</span>
542
- <span class="cline-any cline-yes">1x</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-yes">1x</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-yes">12x</span>
552
- <span class="cline-any cline-no">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-yes">12x</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-yes">14x</span>
559
- <span class="cline-any cline-no">&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-yes">14x</span>
563
- <span class="cline-any cline-no">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-no">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-no">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-no">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-no">&nbsp;</span>
574
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
578
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
592
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
596
- <span class="cline-any cline-no">&nbsp;</span>
597
- <span class="cline-any cline-no">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-no">&nbsp;</span>
604
- <span class="cline-any cline-no">&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-yes">14x</span>
620
- <span class="cline-any cline-yes">14x</span>
621
- <span class="cline-any cline-yes">14x</span>
622
- <span class="cline-any cline-yes">14x</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-yes">14x</span>
626
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-yes">14x</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-yes">7x</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-yes">7x</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-yes">7x</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-yes">3x</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-yes">15x</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-yes">3x</span>
655
- <span class="cline-any cline-yes">4x</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-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-yes">3x</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-yes">2x</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
674
- <span class="cline-any cline-yes">2x</span>
675
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
684
- <span class="cline-any cline-yes">2x</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-no">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-no">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-no">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-yes">2x</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-neutral">&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-yes">2x</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-no">&nbsp;</span>
701
- <span class="cline-any cline-no">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-yes">14x</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-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-yes">14x</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&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-yes">14x</span>
724
- <span class="cline-any cline-yes">14x</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-yes">14x</span>
727
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
736
- <span class="cline-any cline-yes">14x</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
767
- <span class="cline-any cline-neutral">&nbsp;</span>
768
- <span class="cline-any cline-yes">14x</span>
769
- <span class="cline-any cline-yes">14x</span>
770
- <span class="cline-any cline-neutral">&nbsp;</span>
771
- <span class="cline-any cline-yes">14x</span>
772
- <span class="cline-any cline-no">&nbsp;</span>
773
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-yes">14x</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
797
- <span class="cline-any cline-yes">14x</span>
798
- <span class="cline-any cline-yes">14x</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-yes">14x</span>
801
- <span class="cline-any cline-no">&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-neutral">&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-yes">14x</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&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-neutral">&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-yes">14x</span>
827
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&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-yes">19x</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import PropTypes from 'prop-types';
877
- &nbsp;
878
- import { Field } from 'react-final-form';
879
- &nbsp;
880
- import orderBy from 'lodash/orderBy';
881
- &nbsp;
882
- import {
883
- Col,
884
- Datepicker,
885
- Row,
886
- Select,
887
- TextArea,
888
- TextField,
889
- MultiSelection
890
- } from '@folio/stripes/components';
891
- &nbsp;
892
- import * as CUSTOM_PROPERTY_TYPES from '../../constants/customProperties';
893
- &nbsp;
894
- import { useKintIntl } from '../../hooks';
895
- &nbsp;
896
- const CustomPropertyField = ({
897
- availableCustomProperties,
898
- customProperty,
899
- customPropertyType,
900
- customProperties,
901
- index,
902
- intlKey: passedIntlKey,
903
- intlNS: passedIntlNS,
904
- labelOverrides = {},
905
- name,
906
- onChange,
907
- value,
908
- setCustomProperties
909
- }) =&gt; {
910
- const kintIntl = useKintIntl(passedIntlKey, passedIntlNS);
911
- // Set up the validator for the customProperty
912
- const customPropertyValidator = (fieldValue, allValues) =&gt; {
913
- const { note, publicNote, value: currentValue } = allValues?.customProperties?.[customProperty?.value]?.[0] ?? {};
914
- &nbsp;
915
- <span class="missing-if-branch" title="if path not taken" >I</span>if ((note &amp;&amp; !currentValue) || (publicNote &amp;&amp; !currentValue)) {
916
- <span class="cstat-no" title="statement not covered" > if (</span>
917
- customProperty.type === CUSTOM_PROPERTY_TYPES.DECIMAL_CLASS_NAME ||
918
- customProperty.type === CUSTOM_PROPERTY_TYPES.INTEGER_CLASS_NAME
919
- ) {
920
- <span class="cstat-no" title="statement not covered" > return (</span>
921
- kintIntl.formatKintMessage({
922
- id: 'customProperties.errors.customPropertyNoteInvalidNumber',
923
- overrideValue: labelOverrides.customPropertyNoteInvalidNumberError
924
- })
925
- );
926
- } else {
927
- <span class="cstat-no" title="statement not covered" > return (</span>
928
- kintIntl.formatKintMessage({
929
- id: 'customProperties.errors.customPropertyNoteWithoutValue',
930
- overrideValue: labelOverrides.customPropertyNoteWithoutValueError
931
- })
932
- );
933
- }
934
- }
935
- &nbsp;
936
- if (customProperty.type === CUSTOM_PROPERTY_TYPES.DECIMAL_CLASS_NAME) {
937
- const regexp = /^-?[\d]*(\.[\d]{0,2})?$/;
938
- return (fieldValue &amp;&amp; !regexp.test(fieldValue)) ?
939
- <span class="branch-0 cbranch-no" title="branch not covered" > kintIntl.formatKintMessage({</span>
940
- id: 'errors.maxTwoDecimals',
941
- overrideValue: labelOverrides.maxTwoDecimalsError
942
- }) : undefined;
943
- }
944
- &nbsp;
945
- if (customProperty.type === CUSTOM_PROPERTY_TYPES.INTEGER_CLASS_NAME) {
946
- const min = Number.MIN_SAFE_INTEGER;
947
- const max = Number.MAX_SAFE_INTEGER;
948
- &nbsp;
949
- return (fieldValue &amp;&amp; (fieldValue &gt; max || fieldValue &lt; min)) ?
950
- <span class="branch-0 cbranch-no" title="branch not covered" > kintIntl.formatKintMessage({</span>
951
- id: 'errors.valueNotInRange',
952
- overrideValue: labelOverrides.valueNotInRangeError
953
- }, { min, max }) : undefined;
954
- }
955
- &nbsp;
956
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!customProperty.primary &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!currentValue)</span> {
957
- <span class="cstat-no" title="statement not covered" > return kintIntl.formatMessage({ id: 'stripes-core.label.missingRequiredField' });</span>
958
- }
959
- &nbsp;
960
- return undefined;
961
- };
962
- &nbsp;
963
- const getCustomProperty = <span class="fstat-no" title="function not covered" >(c</span>ustomPropertyValue) =&gt; {
964
- <span class="cstat-no" title="statement not covered" > return availableCustomProperties.find(<span class="fstat-no" title="function not covered" >cp</span> =&gt; <span class="cstat-no" title="statement not covered" >cp.value === customPropertyValue)</span>;</span>
965
- };
966
- &nbsp;
967
- const renderCustomPropertyName = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
968
- const unsetCustomProperties = <span class="cstat-no" title="statement not covered" >availableCustomProperties.filter(<span class="fstat-no" title="function not covered" >t </span>=&gt; {</span>
969
- // Only optional properties can be set
970
- <span class="cstat-no" title="statement not covered" > if (t.primary) <span class="cstat-no" title="statement not covered" >return false;</span></span>
971
- &nbsp;
972
- const custPropValue = <span class="cstat-no" title="statement not covered" >value[t.value];</span>
973
- &nbsp;
974
- // The customProperty is unset and has no value.
975
- <span class="cstat-no" title="statement not covered" > if (custPropValue === undefined) <span class="cstat-no" title="statement not covered" >return true;</span></span>
976
- &nbsp;
977
- // The customProperty is set but is marked for deletion. Allow reuse.
978
- <span class="cstat-no" title="statement not covered" > if (custPropValue[0]?._delete) <span class="cstat-no" title="statement not covered" >return true;</span></span>
979
- <span class="cstat-no" title="statement not covered" > return false;</span>
980
- });
981
- &nbsp;
982
- const customPropertyValue = <span class="cstat-no" title="statement not covered" >value[customProperty.value];</span>
983
- const id = <span class="cstat-no" title="statement not covered" >customPropertyValue?.[0]?.id;</span>
984
- &nbsp;
985
- <span class="cstat-no" title="statement not covered" > return (</span>
986
- &lt;Select
987
- autoFocus={!id}
988
- dataOptions={[customProperty, ...unsetCustomProperties]} // The selected customProperty, and the available unset customProperties
989
- id={`edit-customproperty-${index}-name`}
990
- label={
991
- kintIntl.formatKintMessage({
992
- id: 'customProperties.name',
993
- overrideValue: labelOverrides.name
994
- })
995
- }
996
- onChange={<span class="fstat-no" title="function not covered" >e </span>=&gt; {
997
- const newValue = <span class="cstat-no" title="statement not covered" >e.target.value;</span>
998
- &nbsp;
999
- // Update `state.customProperties` which controls what customProperties are being edited.
1000
- const newCustomProperties = <span class="cstat-no" title="statement not covered" >[...customProperties];</span>
1001
- <span class="cstat-no" title="statement not covered" > newCustomProperties[index] = getCustomProperty(newValue);</span>
1002
- <span class="cstat-no" title="statement not covered" > setCustomProperties(newCustomProperties);</span>
1003
- &nbsp;
1004
- // Update final-form (which tracks what the values for a given customProperty are) because
1005
- // in essence we're deleting a customProperty and creating a new customProperty.
1006
- // We do this by 1) marking the current customProperty for deletion and 2) initing
1007
- // the new customProperty to an empty object.
1008
- const currentValue = <span class="cstat-no" title="statement not covered" >value[customProperty.value] ? value[customProperty.value][0] : {};</span>
1009
- <span class="cstat-no" title="statement not covered" > onChange({</span>
1010
- ...value,
1011
- [customProperty.value]: [{
1012
- id: currentValue.id,
1013
- _delete: true,
1014
- }],
1015
- [newValue]: [{}],
1016
- });
1017
- }}
1018
- required
1019
- value={customProperty.value}
1020
- /&gt;
1021
- );
1022
- };
1023
- &nbsp;
1024
- const renderCustomPropertyValue = () =&gt; {
1025
- const currentValue = value[customProperty.value] ? value[customProperty.value][0] : {};
1026
- const min = Number.MIN_SAFE_INTEGER;
1027
- const max = Number.MAX_SAFE_INTEGER;
1028
- &nbsp;
1029
- // Default change handler
1030
- let handleChange = <span class="fstat-no" title="function not covered" >e </span>=&gt; {
1031
- <span class="cstat-no" title="statement not covered" > onChange({</span>
1032
- ...value,
1033
- [customProperty.value]: [{
1034
- ...currentValue,
1035
- _delete: e.target.value === '', // Delete customProperty if removing the value.
1036
- value: e.target.value // send down the number for integers and decimal types
1037
- }],
1038
- });
1039
- };
1040
- // Figure out which component we're rendering and specify its unique props.
1041
- let fieldProps;
1042
- switch (customProperty.type) {
1043
- case CUSTOM_PROPERTY_TYPES.REFDATA_CLASS_NAME:
1044
- fieldProps = {
1045
- component: Select,
1046
- // don't order dataOptions here, notSet should always be first in list
1047
- dataOptions: customProperty.options,
1048
- format: (v) =&gt; v?.value,
1049
- };
1050
- break;
1051
- case CUSTOM_PROPERTY_TYPES.MULTI_REFDATA_CLASS_NAME:
1052
- fieldProps = {
1053
- component: MultiSelection,
1054
- // The "not set" value is not relevant for a multi select
1055
- dataOptions: orderBy(customProperty.options?.filter(opt =&gt; !!opt?.value), 'label'),
1056
- renderToOverlay: true
1057
- };
1058
- // MultiSelection passes the changed array as a value not an event
1059
- handleChange = refdataArray =&gt; {
1060
- onChange({
1061
- ...value,
1062
- [customProperty.value]: [{
1063
- ...currentValue,
1064
- _delete: refdataArray?.length === 0 ? <span class="branch-0 cbranch-no" title="branch not covered" >true </span>: undefined, // Delete customProperty if removing all values.
1065
- value: refdataArray
1066
- }]
1067
- });
1068
- };
1069
- break;
1070
- case CUSTOM_PROPERTY_TYPES.INTEGER_CLASS_NAME:
1071
- case CUSTOM_PROPERTY_TYPES.DECIMAL_CLASS_NAME:
1072
- fieldProps = {
1073
- component: TextField,
1074
- max,
1075
- min,
1076
- step: 'any',
1077
- type: 'number',
1078
- };
1079
- handleChange = <span class="fstat-no" title="function not covered" >e </span>=&gt; {
1080
- <span class="cstat-no" title="statement not covered" > onChange({</span>
1081
- ...value,
1082
- [customProperty.value]: [{
1083
- ...currentValue,
1084
- _delete: e.target.value === '' ? true : undefined, // Delete customProperty if removing the value.
1085
- value: parseFloat(e.target.value)
1086
- }],
1087
- });
1088
- };
1089
- break;
1090
- <span class="branch-4 cbranch-no" title="branch not covered" > case CUSTOM_PROPERTY_TYPES.TEXT_CLASS_NAME:</span>
1091
- <span class="cstat-no" title="statement not covered" > fieldProps = {</span>
1092
- component: TextArea,
1093
- parse: <span class="fstat-no" title="function not covered" >v </span>=&gt; <span class="cstat-no" title="statement not covered" >v </span> // Lets us send an empty string instead of `undefined`
1094
- };
1095
- <span class="cstat-no" title="statement not covered" > break;</span>
1096
- case CUSTOM_PROPERTY_TYPES.DATE_CLASS_NAME:
1097
- fieldProps = {
1098
- component: Datepicker,
1099
- backendDateStandard: 'YYYY-MM-DD',
1100
- timeZone: 'UTC',
1101
- usePortal: true
1102
- };
1103
- break;
1104
- <span class="branch-6 cbranch-no" title="branch not covered" > default:</span>
1105
- <span class="cstat-no" title="statement not covered" > fieldProps = { component: TextField };</span>
1106
- <span class="cstat-no" title="statement not covered" > break;</span>
1107
- }
1108
- &nbsp;
1109
- return (
1110
- &lt;Field
1111
- data-test-customproperty-value
1112
- id={`edit-customproperty-${index}-value`}
1113
- label={
1114
- kintIntl.formatKintMessage({
1115
- id: 'customProperties.value',
1116
- overrideValue: labelOverrides.value
1117
- })
1118
- }
1119
- name={`${name}.${customProperty.value}[0].value`}
1120
- onChange={handleChange}
1121
- required={!customProperty.primary}
1122
- validate={(fieldValue, allValues) =&gt; customPropertyValidator(fieldValue, allValues)}
1123
- {...fieldProps}
1124
- /&gt;
1125
- );
1126
- };
1127
- &nbsp;
1128
- const renderCustomPropertyVisibility = () =&gt; {
1129
- const customPropertyObject = value[customProperty.value]?.[0] ?? {};
1130
- &nbsp;
1131
- const handleChange = e =&gt; {
1132
- onChange({
1133
- ...value,
1134
- [customProperty.value]: [{
1135
- ...customPropertyObject,
1136
- internal: e.target.value
1137
- }],
1138
- });
1139
- };
1140
- &nbsp;
1141
- return (
1142
- &lt;Select
1143
- data-test-customproperty-visibility
1144
- dataOptions={[
1145
- {
1146
- value: true,
1147
- label: kintIntl.formatKintMessage({
1148
- id: 'customProperties.internalTrue',
1149
- overrideValue: labelOverrides.internalTrue
1150
- })
1151
- },
1152
- {
1153
- value: false,
1154
- label: kintIntl.formatKintMessage({
1155
- id: 'customProperties.internalFalse',
1156
- overrideValue: labelOverrides.internalFalse
1157
- })
1158
- }
1159
- ]}
1160
- id={`edit-customproperty-${index}-visibility`}
1161
- label={
1162
- kintIntl.formatKintMessage({
1163
- id: 'customProperties.visibility',
1164
- overrideValue: labelOverrides.visibility
1165
- })
1166
- }
1167
- onChange={handleChange}
1168
- value={customPropertyObject?.internal ?? customProperty.defaultInternal}
1169
- /&gt;
1170
- );
1171
- };
1172
- &nbsp;
1173
- const renderCustomPropertyNoteInternal = () =&gt; {
1174
- const customPropertyObject = value[customProperty.value]?.[0] ?? {};
1175
- &nbsp;
1176
- const handleChange = <span class="fstat-no" title="function not covered" >e </span>=&gt; {
1177
- <span class="cstat-no" title="statement not covered" > onChange({</span>
1178
- ...value,
1179
- [customProperty.value]: [{
1180
- ...customPropertyObject,
1181
- note: e.target.value
1182
- }],
1183
- });
1184
- };
1185
- &nbsp;
1186
- return (
1187
- &lt;TextArea
1188
- data-test-customproperty-note
1189
- id={`edit-customproperty-${index}-internal-note`}
1190
- label={
1191
- kintIntl.formatKintMessage({
1192
- id: 'customProperties.internalNote',
1193
- overrideValue: labelOverrides.internalNote
1194
- })
1195
- }
1196
- onChange={handleChange}
1197
- value={customPropertyObject?.note}
1198
- /&gt;
1199
- );
1200
- };
1201
- &nbsp;
1202
- const renderCustomPropertyNotePublic = () =&gt; {
1203
- const customPropertyObject = value[customProperty.value]?.[0] ?? {};
1204
- &nbsp;
1205
- const handleChange = <span class="fstat-no" title="function not covered" >e </span>=&gt; {
1206
- <span class="cstat-no" title="statement not covered" > onChange({</span>
1207
- ...value,
1208
- [customProperty.value]: [{
1209
- ...customPropertyObject,
1210
- publicNote: e.target.value
1211
- }],
1212
- });
1213
- };
1214
- &nbsp;
1215
- return (
1216
- &lt;TextArea
1217
- data-test-customproperty-public-note
1218
- id={`edit-customproperty-${index}-public-note`}
1219
- label={
1220
- kintIntl.formatKintMessage({
1221
- id: 'customProperties.publicNote',
1222
- overrideValue: labelOverrides.publicNote
1223
- })
1224
- }
1225
- onChange={handleChange}
1226
- value={customPropertyObject?.publicNote}
1227
- /&gt;
1228
- );
1229
- };
1230
- &nbsp;
1231
- return (
1232
- &lt;&gt;
1233
- &lt;div
1234
- data-testid="customPropertyField"
1235
- &gt;
1236
- {
1237
- customPropertyType === 'optional' &amp;&amp;
1238
- <span class="branch-1 cbranch-no" title="branch not covered" > &lt;Row&gt;</span>
1239
- &lt;Col xs={12}&gt;
1240
- {renderCustomPropertyName()}
1241
- &lt;/Col&gt;
1242
- &lt;/Row&gt;
1243
- }
1244
- &lt;Row&gt;
1245
- &lt;Col md={6} xs={12}&gt;
1246
- {renderCustomPropertyValue()}
1247
- &lt;/Col&gt;
1248
- &lt;Col md={6} xs={12}&gt;
1249
- {renderCustomPropertyNoteInternal()}
1250
- &lt;/Col&gt;
1251
- &lt;/Row&gt;
1252
- &lt;Row&gt;
1253
- &lt;Col md={6} xs={12}&gt;
1254
- {renderCustomPropertyVisibility()}
1255
- &lt;/Col&gt;
1256
- &lt;Col md={6} xs={12}&gt;
1257
- {renderCustomPropertyNotePublic()}
1258
- &lt;/Col&gt;
1259
- &lt;/Row&gt;
1260
- &lt;/div&gt;
1261
- &lt;/&gt;
1262
- );
1263
- };
1264
- &nbsp;
1265
- CustomPropertyField.propTypes = {
1266
- availableCustomProperties: PropTypes.arrayOf(PropTypes.object),
1267
- customProperty: PropTypes.object,
1268
- customPropertyType: PropTypes.string,
1269
- customProperties: PropTypes.arrayOf(PropTypes.object),
1270
- index: PropTypes.number,
1271
- intlKey: PropTypes.string,
1272
- intlNS: PropTypes.string,
1273
- labelOverrides: PropTypes.object,
1274
- name: PropTypes.string,
1275
- onChange: PropTypes.func,
1276
- setCustomProperties: PropTypes.func,
1277
- value: PropTypes.object
1278
- };
1279
- &nbsp;
1280
- export default CustomPropertyField;
1281
- &nbsp;</pre></td></tr></table></pre>
1282
-
1283
- <div class='push'></div><!-- for sticky footer -->
1284
- </div><!-- /wrapper -->
1285
- <div class='footer quiet pad2 space-top1 center small'>
1286
- Code coverage generated by
1287
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1288
- at 2023-10-18T12:55:05.261Z
1289
- </div>
1290
- <script src="../../prettify.js"></script>
1291
- <script>
1292
- window.onload = function () {
1293
- prettyPrint();
1294
- };
1295
- </script>
1296
- <script src="../../sorter.js"></script>
1297
- <script src="../../block-navigation.js"></script>
1298
- </body>
1299
- </html>
1300
-