@k-int/stripes-kint-components 5.16.0 → 5.18.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.
- package/CHANGELOG.md +20 -0
- package/LICENSE +1 -1
- package/es/index.js +24 -12
- package/es/lib/EditableSettingsList/EditableSettingsList.js +4 -3
- package/es/lib/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js +110 -0
- package/es/lib/EditableSettingsList/{EditableSettingsListFieldArray.test.js → EditableSettingsListFieldArray/EditableSettingsListFieldArray.test.js} +3 -4
- package/es/lib/EditableSettingsList/EditableSettingsListFieldArray/index.js +13 -0
- package/es/lib/EditableSettingsList/SettingField/{EditSettingValue.js → EditSettingValue/EditSettingValue.js} +2 -2
- package/es/lib/EditableSettingsList/SettingField/{EditSettingValue.test.js → EditSettingValue/EditSettingValue.test.js} +2 -3
- package/es/lib/EditableSettingsList/SettingField/EditSettingValue/index.js +13 -0
- package/es/lib/EditableSettingsList/SettingField/{RenderSettingValue.js → RenderSettingValue/RenderSettingValue.js} +1 -1
- package/es/lib/EditableSettingsList/SettingField/{RenderSettingValue.test.js → RenderSettingValue/RenderSettingValue.test.js} +2 -2
- package/es/lib/EditableSettingsList/SettingField/RenderSettingValue/index.js +13 -0
- package/es/lib/EditableSettingsList/SettingField/SettingField.js +5 -5
- package/es/lib/EditableSettingsList/SettingField/SettingField.test.js +54 -44
- package/es/lib/EditableSettingsList/index.js +12 -0
- package/es/lib/SASQLookupComponent/SASQLookupComponent.js +26 -9
- package/es/lib/SASQViewComponent/SASQViewComponent.js +21 -7
- package/es/lib/SettingPage/SettingPage.js +3 -1
- package/es/lib/SettingPage/{SettingPagePane.js → SettingPagePane/SettingPagePane.js} +2 -2
- package/es/lib/SettingPage/SettingPagePane/index.js +13 -0
- package/es/lib/settingsHooks/useAppSettings/index.js +13 -0
- package/es/lib/settingsHooks/{useAppSettings.js → useAppSettings/useAppSettings.js} +1 -1
- package/es/lib/settingsHooks/useSettingSection/index.js +13 -0
- package/es/lib/settingsHooks/{useSettingSection.js → useSettingSection/useSettingSection.js} +1 -1
- package/es/lib/settingsHooks/useSettings/index.js +13 -0
- package/es/lib/settingsHooks/{useSettings.js → useSettings/useSettings.js} +10 -9
- package/package.json +1 -1
- package/src/index.js +4 -3
- package/src/lib/ActionList/README.md +18 -18
- package/src/lib/EditableSettingsList/EditableSettingsList.js +3 -2
- package/src/lib/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js +118 -0
- package/src/lib/EditableSettingsList/{EditableSettingsListFieldArray.test.js → EditableSettingsListFieldArray/EditableSettingsListFieldArray.test.js} +3 -5
- package/src/lib/EditableSettingsList/EditableSettingsListFieldArray/README.md +68 -0
- package/src/lib/EditableSettingsList/EditableSettingsListFieldArray/index.js +1 -0
- package/src/lib/EditableSettingsList/README.md +74 -0
- package/src/lib/EditableSettingsList/SettingField/{EditSettingValue.js → EditSettingValue/EditSettingValue.js} +2 -2
- package/src/lib/EditableSettingsList/SettingField/{EditSettingValue.test.js → EditSettingValue/EditSettingValue.test.js} +2 -5
- package/src/lib/EditableSettingsList/SettingField/EditSettingValue/README.md +63 -0
- package/src/lib/EditableSettingsList/SettingField/EditSettingValue/index.js +1 -0
- package/src/lib/EditableSettingsList/SettingField/README.md +61 -0
- package/src/lib/EditableSettingsList/SettingField/{RenderSettingValue.js → RenderSettingValue/RenderSettingValue.js} +1 -1
- package/src/lib/EditableSettingsList/SettingField/{RenderSettingValue.test.js → RenderSettingValue/RenderSettingValue.test.js} +2 -2
- package/src/lib/EditableSettingsList/SettingField/RenderSettingValue/index.js +1 -0
- package/src/lib/EditableSettingsList/SettingField/SettingField.js +5 -3
- package/src/lib/EditableSettingsList/SettingField/SettingField.test.js +65 -44
- package/src/lib/EditableSettingsList/index.js +1 -1
- package/src/lib/SASQLookupComponent/SASQLookupComponent.js +21 -10
- package/src/lib/SASQViewComponent/SASQViewComponent.js +17 -8
- package/src/lib/SettingPage/README.md +66 -0
- package/src/lib/SettingPage/SettingPage.js +3 -1
- package/src/lib/SettingPage/SettingPagePane/README.md +31 -0
- package/src/lib/SettingPage/{SettingPagePane.js → SettingPagePane/SettingPagePane.js} +2 -2
- package/src/lib/SettingPage/SettingPagePane/index.js +1 -0
- package/src/lib/settingsHooks/useAppSettings/index.js +1 -0
- package/src/lib/settingsHooks/{useAppSettings.js → useAppSettings/useAppSettings.js} +1 -1
- package/src/lib/settingsHooks/useSettingSection/README.md +54 -0
- package/src/lib/settingsHooks/useSettingSection/index.js +1 -0
- package/src/lib/settingsHooks/{useSettingSection.js → useSettingSection/useSettingSection.js} +1 -1
- package/src/lib/settingsHooks/useSettings/README.md +84 -0
- package/src/lib/settingsHooks/useSettings/index.js +1 -0
- package/src/lib/settingsHooks/{useSettings.js → useSettings/useSettings.js} +10 -7
- package/es/lib/EditableSettingsList/EditableSettingsListFieldArray.js +0 -57
- package/src/lib/EditableSettingsList/EditableSettingsListFieldArray.js +0 -58
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
# [5.18.0](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.17.0...v5.18.0) (2025-04-04)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* 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))
|
|
7
|
+
* Fixed tests and running issues ([699ebcb](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/699ebcbdf66244ed6f3f816bb21f3d5d16a9a215))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* 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))
|
|
13
|
+
|
|
14
|
+
# [5.17.0](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.16.0...v5.17.0) (2025-03-14)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* Added the ability to generate a custom queryNamespace on SASQLookup and SASQView components ([df68645](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/df686452ed854fffc7724bad40a6b4de2d651a42))
|
|
20
|
+
|
|
1
21
|
# [5.16.0](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.15.0...v5.16.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
|
|
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
|
@@ -335,18 +335,6 @@ Object.keys(_hooks).forEach(function (key) {
|
|
|
335
335
|
}
|
|
336
336
|
});
|
|
337
337
|
});
|
|
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
338
|
var _utils = require("./lib/utils");
|
|
351
339
|
Object.keys(_utils).forEach(function (key) {
|
|
352
340
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -373,6 +361,30 @@ Object.keys(_validators).forEach(function (key) {
|
|
|
373
361
|
});
|
|
374
362
|
var _contexts = require("./lib/contexts");
|
|
375
363
|
var _SettingPage = require("./lib/SettingPage");
|
|
364
|
+
var _EditableSettingsList = require("./lib/EditableSettingsList");
|
|
365
|
+
Object.keys(_EditableSettingsList).forEach(function (key) {
|
|
366
|
+
if (key === "default" || key === "__esModule") return;
|
|
367
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
368
|
+
if (key in exports && exports[key] === _EditableSettingsList[key]) return;
|
|
369
|
+
Object.defineProperty(exports, key, {
|
|
370
|
+
enumerable: true,
|
|
371
|
+
get: function () {
|
|
372
|
+
return _EditableSettingsList[key];
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
});
|
|
376
|
+
var _settingsHooks = require("./lib/settingsHooks");
|
|
377
|
+
Object.keys(_settingsHooks).forEach(function (key) {
|
|
378
|
+
if (key === "default" || key === "__esModule") return;
|
|
379
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
380
|
+
if (key in exports && exports[key] === _settingsHooks[key]) return;
|
|
381
|
+
Object.defineProperty(exports, key, {
|
|
382
|
+
enumerable: true,
|
|
383
|
+
get: function () {
|
|
384
|
+
return _settingsHooks[key];
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
});
|
|
376
388
|
var _ActionList = _interopRequireDefault(require("./lib/ActionList"));
|
|
377
389
|
var _EditableRefdataList = _interopRequireDefault(require("./lib/EditableRefdataList"));
|
|
378
390
|
var _EditableRefdataCategoryList = _interopRequireDefault(require("./lib/EditableRefdataCategoryList"));
|
|
@@ -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
|
}
|
package/es/lib/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js
ADDED
|
@@ -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("
|
|
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('
|
|
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\[
|
|
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("
|
|
12
|
-
var _hooks = require("
|
|
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("
|
|
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('
|
|
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("
|
|
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("
|
|
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('
|
|
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 =
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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 () {
|
|
@@ -27,6 +27,22 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
27
27
|
intlKey: passedIntlKey,
|
|
28
28
|
intlNS: passedIntlNS,
|
|
29
29
|
labelOverrides = {},
|
|
30
|
+
lookupQueryNamespaceGenerator = _ref => {
|
|
31
|
+
let {
|
|
32
|
+
currentPage,
|
|
33
|
+
namespace,
|
|
34
|
+
id: passedId,
|
|
35
|
+
query
|
|
36
|
+
} = _ref;
|
|
37
|
+
const queryNamespace = [namespace, 'SASQ'];
|
|
38
|
+
if (passedId) {
|
|
39
|
+
queryNamespace.push(passedId);
|
|
40
|
+
}
|
|
41
|
+
queryNamespace.push('viewAll');
|
|
42
|
+
queryNamespace.push(query);
|
|
43
|
+
queryNamespace.push(currentPage);
|
|
44
|
+
return queryNamespace;
|
|
45
|
+
},
|
|
30
46
|
mainPaneProps = {},
|
|
31
47
|
mclProps = {},
|
|
32
48
|
noSearchField,
|
|
@@ -79,20 +95,21 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
79
95
|
}, query ?? {}), [currentPage, fetchParameters.SASQ_MAP, query, queryParameterGenerator]);
|
|
80
96
|
const [filterPaneVisible, setFilterPaneVisible] = (0, _hooks.useLocalStorageState)(filterPaneVisibileKey, true);
|
|
81
97
|
const toggleFilterPane = () => setFilterPaneVisible(!filterPaneVisible);
|
|
82
|
-
const queryNamespace = [namespace, 'SASQ'];
|
|
83
|
-
if (id) {
|
|
84
|
-
queryNamespace.push(id);
|
|
85
|
-
}
|
|
86
|
-
queryNamespace.push('viewAll');
|
|
87
|
-
queryNamespace.push(query);
|
|
88
|
-
queryNamespace.push(currentPage);
|
|
89
98
|
const {
|
|
90
99
|
data = {},
|
|
91
100
|
...restOfQueryProps
|
|
92
|
-
} = (0, _reactQuery.useQuery)(
|
|
101
|
+
} = (0, _reactQuery.useQuery)(lookupQueryNamespaceGenerator({
|
|
102
|
+
currentPage,
|
|
103
|
+
endpoint: fetchParameters.endpoint,
|
|
104
|
+
namespace,
|
|
105
|
+
id,
|
|
106
|
+
query,
|
|
107
|
+
queryParams
|
|
108
|
+
}), () => {
|
|
93
109
|
return ky.get(`${fetchParameters.endpoint}${queryParams}`).json();
|
|
94
110
|
}, {
|
|
95
|
-
enabled: (!!query?.filters || !!query?.query) && !!currentPage
|
|
111
|
+
enabled: (!!query?.filters || !!query?.query) && !!currentPage,
|
|
112
|
+
...(fetchParameters.queryOptions ?? {})
|
|
96
113
|
});
|
|
97
114
|
(0, _react.useEffect)(() => {
|
|
98
115
|
if (count !== data?.totalRecords) {
|
|
@@ -19,6 +19,20 @@ const SASQViewComponent = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
19
19
|
match,
|
|
20
20
|
path,
|
|
21
21
|
ViewComponent,
|
|
22
|
+
viewQueryNamespaceGenerator = _ref2 => {
|
|
23
|
+
let {
|
|
24
|
+
namespace,
|
|
25
|
+
componentId,
|
|
26
|
+
id: passedId
|
|
27
|
+
} = _ref2;
|
|
28
|
+
const queryNamespace = [namespace, 'SASQ'];
|
|
29
|
+
if (componentId) {
|
|
30
|
+
queryNamespace.push(componentId);
|
|
31
|
+
}
|
|
32
|
+
queryNamespace.push('view');
|
|
33
|
+
queryNamespace.push(passedId);
|
|
34
|
+
return queryNamespace;
|
|
35
|
+
},
|
|
22
36
|
...props
|
|
23
37
|
} = _ref;
|
|
24
38
|
const {
|
|
@@ -27,17 +41,17 @@ const SASQViewComponent = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
27
41
|
|
|
28
42
|
// If itemEndpoint is available, use that, otherwise use standard endpoint
|
|
29
43
|
const endpoint = fetchParameters?.itemEndpoint ?? fetchParameters?.endpoint;
|
|
30
|
-
const queryNamespace = [namespace, 'SASQ'];
|
|
31
|
-
if (id) {
|
|
32
|
-
queryNamespace.push(id);
|
|
33
|
-
}
|
|
34
|
-
queryNamespace.push('view');
|
|
35
|
-
queryNamespace.push(match?.params?.id);
|
|
36
44
|
const ky = (0, _core.useOkapiKy)();
|
|
37
45
|
const {
|
|
38
46
|
data = {},
|
|
39
47
|
...rest
|
|
40
|
-
} = (0, _reactQuery.useQuery)(
|
|
48
|
+
} = (0, _reactQuery.useQuery)(viewQueryNamespaceGenerator({
|
|
49
|
+
componentId: id,
|
|
50
|
+
namespace,
|
|
51
|
+
endpoint,
|
|
52
|
+
id: match?.params?.id,
|
|
53
|
+
match
|
|
54
|
+
}), () => ky(`${endpoint}/${match?.params?.id}`).json(), {
|
|
41
55
|
enabled: !!match?.params?.id
|
|
42
56
|
});
|
|
43
57
|
(0, _react.useImperativeHandle)(ref, () => ({
|
|
@@ -21,7 +21,8 @@ const SettingPage = _ref => {
|
|
|
21
21
|
intlKey: passedIntlKey,
|
|
22
22
|
intlNS: passedIntlNS,
|
|
23
23
|
labelOverrides = {},
|
|
24
|
-
sectionName
|
|
24
|
+
sectionName,
|
|
25
|
+
render
|
|
25
26
|
} = _ref;
|
|
26
27
|
const {
|
|
27
28
|
settingEndpoint
|
|
@@ -43,6 +44,7 @@ const SettingPage = _ref => {
|
|
|
43
44
|
labelOverrides: labelOverrides,
|
|
44
45
|
onSave: handleSubmit,
|
|
45
46
|
onSubmit: handleSubmit,
|
|
47
|
+
render: render,
|
|
46
48
|
settingSection: sectionName
|
|
47
49
|
});
|
|
48
50
|
};
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
8
|
var _components = require("@folio/stripes/components");
|
|
9
|
-
var _utils = require("
|
|
10
|
-
var _hooks = require("
|
|
9
|
+
var _utils = require("../../utils");
|
|
10
|
+
var _hooks = require("../../hooks");
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
const SettingPagePane = _ref => {
|