@k-int/stripes-kint-components 2.2.0 → 2.3.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 (109) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/es/index.js +124 -4
  3. package/es/lib/ActionList/ActionList.js +7 -2
  4. package/es/lib/ActionList/ActionListFieldArray.js +49 -10
  5. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.js +2 -2
  6. package/es/lib/CustomProperties/Config/{CustomPropertiesView.js → CustomPropertyView.js} +5 -5
  7. package/es/lib/CustomProperties/Config/index.js +6 -4
  8. package/es/lib/CustomProperties/Edit/CustomPropertiesEdit.js +72 -0
  9. package/es/lib/CustomProperties/Edit/CustomPropertiesEditCtx.js +133 -0
  10. package/es/lib/CustomProperties/Edit/CustomPropertiesListField.js +279 -0
  11. package/es/lib/CustomProperties/Edit/CustomPropertyField.js +370 -0
  12. package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.js +156 -0
  13. package/es/lib/CustomProperties/Edit/index.js +51 -0
  14. package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.js +216 -0
  15. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.js +236 -0
  16. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js +159 -0
  17. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.js +119 -0
  18. package/es/lib/CustomProperties/Filter/CustomPropertiesRule.js +173 -0
  19. package/es/lib/CustomProperties/Filter/index.js +59 -0
  20. package/es/lib/CustomProperties/Filter/useOperators.js +138 -0
  21. package/es/lib/CustomProperties/Filter/useParseActiveFilterStrings.js +97 -0
  22. package/es/lib/CustomProperties/Filter/useValueProps.js +101 -0
  23. package/es/lib/CustomProperties/View/CustomPropertiesView.js +73 -0
  24. package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.js +187 -0
  25. package/es/lib/CustomProperties/View/CustomPropertyCard.js +204 -0
  26. package/es/lib/CustomProperties/View/index.js +35 -0
  27. package/es/lib/CustomProperties/index.js +125 -0
  28. package/es/lib/EditableRefdataList/EditableRefdataList.js +12 -16
  29. package/es/lib/FormModal/FormModal.js +18 -4
  30. package/es/lib/QueryTypedown/QueryTypedown.js +9 -4
  31. package/es/lib/constants/customProperties.js +4 -1
  32. package/es/lib/hooks/index.js +16 -0
  33. package/es/lib/hooks/typedownHooks/useTypedownData.js +9 -2
  34. package/es/lib/hooks/useAvailableCustomProperties.js +106 -0
  35. package/es/lib/hooks/useInvalidateRefdata.js +53 -0
  36. package/es/lib/hooks/useMutateRefdataValue.js +11 -6
  37. package/es/lib/hooks/useRefdata.js +1 -3
  38. package/es/lib/utils/groupCustomPropertiesByCtx.js +69 -0
  39. package/es/lib/utils/index.js +24 -0
  40. package/es/lib/utils/refdataQueryKey.js +48 -0
  41. package/es/lib/utils/typedownQueryKey.js +48 -0
  42. package/es/lib/utils/validators.js +60 -1
  43. package/git_translate.sh +8 -0
  44. package/package.json +1 -1
  45. package/src/index.js +27 -3
  46. package/src/lib/ActionList/ActionList.js +5 -2
  47. package/src/lib/ActionList/ActionListFieldArray.js +31 -8
  48. package/src/lib/ActionList/README.md +23 -20
  49. package/src/lib/CustomProperties/Config/CustomPropertiesSettings.js +2 -2
  50. package/src/lib/CustomProperties/Config/{CustomPropertiesView.js → CustomPropertyView.js} +3 -3
  51. package/src/lib/CustomProperties/Config/index.js +1 -1
  52. package/src/lib/CustomProperties/Edit/CustomPropertiesEdit.js +35 -0
  53. package/src/lib/CustomProperties/Edit/CustomPropertiesEditCtx.js +85 -0
  54. package/src/lib/CustomProperties/Edit/CustomPropertiesListField.js +194 -0
  55. package/src/lib/CustomProperties/Edit/CustomPropertyField.js +299 -0
  56. package/src/lib/CustomProperties/Edit/CustomPropertyFormCard.js +131 -0
  57. package/src/lib/CustomProperties/Edit/index.js +5 -0
  58. package/src/lib/CustomProperties/Filter/CustomPropertiesFilter.js +125 -0
  59. package/src/lib/CustomProperties/Filter/CustomPropertiesFilterField.js +148 -0
  60. package/src/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js +113 -0
  61. package/src/lib/CustomProperties/Filter/CustomPropertiesFilterForm.js +74 -0
  62. package/src/lib/CustomProperties/Filter/CustomPropertiesRule.js +122 -0
  63. package/src/lib/CustomProperties/Filter/index.js +6 -0
  64. package/src/lib/CustomProperties/Filter/useOperators.js +55 -0
  65. package/src/lib/CustomProperties/Filter/useParseActiveFilterStrings.js +35 -0
  66. package/src/lib/CustomProperties/Filter/useValueProps.js +45 -0
  67. package/src/lib/CustomProperties/View/CustomPropertiesView.js +36 -0
  68. package/src/lib/CustomProperties/View/CustomPropertiesViewCtx.js +112 -0
  69. package/src/lib/CustomProperties/View/CustomPropertyCard.js +177 -0
  70. package/src/lib/CustomProperties/View/index.js +3 -0
  71. package/src/lib/CustomProperties/index.js +30 -0
  72. package/src/lib/EditableRefdataList/EditableRefdataList.js +13 -10
  73. package/src/lib/FormModal/FormModal.js +37 -17
  74. package/src/lib/QueryTypedown/QueryTypedown.js +3 -1
  75. package/src/lib/constants/customProperties.js +1 -0
  76. package/src/lib/hooks/index.js +2 -0
  77. package/src/lib/hooks/typedownHooks/useTypedownData.js +9 -3
  78. package/src/lib/hooks/useAvailableCustomProperties.js +40 -0
  79. package/src/lib/hooks/useInvalidateRefdata.js +11 -0
  80. package/src/lib/hooks/useMutateRefdataValue.js +7 -3
  81. package/src/lib/hooks/useRefdata.js +2 -3
  82. package/src/lib/utils/groupCustomPropertiesByCtx.js +13 -0
  83. package/src/lib/utils/index.js +5 -0
  84. package/src/lib/utils/refdataQueryKey.js +9 -0
  85. package/src/lib/utils/typedownQueryKey.js +9 -0
  86. package/src/lib/utils/validators.js +40 -0
  87. package/translate.sh +63 -0
  88. package/translations/stripes-kint-components/ar.json +105 -0
  89. package/translations/stripes-kint-components/ca.json +1 -0
  90. package/translations/stripes-kint-components/cs_CZ.json +105 -0
  91. package/translations/stripes-kint-components/da.json +1 -0
  92. package/translations/stripes-kint-components/de.json +105 -0
  93. package/translations/stripes-kint-components/en.json +54 -2
  94. package/translations/stripes-kint-components/es.json +105 -0
  95. package/translations/stripes-kint-components/fr.json +105 -0
  96. package/translations/stripes-kint-components/he.json +1 -0
  97. package/translations/stripes-kint-components/hi_IN.json +105 -0
  98. package/translations/stripes-kint-components/hu.json +105 -0
  99. package/translations/stripes-kint-components/it_IT.json +105 -0
  100. package/translations/stripes-kint-components/ja.json +105 -0
  101. package/translations/stripes-kint-components/ko.json +105 -0
  102. package/translations/stripes-kint-components/nb.json +1 -0
  103. package/translations/stripes-kint-components/nn.json +1 -0
  104. package/translations/stripes-kint-components/pl.json +105 -0
  105. package/translations/stripes-kint-components/pt_PT.json +105 -0
  106. package/translations/stripes-kint-components/ru.json +105 -0
  107. package/translations/stripes-kint-components/sv.json +105 -0
  108. package/translations/stripes-kint-components/ur.json +1 -0
  109. package/translations/stripes-kint-components/zh_CN.json +105 -0
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _reactIntl = require("react-intl");
11
+
12
+ var _components = require("@folio/stripes/components");
13
+
14
+ var _CustomPropertyField = _interopRequireDefault(require("./CustomPropertyField"));
15
+
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ (function () {
21
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
22
+ enterModule && enterModule(module);
23
+ })();
24
+
25
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
26
+ return a;
27
+ };
28
+
29
+ var CustomPropertyFormCard = function CustomPropertyFormCard(_ref) {
30
+ var availableCustomProperties = _ref.availableCustomProperties,
31
+ customProperty = _ref.customProperty,
32
+ customPropertyType = _ref.customPropertyType,
33
+ customProperties = _ref.customProperties,
34
+ handleDeleteCustomProperty = _ref.handleDeleteCustomProperty,
35
+ index = _ref.index,
36
+ internalPropertyCounter = _ref.internalPropertyCounter,
37
+ labelOverrides = _ref.labelOverrides,
38
+ name = _ref.name,
39
+ onChange = _ref.onChange,
40
+ setCustomProperties = _ref.setCustomProperties,
41
+ value = _ref.value;
42
+
43
+ var getHeader = function getHeader() {
44
+ var _labelOverrides$prima;
45
+
46
+ if (customPropertyType === 'optional') {
47
+ var _labelOverrides$optio;
48
+
49
+ if (labelOverrides.optionalPropertyHeader && typeof labelOverrides.optionalPropertyHeader === 'function') {
50
+ return labelOverrides.optionalPropertyHeader(internalPropertyCounter);
51
+ } // Label override for optionalPropertyHeader or finally built in default
52
+
53
+
54
+ return (_labelOverrides$optio = labelOverrides.optionalPropertyHeader) !== null && _labelOverrides$optio !== void 0 ? _labelOverrides$optio : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
55
+ id: "stripes-kint-components.customProperty.optionalPropertyHeader",
56
+ values: {
57
+ number: internalPropertyCounter
58
+ }
59
+ });
60
+ } // Label override for primaryPropertyHeader or finally built in default
61
+
62
+
63
+ return (_labelOverrides$prima = labelOverrides.primaryPropertyHeader) !== null && _labelOverrides$prima !== void 0 ? _labelOverrides$prima : customProperty.label;
64
+ };
65
+
66
+ var getTooltipText = function getTooltipText() {
67
+ var _labelOverrides$remov;
68
+
69
+ if (labelOverrides.remove && typeof labelOverrides.remove === 'function') {
70
+ return labelOverrides.remove(internalPropertyCounter);
71
+ } // Label override for optionalPropertyHeader or finally built in default
72
+
73
+
74
+ return (_labelOverrides$remov = labelOverrides.remove) !== null && _labelOverrides$remov !== void 0 ? _labelOverrides$remov : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
75
+ id: "stripes-kint-components.customProperty.remove",
76
+ values: {
77
+ number: internalPropertyCounter
78
+ }
79
+ });
80
+ };
81
+
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Card, {
83
+ headerEnd: customPropertyType === 'optional' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Tooltip, {
84
+ id: "customProperty-".concat(customProperty.value, "-").concat(index),
85
+ text: getTooltipText(),
86
+ children: function children(_ref2) {
87
+ var ref = _ref2.ref,
88
+ ariaIds = _ref2.ariaIds;
89
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.IconButton, {
90
+ ref: ref,
91
+ "aria-labelledby": ariaIds.text,
92
+ icon: "trash",
93
+ id: "edit-customproperty-".concat(index, "-delete"),
94
+ onClick: function onClick() {
95
+ return handleDeleteCustomProperty(customProperty, index);
96
+ }
97
+ });
98
+ }
99
+ }) : null,
100
+ headerStart: /*#__PURE__*/(0, _jsxRuntime.jsxs)("strong", {
101
+ children: [getHeader(), customProperty.description ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.InfoPopover, {
102
+ content: customProperty.description
103
+ }) : null]
104
+ }),
105
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CustomPropertyField.default, {
106
+ availableCustomProperties: availableCustomProperties,
107
+ customProperty: customProperty,
108
+ customPropertyType: customPropertyType,
109
+ customProperties: customProperties,
110
+ index: index,
111
+ internalPropertyCounter: internalPropertyCounter,
112
+ labelOverrides: labelOverrides,
113
+ name: name,
114
+ onChange: onChange,
115
+ setCustomProperties: setCustomProperties,
116
+ value: value
117
+ })
118
+ }, customProperty.value);
119
+ };
120
+
121
+ CustomPropertyFormCard.propTypes = {
122
+ availableCustomProperties: _propTypes.default.arrayOf(_propTypes.default.object),
123
+ customProperty: _propTypes.default.object,
124
+ customPropertyType: _propTypes.default.string,
125
+ customProperties: _propTypes.default.arrayOf(_propTypes.default.object),
126
+ handleDeleteCustomProperty: _propTypes.default.func,
127
+ index: _propTypes.default.number,
128
+ internalPropertyCounter: _propTypes.default.number,
129
+ labelOverrides: _propTypes.default.object,
130
+ name: _propTypes.default.string,
131
+ onChange: _propTypes.default.func,
132
+ setCustomProperties: _propTypes.default.func,
133
+ value: _propTypes.default.object
134
+ };
135
+ var _default = CustomPropertyFormCard;
136
+ var _default2 = _default;
137
+ exports.default = _default2;
138
+ ;
139
+
140
+ (function () {
141
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
142
+
143
+ if (!reactHotLoader) {
144
+ return;
145
+ }
146
+
147
+ reactHotLoader.register(CustomPropertyFormCard, "CustomPropertyFormCard", "/home/ethan/FolioModules/stripes-kint-components/src/lib/CustomProperties/Edit/CustomPropertyFormCard.js");
148
+ reactHotLoader.register(_default, "default", "/home/ethan/FolioModules/stripes-kint-components/src/lib/CustomProperties/Edit/CustomPropertyFormCard.js");
149
+ })();
150
+
151
+ ;
152
+
153
+ (function () {
154
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
155
+ leaveModule && leaveModule(module);
156
+ })();
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CustomPropertiesEdit", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _CustomPropertiesEdit.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "CustomPropertiesEditCtx", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _CustomPropertiesEditCtx.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "CustomPropertiesListField", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _CustomPropertiesListField.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "CustomPropertyField", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _CustomPropertyField.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "CustomPropertyFormCard", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _CustomPropertyFormCard.default;
34
+ }
35
+ });
36
+
37
+ var _CustomPropertiesEdit = _interopRequireDefault(require("./CustomPropertiesEdit"));
38
+
39
+ var _CustomPropertiesEditCtx = _interopRequireDefault(require("./CustomPropertiesEditCtx"));
40
+
41
+ var _CustomPropertiesListField = _interopRequireDefault(require("./CustomPropertiesListField"));
42
+
43
+ var _CustomPropertyFormCard = _interopRequireDefault(require("./CustomPropertyFormCard"));
44
+
45
+ var _CustomPropertyField = _interopRequireDefault(require("./CustomPropertyField"));
46
+
47
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
+
49
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
50
+ return a;
51
+ };
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = 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 _hooks = require("../../hooks");
17
+
18
+ var _useParseActiveFilterStrings = _interopRequireDefault(require("./useParseActiveFilterStrings"));
19
+
20
+ var _CustomPropertiesFilterForm = _interopRequireDefault(require("./CustomPropertiesFilterForm"));
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+
24
+ var _excluded = ["customProperties"];
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ (function () {
29
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
30
+ enterModule && enterModule(module);
31
+ })();
32
+
33
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
34
+
35
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
36
+
37
+ 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; }
38
+
39
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
40
+
41
+ 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."); }
42
+
43
+ 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); }
44
+
45
+ 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; }
46
+
47
+ 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; }
48
+
49
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
50
+
51
+ 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; }
52
+
53
+ 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; }
54
+
55
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
56
+ return a;
57
+ };
58
+
59
+ var CustomPropertiesFilter = function CustomPropertiesFilter(_ref) {
60
+ var _parsedFilterData$num3, _labelOverrides$custo2;
61
+
62
+ var _ref$activeFilters = _ref.activeFilters,
63
+ custPropFilters = _ref$activeFilters.customProperties,
64
+ restOfFilters = _objectWithoutProperties(_ref$activeFilters, _excluded),
65
+ customPropertiesEndpoint = _ref.customPropertiesEndpoint,
66
+ filterHandlers = _ref.filterHandlers,
67
+ labelOverrides = _ref.labelOverrides;
68
+
69
+ var _useState = (0, _react.useState)(false),
70
+ _useState2 = _slicedToArray(_useState, 2),
71
+ editingFilters = _useState2[0],
72
+ setEditingFilters = _useState2[1];
73
+
74
+ var openEditModal = function openEditModal() {
75
+ return setEditingFilters(true);
76
+ };
77
+
78
+ var closeEditModal = function closeEditModal() {
79
+ return setEditingFilters(false);
80
+ };
81
+
82
+ var _useCustomProperties = (0, _hooks.useCustomProperties)({
83
+ endpoint: customPropertiesEndpoint,
84
+ returnQueryObject: true,
85
+ options: {
86
+ sort: [{
87
+ path: 'ctx'
88
+ }, // Group by ctx
89
+ {
90
+ path: 'retired'
91
+ }, // Place retired custprops at the end
92
+ {
93
+ path: 'label'
94
+ } // Within those groups, sort by label
95
+ ]
96
+ }
97
+ }),
98
+ custprops = _useCustomProperties.data,
99
+ isLoading = _useCustomProperties.isLoading;
100
+
101
+ var parsedFilterData = (0, _useParseActiveFilterStrings.default)(custPropFilters || []);
102
+
103
+ var getFiltersApplied = function getFiltersApplied() {
104
+ var _labelOverrides$filte, _parsedFilterData$num2;
105
+
106
+ if (labelOverrides.filtersApplied && typeof labelOverrides.filtersApplied === 'function') {
107
+ var _parsedFilterData$num;
108
+
109
+ return labelOverrides.filtersApplied((_parsedFilterData$num = parsedFilterData === null || parsedFilterData === void 0 ? void 0 : parsedFilterData.numberOfFilters) !== null && _parsedFilterData$num !== void 0 ? _parsedFilterData$num : 0);
110
+ }
111
+
112
+ return (_labelOverrides$filte = labelOverrides.filtersApplied) !== null && _labelOverrides$filte !== void 0 ? _labelOverrides$filte : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
113
+ id: "stripes-kint-components.customProperty.filtersApplied",
114
+ values: {
115
+ count: (_parsedFilterData$num2 = parsedFilterData === null || parsedFilterData === void 0 ? void 0 : parsedFilterData.numberOfFilters) !== null && _parsedFilterData$num2 !== void 0 ? _parsedFilterData$num2 : 0
116
+ }
117
+ });
118
+ };
119
+
120
+ if (isLoading) {
121
+ var _labelOverrides$custo;
122
+
123
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Accordion, {
124
+ closedByDefault: true,
125
+ header: _components.FilterAccordionHeader,
126
+ id: "clickable-custprop-filter",
127
+ label: (_labelOverrides$custo = labelOverrides.customProperties) !== null && _labelOverrides$custo !== void 0 ? _labelOverrides$custo : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
128
+ id: "stripes-kint-components.customProperties"
129
+ }),
130
+ separator: false,
131
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {})
132
+ });
133
+ }
134
+
135
+ var handleSubmit = function handleSubmit(values) {
136
+ var _values$filters = values.filters,
137
+ filters = _values$filters === void 0 ? [] : _values$filters;
138
+ var filterStrings = filters.filter(function (filter) {
139
+ return filter.rules;
140
+ }).map(function (filter) {
141
+ return filter.rules.map(function (rule) {
142
+ var _rule$value;
143
+
144
+ return "customProperties.".concat(filter.customProperty, ".value").concat(rule.operator).concat((_rule$value = rule.value) !== null && _rule$value !== void 0 ? _rule$value : '');
145
+ }).join('||');
146
+ });
147
+ filterHandlers.state(_objectSpread(_objectSpread({}, restOfFilters), {}, {
148
+ customProperties: filterStrings
149
+ }));
150
+ setEditingFilters(false);
151
+ return Promise.resolve();
152
+ };
153
+
154
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Accordion, {
155
+ closedByDefault: true,
156
+ displayClearButton: ((_parsedFilterData$num3 = parsedFilterData === null || parsedFilterData === void 0 ? void 0 : parsedFilterData.numberOfFilters) !== null && _parsedFilterData$num3 !== void 0 ? _parsedFilterData$num3 : 0) > 0,
157
+ header: _components.FilterAccordionHeader,
158
+ id: "clickable-custprop-filter",
159
+ label: (_labelOverrides$custo2 = labelOverrides.customProperties) !== null && _labelOverrides$custo2 !== void 0 ? _labelOverrides$custo2 : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
160
+ id: "stripes-kint-components.customProperties"
161
+ }),
162
+ onClearFilter: function onClearFilter() {
163
+ return filterHandlers.state(_objectSpread(_objectSpread({}, restOfFilters), {}, {
164
+ customProperties: []
165
+ }));
166
+ },
167
+ separator: false,
168
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Layout, {
169
+ className: "padding-bottom-gutter",
170
+ children: getFiltersApplied()
171
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CustomPropertiesFilterForm.default, {
172
+ customProperties: custprops,
173
+ editingFilters: editingFilters,
174
+ filters: parsedFilterData === null || parsedFilterData === void 0 ? void 0 : parsedFilterData.filters,
175
+ handlers: {
176
+ closeEditModal: closeEditModal,
177
+ openEditModal: openEditModal
178
+ },
179
+ labelOverrides: labelOverrides,
180
+ onSubmit: handleSubmit
181
+ })]
182
+ });
183
+ };
184
+
185
+ __signature__(CustomPropertiesFilter, "useState{[editingFilters, setEditingFilters](false)}\nuseCustomProperties{{ data: custprops, isLoading }}\nuseParseActiveFilterStrings{parsedFilterData}", function () {
186
+ return [_hooks.useCustomProperties, _useParseActiveFilterStrings.default];
187
+ });
188
+
189
+ CustomPropertiesFilter.propTypes = {
190
+ activeFilters: _propTypes.default.object,
191
+ customPropertiesEndpoint: _propTypes.default.string,
192
+ filterHandlers: _propTypes.default.object,
193
+ labelOverrides: _propTypes.default.object
194
+ };
195
+ var _default = CustomPropertiesFilter;
196
+ var _default2 = _default;
197
+ exports.default = _default2;
198
+ ;
199
+
200
+ (function () {
201
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
202
+
203
+ if (!reactHotLoader) {
204
+ return;
205
+ }
206
+
207
+ reactHotLoader.register(CustomPropertiesFilter, "CustomPropertiesFilter", "/home/ethan/FolioModules/stripes-kint-components/src/lib/CustomProperties/Filter/CustomPropertiesFilter.js");
208
+ reactHotLoader.register(_default, "default", "/home/ethan/FolioModules/stripes-kint-components/src/lib/CustomProperties/Filter/CustomPropertiesFilter.js");
209
+ })();
210
+
211
+ ;
212
+
213
+ (function () {
214
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
215
+ leaveModule && leaveModule(module);
216
+ })();
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _reactIntl = require("react-intl");
11
+
12
+ var _reactFinalForm = require("react-final-form");
13
+
14
+ var _reactFinalFormArrays = require("react-final-form-arrays");
15
+
16
+ var _components = require("@folio/stripes/components");
17
+
18
+ var _utils = require("../../utils");
19
+
20
+ var _validators = require("../../utils/validators");
21
+
22
+ var _CustomPropertiesRule = _interopRequireDefault(require("./CustomPropertiesRule"));
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ (function () {
29
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
30
+ enterModule && enterModule(module);
31
+ })();
32
+
33
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
34
+
35
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
36
+
37
+ 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; }
38
+
39
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
40
+
41
+ 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."); }
42
+
43
+ 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); }
44
+
45
+ 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; }
46
+
47
+ 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; }
48
+
49
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
50
+
51
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
52
+ return a;
53
+ };
54
+
55
+ var CustomPropertiesFilterField = function CustomPropertiesFilterField(_ref) {
56
+ var _labelOverrides$custo, _customProperties$fin, _customProperties$fin2, _fields$value$index2;
57
+
58
+ var customProperties = _ref.customProperties,
59
+ fields = _ref.fields,
60
+ index = _ref.index,
61
+ _ref$labelOverrides = _ref.labelOverrides,
62
+ labelOverrides = _ref$labelOverrides === void 0 ? {} : _ref$labelOverrides,
63
+ name = _ref.name;
64
+ var groupedCustomProperties = (0, _utils.groupCustomPropertiesByCtx)(customProperties);
65
+
66
+ var _useForm = (0, _reactFinalForm.useForm)(),
67
+ change = _useForm.change,
68
+ push = _useForm.mutators.push;
69
+
70
+ var _useFormState = (0, _reactFinalForm.useFormState)(),
71
+ values = _useFormState.values; // Deal with all the possible label override options
72
+
73
+
74
+ var getRetiredName = function getRetiredName(customProperty) {
75
+ var _labelOverrides$retir;
76
+
77
+ // Label override for default card title,
78
+ if (labelOverrides.retiredName && typeof labelOverrides.retiredName === 'function') {
79
+ return labelOverrides.retiredName(customProperty.label);
80
+ } // Label override for default title or finally built in default
81
+
82
+
83
+ return (_labelOverrides$retir = labelOverrides.retiredName) !== null && _labelOverrides$retir !== void 0 ? _labelOverrides$retir : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
84
+ id: "stripes-kint-components.customProperty.retiredName",
85
+ values: {
86
+ name: customProperty.label
87
+ }
88
+ });
89
+ };
90
+
91
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
92
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
93
+ id: "input-custprop-".concat(index),
94
+ label: (_labelOverrides$custo = labelOverrides.customProperty) !== null && _labelOverrides$custo !== void 0 ? _labelOverrides$custo : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
95
+ id: "stripes-kint-components.customProperty"
96
+ }),
97
+ name: "".concat(name, ".customProperty"),
98
+ placeholder: " ",
99
+ render: function render(fieldProps) {
100
+ var _Object$entries;
101
+
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Select, _objectSpread(_objectSpread({}, fieldProps), {}, {
103
+ placeholder: null // placeholder default causes issues
104
+ ,
105
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
106
+ value: "",
107
+ children: " "
108
+ }), (_Object$entries = Object.entries(groupedCustomProperties)) === null || _Object$entries === void 0 ? void 0 : _Object$entries.sort(function (a, b) {
109
+ if (a[0] === 'isNull') return -1; // Make sure noContext is at top
110
+
111
+ if (a[0].toLowerCase() < b[0].toLowerCase()) return -1;
112
+ if (a[0].toLowerCase() > b[0].toLowerCase()) return 1;
113
+ return 0;
114
+ }).map(function (_ref2) {
115
+ var _ref3 = _slicedToArray(_ref2, 2),
116
+ key = _ref3[0],
117
+ value = _ref3[1];
118
+
119
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("optgroup", {
120
+ label: key === 'isNull' ? '-' : key,
121
+ children: value.map(function (v) {
122
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
123
+ value: v.name,
124
+ children: v.retired ? getRetiredName(v) : v.label
125
+ }, v.id);
126
+ })
127
+ });
128
+ })]
129
+ }));
130
+ },
131
+ required: true,
132
+ validate: _validators.required
133
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
134
+ id: "selected-custprop-name-".concat(index),
135
+ style: {
136
+ display: 'none'
137
+ },
138
+ children: (_customProperties$fin = (_customProperties$fin2 = customProperties.find(function (t) {
139
+ var _fields$value$index;
140
+
141
+ return t.name === ((_fields$value$index = fields.value[index]) === null || _fields$value$index === void 0 ? void 0 : _fields$value$index.customProperty);
142
+ })) === null || _customProperties$fin2 === void 0 ? void 0 : _customProperties$fin2.label) !== null && _customProperties$fin !== void 0 ? _customProperties$fin : ''
143
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Row, {
144
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
145
+ xs: 2
146
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
147
+ xs: 4,
148
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Label, {
149
+ id: "rule-column-header-comparator",
150
+ required: true,
151
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
152
+ id: "stripes-erm-components.customProperty.filters.comparator"
153
+ })
154
+ })
155
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
156
+ xs: 4,
157
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Label, {
158
+ id: "rule-column-header-value",
159
+ required: true,
160
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
161
+ id: "stripes-erm-components.customProperty.filters.value"
162
+ })
163
+ })
164
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
165
+ xs: 2
166
+ })]
167
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalFormArrays.FieldArray, {
168
+ name: "".concat(name, ".rules"),
169
+ children: function children(_ref4) {
170
+ var ruleFields = _ref4.fields;
171
+ return ruleFields.map(function (ruleFieldName, ruleFieldIndex) {
172
+ var _values$filters$index;
173
+
174
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CustomPropertiesRule.default, {
175
+ ariaLabelledby: "selected-custprop-name-".concat(index),
176
+ clearRuleValue: function clearRuleValue() {
177
+ return change("filters[".concat(index, "].rules[").concat(ruleFieldIndex, "].value"), '');
178
+ },
179
+ custPropDefinition: customProperties.find(function (t) {
180
+ return t.name === fields.value[index].customProperty;
181
+ }),
182
+ index: ruleFieldIndex,
183
+ name: ruleFieldName,
184
+ onDelete: function onDelete() {
185
+ return ruleFields.remove(ruleFieldIndex);
186
+ },
187
+ value: (_values$filters$index = values.filters[index]) === null || _values$filters$index === void 0 ? void 0 : _values$filters$index.rules[ruleFieldIndex]
188
+ }, ruleFieldName);
189
+ });
190
+ }
191
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
192
+ "data-test-add-rule-btn": true,
193
+ disabled: !((_fields$value$index2 = fields.value[index]) !== null && _fields$value$index2 !== void 0 && _fields$value$index2.customProperty),
194
+ onClick: function onClick() {
195
+ return push("".concat(name, ".rules"));
196
+ },
197
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
198
+ id: "stripes-erm-components.customProperty.filters.addRule"
199
+ })
200
+ })]
201
+ });
202
+ };
203
+
204
+ __signature__(CustomPropertiesFilterField, "useForm{{ change, mutators: { push } }}\nuseFormState{{ values }}", function () {
205
+ return [_reactFinalForm.useForm, _reactFinalForm.useFormState];
206
+ });
207
+
208
+ CustomPropertiesFilterField.propTypes = {
209
+ customProperties: _propTypes.default.arrayOf(_propTypes.default.object),
210
+ fields: _propTypes.default.object,
211
+ index: _propTypes.default.number,
212
+ labelOverrides: _propTypes.default.object,
213
+ name: _propTypes.default.string
214
+ };
215
+ var _default = CustomPropertiesFilterField;
216
+ var _default2 = _default;
217
+ exports.default = _default2;
218
+ ;
219
+
220
+ (function () {
221
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
222
+
223
+ if (!reactHotLoader) {
224
+ return;
225
+ }
226
+
227
+ reactHotLoader.register(CustomPropertiesFilterField, "CustomPropertiesFilterField", "/home/ethan/FolioModules/stripes-kint-components/src/lib/CustomProperties/Filter/CustomPropertiesFilterField.js");
228
+ reactHotLoader.register(_default, "default", "/home/ethan/FolioModules/stripes-kint-components/src/lib/CustomProperties/Filter/CustomPropertiesFilterField.js");
229
+ })();
230
+
231
+ ;
232
+
233
+ (function () {
234
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
235
+ leaveModule && leaveModule(module);
236
+ })();