asab_webui_components 25.1.1
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 +295 -0
- package/LICENSE +28 -0
- package/README.md +3 -0
- package/dist/abc/Module.js +20 -0
- package/dist/abc/Renderer.js +67 -0
- package/dist/abc/Service.js +24 -0
- package/dist/components/AdvancedCard/AdvancedCard.js +38 -0
- package/dist/components/AdvancedCard/AdvancedCard.jsx +34 -0
- package/dist/components/AttentionRequired/AttentionRequiredBadge.js +22 -0
- package/dist/components/AttentionRequired/AttentionRequiredBadge.jsx +17 -0
- package/dist/components/Authz/ButtonWithAuthz.js +81 -0
- package/dist/components/Authz/ControlledSwitchWithAuthz.js +78 -0
- package/dist/components/Authz/Credentials.js +217 -0
- package/dist/components/Authz/Credentials.scss +7 -0
- package/dist/components/Authz/LinkWithAuthz.js +56 -0
- package/dist/components/Authz/UncontrolledSwitchWithAuthz.js +79 -0
- package/dist/components/Authz/utils/authz.js +38 -0
- package/dist/components/Authz/utils/isAuthorized.js +31 -0
- package/dist/components/Console/ConsoleCard.js +98 -0
- package/dist/components/Console/ConsoleCard.jsx +70 -0
- package/dist/components/Console/ConsoleCard.scss +26 -0
- package/dist/components/Console/ConsoleContext.js +14 -0
- package/dist/components/Console/ConsoleContext.jsx +5 -0
- package/dist/components/Console/components/ConsoleModeButton.js +35 -0
- package/dist/components/Console/components/ConsoleModeButton.jsx +30 -0
- package/dist/components/ContentLoader.js +57 -0
- package/dist/components/Context/PubSubContext.js +51 -0
- package/dist/components/ControlledSwitch/index.js +33 -0
- package/dist/components/ControlledSwitch/switch.scss +82 -0
- package/dist/components/DataTable/ActionButton.js +63 -0
- package/dist/components/DataTable/Buttons.js +116 -0
- package/dist/components/DataTable/CustomDropdownButton.js +49 -0
- package/dist/components/DataTable/DataTable.scss +37 -0
- package/dist/components/DataTable/LimitDropdown.js +52 -0
- package/dist/components/DataTable/Pagination.js +204 -0
- package/dist/components/DataTable/Search.js +29 -0
- package/dist/components/DataTable/Sort.js +44 -0
- package/dist/components/DataTable/Table.js +310 -0
- package/dist/components/DataTable/index.js +180 -0
- package/dist/components/DataTable2/DataTable2.js +532 -0
- package/dist/components/DataTable2/DataTable2.jsx +446 -0
- package/dist/components/DataTable2/DataTable2.scss +38 -0
- package/dist/components/DataTable2/DataTableContext.js +401 -0
- package/dist/components/DataTable2/DataTableContext.jsx +338 -0
- package/dist/components/DataTable2/components/filters/DataTableAdvFilter2.scss +20 -0
- package/dist/components/DataTable2/components/filters/DataTableAdvFilterMultiValue2.js +80 -0
- package/dist/components/DataTable2/components/filters/DataTableAdvFilterMultiValue2.jsx +64 -0
- package/dist/components/DataTable2/components/filters/DataTableAdvFilterSingleValue2.js +61 -0
- package/dist/components/DataTable2/components/filters/DataTableAdvFilterSingleValue2.jsx +49 -0
- package/dist/components/DataTable2/components/filters/DataTableSimpleFilter2.js +38 -0
- package/dist/components/DataTable2/components/filters/DataTableSimpleFilter2.jsx +35 -0
- package/dist/components/DataTable2/components/filters/index.js +26 -0
- package/dist/components/DataTable2/components/filters/index.jsx +3 -0
- package/dist/components/DataTable2/components/utils/updateTableLimit.js +37 -0
- package/dist/components/DataTable2/components/utils/updateTableLimit.jsx +22 -0
- package/dist/components/DateTime/index.js +44 -0
- package/dist/components/DateTime/timeToString.js +88 -0
- package/dist/components/DateTime/useDateFNSLocale.js +48 -0
- package/dist/components/FullscreenButton.js +35 -0
- package/dist/components/FullscreenButton.jsx +26 -0
- package/dist/components/Humanize/humanizeToString.js +99 -0
- package/dist/components/Humanize/index.js +32 -0
- package/dist/components/ResultCard/ResultCard.js +24 -0
- package/dist/components/ResultCard/ResultCard.scss +9 -0
- package/dist/components/Spinner.js +25 -0
- package/dist/components/TreeMenu/TreeMenu.js +78 -0
- package/dist/components/TreeMenu/TreeMenu.jsx +63 -0
- package/dist/components/TreeMenu/TreeMenu.scss +32 -0
- package/dist/components/TreeMenu/TreeMenuCard.js +189 -0
- package/dist/components/TreeMenu/TreeMenuItem.js +135 -0
- package/dist/components/TreeMenu/index.js +41 -0
- package/dist/components/TreeMenu/utils/flattenTree.js +54 -0
- package/dist/components/TreeMenu/utils/flattenTree.jsx +44 -0
- package/dist/components/TreeMenu/utils/formatIntoLeafFolderTree.js +56 -0
- package/dist/components/TreeMenu/utils/formatIntoTree.js +67 -0
- package/dist/components/TreeMenu/utils/removeTreeContent.js +97 -0
- package/dist/components/UncontrolledSwitch/index.js +60 -0
- package/dist/index.js +372 -0
- package/dist/styles/components/alert.scss +53 -0
- package/dist/styles/components/button.scss +104 -0
- package/dist/styles/components/card.scss +174 -0
- package/dist/styles/components/form.scss +20 -0
- package/dist/styles/components/html.scss +16 -0
- package/dist/styles/constants/colors.scss +66 -0
- package/dist/styles/constants/index.scss +70 -0
- package/dist/styles/constants/theme-dark.scss +55 -0
- package/dist/styles/constants/theme-light.scss +46 -0
- package/dist/styles/constants/theme-print.scss +198 -0
- package/dist/styles/index.scss +15 -0
- package/dist/utils/ErrorHandler.js +27 -0
- package/dist/utils/deepMerge.js +47 -0
- package/dist/utils/deepMerge.jsx +33 -0
- package/dist/utils/hexToString.js +27 -0
- package/dist/utils/isPrivateIP.js +37 -0
- package/dist/utils/isValidIP.js +82 -0
- package/dist/utils/itemExtensionHandler.js +24 -0
- package/dist/utils/localStorage.js +65 -0
- package/dist/utils/lookups/isoCodeCountries.js +264 -0
- package/dist/utils/monaco/problemMarkers.js +78 -0
- package/dist/utils/monaco/problemMarkers.jsx +57 -0
- package/dist/utils/removeFileExtension.js +26 -0
- package/dist/utils/validateAccess.js +143 -0
- package/package.json +43 -0
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useDataTableContext = exports.DataTableContextProvider = void 0;
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _reactRouterDom = require("react-router-dom");
|
|
14
|
+
var _updateTableLimit = require("./components/utils/updateTableLimit.js");
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
17
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
18
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
19
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
20
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
21
|
+
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); }
|
|
22
|
+
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; }
|
|
23
|
+
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) { (0, _defineProperty2["default"])(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; }
|
|
24
|
+
// Create an empty context
|
|
25
|
+
var CreateDataTableContext = /*#__PURE__*/(0, _react.createContext)();
|
|
26
|
+
|
|
27
|
+
// AppContextProvider component to wrap the application and provide the context
|
|
28
|
+
var DataTableContextProvider = exports.DataTableContextProvider = function DataTableContextProvider(_ref) {
|
|
29
|
+
var children = _ref.children,
|
|
30
|
+
disableParams = _ref.disableParams,
|
|
31
|
+
initialLimit = _ref.initialLimit;
|
|
32
|
+
var defaultParams = {
|
|
33
|
+
p: 1,
|
|
34
|
+
i: initialLimit
|
|
35
|
+
};
|
|
36
|
+
var _useSearchParams = (0, _reactRouterDom.useSearchParams)(defaultParams),
|
|
37
|
+
_useSearchParams2 = (0, _slicedToArray2["default"])(_useSearchParams, 2),
|
|
38
|
+
searchParams = _useSearchParams2[0],
|
|
39
|
+
setSearchParams = _useSearchParams2[1];
|
|
40
|
+
var _useState = (0, _react.useState)(defaultParams),
|
|
41
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
42
|
+
stateParams = _useState2[0],
|
|
43
|
+
setStateParams = _useState2[1];
|
|
44
|
+
var filterFieldsRef = (0, _react.useRef)({}); // Ref to store filter fields persistently without triggering re-renders.
|
|
45
|
+
|
|
46
|
+
// Method to get param with option to set up splitting method used for searchParams
|
|
47
|
+
var getParam = function getParam(param) {
|
|
48
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
49
|
+
if (!disableParams) {
|
|
50
|
+
if (param === 'i' || param === 'p') {
|
|
51
|
+
return _parseParam(searchParams.get(param));
|
|
52
|
+
} else {
|
|
53
|
+
var _options$splitBy = options.splitBy,
|
|
54
|
+
splitBy = _options$splitBy === void 0 ? undefined : _options$splitBy;
|
|
55
|
+
var result = searchParams.get(param);
|
|
56
|
+
return splitBy && result ? result.split(splitBy) : result;
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
if (param === 'i' || param === 'p') {
|
|
60
|
+
return _parseParam(stateParams[param]);
|
|
61
|
+
} else {
|
|
62
|
+
return stateParams[param];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// Method to obtain all params available as a JS object
|
|
68
|
+
var getAllParams = function getAllParams() {
|
|
69
|
+
if (!disableParams) {
|
|
70
|
+
return Object.fromEntries(searchParams.entries());
|
|
71
|
+
} else {
|
|
72
|
+
return stateParams;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/*
|
|
77
|
+
Method to set params. Params are being set as object { key1: value1, key2: value2 }.
|
|
78
|
+
Optional replace value will replace URL when using searchParams.
|
|
79
|
+
*/
|
|
80
|
+
var setParams = function setParams(params) {
|
|
81
|
+
var replace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
82
|
+
if (!disableParams) {
|
|
83
|
+
setSearchParams(function (searchParams) {
|
|
84
|
+
return _updateSearchParams(searchParams, params);
|
|
85
|
+
}, {
|
|
86
|
+
replace: replace
|
|
87
|
+
});
|
|
88
|
+
} else {
|
|
89
|
+
setStateParams(function (prevState) {
|
|
90
|
+
return _objectSpread(_objectSpread({}, prevState), params);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
// Method to remove param
|
|
96
|
+
var removeParam = function removeParam(param) {
|
|
97
|
+
if (!disableParams) {
|
|
98
|
+
setSearchParams(function (prevSearchParams) {
|
|
99
|
+
var updatedParams = new URLSearchParams(prevSearchParams);
|
|
100
|
+
updatedParams["delete"](param);
|
|
101
|
+
return updatedParams;
|
|
102
|
+
});
|
|
103
|
+
} else {
|
|
104
|
+
// Use destructuring to remove the desired key-value pair
|
|
105
|
+
setStateParams(function (prevState) {
|
|
106
|
+
var _ = prevState[param],
|
|
107
|
+
rest = (0, _objectWithoutProperties2["default"])(prevState, [param].map(_toPropertyKey));
|
|
108
|
+
return rest;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/*
|
|
114
|
+
Particular DataTable2 methods out of adding, retrieving and removing scope
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
// Method to update advanced single value filter
|
|
118
|
+
var updateSingleValueFilter = function updateSingleValueFilter(field, value) {
|
|
119
|
+
// Add/replace value
|
|
120
|
+
if (!disableParams) {
|
|
121
|
+
var updatedSearchParams = new URLSearchParams();
|
|
122
|
+
searchParams.forEach(function (value, key) {
|
|
123
|
+
if (!key.startsWith("a".concat(field))) {
|
|
124
|
+
updatedSearchParams.append(key, value);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
(0, _updateTableLimit.updateLimit)("decrease", updatedSearchParams);
|
|
128
|
+
updatedSearchParams.set("p", 1);
|
|
129
|
+
updatedSearchParams.append("a".concat(field), value);
|
|
130
|
+
setSearchParams(updatedSearchParams);
|
|
131
|
+
} else {
|
|
132
|
+
setStateParams(function (prevState) {
|
|
133
|
+
// Add/replace value for non-advanced sorting
|
|
134
|
+
var updatedState = {};
|
|
135
|
+
Object.keys(prevState).forEach(function (key) {
|
|
136
|
+
if (!key.startsWith("a".concat(field))) {
|
|
137
|
+
updatedState[key] = prevState[key];
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
(0, _updateTableLimit.updateStateLimit)("decrease", updatedState);
|
|
141
|
+
updatedState['p'] = 1;
|
|
142
|
+
updatedState["a".concat(field)] = [value];
|
|
143
|
+
return updatedState;
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
// Method to update advanced multi value filter
|
|
149
|
+
var updateMultiValueFilter = function updateMultiValueFilter(field, value) {
|
|
150
|
+
var valuesToUpdate = getParam("a".concat(field), {
|
|
151
|
+
splitBy: ','
|
|
152
|
+
});
|
|
153
|
+
if (valuesToUpdate) {
|
|
154
|
+
if (valuesToUpdate.includes(value) == true) {
|
|
155
|
+
valuesToUpdate = valuesToUpdate.filter(function (item) {
|
|
156
|
+
return item != value;
|
|
157
|
+
});
|
|
158
|
+
} else {
|
|
159
|
+
valuesToUpdate.push(value);
|
|
160
|
+
}
|
|
161
|
+
if (valuesToUpdate && valuesToUpdate.length > 0) {
|
|
162
|
+
if (!disableParams) {
|
|
163
|
+
setSearchParams(function (searchParams) {
|
|
164
|
+
(0, _updateTableLimit.updateLimit)("decrease", searchParams);
|
|
165
|
+
searchParams.set("p", 1);
|
|
166
|
+
searchParams.set("a".concat(field), valuesToUpdate);
|
|
167
|
+
return searchParams;
|
|
168
|
+
});
|
|
169
|
+
} else {
|
|
170
|
+
setStateParams(function (prevState) {
|
|
171
|
+
var updatedState = _objectSpread({}, prevState);
|
|
172
|
+
(0, _updateTableLimit.updateStateLimit)("decrease", updatedState);
|
|
173
|
+
updatedState['p'] = 1;
|
|
174
|
+
updatedState["a".concat(field)] = valuesToUpdate;
|
|
175
|
+
return updatedState;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
} else {
|
|
179
|
+
clearMultiValueFilter(field);
|
|
180
|
+
}
|
|
181
|
+
} else {
|
|
182
|
+
if (!disableParams) {
|
|
183
|
+
setSearchParams(function (searchParams) {
|
|
184
|
+
(0, _updateTableLimit.updateLimit)("decrease", searchParams);
|
|
185
|
+
searchParams.set("p", 1);
|
|
186
|
+
searchParams.set("a".concat(field), value);
|
|
187
|
+
return searchParams;
|
|
188
|
+
});
|
|
189
|
+
} else {
|
|
190
|
+
setStateParams(function (prevState) {
|
|
191
|
+
var updatedState = _objectSpread({}, prevState);
|
|
192
|
+
(0, _updateTableLimit.updateStateLimit)("decrease", updatedState);
|
|
193
|
+
updatedState['p'] = 1;
|
|
194
|
+
updatedState["a".concat(field)] = [value];
|
|
195
|
+
return updatedState;
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
// Method for clearing values in advanced multi value filter
|
|
202
|
+
var clearMultiValueFilter = function clearMultiValueFilter(field) {
|
|
203
|
+
if (!disableParams) {
|
|
204
|
+
setSearchParams(function (prevSearchParams) {
|
|
205
|
+
var updatedParams = new URLSearchParams(prevSearchParams);
|
|
206
|
+
updatedParams["delete"]("a".concat(field));
|
|
207
|
+
(0, _updateTableLimit.updateLimit)("increase", updatedParams);
|
|
208
|
+
updatedParams.set("p", 1);
|
|
209
|
+
return updatedParams;
|
|
210
|
+
});
|
|
211
|
+
} else {
|
|
212
|
+
// Use destructuring to remove the desired key-value pair
|
|
213
|
+
setStateParams(function (prevState) {
|
|
214
|
+
var _ = prevState["a".concat(field)],
|
|
215
|
+
rest = (0, _objectWithoutProperties2["default"])(prevState, ["a".concat(field)]);
|
|
216
|
+
(0, _updateTableLimit.updateStateLimit)("increase", rest);
|
|
217
|
+
rest['p'] = 1;
|
|
218
|
+
return rest;
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
// Method for applying sorting
|
|
224
|
+
var onTriggerSort = function onTriggerSort(event, field, value) {
|
|
225
|
+
if (event.shiftKey) {
|
|
226
|
+
// shift + left mouse click
|
|
227
|
+
if (getParam("s".concat(field)) != null) {
|
|
228
|
+
// Remove field from (advanced) sorting
|
|
229
|
+
removeParam("s".concat(field));
|
|
230
|
+
} else {
|
|
231
|
+
// Add field to advanced sorting
|
|
232
|
+
setParams((0, _defineProperty2["default"])({}, "s".concat(field), value));
|
|
233
|
+
}
|
|
234
|
+
} else if (getParam("s".concat(field)) != null) {
|
|
235
|
+
setParams((0, _defineProperty2["default"])({}, "s".concat(field), value));
|
|
236
|
+
} else {
|
|
237
|
+
if (!disableParams) {
|
|
238
|
+
// Add/replace value for non-advanced sorting
|
|
239
|
+
var updatedSearchParams = new URLSearchParams();
|
|
240
|
+
searchParams.forEach(function (value, key) {
|
|
241
|
+
if (!key.startsWith("s")) {
|
|
242
|
+
updatedSearchParams.append(key, value);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
updatedSearchParams.append("s".concat(field), value);
|
|
246
|
+
setSearchParams(updatedSearchParams);
|
|
247
|
+
} else {
|
|
248
|
+
setStateParams(function (prevState) {
|
|
249
|
+
// Add/replace value for non-advanced sorting
|
|
250
|
+
var updatedState = {};
|
|
251
|
+
Object.keys(prevState).forEach(function (key) {
|
|
252
|
+
if (!key.startsWith("s")) {
|
|
253
|
+
updatedState[key] = prevState[key];
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
updatedState["s".concat(field)] = value;
|
|
257
|
+
return updatedState;
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
// Method for removal a single pill from DataTable2
|
|
264
|
+
var removeSinglePill = function removeSinglePill(field) {
|
|
265
|
+
if (!disableParams) {
|
|
266
|
+
setSearchParams(function (prevSearchParams) {
|
|
267
|
+
var updatedParams = new URLSearchParams(prevSearchParams);
|
|
268
|
+
updatedParams["delete"](field);
|
|
269
|
+
(0, _updateTableLimit.updateLimit)("increase", updatedParams);
|
|
270
|
+
updatedParams.set("p", 1);
|
|
271
|
+
return updatedParams;
|
|
272
|
+
});
|
|
273
|
+
} else {
|
|
274
|
+
// Use destructuring to remove the desired key-value pair
|
|
275
|
+
setStateParams(function (prevState) {
|
|
276
|
+
var _ = prevState[field],
|
|
277
|
+
rest = (0, _objectWithoutProperties2["default"])(prevState, [field].map(_toPropertyKey));
|
|
278
|
+
// Update the limit
|
|
279
|
+
(0, _updateTableLimit.updateStateLimit)("increase", rest);
|
|
280
|
+
// Set 'p' to 1 (which is default)
|
|
281
|
+
rest['p'] = 1;
|
|
282
|
+
return rest;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
// Method for removal a pill when there are more than 1 pills in the DataTable2
|
|
288
|
+
var removeMultiPill = function removeMultiPill(field, value) {
|
|
289
|
+
var valuesToUpdate = getParam(field, {
|
|
290
|
+
splitBy: ','
|
|
291
|
+
});
|
|
292
|
+
valuesToUpdate = valuesToUpdate.filter(function (item) {
|
|
293
|
+
return item != value;
|
|
294
|
+
});
|
|
295
|
+
if (valuesToUpdate && valuesToUpdate.length > 0) {
|
|
296
|
+
setParams((0, _defineProperty2["default"])({
|
|
297
|
+
p: 1
|
|
298
|
+
}, field, valuesToUpdate));
|
|
299
|
+
} else {
|
|
300
|
+
removeSinglePill(field);
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
// Method to serialize parameters for request query
|
|
305
|
+
var serializeParams = function serializeParams() {
|
|
306
|
+
if (!disableParams) {
|
|
307
|
+
// Convert searchParams to JS object
|
|
308
|
+
var paramsObject = {};
|
|
309
|
+
if (searchParams) {
|
|
310
|
+
var _iterator = _createForOfIteratorHelper(searchParams.entries()),
|
|
311
|
+
_step;
|
|
312
|
+
try {
|
|
313
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
314
|
+
var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
|
|
315
|
+
key = _step$value[0],
|
|
316
|
+
value = _step$value[1];
|
|
317
|
+
paramsObject[key] = value;
|
|
318
|
+
}
|
|
319
|
+
} catch (err) {
|
|
320
|
+
_iterator.e(err);
|
|
321
|
+
} finally {
|
|
322
|
+
_iterator.f();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return paramsObject;
|
|
326
|
+
} else {
|
|
327
|
+
if (stateParams) {
|
|
328
|
+
// Create a new object with the same keys
|
|
329
|
+
var updatedState = _objectSpread({}, stateParams);
|
|
330
|
+
// Iterate over each key in the object
|
|
331
|
+
Object.keys(updatedState).forEach(function (key) {
|
|
332
|
+
// If the value is an array, join it to a comma-separated string
|
|
333
|
+
if (Array.isArray(updatedState[key])) {
|
|
334
|
+
updatedState[key] = updatedState[key].join(',');
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
return updatedState;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
// Method to get the current filter fields based on a given key
|
|
343
|
+
var getFilterField = function getFilterField(key) {
|
|
344
|
+
return filterFieldsRef.current[key];
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
// Method to set filter fields in filterFieldsRef
|
|
348
|
+
var setFilterField = function setFilterField(obj) {
|
|
349
|
+
var fields = Object.entries(obj)[0];
|
|
350
|
+
// Check and only add field if it doesnt exist
|
|
351
|
+
if (!filterFieldsRef.current[fields[0]]) {
|
|
352
|
+
filterFieldsRef.current[fields[0]] = fields[1];
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
// Inner method to update search params
|
|
357
|
+
var _updateSearchParams = function _updateSearchParams(searchParams, params) {
|
|
358
|
+
Object.entries(params).forEach(function (_ref2) {
|
|
359
|
+
var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
|
|
360
|
+
key = _ref3[0],
|
|
361
|
+
value = _ref3[1];
|
|
362
|
+
searchParams.set(key, value);
|
|
363
|
+
});
|
|
364
|
+
return searchParams;
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
// Method to parse the given parameter into an integer with the specified base. The default base is 10
|
|
368
|
+
var _parseParam = function _parseParam(param) {
|
|
369
|
+
var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
|
|
370
|
+
return parseInt(param, base);
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
// Memoize the context value to avoid unnecessary re-renders
|
|
374
|
+
var paramsContext = (0, _react.useMemo)(function () {
|
|
375
|
+
return {
|
|
376
|
+
getParam: getParam,
|
|
377
|
+
getAllParams: getAllParams,
|
|
378
|
+
setParams: setParams,
|
|
379
|
+
removeParam: removeParam,
|
|
380
|
+
updateSingleValueFilter: updateSingleValueFilter,
|
|
381
|
+
updateMultiValueFilter: updateMultiValueFilter,
|
|
382
|
+
clearMultiValueFilter: clearMultiValueFilter,
|
|
383
|
+
removeSinglePill: removeSinglePill,
|
|
384
|
+
removeMultiPill: removeMultiPill,
|
|
385
|
+
onTriggerSort: onTriggerSort,
|
|
386
|
+
serializeParams: serializeParams,
|
|
387
|
+
getFilterField: getFilterField,
|
|
388
|
+
setFilterField: setFilterField,
|
|
389
|
+
watchParams: {
|
|
390
|
+
searchParams: searchParams,
|
|
391
|
+
stateParams: stateParams
|
|
392
|
+
} // Context value for watching params
|
|
393
|
+
};
|
|
394
|
+
}, [searchParams, stateParams]);
|
|
395
|
+
return /*#__PURE__*/_react["default"].createElement(CreateDataTableContext.Provider, {
|
|
396
|
+
value: paramsContext
|
|
397
|
+
}, children);
|
|
398
|
+
};
|
|
399
|
+
var useDataTableContext = exports.useDataTableContext = function useDataTableContext() {
|
|
400
|
+
return (0, _react.useContext)(CreateDataTableContext);
|
|
401
|
+
};
|