@pareto-engineering/design-system 4.0.0-alpha.61 → 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 (198) hide show
  1. package/dist/cjs/a/TextSteps/TextSteps.js +4 -4
  2. package/dist/cjs/a/TextSteps/styles.scss +1 -1
  3. package/dist/cjs/f/FormInput/FormInput.js +43 -13
  4. package/dist/cjs/f/common/V2/Description/Description.js +76 -0
  5. package/dist/cjs/f/common/V2/Description/index.js +13 -0
  6. package/dist/cjs/f/common/V2/Description/styles.scss +10 -0
  7. package/dist/cjs/f/common/V2/Label/Label.js +84 -0
  8. package/dist/cjs/f/common/V2/Label/index.js +13 -0
  9. package/dist/cjs/f/common/V2/Label/styles.scss +9 -0
  10. package/dist/cjs/f/common/V2/index.js +19 -0
  11. package/dist/cjs/f/common/index.js +12 -0
  12. package/dist/cjs/f/fields/V2/Checkbox/Checkbox.js +122 -0
  13. package/dist/cjs/f/fields/V2/Checkbox/index.js +13 -0
  14. package/dist/cjs/f/fields/V2/Checkbox/styles.scss +16 -0
  15. package/dist/cjs/f/fields/V2/ChoicesInput/ChoicesInput.js +154 -0
  16. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/Choice.js +104 -0
  17. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/index.js +13 -0
  18. package/dist/cjs/f/fields/V2/ChoicesInput/common/index.js +12 -0
  19. package/dist/cjs/f/fields/V2/ChoicesInput/index.js +13 -0
  20. package/dist/cjs/f/fields/V2/ChoicesInput/styles.scss +79 -0
  21. package/dist/cjs/f/fields/V2/EditorInput/EditorInput.js +197 -0
  22. package/dist/cjs/f/fields/V2/EditorInput/common/Toolbar.js +257 -0
  23. package/dist/cjs/f/fields/V2/EditorInput/common/TreeViewPlugin.js +18 -0
  24. package/dist/cjs/f/fields/V2/EditorInput/common/index.js +20 -0
  25. package/dist/cjs/f/fields/V2/EditorInput/index.js +13 -0
  26. package/dist/cjs/f/fields/V2/EditorInput/styles.scss +149 -0
  27. package/dist/cjs/f/fields/V2/LinkInput/LinkInput.js +156 -0
  28. package/dist/cjs/f/fields/V2/LinkInput/index.js +13 -0
  29. package/dist/cjs/f/fields/V2/LinkInput/styles.scss +90 -0
  30. package/dist/cjs/f/fields/V2/QueryChoices/QueryChoices.js +137 -0
  31. package/dist/cjs/f/fields/V2/QueryChoices/index.js +13 -0
  32. package/dist/cjs/f/fields/V2/QueryCombobox/QueryCombobox.js +229 -0
  33. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +236 -0
  34. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/index.js +13 -0
  35. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/Menu.js +83 -0
  36. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/index.js +13 -0
  37. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +300 -0
  38. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +13 -0
  39. package/dist/cjs/f/fields/V2/QueryCombobox/common/index.js +26 -0
  40. package/dist/cjs/f/fields/V2/QueryCombobox/index.js +13 -0
  41. package/dist/cjs/f/fields/V2/QueryCombobox/styles.scss +127 -0
  42. package/dist/cjs/f/fields/V2/QuerySelect/QuerySelect.js +198 -0
  43. package/dist/cjs/f/fields/V2/QuerySelect/index.js +13 -0
  44. package/dist/cjs/f/fields/V2/RatingsInput/RatingsInput.js +130 -0
  45. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/Rating.js +117 -0
  46. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/index.js +13 -0
  47. package/dist/cjs/f/fields/V2/RatingsInput/common/index.js +12 -0
  48. package/dist/cjs/f/fields/V2/RatingsInput/index.js +13 -0
  49. package/dist/cjs/f/fields/V2/RatingsInput/styles.scss +48 -0
  50. package/dist/cjs/f/fields/V2/SelectInput/SelectInput.js +154 -0
  51. package/dist/cjs/f/fields/V2/SelectInput/index.js +13 -0
  52. package/dist/cjs/f/fields/V2/SelectInput/styles.scss +87 -0
  53. package/dist/cjs/f/fields/V2/TextInput/TextInput.js +155 -0
  54. package/dist/cjs/f/fields/V2/TextInput/index.js +13 -0
  55. package/dist/cjs/f/fields/V2/TextInput/styles.scss +78 -0
  56. package/dist/cjs/f/fields/V2/TextareaInput/TextareaInput.js +152 -0
  57. package/dist/cjs/f/fields/V2/TextareaInput/index.js +13 -0
  58. package/dist/cjs/f/fields/V2/TextareaInput/styles.scss +53 -0
  59. package/dist/cjs/f/fields/V2/index.js +82 -0
  60. package/dist/cjs/f/fields/index.js +26 -1
  61. package/dist/es/a/TextSteps/TextSteps.js +4 -4
  62. package/dist/es/a/TextSteps/styles.scss +1 -1
  63. package/dist/es/f/FormInput/FormInput.js +33 -3
  64. package/dist/es/f/common/V2/Description/Description.js +68 -0
  65. package/dist/es/f/common/V2/Description/index.js +2 -0
  66. package/dist/es/f/common/V2/Description/styles.scss +10 -0
  67. package/dist/es/f/common/V2/Label/Label.js +76 -0
  68. package/dist/es/f/common/V2/Label/index.js +2 -0
  69. package/dist/es/f/common/V2/Label/styles.scss +9 -0
  70. package/dist/es/f/common/V2/index.js +2 -0
  71. package/dist/es/f/common/index.js +2 -1
  72. package/dist/es/f/fields/V2/Checkbox/Checkbox.js +114 -0
  73. package/dist/es/f/fields/V2/Checkbox/index.js +2 -0
  74. package/dist/es/f/fields/V2/Checkbox/styles.scss +16 -0
  75. package/dist/es/f/fields/V2/ChoicesInput/ChoicesInput.js +148 -0
  76. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/Choice.js +97 -0
  77. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  78. package/dist/es/f/fields/V2/ChoicesInput/common/index.js +1 -0
  79. package/dist/es/f/fields/V2/ChoicesInput/index.js +2 -0
  80. package/dist/es/f/fields/V2/ChoicesInput/styles.scss +79 -0
  81. package/dist/es/f/fields/V2/EditorInput/EditorInput.js +192 -0
  82. package/dist/es/f/fields/V2/EditorInput/common/Toolbar.js +246 -0
  83. package/dist/es/f/fields/V2/EditorInput/common/TreeViewPlugin.js +11 -0
  84. package/dist/es/f/fields/V2/EditorInput/common/index.js +2 -0
  85. package/dist/es/f/fields/V2/EditorInput/index.js +2 -0
  86. package/dist/es/f/fields/V2/EditorInput/styles.scss +149 -0
  87. package/dist/es/f/fields/V2/LinkInput/LinkInput.js +148 -0
  88. package/dist/es/f/fields/V2/LinkInput/index.js +2 -0
  89. package/dist/es/f/fields/V2/LinkInput/styles.scss +90 -0
  90. package/dist/es/f/fields/V2/QueryChoices/QueryChoices.js +126 -0
  91. package/dist/es/f/fields/V2/QueryChoices/index.js +2 -0
  92. package/dist/es/f/fields/V2/QueryCombobox/QueryCombobox.js +221 -0
  93. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +229 -0
  94. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  95. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/Menu.js +73 -0
  96. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  97. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +293 -0
  98. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  99. package/dist/es/f/fields/V2/QueryCombobox/common/index.js +3 -0
  100. package/dist/es/f/fields/V2/QueryCombobox/index.js +2 -0
  101. package/dist/es/f/fields/V2/QueryCombobox/styles.scss +127 -0
  102. package/dist/es/f/fields/V2/QuerySelect/QuerySelect.js +186 -0
  103. package/dist/es/f/fields/V2/QuerySelect/index.js +2 -0
  104. package/dist/es/f/fields/V2/RatingsInput/RatingsInput.js +124 -0
  105. package/dist/es/f/fields/V2/RatingsInput/common/Rating/Rating.js +109 -0
  106. package/dist/es/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  107. package/dist/es/f/fields/V2/RatingsInput/common/index.js +1 -0
  108. package/dist/es/f/fields/V2/RatingsInput/index.js +2 -0
  109. package/dist/es/f/fields/V2/RatingsInput/styles.scss +48 -0
  110. package/dist/es/f/fields/V2/SelectInput/SelectInput.js +146 -0
  111. package/dist/es/f/fields/V2/SelectInput/index.js +2 -0
  112. package/dist/es/f/fields/V2/SelectInput/styles.scss +87 -0
  113. package/dist/es/f/fields/V2/TextInput/TextInput.js +147 -0
  114. package/dist/es/f/fields/V2/TextInput/index.js +2 -0
  115. package/dist/es/f/fields/V2/TextInput/styles.scss +78 -0
  116. package/dist/es/f/fields/V2/TextareaInput/TextareaInput.js +146 -0
  117. package/dist/es/f/fields/V2/TextareaInput/index.js +2 -0
  118. package/dist/es/f/fields/V2/TextareaInput/styles.scss +53 -0
  119. package/dist/es/f/fields/V2/index.js +11 -0
  120. package/dist/es/f/fields/index.js +2 -1
  121. package/package.json +3 -3
  122. package/src/stories/f/v2/Checkbox.stories.jsx +102 -0
  123. package/src/stories/f/v2/ChoicesInput.stories.jsx +139 -0
  124. package/src/stories/f/v2/EditorInput.stories.jsx +81 -0
  125. package/src/stories/f/v2/LinkInput.stories.jsx +93 -0
  126. package/src/stories/f/v2/QueryChoices.stories.jsx +144 -0
  127. package/src/stories/f/v2/QueryCombobox.stories.jsx +301 -0
  128. package/src/stories/f/v2/QuerySelect.stories.jsx +150 -0
  129. package/src/stories/f/v2/RatingsInput.stories.jsx +77 -0
  130. package/src/stories/f/v2/SelectInput.stories.jsx +95 -0
  131. package/src/stories/f/v2/TextInput.stories.jsx +120 -0
  132. package/src/stories/f/v2/TextareaInput.stories.jsx +107 -0
  133. package/src/stories/f/v2/__generated__/FormInputAllTaskStatusesQuery.graphql.js +122 -0
  134. package/src/stories/f/v2/__generated__/FormInputAllTeamsQuery.graphql.js +139 -0
  135. package/src/stories/f/v2/__generated__/QueryChoicesAllTaskStatusesQuery.graphql.js +122 -0
  136. package/src/stories/f/v2/__generated__/QueryComboboxAllTeamsQuery.graphql.js +139 -0
  137. package/src/stories/f/v2/__generated__/QuerySelectAllTaskStatusesQuery.graphql.js +122 -0
  138. package/src/ui/a/TextSteps/TextSteps.jsx +4 -4
  139. package/src/ui/a/TextSteps/styles.scss +1 -1
  140. package/src/ui/f/FormInput/FormInput.jsx +57 -12
  141. package/src/ui/f/common/V2/Description/Description.jsx +94 -0
  142. package/src/ui/f/common/V2/Description/index.js +2 -0
  143. package/src/ui/f/common/V2/Description/styles.scss +10 -0
  144. package/src/ui/f/common/V2/Label/Label.jsx +102 -0
  145. package/src/ui/f/common/V2/Label/index.js +2 -0
  146. package/src/ui/f/common/V2/Label/styles.scss +9 -0
  147. package/src/ui/f/common/V2/index.js +2 -0
  148. package/src/ui/f/common/index.js +1 -0
  149. package/src/ui/f/fields/V2/Checkbox/Checkbox.jsx +146 -0
  150. package/src/ui/f/fields/V2/Checkbox/index.js +2 -0
  151. package/src/ui/f/fields/V2/Checkbox/styles.scss +16 -0
  152. package/src/ui/f/fields/V2/ChoicesInput/ChoicesInput.jsx +183 -0
  153. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/Choice.jsx +125 -0
  154. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  155. package/src/ui/f/fields/V2/ChoicesInput/common/index.js +1 -0
  156. package/src/ui/f/fields/V2/ChoicesInput/index.js +2 -0
  157. package/src/ui/f/fields/V2/ChoicesInput/styles.scss +79 -0
  158. package/src/ui/f/fields/V2/EditorInput/EditorInput.jsx +244 -0
  159. package/src/ui/f/fields/V2/EditorInput/common/Toolbar.jsx +356 -0
  160. package/src/ui/f/fields/V2/EditorInput/common/TreeViewPlugin.jsx +16 -0
  161. package/src/ui/f/fields/V2/EditorInput/common/index.jsx +2 -0
  162. package/src/ui/f/fields/V2/EditorInput/index.js +2 -0
  163. package/src/ui/f/fields/V2/EditorInput/styles.scss +149 -0
  164. package/src/ui/f/fields/V2/LinkInput/LinkInput.jsx +187 -0
  165. package/src/ui/f/fields/V2/LinkInput/index.js +2 -0
  166. package/src/ui/f/fields/V2/LinkInput/styles.scss +90 -0
  167. package/src/ui/f/fields/V2/QueryChoices/QueryChoices.jsx +153 -0
  168. package/src/ui/f/fields/V2/QueryChoices/index.js +2 -0
  169. package/src/ui/f/fields/V2/QueryCombobox/QueryCombobox.jsx +254 -0
  170. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/Combobox.jsx +276 -0
  171. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  172. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/Menu.jsx +103 -0
  173. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  174. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +362 -0
  175. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  176. package/src/ui/f/fields/V2/QueryCombobox/common/index.js +3 -0
  177. package/src/ui/f/fields/V2/QueryCombobox/index.js +2 -0
  178. package/src/ui/f/fields/V2/QueryCombobox/styles.scss +127 -0
  179. package/src/ui/f/fields/V2/QuerySelect/QuerySelect.jsx +220 -0
  180. package/src/ui/f/fields/V2/QuerySelect/index.js +2 -0
  181. package/src/ui/f/fields/V2/RatingsInput/RatingsInput.jsx +152 -0
  182. package/src/ui/f/fields/V2/RatingsInput/common/Rating/Rating.jsx +142 -0
  183. package/src/ui/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  184. package/src/ui/f/fields/V2/RatingsInput/common/index.js +1 -0
  185. package/src/ui/f/fields/V2/RatingsInput/index.js +2 -0
  186. package/src/ui/f/fields/V2/RatingsInput/styles.scss +48 -0
  187. package/src/ui/f/fields/V2/SelectInput/SelectInput.jsx +187 -0
  188. package/src/ui/f/fields/V2/SelectInput/index.js +2 -0
  189. package/src/ui/f/fields/V2/SelectInput/styles.scss +87 -0
  190. package/src/ui/f/fields/V2/TextInput/TextInput.jsx +192 -0
  191. package/src/ui/f/fields/V2/TextInput/index.js +2 -0
  192. package/src/ui/f/fields/V2/TextInput/styles.scss +78 -0
  193. package/src/ui/f/fields/V2/TextareaInput/TextareaInput.jsx +180 -0
  194. package/src/ui/f/fields/V2/TextareaInput/index.js +2 -0
  195. package/src/ui/f/fields/V2/TextareaInput/styles.scss +53 -0
  196. package/src/ui/f/fields/V2/index.js +11 -0
  197. package/src/ui/f/fields/index.js +1 -0
  198. package/tests/__snapshots__/Storyshots.test.js.snap +5910 -1
