@k-int/stripes-kint-components 4.5.0 → 4.6.0

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 (344) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +14 -0
  3. package/es/__mocks__/@folio/stripes/components.js +10 -21
  4. package/es/__mocks__/@folio/stripes/core.js +4 -7
  5. package/es/__mocks__/@folio/stripes/smart-components.js +4 -7
  6. package/es/__mocks__/react-query.js +4 -7
  7. package/es/__mocks__/react-router-dom.js +6 -7
  8. package/es/artifacts/coverage-jest/lcov-report/prettify.js +2 -2
  9. package/es/artifacts/coverage-jest/lcov-report/sorter.js +6 -6
  10. package/es/index.js +62 -49
  11. package/es/lib/ActionList/ActionList.js +38 -51
  12. package/es/lib/ActionList/ActionListFieldArray.js +143 -167
  13. package/es/lib/ActionList/index.js +1 -1
  14. package/es/lib/CustomProperties/Config/CustomPropertiesLookup.js +57 -77
  15. package/es/lib/CustomProperties/Config/CustomPropertiesLookup.test.js +15 -19
  16. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.js +111 -160
  17. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.test.js +30 -67
  18. package/es/lib/CustomProperties/Config/CustomPropertyForm.js +36 -48
  19. package/es/lib/CustomProperties/Config/CustomPropertyForm.test.js +83 -121
  20. package/es/lib/CustomProperties/Config/CustomPropertyView.js +9 -8
  21. package/es/lib/CustomProperties/Config/CustomPropertyView.test.js +48 -135
  22. package/es/lib/CustomProperties/Config/index.js +4 -4
  23. package/es/lib/CustomProperties/Edit/CustomPropertiesEdit.js +19 -21
  24. package/es/lib/CustomProperties/Edit/CustomPropertiesEdit.test.js +11 -16
  25. package/es/lib/CustomProperties/Edit/CustomPropertiesEditCtx.js +29 -27
  26. package/es/lib/CustomProperties/Edit/CustomPropertiesEditCtx.test.js +11 -16
  27. package/es/lib/CustomProperties/Edit/CustomPropertiesListField.js +86 -103
  28. package/es/lib/CustomProperties/Edit/CustomPropertiesListField.test.js +26 -63
  29. package/es/lib/CustomProperties/Edit/CustomPropertyField.js +123 -115
  30. package/es/lib/CustomProperties/Edit/CustomPropertyField.test.js +95 -176
  31. package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.js +43 -44
  32. package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.test.js +23 -27
  33. package/es/lib/CustomProperties/Edit/index.js +5 -5
  34. package/es/lib/CustomProperties/Edit/testResources.js +13 -35
  35. package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.js +60 -81
  36. package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.test.js +23 -57
  37. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.js +39 -54
  38. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.test.js +17 -16
  39. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js +27 -23
  40. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.test.js +18 -45
  41. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.js +18 -20
  42. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.test.js +23 -52
  43. package/es/lib/CustomProperties/Filter/CustomPropertiesRule.js +37 -41
  44. package/es/lib/CustomProperties/Filter/CustomPropertiesRule.test.js +77 -225
  45. package/es/lib/CustomProperties/Filter/index.js +6 -6
  46. package/es/lib/CustomProperties/Filter/testResources.js +12 -32
  47. package/es/lib/CustomProperties/Filter/useOperators.js +17 -16
  48. package/es/lib/CustomProperties/Filter/useParseActiveFilterStrings.js +17 -30
  49. package/es/lib/CustomProperties/Filter/useValueProps.js +22 -27
  50. package/es/lib/CustomProperties/View/CustomPropertiesView.js +19 -21
  51. package/es/lib/CustomProperties/View/CustomPropertiesView.test.js +11 -16
  52. package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.js +49 -57
  53. package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.test.js +14 -23
  54. package/es/lib/CustomProperties/View/CustomPropertyCard.js +17 -18
  55. package/es/lib/CustomProperties/View/index.js +3 -3
  56. package/es/lib/CustomProperties/View/testResources.js +4 -4
  57. package/es/lib/CustomProperties/index.js +18 -18
  58. package/es/lib/CycleButton/CycleButton.js +17 -32
  59. package/es/lib/CycleButton/index.js +1 -1
  60. package/es/lib/EditableRefdataCategoryList/EditableRefdataCategoryList.js +108 -150
  61. package/es/lib/EditableRefdataCategoryList/index.js +1 -1
  62. package/es/lib/EditableRefdataList/EditableRefdataList.js +127 -170
  63. package/es/lib/EditableRefdataList/index.js +1 -1
  64. package/es/lib/EditableSettingsList/EditableSettingsList.js +16 -13
  65. package/es/lib/EditableSettingsList/EditableSettingsListFieldArray.js +18 -25
  66. package/es/lib/EditableSettingsList/EditableSettingsListFieldArray.test.js +61 -90
  67. package/es/lib/EditableSettingsList/SettingField/EditSettingValue.js +21 -34
  68. package/es/lib/EditableSettingsList/SettingField/EditSettingValue.test.js +99 -83
  69. package/es/lib/EditableSettingsList/SettingField/RenderSettingValue.js +17 -19
  70. package/es/lib/EditableSettingsList/SettingField/RenderSettingValue.test.js +187 -275
  71. package/es/lib/EditableSettingsList/SettingField/SettingField.js +74 -109
  72. package/es/lib/EditableSettingsList/SettingField/SettingField.test.js +52 -157
  73. package/es/lib/EditableSettingsList/SettingField/index.js +3 -3
  74. package/es/lib/EditableSettingsList/index.js +3 -3
  75. package/es/lib/FormModal/FormModal.js +43 -46
  76. package/es/lib/FormModal/index.js +1 -1
  77. package/es/lib/FormattedKintMessage/FormattedKintMessage.js +23 -27
  78. package/es/lib/FormattedKintMessage/index.js +1 -1
  79. package/es/lib/IconSelect/IconSelect.js +48 -68
  80. package/es/lib/IconSelect/index.js +1 -1
  81. package/es/lib/NoResultsMessage/NoResultsMessage.js +18 -17
  82. package/es/lib/NoResultsMessage/index.js +1 -1
  83. package/es/lib/QueryTypedown/QueryTypedown.js +17 -38
  84. package/es/lib/QueryTypedown/index.js +1 -1
  85. package/es/lib/RefdataButtons/RefdataButtons.js +26 -29
  86. package/es/lib/RefdataButtons/index.js +1 -1
  87. package/es/lib/ResponsiveButtonGroup/ResponsiveButtonGroup.js +83 -88
  88. package/es/lib/ResponsiveButtonGroup/index.js +1 -1
  89. package/es/lib/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js +27 -40
  90. package/es/lib/RichSelect/RichSelect.js +70 -86
  91. package/es/lib/RichSelect/index.js +2 -2
  92. package/es/lib/RichSelect/useSelectedOption.js +3 -12
  93. package/es/lib/SASQLookupComponent/SASQLookupComponent.js +115 -137
  94. package/es/lib/SASQLookupComponent/TableBody/TableBody.js +39 -45
  95. package/es/lib/SASQLookupComponent/TableBody/index.js +1 -1
  96. package/es/lib/SASQLookupComponent/index.js +2 -2
  97. package/es/lib/SASQRoute/SASQRoute.js +31 -37
  98. package/es/lib/SASQRoute/index.js +1 -1
  99. package/es/lib/SASQViewComponent/SASQViewComponent.js +38 -45
  100. package/es/lib/SASQViewComponent/index.js +1 -1
  101. package/es/lib/SearchField/SearchField.js +10 -16
  102. package/es/lib/SearchField/index.js +1 -1
  103. package/es/lib/SettingPage/SettingPage.js +21 -20
  104. package/es/lib/SettingPage/SettingPagePane.js +8 -6
  105. package/es/lib/SettingPage/index.js +2 -2
  106. package/es/lib/SettingsFormContainer/SettingsFormContainer.js +87 -0
  107. package/es/lib/SettingsFormContainer/index.js +13 -0
  108. package/es/lib/Typedown/Typedown.js +61 -79
  109. package/es/lib/Typedown/index.js +1 -1
  110. package/es/lib/constants/customProperties.js +11 -11
  111. package/es/lib/constants/endpoints.js +9 -0
  112. package/es/lib/constants/eventCodes.js +3 -3
  113. package/es/lib/contexts/SettingsContext.js +1 -1
  114. package/es/lib/contexts/index.js +1 -1
  115. package/es/lib/hooks/__mocks__/index.js +9 -29
  116. package/es/lib/hooks/index.js +31 -17
  117. package/es/lib/hooks/typedownHooks/index.js +3 -3
  118. package/es/lib/hooks/typedownHooks/useTypedown.js +48 -48
  119. package/es/lib/hooks/typedownHooks/useTypedownData.js +11 -21
  120. package/es/lib/hooks/typedownHooks/useTypedownToggle.js +12 -20
  121. package/es/lib/hooks/useActiveElement.js +8 -17
  122. package/es/lib/hooks/useCustomProperties.js +22 -30
  123. package/es/lib/hooks/useHelperApp.js +30 -49
  124. package/es/lib/hooks/useIntlKey.js +3 -5
  125. package/es/lib/hooks/useIntlKeyStore.js +44 -49
  126. package/es/lib/hooks/useInvalidateRefdata.js +3 -5
  127. package/es/lib/hooks/useKintIntl.js +28 -31
  128. package/es/lib/hooks/useKiwtFieldArray.js +34 -45
  129. package/es/lib/hooks/useKiwtSASQuery.js +38 -48
  130. package/es/lib/hooks/useLocalStorageState.js +6 -18
  131. package/es/lib/hooks/useModConfigEntries.js +49 -0
  132. package/es/lib/hooks/useMutateCustomProperties.js +19 -62
  133. package/es/lib/hooks/useMutateModConfigEntry.js +40 -0
  134. package/es/lib/hooks/useMutateRefdataCategory.js +19 -60
  135. package/es/lib/hooks/useMutateRefdataValue.js +28 -65
  136. package/es/lib/hooks/useQIndex.js +12 -26
  137. package/es/lib/hooks/useRefdata.js +17 -19
  138. package/es/lib/hooks/useSASQQueryMeta.js +13 -20
  139. package/es/lib/hooks/useTemplates.js +13 -12
  140. package/es/lib/settingsHooks/index.js +3 -3
  141. package/es/lib/settingsHooks/useAppSettings.js +18 -25
  142. package/es/lib/settingsHooks/useSettingSection.js +16 -17
  143. package/es/lib/settingsHooks/useSettings.js +58 -72
  144. package/es/lib/utils/buildUrl.js +5 -5
  145. package/es/lib/utils/generateKiwtQuery.js +3 -3
  146. package/es/lib/utils/generateKiwtQueryParams.js +85 -93
  147. package/es/lib/utils/groupCustomPropertiesByCtx.js +8 -18
  148. package/es/lib/utils/highlightString.js +17 -37
  149. package/es/lib/utils/index.js +29 -15
  150. package/es/lib/utils/matchString.js +4 -8
  151. package/es/lib/utils/modConfigEntriesQueryKey.js +24 -0
  152. package/es/lib/utils/parseErrorResponse.js +22 -63
  153. package/es/lib/utils/parseKiwtQueryGroups.js +47 -19
  154. package/es/lib/utils/parseKiwtQueryGroups.test.js +54 -0
  155. package/es/lib/utils/parseModConfigEntry.js +21 -0
  156. package/es/lib/utils/refdataQueryKey.js +2 -2
  157. package/es/lib/utils/selectorSafe.js +3 -3
  158. package/es/lib/utils/sortByLabel.js +3 -3
  159. package/es/lib/utils/toCamelCase.js +7 -12
  160. package/es/lib/utils/typedownQueryKey.js +2 -2
  161. package/es/lib/validators/index.js +1 -1
  162. package/es/lib/validators/validators.js +22 -29
  163. package/junit.xml +167 -147
  164. package/package.json +1 -1
  165. package/src/artifacts/coverage-jest/lcov-report/ActionList/ActionList.js.html +11 -11
  166. package/src/artifacts/coverage-jest/lcov-report/ActionList/ActionListFieldArray.js.html +21 -21
  167. package/src/artifacts/coverage-jest/lcov-report/ActionList/index.html +17 -17
  168. package/src/artifacts/coverage-jest/lcov-report/ActionList/index.js.html +1 -1
  169. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertiesLookup.js.html +3 -3
  170. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertiesSettings.js.html +6 -6
  171. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertyForm.js.html +3 -3
  172. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertyView.js.html +3 -3
  173. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/index.html +1 -1
  174. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/index.js.html +1 -1
  175. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesEdit.js.html +3 -3
  176. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesEditCtx.js.html +3 -3
  177. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertiesListField.js.html +42 -42
  178. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertyField.js.html +3 -3
  179. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/CustomPropertyFormCard.js.html +3 -3
  180. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/index.html +1 -1
  181. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/index.js.html +1 -1
  182. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Edit/testResources.js.html +1 -1
  183. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilter.js.html +3 -3
  184. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterField.js.html +3 -3
  185. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js.html +3 -3
  186. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesFilterForm.js.html +3 -3
  187. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/CustomPropertiesRule.js.html +4 -4
  188. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/index.html +1 -1
  189. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/index.js.html +1 -1
  190. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/testResources.js.html +1 -1
  191. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useOperators.js.html +3 -3
  192. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useParseActiveFilterStrings.js.html +2 -2
  193. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Filter/useValueProps.js.html +3 -3
  194. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertiesView.js.html +3 -3
  195. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertiesViewCtx.js.html +3 -3
  196. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/CustomPropertyCard.js.html +9 -9
  197. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/index.html +11 -11
  198. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/index.js.html +1 -1
  199. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/View/testResources.js.html +1 -1
  200. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/index.html +1 -1
  201. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/index.js.html +1 -1
  202. package/src/artifacts/coverage-jest/lcov-report/CycleButton/CycleButton.js.html +9 -9
  203. package/src/artifacts/coverage-jest/lcov-report/CycleButton/index.html +11 -11
  204. package/src/artifacts/coverage-jest/lcov-report/CycleButton/index.js.html +1 -1
  205. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/EditableRefdataCategoryList.js.html +11 -11
  206. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/index.html +11 -11
  207. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataCategoryList/index.js.html +1 -1
  208. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/EditableRefdataList.js.html +11 -11
  209. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/index.html +11 -11
  210. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/index.js.html +1 -1
  211. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/EditableSettingsList.js.html +10 -10
  212. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/EditableSettingsListFieldArray.js.html +3 -3
  213. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/EditSettingValue.js.html +3 -3
  214. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/RenderSettingValue.js.html +3 -3
  215. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/SettingField.js.html +3 -3
  216. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/index.html +1 -1
  217. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/index.js.html +1 -1
  218. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/index.html +13 -13
  219. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/index.js.html +1 -1
  220. package/src/artifacts/coverage-jest/lcov-report/FormModal/FormModal.js.html +3 -3
  221. package/src/artifacts/coverage-jest/lcov-report/FormModal/index.html +1 -1
  222. package/src/artifacts/coverage-jest/lcov-report/FormModal/index.js.html +1 -1
  223. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/FormattedKintMessage.js.html +3 -3
  224. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/index.html +1 -1
  225. package/src/artifacts/coverage-jest/lcov-report/FormattedKintMessage/index.js.html +1 -1
  226. package/src/artifacts/coverage-jest/lcov-report/IconSelect/IconSelect.js.html +9 -9
  227. package/src/artifacts/coverage-jest/lcov-report/IconSelect/index.html +11 -11
  228. package/src/artifacts/coverage-jest/lcov-report/IconSelect/index.js.html +1 -1
  229. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/NoResultsMessage.js.html +9 -9
  230. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/index.html +11 -11
  231. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/index.js.html +1 -1
  232. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/QueryTypedown.js.html +9 -9
  233. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/index.html +11 -11
  234. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/index.js.html +1 -1
  235. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/RefdataButtons.js.html +3 -3
  236. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/index.html +1 -1
  237. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/index.js.html +1 -1
  238. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/ResponsiveButtonGroup.js.html +15 -15
  239. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/index.html +17 -17
  240. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/index.js.html +1 -1
  241. package/src/artifacts/coverage-jest/lcov-report/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js.html +7 -7
  242. package/src/artifacts/coverage-jest/lcov-report/RichSelect/RichSelect.js.html +9 -9
  243. package/src/artifacts/coverage-jest/lcov-report/RichSelect/index.html +17 -17
  244. package/src/artifacts/coverage-jest/lcov-report/RichSelect/index.js.html +1 -1
  245. package/src/artifacts/coverage-jest/lcov-report/RichSelect/useSelectedOption.js.html +7 -7
  246. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/SASQLookupComponent.js.html +9 -9
  247. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/TableBody.js.html +9 -9
  248. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/index.html +11 -11
  249. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/TableBody/index.js.html +1 -1
  250. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/index.html +11 -11
  251. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/index.js.html +1 -1
  252. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/SASQRoute.js.html +9 -9
  253. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/index.html +11 -11
  254. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/index.js.html +1 -1
  255. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/SASQViewComponent.js.html +9 -9
  256. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/index.html +11 -11
  257. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/index.js.html +1 -1
  258. package/src/artifacts/coverage-jest/lcov-report/SearchField/SearchField.js.html +12 -12
  259. package/src/artifacts/coverage-jest/lcov-report/SearchField/index.html +13 -13
  260. package/src/artifacts/coverage-jest/lcov-report/SearchField/index.js.html +1 -1
  261. package/src/artifacts/coverage-jest/lcov-report/SettingPage/SettingPage.js.html +9 -9
  262. package/src/artifacts/coverage-jest/lcov-report/SettingPage/SettingPagePane.js.html +10 -10
  263. package/src/artifacts/coverage-jest/lcov-report/SettingPage/index.html +18 -18
  264. package/src/artifacts/coverage-jest/lcov-report/SettingPage/index.js.html +1 -1
  265. package/src/artifacts/coverage-jest/lcov-report/SettingsFormContainer/SettingsFormContainer.js.html +337 -0
  266. package/src/artifacts/coverage-jest/lcov-report/SettingsFormContainer/index.html +131 -0
  267. package/src/artifacts/coverage-jest/lcov-report/SettingsFormContainer/index.js.html +88 -0
  268. package/src/artifacts/coverage-jest/lcov-report/Typedown/Typedown.js.html +9 -9
  269. package/src/artifacts/coverage-jest/lcov-report/Typedown/index.html +11 -11
  270. package/src/artifacts/coverage-jest/lcov-report/Typedown/index.js.html +1 -1
  271. package/src/artifacts/coverage-jest/lcov-report/constants/customProperties.js.html +12 -12
  272. package/src/artifacts/coverage-jest/lcov-report/constants/endpoints.js.html +91 -0
  273. package/src/artifacts/coverage-jest/lcov-report/constants/eventCodes.js.html +12 -12
  274. package/src/artifacts/coverage-jest/lcov-report/constants/index.html +28 -13
  275. package/src/artifacts/coverage-jest/lcov-report/contexts/SettingsContext.js.html +1 -1
  276. package/src/artifacts/coverage-jest/lcov-report/contexts/index.html +1 -1
  277. package/src/artifacts/coverage-jest/lcov-report/contexts/index.js.html +1 -1
  278. package/src/artifacts/coverage-jest/lcov-report/hooks/index.html +131 -101
  279. package/src/artifacts/coverage-jest/lcov-report/hooks/index.js.html +8 -2
  280. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/index.html +23 -23
  281. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/index.js.html +1 -1
  282. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedown.js.html +7 -7
  283. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedownData.js.html +7 -7
  284. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedownToggle.js.html +7 -7
  285. package/src/artifacts/coverage-jest/lcov-report/hooks/useActiveElement.js.html +7 -7
  286. package/src/artifacts/coverage-jest/lcov-report/hooks/useCustomProperties.js.html +9 -9
  287. package/src/artifacts/coverage-jest/lcov-report/hooks/useHelperApp.js.html +9 -9
  288. package/src/artifacts/coverage-jest/lcov-report/hooks/useIntlKey.js.html +8 -8
  289. package/src/artifacts/coverage-jest/lcov-report/hooks/useIntlKeyStore.js.html +21 -21
  290. package/src/artifacts/coverage-jest/lcov-report/hooks/useInvalidateRefdata.js.html +7 -7
  291. package/src/artifacts/coverage-jest/lcov-report/hooks/useKintIntl.js.html +10 -10
  292. package/src/artifacts/coverage-jest/lcov-report/hooks/useKiwtFieldArray.js.html +7 -7
  293. package/src/artifacts/coverage-jest/lcov-report/hooks/useKiwtSASQuery.js.html +9 -9
  294. package/src/artifacts/coverage-jest/lcov-report/hooks/useLocalStorageState.js.html +7 -7
  295. package/src/artifacts/coverage-jest/lcov-report/hooks/useModConfigEntries.js.html +226 -0
  296. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateCustomProperties.js.html +7 -7
  297. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateModConfigEntry.js.html +238 -0
  298. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateRefdataCategory.js.html +7 -7
  299. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateRefdataValue.js.html +7 -7
  300. package/src/artifacts/coverage-jest/lcov-report/hooks/useQIndex.js.html +7 -7
  301. package/src/artifacts/coverage-jest/lcov-report/hooks/useRefdata.js.html +9 -9
  302. package/src/artifacts/coverage-jest/lcov-report/hooks/useSASQQueryMeta.js.html +7 -7
  303. package/src/artifacts/coverage-jest/lcov-report/hooks/useTemplates.js.html +7 -7
  304. package/src/artifacts/coverage-jest/lcov-report/index.html +172 -157
  305. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/index.html +23 -23
  306. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/index.js.html +1 -1
  307. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/useAppSettings.js.html +7 -7
  308. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/useSettingSection.js.html +7 -7
  309. package/src/artifacts/coverage-jest/lcov-report/settingsHooks/useSettings.js.html +7 -7
  310. package/src/artifacts/coverage-jest/lcov-report/utils/buildUrl.js.html +1 -1
  311. package/src/artifacts/coverage-jest/lcov-report/utils/generateKiwtQuery.js.html +2 -2
  312. package/src/artifacts/coverage-jest/lcov-report/utils/generateKiwtQueryParams.js.html +4 -4
  313. package/src/artifacts/coverage-jest/lcov-report/utils/groupCustomPropertiesByCtx.js.html +2 -2
  314. package/src/artifacts/coverage-jest/lcov-report/utils/highlightString.js.html +3 -3
  315. package/src/artifacts/coverage-jest/lcov-report/utils/index.html +48 -18
  316. package/src/artifacts/coverage-jest/lcov-report/utils/index.js.html +11 -2
  317. package/src/artifacts/coverage-jest/lcov-report/utils/matchString.js.html +2 -2
  318. package/src/artifacts/coverage-jest/lcov-report/utils/modConfigEntriesQueryKey.js.html +142 -0
  319. package/src/artifacts/coverage-jest/lcov-report/utils/parseErrorResponse.js.html +2 -2
  320. package/src/artifacts/coverage-jest/lcov-report/utils/parseKiwtQueryGroups.js.html +161 -80
  321. package/src/artifacts/coverage-jest/lcov-report/utils/parseModConfigEntry.js.html +130 -0
  322. package/src/artifacts/coverage-jest/lcov-report/utils/refdataOptions.js.html +1 -1
  323. package/src/artifacts/coverage-jest/lcov-report/utils/refdataQueryKey.js.html +2 -2
  324. package/src/artifacts/coverage-jest/lcov-report/utils/selectorSafe.js.html +2 -2
  325. package/src/artifacts/coverage-jest/lcov-report/utils/sortByLabel.js.html +2 -2
  326. package/src/artifacts/coverage-jest/lcov-report/utils/toCamelCase.js.html +2 -2
  327. package/src/artifacts/coverage-jest/lcov-report/utils/typedownQueryKey.js.html +2 -2
  328. package/src/artifacts/coverage-jest/lcov-report/validators/index.html +1 -1
  329. package/src/artifacts/coverage-jest/lcov-report/validators/index.js.html +1 -1
  330. package/src/artifacts/coverage-jest/lcov-report/validators/validators.js.html +8 -8
  331. package/src/artifacts/coverage-jest/lcov.info +543 -385
  332. package/src/index.js +6 -0
  333. package/src/lib/SettingsFormContainer/SettingsFormContainer.js +84 -0
  334. package/src/lib/SettingsFormContainer/index.js +1 -0
  335. package/src/lib/constants/endpoints.js +2 -0
  336. package/src/lib/hooks/index.js +2 -0
  337. package/src/lib/hooks/useModConfigEntries.js +47 -0
  338. package/src/lib/hooks/useMutateModConfigEntry.js +51 -0
  339. package/src/lib/utils/index.js +3 -0
  340. package/src/lib/utils/modConfigEntriesQueryKey.js +19 -0
  341. package/src/lib/utils/parseKiwtQueryGroups.js +39 -12
  342. package/src/lib/utils/parseKiwtQueryGroups.test.js +60 -0
  343. package/src/lib/utils/parseModConfigEntry.js +15 -0
  344. package/test/jest/helpers/KintHarness.js +21 -4
