@dxc-technology/halstack-react 0.0.0-f4755a1 → 0.0.0-f53e801

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 (256) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +13 -45
  5. package/accordion/Accordion.stories.tsx +20 -13
  6. package/accordion/Accordion.test.js +72 -0
  7. package/accordion/types.d.ts +7 -7
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +14 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +151 -0
  12. package/accordion-group/types.d.ts +7 -7
  13. package/alert/Alert.js +4 -1
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +4 -0
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +5 -0
  18. package/{radio → badge}/types.js +0 -0
  19. package/bleed/Bleed.d.ts +3 -0
  20. package/bleed/Bleed.js +51 -0
  21. package/bleed/Bleed.stories.tsx +341 -0
  22. package/bleed/types.d.ts +37 -0
  23. package/bleed/types.js +5 -0
  24. package/box/Box.js +22 -32
  25. package/box/Box.test.js +18 -0
  26. package/bulleted-list/BulletedList.d.ts +7 -0
  27. package/bulleted-list/BulletedList.js +123 -0
  28. package/bulleted-list/BulletedList.stories.tsx +200 -0
  29. package/bulleted-list/types.d.ts +11 -0
  30. package/bulleted-list/types.js +5 -0
  31. package/button/Button.d.ts +1 -1
  32. package/button/Button.js +57 -80
  33. package/button/Button.stories.tsx +15 -8
  34. package/button/Button.test.js +35 -0
  35. package/button/types.d.ts +8 -12
  36. package/card/Card.js +24 -27
  37. package/card/Card.stories.tsx +1 -1
  38. package/card/Card.test.js +50 -0
  39. package/checkbox/Checkbox.d.ts +1 -1
  40. package/checkbox/Checkbox.js +43 -39
  41. package/checkbox/Checkbox.stories.tsx +124 -128
  42. package/checkbox/Checkbox.test.js +78 -0
  43. package/checkbox/types.d.ts +7 -3
  44. package/chip/Chip.d.ts +1 -1
  45. package/chip/Chip.js +14 -52
  46. package/chip/Chip.stories.tsx +6 -8
  47. package/chip/Chip.test.js +56 -0
  48. package/chip/types.d.ts +5 -13
  49. package/common/variables.js +243 -344
  50. package/date-input/DateInput.js +62 -48
  51. package/date-input/DateInput.stories.tsx +7 -7
  52. package/date-input/DateInput.test.js +479 -0
  53. package/date-input/types.d.ts +16 -9
  54. package/dialog/Dialog.js +46 -50
  55. package/dialog/Dialog.stories.tsx +1 -2
  56. package/dialog/Dialog.test.js +70 -0
  57. package/dialog/types.d.ts +2 -2
  58. package/dropdown/Dropdown.d.ts +1 -1
  59. package/dropdown/Dropdown.js +242 -272
  60. package/dropdown/Dropdown.stories.tsx +144 -79
  61. package/dropdown/Dropdown.test.js +591 -0
  62. package/dropdown/DropdownMenu.d.ts +4 -0
  63. package/dropdown/DropdownMenu.js +80 -0
  64. package/dropdown/DropdownMenuItem.d.ts +4 -0
  65. package/dropdown/DropdownMenuItem.js +92 -0
  66. package/dropdown/types.d.ts +29 -18
  67. package/file-input/FileInput.js +9 -6
  68. package/file-input/FileInput.stories.tsx +1 -0
  69. package/file-input/FileInput.test.js +457 -0
  70. package/file-input/FileItem.js +7 -5
  71. package/flex/Flex.d.ts +4 -0
  72. package/flex/Flex.js +57 -0
  73. package/flex/Flex.stories.tsx +103 -0
  74. package/flex/types.d.ts +21 -0
  75. package/flex/types.js +5 -0
  76. package/footer/Footer.js +24 -99
  77. package/footer/Footer.test.js +109 -0
  78. package/footer/Icons.js +1 -1
  79. package/footer/types.d.ts +1 -1
  80. package/header/Header.js +95 -114
  81. package/header/Header.stories.tsx +46 -36
  82. package/header/Header.test.js +79 -0
  83. package/header/Icons.js +2 -2
  84. package/header/types.d.ts +2 -2
  85. package/heading/Heading.stories.tsx +3 -2
  86. package/heading/Heading.test.js +186 -0
  87. package/inset/Inset.d.ts +3 -0
  88. package/inset/Inset.js +51 -0
  89. package/inset/Inset.stories.tsx +229 -0
  90. package/inset/types.d.ts +37 -0
  91. package/inset/types.js +5 -0
  92. package/layout/ApplicationLayout.d.ts +16 -6
  93. package/layout/ApplicationLayout.js +71 -125
  94. package/layout/ApplicationLayout.stories.tsx +83 -93
  95. package/layout/Icons.d.ts +5 -0
  96. package/layout/Icons.js +13 -2
  97. package/layout/SidenavContext.d.ts +5 -0
  98. package/layout/SidenavContext.js +19 -0
  99. package/layout/types.d.ts +18 -33
  100. package/link/Link.d.ts +3 -2
  101. package/link/Link.js +60 -85
  102. package/link/Link.stories.tsx +99 -52
  103. package/link/Link.test.js +83 -0
  104. package/link/types.d.ts +9 -29
  105. package/main.d.ts +11 -15
  106. package/main.js +53 -79
  107. package/number-input/NumberInput.js +11 -18
  108. package/number-input/NumberInput.stories.tsx +5 -5
  109. package/number-input/NumberInput.test.js +506 -0
  110. package/number-input/types.d.ts +17 -10
  111. package/package.json +12 -10
  112. package/paginator/Paginator.js +17 -38
  113. package/paginator/Paginator.test.js +308 -0
  114. package/paragraph/Paragraph.d.ts +6 -0
  115. package/paragraph/Paragraph.js +38 -0
  116. package/paragraph/Paragraph.stories.tsx +44 -0
  117. package/password-input/PasswordInput.js +7 -4
  118. package/password-input/PasswordInput.stories.tsx +3 -3
  119. package/password-input/PasswordInput.test.js +180 -0
  120. package/password-input/types.d.ts +14 -11
  121. package/progress-bar/ProgressBar.d.ts +2 -2
  122. package/progress-bar/ProgressBar.js +57 -51
  123. package/progress-bar/ProgressBar.stories.jsx +13 -11
  124. package/progress-bar/ProgressBar.test.js +110 -0
  125. package/progress-bar/types.d.ts +3 -4
  126. package/quick-nav/QuickNav.d.ts +4 -0
  127. package/quick-nav/QuickNav.js +118 -0
  128. package/quick-nav/QuickNav.stories.tsx +264 -0
  129. package/quick-nav/types.d.ts +21 -0
  130. package/quick-nav/types.js +5 -0
  131. package/radio-group/Radio.d.ts +1 -1
  132. package/radio-group/Radio.js +64 -32
  133. package/radio-group/RadioGroup.js +148 -33
  134. package/radio-group/RadioGroup.stories.tsx +63 -19
  135. package/radio-group/RadioGroup.test.js +695 -0
  136. package/radio-group/types.d.ts +88 -11
  137. package/resultsetTable/ResultsetTable.js +5 -2
  138. package/resultsetTable/ResultsetTable.stories.tsx +7 -8
  139. package/resultsetTable/ResultsetTable.test.js +348 -0
  140. package/select/Icons.d.ts +10 -0
  141. package/select/Icons.js +93 -0
  142. package/select/Listbox.d.ts +4 -0
  143. package/select/Listbox.js +199 -0
  144. package/select/Option.d.ts +4 -0
  145. package/select/Option.js +110 -0
  146. package/select/Select.js +145 -365
  147. package/select/Select.stories.tsx +231 -176
  148. package/select/Select.test.js +2175 -0
  149. package/select/types.d.ts +52 -12
  150. package/sidenav/Sidenav.d.ts +6 -5
  151. package/sidenav/Sidenav.js +184 -52
  152. package/sidenav/Sidenav.stories.tsx +154 -139
  153. package/sidenav/Sidenav.test.js +44 -0
  154. package/sidenav/types.d.ts +50 -27
  155. package/slider/Slider.d.ts +1 -1
  156. package/slider/Slider.js +5 -4
  157. package/slider/Slider.stories.tsx +8 -8
  158. package/slider/Slider.test.js +187 -0
  159. package/slider/types.d.ts +4 -0
  160. package/spinner/Spinner.js +1 -1
  161. package/spinner/Spinner.stories.jsx +1 -0
  162. package/spinner/Spinner.test.js +64 -0
  163. package/switch/Switch.d.ts +2 -2
  164. package/switch/Switch.js +127 -55
  165. package/switch/Switch.stories.tsx +21 -43
  166. package/switch/Switch.test.js +212 -0
  167. package/switch/types.d.ts +9 -6
  168. package/table/Table.stories.jsx +2 -1
  169. package/table/Table.test.js +26 -0
  170. package/tabs/Tabs.d.ts +1 -1
  171. package/tabs/Tabs.js +16 -18
  172. package/tabs/Tabs.stories.tsx +7 -16
  173. package/tabs/Tabs.test.js +140 -0
  174. package/tabs/types.d.ts +27 -15
  175. package/tabs-nav/NavTabs.d.ts +8 -0
  176. package/tabs-nav/NavTabs.js +125 -0
  177. package/tabs-nav/NavTabs.stories.tsx +170 -0
  178. package/tabs-nav/NavTabs.test.js +82 -0
  179. package/tabs-nav/Tab.d.ts +4 -0
  180. package/tabs-nav/Tab.js +130 -0
  181. package/tabs-nav/types.d.ts +53 -0
  182. package/tabs-nav/types.js +5 -0
  183. package/tag/Tag.d.ts +1 -1
  184. package/tag/Tag.js +17 -27
  185. package/tag/Tag.stories.tsx +26 -29
  186. package/tag/Tag.test.js +60 -0
  187. package/tag/types.d.ts +23 -14
  188. package/text-input/Suggestion.d.ts +4 -0
  189. package/text-input/Suggestion.js +55 -0
  190. package/text-input/TextInput.js +80 -105
  191. package/text-input/TextInput.stories.tsx +35 -18
  192. package/text-input/TextInput.test.js +1712 -0
  193. package/text-input/types.d.ts +32 -13
  194. package/textarea/Textarea.js +20 -27
  195. package/textarea/Textarea.stories.jsx +37 -15
  196. package/textarea/Textarea.test.js +437 -0
  197. package/textarea/types.d.ts +18 -11
  198. package/toggle-group/ToggleGroup.d.ts +1 -1
  199. package/toggle-group/ToggleGroup.js +5 -4
  200. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  201. package/toggle-group/ToggleGroup.test.js +156 -0
  202. package/toggle-group/types.d.ts +9 -1
  203. package/typography/Typography.d.ts +4 -0
  204. package/typography/Typography.js +131 -0
  205. package/typography/Typography.stories.tsx +198 -0
  206. package/typography/types.d.ts +18 -0
  207. package/typography/types.js +5 -0
  208. package/useTheme.js +2 -2
  209. package/useTranslatedLabels.d.ts +2 -0
  210. package/useTranslatedLabels.js +20 -0
  211. package/wizard/Wizard.d.ts +1 -1
  212. package/wizard/Wizard.js +58 -54
  213. package/wizard/Wizard.stories.tsx +33 -24
  214. package/wizard/Wizard.test.js +141 -0
  215. package/wizard/types.d.ts +10 -5
  216. package/ThemeContext.d.ts +0 -15
  217. package/ThemeContext.js +0 -243
  218. package/V3Select/V3Select.js +0 -455
  219. package/V3Select/index.d.ts +0 -27
  220. package/V3Textarea/V3Textarea.js +0 -260
  221. package/V3Textarea/index.d.ts +0 -27
  222. package/date/Date.js +0 -373
  223. package/date/index.d.ts +0 -27
  224. package/input-text/Icons.js +0 -22
  225. package/input-text/InputText.js +0 -611
  226. package/input-text/index.d.ts +0 -36
  227. package/list/List.d.ts +0 -8
  228. package/list/List.js +0 -47
  229. package/list/List.stories.tsx +0 -95
  230. package/radio/Radio.d.ts +0 -4
  231. package/radio/Radio.js +0 -174
  232. package/radio/Radio.stories.tsx +0 -192
  233. package/radio/types.d.ts +0 -54
  234. package/row/Row.d.ts +0 -11
  235. package/row/Row.js +0 -127
  236. package/row/Row.stories.tsx +0 -239
  237. package/stack/Stack.d.ts +0 -10
  238. package/stack/Stack.js +0 -97
  239. package/stack/Stack.stories.tsx +0 -166
  240. package/text/Text.d.ts +0 -7
  241. package/text/Text.js +0 -30
  242. package/text/Text.stories.tsx +0 -19
  243. package/toggle/Toggle.js +0 -186
  244. package/toggle/index.d.ts +0 -21
  245. package/upload/Upload.js +0 -201
  246. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  247. package/upload/buttons-upload/Icons.js +0 -40
  248. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  249. package/upload/dragAndDropArea/Icons.js +0 -39
  250. package/upload/file-upload/FileToUpload.js +0 -115
  251. package/upload/file-upload/Icons.js +0 -66
  252. package/upload/files-upload/FilesToUpload.js +0 -109
  253. package/upload/index.d.ts +0 -15
  254. package/upload/transaction/Icons.js +0 -160
  255. package/upload/transaction/Transaction.js +0 -104
  256. package/upload/transactions/Transactions.js +0 -94
