@elliemae/ds-query-builder 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 (242) hide show
  1. package/cjs/DSQueryBuilder.js +98 -0
  2. package/cjs/components/AndOrController/AndOrController.js +222 -0
  3. package/cjs/components/ConditionController/ConditionController.js +100 -0
  4. package/cjs/components/DisplayOutput/DisplayOutput.js +93 -0
  5. package/cjs/components/DragContainerController/DragContainerController.js +45 -0
  6. package/cjs/components/DragControllerRow/DragControllerRow.js +47 -0
  7. package/cjs/components/FieldControllerRow/FieldControllerRow.js +33 -0
  8. package/cjs/components/Nestable/Nestable.js +320 -0
  9. package/cjs/components/Nestable/NestableItem.js +111 -0
  10. package/cjs/components/Nestable/actions/events.js +166 -0
  11. package/cjs/components/Nestable/actions/getItemOptions.js +28 -0
  12. package/cjs/components/Nestable/actions/getPaths.js +124 -0
  13. package/cjs/components/Nestable/actions/index.js +28 -0
  14. package/cjs/components/Nestable/actions/moveItem.js +54 -0
  15. package/cjs/components/Nestable/actions/paths.js +126 -0
  16. package/cjs/components/Nestable/actions/tryDecreaseDepth.js +35 -0
  17. package/cjs/components/Nestable/actions/tryIncreaseDepth.js +38 -0
  18. package/cjs/components/Nestable/index.js +7 -0
  19. package/cjs/components/QueryBuilderContext/QueryBuilderContext.js +13 -0
  20. package/cjs/components/QueryBuilderImpl.js +309 -0
  21. package/cjs/components/QueryBuilderItem/QueryBuilderItem.js +90 -0
  22. package/cjs/components/QueryBuilderRow/QueryBuilderRow.js +276 -0
  23. package/cjs/components/ToolBarAnimation/ToolBarAnimation.js +29 -0
  24. package/cjs/components/format/format.js +33 -0
  25. package/cjs/components/format/sqlFormat.js +73 -0
  26. package/cjs/components/format/sqlSafeFormat.js +81 -0
  27. package/cjs/components/format/xmlFormat.js +73 -0
  28. package/cjs/components/helpers/actions.js +277 -0
  29. package/cjs/components/helpers/constants.js +11 -0
  30. package/cjs/components/helpers/dependencies.js +84 -0
  31. package/cjs/components/helpers/selectors.js +101 -0
  32. package/cjs/components/helpers/store.js +177 -0
  33. package/cjs/components/helpers/types.js +64 -0
  34. package/cjs/index.js +29 -0
  35. package/cjs/propTypes.js +97 -0
  36. package/esm/DSQueryBuilder.js +74 -0
  37. package/esm/components/AndOrController/AndOrController.js +213 -0
  38. package/esm/components/ConditionController/ConditionController.js +92 -0
  39. package/esm/components/DisplayOutput/DisplayOutput.js +87 -0
  40. package/esm/components/DragContainerController/DragContainerController.js +39 -0
  41. package/esm/components/DragControllerRow/DragControllerRow.js +39 -0
  42. package/esm/components/FieldControllerRow/FieldControllerRow.js +27 -0
  43. package/esm/components/Nestable/Nestable.js +312 -0
  44. package/esm/components/Nestable/NestableItem.js +103 -0
  45. package/esm/components/Nestable/actions/events.js +153 -0
  46. package/{dist/esm → esm}/components/Nestable/actions/getItemOptions.js +11 -7
  47. package/{dist/esm → esm}/components/Nestable/actions/getPaths.js +43 -17
  48. package/esm/components/Nestable/actions/index.js +6 -0
  49. package/esm/components/Nestable/actions/moveItem.js +45 -0
  50. package/{dist/esm → esm}/components/Nestable/actions/paths.js +47 -19
  51. package/esm/components/Nestable/actions/tryDecreaseDepth.js +31 -0
  52. package/{dist/esm → esm}/components/Nestable/actions/tryIncreaseDepth.js +22 -10
  53. package/esm/components/Nestable/index.js +2 -0
  54. package/esm/components/QueryBuilderContext/QueryBuilderContext.js +5 -0
  55. package/esm/components/QueryBuilderImpl.js +301 -0
  56. package/esm/components/QueryBuilderItem/QueryBuilderItem.js +83 -0
  57. package/esm/components/QueryBuilderRow/QueryBuilderRow.js +268 -0
  58. package/esm/components/ToolBarAnimation/ToolBarAnimation.js +20 -0
  59. package/esm/components/format/format.js +31 -0
  60. package/esm/components/format/sqlFormat.js +69 -0
  61. package/esm/components/format/sqlSafeFormat.js +76 -0
  62. package/esm/components/format/xmlFormat.js +69 -0
  63. package/esm/components/helpers/actions.js +254 -0
  64. package/esm/components/helpers/constants.js +5 -0
  65. package/esm/components/helpers/dependencies.js +60 -0
  66. package/esm/components/helpers/selectors.js +93 -0
  67. package/esm/components/helpers/store.js +171 -0
  68. package/esm/components/helpers/types.js +52 -0
  69. package/esm/index.js +4 -0
  70. package/esm/propTypes.js +93 -0
  71. package/package.json +95 -97
  72. package/types/DSQueryBuilder.d.ts +180 -0
  73. package/types/components/AndOrController/AndOrController.d.ts +38 -0
  74. package/types/components/ConditionController/ConditionController.d.ts +16 -0
  75. package/types/components/DisplayOutput/DisplayOutput.d.ts +7 -0
  76. package/types/components/DragContainerController/DragContainerController.d.ts +9 -0
  77. package/types/components/DragControllerRow/DragControllerRow.d.ts +9 -0
  78. package/types/components/FieldControllerRow/FieldControllerRow.d.ts +9 -0
  79. package/types/components/Nestable/Nestable.d.ts +51 -0
  80. package/types/components/Nestable/NestableItem.d.ts +12 -0
  81. package/types/components/Nestable/actions/events.d.ts +6 -0
  82. package/types/components/Nestable/actions/getItemOptions.d.ts +11 -0
  83. package/types/components/Nestable/actions/getPaths.d.ts +5 -0
  84. package/types/components/Nestable/actions/index.d.ts +6 -0
  85. package/types/components/Nestable/actions/moveItem.d.ts +5 -0
  86. package/types/components/Nestable/actions/paths.d.ts +5 -0
  87. package/types/components/Nestable/actions/tryDecreaseDepth.d.ts +1 -0
  88. package/types/components/Nestable/actions/tryIncreaseDepth.d.ts +1 -0
  89. package/types/components/Nestable/index.d.ts +2 -0
  90. package/types/components/QueryBuilderContext/QueryBuilderContext.d.ts +2 -0
  91. package/types/components/QueryBuilderImpl.d.ts +49 -0
  92. package/types/components/QueryBuilderItem/QueryBuilderItem.d.ts +5 -0
  93. package/types/components/QueryBuilderRow/QueryBuilderRow.d.ts +12 -0
  94. package/types/components/ToolBarAnimation/ToolBarAnimation.d.ts +3 -0
  95. package/types/components/format/format.d.ts +26 -0
  96. package/types/components/format/sqlFormat.d.ts +5 -0
  97. package/types/components/format/sqlSafeFormat.d.ts +6 -0
  98. package/types/components/format/xmlFormat.d.ts +5 -0
  99. package/types/components/helpers/actions.d.ts +63 -0
  100. package/types/components/helpers/constants.d.ts +3 -0
  101. package/types/components/helpers/dependencies.d.ts +1 -0
  102. package/types/components/helpers/selectors.d.ts +20 -0
  103. package/types/components/helpers/store.d.ts +144 -0
  104. package/types/components/helpers/types.d.ts +50 -0
  105. package/types/index.d.ts +2 -0
  106. package/types/propTypes.d.ts +156 -0
  107. package/dist/cjs/DSQueryBuilder.js +0 -118
  108. package/dist/cjs/DSQueryBuilder.js.map +0 -7
  109. package/dist/cjs/components/AndOrController/AndOrController.js +0 -208
  110. package/dist/cjs/components/AndOrController/AndOrController.js.map +0 -7
  111. package/dist/cjs/components/ConditionController/ConditionController.js +0 -116
  112. package/dist/cjs/components/ConditionController/ConditionController.js.map +0 -7
  113. package/dist/cjs/components/DisplayOutput/DisplayOutput.js +0 -92
  114. package/dist/cjs/components/DisplayOutput/DisplayOutput.js.map +0 -7
  115. package/dist/cjs/components/DragContainerController/DragContainerController.js +0 -65
  116. package/dist/cjs/components/DragContainerController/DragContainerController.js.map +0 -7
  117. package/dist/cjs/components/DragControllerRow/DragControllerRow.js +0 -51
  118. package/dist/cjs/components/DragControllerRow/DragControllerRow.js.map +0 -7
  119. package/dist/cjs/components/FieldControllerRow/FieldControllerRow.js +0 -55
  120. package/dist/cjs/components/FieldControllerRow/FieldControllerRow.js.map +0 -7
  121. package/dist/cjs/components/Nestable/Nestable.js +0 -254
  122. package/dist/cjs/components/Nestable/Nestable.js.map +0 -7
  123. package/dist/cjs/components/Nestable/NestableItem.js +0 -119
  124. package/dist/cjs/components/Nestable/NestableItem.js.map +0 -7
  125. package/dist/cjs/components/Nestable/actions/events.js +0 -143
  126. package/dist/cjs/components/Nestable/actions/events.js.map +0 -7
  127. package/dist/cjs/components/Nestable/actions/getItemOptions.js +0 -49
  128. package/dist/cjs/components/Nestable/actions/getItemOptions.js.map +0 -7
  129. package/dist/cjs/components/Nestable/actions/getPaths.js +0 -119
  130. package/dist/cjs/components/Nestable/actions/getPaths.js.map +0 -7
  131. package/dist/cjs/components/Nestable/actions/index.js +0 -42
  132. package/dist/cjs/components/Nestable/actions/index.js.map +0 -7
  133. package/dist/cjs/components/Nestable/actions/moveItem.js +0 -56
  134. package/dist/cjs/components/Nestable/actions/moveItem.js.map +0 -7
  135. package/dist/cjs/components/Nestable/actions/paths.js +0 -119
  136. package/dist/cjs/components/Nestable/actions/paths.js.map +0 -7
  137. package/dist/cjs/components/Nestable/actions/tryDecreaseDepth.js +0 -51
  138. package/dist/cjs/components/Nestable/actions/tryDecreaseDepth.js.map +0 -7
  139. package/dist/cjs/components/Nestable/actions/tryIncreaseDepth.js +0 -51
  140. package/dist/cjs/components/Nestable/actions/tryIncreaseDepth.js.map +0 -7
  141. package/dist/cjs/components/Nestable/index.js +0 -36
  142. package/dist/cjs/components/Nestable/index.js.map +0 -7
  143. package/dist/cjs/components/QueryBuilderContext/QueryBuilderContext.js +0 -36
  144. package/dist/cjs/components/QueryBuilderContext/QueryBuilderContext.js.map +0 -7
  145. package/dist/cjs/components/QueryBuilderImpl.js +0 -225
  146. package/dist/cjs/components/QueryBuilderImpl.js.map +0 -7
  147. package/dist/cjs/components/QueryBuilderItem/QueryBuilderItem.js +0 -92
  148. package/dist/cjs/components/QueryBuilderItem/QueryBuilderItem.js.map +0 -7
  149. package/dist/cjs/components/QueryBuilderRow/QueryBuilderRow.js +0 -219
  150. package/dist/cjs/components/QueryBuilderRow/QueryBuilderRow.js.map +0 -7
  151. package/dist/cjs/components/ToolBarAnimation/ToolBarAnimation.js +0 -42
  152. package/dist/cjs/components/ToolBarAnimation/ToolBarAnimation.js.map +0 -7
  153. package/dist/cjs/components/format/format.js +0 -59
  154. package/dist/cjs/components/format/format.js.map +0 -7
  155. package/dist/cjs/components/format/sqlFormat.js +0 -94
  156. package/dist/cjs/components/format/sqlFormat.js.map +0 -7
  157. package/dist/cjs/components/format/sqlSafeFormat.js +0 -98
  158. package/dist/cjs/components/format/sqlSafeFormat.js.map +0 -7
  159. package/dist/cjs/components/format/xmlFormat.js +0 -94
  160. package/dist/cjs/components/format/xmlFormat.js.map +0 -7
  161. package/dist/cjs/components/helpers/actions.js +0 -242
  162. package/dist/cjs/components/helpers/actions.js.map +0 -7
  163. package/dist/cjs/components/helpers/constants.js +0 -39
  164. package/dist/cjs/components/helpers/constants.js.map +0 -7
  165. package/dist/cjs/components/helpers/dependencies.js +0 -69
  166. package/dist/cjs/components/helpers/dependencies.js.map +0 -7
  167. package/dist/cjs/components/helpers/selectors.js +0 -161
  168. package/dist/cjs/components/helpers/selectors.js.map +0 -7
  169. package/dist/cjs/components/helpers/store.js +0 -159
  170. package/dist/cjs/components/helpers/store.js.map +0 -7
  171. package/dist/cjs/components/helpers/types.js +0 -92
  172. package/dist/cjs/components/helpers/types.js.map +0 -7
  173. package/dist/cjs/index.js +0 -36
  174. package/dist/cjs/index.js.map +0 -7
  175. package/dist/cjs/propTypes.js +0 -105
  176. package/dist/cjs/propTypes.js.map +0 -7
  177. package/dist/esm/DSQueryBuilder.js +0 -105
  178. package/dist/esm/DSQueryBuilder.js.map +0 -7
  179. package/dist/esm/components/AndOrController/AndOrController.js +0 -179
  180. package/dist/esm/components/AndOrController/AndOrController.js.map +0 -7
  181. package/dist/esm/components/ConditionController/ConditionController.js +0 -87
  182. package/dist/esm/components/ConditionController/ConditionController.js.map +0 -7
  183. package/dist/esm/components/DisplayOutput/DisplayOutput.js +0 -63
  184. package/dist/esm/components/DisplayOutput/DisplayOutput.js.map +0 -7
  185. package/dist/esm/components/DragContainerController/DragContainerController.js +0 -36
  186. package/dist/esm/components/DragContainerController/DragContainerController.js.map +0 -7
  187. package/dist/esm/components/DragControllerRow/DragControllerRow.js +0 -22
  188. package/dist/esm/components/DragControllerRow/DragControllerRow.js.map +0 -7
  189. package/dist/esm/components/FieldControllerRow/FieldControllerRow.js +0 -26
  190. package/dist/esm/components/FieldControllerRow/FieldControllerRow.js.map +0 -7
  191. package/dist/esm/components/Nestable/Nestable.js +0 -241
  192. package/dist/esm/components/Nestable/Nestable.js.map +0 -7
  193. package/dist/esm/components/Nestable/NestableItem.js +0 -90
  194. package/dist/esm/components/Nestable/NestableItem.js.map +0 -7
  195. package/dist/esm/components/Nestable/actions/events.js +0 -119
  196. package/dist/esm/components/Nestable/actions/events.js.map +0 -7
  197. package/dist/esm/components/Nestable/actions/getItemOptions.js.map +0 -7
  198. package/dist/esm/components/Nestable/actions/getPaths.js.map +0 -7
  199. package/dist/esm/components/Nestable/actions/index.js +0 -13
  200. package/dist/esm/components/Nestable/actions/index.js.map +0 -7
  201. package/dist/esm/components/Nestable/actions/moveItem.js +0 -27
  202. package/dist/esm/components/Nestable/actions/moveItem.js.map +0 -7
  203. package/dist/esm/components/Nestable/actions/paths.js.map +0 -7
  204. package/dist/esm/components/Nestable/actions/tryDecreaseDepth.js +0 -22
  205. package/dist/esm/components/Nestable/actions/tryDecreaseDepth.js.map +0 -7
  206. package/dist/esm/components/Nestable/actions/tryIncreaseDepth.js.map +0 -7
  207. package/dist/esm/components/Nestable/index.js +0 -7
  208. package/dist/esm/components/Nestable/index.js.map +0 -7
  209. package/dist/esm/components/QueryBuilderContext/QueryBuilderContext.js +0 -7
  210. package/dist/esm/components/QueryBuilderContext/QueryBuilderContext.js.map +0 -7
  211. package/dist/esm/components/QueryBuilderImpl.js +0 -196
  212. package/dist/esm/components/QueryBuilderImpl.js.map +0 -7
  213. package/dist/esm/components/QueryBuilderItem/QueryBuilderItem.js +0 -63
  214. package/dist/esm/components/QueryBuilderItem/QueryBuilderItem.js.map +0 -7
  215. package/dist/esm/components/QueryBuilderRow/QueryBuilderRow.js +0 -190
  216. package/dist/esm/components/QueryBuilderRow/QueryBuilderRow.js.map +0 -7
  217. package/dist/esm/components/ToolBarAnimation/ToolBarAnimation.js +0 -13
  218. package/dist/esm/components/ToolBarAnimation/ToolBarAnimation.js.map +0 -7
  219. package/dist/esm/components/format/format.js +0 -30
  220. package/dist/esm/components/format/format.js.map +0 -7
  221. package/dist/esm/components/format/sqlFormat.js +0 -65
  222. package/dist/esm/components/format/sqlFormat.js.map +0 -7
  223. package/dist/esm/components/format/sqlSafeFormat.js +0 -69
  224. package/dist/esm/components/format/sqlSafeFormat.js.map +0 -7
  225. package/dist/esm/components/format/xmlFormat.js +0 -65
  226. package/dist/esm/components/format/xmlFormat.js.map +0 -7
  227. package/dist/esm/components/helpers/actions.js +0 -217
  228. package/dist/esm/components/helpers/actions.js.map +0 -7
  229. package/dist/esm/components/helpers/constants.js +0 -10
  230. package/dist/esm/components/helpers/constants.js.map +0 -7
  231. package/dist/esm/components/helpers/dependencies.js +0 -40
  232. package/dist/esm/components/helpers/dependencies.js.map +0 -7
  233. package/dist/esm/components/helpers/selectors.js +0 -132
  234. package/dist/esm/components/helpers/selectors.js.map +0 -7
  235. package/dist/esm/components/helpers/store.js +0 -143
  236. package/dist/esm/components/helpers/store.js.map +0 -7
  237. package/dist/esm/components/helpers/types.js +0 -63
  238. package/dist/esm/components/helpers/types.js.map +0 -7
  239. package/dist/esm/index.js +0 -7
  240. package/dist/esm/index.js.map +0 -7
  241. package/dist/esm/propTypes.js +0 -76
  242. package/dist/esm/propTypes.js.map +0 -7
