@k-int/stripes-kint-components 1.2.3 → 1.4.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 (60) hide show
  1. package/CHANGELOG.md +15 -5
  2. package/es/index.js +72 -0
  3. package/es/lib/NoResultsMessage/NoResultsMessage.js +89 -0
  4. package/es/lib/NoResultsMessage/index.js +15 -0
  5. package/es/lib/QueryTypedown/QueryTypedown.js +71 -0
  6. package/es/lib/QueryTypedown/index.js +15 -0
  7. package/es/lib/SASQLookupComponent/SASQLookupComponent.js +295 -0
  8. package/es/lib/SASQLookupComponent/index.js +15 -0
  9. package/es/lib/SASQRoute/SASQRoute.js +70 -0
  10. package/es/lib/SASQRoute/index.js +15 -0
  11. package/es/lib/SASQViewComponent/SASQViewComponent.js +71 -0
  12. package/es/lib/SASQViewComponent/index.js +15 -0
  13. package/es/lib/TypeDown/TypeDown.js +24 -6
  14. package/es/lib/Typedown/Typedown.js +225 -0
  15. package/es/lib/Typedown/index.js +15 -0
  16. package/es/lib/hooks/index.js +16 -0
  17. package/es/lib/hooks/typedownHooks/useTypedown.js +5 -1
  18. package/es/lib/hooks/useHelperApp.js +7 -1
  19. package/es/lib/hooks/useKiwtSASQuery.js +22 -1
  20. package/es/lib/hooks/useLocalStorageState.js +49 -0
  21. package/es/lib/hooks/useQIndex.js +75 -0
  22. package/es/lib/hooks/useRefdata.js +23 -6
  23. package/es/lib/utils/generateKiwtQuery.js +3 -93
  24. package/es/lib/utils/generateKiwtQueryParams.js +125 -0
  25. package/es/lib/utils/index.js +16 -0
  26. package/es/lib/utils/selectorSafe.js +1 -1
  27. package/package.json +1 -1
  28. package/src/index.js +31 -1
  29. package/src/lib/EditableRefdataList/README.md +1 -1
  30. package/src/lib/NoResultsMessage/NoResultsMessage.js +78 -0
  31. package/src/lib/NoResultsMessage/index.js +1 -0
  32. package/src/lib/QueryTypedown/QueryTypedown.js +33 -0
  33. package/src/lib/QueryTypedown/index.js +1 -0
  34. package/src/lib/SASQLookupComponent/SASQLookupComponent.js +282 -0
  35. package/src/lib/SASQLookupComponent/index.js +1 -0
  36. package/src/lib/SASQRoute/README.md +55 -0
  37. package/src/lib/SASQRoute/SASQRoute.js +63 -0
  38. package/src/lib/SASQRoute/index.js +1 -0
  39. package/src/lib/SASQViewComponent/SASQViewComponent.js +55 -0
  40. package/src/lib/SASQViewComponent/index.js +1 -0
  41. package/src/lib/TypeDown/README.md +1 -0
  42. package/src/lib/TypeDown/TypeDown.js +23 -4
  43. package/src/lib/Typedown/README.md +115 -0
  44. package/src/lib/Typedown/Typedown.js +234 -0
  45. package/src/lib/Typedown/index.js +1 -0
  46. package/src/lib/hooks/README.md +35 -1
  47. package/src/lib/hooks/index.js +3 -0
  48. package/src/lib/hooks/typedownHooks/useTypedown.js +3 -1
  49. package/src/lib/hooks/useHelperApp.js +5 -1
  50. package/src/lib/hooks/useKiwtSASQuery.js +9 -1
  51. package/src/lib/hooks/useLocalStorageState.js +17 -0
  52. package/src/lib/hooks/useQIndex.js +41 -0
  53. package/src/lib/hooks/useRefdata.js +23 -6
  54. package/src/lib/utils/README.md +39 -1
  55. package/src/lib/utils/generateKiwtQuery.js +3 -57
  56. package/src/lib/utils/generateKiwtQueryParams.js +67 -0
  57. package/src/lib/utils/index.js +3 -0
  58. package/src/lib/utils/selectorSafe.js +1 -1
  59. package/styles/NoResultsMessage.css +38 -0
  60. package/translations/stripes-kint-components/en.json +5 -1
