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.
Files changed (103) hide show
  1. package/CHANGELOG.md +295 -0
  2. package/LICENSE +28 -0
  3. package/README.md +3 -0
  4. package/dist/abc/Module.js +20 -0
  5. package/dist/abc/Renderer.js +67 -0
  6. package/dist/abc/Service.js +24 -0
  7. package/dist/components/AdvancedCard/AdvancedCard.js +38 -0
  8. package/dist/components/AdvancedCard/AdvancedCard.jsx +34 -0
  9. package/dist/components/AttentionRequired/AttentionRequiredBadge.js +22 -0
  10. package/dist/components/AttentionRequired/AttentionRequiredBadge.jsx +17 -0
  11. package/dist/components/Authz/ButtonWithAuthz.js +81 -0
  12. package/dist/components/Authz/ControlledSwitchWithAuthz.js +78 -0
  13. package/dist/components/Authz/Credentials.js +217 -0
  14. package/dist/components/Authz/Credentials.scss +7 -0
  15. package/dist/components/Authz/LinkWithAuthz.js +56 -0
  16. package/dist/components/Authz/UncontrolledSwitchWithAuthz.js +79 -0
  17. package/dist/components/Authz/utils/authz.js +38 -0
  18. package/dist/components/Authz/utils/isAuthorized.js +31 -0
  19. package/dist/components/Console/ConsoleCard.js +98 -0
  20. package/dist/components/Console/ConsoleCard.jsx +70 -0
  21. package/dist/components/Console/ConsoleCard.scss +26 -0
  22. package/dist/components/Console/ConsoleContext.js +14 -0
  23. package/dist/components/Console/ConsoleContext.jsx +5 -0
  24. package/dist/components/Console/components/ConsoleModeButton.js +35 -0
  25. package/dist/components/Console/components/ConsoleModeButton.jsx +30 -0
  26. package/dist/components/ContentLoader.js +57 -0
  27. package/dist/components/Context/PubSubContext.js +51 -0
  28. package/dist/components/ControlledSwitch/index.js +33 -0
  29. package/dist/components/ControlledSwitch/switch.scss +82 -0
  30. package/dist/components/DataTable/ActionButton.js +63 -0
  31. package/dist/components/DataTable/Buttons.js +116 -0
  32. package/dist/components/DataTable/CustomDropdownButton.js +49 -0
  33. package/dist/components/DataTable/DataTable.scss +37 -0
  34. package/dist/components/DataTable/LimitDropdown.js +52 -0
  35. package/dist/components/DataTable/Pagination.js +204 -0
  36. package/dist/components/DataTable/Search.js +29 -0
  37. package/dist/components/DataTable/Sort.js +44 -0
  38. package/dist/components/DataTable/Table.js +310 -0
  39. package/dist/components/DataTable/index.js +180 -0
  40. package/dist/components/DataTable2/DataTable2.js +532 -0
  41. package/dist/components/DataTable2/DataTable2.jsx +446 -0
  42. package/dist/components/DataTable2/DataTable2.scss +38 -0
  43. package/dist/components/DataTable2/DataTableContext.js +401 -0
  44. package/dist/components/DataTable2/DataTableContext.jsx +338 -0
  45. package/dist/components/DataTable2/components/filters/DataTableAdvFilter2.scss +20 -0
  46. package/dist/components/DataTable2/components/filters/DataTableAdvFilterMultiValue2.js +80 -0
  47. package/dist/components/DataTable2/components/filters/DataTableAdvFilterMultiValue2.jsx +64 -0
  48. package/dist/components/DataTable2/components/filters/DataTableAdvFilterSingleValue2.js +61 -0
  49. package/dist/components/DataTable2/components/filters/DataTableAdvFilterSingleValue2.jsx +49 -0
  50. package/dist/components/DataTable2/components/filters/DataTableSimpleFilter2.js +38 -0
  51. package/dist/components/DataTable2/components/filters/DataTableSimpleFilter2.jsx +35 -0
  52. package/dist/components/DataTable2/components/filters/index.js +26 -0
  53. package/dist/components/DataTable2/components/filters/index.jsx +3 -0
  54. package/dist/components/DataTable2/components/utils/updateTableLimit.js +37 -0
  55. package/dist/components/DataTable2/components/utils/updateTableLimit.jsx +22 -0
  56. package/dist/components/DateTime/index.js +44 -0
  57. package/dist/components/DateTime/timeToString.js +88 -0
  58. package/dist/components/DateTime/useDateFNSLocale.js +48 -0
  59. package/dist/components/FullscreenButton.js +35 -0
  60. package/dist/components/FullscreenButton.jsx +26 -0
  61. package/dist/components/Humanize/humanizeToString.js +99 -0
  62. package/dist/components/Humanize/index.js +32 -0
  63. package/dist/components/ResultCard/ResultCard.js +24 -0
  64. package/dist/components/ResultCard/ResultCard.scss +9 -0
  65. package/dist/components/Spinner.js +25 -0
  66. package/dist/components/TreeMenu/TreeMenu.js +78 -0
  67. package/dist/components/TreeMenu/TreeMenu.jsx +63 -0
  68. package/dist/components/TreeMenu/TreeMenu.scss +32 -0
  69. package/dist/components/TreeMenu/TreeMenuCard.js +189 -0
  70. package/dist/components/TreeMenu/TreeMenuItem.js +135 -0
  71. package/dist/components/TreeMenu/index.js +41 -0
  72. package/dist/components/TreeMenu/utils/flattenTree.js +54 -0
  73. package/dist/components/TreeMenu/utils/flattenTree.jsx +44 -0
  74. package/dist/components/TreeMenu/utils/formatIntoLeafFolderTree.js +56 -0
  75. package/dist/components/TreeMenu/utils/formatIntoTree.js +67 -0
  76. package/dist/components/TreeMenu/utils/removeTreeContent.js +97 -0
  77. package/dist/components/UncontrolledSwitch/index.js +60 -0
  78. package/dist/index.js +372 -0
  79. package/dist/styles/components/alert.scss +53 -0
  80. package/dist/styles/components/button.scss +104 -0
  81. package/dist/styles/components/card.scss +174 -0
  82. package/dist/styles/components/form.scss +20 -0
  83. package/dist/styles/components/html.scss +16 -0
  84. package/dist/styles/constants/colors.scss +66 -0
  85. package/dist/styles/constants/index.scss +70 -0
  86. package/dist/styles/constants/theme-dark.scss +55 -0
  87. package/dist/styles/constants/theme-light.scss +46 -0
  88. package/dist/styles/constants/theme-print.scss +198 -0
  89. package/dist/styles/index.scss +15 -0
  90. package/dist/utils/ErrorHandler.js +27 -0
  91. package/dist/utils/deepMerge.js +47 -0
  92. package/dist/utils/deepMerge.jsx +33 -0
  93. package/dist/utils/hexToString.js +27 -0
  94. package/dist/utils/isPrivateIP.js +37 -0
  95. package/dist/utils/isValidIP.js +82 -0
  96. package/dist/utils/itemExtensionHandler.js +24 -0
  97. package/dist/utils/localStorage.js +65 -0
  98. package/dist/utils/lookups/isoCodeCountries.js +264 -0
  99. package/dist/utils/monaco/problemMarkers.js +78 -0
  100. package/dist/utils/monaco/problemMarkers.jsx +57 -0
  101. package/dist/utils/removeFileExtension.js +26 -0
  102. package/dist/utils/validateAccess.js +143 -0
  103. package/package.json +43 -0
