@elliemae/ds-search-field 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 (50) hide show
  1. package/cjs/DSSearchField.js +169 -0
  2. package/cjs/impl/DSSeachFieldImpl.js +243 -0
  3. package/cjs/impl/components/AdvanceSearchOption/AdvanceSearchOption.js +26 -0
  4. package/cjs/impl/components/LookupIndicator/LookupIndicator.js +34 -0
  5. package/cjs/impl/components/ModalSearchField/DataGridSearch.js +117 -0
  6. package/cjs/impl/components/ModalSearchField/ModalSearchField.js +83 -0
  7. package/cjs/index.js +12 -0
  8. package/esm/DSSearchField.js +159 -0
  9. package/esm/impl/DSSeachFieldImpl.js +234 -0
  10. package/esm/impl/components/AdvanceSearchOption/AdvanceSearchOption.js +19 -0
  11. package/esm/impl/components/LookupIndicator/LookupIndicator.js +27 -0
  12. package/esm/impl/components/ModalSearchField/DataGridSearch.js +108 -0
  13. package/esm/impl/components/ModalSearchField/ModalSearchField.js +76 -0
  14. package/esm/index.js +2 -0
  15. package/package.json +37 -39
  16. package/types/DSSearchField.d.ts +231 -0
  17. package/types/impl/DSSeachFieldImpl.d.ts +16 -0
  18. package/types/impl/components/AdvanceSearchOption/AdvanceSearchOption.d.ts +6 -0
  19. package/types/impl/components/LookupIndicator/LookupIndicator.d.ts +6 -0
  20. package/types/impl/components/ModalSearchField/DataGridSearch.d.ts +7 -0
  21. package/types/impl/components/ModalSearchField/ModalSearchField.d.ts +23 -0
  22. package/types/index.d.ts +1 -0
  23. package/dist/cjs/DSSearchField.js +0 -133
  24. package/dist/cjs/DSSearchField.js.map +0 -7
  25. package/dist/cjs/impl/DSSeachFieldImpl.js +0 -212
  26. package/dist/cjs/impl/DSSeachFieldImpl.js.map +0 -7
  27. package/dist/cjs/impl/components/AdvanceSearchOption/AdvanceSearchOption.js +0 -44
  28. package/dist/cjs/impl/components/AdvanceSearchOption/AdvanceSearchOption.js.map +0 -7
  29. package/dist/cjs/impl/components/LookupIndicator/LookupIndicator.js +0 -50
  30. package/dist/cjs/impl/components/LookupIndicator/LookupIndicator.js.map +0 -7
  31. package/dist/cjs/impl/components/ModalSearchField/DataGridSearch.js +0 -107
  32. package/dist/cjs/impl/components/ModalSearchField/DataGridSearch.js.map +0 -7
  33. package/dist/cjs/impl/components/ModalSearchField/ModalSearchField.js +0 -94
  34. package/dist/cjs/impl/components/ModalSearchField/ModalSearchField.js.map +0 -7
  35. package/dist/cjs/index.js +0 -37
  36. package/dist/cjs/index.js.map +0 -7
  37. package/dist/esm/DSSearchField.js +0 -104
  38. package/dist/esm/DSSearchField.js.map +0 -7
  39. package/dist/esm/impl/DSSeachFieldImpl.js +0 -183
  40. package/dist/esm/impl/DSSeachFieldImpl.js.map +0 -7
  41. package/dist/esm/impl/components/AdvanceSearchOption/AdvanceSearchOption.js +0 -15
  42. package/dist/esm/impl/components/AdvanceSearchOption/AdvanceSearchOption.js.map +0 -7
  43. package/dist/esm/impl/components/LookupIndicator/LookupIndicator.js +0 -21
  44. package/dist/esm/impl/components/LookupIndicator/LookupIndicator.js.map +0 -7
  45. package/dist/esm/impl/components/ModalSearchField/DataGridSearch.js +0 -78
  46. package/dist/esm/impl/components/ModalSearchField/DataGridSearch.js.map +0 -7
  47. package/dist/esm/impl/components/ModalSearchField/ModalSearchField.js +0 -65
  48. package/dist/esm/impl/components/ModalSearchField/ModalSearchField.js.map +0 -7
  49. package/dist/esm/index.js +0 -12
  50. package/dist/esm/index.js.map +0 -7
