@k-int/stripes-kint-components 5.25.1 → 5.25.3
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 +14 -0
- package/es/__mocks__/@folio/stripes/components.js +7 -3
- package/es/__mocks__/@folio/stripes/core.js +6 -4
- package/es/__mocks__/@folio/stripes/smart-components.js +6 -4
- package/es/__mocks__/react-query.js +6 -4
- package/es/__mocks__/react-router-dom.js +6 -6
- package/es/lib/ActionList/ActionList.js +33 -26
- package/es/lib/ActionList/ActionListFieldArray.js +119 -103
- package/es/lib/ComboButton/ComboButton.js +47 -42
- package/es/lib/CustomProperties/Config/CustomPropertiesLookup.js +17 -11
- package/es/lib/CustomProperties/Config/CustomPropertiesSettings.js +46 -42
- package/es/lib/CustomProperties/Config/CustomPropertyForm.js +58 -58
- package/es/lib/CustomProperties/Config/CustomPropertyForm.test.js +8 -4
- package/es/lib/CustomProperties/Config/CustomPropertyView.js +33 -32
- package/es/lib/CustomProperties/Config/CustomPropertyView.test.js +1 -1
- package/es/lib/CustomProperties/Edit/CustomPropertiesEdit.js +1 -1
- package/es/lib/CustomProperties/Edit/CustomPropertiesEditCtx.js +3 -3
- package/es/lib/CustomProperties/Edit/CustomPropertiesListField.js +35 -29
- package/es/lib/CustomProperties/Edit/CustomPropertyField.js +59 -61
- package/es/lib/CustomProperties/Edit/CustomPropertyField.test.js +20 -20
- package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.js +2 -2
- package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.test.js +1 -1
- package/es/lib/CustomProperties/Edit/testResources.js +12 -11
- package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.js +33 -22
- package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.js +35 -23
- package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.test.js +1 -1
- package/es/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js +6 -6
- package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.js +6 -3
- package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.test.js +8 -4
- package/es/lib/CustomProperties/Filter/CustomPropertiesRule.js +17 -14
- package/es/lib/CustomProperties/Filter/testResources.js +2 -1
- package/es/lib/CustomProperties/Filter/useParseActiveFilterStrings.js +2 -1
- package/es/lib/CustomProperties/View/CustomPropertiesView.js +1 -1
- package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.js +26 -18
- package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.test.js +6 -3
- package/es/lib/CustomProperties/View/CustomPropertyCard.js +11 -7
- package/es/lib/CycleButton/CycleButton.js +17 -9
- package/es/lib/EditableRefdataCategoryList/EditableRefdataCategoryList.js +46 -30
- package/es/lib/EditableRefdataList/EditableRefdataList.js +43 -33
- package/es/lib/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js +9 -5
- package/es/lib/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js +6 -6
- package/es/lib/EditableSettingsList/SettingField/RenderSettingValue/RenderSettingValue.js +12 -10
- package/es/lib/EditableSettingsList/SettingField/SettingField.js +12 -8
- package/es/lib/EditableSettingsList/SettingField/SettingField.test.js +3 -3
- package/es/lib/FormModal/FormModal.js +32 -24
- package/es/lib/FormattedKintMessage/FormattedKintMessage.js +30 -23
- package/es/lib/IconSelect/IconSelect.js +32 -22
- package/es/lib/NoResultsMessage/NoResultsMessage.js +5 -4
- package/es/lib/NumberField/NumberField.js +25 -17
- package/es/lib/NumberField/NumberField.test.js +7 -6
- package/es/lib/QueryTypedown/QueryTypedown.js +15 -8
- package/es/lib/RefdataButtons/RefdataButtons.js +9 -6
- package/es/lib/RefdataCategoriesSettings/RefdataCategoriesSettings.js +26 -19
- package/es/lib/ResponsiveButtonGroup/ResponsiveButtonGroup.js +60 -48
- package/es/lib/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js +6 -5
- package/es/lib/RichSelect/RichSelect.js +36 -31
- package/es/lib/RichSelect/useSelectedOption.js +2 -1
- package/es/lib/SASQLookupComponent/SASQLookupComponent.js +94 -91
- package/es/lib/SASQLookupComponent/TableBody/TableBody.js +51 -41
- package/es/lib/SASQRoute/SASQRoute.js +29 -25
- package/es/lib/SASQViewComponent/SASQViewComponent.js +76 -68
- package/es/lib/SearchField/SearchField.js +13 -7
- package/es/lib/SearchKeyControl/SearchKeyControl.js +13 -8
- package/es/lib/SearchKeyControl/SearchKeyControl.test.js +6 -2
- package/es/lib/SettingPage/SettingPagePane/SettingPagePane.js +2 -2
- package/es/lib/SettingsFormContainer/SettingsFormContainer.js +35 -30
- package/es/lib/Tags/Tags.js +8 -5
- package/es/lib/Tags/hooks/useTags.js +1 -1
- package/es/lib/Tags/hooks/useTagsEnabled.js +1 -1
- package/es/lib/Tags/tagsConfig.js +1 -1
- package/es/lib/Typedown/Typedown.js +28 -21
- package/es/lib/hooks/__mocks__/index.js +7 -3
- package/es/lib/hooks/intlHooks/useIntlKeyStore/useIntlKeyStore.js +26 -20
- package/es/lib/hooks/intlHooks/useKintIntl/useKintIntl.js +34 -24
- package/es/lib/hooks/typedownHooks/useTypedown.js +2 -2
- package/es/lib/hooks/typedownHooks/useTypedownToggle.js +2 -2
- package/es/lib/hooks/useActionListRef.js +1 -1
- package/es/lib/hooks/useActiveElement.js +1 -1
- package/es/lib/hooks/useCustomProperties.js +10 -6
- package/es/lib/hooks/useHelperApp.js +16 -13
- package/es/lib/hooks/useKiwtFieldArray.js +8 -7
- package/es/lib/hooks/useKiwtSASQuery.js +19 -15
- package/es/lib/hooks/useLocalPageStore.js +10 -7
- package/es/lib/hooks/useModConfigEntries.js +2 -2
- package/es/lib/hooks/useMutateCustomProperties/useMutateCustomProperties.js +17 -10
- package/es/lib/hooks/useMutateGeneric/useMutateGeneric.js +2 -2
- package/es/lib/hooks/useMutateModConfigEntry.js +2 -2
- package/es/lib/hooks/useMutateRefdataCategory/useMutateRefdataCategory.js +21 -15
- package/es/lib/hooks/useMutateRefdataValue/useMutateRefdataValue.js +23 -16
- package/es/lib/hooks/usePrevNextPagination.js +19 -17
- package/es/lib/hooks/useQIndex.js +14 -11
- package/es/lib/hooks/useRefdata.js +3 -3
- package/es/lib/hooks/useTemplates.js +4 -4
- package/es/lib/settingsHooks/useAppSettings/useAppSettings.js +11 -7
- package/es/lib/settingsHooks/useSettingSection/useSettingSection.js +18 -12
- package/es/lib/settingsHooks/useSettings/useSettings.js +60 -60
- package/es/lib/utils/buildUrl.js +3 -2
- package/es/lib/utils/filterParsers/deparseKiwtQueryFilters.js +5 -5
- package/es/lib/utils/filterParsers/parseKiwtQueryFilters.js +2 -2
- package/es/lib/utils/filterParsers/parseKiwtQueryGroups.js +5 -4
- package/es/lib/utils/filterParsers/parseKiwtQueryString.js +1 -1
- package/es/lib/utils/generateKiwtQueryParams/generateKiwtQueryParams.js +82 -70
- package/es/lib/utils/groupCustomPropertiesByCtx.js +9 -5
- package/es/lib/utils/matchString.js +7 -5
- package/es/lib/utils/parseErrorResponse.js +4 -3
- package/es/lib/utils/selectorSafe.js +3 -2
- package/es/lib/utils/sortByLabel.js +3 -2
- package/es/lib/validators/validators.js +9 -6
- package/package.json +1 -1
- package/src/lib/SASQViewComponent/SASQViewComponent.js +2 -3
- package/styles/TypeDown.css +3 -1
|
@@ -16,8 +16,19 @@ var _hooks = require("../hooks");
|
|
|
16
16
|
var _TableBody = _interopRequireDefault(require("./TableBody"));
|
|
17
17
|
var _SearchKeyControl = _interopRequireDefault(require("../SearchKeyControl"));
|
|
18
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
const _excluded = ["data"],
|
|
20
|
+
_excluded2 = ["filterPaneFirstMenu", "filterPaneLastMenu"],
|
|
21
|
+
_excluded3 = ["mainPaneFirstMenu", "mainPaneLastMenu"];
|
|
19
22
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
|
+
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; }
|
|
24
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
25
|
+
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; }
|
|
26
|
+
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; }
|
|
27
|
+
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; }
|
|
28
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
29
|
+
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); }
|
|
20
30
|
const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
|
|
31
|
+
var _fetchParameters$SASQ, _fetchParameters$quer;
|
|
21
32
|
const {
|
|
22
33
|
children,
|
|
23
34
|
fetchParameters = {},
|
|
@@ -50,7 +61,7 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
50
61
|
ky,
|
|
51
62
|
queryParams
|
|
52
63
|
} = _ref2;
|
|
53
|
-
return ky.get(
|
|
64
|
+
return ky.get("".concat(endpoint).concat(queryParams)).json();
|
|
54
65
|
},
|
|
55
66
|
lookupResponseTransform = response => response,
|
|
56
67
|
// Function to transform the response from the query
|
|
@@ -79,7 +90,7 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
79
90
|
queryGetter: sasqPropsQueryGetter,
|
|
80
91
|
querySetter: sasqPropsQuerySetter,
|
|
81
92
|
syncToLocation = true
|
|
82
|
-
} = sasqProps
|
|
93
|
+
} = sasqProps !== null && sasqProps !== void 0 ? sasqProps : {};
|
|
83
94
|
|
|
84
95
|
// We manage our internal state of pagination (URL vs MCL page state) using usePrevNextPagination.
|
|
85
96
|
// Below the queryParameterGenerator can then choose to use the outputs (namely totalRecords and page) as it sees fit.
|
|
@@ -90,7 +101,7 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
90
101
|
} = (0, _hooks.usePrevNextPagination)({
|
|
91
102
|
count,
|
|
92
103
|
// totalRecord
|
|
93
|
-
pageSize: fetchParameters.SASQ_MAP
|
|
104
|
+
pageSize: (_fetchParameters$SASQ = fetchParameters.SASQ_MAP) === null || _fetchParameters$SASQ === void 0 ? void 0 : _fetchParameters$SASQ.perPage,
|
|
94
105
|
syncToLocation
|
|
95
106
|
});
|
|
96
107
|
const {
|
|
@@ -98,72 +109,70 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
98
109
|
queryGetter: kintSASQQueryGetter,
|
|
99
110
|
querySetter: kintSASQQuerySetter
|
|
100
111
|
} = (0, _hooks.useKiwtSASQuery)();
|
|
101
|
-
const query = (0, _react.useMemo)(() => sasqPropsQuery
|
|
102
|
-
const queryGetter = (0, _react.useMemo)(() => sasqPropsQueryGetter
|
|
103
|
-
const querySetter = (0, _react.useMemo)(() => sasqPropsQuerySetter
|
|
112
|
+
const query = (0, _react.useMemo)(() => sasqPropsQuery !== null && sasqPropsQuery !== void 0 ? sasqPropsQuery : kintSASQQuery, [sasqPropsQuery, kintSASQQuery]);
|
|
113
|
+
const queryGetter = (0, _react.useMemo)(() => sasqPropsQueryGetter !== null && sasqPropsQueryGetter !== void 0 ? sasqPropsQueryGetter : kintSASQQueryGetter, [sasqPropsQueryGetter, kintSASQQueryGetter]);
|
|
114
|
+
const querySetter = (0, _react.useMemo)(() => sasqPropsQuerySetter !== null && sasqPropsQuerySetter !== void 0 ? sasqPropsQuerySetter : kintSASQQuerySetter, [sasqPropsQuerySetter, kintSASQQuerySetter]);
|
|
104
115
|
const {
|
|
105
116
|
0: namespace
|
|
106
117
|
} = (0, _core.useNamespace)();
|
|
107
118
|
const ky = (0, _core.useOkapiKy)();
|
|
108
|
-
const filterPaneVisibileKey =
|
|
109
|
-
const queryParams = (0, _react.useMemo)(() => queryParameterGenerator(
|
|
110
|
-
// With Typescript this would be a type of SASQ_MAP, and so totalRecords is a valid property in our new shape
|
|
119
|
+
const filterPaneVisibileKey = "".concat(namespace, "-").concat(id, "-filterPaneVisibility");
|
|
120
|
+
const queryParams = (0, _react.useMemo)(() => queryParameterGenerator(// With Typescript this would be a type of SASQ_MAP, and so totalRecords is a valid property in our new shape
|
|
111
121
|
// In generateKiwtQueryParams we can choose to ignore totalRecords, which while being a valid property is not necessary for KIWT queries
|
|
112
|
-
{
|
|
122
|
+
_objectSpread({
|
|
113
123
|
page: currentPage,
|
|
114
|
-
totalRecords: count
|
|
115
|
-
|
|
116
|
-
}, query ?? {}), [count, currentPage, fetchParameters.SASQ_MAP, query, queryParameterGenerator]);
|
|
124
|
+
totalRecords: count
|
|
125
|
+
}, fetchParameters.SASQ_MAP), query !== null && query !== void 0 ? query : {}), [count, currentPage, fetchParameters.SASQ_MAP, query, queryParameterGenerator]);
|
|
117
126
|
const [filterPaneVisible, setFilterPaneVisible] = (0, _hooks.useLocalStorageState)(filterPaneVisibileKey, true);
|
|
118
127
|
const toggleFilterPane = () => setFilterPaneVisible(!filterPaneVisible);
|
|
119
|
-
const {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
})
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
128
|
+
const _useQuery = (0, _reactQuery.useQuery)(lookupQueryNamespaceGenerator({
|
|
129
|
+
currentPage,
|
|
130
|
+
endpoint: fetchParameters.endpoint,
|
|
131
|
+
namespace,
|
|
132
|
+
id,
|
|
133
|
+
query,
|
|
134
|
+
queryParams
|
|
135
|
+
}), () => {
|
|
136
|
+
return lookupQueryPromise({
|
|
137
|
+
ky,
|
|
138
|
+
queryParams,
|
|
139
|
+
endpoint: fetchParameters.endpoint
|
|
140
|
+
});
|
|
141
|
+
}, _objectSpread(_objectSpread({
|
|
142
|
+
enabled: (!!(query !== null && query !== void 0 && query.filters) || !!(query !== null && query !== void 0 && query.query)) && !!currentPage
|
|
143
|
+
}, (_fetchParameters$quer = fetchParameters.queryOptions) !== null && _fetchParameters$quer !== void 0 ? _fetchParameters$quer : {}), {}, {
|
|
144
|
+
// select is a parameter supported by useQuery to transform the response
|
|
145
|
+
// Could be possible to instead pass this down along with the queryOptions
|
|
146
|
+
// Additionally this is assuming the lookupResponseTransform is a func as opposed to an object
|
|
147
|
+
select: selectData => {
|
|
148
|
+
return lookupResponseTransform(selectData);
|
|
149
|
+
}
|
|
150
|
+
})),
|
|
151
|
+
{
|
|
152
|
+
data = {}
|
|
153
|
+
} = _useQuery,
|
|
154
|
+
restOfQueryProps = _objectWithoutProperties(_useQuery, _excluded);
|
|
145
155
|
(0, _react.useEffect)(() => {
|
|
146
|
-
if (count !== data
|
|
147
|
-
setCount(data
|
|
156
|
+
if (count !== (data === null || data === void 0 ? void 0 : data.totalRecords)) {
|
|
157
|
+
setCount(data === null || data === void 0 ? void 0 : data.totalRecords);
|
|
148
158
|
}
|
|
149
159
|
}, [count, data.totalRecords]);
|
|
150
160
|
(0, _react.useImperativeHandle)(ref, () => ({
|
|
151
|
-
lookupQueryProps: {
|
|
152
|
-
data
|
|
153
|
-
|
|
154
|
-
},
|
|
161
|
+
lookupQueryProps: _objectSpread({
|
|
162
|
+
data
|
|
163
|
+
}, restOfQueryProps),
|
|
155
164
|
queryParams
|
|
156
165
|
}));
|
|
157
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_smartComponents.SearchAndSortQuery, {
|
|
166
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_smartComponents.SearchAndSortQuery, _objectSpread(_objectSpread(_objectSpread({
|
|
158
167
|
initialSearchState: {
|
|
159
168
|
query: ''
|
|
160
169
|
},
|
|
161
170
|
queryGetter: queryGetter,
|
|
162
171
|
querySetter: querySetter,
|
|
163
|
-
syncToLocation: syncToLocation
|
|
164
|
-
|
|
165
|
-
...paginationSASQProps,
|
|
172
|
+
syncToLocation: syncToLocation
|
|
173
|
+
}, sasqProps), paginationSASQProps), {}, {
|
|
166
174
|
children: sasqRenderProps => {
|
|
175
|
+
var _ref3, _data$total;
|
|
167
176
|
const {
|
|
168
177
|
activeFilters,
|
|
169
178
|
filterChanged,
|
|
@@ -177,17 +186,17 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
177
186
|
const searchHandlers = getSearchHandlers();
|
|
178
187
|
const disableReset = !filterChanged && !searchChanged;
|
|
179
188
|
const filterCount = activeFilters.string ? activeFilters.string.split(',').length : 0;
|
|
180
|
-
const Body = RenderBody
|
|
189
|
+
const Body = RenderBody !== null && RenderBody !== void 0 ? RenderBody : _TableBody.default;
|
|
181
190
|
const {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
191
|
+
filterPaneFirstMenu,
|
|
192
|
+
filterPaneLastMenu
|
|
193
|
+
} = filterPaneProps,
|
|
194
|
+
restOfFilterPaneProps = _objectWithoutProperties(filterPaneProps, _excluded2);
|
|
186
195
|
const {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
196
|
+
mainPaneFirstMenu,
|
|
197
|
+
mainPaneLastMenu
|
|
198
|
+
} = mainPaneProps,
|
|
199
|
+
restOfMainPaneProps = _objectWithoutProperties(mainPaneProps, _excluded3);
|
|
191
200
|
const internalStateProps = {
|
|
192
201
|
activeFilters,
|
|
193
202
|
filterCount,
|
|
@@ -211,14 +220,14 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
211
220
|
}
|
|
212
221
|
return null;
|
|
213
222
|
};
|
|
214
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_smartComponents.PersistedPaneset, {
|
|
223
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_smartComponents.PersistedPaneset, _objectSpread(_objectSpread({
|
|
215
224
|
appId: namespace,
|
|
216
|
-
id:
|
|
217
|
-
|
|
218
|
-
children: [filterPaneVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Pane, {
|
|
225
|
+
id: "".concat(id, "-paneset")
|
|
226
|
+
}, persistedPanesetProps), {}, {
|
|
227
|
+
children: [filterPaneVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Pane, _objectSpread(_objectSpread({
|
|
219
228
|
defaultWidth: "20%",
|
|
220
229
|
firstMenu: filterPaneFirstMenu ? filterPaneFirstMenu(internalStateProps) : null,
|
|
221
|
-
id:
|
|
230
|
+
id: "".concat(id, "-filter-pane"),
|
|
222
231
|
lastMenu: filterPaneLastMenu ? filterPaneLastMenu(internalStateProps) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.PaneMenu, {
|
|
223
232
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_smartComponents.CollapseFilterPaneButton, {
|
|
224
233
|
onClick: toggleFilterPane
|
|
@@ -226,27 +235,27 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
226
235
|
}),
|
|
227
236
|
paneTitle: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
|
|
228
237
|
id: "stripes-smart-components.searchAndFilter"
|
|
229
|
-
})
|
|
230
|
-
|
|
238
|
+
})
|
|
239
|
+
}, restOfFilterPaneProps), {}, {
|
|
231
240
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("form", {
|
|
232
241
|
onSubmit: onSubmitSearch,
|
|
233
242
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(FilterPaneHeaderComponent, {}), !noSearchField && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
234
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SearchField, {
|
|
243
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SearchField, _objectSpread({
|
|
235
244
|
ariaLabel: searchFieldAriaLabel,
|
|
236
245
|
autoFocus: true,
|
|
237
|
-
id:
|
|
246
|
+
id: "sasq-search-field-".concat(id),
|
|
238
247
|
name: "query",
|
|
239
248
|
onChange: e => {
|
|
240
|
-
|
|
249
|
+
var _e$target;
|
|
250
|
+
if ((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.value) {
|
|
241
251
|
searchHandlers.query(e); // SASQ needs the whole event here
|
|
242
252
|
} else {
|
|
243
253
|
searchHandlers.reset();
|
|
244
254
|
}
|
|
245
255
|
},
|
|
246
256
|
onClear: searchHandlers.reset,
|
|
247
|
-
value: searchValue.query
|
|
248
|
-
|
|
249
|
-
}), searchableIndexes?.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SearchKeyControl.default, {
|
|
257
|
+
value: searchValue.query
|
|
258
|
+
}, searchFieldProps)), (searchableIndexes === null || searchableIndexes === void 0 ? void 0 : searchableIndexes.length) > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SearchKeyControl.default, {
|
|
250
259
|
options: searchableIndexes
|
|
251
260
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
252
261
|
buttonStyle: "primary",
|
|
@@ -278,23 +287,23 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
278
287
|
searchValue: searchValue
|
|
279
288
|
})]
|
|
280
289
|
})
|
|
281
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Pane, {
|
|
290
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Pane, _objectSpread(_objectSpread({
|
|
282
291
|
defaultWidth: "fill",
|
|
283
292
|
firstMenu: renderFirstMenu(),
|
|
284
|
-
id:
|
|
293
|
+
id: "".concat(id, "-main-pane"),
|
|
285
294
|
lastMenu: mainPaneLastMenu ? mainPaneLastMenu(internalStateProps) : null,
|
|
286
295
|
noOverflow: true,
|
|
287
296
|
padContent: false,
|
|
288
297
|
paneSub: kintIntl.formatKintMessage({
|
|
289
298
|
id: 'found#Values',
|
|
290
|
-
overrideValue: labelOverrides
|
|
299
|
+
overrideValue: labelOverrides === null || labelOverrides === void 0 ? void 0 : labelOverrides.foundValues
|
|
291
300
|
},
|
|
292
301
|
// DEPRECATED data.total should NOT be the first call here, but staying for backwards compatibility. Elsewhere we use data.totalRecords
|
|
293
302
|
{
|
|
294
|
-
total: data
|
|
295
|
-
})
|
|
296
|
-
|
|
297
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Body, {
|
|
303
|
+
total: (_ref3 = (_data$total = data === null || data === void 0 ? void 0 : data.total) !== null && _data$total !== void 0 ? _data$total : data === null || data === void 0 ? void 0 : data.totalRecords) !== null && _ref3 !== void 0 ? _ref3 : 0
|
|
304
|
+
})
|
|
305
|
+
}, restOfMainPaneProps), {}, {
|
|
306
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Body, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
298
307
|
data: data,
|
|
299
308
|
filterPaneVisible: filterPaneVisible,
|
|
300
309
|
intlKey: passedIntlKey,
|
|
@@ -303,20 +312,14 @@ const SASQLookupComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) =>
|
|
|
303
312
|
noResultsProps: noResultsProps,
|
|
304
313
|
query: query,
|
|
305
314
|
rowNavigation: rowNavigation,
|
|
306
|
-
toggleFilterPane: toggleFilterPane
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
...paginationMCLProps,
|
|
313
|
-
...mclProps
|
|
314
|
-
}
|
|
315
|
-
})
|
|
316
|
-
}), children]
|
|
317
|
-
});
|
|
315
|
+
toggleFilterPane: toggleFilterPane
|
|
316
|
+
}, restOfQueryProps), sasqRenderProps), sasqProps), _objectSpread(_objectSpread({}, props), {}, {
|
|
317
|
+
mclProps: _objectSpread(_objectSpread({}, paginationMCLProps), mclProps)
|
|
318
|
+
})))
|
|
319
|
+
})), children]
|
|
320
|
+
}));
|
|
318
321
|
}
|
|
319
|
-
});
|
|
322
|
+
}));
|
|
320
323
|
});
|
|
321
324
|
SASQLookupComponent.propTypes = {
|
|
322
325
|
children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.node]),
|
|
@@ -10,33 +10,42 @@ var _reactRouterDom = require("react-router-dom");
|
|
|
10
10
|
var _components = require("@folio/stripes/components");
|
|
11
11
|
var _NoResultsMessage = _interopRequireDefault(require("../../NoResultsMessage"));
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
const _excluded = ["formatter"];
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
19
|
+
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); }
|
|
20
|
+
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; }
|
|
21
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
14
22
|
const TableBody = _ref => {
|
|
23
|
+
var _query$sort, _match$params2;
|
|
15
24
|
let {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const sortOrder = query.sort
|
|
25
|
+
data,
|
|
26
|
+
error,
|
|
27
|
+
fetchNextPage,
|
|
28
|
+
filterPaneVisible,
|
|
29
|
+
intlKey: passedIntlKey,
|
|
30
|
+
intlNS: passedIntlNS,
|
|
31
|
+
isError,
|
|
32
|
+
isLoading,
|
|
33
|
+
labelOverrides = {},
|
|
34
|
+
match,
|
|
35
|
+
mclProps: {
|
|
36
|
+
formatter = {}
|
|
37
|
+
} = {},
|
|
38
|
+
noResultsProps = {},
|
|
39
|
+
onSort,
|
|
40
|
+
path,
|
|
41
|
+
resultColumns,
|
|
42
|
+
rowNavigation = true,
|
|
43
|
+
// Default navigation onRowClick
|
|
44
|
+
toggleFilterPane,
|
|
45
|
+
query
|
|
46
|
+
} = _ref,
|
|
47
|
+
mclProps = _objectWithoutProperties(_ref.mclProps, _excluded);
|
|
48
|
+
const sortOrder = (_query$sort = query.sort) !== null && _query$sort !== void 0 ? _query$sort : '';
|
|
40
49
|
const history = (0, _reactRouterDom.useHistory)();
|
|
41
50
|
const location = (0, _reactRouterDom.useLocation)();
|
|
42
51
|
const onNeedMoreData = (_askAmount, index) => {
|
|
@@ -51,9 +60,9 @@ const TableBody = _ref => {
|
|
|
51
60
|
// Build the list of visible columns
|
|
52
61
|
const visibleColumns = resultColumns.map(e => e.propertyPath);
|
|
53
62
|
const getRowUrl = (0, _react.useCallback)(rowData => {
|
|
54
|
-
const baseUrl =
|
|
63
|
+
const baseUrl = "".concat(path, "/").concat(rowData === null || rowData === void 0 ? void 0 : rowData.id);
|
|
55
64
|
return {
|
|
56
|
-
url:
|
|
65
|
+
url: "".concat(baseUrl).concat(location === null || location === void 0 ? void 0 : location.search),
|
|
57
66
|
path,
|
|
58
67
|
baseUrl,
|
|
59
68
|
location
|
|
@@ -62,10 +71,9 @@ const TableBody = _ref => {
|
|
|
62
71
|
const getEnhancedFormatter = (0, _react.useCallback)(() => {
|
|
63
72
|
const enhancedFormatter = {};
|
|
64
73
|
for (const [key, value] of Object.entries(formatter)) {
|
|
65
|
-
enhancedFormatter[key] = item => value({
|
|
66
|
-
...item,
|
|
74
|
+
enhancedFormatter[key] = item => value(_objectSpread(_objectSpread({}, item), {}, {
|
|
67
75
|
defaultRowUrl: getRowUrl(item)
|
|
68
|
-
});
|
|
76
|
+
}));
|
|
69
77
|
}
|
|
70
78
|
return enhancedFormatter;
|
|
71
79
|
}, [formatter, getRowUrl]);
|
|
@@ -78,21 +86,25 @@ const TableBody = _ref => {
|
|
|
78
86
|
return null;
|
|
79
87
|
}, [getRowUrl, history, rowNavigation]);
|
|
80
88
|
const isSelected = (0, _react.useCallback)(_ref2 => {
|
|
89
|
+
var _match$params;
|
|
81
90
|
let {
|
|
82
91
|
item
|
|
83
92
|
} = _ref2;
|
|
84
|
-
return item.id === match
|
|
85
|
-
}, [match
|
|
86
|
-
const NoResultsComponent = (0, _react.useMemo)(() =>
|
|
87
|
-
|
|
93
|
+
return item.id === (match === null || match === void 0 || (_match$params = match.params) === null || _match$params === void 0 ? void 0 : _match$params.id);
|
|
94
|
+
}, [match === null || match === void 0 || (_match$params2 = match.params) === null || _match$params2 === void 0 ? void 0 : _match$params2.id]);
|
|
95
|
+
const NoResultsComponent = (0, _react.useMemo)(() => {
|
|
96
|
+
var _noResultsProps$compo;
|
|
97
|
+
return (_noResultsProps$compo = noResultsProps === null || noResultsProps === void 0 ? void 0 : noResultsProps.component) !== null && _noResultsProps$compo !== void 0 ? _noResultsProps$compo : _NoResultsMessage.default;
|
|
98
|
+
}, [noResultsProps === null || noResultsProps === void 0 ? void 0 : noResultsProps.component]);
|
|
99
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MultiColumnList, _objectSpread({
|
|
88
100
|
autosize: true,
|
|
89
101
|
columnMapping: columnMapping,
|
|
90
|
-
contentData: data
|
|
102
|
+
contentData: data === null || data === void 0 ? void 0 : data.results,
|
|
91
103
|
formatter: getEnhancedFormatter() // Pass enhanced formatter
|
|
92
104
|
,
|
|
93
105
|
hasMargin: true,
|
|
94
106
|
interactive: rowNavigation,
|
|
95
|
-
isEmptyMessage: /*#__PURE__*/(0, _jsxRuntime.jsx)(NoResultsComponent, {
|
|
107
|
+
isEmptyMessage: /*#__PURE__*/(0, _jsxRuntime.jsx)(NoResultsComponent, _objectSpread({}, _objectSpread({
|
|
96
108
|
error,
|
|
97
109
|
filterPaneIsVisible: filterPaneVisible,
|
|
98
110
|
intlKey: passedIntlKey,
|
|
@@ -101,9 +113,8 @@ const TableBody = _ref => {
|
|
|
101
113
|
isLoading,
|
|
102
114
|
labelOverrides,
|
|
103
115
|
searchTerm: query.query,
|
|
104
|
-
toggleFilterPane
|
|
105
|
-
|
|
106
|
-
}),
|
|
116
|
+
toggleFilterPane
|
|
117
|
+
}, noResultsProps))),
|
|
107
118
|
isSelected: isSelected,
|
|
108
119
|
onHeaderClick: onSort,
|
|
109
120
|
onNeedMoreData: onNeedMoreData,
|
|
@@ -112,9 +123,8 @@ const TableBody = _ref => {
|
|
|
112
123
|
sortDirection: sortOrder.startsWith('-') ? 'descending' : 'ascending',
|
|
113
124
|
sortOrder: sortOrder.replace(/^-/, '').replace(/,.*/, ''),
|
|
114
125
|
totalCount: data.totalRecords,
|
|
115
|
-
visibleColumns: visibleColumns
|
|
116
|
-
|
|
117
|
-
});
|
|
126
|
+
visibleColumns: visibleColumns
|
|
127
|
+
}, mclProps));
|
|
118
128
|
};
|
|
119
129
|
TableBody.propTypes = {
|
|
120
130
|
data: _propTypes.default.shape({
|
|
@@ -10,28 +10,33 @@ var _reactRouterDom = require("react-router-dom");
|
|
|
10
10
|
var _SASQLookupComponent = require("../SASQLookupComponent");
|
|
11
11
|
var _SASQViewComponent = _interopRequireDefault(require("../SASQViewComponent"));
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
const _excluded = ["children", "fetchParameters", "getPathLookup", "getPathView", "SASQLookupComponent", "path", "SASQViewComponent"];
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
19
|
+
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); }
|
|
20
|
+
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; }
|
|
21
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
14
22
|
const SASQRoute = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
15
23
|
let {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
children,
|
|
25
|
+
fetchParameters,
|
|
26
|
+
getPathLookup = path => "".concat(path, "/:id?"),
|
|
27
|
+
getPathView = path => "".concat(path, "/:id"),
|
|
28
|
+
SASQLookupComponent: RouteLookupComponent = _SASQLookupComponent.SASQLookupComponent,
|
|
29
|
+
path,
|
|
30
|
+
SASQViewComponent: RouteViewComponent = _SASQViewComponent.default
|
|
31
|
+
} = _ref,
|
|
32
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
25
33
|
// Grab the SASQ_MAP and tweak it
|
|
26
34
|
const {
|
|
27
35
|
SASQ_MAP = {}
|
|
28
36
|
} = fetchParameters;
|
|
29
37
|
const lookupRef = (0, _react.useRef)();
|
|
30
38
|
const viewRef = (0, _react.useRef)();
|
|
31
|
-
(0, _react.useImperativeHandle)(ref, () => ({
|
|
32
|
-
...lookupRef.current,
|
|
33
|
-
...viewRef.current
|
|
34
|
-
}));
|
|
39
|
+
(0, _react.useImperativeHandle)(ref, () => _objectSpread(_objectSpread({}, lookupRef.current), viewRef.current));
|
|
35
40
|
if (!SASQ_MAP.perPage) {
|
|
36
41
|
SASQ_MAP.perPage = 25;
|
|
37
42
|
}
|
|
@@ -42,26 +47,25 @@ const SASQRoute = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
42
47
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
|
|
43
48
|
path: getPathLookup(path),
|
|
44
49
|
render: routeProps => {
|
|
45
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(RouteLookupComponent, {
|
|
46
|
-
ref: lookupRef
|
|
47
|
-
|
|
50
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(RouteLookupComponent, _objectSpread(_objectSpread(_objectSpread({
|
|
51
|
+
ref: lookupRef
|
|
52
|
+
}, routeProps), {}, {
|
|
48
53
|
fetchParameters: fetchParameters,
|
|
49
|
-
path: path
|
|
50
|
-
|
|
54
|
+
path: path
|
|
55
|
+
}, props), {}, {
|
|
51
56
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactRouterDom.Switch, {
|
|
52
57
|
children: [children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
|
|
53
58
|
path: getPathView(path),
|
|
54
|
-
render: innerProps => /*#__PURE__*/(0, _jsxRuntime.jsx)(RouteViewComponent, {
|
|
55
|
-
ref: viewRef
|
|
56
|
-
|
|
59
|
+
render: innerProps => /*#__PURE__*/(0, _jsxRuntime.jsx)(RouteViewComponent, _objectSpread(_objectSpread({
|
|
60
|
+
ref: viewRef
|
|
61
|
+
}, innerProps), {}, {
|
|
57
62
|
fetchParameters: fetchParameters,
|
|
58
63
|
path: path,
|
|
59
|
-
ViewComponent: props.ViewComponent
|
|
60
|
-
|
|
61
|
-
})
|
|
64
|
+
ViewComponent: props.ViewComponent
|
|
65
|
+
}, props))
|
|
62
66
|
})]
|
|
63
67
|
})
|
|
64
|
-
});
|
|
68
|
+
}));
|
|
65
69
|
}
|
|
66
70
|
});
|
|
67
71
|
});
|