@k-int/stripes-kint-components 5.27.0 → 5.28.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 (117) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/es/index.js +9 -68
  3. package/es/lib/FieldLabel/FieldLabel.js +34 -0
  4. package/es/lib/FieldLabel/index.js +13 -0
  5. package/es/lib/RefdataButtons/RefdataButtons.js +5 -2
  6. package/es/lib/{EditableRefdataCategoryList → Settings/EditableRefdataCategoryList}/EditableRefdataCategoryList.js +6 -6
  7. package/es/lib/{EditableRefdataList → Settings/EditableRefdataList}/EditableRefdataList.js +4 -4
  8. package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsListFieldArray/EditableSettingsListFieldArray.test.js +1 -1
  9. package/es/lib/Settings/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js +60 -0
  10. package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/EditSettingValue/EditSettingValue.test.js +10 -10
  11. package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/RenderSettingValue/RenderSettingValue.js +1 -1
  12. package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/RenderSettingValue/RenderSettingValue.test.js +2 -2
  13. package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/SettingField.js +3 -3
  14. package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/SettingField.test.js +2 -2
  15. package/es/lib/{RefdataCategoriesSettings → Settings/RefdataCategoriesSettings}/RefdataCategoriesSettings.js +2 -2
  16. package/es/lib/{SettingPage → Settings/SettingPage}/SettingPage.js +1 -1
  17. package/es/lib/{SettingPage → Settings/SettingPage}/SettingPagePane/SettingPagePane.js +2 -2
  18. package/es/lib/{SettingsFormContainer → Settings/SettingsFormContainer}/SettingsFormContainer.js +1 -1
  19. package/es/lib/Settings/StaticSettingsField/StaticSettingsField.js +89 -0
  20. package/es/lib/Settings/StaticSettingsField/index.js +13 -0
  21. package/es/lib/Settings/constants/index.js +16 -0
  22. package/es/lib/Settings/constants/queryKeys.js +12 -0
  23. package/es/lib/{settingsHooks → Settings/hooks}/index.js +17 -0
  24. package/es/lib/Settings/hooks/staticSettingsPages/index.js +27 -0
  25. package/es/lib/Settings/hooks/staticSettingsPages/useSettingCallout/index.js +13 -0
  26. package/es/lib/Settings/hooks/staticSettingsPages/useSettingCallout/useSettingCallout.js +59 -0
  27. package/es/lib/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/index.js +13 -0
  28. package/es/lib/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/useSettingsSectionInitalValues.js +33 -0
  29. package/es/lib/Settings/hooks/staticSettingsPages/useStaticSettingsSection.js +121 -0
  30. package/es/lib/{settingsHooks → Settings/hooks}/useAppSettings/useAppSettings.js +1 -1
  31. package/es/lib/{settingsHooks → Settings/hooks}/useSettingSection/useSettingSection.js +4 -3
  32. package/es/lib/{settingsHooks → Settings/hooks}/useSettings/useSettings.js +2 -2
  33. package/es/lib/Settings/index.js +107 -0
  34. package/package.json +1 -1
  35. package/src/index.js +5 -21
  36. package/src/lib/FieldLabel/FieldLabel.js +26 -0
  37. package/src/lib/FieldLabel/README.md +26 -0
  38. package/src/lib/FieldLabel/index.js +1 -0
  39. package/src/lib/RefdataButtons/RefdataButtons.js +5 -1
  40. package/src/lib/{EditableRefdataCategoryList → Settings/EditableRefdataCategoryList}/EditableRefdataCategoryList.js +6 -6
  41. package/src/lib/{EditableRefdataList → Settings/EditableRefdataList}/EditableRefdataList.js +4 -4
  42. package/src/lib/Settings/EditableRefdataList/README.md +26 -0
  43. package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsListFieldArray/EditableSettingsListFieldArray.test.js +1 -1
  44. package/src/lib/Settings/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js +50 -0
  45. package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/EditSettingValue/EditSettingValue.test.js +10 -10
  46. package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/RenderSettingValue/RenderSettingValue.js +1 -1
  47. package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/RenderSettingValue/RenderSettingValue.test.js +2 -2
  48. package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/SettingField.js +3 -3
  49. package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/SettingField.test.js +2 -2
  50. package/src/lib/{RefdataCategoriesSettings → Settings/RefdataCategoriesSettings}/RefdataCategoriesSettings.js +2 -2
  51. package/src/lib/{SettingPage → Settings/SettingPage}/SettingPage.js +1 -1
  52. package/src/lib/{SettingPage → Settings/SettingPage}/SettingPagePane/SettingPagePane.js +2 -2
  53. package/src/lib/{SettingsFormContainer → Settings/SettingsFormContainer}/SettingsFormContainer.js +1 -1
  54. package/src/lib/{EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js → Settings/StaticSettingsField/StaticSettingsField.js} +18 -40
  55. package/src/lib/Settings/StaticSettingsField/index.js +1 -0
  56. package/src/lib/Settings/constants/index.js +1 -0
  57. package/src/lib/Settings/constants/queryKeys.js +5 -0
  58. package/src/lib/{settingsHooks → Settings/hooks}/index.js +1 -0
  59. package/src/lib/Settings/hooks/staticSettingsPages/README.md +187 -0
  60. package/src/lib/Settings/hooks/staticSettingsPages/index.js +3 -0
  61. package/src/lib/Settings/hooks/staticSettingsPages/useSettingCallout/index.js +1 -0
  62. package/src/lib/Settings/hooks/staticSettingsPages/useSettingCallout/useSettingCallout.js +52 -0
  63. package/src/lib/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/index.js +1 -0
  64. package/src/lib/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/useSettingsSectionInitalValues.js +27 -0
  65. package/src/lib/Settings/hooks/staticSettingsPages/useStaticSettingsSection.js +100 -0
  66. package/src/lib/{settingsHooks → Settings/hooks}/useAppSettings/README.md +1 -1
  67. package/src/lib/{settingsHooks → Settings/hooks}/useAppSettings/useAppSettings.js +1 -1
  68. package/src/lib/{settingsHooks → Settings/hooks}/useSettingSection/useSettingSection.js +5 -3
  69. package/src/lib/{settingsHooks → Settings/hooks}/useSettings/useSettings.js +2 -2
  70. package/src/lib/Settings/index.js +28 -0
  71. package/test/jest/helpers/KintHarness.js +1 -1
  72. package/es/lib/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js +0 -107
  73. package/src/lib/EditableRefdataList/README.md +0 -26
  74. /package/es/lib/{EditableRefdataCategoryList → Settings/EditableRefdataCategoryList}/index.js +0 -0
  75. /package/es/lib/{EditableRefdataList → Settings/EditableRefdataList}/index.js +0 -0
  76. /package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsList.js +0 -0
  77. /package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js +0 -0
  78. /package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsListFieldArray/index.js +0 -0
  79. /package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/EditSettingValue/index.js +0 -0
  80. /package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/RenderSettingValue/index.js +0 -0
  81. /package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/index.js +0 -0
  82. /package/es/lib/{EditableSettingsList → Settings/EditableSettingsList}/index.js +0 -0
  83. /package/es/lib/{RefdataCategoriesSettings → Settings/RefdataCategoriesSettings}/index.js +0 -0
  84. /package/es/lib/{SettingPage → Settings/SettingPage}/SettingPagePane/index.js +0 -0
  85. /package/es/lib/{SettingPage → Settings/SettingPage}/index.js +0 -0
  86. /package/es/lib/{SettingsFormContainer → Settings/SettingsFormContainer}/index.js +0 -0
  87. /package/es/lib/{contexts → Settings/contexts}/SettingsContext.js +0 -0
  88. /package/es/lib/{contexts → Settings/contexts}/index.js +0 -0
  89. /package/es/lib/{settingsHooks → Settings/hooks}/useAppSettings/index.js +0 -0
  90. /package/es/lib/{settingsHooks → Settings/hooks}/useSettingSection/index.js +0 -0
  91. /package/es/lib/{settingsHooks → Settings/hooks}/useSettings/index.js +0 -0
  92. /package/src/lib/{EditableRefdataCategoryList → Settings/EditableRefdataCategoryList}/index.js +0 -0
  93. /package/src/lib/{EditableRefdataList → Settings/EditableRefdataList}/index.js +0 -0
  94. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsList.js +0 -0
  95. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js +0 -0
  96. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsListFieldArray/README.md +0 -0
  97. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/EditableSettingsListFieldArray/index.js +0 -0
  98. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/README.md +0 -0
  99. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/EditSettingValue/README.md +0 -0
  100. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/EditSettingValue/index.js +0 -0
  101. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/README.md +0 -0
  102. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/RenderSettingValue/index.js +0 -0
  103. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/SettingField/index.js +0 -0
  104. /package/src/lib/{EditableSettingsList → Settings/EditableSettingsList}/index.js +0 -0
  105. /package/src/lib/{RefdataCategoriesSettings → Settings/RefdataCategoriesSettings}/index.js +0 -0
  106. /package/src/lib/{SettingPage → Settings/SettingPage}/README.md +0 -0
  107. /package/src/lib/{SettingPage → Settings/SettingPage}/SettingPagePane/README.md +0 -0
  108. /package/src/lib/{SettingPage → Settings/SettingPage}/SettingPagePane/index.js +0 -0
  109. /package/src/lib/{SettingPage → Settings/SettingPage}/index.js +0 -0
  110. /package/src/lib/{SettingsFormContainer → Settings/SettingsFormContainer}/index.js +0 -0
  111. /package/src/lib/{contexts → Settings/contexts}/SettingsContext.js +0 -0
  112. /package/src/lib/{contexts → Settings/contexts}/index.js +0 -0
  113. /package/src/lib/{settingsHooks → Settings/hooks}/useAppSettings/index.js +0 -0
  114. /package/src/lib/{settingsHooks → Settings/hooks}/useSettingSection/README.md +0 -0
  115. /package/src/lib/{settingsHooks → Settings/hooks}/useSettingSection/index.js +0 -0
  116. /package/src/lib/{settingsHooks → Settings/hooks}/useSettings/README.md +0 -0
  117. /package/src/lib/{settingsHooks → Settings/hooks}/useSettings/index.js +0 -0
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GET_SETTING_SECTION_QUERY_KEY = exports.GET_SETTING_SECTION_MUTATE_KEY = exports.BASE_APP_SETTING_QUERY_KEY = exports.BASE_APP_SETTING_MUTATE_KEY = void 0;
7
+ const BASE_APP_SETTING_QUERY_KEY = exports.BASE_APP_SETTING_QUERY_KEY = ['stripes-kint-components', 'useSetting', 'appSettings'];
8
+ const GET_SETTING_SECTION_QUERY_KEY = (queryParams, sectionName) => [...BASE_APP_SETTING_QUERY_KEY, sectionName, queryParams];
9
+ exports.GET_SETTING_SECTION_QUERY_KEY = GET_SETTING_SECTION_QUERY_KEY;
10
+ const BASE_APP_SETTING_MUTATE_KEY = exports.BASE_APP_SETTING_MUTATE_KEY = ['stripes-kint-components', 'useSetting', 'putSetting'];
11
+ const GET_SETTING_SECTION_MUTATE_KEY = sectionName => [...BASE_APP_SETTING_MUTATE_KEY, sectionName];
12
+ exports.GET_SETTING_SECTION_MUTATE_KEY = GET_SETTING_SECTION_MUTATE_KEY;
@@ -3,6 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ useSettings: true,
8
+ useSettingSection: true,
9
+ useAppSettings: true
10
+ };
6
11
  Object.defineProperty(exports, "useAppSettings", {
7
12
  enumerable: true,
8
13
  get: function () {
@@ -24,4 +29,16 @@ Object.defineProperty(exports, "useSettings", {
24
29
  var _useSettings = _interopRequireDefault(require("./useSettings"));
25
30
  var _useSettingSection = _interopRequireDefault(require("./useSettingSection"));
26
31
  var _useAppSettings = _interopRequireDefault(require("./useAppSettings"));
32
+ var _staticSettingsPages = require("./staticSettingsPages");
33
+ Object.keys(_staticSettingsPages).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
36
+ if (key in exports && exports[key] === _staticSettingsPages[key]) return;
37
+ Object.defineProperty(exports, key, {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _staticSettingsPages[key];
41
+ }
42
+ });
43
+ });
27
44
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useSettingCallout", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useSettingCallout.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useSettingsSectionInitalValues", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _useSettingsSectionInitalValues.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useStaticSettingsSection", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _useStaticSettingsSection.default;
22
+ }
23
+ });
24
+ var _useSettingsSectionInitalValues = _interopRequireDefault(require("./useSettingsSectionInitalValues"));
25
+ var _useSettingCallout = _interopRequireDefault(require("./useSettingCallout"));
26
+ var _useStaticSettingsSection = _interopRequireDefault(require("./useStaticSettingsSection"));
27
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -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 _useSettingCallout.default;
10
+ }
11
+ });
12
+ var _useSettingCallout = _interopRequireDefault(require("./useSettingCallout"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,59 @@
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 _core = require("@folio/stripes/core");
9
+ var _hooks = require("../../../../hooks");
10
+ var _utils = require("../../../../utils");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ // A hook which can take an array of settings objects and return a
13
+ const useSettingCallout = function () {
14
+ let {
15
+ labelOverrides = [],
16
+ intlKey: passedIntlKey,
17
+ intlNS: passedIntlNS
18
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
19
+ const callout = (0, _core.useCallout)();
20
+ const kintIntl = (0, _hooks.useKintIntl)(passedIntlKey, passedIntlNS);
21
+ return (0, _react.useCallback)(_ref => {
22
+ let {
23
+ settings,
24
+ type
25
+ } = _ref;
26
+ callout.sendCallout({
27
+ type,
28
+ timeout: 10000,
29
+ message: /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
30
+ children: settings.map(_ref2 => {
31
+ let {
32
+ setting,
33
+ error: _error
34
+ } = _ref2;
35
+ // error will obviously be null for successful updates.
36
+ // We can choose to surface the errors to the user should we wish
37
+ const settingLabel = kintIntl.formatKintMessage({
38
+ id: "settings.".concat(setting.section, ".").concat((0, _utils.toCamelCase)(setting.key)),
39
+ // Camelcasing to keep in line with how we translate the dynamic settings
40
+ overrideValue: labelOverrides[setting.key],
41
+ fallbackMessage: setting.key
42
+ });
43
+ const message = kintIntl.formatKintMessage({
44
+ id: "settings.update.".concat(type),
45
+ overrideValue: labelOverrides[type],
46
+ fallbackMessage: setting.key
47
+ }, {
48
+ settingLabel,
49
+ newValue: setting.value
50
+ });
51
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
52
+ children: message
53
+ }, setting.id || setting.key);
54
+ })
55
+ })
56
+ });
57
+ }, [callout, kintIntl, labelOverrides]);
58
+ };
59
+ var _default = exports.default = useSettingCallout;
@@ -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 _useSettingsSectionInitalValues.default;
10
+ }
11
+ });
12
+ var _useSettingsSectionInitalValues = _interopRequireDefault(require("./useSettingsSectionInitalValues"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ const useSettingsSectionInitalValues = _ref => {
9
+ let {
10
+ settings: rawSettings // A settingsSection return of EXACTLY the shape defined in useSettingsSection
11
+ } = _ref;
12
+ const initialValues = (0, _react.useMemo)(() => {
13
+ const settingsKeyValue = rawSettings.map(setting => {
14
+ const {
15
+ key,
16
+ value,
17
+ settingType
18
+ } = setting;
19
+ let parsedValue;
20
+ if (settingType === 'Boolean') {
21
+ parsedValue = value === 'true';
22
+ } else if (settingType === 'Integer') {
23
+ parsedValue = Number(value);
24
+ } else {
25
+ parsedValue = value;
26
+ }
27
+ return [key, parsedValue];
28
+ });
29
+ return Object.fromEntries(settingsKeyValue);
30
+ }, [rawSettings]);
31
+ return initialValues;
32
+ };
33
+ var _default = exports.default = useSettingsSectionInitalValues;
@@ -0,0 +1,121 @@
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 _useSettingSection = _interopRequireDefault(require("../useSettingSection"));
9
+ var _useSettingsSectionInitalValues = _interopRequireDefault(require("./useSettingsSectionInitalValues"));
10
+ var _useSettingCallout = _interopRequireDefault(require("./useSettingCallout"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
16
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
+ /**
18
+ * A helper hook which collates several hooks useful in the setup and operation of static setting pages, in which
19
+ * an entire section of AppSetting objects needs to be submitted at once
20
+ */
21
+ const useStaticSettingsSection = _ref => {
22
+ let {
23
+ intlKey: passedIntlKey,
24
+ intlNS: passedIntlNS,
25
+ onSubmitComplete = () => null,
26
+ // Callback which runs after all promises have completed
27
+ onSettingsSuccess = () => null,
28
+ // Specifically logic to handle a list of successful settings calls
29
+ onSettingsFailure = () => null,
30
+ // Specifically logic to handle a list of failed settings calls
31
+ sectionName,
32
+ settingEndpoint,
33
+ getQueryNamespaceGenerator
34
+ } = _ref;
35
+ // Following example in agreements for useAgreementsDisplaySettings
36
+ const settingsSection = (0, _useSettingSection.default)({
37
+ sectionName,
38
+ settingEndpoint,
39
+ getQueryNamespaceGenerator
40
+ });
41
+ const {
42
+ handleSubmit,
43
+ settings: rawSettings
44
+ } = settingsSection;
45
+
46
+ // We should ONLY change initial values when autoResponderValues updates
47
+ // initialValues should take a KIWT AppSetting object and turn it into key/value for the Form
48
+ const initialValues = (0, _useSettingsSectionInitalValues.default)({
49
+ settings: rawSettings
50
+ });
51
+ const sendSettingsCallout = (0, _useSettingCallout.default)({
52
+ intlKey: passedIntlKey,
53
+ intlNS: passedIntlNS
54
+ }); // Translations will need to be set up here for this to work
55
+
56
+ const onSubmit = (0, _react.useCallback)(values => {
57
+ const updates = [];
58
+ rawSettings.forEach(setting => {
59
+ const originalValue = initialValues[setting.key];
60
+ const formValue = values[setting.key];
61
+ if (formValue !== originalValue) {
62
+ updates.push(_objectSpread(_objectSpread({}, setting), {}, {
63
+ value: formValue.toString()
64
+ }));
65
+ }
66
+ });
67
+ if (updates.length > 0) {
68
+ const successful = [];
69
+ const failed = [];
70
+
71
+ // type MUST be 'success' or 'error'
72
+
73
+ // We catch any failed requests and stick them in an array for us to deal with later
74
+ const updatePromises = updates.map(update => handleSubmit(update).then(() => {
75
+ // Ensure same shape for these objects in failure AND success
76
+ successful.push({
77
+ setting: update
78
+ });
79
+ }).catch(error => {
80
+ failed.push({
81
+ setting: update,
82
+ error
83
+ });
84
+ }));
85
+ return Promise.all(updatePromises).then(() => {
86
+ if (successful.length > 0) {
87
+ sendSettingsCallout({
88
+ type: 'success',
89
+ settings: successful
90
+ });
91
+ onSettingsSuccess({
92
+ settings: successful
93
+ });
94
+ }
95
+ if (failed.length > 0) {
96
+ sendSettingsCallout({
97
+ type: 'error',
98
+ settings: failed
99
+ });
100
+ onSettingsFailure({
101
+ settings: failed
102
+ });
103
+ }
104
+ onSubmitComplete();
105
+ return true;
106
+ });
107
+ }
108
+ // In case we somehow called this with no updates
109
+ // (Shouldn't be possible because of the disabled save button),
110
+ // return an empty promise
111
+ return Promise.resolve(true);
112
+ }, [rawSettings, initialValues, handleSubmit, onSubmitComplete, sendSettingsCallout, onSettingsSuccess, onSettingsFailure]);
113
+ return {
114
+ rawSettings,
115
+ initialValues,
116
+ onSubmit,
117
+ sendSettingsCallout,
118
+ settingsSection
119
+ };
120
+ };
121
+ var _default = exports.default = useStaticSettingsSection;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _reactQuery = require("react-query");
8
8
  var _core = require("@folio/stripes/core");
9
- var _utils = require("../../utils");
9
+ var _utils = require("../../../utils");
10
10
  const useAppSettings = _ref => {
11
11
  var _ref2, _ref3, _queryObject$data2;
12
12
  let {
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _reactQuery = require("react-query");
8
8
  var _core = require("@folio/stripes/core");
9
- var _utils = require("../../utils");
9
+ var _utils = require("../../../utils");
10
+ var _constants = require("../../constants");
10
11
  const _excluded = ["data"],
11
12
  _excluded2 = ["mutateAsync"];
12
13
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
@@ -19,9 +20,9 @@ const useSettingSection = _ref => {
19
20
  let {
20
21
  queryParams
21
22
  } = _ref2;
22
- return ['stripes-kint-components', 'useSetting', 'appSettings', queryParams, sectionName];
23
+ return (0, _constants.GET_SETTING_SECTION_QUERY_KEY)(queryParams, sectionName);
23
24
  },
24
- getMutateNamespaceGenerator = () => ['stripes-kint-components', 'useSetting', 'putSetting', sectionName]
25
+ getMutateNamespaceGenerator = () => (0, _constants.GET_SETTING_SECTION_MUTATE_KEY)(sectionName)
25
26
  } = _ref;
26
27
  const ky = (0, _core.useOkapiKy)();
27
28
  const queryParams = (0, _utils.generateKiwtQueryParams)({
@@ -11,8 +11,8 @@ var _core = require("@folio/stripes/core");
11
11
  var _smartComponents = require("@folio/stripes/smart-components");
12
12
  var _SettingPage = require("../../SettingPage");
13
13
  var _contexts = require("../../contexts");
14
- var _utils = require("../../utils");
15
- var _hooks = require("../../hooks");
14
+ var _utils = require("../../../utils");
15
+ var _hooks = require("../../../hooks");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
18
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ SettingsFormContainer: true,
8
+ SettingPage: true,
9
+ SettingPagePane: true,
10
+ RefdataCategoriesSettings: true,
11
+ EditableRefdataList: true,
12
+ EditableRefdataCategoryList: true,
13
+ StaticSettingsField: true,
14
+ SettingsContext: true
15
+ };
16
+ Object.defineProperty(exports, "EditableRefdataCategoryList", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _EditableRefdataCategoryList.default;
20
+ }
21
+ });
22
+ Object.defineProperty(exports, "EditableRefdataList", {
23
+ enumerable: true,
24
+ get: function () {
25
+ return _EditableRefdataList.default;
26
+ }
27
+ });
28
+ Object.defineProperty(exports, "RefdataCategoriesSettings", {
29
+ enumerable: true,
30
+ get: function () {
31
+ return _RefdataCategoriesSettings.default;
32
+ }
33
+ });
34
+ Object.defineProperty(exports, "SettingPage", {
35
+ enumerable: true,
36
+ get: function () {
37
+ return _SettingPage.SettingPage;
38
+ }
39
+ });
40
+ Object.defineProperty(exports, "SettingPagePane", {
41
+ enumerable: true,
42
+ get: function () {
43
+ return _SettingPage.SettingPagePane;
44
+ }
45
+ });
46
+ Object.defineProperty(exports, "SettingsContext", {
47
+ enumerable: true,
48
+ get: function () {
49
+ return _contexts.SettingsContext;
50
+ }
51
+ });
52
+ Object.defineProperty(exports, "SettingsFormContainer", {
53
+ enumerable: true,
54
+ get: function () {
55
+ return _SettingsFormContainer.default;
56
+ }
57
+ });
58
+ Object.defineProperty(exports, "StaticSettingsField", {
59
+ enumerable: true,
60
+ get: function () {
61
+ return _StaticSettingsField.default;
62
+ }
63
+ });
64
+ var _SettingsFormContainer = _interopRequireDefault(require("./SettingsFormContainer"));
65
+ var _hooks = require("./hooks");
66
+ Object.keys(_hooks).forEach(function (key) {
67
+ if (key === "default" || key === "__esModule") return;
68
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
69
+ if (key in exports && exports[key] === _hooks[key]) return;
70
+ Object.defineProperty(exports, key, {
71
+ enumerable: true,
72
+ get: function () {
73
+ return _hooks[key];
74
+ }
75
+ });
76
+ });
77
+ var _SettingPage = require("./SettingPage");
78
+ var _EditableSettingsList = require("./EditableSettingsList");
79
+ Object.keys(_EditableSettingsList).forEach(function (key) {
80
+ if (key === "default" || key === "__esModule") return;
81
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
82
+ if (key in exports && exports[key] === _EditableSettingsList[key]) return;
83
+ Object.defineProperty(exports, key, {
84
+ enumerable: true,
85
+ get: function () {
86
+ return _EditableSettingsList[key];
87
+ }
88
+ });
89
+ });
90
+ var _RefdataCategoriesSettings = _interopRequireDefault(require("./RefdataCategoriesSettings"));
91
+ var _EditableRefdataList = _interopRequireDefault(require("./EditableRefdataList"));
92
+ var _EditableRefdataCategoryList = _interopRequireDefault(require("./EditableRefdataCategoryList"));
93
+ var _StaticSettingsField = _interopRequireDefault(require("./StaticSettingsField"));
94
+ var _contexts = require("./contexts");
95
+ var _constants = require("./constants");
96
+ Object.keys(_constants).forEach(function (key) {
97
+ if (key === "default" || key === "__esModule") return;
98
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
99
+ if (key in exports && exports[key] === _constants[key]) return;
100
+ Object.defineProperty(exports, key, {
101
+ enumerable: true,
102
+ get: function () {
103
+ return _constants[key];
104
+ }
105
+ });
106
+ });
107
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k-int/stripes-kint-components",
3
- "version": "5.27.0",
3
+ "version": "5.28.0",
4
4
  "description": "Stripes Component library for K-Int specific applications",
5
5
  "sideEffects": [
6
6
  "*.css"
package/src/index.js CHANGED
@@ -7,25 +7,11 @@ export * from './lib/utils';
7
7
  // Validators
8
8
  export * from './lib/validators';
9
9
 
10
- // Contexts
11
- export {
12
- SettingsContext,
13
- } from './lib/contexts';
14
-
15
- // Setting Page Components
16
- export {
17
- SettingPage,
18
- SettingPagePane,
19
- } from './lib/SettingPage';
20
- export * from './lib/EditableSettingsList';
21
-
22
- // Settings hooks
23
- export * from './lib/settingsHooks';
10
+ // Settings stuff
11
+ export * from './lib/Settings';
24
12
 
25
13
  // ActionList & RefdataEditor components
26
14
  export { default as ActionList } from './lib/ActionList';
27
- export { default as EditableRefdataList } from './lib/EditableRefdataList';
28
- export { default as EditableRefdataCategoryList } from './lib/EditableRefdataCategoryList';
29
15
 
30
16
  // Typedown
31
17
  export {
@@ -97,9 +83,6 @@ export {
97
83
  useParseActiveFilterStrings
98
84
  } from './lib/CustomProperties';
99
85
 
100
- // Refdata categories
101
- export { default as RefdataCategoriesSettings } from './lib/RefdataCategoriesSettings';
102
-
103
86
  export * as customPropertyConstants from './lib/constants/customProperties';
104
87
 
105
88
  export * as endpoints from './lib/constants/endpoints';
@@ -113,10 +96,11 @@ export { default as FormattedKintMessage } from './lib/FormattedKintMessage';
113
96
 
114
97
  export { default as ResponsiveButtonGroup } from './lib/ResponsiveButtonGroup';
115
98
 
116
- export { default as SettingsFormContainer } from './lib/SettingsFormContainer';
117
-
118
99
  export { default as ComboButton } from './lib/ComboButton';
119
100
 
120
101
  export { default as NumberField } from './lib/NumberField';
121
102
 
122
103
  export * from './lib/Tags';
104
+
105
+ export { default as FieldLabel } from './lib/FieldLabel';
106
+
@@ -0,0 +1,26 @@
1
+ import { IconButton, Label, Tooltip } from '@folio/stripes/components';
2
+
3
+ const FieldLabel = ({
4
+ helpText,
5
+ label,
6
+ tooltipId
7
+ }) => (
8
+ <Label>
9
+ {label}
10
+ {helpText ?
11
+ <Tooltip id={tooltipId} text={helpText}>
12
+ {({ ref, ariaIds }) => (
13
+ <IconButton
14
+ ref={ref}
15
+ aria-describedby={ariaIds.sub}
16
+ aria-labelledby={ariaIds.text}
17
+ icon="info"
18
+ />
19
+ )}
20
+ </Tooltip> :
21
+ null
22
+ }
23
+ </Label>
24
+ );
25
+
26
+ export default FieldLabel;
@@ -0,0 +1,26 @@
1
+ # FieldLabel
2
+ A helper component to render Field Labels with/without help text as required
3
+
4
+ Where help text is included, a tooltipId must be passed
5
+
6
+ ## Basic Usage
7
+ ```javascript
8
+ import { Field } from 'react-final-form'
9
+ import { FieldLabel } from '@k-int/stripes-kint-components';
10
+ import { TextField } from '@folio/stripes/components'
11
+ const MyComponent = () => {
12
+ return (
13
+ <Field
14
+ component={TextField}
15
+ label={
16
+ <FieldLabel
17
+ label="My label"
18
+ helpText="My help text"
19
+ tooltipId='my-field-label-tooltip'
20
+ />
21
+ }
22
+ name="my-field"
23
+ />
24
+ )
25
+ }
26
+ ```
@@ -0,0 +1 @@
1
+ export { default } from './FieldLabel';
@@ -76,7 +76,10 @@ const RefdataButtons = (props) => {
76
76
  };
77
77
 
78
78
  return (
79
- returnRows(props.dataOptions)
79
+ <>
80
+ {props.label}
81
+ {returnRows(props.dataOptions)}
82
+ </>
80
83
  );
81
84
  };
82
85
 
@@ -90,6 +93,7 @@ RefdataButtons.propTypes = {
90
93
  value: PropTypes.string.isRequired,
91
94
  onChange: PropTypes.func.isRequired,
92
95
  }).isRequired,
96
+ label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
93
97
  };
94
98
 
95
99
  export default RefdataButtons;
@@ -4,13 +4,13 @@ import PropTypes from 'prop-types';
4
4
  import { Button, ConfirmationModal } from '@folio/stripes/components';
5
5
  import { CalloutContext } from '@folio/stripes/core';
6
6
 
7
- import { useKintIntl, useMutateRefdataCategory, useRefdata } from '../hooks';
7
+ import { useKintIntl, useMutateRefdataCategory, useRefdata } from '../../hooks';
8
8
 
9
- import SearchField from '../SearchField';
10
- import ActionList from '../ActionList';
11
- import { required } from '../validators';
12
- import { parseErrorResponse } from '../utils';
13
- import css from '../../../styles/CustomProperties.css';
9
+ import SearchField from '../../SearchField';
10
+ import ActionList from '../../ActionList';
11
+ import { required } from '../../validators';
12
+ import { parseErrorResponse } from '../../utils';
13
+ import css from '../../../../styles/CustomProperties.css';
14
14
 
15
15
  const propTypes = {
16
16
  afterQueryCalls: PropTypes.object,
@@ -4,11 +4,11 @@ import PropTypes from 'prop-types';
4
4
  import { ConfirmationModal } from '@folio/stripes/components';
5
5
  import { CalloutContext } from '@folio/stripes/core';
6
6
 
7
- import { useKintIntl, useMutateRefdataValue, useRefdata } from '../hooks';
7
+ import { useKintIntl, useMutateRefdataValue, useRefdata } from '../../hooks';
8
8
 
9
- import ActionList from '../ActionList';
10
- import { required } from '../validators';
11
- import { parseErrorResponse, selectorSafe } from '../utils';
9
+ import ActionList from '../../ActionList';
10
+ import { required } from '../../validators';
11
+ import { parseErrorResponse, selectorSafe } from '../../utils';
12
12
 
13
13
  const propTypes = {
14
14
  afterQueryCalls: PropTypes.object,