@k-int/stripes-kint-components 5.1.0 → 5.1.2

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 (84) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/es/lib/ActionList/ActionListFieldArray.js +29 -32
  3. package/es/lib/ComboButton/ComboButton.js +5 -6
  4. package/es/lib/CustomProperties/Config/CustomPropertiesLookup.js +4 -7
  5. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.js +29 -32
  6. package/es/lib/CustomProperties/Config/CustomPropertyForm.js +58 -58
  7. package/es/lib/CustomProperties/Config/CustomPropertyForm.test.js +2 -2
  8. package/es/lib/CustomProperties/Config/CustomPropertyView.js +32 -33
  9. package/es/lib/CustomProperties/Config/CustomPropertyView.test.js +1 -1
  10. package/es/lib/CustomProperties/Edit/CustomPropertiesEdit.js +1 -1
  11. package/es/lib/CustomProperties/Edit/CustomPropertiesEditCtx.js +3 -3
  12. package/es/lib/CustomProperties/Edit/CustomPropertiesListField.js +5 -10
  13. package/es/lib/CustomProperties/Edit/CustomPropertyField.js +20 -26
  14. package/es/lib/CustomProperties/Edit/CustomPropertyField.test.js +5 -5
  15. package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.js +2 -2
  16. package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.test.js +1 -1
  17. package/es/lib/CustomProperties/Edit/testResources.js +11 -12
  18. package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.js +6 -11
  19. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.js +20 -28
  20. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.test.js +1 -1
  21. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js +6 -6
  22. package/es/lib/CustomProperties/Filter/CustomPropertiesRule.js +8 -8
  23. package/es/lib/CustomProperties/Filter/testResources.js +1 -2
  24. package/es/lib/CustomProperties/Filter/useParseActiveFilterStrings.js +1 -2
  25. package/es/lib/CustomProperties/View/CustomPropertiesView.js +1 -1
  26. package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.js +18 -26
  27. package/es/lib/CustomProperties/View/CustomPropertyCard.js +7 -11
  28. package/es/lib/CycleButton/CycleButton.js +1 -1
  29. package/es/lib/EditableRefdataCategoryList/EditableRefdataCategoryList.js +21 -32
  30. package/es/lib/EditableRefdataList/EditableRefdataList.js +26 -33
  31. package/es/lib/EditableSettingsList/EditableSettingsListFieldArray.js +1 -1
  32. package/es/lib/EditableSettingsList/SettingField/EditSettingValue.js +5 -5
  33. package/es/lib/EditableSettingsList/SettingField/RenderSettingValue.js +10 -12
  34. package/es/lib/EditableSettingsList/SettingField/SettingField.js +4 -4
  35. package/es/lib/FormattedKintMessage/FormattedKintMessage.js +4 -7
  36. package/es/lib/IconSelect/IconSelect.js +5 -9
  37. package/es/lib/NoResultsMessage/NoResultsMessage.js +4 -4
  38. package/es/lib/RefdataButtons/RefdataButtons.js +3 -3
  39. package/es/lib/ResponsiveButtonGroup/ResponsiveButtonGroup.js +21 -28
  40. package/es/lib/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js +5 -6
  41. package/es/lib/RichSelect/RichSelect.js +14 -19
  42. package/es/lib/RichSelect/useSelectedOption.js +1 -2
  43. package/es/lib/SASQLookupComponent/SASQLookupComponent.js +14 -17
  44. package/es/lib/SASQLookupComponent/TableBody/TableBody.js +4 -6
  45. package/es/lib/SASQRoute/SASQRoute.js +2 -2
  46. package/es/lib/SASQViewComponent/SASQViewComponent.js +5 -9
  47. package/es/lib/SettingPage/SettingPagePane.js +2 -2
  48. package/es/lib/SettingsFormContainer/SettingsFormContainer.js +2 -2
  49. package/es/lib/Typedown/Typedown.js +19 -26
  50. package/es/lib/constants/comparators.js +1 -1
  51. package/es/lib/hooks/typedownHooks/useTypedown.js +2 -2
  52. package/es/lib/hooks/typedownHooks/useTypedownToggle.js +2 -2
  53. package/es/lib/hooks/useActiveElement.js +1 -1
  54. package/es/lib/hooks/useCustomProperties.js +2 -2
  55. package/es/lib/hooks/useHelperApp.js +6 -6
  56. package/es/lib/hooks/useIntlKeyStore.js +4 -7
  57. package/es/lib/hooks/useKintIntl.js +5 -11
  58. package/es/lib/hooks/useKiwtSASQuery.js +1 -1
  59. package/es/lib/hooks/useModConfigEntries.js +2 -2
  60. package/es/lib/hooks/useMutateCustomProperties.js +8 -8
  61. package/es/lib/hooks/useMutateModConfigEntry.js +2 -2
  62. package/es/lib/hooks/useMutateRefdataCategory.js +4 -4
  63. package/es/lib/hooks/useMutateRefdataValue.js +6 -6
  64. package/es/lib/hooks/useQIndex.js +5 -5
  65. package/es/lib/hooks/useRefdata.js +3 -3
  66. package/es/lib/hooks/useTemplates.js +4 -4
  67. package/es/lib/settingsHooks/useAppSettings.js +7 -11
  68. package/es/lib/settingsHooks/useSettingSection.js +2 -2
  69. package/es/lib/settingsHooks/useSettings.js +3 -3
  70. package/es/lib/utils/buildUrl.js +2 -3
  71. package/es/lib/utils/filterParsers/deparseKiwtQueryFilters.js +6 -6
  72. package/es/lib/utils/filterParsers/parseKiwtQueryFilters.js +2 -2
  73. package/es/lib/utils/filterParsers/parseKiwtQueryGroups.js +4 -5
  74. package/es/lib/utils/filterParsers/parseKiwtQueryString.js +1 -1
  75. package/es/lib/utils/generateKiwtQueryParams.js +28 -37
  76. package/es/lib/utils/groupCustomPropertiesByCtx.js +2 -3
  77. package/es/lib/utils/matchString.js +1 -1
  78. package/es/lib/utils/parseErrorResponse.js +2 -3
  79. package/es/lib/utils/selectorSafe.js +2 -3
  80. package/es/lib/utils/sortByLabel.js +2 -3
  81. package/es/lib/validators/validators.js +3 -3
  82. package/package.json +1 -1
  83. package/src/lib/CustomProperties/Edit/CustomPropertyField.js +4 -2
  84. package/src/lib/constants/comparators.js +1 -0
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _reactFinalForm = require("react-final-form");
9
+ var _orderBy = _interopRequireDefault(require("lodash/orderBy"));
9
10
  var _components = require("@folio/stripes/components");