@@ -0,0 +1,142 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for utils/modConfigEntriesQueryKey.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">utils</a> modConfigEntriesQueryKey.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">12.5% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>1/8</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/5</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">12.5% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>1/8</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">20x</span>
86
+ <span class="cline-any cline-neutral">&nbsp;</span>
87
+ <span class="cline-any cline-neutral">&nbsp;</span>
88
+ <span class="cline-any cline-neutral">&nbsp;</span>
89
+ <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-no">&nbsp;</span>
91
+ <span class="cline-any cline-neutral">&nbsp;</span>
92
+ <span class="cline-any cline-no">&nbsp;</span>
93
+ <span class="cline-any cline-no">&nbsp;</span>
94
+ <span class="cline-any cline-no">&nbsp;</span>
95
+ <span class="cline-any cline-neutral">&nbsp;</span>
96
+ <span class="cline-any cline-no">&nbsp;</span>
97
+ <span class="cline-any cline-no">&nbsp;</span>
98
+ <span class="cline-any cline-neutral">&nbsp;</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-no">&nbsp;</span>
101
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
+ <span class="cline-any cline-neutral">&nbsp;</span>
103
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const modConfigEntriesQueryKey = <span class="fstat-no" title="function not covered" >({</span>
105
+ configName,
106
+ moduleName,
107
+ namespaceAppend
108
+ } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> =&gt; {
109
+ const namespace = <span class="cstat-no" title="statement not covered" >['stripes-kint-components', 'modConfigSettings', moduleName, configName];</span>
110
+ &nbsp;
111
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray(namespaceAppend)) {</span>
112
+ <span class="cstat-no" title="statement not covered" > namespaceAppend.forEach(<span class="fstat-no" title="function not covered" >ap</span>pendItem =&gt; {</span>
113
+ <span class="cstat-no" title="statement not covered" > namespace.push(appendItem);</span>
114
+ });
115
+ } else <span class="cstat-no" title="statement not covered" >if (namespaceAppend) {</span>
116
+ <span class="cstat-no" title="statement not covered" > namespace.push(namespaceAppend);</span>
117
+ }
118
+ &nbsp;
119
+ <span class="cstat-no" title="statement not covered" > return namespace;</span>
120
+ };
121
+ &nbsp;
122
+ export default modConfigEntriesQueryKey;
123
+ &nbsp;</pre></td></tr></table></pre>
124
+
125
+ <div class='push'></div><!-- for sticky footer -->
126
+ </div><!-- /wrapper -->
127
+ <div class='footer quiet pad2 space-top1 center small'>
128
+ Code coverage generated by
129
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
130
+ at 2023-04-14T13:37:20.869Z
131
+ </div>
132
+ <script src="../prettify.js"></script>
133
+ <script>
134
+ window.onload = function () {
135
+ prettyPrint();
136
+ };
137
+ </script>
138
+ <script src="../sorter.js"></script>
139
+ <script src="../block-navigation.js"></script>
140
+ </body>
141
+ </html>
142
+
@@ -82,7 +82,7 @@
82
82
  <a name='L17'></a><a href='#L17'>17</a>