@@ -0,0 +1,320 @@
1
+ 'use strict';
2
+
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ require('core-js/modules/esnext.async-iterator.find.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.find.js');
8
+ require('core-js/modules/esnext.async-iterator.map.js');
9
+ require('core-js/modules/esnext.iterator.map.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 cn = require('classnames');
16
+ var utils = require('@elliemae/ds-shared/utils');
17
+ var dsUtilities = require('@elliemae/ds-utilities');
18
+ var tryIncreaseDepth = require('./actions/tryIncreaseDepth.js');
19
+ var tryDecreaseDepth = require('./actions/tryDecreaseDepth.js');
20
+ var moveItem = require('./actions/moveItem.js');
21
+ var paths = require('./actions/paths.js');
22
+ var events = require('./actions/events.js');
23
+ var getItemOptions = require('./actions/getItemOptions.js');
24
+ var NestableItem = require('./NestableItem.js');
25
+
26
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
+
28
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
29
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
30
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
31
+
32
+ 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; }
33
+
34
+ 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; }
35
+
36
+ const shallowCompare = (instance, nextProps, nextState) => !dsUtilities.isEqualWith(instance.props, nextProps) || !dsUtilities.isEqualWith(instance.state, nextState);
37
+
38
+ class Nestable extends React.Component {
39
+ constructor(props) {
40
+ super(props);
41
+
42
+ this.onDragStart = (e, item) => {
43
+ events.onDragStart.call(this, e, item);
44
+ };
45
+
46
+ this.onDragEnd = (e, isCancel) => events.onDragEnd.call(this, e, isCancel);
47
+
48
+ this.onMouseMove = e => events.onMouseMove.call(this, e);
49
+
50
+ this.onMouseEnter = (e, item) => events.onMouseEnter.call(this, e, item);
51
+
52
+ this.onToggleCollapse = (item, isGetter) => events.onToggleCollapse.call(this, item, isGetter);
53
+
54
+ this.onKeyDown = e => events.onKeyDown.call(this, e);
55
+
56
+ this.getDefaultItems = () => {
57
+ const {
58
+ items
59
+ } = this.state;
60
+ return items;
61
+ };
62
+
63
+ this.getItemDepth = item => paths.getItemDepth.call(this, item);
64
+
65
+ this.startTrackMouse = () => {
66
+ document.addEventListener('mousemove', this.onMouseMove);
67
+ document.addEventListener('mouseup', this.onDragEnd);
68
+ document.addEventListener('keydown', this.onKeyDown);
69
+ };
70
+
71
+ this.stopTrackMouse = () => {
72
+ document.removeEventListener('mousemove', this.onMouseMove);
73
+ document.removeEventListener('mouseup', this.onDragEnd);
74
+ document.removeEventListener('keydown', this.onKeyDown);
75
+ this.elCopyStyles = null;
76
+ };
77
+
78
+ this.isCollapsed = item => {
79
+ const {
80
+ collapsed
81
+ } = this.props;
82
+ const {
83
+ collapsedGroups
84
+ } = this.state;
85
+ return !!(collapsedGroups.indexOf(item.id) > -1 ^ collapsed);
86
+ };
87
+
88
+ this.checkFilterChildren = items => items.find(current => {
89
+ const {
90
+ element: {
91
+ type
92
+ },
93
+ children
94
+ } = current;
95
+ if (type === 'filter' && children.length > 0) return true;
96
+ return this.checkFilterChildren(children);
97
+ });
98
+
99
+ this.dragRevert = () => {
100
+ const {
101
+ itemsOld
102
+ } = this.state;
103
+ this.setState({
104
+ items: itemsOld,
105
+ itemsOld: null,
106
+ dragItem: null,
107
+ isDirty: false
108
+ });
109
+ };
110
+
111
+ this.state = {
112
+ items: [],
113
+ itemsOld: null,
114
+ dragItem: null,
115
+ isDirty: false,
116
+ collapsedGroups: [],
117
+ stopTrackingMouse: this.stopTrackMouse.bind(this),
118
+ oldProps: props
119
+ };
120
+ this.el = null;
121
+ this.elCopyStyles = null;
122
+ this.mouse = {
123
+ last: {
124
+ x: 0
125
+ },
126
+ shift: {
127
+ x: 0
128
+ }
129
+ };
130
+ }
131
+
132
+ componentDidMount() {
133
+ const {
134
+ childrenProp
135
+ } = this.props;
136
+ let {
137
+ items
138
+ } = this.props; // make sure every item has property 'children'
139
+
140
+ items = utils.listWithChildren(items, childrenProp);
141
+ this.setState({
142
+ items
143
+ });
144
+ }
145
+
146
+ componentWillUnmount() {
147
+ this.stopTrackMouse();
148
+ }
149
+
150
+ static getDerivedStateFromProps(props, state) {
151
+ const {
152
+ items: itemsNew,
153
+ childrenProp
154
+ } = props;
155
+ const {
156
+ stopTrackingMouse,
157
+ oldProps
158
+ } = state;
159
+
160
+ if (shallowCompare({
161
+ props: oldProps,
162
+ state: {}
163
+ }, props, {})) {
164
+ stopTrackingMouse();
165
+ const extra = {};
166
+
167
+ if (oldProps.collapsed !== props.collapsed) {
168
+ extra.collapsedGroups = [];
169
+ }
170
+
171
+ return _objectSpread({
172
+ items: utils.listWithChildren(itemsNew, childrenProp),
173
+ dragItem: null,
174
+ isDirty: false,
175
+ oldProps: props
176
+ }, extra);
177
+ }
178
+
179
+ return null;
180
+ }
181
+
182
+ getPathById(id) {
183
+ let items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getDefaultItems();
184
+ return paths.getPathById.call(this, id, items);
185
+ }
186
+
187
+ getItemByPath(path) {
188
+ let items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getDefaultItems();
189
+ return paths.getItemByPath.call(this, path, items);
190
+ }
191
+
192
+ getSplicePath(path) {
193
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
194
+ return paths.getSplicePath.call(this, path, options);
195
+ }
196
+
197
+ getRealNextPath(prevPath, nextPath) {
198
+ return paths.getRealNextPath.call(this, prevPath, nextPath);
199
+ }
200
+
201
+ getItemOptions() {
202
+ return getItemOptions.getItemOptions.call(this);
203
+ }
204
+
205
+ dragApply() {
206
+ const {
207
+ onChange
208
+ } = this.props;
209
+ const {
210
+ items,
211
+ isDirty,
212
+ dragItem
213
+ } = this.state;
214
+ this.setState({
215
+ itemsOld: null,
216
+ dragItem: null,
217
+ isDirty: false
218
+ });
219
+ if (onChange && isDirty) onChange(items, dragItem);
220
+ }
221
+
222
+ tryIncreaseDepth(dragItem) {
223
+ tryIncreaseDepth.tryIncreaseDepth.call(this, dragItem);
224
+ }
225
+
226
+ tryDecreaseDepth(dragItem) {
227
+ tryDecreaseDepth.tryDecreaseDepth.call(this, dragItem);
228
+ }
229
+
230
+ moveItem(_ref) {
231
+ let {
232
+ dragItem,
233
+ pathFrom,
234
+ pathTo
235
+ } = _ref;
236
+ let extraProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
237
+ moveItem.moveItem.call(this, {
238
+ dragItem,
239
+ pathFrom,
240
+ pathTo
241
+ }, extraProps);
242
+ }
243
+
244
+ renderDragLayer() {
245
+ const {
246
+ group
247
+ } = this.props;
248
+ const {
249
+ dragItem
250
+ } = this.state;
251
+ const el = document.querySelector(".nestable-".concat(group, " .nestable-item-").concat(dragItem.id));
252
+ let listStyles = {};
253
+
254
+ if (el) {
255
+ listStyles.width = el.clientWidth;
256
+ }
257
+
258
+ if (this.elCopyStyles) {
259
+ listStyles = _objectSpread(_objectSpread({}, listStyles), this.elCopyStyles);
260
+ }
261
+
262
+ const options = this.getItemOptions();
263
+ return /*#__PURE__*/_jsx__default["default"]("div", {
264
+ className: "nestable-drag-layer"
265
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("ol", {
266
+ className: "nestable-list",
267
+ style: listStyles
268
+ }, void 0, /*#__PURE__*/_jsx__default["default"](NestableItem, {
269
+ isCopy: true,
270
+ item: dragItem,
271
+ options: options
272
+ })));
273
+ }
274
+
275
+ render() {
276
+ const {
277
+ items,
278
+ dragItem
279
+ } = this.state;
280
+ const {
281
+ group,
282
+ isAndItem,
283
+ isOrItem,
284
+ isDraggableItem,
285
+ setDraggableItems,
286
+ singleRow
287
+ } = this.props;
288
+ const options = this.getItemOptions();
289
+ const childLength = items.length;
290
+ let childClass = 'single';
291
+ if (childLength === 0) childClass = 'empty';else if (childLength > 1) childClass = 'multiple';
292
+ return /*#__PURE__*/_jsx__default["default"]("div", {
293
+ className: cn__default["default"]('nestable', "nestable-".concat(group), {
294
+ 'is-drag-active': dragItem
295
+ })
296
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("ol", {
297
+ className: "nestable-list nestable-group nestable-child-count-".concat(childClass)
298
+ }, void 0, items.map((item, i) => /*#__PURE__*/_jsx__default["default"](NestableItem, {
299
+ index: i,
300
+ isAndItem: isAndItem,
301
+ isDraggableItem: isDraggableItem,
302
+ isOrItem: isOrItem,
303
+ item: item,
304
+ options: options,
305
+ setDraggableItems: setDraggableItems,
306
+ singleRow: singleRow
307
+ }, item.id))), dragItem && this.renderDragLayer());
308
+ }
309
+
310
+ }
311
+
312
+ Nestable.defaultProps = {
313
+ items: [],
314
+ collapsed: false,
315
+ group: Math.random().toString(36).slice(2),
316
+ childrenProp: 'children',
317
+ onChange: () => {}
318
+ };
319
+
320
+ module.exports = Nestable;
@@ -0,0 +1,111 @@
1
+ 'use strict';
2
+
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ require('core-js/modules/esnext.async-iterator.map.js');
6
+ require('core-js/modules/esnext.iterator.map.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
+ require('react');
13
+ var cn = require('classnames');
14
+ var jsxRuntime = require('react/jsx-runtime');
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 _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
21
+
22
+ 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; }
23
+
24
+ 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; }
25
+
26
+ const NestableItem = _ref => {
27
+ let {
28
+ item,
29
+ isCopy,
30
+ options,
31
+ index,
32
+ isAndItem,
33
+ isOrItem,
34
+ isDraggableItem,
35
+ singleRow
36
+ } = _ref;
37
+ const {
38
+ dragItem,
39
+ renderItem,
40
+ handler,
41
+ childrenProp
42
+ } = options;
43
+ const isCollapsed = options.isCollapsed(item);
44
+ const isDragging = !isCopy && dragItem && dragItem.id === item.id;
45
+ const hasChildren = item[childrenProp] && item[childrenProp].length > 0;
46
+ let Handler;
47
+ const isOrGroup = item.element.type === 'group' && (item.element.condition === '' || item.element.condition === false);
48
+ const isAndGroup = item.element.type === 'group' && !(item.element.condition === '' || item.element.condition === false);
49
+ const itemProps = {
50
+ className: cn__default["default"]("nestable-item".concat(isCopy ? '-copy' : ''), "nestable-item".concat(isCopy ? '-copy' : '', "-").concat(item.id), "nestable-item-type-".concat(item.element.type), {
51
+ 'is-or-group': isOrGroup,
52
+ 'is-and-group': isAndGroup,
53
+ 'is-and-filter': item.element.type === 'filter' && isAndItem,
54
+ 'is-or-filter': item.element.type === 'filter' && isOrItem
55
+ }, {
56
+ 'is-dragging': isDragging
57
+ })
58
+ };
59
+ let rowProps = {};
60
+ let handlerProps = {};
61
+
62
+ if (!isCopy) {
63
+ if (dragItem) {
64
+ rowProps = _objectSpread(_objectSpread({}, rowProps), {}, {
65
+ onMouseEnter: e => options.onMouseEnter(e, item)
66
+ });
67
+ } else {
68
+ handlerProps = _objectSpread(_objectSpread({}, handlerProps), {}, {
69
+ draggable: isDraggableItem !== false,
70
+ onDragStart: e => options.onDragStart(e, item)
71
+ });
72
+ }
73
+ }
74
+
75
+ if (handler) {
76
+ Handler = /*#__PURE__*/jsxRuntime.jsx("span", _objectSpread(_objectSpread({
77
+ className: "nestable-item-handler"
78
+ }, handlerProps), {}, {
79
+ children: handler
80
+ })); // Handler = React.cloneElement(handler, handlerProps);
81
+ } else {
82
+ rowProps = _objectSpread(_objectSpread({}, rowProps), handlerProps);
83
+ }
84
+
85
+ const childLength = item[childrenProp].length;
86
+ let childClass = 'single';
87
+ if (childLength === 0) childClass = 'empty';else if (childLength > 1) childClass = 'multiple';
88
+ return /*#__PURE__*/jsxRuntime.jsxs("li", _objectSpread(_objectSpread({}, itemProps), {}, {
89
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
90
+ className: "nestable-item-name nestable-item-name--".concat(item.element.type, " ")
91
+ }, rowProps), {}, {
92
+ children: renderItem({
93
+ item,
94
+ handler: Handler,
95
+ index
96
+ })
97
+ })), hasChildren && item.element.type === 'group' && !isCollapsed && /*#__PURE__*/_jsx__default["default"]("ol", {
98
+ className: "nestable-list nestable-child-count-".concat(childClass, " ")
99
+ }, void 0, item[childrenProp].map((currentitem, i) => /*#__PURE__*/_jsx__default["default"](NestableItem, {
100
+ index: i,
101
+ isAndItem: isAndGroup,
102
+ isCopy: isCopy,
103
+ isOrItem: isOrGroup,
104
+ item: currentitem,
105
+ options: options,
106
+ singleRow: singleRow
107
+ }, i)))]
108
+ }));
109
+ };
110
+
111
+ module.exports = NestableItem;
@@ -0,0 +1,166 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/esnext.async-iterator.filter.js');
7
+ require('core-js/modules/esnext.iterator.constructor.js');
8
+ require('core-js/modules/esnext.iterator.filter.js');
9
+ require('core-js/modules/esnext.async-iterator.for-each.js');
10
+ require('core-js/modules/esnext.iterator.for-each.js');
11
+ var utils = require('@elliemae/ds-shared/utils');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
16
+
17
+ 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; }
18
+
19
+ 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; }
20
+ function onDragStart(e, item) {
21
+ if (e) {
22
+ e.preventDefault();
23
+ e.stopPropagation();
24
+ }
25
+
26
+ this.el = utils.closest(e.target, '.nestable-item');
27
+ this.startTrackMouse();
28
+ this.onMouseMove(e);
29
+ const {
30
+ items
31
+ } = this.state;
32
+ this.setState({
33
+ dragItem: item,
34
+ itemsOld: items
35
+ });
36
+ }
37
+ function onDragEnd(e, isCancel) {
38
+ if (e && e.preventDefault) e.preventDefault();
39
+ this.stopTrackMouse();
40
+ this.el = null; // check if filter has children
41
+
42
+ const {
43
+ items
44
+ } = this.state;
45
+ const nestedInFilter = this.checkFilterChildren(items);
46
+ if (nestedInFilter) return this.dragRevert();
47
+ return isCancel ? this.dragRevert() : this.dragApply();
48
+ }
49
+ function onMouseMove(e) {
50
+ const {
51
+ group,
52
+ threshold
53
+ } = this.props;
54
+ const {
55
+ dragItem
56
+ } = this.state;
57
+ const {
58
+ clientX,
59
+ clientY
60
+ } = e;
61
+ const transformProps = utils.getTransformProps(clientX, clientY);
62
+ const elCopy = document.querySelector(".nestable-".concat(group, " .nestable-drag-layer > .nestable-list"));
63
+
64
+ if (!this.elCopyStyles) {
65
+ const offset = utils.getOffsetRect(this.el);
66
+ const scroll = utils.getTotalScroll(this.el);
67
+ this.elCopyStyles = _objectSpread({
68
+ marginTop: offset.top - clientY - scroll.top,
69
+ marginLeft: offset.left - clientX - scroll.left
70
+ }, transformProps);
71
+ } else {
72
+ this.elCopyStyles = _objectSpread(_objectSpread({}, this.elCopyStyles), transformProps);
73
+
74
+ for (const key in transformProps) {
75
+ if (transformProps.hasOwnProperty(key)) {
76
+ elCopy.style[key] = transformProps[key];
77
+ }
78
+ }
79
+
80
+ const diffX = clientX - this.mouse.last.x;
81
+
82
+ if (diffX >= 0 && this.mouse.shift.x >= 0 || diffX <= 0 && this.mouse.shift.x <= 0) {
83
+ this.mouse.shift.x += diffX;
84
+ } else {
85
+ this.mouse.shift.x = 0;
86
+ }
87
+
88
+ this.mouse.last.x = clientX;
89
+
90
+ if (Math.abs(this.mouse.shift.x) > threshold) {
91
+ if (this.mouse.shift.x > 0) {
92
+ this.tryIncreaseDepth(dragItem);
93
+ } else {
94
+ this.tryDecreaseDepth(dragItem);
95
+ }
96
+
97
+ this.mouse.shift.x = 0;
98
+ }
99
+ }
100
+ }
101
+ function onMouseEnter(e, item) {
102
+ if (e) {
103
+ e.preventDefault();
104
+ e.stopPropagation();
105
+ }
106
+
107
+ const {
108
+ collapsed,
109
+ childrenProp
110
+ } = this.props;
111
+ const {
112
+ dragItem
113
+ } = this.state;
114
+ if (dragItem.id === item.id) return;
115
+ const pathFrom = this.getPathById(dragItem.id);
116
+ const pathTo = this.getPathById(item.id); // if collapsed by default
117
+ // and move last (by count) child
118
+ // remove parent node from list of open nodes
119
+
120
+ let collapseProps = {};
121
+
122
+ if (collapsed && pathFrom.length > 1) {
123
+ const parent = this.getItemByPath(pathFrom.slice(0, -1));
124
+
125
+ if (parent[childrenProp].length === 1) {
126
+ collapseProps = this.onToggleCollapse(parent, true);
127
+ }
128
+ }
129
+
130
+ this.moveItem({
131
+ dragItem,
132
+ pathFrom,
133
+ pathTo
134
+ }, collapseProps);
135
+ }
136
+ function onToggleCollapse(item, isGetter) {
137
+ const {
138
+ collapsed
139
+ } = this.props;
140
+ const {
141
+ collapsedGroups
142
+ } = this.state;
143
+ const isCollapsed = this.isCollapsed(item);
144
+ const newState = {
145
+ collapsedGroups: isCollapsed ^ collapsed ? collapsedGroups.filter(id => id !== item.id) : collapsedGroups.concat(item.id)
146
+ };
147
+
148
+ if (isGetter) {
149
+ return newState;
150
+ }
151
+
152
+ return this.setState(newState);
153
+ }
154
+ function onKeyDown(e) {
155
+ if (e.which === 27) {
156
+ // ESC
157
+ this.onDragEnd(null, true);
158
+ }
159
+ }
160
+
161
+ exports.onDragEnd = onDragEnd;
162
+ exports.onDragStart = onDragStart;
163
+ exports.onKeyDown = onKeyDown;
164
+ exports.onMouseEnter = onMouseEnter;
165
+ exports.onMouseMove = onMouseMove;
166
+ exports.onToggleCollapse = onToggleCollapse;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function getItemOptions() {
6
+ const {
7
+ renderItem,
8
+ renderCollapseIcon,
9
+ handler,
10
+ childrenProp
11
+ } = this.props;
12
+ const {
13
+ dragItem
14
+ } = this.state;
15
+ return {
16
+ dragItem,
17
+ childrenProp,
18
+ renderItem,
19
+ renderCollapseIcon,
20
+ handler,
21
+ onDragStart: this.onDragStart,
22
+ onMouseEnter: this.onMouseEnter,
23
+ isCollapsed: this.isCollapsed,
24
+ onToggleCollapse: this.onToggleCollapse
25
+ };
26
+ }
27
+
28
+ exports.getItemOptions = getItemOptions;