@k-int/stripes-kint-components 2.8.4 → 2.8.6

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 (229) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/es/lib/ActionList/ActionList.js +3 -1
  3. package/es/lib/ActionList/ActionListFieldArray.js +4 -2
  4. package/es/lib/CustomProperties/Config/CustomPropertiesLookup.js +5 -2
  5. package/es/lib/CustomProperties/Config/CustomPropertiesLookup.test.js +4 -1
  6. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.js +6 -4
  7. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.test.js +5 -3
  8. package/es/lib/CustomProperties/Config/CustomPropertyForm.js +1 -1
  9. package/es/lib/CustomProperties/Config/CustomPropertyForm.test.js +1 -1
  10. package/es/lib/CustomProperties/Config/CustomPropertyView.test.js +5 -3
  11. package/es/lib/CustomProperties/Edit/CustomPropertiesEdit.test.js +4 -1
  12. package/es/lib/CustomProperties/Edit/CustomPropertiesEditCtx.test.js +4 -1
  13. package/es/lib/CustomProperties/Edit/CustomPropertiesListField.js +5 -2
  14. package/es/lib/CustomProperties/Edit/CustomPropertiesListField.test.js +5 -3
  15. package/es/lib/CustomProperties/Edit/CustomPropertyField.js +3 -1
  16. package/es/lib/CustomProperties/Edit/CustomPropertyField.test.js +4 -2
  17. package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.js +5 -2
  18. package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.test.js +1 -1
  19. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.js +5 -2
  20. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.test.js +1 -1
  21. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.js +4 -1
  22. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.test.js +5 -3
  23. package/es/lib/CustomProperties/Filter/CustomPropertiesRule.js +4 -1
  24. package/es/lib/CustomProperties/Filter/CustomPropertiesRule.test.js +1 -1
  25. package/es/lib/CustomProperties/Filter/useParseActiveFilterStrings.js +1 -1
  26. package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.js +1 -1
  27. package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.test.js +4 -1
  28. package/es/lib/CycleButton/CycleButton.js +5 -2
  29. package/es/lib/EditableRefdataCategoryList/EditableRefdataCategoryList.js +6 -4
  30. package/es/lib/EditableRefdataList/EditableRefdataList.js +6 -4
  31. package/es/lib/EditableSettingsList/EditableSettingsListFieldArray.js +4 -1
  32. package/es/lib/EditableSettingsList/EditableSettingsListFieldArray.test.js +1 -1
  33. package/es/lib/EditableSettingsList/SettingField/RenderSettingValue.test.js +1 -1
  34. package/es/lib/EditableSettingsList/SettingField/SettingField.js +4 -2
  35. package/es/lib/EditableSettingsList/SettingField/SettingField.test.js +1 -1
  36. package/es/lib/FormModal/FormModal.js +4 -1
  37. package/es/lib/IconSelect/IconSelect.js +4 -2
  38. package/es/lib/QueryTypedown/QueryTypedown.js +4 -2
  39. package/es/lib/RefdataButtons/RefdataButtons.js +4 -1
  40. package/es/lib/RichSelect/RichSelect.js +5 -2
  41. package/es/lib/RichSelect/useSelectedOption.js +1 -1
  42. package/es/lib/SASQLookupComponent/SASQLookupComponent.js +5 -2
  43. package/es/lib/SASQLookupComponent/TableBody/TableBody.js +4 -1
  44. package/es/lib/SASQRoute/SASQRoute.js +4 -1
  45. package/es/lib/SASQViewComponent/SASQViewComponent.js +4 -1
  46. package/es/lib/SearchField/SearchField.js +4 -1
  47. package/es/lib/Typedown/Typedown.js +1 -1
  48. package/es/lib/hooks/settingsHooks/useSettings.js +3 -1
  49. package/es/lib/hooks/typedownHooks/useTypedownData.js +1 -1
  50. package/es/lib/hooks/typedownHooks/useTypedownToggle.js +1 -1
  51. package/es/lib/hooks/useActiveElement.js +1 -1
  52. package/es/lib/hooks/useAvailableCustomProperties.js +1 -1
  53. package/es/lib/hooks/useCustomProperties.js +4 -1
  54. package/es/lib/hooks/useHelperApp.js +4 -2
  55. package/es/lib/hooks/useKiwtFieldArray.js +5 -2
  56. package/es/lib/hooks/useKiwtSASQuery.js +4 -2
  57. package/es/lib/hooks/useLocalStorageState.js +1 -1
  58. package/es/lib/hooks/useMutateCustomProperties.js +1 -1
  59. package/es/lib/hooks/useMutateRefdataCategory.js +4 -2
  60. package/es/lib/hooks/useMutateRefdataValue.js +1 -1
  61. package/es/lib/hooks/useQIndex.js +4 -2
  62. package/es/lib/utils/generateKiwtQueryParams.js +1 -1
  63. package/es/lib/utils/groupCustomPropertiesByCtx.js +4 -1
  64. package/es/lib/utils/highlightString.js +1 -1
  65. package/es/lib/utils/parseErrorResponse.js +23 -19
  66. package/junit.xml +150 -150
  67. package/package.json +1 -1
  68. package/src/artifacts/coverage-jest/lcov-report/ActionList/ActionList.js.html +23 -5
  69. package/src/artifacts/coverage-jest/lcov-report/ActionList/ActionListFieldArray.js.html +324 -48
  70. package/src/artifacts/coverage-jest/lcov-report/ActionList/index.html +7 -7
  71. package/src/artifacts/coverage-jest/lcov-report/ActionList/index.js.html +1 -1
  72. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertiesLookup.js.html +171 -39
  73. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertiesSettings.js.html +271 -52
  74. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertyForm.js.html +293 -74
  75. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertyView.js.html +126 -54
  76. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/index.html +41 -56
  77. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/index.js.html +1 -1
  78. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesEdit.js.html +23 -5
  79. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesEditCtx.js.html +54 -42
  80. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesListField.js.html +213 -54
  81. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertyField.js.html +260 -41
  82. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertyFormCard.js.html +41 -68
  83. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/index.html +53 -53
  84. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/index.js.html +1 -1
  85. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/testResources.js.html +62 -3065
  86. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilter.js.html +45 -45
  87. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterField.js.html +103 -64
  88. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js.html +54 -63
  89. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterForm.js.html +49 -16
  90. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesRule.js.html +69 -18
  91. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/index.html +81 -81
  92. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/index.js.html +1 -1
  93. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/testResources.js.html +33 -786
  94. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useOperators.js.html +45 -45
  95. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useParseActiveFilterStrings.js.html +6 -6
  96. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useValueProps.js.html +43 -28
  97. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertiesView.js.html +20 -2
  98. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertiesViewCtx.js.html +52 -46
  99. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertyCard.js.html +53 -74
  100. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/index.html +25 -25
  101. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/index.js.html +1 -1
  102. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/testResources.js.html +1 -1
  103. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/index.html +1 -1
  104. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/index.js.html +1 -1
  105. package/src/artifacts/coverage-jest/lcov-report/CycleButton/CycleButton.js.html +1 -1
  106. package/src/artifacts/coverage-jest/lcov-report/CycleButton/index.html +1 -1
  107. package/src/artifacts/coverage-jest/lcov-report/CycleButton/index.js.html +1 -1
  108. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/EditableRefdataCategoryList.js.html +86 -32
  109. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/index.html +3 -3
  110. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/index.js.html +1 -1
  111. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/EditableRefdataList.js.html +109 -37
  112. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/index.html +3 -3
  113. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/index.js.html +1 -1
  114. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/EditableSettingsList.js.html +41 -14
  115. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/EditableSettingsListFieldArray.js.html +45 -6
  116. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/EditSettingValue.js.html +47 -11
  117. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/RenderSettingValue.js.html +65 -14
  118. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/SettingField.js.html +154 -31
  119. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/index.html +26 -26
  120. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/index.js.html +1 -1
  121. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/index.html +18 -18
  122. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/index.js.html +1 -1
  123. package/src/artifacts/coverage-jest/lcov-report/FormModal/FormModal.js.html +35 -17
  124. package/src/artifacts/coverage-jest/lcov-report/FormModal/index.html +15 -15
  125. package/src/artifacts/coverage-jest/lcov-report/FormModal/index.js.html +1 -1
  126. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/FormattedKintMessage.js.html +1 -1
  127. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/index.html +1 -1
  128. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/index.js.html +1 -1
  129. package/src/artifacts/coverage-jest/lcov-report/IconSelect/IconSelect.js.html +67 -34
  130. package/src/artifacts/coverage-jest/lcov-report/IconSelect/index.html +7 -7
  131. package/src/artifacts/coverage-jest/lcov-report/IconSelect/index.js.html +1 -1
  132. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/NoResultsMessage.js.html +49 -7
  133. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/index.html +7 -7
  134. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/index.js.html +1 -1
  135. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/QueryTypedown.js.html +1 -1
  136. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/index.html +1 -1
  137. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/index.js.html +1 -1
  138. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/RefdataButtons.js.html +3 -3
  139. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/index.html +1 -1
  140. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/index.js.html +1 -1
  141. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/ResponsiveButtonGroup.js.html +36 -12
  142. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/index.html +9 -9
  143. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/index.js.html +1 -1
  144. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js.html +1 -1
  145. package/src/artifacts/coverage-jest/lcov-report/RichSelect/RichSelect.js.html +24 -81
  146. package/src/artifacts/coverage-jest/lcov-report/RichSelect/index.html +3 -3
  147. package/src/artifacts/coverage-jest/lcov-report/RichSelect/index.js.html +1 -1
  148. package/src/artifacts/coverage-jest/lcov-report/RichSelect/useSelectedOption.js.html +1 -1
  149. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/SASQLookupComponent.js.html +146 -14
  150. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/TableBody.js.html +31 -4
  151. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/index.html +3 -3
  152. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/index.js.html +1 -1
  153. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/index.html +9 -9
  154. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/index.js.html +1 -1
  155. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/SASQRoute.js.html +53 -8
  156. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/index.html +7 -7
  157. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/index.js.html +1 -1
  158. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/SASQViewComponent.js.html +65 -11
  159. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/index.html +9 -9
  160. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/index.js.html +1 -1
  161. package/src/artifacts/coverage-jest/lcov-report/SearchField/SearchField.js.html +1 -1
  162. package/src/artifacts/coverage-jest/lcov-report/SearchField/index.html +1 -1
  163. package/src/artifacts/coverage-jest/lcov-report/SearchField/index.js.html +1 -1
  164. package/src/artifacts/coverage-jest/lcov-report/SettingPage/SettingPage.js.html +24 -27
  165. package/src/artifacts/coverage-jest/lcov-report/SettingPage/SettingPagePane.js.html +47 -17
  166. package/src/artifacts/coverage-jest/lcov-report/SettingPage/index.html +22 -22
  167. package/src/artifacts/coverage-jest/lcov-report/SettingPage/index.js.html +1 -1
  168. package/src/artifacts/coverage-jest/lcov-report/Typedown/Typedown.js.html +1 -1
  169. package/src/artifacts/coverage-jest/lcov-report/Typedown/index.html +1 -1
  170. package/src/artifacts/coverage-jest/lcov-report/Typedown/index.js.html +1 -1
  171. package/src/artifacts/coverage-jest/lcov-report/constants/customProperties.js.html +1 -1
  172. package/src/artifacts/coverage-jest/lcov-report/constants/eventCodes.js.html +1 -1
  173. package/src/artifacts/coverage-jest/lcov-report/constants/index.html +1 -1
  174. package/src/artifacts/coverage-jest/lcov-report/contexts/SettingsContext.js.html +1 -1
  175. package/src/artifacts/coverage-jest/lcov-report/contexts/index.html +1 -1
  176. package/src/artifacts/coverage-jest/lcov-report/contexts/index.js.html +1 -1
  177. package/src/artifacts/coverage-jest/lcov-report/hooks/index.html +151 -106
  178. package/src/artifacts/coverage-jest/lcov-report/hooks/index.js.html +12 -3
  179. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/index.html +25 -25
  180. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/index.js.html +1 -1
  181. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/useAppSettings.js.html +7 -7
  182. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/useSettingSection.js.html +7 -7
  183. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/useSettings.js.html +61 -22
  184. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/index.html +1 -1
  185. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/index.js.html +1 -1
  186. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedown.js.html +1 -1
  187. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedownData.js.html +1 -1
  188. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedownToggle.js.html +1 -1
  189. package/src/artifacts/coverage-jest/lcov-report/hooks/useActiveElement.js.html +7 -7
  190. package/src/artifacts/coverage-jest/lcov-report/hooks/useCustomProperties.js.html +37 -37
  191. package/src/artifacts/coverage-jest/lcov-report/hooks/useHelperApp.js.html +7 -7
  192. package/src/artifacts/coverage-jest/lcov-report/hooks/useIntlKey.js.html +1 -1
  193. package/src/artifacts/coverage-jest/lcov-report/hooks/useIntlKeyStore.js.html +1 -1
  194. package/src/artifacts/coverage-jest/lcov-report/hooks/useInvalidateRefdata.js.html +7 -7
  195. package/src/artifacts/coverage-jest/lcov-report/hooks/useKintIntl.js.html +1 -1
  196. package/src/artifacts/coverage-jest/lcov-report/hooks/useKiwtFieldArray.js.html +7 -7
  197. package/src/artifacts/coverage-jest/lcov-report/hooks/useKiwtSASQuery.js.html +9 -9
  198. package/src/artifacts/coverage-jest/lcov-report/hooks/useLocalStorageState.js.html +7 -7
  199. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateCustomProperties.js.html +7 -7
  200. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateRefdataCategory.js.html +7 -7
  201. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateRefdataValue.js.html +7 -7
  202. package/src/artifacts/coverage-jest/lcov-report/hooks/useQIndex.js.html +7 -7
  203. package/src/artifacts/coverage-jest/lcov-report/hooks/useRefdata.js.html +9 -9
  204. package/src/artifacts/coverage-jest/lcov-report/hooks/useSASQQueryMeta.js.html +1 -1
  205. package/src/artifacts/coverage-jest/lcov-report/hooks/useTemplates.js.html +7 -7
  206. package/src/artifacts/coverage-jest/lcov-report/index.html +166 -136
  207. package/src/artifacts/coverage-jest/lcov-report/utils/buildUrl.js.html +1 -1
  208. package/src/artifacts/coverage-jest/lcov-report/utils/generateKiwtQuery.js.html +16 -16
  209. package/src/artifacts/coverage-jest/lcov-report/utils/generateKiwtQueryParams.js.html +240 -90
  210. package/src/artifacts/coverage-jest/lcov-report/utils/groupCustomPropertiesByCtx.js.html +7 -7
  211. package/src/artifacts/coverage-jest/lcov-report/utils/highlightString.js.html +3 -3
  212. package/src/artifacts/coverage-jest/lcov-report/utils/index.html +62 -62
  213. package/src/artifacts/coverage-jest/lcov-report/utils/index.js.html +39 -3
  214. package/src/artifacts/coverage-jest/lcov-report/utils/matchString.js.html +2 -2
  215. package/src/artifacts/coverage-jest/lcov-report/utils/parseErrorResponse.js.html +11 -8
  216. package/src/artifacts/coverage-jest/lcov-report/utils/parseKiwtQueryGroups.js.html +280 -0
  217. package/src/artifacts/coverage-jest/lcov-report/utils/refdataOptions.js.html +1 -1
  218. package/src/artifacts/coverage-jest/lcov-report/utils/refdataQueryKey.js.html +2 -2
  219. package/src/artifacts/coverage-jest/lcov-report/utils/selectorSafe.js.html +2 -2
  220. package/src/artifacts/coverage-jest/lcov-report/utils/sortByLabel.js.html +2 -2
  221. package/src/artifacts/coverage-jest/lcov-report/utils/toCamelCase.js.html +2 -2
  222. package/src/artifacts/coverage-jest/lcov-report/utils/typedownQueryKey.js.html +2 -2
  223. package/src/artifacts/coverage-jest/lcov-report/utils/validators.js.html +124 -76
  224. package/src/artifacts/coverage-jest/lcov.info +2706 -2419
  225. package/src/lib/utils/parseErrorResponse.js +3 -2
  226. package/translations/stripes-kint-components/de.json +41 -41
  227. package/translations/stripes-kint-components/ja.json +45 -45
  228. package/translations/stripes-kint-components/ko.json +49 -49
  229. package/yarn-error.log +0 -147
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">42.85% </span>
26
+ <span class="strong">3.52% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>27/63</span>
28
+ <span class='fraction'>3/85</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">41.17% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>21/51</span>
35
+ <span class='fraction'>0/79</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">30.76% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/13</span>
42
+ <span class='fraction'>0/18</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">47.36% </span>
47
+ <span class="strong">3.94% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>27/57</span>
49
+ <span class='fraction'>3/76</span>
50
50
  </div>
