@adobe-commerce/aio-experience-kit 1.0.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 (186) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/LICENSE +56 -0
  3. package/README.md +479 -0
  4. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +341 -0
  5. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  6. package/dist/cjs/components/ConfirmationDialog/index.js +68 -0
  7. package/dist/cjs/components/ConfirmationDialog/index.js.map +1 -0
  8. package/dist/cjs/components/DataForm/FieldBuilder/index.js +168 -0
  9. package/dist/cjs/components/DataForm/FieldBuilder/index.js.map +1 -0
  10. package/dist/cjs/components/DataForm/FormBuilder/index.js +154 -0
  11. package/dist/cjs/components/DataForm/FormBuilder/index.js.map +1 -0
  12. package/dist/cjs/components/DataForm/FormBuilder/types.js +15 -0
  13. package/dist/cjs/components/DataForm/FormBuilder/types.js.map +1 -0
  14. package/dist/cjs/components/DataForm/index.js +93 -0
  15. package/dist/cjs/components/DataForm/index.js.map +1 -0
  16. package/dist/cjs/components/DataTable/ActionsBuilder/index.js +47 -0
  17. package/dist/cjs/components/DataTable/ActionsBuilder/index.js.map +1 -0
  18. package/dist/cjs/components/DataTable/GridBuilder/ActionMenuRenderer/index.js +117 -0
  19. package/dist/cjs/components/DataTable/GridBuilder/ActionMenuRenderer/index.js.map +1 -0
  20. package/dist/cjs/components/DataTable/GridBuilder/ButtonsRenderer/index.js +114 -0
  21. package/dist/cjs/components/DataTable/GridBuilder/ButtonsRenderer/index.js.map +1 -0
  22. package/dist/cjs/components/DataTable/GridBuilder/LinksRenderer/index.js +120 -0
  23. package/dist/cjs/components/DataTable/GridBuilder/LinksRenderer/index.js.map +1 -0
  24. package/dist/cjs/components/DataTable/GridBuilder/index.js +114 -0
  25. package/dist/cjs/components/DataTable/GridBuilder/index.js.map +1 -0
  26. package/dist/cjs/components/DataTable/index.js +158 -0
  27. package/dist/cjs/components/DataTable/index.js.map +1 -0
  28. package/dist/cjs/components/DataTable/types.js +12 -0
  29. package/dist/cjs/components/DataTable/types.js.map +1 -0
  30. package/dist/cjs/components/MainContainer/ContentBuilder/index.js +32 -0
  31. package/dist/cjs/components/MainContainer/ContentBuilder/index.js.map +1 -0
  32. package/dist/cjs/components/MainContainer/NavigationBuilder/Buttons/index.js +40 -0
  33. package/dist/cjs/components/MainContainer/NavigationBuilder/Buttons/index.js.map +1 -0
  34. package/dist/cjs/components/MainContainer/NavigationBuilder/Links/index.js +41 -0
  35. package/dist/cjs/components/MainContainer/NavigationBuilder/Links/index.js.map +1 -0
  36. package/dist/cjs/components/MainContainer/NavigationBuilder/index.js +37 -0
  37. package/dist/cjs/components/MainContainer/NavigationBuilder/index.js.map +1 -0
  38. package/dist/cjs/components/MainContainer/NavigationBuilder/types.js +11 -0
  39. package/dist/cjs/components/MainContainer/NavigationBuilder/types.js.map +1 -0
  40. package/dist/cjs/components/MainContainer/OneColumn/index.js +44 -0
  41. package/dist/cjs/components/MainContainer/OneColumn/index.js.map +1 -0
  42. package/dist/cjs/components/MainContainer/TitleBuilder/index.js +22 -0
  43. package/dist/cjs/components/MainContainer/TitleBuilder/index.js.map +1 -0
  44. package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js +56 -0
  45. package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js.map +1 -0
  46. package/dist/cjs/components/MainContainer/index.js +70 -0
  47. package/dist/cjs/components/MainContainer/index.js.map +1 -0
  48. package/dist/cjs/components/MainContainer/types.js +8 -0
  49. package/dist/cjs/components/MainContainer/types.js.map +1 -0
  50. package/dist/cjs/index.js +38 -0
  51. package/dist/cjs/index.js.map +1 -0
  52. package/dist/cjs/utils/AdminUiSdk/index.js +159 -0
  53. package/dist/cjs/utils/AdminUiSdk/index.js.map +1 -0
  54. package/dist/cjs/utils/RouteParams/index.js +29 -0
  55. package/dist/cjs/utils/RouteParams/index.js.map +1 -0
  56. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +318 -0
  57. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  58. package/dist/esm/components/ConfirmationDialog/index.js +64 -0
  59. package/dist/esm/components/ConfirmationDialog/index.js.map +1 -0
  60. package/dist/esm/components/DataForm/FieldBuilder/index.js +164 -0
  61. package/dist/esm/components/DataForm/FieldBuilder/index.js.map +1 -0
  62. package/dist/esm/components/DataForm/FormBuilder/index.js +150 -0
  63. package/dist/esm/components/DataForm/FormBuilder/index.js.map +1 -0
  64. package/dist/esm/components/DataForm/FormBuilder/types.js +15 -0
  65. package/dist/esm/components/DataForm/FormBuilder/types.js.map +1 -0
  66. package/dist/esm/components/DataForm/index.js +89 -0
  67. package/dist/esm/components/DataForm/index.js.map +1 -0
  68. package/dist/esm/components/DataTable/ActionsBuilder/index.js +43 -0
  69. package/dist/esm/components/DataTable/ActionsBuilder/index.js.map +1 -0
  70. package/dist/esm/components/DataTable/GridBuilder/ActionMenuRenderer/index.js +113 -0
  71. package/dist/esm/components/DataTable/GridBuilder/ActionMenuRenderer/index.js.map +1 -0
  72. package/dist/esm/components/DataTable/GridBuilder/ButtonsRenderer/index.js +110 -0
  73. package/dist/esm/components/DataTable/GridBuilder/ButtonsRenderer/index.js.map +1 -0
  74. package/dist/esm/components/DataTable/GridBuilder/LinksRenderer/index.js +116 -0
  75. package/dist/esm/components/DataTable/GridBuilder/LinksRenderer/index.js.map +1 -0
  76. package/dist/esm/components/DataTable/GridBuilder/index.js +110 -0
  77. package/dist/esm/components/DataTable/GridBuilder/index.js.map +1 -0
  78. package/dist/esm/components/DataTable/index.js +154 -0
  79. package/dist/esm/components/DataTable/index.js.map +1 -0
  80. package/dist/esm/components/DataTable/types.js +12 -0
  81. package/dist/esm/components/DataTable/types.js.map +1 -0
  82. package/dist/esm/components/MainContainer/ContentBuilder/index.js +28 -0
  83. package/dist/esm/components/MainContainer/ContentBuilder/index.js.map +1 -0
  84. package/dist/esm/components/MainContainer/NavigationBuilder/Buttons/index.js +36 -0
  85. package/dist/esm/components/MainContainer/NavigationBuilder/Buttons/index.js.map +1 -0
  86. package/dist/esm/components/MainContainer/NavigationBuilder/Links/index.js +37 -0
  87. package/dist/esm/components/MainContainer/NavigationBuilder/Links/index.js.map +1 -0
  88. package/dist/esm/components/MainContainer/NavigationBuilder/index.js +33 -0
  89. package/dist/esm/components/MainContainer/NavigationBuilder/index.js.map +1 -0
  90. package/dist/esm/components/MainContainer/NavigationBuilder/types.js +11 -0
  91. package/dist/esm/components/MainContainer/NavigationBuilder/types.js.map +1 -0
  92. package/dist/esm/components/MainContainer/OneColumn/index.js +40 -0
  93. package/dist/esm/components/MainContainer/OneColumn/index.js.map +1 -0
  94. package/dist/esm/components/MainContainer/TitleBuilder/index.js +18 -0
  95. package/dist/esm/components/MainContainer/TitleBuilder/index.js.map +1 -0
  96. package/dist/esm/components/MainContainer/TwoColumnLeft/index.js +52 -0
  97. package/dist/esm/components/MainContainer/TwoColumnLeft/index.js.map +1 -0
  98. package/dist/esm/components/MainContainer/index.js +58 -0
  99. package/dist/esm/components/MainContainer/index.js.map +1 -0
  100. package/dist/esm/components/MainContainer/types.js +8 -0
  101. package/dist/esm/components/MainContainer/types.js.map +1 -0
  102. package/dist/esm/index.js +11 -0
  103. package/dist/esm/index.js.map +1 -0
  104. package/dist/esm/types/components/ConfirmationDialog/index.d.ts +12 -0
  105. package/dist/esm/types/components/ConfirmationDialog/index.d.ts.map +1 -0
  106. package/dist/esm/types/components/ConfirmationDialog/types.d.ts +47 -0
  107. package/dist/esm/types/components/ConfirmationDialog/types.d.ts.map +1 -0
  108. package/dist/esm/types/components/DataForm/FieldBuilder/index.d.ts +8 -0
  109. package/dist/esm/types/components/DataForm/FieldBuilder/index.d.ts.map +1 -0
  110. package/dist/esm/types/components/DataForm/FieldBuilder/types.d.ts +11 -0
  111. package/dist/esm/types/components/DataForm/FieldBuilder/types.d.ts.map +1 -0
  112. package/dist/esm/types/components/DataForm/FormBuilder/index.d.ts +8 -0
  113. package/dist/esm/types/components/DataForm/FormBuilder/index.d.ts.map +1 -0
  114. package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts +51 -0
  115. package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts.map +1 -0
  116. package/dist/esm/types/components/DataForm/index.d.ts +8 -0
  117. package/dist/esm/types/components/DataForm/index.d.ts.map +1 -0
  118. package/dist/esm/types/components/DataForm/types.d.ts +16 -0
  119. package/dist/esm/types/components/DataForm/types.d.ts.map +1 -0
  120. package/dist/esm/types/components/DataTable/ActionsBuilder/index.d.ts +8 -0
  121. package/dist/esm/types/components/DataTable/ActionsBuilder/index.d.ts.map +1 -0
  122. package/dist/esm/types/components/DataTable/ActionsBuilder/types.d.ts +12 -0
  123. package/dist/esm/types/components/DataTable/ActionsBuilder/types.d.ts.map +1 -0
  124. package/dist/esm/types/components/DataTable/GridBuilder/ActionMenuRenderer/index.d.ts +12 -0
  125. package/dist/esm/types/components/DataTable/GridBuilder/ActionMenuRenderer/index.d.ts.map +1 -0
  126. package/dist/esm/types/components/DataTable/GridBuilder/ButtonsRenderer/index.d.ts +12 -0
  127. package/dist/esm/types/components/DataTable/GridBuilder/ButtonsRenderer/index.d.ts.map +1 -0
  128. package/dist/esm/types/components/DataTable/GridBuilder/LinksRenderer/index.d.ts +12 -0
  129. package/dist/esm/types/components/DataTable/GridBuilder/LinksRenderer/index.d.ts.map +1 -0
  130. package/dist/esm/types/components/DataTable/GridBuilder/index.d.ts +8 -0
  131. package/dist/esm/types/components/DataTable/GridBuilder/index.d.ts.map +1 -0
  132. package/dist/esm/types/components/DataTable/GridBuilder/types.d.ts +15 -0
  133. package/dist/esm/types/components/DataTable/GridBuilder/types.d.ts.map +1 -0
  134. package/dist/esm/types/components/DataTable/index.d.ts +7 -0
  135. package/dist/esm/types/components/DataTable/index.d.ts.map +1 -0
  136. package/dist/esm/types/components/DataTable/types.d.ts +41 -0
  137. package/dist/esm/types/components/DataTable/types.d.ts.map +1 -0
  138. package/dist/esm/types/components/MainContainer/ContentBuilder/index.d.ts +8 -0
  139. package/dist/esm/types/components/MainContainer/ContentBuilder/index.d.ts.map +1 -0
  140. package/dist/esm/types/components/MainContainer/ContentBuilder/types.d.ts +11 -0
  141. package/dist/esm/types/components/MainContainer/ContentBuilder/types.d.ts.map +1 -0
  142. package/dist/esm/types/components/MainContainer/NavigationBuilder/Buttons/index.d.ts +7 -0
  143. package/dist/esm/types/components/MainContainer/NavigationBuilder/Buttons/index.d.ts.map +1 -0
  144. package/dist/esm/types/components/MainContainer/NavigationBuilder/Buttons/types.d.ts +12 -0
  145. package/dist/esm/types/components/MainContainer/NavigationBuilder/Buttons/types.d.ts.map +1 -0
  146. package/dist/esm/types/components/MainContainer/NavigationBuilder/Links/index.d.ts +7 -0
  147. package/dist/esm/types/components/MainContainer/NavigationBuilder/Links/index.d.ts.map +1 -0
  148. package/dist/esm/types/components/MainContainer/NavigationBuilder/Links/types.d.ts +12 -0
  149. package/dist/esm/types/components/MainContainer/NavigationBuilder/Links/types.d.ts.map +1 -0
  150. package/dist/esm/types/components/MainContainer/NavigationBuilder/index.d.ts +7 -0
  151. package/dist/esm/types/components/MainContainer/NavigationBuilder/index.d.ts.map +1 -0
  152. package/dist/esm/types/components/MainContainer/NavigationBuilder/types.d.ts +21 -0
  153. package/dist/esm/types/components/MainContainer/NavigationBuilder/types.d.ts.map +1 -0
  154. package/dist/esm/types/components/MainContainer/OneColumn/index.d.ts +7 -0
  155. package/dist/esm/types/components/MainContainer/OneColumn/index.d.ts.map +1 -0
  156. package/dist/esm/types/components/MainContainer/OneColumn/types.d.ts +18 -0
  157. package/dist/esm/types/components/MainContainer/OneColumn/types.d.ts.map +1 -0
  158. package/dist/esm/types/components/MainContainer/TitleBuilder/index.d.ts +9 -0
  159. package/dist/esm/types/components/MainContainer/TitleBuilder/index.d.ts.map +1 -0
  160. package/dist/esm/types/components/MainContainer/TitleBuilder/types.d.ts +8 -0
  161. package/dist/esm/types/components/MainContainer/TitleBuilder/types.d.ts.map +1 -0
  162. package/dist/esm/types/components/MainContainer/TwoColumnLeft/index.d.ts +7 -0
  163. package/dist/esm/types/components/MainContainer/TwoColumnLeft/index.d.ts.map +1 -0
  164. package/dist/esm/types/components/MainContainer/TwoColumnLeft/types.d.ts +18 -0
  165. package/dist/esm/types/components/MainContainer/TwoColumnLeft/types.d.ts.map +1 -0
  166. package/dist/esm/types/components/MainContainer/index.d.ts +10 -0
  167. package/dist/esm/types/components/MainContainer/index.d.ts.map +1 -0
  168. package/dist/esm/types/components/MainContainer/types.d.ts +23 -0
  169. package/dist/esm/types/components/MainContainer/types.d.ts.map +1 -0
  170. package/dist/esm/types/components/index.d.ts +19 -0
  171. package/dist/esm/types/components/index.d.ts.map +1 -0
  172. package/dist/esm/types/index.d.ts +6 -0
  173. package/dist/esm/types/index.d.ts.map +1 -0
  174. package/dist/esm/types/utils/AdminUiSdk/index.d.ts +60 -0
  175. package/dist/esm/types/utils/AdminUiSdk/index.d.ts.map +1 -0
  176. package/dist/esm/types/utils/AdminUiSdk/types.d.ts +63 -0
  177. package/dist/esm/types/utils/AdminUiSdk/types.d.ts.map +1 -0
  178. package/dist/esm/types/utils/RouteParams/index.d.ts +14 -0
  179. package/dist/esm/types/utils/RouteParams/index.d.ts.map +1 -0
  180. package/dist/esm/types/utils/index.d.ts +7 -0
  181. package/dist/esm/types/utils/index.d.ts.map +1 -0
  182. package/dist/esm/utils/AdminUiSdk/index.js +155 -0
  183. package/dist/esm/utils/AdminUiSdk/index.js.map +1 -0
  184. package/dist/esm/utils/RouteParams/index.js +24 -0
  185. package/dist/esm/utils/RouteParams/index.js.map +1 -0
  186. package/package.json +124 -0