package/CHANGELOG.md CHANGED
@@ -1,9 +1,19 @@
1
- ## 1.2.3 Released 28th Oct 2021
2
- * fix: typedowns can now open independently of each other (selector safe)
3
- ## 1.2.2 Released 28th Oct 2021
4
- * fix: typedowns can now open independently of each other
5
- ## 1.2.1 Released 22nd Oct 2021
1
+ ## 1.4.0 Released 26th Nov 2021
2
+ * useHelperApp now exposes an `isOpen` function to check if current helper is open or not.
3
+ * useQIndex hook exposed to allow setting and parsing of qindex from url. QIndex now used in useKiwtSASQuery.
4
+ * useRefdata now accepts options, and defaults to 100 returns.
5
+ * GenerateKiwtQueryParams now exposed as well as the full generateKiwtQuery
6
+ * selectorSafe function exported
7
+ * NoResultsMessage component, used in SASQLookupComponent
8
+
9
+ ## 1.3.0 Released 9th Nov 2021
10
+ * Added SASQRoute, SASQLookupComponent and SASQViewComponent
11
+ * Deprecated TypeDown
12
+ * Split TypeDown into two components, Typedown and QueryTypedown
6
13
  * Added resize-detector to dependency list
14
+ * fix: typedowns can now open independently of each other
15
+ * fix: meta now spread correctly onto SearchField in Typedown
16
+ * feat: TypeDown now accepts an "onChange" handler (which takes the changed value instead of an event)
7
17
  ## 1.2.0 Released 22nd Oct 2021
8
18
  * generateKiwtQuery utility function
9
19
  * useHelperApp, useActiveElement and useKiwtSASQuery hooks