51
51
 
52
52
 
@@ -195,8 +195,113 @@
195
195
  <a name='L130'></a><a href='#L130'>130</a>
196
196
  <a name='L131'></a><a href='#L131'>131</a>
197
197
  <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
199
- <span class="cline-any cline-yes">7x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
249
+ <span class="cline-any cline-no">&nbsp;</span>
250
+ <span class="cline-any cline-no">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-no">&nbsp;</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-yes">3x</span>
257
+ <span class="cline-any cline-no">&nbsp;</span>
258
+ <span class="cline-any cline-no">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-no">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-no">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-no">&nbsp;</span>
270
+ <span class="cline-any cline-no">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-no">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-no">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-no">&nbsp;</span>
278
+ <span class="cline-any cline-no">&nbsp;</span>
279
+ <span class="cline-any cline-no">&nbsp;</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-no">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-no">&nbsp;</span>
287
+ <span class="cline-any cline-no">&nbsp;</span>
288
+ <span class="cline-any cline-no">&nbsp;</span>
289
+ <span class="cline-any cline-no">&nbsp;</span>
290
+ <span class="cline-any cline-no">&nbsp;</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-no">&nbsp;</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-no">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-yes">3x</span>
300
+ <span class="cline-any cline-no">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
305
  <span class="cline-any cline-neutral">&nbsp;</span>
201
306
  <span class="cline-any cline-neutral">&nbsp;</span>
202
307
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -228,39 +333,31 @@
228
333
  <span class="cline-any cline-neutral">&nbsp;</span>
229
334
  <span class="cline-any cline-neutral">&nbsp;</span>
230
335
  <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-yes">7x</span>
232
336
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">7x</span>
234
337
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">7x</span>
236
- <span class="cline-any cline-no">&nbsp;</span>
237
- <span class="cline-any cline-no">&nbsp;</span>
238
338
  <span class="cline-any cline-neutral">&nbsp;</span>
239
339
  <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">7x</span>
241
- <span class="cline-any cline-yes">7x</span>
242
- <span class="cline-any cline-yes">2x</span>
243
340
  <span class="cline-any cline-neutral">&nbsp;</span>
244
341
  <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
343
  <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
345
  <span class="cline-any cline-no">&nbsp;</span>
247
346
  <span class="cline-any cline-no">&nbsp;</span>
248
- <span class="cline-any cline-neutral">&nbsp;</span>
249
347
  <span class="cline-any cline-no">&nbsp;</span>
250
348
  <span class="cline-any cline-neutral">&nbsp;</span>
251
349
  <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-no">&nbsp;</span>
253
- <span class="cline-any cline-yes">2x</span>
254
- <span class="cline-any cline-yes">2x</span>
255
- <span class="cline-any cline-yes">2x</span>
256
350
  <span class="cline-any cline-neutral">&nbsp;</span>
257
351
  <span class="cline-any cline-no">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
354
+ <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
258
356
  <span class="cline-any cline-neutral">&nbsp;</span>
259
357
  <span class="cline-any cline-neutral">&nbsp;</span>
260
358
  <span class="cline-any cline-neutral">&nbsp;</span>
261
359
  <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-yes">7x</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
264
361
  <span class="cline-any cline-no">&nbsp;</span>
265
362
  <span class="cline-any cline-no">&nbsp;</span>
266
363
  <span class="cline-any cline-no">&nbsp;</span>
@@ -292,49 +389,103 @@
292
389
  <span class="cline-any cline-neutral">&nbsp;</span>
293
390
  <span class="cline-any cline-neutral">&nbsp;</span>
294
391
  <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-yes">7x</span>
296
- <span class="cline-any cline-yes">7x</span>
297
- <span class="cline-any cline-yes">22x</span>
298
392
  <span class="cline-any cline-no">&nbsp;</span>
299
- <span class="cline-any cline-yes">22x</span>
300
- <span class="cline-any cline-yes">22x</span>
393
+ <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-no">&nbsp;</span>
395
+ <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-no">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
+ <span class="cline-any cline-no">&nbsp;</span>
301
399
  <span class="cline-any cline-neutral">&nbsp;</span>
302
400
  <span class="cline-any cline-neutral">&nbsp;</span>
303
401
  <span class="cline-any cline-neutral">&nbsp;</span>
304
402
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">7x</span>
306
- <span class="cline-any cline-yes">7x</span>
307
- <span class="cline-any cline-yes">7x</span>
308
- <span class="cline-any cline-yes">7x</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-no">&nbsp;</span>
405
+ <span class="cline-any cline-no">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
309
407
  <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-yes">7x</span>
311
408
  <span class="cline-any cline-no">&nbsp;</span>
409
+ <span class="cline-any cline-no">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
411
  <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-no">&nbsp;</span>
313
413
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">7x</span>
414
+ <span class="cline-any cline-no">&nbsp;</span>
315
415
  <span class="cline-any cline-neutral">&nbsp;</span>
316
416
  <span class="cline-any cline-neutral">&nbsp;</span>
317
417
  <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-yes">7x</span>
418
+ <span class="cline-any cline-no">&nbsp;</span>
319
419
  <span class="cline-any cline-no">&nbsp;</span>
320
420
  <span class="cline-any cline-neutral">&nbsp;</span>
321
421
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">7x</span>
323
- <span class="cline-any cline-yes">7x</span>
422
+ <span class="cline-any cline-no">&nbsp;</span>
423
+ <span class="cline-any cline-no">&nbsp;</span>
324
424
  <span class="cline-any cline-neutral">&nbsp;</span>
325
425
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">7x</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
327
427
  <span class="cline-any cline-neutral">&nbsp;</span>
328
428
  <span class="cline-any cline-neutral">&nbsp;</span>
