@k-int/stripes-kint-components 5.17.0 → 5.19.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 (129) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE +1 -1
  3. package/es/index.js +32 -12
  4. package/es/lib/EditableSettingsList/EditableSettingsList.js +4 -3
  5. package/es/lib/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js +110 -0
  6. package/es/lib/EditableSettingsList/{EditableSettingsListFieldArray.test.js → EditableSettingsListFieldArray/EditableSettingsListFieldArray.test.js} +3 -4
  7. package/es/lib/EditableSettingsList/EditableSettingsListFieldArray/index.js +13 -0
  8. package/es/lib/EditableSettingsList/SettingField/{EditSettingValue.js → EditSettingValue/EditSettingValue.js} +2 -2
  9. package/es/lib/EditableSettingsList/SettingField/{EditSettingValue.test.js → EditSettingValue/EditSettingValue.test.js} +2 -3
  10. package/es/lib/EditableSettingsList/SettingField/EditSettingValue/index.js +13 -0
  11. package/es/lib/EditableSettingsList/SettingField/{RenderSettingValue.js → RenderSettingValue/RenderSettingValue.js} +1 -1
  12. package/es/lib/EditableSettingsList/SettingField/{RenderSettingValue.test.js → RenderSettingValue/RenderSettingValue.test.js} +2 -2
  13. package/es/lib/EditableSettingsList/SettingField/RenderSettingValue/index.js +13 -0
  14. package/es/lib/EditableSettingsList/SettingField/SettingField.js +5 -5
  15. package/es/lib/EditableSettingsList/SettingField/SettingField.test.js +54 -44
  16. package/es/lib/EditableSettingsList/index.js +12 -0
  17. package/es/lib/SASQLookupComponent/SASQLookupComponent.js +5 -1
  18. package/es/lib/SearchKeyControl/SearchKeyControl.js +95 -0
  19. package/es/lib/SearchKeyControl/SearchKeyControl.test.js +177 -0
  20. package/es/lib/SearchKeyControl/index.js +13 -0
  21. package/es/lib/SettingPage/SettingPage.js +3 -1
  22. package/es/lib/SettingPage/{SettingPagePane.js → SettingPagePane/SettingPagePane.js} +2 -2
  23. package/es/lib/SettingPage/SettingPagePane/index.js +13 -0
  24. package/es/lib/hooks/__mocks__/index.js +2 -2
  25. package/es/lib/hooks/index.js +33 -21
  26. package/es/lib/hooks/intlHooks/index.js +27 -0
  27. package/es/lib/hooks/intlHooks/useIntlKey/index.js +13 -0
  28. package/es/lib/hooks/{useIntlKey.js → intlHooks/useIntlKey/useIntlKey.js} +1 -1
  29. package/es/lib/hooks/intlHooks/useIntlKeyStore/index.js +13 -0
  30. package/es/lib/hooks/intlHooks/useKintIntl/index.js +13 -0
  31. package/es/lib/hooks/{useKintIntl.js → intlHooks/useKintIntl/useKintIntl.js} +1 -1
  32. package/es/lib/hooks/useInvalidateRefdata/index.js +13 -0
  33. package/es/lib/hooks/{useInvalidateRefdata.js → useInvalidateRefdata/useInvalidateRefdata.js} +1 -1
  34. package/es/lib/hooks/useMutateCustomProperties/index.js +13 -0
  35. package/es/lib/hooks/{useMutateCustomProperties.js → useMutateCustomProperties/useMutateCustomProperties.js} +1 -1
  36. package/es/lib/hooks/useMutateGeneric/index.js +13 -0
  37. package/es/lib/hooks/useMutateRefdataCategory/index.js +13 -0
  38. package/es/lib/hooks/{useMutateRefdataCategory.js → useMutateRefdataCategory/useMutateRefdataCategory.js} +2 -2
  39. package/es/lib/hooks/useMutateRefdataValue/index.js +13 -0
  40. package/es/lib/hooks/{useMutateRefdataValue.js → useMutateRefdataValue/useMutateRefdataValue.js} +2 -2
  41. package/es/lib/settingsHooks/useAppSettings/index.js +13 -0
  42. package/es/lib/settingsHooks/{useAppSettings.js → useAppSettings/useAppSettings.js} +1 -1
  43. package/es/lib/settingsHooks/useSettingSection/index.js +13 -0
  44. package/es/lib/settingsHooks/{useSettingSection.js → useSettingSection/useSettingSection.js} +1 -1
  45. package/es/lib/settingsHooks/useSettings/index.js +13 -0
  46. package/es/lib/settingsHooks/{useSettings.js → useSettings/useSettings.js} +10 -9
  47. package/es/lib/utils/refdataQueryKey/index.js +13 -0
  48. package/package.json +1 -1
  49. package/src/index.js +8 -3
  50. package/src/lib/ActionList/README.md +18 -18
  51. package/src/lib/EditableSettingsList/EditableSettingsList.js +3 -2
  52. package/src/lib/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js +118 -0
  53. package/src/lib/EditableSettingsList/{EditableSettingsListFieldArray.test.js → EditableSettingsListFieldArray/EditableSettingsListFieldArray.test.js} +3 -5
  54. package/src/lib/EditableSettingsList/EditableSettingsListFieldArray/README.md +68 -0
  55. package/src/lib/EditableSettingsList/EditableSettingsListFieldArray/index.js +1 -0
  56. package/src/lib/EditableSettingsList/README.md +74 -0
  57. package/src/lib/EditableSettingsList/SettingField/{EditSettingValue.js → EditSettingValue/EditSettingValue.js} +2 -2
  58. package/src/lib/EditableSettingsList/SettingField/{EditSettingValue.test.js → EditSettingValue/EditSettingValue.test.js} +2 -5
  59. package/src/lib/EditableSettingsList/SettingField/EditSettingValue/README.md +63 -0
  60. package/src/lib/EditableSettingsList/SettingField/EditSettingValue/index.js +1 -0
  61. package/src/lib/EditableSettingsList/SettingField/README.md +61 -0
  62. package/src/lib/EditableSettingsList/SettingField/{RenderSettingValue.js → RenderSettingValue/RenderSettingValue.js} +1 -1
  63. package/src/lib/EditableSettingsList/SettingField/{RenderSettingValue.test.js → RenderSettingValue/RenderSettingValue.test.js} +2 -2
  64. package/src/lib/EditableSettingsList/SettingField/RenderSettingValue/index.js +1 -0
  65. package/src/lib/EditableSettingsList/SettingField/SettingField.js +5 -3
  66. package/src/lib/EditableSettingsList/SettingField/SettingField.test.js +65 -44
  67. package/src/lib/EditableSettingsList/index.js +1 -1
  68. package/src/lib/NumberField/README.md +134 -0
  69. package/src/lib/SASQLookupComponent/README.md +172 -0
  70. package/src/lib/SASQLookupComponent/SASQLookupComponent.js +6 -1
  71. package/src/lib/SASQLookupComponent/TableBody/README.md +113 -0
  72. package/src/lib/SASQRoute/README.md +49 -18
  73. package/src/lib/SASQViewComponent/README.md +132 -0
  74. package/src/lib/SearchKeyControl/README.md +70 -0
  75. package/src/lib/SearchKeyControl/SearchKeyControl.js +98 -0
  76. package/src/lib/SearchKeyControl/SearchKeyControl.test.js +165 -0
  77. package/src/lib/SearchKeyControl/index.js +1 -0
  78. package/src/lib/SettingPage/README.md +66 -0
  79. package/src/lib/SettingPage/SettingPage.js +3 -1
  80. package/src/lib/SettingPage/SettingPagePane/README.md +31 -0
  81. package/src/lib/SettingPage/{SettingPagePane.js → SettingPagePane/SettingPagePane.js} +2 -2
  82. package/src/lib/SettingPage/SettingPagePane/index.js +1 -0
  83. package/src/lib/hooks/README.md +26 -121
  84. package/src/lib/hooks/__mocks__/index.js +2 -2
  85. package/src/lib/hooks/index.js +2 -3
  86. package/src/lib/hooks/intlHooks/README.md +31 -0
  87. package/src/lib/hooks/intlHooks/index.js +3 -0
  88. package/src/lib/hooks/intlHooks/useIntlKey/README.md +23 -0
  89. package/src/lib/hooks/intlHooks/useIntlKey/index.js +1 -0
  90. package/src/lib/hooks/{useIntlKey.js → intlHooks/useIntlKey/useIntlKey.js} +1 -1
  91. package/src/lib/hooks/intlHooks/useIntlKeyStore/README.md +32 -0
  92. package/src/lib/hooks/intlHooks/useIntlKeyStore/index.js +1 -0
  93. package/src/lib/hooks/intlHooks/useKintIntl/README.md +42 -0
  94. package/src/lib/hooks/intlHooks/useKintIntl/index.js +1 -0
  95. package/src/lib/hooks/{useKintIntl.js → intlHooks/useKintIntl/useKintIntl.js} +1 -1
  96. package/src/lib/hooks/useInvalidateRefdata/README.md +72 -0
  97. package/src/lib/hooks/useInvalidateRefdata/index.js +1 -0
  98. package/src/lib/hooks/{useInvalidateRefdata.js → useInvalidateRefdata/useInvalidateRefdata.js} +1 -1
  99. package/src/lib/hooks/useMutateCustomProperties/README.md +88 -0
  100. package/src/lib/hooks/useMutateCustomProperties/index.js +1 -0
  101. package/src/lib/hooks/{useMutateCustomProperties.js → useMutateCustomProperties/useMutateCustomProperties.js} +1 -1
  102. package/src/lib/hooks/useMutateGeneric/README.md +187 -0
  103. package/src/lib/hooks/useMutateGeneric/index.js +1 -0
  104. package/src/lib/hooks/useMutateRefdataCategory/README.md +85 -0
  105. package/src/lib/hooks/useMutateRefdataCategory/index.js +1 -0
  106. package/src/lib/hooks/{useMutateRefdataCategory.js → useMutateRefdataCategory/useMutateRefdataCategory.js} +2 -2
  107. package/src/lib/hooks/useMutateRefdataValue/README.md +154 -0
  108. package/src/lib/hooks/useMutateRefdataValue/index.js +1 -0
  109. package/src/lib/hooks/{useMutateRefdataValue.js → useMutateRefdataValue/useMutateRefdataValue.js} +2 -2
  110. package/src/lib/settingsHooks/useAppSettings/README.md +24 -0
  111. package/src/lib/settingsHooks/useAppSettings/index.js +1 -0
  112. package/src/lib/settingsHooks/{useAppSettings.js → useAppSettings/useAppSettings.js} +1 -1
  113. package/src/lib/settingsHooks/useSettingSection/README.md +54 -0
  114. package/src/lib/settingsHooks/useSettingSection/index.js +1 -0
  115. package/src/lib/settingsHooks/{useSettingSection.js → useSettingSection/useSettingSection.js} +1 -1
  116. package/src/lib/settingsHooks/useSettings/README.md +84 -0
  117. package/src/lib/settingsHooks/useSettings/index.js +1 -0
  118. package/src/lib/settingsHooks/{useSettings.js → useSettings/useSettings.js} +10 -7
  119. package/src/lib/utils/refdataQueryKey/README.md +38 -0
  120. package/src/lib/utils/refdataQueryKey/index.js +1 -0
  121. package/styles/SearchKeyControl.css +14 -0
  122. package/es/lib/EditableSettingsList/EditableSettingsListFieldArray.js +0 -57
  123. package/src/lib/EditableSettingsList/EditableSettingsListFieldArray.js +0 -58
  124. /package/es/lib/hooks/{useIntlKeyStore.js → intlHooks/useIntlKeyStore/useIntlKeyStore.js} +0 -0
  125. /package/es/lib/hooks/{useMutateGeneric.js → useMutateGeneric/useMutateGeneric.js} +0 -0
  126. /package/es/lib/utils/{refdataQueryKey.js → refdataQueryKey/refdataQueryKey.js} +0 -0
  127. /package/src/lib/hooks/{useIntlKeyStore.js → intlHooks/useIntlKeyStore/useIntlKeyStore.js} +0 -0
  128. /package/src/lib/hooks/{useMutateGeneric.js → useMutateGeneric/useMutateGeneric.js} +0 -0
  129. /package/src/lib/utils/{refdataQueryKey.js → refdataQueryKey/refdataQueryKey.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ # [5.19.0](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.18.0...v5.19.0) (2025-04-16)
2
+
3
+
4
+ ### Features
5
+
6
+ * SearchKeyControl ([ebc5f7b](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/ebc5f7b597974347ab3bdebd811038e02ebe50e1))
7
+
8
+ # [5.18.0](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.17.0...v5.18.0) (2025-04-04)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * Change README table formatting (actually a doc change, but here to try and force through a patch update pipeline on gitlab) ([d0452d1](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/d0452d128297d962f39f9095f157da95faa5f061))
14
+ * Fixed tests and running issues ([699ebcb](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/699ebcbdf66244ed6f3f816bb21f3d5d16a9a215))
15
+
16
+
17
+ ### Features
18
+
19
+ * Added "render" prop which allows for specialised rendering on a setting-by-setting case in EditableSettingsList. ([9d1eaa3](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/9d1eaa316f1f1e84347f643369fa7126dd6f104b))
20
+
1
21
  # [5.17.0](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.16.0...v5.17.0) (2025-03-14)
2
22
 
3
23
 
package/LICENSE CHANGED
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright [yyyy] [name of copyright owner]
189
+ Copyright 2018-2025 Knowledge Integration Ltd
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
package/es/index.js CHANGED
@@ -13,6 +13,7 @@ var _exportNames = {
13
13
  Typedown: true,
14
14
  QueryTypedown: true,
15
15
  SearchField: true,
16
+ SearchKeyControl: true,
16
17
  SASQRoute: true,
17
18
  SASQLookupComponent: true,
18
19
  SASQTableBody: true,
@@ -268,6 +269,12 @@ Object.defineProperty(exports, "SearchField", {
268
269
  return _SearchField.default;
269
270
  }
270
271
  });
272
+ Object.defineProperty(exports, "SearchKeyControl", {
273
+ enumerable: true,
274
+ get: function () {
275
+ return _SearchKeyControl.default;
276
+ }
277
+ });
271
278
  Object.defineProperty(exports, "SettingPage", {
272
279
  enumerable: true,
273
280
  get: function () {
@@ -335,18 +342,6 @@ Object.keys(_hooks).forEach(function (key) {
335
342
  }
336
343
  });
337
344
  });
338
- var _settingsHooks = require("./lib/settingsHooks");
339
- Object.keys(_settingsHooks).forEach(function (key) {
340
- if (key === "default" || key === "__esModule") return;
341
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
342
- if (key in exports && exports[key] === _settingsHooks[key]) return;
343
- Object.defineProperty(exports, key, {
344
- enumerable: true,
345
- get: function () {
346
- return _settingsHooks[key];
347
- }
348
- });
349
- });
350
345
  var _utils = require("./lib/utils");
351
346
  Object.keys(_utils).forEach(function (key) {
352
347
  if (key === "default" || key === "__esModule") return;
@@ -373,12 +368,37 @@ Object.keys(_validators).forEach(function (key) {
373
368
  });
374
369
  var _contexts = require("./lib/contexts");
375
370
  var _SettingPage = require("./lib/SettingPage");
371
+ var _EditableSettingsList = require("./lib/EditableSettingsList");
372
+ Object.keys(_EditableSettingsList).forEach(function (key) {
373
+ if (key === "default" || key === "__esModule") return;
374
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
375
+ if (key in exports && exports[key] === _EditableSettingsList[key]) return;
376
+ Object.defineProperty(exports, key, {
377
+ enumerable: true,
378
+ get: function () {
379
+ return _EditableSettingsList[key];
380
+ }
381
+ });
382
+ });
383
+ var _settingsHooks = require("./lib/settingsHooks");
384
+ Object.keys(_settingsHooks).forEach(function (key) {
385
+ if (key === "default" || key === "__esModule") return;
386
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
387
+ if (key in exports && exports[key] === _settingsHooks[key]) return;
388
+ Object.defineProperty(exports, key, {
389
+ enumerable: true,
390
+ get: function () {
391
+ return _settingsHooks[key];
392
+ }
393
+ });
394
+ });
376
395
  var _ActionList = _interopRequireDefault(require("./lib/ActionList"));
377
396
  var _EditableRefdataList = _interopRequireDefault(require("./lib/EditableRefdataList"));
378
397
  var _EditableRefdataCategoryList = _interopRequireDefault(require("./lib/EditableRefdataCategoryList"));
379
398
  var _Typedown = _interopRequireDefault(require("./lib/Typedown"));
380
399
  var _QueryTypedown = _interopRequireDefault(require("./lib/QueryTypedown"));
381
400
  var _SearchField = _interopRequireDefault(require("./lib/SearchField"));
401
+ var _SearchKeyControl = _interopRequireDefault(require("./lib/SearchKeyControl"));
382
402
  var _SASQRoute = _interopRequireDefault(require("./lib/SASQRoute"));
383
403
  var _SASQLookupComponent = require("./lib/SASQLookupComponent");
384
404
  var _SASQViewComponent = _interopRequireDefault(require("./lib/SASQViewComponent"));
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
8
  var _reactFinalFormArrays = require("react-final-form-arrays");
10
9
  var _reactFinalForm = require("react-final-form");
@@ -22,7 +21,8 @@ const EditableSettingsList = _ref => {
22
21
  intlNS: passedIntlNS,
23
22
  label,
24
23
  labelOverrides = {},
25
- onSave
24
+ onSave,
25
+ render // Experimental idea, allow unique rendering per setting?
26
26
  } = _ref;
27
27
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Form, {
28
28
  enableReinitialize: true,
@@ -49,7 +49,8 @@ const EditableSettingsList = _ref => {
49
49
  label: label,
50
50
  labelOverrides: labelOverrides,
51
51
  name: "settings",
52
- onSave: onSave
52
+ onSave: onSave,
53
+ render: render
53
54
  })
54
55
  });
55
56
  }
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _reactFinalForm = require("react-final-form");
10
+ var _SettingField = require("../SettingField");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const EditableSettingsListField = _ref => {
14
+ let {
15
+ allowEdit,
16
+ data,
17
+ fields,
18
+ handleSave,
19
+ index,
20
+ intlKey,
21
+ intlNS,
22
+ labelOverrides,
23
+ render,
24
+ setting
25
+ } = _ref;
26
+ // Handle editing or not at this level
27
+ const [editing, setEditing] = (0, _react.useState)(false);
28
+ const settingData = (0, _react.useMemo)(() => ({
29
+ currentSetting: fields.value[index],
30
+ ...fields
31
+ }), [fields, index]);
32
+ const DefaultField = (0, _react.useCallback)(() => {
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
34
+ allowEdit: allowEdit,
35
+ component: _SettingField.SettingField,
36
+ "data-testid": `editableSettingsListFieldArray[${index}]`,
37
+ editing: editing,
38
+ intlKey: intlKey,
39
+ intlNS: intlNS,
40
+ labelOverrides: labelOverrides,
41
+ name: setting,
42
+ onSave: () => handleSave(index),
43
+ setEditing: setEditing,
44
+ settingData: settingData
45
+ }, setting);
46
+ }, [allowEdit, editing, handleSave, index, intlKey, intlNS, labelOverrides, setting, settingData]);
47
+ return render({
48
+ allowEdit,
49
+ data,
50
+ DefaultField,
51
+ editing,
52
+ fields,
53
+ handleSave,
54
+ index,
55
+ intlKey,
56
+ intlNS,
57
+ setEditing,
58
+ setting,
59
+ settingData,
60
+ SettingFieldComponent: _SettingField.SettingField
61
+ });
62
+ };
63
+ const EditableSettingsListFieldArray = _ref2 => {
64
+ let {
65
+ allowEdit: passedAllowEdit = true,
66
+ data: passedData,
67
+ fields: passedFields,
68
+ intlKey: passedIntlKey,
69
+ intlNS: passedIntlNS,
70
+ labelOverrides = {},
71
+ onSave,
72
+ render = _ref3 => {
73
+ let {
74
+ DefaultField
75
+ } = _ref3;
76
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(DefaultField, {});
77
+ }
78
+ } = _ref2;
79
+ const handleSave = index => {
80
+ const setting = passedFields.value[index];
81
+ return onSave(setting);
82
+ };
83
+ return passedFields.map((setting, i) => {
84
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditableSettingsListField, {
85
+ allowEdit: passedAllowEdit,
86
+ data: passedData,
87
+ fields: passedFields,
88
+ handleSave: handleSave,
89
+ index: i,
90
+ intlKey: passedIntlKey,
91
+ intlNS: passedIntlNS,
92
+ labelOverrides: labelOverrides,
93
+ render: render,
94
+ setting: setting
95
+ });
96
+ });
97
+ };
98
+ EditableSettingsListFieldArray.propTypes = {
99
+ allowEdit: _propTypes.default.bool,
100
+ fields: _propTypes.default.object,
101
+ intlKey: _propTypes.default.string,
102
+ intlNS: _propTypes.default.string,
103
+ labelOverrides: _propTypes.default.object,
104
+ onSave: _propTypes.default.func,
105
+ data: _propTypes.default.shape({
106
+ refdatavalues: _propTypes.default.arrayOf(_propTypes.default.object)
107
+ }),
108
+ initialValues: _propTypes.default.object
109
+ };
110
+ var _default = exports.default = EditableSettingsListFieldArray;
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _react = _interopRequireDefault(require("react"));
4
3
  var _stripesErmTesting = require("@folio/stripes-erm-testing");
