@elliemae/ds-pills 2.3.1 → 3.0.0-alpha.3

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/dist/cjs/components/Pill.js +72 -0
  2. package/dist/cjs/components/Pill.js.map +7 -0
  3. package/dist/cjs/components/PillButton.js +86 -0
  4. package/dist/cjs/components/PillButton.js.map +7 -0
  5. package/dist/cjs/components/PillGroup.js +100 -0
  6. package/dist/cjs/components/PillGroup.js.map +7 -0
  7. package/dist/cjs/components/index.js +30 -0
  8. package/dist/cjs/components/index.js.map +7 -0
  9. package/dist/cjs/components/styled.js +235 -0
  10. package/dist/cjs/components/styled.js.map +7 -0
  11. package/dist/cjs/components/types/DropdownPill.js +105 -0
  12. package/dist/cjs/components/types/DropdownPill.js.map +7 -0
  13. package/dist/cjs/components/types/InputPill.js +84 -0
  14. package/dist/cjs/components/types/InputPill.js.map +7 -0
  15. package/dist/cjs/components/types/LabelPill.js +52 -0
  16. package/dist/cjs/components/types/LabelPill.js.map +7 -0
  17. package/dist/cjs/components/types/ReadOnlyPill.js +55 -0
  18. package/dist/cjs/components/types/ReadOnlyPill.js.map +7 -0
  19. package/dist/cjs/components/types/RemovablePill.js +90 -0
  20. package/dist/cjs/components/types/RemovablePill.js.map +7 -0
  21. package/dist/cjs/components/types/ValuePill.js +59 -0
  22. package/dist/cjs/components/types/ValuePill.js.map +7 -0
  23. package/dist/cjs/components/types/index.js +33 -0
  24. package/dist/cjs/components/types/index.js.map +7 -0
  25. package/dist/cjs/deprecated/DropdownPill.js +128 -0
  26. package/dist/cjs/deprecated/DropdownPill.js.map +7 -0
  27. package/dist/cjs/deprecated/InputPill.js +114 -0
  28. package/dist/cjs/deprecated/InputPill.js.map +7 -0
  29. package/dist/cjs/deprecated/LabeledDropdownPills.js +140 -0
  30. package/dist/cjs/deprecated/LabeledDropdownPills.js.map +7 -0
  31. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +169 -0
  32. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js.map +7 -0
  33. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +181 -0
  34. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js.map +7 -0
  35. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +190 -0
  36. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js.map +7 -0
  37. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/utils.js +44 -0
  38. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/utils.js.map +7 -0
  39. package/dist/cjs/deprecated/LabeledPills.js +75 -0
  40. package/dist/cjs/deprecated/LabeledPills.js.map +7 -0
  41. package/dist/cjs/deprecated/OverflowPill.js +79 -0
  42. package/dist/cjs/deprecated/OverflowPill.js.map +7 -0
  43. package/dist/cjs/deprecated/Pill.js +107 -0
  44. package/dist/cjs/deprecated/Pill.js.map +7 -0
  45. package/dist/cjs/deprecated/PillGroup.js +84 -0
  46. package/dist/cjs/deprecated/PillGroup.js.map +7 -0
  47. package/dist/cjs/deprecated/ReadOnlyPill.js +100 -0
  48. package/dist/cjs/deprecated/ReadOnlyPill.js.map +7 -0
  49. package/dist/cjs/deprecated/RemovablePill.js +78 -0
  50. package/dist/cjs/deprecated/RemovablePill.js.map +7 -0
  51. package/dist/cjs/deprecated/index.js +43 -0
  52. package/dist/cjs/deprecated/index.js.map +7 -0
  53. package/dist/cjs/index.d.js +27 -0
  54. package/dist/cjs/index.d.js.map +7 -0
  55. package/dist/cjs/index.js +37 -0
  56. package/dist/cjs/index.js.map +7 -0
  57. package/dist/cjs/props.js +96 -0
  58. package/dist/cjs/props.js.map +7 -0
  59. package/dist/cjs/utils.js +46 -0
  60. package/dist/cjs/utils.js.map +7 -0
  61. package/dist/esm/components/Pill.js +45 -0
  62. package/dist/esm/components/Pill.js.map +7 -0
  63. package/dist/esm/components/PillButton.js +59 -0
  64. package/dist/esm/components/PillButton.js.map +7 -0
  65. package/dist/esm/components/PillGroup.js +78 -0
  66. package/dist/esm/components/PillGroup.js.map +7 -0
  67. package/dist/esm/components/index.js +5 -0
  68. package/dist/esm/components/index.js.map +7 -0
  69. package/dist/esm/components/styled.js +206 -0
  70. package/dist/esm/components/styled.js.map +7 -0
  71. package/dist/esm/components/types/DropdownPill.js +78 -0
  72. package/dist/esm/components/types/DropdownPill.js.map +7 -0
  73. package/dist/esm/components/types/InputPill.js +55 -0
  74. package/dist/esm/components/types/InputPill.js.map +7 -0
  75. package/dist/esm/components/types/LabelPill.js +23 -0
  76. package/dist/esm/components/types/LabelPill.js.map +7 -0
  77. package/dist/esm/components/types/ReadOnlyPill.js +26 -0
  78. package/dist/esm/components/types/ReadOnlyPill.js.map +7 -0
  79. package/dist/esm/components/types/RemovablePill.js +61 -0
  80. package/dist/esm/components/types/RemovablePill.js.map +7 -0
  81. package/dist/esm/components/types/ValuePill.js +30 -0
  82. package/dist/esm/components/types/ValuePill.js.map +7 -0
  83. package/dist/esm/components/types/index.js +8 -0
  84. package/dist/esm/components/types/index.js.map +7 -0
  85. package/dist/esm/deprecated/DropdownPill.js +101 -0
  86. package/dist/esm/deprecated/DropdownPill.js.map +7 -0
  87. package/dist/esm/deprecated/InputPill.js +87 -0
  88. package/dist/esm/deprecated/InputPill.js.map +7 -0
  89. package/dist/esm/deprecated/LabeledDropdownPills.js +113 -0
  90. package/dist/esm/deprecated/LabeledDropdownPills.js.map +7 -0
  91. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +142 -0
  92. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js.map +7 -0
  93. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +154 -0
  94. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js.map +7 -0
  95. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +163 -0
  96. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js.map +7 -0
  97. package/dist/esm/deprecated/LabeledDropdownPillsTypes/utils.js +15 -0
  98. package/dist/esm/deprecated/LabeledDropdownPillsTypes/utils.js.map +7 -0
  99. package/dist/esm/deprecated/LabeledPills.js +46 -0
  100. package/dist/esm/deprecated/LabeledPills.js.map +7 -0
  101. package/dist/esm/deprecated/OverflowPill.js +50 -0
  102. package/dist/esm/deprecated/OverflowPill.js.map +7 -0
  103. package/dist/esm/deprecated/Pill.js +80 -0
  104. package/dist/esm/deprecated/Pill.js.map +7 -0
  105. package/dist/esm/deprecated/PillGroup.js +57 -0
  106. package/dist/esm/deprecated/PillGroup.js.map +7 -0
  107. package/dist/esm/deprecated/ReadOnlyPill.js +71 -0
  108. package/dist/esm/deprecated/ReadOnlyPill.js.map +7 -0
  109. package/dist/esm/deprecated/RemovablePill.js +49 -0
  110. package/dist/esm/deprecated/RemovablePill.js.map +7 -0
  111. package/dist/esm/deprecated/index.js +14 -0
  112. package/dist/esm/deprecated/index.js.map +7 -0
  113. package/dist/esm/index.d.js +2 -0
  114. package/dist/esm/index.d.js.map +7 -0
  115. package/dist/esm/index.js +8 -0
  116. package/dist/esm/index.js.map +7 -0
  117. package/dist/esm/props.js +67 -0
  118. package/dist/esm/props.js.map +7 -0
  119. package/dist/esm/utils.js +17 -0
  120. package/dist/esm/utils.js.map +7 -0
  121. package/package.json +94 -85
  122. package/cjs/components/Pill.js +0 -53
  123. package/cjs/components/PillButton.js +0 -56
  124. package/cjs/components/PillGroup.js +0 -87
  125. package/cjs/components/index.js +0 -17
  126. package/cjs/components/styled.js +0 -85
  127. package/cjs/components/types/DropdownPill.js +0 -86
  128. package/cjs/components/types/InputPill.js +0 -74
  129. package/cjs/components/types/LabelPill.js +0 -46
  130. package/cjs/components/types/ReadOnlyPill.js +0 -50
  131. package/cjs/components/types/RemovablePill.js +0 -85
  132. package/cjs/components/types/ValuePill.js +0 -54
  133. package/cjs/components/types/index.js +0 -19
  134. package/cjs/deprecated/DropdownPill.js +0 -113
  135. package/cjs/deprecated/InputPill.js +0 -84
  136. package/cjs/deprecated/LabeledDropdownPills.js +0 -106
  137. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +0 -134
  138. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +0 -153
  139. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +0 -162
  140. package/cjs/deprecated/LabeledDropdownPillsTypes/utils.js +0 -20
  141. package/cjs/deprecated/LabeledPills.js +0 -62
  142. package/cjs/deprecated/OverflowPill.js +0 -73
  143. package/cjs/deprecated/Pill.js +0 -88
  144. package/cjs/deprecated/PillGroup.js +0 -72
  145. package/cjs/deprecated/ReadOnlyPill.js +0 -101
  146. package/cjs/deprecated/RemovablePill.js +0 -74
  147. package/cjs/deprecated/index.js +0 -33
  148. package/cjs/index.d.js +0 -2
  149. package/cjs/index.js +0 -43
  150. package/cjs/props.js +0 -70
  151. package/cjs/utils.js +0 -28
  152. package/esm/components/Pill.js +0 -44
  153. package/esm/components/PillButton.js +0 -46
  154. package/esm/components/PillGroup.js +0 -75
  155. package/esm/components/index.js +0 -3
  156. package/esm/components/styled.js +0 -67
  157. package/esm/components/types/DropdownPill.js +0 -76
  158. package/esm/components/types/InputPill.js +0 -65
  159. package/esm/components/types/LabelPill.js +0 -37
  160. package/esm/components/types/ReadOnlyPill.js +0 -41
  161. package/esm/components/types/RemovablePill.js +0 -76
  162. package/esm/components/types/ValuePill.js +0 -45
  163. package/esm/components/types/index.js +0 -6
  164. package/esm/deprecated/DropdownPill.js +0 -100
  165. package/esm/deprecated/InputPill.js +0 -74
  166. package/esm/deprecated/LabeledDropdownPills.js +0 -95
  167. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +0 -126
  168. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +0 -145
  169. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +0 -154
  170. package/esm/deprecated/LabeledDropdownPillsTypes/utils.js +0 -16
  171. package/esm/deprecated/LabeledPills.js +0 -53
  172. package/esm/deprecated/OverflowPill.js +0 -62
  173. package/esm/deprecated/Pill.js +0 -76
  174. package/esm/deprecated/PillGroup.js +0 -60
  175. package/esm/deprecated/ReadOnlyPill.js +0 -90
  176. package/esm/deprecated/RemovablePill.js +0 -64
  177. package/esm/deprecated/index.js +0 -8
  178. package/esm/index.d.js +0 -1
  179. package/esm/index.js +0 -11
  180. package/esm/props.js +0 -61
  181. package/esm/utils.js +0 -24
  182. package/types/components/Pill.d.ts +0 -5
  183. package/types/components/PillButton.d.ts +0 -5
  184. package/types/components/PillGroup.d.ts +0 -9
  185. package/types/components/index.d.ts +0 -3
  186. package/types/components/styled.d.ts +0 -20
  187. package/types/components/types/DropdownPill.d.ts +0 -3
  188. package/types/components/types/InputPill.d.ts +0 -3
  189. package/types/components/types/LabelPill.d.ts +0 -3
  190. package/types/components/types/ReadOnlyPill.d.ts +0 -3
  191. package/types/components/types/RemovablePill.d.ts +0 -3
  192. package/types/components/types/ValuePill.d.ts +0 -3
  193. package/types/components/types/index.d.ts +0 -6
  194. package/types/deprecated/DropdownPill.d.ts +0 -66
  195. package/types/deprecated/InputPill.d.ts +0 -10
  196. package/types/deprecated/LabeledDropdownPills.d.ts +0 -82
  197. package/types/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.d.ts +0 -15
  198. package/types/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.d.ts +0 -13
  199. package/types/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.d.ts +0 -28
  200. package/types/deprecated/LabeledDropdownPillsTypes/utils.d.ts +0 -1
  201. package/types/deprecated/LabeledPills.d.ts +0 -52
  202. package/types/deprecated/OverflowPill.d.ts +0 -33
  203. package/types/deprecated/Pill.d.ts +0 -59
  204. package/types/deprecated/PillGroup.d.ts +0 -50
  205. package/types/deprecated/ReadOnlyPill.d.ts +0 -56
  206. package/types/deprecated/RemovablePill.d.ts +0 -49
  207. package/types/deprecated/index.d.ts +0 -9
  208. package/types/index.d.ts +0 -3
  209. package/types/props.d.ts +0 -93
  210. package/types/tests/DSPill.test.d.ts +0 -1
  211. package/types/tests/DSPillGroup.test.d.ts +0 -1
  212. package/types/tests/events/DSPill.events.keyboard.test.d.ts +0 -1
  213. package/types/tests/events/DSPill.events.test.d.ts +0 -1
  214. package/types/tests/events/DSPillGroup.events.keyboard.test.d.ts +0 -1
  215. package/types/tests/events/DSPillGroup.events.test.d.ts +0 -1
  216. package/types/utils.d.ts +0 -4
