@dxc-technology/halstack-react 0.0.0-eca8a89 → 0.0.0-ecc45e2

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 (266) hide show
  1. package/BackgroundColorContext.js +0 -1
  2. package/HalstackContext.d.ts +12 -0
  3. package/HalstackContext.js +295 -0
  4. package/accordion/Accordion.d.ts +1 -1
  5. package/accordion/Accordion.js +13 -45
  6. package/accordion/Accordion.stories.tsx +20 -13
  7. package/accordion/Accordion.test.js +72 -0
  8. package/accordion/types.d.ts +7 -7
  9. package/accordion-group/AccordionGroup.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +14 -15
  11. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  12. package/accordion-group/AccordionGroup.test.js +151 -0
  13. package/accordion-group/types.d.ts +7 -7
  14. package/alert/Alert.js +4 -1
  15. package/alert/Alert.test.js +92 -0
  16. package/badge/Badge.d.ts +4 -0
  17. package/badge/Badge.js +5 -3
  18. package/badge/types.d.ts +5 -0
  19. package/{radio → badge}/types.js +0 -0
  20. package/bleed/Bleed.d.ts +3 -0
  21. package/bleed/Bleed.js +51 -0
  22. package/bleed/Bleed.stories.tsx +341 -0
  23. package/bleed/types.d.ts +37 -0
  24. package/bleed/types.js +5 -0
  25. package/box/Box.js +22 -32
  26. package/box/Box.test.js +18 -0
  27. package/bulleted-list/BulletedList.d.ts +7 -0
  28. package/bulleted-list/BulletedList.js +123 -0
  29. package/bulleted-list/BulletedList.stories.tsx +200 -0
  30. package/bulleted-list/types.d.ts +11 -0
  31. package/bulleted-list/types.js +5 -0
  32. package/button/Button.d.ts +1 -1
  33. package/button/Button.js +57 -80
  34. package/button/Button.stories.tsx +15 -8
  35. package/button/Button.test.js +35 -0
  36. package/button/types.d.ts +8 -12
  37. package/card/Card.js +24 -27
  38. package/card/Card.stories.tsx +1 -1
  39. package/card/Card.test.js +50 -0
  40. package/checkbox/Checkbox.d.ts +1 -1
  41. package/checkbox/Checkbox.js +43 -39
  42. package/checkbox/Checkbox.stories.tsx +124 -128
  43. package/checkbox/Checkbox.test.js +78 -0
  44. package/checkbox/types.d.ts +8 -4
  45. package/chip/Chip.d.ts +1 -1
  46. package/chip/Chip.js +16 -54
  47. package/chip/Chip.stories.tsx +6 -8
  48. package/chip/Chip.test.js +56 -0
  49. package/chip/types.d.ts +7 -15
  50. package/common/variables.js +267 -337
  51. package/date-input/DateInput.js +62 -48
  52. package/date-input/DateInput.stories.tsx +7 -7
  53. package/date-input/DateInput.test.js +479 -0
  54. package/date-input/types.d.ts +16 -9
  55. package/dialog/Dialog.js +48 -51
  56. package/dialog/Dialog.stories.tsx +1 -2
  57. package/dialog/Dialog.test.js +70 -0
  58. package/dialog/types.d.ts +2 -2
  59. package/dropdown/Dropdown.d.ts +1 -1
  60. package/dropdown/Dropdown.js +242 -272
  61. package/dropdown/Dropdown.stories.tsx +312 -0
  62. package/dropdown/Dropdown.test.js +591 -0
  63. package/dropdown/DropdownMenu.d.ts +4 -0
  64. package/dropdown/DropdownMenu.js +80 -0
  65. package/dropdown/DropdownMenuItem.d.ts +4 -0
  66. package/dropdown/DropdownMenuItem.js +92 -0
  67. package/dropdown/types.d.ts +29 -18
  68. package/file-input/FileInput.js +111 -39
  69. package/file-input/FileInput.stories.tsx +507 -0
  70. package/file-input/FileInput.test.js +457 -0
  71. package/file-input/FileItem.js +7 -5
  72. package/flex/Flex.d.ts +4 -0
  73. package/flex/Flex.js +57 -0
  74. package/flex/Flex.stories.tsx +103 -0
  75. package/flex/types.d.ts +21 -0
  76. package/flex/types.js +5 -0
  77. package/footer/Footer.js +24 -99
  78. package/footer/Footer.test.js +109 -0
  79. package/footer/Icons.js +1 -1
  80. package/footer/types.d.ts +1 -1
  81. package/header/Header.js +95 -114
  82. package/header/Header.stories.tsx +46 -36
  83. package/header/Header.test.js +79 -0
  84. package/header/Icons.js +2 -2
  85. package/header/types.d.ts +2 -2
  86. package/heading/Heading.stories.tsx +3 -2
  87. package/heading/Heading.test.js +186 -0
  88. package/inset/Inset.d.ts +3 -0
  89. package/inset/Inset.js +51 -0
  90. package/inset/Inset.stories.tsx +229 -0
  91. package/inset/types.d.ts +37 -0
  92. package/inset/types.js +5 -0
  93. package/layout/ApplicationLayout.d.ts +16 -6
  94. package/layout/ApplicationLayout.js +71 -125
  95. package/layout/ApplicationLayout.stories.tsx +83 -93
  96. package/layout/Icons.d.ts +5 -0
  97. package/layout/Icons.js +13 -2
  98. package/layout/SidenavContext.d.ts +5 -0
  99. package/layout/SidenavContext.js +19 -0
  100. package/layout/types.d.ts +18 -33
  101. package/link/Link.d.ts +3 -2
  102. package/link/Link.js +60 -85
  103. package/link/Link.stories.tsx +99 -52
  104. package/link/Link.test.js +83 -0
  105. package/link/types.d.ts +9 -29
  106. package/main.d.ts +11 -15
  107. package/main.js +53 -79
  108. package/number-input/NumberInput.js +11 -18
  109. package/number-input/NumberInput.stories.tsx +5 -5
  110. package/number-input/NumberInput.test.js +506 -0
  111. package/number-input/types.d.ts +17 -10
  112. package/package.json +14 -10
  113. package/paginator/Paginator.js +17 -38
  114. package/paginator/Paginator.test.js +308 -0
  115. package/paragraph/Paragraph.d.ts +6 -0
  116. package/paragraph/Paragraph.js +38 -0
  117. package/paragraph/Paragraph.stories.tsx +44 -0
  118. package/password-input/PasswordInput.js +7 -4
  119. package/password-input/PasswordInput.stories.tsx +3 -3
  120. package/password-input/PasswordInput.test.js +180 -0
  121. package/password-input/types.d.ts +14 -11
  122. package/progress-bar/ProgressBar.d.ts +2 -2
  123. package/progress-bar/ProgressBar.js +57 -51
  124. package/progress-bar/ProgressBar.stories.jsx +13 -11
  125. package/progress-bar/ProgressBar.test.js +110 -0
  126. package/progress-bar/types.d.ts +3 -4
  127. package/quick-nav/QuickNav.d.ts +4 -0
  128. package/quick-nav/QuickNav.js +118 -0
  129. package/quick-nav/QuickNav.stories.tsx +264 -0
  130. package/quick-nav/types.d.ts +21 -0
  131. package/quick-nav/types.js +5 -0
  132. package/radio-group/Radio.d.ts +4 -0
  133. package/radio-group/Radio.js +141 -0
  134. package/radio-group/RadioGroup.d.ts +4 -0
  135. package/radio-group/RadioGroup.js +281 -0
  136. package/radio-group/RadioGroup.stories.tsx +100 -0
  137. package/radio-group/RadioGroup.test.js +695 -0
  138. package/radio-group/types.d.ts +114 -0
  139. package/radio-group/types.js +5 -0
  140. package/resultsetTable/ResultsetTable.js +5 -2
  141. package/resultsetTable/ResultsetTable.stories.tsx +7 -8
  142. package/resultsetTable/ResultsetTable.test.js +348 -0
  143. package/select/Icons.d.ts +10 -0
  144. package/select/Icons.js +93 -0
  145. package/select/Listbox.d.ts +4 -0
  146. package/select/Listbox.js +199 -0
  147. package/select/Option.d.ts +4 -0
  148. package/select/Option.js +110 -0
  149. package/select/Select.d.ts +4 -0
  150. package/select/Select.js +146 -366
  151. package/select/Select.stories.tsx +231 -176
  152. package/select/Select.test.js +2175 -0
  153. package/select/types.d.ts +210 -0
  154. package/select/types.js +5 -0
  155. package/sidenav/Sidenav.d.ts +6 -5
  156. package/sidenav/Sidenav.js +184 -52
  157. package/sidenav/Sidenav.stories.tsx +154 -139
  158. package/sidenav/Sidenav.test.js +44 -0
  159. package/sidenav/types.d.ts +50 -27
  160. package/slider/Slider.d.ts +1 -1
  161. package/slider/Slider.js +5 -4
  162. package/slider/Slider.stories.tsx +8 -8
  163. package/slider/Slider.test.js +187 -0
  164. package/slider/types.d.ts +4 -0
  165. package/spinner/Spinner.js +1 -1
  166. package/spinner/Spinner.stories.jsx +1 -0
  167. package/spinner/Spinner.test.js +64 -0
  168. package/switch/Switch.d.ts +2 -2
  169. package/switch/Switch.js +127 -55
  170. package/switch/Switch.stories.tsx +21 -43
  171. package/switch/Switch.test.js +212 -0
  172. package/switch/types.d.ts +9 -6
  173. package/table/Table.stories.jsx +2 -1
  174. package/table/Table.test.js +26 -0
  175. package/tabs/Tabs.d.ts +1 -1
  176. package/tabs/Tabs.js +16 -18
  177. package/tabs/Tabs.stories.tsx +7 -16
  178. package/tabs/Tabs.test.js +140 -0
  179. package/tabs/types.d.ts +27 -15
  180. package/tabs-nav/NavTabs.d.ts +8 -0
  181. package/tabs-nav/NavTabs.js +125 -0
  182. package/tabs-nav/NavTabs.stories.tsx +170 -0
  183. package/tabs-nav/NavTabs.test.js +82 -0
  184. package/tabs-nav/Tab.d.ts +4 -0
  185. package/tabs-nav/Tab.js +130 -0
  186. package/tabs-nav/types.d.ts +53 -0
  187. package/tabs-nav/types.js +5 -0
  188. package/tag/Tag.d.ts +1 -1
  189. package/tag/Tag.js +17 -27
  190. package/tag/Tag.stories.tsx +26 -29
  191. package/tag/Tag.test.js +60 -0
  192. package/tag/types.d.ts +23 -14
  193. package/text-input/Suggestion.d.ts +4 -0
  194. package/text-input/Suggestion.js +55 -0
  195. package/text-input/TextInput.js +80 -105
  196. package/text-input/TextInput.stories.tsx +35 -18
  197. package/text-input/TextInput.test.js +1712 -0
  198. package/text-input/types.d.ts +32 -13
  199. package/textarea/Textarea.d.ts +4 -0
  200. package/textarea/Textarea.js +19 -56
  201. package/textarea/Textarea.stories.jsx +37 -15
  202. package/textarea/Textarea.test.js +437 -0
  203. package/textarea/types.d.ts +137 -0
  204. package/textarea/types.js +5 -0
  205. package/toggle-group/ToggleGroup.d.ts +1 -1
  206. package/toggle-group/ToggleGroup.js +12 -14
  207. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  208. package/toggle-group/ToggleGroup.test.js +156 -0
  209. package/toggle-group/types.d.ts +46 -25
  210. package/typography/Typography.d.ts +4 -0
  211. package/typography/Typography.js +131 -0
  212. package/typography/Typography.stories.tsx +198 -0
  213. package/typography/types.d.ts +18 -0
  214. package/typography/types.js +5 -0
  215. package/useTheme.js +2 -2
  216. package/useTranslatedLabels.d.ts +2 -0
  217. package/useTranslatedLabels.js +20 -0
  218. package/wizard/Wizard.d.ts +1 -1
  219. package/wizard/Wizard.js +111 -57
  220. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +33 -24
  221. package/wizard/Wizard.test.js +141 -0
  222. package/wizard/types.d.ts +12 -11
  223. package/ThemeContext.d.ts +0 -15
  224. package/ThemeContext.js +0 -243
  225. package/V3Select/V3Select.js +0 -455
  226. package/V3Select/index.d.ts +0 -27
  227. package/V3Textarea/V3Textarea.js +0 -260
  228. package/V3Textarea/index.d.ts +0 -27
  229. package/date/Date.js +0 -373
  230. package/date/index.d.ts +0 -27
  231. package/input-text/Icons.js +0 -22
  232. package/input-text/InputText.js +0 -611
  233. package/input-text/index.d.ts +0 -36
  234. package/list/List.d.ts +0 -7
  235. package/list/List.js +0 -37
  236. package/list/List.stories.tsx +0 -70
  237. package/radio/Radio.d.ts +0 -4
  238. package/radio/Radio.js +0 -174
  239. package/radio/Radio.stories.tsx +0 -192
  240. package/radio/types.d.ts +0 -54
  241. package/row/Row.d.ts +0 -11
  242. package/row/Row.js +0 -124
  243. package/row/Row.stories.tsx +0 -223
  244. package/select/index.d.ts +0 -131
  245. package/stack/Stack.d.ts +0 -10
  246. package/stack/Stack.js +0 -94
  247. package/stack/Stack.stories.tsx +0 -150
  248. package/text/Text.d.ts +0 -7
  249. package/text/Text.js +0 -30
  250. package/text/Text.stories.tsx +0 -19
  251. package/textarea/index.d.ts +0 -127
  252. package/toggle/Toggle.js +0 -186
  253. package/toggle/index.d.ts +0 -21
  254. package/upload/Upload.js +0 -201
  255. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  256. package/upload/buttons-upload/Icons.js +0 -40
  257. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  258. package/upload/dragAndDropArea/Icons.js +0 -39
  259. package/upload/file-upload/FileToUpload.js +0 -115
  260. package/upload/file-upload/Icons.js +0 -66
  261. package/upload/files-upload/FilesToUpload.js +0 -109
  262. package/upload/index.d.ts +0 -15
  263. package/upload/transaction/Icons.js +0 -160
  264. package/upload/transaction/Transaction.js +0 -104
  265. package/upload/transactions/Transactions.js +0 -94
  266. package/wizard/Icons.js +0 -65
@@ -0,0 +1,114 @@
1
+ export declare type Option = {
2
+ /**
3
+ * Label of the option placed next to the radio input.
4
+ */
5
+ value: string;
6
+ /**
7
+ * Value of the option. It should be unique and
8
+ * not an empty string, which is reserved to the optional item added
9
+ * by 'optional' prop.
10
+ */
11
+ label: string;
12
+ /**
13
+ * If true, disables the option.
14
+ */
15
+ disabled?: boolean;
16
+ };
17
+ declare type RadioGroupProps = {
18
+ /**
19
+ * Text to be placed above the radio group.
20
+ */
21
+ label: string;
22
+ /**
23
+ * Name attribute of the input element. This attribute will allow users
24
+ * to find the component's value during the submit event.
25
+ */
26
+ name?: string;
27
+ /**
28
+ * Helper text to be placed above the radio group.
29
+ */
30
+ helperText?: string;
31
+ /**
32
+ * An array of objects representing the selectable options.
33
+ */
34
+ options: Option[];
35
+ /**
36
+ * If true, the component will be disabled.
37
+ */
38
+ disabled?: boolean;
39
+ /**
40
+ * If true, the radio group will be optional, showing
41
+ * (Optional) next to the label and adding a default last
42
+ * option with an empty string as value. Otherwise, the field will be
43
+ * considered required and an error will be passed as a parameter to the
44
+ * OnBlur functions if an option wasn't selected.
45
+ */
46
+ optional?: boolean;
47
+ /**
48
+ * Label of the optional radio input.
49
+ */
50
+ optionalItemLabel?: string;
51
+ /**
52
+ * If true, the component will be marked as readonly.
53
+ */
54
+ readonly?: boolean;
55
+ /**
56
+ * Sets the orientation of the options within the radio group.
57
+ */
58
+ stacking?: "row" | "column";
59
+ /**
60
+ * Initial value of the radio group, only when it is uncontrolled.
61
+ */
62
+ defaultValue?: string;
63
+ /**
64
+ * Value of the radio group. If undefined, the component will be
65
+ * uncontrolled and the value will be managed internally by the
66
+ * component.
67
+ */
68
+ value?: string;
69
+ /**
70
+ * This function will be called when the user chooses an option. The new
71
+ * value will be passed to this function.
72
+ */
73
+ onChange?: (value: string) => void;
74
+ /**
75
+ * This function will be called when the radio group loses the focus. An
76
+ * object including the value and the error will be passed to this
77
+ * function. If there is no error, error will not be defined.
78
+ */
79
+ onBlur?: (val: {
80
+ value?: string;
81
+ error?: string;
82
+ }) => void;
83
+ /**
84
+ * If it is a defined value and also a truthy string, the component will
85
+ * change its appearance, showing the error below the radio group. If the
86
+ * defined value is an empty string, it will reserve a space below the
87
+ * component for a future error, but it would not change its look. In
88
+ * case of being undefined or null, both the appearance and the space for
89
+ * the error message would not be modified.
90
+ */
91
+ error?: string;
92
+ /**
93
+ * Value of the tabindex attribute.
94
+ */
95
+ tabIndex?: number;
96
+ };
97
+ /**
98
+ * Reference to the component.
99
+ */
100
+ export declare type RefType = HTMLDivElement;
101
+ /**
102
+ * Single radio prop types.
103
+ */
104
+ export declare type RadioProps = {
105
+ option: Option;
106
+ currentValue?: string;
107
+ onClick: () => void;
108
+ error?: string;
109
+ disabled: boolean;
110
+ focused: boolean;
111
+ readonly: boolean;
112
+ tabIndex: number;
113
+ };
114
+ export default RadioGroupProps;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -185,7 +185,8 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
185
185
  onClick: function onClick() {
186
186
  return column.isSortable && changeSorting(index);
187
187
  },
188
- tabIndex: column.isSortable ? tabIndex : -1
188
+ tabIndex: column.isSortable ? tabIndex : -1,
189
+ isSortable: column.isSortable
189
190
  }, /*#__PURE__*/_react["default"].createElement(TitleDiv, {
190
191
  isSortable: column.isSortable
191
192
  }, column.displayValue), column.isSortable && /*#__PURE__*/_react["default"].createElement(SortIcon, null, getIconForSortableColumn(index))));
@@ -227,8 +228,10 @@ var TitleDiv = _styledComponents["default"].div(_templateObject5 || (_templateOb
227
228
 
228
229
  var TableHeader = _styledComponents["default"].th(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])([""])));
229
230
 
230
- var HeaderContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n width: 100%;\n"])), function (props) {
231
+ var HeaderContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n width: fit-content;\n :focus {\n ", "\n }\n"])), function (props) {
231
232
  return props.theme.headerTextAlign === "center" ? "center" : props.theme.headerTextAlign === "right" ? "flex-end" : "flex-start";
233
+ }, function (props) {
234
+ return props.isSortable && "outline: #0095ff solid 2px; \n outline-offset: 4px;";
232
235
  });
233
236
 
234
237
  var HeaderRow = _styledComponents["default"].thead(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n height: 60px;\n"])));
@@ -10,14 +10,12 @@ export default {
10
10
  component: DxcResultsetTable,
11
11
  };
12
12
 
13
- const deleteIcon = () => {
14
- return (
15
- <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
16
- <path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" />
17
- <path d="M0 0h24v24H0z" fill="none" />
18
- </svg>
19
- );
20
- };
13
+ const deleteIcon = (
14
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
15
+ <path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" />
16
+ <path d="M0 0h24v24H0z" fill="none" />
17
+ </svg>
18
+ );
21
19
 
22
20
  const columns = [{ displayValue: "Id" }, { displayValue: "Name" }, { displayValue: "City" }];
23
21
 
@@ -216,6 +214,7 @@ export const Chromatic = () => (
216
214
  <ExampleContainer>
217
215
  <Title title="Xxlarge" theme="light" level={4} />
218
216
  <DxcResultsetTable columns={columns} rows={rows} margin={"xxlarge"}></DxcResultsetTable>
217
+ <hr />
219
218
  </ExampleContainer>
220
219
  </>
221
220
  );
@@ -0,0 +1,348 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
+
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ var _react2 = require("@testing-library/react");
12
+
13
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
14
+
15
+ var _ResultsetTable = _interopRequireDefault(require("./ResultsetTable"));
16
+
17
+ // Mocking DOMRect for Radix Primitive Popover
18
+ global.globalThis = global;
19
+
20
+ global.ResizeObserver = /*#__PURE__*/function () {
21
+ function ResizeObserver(cb) {
22
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
23
+ this.cb = cb;
24
+ }
25
+
26
+ (0, _createClass2["default"])(ResizeObserver, [{
27
+ key: "observe",
28
+ value: function observe() {
29
+ this.cb([{
30
+ borderBoxSize: {
31
+ inlineSize: 0,
32
+ blockSize: 0
33
+ }
34
+ }]);
35
+ }
36
+ }, {
37
+ key: "unobserve",
38
+ value: function unobserve() {}
39
+ }]);
40
+ return ResizeObserver;
41
+ }();
42
+
43
+ global.DOMRect = {
44
+ fromRect: function fromRect() {
45
+ return {
46
+ top: 0,
47
+ left: 0,
48
+ bottom: 0,
49
+ right: 0,
50
+ width: 0,
51
+ height: 0
52
+ };
53
+ }
54
+ };
55
+ var columns = [{
56
+ displayValue: "Id",
57
+ isSortable: false
58
+ }, {
59
+ displayValue: "Name",
60
+ isSortable: true
61
+ }, {
62
+ displayValue: "City",
63
+ isSortable: false
64
+ }];
65
+ var rows = [[{
66
+ displayValue: "001",
67
+ sortValue: "001"
68
+ }, {
69
+ displayValue: "Peter",
70
+ sortValue: "Peter"
71
+ }, {
72
+ displayValue: "Oviedo",
73
+ sortValue: "Oviedo"
74
+ }], [{
75
+ displayValue: "002",
76
+ sortValue: "002"
77
+ }, {
78
+ displayValue: "Louis",
79
+ sortValue: "Louis"
80
+ }, {
81
+ displayValue: "Oviedo",
82
+ sortValue: "Oviedo"
83
+ }, {
84
+ displayValue: ""
85
+ }], [{
86
+ displayValue: "003",
87
+ sortValue: "003"
88
+ }, {
89
+ displayValue: "Lana",
90
+ sortValue: "Lana"
91
+ }, {
92
+ displayValue: "Albacete",
93
+ sortValue: "Albacete"
94
+ }], [{
95
+ displayValue: "004",
96
+ sortValue: "004"
97
+ }, {
98
+ displayValue: "Rick",
99
+ sortValue: "Rick"
100
+ }, {
101
+ displayValue: "Albacete",
102
+ sortValue: "Albacete"
103
+ }], [{
104
+ displayValue: "005",
105
+ sortValue: "005"
106
+ }, {
107
+ displayValue: "Mark",
108
+ sortValue: "Mark"
109
+ }, {
110
+ displayValue: "Madrid",
111
+ sortValue: "Madrid"
112
+ }], [{
113
+ displayValue: "006",
114
+ sortValue: "006"
115
+ }, {
116
+ displayValue: "Cris",
117
+ sortValue: "Cris"
118
+ }, {
119
+ displayValue: "Barcelona",
120
+ sortValue: "Barcelona"
121
+ }, {
122
+ displayValue: ""
123
+ }], [{
124
+ displayValue: "007",
125
+ sortValue: "007"
126
+ }, {
127
+ displayValue: "Susan",
128
+ sortValue: "Susan"
129
+ }, {
130
+ displayValue: "Madrid",
131
+ sortValue: "Madrid"
132
+ }], [{
133
+ displayValue: "008",
134
+ sortValue: "008"
135
+ }, {
136
+ displayValue: "Tina",
137
+ sortValue: "Tina"
138
+ }, {
139
+ displayValue: "Barcelona",
140
+ sortValue: "Barcelona"
141
+ }], [{
142
+ displayValue: "009",
143
+ sortValue: "009"
144
+ }, {
145
+ displayValue: "Kevin",
146
+ sortValue: "Kevin"
147
+ }, {
148
+ displayValue: "Oviedo",
149
+ sortValue: "Oviedo"
150
+ }, {
151
+ displayValue: ""
152
+ }], [{
153
+ displayValue: "010",
154
+ sortValue: "010"
155
+ }, {
156
+ displayValue: "Cosmin",
157
+ sortValue: "Cosmin"
158
+ }, {
159
+ displayValue: "Barcelona",
160
+ sortValue: "Barcelona"
161
+ }, {
162
+ displayValue: ""
163
+ }]];
164
+ var rows2 = [[{
165
+ displayValue: "546",
166
+ sortValue: "465"
167
+ }, {
168
+ displayValue: "OtherValue",
169
+ sortValue: "OtherValue"
170
+ }, {
171
+ displayValue: "OtherValue",
172
+ sortValue: "OtherValue"
173
+ }], [{
174
+ displayValue: "978",
175
+ sortValue: "465"
176
+ }, {
177
+ displayValue: "OtherValue",
178
+ sortValue: "OtherValue"
179
+ }, {
180
+ displayValue: "OtherValue",
181
+ sortValue: "OtherValue"
182
+ }, {
183
+ displayValue: ""
184
+ }], [{
185
+ displayValue: "678",
186
+ sortValue: "344"
187
+ }, {
188
+ displayValue: "OtherValue",
189
+ sortValue: "OtherValue"
190
+ }, {
191
+ displayValue: "OtherValue",
192
+ sortValue: "OtherValue"
193
+ }]];
194
+ describe("ResultsetTable component tests", function () {
195
+ test("ResultsetTable rendered correctly", function () {
196
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
197
+ columns: columns,
198
+ rows: rows,
199
+ itemsPerPage: 3
200
+ })),
201
+ getByText = _render.getByText;
202
+
203
+ expect(getByText("Peter")).toBeTruthy();
204
+ });
205
+ test("Resultsettable shows as many rows as itemsPerPage", function () {
206
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
207
+ columns: columns,
208
+ rows: rows,
209
+ itemsPerPage: 3
210
+ })),
211
+ getAllByRole = _render2.getAllByRole;
212
+
213
+ expect(getAllByRole("row").length - 1).toEqual(3);
214
+ });
215
+ test("Resultsettable shows rows on second page", function () {
216
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
217
+ columns: columns,
218
+ rows: rows,
219
+ itemsPerPage: 3
220
+ })),
221
+ getByText = _render3.getByText,
222
+ getAllByRole = _render3.getAllByRole;
223
+
224
+ expect(getByText("Peter")).toBeTruthy();
225
+ expect(getByText("Louis")).toBeTruthy();
226
+ expect(getByText("Lana")).toBeTruthy();
227
+ expect(getAllByRole("row").length - 1).toEqual(3);
228
+ var nextButton = getAllByRole("button")[2];
229
+
230
+ _react2.fireEvent.click(nextButton);
231
+
232
+ expect(getByText("4 to 6 of 10")).toBeTruthy(); // expect(getByText("Page: 2 of 4")).toBeTruthy();
233
+
234
+ expect(getByText("Rick")).toBeTruthy();
235
+ expect(getByText("Mark")).toBeTruthy();
236
+ expect(getByText("Cris")).toBeTruthy();
237
+ expect(getAllByRole("row").length - 1).toEqual(3);
238
+ });
239
+ test("Resultsettable goToPage works as expected", function () {
240
+ window.HTMLElement.prototype.scrollIntoView = function () {};
241
+
242
+ window.HTMLElement.prototype.scrollTo = function () {};
243
+
244
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
245
+ columns: columns,
246
+ showGoToPage: true,
247
+ rows: rows,
248
+ itemsPerPage: 3
249
+ })),
250
+ getByText = _render4.getByText,
251
+ getAllByRole = _render4.getAllByRole,
252
+ getByRole = _render4.getByRole;
253
+
254
+ expect(getByText("Peter")).toBeTruthy();
255
+ expect(getByText("Louis")).toBeTruthy();
256
+ expect(getByText("Lana")).toBeTruthy();
257
+ expect(getAllByRole("row").length - 1).toEqual(3);
258
+ var goToPageSelect = getAllByRole("button")[2];
259
+ (0, _react2.act)(function () {
260
+ _userEvent["default"].click(goToPageSelect);
261
+ });
262
+ var goToPageOption = getByText("2");
263
+ (0, _react2.act)(function () {
264
+ _userEvent["default"].click(goToPageOption);
265
+ });
266
+ expect(getByText("4 to 6 of 10")).toBeTruthy();
267
+ expect(getByText("Rick")).toBeTruthy();
268
+ expect(getByText("Mark")).toBeTruthy();
269
+ expect(getByText("Cris")).toBeTruthy();
270
+ expect(getAllByRole("row").length - 1).toEqual(3);
271
+ });
272
+ test("Resultsettable going to the last page shows only one row", function () {
273
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
274
+ columns: columns,
275
+ rows: rows,
276
+ itemsPerPage: 3
277
+ })),
278
+ getByText = _render5.getByText,
279
+ getAllByRole = _render5.getAllByRole;
280
+
281
+ var lastButton = getAllByRole("button")[3];
282
+
283
+ _react2.fireEvent.click(lastButton);
284
+
285
+ expect(getByText("10 to 10 of 10")).toBeTruthy();
286
+ expect(getAllByRole("row")).toHaveLength(2);
287
+ expect(getByText("Cosmin")).toBeTruthy();
288
+ });
289
+ test("Resultsettable sort rows by column", function () {
290
+ var component = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
291
+ columns: columns,
292
+ rows: rows,
293
+ itemsPerPage: 3
294
+ }));
295
+ expect(component.queryByText("Peter")).toBeTruthy();
296
+
297
+ _react2.fireEvent.click(component.queryByText("Name"));
298
+
299
+ expect(component.queryByText("Tina")).not.toBeTruthy();
300
+ expect(component.queryByText("Cosmin")).toBeTruthy();
301
+
302
+ _react2.fireEvent.click(component.queryByText("Name"));
303
+
304
+ expect(component.queryByText("Tina")).toBeTruthy();
305
+ expect(component.queryByText("Cosmin")).not.toBeTruthy();
306
+ });
307
+ test("Resultsettable change rows should go to first page", function () {
308
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
309
+ columns: columns,
310
+ rows: rows,
311
+ itemsPerPage: 3
312
+ })),
313
+ queryByText = _render6.queryByText,
314
+ rerender = _render6.rerender;
315
+
316
+ expect(queryByText("Peter")).toBeTruthy();
317
+ rerender( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
318
+ columns: columns,
319
+ rows: rows2,
320
+ itemsPerPage: 3
321
+ }));
322
+ expect(queryByText("1 to 3 of 3")).toBeTruthy();
323
+ });
324
+ test("Resultsettable change itemsPerPage should go to first page", function () {
325
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
326
+ columns: columns,
327
+ rows: rows,
328
+ itemsPerPage: 3,
329
+ itemsPerPageOptions: [2, 3]
330
+ })),
331
+ getAllByRole = _render7.getAllByRole,
332
+ queryByText = _render7.queryByText,
333
+ rerender = _render7.rerender;
334
+
335
+ var lastButton = getAllByRole("button")[3];
336
+
337
+ _react2.fireEvent.click(lastButton);
338
+
339
+ expect(getAllByRole("row").length - 1).toEqual(1);
340
+ rerender( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
341
+ columns: columns,
342
+ rows: rows,
343
+ itemsPerPage: 6
344
+ }));
345
+ expect(getAllByRole("row").length - 1).toEqual(6);
346
+ expect(queryByText("Peter")).toBeTruthy();
347
+ });
348
+ });
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ declare const selectIcons: {
3
+ error: JSX.Element;
4
+ arrowUp: JSX.Element;
5
+ arrowDown: JSX.Element;
6
+ clear: JSX.Element;
7
+ selected: JSX.Element;
8
+ searchOff: JSX.Element;
9
+ };
10
+ export default selectIcons;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var selectIcons = {
13
+ error: /*#__PURE__*/_react["default"].createElement("svg", {
14
+ role: "img",
15
+ xmlns: "http://www.w3.org/2000/svg",
16
+ height: "24px",
17
+ viewBox: "0 0 24 24",
18
+ width: "24px",
19
+ fill: "currentColor"
20
+ }, /*#__PURE__*/_react["default"].createElement("path", {
21
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
22
+ })),
23
+ arrowUp: /*#__PURE__*/_react["default"].createElement("svg", {
24
+ role: "img",
25
+ xmlns: "http://www.w3.org/2000/svg",
26
+ height: "24px",
27
+ viewBox: "0 0 24 24",
28
+ width: "24px",
29
+ fill: "currentColor"
30
+ }, /*#__PURE__*/_react["default"].createElement("path", {
31
+ d: "M0 0h24v24H0V0z",
32
+ fill: "none"
33
+ }), /*#__PURE__*/_react["default"].createElement("path", {
34
+ d: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6 1.41 1.41z"
35
+ })),
36
+ arrowDown: /*#__PURE__*/_react["default"].createElement("svg", {
37
+ role: "img",
38
+ xmlns: "http://www.w3.org/2000/svg",
39
+ height: "24px",
40
+ viewBox: "0 0 24 24",
41
+ width: "24px",
42
+ fill: "currentColor"
43
+ }, /*#__PURE__*/_react["default"].createElement("path", {
44
+ d: "M0 0h24v24H0V0z",
45
+ fill: "none"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"
48
+ })),
49
+ clear: /*#__PURE__*/_react["default"].createElement("svg", {
50
+ role: "img",
51
+ xmlns: "http://www.w3.org/2000/svg",
52
+ width: "24",
53
+ height: "24",
54
+ viewBox: "0 0 24 24",
55
+ fill: "currentColor"
56
+ }, /*#__PURE__*/_react["default"].createElement("path", {
57
+ d: "M0 0h24v24H0V0z",
58
+ fill: "none"
59
+ }), /*#__PURE__*/_react["default"].createElement("path", {
60
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
61
+ })),
62
+ selected: /*#__PURE__*/_react["default"].createElement("svg", {
63
+ role: "img",
64
+ xmlns: "http://www.w3.org/2000/svg",
65
+ height: "24px",
66
+ viewBox: "0 0 24 24",
67
+ width: "24px",
68
+ fill: "currentColor"
69
+ }, /*#__PURE__*/_react["default"].createElement("path", {
70
+ d: "M0 0h24v24H0z",
71
+ fill: "none"
72
+ }), /*#__PURE__*/_react["default"].createElement("path", {
73
+ d: "M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"
74
+ })),
75
+ searchOff: /*#__PURE__*/_react["default"].createElement("svg", {
76
+ role: "img",
77
+ xmlns: "http://www.w3.org/2000/svg",
78
+ height: "24px",
79
+ viewBox: "0 0 24 24",
80
+ width: "24px",
81
+ fill: "currentColor"
82
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("rect", {
83
+ fill: "none",
84
+ height: "24",
85
+ width: "24"
86
+ })), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
87
+ d: "M15.5,14h-0.79l-0.28-0.27C15.41,12.59,16,11.11,16,9.5C16,5.91,13.09,3,9.5,3C6.08,3,3.28,5.64,3.03,9h2.02 C5.3,6.75,7.18,5,9.5,5C11.99,5,14,7.01,14,9.5S11.99,14,9.5,14c-0.17,0-0.33-0.03-0.5-0.05v2.02C9.17,15.99,9.33,16,9.5,16 c1.61,0,3.09-0.59,4.23-1.57L14,14.71v0.79l5,4.99L20.49,19L15.5,14z"
88
+ }), /*#__PURE__*/_react["default"].createElement("polygon", {
89
+ points: "6.47,10.82 4,13.29 1.53,10.82 0.82,11.53 3.29,14 0.82,16.47 1.53,17.18 4,14.71 6.47,17.18 7.18,16.47 4.71,14 7.18,11.53"
90
+ }))))
91
+ };
92
+ var _default = selectIcons;
93
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ListboxProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, getSelectWidth, }: ListboxProps) => JSX.Element>;
4
+ export default _default;