83
83
  <a name='L18'></a><a href='#L18'>18</a>
84
84
  <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
85
+ <a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">20x</span>
86
86
  <span class="cline-any cline-neutral">&nbsp;</span>
87
87
  <span class="cline-any cline-no">&nbsp;</span>
88
88
  <span class="cline-any cline-no">&nbsp;</span>
@@ -127,7 +127,7 @@ export default parseErrorResponse;
127
127
  <div class='footer quiet pad2 space-top1 center small'>
128
128
  Code coverage generated by
129
129
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
130
- at 2023-03-16T14:47:10.540Z
130
+ at 2023-04-14T13:37:20.869Z
131
131
  </div>
132
132
  <script src="../prettify.js"></script>
133
133
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">3.12% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1/32</span>
28
+ <span class='fraction'>32/32</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">94.73% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/19</span>
35
+ <span class='fraction'>18/19</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/4</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">3.12% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1/32</span>
49
+ <span class='fraction'>32/32</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -128,133 +128,214 @@
128
128
  <a name='L63'></a><a href='#L63'>63</a>
129
129
  <a name='L64'></a><a href='#L64'>64</a>
130
130
  <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
132
159
  <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-no">&nbsp;</span>
134
160
  <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-no">&nbsp;</span>
136
161
  <span class="cline-any cline-neutral">&nbsp;</span>