@@ -0,0 +1,169 @@
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 dsTabs = require('@elliemae/ds-tabs');
9
+ var DSSeachFieldImpl = require('./impl/DSSeachFieldImpl.js');
10
+ var ModalSearchField = require('./impl/components/ModalSearchField/ModalSearchField.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
+ const DSSearchField = _ref => {
17
+ let {
18
+ containerProps = {},
19
+ onChange = () => null,
20
+ searchOptionLabel = 'Advanced Search',
21
+ placeholder = 'Select field',
22
+ modalSize = 'x-large',
23
+ modalTitle = 'Search Field ID',
24
+ tabsAnimated = true,
25
+ tabsEnableMouseEvents = true,
26
+ tabType = dsTabs.TabTypes.NORMAL,
27
+ tabData = [],
28
+ searchGrid = false,
29
+ searchFilters = true,
30
+ confirmLabel = 'Apply',
31
+ rejectLabel = 'Cancel',
32
+ modalType = 'confirm',
33
+ onConfirmField = () => null,
34
+ onRejectField = () => null,
35
+ onTabChange = () => null,
36
+ appElement = '#root',
37
+ value = null,
38
+ additionalInfo = null,
39
+ displayProperty = 'name',
40
+ dropdownOptions = [],
41
+ customDataGridOptions = {},
42
+ customDropdownOptions = {},
43
+ useLookupIndicator = true,
44
+ searchable = false
45
+ } = _ref;
46
+ return /*#__PURE__*/_jsx__default["default"](DSSeachFieldImpl["default"], {
47
+ additionalInfo: additionalInfo,
48
+ appElement: appElement,
49
+ searchable: searchable,
50
+ confirmLabel: confirmLabel,
51
+ containerProps: containerProps,
52
+ customDataGridOptions: customDataGridOptions,
53
+ customDropdownOptions: customDropdownOptions,
54
+ displayProperty: displayProperty,
55
+ dropdownOptions: dropdownOptions,
56
+ modalSize: modalSize,
57
+ modalTitle: modalTitle,
58
+ modalType: modalType,
59
+ onChange: onChange,
60
+ onConfirmField: onConfirmField,
61
+ onRejectField: onRejectField,
62
+ onTabChange: onTabChange,
63
+ placeholder: placeholder,
64
+ rejectLabel: rejectLabel,
65
+ searchFilters: searchFilters,
66
+ searchGrid: searchGrid,
67
+ searchOptionLabel: searchOptionLabel,
68
+ tabData: tabData,
69
+ tabsAnimated: tabsAnimated,
70
+ tabsEnableMouseEvents: tabsEnableMouseEvents,
71
+ tabType: tabType,
72
+ useLookupIndicator: useLookupIndicator,
73
+ value: value
74
+ });
75
+ };
76
+
77
+ const props = {
78
+ /*
79
+ Enable the user to search on combobox
80
+ */
81
+ searchable: reactDesc.PropTypes.bool.description('Enable the user to search on combobox'),
82
+
83
+ /** inject props to wrapper */
84
+ containerProps: reactDesc.PropTypes.object.description('inject props to wrapper'),
85
+
86
+ /** change handler */
87
+ onChange: reactDesc.PropTypes.func.description('change handler'),
88
+
89
+ /** search option label */
90
+ searchOptionLabel: reactDesc.PropTypes.string.description('search option label'),
91
+
92
+ /** placeholder for search input */
93
+ placeholder: reactDesc.PropTypes.string.description('placeholder for search input'),
94
+
95
+ /** search modal size */
96
+ modalSize: reactDesc.PropTypes.oneOf(['x-large', 'large', 'medium']).description('search modal size'),
97
+
98
+ /** search modal title */
99
+ modalTitle: reactDesc.PropTypes.string.description('search modal title'),
100
+
101
+ /** animate modal tabs */
102
+ tabsAnimated: reactDesc.PropTypes.bool.description('animate modal tabs'),
103
+
104
+ /** enable mouse event on tabs */
105
+ tabsEnableMouseEvents: reactDesc.PropTypes.bool.description('enable mouse event on tabs'),
106
+
107
+ /** tab types on modal */
108
+ tabType: reactDesc.PropTypes.oneOf([dsTabs.TabTypes.NORMAL, dsTabs.TabTypes.SUBTABS]).description('tab types on modal'),
109
+
110
+ /** data for modal tabs */
111
+ tabData: reactDesc.PropTypes.array.description('data for modal tabs'),
112
+
113
+ /** use search grid */
114
+ searchGrid: reactDesc.PropTypes.bool.description('use search grid'),
115
+
116
+ /** add search filters */
117
+ searchFilters: reactDesc.PropTypes.bool.description('add search filters'),
118
+
119
+ /** confirm modal label */
120
+ confirmLabel: reactDesc.PropTypes.string.description('confirm modal label'),
121
+
122
+ /** reject modal label */
123
+ rejectLabel: reactDesc.PropTypes.string.description('reject modal label'),
124
+
125
+ /** modal type */
126
+ modalType: reactDesc.PropTypes.oneOf(['alert', 'confirm']).description('modal type'),
127
+
128
+ /** on confirm handler */
129
+ onConfirmField: reactDesc.PropTypes.func.description('on confirm handler'),
130
+
131
+ /** on cancel handler */
132
+ onRejectField: reactDesc.PropTypes.func.description('on cancel handler'),
133
+
134
+ /** tab change handler */
135
+ onTabChange: reactDesc.PropTypes.func.description('tab change handler'),
136
+
137
+ /** app element */
138
+ appElement: reactDesc.PropTypes.string.description('app element'),
139
+
140
+ /** value for search */
141
+ value: reactDesc.PropTypes.string.description('value for search'),
142
+
143
+ /** additional info */
144
+ additionalInfo: reactDesc.PropTypes.object.description('additional info'),
145
+
146
+ /** display property */
147
+ displayProperty: reactDesc.PropTypes.string.description('display property'),
148
+
149
+ /** options for dropdown */
150
+ dropdownOptions: reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.shape({
151
+ label: reactDesc.PropTypes.string,
152
+ value: reactDesc.PropTypes.string
153
+ })).description('options for dropdown'),
154
+
155
+ /** pass down props for datagrid in modal */
156
+ customDataGridOptions: reactDesc.PropTypes.object.description('pass down props for datagrid in modal'),
157
+
158
+ /** custom props for dropdown */
159
+ customDropdownOptions: reactDesc.PropTypes.object.description('custom props for dropdown'),
160
+
161
+ /** enable lookup */
162
+ useLookupIndicator: reactDesc.PropTypes.bool.description('enable lookup')
163
+ };
164
+ const DSSearchFieldWithSchema = reactDesc.describe(DSSearchField);
165
+ DSSearchFieldWithSchema.propTypes = props;
166
+
167
+ exports.DSModalSearchField = ModalSearchField;
168
+ exports.DSSearchFieldWithSchema = DSSearchFieldWithSchema;
169
+ exports["default"] = DSSearchField;
@@ -0,0 +1,243 @@
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
+ require('core-js/modules/web.dom-collections.iterator.js');
8
+ require('core-js/modules/esnext.async-iterator.find.js');
9
+ require('core-js/modules/esnext.iterator.constructor.js');
10
+ require('core-js/modules/esnext.iterator.find.js');
11
+ require('core-js/modules/esnext.async-iterator.filter.js');
12
+ require('core-js/modules/esnext.iterator.filter.js');
13
+ require('core-js/modules/esnext.async-iterator.for-each.js');
14
+ require('core-js/modules/esnext.iterator.for-each.js');
15
+ var react = require('react');
16
+ var reactSelect = require('react-select');
17
+ var dsClassnames = require('@elliemae/ds-classnames');
18
+ var dsForm = require('@elliemae/ds-form');
19
+ var ModalSearchField = require('./components/ModalSearchField/ModalSearchField.js');
20
+ var AdvanceSearchOption = require('./components/AdvanceSearchOption/AdvanceSearchOption.js');
21
+ var LookupIndicator = require('./components/LookupIndicator/LookupIndicator.js');
22
+ var jsxRuntime = require('react/jsx-runtime');
23
+
24
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
+
26
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
27
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
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 advanceOption = {
33
+ className: 'advanced-search-option',
34
+ label: 'Advanced search',
35
+ value: 'search-field-advance-option',
36
+ isAdvance: true
37
+ };
38
+ const {
39
+ cssClassName,
40
+ classNameElement,
41
+ classNameModifier,
42
+ classNameBlock
43
+ } = dsClassnames.convertPropToCssClassName('query-builder-addon-search-field');
44
+
45
+ class DSSearchFieldImpl extends react.Component {
46
+ constructor(props) {
47
+ super(props);
48
+
49
+ this.onChange = () => {
50
+ const {
51
+ selected: id,
52
+ additionalInfo: [row]
53
+ } = this.state;
54
+ const {
55
+ onChange
56
+ } = this.props;
57
+ onChange(id, row);
58
+ };
59
+
60
+ this.onChangeDropdown = value => {
61
+ const {
62
+ dropdownOptions
63
+ } = this.props;
64
+ const selected = dropdownOptions.find(op => op.value === value);
65
+ const {
66
+ onChange,
67
+ displayProperty
68
+ } = this.props;
69
+ if (selected) onChange(value, {
70
+ [displayProperty]: selected.label
71
+ });
72
+ };
73
+
74
+ this.onKeyDown = event => {
75
+ setTimeout(() => {
76
+ const {
77
+ keycode
78
+ } = event;
79
+ const {
80
+ value
81
+ } = this.props;
82
+ if (value && keycode === 13) this.handleCloseModal();
83
+ }, 0);
84
+ };
85
+
86
+ this.handleSelect = (selectedRow, rows) => {
87
+ let selected = selectedRow; // fix new datagrid callback format
88
+
89
+ if (!selected) return;
90
+ if (selected.id) selected = selected.id;else if (selected[0] && selected[0].id) selected = selected[0].id;
91
+ const additionalInfo = rows.filter(row => selected === row.id);
92
+ this.setState({
93
+ selected,
94
+ additionalInfo
95
+ });
96
+ };
97
+
98
+ this.handleConfirm = () => {
99
+ const {
100
+ onConfirmField
101
+ } = this.props;
102
+ this.onChange();
103
+ this.handleCloseModal();
104
+ onConfirmField();
105
+ };
106
+
107
+ this.handleReject = () => {
108
+ const {
109
+ onRejectField
110
+ } = this.props;
111
+ this.handleCloseModal();
112
+ onRejectField();
113
+ };
114
+
115
+ this.handleOpenModal = () => {
116
+ this.setState({
117
+ openModal: true
118
+ });
119
+ };
120
+
121
+ this.handleCloseModal = () => this.setState({
122
+ openModal: false,
123
+ selected: [],
124
+ additionalInfo: []
125
+ });
126
+
127
+ advanceOption.label = props.searchOptionLabel;
128
+ this.state = {
129
+ openModal: false,
130
+ selected: null,
131
+ additionalInfo: []
132
+ };
133
+ }
134
+
135
+ render() {
136
+ const {
137
+ placeholder,
138
+ modalTitle,
139
+ modalSize,
140
+ tabsAnimated,
141
+ tabsEnableMouseEvents,
142
+ tabType,
143
+ tabData,
144
+ searchFilters,
145
+ searchGrid,
146
+ confirmLabel,
147
+ rejectLabel,
148
+ modalType,
149
+ appElement,
150
+ value,
151
+ additionalInfo,
152
+ displayProperty,
153
+ dropdownOptions,
154
+ searchOptionLabel,
155
+ customDataGridOptions,
156
+ customDropdownOptions,
157
+ useLookupIndicator,
158
+ onTabChange,
159
+ containerProps,
160
+ searchable
161
+ } = this.props;
162
+ const {
163
+ openModal
164
+ } = this.state;
165
+ let options = [...dropdownOptions, advanceOption];
166
+ let displayValue = !value ? placeholder : value;
167
+ if (additionalInfo && additionalInfo[displayProperty]) displayValue = additionalInfo[displayProperty];
168
+ const defaultoption = {
169
+ value,
170
+ label: displayValue
171
+ };
172
+ const customComponents = {
173
+ Option: props => {
174
+ // return <AdvanceSearchOption onAdvanceSearchClick={this.handleOpenModal} />
175
+ props.innerProps.className = 'em-ds-combobox__option';
176
+
177
+ if (props.data.isAdvance) {
178
+ props.innerProps.onClick = this.handleOpenModal;
179
+ props.innerProps.className = "".concat(props.innerProps.className, " ").concat(advanceOption.className);
180
+ }
181
+
182
+ return /*#__PURE__*/jsxRuntime.jsx(reactSelect.components.Option, _objectSpread({}, props));
183
+ },
184
+ IndicatorSeparator: () => null,
185
+ NoOptionsMessage: props => /*#__PURE__*/jsxRuntime.jsx(AdvanceSearchOption, _objectSpread({
186
+ advanceSearchLabel: searchOptionLabel,
187
+ onAdvanceSearchClick: this.handleOpenModal
188
+ }, props))
189
+ };
190
+
191
+ if (useLookupIndicator) {
192
+ customComponents.DropdownIndicator = () => null;
193
+ }
194
+
195
+ if (!options.find(o => o.value === defaultoption.value)) {
196
+ options = [defaultoption, ...options];
197
+ }
198
+
199
+ return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({}, containerProps), {}, {
200
+ className: "".concat(cssClassName),
201
+ children: [/*#__PURE__*/_jsx__default["default"]("div", {
202
+ className: "".concat(classNameBlock('container-selector'))
203
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(dsForm.DSComboBox2, _objectSpread({
204
+ className: "".concat(classNameElement('dropdown-field-selector')),
205
+ components: customComponents,
206
+ onChange: this.onChangeDropdown,
207
+ onKeyDown: this.onKeyDown,
208
+ options: options,
209
+ value: value,
210
+ searchable: searchable
211
+ }, customDropdownOptions)), useLookupIndicator && /*#__PURE__*/_jsx__default["default"](LookupIndicator, {
212
+ buttonType: "text",
213
+ className: "".concat(classNameElement('btn-selector'), " ").concat(!value ? classNameModifier('btn-placeholder', 'btn-selector') : ''),
214
+ onAdvanceSearchClick: this.handleOpenModal
215
+ })), /*#__PURE__*/_jsx__default["default"](ModalSearchField, {
216
+ appElement: appElement,
217
+ confirmLabel: confirmLabel,
218
+ customDataGridOptions: customDataGridOptions,
219
+ handleSelect: this.handleSelect,
220
+ isOpen: openModal,
221
+ modalSize: modalSize,
222
+ modalTitle: modalTitle,
223
+ modalType: modalType,
224
+ onClose: this.handleCloseModal,
225
+ onConfirmField: this.handleConfirm,
226
+ onRejectField: this.handleReject,
227
+ onTabChange: onTabChange,
228
+ placeholder: placeholder,
229
+ rejectLabel: rejectLabel,
230
+ searchFilters: searchFilters,
231
+ searchGrid: searchGrid,
232
+ tabData: tabData,
233
+ tabsAnimated: tabsAnimated,
234
+ tabsEnableMouseEvents: tabsEnableMouseEvents,
235
+ tabType: tabType
236
+ })]
237
+ }));
238
+ }
239
+
240
+ }
241
+
242
+ exports.DSModalSearchField = ModalSearchField;
243
+ exports["default"] = DSSearchFieldImpl;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ require('react');
5
+ var DSButton = require('@elliemae/ds-button');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
10
+ var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
11
+
12
+ const AdvanceSearchOption = _ref => {
13
+ let {
14
+ advanceSearchLabel = 'Advanced Search',
15
+ onAdvanceSearchClick = () => null
16
+ } = _ref;
17
+ return /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
18
+ className: "advance-search-option-btn",
19
+ labelText: advanceSearchLabel,
20
+ onClick: onAdvanceSearchClick,
21
+ tabIndex: -1,
22
+ type: "button"
23
+ });
24
+ };
25
+
26
+ module.exports = AdvanceSearchOption;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ require('react');
5
+ var dsIcons = require('@elliemae/ds-icons');
6
+ var DSButton = require('@elliemae/ds-button');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
11
+ var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
12
+
13
+ var _Search;
14
+
15
+ const LookupIndicator = _ref => {
16
+ let {
17
+ onAdvanceSearchClick = () => null,
18
+ className = ''
19
+ } = _ref;
20
+ return /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
21
+ "data-testid": "ds-searchfield-search-btn",
22
+ buttonType: "secondary",
23
+ className: className,
24
+ icon: _Search || (_Search = /*#__PURE__*/_jsx__default["default"](dsIcons.Search, {})),
25
+ iconSize: "s",
26
+ onClick: e => {
27
+ e.stopPropagation();
28
+ e.preventDefault();
29
+ onAdvanceSearchClick();
30
+ }
31
+ });
32
+ };
33
+
34
+ module.exports = LookupIndicator;
@@ -0,0 +1,117 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _jsx = require('@babel/runtime/helpers/jsx');
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.for-each.js');
11
+ require('core-js/modules/esnext.iterator.for-each.js');
12
+ var react = require('react');
13
+ var DSToolbar = require('@elliemae/ds-toolbar');
14
+ var dsForm = require('@elliemae/ds-form');
15
+ var dsDatagrids = require('@elliemae/ds-datagrids');
16
+ var uid = require('uid');
17
+ var jsxRuntime = require('react/jsx-runtime');
18
+
19
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
+
21
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
22
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
23
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
24
+ var DSToolbar__default = /*#__PURE__*/_interopDefaultLegacy(DSToolbar);
25
+
26
+ const _excluded = ["onFiltersChange"];
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
+ class DataGridSearch extends react.Component {
32
+ constructor(props) {
33
+ super(props);
34
+ this.state = {
35
+ filters: props.filters || []
36
+ };
37
+ this.handleSearch = this.handleSearch.bind(this);
38
+ this.handleFiltersChange = this.handleFiltersChange.bind(this);
39
+ }
40
+
41
+ handleSearch() {
42
+ const {
43
+ customDataGridOptions
44
+ } = this.props;
45
+ const {
46
+ property,
47
+ value
48
+ } = arguments.length <= 0 ? undefined : arguments[0];
49
+ const {
50
+ filters
51
+ } = this.state;
52
+ this.setState({
53
+ filters: [...filters, {
54
+ group: property,
55
+ label: 'All',
56
+ value,
57
+ id: uid.uid(16)
58
+ }]
59
+ });
60
+ if (customDataGridOptions.onFiltersChange) customDataGridOptions.onFiltersChange(...arguments);
61
+ }
62
+
63
+ handleFiltersChange(nextFilters) {
64
+ const {
65
+ customDataGridOptions
66
+ } = this.props;
67
+ this.setState({
68
+ filters: nextFilters
69
+ });
70
+ if (customDataGridOptions.onFiltersChange) customDataGridOptions.onFiltersChange(nextFilters);
71
+ }
72
+
73
+ render() {
74
+ const {
75
+ id,
76
+ rows,
77
+ columns,
78
+ boundFetchRows,
79
+ searchFilters,
80
+ searchGrid = true,
81
+ customDataGridOptions,
82
+ handleSelect
83
+ } = this.props;
84
+
85
+ const restCustomDataGridOptions = _objectWithoutProperties__default["default"](customDataGridOptions, _excluded);
86
+
87
+ const {
88
+ filters
89
+ } = this.state;
90
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
91
+ children: [/*#__PURE__*/_jsx__default["default"](DSToolbar__default["default"], {
92
+ withDepth: false
93
+ }, void 0, /*#__PURE__*/_jsx__default["default"](DSToolbar.ToolbarGroup, {}, void 0, /*#__PURE__*/_jsx__default["default"](dsForm.DSSearchBox, {
94
+ cleanOnSearch: true,
95
+ onSearch: this.handleSearch,
96
+ placeholder: "Search all"
97
+ }))), /*#__PURE__*/_jsx__default["default"]("div", {
98
+ className: "datagrid-tab-content"
99
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(dsDatagrids.DSDataGrid, _objectSpread({
100
+ columns: columns,
101
+ filters: filters,
102
+ fluidHeight: true,
103
+ getData: boundFetchRows,
104
+ id: id,
105
+ onFiltersChange: this.handleFiltersChange,
106
+ onSelectRow: rowId => handleSelect(rowId, rows),
107
+ rows: rows,
108
+ searchFilters: searchFilters,
109
+ searchGrid: searchGrid,
110
+ selectable: true
111
+ }, restCustomDataGridOptions)))]
112
+ });
113
+ }
114
+
115
+ }
116
+
117
+ module.exports = DataGridSearch;
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ require('core-js/modules/esnext.async-iterator.map.js');
5
+ require('core-js/modules/esnext.iterator.map.js');
6
+ require('react');
7
+ var DSModal = require('@elliemae/ds-modal');
8
+ var dsTabs = require('@elliemae/ds-tabs');
9
+ var DataGridSearch = require('./DataGridSearch.js');
10
+
11
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+
13
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
14
+ var DSModal__default = /*#__PURE__*/_interopDefaultLegacy(DSModal);
15
+
16
+ const ModalSearchField = _ref => {
17
+ let {
18
+ isOpen = false,
19
+ onClose = () => null,
20
+ modalTitle = 'Search Field ID',
21
+ modalSize = 'x-large',
22
+ tabsAnimated = true,
23
+ tabsEnableMouseEvents = true,
24
+ tabType = dsTabs.TabTypes.NORMAL,
25
+ tabData = [],
26
+ searchFilters = true,
27
+ searchGrid = false,
28
+ confirmLabel = 'Apply',
29
+ rejectLabel = 'Cancel',
30
+ modalType = 'confirm',
31
+ onConfirmField = () => null,
32
+ onRejectField = () => null,
33
+ handleSelect = () => null,
34
+ onTabChange = () => null,
35
+ appElement = null,
36
+ customDataGridOptions = {}
37
+ } = _ref;
38
+ return /*#__PURE__*/_jsx__default["default"](DSModal__default["default"], {
39
+ dataTestId: "ds-searchfield-modal",
40
+ appElement: appElement,
41
+ centered: false,
42
+ className: "modal-search-field",
43
+ confirmLabel: confirmLabel,
44
+ isOpen: isOpen,
45
+ modalTitle: modalTitle,
46
+ modalType: modalType,
47
+ onClose: onClose,
48
+ onConfirm: onConfirmField,
49
+ onReject: onRejectField,
50
+ rejectLabel: rejectLabel,
51
+ size: modalSize
52
+ }, void 0, tabData.length > 0 && /*#__PURE__*/_jsx__default["default"](dsTabs.DSTabs, {
53
+ animated: tabsAnimated,
54
+ enableMouseEvents: tabsEnableMouseEvents,
55
+ onlyRenderActiveTab: true,
56
+ onTabChange: onTabChange,
57
+ type: tabType
58
+ }, void 0, tabData.map(_ref2 => {
59
+ let {
60
+ tabId,
61
+ tabTitle,
62
+ columns,
63
+ rows,
64
+ boundFetchRows
65
+ } = _ref2;
66
+ return /*#__PURE__*/_jsx__default["default"](dsTabs.DSTab, {
67
+ className: "tab-content",
68
+ tabId: tabId,
69
+ title: tabTitle
70
+ }, tabId, /*#__PURE__*/_jsx__default["default"](DataGridSearch, {
71
+ boundFetchRows: boundFetchRows,
72
+ columns: columns,
73
+ customDataGridOptions: customDataGridOptions,
74
+ handleSelect: handleSelect,
75
+ id: "datagrid_search_field_".concat(tabId),
76
+ rows: rows,
77
+ searchFilters: searchFilters,
78
+ searchGrid: searchGrid
79
+ }));
80
+ })));
81
+ };
82
+
83
+ module.exports = ModalSearchField;
package/cjs/index.js ADDED
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var DSSearchField = require('./DSSearchField.js');
6
+ var ModalSearchField = require('./impl/components/ModalSearchField/ModalSearchField.js');
7
+
8
+
9
+
10
+ exports.DSSearchFieldWithSchema = DSSearchField.DSSearchFieldWithSchema;
11
+ exports["default"] = DSSearchField["default"];
12
+ exports.DSModalSearchField = ModalSearchField;