@@ -0,0 +1,116 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator, createForOfIteratorHelper as _createForOfIteratorHelper } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import React from 'react';
4
+ import { Flex, View, Link, Divider } from '@adobe/react-spectrum';
5
+
6
+ var LinksRenderer = function LinksRenderer(_ref) {
7
+ var item = _ref.item,
8
+ gridActions = _ref.gridActions,
9
+ onGridActionPress = _ref.onGridActionPress;
10
+ var _React$useState = React.useState([]),
11
+ _React$useState2 = _slicedToArray(_React$useState, 2),
12
+ visibleActions = _React$useState2[0],
13
+ setVisibleActions = _React$useState2[1];
14
+ React.useEffect(function () {
15
+ var checkVisibility = /*#__PURE__*/function () {
16
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
17
+ var visible, _iterator, _step, action, isVisible, _t, _t2;
18
+ return _regenerator().w(function (_context) {
19
+ while (1) switch (_context.p = _context.n) {
20
+ case 0:
21
+ visible = [];
22
+ _iterator = _createForOfIteratorHelper(gridActions);
23
+ _context.p = 1;
24
+ _iterator.s();
25
+ case 2:
26
+ if ((_step = _iterator.n()).done) {
27
+ _context.n = 9;
28
+ break;
29
+ }
30
+ action = _step.value;
31
+ if (!action.isVisible) {
32
+ _context.n = 7;
33
+ break;
34
+ }
35
+ _context.p = 3;
36
+ _context.n = 4;
37
+ return action.isVisible(item);
38
+ case 4:
39
+ isVisible = _context.v;
40
+ if (isVisible) {
41
+ visible.push(action);
42
+ }
43
+ _context.n = 6;
44
+ break;
45
+ case 5:
46
+ _context.p = 5;
47
+ _t = _context.v;
48
+ // If visibility check fails, skip this action but continue with others
49
+ console.warn("Visibility check failed for action ".concat(action.key, ":"), _t);
50
+ case 6:
51
+ _context.n = 8;
52
+ break;
53
+ case 7:
54
+ visible.push(action);
55
+ case 8:
56
+ _context.n = 2;
57
+ break;
58
+ case 9:
59
+ _context.n = 11;
60
+ break;
61
+ case 10:
62
+ _context.p = 10;
63
+ _t2 = _context.v;
64
+ _iterator.e(_t2);
65
+ case 11:
66
+ _context.p = 11;
67
+ _iterator.f();
68
+ return _context.f(11);
69
+ case 12:
70
+ setVisibleActions(visible);
71
+ case 13:
72
+ return _context.a(2);
73
+ }
74
+ }, _callee, null, [[3, 5], [1, 10, 11, 12]]);
75
+ }));
76
+ return function checkVisibility() {
77
+ return _ref2.apply(this, arguments);
78
+ };
79
+ }();
80
+ checkVisibility();
81
+ }, [gridActions, item]);
82
+ return jsx(Flex, {
83
+ direction: "row-reverse",
84
+ gap: "size-125",
85
+ children: visibleActions.map(function (action, index) {
86
+ return jsxs(View, {
87
+ children: [jsx(Link, {
88
+ onPress: function () {
89
+ var _onPress = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
90
+ return _regenerator().w(function (_context2) {
91
+ while (1) switch (_context2.n) {
92
+ case 0:
93
+ _context2.n = 1;
94
+ return onGridActionPress(action.key, item);
95
+ case 1:
96
+ return _context2.a(2);
97
+ }
98
+ }, _callee2);
99
+ }));
100
+ function onPress() {
101
+ return _onPress.apply(this, arguments);
102
+ }
103
+ return onPress;
104
+ }(),
105
+ children: action.text
106
+ }), index < visibleActions.length - 1 ? jsx(Divider, {
107
+ size: 'M',
108
+ orientation: "vertical"
109
+ }) : '']
110
+ }, action.key);
111
+ })
112
+ });
113
+ };
114
+
115
+ export { LinksRenderer as default };
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/components/DataTable/GridBuilder/LinksRenderer/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React from 'react';\nimport { View, Flex, Link, Divider } from '@adobe/react-spectrum';\nimport { GridActionProps, DataTableRow } from '../../types';\n\ninterface LinksRendererProps<T extends DataTableRow = DataTableRow> {\n item: T;\n gridActions: GridActionProps<T>[];\n onGridActionPress: (key: string, item: T) => Promise<void>;\n}\n\nconst LinksRenderer = <T extends DataTableRow = DataTableRow>({\n item,\n gridActions,\n onGridActionPress,\n}: LinksRendererProps<T>): JSX.Element => {\n const [visibleActions, setVisibleActions] = React.useState<GridActionProps<T>[]>([]);\n\n React.useEffect((): void => {\n const checkVisibility = async (): Promise<void> => {\n const visible = [];\n for (const action of gridActions) {\n if (action.isVisible) {\n try {\n const isVisible = await action.isVisible(item);\n if (isVisible) {\n visible.push(action);\n }\n } catch (error) {\n // If visibility check fails, skip this action but continue with others\n console.warn(`Visibility check failed for action ${action.key}:`, error);\n }\n } else {\n visible.push(action);\n }\n }\n setVisibleActions(visible);\n };\n checkVisibility();\n }, [gridActions, item]);\n\n return (\n <Flex direction=\"row-reverse\" gap=\"size-125\">\n {visibleActions.map((action, index) => (\n <View key={action.key}>\n <Link\n onPress={async (): Promise<void> => {\n await onGridActionPress(action.key, item);\n }}\n >\n {action.text}\n </Link>\n {index < visibleActions.length - 1 ? <Divider size={'M'} orientation=\"vertical\" /> : ''}\n </View>\n ))}\n </Flex>\n );\n};\n\nexport default LinksRenderer;\n"],"names":["LinksRenderer","_ref","item","gridActions","onGridActionPress","_React$useState","React","useState","_React$useState2","_slicedToArray","visibleActions","setVisibleActions","useEffect","checkVisibility","_ref2","_asyncToGenerator","_regenerator","m","_callee","visible","_iterator","_step","action","isVisible","_t","_t2","w","_context","p","n","_createForOfIteratorHelper","s","done","value","v","push","console","warn","concat","key","e","f","a","apply","arguments","_jsx","Flex","direction","gap","children","map","index","_jsxs","View","Link","onPress","_onPress","_callee2","_context2","text","length","Divider","size","orientation"],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { View, IllustratedMessage, Heading, Content, TableView, TableHeader, Column, TableBody, Row, Cell } from '@adobe/react-spectrum';
4
+ import { GridAction } from '../types.js';
5
+ import LinksRenderer from './LinksRenderer/index.js';
6
+ import ButtonsRenderer from './ButtonsRenderer/index.js';
7
+ import ActionMenuRenderer from './ActionMenuRenderer/index.js';
8
+
9
+ var GridBuilder = function GridBuilder(_ref) {
10
+ var _ref$columns = _ref.columns,
11
+ columns = _ref$columns === void 0 ? [] : _ref$columns,
12
+ _ref$data = _ref.data,
13
+ data = _ref$data === void 0 ? [] : _ref$data,
14
+ _ref$isMassActionsEna = _ref.isMassActionsEnabled,
15
+ isMassActionsEnabled = _ref$isMassActionsEna === void 0 ? false : _ref$isMassActionsEna,
16
+ _ref$gridAction = _ref.gridAction,
17
+ gridAction = _ref$gridAction === void 0 ? GridAction.ACTION_MENU : _ref$gridAction,
18
+ _ref$gridActions = _ref.gridActions,
19
+ gridActions = _ref$gridActions === void 0 ? [] : _ref$gridActions,
20
+ _ref$onGridActionPres = _ref.onGridActionPress,
21
+ onGridActionPress = _ref$onGridActionPres === void 0 ? /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
22
+ return _regenerator().w(function (_context) {
23
+ while (1) switch (_context.n) {
24
+ case 0:
25
+ return _context.a(2);
26
+ }
27
+ }, _callee);
28
+ })) : _ref$onGridActionPres,
29
+ _ref$onSelectionChang = _ref.onSelectionChange,
30
+ onSelectionChange = _ref$onSelectionChang === void 0 ? function () {} : _ref$onSelectionChang;
31
+ var selectionMode = isMassActionsEnabled ? 'multiple' : 'none';
32
+ // Handle empty columns gracefully
33
+ if (columns.length === 0) {
34
+ return jsx(View, {
35
+ width: '100%',
36
+ marginTop: 'size-200',
37
+ children: jsxs(IllustratedMessage, {
38
+ children: [jsx(Heading, {
39
+ children: "No columns configured"
40
+ }), jsx(Content, {
41
+ children: "Please configure columns to display data"
42
+ })]
43
+ })
44
+ });
45
+ }
46
+ return jsx(View, {
47
+ width: '100%',
48
+ marginTop: 'size-200',
49
+ children: jsxs(TableView, {
50
+ selectionMode: selectionMode,
51
+ onSelectionChange: onSelectionChange,
52
+ minHeight: 'size-6000',
53
+ renderEmptyState: function renderEmptyState() {
54
+ return jsxs(IllustratedMessage, {
55
+ children: [jsx(Heading, {
56
+ children: "No results"
57
+ }), jsx(Content, {
58
+ children: "No results found"
59
+ })]
60
+ });
61
+ },
62
+ children: [jsx(TableHeader, {
63
+ columns: columns,
64
+ children: function children(column) {
65
+ return jsx(Column, {
66
+ align: column.uid === 'actions' ? 'end' : 'start',
67
+ children: column.name
68
+ }, column.uid);
69
+ }
70
+ }), jsx(TableBody, {
71
+ items: data,
72
+ children: function children(item) {
73
+ return jsx(Row, {
74
+ children: function children(columnKey) {
75
+ return columnKey === 'actions' ? jsx(Cell, {
76
+ children: function () {
77
+ switch (gridAction) {
78
+ case GridAction.LINKS:
79
+ return jsx(LinksRenderer, {
80
+ item: item,
81
+ gridActions: gridActions,
82
+ onGridActionPress: onGridActionPress
83
+ });
84
+ case GridAction.BUTTONS:
85
+ return jsx(ButtonsRenderer, {
86
+ item: item,
87
+ gridActions: gridActions,
88
+ onGridActionPress: onGridActionPress
89
+ });
90
+ default:
91
+ return jsx(ActionMenuRenderer, {
92
+ item: item,
93
+ gridActions: gridActions,
94
+ onGridActionPress: onGridActionPress
95
+ });
96
+ }
97
+ }()
98
+ }) : jsx(Cell, {
99
+ children: item[columnKey]
100
+ });
101
+ }
102
+ });
103
+ }
104
+ })]
105
+ })
106
+ });
107
+ };
108
+
109
+ export { GridBuilder as default };
110
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/DataTable/GridBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\n// import React from 'react'\nimport {\n Cell,\n Column,\n Content,\n Heading,\n IllustratedMessage,\n Row,\n TableBody,\n TableHeader,\n TableView,\n View,\n} from '@adobe/react-spectrum';\n// import NotFound from '@spectrum-icons/illustrations/NotFound';\nimport { GridBuilderProps } from './types';\nimport { GridAction, DataTableRow } from '../types';\nimport LinksRenderer from './LinksRenderer';\nimport ButtonsRenderer from './ButtonsRenderer';\nimport ActionMenuRenderer from './ActionMenuRenderer';\n\nconst GridBuilder = <T extends DataTableRow = DataTableRow>({\n columns = [],\n data = [],\n isMassActionsEnabled = false,\n gridAction = GridAction.ACTION_MENU,\n gridActions = [],\n onGridActionPress = async (): Promise<void> => {},\n onSelectionChange = (): void => {},\n}: GridBuilderProps<T>): JSX.Element => {\n const selectionMode = isMassActionsEnabled ? 'multiple' : 'none';\n\n // Handle empty columns gracefully\n if (columns.length === 0) {\n return (\n <View width={'100%'} marginTop={'size-200'}>\n <IllustratedMessage>\n <Heading>No columns configured</Heading>\n <Content>Please configure columns to display data</Content>\n </IllustratedMessage>\n </View>\n );\n }\n\n return (\n <View width={'100%'} marginTop={'size-200'}>\n <TableView\n selectionMode={selectionMode}\n onSelectionChange={onSelectionChange}\n minHeight={'size-6000'}\n renderEmptyState={(): JSX.Element => {\n return (\n <IllustratedMessage>\n <Heading>No results</Heading>\n <Content>No results found</Content>\n </IllustratedMessage>\n );\n }}\n >\n <TableHeader columns={columns}>\n {(column): JSX.Element => (\n <Column key={column.uid} align={column.uid === 'actions' ? 'end' : 'start'}>\n {column.name}\n </Column>\n )}\n </TableHeader>\n <TableBody items={data}>\n {(item): JSX.Element => (\n <Row>\n {(columnKey): JSX.Element =>\n columnKey === 'actions' ? (\n <Cell>\n {((): JSX.Element => {\n switch (gridAction) {\n case GridAction.LINKS:\n return (\n <LinksRenderer\n item={item}\n gridActions={gridActions}\n onGridActionPress={onGridActionPress}\n />\n );\n case GridAction.BUTTONS:\n return (\n <ButtonsRenderer\n item={item}\n gridActions={gridActions}\n onGridActionPress={onGridActionPress}\n />\n );\n default:\n return (\n <ActionMenuRenderer\n item={item}\n gridActions={gridActions}\n onGridActionPress={onGridActionPress}\n />\n );\n }\n })()}\n </Cell>\n ) : (\n <Cell>{item[columnKey] as any}</Cell>\n )\n }\n </Row>\n )}\n </TableBody>\n </TableView>\n </View>\n );\n};\n\nexport default GridBuilder;\n"],"names":["GridBuilder","_ref","_ref$columns","columns","_ref$data","data","_ref$isMassActionsEna","isMassActionsEnabled","_ref$gridAction","gridAction","GridAction","ACTION_MENU","_ref$gridActions","gridActions","_ref$onGridActionPres","onGridActionPress","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_ref$onSelectionChang","onSelectionChange","selectionMode","length","_jsx","View","width","marginTop","children","_jsxs","IllustratedMessage","Heading","Content","TableView","minHeight","renderEmptyState","TableHeader","column","Column","align","uid","name","TableBody","items","item","Row","columnKey","Cell","LINKS","LinksRenderer","BUTTONS","ButtonsRenderer","ActionMenuRenderer"],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, toConsumableArray as _toConsumableArray, regenerator as _regenerator } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { useState, useRef, useCallback, useEffect } from 'react';
4
+ import { Flex, ProgressCircle, View } from '@adobe/react-spectrum';
5
+ import ActionsBuilder from './ActionsBuilder/index.js';
6
+ import GridBuilder from './GridBuilder/index.js';
7
+ import { GridAction } from './types.js';
8
+
9
+ var DataTable = function DataTable(_ref) {
10
+ var _ref$columns = _ref.columns,
11
+ columns = _ref$columns === void 0 ? [] : _ref$columns,
12
+ _ref$data = _ref.data,
13
+ data = _ref$data === void 0 ? [] : _ref$data,
14
+ _ref$buttons = _ref.buttons,
15
+ buttons = _ref$buttons === void 0 ? [] : _ref$buttons,
16
+ _ref$massActions = _ref.massActions,
17
+ massActions = _ref$massActions === void 0 ? [] : _ref$massActions,
18
+ _ref$onMassActionPres = _ref.onMassActionPress,
19
+ _onMassActionPress = _ref$onMassActionPres === void 0 ? function () {
20
+ return Promise.resolve();
21
+ } : _ref$onMassActionPres,
22
+ _ref$gridAction = _ref.gridAction,
23
+ gridAction = _ref$gridAction === void 0 ? GridAction.ACTION_MENU : _ref$gridAction,
24
+ _ref$gridActions = _ref.gridActions,
25
+ gridActions = _ref$gridActions === void 0 ? [] : _ref$gridActions,
26
+ _ref$onGridActionPres = _ref.onGridActionPress,
27
+ _onGridActionPress = _ref$onGridActionPres === void 0 ? function () {
28
+ return Promise.resolve();
29
+ } : _ref$onGridActionPres,
30
+ _ref$onGridLoad = _ref.onGridLoad,
31
+ onGridLoad = _ref$onGridLoad === void 0 ? function () {
32
+ return Promise.resolve();
33
+ } : _ref$onGridLoad,
34
+ _ref$isProcessing = _ref.isProcessing,
35
+ isProcessing = _ref$isProcessing === void 0 ? false : _ref$isProcessing;
36
+ var _useState = useState(true),
37
+ _useState2 = _slicedToArray(_useState, 2),
38
+ isLoading = _useState2[0],
39
+ setLoading = _useState2[1];
40
+ var _useState3 = useState([]),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ ids = _useState4[0],
43
+ setIds = _useState4[1];
44
+ // Stable reference to onGridLoad to prevent infinite loops
45
+ var onGridLoadRef = useRef(onGridLoad);
46
+ onGridLoadRef.current = onGridLoad;
47
+ // Stable callback that won't change on every render
48
+ var stableOnGridLoad = useCallback(function () {
49
+ return onGridLoadRef.current();
50
+ }, []);
51
+ // Initial load effect - runs once on mount
52
+ useEffect(function () {
53
+ _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
54
+ return _regenerator().w(function (_context) {
55
+ while (1) switch (_context.n) {
56
+ case 0:
57
+ _context.n = 1;
58
+ return stableOnGridLoad();
59
+ case 1:
60
+ setLoading(false);
61
+ case 2:
62
+ return _context.a(2);
63
+ }
64
+ }, _callee);
65
+ }))();
66
+ }, [stableOnGridLoad]);
67
+ return jsx(Flex, {
68
+ width: "100%",
69
+ alignItems: "center",
70
+ children: isLoading ? jsx(ProgressCircle, {
71
+ size: "L",
72
+ "aria-label": "Loading...",
73
+ isIndeterminate: true
74
+ }) : jsxs(View, {
75
+ width: "100%",
76
+ children: [jsx(View, {
77
+ gridArea: "header",
78
+ children: jsxs(Flex, {
79
+ direction: "row",
80
+ width: "100%",
81
+ children: [jsx(ActionsBuilder, {
82
+ buttons: buttons,
83
+ massActions: massActions,
84
+ isMassActionDisabled: ids.length === 0 || isProcessing,
85
+ onMassActionPress: function () {
86
+ var _onMassActionPress2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(key) {
87
+ return _regenerator().w(function (_context2) {
88
+ while (1) switch (_context2.n) {
89
+ case 0:
90
+ _context2.n = 1;
91
+ return _onMassActionPress(key, ids);
92
+ case 1:
93
+ setIds([]);
94
+ case 2:
95
+ return _context2.a(2);
96
+ }
97
+ }, _callee2);
98
+ }));
99
+ function onMassActionPress(_x) {
100
+ return _onMassActionPress2.apply(this, arguments);
101
+ }
102
+ return onMassActionPress;
103
+ }()
104
+ }), isProcessing && jsx(ProgressCircle, {
105
+ size: "M",
106
+ "aria-label": "Syncing..",
107
+ isIndeterminate: true,
108
+ marginEnd: "size-100"
109
+ })]
110
+ })
111
+ }), jsx(View, {
112
+ gridArea: "content",
113
+ children: jsx(GridBuilder, {
114
+ columns: columns,
115
+ data: data,
116
+ isMassActionsEnabled: massActions.length > 0,
117
+ gridAction: gridAction,
118
+ gridActions: gridActions,
119
+ onGridActionPress: function () {
120
+ var _onGridActionPress2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(key, item) {
121
+ return _regenerator().w(function (_context3) {
122
+ while (1) switch (_context3.n) {
123
+ case 0:
124
+ _context3.n = 1;
125
+ return _onGridActionPress(key, item);
126
+ case 1:
127
+ return _context3.a(2);
128
+ }
129
+ }, _callee3);
130
+ }));
131
+ function onGridActionPress(_x2, _x3) {
132
+ return _onGridActionPress2.apply(this, arguments);
133
+ }
134
+ return onGridActionPress;
135
+ }(),
136
+ onSelectionChange: function onSelectionChange(keys) {
137
+ var selectedIds = [];
138
+ if (typeof keys === 'string' && keys === 'all') {
139
+ data.forEach(function (item) {
140
+ selectedIds.push(item.id);
141
+ });
142
+ } else {
143
+ selectedIds.push.apply(selectedIds, _toConsumableArray(keys));
144
+ }
145
+ setIds(selectedIds);
146
+ }
147
+ })
148
+ })]
149
+ })
150
+ });
151
+ };
152
+
153
+ export { DataTable as default };
154
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/DataTable/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { Flex, View, ProgressCircle } from '@adobe/react-spectrum';\nimport ActionsBuilder from './ActionsBuilder';\nimport GridBuilder from './GridBuilder';\nimport { DataTableProps, GridAction, DataTableRow } from './types';\nimport { Selection } from '@react-types/shared';\n\nconst DataTable = <T extends DataTableRow = DataTableRow>({\n columns = [],\n data = [],\n buttons = [],\n massActions = [],\n onMassActionPress = (): Promise<void> => Promise.resolve(),\n gridAction = GridAction.ACTION_MENU,\n gridActions = [],\n onGridActionPress = (): Promise<void> => Promise.resolve(),\n onGridLoad = (): Promise<void> => Promise.resolve(),\n isProcessing = false,\n}: DataTableProps<T>): JSX.Element => {\n const [isLoading, setLoading] = useState(true);\n const [ids, setIds] = useState<(number | string)[]>([]);\n\n // Stable reference to onGridLoad to prevent infinite loops\n const onGridLoadRef = useRef(onGridLoad);\n onGridLoadRef.current = onGridLoad;\n\n // Stable callback that won't change on every render\n const stableOnGridLoad = useCallback(() => {\n return onGridLoadRef.current();\n }, []);\n\n // Initial load effect - runs once on mount\n useEffect((): void => {\n (async (): Promise<void> => {\n await stableOnGridLoad();\n setLoading(false);\n })();\n }, [stableOnGridLoad]);\n\n return (\n <Flex width=\"100%\" alignItems=\"center\">\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <View width=\"100%\">\n <View gridArea=\"header\">\n <Flex direction=\"row\" width=\"100%\">\n <ActionsBuilder\n buttons={buttons}\n massActions={massActions}\n isMassActionDisabled={ids.length === 0 || isProcessing}\n onMassActionPress={async (key: string) => {\n await onMassActionPress(key, ids);\n setIds([]);\n }}\n />\n {isProcessing && (\n <ProgressCircle\n size=\"M\"\n aria-label=\"Syncing..\"\n isIndeterminate\n marginEnd=\"size-100\"\n />\n )}\n </Flex>\n </View>\n <View gridArea=\"content\">\n <GridBuilder<T>\n columns={columns}\n data={data}\n isMassActionsEnabled={massActions.length > 0}\n gridAction={gridAction}\n gridActions={gridActions}\n onGridActionPress={async (key: string, item: T) => {\n await onGridActionPress(key, item);\n }}\n onSelectionChange={(keys: Selection) => {\n const selectedIds: (string | number)[] = [];\n if (typeof keys === 'string' && keys === 'all') {\n data.forEach(item => {\n selectedIds.push(item.id);\n });\n } else {\n selectedIds.push(...keys);\n }\n setIds(selectedIds);\n }}\n />\n </View>\n </View>\n )}\n </Flex>\n );\n};\n\nexport default DataTable;\n"],"names":["DataTable","_ref","_ref$columns","columns","_ref$data","data","_ref$buttons","buttons","_ref$massActions","massActions","_ref$onMassActionPres","onMassActionPress","Promise","resolve","_ref$gridAction","gridAction","GridAction","ACTION_MENU","_ref$gridActions","gridActions","_ref$onGridActionPres","onGridActionPress","_ref$onGridLoad","onGridLoad","_ref$isProcessing","isProcessing","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","_useState3","_useState4","ids","setIds","onGridLoadRef","useRef","current","stableOnGridLoad","useCallback","useEffect","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_jsx","Flex","width","alignItems","ProgressCircle","size","isIndeterminate","_jsxs","View","gridArea","children","direction","ActionsBuilder","isMassActionDisabled","length","_onMassActionPress2","_callee2","key","_context2","_x","apply","arguments","marginEnd","GridBuilder","isMassActionsEnabled","_onGridActionPress2","_callee3","item","_context3","_x2","_x3","onSelectionChange","keys","selectedIds","forEach","push","id","_toConsumableArray"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * <license header>
3
+ */
4
+ var GridAction;
5
+ (function (GridAction) {
6
+ GridAction["ACTION_MENU"] = "action-menu";
7
+ GridAction["BUTTONS"] = "buttons";
8
+ GridAction["LINKS"] = "links";
9
+ })(GridAction || (GridAction = {}));
10
+
11
+ export { GridAction };
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../../src/components/DataTable/types.ts"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { ReactElement } from 'react';\n\nexport interface DataTableColumn {\n uid: string;\n name: string;\n sortable?: boolean;\n width?: string | number;\n}\n\nexport interface DataTableRow {\n id: string | number;\n [key: string]: any;\n}\n\nexport interface DataTableProps<T extends DataTableRow = DataTableRow> {\n columns?: DataTableColumn[];\n data?: T[];\n buttons?: ReactElement[];\n massActions?: MassActionProps[];\n onMassActionPress?: (key: string, selections: (string | number)[]) => Promise<void>;\n gridAction?: GridAction;\n gridActions?: GridActionProps<T>[];\n onGridActionPress?: (key: string, item: T) => Promise<void>;\n onGridLoad?: () => Promise<void>;\n isProcessing?: boolean;\n}\n\nexport interface MassActionProps {\n key: string;\n text: string;\n}\n\nexport interface GridActionProps<T extends DataTableRow = DataTableRow> {\n key: string;\n text: string;\n isVisible?: (item: T) => Promise<boolean>;\n}\n\nexport enum GridAction {\n ACTION_MENU = 'action-menu',\n BUTTONS = 'buttons',\n LINKS = 'links',\n}\n"],"names":["GridAction"],"mappings":"AAAA;;AAEG;IAwCSA;AAAZ,CAAA,UAAYA,UAAU,EAAA;AACpBA,EAAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3BA,EAAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnBA,EAAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAJWA,UAAU,KAAVA,UAAU,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -0,0 +1,28 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Content } from '@adobe/react-spectrum';
3
+ import { Routes, Route } from 'react-router-dom';
4
+
5
+ var ContentBuilder = function ContentBuilder(_ref) {
6
+ var routes = _ref.routes;
7
+ return jsx(Content, {
8
+ children: jsx(Routes, {
9
+ children: routes.reduce(function (acc, route, routeIndex) {
10
+ var routeElements = route.paths.map(function (routePath, pathIndex) {
11
+ // Create a unique key that includes route index, path index, and path hash
12
+ var pathHash = routePath.split('').reduce(function (a, b) {
13
+ a = (a << 5) - a + b.charCodeAt(0);
14
+ return a & a;
15
+ }, 0);
16
+ return jsx(Route, {
17
+ path: routePath,
18
+ element: route.component
19
+ }, "route-".concat(routeIndex, "-path-").concat(pathIndex, "-").concat(pathHash));
20
+ });
21
+ return acc.concat(routeElements);
22
+ }, [])
23
+ })
24
+ });
25
+ };
26
+
27
+ export { ContentBuilder as default };
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/MainContainer/ContentBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React from 'react';\nimport { Content } from '@adobe/react-spectrum';\nimport { Route, Routes } from 'react-router-dom';\nimport { type ContentBuilderProps } from './types';\n\nconst ContentBuilder: React.FC<ContentBuilderProps> = ({ routes }) => {\n return (\n <Content>\n <Routes>\n {routes.reduce((acc: React.ReactElement[], route, routeIndex: number) => {\n const routeElements = route.paths.map((routePath: string, pathIndex: number) => {\n // Create a unique key that includes route index, path index, and path hash\n const pathHash = routePath.split('').reduce((a: number, b: string) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n return (\n <Route\n key={`route-${routeIndex}-path-${pathIndex}-${pathHash}`}\n path={routePath}\n element={route.component}\n />\n );\n });\n return acc.concat(routeElements);\n }, [])}\n </Routes>\n </Content>\n );\n};\n\nexport default ContentBuilder;\n"],"names":["ContentBuilder","_ref","routes","_jsx","Content","Routes","reduce","acc","route","routeIndex","routeElements","paths","map","routePath","pathIndex","pathHash","split","a","b","charCodeAt","Route","path","element","component","concat"],"mappings":";;;;AASA,IAAMA,cAAc,GAAkC,SAAhDA,cAAcA,CAAAC,IAAA,EAAiD;AAAA,EAAA,IAAZC,MAAM,GAAAD,IAAA,CAANC,MAAM;EAC7D,OACEC,GAAA,CAACC,OAAO;cACND,GAAA,CAACE,MAAM;gBACJH,MAAM,CAACI,MAAM,CAAC,UAACC,GAAyB,EAAEC,KAAK,EAAEC,UAAkB,EAAI;AACtE,QAAA,IAAMC,aAAa,GAAGF,KAAK,CAACG,KAAK,CAACC,GAAG,CAAC,UAACC,SAAiB,EAAEC,SAAiB,EAAI;AAC7E;AACA,UAAA,IAAMC,QAAQ,GAAGF,SAAS,CAACG,KAAK,CAAC,EAAE,CAAC,CAACV,MAAM,CAAC,UAACW,CAAS,EAAEC,CAAS,EAAI;AACnED,YAAAA,CAAC,GAAG,CAACA,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAGC,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC;YAClC,OAAOF,CAAC,GAAGA,CAAC;UACd,CAAC,EAAE,CAAC,CAAC;UACL,OACEd,IAACiB,KAAK,EAAA;AAEJC,YAAAA,IAAI,EAAER,SAAS;YACfS,OAAO,EAAEd,KAAK,CAACe;AAAS,WAAA,EAAA,QAAA,CAAAC,MAAA,CAFVf,UAAU,EAAA,QAAA,CAAA,CAAAe,MAAA,CAASV,SAAS,EAAA,GAAA,CAAA,CAAAU,MAAA,CAAIT,QAAQ,CAAE,CAGxD;AAEN,QAAA,CAAC,CAAC;AACF,QAAA,OAAOR,GAAG,CAACiB,MAAM,CAACd,aAAa,CAAC;AAClC,MAAA,CAAC,EAAE,EAAE;KAAC;AACC,GAAA,CACD;AAEd;;;;"}
@@ -0,0 +1,36 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { View, ActionButton, Text } from '@adobe/react-spectrum';
3
+ import { useRouteParams } from '../../../../utils/RouteParams/index.js';
4
+
5
+ var Buttons = function Buttons(_ref) {
6
+ var buttons = _ref.buttons,
7
+ _ref$navigationMargin = _ref.navigationMarginTop,
8
+ navigationMarginTop = _ref$navigationMargin === void 0 ? 'size-0' : _ref$navigationMargin,
9
+ _ref$navigationMargin2 = _ref.navigationMarginBottom,
10
+ navigationMarginBottom = _ref$navigationMargin2 === void 0 ? 'size-0' : _ref$navigationMargin2;
11
+ var _useRouteParams = useRouteParams(),
12
+ getNavigate = _useRouteParams.getNavigate;
13
+ var navigate = getNavigate();
14
+ return jsx(View, {
15
+ children: buttons.length !== 0 ? jsx(View, {
16
+ marginTop: navigationMarginTop,
17
+ marginBottom: navigationMarginBottom,
18
+ children: buttons.map(function (button, index) {
19
+ var _button$icon;
20
+ return jsxs(ActionButton, {
21
+ type: "button",
22
+ marginEnd: 'size-150',
23
+ onPress: function onPress() {
24
+ navigate(button.path);
25
+ },
26
+ children: [(_button$icon = button.icon) !== null && _button$icon !== void 0 ? _button$icon : null, jsx(Text, {
27
+ children: button.label
28
+ })]
29
+ }, "".concat(button.path, "-").concat(index));
30
+ })
31
+ }) : null
32
+ });
33
+ };
34
+
35
+ export { Buttons as default };
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/components/MainContainer/NavigationBuilder/Buttons/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { View, ActionButton, Text } from '@adobe/react-spectrum';\nimport { type ButtonsProps } from './types';\nimport { useRouteParams } from '../../../../utils/RouteParams';\n\nconst Buttons: React.FC<ButtonsProps> = ({\n buttons,\n navigationMarginTop = 'size-0',\n navigationMarginBottom = 'size-0',\n}) => {\n const { getNavigate } = useRouteParams();\n const navigate = getNavigate();\n return (\n <View>\n {buttons.length !== 0 ? (\n <View marginTop={navigationMarginTop} marginBottom={navigationMarginBottom}>\n {buttons.map((button, index) => (\n <ActionButton\n key={`${button.path}-${index}`}\n type=\"button\"\n marginEnd={'size-150'}\n onPress={() => {\n navigate(button.path);\n }}\n >\n {button.icon ?? null}\n <Text>{button.label}</Text>\n </ActionButton>\n ))}\n </View>\n ) : null}\n </View>\n );\n};\n\nexport default Buttons;\n"],"names":["Buttons","_ref","buttons","_ref$navigationMargin","navigationMarginTop","_ref$navigationMargin2","navigationMarginBottom","_useRouteParams","useRouteParams","getNavigate","navigate","_jsx","View","children","length","marginTop","marginBottom","map","button","index","_button$icon","_jsxs","ActionButton","type","marginEnd","onPress","path","icon","Text","label","concat"],"mappings":";;;;AAQA,IAAMA,OAAO,GAA2B,SAAlCA,OAAOA,CAAAC,IAAA,EAIR;AAAA,EAAA,IAHHC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,qBAAA,GAAAF,IAAA,CACPG,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,qBAAA;IAAAE,sBAAA,GAAAJ,IAAA,CAC9BK,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,sBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,sBAAA;AAEjC,EAAA,IAAAE,eAAA,GAAwBC,cAAc,EAAE;IAAhCC,WAAW,GAAAF,eAAA,CAAXE,WAAW;AACnB,EAAA,IAAMC,QAAQ,GAAGD,WAAW,EAAE;EAC9B,OACEE,IAACC,IAAI,EAAA;IAAAC,QAAA,EACFX,OAAO,CAACY,MAAM,KAAK,CAAC,GACnBH,GAAA,CAACC,IAAI,EAAA;AAACG,MAAAA,SAAS,EAAEX,mBAAmB;AAAEY,MAAAA,YAAY,EAAEV,sBAAsB;MAAAO,QAAA,EACvEX,OAAO,CAACe,GAAG,CAAC,UAACC,MAAM,EAAEC,KAAK,EAAA;AAAA,QAAA,IAAAC,YAAA;QAAA,OACzBC,IAAA,CAACC,YAAY;AAEXC,UAAAA,IAAI,EAAC,QAAQ;AACbC,UAAAA,SAAS,EAAE,UAAU;AACrBC,UAAAA,OAAO,EAAE,SAATA,OAAOA,GAAO;AACZf,YAAAA,QAAQ,CAACQ,MAAM,CAACQ,IAAI,CAAC;UACvB,CAAC;AAAAb,UAAAA,QAAA,EAAA,CAAA,CAAAO,YAAA,GAEAF,MAAM,CAACS,IAAI,MAAA,IAAA,IAAAP,YAAA,KAAA,MAAA,GAAAA,YAAA,GAAI,IAAI,EACpBT,GAAA,CAACiB,IAAI,EAAA;YAAAf,QAAA,EAAEK,MAAM,CAACW;YAAa;SAAA,EAAA,EAAA,CAAAC,MAAA,CARnBZ,MAAM,CAACQ,IAAI,EAAA,GAAA,CAAA,CAAAI,MAAA,CAAIX,KAAK,CAAE,CASjB;MAAA,CAChB;AAAC,KAAA,CACG,GACL;AAAI,GAAA,CACH;AAEX;;;;"}
@@ -0,0 +1,37 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { View, Text } from '@adobe/react-spectrum';
3
+ import { NavLink } from 'react-router-dom';
4
+
5
+ var Links = function Links(_ref) {
6
+ var buttons = _ref.buttons,
7
+ _ref$navigationMargin = _ref.navigationMarginTop,
8
+ navigationMarginTop = _ref$navigationMargin === void 0 ? 'size-0' : _ref$navigationMargin,
9
+ _ref$navigationMargin2 = _ref.navigationMarginBottom,
10
+ navigationMarginBottom = _ref$navigationMargin2 === void 0 ? 'size-0' : _ref$navigationMargin2;
11
+ return jsx(View, {
12
+ children: buttons.length !== 0 ? jsx(View, {
13
+ marginTop: navigationMarginTop,
14
+ marginBottom: navigationMarginBottom,
15
+ children: jsx("ul", {
16
+ className: "SideNav",
17
+ children: buttons.map(function (button, index) {
18
+ var _button$icon;
19
+ return jsx("li", {
20
+ className: "SideNav-item",
21
+ children: jsxs(NavLink, {
22
+ className: "SideNav-itemLink",
23
+ "aria-current": "page",
24
+ to: button.path,
25
+ children: [(_button$icon = button.icon) !== null && _button$icon !== void 0 ? _button$icon : null, jsx(Text, {
26
+ children: button.label
27
+ })]
28
+ })
29
+ }, "".concat(button.path, "-").concat(index));
30
+ })
31
+ })
32
+ }) : null
33
+ });
34
+ };
35
+
36
+ export { Links as default };
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/components/MainContainer/NavigationBuilder/Links/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { View, Text } from '@adobe/react-spectrum';\nimport { NavLink } from 'react-router-dom';\nimport { type LinksProps } from './types';\n\nconst Links: React.FC<LinksProps> = ({\n buttons,\n navigationMarginTop = 'size-0',\n navigationMarginBottom = 'size-0',\n}) => {\n return (\n <View>\n {buttons.length !== 0 ? (\n <View marginTop={navigationMarginTop} marginBottom={navigationMarginBottom}>\n <ul className=\"SideNav\">\n {buttons.map((button, index) => (\n <li key={`${button.path}-${index}`} className=\"SideNav-item\">\n <NavLink className=\"SideNav-itemLink\" aria-current=\"page\" to={button.path}>\n {button.icon ?? null}\n <Text>{button.label}</Text>\n </NavLink>\n </li>\n ))}\n </ul>\n </View>\n ) : null}\n </View>\n );\n};\n\nexport default Links;\n"],"names":["Links","_ref","buttons","_ref$navigationMargin","navigationMarginTop","_ref$navigationMargin2","navigationMarginBottom","_jsx","View","children","length","marginTop","marginBottom","className","map","button","index","_button$icon","_jsxs","NavLink","to","path","icon","Text","label","concat"],"mappings":";;;;AAQA,IAAMA,KAAK,GAAyB,SAA9BA,KAAKA,CAAAC,IAAA,EAIN;AAAA,EAAA,IAHHC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,qBAAA,GAAAF,IAAA,CACPG,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,qBAAA;IAAAE,sBAAA,GAAAJ,IAAA,CAC9BK,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,sBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,sBAAA;EAEjC,OACEE,IAACC,IAAI,EAAA;IAAAC,QAAA,EACFP,OAAO,CAACQ,MAAM,KAAK,CAAC,GACnBH,IAACC,IAAI,EAAA;AAACG,MAAAA,SAAS,EAAEP,mBAAmB;AAAEQ,MAAAA,YAAY,EAAEN,sBAAsB;AAAAG,MAAAA,QAAA,EACxEF,GAAA,CAAA,IAAA,EAAA;AAAIM,QAAAA,SAAS,EAAC,SAAS;kBACpBX,OAAO,CAACY,GAAG,CAAC,UAACC,MAAM,EAAEC,KAAK,EAAA;AAAA,UAAA,IAAAC,YAAA;UAAA,OACzBV,GAAA,CAAA,IAAA,EAAA;AAAoCM,YAAAA,SAAS,EAAC,cAAc;AAAAJ,YAAAA,QAAA,EAC1DS,IAAA,CAACC,OAAO,EAAA;AAACN,cAAAA,SAAS,EAAC,kBAAkB;AAAA,cAAA,cAAA,EAAc,MAAM;cAACO,EAAE,EAAEL,MAAM,CAACM,IAAI;AAAAZ,cAAAA,QAAA,EAAA,CAAA,CAAAQ,YAAA,GACtEF,MAAM,CAACO,IAAI,MAAA,IAAA,IAAAL,YAAA,KAAA,MAAA,GAAAA,YAAA,GAAI,IAAI,EACpBV,GAAA,CAACgB,IAAI,EAAA;gBAAAd,QAAA,EAAEM,MAAM,CAACS;AAAK,eAAA,CAAQ;aAAA;uBAHnBT,MAAM,CAACM,IAAI,EAAA,GAAA,CAAA,CAAAI,MAAA,CAAIT,KAAK,CAAE,CAK7B;QAAA,CACN;OAAC;MAEC,GACL;AAAI,GAAA,CACH;AAEX;;;;"}
@@ -0,0 +1,33 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { View } from '@adobe/react-spectrum';
3
+ import { NavigationOptions } from './types.js';
4
+ import Links from './Links/index.js';
5
+ import Buttons from './Buttons/index.js';
6
+
7
+ var NavigationBuilder = function NavigationBuilder(_ref) {
8
+ var _ref$type = _ref.type,
9
+ type = _ref$type === void 0 ? NavigationOptions.NavigationLinks : _ref$type,
10
+ buttons = _ref.buttons,
11
+ _ref$navigationMargin = _ref.navigationMarginTop,
12
+ navigationMarginTop = _ref$navigationMargin === void 0 ? 'size-0' : _ref$navigationMargin,
13
+ _ref$navigationMargin2 = _ref.navigationMarginBottom,
14
+ navigationMarginBottom = _ref$navigationMargin2 === void 0 ? 'size-0' : _ref$navigationMargin2;
15
+ var component = jsx(Links, {
16
+ buttons: buttons,
17
+ navigationMarginTop: navigationMarginTop,
18
+ navigationMarginBottom: navigationMarginBottom
19
+ });
20
+ if (type === NavigationOptions.NavigationButtons) {
21
+ component = jsx(Buttons, {
22
+ buttons: buttons,
23
+ navigationMarginTop: navigationMarginTop,
24
+ navigationMarginBottom: navigationMarginBottom
25
+ });
26
+ }
27
+ return jsx(View, {
28
+ children: component
29
+ });
30
+ };
31
+
32
+ export { NavigationBuilder as default };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/MainContainer/NavigationBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { View } from '@adobe/react-spectrum';\nimport { type NavigationBuilderProps, NavigationOptions } from './types';\nimport Links from './Links';\nimport Buttons from './Buttons';\n\nconst NavigationBuilder: React.FC<NavigationBuilderProps> = ({\n type = NavigationOptions.NavigationLinks,\n buttons,\n navigationMarginTop = 'size-0',\n navigationMarginBottom = 'size-0',\n}) => {\n let component = (\n <Links\n buttons={buttons}\n navigationMarginTop={navigationMarginTop}\n navigationMarginBottom={navigationMarginBottom}\n />\n );\n if (type === NavigationOptions.NavigationButtons) {\n component = (\n <Buttons\n buttons={buttons}\n navigationMarginTop={navigationMarginTop}\n navigationMarginBottom={navigationMarginBottom}\n />\n );\n }\n return <View>{component}</View>;\n};\n\nexport default NavigationBuilder;\n"],"names":["NavigationBuilder","_ref","_ref$type","type","NavigationOptions","NavigationLinks","buttons","_ref$navigationMargin","navigationMarginTop","_ref$navigationMargin2","navigationMarginBottom","component","_jsx","Links","NavigationButtons","Buttons","View","children"],"mappings":";;;;;;AASA,IAAMA,iBAAiB,GAAqC,SAAtDA,iBAAiBA,CAAAC,IAAA,EAKlB;AAAA,EAAA,IAAAC,SAAA,GAAAD,IAAA,CAJHE,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAGE,iBAAiB,CAACC,eAAe,GAAAH,SAAA;IACxCI,OAAO,GAAAL,IAAA,CAAPK,OAAO;IAAAC,qBAAA,GAAAN,IAAA,CACPO,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,qBAAA;IAAAE,sBAAA,GAAAR,IAAA,CAC9BS,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,sBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,sBAAA;AAEjC,EAAA,IAAIE,SAAS,GACXC,IAACC,KAAK,EAAA;AACJP,IAAAA,OAAO,EAAEA,OAAO;AAChBE,IAAAA,mBAAmB,EAAEA,mBAAmB;AACxCE,IAAAA,sBAAsB,EAAEA;AAAsB,GAAA,CAEjD;AACD,EAAA,IAAIP,IAAI,KAAKC,iBAAiB,CAACU,iBAAiB,EAAE;AAChDH,IAAAA,SAAS,GACPC,GAAA,CAACG,OAAO,EAAA;AACNT,MAAAA,OAAO,EAAEA,OAAO;AAChBE,MAAAA,mBAAmB,EAAEA,mBAAmB;AACxCE,MAAAA,sBAAsB,EAAEA;AAAsB,KAAA,CAEjD;AACH,EAAA;EACA,OAAOE,GAAA,CAACI,IAAI,EAAA;AAAAC,IAAAA,QAAA,EAAEN;IAAiB;AACjC;;;;"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * <license header>
3
+ */
4
+ var NavigationOptions;
5
+ (function (NavigationOptions) {
6
+ NavigationOptions["NavigationButtons"] = "Buttons";
7
+ NavigationOptions["NavigationLinks"] = "Links";
8
+ })(NavigationOptions || (NavigationOptions = {}));
9
+
10
+ export { NavigationOptions };
11
+ //# sourceMappingURL=types.js.map