@@ -1,74 +0,0 @@
1
- import 'core-js/modules/esnext.async-iterator.filter.js';
2
- import 'core-js/modules/esnext.iterator.constructor.js';
3
- import 'core-js/modules/esnext.iterator.filter.js';
4
- import 'core-js/modules/esnext.async-iterator.for-each.js';
5
- import 'core-js/modules/esnext.iterator.for-each.js';
6
- import _jsx from '@babel/runtime/helpers/esm/jsx';
7
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
8
- import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
9
- import 'react';
10
- import { CloseXsmall } from '@elliemae/ds-icons';
11
- import { aggregatedClasses } from '@elliemae/ds-classnames';
12
- import { DSInput, DSInputMask } from '@elliemae/ds-form';
13
- import { Pill } from './Pill.js';
14
- import { jsx } from 'react/jsx-runtime';
15
-
16
- const _excluded = ["containerProps", "placeholder", "onChange", "onRemove", "value", "type"];
17
-
18
- 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; }
19
-
20
- 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(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; }
21
- const StyledInputPill = aggregatedClasses(Pill)('input-pill', null, _ref => {
22
- let {
23
- value
24
- } = _ref;
25
- return {
26
- value
27
- };
28
- });
29
- function InputPill(_ref2) {
30
- let {
31
- containerProps = {},
32
- placeholder = 'Enter Value',
33
- onChange = () => {},
34
- onRemove,
35
- value,
36
- type
37
- } = _ref2,
38
- otherProps = _objectWithoutProperties(_ref2, _excluded);
39
-
40
- let TypeOfInput = DSInput; // TODO: implement the DSTimeInput, see how because it returns a moment()
41
- // TODO: implement the DSDateInput
42
-
43
- switch (type) {
44
- case 'inputText':
45
- TypeOfInput = DSInput;
46
- break;
47
-
48
- case 'inputMask':
49
- TypeOfInput = DSInputMask;
50
- break;
51
- }
52
-
53
- return /*#__PURE__*/_jsx(StyledInputPill, {
54
- className: "input-pill",
55
- classProps: {
56
- value
57
- },
58
- containerProps: containerProps,
59
- label: /*#__PURE__*/jsx(TypeOfInput, _objectSpread({
60
- "data-testid": "input-pill",
61
- onChange: onChange,
62
- placeholder: placeholder,
63
- value: value
64
- }, otherProps)),
65
- rightAddon: value && /*#__PURE__*/_jsx(CloseXsmall, {
66
- className: "remove-pill-button",
67
- "data-testid": "remove-pill-button",
68
- onClick: onRemove
69
- }),
70
- tabIndex: -1
71
- });
72
- }
73
-
74
- export { InputPill };
@@ -1,95 +0,0 @@
1
- import 'core-js/modules/esnext.async-iterator.filter.js';
2
- import 'core-js/modules/esnext.iterator.constructor.js';
3
- import 'core-js/modules/esnext.iterator.filter.js';
4
- import 'core-js/modules/esnext.async-iterator.for-each.js';
5
- import 'core-js/modules/esnext.iterator.for-each.js';
6
- import _jsx from '@babel/runtime/helpers/esm/jsx';
7
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
8
- import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
9
- import 'react';
10
- import { PropTypes, describe } from 'react-desc';
11
- import { PillGroup } from './PillGroup.js';
12
- import LabeledDropdownSinglePill from './LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js';
13
- import LabeledDropdownMultiPills from './LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js';
14
- import LabeledDropdownCascadeMenuPill from './LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js';
15
- import { jsx } from 'react/jsx-runtime';
16
-
17
- const _excluded = ["label", "value", "type", "onFocusNextGroup", "onFocusPreviousGroup", "onFocusGroupSet", "maxWidth", "minWidth", "fixed"];
18
-
19
- 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; }
20
-
21
- 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(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; }
22
- const DropdownPills = {
23
- single: LabeledDropdownSinglePill,
24
- multi: LabeledDropdownMultiPills,
25
- cascaded: LabeledDropdownCascadeMenuPill
26
- };
27
-
28
- const createDropdownPill = type => DropdownPills[type] || DropdownPills.single;
29
-
30
- function LabeledDropdownPills(_ref) {
31
- let {
32
- label = '',
33
- value,
34
- type,
35
- onFocusNextGroup,
36
- onFocusPreviousGroup,
37
- onFocusGroupSet,
38
- maxWidth,
39
- minWidth,
40
- fixed
41
- } = _ref,
42
- menuProps = _objectWithoutProperties(_ref, _excluded);
43
-
44
- const Component = createDropdownPill(type);
45
- return /*#__PURE__*/_jsx(PillGroup, {
46
- onFocusGroupSet: onFocusGroupSet,
47
- onFocusNextGroup: onFocusNextGroup,
48
- onFocusPreviousGroup: onFocusPreviousGroup
49
- }, void 0, /*#__PURE__*/jsx(Component, _objectSpread(_objectSpread({}, menuProps), {}, {
50
- label: label,
51
- maxWidth: maxWidth,
52
- minWidth: minWidth,
53
- value: value,
54
- fixed: fixed
55
- })));
56
- }
57
-
58
- const props = {
59
- /** pill type */
60
- type: PropTypes.oneOf(['single', 'multi', 'cascaded']).description('pill type'),
61
-
62
- /** focus next group callback */
63
- onFocusNextGroup: PropTypes.func.description('focus next group callback'),
64
-
65
- /** focus prev group callback */
66
- onFocusPreviousGroup: PropTypes.func.description('focus prev group callback'),
67
-
68
- /** focus group set callback */
69
- onFocusGroupSet: PropTypes.func.description('focus group set callback'),
70
-
71
- /** pill max width */
72
- maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('pill max width'),
73
-
74
- /** pill min width */
75
- minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('pill min width'),
76
-
77
- /** fixed pill */
78
- fixed: PropTypes.bool.description('fixed pill'),
79
-
80
- /** pill label text */
81
- label: PropTypes.string.isRequired.description('pill label text'),
82
-
83
- /** pill value */
84
- value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({
85
- id: PropTypes.string,
86
- label: PropTypes.string
87
- })), PropTypes.shape({
88
- id: PropTypes.string,
89
- label: PropTypes.string
90
- })]).description('pill value')
91
- };
92
- const DSLabeledDropdownPillsWithSchema = describe(LabeledDropdownPills);
93
- DSLabeledDropdownPillsWithSchema.propTypes = props;
94
-
95
- export { DSLabeledDropdownPillsWithSchema, LabeledDropdownPills };
@@ -1,126 +0,0 @@
1
- import 'core-js/modules/esnext.async-iterator.for-each.js';
2
- import 'core-js/modules/esnext.iterator.for-each.js';
3
- import _jsx from '@babel/runtime/helpers/esm/jsx';
4
- import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
5
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
6
- import 'core-js/modules/esnext.async-iterator.map.js';
7
- import 'core-js/modules/esnext.iterator.map.js';
8
- import 'core-js/modules/web.dom-collections.iterator.js';
9
- import 'core-js/modules/esnext.async-iterator.filter.js';
10
- import 'core-js/modules/esnext.iterator.constructor.js';
11
- import 'core-js/modules/esnext.iterator.filter.js';
12
- import { createElement } from 'react';
13
- import { isFunction, addOrRemove } from '@elliemae/ds-utilities';
14
- import { PillGroup } from '../PillGroup.js';
15
- import { RemovablePill } from '../RemovablePill.js';
16
- import { DropdownPill } from '../DropdownPill.js';
17
- import { jsx } from 'react/jsx-runtime';
18
-
19
- const _excluded = ["label", "options", "value", "onChange", "onRemove", "value", "placeholder", "onFocusNextGroup", "onFocusPreviousGroup", "onFocusGroupSet", "maxWidth", "minWidth"];
20
-
21
- 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; }
22
-
23
- 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(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; }
24
-
25
- function renderMenuItems(options, factory) {
26
- return options.map((option, index) => {
27
- const ItemComponent = factory('radio');
28
-
29
- if (option.type === 'submenu') {
30
- const SubmenuComponent = factory('submenu');
31
- const ChildComponent = factory('selection-group');
32
- return /*#__PURE__*/createElement(SubmenuComponent, _objectSpread(_objectSpread({}, option), {}, {
33
- key: option.id,
34
- item: option
35
- }), /*#__PURE__*/jsx(ChildComponent, _objectSpread(_objectSpread({}, option), {}, {
36
- id: option.id,
37
- item: option,
38
- items: option.items,
39
- itemValueAccessor: item => item,
40
- multi: true
41
- })));
42
- }
43
-
44
- return /*#__PURE__*/createElement(ItemComponent, _objectSpread(_objectSpread({}, option), {}, {
45
- key: option.id || index,
46
- item: option
47
- }));
48
- });
49
- }
50
-
51
- const getSubmenuOptionLabelById = (options, id) => {
52
- const index = options.findIndex(option => option.id === id);
53
- return index ? options[index].label : '';
54
- };
55
-
56
- function LabeledDropdownCascadeMenuPill(_ref) {
57
- let {
58
- label,
59
- options,
60
- value: optionValue,
61
- onChange,
62
- onRemove,
63
- value: selection = {},
64
- placeholder = '---',
65
- onFocusNextGroup,
66
- onFocusPreviousGroup,
67
- onFocusGroupSet,
68
- maxWidth,
69
- minWidth
70
- } = _ref,
71
- menuProps = _objectWithoutProperties(_ref, _excluded);
72
-
73
- const selectionId = Object.keys(selection)[0];
74
- const selectionValues = selection[selectionId] || '';
75
- const dropdownLabel = Array.isArray(selectionValues) ? getSubmenuOptionLabelById(options, selectionId) : selectionValues;
76
-
77
- const handleSelectChange = _ref2 => {
78
- let {
79
- item,
80
- group
81
- } = _ref2;
82
-
83
- if (isFunction(onChange)) {
84
- const nextSelection = group ? {
85
- [group.id]: addOrRemove([...(selection[group.id] || [])], item, o => o.id)
86
- } : {
87
- [item.id]: item.label
88
- };
89
- onChange(nextSelection);
90
- }
91
- };
92
-
93
- const removeOption = option => {
94
- if (isFunction(onChange)) {
95
- const nextSelection = {
96
- [selectionId]: selectionValues.filter(val => option.id !== val.id)
97
- };
98
- onChange(nextSelection);
99
- }
100
-
101
- onRemove(option);
102
- };
103
-
104
- return /*#__PURE__*/_jsx(PillGroup, {
105
- onFocusGroupSet: onFocusGroupSet,
106
- onFocusNextGroup: onFocusNextGroup,
107
- onFocusPreviousGroup: onFocusPreviousGroup
108
- }, void 0, /*#__PURE__*/jsx(DropdownPill, _objectSpread(_objectSpread({}, menuProps), {}, {
109
- itemsRenderer: renderMenuItems,
110
- label: dropdownLabel || placeholder,
111
- maxWidth: maxWidth,
112
- minWidth: minWidth,
113
- onSelectChange: handleSelectChange,
114
- options: options,
115
- selection: {
116
- [selectionId]: Array.isArray(selectionValues) ? selectionValues.map(v => v.id) : selectionValues
117
- },
118
- singleGroupSelection: true,
119
- variant: "title"
120
- })), Array.isArray(selectionValues) && selectionValues.map(option => /*#__PURE__*/_jsx(RemovablePill, {
121
- label: option.label,
122
- onRemove: () => removeOption(option)
123
- }, option.id)));
124
- }
125
-
126
- export { LabeledDropdownCascadeMenuPill as default };
@@ -1,145 +0,0 @@
1
- import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
3
- import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
4
- import 'core-js/modules/web.dom-collections.iterator.js';
5
- import 'core-js/modules/esnext.async-iterator.filter.js';
6
- import 'core-js/modules/esnext.iterator.constructor.js';
7
- import 'core-js/modules/esnext.iterator.filter.js';
8
- import 'core-js/modules/esnext.async-iterator.map.js';
9
- import 'core-js/modules/esnext.iterator.map.js';
10
- import 'core-js/modules/esnext.async-iterator.for-each.js';
11
- import 'core-js/modules/esnext.iterator.for-each.js';
12
- import { useState, useEffect, useCallback } from 'react';
13
- import { find } from 'lodash';
14
- import { isFunction, addOrRemove } from '@elliemae/ds-utilities';
15
- import { RemovablePill } from '../RemovablePill.js';
16
- import { Pill } from '../Pill.js';
17
- import { OverflowPill } from '../OverflowPill.js';
18
- import { DropdownPill } from '../DropdownPill.js';
19
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
20
-
21
- const _excluded = ["label", "options", "value", "onSelect", "onRemove", "onChange", "maxWidth", "minWidth"];
22
-
23
- 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; }
24
-
25
- 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(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; }
26
- function LabeledDropdownMultiPills(_ref) {
27
- let {
28
- label,
29
- options = [],
30
- value = [],
31
- onSelect = () => null,
32
- onRemove = () => null,
33
- onChange,
34
- // if this is defined, then it's calculating the next result onSelect or onRemove
35
- maxWidth,
36
- minWidth
37
- } = _ref,
38
- menuProps = _objectWithoutProperties(_ref, _excluded);
39
-
40
- const [totalDefaultOptions, setTotalDefaultOptions] = useState(0);
41
- const [selectedOptions, setSelectedOptions] = useState(value);
42
- const [allOptions, setAllOptions] = useState(options);
43
- const [overflowOptions, setOverflowOptions] = useState([]);
44
- const overflowQuantity = 3;
45
- useEffect(() => setSelectedOptions(value), [value]);
46
- useEffect(() => {
47
- const newOptions = allOptions.filter(option => option.fixedItem);
48
-
49
- if (newOptions.length > 0) {
50
- setSelectedOptions(newOptions);
51
- }
52
-
53
- setTotalDefaultOptions(newOptions.length);
54
- }, []);
55
- useEffect(() => {
56
- if (totalDefaultOptions) {
57
- const newOptions = allOptions.map(opt => {
58
- if (selectedOptions.length <= totalDefaultOptions && find(selectedOptions, {
59
- id: opt.id
60
- })) {
61
- return _objectSpread(_objectSpread({}, opt), {}, {
62
- fixedItem: true
63
- });
64
- }
65
-
66
- return _objectSpread(_objectSpread({}, opt), {}, {
67
- fixedItem: false
68
- });
69
- });
70
- setAllOptions(newOptions);
71
- }
72
- }, [onSelect, onRemove, selectedOptions]);
73
- useEffect(() => {
74
- if (selectedOptions.length > overflowQuantity) {
75
- const overflow = selectedOptions.filter((val, index) => index >= overflowQuantity);
76
- setOverflowOptions(overflow);
77
- }
78
- }, [selectedOptions]);
79
- const selectOption = useCallback(option => {
80
- if (!option.fixedItem) {
81
- if (isFunction(onChange)) {
82
- const nextValue = addOrRemove(selectedOptions, option, item => item.id);
83
- setSelectedOptions(nextValue);
84
- onChange(nextValue);
85
- }
86
-
87
- onSelect(option);
88
- }
89
- }, [selectedOptions]);
90
- const removeOption = useCallback(option => {
91
- if (!option.fixedItem || selectedOptions.length > totalDefaultOptions) {
92
- if (isFunction(onChange)) {
93
- const nextValue = selectedOptions.filter(val => option.id !== val.id);
94
- setSelectedOptions(nextValue);
95
- onChange(nextValue);
96
- }
97
-
98
- onRemove(option);
99
- }
100
- }, [selectedOptions]);
101
-
102
- const typeOfPill = () => {
103
- if (selectedOptions.length > totalDefaultOptions) {
104
- return RemovablePill;
105
- }
106
-
107
- return Pill;
108
- };
109
-
110
- return /*#__PURE__*/jsxs(Fragment, {
111
- children: [/*#__PURE__*/jsx(DropdownPill, _objectSpread(_objectSpread({}, menuProps), {}, {
112
- focusOnOpen: false,
113
- label: label,
114
- maxWidth: maxWidth,
115
- minWidth: minWidth,
116
- onSelectMenuItem: selectOption,
117
- options: [_objectSpread(_objectSpread({}, menuProps), {}, {
118
- type: 'SelectionGroup',
119
- id: 'multi-selection-views',
120
- multi: true,
121
- items: allOptions
122
- })],
123
- selection: {
124
- 'multi-selection-views': selectedOptions ? selectedOptions.map(o => o.id) : ''
125
- },
126
- variant: "title"
127
- })), selectedOptions && selectedOptions.map((option, index) => {
128
- const TypeOfPill = typeOfPill();
129
-
130
- if (index < overflowQuantity) {
131
- return /*#__PURE__*/_jsx(TypeOfPill, {
132
- label: option.label,
133
- onRemove: () => removeOption(option)
134
- }, option.id);
135
- }
136
-
137
- return null;
138
- }), selectedOptions && selectedOptions.length > overflowQuantity && /*#__PURE__*/_jsx(OverflowPill, {
139
- label: "+ ".concat(selectedOptions.length - overflowQuantity),
140
- options: overflowOptions
141
- })]
142
- });
143
- }
144
-
145
- export { LabeledDropdownMultiPills as default };
@@ -1,154 +0,0 @@
1
- import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
3
- import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
4
- import 'core-js/modules/web.dom-collections.iterator.js';
5
- import 'core-js/modules/esnext.async-iterator.find.js';
6
- import 'core-js/modules/esnext.iterator.constructor.js';
7
- import 'core-js/modules/esnext.iterator.find.js';
8
- import 'core-js/modules/esnext.async-iterator.filter.js';
9
- import 'core-js/modules/esnext.iterator.filter.js';
10
- import 'core-js/modules/esnext.async-iterator.for-each.js';
11
- import 'core-js/modules/esnext.iterator.for-each.js';
12
- import { useState, useEffect, useLayoutEffect, useCallback } from 'react';
13
- import { usePrevious, useShouldRecalculate, isFunction, isString } from '@elliemae/ds-utilities';
14
- import { DropdownPill } from '../DropdownPill.js';
15
- import { InputPill } from '../InputPill.js';
16
- import { Pill } from '../Pill.js';
17
- import { RemovablePill } from '../RemovablePill.js';
18
- import { hasOptionChanged } from './utils.js';
19
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
20
-
21
- var _Pill;
22
-
23
- const _excluded = ["label", "labelIsValue", "options", "value", "onSelect", "onChange", "maxWidth", "minWidth", "fixed"],
24
- _excluded2 = ["input", "onChangeInput"];
25
-
26
- 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; }
27
-
28
- 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(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; }
29
- function LabeledDropdownSinglePill(_ref) {
30
- let {
31
- label,
32
- labelIsValue = false,
33
- options,
34
- value,
35
- onSelect = () => null,
36
- onChange,
37
- maxWidth,
38
- minWidth,
39
- fixed = false
40
- } = _ref,
41
- menuProps = _objectWithoutProperties(_ref, _excluded);
42
-
43
- const [optionValue, setOptionValue] = useState(value);
44
- const prevOptions = usePrevious(options);
45
- const areOptionsEqual = useShouldRecalculate(hasOptionChanged(prevOptions, options));
46
- useEffect(() => setOptionValue(value), [value]);
47
- useEffect(() => {
48
- const selectedValue = options.find(option => option.selected);
49
-
50
- if (selectedValue) {
51
- setOptionValue(selectedValue);
52
- } else if (!selectedValue) {
53
- setOptionValue(options[0]);
54
- }
55
- }, [areOptionsEqual]);
56
- useLayoutEffect(() => {
57
- if (optionValue) {
58
- const selectedValue = options.find(option => option.id === optionValue.id);
59
- setOptionValue(selectedValue);
60
- }
61
- }, [options]);
62
- const selectOption = useCallback(option => {
63
- if (isFunction(onChange)) {
64
- onChange(option);
65
- }
66
-
67
- setOptionValue(option);
68
- onSelect(option);
69
- }, [onChange, onSelect]);
70
- const onChangeInputValue = useCallback(_ref2 => {
71
- let {
72
- target: {
73
- value: inputValue
74
- }
75
- } = _ref2;
76
- const {
77
- onChangeInput
78
- } = optionValue;
79
- onChangeInput && onChangeInput(inputValue);
80
- }, [optionValue]);
81
-
82
- const removeOption = removedOption => {
83
- const {
84
- onRemove
85
- } = menuProps;
86
- const {
87
- onChangeInput
88
- } = optionValue;
89
- setOptionValue(null);
90
- onChangeInput && onChangeInput('');
91
-
92
- const newOption = _objectSpread(_objectSpread({}, removedOption), {}, {
93
- input: ''
94
- });
95
-
96
- onRemove && onRemove(newOption, removedOption);
97
- };
98
-
99
- const renderPill = (option, fixed) => {
100
- const {
101
- input,
102
- onChangeInput
103
- } = option,
104
- otherProps = _objectWithoutProperties(option, _excluded2);
105
-
106
- let SelectedPill;
107
-
108
- if (isString(input)) {
109
- SelectedPill = InputPill;
110
- } else if (fixed) {
111
- SelectedPill = Pill;
112
- } else {
113
- SelectedPill = RemovablePill;
114
- }
115
-
116
- return /*#__PURE__*/jsx(SelectedPill, _objectSpread({
117
- label: option.label,
118
- onChange: onChangeInputValue,
119
- onRemove: e => removeOption(option),
120
- value: input
121
- }, otherProps), option.id);
122
- };
123
-
124
- const renderSelection = () => {
125
- if (!labelIsValue) {
126
- if (optionValue) return renderPill(optionValue, fixed);
127
- return _Pill || (_Pill = /*#__PURE__*/_jsx(Pill, {
128
- label: "-"
129
- }));
130
- }
131
- };
132
-
133
- return /*#__PURE__*/jsxs(Fragment, {
134
- children: [/*#__PURE__*/jsx(DropdownPill, _objectSpread(_objectSpread({}, menuProps), {}, {
135
- label: !labelIsValue ? label : optionValue === null || optionValue === void 0 ? void 0 : optionValue.label,
136
- maxWidth: maxWidth,
137
- minWidth: minWidth,
138
- onSelectMenuItem: selectOption,
139
- options: [_objectSpread(_objectSpread({}, menuProps), {}, {
140
- type: 'SelectionGroup',
141
- id: 'multi-selection-views',
142
- multi: false,
143
- items: options,
144
- closeOnClick: true
145
- })],
146
- selection: {
147
- 'multi-selection-views': optionValue ? [optionValue === null || optionValue === void 0 ? void 0 : optionValue.id] : ''
148
- },
149
- variant: "title"
150
- })), renderSelection()]
151
- });
152
- }
153
-
154
- export { LabeledDropdownSinglePill as default };
@@ -1,16 +0,0 @@
1
- import 'core-js/modules/esnext.async-iterator.map.js';
2
- import 'core-js/modules/esnext.iterator.map.js';
3
- import { isEqual } from '@elliemae/ds-utilities';
4
- import { omit } from 'lodash';
5
-
6
- const hasOptionChanged = (prevOptions, options) => {
7
- if (prevOptions && options) {
8
- const prevOptionsOmited = prevOptions.map(option => omit(option, ['input', 'onChangeInput', 'mask']));
9
- const optionsOmited = options.map(option => omit(option, ['input', 'onChangeInput', 'mask']));
10
- return isEqual(prevOptionsOmited, optionsOmited);
11
- }
12
-
13
- return false;
14
- };
15
-
16
- export { hasOptionChanged };
@@ -1,53 +0,0 @@
1
- import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import 'react';
3
- import { PropTypes, describe } from 'react-desc';
4
- import { PillGroup } from './PillGroup.js';
5
- import { RemovablePill } from './RemovablePill.js';
6
- import { Pill } from './Pill.js';
7
-
8
- function LabeledPills(_ref) {
9
- let {
10
- children,
11
- label = '',
12
- leftAddon,
13
- onFocusGroupSet,
14
- onFocusNextGroup,
15
- onFocusPreviousGroup
16
- } = _ref;
17
- return /*#__PURE__*/_jsx(PillGroup, {
18
- onFocusGroupSet: onFocusGroupSet,
19
- onFocusNextGroup: onFocusNextGroup,
20
- onFocusPreviousGroup: onFocusPreviousGroup
21
- }, void 0, /*#__PURE__*/_jsx(Pill, {
22
- label: label,
23
- leftAddon: leftAddon,
24
- variant: "title",
25
- "data-testid": "pill-title"
26
- }), children);
27
- }
28
-
29
- const props = {
30
- /** labeled pill text label */
31
- label: PropTypes.string.isRequired.description('pill text label'),
32
-
33
- /** pill to add the label to */
34
- children: PropTypes.arrayOf(PropTypes.shape({
35
- type: PropTypes.oneOf([PropTypes.instanceOf(Pill), PropTypes.instanceOf(RemovablePill)])
36
- })).isRequired.description('pill to add the label to'),
37
-
38
- /** addon component to left */
39
- leftAddon: PropTypes.node.description('addon component to left'),
40
-
41
- /** focus next group callback */
42
- onFocusNextGroup: PropTypes.func.description('focus next group callback'),
43
-
44
- /** focus prev group callback */
45
- onFocusPreviousGroup: PropTypes.func.description('focus prev group callback'),
46
-
47
- /** focus group set callback */
48
- onFocusGroupSet: PropTypes.func.description('focus group set callback')
49
- };
50
- const DSLabeledPillsWithSchema = describe(LabeledPills);
51
- DSLabeledPillsWithSchema.propTypes = props;
52
-
53
- export { DSLabeledPillsWithSchema, LabeledPills };