@elliemae/ds-pills 2.3.0-alpha.8 → 2.3.0-next.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 (216) hide show
  1. package/cjs/components/Pill.js +53 -0
  2. package/cjs/components/PillButton.js +56 -0
  3. package/cjs/components/PillGroup.js +64 -0
  4. package/cjs/components/index.js +17 -0
  5. package/cjs/components/styled.js +85 -0
  6. package/cjs/components/types/DropdownPill.js +86 -0
  7. package/cjs/components/types/InputPill.js +74 -0
  8. package/cjs/components/types/LabelPill.js +46 -0
  9. package/cjs/components/types/ReadOnlyPill.js +50 -0
  10. package/cjs/components/types/RemovablePill.js +72 -0
  11. package/cjs/components/types/ValuePill.js +54 -0
  12. package/cjs/components/types/index.js +19 -0
  13. package/cjs/deprecated/DropdownPill.js +113 -0
  14. package/cjs/deprecated/InputPill.js +84 -0
  15. package/cjs/deprecated/LabeledDropdownPills.js +106 -0
  16. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +134 -0
  17. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +153 -0
  18. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +162 -0
  19. package/cjs/deprecated/LabeledDropdownPillsTypes/utils.js +20 -0
  20. package/cjs/deprecated/LabeledPills.js +62 -0
  21. package/cjs/deprecated/OverflowPill.js +73 -0
  22. package/cjs/deprecated/Pill.js +88 -0
  23. package/cjs/deprecated/PillGroup.js +72 -0
  24. package/cjs/deprecated/ReadOnlyPill.js +101 -0
  25. package/cjs/deprecated/RemovablePill.js +74 -0
  26. package/cjs/deprecated/index.js +33 -0
  27. package/cjs/index.d.js +2 -0
  28. package/cjs/index.js +43 -0
  29. package/cjs/props.js +69 -0
  30. package/cjs/utils.js +28 -0
  31. package/esm/components/Pill.js +44 -0
  32. package/esm/components/PillButton.js +46 -0
  33. package/esm/components/PillGroup.js +53 -0
  34. package/esm/components/index.js +3 -0
  35. package/esm/components/styled.js +67 -0
  36. package/esm/components/types/DropdownPill.js +76 -0
  37. package/esm/components/types/InputPill.js +65 -0
  38. package/esm/components/types/LabelPill.js +37 -0
  39. package/esm/components/types/ReadOnlyPill.js +41 -0
  40. package/esm/components/types/RemovablePill.js +63 -0
  41. package/esm/components/types/ValuePill.js +45 -0
  42. package/esm/components/types/index.js +6 -0
  43. package/esm/deprecated/DropdownPill.js +100 -0
  44. package/esm/deprecated/InputPill.js +74 -0
  45. package/esm/deprecated/LabeledDropdownPills.js +95 -0
  46. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +126 -0
  47. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +145 -0
  48. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +154 -0
  49. package/esm/deprecated/LabeledDropdownPillsTypes/utils.js +16 -0
  50. package/esm/deprecated/LabeledPills.js +53 -0
  51. package/esm/deprecated/OverflowPill.js +62 -0
  52. package/esm/deprecated/Pill.js +76 -0
  53. package/esm/deprecated/PillGroup.js +60 -0
  54. package/esm/deprecated/ReadOnlyPill.js +90 -0
  55. package/esm/deprecated/RemovablePill.js +64 -0
  56. package/esm/deprecated/index.js +8 -0
  57. package/esm/index.d.js +1 -0
  58. package/esm/index.js +11 -0
  59. package/esm/props.js +60 -0
  60. package/esm/utils.js +24 -0
  61. package/package.json +86 -88
  62. package/types/components/Pill.d.ts +5 -0
  63. package/types/components/PillButton.d.ts +5 -0
  64. package/types/components/PillGroup.d.ts +13 -0
  65. package/types/components/index.d.ts +3 -0
  66. package/types/components/styled.d.ts +24 -0
  67. package/types/components/types/DropdownPill.d.ts +3 -0
  68. package/types/components/types/InputPill.d.ts +3 -0
  69. package/types/components/types/LabelPill.d.ts +3 -0
  70. package/types/components/types/ReadOnlyPill.d.ts +3 -0
  71. package/types/components/types/RemovablePill.d.ts +3 -0
  72. package/types/components/types/ValuePill.d.ts +3 -0
  73. package/types/components/types/index.d.ts +6 -0
  74. package/types/deprecated/DropdownPill.d.ts +66 -0
  75. package/types/deprecated/InputPill.d.ts +10 -0
  76. package/types/deprecated/LabeledDropdownPills.d.ts +82 -0
  77. package/types/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.d.ts +15 -0
  78. package/types/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.d.ts +13 -0
  79. package/types/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.d.ts +28 -0
  80. package/types/deprecated/LabeledDropdownPillsTypes/utils.d.ts +1 -0
  81. package/types/deprecated/LabeledPills.d.ts +52 -0
  82. package/types/deprecated/OverflowPill.d.ts +33 -0
  83. package/types/deprecated/Pill.d.ts +59 -0
  84. package/types/deprecated/PillGroup.d.ts +50 -0
  85. package/types/deprecated/ReadOnlyPill.d.ts +56 -0
  86. package/types/deprecated/RemovablePill.d.ts +49 -0
  87. package/types/deprecated/index.d.ts +9 -0
  88. package/types/index.d.ts +3 -0
  89. package/types/props.d.ts +92 -0
  90. package/types/tests/DSPill.test.d.ts +1 -0
  91. package/types/tests/DSPillGroup.test.d.ts +1 -0
  92. package/types/tests/events/DSPill.events.keyboard.test.d.ts +1 -0
  93. package/types/tests/events/DSPill.events.test.d.ts +1 -0
  94. package/types/tests/events/DSPillGroup.events.keyboard.test.d.ts +1 -0
  95. package/types/tests/events/DSPillGroup.events.test.d.ts +1 -0
  96. package/types/utils.d.ts +4 -0
  97. package/dist/cjs/components/Pill.js +0 -60
  98. package/dist/cjs/components/Pill.js.map +0 -7
  99. package/dist/cjs/components/PillButton.js +0 -58
  100. package/dist/cjs/components/PillButton.js.map +0 -7
  101. package/dist/cjs/components/PillGroup.js +0 -72
  102. package/dist/cjs/components/PillGroup.js.map +0 -7
  103. package/dist/cjs/components/index.js +0 -30
  104. package/dist/cjs/components/index.js.map +0 -7
  105. package/dist/cjs/components/styled.js +0 -235
  106. package/dist/cjs/components/styled.js.map +0 -7
  107. package/dist/cjs/components/types/DropdownPill.js +0 -88
  108. package/dist/cjs/components/types/DropdownPill.js.map +0 -7
  109. package/dist/cjs/components/types/InputPill.js +0 -84
  110. package/dist/cjs/components/types/InputPill.js.map +0 -7
  111. package/dist/cjs/components/types/LabelPill.js +0 -52
  112. package/dist/cjs/components/types/LabelPill.js.map +0 -7
  113. package/dist/cjs/components/types/ReadOnlyPill.js +0 -55
  114. package/dist/cjs/components/types/ReadOnlyPill.js.map +0 -7
  115. package/dist/cjs/components/types/RemovablePill.js +0 -79
  116. package/dist/cjs/components/types/RemovablePill.js.map +0 -7
  117. package/dist/cjs/components/types/ValuePill.js +0 -59
  118. package/dist/cjs/components/types/ValuePill.js.map +0 -7
  119. package/dist/cjs/components/types/index.js +0 -33
  120. package/dist/cjs/components/types/index.js.map +0 -7
  121. package/dist/cjs/deprecated/DropdownPill.js +0 -92
  122. package/dist/cjs/deprecated/DropdownPill.js.map +0 -7
  123. package/dist/cjs/deprecated/InputPill.js +0 -82
  124. package/dist/cjs/deprecated/InputPill.js.map +0 -7
  125. package/dist/cjs/deprecated/LabeledDropdownPills.js +0 -102
  126. package/dist/cjs/deprecated/LabeledDropdownPills.js.map +0 -7
  127. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +0 -131
  128. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js.map +0 -7
  129. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +0 -145
  130. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js.map +0 -7
  131. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +0 -154
  132. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js.map +0 -7
  133. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/utils.js +0 -44
  134. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/utils.js.map +0 -7
  135. package/dist/cjs/deprecated/LabeledPills.js +0 -75
  136. package/dist/cjs/deprecated/LabeledPills.js.map +0 -7
  137. package/dist/cjs/deprecated/OverflowPill.js +0 -79
  138. package/dist/cjs/deprecated/OverflowPill.js.map +0 -7
  139. package/dist/cjs/deprecated/Pill.js +0 -73
  140. package/dist/cjs/deprecated/Pill.js.map +0 -7
  141. package/dist/cjs/deprecated/PillGroup.js +0 -72
  142. package/dist/cjs/deprecated/PillGroup.js.map +0 -7
  143. package/dist/cjs/deprecated/ReadOnlyPill.js +0 -100
  144. package/dist/cjs/deprecated/ReadOnlyPill.js.map +0 -7
  145. package/dist/cjs/deprecated/RemovablePill.js +0 -78
  146. package/dist/cjs/deprecated/RemovablePill.js.map +0 -7
  147. package/dist/cjs/deprecated/index.js +0 -43
  148. package/dist/cjs/deprecated/index.js.map +0 -7
  149. package/dist/cjs/index.d.js +0 -27
  150. package/dist/cjs/index.d.js.map +0 -7
  151. package/dist/cjs/index.js +0 -37
  152. package/dist/cjs/index.js.map +0 -7
  153. package/dist/cjs/props.js +0 -95
  154. package/dist/cjs/props.js.map +0 -7
  155. package/dist/cjs/utils.js +0 -46
  156. package/dist/cjs/utils.js.map +0 -7
  157. package/dist/esm/components/Pill.js +0 -31
  158. package/dist/esm/components/Pill.js.map +0 -7
  159. package/dist/esm/components/PillButton.js +0 -29
  160. package/dist/esm/components/PillButton.js.map +0 -7
  161. package/dist/esm/components/PillGroup.js +0 -43
  162. package/dist/esm/components/PillGroup.js.map +0 -7
  163. package/dist/esm/components/index.js +0 -5
  164. package/dist/esm/components/index.js.map +0 -7
  165. package/dist/esm/components/styled.js +0 -206
  166. package/dist/esm/components/styled.js.map +0 -7
  167. package/dist/esm/components/types/DropdownPill.js +0 -59
  168. package/dist/esm/components/types/DropdownPill.js.map +0 -7
  169. package/dist/esm/components/types/InputPill.js +0 -55
  170. package/dist/esm/components/types/InputPill.js.map +0 -7
  171. package/dist/esm/components/types/LabelPill.js +0 -23
  172. package/dist/esm/components/types/LabelPill.js.map +0 -7
  173. package/dist/esm/components/types/ReadOnlyPill.js +0 -26
  174. package/dist/esm/components/types/ReadOnlyPill.js.map +0 -7
  175. package/dist/esm/components/types/RemovablePill.js +0 -50
  176. package/dist/esm/components/types/RemovablePill.js.map +0 -7
  177. package/dist/esm/components/types/ValuePill.js +0 -30
  178. package/dist/esm/components/types/ValuePill.js.map +0 -7
  179. package/dist/esm/components/types/index.js +0 -8
  180. package/dist/esm/components/types/index.js.map +0 -7
  181. package/dist/esm/deprecated/DropdownPill.js +0 -63
  182. package/dist/esm/deprecated/DropdownPill.js.map +0 -7
  183. package/dist/esm/deprecated/InputPill.js +0 -53
  184. package/dist/esm/deprecated/InputPill.js.map +0 -7
  185. package/dist/esm/deprecated/LabeledDropdownPills.js +0 -73
  186. package/dist/esm/deprecated/LabeledDropdownPills.js.map +0 -7
  187. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +0 -102
  188. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js.map +0 -7
  189. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +0 -116
  190. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js.map +0 -7
  191. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +0 -125
  192. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js.map +0 -7
  193. package/dist/esm/deprecated/LabeledDropdownPillsTypes/utils.js +0 -15
  194. package/dist/esm/deprecated/LabeledDropdownPillsTypes/utils.js.map +0 -7
  195. package/dist/esm/deprecated/LabeledPills.js +0 -46
  196. package/dist/esm/deprecated/LabeledPills.js.map +0 -7
  197. package/dist/esm/deprecated/OverflowPill.js +0 -50
  198. package/dist/esm/deprecated/OverflowPill.js.map +0 -7
  199. package/dist/esm/deprecated/Pill.js +0 -44
  200. package/dist/esm/deprecated/Pill.js.map +0 -7
  201. package/dist/esm/deprecated/PillGroup.js +0 -43
  202. package/dist/esm/deprecated/PillGroup.js.map +0 -7
  203. package/dist/esm/deprecated/ReadOnlyPill.js +0 -71
  204. package/dist/esm/deprecated/ReadOnlyPill.js.map +0 -7
  205. package/dist/esm/deprecated/RemovablePill.js +0 -49
  206. package/dist/esm/deprecated/RemovablePill.js.map +0 -7
  207. package/dist/esm/deprecated/index.js +0 -14
  208. package/dist/esm/deprecated/index.js.map +0 -7
  209. package/dist/esm/index.d.js +0 -2
  210. package/dist/esm/index.d.js.map +0 -7
  211. package/dist/esm/index.js +0 -8
  212. package/dist/esm/index.js.map +0 -7
  213. package/dist/esm/props.js +0 -66
  214. package/dist/esm/props.js.map +0 -7
  215. package/dist/esm/utils.js +0 -17
  216. package/dist/esm/utils.js.map +0 -7
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('core-js/modules/esnext.async-iterator.filter.js');
7
+ require('core-js/modules/esnext.iterator.constructor.js');
8
+ require('core-js/modules/esnext.iterator.filter.js');
9
+ var React = require('react');
10
+ var DSTooltip = require('@elliemae/ds-tooltip');
11
+ var dsTruncatedTooltipText = require('@elliemae/ds-truncated-tooltip-text');
12
+ var styled = require('../styled.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
17
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
+
19
+ const ValuePill = /*#__PURE__*/React__default["default"].memo(_ref => {
20
+ let {
21
+ label,
22
+ size,
23
+ labelTruncated,
24
+ tooltipValue,
25
+ iconLeft,
26
+ ariaLabel
27
+ } = _ref;
28
+ const TextComponent = labelTruncated ? _ref2 => {
29
+ let {
30
+ children
31
+ } = _ref2;
32
+ return /*#__PURE__*/_jsx__default["default"](dsTruncatedTooltipText.SimpleTruncatedTooltipText, {
33
+ value: children
34
+ });
35
+ } : React__default["default"].Fragment;
36
+ return /*#__PURE__*/_jsx__default["default"](styled.StyledValuePillWrapper, {
37
+ size: size,
38
+ alignItems: "center",
39
+ className: "ds-pill-wrapper ds-pill-wrapper-value",
40
+ "data-testid": "ds-pill-wrapper",
41
+ "aria-label": ariaLabel || label,
42
+ cols: [iconLeft && 'min-content', 'auto'].filter(notFalse => notFalse),
43
+ gutter: "xxxs",
44
+ hasIcon: iconLeft !== null
45
+ }, void 0, iconLeft, tooltipValue !== '' ? /*#__PURE__*/_jsx__default["default"](DSTooltip.DSTooltipV2, {
46
+ title: tooltipValue,
47
+ triggerComponent: /*#__PURE__*/_jsx__default["default"](styled.StyledSpanWithTooltip, {
48
+ className: "ds-pill-tooltip-value",
49
+ tabIndex: 0
50
+ }, void 0, label)
51
+ }) : /*#__PURE__*/_jsx__default["default"](TextComponent, {}, void 0, label));
52
+ });
53
+
54
+ exports.ValuePill = ValuePill;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var DropdownPill = require('./DropdownPill.js');
6
+ var InputPill = require('./InputPill.js');
7
+ var LabelPill = require('./LabelPill.js');
8
+ var ReadOnlyPill = require('./ReadOnlyPill.js');
9
+ var RemovablePill = require('./RemovablePill.js');
10
+ var ValuePill = require('./ValuePill.js');
11
+
12
+
13
+
14
+ exports.DropdownPill = DropdownPill.DropdownPill;
15
+ exports.InputPill = InputPill.InputPill;
16
+ exports.LabelPill = LabelPill.LabelPill;
17
+ exports.ReadOnlyPill = ReadOnlyPill.ReadOnlyPill;
18
+ exports.RemovablePill = RemovablePill.RemovablePill;
19
+ exports.ValuePill = ValuePill.ValuePill;
@@ -0,0 +1,113 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
8
+ require('core-js/modules/web.dom-collections.iterator.js');
9
+ require('core-js/modules/esnext.async-iterator.filter.js');
10
+ require('core-js/modules/esnext.iterator.constructor.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
14
+ var React = require('react');
15
+ var reactDesc = require('react-desc');
16
+ var DSDropdownMenu = require('@elliemae/ds-dropdownmenu');
17
+ var dsIcons = require('@elliemae/ds-icons');
18
+ var useFocusGroupItem = require('@elliemae/ds-shared/FocusGroup/useFocusGroupItem');
19
+ var Pill = require('./Pill.js');
20
+ var jsxRuntime = require('react/jsx-runtime');
21
+
22
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
+
24
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
25
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
26
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
27
+ var DSDropdownMenu__default = /*#__PURE__*/_interopDefaultLegacy(DSDropdownMenu);
28
+ var useFocusGroupItem__default = /*#__PURE__*/_interopDefaultLegacy(useFocusGroupItem);
29
+
30
+ var _ChevronDown;
31
+
32
+ const _excluded = ["containerProps", "label", "variant", "tabIndex", "closeMenuOnItemSelection", "maxWidth", "minWidth"];
33
+
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
+
36
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
+
38
+ function DropdownPill(_ref) {
39
+ let {
40
+ containerProps = {},
41
+ label = '',
42
+ variant,
43
+ tabIndex = -1,
44
+ closeMenuOnItemSelection = false,
45
+ maxWidth,
46
+ minWidth
47
+ } = _ref,
48
+ dropdownProps = _objectWithoutProperties__default["default"](_ref, _excluded);
49
+
50
+ const ref = React.useRef(null);
51
+ const [chevronEl, chevronRef] = React.useState();
52
+ const {
53
+ focusFirst
54
+ } = useFocusGroupItem__default["default"](ref);
55
+ return /*#__PURE__*/jsxRuntime.jsx(DSDropdownMenu__default["default"], _objectSpread(_objectSpread({}, dropdownProps), {}, {
56
+ closeMenuOnItemSelection: closeMenuOnItemSelection,
57
+ maxWidth: maxWidth,
58
+ hideIfNotVisible: true,
59
+ menuProps: {
60
+ className: 'dropdown-pill-menu',
61
+ zIndex: 100
62
+ },
63
+ minWidth: minWidth,
64
+ onClose: focusFirst,
65
+ referenceNode: chevronEl,
66
+ triggerComponent: /*#__PURE__*/_jsx__default["default"](Pill.Pill, {
67
+ "data-testid": "dropdown-pill",
68
+ className: "dropdown-pill",
69
+ containerProps: _objectSpread({
70
+ role: 'listbox'
71
+ }, containerProps),
72
+ innerRef: ref,
73
+ label: label,
74
+ rightAddon: /*#__PURE__*/jsxRuntime.jsx("div", {
75
+ ref: chevronRef,
76
+ children: _ChevronDown || (_ChevronDown = /*#__PURE__*/_jsx__default["default"](dsIcons.ChevronDown, {
77
+ className: "dropdown-pill-chevron-down",
78
+ "data-testid": "dropdown-pill-button"
79
+ }))
80
+ }),
81
+ tabIndex: tabIndex,
82
+ variant: variant
83
+ })
84
+ }));
85
+ }
86
+
87
+ const props = {
88
+ /** props injected to component wrapper */
89
+ containerProps: reactDesc.PropTypes.object.description('props injected to component wrapper'),
90
+
91
+ /** labeled pill text label */
92
+ label: reactDesc.PropTypes.string.isRequired.description('pill text label'),
93
+
94
+ /** pill variant */
95
+ variant: reactDesc.PropTypes.oneOf(['value', 'title']).description('pill variant'),
96
+
97
+ /** html focus border */
98
+ tabIndex: reactDesc.PropTypes.number.description('html focus order'),
99
+
100
+ /** close menu on item selection */
101
+ closeMenuOnItemSelection: reactDesc.PropTypes.bool.description('close menu on item selection'),
102
+
103
+ /** pill max width */
104
+ maxWidth: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.number]).description('pill max width'),
105
+
106
+ /** pill min width */
107
+ minWidth: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.number]).description('pill min width')
108
+ };
109
+ const DSDropdownPillWithSchema = reactDesc.describe(DropdownPill);
110
+ DSDropdownPillWithSchema.propTypes = props;
111
+
112
+ exports.DSDropdownPillWithSchema = DSDropdownPillWithSchema;
113
+ exports.DropdownPill = DropdownPill;
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _jsx = require('@babel/runtime/helpers/jsx');
11
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
12
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
13
+ require('react');
14
+ var dsIcons = require('@elliemae/ds-icons');
15
+ var dsClassnames = require('@elliemae/ds-classnames');
16
+ var dsForm = require('@elliemae/ds-form');
17
+ var Pill = require('./Pill.js');
18
+ var jsxRuntime = require('react/jsx-runtime');
19
+
20
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
+
22
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
23
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
24
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
25
+
26
+ const _excluded = ["containerProps", "placeholder", "onChange", "onRemove", "value", "type"];
27
+
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
+
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
+ const StyledInputPill = dsClassnames.aggregatedClasses(Pill.Pill)('input-pill', null, _ref => {
32
+ let {
33
+ value
34
+ } = _ref;
35
+ return {
36
+ value
37
+ };
38
+ });
39
+ function InputPill(_ref2) {
40
+ let {
41
+ containerProps = {},
42
+ placeholder = 'Enter Value',
43
+ onChange = () => {},
44
+ onRemove,
45
+ value,
46
+ type
47
+ } = _ref2,
48
+ otherProps = _objectWithoutProperties__default["default"](_ref2, _excluded);
49
+
50
+ let TypeOfInput = dsForm.DSInput; // TODO: implement the DSTimeInput, see how because it returns a moment()
51
+ // TODO: implement the DSDateInput
52
+
53
+ switch (type) {
54
+ case 'inputText':
55
+ TypeOfInput = dsForm.DSInput;
56
+ break;
57
+
58
+ case 'inputMask':
59
+ TypeOfInput = dsForm.DSInputMask;
60
+ break;
61
+ }
62
+
63
+ return /*#__PURE__*/_jsx__default["default"](StyledInputPill, {
64
+ className: "input-pill",
65
+ classProps: {
66
+ value
67
+ },
68
+ containerProps: containerProps,
69
+ label: /*#__PURE__*/jsxRuntime.jsx(TypeOfInput, _objectSpread({
70
+ "data-testid": "input-pill",
71
+ onChange: onChange,
72
+ placeholder: placeholder,
73
+ value: value
74
+ }, otherProps)),
75
+ rightAddon: value && /*#__PURE__*/_jsx__default["default"](dsIcons.CloseXsmall, {
76
+ className: "remove-pill-button",
77
+ "data-testid": "remove-pill-button",
78
+ onClick: onRemove
79
+ }),
80
+ tabIndex: -1
81
+ });
82
+ }
83
+
84
+ exports.InputPill = InputPill;
@@ -0,0 +1,106 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _jsx = require('@babel/runtime/helpers/jsx');
11
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
12
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
13
+ require('react');
14
+ var reactDesc = require('react-desc');
15
+ var PillGroup = require('./PillGroup.js');
16
+ var LabeledDropdownSinglePill = require('./LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js');
17
+ var LabeledDropdownMultiPill = require('./LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js');
18
+ var LabeledDropdownCascadeMenuPill = require('./LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js');
19
+ var jsxRuntime = require('react/jsx-runtime');
20
+
21
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
+
23
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
24
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
25
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
26
+
27
+ const _excluded = ["label", "value", "type", "onFocusNextGroup", "onFocusPreviousGroup", "onFocusGroupSet", "maxWidth", "minWidth", "fixed"];
28
+
29
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
+
31
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
32
+ const DropdownPills = {
33
+ single: LabeledDropdownSinglePill,
34
+ multi: LabeledDropdownMultiPill,
35
+ cascaded: LabeledDropdownCascadeMenuPill
36
+ };
37
+
38
+ const createDropdownPill = type => DropdownPills[type] || DropdownPills.single;
39
+
40
+ function LabeledDropdownPills(_ref) {
41
+ let {
42
+ label = '',
43
+ value,
44
+ type,
45
+ onFocusNextGroup,
46
+ onFocusPreviousGroup,
47
+ onFocusGroupSet,
48
+ maxWidth,
49
+ minWidth,
50
+ fixed
51
+ } = _ref,
52
+ menuProps = _objectWithoutProperties__default["default"](_ref, _excluded);
53
+
54
+ const Component = createDropdownPill(type);
55
+ return /*#__PURE__*/_jsx__default["default"](PillGroup.PillGroup, {
56
+ onFocusGroupSet: onFocusGroupSet,
57
+ onFocusNextGroup: onFocusNextGroup,
58
+ onFocusPreviousGroup: onFocusPreviousGroup
59
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread(_objectSpread({}, menuProps), {}, {
60
+ label: label,
61
+ maxWidth: maxWidth,
62
+ minWidth: minWidth,
63
+ value: value,
64
+ fixed: fixed
65
+ })));
66
+ }
67
+
68
+ const props = {
69
+ /** pill type */
70
+ type: reactDesc.PropTypes.oneOf(['single', 'multi', 'cascaded']).description('pill type'),
71
+
72
+ /** focus next group callback */
73
+ onFocusNextGroup: reactDesc.PropTypes.func.description('focus next group callback'),
74
+
75
+ /** focus prev group callback */
76
+ onFocusPreviousGroup: reactDesc.PropTypes.func.description('focus prev group callback'),
77
+
78
+ /** focus group set callback */
79
+ onFocusGroupSet: reactDesc.PropTypes.func.description('focus group set callback'),
80
+
81
+ /** pill max width */
82
+ maxWidth: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.number]).description('pill max width'),
83
+
84
+ /** pill min width */
85
+ minWidth: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.number]).description('pill min width'),
86
+
87
+ /** fixed pill */
88
+ fixed: reactDesc.PropTypes.bool.description('fixed pill'),
89
+
90
+ /** pill label text */
91
+ label: reactDesc.PropTypes.string.isRequired.description('pill label text'),
92
+
93
+ /** pill value */
94
+ value: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.shape({
95
+ id: reactDesc.PropTypes.string,
96
+ label: reactDesc.PropTypes.string
97
+ })), reactDesc.PropTypes.shape({
98
+ id: reactDesc.PropTypes.string,
99
+ label: reactDesc.PropTypes.string
100
+ })]).description('pill value')
101
+ };
102
+ const DSLabeledDropdownPillsWithSchema = reactDesc.describe(LabeledDropdownPills);
103
+ DSLabeledDropdownPillsWithSchema.propTypes = props;
104
+
105
+ exports.DSLabeledDropdownPillsWithSchema = DSLabeledDropdownPillsWithSchema;
106
+ exports.LabeledDropdownPills = LabeledDropdownPills;
@@ -0,0 +1,134 @@
1
+ 'use strict';
2
+
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/esnext.async-iterator.map.js');
7
+ require('core-js/modules/esnext.iterator.map.js');
8
+ require('core-js/modules/web.dom-collections.iterator.js');
9
+ require('core-js/modules/esnext.async-iterator.filter.js');
10
+ require('core-js/modules/esnext.iterator.constructor.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
14
+ var React = require('react');
15
+ var dsUtilities = require('@elliemae/ds-utilities');
16
+ var PillGroup = require('../PillGroup.js');
17
+ var RemovablePill = require('../RemovablePill.js');
18
+ var DropdownPill = require('../DropdownPill.js');
19
+ var jsxRuntime = require('react/jsx-runtime');
20
+
21
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
+
23
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
24
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
25
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
26
+
27
+ const _excluded = ["label", "options", "value", "onChange", "onRemove", "value", "placeholder", "onFocusNextGroup", "onFocusPreviousGroup", "onFocusGroupSet", "maxWidth", "minWidth"];
28
+
29
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
+
31
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
32
+
33
+ function renderMenuItems(options, factory) {
34
+ return options.map((option, index) => {
35
+ const ItemComponent = factory('radio');
36
+
37
+ if (option.type === 'submenu') {
38
+ const SubmenuComponent = factory('submenu');
39
+ const ChildComponent = factory('selection-group');
40
+ return /*#__PURE__*/React.createElement(SubmenuComponent, _objectSpread(_objectSpread({}, option), {}, {
41
+ key: option.id,
42
+ item: option
43
+ }), /*#__PURE__*/jsxRuntime.jsx(ChildComponent, _objectSpread(_objectSpread({}, option), {}, {
44
+ id: option.id,
45
+ item: option,
46
+ items: option.items,
47
+ itemValueAccessor: item => item,
48
+ multi: true
49
+ })));
50
+ }
51
+
52
+ return /*#__PURE__*/React.createElement(ItemComponent, _objectSpread(_objectSpread({}, option), {}, {
53
+ key: option.id || index,
54
+ item: option
55
+ }));
56
+ });
57
+ }
58
+
59
+ const getSubmenuOptionLabelById = (options, id) => {
60
+ const index = options.findIndex(option => option.id === id);
61
+ return index ? options[index].label : '';
62
+ };
63
+
64
+ function LabeledDropdownCascadeMenuPill(_ref) {
65
+ let {
66
+ label,
67
+ options,
68
+ value: optionValue,
69
+ onChange,
70
+ onRemove,
71
+ value: selection = {},
72
+ placeholder = '---',
73
+ onFocusNextGroup,
74
+ onFocusPreviousGroup,
75
+ onFocusGroupSet,
76
+ maxWidth,
77
+ minWidth
78
+ } = _ref,
79
+ menuProps = _objectWithoutProperties__default["default"](_ref, _excluded);
80
+
81
+ const selectionId = Object.keys(selection)[0];
82
+ const selectionValues = selection[selectionId] || '';
83
+ const dropdownLabel = Array.isArray(selectionValues) ? getSubmenuOptionLabelById(options, selectionId) : selectionValues;
84
+
85
+ const handleSelectChange = _ref2 => {
86
+ let {
87
+ item,
88
+ group
89
+ } = _ref2;
90
+
91
+ if (dsUtilities.isFunction(onChange)) {
92
+ const nextSelection = group ? {
93
+ [group.id]: dsUtilities.addOrRemove([...(selection[group.id] || [])], item, o => o.id)
94
+ } : {
95
+ [item.id]: item.label
96
+ };
97
+ onChange(nextSelection);
98
+ }
99
+ };
100
+
101
+ const removeOption = option => {
102
+ if (dsUtilities.isFunction(onChange)) {
103
+ const nextSelection = {
104
+ [selectionId]: selectionValues.filter(val => option.id !== val.id)
105
+ };
106
+ onChange(nextSelection);
107
+ }
108
+
109
+ onRemove(option);
110
+ };
111
+
112
+ return /*#__PURE__*/_jsx__default["default"](PillGroup.PillGroup, {
113
+ onFocusGroupSet: onFocusGroupSet,
114
+ onFocusNextGroup: onFocusNextGroup,
115
+ onFocusPreviousGroup: onFocusPreviousGroup
116
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(DropdownPill.DropdownPill, _objectSpread(_objectSpread({}, menuProps), {}, {
117
+ itemsRenderer: renderMenuItems,
118
+ label: dropdownLabel || placeholder,
119
+ maxWidth: maxWidth,
120
+ minWidth: minWidth,
121
+ onSelectChange: handleSelectChange,
122
+ options: options,
123
+ selection: {
124
+ [selectionId]: Array.isArray(selectionValues) ? selectionValues.map(v => v.id) : selectionValues
125
+ },
126
+ singleGroupSelection: true,
127
+ variant: "title"
128
+ })), Array.isArray(selectionValues) && selectionValues.map(option => /*#__PURE__*/_jsx__default["default"](RemovablePill.RemovablePill, {
129
+ label: option.label,
130
+ onRemove: () => removeOption(option)
131
+ }, option.id)));
132
+ }
133
+
134
+ module.exports = LabeledDropdownCascadeMenuPill;
@@ -0,0 +1,153 @@
1
+ 'use strict';
2
+
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.filter.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.filter.js');
10
+ require('core-js/modules/esnext.async-iterator.map.js');
11
+ require('core-js/modules/esnext.iterator.map.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
14
+ var React = require('react');
15
+ var lodash = require('lodash');
16
+ var dsUtilities = require('@elliemae/ds-utilities');
17
+ var RemovablePill = require('../RemovablePill.js');
18
+ var Pill = require('../Pill.js');
19
+ var OverflowPill = require('../OverflowPill.js');
20
+ var DropdownPill = require('../DropdownPill.js');
21
+ var jsxRuntime = require('react/jsx-runtime');
22
+
23
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
+
25
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
26
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
27
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
28
+
29
+ const _excluded = ["label", "options", "value", "onSelect", "onRemove", "onChange", "maxWidth", "minWidth"];
30
+
31
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
32
+
33
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
34
+ function LabeledDropdownMultiPills(_ref) {
35
+ let {
36
+ label,
37
+ options = [],
38
+ value = [],
39
+ onSelect = () => null,
40
+ onRemove = () => null,
41
+ onChange,
42
+ // if this is defined, then it's calculating the next result onSelect or onRemove
43
+ maxWidth,
44
+ minWidth
45
+ } = _ref,
46
+ menuProps = _objectWithoutProperties__default["default"](_ref, _excluded);
47
+
48
+ const [totalDefaultOptions, setTotalDefaultOptions] = React.useState(0);
49
+ const [selectedOptions, setSelectedOptions] = React.useState(value);
50
+ const [allOptions, setAllOptions] = React.useState(options);
51
+ const [overflowOptions, setOverflowOptions] = React.useState([]);
52
+ const overflowQuantity = 3;
53
+ React.useEffect(() => setSelectedOptions(value), [value]);
54
+ React.useEffect(() => {
55
+ const newOptions = allOptions.filter(option => option.fixedItem);
56
+
57
+ if (newOptions.length > 0) {
58
+ setSelectedOptions(newOptions);
59
+ }
60
+
61
+ setTotalDefaultOptions(newOptions.length);
62
+ }, []);
63
+ React.useEffect(() => {
64
+ if (totalDefaultOptions) {
65
+ const newOptions = allOptions.map(opt => {
66
+ if (selectedOptions.length <= totalDefaultOptions && lodash.find(selectedOptions, {
67
+ id: opt.id
68
+ })) {
69
+ return _objectSpread(_objectSpread({}, opt), {}, {
70
+ fixedItem: true
71
+ });
72
+ }
73
+
74
+ return _objectSpread(_objectSpread({}, opt), {}, {
75
+ fixedItem: false
76
+ });
77
+ });
78
+ setAllOptions(newOptions);
79
+ }
80
+ }, [onSelect, onRemove, selectedOptions]);
81
+ React.useEffect(() => {
82
+ if (selectedOptions.length > overflowQuantity) {
83
+ const overflow = selectedOptions.filter((val, index) => index >= overflowQuantity);
84
+ setOverflowOptions(overflow);
85
+ }
86
+ }, [selectedOptions]);
87
+ const selectOption = React.useCallback(option => {
88
+ if (!option.fixedItem) {
89
+ if (dsUtilities.isFunction(onChange)) {
90
+ const nextValue = dsUtilities.addOrRemove(selectedOptions, option, item => item.id);
91
+ setSelectedOptions(nextValue);
92
+ onChange(nextValue);
93
+ }
94
+
95
+ onSelect(option);
96
+ }
97
+ }, [selectedOptions]);
98
+ const removeOption = React.useCallback(option => {
99
+ if (!option.fixedItem || selectedOptions.length > totalDefaultOptions) {
100
+ if (dsUtilities.isFunction(onChange)) {
101
+ const nextValue = selectedOptions.filter(val => option.id !== val.id);
102
+ setSelectedOptions(nextValue);
103
+ onChange(nextValue);
104
+ }
105
+
106
+ onRemove(option);
107
+ }
108
+ }, [selectedOptions]);
109
+
110
+ const typeOfPill = () => {
111
+ if (selectedOptions.length > totalDefaultOptions) {
112
+ return RemovablePill.RemovablePill;
113
+ }
114
+
115
+ return Pill.Pill;
116
+ };
117
+
118
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
119
+ children: [/*#__PURE__*/jsxRuntime.jsx(DropdownPill.DropdownPill, _objectSpread(_objectSpread({}, menuProps), {}, {
120
+ focusOnOpen: false,
121
+ label: label,
122
+ maxWidth: maxWidth,
123
+ minWidth: minWidth,
124
+ onSelectMenuItem: selectOption,
125
+ options: [_objectSpread(_objectSpread({}, menuProps), {}, {
126
+ type: 'SelectionGroup',
127
+ id: 'multi-selection-views',
128
+ multi: true,
129
+ items: allOptions
130
+ })],
131
+ selection: {
132
+ 'multi-selection-views': selectedOptions ? selectedOptions.map(o => o.id) : ''
133
+ },
134
+ variant: "title"
135
+ })), selectedOptions && selectedOptions.map((option, index) => {
136
+ const TypeOfPill = typeOfPill();
137
+
138
+ if (index < overflowQuantity) {
139
+ return /*#__PURE__*/_jsx__default["default"](TypeOfPill, {
140
+ label: option.label,
141
+ onRemove: () => removeOption(option)
142
+ }, option.id);
143
+ }
144
+
145
+ return null;
146
+ }), selectedOptions && selectedOptions.length > overflowQuantity && /*#__PURE__*/_jsx__default["default"](OverflowPill.OverflowPill, {
147
+ label: "+ ".concat(selectedOptions.length - overflowQuantity),
148
+ options: overflowOptions
149
+ })]
150
+ });
151
+ }
152
+
153
+ module.exports = LabeledDropdownMultiPills;