137
162
  <span class="cline-any cline-neutral">&nbsp;</span>
138
163
  <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-no">&nbsp;</span>
140
- <span class="cline-any cline-no">&nbsp;</span>
141
- <span class="cline-any cline-no">&nbsp;</span>
142
164
  <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-no">&nbsp;</span>
144
- <span class="cline-any cline-no">&nbsp;</span>
145
- <span class="cline-any cline-no">&nbsp;</span>
146
- <span class="cline-any cline-no">&nbsp;</span>
147
165
  <span class="cline-any cline-neutral">&nbsp;</span>
148
166
  <span class="cline-any cline-neutral">&nbsp;</span>
149
167
  <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-no">&nbsp;</span>
151
- <span class="cline-any cline-no">&nbsp;</span>
152
168
  <span class="cline-any cline-neutral">&nbsp;</span>
153
169
  <span class="cline-any cline-neutral">&nbsp;</span>
154
170
  <span class="cline-any cline-neutral">&nbsp;</span>
155
- <span class="cline-any cline-no">&nbsp;</span>
156
- <span class="cline-any cline-no">&nbsp;</span>
157
- <span class="cline-any cline-no">&nbsp;</span>
158
171
  <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-no">&nbsp;</span>
160
172
  <span class="cline-any cline-neutral">&nbsp;</span>
161
173
  <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-no">&nbsp;</span>
163
- <span class="cline-any cline-no">&nbsp;</span>
164
- <span class="cline-any cline-no">&nbsp;</span>
165
174
  <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-no">&nbsp;</span>
167
- <span class="cline-any cline-no">&nbsp;</span>
168
175
  <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-no">&nbsp;</span>
170
- <span class="cline-any cline-no">&nbsp;</span>
171
176
  <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-no">&nbsp;</span>
173
- <span class="cline-any cline-no">&nbsp;</span>
174
177
  <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-no">&nbsp;</span>
176
178
  <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-yes">21x</span>
177
180
  <span class="cline-any cline-neutral">&nbsp;</span>
178
181
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-no">&nbsp;</span>
180
182
  <span class="cline-any cline-neutral">&nbsp;</span>
181
183
  <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-no">&nbsp;</span>
183
184
  <span class="cline-any cline-neutral">&nbsp;</span>
184
185
  <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-no">&nbsp;</span>
186
186
  <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-yes">9x</span>
187
188
  <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-no">&nbsp;</span>
189
- <span class="cline-any cline-no">&nbsp;</span>
190
189
  <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-yes">9x</span>
191
191
  <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-no">&nbsp;</span>
193
192
  <span class="cline-any cline-neutral">&nbsp;</span>