5
4
  var _reactFinalFormArrays = require("react-final-form-arrays");
6
5
  var _EditableSettingsListFieldArray = _interopRequireDefault(require("./EditableSettingsListFieldArray"));
7
- var _helpers = require("../../../test/jest/helpers");
6
+ var _helpers = require("../../../../test/jest/helpers");
8
7
  var _jsxRuntime = require("react/jsx-runtime");
9
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
9
  const onSubmit = jest.fn();
11
- jest.mock('./SettingField', () => ({
10
+ jest.mock('../SettingField', () => ({
12
11
  SettingField: () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
13
12
  children: "SettingField"
14
13
  })
@@ -57,7 +56,7 @@ describe('EditableSettingsListFieldArray', () => {
57
56
  const {
58
57
  queryAllByTestId
59
58
  } = renderComponent;
60
- expect(queryAllByTestId(/editableSettingsListFieldArray\[.*\]/).length).toEqual(0);
59
+ expect(queryAllByTestId(/editableSettingsListFieldArray\[.*]/).length).toEqual(0);
61
60
  });
62
61
  });
63
62
  describe('with initial value set', () => {
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _EditableSettingsListFieldArray.default;
10
+ }
11
+ });
12
+ var _EditableSettingsListFieldArray = _interopRequireDefault(require("./EditableSettingsListFieldArray"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -8,8 +8,8 @@ var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _reactFinalForm = require("react-final-form");
10
10
  var _components = require("@folio/stripes/components");
11
- var _RefdataButtons = _interopRequireDefault(require("../../RefdataButtons"));
12
- var _hooks = require("../../hooks");
11
+ var _RefdataButtons = _interopRequireDefault(require("../../../RefdataButtons"));
12
+ var _hooks = require("../../../hooks");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  const EditSettingValue = props => {
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
 
3
- var _react = _interopRequireDefault(require("react"));
4
3
  var _stripesErmTesting = require("@folio/stripes-erm-testing");
5
4
  var _EditSettingValue = _interopRequireDefault(require("./EditSettingValue"));
6
- var _helpers = require("../../../../test/jest/helpers");
5
+ var _helpers = require("../../../../../test/jest/helpers");
7
6
  var _jsxRuntime = require("react/jsx-runtime");
8
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
8
  const onSubmit = jest.fn();
10
- jest.mock('../../hooks');
9
+ jest.mock('../../../hooks');
11
10
  const stringSetting = {
12
11
  id: '12345',
13
12
  key: 'testSettingKey',
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _EditSettingValue.default;
10
+ }
11
+ });
12
+ var _EditSettingValue = _interopRequireDefault(require("./EditSettingValue"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
- var _hooks = require("../../hooks");
8
+ var _hooks = require("../../../hooks");
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  const RenderSettingValue = props => {
11
11
  const {
@@ -2,10 +2,10 @@
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
4
  var _RenderSettingValue = _interopRequireDefault(require("./RenderSettingValue"));
5
- var _helpers = require("../../../../test/jest/helpers");
5
+ var _helpers = require("../../../../../test/jest/helpers");
6
6
  var _jsxRuntime = require("react/jsx-runtime");
7
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
- jest.mock('../../hooks');
8
+ jest.mock('../../../hooks');
9
9
  const stringSetting = {
10
10
  id: '12345',
11
11
  key: 'testSettingKey',
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _RenderSettingValue.default;
10
+ }
11
+ });
12
+ var _RenderSettingValue = _interopRequireDefault(require("./RenderSettingValue"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = require("react");
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _components = require("@folio/stripes/components");
10
10
  var _EditSettingValue = _interopRequireDefault(require("./EditSettingValue"));
@@ -15,20 +15,19 @@ var _utils = require("../../utils");
15
15
  var _renderHelpText = _interopRequireDefault(require("../../../../styles/renderHelpText.css"));
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
18
  const SettingField = settingFieldProps => {
21
19
  const {
22
20
  allowEdit = true,
21
+ editing,
23
22
  intlKey: passedIntlKey,
24
23
  intlNS: passedIntlNS,
25
24
  labelOverrides = {},
26
25
  onSave,
26
+ setEditing,
27
27
  settingData: {
28
28
  currentSetting
29
29
  } = {}
30
30
  } = settingFieldProps;
31
- const [editing, setEditing] = (0, _react.useState)(false);
32
31
  const kintIntl = (0, _hooks.useKintIntl)(passedIntlKey, passedIntlNS);
33
32
  const {
34
33
  refdataEndpoint,
@@ -42,7 +41,8 @@ const SettingField = settingFieldProps => {
42
41
  endpoint: refdataEndpoint,
43
42
  desc: currentSetting.vocab,
44
43
  queryParams: {
45
- enabled: !!currentSetting?.vocab && currentSetting.settingType === 'Refdata'
44
+ enabled: !!currentSetting?.vocab && currentSetting.settingType === 'Refdata',
45
+ staleTime: 1000 * 60 * 2 // 2 minutes staletime for refdata in settings?
46
46
  }
47
47
  });
48
48
  const templates = (0, _hooks.useTemplates)({
@@ -24,52 +24,62 @@ const setting = {
24
24
  settingType: 'String',
25
25
  value: 'diku-shared'
26
26
  };
27
+ const setEditing = jest.fn();
28
+ let renderComponent;
27
29
  describe('SettingField', () => {
28
- let renderComponent;
29
- beforeEach(async () => {
30
- renderComponent = (0, _helpers.renderWithKintHarness)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_stripesErmTesting.TestForm, {
31
- initialValues: {},
32
- onSubmit: onSubmit,
33
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
34
- component: _SettingField.default,
35
- name: "test",
36
- onSave: onSave,
37
- settingData: {
38
- currentSetting: setting
39
- }
40
- })
41
- }));
42
- });
43
- it('renders RenderSettingValue', async () => {
44
- const {
45
- getByText
46
- } = renderComponent;
47
- await (0, _react2.waitFor)(async () => expect(await getByText('RenderSettingValue')).toBeInTheDocument());
48
- });
49
- test('renders the edit button', () => {
50
- (0, _stripesErmTesting.Button)('Edit').exists();
51
- });
52
- it('clicking edit/save works as expected', async () => {
53
- const {
54
- findByText
55
- } = renderComponent;
56
- // before clicking on edit button, we should be rendering setting value
57
- await (0, _react2.waitFor)(async () => expect(await findByText('RenderSettingValue')).toBeInTheDocument());
58
-
59
- // Clicking edit button
60
- await (0, _react2.waitFor)(async () => {
61
- await (0, _stripesErmTesting.Button)('Edit').click();
30
+ describe.each([{
31
+ editing: false,
32
+ expectedRender: 'RenderSettingValue',
33
+ expectedButton: 'Edit',
34
+ expectedCallback: setEditing
35
+ }, {
36
+ editing: true,
37
+ expectedRender: 'EditSettingValue',
38
+ expectedButton: 'Save',
39
+ expectedCallback: onSave
40
+ }])('render SettingField with editing: editing', _ref => {
41
+ let {
42
+ editing,
43
+ expectedButton,
44
+ expectedCallback,
45
+ expectedRender
46
+ } = _ref;
47
+ beforeEach(async () => {
48
+ setEditing.mockClear();
49
+ onSave.mockClear();
50
+ renderComponent = (0, _helpers.renderWithKintHarness)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_stripesErmTesting.TestForm, {
51
+ initialValues: {},
52
+ onSubmit: onSubmit,
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
54
+ component: _SettingField.default,
55
+ editing: editing,
56
+ name: "test",
57
+ onSave: onSave,
58
+ setEditing: setEditing,
59
+ settingData: {
60
+ currentSetting: setting
61
+ }
62
+ })
63
+ }));
62
64
  });
63
-
64
- // Should be rendering the "edit" for a setting value
65
- await (0, _react2.waitFor)(async () => expect(await findByText('EditSettingValue')).toBeInTheDocument());
66
-
67
- // Clicking save button
68
- await (0, _react2.waitFor)(async () => {
69
- await (0, _stripesErmTesting.Button)('Save').click();
65
+ it(`renders ${expectedRender}`, () => {
66
+ const {
67
+ getByText
68
+ } = renderComponent;
69
+ expect(getByText(expectedRender)).toBeInTheDocument();
70
+ });
71
+ test(`renders the ${expectedButton} button`, () => {
72
+ (0, _stripesErmTesting.Button)('Edit').exists();
73
+ });
74
+ describe(`clicking the ${expectedButton} button`, () => {
75
+ beforeEach(async () => {
76
+ await (0, _react2.waitFor)(async () => {
77
+ await (0, _stripesErmTesting.Button)(expectedButton).click();
78
+ });
79
+ });
80
+ it('fired expected callback', () => {
81
+ expect(expectedCallback).toHaveBeenCalled();
82
+ });
70
83
  });
71
-
72
- // Should be rendering the setting value again
73
- await (0, _react2.waitFor)(async () => expect(await findByText('RenderSettingValue')).toBeInTheDocument());
74
84
  });
75
85
  });
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "EditSettingValue", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _SettingField.EditSettingValue;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "EditableSettingsList", {
7
13
  enumerable: true,
8
14
  get: function () {
@@ -15,6 +21,12 @@ Object.defineProperty(exports, "EditableSettingsListFieldArray", {
15
21
  return _EditableSettingsListFieldArray.default;
16
22
  }
17
23
  });
24
+ Object.defineProperty(exports, "RenderSettingValue", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _SettingField.RenderSettingValue;
28
+ }
29
+ });
18
30
  Object.defineProperty(exports, "SettingField", {
19
31
  enumerable: true,
20
32
  get: function () {
@@ -14,6 +14,7 @@ var _components = require("@folio/stripes/components");
14
14
  var _utils = require("../utils");
15
15
  var _hooks = require("../hooks");
16
16
  var _TableBody = _interopRequireDefault(require("./TableBody"));
17
+ var _SearchKeyControl = _interopRequireDefault(require("../SearchKeyControl"));
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
20
  const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
@@ -53,8 +54,9 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
53
54
  rowNavigation = true,
54
55
  // Default navigation onRowClick
55
56
  sasqProps,
57
+ searchableIndexes,
56
58
  searchFieldAriaLabel,
57
- searchFieldProps
59
+ searchFieldProps = {}
58
60
  } = props;
59
61
  const kintIntl = (0, _hooks.useKintIntl)(passedIntlKey, passedIntlNS);
60
62
  const [count, setCount] = (0, _react.useState)(0);
@@ -201,6 +203,8 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
201
203
  onClear: searchHandlers.reset,
202
204
  value: searchValue.query,
203
205
  ...searchFieldProps
206
+ }), searchableIndexes.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SearchKeyControl.default, {
207
+ options: searchableIndexes
204
208
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
205
209
  buttonStyle: "primary",
206
210
  disabled: !searchValue.query,