329
429
  <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const generateKiwtQueryParams = (options, nsValues) =&gt; {
331
- const { qindex, query, filters, sort } = nsValues;
430
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const conditionalEncodeURIComponent = <span class="fstat-no" title="function not covered" >(s</span>tr, encode = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> =&gt; {
431
+ <span class="cstat-no" title="statement not covered" > if (encode) {</span>
432
+ <span class="cstat-no" title="statement not covered" > return encodeURIComponent(str);</span>
433
+ }
434
+ &nbsp;
435
+ <span class="cstat-no" title="statement not covered" > return str;</span>
436
+ };
437
+ &nbsp;
438
+ const buildFilterOptionBlock = <span class="fstat-no" title="function not covered" >(o</span>pf, isNested = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span> encode = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> =&gt; {
439
+ <span class="cstat-no" title="statement not covered" > if (opf?.groupValues) {</span>
440
+ const groupValues = <span class="cstat-no" title="statement not covered" >opf.groupValues;</span>
441
+ &nbsp;
442
+ // Small utility function to add negation and brackets to the options block where necessary
443
+ const negationAndNesting = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(s</span>tr) =&gt; <span class="cstat-no" title="statement not covered" >`${groupValues?.NOT ? '!' : ''}${(isNested || groupValues?.NOT) ? '(' : ''}${str}${(isNested || groupValues?.NOT) ? ')' : ''}`;</span></span>
444
+ &nbsp;
445
+ // First check whether groupValues is ANDed or ORed together
446
+ <span class="cstat-no" title="statement not covered" > if (</span>
447
+ (groupValues?.AND &amp;&amp; Array.isArray(groupValues.AND)) ||
448
+ (groupValues?.OR &amp;&amp; Array.isArray(groupValues.OR))
449
+ ) {
450
+ // AND takes precedence
451
+ <span class="cstat-no" title="statement not covered" > if (groupValues.AND) {</span>
452
+ <span class="cstat-no" title="statement not covered" > return negationAndNesting(groupValues?.AND?.map(<span class="fstat-no" title="function not covered" >gv</span>o =&gt; <span class="cstat-no" title="statement not covered" >buildFilterOptionBlock(gvo, true, encode))</span>?.join('&amp;&amp;'));</span>
453
+ }
454
+ <span class="cstat-no" title="statement not covered" > return negationAndNesting(groupValues?.OR?.map(<span class="fstat-no" title="function not covered" >gv</span>o =&gt; <span class="cstat-no" title="statement not covered" >buildFilterOptionBlock(gvo, true, encode))</span>?.join('||'));</span>
455
+ }
456
+ // If neither valid OR nor AND exist, ignore the block
457
+ } else <span class="cstat-no" title="statement not covered" >if (opf?.values) {</span>
458
+ // Build the values filter block
459
+ const innerFilters = <span class="cstat-no" title="statement not covered" >[];</span>
460
+ <span class="cstat-no" title="statement not covered" > opf.values.forEach(<span class="fstat-no" title="function not covered" >op</span>fv =&gt; {</span>
461
+ <span class="cstat-no" title="statement not covered" > if (opf.path) {</span>
462
+ <span class="cstat-no" title="statement not covered" > innerFilters.push(`${opf.path}${opf.comparator ?? '=='}${opfv}`);</span>
463
+ } else {
464
+ <span class="cstat-no" title="statement not covered" > innerFilters.push(opfv);</span>
465
+ }
466
+ });
467
+ &nbsp;
468
+ <span class="cstat-no" title="statement not covered" > return conditionalEncodeURIComponent(innerFilters.join('||'), encode);</span>
469
+ } else <span class="cstat-no" title="statement not covered" >if (opf?.value) { // If no value OR values, then ignore</span>
470
+ <span class="cstat-no" title="statement not covered" > if (opf.path) {</span>
471
+ const filterString = <span class="cstat-no" title="statement not covered" >`${opf.path}${opf.comparator ?? '=='}${opf.value}`;</span>
472
+ <span class="cstat-no" title="statement not covered" > return conditionalEncodeURIComponent(filterString, encode);</span>
473
+ }
474
+ &nbsp;
475
+ <span class="cstat-no" title="statement not covered" > return conditionalEncodeURIComponent(opf.value, encode);</span>
476
+ }
477
+ &nbsp;
478
+ <span class="cstat-no" title="statement not covered" > return null;</span>
479
+ };
480
+ &nbsp;
481
+ const generateKiwtQueryParams = <span class="fstat-no" title="function not covered" >(o</span>ptions, nsValues, encode = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> =&gt; {
482
+ const { qindex, query, filters, sort } = <span class="cstat-no" title="statement not covered" >nsValues;</span>
332
483
  const {
333
484
  searchKey = <span class="branch-0 cbranch-no" title="branch not covered" >'',</span>
334
- filterConfig = [],
485
+ filterConfig = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
335
486
  /* Assumtion made that if no filterKey is provided then the given filterValues for that key are standalaone, ie require no comparator or key */
336
487
  filterKeys = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
337
- sortKeys = {},
488
+ sortKeys = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
338
489
  stats = <span class="branch-0 cbranch-no" title="branch not covered" >true,</span>
339
490
  /* Of the form [{ path: 'this.is.some.path', direction: 'asc'/'desc', value: 'someOverrideValue'}, ...]
340
491
  * If only path is passed then assume asc.
@@ -347,7 +498,13 @@
347
498
  path: 'this.is.some.path'
348
499
  comparator: '=='
349
500
  value: 'this is a value' //OR
350
- values: ['value1', 'value2']
501
+ values: ['value1', 'value2'] //OR
502
+ groupValues: { // This is an object containing objects either in groups of AND or OR. AND takes precedence
503
+ AND: [
504
+ // Objects of the same shape as an individual filters object, recursively.
505
+ ],
506
+ NOT: true // When this is set to true, the entire group is negated
507
+ }
351
508
  },
352
509
  ...
353
510
  ]
@@ -356,43 +513,33 @@
356
513
  * If no comparator is passed, it assumes '=='
357
514
  * Values overwrites value and will construct "filters=this.is.some.path==value1||this.is.some.path==value2"
358
515
  * Values WITHOUT path will construct "filters=value1||value2"
516
+ *
517
+ * GroupValues will override everything above, and group into brackets.
518
+ *
359
519
  * If more complex query building is desired, this should be done externally and passed in as a standalone 'value'
360
520
  */
361
521
  filters: optionsFilters,
362
522
  ...rest
363
- } = options;
523
+ } = <span class="cstat-no" title="statement not covered" >options;</span>
364
524
  &nbsp;
365
- const paramsArray = [];
525
+ const paramsArray = <span class="cstat-no" title="statement not covered" >[];</span>
366
526
  &nbsp;
367
- <span class="missing-if-branch" title="if path not taken" >I</span>if (query) {
368
- <span class="cstat-no" title="statement not covered" > paramsArray.push(...(qindex || searchKey).split(',')?.map(<span class="fstat-no" title="function not covered" >m </span>=&gt; <span class="cstat-no" title="statement not covered" >`match=${m}`)</span>);</span>
369
- <span class="cstat-no" title="statement not covered" > paramsArray.push(`term=${query}`);</span>
527
+ <span class="cstat-no" title="statement not covered" > if (query) {</span>
528
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(...(qindex || searchKey).split(',')?.map(<span class="fstat-no" title="function not covered" >m </span>=&gt; <span class="cstat-no" title="statement not covered" >`match=${conditionalEncodeURIComponent(m, encode)}`)</span>);</span>
529
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(`term=${conditionalEncodeURIComponent(query, encode)}`);</span>
370
530
  }
371
531
  &nbsp;
372
- <span class="missing-if-branch" title="else path not taken" >E</span>if (optionsFilters) {
373
- optionsFilters.forEach(opf =&gt; {
374
- <span class="missing-if-branch" title="if path not taken" >I</span>if (opf?.values) {
375
- // Build the values filter block
376
- const innerFilters = <span class="cstat-no" title="statement not covered" >[];</span>
377
- <span class="cstat-no" title="statement not covered" > opf.values.forEach(<span class="fstat-no" title="function not covered" >op</span>fv =&gt; {</span>
378
- <span class="cstat-no" title="statement not covered" > if (opf.path) {</span>
379
- <span class="cstat-no" title="statement not covered" > innerFilters.push(`${opf.path}${opf.comparator ?? '=='}${opfv}`);</span>
380
- } else {
381
- <span class="cstat-no" title="statement not covered" > innerFilters.push(opfv);</span>
382
- }
383
- });
384
- <span class="cstat-no" title="statement not covered" > paramsArray.push(`filters=${innerFilters.join('||')}`);</span>
385
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (opf?.value) { // If no value OR values, then ignore
386
- if (opf.path) {
387
- paramsArray.push(`filters=${opf.path}${opf.comparator ?? '=='}${opf.value}`);
388
- } else <span class="missing-if-branch" title="else path not taken" >E</span>{
389
- <span class="cstat-no" title="statement not covered" > paramsArray.push(`filters=${opf.value}`);</span>
390
- }
532
+ // Actually build the optionsFilters block (Moved logic to its own function to allow recursion)
533
+ <span class="cstat-no" title="statement not covered" > if (optionsFilters) {</span>
534
+ <span class="cstat-no" title="statement not covered" > optionsFilters.forEach(<span class="fstat-no" title="function not covered" >op</span>f =&gt; {</span>
535
+ const optionsBlock = <span class="cstat-no" title="statement not covered" >buildFilterOptionBlock(opf, false, encode);</span>
536
+ <span class="cstat-no" title="statement not covered" > if (optionsBlock) {</span>
537
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(`filters=${optionsBlock}`);</span>
391
538
  }
392
539
  });
393
540
  }
394
541
  &nbsp;
395
- <span class="missing-if-branch" title="if path not taken" >I</span>if (filters) {
542
+ <span class="cstat-no" title="statement not covered" > if (filters) {</span>
396
543
  const filterMap = <span class="cstat-no" title="statement not covered" >{};</span>
397
544
  <span class="cstat-no" title="statement not covered" > filters.split(',').forEach(<span class="fstat-no" title="function not covered" >fi</span>lter =&gt; {</span>
398
545
  const [filterName, ...filterRest] = <span class="cstat-no" title="statement not covered" >filter.trim()?.split('.');</span>
@@ -413,49 +560,52 @@
413
560
  <span class="cstat-no" title="statement not covered" > return `${filterName}==${fceValue ?? v}`;</span>
414
561
  }).join('||');
415
562
  &nbsp;
416
- <span class="cstat-no" title="statement not covered" > paramsArray.push(`filters=${filterString}`);</span>
563
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(`filters=${conditionalEncodeURIComponent(filterString, encode)}`);</span>
417
564
  } else <span class="cstat-no" title="statement not covered" >if (!filterKey) {</span>
418
565
  // These filters have no key mapping so we just pass the values to the backend as-is.
419
- <span class="cstat-no" title="statement not covered" > paramsArray.push(...filterValues?.map(<span class="fstat-no" title="function not covered" >f </span>=&gt; <span class="cstat-no" title="statement not covered" >`filters=${f}`)</span>);</span>
566
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(...filterValues?.map(<span class="fstat-no" title="function not covered" >f </span>=&gt; <span class="cstat-no" title="statement not covered" >`filters=${conditionalEncodeURIComponent(f, encode)}`)</span>);</span>
420
567
  } else {
421
568
  const filterString = <span class="cstat-no" title="statement not covered" >filterValues.map(<span class="fstat-no" title="function not covered" >v </span>=&gt; <span class="cstat-no" title="statement not covered" >`${filterKey}==${v}`)</span>.join('||');</span>
422
- <span class="cstat-no" title="statement not covered" > paramsArray.push(`filters=${filterString}`);</span>
569
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(`filters=${conditionalEncodeURIComponent(filterString, encode)}`);</span>
423
570
  }
424
571
  });
425
572
  }
426
573
  &nbsp;
427
- <span class="missing-if-branch" title="else path not taken" >E</span>if (optionsSort &amp;&amp; optionsSort.length &gt; 0) {
428
- optionsSort.forEach(os =&gt; {
429
- <span class="missing-if-branch" title="if path not taken" >I</span>if (os.value) {
430
- <span class="cstat-no" title="statement not covered" > paramsArray.push(`sort=${os.value}`);</span>
431
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (os.path) { // If no path then ignore
432
- paramsArray.push(`sort=${os.path};${os.direction ?? 'asc'}`);
574
+ <span class="cstat-no" title="statement not covered" > if (optionsSort &amp;&amp; optionsSort.length &gt; 0) {</span>
575
+ <span class="cstat-no" title="statement not covered" > optionsSort.forEach(<span class="fstat-no" title="function not covered" >os</span> =&gt; {</span>
576
+ <span class="cstat-no" title="statement not covered" > if (os.value) {</span>
577
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(`sort=${conditionalEncodeURIComponent(os.value, encode)}`);</span>
578
+ } else <span class="cstat-no" title="statement not covered" >if (os.path) { // If no path then ignore</span>
579
+ const sortString = <span class="cstat-no" title="statement not covered" >`${os.path};${os.direction ?? 'asc'}`;</span>
580
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(`sort=${conditionalEncodeURIComponent(sortString, encode)}`);</span>
433
581
  }
434
582
  });
435
583
  }
436
584
  &nbsp;
437
- <span class="missing-if-branch" title="else path not taken" >E</span>if (sort) {
438
- paramsArray.push(...sort.trim()?.split(',').map(sortKey =&gt; {
439
- const descending = sortKey.startsWith('-');
440
- let term = sortKey.replace('-', '');
585
+ <span class="cstat-no" title="statement not covered" > if (sort) {</span>
586
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(...sort.trim()?.split(',').map(<span class="fstat-no" title="function not covered" >so</span>rtKey =&gt; {</span>
587
+ const descending = <span class="cstat-no" title="statement not covered" >sortKey.startsWith('-');</span>
588
+ let term = <span class="cstat-no" title="statement not covered" >sortKey.replace('-', '');</span>
441
589
  &nbsp;
442
- <span class="missing-if-branch" title="if path not taken" >I</span>if (term in sortKeys) {
590
+ <span class="cstat-no" title="statement not covered" > if (term in sortKeys) {</span>
443
591
  <span class="cstat-no" title="statement not covered" > term = term.replace(term, sortKeys[term]);</span>
444
592
  }
445
593
  &nbsp;
446
- return `sort=${term};${descending ? <span class="branch-0 cbranch-no" title="branch not covered" >'desc' </span>: 'asc'}`;
594
+ const sortString = <span class="cstat-no" title="statement not covered" >`${term};${descending ? 'desc' : 'asc'}`;</span>
595
+ &nbsp;
596
+ <span class="cstat-no" title="statement not covered" > return `sort=${conditionalEncodeURIComponent(sortString, encode)}`;</span>
447
597
  }));
448
598
  }
449
599
  &nbsp;
450
- <span class="missing-if-branch" title="if path not taken" >I</span>if (stats) {
600
+ <span class="cstat-no" title="statement not covered" > if (stats) {</span>
451
601
  <span class="cstat-no" title="statement not covered" > paramsArray.push('stats=true');</span>
452
602
  }
453
603
  &nbsp;
454
- for (const [key, value] of Object.entries(rest)) {
455
- paramsArray.push(`${key}=${value}`);
604
+ <span class="cstat-no" title="statement not covered" > for (const [key, value] of Object.entries(rest)) {</span>
605
+ <span class="cstat-no" title="statement not covered" > paramsArray.push(`${key}=${conditionalEncodeURIComponent(value, encode)}`);</span>
456
606
  }
457
607
  &nbsp;
458
- return paramsArray;
608
+ <span class="cstat-no" title="statement not covered" > return paramsArray;</span>
459
609
  };
460
610
  &nbsp;
461
611
  export default generateKiwtQueryParams;
@@ -466,7 +616,7 @@ export default generateKiwtQueryParams;
466
616
  <div class='footer quiet pad2 space-top1 center small'>
467
617
  Code coverage generated by
468
618
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
469
- at 2022-11-22T09:57:19.883Z
619
+ at 2022-12-09T15:17:50.295Z
470
620
  </div>
471
621
  <script src="../prettify.js"></script>
472
622
  <script>
@@ -76,15 +76,15 @@
76
76
  <a name='L11'></a><a href='#L11'>11</a>
77
77
  <a name='L12'></a><a href='#L12'>12</a>
78
78
  <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
80
- <span class="cline-any cline-yes">2x</span>
81
- <span class="cline-any cline-yes">8x</span>
82
- <span class="cline-any cline-yes">8x</span>
79
+ <a name='L14'></a><a href='#L14'>14</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
80
+ <span class="cline-any cline-yes">4x</span>
81
+ <span class="cline-any cline-yes">48x</span>
82
+ <span class="cline-any cline-yes">48x</span>
83
83
  <span class="cline-any cline-neutral">&nbsp;</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
86
- <span class="cline-any cline-yes">8x</span>
87
- <span class="cline-any cline-yes">8x</span>
86
+ <span class="cline-any cline-yes">48x</span>
87
+ <span class="cline-any cline-yes">48x</span>
88
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
90
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -109,7 +109,7 @@ export default groupCustomPropertiesByCtx;
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
112
- at 2022-11-22T09:57:19.883Z
112
+ at 2022-12-09T15:17:50.295Z
113
113
  </div>
114
114
  <script src="../prettify.js"></script>
115
115
  <script>
@@ -107,7 +107,7 @@
107
107
  <a name='L42'></a><a href='#L42'>42</a>
108
108
  <a name='L43'></a><a href='#L43'>43</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
109
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-yes">7x</span>
110
+ <span class="cline-any cline-yes">3x</span>
111
111
  <span class="cline-any cline-no">&nbsp;</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
113
113
  <span class="cline-any cline-no">&nbsp;</span>
@@ -125,7 +125,7 @@
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-yes">7x</span>
128
+ <span class="cline-any cline-yes">3x</span>
129
129
  <span class="cline-any cline-no">&nbsp;</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
131
  <span class="cline-any cline-no">&nbsp;</span>
@@ -196,7 +196,7 @@ export {
196
196
  <div class='footer quiet pad2 space-top1 center small'>
197
197
  Code coverage generated by
198
198
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
199
- at 2022-11-22T09:57:19.883Z
199
+ at 2022-12-09T15:17:50.295Z
200
200
  </div>
201
201
  <script src="../prettify.js"></script>
202
202
  <script>