@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,162 @@
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.find.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.find.js');
10
+ require('core-js/modules/esnext.async-iterator.filter.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 DropdownPill = require('../DropdownPill.js');
17
+ var InputPill = require('../InputPill.js');
18
+ var Pill = require('../Pill.js');
19
+ var RemovablePill = require('../RemovablePill.js');
20
+ var utils = require('./utils.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
+ var _Pill;
30
+
31
+ const _excluded = ["label", "labelIsValue", "options", "value", "onSelect", "onChange", "maxWidth", "minWidth", "fixed"],
32
+ _excluded2 = ["input", "onChangeInput"];
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
+ function LabeledDropdownSinglePill(_ref) {
38
+ let {
39
+ label,
40
+ labelIsValue = false,
41
+ options,
42
+ value,
43
+ onSelect = () => null,
44
+ onChange,
45
+ maxWidth,
46
+ minWidth,
47
+ fixed = false
48
+ } = _ref,
49
+ menuProps = _objectWithoutProperties__default["default"](_ref, _excluded);
50
+
51
+ const [optionValue, setOptionValue] = React.useState(value);
52
+ const prevOptions = dsUtilities.usePrevious(options);
53
+ const areOptionsEqual = dsUtilities.useShouldRecalculate(utils.hasOptionChanged(prevOptions, options));
54
+ React.useEffect(() => setOptionValue(value), [value]);
55
+ React.useEffect(() => {
56
+ const selectedValue = options.find(option => option.selected);
57
+
58
+ if (selectedValue) {
59
+ setOptionValue(selectedValue);
60
+ } else if (!selectedValue) {
61
+ setOptionValue(options[0]);
62
+ }
63
+ }, [areOptionsEqual]);
64
+ React.useLayoutEffect(() => {
65
+ if (optionValue) {
66
+ const selectedValue = options.find(option => option.id === optionValue.id);
67
+ setOptionValue(selectedValue);
68
+ }
69
+ }, [options]);
70
+ const selectOption = React.useCallback(option => {
71
+ if (dsUtilities.isFunction(onChange)) {
72
+ onChange(option);
73
+ }
74
+
75
+ setOptionValue(option);
76
+ onSelect(option);
77
+ }, [onChange, onSelect]);
78
+ const onChangeInputValue = React.useCallback(_ref2 => {
79
+ let {
80
+ target: {
81
+ value: inputValue
82
+ }
83
+ } = _ref2;
84
+ const {
85
+ onChangeInput
86
+ } = optionValue;
87
+ onChangeInput && onChangeInput(inputValue);
88
+ }, [optionValue]);
89
+
90
+ const removeOption = removedOption => {
91
+ const {
92
+ onRemove
93
+ } = menuProps;
94
+ const {
95
+ onChangeInput
96
+ } = optionValue;
97
+ setOptionValue(null);
98
+ onChangeInput && onChangeInput('');
99
+
100
+ const newOption = _objectSpread(_objectSpread({}, removedOption), {}, {
101
+ input: ''
102
+ });
103
+
104
+ onRemove && onRemove(newOption, removedOption);
105
+ };
106
+
107
+ const renderPill = (option, fixed) => {
108
+ const {
109
+ input,
110
+ onChangeInput
111
+ } = option,
112
+ otherProps = _objectWithoutProperties__default["default"](option, _excluded2);
113
+
114
+ let SelectedPill;
115
+
116
+ if (dsUtilities.isString(input)) {
117
+ SelectedPill = InputPill.InputPill;
118
+ } else if (fixed) {
119
+ SelectedPill = Pill.Pill;
120
+ } else {
121
+ SelectedPill = RemovablePill.RemovablePill;
122
+ }
123
+
124
+ return /*#__PURE__*/jsxRuntime.jsx(SelectedPill, _objectSpread({
125
+ label: option.label,
126
+ onChange: onChangeInputValue,
127
+ onRemove: e => removeOption(option),
128
+ value: input
129
+ }, otherProps), option.id);
130
+ };
131
+
132
+ const renderSelection = () => {
133
+ if (!labelIsValue) {
134
+ if (optionValue) return renderPill(optionValue, fixed);
135
+ return _Pill || (_Pill = /*#__PURE__*/_jsx__default["default"](Pill.Pill, {
136
+ label: "-"
137
+ }));
138
+ }
139
+ };
140
+
141
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
142
+ children: [/*#__PURE__*/jsxRuntime.jsx(DropdownPill.DropdownPill, _objectSpread(_objectSpread({}, menuProps), {}, {
143
+ label: !labelIsValue ? label : optionValue === null || optionValue === void 0 ? void 0 : optionValue.label,
144
+ maxWidth: maxWidth,
145
+ minWidth: minWidth,
146
+ onSelectMenuItem: selectOption,
147
+ options: [_objectSpread(_objectSpread({}, menuProps), {}, {
148
+ type: 'SelectionGroup',
149
+ id: 'multi-selection-views',
150
+ multi: false,
151
+ items: options,
152
+ closeOnClick: true
153
+ })],
154
+ selection: {
155
+ 'multi-selection-views': optionValue ? [optionValue === null || optionValue === void 0 ? void 0 : optionValue.id] : ''
156
+ },
157
+ variant: "title"
158
+ })), renderSelection()]
159
+ });
160
+ }
161
+
162
+ module.exports = LabeledDropdownSinglePill;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.map.js');
6
+ require('core-js/modules/esnext.iterator.map.js');
7
+ var dsUtilities = require('@elliemae/ds-utilities');
8
+ var lodash = require('lodash');
9
+
10
+ const hasOptionChanged = (prevOptions, options) => {
11
+ if (prevOptions && options) {
12
+ const prevOptionsOmited = prevOptions.map(option => lodash.omit(option, ['input', 'onChangeInput', 'mask']));
13
+ const optionsOmited = options.map(option => lodash.omit(option, ['input', 'onChangeInput', 'mask']));
14
+ return dsUtilities.isEqual(prevOptionsOmited, optionsOmited);
15
+ }
16
+
17
+ return false;
18
+ };
19
+
20
+ exports.hasOptionChanged = hasOptionChanged;
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('react');
7
+ var reactDesc = require('react-desc');
8
+ var PillGroup = require('./PillGroup.js');
9
+ var RemovablePill = require('./RemovablePill.js');
10
+ var Pill = require('./Pill.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
15
+
16
+ function LabeledPills(_ref) {
17
+ let {
18
+ children,
19
+ label = '',
20
+ leftAddon,
21
+ onFocusGroupSet,
22
+ onFocusNextGroup,
23
+ onFocusPreviousGroup
24
+ } = _ref;
25
+ return /*#__PURE__*/_jsx__default["default"](PillGroup.PillGroup, {
26
+ onFocusGroupSet: onFocusGroupSet,
27
+ onFocusNextGroup: onFocusNextGroup,
28
+ onFocusPreviousGroup: onFocusPreviousGroup
29
+ }, void 0, /*#__PURE__*/_jsx__default["default"](Pill.Pill, {
30
+ label: label,
31
+ leftAddon: leftAddon,
32
+ variant: "title",
33
+ "data-testid": "pill-title"
34
+ }), children);
35
+ }
36
+
37
+ const props = {
38
+ /** labeled pill text label */
39
+ label: reactDesc.PropTypes.string.isRequired.description('pill text label'),
40
+
41
+ /** pill to add the label to */
42
+ children: reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.shape({
43
+ type: reactDesc.PropTypes.oneOf([reactDesc.PropTypes.instanceOf(Pill.Pill), reactDesc.PropTypes.instanceOf(RemovablePill.RemovablePill)])
44
+ })).isRequired.description('pill to add the label to'),
45
+
46
+ /** addon component to left */
47
+ leftAddon: reactDesc.PropTypes.node.description('addon component to left'),
48
+
49
+ /** focus next group callback */
50
+ onFocusNextGroup: reactDesc.PropTypes.func.description('focus next group callback'),
51
+
52
+ /** focus prev group callback */
53
+ onFocusPreviousGroup: reactDesc.PropTypes.func.description('focus prev group callback'),
54
+
55
+ /** focus group set callback */
56
+ onFocusGroupSet: reactDesc.PropTypes.func.description('focus group set callback')
57
+ };
58
+ const DSLabeledPillsWithSchema = reactDesc.describe(LabeledPills);
59
+ DSLabeledPillsWithSchema.propTypes = props;
60
+
61
+ exports.DSLabeledPillsWithSchema = DSLabeledPillsWithSchema;
62
+ exports.LabeledPills = LabeledPills;
@@ -0,0 +1,73 @@
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/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.for-each.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var React = require('react');
11
+ var reactDesc = require('react-desc');
12
+ var useFocusGroupItem = require('@elliemae/ds-shared/FocusGroup/useFocusGroupItem');
13
+ var DSTooltip = require('@elliemae/ds-tooltip');
14
+ var Pill = require('./Pill.js');
15
+
16
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
+
18
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
19
+ var useFocusGroupItem__default = /*#__PURE__*/_interopDefaultLegacy(useFocusGroupItem);
20
+ var DSTooltip__default = /*#__PURE__*/_interopDefaultLegacy(DSTooltip);
21
+
22
+ function OverflowPill(_ref) {
23
+ let {
24
+ containerProps = {},
25
+ label = '',
26
+ options = []
27
+ } = _ref;
28
+ const ref = React.useRef(null);
29
+ const [tooltipIsOpen, setTooltipIsOpen] = React.useState(false);
30
+ const [tooltipText, setTooltipText] = React.useState('');
31
+ React.useEffect(() => {
32
+ let text = '';
33
+ options.forEach(option => {
34
+ if (!tooltipText || option === options[0]) {
35
+ text = "".concat(option.label);
36
+ } else {
37
+ text = text.concat(", ".concat(option.label));
38
+ }
39
+ });
40
+ setTooltipText(text);
41
+ }, [options]);
42
+ useFocusGroupItem__default["default"](ref);
43
+ return /*#__PURE__*/_jsx__default["default"](DSTooltip__default["default"], {
44
+ isOpen: tooltipIsOpen,
45
+ title: tooltipText,
46
+ zIndex: 11,
47
+ triggerComponent: /*#__PURE__*/_jsx__default["default"](Pill.Pill, {
48
+ className: "overflow-pill",
49
+ containerProps: containerProps,
50
+ innerRef: ref,
51
+ label: label,
52
+ tabIndex: -1,
53
+ onMouseEnter: () => setTooltipIsOpen(true),
54
+ onMouseLeave: () => setTooltipIsOpen(false)
55
+ })
56
+ });
57
+ }
58
+
59
+ const props = {
60
+ /** props to inject to pill wrapper */
61
+ containerProps: reactDesc.PropTypes.object.description('props to inject to pill wrapper'),
62
+
63
+ /** pill text label */
64
+ label: reactDesc.PropTypes.string.isRequired.description('pill text label'),
65
+
66
+ /** overflow pills options */
67
+ options: reactDesc.PropTypes.array.description('overflow pills options')
68
+ };
69
+ const DSOverflowPillWithSchema = reactDesc.describe(OverflowPill);
70
+ DSOverflowPillWithSchema.propTypes = props;
71
+
72
+ exports.DSOverflowPillWithSchema = DSOverflowPillWithSchema;
73
+ exports.OverflowPill = OverflowPill;
@@ -0,0 +1,88 @@
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 _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ var _jsx = require('@babel/runtime/helpers/jsx');
12
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
13
+ require('react');
14
+ var reactDesc = require('react-desc');
15
+ var dsClassnames = require('@elliemae/ds-classnames');
16
+ var jsxRuntime = require('react/jsx-runtime');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
21
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
22
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
23
+
24
+ const _excluded = ["containerProps", "label", "leftAddon", "rightAddon", "variant", "size"];
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__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; }
29
+ const pillBlockName = 'pill';
30
+ const PillWrapper = dsClassnames.aggregatedClasses('div')(pillBlockName, null, _ref => {
31
+ let {
32
+ size,
33
+ variant
34
+ } = _ref;
35
+ return {
36
+ [variant]: !!variant,
37
+ [size]: !!size
38
+ };
39
+ });
40
+ const PillLabel = dsClassnames.aggregatedClasses('span')(pillBlockName, 'label');
41
+ const PillAddon = dsClassnames.aggregatedClasses('div')(pillBlockName, 'addon');
42
+
43
+ function Pill(_ref2) {
44
+ let {
45
+ containerProps = {},
46
+ label = '',
47
+ leftAddon,
48
+ rightAddon,
49
+ variant = 'value',
50
+ size = 'm'
51
+ } = _ref2,
52
+ otherProps = _objectWithoutProperties__default["default"](_ref2, _excluded);
53
+
54
+ return /*#__PURE__*/jsxRuntime.jsxs(PillWrapper, _objectSpread(_objectSpread(_objectSpread({}, containerProps), {}, {
55
+ classProps: {
56
+ variant,
57
+ size
58
+ }
59
+ }, otherProps), {}, {
60
+ children: [leftAddon && /*#__PURE__*/_jsx__default["default"](PillAddon, {}, void 0, leftAddon), /*#__PURE__*/_jsx__default["default"](PillLabel, {}, void 0, label), rightAddon && /*#__PURE__*/_jsx__default["default"](PillAddon, {}, void 0, rightAddon)]
61
+ }));
62
+ }
63
+
64
+ const props = {
65
+ /** props to inject to pill wrapper */
66
+ containerProps: reactDesc.PropTypes.object.description('props to inject to pill wrapper'),
67
+
68
+ /** pill text label */
69
+ label: reactDesc.PropTypes.string.isRequired.description('pill text label'),
70
+
71
+ /** pill size */
72
+ size: reactDesc.PropTypes.oneOf(['m', 'l']).description('pill size'),
73
+
74
+ /** pill variant */
75
+ variant: reactDesc.PropTypes.oneOf(['value', 'title']).description('pill variant'),
76
+
77
+ /** addon component to left */
78
+ leftAddon: reactDesc.PropTypes.node.description('addon component to left'),
79
+
80
+ /** addon component to right */
81
+ rightAddon: reactDesc.PropTypes.node.description('addon component to right')
82
+ };
83
+ const DSPillWithSchema = reactDesc.describe(Pill);
84
+ DSPillWithSchema.propTypes = props;
85
+
86
+ exports.DSPillWithSchema = DSPillWithSchema;
87
+ exports.Pill = Pill;
88
+ exports["default"] = Pill;
@@ -0,0 +1,72 @@
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
+ require('react');
13
+ var reactDesc = require('react-desc');
14
+ var dsClassnames = require('@elliemae/ds-classnames');
15
+ var FocusGroupProvider = require('@elliemae/ds-shared/FocusGroup/FocusGroupManager');
16
+ var jsxRuntime = require('react/jsx-runtime');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
21
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
22
+ var FocusGroupProvider__default = /*#__PURE__*/_interopDefaultLegacy(FocusGroupProvider);
23
+
24
+ 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; }
25
+
26
+ 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; }
27
+ const pillGroupBlockName = 'pill-group';
28
+ const Container = dsClassnames.aggregatedClasses('div')(pillGroupBlockName);
29
+
30
+ const PillGroup = _ref => {
31
+ let {
32
+ containerProps = {},
33
+ onFocusNextGroup,
34
+ onFocusPreviousGroup,
35
+ onFocusGroupSet,
36
+ children
37
+ } = _ref;
38
+ return /*#__PURE__*/_jsx__default["default"](FocusGroupProvider__default["default"], {
39
+ keyBindings: {
40
+ Tab: 'next'
41
+ },
42
+ onFocusGroupSet: onFocusGroupSet,
43
+ onFocusNextGroup: onFocusNextGroup,
44
+ onFocusPreviousGroup: onFocusPreviousGroup,
45
+ orientation: "horizontal"
46
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(Container, _objectSpread(_objectSpread({}, containerProps), {}, {
47
+ children: children
48
+ })));
49
+ };
50
+
51
+ const props = {
52
+ /** props injected to component wrapper */
53
+ containerProps: reactDesc.PropTypes.object.description('props injected to component wrapper'),
54
+
55
+ /** focus next group callback */
56
+ onFocusNextGroup: reactDesc.PropTypes.func.description('focus next group callback'),
57
+
58
+ /** focus prev group callback */
59
+ onFocusPreviousGroup: reactDesc.PropTypes.func.description('focus prev group callback'),
60
+
61
+ /** focus group set callback */
62
+ onFocusGroupSet: reactDesc.PropTypes.func.description('focus group set callback'),
63
+
64
+ /** pill components */
65
+ children: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.node), reactDesc.PropTypes.node]).isRequired.description('pill components')
66
+ };
67
+ const DSPillGroupWithSchema = reactDesc.describe(PillGroup);
68
+ DSPillGroupWithSchema.propTypes = props;
69
+
70
+ exports.Container = Container;
71
+ exports.DSPillGroupWithSchema = DSPillGroupWithSchema;
72
+ exports.PillGroup = PillGroup;
@@ -0,0 +1,101 @@
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/web.dom-collections.iterator.js');
7
+ var React = require('react');
8
+ var reactDesc = require('react-desc');
9
+ var dsIcons = require('@elliemae/ds-icons');
10
+ var DSModal = require('@elliemae/ds-modal');
11
+ var Popover = require('@elliemae/ds-popover');
12
+ var Pill = require('./Pill.js');
13
+ var jsxRuntime = require('react/jsx-runtime');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
18
+ var DSModal__default = /*#__PURE__*/_interopDefaultLegacy(DSModal);
19
+ var Popover__default = /*#__PURE__*/_interopDefaultLegacy(Popover);
20
+
21
+ const ReadOnlyPill = _ref => {
22
+ let {
23
+ containerProps = {},
24
+ modalContent = '',
25
+ label = '',
26
+ leftAddon,
27
+ modalTitle = '',
28
+ tooltipText = ''
29
+ } = _ref;
30
+ const ref = React.useRef(null);
31
+ const [isModalOpen, setIsModalOpen] = React.useState(false);
32
+ const [isTooltipOpen, setIsTooltipOpen] = React.useState(false);
33
+
34
+ const toggle = () => {
35
+ setIsModalOpen(!isModalOpen);
36
+ };
37
+
38
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
39
+ children: [/*#__PURE__*/_jsx__default["default"](Pill.Pill, {
40
+ "data-testid": "read-only-pill",
41
+ className: "removable-pill",
42
+ containerProps: containerProps,
43
+ innerRef: ref,
44
+ label: label,
45
+ leftAddon: leftAddon,
46
+ rightAddon: /*#__PURE__*/_jsx__default["default"](Popover__default["default"], {
47
+ isOpen: tooltipText && isTooltipOpen,
48
+ content: tooltipText,
49
+ placement: "top",
50
+ showArrow: true,
51
+ renderTrigger: _ref2 => {
52
+ let {
53
+ ref
54
+ } = _ref2;
55
+ return /*#__PURE__*/_jsx__default["default"](dsIcons.InfoCircleSmall, {
56
+ role: "button",
57
+ "data-testid": "read-only-info-btn",
58
+ className: "remove-pill-button",
59
+ onClick: toggle,
60
+ onMouseEnter: () => setIsTooltipOpen(true),
61
+ onMouseLeave: () => setIsTooltipOpen(false),
62
+ color: ['brand-primary', '600'],
63
+ innerRef: ref
64
+ });
65
+ }
66
+ }),
67
+ tabIndex: -1
68
+ }), /*#__PURE__*/_jsx__default["default"](DSModal__default["default"], {
69
+ isOpen: isModalOpen,
70
+ showClose: true,
71
+ shouldCloseOnOverlayClick: true,
72
+ modalTitle: modalTitle,
73
+ modalType: DSModal.MODAL_TYPE_V2.INFORMATION,
74
+ onClose: toggle,
75
+ version: 2
76
+ }, void 0, modalContent)]
77
+ });
78
+ };
79
+
80
+ const props = {
81
+ /** props injected to component wrapper */
82
+ containerProps: reactDesc.PropTypes.object.description('props injected to component wrapper'),
83
+
84
+ /** labeled pill text label */
85
+ label: reactDesc.PropTypes.string.isRequired.description('pill text label'),
86
+
87
+ /** addon component to left */
88
+ leftAddon: reactDesc.PropTypes.node.description('addon component to left'),
89
+
90
+ /** read only pill modal content */
91
+ modalContent: reactDesc.PropTypes.string.description('read only pill modal content'),
92
+
93
+ /** read only pill modal title */
94
+ modalTitle: reactDesc.PropTypes.string.description('read only pill modal title'),
95
+ tooltipText: reactDesc.PropTypes.string.description('text to display in tooltip')
96
+ };
97
+ const DSReadOnlyPillWithSchema = reactDesc.describe(ReadOnlyPill);
98
+ DSReadOnlyPillWithSchema.propTypes = props;
99
+
100
+ exports.DSReadOnlyPillWithSchema = DSReadOnlyPillWithSchema;
101
+ exports.ReadOnlyPill = ReadOnlyPill;
@@ -0,0 +1,74 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ var React = require('react');
7
+ var reactDesc = require('react-desc');
8
+ var dsUtilities = require('@elliemae/ds-utilities');
9
+ var dsIcons = require('@elliemae/ds-icons');
10
+ var useFocusGroupItem = require('@elliemae/ds-shared/FocusGroup/useFocusGroupItem');
11
+ var Pill = require('./Pill.js');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
16
+ var useFocusGroupItem__default = /*#__PURE__*/_interopDefaultLegacy(useFocusGroupItem);
17
+
18
+ function RemovablePill(_ref) {
19
+ let {
20
+ containerProps = {},
21
+ label = '',
22
+ onRemove,
23
+ size = 'm',
24
+ leftAddon
25
+ } = _ref;
26
+ const ref = React.useRef(null);
27
+ const {
28
+ focusPrevious
29
+ } = useFocusGroupItem__default["default"](ref);
30
+ return /*#__PURE__*/_jsx__default["default"](Pill.Pill, {
31
+ className: "removable-pill",
32
+ "data-testid": "removable-pill",
33
+ containerProps: containerProps,
34
+ innerRef: ref,
35
+ size: size,
36
+ label: label,
37
+ leftAddon: leftAddon,
38
+ onKeyDown: e => {
39
+ if (e.key === 'Backspace' && dsUtilities.isFunction(onRemove)) {
40
+ onRemove();
41
+ if (dsUtilities.isFunction(focusPrevious)) focusPrevious();
42
+ }
43
+ },
44
+ rightAddon: /*#__PURE__*/_jsx__default["default"](dsIcons.CloseXsmall, {
45
+ role: "button",
46
+ "data-testid": "remove-pill-button",
47
+ className: "remove-pill-button",
48
+ onClick: onRemove
49
+ }),
50
+ tabIndex: -1
51
+ });
52
+ }
53
+
54
+ const props = {
55
+ /** props injected to component wrapper */
56
+ containerProps: reactDesc.PropTypes.object.description('props injected to component wrapper'),
57
+
58
+ /** labeled pill text label */
59
+ label: reactDesc.PropTypes.string.isRequired.description('pill text label'),
60
+
61
+ /** remove click callback */
62
+ onRemove: reactDesc.PropTypes.func.description('remove click callback'),
63
+
64
+ /** pill size */
65
+ size: reactDesc.PropTypes.oneOf(['m', 'l']).description('pill size'),
66
+
67
+ /** addon component to left */
68
+ leftAddon: reactDesc.PropTypes.node.description('addon component to left')
69
+ };
70
+ const DSRemovablePillWithSchema = reactDesc.describe(RemovablePill);
71
+ DSRemovablePillWithSchema.propTypes = props;
72
+
73
+ exports.DSRemovablePillWithSchema = DSRemovablePillWithSchema;
74
+ exports.RemovablePill = RemovablePill;