193
+ <span class="cline-any cline-yes">9x</span>
194
+ <span class="cline-any cline-yes">9x</span>
195
+ <span class="cline-any cline-yes">18x</span>
194
196
  <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-yes">18x</span>
198
+ <span class="cline-any cline-yes">81x</span>
199
+ <span class="cline-any cline-yes">38x</span>
200
+ <span class="cline-any cline-yes">38x</span>
195
201
  <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const parseKiwtQueryGroups = <span class="fstat-no" title="function not covered" >(q</span>uery) =&gt; {
197
- // Split out all operators and brackets, but keeping them all intact in the correct potition.
198
- const splitString = <span class="cstat-no" title="statement not covered" >query.split(/(?&lt;=\|\||&amp;&amp;|\(|\))|(?=\|\||&amp;&amp;|\(|\))/);</span>
199
- // Keep track of what to skip over when wereturn from each level of nesting
200
- let skipCount = <span class="cstat-no" title="statement not covered" >[0];</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-yes">43x</span>
205
+ <span class="cline-any cline-yes">2x</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-neutral">&nbsp;</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-yes">41x</span>
210
+ <span class="cline-any cline-yes">79x</span>
211
+ <span class="cline-any cline-yes">38x</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-yes">41x</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-yes">41x</span>
217
+ <span class="cline-any cline-yes">25x</span>
218
+ <span class="cline-any cline-yes">16x</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-yes">7x</span>
221
+ <span class="cline-any cline-yes">7x</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">7x</span>
224
+ <span class="cline-any cline-yes">9x</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-yes">9x</span>
227
+ <span class="cline-any cline-yes">9x</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-yes">9x</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-yes">34x</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-yes">16x</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-yes">9x</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-yes">7x</span>
243
+ <span class="cline-any cline-yes">2x</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-yes">5x</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
251
+ * parseKiwtQueryGroups
252
+ * Given a string containing query groups like
253
+ * (foo == bar &amp;&amp; (bat == baz || bat == quux))
254
+ * parse it into a series of nested arrys like
255
+ * [
256
+ * foo == bar, &amp;&amp;
257
+ * [
258
+ * bat == baz, ||, bat == quux
259
+ * ]
260
+ * ]
261
+ * Nested groups are parsed recursively. There are four tokens:
262
+ * ||
263
+ * &amp;&amp;
264
+ * (
265
+ * )
266
+ *
267
+ * @param {string} query
268
+ * @returns [] tokenized query as a series of nested arrays
269
+ * @throws Error if parens are unmatched
270
+ */
271
+ const parseKiwtQueryGroups = (query) =&gt; {
272
+ // Split on tokens, keeping them all in tact in the correct position.
273
+ // This could be handled without the filter, which omits empty-string
274
+ // matches, using a look-behind:
275
+ // query.split(/(?&lt;=\|\||&amp;&amp;|\(|\))|(?=\|\||&amp;&amp;|\(|\))/);
276
+ // but Webkit hasn't implemented look-behind yet so that breaks Safari.
277
+ // https://bugs.webkit.org/show_bug.cgi?id=174931
278
+ // &lt;sigh&gt;
279
+ const splitString = query.split(/(\|\||&amp;&amp;|\(|\))/).filter(Boolean);
201
280
  &nbsp;
281
+ // Keep track of what to skip over when we return from each level of nesting
282
+ let skipCount = [0];
202
283
  &nbsp;
203
- // Ensure brackets are properly closed
204
- let unclosedBrackets = <span class="cstat-no" title="statement not covered" >0;</span>
205
- const groupParser = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>arseArray, nestLevel = <span class="branch-0 cbranch-no" title="branch not covered" >0)</span> =&gt; {</span>
206
- const group = <span class="cstat-no" title="statement not covered" >[];</span>
207
- // Iterate over each element in the array, recursively calling this when hitting brackets
208
- <span class="cstat-no" title="statement not covered" > parseArray?.every(<span class="fstat-no" title="function not covered" >(e</span>lement, index) =&gt; {</span>
209
- <span class="cstat-no" title="statement not covered" > if (skipCount[nestLevel] &gt; 0) {</span>
210
- <span class="cstat-no" title="statement not covered" > skipCount[nestLevel] -= 1;</span>
211
- <span class="cstat-no" title="statement not covered" > return true; </span>// Equivalent to BREAK -- move onto next element
284
+ // Ensure parens are properly closed
285
+ let unclosedParens = 0;
286
+ const groupParser = (parseArray, nestLevel = 0) =&gt; {
287
+ const group = [];
288
+ // Iterate over each element in the array, recursively calling this when hitting parens
289
+ parseArray?.every((element, index) =&gt; {
290
+ if (skipCount[nestLevel] &gt; 0) {
291
+ skipCount[nestLevel] -= 1;
292
+ return true; // Equivalent to BREAK -- move onto next element
212
293
  }
213
294
  &nbsp;
214
- // Deal with unexpected extra closure
215
- <span class="cstat-no" title="statement not covered" > if (nestLevel === 0 &amp;&amp; element === ')') {</span>
216
- <span class="cstat-no" title="statement not covered" > throw new Error('Unexpected character \')\' found, stopping parse.');</span>
295
+ // abort: dangling close-paren
296
+ if (nestLevel === 0 &amp;&amp; element === ')') {
297
+ throw new Error('Unexpected character \')\' found, stopping parse.');
217
298
  }
218
299
  &nbsp;
219
300
  // At the levels below all of the following will need
220
- <span class="cstat-no" title="statement not covered" > skipCount = skipCount?.map(<span class="fstat-no" title="function not covered" >(n</span>, i) =&gt; {</span>
221
- <span class="cstat-no" title="statement not covered" > if (i &lt; nestLevel) {</span>
222
- <span class="cstat-no" title="statement not covered" > return n + 1;</span>
301
+ skipCount = skipCount?.map((n, i) =&gt; {
302
+ if (i &lt; nestLevel) {
303
+ return n + 1;
223
304
  }
224
- <span class="cstat-no" title="statement not covered" > return n;</span>
305
+ return n;
225
306
  });
226
307
  &nbsp;
227
- <span class="cstat-no" title="statement not covered" > if (element !== '(' &amp;&amp; element !== ')') {</span>
228
- <span class="cstat-no" title="statement not covered" > group?.push(element);</span>
229
- } else <span class="cstat-no" title="statement not covered" >if (element === ')') {</span>
308
+ if (element !== '(' &amp;&amp; element !== ')') {
309
+ group?.push(element);
310
+ } else if (element === ')') {
230
311
  // Remove the corresponding skipCount level because we're going down a nesting level
231
- <span class="cstat-no" title="statement not covered" > skipCount.pop();</span>
232
- <span class="cstat-no" title="statement not covered" > unclosedBrackets -= 1;</span>
312
+ skipCount.pop();
313
+ unclosedParens -= 1;
233
314
  &nbsp;
234
- <span class="cstat-no" title="statement not covered" > return false; </span>// Equivalent to BREAK -- go up a nesting level
235
- } else <span class="cstat-no" title="statement not covered" >if (element === '(') {</span>
315
+ return false; // Equivalent to BREAK -- go up a nesting level
316
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>if (element === '(') {
236
317
  // Add next index to skipcount for the nesting
237
- <span class="cstat-no" title="statement not covered" > skipCount.push(0);</span>
238
- <span class="cstat-no" title="statement not covered" > unclosedBrackets += 1;</span>
318
+ skipCount.push(0);
319
+ unclosedParens += 1;
239
320
  &nbsp;
240
- <span class="cstat-no" title="statement not covered" > group.push(groupParser(parseArray.slice(index + 1, parseArray?.length), nestLevel + 1));</span>
321
+ group.push(groupParser(parseArray.slice(index + 1, parseArray?.length), nestLevel + 1));
241
322
  }
242
323
  &nbsp;
243
324
  // If all is well, continue on parsing
244
- <span class="cstat-no" title="statement not covered" > return true;</span>
325
+ return true;
245
326
  });
246
327
  &nbsp;
247
- <span class="cstat-no" title="statement not covered" > return group;</span>
328
+ return group;
248
329
  };
249
330
  &nbsp;
250
- const outputGroups = <span class="cstat-no" title="statement not covered" >groupParser(splitString);</span>
331
+ const outputGroups = groupParser(splitString);
251
332
  &nbsp;
252
- // Deal with unclosed parentheses
253
- <span class="cstat-no" title="statement not covered" > if (unclosedBrackets &gt; 0) {</span>
254
- <span class="cstat-no" title="statement not covered" > throw new Error('Found unclosed paretheses, stopping parse.');</span>
333
+ // abort: dangling open-paren
334
+ if (unclosedParens &gt; 0) {
335
+ throw new Error('Found unclosed paretheses, stopping parse.');
255
336
  }
256
337
  &nbsp;
257
- <span class="cstat-no" title="statement not covered" > return outputGroups;</span>
338
+ return outputGroups;
258
339
  };
259
340
  &nbsp;
260
341
  export default parseKiwtQueryGroups;
@@ -265,7 +346,7 @@ export default parseKiwtQueryGroups;
265
346
  <div class='footer quiet pad2 space-top1 center small'>
266
347
  Code coverage generated by
267
348
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
268
- at 2023-03-16T14:47:10.540Z
349
+ at 2023-04-14T13:37:20.869Z
269
350
  </div>
270
351
  <script src="../prettify.js"></script>
271
352
  <script>
@@ -0,0 +1,130 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for utils/parseModConfigEntry.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">utils</a> parseModConfigEntry.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">14.28% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>1/7</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/2</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">14.28% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>1/7</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">20x</span>
82
+ <span class="cline-any cline-no">&nbsp;</span>
83
+ <span class="cline-any cline-no">&nbsp;</span>
84
+ <span class="cline-any cline-no">&nbsp;</span>
85
+ <span class="cline-any cline-no">&nbsp;</span>
86
+ <span class="cline-any cline-neutral">&nbsp;</span>
87
+ <span class="cline-any cline-neutral">&nbsp;</span>
88
+ <span class="cline-any cline-no">&nbsp;</span>
89
+ <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span>
91
+ <span class="cline-any cline-neutral">&nbsp;</span>
92
+ <span class="cline-any cline-no">&nbsp;</span>
93
+ <span class="cline-any cline-neutral">&nbsp;</span>
94
+ <span class="cline-any cline-neutral">&nbsp;</span>
95
+ <span class="cline-any cline-neutral">&nbsp;</span>
96
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const parseModConfigEntry = <span class="fstat-no" title="function not covered" >(s</span>etting) =&gt; {
97
+ let parsedSettings = <span class="cstat-no" title="statement not covered" >{};</span>
98
+ <span class="cstat-no" title="statement not covered" > if (setting.value) {</span>
99
+ <span class="cstat-no" title="statement not covered" > try {</span>
100
+ <span class="cstat-no" title="statement not covered" > parsedSettings = JSON.parse(setting.value);</span>
101
+ } catch (error) {
102
+ // Error parsing settings JSON
103
+ <span class="cstat-no" title="statement not covered" > console.error(error); </span>// eslint-disable-line no-console
104
+ }
105
+ }
106
+ &nbsp;
107
+ <span class="cstat-no" title="statement not covered" > return parsedSettings;</span>
108
+ };
109
+ &nbsp;
110
+ export default parseModConfigEntry;
111
+ &nbsp;</pre></td></tr></table></pre>
112
+
113
+ <div class='push'></div><!-- for sticky footer -->
114
+ </div><!-- /wrapper -->
115
+ <div class='footer quiet pad2 space-top1 center small'>
116
+ Code coverage generated by
117
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
+ at 2023-04-14T13:37:20.869Z
119
+ </div>
120
+ <script src="../prettify.js"></script>
121
+ <script>
122
+ window.onload = function () {
123
+ prettyPrint();
124
+ };
125
+ </script>
126
+ <script src="../sorter.js"></script>
127
+ <script src="../block-navigation.js"></script>
128
+ </body>
129
+ </html>
130
+