@@ -0,0 +1,37 @@
1
+
2
+ .datatable {
3
+ margin-bottom: 0;
4
+ thead {
5
+ font-weight: 700;
6
+
7
+ th {
8
+ vertical-align: bottom;
9
+ }
10
+ }
11
+ tbody {
12
+ th {
13
+ font-weight: 400;
14
+ }
15
+ }
16
+ tr {
17
+ display: table-row;
18
+ text-align: left;
19
+ vertical-align: inherit;
20
+ }
21
+ th {
22
+ color: var(--bs-heading-color);
23
+ }
24
+ td, th {
25
+ vertical-align: middle;
26
+ }
27
+
28
+ .data-table-arrow-btn {
29
+ padding-left: 0.75rem;
30
+
31
+ i {
32
+ color: var(--bs-primary);
33
+ cursor: pointer;
34
+ }
35
+ }
36
+
37
+ }
@@ -0,0 +1,52 @@
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["default"] = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactI18next = require("react-i18next");
12
+ var _reactstrap = require("reactstrap");
13
+ 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); }
14
+ 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; }
15
+ var LimitDropdown = function LimitDropdown(_ref) {
16
+ var _ref$translationRoute = _ref.translationRoute,
17
+ translationRoute = _ref$translationRoute === void 0 ? '' : _ref$translationRoute,
18
+ _ref$limit = _ref.limit,
19
+ limit = _ref$limit === void 0 ? 10 : _ref$limit,
20
+ limitValues = _ref.limitValues,
21
+ setPage = _ref.setPage,
22
+ setLimit = _ref.setLimit;
23
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
24
+ t = _useTranslation.t;
25
+ var _useState = (0, _react.useState)(false),
26
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
27
+ isLimitOpen = _useState2[0],
28
+ setLimitDropdown = _useState2[1];
29
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
30
+ className: "pe-0"
31
+ }, t("General|Items per page"), ":"), /*#__PURE__*/_react["default"].createElement(_reactstrap.Dropdown, {
32
+ isOpen: isLimitOpen,
33
+ toggle: function toggle() {
34
+ return setLimitDropdown(function (prev) {
35
+ return !prev;
36
+ });
37
+ }
38
+ }, /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownToggle, {
39
+ color: "text-dark",
40
+ outline: true,
41
+ caret: true
42
+ }, limit), /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownMenu, null, limitValues.map(function (value, idx) {
43
+ return /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownItem, {
44
+ onClick: function onClick() {
45
+ setPage(1);
46
+ setLimit(value);
47
+ },
48
+ key: idx
49
+ }, value);
50
+ }))));
51
+ };
52
+ var _default = exports["default"] = LimitDropdown;
@@ -0,0 +1,204 @@
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["default"] = _default;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _reactI18next = require("react-i18next");
13
+ var _reactstrap = require("reactstrap");
14
+ 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); }
15
+ 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; }
16
+ // OBSOLETED COMPONENT (Aug 2023) - don't use this in a new designs
17
+
18
+ function _default(_ref) {
19
+ var currentPage = _ref.currentPage,
20
+ setPage = _ref.setPage,
21
+ lastPage = _ref.lastPage,
22
+ style = _ref.style;
23
+ var slots = lastPage;
24
+ var _useState = (0, _react.useState)(false),
25
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
26
+ open = _useState2[0],
27
+ setOpen = _useState2[1];
28
+ var _useState3 = (0, _react.useState)([]),
29
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
30
+ middlePart = _useState4[0],
31
+ setMiddlePart = _useState4[1];
32
+ var _useState5 = (0, _react.useState)([1, lastPage]),
33
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
34
+ arrayStartEnd = _useState6[0],
35
+ setArrayStartEnd = _useState6[1];
36
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
37
+ t = _useTranslation.t,
38
+ i18n = _useTranslation.i18n;
39
+
40
+ // Initial render with default values
41
+ (0, _react.useEffect)(function () {
42
+ setArrayStartEnd([1, lastPage]);
43
+ pagesMiddle();
44
+ }, [slots]);
45
+
46
+ // Set last page
47
+ (0, _react.useEffect)(function () {
48
+ if (currentPage > lastPage && lastPage != 0) {
49
+ setPage(lastPage);
50
+ }
51
+ }, [lastPage]);
52
+
53
+ // Insert '...' with more or less variables to an middle part array
54
+ var pages = (0, _react.useMemo)(function () {
55
+ if (middlePart.length > 0) {
56
+ var p = (0, _toConsumableArray2["default"])(arrayStartEnd);
57
+ p.splice.apply(p, [1, 0].concat((0, _toConsumableArray2["default"])(middlePart)));
58
+ if (p[1] > 2) {
59
+ p.splice(1, 0, "less");
60
+ }
61
+ if (p[p.length - 2] + 1 < lastPage) {
62
+ p.splice(p.length - 1, 0, "more");
63
+ }
64
+ return p;
65
+ }
66
+ if (arrayStartEnd[0] == arrayStartEnd[1]) {
67
+ return [arrayStartEnd[0]];
68
+ }
69
+ if (lastPage == 0) {
70
+ return [1];
71
+ }
72
+ return arrayStartEnd;
73
+ }, [middlePart]);
74
+
75
+ // Compute pages to display in the middle of first and last page
76
+ var pagesMiddle = function pagesMiddle(action) {
77
+ var p = []; // Pages array
78
+ var start = currentPage - Math.floor(slots / 2);
79
+ var end = currentPage + Math.floor(slots / 2);
80
+ if (action == "less" || action == "more") {
81
+ /*
82
+ Compute start and end pages (increment or decrement) of a page
83
+ '...' value (more or less) click
84
+ */
85
+ if (action == "less") {
86
+ start = middlePart[0] - 1;
87
+ end = middlePart[middlePart.length - 1] - 1;
88
+ if (start < 1) {
89
+ start = 1 - Math.floor(slots / 2);
90
+ }
91
+ if (end < 1) {
92
+ end = 1 + Math.floor(slots / 2);
93
+ }
94
+ } else if (action == "more") {
95
+ start = middlePart[0] + 1;
96
+ end = middlePart[middlePart.length - 1] + 1;
97
+ if (end > lastPage) {
98
+ end = lastPage - 1;
99
+ }
100
+ if (start >= lastPage) {
101
+ start = middlePart[0];
102
+ }
103
+ }
104
+ for (var i = start; i <= end; i++) {
105
+ p.splice(i, 0, i);
106
+ }
107
+ setMiddlePart(p);
108
+ } else {
109
+ // Set start and end variables
110
+ if (start < 1) {
111
+ start = 1;
112
+ end = Math.min(slots, lastPage);
113
+ } else if (end > lastPage) {
114
+ start = Math.max(lastPage - slots + 1, 1);
115
+ end = lastPage;
116
+ }
117
+ if (action == lastPage) {
118
+ /*
119
+ Triggers only when clicking on last page
120
+ and computes the appropriate page values
121
+ */
122
+ var e = end - 4;
123
+ if (e <= 1) {
124
+ e = start + 1;
125
+ }
126
+ for (var _i = e; _i < end; _i++) {
127
+ p.splice(_i - 1, 0, _i);
128
+ }
129
+ setMiddlePart(p);
130
+ } else {
131
+ // Triggers initially and on 1st page click
132
+ for (var _i2 = start + 1; _i2 < end; _i2++) {
133
+ p.splice(_i2 - 1, 0, _i2);
134
+ if (_i2 == 5 && end > 5) {
135
+ setMiddlePart(p);
136
+ return;
137
+ }
138
+ }
139
+ }
140
+ }
141
+ setMiddlePart(p);
142
+ };
143
+
144
+ // Action triggered on value click in page dropdown
145
+ var pageDropdownClick = function pageDropdownClick(p) {
146
+ if (p == "more" || p == "less") {
147
+ pagesMiddle(p);
148
+ setOpen(false);
149
+ } else {
150
+ /*
151
+ Manage cases when user clicks on last or first item
152
+ and would like to skip all the other pages in between
153
+ */
154
+ if (p == lastPage || p == 1) {
155
+ pagesMiddle(p);
156
+ }
157
+ setPage(p);
158
+ setOpen(true);
159
+ }
160
+ };
161
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.Dropdown, {
162
+ isOpen: open,
163
+ toggle: function toggle() {
164
+ return setOpen(function (prev) {
165
+ return !prev;
166
+ });
167
+ },
168
+ direction: "down",
169
+ className: "border-start"
170
+ }, /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownToggle, {
171
+ color: "text-dark",
172
+ outline: true,
173
+ caret: true
174
+ }, currentPage), /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownMenu, null, pages && pages.map(function (page, idx) {
175
+ return /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownItem, {
176
+ key: idx,
177
+ onClick: function onClick() {
178
+ return pageDropdownClick(page);
179
+ }
180
+ }, page == "more" || page == "less" ? "..." : page);
181
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
182
+ className: "border-end ps-0"
183
+ }, pages && pages.length > 1 ? "".concat(t('General|of'), " ").concat(lastPage == 0 ? 1 : lastPage, " ").concat(t("General|Pages")) : "".concat(t('General|of'), " ").concat(lastPage == 0 ? 1 : lastPage, " ").concat(t('General|Page'))), /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
184
+ type: "button",
185
+ color: "primary",
186
+ outline: true,
187
+ onClick: function onClick() {
188
+ return setPage(Math.max(1, currentPage - 1));
189
+ },
190
+ disabled: currentPage <= 1
191
+ }, /*#__PURE__*/_react["default"].createElement("i", {
192
+ className: "bi bi-chevron-double-left"
193
+ })), /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
194
+ type: "button",
195
+ color: "primary",
196
+ outline: true,
197
+ onClick: function onClick() {
198
+ return setPage(currentPage + 1);
199
+ },
200
+ disabled: currentPage >= lastPage
201
+ }, /*#__PURE__*/_react["default"].createElement("i", {
202
+ className: "bi bi-chevron-double-right"
203
+ })));
204
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactstrap = require("reactstrap");
10
+ var Search = function Search(_ref) {
11
+ var search = _ref.search,
12
+ filterValue = _ref.filterValue,
13
+ setFilterValue = _ref.setFilterValue;
14
+ return /*#__PURE__*/_react["default"].createElement("div", {
15
+ className: "float-end ms-3 data-table-search"
16
+ }, /*#__PURE__*/_react["default"].createElement(_reactstrap.InputGroup, null, search.icon && /*#__PURE__*/_react["default"].createElement(_reactstrap.InputGroupText, null, /*#__PURE__*/_react["default"].createElement("i", {
17
+ className: search.icon
18
+ })), /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, {
19
+ value: filterValue,
20
+ onChange: function onChange(e) {
21
+ return setFilterValue(e.target.value);
22
+ },
23
+ placeholder: search.placeholder,
24
+ type: "text",
25
+ bsSize: "sm",
26
+ name: "search"
27
+ })));
28
+ };
29
+ var _default = exports["default"] = Search;
@@ -0,0 +1,44 @@
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["default"] = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactstrap = require("reactstrap");
12
+ 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); }
13
+ 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; }
14
+ var Sort = function Sort(_ref) {
15
+ var sort = _ref.sort;
16
+ var _useState = (0, _react.useState)(false),
17
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
18
+ isSortOpen = _useState2[0],
19
+ setSortDropdown = _useState2[1];
20
+ return /*#__PURE__*/_react["default"].createElement("div", {
21
+ className: "float-end ms-3 data-table-sort"
22
+ }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Dropdown, {
23
+ isOpen: isSortOpen,
24
+ toggle: function toggle() {
25
+ return setSortDropdown(function (prev) {
26
+ return !prev;
27
+ });
28
+ }
29
+ }, /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownToggle, {
30
+ caret: true
31
+ }, sort.icon && /*#__PURE__*/_react["default"].createElement("i", {
32
+ className: "".concat(sort.icon, " me-1")
33
+ }), sort.title), /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownMenu, null, sort.items.map(function (item, idx) {
34
+ return /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownItem, {
35
+ onClick: function onClick() {
36
+ return sort.onClick(item.value);
37
+ },
38
+ key: idx
39
+ }, item.icon && /*#__PURE__*/_react["default"].createElement("i", {
40
+ className: "".concat(item.icon, " me-1")
41
+ }), item.name);
42
+ }))));
43
+ };
44
+ var _default = exports["default"] = Sort;
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _reactRedux = require("react-redux");
14
+ var _reactRouterDom = require("react-router-dom");
15
+ var _reactJsonView = _interopRequireDefault(require("react-json-view"));
16
+ var _reactstrap = require("reactstrap");
17
+ var _DateTime = require("../DateTime");
18
+ var _Buttons = require("./Buttons");
19
+ require("./DataTable.scss");
20
+ 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); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(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; }
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
+ var TableCell = function TableCell(_ref) {
25
+ var _header$datetime, _header$datetime2;
26
+ var obj = _ref.obj,
27
+ header = _ref.header,
28
+ idx = _ref.idx,
29
+ showJson = _ref.showJson,
30
+ jsonTheme = _ref.jsonTheme,
31
+ isSublist = _ref.isSublist;
32
+ if (!obj) return /*#__PURE__*/_react["default"].createElement("td", {
33
+ className: "ps-3",
34
+ style: {
35
+ whiteSpace: "nowrap"
36
+ }
37
+ }, "-");
38
+ var cell, icon, customCellStyle;
39
+ var textLinkStyle = {
40
+ whiteSpace: "nowrap",
41
+ marginBottom: 0
42
+ };
43
+ if (header !== null && header !== void 0 && header.customCellStyle) {
44
+ customCellStyle = header.customCellStyle;
45
+ textLinkStyle = _objectSpread(_objectSpread({}, textLinkStyle), customCellStyle);
46
+ }
47
+ if (header !== null && header !== void 0 && header.icon) {
48
+ icon = typeof header.icon === 'string' ? /*#__PURE__*/_react["default"].createElement("i", {
49
+ className: "".concat(header.icon, " pe-1")
50
+ }) : header.icon;
51
+ } else {
52
+ icon = null;
53
+ }
54
+ if (showJson) {
55
+ return /*#__PURE__*/_react["default"].createElement("td", {
56
+ className: "pe-3 data-table-td",
57
+ style: {
58
+ padding: "auto"
59
+ }
60
+ }, /*#__PURE__*/_react["default"].createElement("span", {
61
+ onClick: showJson,
62
+ className: "data-table-button text-primary",
63
+ style: {
64
+ cursor: "pointer"
65
+ }
66
+ }, /*#__PURE__*/_react["default"].createElement("i", {
67
+ className: "bi bi-filetype-json"
68
+ })));
69
+ } else if (header.json) cell = /*#__PURE__*/_react["default"].createElement(_reactJsonView["default"], {
70
+ className: "data-table-reactjson",
71
+ src: obj[header.key],
72
+ name: false,
73
+ collapsed: true,
74
+ enableClipboard: false,
75
+ theme: jsonTheme
76
+ });else if (header.link) {
77
+ var pathname = "#";
78
+ if ((0, _typeof2["default"])(header.link) === "object") {
79
+ pathname = header.link.pathname + obj[header.link.key];
80
+ } else if (typeof header.link === "function") {
81
+ pathname = header.link(obj, header);
82
+ }
83
+ cell = obj[header.key] ? /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, {
84
+ to: pathname,
85
+ className: "data-table-link",
86
+ style: textLinkStyle,
87
+ title: obj[header.key]
88
+ }, icon, " ", obj[header.key]) : "-";
89
+ } else if (header.datetime) cell = obj[header.key] ? /*#__PURE__*/_react["default"].createElement(_DateTime.DateTime, {
90
+ className: "data-table-datetime",
91
+ value: obj[header.key],
92
+ dateTimeFormat: header !== null && header !== void 0 && (_header$datetime = header.datetime) !== null && _header$datetime !== void 0 && _header$datetime.dateTimeFormat ? header === null || header === void 0 || (_header$datetime2 = header.datetime) === null || _header$datetime2 === void 0 ? void 0 : _header$datetime2.dateTimeFormat : "medium"
93
+ }) : "-";else if (header.actionButton) {
94
+ cell = /*#__PURE__*/_react["default"].createElement(_Buttons.ActionButton, {
95
+ row: obj,
96
+ header: header,
97
+ actionButton: header.actionButton
98
+ });
99
+ } else if (header.customComponent) {
100
+ cell = header.customComponent.generate(obj, header);
101
+ } else cell = obj[header.key] ? /*#__PURE__*/_react["default"].createElement("p", {
102
+ style: textLinkStyle,
103
+ title: obj[header.key]
104
+ }, obj[header.key]) : "-";
105
+ if (icon && !(header.link || header.datetime || header.actionButton)) {
106
+ cell = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, icon, " ", cell);
107
+ }
108
+ return idx === 0 && !isSublist ? /*#__PURE__*/_react["default"].createElement("th", {
109
+ className: "data-table-th",
110
+ scope: "row",
111
+ style: _objectSpread({}, customCellStyle)
112
+ }, cell) : /*#__PURE__*/_react["default"].createElement("td", {
113
+ className: "ps-3 data-table-td",
114
+ style: _objectSpread({
115
+ whiteSpace: "nowrap"
116
+ }, customCellStyle)
117
+ }, cell);
118
+ };
119
+ var Headers = function Headers(_ref2) {
120
+ var headers = _ref2.headers,
121
+ advmode = _ref2.advmode,
122
+ sublists = _ref2.sublists;
123
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("colgroup", {
124
+ className: "data-table-colgroup"
125
+ }, advmode && /*#__PURE__*/_react["default"].createElement("col", {
126
+ style: {
127
+ width: "1px"
128
+ }
129
+ }), sublists && /*#__PURE__*/_react["default"].createElement("col", {
130
+ style: {
131
+ width: "1px"
132
+ }
133
+ }), headers.map(function (_, idx) {
134
+ return /*#__PURE__*/_react["default"].createElement("col", {
135
+ className: "data-table-col".concat(idx),
136
+ style: _objectSpread({
137
+ width: idx === headers.length - 1 ? "auto" : "8em"
138
+ }, _.customHeaderStyle),
139
+ key: idx
140
+ });
141
+ })), /*#__PURE__*/_react["default"].createElement("thead", {
142
+ className: "data-table-thead"
143
+ }, /*#__PURE__*/_react["default"].createElement("tr", {
144
+ className: "data-table-tr"
145
+ }, advmode && /*#__PURE__*/_react["default"].createElement("th", {
146
+ className: "ps-3 data-table-adv-header-th"
147
+ }, " "), sublists && /*#__PURE__*/_react["default"].createElement("th", {
148
+ className: "ps-3 data-table-sub-header-th"
149
+ }, " "), headers.map(function (header, idx) {
150
+ return /*#__PURE__*/_react["default"].createElement("th", {
151
+ key: idx,
152
+ className: "data-table-header-th".concat(idx !== 0 ? " ps-3" : "")
153
+ }, header.name);
154
+ }))));
155
+ };
156
+ var TableRow = function TableRow(_ref3) {
157
+ var obj = _ref3.obj,
158
+ advmode = _ref3.advmode,
159
+ headers = _ref3.headers,
160
+ rowStyle = _ref3.rowStyle,
161
+ rowClassName = _ref3.rowClassName,
162
+ category = _ref3.category,
163
+ collapseChildren = _ref3.collapseChildren,
164
+ toggleChildrenOnRowClick = _ref3.toggleChildrenOnRowClick;
165
+ var _useState = (0, _react.useState)(false),
166
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
167
+ isAdvUnwrapped = _useState2[0],
168
+ setAdvUnwrapped = _useState2[1];
169
+ var _useState3 = (0, _react.useState)(collapseChildren == false ? true : false),
170
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
171
+ isSubUnwrapped = _useState4[0],
172
+ setSubUnwrapped = _useState4[1];
173
+ var theme = (0, _reactRedux.useSelector)(function (state) {
174
+ return state === null || state === void 0 ? void 0 : state.theme;
175
+ });
176
+ var getStyle = function getStyle(obj) {
177
+ if (rowStyle !== null && rowStyle !== void 0 && rowStyle.condition && rowStyle !== null && rowStyle !== void 0 && rowStyle.condition(obj)) {
178
+ return rowStyle.style;
179
+ }
180
+ return {};
181
+ };
182
+ var getClassName = function getClassName(obj) {
183
+ if (rowClassName !== null && rowClassName !== void 0 && rowClassName.condition && rowClassName !== null && rowClassName !== void 0 && rowClassName.condition(obj)) {
184
+ return rowClassName.className;
185
+ }
186
+ return "";
187
+ };
188
+ var getJsonTheme = function getJsonTheme(obj) {
189
+ if (rowStyle !== null && rowStyle !== void 0 && rowStyle.jsonTheme && rowStyle !== null && rowStyle !== void 0 && rowStyle.condition(obj)) {
190
+ return rowStyle.jsonTheme;
191
+ } else if (rowClassName !== null && rowClassName !== void 0 && rowClassName.jsonTheme && rowClassName !== null && rowClassName !== void 0 && rowClassName.condition(obj)) {
192
+ return rowClassName.jsonTheme;
193
+ } else if (theme !== "light") {
194
+ return "chalk";
195
+ } else {
196
+ return "rjv-default";
197
+ }
198
+ };
199
+ var style = (0, _react.useMemo)(function () {
200
+ return getStyle(obj);
201
+ }, [obj]);
202
+ var className = (0, _react.useMemo)(function () {
203
+ return getClassName(obj);
204
+ }, [obj]);
205
+ var jsonTheme = (0, _react.useMemo)(function () {
206
+ return getJsonTheme(obj, theme);
207
+ }, [obj, theme]);
208
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tr", {
209
+ // Enable data-table-tr-cursor class only when category is present and toggleChildrenOnRowClick is set to true
210
+ className: "data-table-tr ".concat(className, " ").concat(category && toggleChildrenOnRowClick == true && "data-table-tr-cursor"),
211
+ style: style
212
+ // Enable onClick only when category is present and toggleChildrenOnRowClick is set to true
213
+ ,
214
+ onClick: function onClick() {
215
+ return category && toggleChildrenOnRowClick == true && setSubUnwrapped(function (prev) {
216
+ return !prev;
217
+ });
218
+ }
219
+ }, advmode && /*#__PURE__*/_react["default"].createElement(TableCell, {
220
+ obj: obj,
221
+ showJson: function showJson() {
222
+ return setAdvUnwrapped(function (prev) {
223
+ return !prev;
224
+ });
225
+ }
226
+ }), category && /*#__PURE__*/_react["default"].createElement("td", {
227
+ className: "data-table-arrow-btn",
228
+ onClick: function onClick() {
229
+ return toggleChildrenOnRowClick == true ? null : setSubUnwrapped(function (prev) {
230
+ return !prev;
231
+ });
232
+ }
233
+ }, /*#__PURE__*/_react["default"].createElement("i", {
234
+ className: isSubUnwrapped ? "bi bi-arrow-down-circle" : "bi bi-arrow-right-circle"
235
+ })), headers.map(function (header, idx) {
236
+ return /*#__PURE__*/_react["default"].createElement(TableCell, {
237
+ obj: obj,
238
+ header: header,
239
+ idx: idx,
240
+ key: idx,
241
+ jsonTheme: jsonTheme
242
+ });
243
+ })), (category === null || category === void 0 ? void 0 : category.sublistKey) && obj[category.sublistKey] && isSubUnwrapped && obj[category.sublistKey]["data"].map(function (child, idx) {
244
+ return /*#__PURE__*/_react["default"].createElement("tr", {
245
+ className: "data-table-tr-child",
246
+ style: style,
247
+ key: "child-".concat(idx)
248
+ }, advmode && /*#__PURE__*/_react["default"].createElement("td", null), /*#__PURE__*/_react["default"].createElement("td", null), headers.map(function (header, idx) {
249
+ return /*#__PURE__*/_react["default"].createElement(TableCell, {
250
+ isSublist: true,
251
+ obj: child,
252
+ header: header,
253
+ idx: idx,
254
+ key: idx,
255
+ jsonTheme: jsonTheme
256
+ });
257
+ }));
258
+ }), advmode && isAdvUnwrapped && /*#__PURE__*/_react["default"].createElement("tr", {
259
+ className: "data-table-adv-tr",
260
+ style: {
261
+ backgroundColor: "rgba(0, 0, 0, 0.025)"
262
+ }
263
+ }, /*#__PURE__*/_react["default"].createElement("td", {
264
+ colSpan: category !== null && category !== void 0 && category.sublistKey ? headers.length + 2 : headers.length + 1,
265
+ className: "data-table-adv-td"
266
+ }, /*#__PURE__*/_react["default"].createElement(_reactJsonView["default"], {
267
+ theme: theme === 'dark' ? "chalk" : "rjv-default",
268
+ src: obj,
269
+ name: false
270
+ }))));
271
+ };
272
+ var ASABTable = function ASABTable(_ref4) {
273
+ var data = _ref4.data,
274
+ headers = _ref4.headers,
275
+ advmode = _ref4.advmode,
276
+ rowStyle = _ref4.rowStyle,
277
+ rowClassName = _ref4.rowClassName,
278
+ category = _ref4.category,
279
+ collapseChildren = _ref4.collapseChildren,
280
+ toggleChildrenOnRowClick = _ref4.toggleChildrenOnRowClick;
281
+ return /*#__PURE__*/_react["default"].createElement(_reactstrap.Table, {
282
+ hover: true,
283
+ responsive: true,
284
+ className: "datatable"
285
+ }, /*#__PURE__*/_react["default"].createElement(Headers, {
286
+ sublists: !!category,
287
+ headers: headers,
288
+ advmode: advmode
289
+ }), /*#__PURE__*/_react["default"].createElement("tbody", {
290
+ className: "data-table-tbody"
291
+ }, data && data.map(function (obj, idx) {
292
+ return /*#__PURE__*/_react["default"].createElement(TableRow, {
293
+ obj: obj,
294
+ advmode: advmode,
295
+ headers: headers,
296
+ rowStyle: rowStyle,
297
+ rowClassName: rowClassName,
298
+ category: category,
299
+ collapseChildren: collapseChildren,
300
+ toggleChildrenOnRowClick: toggleChildrenOnRowClick,
301
+ key: idx
302
+ });
303
+ })));
304
+ };
305
+ var mapStateToProps = function mapStateToProps(state) {
306
+ return {
307
+ theme: state.theme
308
+ };
309
+ };
310
+ var _default = exports["default"] = (0, _reactRedux.connect)(mapStateToProps)(ASABTable);