@@ -1,37 +1,114 @@
1
- declare type Option = {
1
+ export declare type Option = {
2
+ /**
3
+ * Label of the option placed next to the radio input.
4
+ */
2
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
+ */
3
11
  label: string;
12
+ /**
13
+ * If true, disables the option.
14
+ */
4
15
  disabled?: boolean;
5
16
  };
6
17
  declare type RadioGroupProps = {
7
- label?: string;
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
+ */
8
26
  name?: string;
27
+ /**
28
+ * Helper text to be placed above the radio group.
29
+ */
9
30
  helperText?: string;
31
+ /**
32
+ * An array of objects representing the selectable options.
33
+ */
10
34
  options: Option[];
35
+ /**
36
+ * If true, the component will be disabled.
37
+ */
11
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
+ */
12
46
  optional?: boolean;
47
+ /**
48
+ * Label of the optional radio input.
49
+ */
13
50
  optionalItemLabel?: string;
51
+ /**
52
+ * If true, the component will be marked as readonly.
53
+ */
14
54
  readonly?: boolean;
55
+ /**
56
+ * Sets the orientation of the options within the radio group.
57
+ */
15
58
  stacking?: "row" | "column";
59
+ /**
60
+ * Initial value of the radio group, only when it is uncontrolled.
61
+ */
16
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
+ */
17
68
  value?: string;
18
- onChange?: (val: {
19
- 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;
20
81
  error?: string;
21
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
+ */
22
91
  error?: string;
92
+ /**
93
+ * Value of the tabindex attribute.
94
+ */
95
+ tabIndex?: number;
23
96
  };
97
+ /**
98
+ * Reference to the component.
99
+ */
24
100
  export declare type RefType = HTMLDivElement;
101
+ /**
102
+ * Single radio prop types.
103
+ */
25
104
  export declare type RadioProps = {
26
105
  option: Option;
27
106
  currentValue?: string;
28
- onChange: (optionValue: string) => void;
29
- disabledRadioGroup: boolean;
107
+ onClick: () => void;
30
108
  error?: string;
31
- /**
32
- * True if it is the first radio/option and there isn't any other radio in the radio group checked.
33
- * False in any other case. When the radio group gains the focus, it should give it to the first radio/option.
34
- */
35
- first?: boolean;
109
+ disabled: boolean;
110
+ focused: boolean;
111
+ readonly: boolean;
112
+ tabIndex: number;
36
113
  };
37
114
  export default RadioGroupProps;
@@ -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;