10
11
  var CUSTOM_PROPERTY_TYPES = _interopRequireWildcard(require("../../constants/customProperties"));
11
12
  var _hooks = require("../../hooks");
@@ -32,12 +33,11 @@ const CustomPropertyField = _ref => {
32
33
 
33
34
  // Set up the validator for the customProperty
34
35
  const customPropertyValidator = (fieldValue, allValues) => {
35
- var _allValues$customProp, _allValues$customProp2;
36
36
  const {
37
37
  note,
38
38
  publicNote,
39
39
  value: currentValue
40
- } = (_allValues$customProp = allValues === null || allValues === void 0 || (_allValues$customProp2 = allValues.customProperties) === null || _allValues$customProp2 === void 0 || (_allValues$customProp2 = _allValues$customProp2[customProperty === null || customProperty === void 0 ? void 0 : customProperty.value]) === null || _allValues$customProp2 === void 0 ? void 0 : _allValues$customProp2[0]) !== null && _allValues$customProp !== void 0 ? _allValues$customProp : {};
40
+ } = allValues?.customProperties?.[customProperty?.value]?.[0] ?? {};
41
41
  if (note && !currentValue || publicNote && !currentValue) {
42
42
  if (customProperty.type === CUSTOM_PROPERTY_TYPES.DECIMAL_CLASS_NAME || customProperty.type === CUSTOM_PROPERTY_TYPES.INTEGER_CLASS_NAME) {
43
43
  return kintIntl.formatKintMessage({
@@ -80,9 +80,7 @@ const CustomPropertyField = _ref => {
80
80
  return availableCustomProperties.find(cp => cp.value === customPropertyValue);
81
81
  };
82
82
  const renderCustomPropertyName = () => {
83
- var _customPropertyValue$;
84
83
  const unsetCustomProperties = availableCustomProperties.filter(t => {
85
- var _custPropValue$;
86
84
  // Only optional properties can be set
87
85
  if (t.primary) return false;
88
86
  const custPropValue = value[t.value];
@@ -91,16 +89,16 @@ const CustomPropertyField = _ref => {
91
89
  if (custPropValue === undefined) return true;
92
90
 
93
91
  // The customProperty is set but is marked for deletion. Allow reuse.
94
- if ((_custPropValue$ = custPropValue[0]) !== null && _custPropValue$ !== void 0 && _custPropValue$._delete) return true;
92
+ if (custPropValue[0]?._delete) return true;
95
93
  return false;
96
94
  });
97
95
  const customPropertyValue = value[customProperty.value];
98
- const id = customPropertyValue === null || customPropertyValue === void 0 || (_customPropertyValue$ = customPropertyValue[0]) === null || _customPropertyValue$ === void 0 ? void 0 : _customPropertyValue$.id;
96
+ const id = customPropertyValue?.[0]?.id;
99
97
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Select, {
100
98
  autoFocus: !id,
101
99
  dataOptions: [customProperty, ...unsetCustomProperties] // The selected customProperty, and the available unset customProperties
102
100
  ,
103
- id: "edit-customproperty-".concat(index, "-name"),
101
+ id: `edit-customproperty-${index}-name`,
104
102
  label: kintIntl.formatKintMessage({
105
103
  id: 'customProperties.name',
106
104
  overrideValue: labelOverrides.name
@@ -132,7 +130,6 @@ const CustomPropertyField = _ref => {
132
130
  });
133
131
  };
134
132
  const renderCustomPropertyValue = () => {
135
- var _customProperty$optio;
136
133
  const currentValue = value[customProperty.value] ? value[customProperty.value][0] : {};
137
134
  const min = Number.MIN_SAFE_INTEGER;
138
135
  const max = Number.MAX_SAFE_INTEGER;
@@ -155,15 +152,15 @@ const CustomPropertyField = _ref => {
155
152
  case CUSTOM_PROPERTY_TYPES.REFDATA_CLASS_NAME:
156
153
  fieldProps = {
157
154
  component: _components.Select,
158
- dataOptions: customProperty.options,
159
- format: v => v === null || v === void 0 ? void 0 : v.value
155
+ dataOptions: (0, _orderBy.default)(customProperty.options, 'label'),
156
+ format: v => v?.value
160
157
  };
161
158
  break;
162
159
  case CUSTOM_PROPERTY_TYPES.MULTI_REFDATA_CLASS_NAME:
163
160
  fieldProps = {
164
161
  component: _components.MultiSelection,
165
162
  // The "not set" value is not relevant for a multi select
166
- dataOptions: (_customProperty$optio = customProperty.options) === null || _customProperty$optio === void 0 ? void 0 : _customProperty$optio.filter(opt => !!(opt !== null && opt !== void 0 && opt.value)),
163
+ dataOptions: (0, _orderBy.default)(customProperty.options?.filter(opt => !!opt?.value), 'label'),
167
164
  renderToOverlay: true
168
165
  };
169
166
  // MultiSelection passes the changed array as a value not an event
@@ -172,7 +169,7 @@ const CustomPropertyField = _ref => {
172
169
  ...value,
173
170
  [customProperty.value]: [{
174
171
  ...currentValue,
175
- _delete: (refdataArray === null || refdataArray === void 0 ? void 0 : refdataArray.length) === 0 ? true : undefined,
172
+ _delete: refdataArray?.length === 0 ? true : undefined,
176
173
  // Delete customProperty if removing all values.
177
174
  value: refdataArray
178
175
  }]
@@ -223,12 +220,12 @@ const CustomPropertyField = _ref => {
223
220
  }
224
221
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
225
222
  "data-test-customproperty-value": true,
226
- id: "edit-customproperty-".concat(index, "-value"),
223
+ id: `edit-customproperty-${index}-value`,
227
224
  label: kintIntl.formatKintMessage({
228
225
  id: 'customProperties.value',
229
226
  overrideValue: labelOverrides.value
230
227
  }),
231
- name: "".concat(name, ".").concat(customProperty.value, "[0].value"),
228
+ name: `${name}.${customProperty.value}[0].value`,
232
229
  onChange: handleChange,
233
230
  required: !customProperty.primary,
234
231
  validate: (fieldValue, allValues) => customPropertyValidator(fieldValue, allValues),
@@ -236,8 +233,7 @@ const CustomPropertyField = _ref => {
236
233
  });
237
234
  };
238
235
  const renderCustomPropertyVisibility = () => {
239
- var _value$customProperty, _value$customProperty2, _customPropertyObject;
240
- const customPropertyObject = (_value$customProperty = (_value$customProperty2 = value[customProperty.value]) === null || _value$customProperty2 === void 0 ? void 0 : _value$customProperty2[0]) !== null && _value$customProperty !== void 0 ? _value$customProperty : {};
236
+ const customPropertyObject = value[customProperty.value]?.[0] ?? {};
241
237
  const handleChange = e => {
242
238
  onChange({
243
239
  ...value,
@@ -262,18 +258,17 @@ const CustomPropertyField = _ref => {
262
258
  overrideValue: labelOverrides.internalFalse
263
259
  })
264
260
  }],
265
- id: "edit-customproperty-".concat(index, "-visibility"),
261
+ id: `edit-customproperty-${index}-visibility`,
266
262
  label: kintIntl.formatKintMessage({
267
263
  id: 'customProperties.visibility',
268
264
  overrideValue: labelOverrides.visibility
269
265
  }),
270
266
  onChange: handleChange,
271
- value: (_customPropertyObject = customPropertyObject === null || customPropertyObject === void 0 ? void 0 : customPropertyObject.internal) !== null && _customPropertyObject !== void 0 ? _customPropertyObject : customProperty.defaultInternal
267
+ value: customPropertyObject?.internal ?? customProperty.defaultInternal
272
268
  });
273
269
  };
274
270
  const renderCustomPropertyNoteInternal = () => {
275
- var _value$customProperty3, _value$customProperty4;
276
- const customPropertyObject = (_value$customProperty3 = (_value$customProperty4 = value[customProperty.value]) === null || _value$customProperty4 === void 0 ? void 0 : _value$customProperty4[0]) !== null && _value$customProperty3 !== void 0 ? _value$customProperty3 : {};
271
+ const customPropertyObject = value[customProperty.value]?.[0] ?? {};
277
272
  const handleChange = e => {
278
273
  onChange({
279
274
  ...value,
@@ -285,18 +280,17 @@ const CustomPropertyField = _ref => {
285
280
  };
286
281
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextArea, {
287
282
  "data-test-customproperty-note": true,
288
- id: "edit-customproperty-".concat(index, "-internal-note"),
283
+ id: `edit-customproperty-${index}-internal-note`,
289
284
  label: kintIntl.formatKintMessage({
290
285
  id: 'customProperties.internalNote',
291
286
  overrideValue: labelOverrides.internalNote
292
287
  }),
293
288
  onChange: handleChange,
294
- value: customPropertyObject === null || customPropertyObject === void 0 ? void 0 : customPropertyObject.note
289
+ value: customPropertyObject?.note
295
290
  });
296
291
  };
297
292
  const renderCustomPropertyNotePublic = () => {
298
- var _value$customProperty5, _value$customProperty6;
299
- const customPropertyObject = (_value$customProperty5 = (_value$customProperty6 = value[customProperty.value]) === null || _value$customProperty6 === void 0 ? void 0 : _value$customProperty6[0]) !== null && _value$customProperty5 !== void 0 ? _value$customProperty5 : {};
293
+ const customPropertyObject = value[customProperty.value]?.[0] ?? {};
300
294
  const handleChange = e => {
301
295
  onChange({
302
296
  ...value,
@@ -308,13 +302,13 @@ const CustomPropertyField = _ref => {
308
302
  };
309
303
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextArea, {
310
304
  "data-test-customproperty-public-note": true,
311
- id: "edit-customproperty-".concat(index, "-public-note"),
305
+ id: `edit-customproperty-${index}-public-note`,
312
306
  label: kintIntl.formatKintMessage({
313
307
  id: 'customProperties.publicNote',
314
308
  overrideValue: labelOverrides.publicNote
315
309
  }),
316
310
  onChange: handleChange,
317
- value: customPropertyObject === null || customPropertyObject === void 0 ? void 0 : customPropertyObject.publicNote
311
+ value: customPropertyObject?.publicNote
318
312
  });
319
313
  };
320
314
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
@@ -11,11 +11,11 @@ const onSubmit = jest.fn();
11
11
  jest.mock('../../hooks');
12
12
  const onChange = () => {};
13
13
  const setCustomProperties = () => {};
14
- const authIdentCustom = _jest.availableCustomProperties === null || _jest.availableCustomProperties === void 0 ? void 0 : _jest.availableCustomProperties.find(cp => cp.value === 'AuthorIdentification');
15
- const decimalCustProp = _jest.availableCustomProperties === null || _jest.availableCustomProperties === void 0 ? void 0 : _jest.availableCustomProperties.find(cp => cp.value === 'decimal');
16
- const integerCustProp = _jest.availableCustomProperties === null || _jest.availableCustomProperties === void 0 ? void 0 : _jest.availableCustomProperties.find(cp => cp.value === 'integer');
17
- const dateCustProp = _jest.availableCustomProperties === null || _jest.availableCustomProperties === void 0 ? void 0 : _jest.availableCustomProperties.find(cp => cp.value === 'date');
18
- const multiRefdataCustProp = _jest.availableCustomProperties === null || _jest.availableCustomProperties === void 0 ? void 0 : _jest.availableCustomProperties.find(cp => cp.value === 'MultiRefdata');
14
+ const authIdentCustom = _jest.availableCustomProperties?.find(cp => cp.value === 'AuthorIdentification');
15
+ const decimalCustProp = _jest.availableCustomProperties?.find(cp => cp.value === 'decimal');
16
+ const integerCustProp = _jest.availableCustomProperties?.find(cp => cp.value === 'integer');
17
+ const dateCustProp = _jest.availableCustomProperties?.find(cp => cp.value === 'date');
18
+ const multiRefdataCustProp = _jest.availableCustomProperties?.find(cp => cp.value === 'MultiRefdata');
19
19
  const defaultProps = {
20
20
  availableCustomProperties: _jest.availableCustomProperties,
21
21
  customProperties: _jest.customProperties,
@@ -57,7 +57,7 @@ const CustomPropertyFormCard = _ref => {
57
57
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Card, {
58
58
  "data-testid": "custom-property-form-card",
59
59
  headerEnd: customPropertyType === 'optional' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Tooltip, {
60
- id: "customProperty-".concat(customProperty.value, "-").concat(index),
60
+ id: `customProperty-${customProperty.value}-${index}`,
61
61
  text: getTooltipText(),
62
62
  children: _ref2 => {
63
63
  let {
@@ -68,7 +68,7 @@ const CustomPropertyFormCard = _ref => {
68
68
  ref: ref,
69
69
  "aria-labelledby": ariaIds.text,
70
70
  icon: "trash",
71
- id: "edit-customproperty-".concat(index, "-delete"),
71
+ id: `edit-customproperty-${index}-delete`,
72
72
  onClick: () => handleDeleteCustomProperty(customProperty, index)
73
73
  });
74
74
  }
@@ -12,7 +12,7 @@ jest.mock('../../hooks');
12
12
  jest.mock('./CustomPropertyField', () => () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
13
13
  children: "CustomPropertyField"
14
14
  }));
15
- const customProperty = _customProperties.availableCustomProperties === null || _customProperties.availableCustomProperties === void 0 ? void 0 : _customProperties.availableCustomProperties.find(cp => cp.value === 'AuthorIdentification');
15
+ const customProperty = _customProperties.availableCustomProperties?.find(cp => cp.value === 'AuthorIdentification');
16
16
  const onChange = jest.fn();
17
17
  const setCustomProperties = jest.fn();
18
18
  describe('CustomPropertyFormCard', () => {
@@ -5,23 +5,22 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.value = exports.initialValues = void 0;
7
7
  var _jest = require("../../../../test/jest");
8
- var _agreementStatusRefda, _agreementStatusRefda2, _licenseAmendmentStat;
9
- const agreementStatusRefdata = _jest.refdata === null || _jest.refdata === void 0 ? void 0 : _jest.refdata.find(rdc => rdc.desc === 'SubscriptionAgreement.AgreementStatus');
10
- const licenseAmendmentStatusRefdata = _jest.refdata === null || _jest.refdata === void 0 ? void 0 : _jest.refdata.find(rdc => rdc.desc === 'LicenseAmendmentStatus.Status');
8
+ const agreementStatusRefdata = _jest.refdata?.find(rdc => rdc.desc === 'SubscriptionAgreement.AgreementStatus');
9
+ const licenseAmendmentStatusRefdata = _jest.refdata?.find(rdc => rdc.desc === 'LicenseAmendmentStatus.Status');
11
10
  const value = exports.value = {
12
11
  AuthorIdentification: [{
13
12
  id: 2,
14
13
  internal: true,
15
14
  publicNote: 'this is a public note',
16
15
  note: 'this is an internal note',
17
- value: agreementStatusRefdata === null || agreementStatusRefdata === void 0 || (_agreementStatusRefda = agreementStatusRefdata.values) === null || _agreementStatusRefda === void 0 ? void 0 : _agreementStatusRefda.find(rdv => rdv.value === 'active'),
18
- type: _jest.customProperties === null || _jest.customProperties === void 0 ? void 0 : _jest.customProperties.find(cp => cp.name === 'AuthorIdentification')
16
+ value: agreementStatusRefdata?.values?.find(rdv => rdv.value === 'active'),
17
+ type: _jest.customProperties?.find(cp => cp.name === 'AuthorIdentification')
19
18
  }],
20
19
  Test: [{
21
20
  id: 4,
22
21
  internal: true,
23
- value: agreementStatusRefdata === null || agreementStatusRefdata === void 0 || (_agreementStatusRefda2 = agreementStatusRefdata.values) === null || _agreementStatusRefda2 === void 0 ? void 0 : _agreementStatusRefda2.find(rdv => rdv.value === 'active'),
24
- type: _jest.customProperties === null || _jest.customProperties === void 0 ? void 0 : _jest.customProperties.find(cp => cp.name === 'Test')
22
+ value: agreementStatusRefdata?.values?.find(rdv => rdv.value === 'active'),
23
+ type: _jest.customProperties?.find(cp => cp.name === 'Test')
25
24
  }],
26
25
  decimal: [{
27
26
  id: 8,
@@ -29,7 +28,7 @@ const value = exports.value = {
29
28
  note: 'decimal',
30
29
  internal: true,
31
30
  value: 1,
32
- type: _jest.customProperties === null || _jest.customProperties === void 0 ? void 0 : _jest.customProperties.find(cp => cp.name === 'decimal')
31
+ type: _jest.customProperties?.find(cp => cp.name === 'decimal')
33
32
  }],
34
33
  integer: [{
35
34
  id: 6,
@@ -37,7 +36,7 @@ const value = exports.value = {
37
36
  note: 'Integer',
38
37
  internal: true,
39
38
  value: 1,
40
- type: _jest.customProperties === null || _jest.customProperties === void 0 ? void 0 : _jest.customProperties.find(cp => cp.name === 'integer')
39
+ type: _jest.customProperties?.find(cp => cp.name === 'integer')
41
40
  }],
42
41
  text: [{
43
42
  id: 7,
@@ -45,15 +44,15 @@ const value = exports.value = {
45
44
  note: 'text',
46
45
  internal: true,
47
46
  value: 'text',
48
- type: _jest.customProperties === null || _jest.customProperties === void 0 ? void 0 : _jest.customProperties.find(cp => cp.name === 'text')
47
+ type: _jest.customProperties?.find(cp => cp.name === 'text')
49
48
  }],
50
49
  Refdata: [{
51
50
  id: 5,
52
51
  publicNote: 'refdata',
53
52
  note: 'refdata',
54
53
  internal: true,
55
- value: licenseAmendmentStatusRefdata === null || licenseAmendmentStatusRefdata === void 0 || (_licenseAmendmentStat = licenseAmendmentStatusRefdata.values) === null || _licenseAmendmentStat === void 0 ? void 0 : _licenseAmendmentStat.find(rdv => rdv.value === 'current'),
56
- type: _jest.customProperties === null || _jest.customProperties === void 0 ? void 0 : _jest.customProperties.find(cp => cp.name === 'Refdata')
54
+ value: licenseAmendmentStatusRefdata?.values?.find(rdv => rdv.value === 'current'),
55
+ type: _jest.customProperties?.find(cp => cp.name === 'Refdata')
57
56
  }]
58
57
  };
59
58
  const initialValues = exports.initialValues = {
@@ -14,7 +14,6 @@ var _customProperties = require("../../constants/customProperties");
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
16
  const CustomPropertiesFilter = _ref => {
17
- var _parsedFilterData$num, _parsedFilterData$num2;
18
17
  let {
19
18
  activeFilters: {
20
19
  customProperties: custPropFilters,
@@ -75,13 +74,9 @@ const CustomPropertiesFilter = _ref => {
75
74
  filters = []
76
75
  } = values;
77
76
  const filterStrings = filters.filter(filter => filter.rules).map(filter => {
78
- var _custprops$filter$, _custprops$filter;
79
- const relevantCustomProperty = (_custprops$filter$ = custprops === null || custprops === void 0 || (_custprops$filter = custprops.filter(cp => cp.name === filter.customProperty)) === null || _custprops$filter === void 0 ? void 0 : _custprops$filter[0]) !== null && _custprops$filter$ !== void 0 ? _custprops$filter$ : {};
80
- const filterByValueId = (relevantCustomProperty === null || relevantCustomProperty === void 0 ? void 0 : relevantCustomProperty.type) === _customProperties.MULTI_REFDATA_CLASS_NAME || (relevantCustomProperty === null || relevantCustomProperty === void 0 ? void 0 : relevantCustomProperty.type) === _customProperties.REFDATA_CLASS_NAME;
81
- return filter.rules.map(rule => {
82
- var _rule$value;
83
- return "customProperties.".concat(filter.customProperty, ".value").concat(filterByValueId ? '.id' : '').concat(rule.operator).concat((_rule$value = rule.value) !== null && _rule$value !== void 0 ? _rule$value : '');
84
- }).join('||');
77
+ const relevantCustomProperty = custprops?.filter(cp => cp.name === filter.customProperty)?.[0] ?? {};
78
+ const filterByValueId = relevantCustomProperty?.type === _customProperties.MULTI_REFDATA_CLASS_NAME || relevantCustomProperty?.type === _customProperties.REFDATA_CLASS_NAME;
79
+ return filter.rules.map(rule => `customProperties.${filter.customProperty}.value${filterByValueId ? '.id' : ''}${rule.operator}${rule.value ?? ''}`).join('||');
85
80
  });
86
81
  filterHandlers.state({
87
82
  ...restOfFilters,
@@ -92,7 +87,7 @@ const CustomPropertiesFilter = _ref => {
92
87
  };
93
88
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Accordion, {
94
89
  closedByDefault: true,
95
- displayClearButton: ((_parsedFilterData$num = parsedFilterData === null || parsedFilterData === void 0 ? void 0 : parsedFilterData.numberOfFilters) !== null && _parsedFilterData$num !== void 0 ? _parsedFilterData$num : 0) > 0,
90
+ displayClearButton: (parsedFilterData?.numberOfFilters ?? 0) > 0,
96
91
  header: _components.FilterAccordionHeader,
97
92
  id: "clickable-custprop-filter",
98
93
  label: kintIntl.formatKintMessage({
@@ -110,12 +105,12 @@ const CustomPropertiesFilter = _ref => {
110
105
  id: 'customProperty.filtersApplied',
111
106
  overrideValue: labelOverrides.filtersApplied
112
107
  }, {
113
- count: (_parsedFilterData$num2 = parsedFilterData === null || parsedFilterData === void 0 ? void 0 : parsedFilterData.numberOfFilters) !== null && _parsedFilterData$num2 !== void 0 ? _parsedFilterData$num2 : 0
108
+ count: parsedFilterData?.numberOfFilters ?? 0
114
109
  })
115
110
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CustomPropertiesFilterForm.default, {
116
111
  customProperties: custprops,
117
112
  editingFilters: editingFilters,
118
- filters: parsedFilterData === null || parsedFilterData === void 0 ? void 0 : parsedFilterData.filters,
113
+ filters: parsedFilterData?.filters,
119
114
  handlers: {
120
115
  closeEditModal,
121
116
  openEditModal
@@ -15,7 +15,6 @@ var _hooks = require("../../hooks");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  const CustomPropertiesFilterField = _ref => {
18
- var _customProperties$fin, _customProperties$fin2, _fields$value$index2;
19
18
  let {
20
19
  customProperties = [],
21
20
  fields,
@@ -38,16 +37,15 @@ const CustomPropertiesFilterField = _ref => {
38
37
  const kintIntl = (0, _hooks.useKintIntl)(passedIntlKey, passedIntlNS);
39
38
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
40
39
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
41
- id: "input-custprop-".concat(index),
40
+ id: `input-custprop-${index}`,
42
41
  label: kintIntl.formatKintMessage({
43
42
  id: 'customProperty',
44
43
  overrideValue: labelOverrides.customProperty
45
44
  }),
46
- name: "".concat(name, ".customProperty"),
45
+ name: `${name}.customProperty`,
47
46
  placeholder: " ",
48
47
  render: fieldProps => {
49
- var _Object$entries;
50
- const sortedGroupedCustProps = (_Object$entries = Object.entries(groupedCustomProperties)) === null || _Object$entries === void 0 ? void 0 : _Object$entries.sort((a, b) => {
48
+ const sortedGroupedCustProps = Object.entries(groupedCustomProperties)?.sort((a, b) => {
51
49
  if (a[0] === 'isNull') return -1; // Make sure noContext is at top
52
50
 
53
51
  if (a[0].toLowerCase() < b[0].toLowerCase()) return -1;
@@ -76,22 +74,19 @@ const CustomPropertiesFilterField = _ref => {
76
74
  }) : v.label
77
75
  }, v.id);
78
76
  })
79
- }, "custom-property-optgroup-".concat(key));
77
+ }, `custom-property-optgroup-${key}`);
80
78
  })]
81
79
  });
82
80
  },
83
81
  required: true,
84
82
  validate: _validators.required
85
83
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
86
- "data-testid": "selected-custprop-name-".concat(index),
87
- id: "selected-custprop-name-".concat(index),
84
+ "data-testid": `selected-custprop-name-${index}`,
85
+ id: `selected-custprop-name-${index}`,
88
86
  style: {
89
87
  display: 'none'
90
88
  },
91
- children: (_customProperties$fin = (_customProperties$fin2 = customProperties.find(t => {
92
- var _fields$value$index;
93
- return t.name === ((_fields$value$index = fields.value[index]) === null || _fields$value$index === void 0 ? void 0 : _fields$value$index.customProperty);
94
- })) === null || _customProperties$fin2 === void 0 ? void 0 : _customProperties$fin2.label) !== null && _customProperties$fin !== void 0 ? _customProperties$fin : ''
89
+ children: customProperties.find(t => t.name === fields.value[index]?.customProperty)?.label ?? ''
95
90
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Row, {
96
91
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
97
92
  xs: 2
@@ -119,29 +114,26 @@ const CustomPropertiesFilterField = _ref => {
119
114
  xs: 2
120
115
  })]
121
116
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalFormArrays.FieldArray, {
122
- name: "".concat(name, ".rules"),
117
+ name: `${name}.rules`,
123
118
  children: _ref3 => {
124
119
  let {
125
120
  fields: ruleFields
126
121
  } = _ref3;
127
- return ruleFields.map((ruleFieldName, ruleFieldIndex) => {
128
- var _values$filters$index;
129
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CustomPropertiesRule.default, {
130
- ariaLabelledby: "selected-custprop-name-".concat(index),
131
- clearRuleValue: () => change("filters[".concat(index, "].rules[").concat(ruleFieldIndex, "].value"), ''),
132
- custPropDefinition: customProperties.find(t => t.name === fields.value[index].customProperty),
133
- index: ruleFieldIndex,
134
- labelOverrides: labelOverrides,
135
- name: ruleFieldName,
136
- onDelete: () => ruleFields.remove(ruleFieldIndex),
137
- value: (_values$filters$index = values.filters[index]) === null || _values$filters$index === void 0 ? void 0 : _values$filters$index.rules[ruleFieldIndex]
138
- }, ruleFieldName);
139
- });
122
+ return ruleFields.map((ruleFieldName, ruleFieldIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_CustomPropertiesRule.default, {
123
+ ariaLabelledby: `selected-custprop-name-${index}`,
124
+ clearRuleValue: () => change(`filters[${index}].rules[${ruleFieldIndex}].value`, ''),
125
+ custPropDefinition: customProperties.find(t => t.name === fields.value[index].customProperty),
126
+ index: ruleFieldIndex,
127
+ labelOverrides: labelOverrides,
128
+ name: ruleFieldName,
129
+ onDelete: () => ruleFields.remove(ruleFieldIndex),
130
+ value: values.filters[index]?.rules[ruleFieldIndex]
131
+ }, ruleFieldName));
140
132
  }
141
133
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
142
134
  "data-test-add-rule-btn": true,
143
- disabled: !((_fields$value$index2 = fields.value[index]) !== null && _fields$value$index2 !== void 0 && _fields$value$index2.customProperty),
144
- onClick: () => push("".concat(name, ".rules")),
135
+ disabled: !fields.value[index]?.customProperty,
136
+ onClick: () => push(`${name}.rules`),
145
137
  children: kintIntl.formatKintMessage({
146
138
  id: 'addRule',
147
139
  overrideValue: labelOverrides.addRule
@@ -31,7 +31,7 @@ describe('CustomPropertiesFilterField', () => {
31
31
  fields: fields,
32
32
  index: index,
33
33
  name: name
34
- }, "custom-property-filter-field-".concat(name, "[").concat(index, "]")));
34
+ }, `custom-property-filter-field-${name}[${index}]`));
35
35
  }
36
36
  })
37
37
  })
@@ -36,7 +36,7 @@ const CustomPropertiesFilterFieldArray = _ref => {
36
36
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
37
37
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Card, {
38
38
  headerEnd: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Tooltip, {
39
- id: "custom-property-filter-card-delete-[".concat(index, "]-tooltip"),
39
+ id: `custom-property-filter-card-delete-[${index}]-tooltip`,
40
40
  text: kintIntl.formatKintMessage({
41
41
  id: 'customProperty.removeFilter',
42
42
  overrideValue: labelOverrides.removeFilter
@@ -52,7 +52,7 @@ const CustomPropertiesFilterFieldArray = _ref => {
52
52
  ref: ref,
53
53
  "aria-labelledby": ariaIds.text,
54
54
  icon: "trash",
55
- id: "custom-property-filter-card-delete-[".concat(index, "]"),
55
+ id: `custom-property-filter-card-delete-[${index}]`,
56
56
  onClick: () => fields.remove(index)
57
57
  });
58
58
  }
@@ -72,15 +72,15 @@ const CustomPropertiesFilterFieldArray = _ref => {
72
72
  index: index,
73
73
  labelOverrides: labelOverrides,
74
74
  name: name
75
- }, "custom-property-filter-field-".concat(name, "[").concat(index, "]"))
76
- }, "custom-property-filter-card[".concat(index, "]")), index < fields.value.length - 1 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Layout, {
75
+ }, `custom-property-filter-field-${name}[${index}]`)
76
+ }, `custom-property-filter-card[${index}]`), index < fields.value.length - 1 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Layout, {
77
77
  className: "textCentered",
78
78
  children: kintIntl.formatKintMessage({
79
79
  id: 'AND',
80
80
  overrideValue: labelOverrides.AND
81
81
  })
82
- }, "custom-property-filter[".concat(index, "]-AND"))]
83
- }, "custom-property-filter-card[".concat(index, "]-container"));
82
+ }, `custom-property-filter[${index}]-AND`)]
83
+ }, `custom-property-filter-card[${index}]-container`);
84
84
  });