package/es/index.js CHANGED
@@ -15,6 +15,36 @@ Object.defineProperty(exports, "EditableRefdataList", {
15
15
  return _EditableRefdataList.EditableRefdataList;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "NoResultsMessage", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _NoResultsMessage.NoResultsMessage;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "QueryTypedown", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _QueryTypedown["default"];
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "SASQLookupComponent", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _SASQLookupComponent["default"];
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "SASQRoute", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _SASQRoute["default"];
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "SASQViewComponent", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _SASQViewComponent["default"];
46
+ }
47
+ });
18
48
  Object.defineProperty(exports, "SearchField", {
19
49
  enumerable: true,
20
50
  get: function get() {
@@ -45,12 +75,30 @@ Object.defineProperty(exports, "TypeDown", {
45
75
  return _TypeDown["default"];
46
76
  }
47
77
  });
78
+ Object.defineProperty(exports, "Typedown", {
79
+ enumerable: true,
80
+ get: function get() {
81
+ return _Typedown["default"];
82
+ }
83
+ });
48
84
  Object.defineProperty(exports, "generateKiwtQuery", {
49
85
  enumerable: true,
50
86
  get: function get() {
51
87
  return _utils.generateKiwtQuery;
52
88
  }
53
89
  });
90
+ Object.defineProperty(exports, "generateKiwtQueryParams", {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _utils.generateKiwtQueryParams;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "selectorSafe", {
97
+ enumerable: true,
98
+ get: function get() {
99
+ return _utils.selectorSafe;
100
+ }
101
+ });
54
102
  Object.defineProperty(exports, "useActiveElement", {
55
103
  enumerable: true,
56
104
  get: function get() {
@@ -69,12 +117,24 @@ Object.defineProperty(exports, "useKiwtSASQuery", {
69
117
  return _hooks.useKiwtSASQuery;
70
118
  }
71
119
  });
120
+ Object.defineProperty(exports, "useLocalStorageState", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _hooks.useLocalStorageState;
124
+ }
125
+ });
72
126
  Object.defineProperty(exports, "useMutateRefdataValue", {
73
127
  enumerable: true,
74
128
  get: function get() {
75
129
  return _hooks.useMutateRefdataValue;
76
130
  }
77
131
  });
132
+ Object.defineProperty(exports, "useQIndex", {
133
+ enumerable: true,
134
+ get: function get() {
135
+ return _hooks.useQIndex;
136
+ }
137
+ });
78
138
  Object.defineProperty(exports, "useRefdata", {
79
139
  enumerable: true,
80
140
  get: function get() {
@@ -106,6 +166,18 @@ var _EditableRefdataList = require("./lib/EditableRefdataList");
106
166
 
107
167
  var _TypeDown = _interopRequireDefault(require("./lib/TypeDown"));
108
168
 
169
+ var _Typedown = _interopRequireDefault(require("./lib/Typedown"));
170
+
171
+ var _QueryTypedown = _interopRequireDefault(require("./lib/QueryTypedown"));
172
+
109
173
  var _SearchField = _interopRequireDefault(require("./lib/SearchField"));
110
174
 
175
+ var _SASQRoute = _interopRequireDefault(require("./lib/SASQRoute"));
176
+
177
+ var _SASQLookupComponent = _interopRequireDefault(require("./lib/SASQLookupComponent"));
178
+
179
+ var _SASQViewComponent = _interopRequireDefault(require("./lib/SASQViewComponent"));
180
+
181
+ var _NoResultsMessage = require("./lib/NoResultsMessage");
182
+
111
183
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _reactIntl = require("react-intl");
13
+
14
+ var _components = require("@folio/stripes/components");
15
+
16
+ var _NoResultsMessage = _interopRequireDefault(require("../../../styles/NoResultsMessage.css"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ var NoResultsMessage = function NoResultsMessage(_ref) {
21
+ var userIcon = _ref.icon,
22
+ isLoading = _ref.isLoading,
23
+ isError = _ref.isError,
24
+ error = _ref.error,
25
+ filterPaneIsVisible = _ref.filterPaneIsVisible,
26
+ userLabel = _ref.label,
27
+ searchTerm = _ref.searchTerm,
28
+ toggleFilterPane = _ref.toggleFilterPane;
29
+ var icon = 'search';
30
+
31
+ var label = /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
32
+ id: "stripes-smart-components.sas.noResults.default",
33
+ values: {
34
+ searchTerm: searchTerm
35
+ }
36
+ }); // No search term but no results
37
+
38
+
39
+ if (!searchTerm) {
40
+ icon = 'search';
41
+ label = /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
42
+ id: "stripes-smart-components.sas.noResults.noResults"
43
+ });
44
+ } // Loading results
45
+
46
+
47
+ if (isLoading) {
48
+ icon = 'spinner-ellipsis';
49
+ label = /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
50
+ id: "stripes-smart-components.sas.noResults.loading"
51
+ });
52
+ } // Request failure
53
+
54
+
55
+ if (isError) {
56
+ icon = 'exclamation-circle';
57
+ label = error === null || error === void 0 ? void 0 : error.message;
58
+ }
59
+
60
+ return /*#__PURE__*/_react["default"].createElement("div", {
61
+ className: _NoResultsMessage["default"].noResultsMessage
62
+ }, /*#__PURE__*/_react["default"].createElement("div", {
63
+ className: _NoResultsMessage["default"].noResultsMessageLabelWrap
64
+ }, (icon || userIcon) && /*#__PURE__*/_react["default"].createElement(_components.Icon, {
65
+ icon: userIcon !== null && userIcon !== void 0 ? userIcon : icon,
66
+ iconRootClass: _NoResultsMessage["default"].noResultsMessageIcon
67
+ }), /*#__PURE__*/_react["default"].createElement("span", {
68
+ className: _NoResultsMessage["default"].noResultsMessageLabel
69
+ }, userLabel !== null && userLabel !== void 0 ? userLabel : label)), !filterPaneIsVisible && /*#__PURE__*/_react["default"].createElement(_components.Button, {
70
+ buttonClass: _NoResultsMessage["default"].noResultsMessageButton,
71
+ marginBottom0: true,
72
+ onClick: toggleFilterPane
73
+ }, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
74
+ id: "stripes-kint-components.noResultsMessage.showFilters"
75
+ })));
76
+ };
77
+
78
+ NoResultsMessage.propTypes = {
79
+ error: _propTypes["default"].object,
80
+ filterPaneIsVisible: _propTypes["default"].bool.isRequired,
81
+ icon: _propTypes["default"].string,
82
+ isLoading: _propTypes["default"].bool,
83
+ isError: _propTypes["default"].bool,
84
+ label: _propTypes["default"].oneOfType(_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].func),
85
+ searchTerm: _propTypes["default"].string.isRequired,
86
+ toggleFilterPane: _propTypes["default"].func.isRequired
87
+ };
88
+ var _default = NoResultsMessage;
89
+ exports["default"] = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "NoResultsMessage", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _NoResultsMessage["default"];
10
+ }
11
+ });
12
+
13
+ var _NoResultsMessage = _interopRequireDefault(require("./NoResultsMessage"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _Typedown = _interopRequireDefault(require("../Typedown"));
15
+
16
+ var _typedownHooks = require("../hooks/typedownHooks");
17
+
18
+ var _excluded = ["path", "pathMutator"];
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
+
28
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
29
+
30
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
+
32
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
33
+
34
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
35
+
36
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
37
+
38
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
+
40
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
41
+
42
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
43
+
44
+ var QueryTypedown = function QueryTypedown(_ref) {
45
+ var path = _ref.path,
46
+ pathMutator = _ref.pathMutator,
47
+ rest = _objectWithoutProperties(_ref, _excluded);
48
+
49
+ var _useState = (0, _react.useState)(pathMutator(null, path)),
50
+ _useState2 = _slicedToArray(_useState, 2),
51
+ callPath = _useState2[0],
52
+ setCallPath = _useState2[1];
53
+
54
+ var data = (0, _typedownHooks.useTypedownData)(callPath);
55
+
56
+ var onType = function onType(e) {
57
+ setCallPath(pathMutator(e.target.value, path));
58
+ };
59
+
60
+ return /*#__PURE__*/_react["default"].createElement(_Typedown["default"], _extends({}, rest, {
61
+ dataOptions: data,
62
+ onType: onType
63
+ }));
64
+ };
65
+
66
+ QueryTypedown.propTypes = {
67
+ path: _propTypes["default"].string,
68
+ pathMutator: _propTypes["default"].func
69
+ };
70
+ var _default = QueryTypedown;
71
+ exports["default"] = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _QueryTypedown["default"];
10
+ }
11
+ });
12
+
13
+ var _QueryTypedown = _interopRequireDefault(require("./QueryTypedown"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _reactIntl = require("react-intl");
13
+
14
+ var _reactQuery = require("react-query");
15
+
16
+ var _core = require("@folio/stripes/core");
17
+
18
+ var _smartComponents = require("@folio/stripes/smart-components");
19
+
20
+ var _components = require("@folio/stripes/components");
21
+
22
+ var _NoResultsMessage = require("../NoResultsMessage");
23
+
24
+ var _utils = require("../utils");
25
+
26
+ var _hooks = require("../hooks");
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
+
30
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
+
32
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
33
+
34
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
35
+
36
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
37
+
38
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
39
+
40
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
41
+
42
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
43
+
44
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
45
+
46
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
47
+
48
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
49
+
50
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
51
+
52
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
53
+
54
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
55
+
56
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
57
+
58
+ var SASQLookupComponent = function SASQLookupComponent(_ref) {
59
+ var _totalData$pages$redu, _totalData$pages;
60
+
61
+ var children = _ref.children,
62
+ _ref$fetchParameters = _ref.fetchParameters,
63
+ fetchParameters = _ref$fetchParameters === void 0 ? {} : _ref$fetchParameters,
64
+ _ref$FilterComponent = _ref.FilterComponent,
65
+ FilterComponent = _ref$FilterComponent === void 0 ? function () {
66
+ return null;
67
+ } : _ref$FilterComponent,
68
+ history = _ref.history,
69
+ id = _ref.id,
70
+ location = _ref.location,
71
+ mainPaneProps = _ref.mainPaneProps,
72
+ match = _ref.match,
73
+ mclProps = _ref.mclProps,
74
+ noSearchField = _ref.noSearchField,
75
+ path = _ref.path,
76
+ _ref$resultColumns = _ref.resultColumns,
77
+ resultColumns = _ref$resultColumns === void 0 ? [] : _ref$resultColumns,
78
+ RenderBody = _ref.RenderBody,
79
+ sasqProps = _ref.sasqProps;
80
+
81
+ var _useKiwtSASQuery = (0, _hooks.useKiwtSASQuery)(),
82
+ query = _useKiwtSASQuery.query,
83
+ queryGetter = _useKiwtSASQuery.queryGetter,
84
+ querySetter = _useKiwtSASQuery.querySetter;
85
+
86
+ var _useNamespace = (0, _core.useNamespace)(),
87
+ namespace = _useNamespace[0];
88
+
89
+ var ky = (0, _core.useOkapiKy)();
90
+ var filterPaneVisibileKey = "".concat(namespace, "-").concat(id, "-filterPaneVisibility");
91
+
92
+ var fetchPageData = function fetchPageData(_ref2) {
93
+ var _ref2$pageParam = _ref2.pageParam,
94
+ pageParam = _ref2$pageParam === void 0 ? 0 : _ref2$pageParam;
95
+ var queryMap = fetchParameters.SASQ_MAP;
96
+ queryMap.offset = pageParam;
97
+ return ky("".concat(fetchParameters.endpoint).concat((0, _utils.generateKiwtQuery)(queryMap, query))).json();
98
+ };
99
+
100
+ var _useLocalStorageState = (0, _hooks.useLocalStorageState)(filterPaneVisibileKey, true),
101
+ _useLocalStorageState2 = _slicedToArray(_useLocalStorageState, 2),
102
+ filterPaneVisible = _useLocalStorageState2[0],
103
+ setFilterPaneVisible = _useLocalStorageState2[1];
104
+
105
+ var toggleFilterPane = function toggleFilterPane() {
106
+ return setFilterPaneVisible(!filterPaneVisible);
107
+ };
108
+
109
+ var _useInfiniteQuery = (0, _reactQuery.useInfiniteQuery)([namespace, id, 'data', query], fetchPageData),
110
+ _useInfiniteQuery$dat = _useInfiniteQuery.data,
111
+ totalData = _useInfiniteQuery$dat === void 0 ? {} : _useInfiniteQuery$dat,
112
+ error = _useInfiniteQuery.error,
113
+ isError = _useInfiniteQuery.isError,
114
+ isLoading = _useInfiniteQuery.isLoading,
115
+ fetchNextPage = _useInfiniteQuery.fetchNextPage;
116
+
117
+ var data = (_totalData$pages$redu = (_totalData$pages = totalData.pages) === null || _totalData$pages === void 0 ? void 0 : _totalData$pages.reduce(function (acc, curr) {
118
+ var _acc$results, _curr$results;
119
+
120
+ var newAcc = _objectSpread({}, acc);
121
+
122
+ for (var _i2 = 0, _Object$entries = Object.entries(curr); _i2 < _Object$entries.length; _i2++) {
123
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
124
+ key = _Object$entries$_i[0],
125
+ value = _Object$entries$_i[1];
126
+
127
+ if (key !== 'page' && key !== 'result' && acc[key] !== value) {
128
+ newAcc[key] = value;
129
+ }
130
+ }
131
+
132
+ var newResults = _toConsumableArray((_acc$results = acc.results) !== null && _acc$results !== void 0 ? _acc$results : []);
133
+
134
+ newResults.push.apply(newResults, _toConsumableArray((_curr$results = curr.results) !== null && _curr$results !== void 0 ? _curr$results : []));
135
+ newAcc.results = newResults;
136
+ return newAcc;
137
+ }, {})) !== null && _totalData$pages$redu !== void 0 ? _totalData$pages$redu : {}; // TODO focus handling to stop redraw movin to top
138
+
139
+ var onNeedMoreData = function onNeedMoreData(_askAmount, index) {
140
+ fetchNextPage({
141
+ pageParam: index
142
+ });
143
+ }; // Build the map of column definitions
144
+
145
+
146
+ var columnMapping = Object.fromEntries(resultColumns.map(function (e) {
147
+ return [e.propertyPath, e.label];
148
+ })); // Build the list of visible columns
149
+
150
+ var visibleColumns = resultColumns.map(function (e) {
151
+ return e.propertyPath;
152
+ });
153
+ return /*#__PURE__*/_react["default"].createElement(_smartComponents.SearchAndSortQuery, _extends({
154
+ initialSearchState: {
155
+ query: ''
156
+ },
157
+ queryGetter: queryGetter,
158
+ querySetter: querySetter
159
+ }, sasqProps), function (_ref3) {
160
+ var _query$sort;
161
+
162
+ var activeFilters = _ref3.activeFilters,
163
+ filterChanged = _ref3.filterChanged,
164
+ getFilterHandlers = _ref3.getFilterHandlers,
165
+ getSearchHandlers = _ref3.getSearchHandlers,
166
+ onSort = _ref3.onSort,
167
+ onSubmitSearch = _ref3.onSubmitSearch,
168
+ resetAll = _ref3.resetAll,
169
+ searchChanged = _ref3.searchChanged,
170
+ searchValue = _ref3.searchValue;
171
+ var searchHandlers = getSearchHandlers();
172
+ var sortOrder = (_query$sort = query.sort) !== null && _query$sort !== void 0 ? _query$sort : '';
173
+ var disableReset = !filterChanged && !searchChanged;
174
+ var filterCount = activeFilters.string ? activeFilters.string.split(',').length : 0;
175
+
176
+ var TableBody = function TableBody() {
177
+ return /*#__PURE__*/_react["default"].createElement(_components.MultiColumnList, _extends({
178
+ autosize: true,
179
+ columnMapping: columnMapping,
180
+ contentData: data === null || data === void 0 ? void 0 : data.results,
181
+ isEmptyMessage: /*#__PURE__*/_react["default"].createElement(_NoResultsMessage.NoResultsMessage, {
182
+ error: error,
183
+ isError: isError,
184
+ isLoading: isLoading,
185
+ filterPaneIsVisible: filterPaneVisible,
186
+ searchTerm: query.query,
187
+ toggleFilterPane: toggleFilterPane
188
+ }),
189
+ isSelected: function isSelected(_ref4) {
190
+ var _match$params;
191
+
192
+ var item = _ref4.item;
193
+ return item.id === (match === null || match === void 0 ? void 0 : (_match$params = match.params) === null || _match$params === void 0 ? void 0 : _match$params.id);
194
+ },
195
+ onHeaderClick: onSort,
196
+ onNeedMoreData: onNeedMoreData,
197
+ onRowClick: function onRowClick(_e, rowData) {
198
+ history.push("".concat(path, "/").concat(rowData === null || rowData === void 0 ? void 0 : rowData.id).concat(location === null || location === void 0 ? void 0 : location.search));
199
+ },
200
+ pagingType: "click",
201
+ sortDirection: sortOrder.startsWith('-') ? 'descending' : 'ascending',
202
+ sortOrder: sortOrder.replace(/^-/, '').replace(/,.*/, ''),
203
+ totalCount: data.totalRecords,
204
+ virtualize: true,
205
+ visibleColumns: visibleColumns
206
+ }, mclProps));
207
+ };
208
+
209
+ var Body = RenderBody !== null && RenderBody !== void 0 ? RenderBody : TableBody;
210
+ return /*#__PURE__*/_react["default"].createElement(_smartComponents.PersistedPaneset, {
211
+ appId: namespace,
212
+ id: "".concat(id, "-paneset")
213
+ }, filterPaneVisible && /*#__PURE__*/_react["default"].createElement(_components.Pane, {
214
+ defaultWidth: "20%",
215
+ lastMenu: /*#__PURE__*/_react["default"].createElement(_components.PaneMenu, null, /*#__PURE__*/_react["default"].createElement(_components.IconButton, {
216
+ icon: "caret-left",
217
+ onClick: function onClick() {
218
+ return setFilterPaneVisible(false);
219
+ }
220
+ })),
221
+ paneTitle: /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
222
+ id: "stripes-smart-components.searchAndFilter"
223
+ })
224
+ }, /*#__PURE__*/_react["default"].createElement("form", {
225
+ onSubmit: onSubmitSearch
226
+ }, !noSearchField && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_components.SearchField, {
227
+ autoFocus: true,
228
+ name: "query",
229
+ onChange: searchHandlers.query,
230
+ onClear: searchHandlers.reset,
231
+ value: searchValue.query
232
+ }), /*#__PURE__*/_react["default"].createElement(_components.Button, {
233
+ buttonStyle: "primary",
234
+ disabled: !searchValue.query,
235
+ fullWidth: true,
236
+ type: "submit"
237
+ }, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
238
+ id: "stripes-smart-components.search"
239
+ })), /*#__PURE__*/_react["default"].createElement(_components.Button, {
240
+ buttonStyle: "none",
241
+ disabled: disableReset,
242
+ id: "clickable-reset-all",
243
+ onClick: resetAll
244
+ }, /*#__PURE__*/_react["default"].createElement(_components.Icon, {
245
+ icon: "times-circle-solid"
246
+ }, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
247
+ id: "stripes-smart-components.resetAll"
248
+ })))), /*#__PURE__*/_react["default"].createElement(FilterComponent, {
249
+ activeFilters: activeFilters.state,
250
+ filterChanged: filterChanged,
251
+ filterHandlers: getFilterHandlers(),
252
+ resetAll: resetAll,
253
+ searchChanged: searchChanged,
254
+ searchHandlers: getSearchHandlers(),
255
+ searchValue: searchValue
256
+ }))), /*#__PURE__*/_react["default"].createElement(_components.Pane, _extends({
257
+ defaultWidth: "fill",
258
+ firstMenu: !filterPaneVisible ? /*#__PURE__*/_react["default"].createElement(_components.PaneMenu, null, /*#__PURE__*/_react["default"].createElement(_components.IconButton, {
259
+ badgeCount: filterCount,
260
+ icon: "caret-right",
261
+ onClick: function onClick() {
262
+ return setFilterPaneVisible(true);
263
+ }
264
+ })) : null,
265
+ paneSub: /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
266
+ id: "stripes-kint-components.sasqLookupComponent.mainPane.found",
267
+ values: {
268
+ total: data === null || data === void 0 ? void 0 : data.total
269
+ }
270
+ })
271
+ }, mainPaneProps), /*#__PURE__*/_react["default"].createElement(Body, {
272
+ data: data
273
+ })), children);
274
+ });
275
+ };
276
+
277
+ SASQLookupComponent.propTypes = {
278
+ children: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]),
279
+ fetchParameters: _propTypes["default"].object,
280
+ FilterComponent: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]),
281
+ history: _propTypes["default"].object,
282
+ id: _propTypes["default"].string.isRequired,
283
+ location: _propTypes["default"].object,
284
+ mainPaneProps: _propTypes["default"].object,
285
+ match: _propTypes["default"].object,
286
+ mclProps: _propTypes["default"].object,
287
+ noSearchField: _propTypes["default"].bool,
288
+ path: _propTypes["default"].string.isRequired,
289
+ RenderBody: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]),
290
+ resource: _propTypes["default"].object,
291
+ resultColumns: _propTypes["default"].arrayOf(_propTypes["default"].object),
292
+ sasqProps: _propTypes["default"].object
293
+ };
294
+ var _default = SASQLookupComponent;
295
+ exports["default"] = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _SASQLookupComponent["default"];
10
+ }
11
+ });
12
+
13
+ var _SASQLookupComponent = _interopRequireDefault(require("./SASQLookupComponent"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }