@dhis2-ui/select 10.9.2 → 10.10.0-alpha.2

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 (150) hide show
  1. package/build/cjs/index.js +18 -4
  2. package/build/cjs/locales/en/translations.json +7 -5
  3. package/build/cjs/simple-single-select/__stories__/DefaultPosition.js +38 -0
  4. package/build/cjs/simple-single-select/__stories__/Dense.js +22 -0
  5. package/build/cjs/simple-single-select/__stories__/Empty.js +20 -0
  6. package/build/cjs/simple-single-select/__stories__/EmptyWithEmptyNode.js +28 -0
  7. package/build/cjs/simple-single-select/__stories__/EmptyWithEmptyText.js +21 -0
  8. package/build/cjs/simple-single-select/__stories__/FlippedPosition.js +37 -0
  9. package/build/cjs/simple-single-select/__stories__/InfiniteLoading.js +61 -0
  10. package/build/cjs/simple-single-select/__stories__/Loading.js +20 -0
  11. package/build/cjs/simple-single-select/__stories__/ShiftedIntoView.js +28 -0
  12. package/build/cjs/simple-single-select/__stories__/WithClearButton.js +25 -0
  13. package/build/cjs/simple-single-select/__stories__/WithCustomLowMaxHeight.js +22 -0
  14. package/build/cjs/simple-single-select/__stories__/WithCustomOptions.js +48 -0
  15. package/build/cjs/simple-single-select/__stories__/WithDisabledOption.js +28 -0
  16. package/build/cjs/simple-single-select/__stories__/WithFilterField.js +36 -0
  17. package/build/cjs/simple-single-select/__stories__/WithInitialFocus.js +38 -0
  18. package/build/cjs/simple-single-select/__stories__/WithManyOptions.js +24 -0
  19. package/build/cjs/simple-single-select/__stories__/WithNoMatchText.js +30 -0
  20. package/build/cjs/simple-single-select/__stories__/WithOnBlur.js +23 -0
  21. package/build/cjs/simple-single-select/__stories__/WithOnFocus.js +23 -0
  22. package/build/cjs/simple-single-select/__stories__/WithOptionsAndDisabled.js +22 -0
  23. package/build/cjs/simple-single-select/__stories__/WithOptionsAndLoading.js +34 -0
  24. package/build/cjs/simple-single-select/__stories__/WithOptionsAndLoadingText.js +35 -0
  25. package/build/cjs/simple-single-select/__stories__/WithPlaceholder.js +23 -0
  26. package/build/cjs/simple-single-select/__stories__/WithPlaceholderAndSelection.js +25 -0
  27. package/build/cjs/simple-single-select/__stories__/WithPrefix.js +22 -0
  28. package/build/cjs/simple-single-select/__stories__/WithPrefixAndSelection.js +25 -0
  29. package/build/cjs/simple-single-select/__stories__/WithRTL.js +34 -0
  30. package/build/cjs/simple-single-select/__stories__/WithScrollingParent.js +36 -0
  31. package/build/cjs/simple-single-select/__stories__/WithSelection.js +24 -0
  32. package/build/cjs/simple-single-select/__stories__/WithSelectionAndDisabled.js +25 -0
  33. package/build/cjs/simple-single-select/__stories__/WithoutOptionsAndLoading.js +21 -0
  34. package/build/cjs/simple-single-select/__stories__/WithoutSelection.js +22 -0
  35. package/build/cjs/simple-single-select/__stories__/options.js +77 -0
  36. package/build/cjs/simple-single-select/features/keyboard-interactions.test.e2e.js +441 -0
  37. package/build/cjs/simple-single-select/features/menu-positioning.test.e2e.js +152 -0
  38. package/build/cjs/simple-single-select/index.js +19 -0
  39. package/build/cjs/simple-single-select/is-option-hidden.js +22 -0
  40. package/build/cjs/simple-single-select/menu/empty.js +26 -0
  41. package/build/cjs/simple-single-select/menu/filter.js +60 -0
  42. package/build/cjs/simple-single-select/menu/index.js +12 -0
  43. package/build/cjs/simple-single-select/menu/loading.js +30 -0
  44. package/build/cjs/simple-single-select/menu/menu.js +158 -0
  45. package/build/cjs/simple-single-select/menu/no-match.js +28 -0
  46. package/build/cjs/simple-single-select/menu/option.js +120 -0
  47. package/build/cjs/simple-single-select/menu/options-list.js +97 -0
  48. package/build/cjs/simple-single-select/selected-value/clear-button.js +74 -0
  49. package/build/cjs/simple-single-select/selected-value/container.js +100 -0
  50. package/build/cjs/simple-single-select/selected-value/index.js +12 -0
  51. package/build/cjs/simple-single-select/selected-value/placeholder.js +30 -0
  52. package/build/cjs/simple-single-select/selected-value/prefix.js +30 -0
  53. package/build/cjs/simple-single-select/selected-value/selected-value.js +119 -0
  54. package/build/cjs/simple-single-select/shared-prop-types.js +14 -0
  55. package/build/cjs/simple-single-select/simple-single-select.e2e.stories.js +156 -0
  56. package/build/cjs/simple-single-select/simple-single-select.js +319 -0
  57. package/build/cjs/simple-single-select/simple-single-select.prod.stories.js +235 -0
  58. package/build/cjs/simple-single-select/simple-single-select.test.js +1106 -0
  59. package/build/cjs/simple-single-select/use-handle-key-press/index.js +19 -0
  60. package/build/cjs/simple-single-select/use-handle-key-press/use-focus-option.js +24 -0
  61. package/build/cjs/simple-single-select/use-handle-key-press/use-handle-key-press-on-combobox.js +183 -0
  62. package/build/cjs/simple-single-select/use-handle-key-press/use-handle-key-press-on-filter-input.js +106 -0
  63. package/build/cjs/simple-single-select/use-handle-key-press/use-handle-typing.js +81 -0
  64. package/build/cjs/simple-single-select/use-handle-key-press/use-highlight-first-option-on-previous-page.js +50 -0
  65. package/build/cjs/simple-single-select/use-handle-key-press/use-highlight-first-visible-option.js +30 -0
  66. package/build/cjs/simple-single-select/use-handle-key-press/use-highlight-last-option-on-next-page.js +50 -0
  67. package/build/cjs/simple-single-select/use-handle-key-press/use-highlight-last-visible-option.js +42 -0
  68. package/build/cjs/simple-single-select/use-handle-key-press/use-page-down.js +45 -0
  69. package/build/cjs/simple-single-select/use-handle-key-press/use-page-up.js +44 -0
  70. package/build/cjs/simple-single-select/use-handle-key-press/utils.js +46 -0
  71. package/build/cjs/simple-single-select-field/index.js +12 -0
  72. package/build/cjs/simple-single-select-field/simple-single-select-field.js +138 -0
  73. package/build/cjs/simple-single-select-field/simple-single-select-field.prod.stories.js +188 -0
  74. package/build/cjs/simple-single-select-field/simple-single-select-field.test.js +133 -0
  75. package/build/es/index.js +2 -0
  76. package/build/es/locales/en/translations.json +7 -5
  77. package/build/es/simple-single-select/__stories__/DefaultPosition.js +29 -0
  78. package/build/es/simple-single-select/__stories__/Dense.js +13 -0
  79. package/build/es/simple-single-select/__stories__/Empty.js +11 -0
  80. package/build/es/simple-single-select/__stories__/EmptyWithEmptyNode.js +19 -0
  81. package/build/es/simple-single-select/__stories__/EmptyWithEmptyText.js +12 -0
  82. package/build/es/simple-single-select/__stories__/FlippedPosition.js +28 -0
  83. package/build/es/simple-single-select/__stories__/InfiniteLoading.js +53 -0
  84. package/build/es/simple-single-select/__stories__/Loading.js +12 -0
  85. package/build/es/simple-single-select/__stories__/ShiftedIntoView.js +18 -0
  86. package/build/es/simple-single-select/__stories__/WithClearButton.js +16 -0
  87. package/build/es/simple-single-select/__stories__/WithCustomLowMaxHeight.js +13 -0
  88. package/build/es/simple-single-select/__stories__/WithCustomOptions.js +38 -0
  89. package/build/es/simple-single-select/__stories__/WithDisabledOption.js +19 -0
  90. package/build/es/simple-single-select/__stories__/WithFilterField.js +27 -0
  91. package/build/es/simple-single-select/__stories__/WithInitialFocus.js +29 -0
  92. package/build/es/simple-single-select/__stories__/WithManyOptions.js +15 -0
  93. package/build/es/simple-single-select/__stories__/WithNoMatchText.js +21 -0
  94. package/build/es/simple-single-select/__stories__/WithOnBlur.js +14 -0
  95. package/build/es/simple-single-select/__stories__/WithOnFocus.js +14 -0
  96. package/build/es/simple-single-select/__stories__/WithOptionsAndDisabled.js +13 -0
  97. package/build/es/simple-single-select/__stories__/WithOptionsAndLoading.js +25 -0
  98. package/build/es/simple-single-select/__stories__/WithOptionsAndLoadingText.js +26 -0
  99. package/build/es/simple-single-select/__stories__/WithPlaceholder.js +14 -0
  100. package/build/es/simple-single-select/__stories__/WithPlaceholderAndSelection.js +16 -0
  101. package/build/es/simple-single-select/__stories__/WithPrefix.js +13 -0
  102. package/build/es/simple-single-select/__stories__/WithPrefixAndSelection.js +16 -0
  103. package/build/es/simple-single-select/__stories__/WithRTL.js +25 -0
  104. package/build/es/simple-single-select/__stories__/WithScrollingParent.js +27 -0
  105. package/build/es/simple-single-select/__stories__/WithSelection.js +15 -0
  106. package/build/es/simple-single-select/__stories__/WithSelectionAndDisabled.js +16 -0
  107. package/build/es/simple-single-select/__stories__/WithoutOptionsAndLoading.js +12 -0
  108. package/build/es/simple-single-select/__stories__/WithoutSelection.js +13 -0
  109. package/build/es/simple-single-select/__stories__/options.js +71 -0
  110. package/build/es/simple-single-select/features/keyboard-interactions.test.e2e.js +439 -0
  111. package/build/es/simple-single-select/features/menu-positioning.test.e2e.js +150 -0
  112. package/build/es/simple-single-select/index.js +2 -0
  113. package/build/es/simple-single-select/is-option-hidden.js +16 -0
  114. package/build/es/simple-single-select/menu/empty.js +19 -0
  115. package/build/es/simple-single-select/menu/filter.js +53 -0
  116. package/build/es/simple-single-select/menu/index.js +1 -0
  117. package/build/es/simple-single-select/menu/loading.js +23 -0
  118. package/build/es/simple-single-select/menu/menu.js +149 -0
  119. package/build/es/simple-single-select/menu/no-match.js +21 -0
  120. package/build/es/simple-single-select/menu/option.js +111 -0
  121. package/build/es/simple-single-select/menu/options-list.js +88 -0
  122. package/build/es/simple-single-select/selected-value/clear-button.js +68 -0
  123. package/build/es/simple-single-select/selected-value/container.js +91 -0
  124. package/build/es/simple-single-select/selected-value/index.js +1 -0
  125. package/build/es/simple-single-select/selected-value/placeholder.js +23 -0
  126. package/build/es/simple-single-select/selected-value/prefix.js +23 -0
  127. package/build/es/simple-single-select/selected-value/selected-value.js +112 -0
  128. package/build/es/simple-single-select/shared-prop-types.js +7 -0
  129. package/build/es/simple-single-select/simple-single-select.e2e.stories.js +142 -0
  130. package/build/es/simple-single-select/simple-single-select.js +310 -0
  131. package/build/es/simple-single-select/simple-single-select.prod.stories.js +37 -0
  132. package/build/es/simple-single-select/simple-single-select.test.js +1103 -0
  133. package/build/es/simple-single-select/use-handle-key-press/index.js +2 -0
  134. package/build/es/simple-single-select/use-handle-key-press/use-focus-option.js +18 -0
  135. package/build/es/simple-single-select/use-handle-key-press/use-handle-key-press-on-combobox.js +177 -0
  136. package/build/es/simple-single-select/use-handle-key-press/use-handle-key-press-on-filter-input.js +100 -0
  137. package/build/es/simple-single-select/use-handle-key-press/use-handle-typing.js +75 -0
  138. package/build/es/simple-single-select/use-handle-key-press/use-highlight-first-option-on-previous-page.js +44 -0
  139. package/build/es/simple-single-select/use-handle-key-press/use-highlight-first-visible-option.js +24 -0
  140. package/build/es/simple-single-select/use-handle-key-press/use-highlight-last-option-on-next-page.js +44 -0
  141. package/build/es/simple-single-select/use-handle-key-press/use-highlight-last-visible-option.js +36 -0
  142. package/build/es/simple-single-select/use-handle-key-press/use-page-down.js +39 -0
  143. package/build/es/simple-single-select/use-handle-key-press/use-page-up.js +38 -0
  144. package/build/es/simple-single-select/use-handle-key-press/utils.js +36 -0
  145. package/build/es/simple-single-select-field/index.js +1 -0
  146. package/build/es/simple-single-select-field/simple-single-select-field.js +131 -0
  147. package/build/es/simple-single-select-field/simple-single-select-field.prod.stories.js +172 -0
  148. package/build/es/simple-single-select-field/simple-single-select-field.test.js +130 -0
  149. package/package.json +15 -15
  150. package/types/index.d.ts +184 -1
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Container = void 0;
7
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
8
+ var _uiConstants = require("@dhis2/ui-constants");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ const Container = exports.Container = /*#__PURE__*/(0, _react.forwardRef)(function Container(_ref, ref) {
16
+ let {
17
+ children,
18
+ comboBoxId,
19
+ autoFocus,
20
+ dataTest,
21
+ dense,
22
+ disabled,
23
+ error,
24
+ expanded,
25
+ labelledBy,
26
+ name,
27
+ placeholder,
28
+ tabIndex,
29
+ valid,
30
+ warning,
31
+ onBlur,
32
+ onClick: _onClick,
33
+ onFocus,
34
+ onKeyDown
35
+ } = _ref;
36
+ // Using useEffect so we have access to the ref, which will be set before
37
+ // the first call to the useEffect's callback
38
+ (0, _react.useEffect)(() => {
39
+ if (autoFocus) {
40
+ ref.current.focus();
41
+ }
42
+ },
43
+ // We want to run this only once:
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ []);
46
+ const onClick = (0, _react.useCallback)(function () {
47
+ if (!disabled) {
48
+ _onClick(...arguments);
49
+ }
50
+ }, [disabled, _onClick]);
51
+ return /*#__PURE__*/_react.default.createElement("div", {
52
+ "data-test": dataTest,
53
+ ref: ref,
54
+ "aria-controls": `${name}-listbox`,
55
+ "aria-expanded": expanded.toString(),
56
+ "aria-haspopup": "listbox",
57
+ "aria-labelledby": labelledBy,
58
+ "aria-placeholder": placeholder,
59
+ id: comboBoxId,
60
+ role: "combobox",
61
+ tabIndex: tabIndex,
62
+ onFocus: onFocus,
63
+ onBlur: onBlur,
64
+ onClick: onClick,
65
+ onKeyDown: e => {
66
+ e.stopPropagation();
67
+ onKeyDown(e);
68
+ },
69
+ className: _style.default.dynamic([["2391216206", [_uiConstants.colors.grey500, _uiConstants.colors.grey900, _uiConstants.theme.focus, _uiConstants.theme.focus, _uiConstants.theme.valid, _uiConstants.theme.warning, _uiConstants.theme.error, _uiConstants.colors.grey100, _uiConstants.colors.grey500, _uiConstants.theme.disabled]]]) + " " + ((0, _classnames.default)({
70
+ error,
71
+ warning,
72
+ valid,
73
+ disabled,
74
+ dense
75
+ }) || "")
76
+ }, children, /*#__PURE__*/_react.default.createElement(_style.default, {
77
+ id: "2391216206",
78
+ dynamic: [_uiConstants.colors.grey500, _uiConstants.colors.grey900, _uiConstants.theme.focus, _uiConstants.theme.focus, _uiConstants.theme.valid, _uiConstants.theme.warning, _uiConstants.theme.error, _uiConstants.colors.grey100, _uiConstants.colors.grey500, _uiConstants.theme.disabled]
79
+ }, [`div.__jsx-style-dynamic-selector{background-color:white;border-radius:3px;border:1px solid ${_uiConstants.colors.grey500};box-sizing:border-box;min-height:40px;padding-block:6px;padding-inline:12px;box-shadow:inset 0 0 1px 0 rgba(48,54,60,0.1);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:${_uiConstants.colors.grey900};font-size:14px;line-height:16px;}`, `div.__jsx-style-dynamic-selector:not(.disabled):focus,div.__jsx-style-dynamic-selector:not(.disabled):active{outline:none;box-shadow:inset 0 0 0 2px ${_uiConstants.theme.focus};border-color:${_uiConstants.theme.focus};}`, `div.valid.__jsx-style-dynamic-selector{border-color:${_uiConstants.theme.valid};}`, `div.warning.__jsx-style-dynamic-selector{border-color:${_uiConstants.theme.warning};}`, `div.error.__jsx-style-dynamic-selector{border-color:${_uiConstants.theme.error};}`, `div.disabled.__jsx-style-dynamic-selector{background-color:${_uiConstants.colors.grey100};border-color:${_uiConstants.colors.grey500};color:${_uiConstants.theme.disabled};cursor:not-allowed;}`, "div.dense.__jsx-style-dynamic-selector{padding-block:2px;padding-inline:8px;min-height:32px;}"]));
80
+ });
81
+ Container.propTypes = {
82
+ children: _propTypes.default.any.isRequired,
83
+ comboBoxId: _propTypes.default.string.isRequired,
84
+ name: _propTypes.default.string.isRequired,
85
+ onKeyDown: _propTypes.default.func.isRequired,
86
+ autoFocus: _propTypes.default.bool,
87
+ dataTest: _propTypes.default.string,
88
+ dense: _propTypes.default.bool,
89
+ disabled: _propTypes.default.bool,
90
+ error: _propTypes.default.bool,
91
+ expanded: _propTypes.default.bool,
92
+ labelledBy: _propTypes.default.string,
93
+ placeholder: _propTypes.default.string,
94
+ tabIndex: _propTypes.default.string,
95
+ valid: _propTypes.default.bool,
96
+ warning: _propTypes.default.bool,
97
+ onBlur: _propTypes.default.func,
98
+ onClick: _propTypes.default.func,
99
+ onFocus: _propTypes.default.func
100
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "SelectedValue", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _selectedValue.SelectedValue;
10
+ }
11
+ });
12
+ var _selectedValue = require("./selected-value.js");
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Placeholder = Placeholder;
7
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
8
+ var _uiConstants = require("@dhis2/ui-constants");
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function Placeholder(_ref) {
13
+ let {
14
+ placeholder,
15
+ className,
16
+ dataTest
17
+ } = _ref;
18
+ return /*#__PURE__*/_react.default.createElement("div", {
19
+ "data-test": dataTest,
20
+ className: _style.default.dynamic([["1027033961", [_uiConstants.colors.grey600]]]) + " " + (className || "")
21
+ }, placeholder, /*#__PURE__*/_react.default.createElement(_style.default, {
22
+ id: "1027033961",
23
+ dynamic: [_uiConstants.colors.grey600]
24
+ }, [`div.__jsx-style-dynamic-selector{color:${_uiConstants.colors.grey600};-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`]));
25
+ }
26
+ Placeholder.propTypes = {
27
+ dataTest: _propTypes.default.string.isRequired,
28
+ className: _propTypes.default.string,
29
+ placeholder: _propTypes.default.string
30
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Prefix = Prefix;
7
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
8
+ var _uiConstants = require("@dhis2/ui-constants");
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function Prefix(_ref) {
13
+ let {
14
+ prefix,
15
+ className,
16
+ dataTest
17
+ } = _ref;
18
+ return /*#__PURE__*/_react.default.createElement("div", {
19
+ "data-test": dataTest,
20
+ className: _style.default.dynamic([["1343055987", [_uiConstants.colors.grey600, _uiConstants.spacers.dp12]]]) + " " + (className || "")
21
+ }, prefix, /*#__PURE__*/_react.default.createElement(_style.default, {
22
+ id: "1343055987",
23
+ dynamic: [_uiConstants.colors.grey600, _uiConstants.spacers.dp12]
24
+ }, [`div.__jsx-style-dynamic-selector{color:${_uiConstants.colors.grey600};padding-inline-end:${_uiConstants.spacers.dp12};font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`]));
25
+ }
26
+ Prefix.propTypes = {
27
+ dataTest: _propTypes.default.string.isRequired,
28
+ className: _propTypes.default.string,
29
+ prefix: _propTypes.default.string
30
+ };
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SelectedValue = SelectedValue;
7
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
8
+ var _uiIcons = require("@dhis2/ui-icons");
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _clearButton = require("./clear-button.js");
12
+ var _container = require("./container.js");
13
+ var _placeholder = require("./placeholder.js");
14
+ var _prefix = require("./prefix.js");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ function SelectedValue(_ref) {
17
+ let {
18
+ clearText,
19
+ comboBoxId,
20
+ name,
21
+ selectedLabel,
22
+ onKeyDown,
23
+ autoFocus,
24
+ clearable,
25
+ comboBoxRef,
26
+ dataTest,
27
+ dense,
28
+ disabled,
29
+ error,
30
+ expanded,
31
+ hasSelection,
32
+ inputMaxHeight,
33
+ labelledBy,
34
+ placeholder,
35
+ prefix,
36
+ tabIndex,
37
+ valid,
38
+ warning,
39
+ onBlur,
40
+ onClear,
41
+ onClick,
42
+ onFocus
43
+ } = _ref;
44
+ const dataTestPrefix = `${dataTest}-selectedvalue`;
45
+ return /*#__PURE__*/_react.default.createElement(_container.Container, {
46
+ dataTest: `${dataTestPrefix}-container`,
47
+ ref: comboBoxRef,
48
+ comboBoxId: comboBoxId,
49
+ autoFocus: autoFocus,
50
+ dense: dense,
51
+ disabled: disabled,
52
+ error: error,
53
+ expanded: expanded,
54
+ labelledBy: labelledBy,
55
+ name: name,
56
+ placeholder: placeholder,
57
+ tabIndex: tabIndex,
58
+ valid: valid,
59
+ warning: warning,
60
+ onBlur: onBlur,
61
+ onClick: onClick,
62
+ onFocus: onFocus,
63
+ onKeyDown: onKeyDown
64
+ }, prefix && /*#__PURE__*/_react.default.createElement(_prefix.Prefix, {
65
+ dataTest: `${dataTestPrefix}-prefix`,
66
+ prefix: prefix
67
+ }), /*#__PURE__*/_react.default.createElement("div", {
68
+ tabIndex: "-1",
69
+ className: _style.default.dynamic([["3226769786", [inputMaxHeight]]]) + " " + "selected-option-label"
70
+ }, !selectedLabel && !prefix && placeholder && /*#__PURE__*/_react.default.createElement(_placeholder.Placeholder, {
71
+ dataTest: `${dataTestPrefix}-placeholder`,
72
+ placeholder: placeholder
73
+ }), selectedLabel), hasSelection && clearable && !disabled && /*#__PURE__*/_react.default.createElement("div", {
74
+ className: _style.default.dynamic([["3226769786", [inputMaxHeight]]]) + " " + "clear-button-container"
75
+ }, /*#__PURE__*/_react.default.createElement(_clearButton.ClearButton, {
76
+ clearText: clearText,
77
+ dataTest: `${dataTestPrefix}-clear`,
78
+ onClear: onClear
79
+ })), /*#__PURE__*/_react.default.createElement("span", {
80
+ "aria-label": "Open select",
81
+ onClick: () => {
82
+ comboBoxRef.current.focus();
83
+ onClick();
84
+ },
85
+ className: _style.default.dynamic([["3226769786", [inputMaxHeight]]]) + " " + "toggle-icon"
86
+ }, /*#__PURE__*/_react.default.createElement(_uiIcons.IconChevronDown16, null)), /*#__PURE__*/_react.default.createElement(_style.default, {
87
+ id: "3226769786",
88
+ dynamic: [inputMaxHeight]
89
+ }, [`.selected-option-label.__jsx-style-dynamic-selector{overflow-y:auto;max-height:${inputMaxHeight};-webkit-flex:1;-ms-flex:1;flex:1;}`, ".clear-button-container.__jsx-style-dynamic-selector{margin-inline-start:auto;}", ".toggle-icon.__jsx-style-dynamic-selector{display:block;background:none;padding:0;border:0;}"]));
90
+ }
91
+ SelectedValue.propTypes = {
92
+ clearText: _propTypes.default.string.isRequired,
93
+ comboBoxId: _propTypes.default.string.isRequired,
94
+ name: _propTypes.default.string.isRequired,
95
+ selectedLabel: _propTypes.default.string.isRequired,
96
+ onKeyDown: _propTypes.default.func.isRequired,
97
+ autoFocus: _propTypes.default.bool,
98
+ clearable: _propTypes.default.bool,
99
+ comboBoxRef: _propTypes.default.shape({
100
+ current: _propTypes.default.instanceOf(HTMLElement)
101
+ }),
102
+ dataTest: _propTypes.default.string,
103
+ dense: _propTypes.default.bool,
104
+ disabled: _propTypes.default.bool,
105
+ error: _propTypes.default.bool,
106
+ expanded: _propTypes.default.bool,
107
+ hasSelection: _propTypes.default.bool,
108
+ inputMaxHeight: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
109
+ labelledBy: _propTypes.default.string,
110
+ placeholder: _propTypes.default.string,
111
+ prefix: _propTypes.default.string,
112
+ tabIndex: _propTypes.default.string,
113
+ valid: _propTypes.default.bool,
114
+ warning: _propTypes.default.bool,
115
+ onBlur: _propTypes.default.func,
116
+ onClear: _propTypes.default.func,
117
+ onClick: _propTypes.default.func,
118
+ onFocus: _propTypes.default.func
119
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.optionProp = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const optionProp = exports.optionProp = _propTypes.default.shape({
10
+ label: _propTypes.default.string.isRequired,
11
+ value: _propTypes.default.string.isRequired,
12
+ component: _propTypes.default.elementType,
13
+ disabled: _propTypes.default.bool
14
+ });
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.ShiftedIntoView = exports.HundretOptionsWithDisabled = exports.HundretOptions = exports.FlippedPosition = exports.DefaultPosition = void 0;
7
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _simpleSingleSelect = require("./simple-single-select.js");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ var _default = exports.default = {
14
+ title: 'Simple Single Select',
15
+ component: _simpleSingleSelect.SimpleSingleSelect
16
+ };
17
+ const options = [{
18
+ label: 'ANC 1st visit',
19
+ value: 'anc_1st_visit'
20
+ }, {
21
+ label: 'ANC 2nd visit',
22
+ value: 'anc_2nd_visit'
23
+ }, {
24
+ label: 'ANC 3rd visit',
25
+ value: 'anc_3rd_visit'
26
+ }, {
27
+ label: 'ANC 4th or more visits',
28
+ value: 'anc_4th_or_more_visits'
29
+ }, {
30
+ label: 'ARI treated with antibiotics (pneumonia) follow-up',
31
+ value: 'ari_treated_with_antibiotics_(pneumonia)_follow-up'
32
+ }, {
33
+ label: 'ARI treated with antibiotics (pneumonia) new',
34
+ value: 'ari_treated_with_antibiotics_(pneumonia)_new'
35
+ }, {
36
+ label: 'ARI treated with antibiotics (pneumonia) referrals',
37
+ value: 'ari_treated_with_antibiotics_(pneumonia)_referrals'
38
+ }, {
39
+ label: 'ARI treated without antibiotics (cough) follow-up',
40
+ value: 'ari_treated_without_antibiotics_(cough)_follow-up'
41
+ }, {
42
+ label: 'ARI treated without antibiotics (cough) new',
43
+ value: 'ari_treated_without_antibiotics_(cough)_new'
44
+ }, {
45
+ label: 'ARI treated without antibiotics (cough) referrals',
46
+ value: 'ari_treated_without_antibiotics_(cough)_referrals'
47
+ }, {
48
+ label: 'ART No clients who stopped TRT due to TRT failure',
49
+ value: 'art_no_clients_who_stopped_trt_due_to_trt_failure'
50
+ }, {
51
+ label: 'ART No clients who stopped TRT due to adverse clinical status/event',
52
+ value: 'art_no_clients_who_stopped_trt_due_to_adverse_clinical_status/event'
53
+ }, {
54
+ label: 'ART No clients with change of regimen due to drug toxicity',
55
+ value: 'art_no_clients_with_change_of_regimen_due_to_drug_toxicity'
56
+ }, {
57
+ label: 'ART No clients with new adverse drug reaction',
58
+ value: 'art_no_clients_with_new_adverse_drug_reaction'
59
+ }, {
60
+ label: 'ART No started Opportunist Infection prophylaxis',
61
+ value: 'art_no_started_opportunist_infection_prophylaxis'
62
+ }, {
63
+ label: 'ART clients with new adverse clinical event',
64
+ value: 'art_clients_with_new_adverse_clinical_event'
65
+ }, {
66
+ label: 'ART defaulters',
67
+ value: 'art_defaulters'
68
+ }, {
69
+ label: 'ART enrollment stage 1',
70
+ value: 'art_enrollment_stage_1'
71
+ }, {
72
+ label: 'ART enrollment stage 2',
73
+ value: 'art_enrollment_stage_2'
74
+ }, {
75
+ label: 'ART enrollment stage 3',
76
+ value: 'art_enrollment_stage_3'
77
+ }, {
78
+ label: 'ART enrollment stage 4',
79
+ value: 'art_enrollment_stage_4'
80
+ }, {
81
+ label: 'ART entry point: No PMTCT',
82
+ value: 'art_entry_point:_no_pmtct'
83
+ }];
84
+ const fiveOptions = options.slice(0, 5);
85
+ const DefaultPosition = () => /*#__PURE__*/_react.default.createElement(_simpleSingleSelect.SimpleSingleSelect, {
86
+ name: "Simple",
87
+ selected: {
88
+ label: 'ANC 1st visit',
89
+ value: 'anc_1st_visit'
90
+ },
91
+ onChange: () => null,
92
+ options: fiveOptions
93
+ });
94
+ exports.DefaultPosition = DefaultPosition;
95
+ const FlippedPosition = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_simpleSingleSelect.SimpleSingleSelect, {
96
+ name: "Simple",
97
+ selected: {
98
+ label: 'ANC 1st visit',
99
+ value: 'anc_1st_visit'
100
+ },
101
+ onChange: () => null,
102
+ options: options
103
+ }), /*#__PURE__*/_react.default.createElement(_style.default, {
104
+ id: "979451016"
105
+ }, ["html,body,#storybook-root{position:relative;height:500px;max-height:500px;}", "#storybook-root{padding-top:400px !important;}"]));
106
+ exports.FlippedPosition = FlippedPosition;
107
+ const ShiftedIntoView = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_simpleSingleSelect.SimpleSingleSelect, {
108
+ name: "Simple",
109
+ selected: {
110
+ label: 'ANC 1st visit',
111
+ value: 'anc_1st_visit'
112
+ },
113
+ onChange: () => null,
114
+ options: options
115
+ }), /*#__PURE__*/_react.default.createElement(_style.default, {
116
+ id: "438540012"
117
+ }, ["html,body,#storybook-root{position:relative;height:300px !important;max-height:300px;}", "#storybook-root{padding-top:130px !important;}"]));
118
+ exports.ShiftedIntoView = ShiftedIntoView;
119
+ const HundretOptions = () => {
120
+ const [selected, setSelected] = (0, _react.useState)({
121
+ value: '0',
122
+ label: `Select option 0`
123
+ });
124
+ const [hundretOptions] = (0, _react.useState)(Array.apply(null, Array(100)).map((x, i) => ({
125
+ value: `${i}`,
126
+ label: `Select option ${i}`
127
+ })));
128
+ return /*#__PURE__*/_react.default.createElement(_simpleSingleSelect.SimpleSingleSelect, {
129
+ name: "Simple",
130
+ selected: selected,
131
+ onChange: setSelected,
132
+ options: hundretOptions
133
+ });
134
+ };
135
+ exports.HundretOptions = HundretOptions;
136
+ const HundretOptionsWithDisabled = () => {
137
+ const [selected, setSelected] = (0, _react.useState)({
138
+ value: '10',
139
+ label: `Select option 10`
140
+ });
141
+ const [hundretOptions] = (0, _react.useState)(Array.apply(null, Array(100)).map((x, i) => ({
142
+ value: `${i}`,
143
+ label: `Select option ${i}`,
144
+ disabled: [0,
145
+ // first otpion
146
+ 17, 18, 99 // last otpion
147
+ ].includes(i)
148
+ })));
149
+ return /*#__PURE__*/_react.default.createElement(_simpleSingleSelect.SimpleSingleSelect, {
150
+ name: "Simple",
151
+ selected: selected,
152
+ onChange: setSelected,
153
+ options: hundretOptions
154
+ });
155
+ };
156
+ exports.HundretOptionsWithDisabled = HundretOptionsWithDisabled;