85
85
  }
86
86
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
@@ -51,7 +51,7 @@ const CustomPropertiesRule = _ref => {
51
51
  const operators = (0, _useOperators.default)(custPropDefinition.type, passedIntlKey, passedIntlNS, labelOverrides);
52
52
  const valueProps = (0, _useValueProps.default)(custPropDefinition, passedIntlKey, passedIntlNS, labelOverrides);
53
53
  const kintIntl = (0, _hooks.useKintIntl)(passedIntlKey, passedIntlNS);
54
- const selectedOperator = operators.find(o => o.value === (value === null || value === void 0 ? void 0 : value.operator));
54
+ const selectedOperator = operators.find(o => o.value === value?.operator);
55
55
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Row, {
56
56
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
57
57
  xs: 2,
@@ -65,7 +65,7 @@ const CustomPropertiesRule = _ref => {
65
65
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
66
66
  xs: 4,
67
67
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
68
- name: "".concat(name, ".operator"),
68
+ name: `${name}.operator`,
69
69
  validate: _validators.required,
70
70
  children: _ref2 => {
71
71
  let {
@@ -74,13 +74,13 @@ const CustomPropertiesRule = _ref => {
74
74
  } = _ref2;
75
75
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Select, {
76
76
  ...input,
77
- "aria-labelledby": "".concat(ariaLabelledby, "-rule-column-header-comparator"),
77
+ "aria-labelledby": `${ariaLabelledby}-rule-column-header-comparator`,
78
78
  dataOptions: operators,
79
- error: (meta === null || meta === void 0 ? void 0 : meta.touched) && (meta === null || meta === void 0 ? void 0 : meta.error),
79
+ error: meta?.touched && meta?.error,
80
80
  onChange: e => {
81
81
  input.onChange(e);
82
82
  const newlySelectedOperator = operators.find(o => o.value === e.target.value);
83
- if (newlySelectedOperator !== null && newlySelectedOperator !== void 0 && newlySelectedOperator.noValueAllowed) {
83
+ if (newlySelectedOperator?.noValueAllowed) {
84
84
  clearRuleValue();
85
85
  }
86
86
  },
@@ -91,9 +91,9 @@ const CustomPropertiesRule = _ref => {
91
91
  })
92
92
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
93
93
  xs: 4,
94
- children: selectedOperator !== null && selectedOperator !== void 0 && selectedOperator.noValueAllowed ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
95
- "aria-labelledby": "".concat(ariaLabelledby, "-rule-column-header-value"),
96
- name: "".concat(name, ".value"),
94
+ children: selectedOperator?.noValueAllowed ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
95
+ "aria-labelledby": `${ariaLabelledby}-rule-column-header-value`,
96
+ name: `${name}.value`,
97
97
  required: true,
98
98
  validate: _validators.required,
99
99
  ...valueProps
@@ -5,9 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.filterHandlers = exports.data = exports.activeFilters = void 0;
7
7
  var _jest = require("../../../../test/jest");
8
- var _refdata$find;
9
8
  const activeFilters = exports.activeFilters = {
10
- 'customProperties': ["customProperties.AuthorIdentification.value==".concat(_jest.refdata === null || _jest.refdata === void 0 || (_refdata$find = _jest.refdata.find(rdc => rdc.desc === 'AuthIdent')) === null || _refdata$find === void 0 || (_refdata$find = _refdata$find.values) === null || _refdata$find === void 0 || (_refdata$find = _refdata$find.find(rdv => rdv.value === 'email_domain')) === null || _refdata$find === void 0 ? void 0 : _refdata$find.id)]
9
+ 'customProperties': [`customProperties.AuthorIdentification.value==${_jest.refdata?.find(rdc => rdc.desc === 'AuthIdent')?.values?.find(rdv => rdv.value === 'email_domain')?.id}`]
11
10
  };
12
11
  const filterHandlers = exports.filterHandlers = {
13
12
  'state': () => ({}),
@@ -13,14 +13,13 @@ const useParseActiveFilterStrings = function (filterStrings, passedIntlKey, pass
13
13
  const filters = filterStrings.map(filter => {
14
14
  let customProperty;
15
15
  const rules = filter.split('||').map(ruleString => {
16
- var _operators$find;
17
16
  // ruleString is constructed in this.handleSubmit passed to CustomPropertyFiltersForm
18
17
  // and has shape "customProperties.foo.value!=42"
19
18
  // OR customProperties.foo.value.id==1234, so make sure to disregard the .id
20
19
  const [customPropertyPath, rule] = ruleString.split('.value');
21
20
  const idSafeRule = rule.replace('.id', '');
22
21
  customProperty = customPropertyPath.replace('customProperties.', '');
23
- const operator = (_operators$find = operators.find(o => idSafeRule.startsWith(o))) !== null && _operators$find !== void 0 ? _operators$find : '';
22
+ const operator = operators.find(o => idSafeRule.startsWith(o)) ?? '';
24
23
  const value = idSafeRule.substring(operator.length);
25
24
  numberOfFilters += 1;
26
25
  return {
@@ -26,7 +26,7 @@ const CustomPropertiesView = _ref => {
26
26
  intlKey: passedIntlKey,
27
27
  intlNS: passedIntlNS,
28
28
  labelOverrides
29
- }, "customPropertiesView-".concat(ctx)));
29
+ }, `customPropertiesView-${ctx}`));
30
30
  };
31
31
  CustomPropertiesView.propTypes = {
32
32
  contexts: _propTypes.default.arrayOf(_propTypes.default.string),