@@ -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 }; }
@@ -0,0 +1,300 @@
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 _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
11
+ var _downshift = require("downshift");
12
+ var _b = require("../../../../../../b");
13
+ var _a = require("../../../../../../a");
14
+ var _ = require("../../../../..");
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 = 'multiple-combobox';
23
+
24
+ /**
25
+ * @param {Array[Object]} first - first array to check if it has an item not in the second array.
26
+ * @param {Array[Object]} second - second array to check against the first array.
27
+ *
28
+ * @returns {Boolean} - true if the first array has an item not in the second array.
29
+ */
30
+ const testIfArraysAreUnique = (first, second) => first.filter(objInFirstArray => !second.some(objInSecondArray => objInFirstArray.value === objInSecondArray.value)).length > 0;
31
+
32
+ /**
33
+ * This is the component description.
34
+ */
35
+ const MultipleCombobox = _ref => {
36
+ let {
37
+ id,
38
+ className: userClassName,
39
+ style,
40
+ label,
41
+ labelColor,
42
+ name,
43
+ optional,
44
+ options: items,
45
+ getOptions,
46
+ setValue,
47
+ description,
48
+ value,
49
+ color,
50
+ isFetching,
51
+ minLength,
52
+ transformSearch,
53
+ disabled,
54
+ placeholder,
55
+ setOptions,
56
+ promptCreateNewOption
57
+ // ...otherProps
58
+ } = _ref;
59
+ const [searchInputValue, setSearchInputValue] = (0, _react.useState)('');
60
+ const {
61
+ getSelectedItemProps,
62
+ getDropdownProps,
63
+ addSelectedItem,
64
+ removeSelectedItem,
65
+ setSelectedItems,
66
+ selectedItems
67
+ } = (0, _downshift.useMultipleSelection)({
68
+ initialSelectedItems: value || []
69
+ });
70
+
71
+ /**
72
+ * @returns {Boolean} - Unique items from the options array so that the combobox
73
+ * shows only the options that are not yet selected.
74
+ */
75
+ const getFilteredItems = () => items.filter(item => selectedItems.findIndex(e => e.label === item.label) < 0);
76
+ const {
77
+ isOpen,
78
+ getLabelProps,
79
+ getMenuProps,
80
+ getInputProps,
81
+ getComboboxProps,
82
+ highlightedIndex,
83
+ getItemProps,
84
+ inputValue,
85
+ setInputValue
86
+ } = (0, _downshift.useCombobox)({
87
+ searchInputValue,
88
+ defaultHighlightedIndex: 0,
89
+ // after selection, highlight the first item.
90
+ selectedItem: null,
91
+ items: getFilteredItems(),
92
+ circularNavigation: true,
93
+ stateReducer: (state, actionAndChanges) => {
94
+ const {
95
+ changes,
96
+ type
97
+ } = actionAndChanges;
98
+ switch (type) {
99
+ case _downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
100
+ case _downshift.useCombobox.stateChangeTypes.ItemClick:
101
+ return {
102
+ ...changes,
103
+ isOpen: true // keep the menu open after selection.
104
+ };
105
+
106
+ default:
107
+ break;
108
+ }
109
+ return changes;
110
+ },
111
+ onStateChange: _ref2 => {
112
+ let {
113
+ inputValue: newSearchInputValue,
114
+ type,
115
+ selectedItem
116
+ } = _ref2;
117
+ switch (type) {
118
+ case _downshift.useCombobox.stateChangeTypes.InputChange:
119
+ {
120
+ const transformedInput = transformSearch(newSearchInputValue);
121
+ if (transformedInput.length > minLength) {
122
+ getOptions(transformedInput);
123
+ }
124
+ setSearchInputValue(newSearchInputValue);
125
+ break;
126
+ }
127
+ case _downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
128
+ case _downshift.useCombobox.stateChangeTypes.ItemClick:
129
+ case _downshift.useCombobox.stateChangeTypes.InputBlur:
130
+ if (selectedItem) {
131
+ setSearchInputValue('');
132
+ addSelectedItem(selectedItem);
133
+ }
134
+ break;
135
+ default:
136
+ break;
137
+ }
138
+ }
139
+ });
140
+ (0, _react.useEffect)(() => {
141
+ if (selectedItems?.length > 0) {
142
+ setValue(selectedItems);
143
+ }
144
+ }, [selectedItems]);
145
+ (0, _react.useEffect)(() => {
146
+ if (promptCreateNewOption) {
147
+ (0, _common.lookUpInputValueFromFetchedOptions)({
148
+ items,
149
+ inputValue,
150
+ setOptions,
151
+ minLength
152
+ });
153
+ }
154
+ }, [inputValue, items, promptCreateNewOption]);
155
+ (0, _react.useEffect)(() => {
156
+ if (value?.length > 0 && (testIfArraysAreUnique(value, selectedItems) || testIfArraysAreUnique(selectedItems, value))) {
157
+ setSelectedItems(value);
158
+ }
159
+ }, [value]);
160
+ const parentRef = (0, _react.useRef)(null);
161
+ const resetInputValue = () => setInputValue('');
162
+ return /*#__PURE__*/React.createElement("div", _extends({
163
+ id: id,
164
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
165
+ style: style,
166
+ ref: parentRef
167
+ }, getComboboxProps()), /*#__PURE__*/React.createElement(_.FormLabelV2, _extends({
168
+ className: [baseClassName, componentClassName].filter(e => e).join(' ')
169
+ }, getLabelProps(), {
170
+ name: name,
171
+ optional: optional,
172
+ color: labelColor
173
+ }), label), selectedItems?.length > 0 && /*#__PURE__*/React.createElement("div", {
174
+ className: "selected-items"
175
+ }, selectedItems.map((selectedItem, index) => /*#__PURE__*/React.createElement("div", _extends({
176
+ key: selectedItem.label
177
+ }, getSelectedItemProps({
178
+ selectedItem,
179
+ index
180
+ }), {
181
+ className: "item"
182
+ }), /*#__PURE__*/React.createElement(_b.Button, {
183
+ onClick: e => {
184
+ e.stopPropagation();
185
+ removeSelectedItem(selectedItem);
186
+ },
187
+ isCompact: true,
188
+ color: color
189
+ }, /*#__PURE__*/React.createElement("span", null, selectedItem.label), /*#__PURE__*/React.createElement("span", {
190
+ className: "icon close"
191
+ }, "Y"))))), /*#__PURE__*/React.createElement("input", _extends({}, getInputProps(getDropdownProps({
192
+ preventKeyAction: isOpen
193
+ })), {
194
+ className: "input",
195
+ disabled: disabled,
196
+ placeholder: placeholder
197
+ })), isFetching && /*#__PURE__*/React.createElement(_a.LoadingCircle, {
198
+ className: "x-main"
199
+ }), inputValue.length > minLength && !isFetching && /*#__PURE__*/React.createElement(_b.Button, {
200
+ isSimple: true,
201
+ isCompact: true,
202
+ color: "interactive",
203
+ onClick: resetInputValue
204
+ }, /*#__PURE__*/React.createElement("span", {
205
+ className: "icon"
206
+ }, "Y")), /*#__PURE__*/React.createElement(_.FormDescriptionV2, {
207
+ className: "s-1",
208
+ description: description,
209
+ name: name
210
+ }), /*#__PURE__*/React.createElement(_a.Popover, {
211
+ isOpen: isOpen,
212
+ parentRef: parentRef
213
+ }, /*#__PURE__*/React.createElement(_Menu.Menu, _extends({
214
+ className: `y-${color}`,
215
+ isOpen: isOpen,
216
+ getItemProps: getItemProps,
217
+ highlightedIndex: highlightedIndex,
218
+ items: getFilteredItems()
219
+ }, getMenuProps()))));
220
+ };
221
+ MultipleCombobox.propTypes = {
222
+ /**
223
+ * The HTML id for this element
224
+ */
225
+ id: _propTypes.default.string,
226
+ /**
227
+ * The HTML class names for this element
228
+ */
229
+ className: _propTypes.default.string,
230
+ /**
231
+ * The React-written, css properties for this element.
232
+ */
233
+ style: _propTypes.default.objectOf(_propTypes.default.string),
234
+ /**
235
+ * The label of the custom select input
236
+ */
237
+ label: _propTypes.default.string,
238
+ /**
239
+ * The custom select input options from the backend
240
+ */
241
+ options: _propTypes.default.arrayOf(_propTypes.default.shape({
242
+ value: _propTypes.default.string,
243
+ label: _propTypes.default.string
244
+ })),
245
+ /**
246
+ * The name of the custom select input
247
+ */
248
+ name: _propTypes.default.string,
249
+ /**
250
+ * The function to fetch the options from the backend
251
+ */
252
+ getOptions: _propTypes.default.func,
253
+ /**
254
+ * The function to set the value of the custom select input
255
+ */
256
+ setValue: _propTypes.default.func.isRequired,
257
+ /**
258
+ * The custom select input description
259
+ */
260
+ description: _propTypes.default.string,
261
+ /**
262
+ * The value of the custom select input
263
+ */
264
+ value: _propTypes.default.arrayOf(_propTypes.default.shape({
265
+ value: _propTypes.default.string,
266
+ label: _propTypes.default.string
267
+ })),
268
+ /**
269
+ * The base color of the custom select input
270
+ */
271
+ color: _propTypes.default.string,
272
+ /**
273
+ * Whether the query getting the combobox options is inFlight
274
+ */
275
+ isFetching: _propTypes.default.bool.isRequired,
276
+ /**
277
+ * The minimum length of the search input to start fetching the options
278
+ */
279
+ minLength: _propTypes.default.number,
280
+ /**
281
+ * The function to transform the search input
282
+ */
283
+ transformSearch: _propTypes.default.func,
284
+ /**
285
+ * Whether the input filed shpuld be disabled
286
+ */
287
+ disabled: _propTypes.default.bool,
288
+ /**
289
+ * Whether the input is optional or not
290
+ */
291
+ optional: _propTypes.default.bool,
292
+ /**
293
+ * The placeholder text for the input
294
+ */
295
+ placeholder: _propTypes.default.string
296
+ };
297
+ MultipleCombobox.defaultProps = {
298
+ // someProp: false
299
+ };
300
+ var _default = exports.default = MultipleCombobox;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "MultipleCombobox", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _MultipleCombobox.default;
10
+ }
11
+ });
12
+ var _MultipleCombobox = _interopRequireDefault(require("./MultipleCombobox"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,26 @@
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.Combobox;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "Menu", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Menu.Menu;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "MultipleCombobox", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _MultipleCombobox.MultipleCombobox;
22
+ }
23
+ });
24
+ var _Menu = require("./Menu");
25
+ var _Combobox = require("./Combobox");
26
+ var _MultipleCombobox = require("./MultipleCombobox");
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "QueryCombobox", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _QueryCombobox.default;
10
+ }
11
+ });
12
+ var _QueryCombobox = _interopRequireDefault(require("./QueryCombobox"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,127 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ /* stylelint-disable max-nesting-depth -- needed here */
3
+ /* stylelint-disable selector-max-compound-selectors -- needed here */
4
+
5
+ @use "@pareto-engineering/bem";
6
+ @use "@pareto-engineering/styles/src/mixins";
7
+ @use "@pareto-engineering/styles/src/globals" as *;
8
+
9
+ $default-input-padding: .55em .75em;
10
+ $default-gap: var(--gap);
11
+ $default-loading-circle-displacement: .5em;
12
+ $default-input-border-radius: var(--theme-default-input-border-radius);
13
+ $default-border: var(--theme-default-input-border);
14
+ $hover-border: var(--theme-hover-input-border);
15
+ $focus-border: var(--theme-focus-input-border);
16
+ $default-background: var(--background-inputs);
17
+ $on-default-background: var(--paragraph);
18
+ $disabled-background: var(--background-inputs-30);
19
+ $on-disabled-background: var(--on-background-inputs-30);
20
+
21
+ .#{bem.$base}.combobox,
22
+ .#{bem.$base}.multiple-combobox {
23
+ display: flex;
24
+ flex-direction: column;
25
+ outline: none;
26
+ position: relative;
27
+
28
+ > .#{bem.$base}.form-label {
29
+ margin-bottom: var(--gap);
30
+ }
31
+
32
+
33
+ .#{bem.$base}.popover {
34
+ border: $default-border;
35
+ border-radius: $default-input-border-radius;
36
+ width: 100%;
37
+
38
+ >.menu {
39
+ list-style: none;
40
+ margin: 0;
41
+ outline: 0;
42
+ padding: 0;
43
+
44
+ >.item {
45
+ border-radius: $default-input-border-radius;
46
+ padding: $default-input-padding;
47
+
48
+ > p {
49
+ margin: 0;
50
+ }
51
+
52
+ &.#{bem.$modifier-active} {
53
+ background-color: var(--y);
54
+
55
+ > p {
56
+ color: var(--on-y);
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ >.#{bem.$base}.loading-circle,
64
+ >.#{bem.$base}.button {
65
+ position: absolute;
66
+ right: $default-loading-circle-displacement;
67
+ }
68
+
69
+ >.#{bem.$base}.loading-circle {
70
+ top: calc($default-loading-circle-displacement * 1.5);
71
+ }
72
+
73
+ >.#{bem.$base}.button {
74
+ top: $default-loading-circle-displacement;
75
+ }
76
+
77
+ > .input {
78
+ background: $default-background;
79
+ border: $default-border;
80
+ border-radius: calc(var(--theme-default-border-radius) / 2);
81
+ color: $on-default-background;
82
+ outline: none;
83
+ padding: $default-input-padding;
84
+
85
+ &::placeholder {
86
+ color: var(--metadata);
87
+ }
88
+
89
+ &:disabled {
90
+ background-color: $disabled-background;
91
+ color: $on-disabled-background;
92
+ }
93
+
94
+ &:not(:disabled) {
95
+ &:hover,
96
+ &:active {
97
+ border: $hover-border;
98
+ }
99
+
100
+ &:focus {
101
+ border: $focus-border;
102
+ }
103
+ }
104
+ }
105
+ }
106
+
107
+
108
+ .#{bem.$base}.multiple-combobox {
109
+ >.selected-items {
110
+ display: flex;
111
+ flex-wrap: wrap;
112
+ gap: calc($default-gap / 2);
113
+ margin-bottom: calc($default-gap / 2);
114
+
115
+ >.item {
116
+ >.#{bem.$base}.button {
117
+ align-items: center;
118
+ display: flex;
119
+ gap: calc($default-gap / 2);
120
+ }
121
+
122
+ .close {
123
+ font-size: calc(var(--s-3) * 1em);
124
+ }
125
+ }
126
+ }
127
+ }