@pareto-engineering/design-system 4.0.0-alpha.62 → 4.0.0-alpha.63

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 (192) hide show
  1. package/dist/cjs/f/FormInput/FormInput.js +43 -13
  2. package/dist/cjs/f/common/V2/Description/Description.js +76 -0
  3. package/dist/cjs/f/common/V2/Description/index.js +13 -0
  4. package/dist/cjs/f/common/V2/Description/styles.scss +10 -0
  5. package/dist/cjs/f/common/V2/Label/Label.js +84 -0
  6. package/dist/cjs/f/common/V2/Label/index.js +13 -0
  7. package/dist/cjs/f/common/V2/Label/styles.scss +9 -0
  8. package/dist/cjs/f/common/V2/index.js +19 -0
  9. package/dist/cjs/f/common/index.js +12 -0
  10. package/dist/cjs/f/fields/V2/Checkbox/Checkbox.js +122 -0
  11. package/dist/cjs/f/fields/V2/Checkbox/index.js +13 -0
  12. package/dist/cjs/f/fields/V2/Checkbox/styles.scss +16 -0
  13. package/dist/cjs/f/fields/V2/ChoicesInput/ChoicesInput.js +154 -0
  14. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/Choice.js +104 -0
  15. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/index.js +13 -0
  16. package/dist/cjs/f/fields/V2/ChoicesInput/common/index.js +12 -0
  17. package/dist/cjs/f/fields/V2/ChoicesInput/index.js +13 -0
  18. package/dist/cjs/f/fields/V2/ChoicesInput/styles.scss +79 -0
  19. package/dist/cjs/f/fields/V2/EditorInput/EditorInput.js +197 -0
  20. package/dist/cjs/f/fields/V2/EditorInput/common/Toolbar.js +257 -0
  21. package/dist/cjs/f/fields/V2/EditorInput/common/TreeViewPlugin.js +18 -0
  22. package/dist/cjs/f/fields/V2/EditorInput/common/index.js +20 -0
  23. package/dist/cjs/f/fields/V2/EditorInput/index.js +13 -0
  24. package/dist/cjs/f/fields/V2/EditorInput/styles.scss +149 -0
  25. package/dist/cjs/f/fields/V2/LinkInput/LinkInput.js +156 -0
  26. package/dist/cjs/f/fields/V2/LinkInput/index.js +13 -0
  27. package/dist/cjs/f/fields/V2/LinkInput/styles.scss +90 -0
  28. package/dist/cjs/f/fields/V2/QueryChoices/QueryChoices.js +137 -0
  29. package/dist/cjs/f/fields/V2/QueryChoices/index.js +13 -0
  30. package/dist/cjs/f/fields/V2/QueryCombobox/QueryCombobox.js +229 -0
  31. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +236 -0
  32. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/index.js +13 -0
  33. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/Menu.js +83 -0
  34. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/index.js +13 -0
  35. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +300 -0
  36. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +13 -0
  37. package/dist/cjs/f/fields/V2/QueryCombobox/common/index.js +26 -0
  38. package/dist/cjs/f/fields/V2/QueryCombobox/index.js +13 -0
  39. package/dist/cjs/f/fields/V2/QueryCombobox/styles.scss +127 -0
  40. package/dist/cjs/f/fields/V2/QuerySelect/QuerySelect.js +198 -0
  41. package/dist/cjs/f/fields/V2/QuerySelect/index.js +13 -0
  42. package/dist/cjs/f/fields/V2/RatingsInput/RatingsInput.js +130 -0
  43. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/Rating.js +117 -0
  44. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/index.js +13 -0
  45. package/dist/cjs/f/fields/V2/RatingsInput/common/index.js +12 -0
  46. package/dist/cjs/f/fields/V2/RatingsInput/index.js +13 -0
  47. package/dist/cjs/f/fields/V2/RatingsInput/styles.scss +48 -0
  48. package/dist/cjs/f/fields/V2/SelectInput/SelectInput.js +154 -0
  49. package/dist/cjs/f/fields/V2/SelectInput/index.js +13 -0
  50. package/dist/cjs/f/fields/V2/SelectInput/styles.scss +87 -0
  51. package/dist/cjs/f/fields/V2/TextInput/TextInput.js +155 -0
  52. package/dist/cjs/f/fields/V2/TextInput/index.js +13 -0
  53. package/dist/cjs/f/fields/V2/TextInput/styles.scss +78 -0
  54. package/dist/cjs/f/fields/V2/TextareaInput/TextareaInput.js +152 -0
  55. package/dist/cjs/f/fields/V2/TextareaInput/index.js +13 -0
  56. package/dist/cjs/f/fields/V2/TextareaInput/styles.scss +53 -0
  57. package/dist/cjs/f/fields/V2/index.js +82 -0
  58. package/dist/cjs/f/fields/index.js +26 -1
  59. package/dist/es/f/FormInput/FormInput.js +33 -3
  60. package/dist/es/f/common/V2/Description/Description.js +68 -0
  61. package/dist/es/f/common/V2/Description/index.js +2 -0
  62. package/dist/es/f/common/V2/Description/styles.scss +10 -0
  63. package/dist/es/f/common/V2/Label/Label.js +76 -0
  64. package/dist/es/f/common/V2/Label/index.js +2 -0
  65. package/dist/es/f/common/V2/Label/styles.scss +9 -0
  66. package/dist/es/f/common/V2/index.js +2 -0
  67. package/dist/es/f/common/index.js +2 -1
  68. package/dist/es/f/fields/V2/Checkbox/Checkbox.js +114 -0
  69. package/dist/es/f/fields/V2/Checkbox/index.js +2 -0
  70. package/dist/es/f/fields/V2/Checkbox/styles.scss +16 -0
  71. package/dist/es/f/fields/V2/ChoicesInput/ChoicesInput.js +148 -0
  72. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/Choice.js +97 -0
  73. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  74. package/dist/es/f/fields/V2/ChoicesInput/common/index.js +1 -0
  75. package/dist/es/f/fields/V2/ChoicesInput/index.js +2 -0
  76. package/dist/es/f/fields/V2/ChoicesInput/styles.scss +79 -0
  77. package/dist/es/f/fields/V2/EditorInput/EditorInput.js +192 -0
  78. package/dist/es/f/fields/V2/EditorInput/common/Toolbar.js +246 -0
  79. package/dist/es/f/fields/V2/EditorInput/common/TreeViewPlugin.js +11 -0
  80. package/dist/es/f/fields/V2/EditorInput/common/index.js +2 -0
  81. package/dist/es/f/fields/V2/EditorInput/index.js +2 -0
  82. package/dist/es/f/fields/V2/EditorInput/styles.scss +149 -0
  83. package/dist/es/f/fields/V2/LinkInput/LinkInput.js +148 -0
  84. package/dist/es/f/fields/V2/LinkInput/index.js +2 -0
  85. package/dist/es/f/fields/V2/LinkInput/styles.scss +90 -0
  86. package/dist/es/f/fields/V2/QueryChoices/QueryChoices.js +126 -0
  87. package/dist/es/f/fields/V2/QueryChoices/index.js +2 -0
  88. package/dist/es/f/fields/V2/QueryCombobox/QueryCombobox.js +221 -0
  89. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +229 -0
  90. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  91. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/Menu.js +73 -0
  92. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  93. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +293 -0
  94. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  95. package/dist/es/f/fields/V2/QueryCombobox/common/index.js +3 -0
  96. package/dist/es/f/fields/V2/QueryCombobox/index.js +2 -0
  97. package/dist/es/f/fields/V2/QueryCombobox/styles.scss +127 -0
  98. package/dist/es/f/fields/V2/QuerySelect/QuerySelect.js +186 -0
  99. package/dist/es/f/fields/V2/QuerySelect/index.js +2 -0
  100. package/dist/es/f/fields/V2/RatingsInput/RatingsInput.js +124 -0
  101. package/dist/es/f/fields/V2/RatingsInput/common/Rating/Rating.js +109 -0
  102. package/dist/es/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  103. package/dist/es/f/fields/V2/RatingsInput/common/index.js +1 -0
  104. package/dist/es/f/fields/V2/RatingsInput/index.js +2 -0
  105. package/dist/es/f/fields/V2/RatingsInput/styles.scss +48 -0
  106. package/dist/es/f/fields/V2/SelectInput/SelectInput.js +146 -0
  107. package/dist/es/f/fields/V2/SelectInput/index.js +2 -0
  108. package/dist/es/f/fields/V2/SelectInput/styles.scss +87 -0
  109. package/dist/es/f/fields/V2/TextInput/TextInput.js +147 -0
  110. package/dist/es/f/fields/V2/TextInput/index.js +2 -0
  111. package/dist/es/f/fields/V2/TextInput/styles.scss +78 -0
  112. package/dist/es/f/fields/V2/TextareaInput/TextareaInput.js +146 -0
  113. package/dist/es/f/fields/V2/TextareaInput/index.js +2 -0
  114. package/dist/es/f/fields/V2/TextareaInput/styles.scss +53 -0
  115. package/dist/es/f/fields/V2/index.js +11 -0
  116. package/dist/es/f/fields/index.js +2 -1
  117. package/package.json +3 -3
  118. package/src/stories/f/v2/Checkbox.stories.jsx +102 -0
  119. package/src/stories/f/v2/ChoicesInput.stories.jsx +139 -0
  120. package/src/stories/f/v2/EditorInput.stories.jsx +81 -0
  121. package/src/stories/f/v2/LinkInput.stories.jsx +93 -0
  122. package/src/stories/f/v2/QueryChoices.stories.jsx +144 -0
  123. package/src/stories/f/v2/QueryCombobox.stories.jsx +301 -0
  124. package/src/stories/f/v2/QuerySelect.stories.jsx +150 -0
  125. package/src/stories/f/v2/RatingsInput.stories.jsx +77 -0
  126. package/src/stories/f/v2/SelectInput.stories.jsx +95 -0
  127. package/src/stories/f/v2/TextInput.stories.jsx +120 -0
  128. package/src/stories/f/v2/TextareaInput.stories.jsx +107 -0
  129. package/src/stories/f/v2/__generated__/FormInputAllTaskStatusesQuery.graphql.js +122 -0
  130. package/src/stories/f/v2/__generated__/FormInputAllTeamsQuery.graphql.js +139 -0
  131. package/src/stories/f/v2/__generated__/QueryChoicesAllTaskStatusesQuery.graphql.js +122 -0
  132. package/src/stories/f/v2/__generated__/QueryComboboxAllTeamsQuery.graphql.js +139 -0
  133. package/src/stories/f/v2/__generated__/QuerySelectAllTaskStatusesQuery.graphql.js +122 -0
  134. package/src/ui/f/FormInput/FormInput.jsx +57 -12
  135. package/src/ui/f/common/V2/Description/Description.jsx +94 -0
  136. package/src/ui/f/common/V2/Description/index.js +2 -0
  137. package/src/ui/f/common/V2/Description/styles.scss +10 -0
  138. package/src/ui/f/common/V2/Label/Label.jsx +102 -0
  139. package/src/ui/f/common/V2/Label/index.js +2 -0
  140. package/src/ui/f/common/V2/Label/styles.scss +9 -0
  141. package/src/ui/f/common/V2/index.js +2 -0
  142. package/src/ui/f/common/index.js +1 -0
  143. package/src/ui/f/fields/V2/Checkbox/Checkbox.jsx +146 -0
  144. package/src/ui/f/fields/V2/Checkbox/index.js +2 -0
  145. package/src/ui/f/fields/V2/Checkbox/styles.scss +16 -0
  146. package/src/ui/f/fields/V2/ChoicesInput/ChoicesInput.jsx +183 -0
  147. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/Choice.jsx +125 -0
  148. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  149. package/src/ui/f/fields/V2/ChoicesInput/common/index.js +1 -0
  150. package/src/ui/f/fields/V2/ChoicesInput/index.js +2 -0
  151. package/src/ui/f/fields/V2/ChoicesInput/styles.scss +79 -0
  152. package/src/ui/f/fields/V2/EditorInput/EditorInput.jsx +244 -0
  153. package/src/ui/f/fields/V2/EditorInput/common/Toolbar.jsx +356 -0
  154. package/src/ui/f/fields/V2/EditorInput/common/TreeViewPlugin.jsx +16 -0
  155. package/src/ui/f/fields/V2/EditorInput/common/index.jsx +2 -0
  156. package/src/ui/f/fields/V2/EditorInput/index.js +2 -0
  157. package/src/ui/f/fields/V2/EditorInput/styles.scss +149 -0
  158. package/src/ui/f/fields/V2/LinkInput/LinkInput.jsx +187 -0
  159. package/src/ui/f/fields/V2/LinkInput/index.js +2 -0
  160. package/src/ui/f/fields/V2/LinkInput/styles.scss +90 -0
  161. package/src/ui/f/fields/V2/QueryChoices/QueryChoices.jsx +153 -0
  162. package/src/ui/f/fields/V2/QueryChoices/index.js +2 -0
  163. package/src/ui/f/fields/V2/QueryCombobox/QueryCombobox.jsx +254 -0
  164. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/Combobox.jsx +276 -0
  165. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  166. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/Menu.jsx +103 -0
  167. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  168. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +362 -0
  169. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  170. package/src/ui/f/fields/V2/QueryCombobox/common/index.js +3 -0
  171. package/src/ui/f/fields/V2/QueryCombobox/index.js +2 -0
  172. package/src/ui/f/fields/V2/QueryCombobox/styles.scss +127 -0
  173. package/src/ui/f/fields/V2/QuerySelect/QuerySelect.jsx +220 -0
  174. package/src/ui/f/fields/V2/QuerySelect/index.js +2 -0
  175. package/src/ui/f/fields/V2/RatingsInput/RatingsInput.jsx +152 -0
  176. package/src/ui/f/fields/V2/RatingsInput/common/Rating/Rating.jsx +142 -0
  177. package/src/ui/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  178. package/src/ui/f/fields/V2/RatingsInput/common/index.js +1 -0
  179. package/src/ui/f/fields/V2/RatingsInput/index.js +2 -0
  180. package/src/ui/f/fields/V2/RatingsInput/styles.scss +48 -0
  181. package/src/ui/f/fields/V2/SelectInput/SelectInput.jsx +187 -0
  182. package/src/ui/f/fields/V2/SelectInput/index.js +2 -0
  183. package/src/ui/f/fields/V2/SelectInput/styles.scss +87 -0
  184. package/src/ui/f/fields/V2/TextInput/TextInput.jsx +192 -0
  185. package/src/ui/f/fields/V2/TextInput/index.js +2 -0
  186. package/src/ui/f/fields/V2/TextInput/styles.scss +78 -0
  187. package/src/ui/f/fields/V2/TextareaInput/TextareaInput.jsx +180 -0
  188. package/src/ui/f/fields/V2/TextareaInput/index.js +2 -0
  189. package/src/ui/f/fields/V2/TextareaInput/styles.scss +53 -0
  190. package/src/ui/f/fields/V2/index.js +11 -0
  191. package/src/ui/f/fields/index.js +1 -0
  192. package/tests/__snapshots__/Storyshots.test.js.snap +5909 -0
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var React = _react;
9
+ var _formik = require("formik");
10
+ var _reactRelay = require("react-relay");
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _common = require("./common");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.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; } /* @pareto-engineering/generator-front 1.0.12 */ // Local Definitions
16
+ /**
17
+ * This is the component description.
18
+ */
19
+ const QueryCombobox = _ref => {
20
+ let {
21
+ id,
22
+ style,
23
+ className,
24
+ query,
25
+ multiple,
26
+ name,
27
+ label,
28
+ labelColor,
29
+ color,
30
+ optional,
31
+ description,
32
+ disabled,
33
+ debounceMs,
34
+ searchVariable,
35
+ extraVariables,
36
+ optionsKeyMap,
37
+ minLength,
38
+ transformSearch,
39
+ validate,
40
+ placeholder,
41
+ promptCreateNewOption
42
+ // ...otherProps
43
+ } = _ref;
44
+ (0, _react.useInsertionEffect)(() => {
45
+ Promise.resolve().then(() => _interopRequireWildcard(require("./styles.scss")));
46
+ }, []);
47
+ const [, meta, helpers] = (0, _formik.useField)({
48
+ name,
49
+ validate
50
+ });
51
+ const {
52
+ setValue,
53
+ setError
54
+ } = helpers;
55
+ const {
56
+ value
57
+ } = meta;
58
+ const environment = (0, _reactRelay.useRelayEnvironment)();
59
+ const [isFetching, setIsFetching] = (0, _react.useState)(false);
60
+ const [options, setOptions] = (0, _react.useState)([]);
61
+ const {
62
+ graphql,
63
+ accessor
64
+ } = query;
65
+ const getOptions = inputValue => {
66
+ if (isFetching) return;
67
+ let variables = {
68
+ [searchVariable]: inputValue
69
+ };
70
+ if (extraVariables) {
71
+ variables = {
72
+ ...variables,
73
+ ...extraVariables
74
+ };
75
+ }
76
+ (0, _reactRelay.fetchQuery)(environment, graphql, variables).subscribe({
77
+ start: () => {
78
+ setIsFetching(true);
79
+ },
80
+ complete: () => {
81
+ setIsFetching(false);
82
+ },
83
+ error: fetchError => {
84
+ setIsFetching(false);
85
+ if (setError) setError(fetchError.message);
86
+ },
87
+ next: data => {
88
+ setOptions(data[accessor].edges.map(_ref2 => {
89
+ let {
90
+ node
91
+ } = _ref2;
92
+ return {
93
+ value: node[optionsKeyMap.value],
94
+ label: optionsKeyMap.getLabel(node)
95
+ };
96
+ }));
97
+ }
98
+ });
99
+ };
100
+ const comboboxProps = {
101
+ id,
102
+ style,
103
+ options,
104
+ getOptions,
105
+ setOptions,
106
+ debounceMs,
107
+ disabled,
108
+ name,
109
+ label,
110
+ labelColor,
111
+ optional,
112
+ description,
113
+ setValue,
114
+ value,
115
+ color,
116
+ isFetching,
117
+ className,
118
+ minLength,
119
+ transformSearch,
120
+ placeholder,
121
+ promptCreateNewOption
122
+ };
123
+ const Input = multiple ? _common.MultipleCombobox : _common.Combobox;
124
+ return /*#__PURE__*/React.createElement(Input, comboboxProps);
125
+ };
126
+ QueryCombobox.propTypes = {
127
+ /**
128
+ * The HTML id for this element
129
+ */
130
+ id: _propTypes.default.string,
131
+ /**
132
+ * The HTML class names for this element
133
+ */
134
+ className: _propTypes.default.string,
135
+ /**
136
+ * The React-written, css properties for this element.
137
+ */
138
+ style: _propTypes.default.objectOf(_propTypes.default.string),
139
+ /**
140
+ * The name of the custom select input
141
+ */
142
+ name: _propTypes.default.string,
143
+ /**
144
+ * The label of the custom select input
145
+ */
146
+ label: _propTypes.default.string,
147
+ /**
148
+ * The label color of the custom select input
149
+ */
150
+ labelColor: _propTypes.default.string,
151
+ /**
152
+ * The custom select input description
153
+ */
154
+ description: _propTypes.default.string,
155
+ /**
156
+ * Whether the input should be disabled
157
+ */
158
+ disabled: _propTypes.default.bool,
159
+ /**
160
+ * The base color of the tiles
161
+ */
162
+ color: _propTypes.default.string,
163
+ /**
164
+ * The debounce time in milliseconds
165
+ */
166
+ debounceMs: _propTypes.default.number,
167
+ /**
168
+ * The graphql query to fetch the options and the accessor to destructure the results from
169
+ */
170
+ query: _propTypes.default.shape({
171
+ accessor: _propTypes.default.string,
172
+ graphql: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]).isRequired
173
+ }),
174
+ /**
175
+ * The extra variables required to be used in the query.
176
+ */
177
+ extraVariables: _propTypes.default.objectOf(_propTypes.default.string),
178
+ /**
179
+ * The select option keys to be used to map the data to the select options.
180
+ * i.e `{ value: 'id', label: 'name' }`
181
+ */
182
+ optionsKeyMap: _propTypes.default.shape({
183
+ value: _propTypes.default.string.isRequired,
184
+ getLabel: _propTypes.default.func.isRequired
185
+ }),
186
+ /**
187
+ * Whether to allow multiple items selection
188
+ */
189
+ multiple: _propTypes.default.bool,
190
+ /**
191
+ * The variable to be used to search the data
192
+ */
193
+ searchVariable: _propTypes.default.string,
194
+ /**
195
+ * The minimum length of the search input to start fetching the options
196
+ */
197
+ minLength: _propTypes.default.number,
198
+ /**
199
+ * The function to transform the search input
200
+ */
201
+ transformSearch: _propTypes.default.func,
202
+ /**
203
+ * The query combobox field validator function
204
+ */
205
+ validate: _propTypes.default.func,
206
+ /*
207
+ * Whether the input is optional or not
208
+ */
209
+ optional: _propTypes.default.bool,
210
+ /**
211
+ * Whether to prompt the user to create a new option if the search input
212
+ * does not match any of the options
213
+ */
214
+ promptCreateNewOption: _propTypes.default.bool
215
+ };
216
+ QueryCombobox.defaultProps = {
217
+ optionsKeyMap: {
218
+ value: 'id',
219
+ getLabel: node => node.name
220
+ },
221
+ multiple: false,
222
+ color: 'interactive',
223
+ searchVariable: 'search',
224
+ transformSearch: search => search,
225
+ minLength: 2,
226
+ disabled: false,
227
+ promptCreateNewOption: false
228
+ };
229
+ var _default = exports.default = QueryCombobox;
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var React = _react;
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _downshift = require("downshift");
11
+ var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
12
+ var _ = require("../../../../..");
13
+ var _a = require("../../../../../../a");
14
+ var _b = require("../../../../../../b");
15
+ var _common = require("../../../../../common");
16
+ var _Menu = require("../Menu");
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ 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); }
19
+ 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 && Object.prototype.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; }
20
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* @pareto-engineering/generator-front 1.0.12 */ // Local Definitions
21
+ const baseClassName = _exports.default.base;
22
+ const componentClassName = 'combobox';
23
+
24
+ /**
25
+ * This is the component description.
26
+ */
27
+ const Combobox = _ref => {
28
+ let {
29
+ id,
30
+ className: userClassName,
31
+ style,
32
+ label,
33
+ labelColor,
34
+ name,
35
+ options: items,
36
+ getOptions,
37
+ setOptions,
38
+ setValue,
39
+ description,
40
+ value,
41
+ color,
42
+ minLength,
43
+ isFetching,
44
+ transformSearch,
45
+ disabled,
46
+ optional,
47
+ placeholder,
48
+ promptCreateNewOption
49
+ // ...otherProps
50
+ } = _ref;
51
+ const {
52
+ isOpen,
53
+ selectItem,
54
+ selectedItem,
55
+ inputValue,
56
+ setInputValue,
57
+ getLabelProps,
58
+ getMenuProps,
59
+ getInputProps,
60
+ highlightedIndex,
61
+ getComboboxProps,
62
+ getItemProps
63
+ } = (0, _downshift.useCombobox)({
64
+ items,
65
+ initialSelectedItem: value,
66
+ itemToString: item => item ? item.label : '',
67
+ onInputValueChange: _ref2 => {
68
+ let {
69
+ inputValue: searchInputValue
70
+ } = _ref2;
71
+ const transformedInput = transformSearch(searchInputValue);
72
+ if (transformedInput.length > minLength) {
73
+ getOptions(transformedInput);
74
+ }
75
+ }
76
+ });
77
+ (0, _react.useEffect)(() => {
78
+ if (promptCreateNewOption) {
79
+ (0, _common.lookUpInputValueFromFetchedOptions)({
80
+ items,
81
+ inputValue,
82
+ setOptions,
83
+ minLength
84
+ });
85
+ }
86
+ }, [inputValue, items, promptCreateNewOption]);
87
+
88
+ // If the user has selected an item, we'll set the value of the field
89
+ // or if the combobox state has a selected item, we'll set the value to the formik state
90
+ (0, _react.useEffect)(() => {
91
+ if (selectedItem) {
92
+ setValue(selectedItem);
93
+ }
94
+ }, [selectedItem]);
95
+
96
+ // If the formik state has a value, we'll set the selected item to the combobox state
97
+ (0, _react.useEffect)(() => {
98
+ if (value?.value !== selectedItem?.value) {
99
+ selectItem(value);
100
+ }
101
+ }, [value]);
102
+ const parentRef = (0, _react.useRef)(null);
103
+ const resetInputValue = () => setInputValue('');
104
+ return /*#__PURE__*/React.createElement("div", _extends({
105
+ id: id,
106
+ className: [baseClassName, componentClassName, userClassName, `y-${color}`].filter(e => e).join(' '),
107
+ style: style,
108
+ ref: parentRef
109
+ }, getComboboxProps()), /*#__PURE__*/React.createElement(_.FormLabelV2, _extends({}, getLabelProps(), {
110
+ name: name,
111
+ optional: optional,
112
+ color: labelColor
113
+ }), label), /*#__PURE__*/React.createElement("input", _extends({}, getInputProps(), {
114
+ className: "input",
115
+ disabled: disabled,
116
+ placeholder: placeholder
117
+ })), isFetching && /*#__PURE__*/React.createElement(_a.LoadingCircle, {
118
+ className: "x-main"
119
+ }), inputValue.length > minLength && !isFetching && /*#__PURE__*/React.createElement(_b.Button, {
120
+ isSimple: true,
121
+ isCompact: true,
122
+ color: "heading",
123
+ onClick: resetInputValue
124
+ }, /*#__PURE__*/React.createElement("span", {
125
+ className: "icon"
126
+ }, "Y")), /*#__PURE__*/React.createElement(_.FormDescriptionV2, {
127
+ className: "s-1",
128
+ description: description,
129
+ name: name
130
+ }), /*#__PURE__*/React.createElement(_a.Popover, {
131
+ isOpen: isOpen,
132
+ parentRef: parentRef
133
+ }, /*#__PURE__*/React.createElement(_Menu.Menu, _extends({
134
+ className: `y-${color}`,
135
+ isOpen: isOpen,
136
+ getItemProps: getItemProps,
137
+ highlightedIndex: highlightedIndex,
138
+ items: items
139
+ }, getMenuProps()))));
140
+ };
141
+ Combobox.propTypes = {
142
+ /**
143
+ * The HTML id for this element
144
+ */
145
+ id: _propTypes.default.string,
146
+ /**
147
+ * The HTML class names for this element
148
+ */
149
+ className: _propTypes.default.string,
150
+ /**
151
+ * The React-written, css properties for this element.
152
+ */
153
+ style: _propTypes.default.objectOf(_propTypes.default.string),
154
+ /**
155
+ * The label of the custom select input
156
+ */
157
+ label: _propTypes.default.string,
158
+ /**
159
+ * The custom select input options from the backend
160
+ */
161
+ options: _propTypes.default.arrayOf(_propTypes.default.shape({
162
+ value: _propTypes.default.string,
163
+ label: _propTypes.default.string
164
+ })),
165
+ /**
166
+ * The name of the custom select input
167
+ */
168
+ name: _propTypes.default.string,
169
+ /**
170
+ * The function to fetch the options from the backend
171
+ */
172
+ getOptions: _propTypes.default.func,
173
+ /**
174
+ * The function to set the value of the custom select input
175
+ */
176
+ setValue: _propTypes.default.func.isRequired,
177
+ /**
178
+ * The custom select input description
179
+ */
180
+ description: _propTypes.default.string,
181
+ /**
182
+ * The value of the custom select input
183
+ */
184
+ value: _propTypes.default.shape({
185
+ value: _propTypes.default.string,
186
+ label: _propTypes.default.string
187
+ }),
188
+ /**
189
+ * The base color of the combobox custom select input
190
+ */
191
+ color: _propTypes.default.string,
192
+ /**
193
+ * Whether the query getting the combobox options is inFlight
194
+ */
195
+ isFetching: _propTypes.default.bool.isRequired,
196
+ /**
197
+ * The minimum length of the search input to start fetching the options
198
+ */
199
+ minLength: _propTypes.default.number,
200
+ /**
201
+ * The function to transform the search input
202
+ */
203
+ transformSearch: _propTypes.default.func,
204
+ /**
205
+ * Whether the input filed shpuld be disabled
206
+ */
207
+ disabled: _propTypes.default.bool,
208
+ /**
209
+ * The number of columns the label should span
210
+ */
211
+ labelSpan: _propTypes.default.number,
212
+ /**
213
+ * The number of columns the input should span
214
+ */
215
+ inputSpan: _propTypes.default.number,
216
+ /**
217
+ * The number of columns the label should span on desktop
218
+ */
219
+ desktopLabelSpan: _propTypes.default.number,
220
+ /**
221
+ * The number of columns the input should span on desktop
222
+ */
223
+ desktopInputSpan: _propTypes.default.number,
224
+ /**
225
+ * Whether the input is optional or not
226
+ */
227
+ optional: _propTypes.default.bool,
228
+ /**
229
+ * The placeholder text for the input
230
+ */
231
+ placeholder: _propTypes.default.string
232
+ };
233
+ Combobox.defaultProps = {
234
+ // someProp: false
235
+ };
236
+ var _default = exports.default = Combobox;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Combobox", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Combobox.default;
10
+ }
11
+ });
12
+ var _Combobox = _interopRequireDefault(require("./Combobox"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ 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); }
12
+ 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 && Object.prototype.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; }
13
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* @pareto-engineering/generator-front 1.0.12 */
14
+ // Local Definitions
15
+
16
+ const baseClassName = _exports.default.base;
17
+ const componentClassName = 'menu';
18
+
19
+ /**
20
+ * This is the component description.
21
+ */
22
+ const Menu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
23
+ let {
24
+ id,
25
+ className: userClassName,
26
+ style,
27
+ items,
28
+ isOpen,
29
+ highlightedIndex,
30
+ getItemProps,
31
+ ...otherProps
32
+ } = _ref;
33
+ return /*#__PURE__*/React.createElement("ul", _extends({
34
+ id: id,
35
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
36
+ style: style,
37
+ ref: ref
38
+ }, otherProps), isOpen && items.map((item, index) => /*#__PURE__*/React.createElement("li", _extends({
39
+ key: item.label
40
+ }, getItemProps({
41
+ item,
42
+ index
43
+ }), {
44
+ className: ['item', highlightedIndex === index && _exports.default.modifierActive].filter(Boolean).join(' ')
45
+ }), /*#__PURE__*/React.createElement("p", null, item.label))));
46
+ });
47
+ Menu.propTypes = {
48
+ /**
49
+ * The HTML id for this element
50
+ */
51
+ id: _propTypes.default.string,
52
+ /**
53
+ * The HTML class names for this element
54
+ */
55
+ className: _propTypes.default.string,
56
+ /**
57
+ * The React-written, css properties for this element.
58
+ */
59
+ style: _propTypes.default.objectOf(_propTypes.default.string),
60
+ /**
61
+ * The items to be displayed in the menu
62
+ */
63
+ items: _propTypes.default.arrayOf(_propTypes.default.shape({
64
+ value: _propTypes.default.string,
65
+ label: _propTypes.default.string
66
+ })),
67
+ /**
68
+ * Whether or not the menu is open
69
+ */
70
+ isOpen: _propTypes.default.bool,
71
+ /**
72
+ * The index of the highlighted item
73
+ */
74
+ highlightedIndex: _propTypes.default.number,
75
+ /**
76
+ * The function to get the item props
77
+ */
78
+ getItemProps: _propTypes.default.func
79
+ };
80
+ Menu.defaultProps = {
81
+ // someProp:false
82
+ };
83
+ var _default = exports.default = Menu;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Menu", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Menu.default;
10
+ }
11
+ });
12
+ var _Menu = _interopRequireDefault(require("./Menu"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }