zmdms-webui 0.0.1

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 (210) hide show
  1. package/README.md +104 -0
  2. package/dist/es/_virtual/_commonjsHelpers.js +5 -0
  3. package/dist/es/_virtual/_tslib.js +51 -0
  4. package/dist/es/_virtual/index.js +3 -0
  5. package/dist/es/_virtual/index2.js +3 -0
  6. package/dist/es/button/button.d.ts +10 -0
  7. package/dist/es/button/button.js +39 -0
  8. package/dist/es/button/index.d.ts +5 -0
  9. package/dist/es/button/index.js +5 -0
  10. package/dist/es/calendar/index.d.ts +6 -0
  11. package/dist/es/calendar/index.js +6 -0
  12. package/dist/es/config/ZtxkContext.d.ts +11 -0
  13. package/dist/es/config/ZtxkContext.js +8 -0
  14. package/dist/es/config/commonHooks.js +28 -0
  15. package/dist/es/config/i18n/en.js +5 -0
  16. package/dist/es/config/i18n/zh_cn.js +5 -0
  17. package/dist/es/config/index.js +3 -0
  18. package/dist/es/config/isEqual.js +44 -0
  19. package/dist/es/config/useLocale.js +21 -0
  20. package/dist/es/container/container.d.ts +13 -0
  21. package/dist/es/container/container.js +24 -0
  22. package/dist/es/container/index.d.ts +5 -0
  23. package/dist/es/container/index.js +5 -0
  24. package/dist/es/datepicker/index.d.ts +55 -0
  25. package/dist/es/datepicker/index.js +6 -0
  26. package/dist/es/dynamicsetting/dynamicDrawer.js +76 -0
  27. package/dist/es/dynamicsetting/dynamicSetting.d.ts +6 -0
  28. package/dist/es/dynamicsetting/dynamicSetting.js +38 -0
  29. package/dist/es/dynamicsetting/hooks.js +50 -0
  30. package/dist/es/dynamicsetting/index.d.ts +5 -0
  31. package/dist/es/dynamicsetting/index.js +5 -0
  32. package/dist/es/dynamicsetting/interface.d.ts +18 -0
  33. package/dist/es/dynamicsetting/sortable.js +68 -0
  34. package/dist/es/dynamicsetting/useDynamic.js +125 -0
  35. package/dist/es/footer/footer.d.ts +6 -0
  36. package/dist/es/footer/footer.js +37 -0
  37. package/dist/es/footer/index.d.ts +5 -0
  38. package/dist/es/footer/index.js +5 -0
  39. package/dist/es/footer/interface.d.ts +33 -0
  40. package/dist/es/forgetpassword/forgetPassword.js +9 -0
  41. package/dist/es/forgetpassword/index.js +5 -0
  42. package/dist/es/form/form.d.ts +16 -0
  43. package/dist/es/form/form.js +89 -0
  44. package/dist/es/form/formItems.js +14 -0
  45. package/dist/es/form/hooks.js +105 -0
  46. package/dist/es/form/index.d.ts +5 -0
  47. package/dist/es/form/index.js +5 -0
  48. package/dist/es/form/interface.d.ts +39 -0
  49. package/dist/es/formitem/formItem.d.ts +43 -0
  50. package/dist/es/formitem/formItem.js +128 -0
  51. package/dist/es/formitem/index.d.ts +5 -0
  52. package/dist/es/formitem/index.js +5 -0
  53. package/dist/es/icon/index.d.ts +6 -0
  54. package/dist/es/icon/index.js +7 -0
  55. package/dist/es/input/index.d.ts +5 -0
  56. package/dist/es/input/index.js +5 -0
  57. package/dist/es/input/input.d.ts +20 -0
  58. package/dist/es/input/input.js +16 -0
  59. package/dist/es/inputnumber/index.d.ts +5 -0
  60. package/dist/es/inputnumber/index.js +5 -0
  61. package/dist/es/inputnumber/inputNumber.d.ts +20 -0
  62. package/dist/es/inputnumber/inputNumber.js +26 -0
  63. package/dist/es/inputnumber/interface.d.ts +4 -0
  64. package/dist/es/inputnumber/utils.js +132 -0
  65. package/dist/es/login/index.d.ts +13 -0
  66. package/dist/es/login/index.js +26 -0
  67. package/dist/es/node_modules/@ant-design/colors/dist/index.esm.js +223 -0
  68. package/dist/es/node_modules/@ant-design/icons/es/components/AntdIcon.js +63 -0
  69. package/dist/es/node_modules/@ant-design/icons/es/components/Context.js +6 -0
  70. package/dist/es/node_modules/@ant-design/icons/es/components/Icon.js +69 -0
  71. package/dist/es/node_modules/@ant-design/icons/es/components/IconBase.js +63 -0
  72. package/dist/es/node_modules/@ant-design/icons/es/components/IconFont.js +71 -0
  73. package/dist/es/node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js +23 -0
  74. package/dist/es/node_modules/@ant-design/icons/es/icons/SettingOutlined.js +15 -0
  75. package/dist/es/node_modules/@ant-design/icons/es/utils.js +76 -0
  76. package/dist/es/node_modules/@ant-design/icons-svg/es/asn/SettingOutlined.js +5 -0
  77. package/dist/es/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +7 -0
  78. package/dist/es/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +5 -0
  79. package/dist/es/node_modules/@babel/runtime/helpers/esm/defineProperty.js +18 -0
  80. package/dist/es/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +29 -0
  81. package/dist/es/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +5 -0
  82. package/dist/es/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +25 -0
  83. package/dist/es/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +19 -0
  84. package/dist/es/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +14 -0
  85. package/dist/es/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +10 -0
  86. package/dist/es/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +14 -0
  87. package/dist/es/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +9 -0
  88. package/dist/es/node_modules/@babel/runtime/helpers/esm/typeof.js +11 -0
  89. package/dist/es/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +12 -0
  90. package/dist/es/node_modules/@ctrl/tinycolor/dist/module/conversion.js +150 -0
  91. package/dist/es/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +156 -0
  92. package/dist/es/node_modules/@ctrl/tinycolor/dist/module/format-input.js +186 -0
  93. package/dist/es/node_modules/@ctrl/tinycolor/dist/module/util.js +77 -0
  94. package/dist/es/node_modules/@react-dnd/asap/dist/AsapQueue.js +140 -0
  95. package/dist/es/node_modules/@react-dnd/asap/dist/RawTask.js +20 -0
  96. package/dist/es/node_modules/@react-dnd/asap/dist/TaskFactory.js +17 -0
  97. package/dist/es/node_modules/@react-dnd/asap/dist/asap.js +17 -0
  98. package/dist/es/node_modules/@react-dnd/asap/dist/makeRequestCall.js +77 -0
  99. package/dist/es/node_modules/@react-dnd/invariant/dist/index.js +36 -0
  100. package/dist/es/node_modules/@react-dnd/shallowequal/dist/index.js +34 -0
  101. package/dist/es/node_modules/classnames/index.js +64 -0
  102. package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js +85 -0
  103. package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/drop.js +74 -0
  104. package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/endDrag.js +24 -0
  105. package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/hover.js +57 -0
  106. package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/index.js +17 -0
  107. package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js +13 -0
  108. package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js +15 -0
  109. package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/types.js +8 -0
  110. package/dist/es/node_modules/dnd-core/dist/actions/registry.js +38 -0
  111. package/dist/es/node_modules/dnd-core/dist/classes/DragDropManagerImpl.js +57 -0
  112. package/dist/es/node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js +153 -0
  113. package/dist/es/node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js +130 -0
  114. package/dist/es/node_modules/dnd-core/dist/contracts.js +22 -0
  115. package/dist/es/node_modules/dnd-core/dist/createDragDropManager.js +25 -0
  116. package/dist/es/node_modules/dnd-core/dist/interfaces.js +7 -0
  117. package/dist/es/node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js +45 -0
  118. package/dist/es/node_modules/dnd-core/dist/reducers/dragOffset.js +62 -0
  119. package/dist/es/node_modules/dnd-core/dist/reducers/dragOperation.js +90 -0
  120. package/dist/es/node_modules/dnd-core/dist/reducers/index.js +51 -0
  121. package/dist/es/node_modules/dnd-core/dist/reducers/refCount.js +16 -0
  122. package/dist/es/node_modules/dnd-core/dist/reducers/stateId.js +5 -0
  123. package/dist/es/node_modules/dnd-core/dist/utils/coords.js +47 -0
  124. package/dist/es/node_modules/dnd-core/dist/utils/dirtiness.js +23 -0
  125. package/dist/es/node_modules/dnd-core/dist/utils/equality.js +32 -0
  126. package/dist/es/node_modules/dnd-core/dist/utils/getNextUniqueId.js +6 -0
  127. package/dist/es/node_modules/dnd-core/dist/utils/js_utils.js +51 -0
  128. package/dist/es/node_modules/dnd-core/dist/utils/matchesType.js +9 -0
  129. package/dist/es/node_modules/fast-deep-equal/index.js +50 -0
  130. package/dist/es/node_modules/immutability-helper/index.js +259 -0
  131. package/dist/es/node_modules/rc-picker/es/generate/dayjs.js +219 -0
  132. package/dist/es/node_modules/rc-util/es/Dom/canUseDom.js +5 -0
  133. package/dist/es/node_modules/rc-util/es/Dom/contains.js +22 -0
  134. package/dist/es/node_modules/rc-util/es/Dom/dynamicCSS.js +116 -0
  135. package/dist/es/node_modules/rc-util/es/warning.js +54 -0
  136. package/dist/es/node_modules/react-dnd/dist/core/DndContext.js +9 -0
  137. package/dist/es/node_modules/react-dnd/dist/core/DndProvider.js +92 -0
  138. package/dist/es/node_modules/react-dnd/dist/hooks/useCollectedProps.js +9 -0
  139. package/dist/es/node_modules/react-dnd/dist/hooks/useCollector.js +38 -0
  140. package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js +49 -0
  141. package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/connectors.js +16 -0
  142. package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDrag.js +26 -0
  143. package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js +18 -0
  144. package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js +33 -0
  145. package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js +13 -0
  146. package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDragType.js +14 -0
  147. package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js +28 -0
  148. package/dist/es/node_modules/react-dnd/dist/hooks/useDragDropManager.js +13 -0
  149. package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js +28 -0
  150. package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/connectors.js +10 -0
  151. package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useAccept.js +20 -0
  152. package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useDrop.js +23 -0
  153. package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js +17 -0
  154. package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js +23 -0
  155. package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js +13 -0
  156. package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js +26 -0
  157. package/dist/es/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js +6 -0
  158. package/dist/es/node_modules/react-dnd/dist/hooks/useMonitorOutput.js +23 -0
  159. package/dist/es/node_modules/react-dnd/dist/hooks/useOptionalFactory.js +15 -0
  160. package/dist/es/node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js +93 -0
  161. package/dist/es/node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js +68 -0
  162. package/dist/es/node_modules/react-dnd/dist/internals/SourceConnector.js +157 -0
  163. package/dist/es/node_modules/react-dnd/dist/internals/TargetConnector.js +89 -0
  164. package/dist/es/node_modules/react-dnd/dist/internals/isRef.js +6 -0
  165. package/dist/es/node_modules/react-dnd/dist/internals/registration.js +18 -0
  166. package/dist/es/node_modules/react-dnd/dist/internals/wrapConnectorHooks.js +74 -0
  167. package/dist/es/node_modules/react-dnd-html5-backend/dist/BrowserDetector.js +8 -0
  168. package/dist/es/node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js +27 -0
  169. package/dist/es/node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js +572 -0
  170. package/dist/es/node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js +86 -0
  171. package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js +50 -0
  172. package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js +7 -0
  173. package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js +28 -0
  174. package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js +52 -0
  175. package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeTypes.js +6 -0
  176. package/dist/es/node_modules/react-dnd-html5-backend/dist/OffsetUtils.js +100 -0
  177. package/dist/es/node_modules/react-dnd-html5-backend/dist/OptionsReader.js +31 -0
  178. package/dist/es/node_modules/react-dnd-html5-backend/dist/index.js +7 -0
  179. package/dist/es/node_modules/react-dnd-html5-backend/dist/utils/js_utils.js +30 -0
  180. package/dist/es/node_modules/redux/es/redux.js +383 -0
  181. package/dist/es/pagination/index.d.ts +5 -0
  182. package/dist/es/pagination/index.js +5 -0
  183. package/dist/es/pagination/pagination.d.ts +8 -0
  184. package/dist/es/pagination/pagination.js +12 -0
  185. package/dist/es/protectedroute/index.d.ts +14 -0
  186. package/dist/es/protectedroute/index.js +17 -0
  187. package/dist/es/suspensecomponent/index.d.ts +9 -0
  188. package/dist/es/suspensecomponent/index.js +10 -0
  189. package/dist/es/table/components/CopyIcon.js +10 -0
  190. package/dist/es/table/components/EnhanceCell.js +48 -0
  191. package/dist/es/table/components/EnhanceRow.js +11 -0
  192. package/dist/es/table/components/hooks.js +24 -0
  193. package/dist/es/table/constant.js +3 -0
  194. package/dist/es/table/hooks.js +24 -0
  195. package/dist/es/table/index.d.ts +5 -0
  196. package/dist/es/table/index.js +5 -0
  197. package/dist/es/table/interface.d.ts +43 -0
  198. package/dist/es/table/table.d.ts +5 -0
  199. package/dist/es/table/table.js +60 -0
  200. package/dist/es/table/useColumns.js +48 -0
  201. package/dist/es/table/useDynamicListByColumns.js +47 -0
  202. package/dist/es/table/utils.js +82 -0
  203. package/dist/es/timepicker/index.d.ts +9 -0
  204. package/dist/es/timepicker/index.js +11 -0
  205. package/dist/index.build.d.ts +19 -0
  206. package/dist/index.dark.css +2 -0
  207. package/dist/index.default.css +2 -0
  208. package/dist/index.es.js +19 -0
  209. package/dist/index.umd.js +6 -0
  210. package/package.json +103 -0
@@ -0,0 +1,57 @@
1
+ import { invariant } from '../../../../@react-dnd/invariant/dist/index.js';
2
+ import { matchesType } from '../../utils/matchesType.js';
3
+ import { HOVER } from './types.js';
4
+
5
+ function createHover(manager) {
6
+ return function hover(targetIdsArg, { clientOffset } = {}) {
7
+ verifyTargetIdsIsArray(targetIdsArg);
8
+ const targetIds = targetIdsArg.slice(0);
9
+ const monitor = manager.getMonitor();
10
+ const registry = manager.getRegistry();
11
+ const draggedItemType = monitor.getItemType();
12
+ removeNonMatchingTargetIds(targetIds, registry, draggedItemType);
13
+ checkInvariants(targetIds, monitor, registry);
14
+ hoverAllTargets(targetIds, monitor, registry);
15
+ return {
16
+ type: HOVER,
17
+ payload: {
18
+ targetIds,
19
+ clientOffset: clientOffset || null
20
+ }
21
+ };
22
+ };
23
+ }
24
+ function verifyTargetIdsIsArray(targetIdsArg) {
25
+ invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');
26
+ }
27
+ function checkInvariants(targetIds, monitor, registry) {
28
+ invariant(monitor.isDragging(), 'Cannot call hover while not dragging.');
29
+ invariant(!monitor.didDrop(), 'Cannot call hover after drop.');
30
+ for(let i = 0; i < targetIds.length; i++){
31
+ const targetId = targetIds[i];
32
+ invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');
33
+ const target = registry.getTarget(targetId);
34
+ invariant(target, 'Expected targetIds to be registered.');
35
+ }
36
+ }
37
+ function removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {
38
+ // Remove those targetIds that don't match the targetType. This
39
+ // fixes shallow isOver which would only be non-shallow because of
40
+ // non-matching targets.
41
+ for(let i = targetIds.length - 1; i >= 0; i--){
42
+ const targetId = targetIds[i];
43
+ const targetType = registry.getTargetType(targetId);
44
+ if (!matchesType(targetType, draggedItemType)) {
45
+ targetIds.splice(i, 1);
46
+ }
47
+ }
48
+ }
49
+ function hoverAllTargets(targetIds, monitor, registry) {
50
+ // Finally call hover on all matching targets.
51
+ targetIds.forEach(function(targetId) {
52
+ const target = registry.getTarget(targetId);
53
+ target.hover(monitor, targetId);
54
+ });
55
+ }
56
+
57
+ export { createHover };
@@ -0,0 +1,17 @@
1
+ import { createBeginDrag } from './beginDrag.js';
2
+ import { createDrop } from './drop.js';
3
+ import { createEndDrag } from './endDrag.js';
4
+ import { createHover } from './hover.js';
5
+ import { createPublishDragSource } from './publishDragSource.js';
6
+
7
+ function createDragDropActions(manager) {
8
+ return {
9
+ beginDrag: createBeginDrag(manager),
10
+ publishDragSource: createPublishDragSource(manager),
11
+ hover: createHover(manager),
12
+ drop: createDrop(manager),
13
+ endDrag: createEndDrag(manager)
14
+ };
15
+ }
16
+
17
+ export { createDragDropActions };
@@ -0,0 +1,13 @@
1
+ import { INIT_COORDS } from '../types.js';
2
+
3
+ function setClientOffset(clientOffset, sourceClientOffset) {
4
+ return {
5
+ type: INIT_COORDS,
6
+ payload: {
7
+ sourceClientOffset: sourceClientOffset || null,
8
+ clientOffset: clientOffset || null
9
+ }
10
+ };
11
+ }
12
+
13
+ export { setClientOffset };
@@ -0,0 +1,15 @@
1
+ import { PUBLISH_DRAG_SOURCE } from './types.js';
2
+
3
+ function createPublishDragSource(manager) {
4
+ return function publishDragSource() {
5
+ const monitor = manager.getMonitor();
6
+ if (monitor.isDragging()) {
7
+ return {
8
+ type: PUBLISH_DRAG_SOURCE
9
+ };
10
+ }
11
+ return;
12
+ };
13
+ }
14
+
15
+ export { createPublishDragSource };
@@ -0,0 +1,8 @@
1
+ const INIT_COORDS = 'dnd-core/INIT_COORDS';
2
+ const BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';
3
+ const PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';
4
+ const HOVER = 'dnd-core/HOVER';
5
+ const DROP = 'dnd-core/DROP';
6
+ const END_DRAG = 'dnd-core/END_DRAG';
7
+
8
+ export { BEGIN_DRAG, DROP, END_DRAG, HOVER, INIT_COORDS, PUBLISH_DRAG_SOURCE };
@@ -0,0 +1,38 @@
1
+ const ADD_SOURCE = 'dnd-core/ADD_SOURCE';
2
+ const ADD_TARGET = 'dnd-core/ADD_TARGET';
3
+ const REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';
4
+ const REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';
5
+ function addSource(sourceId) {
6
+ return {
7
+ type: ADD_SOURCE,
8
+ payload: {
9
+ sourceId
10
+ }
11
+ };
12
+ }
13
+ function addTarget(targetId) {
14
+ return {
15
+ type: ADD_TARGET,
16
+ payload: {
17
+ targetId
18
+ }
19
+ };
20
+ }
21
+ function removeSource(sourceId) {
22
+ return {
23
+ type: REMOVE_SOURCE,
24
+ payload: {
25
+ sourceId
26
+ }
27
+ };
28
+ }
29
+ function removeTarget(targetId) {
30
+ return {
31
+ type: REMOVE_TARGET,
32
+ payload: {
33
+ targetId
34
+ }
35
+ };
36
+ }
37
+
38
+ export { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET, addSource, addTarget, removeSource, removeTarget };
@@ -0,0 +1,57 @@
1
+ import { createDragDropActions } from '../actions/dragDrop/index.js';
2
+
3
+ class DragDropManagerImpl {
4
+ receiveBackend(backend) {
5
+ this.backend = backend;
6
+ }
7
+ getMonitor() {
8
+ return this.monitor;
9
+ }
10
+ getBackend() {
11
+ return this.backend;
12
+ }
13
+ getRegistry() {
14
+ return this.monitor.registry;
15
+ }
16
+ getActions() {
17
+ /* eslint-disable-next-line @typescript-eslint/no-this-alias */ const manager = this;
18
+ const { dispatch } = this.store;
19
+ function bindActionCreator(actionCreator) {
20
+ return (...args)=>{
21
+ const action = actionCreator.apply(manager, args);
22
+ if (typeof action !== 'undefined') {
23
+ dispatch(action);
24
+ }
25
+ };
26
+ }
27
+ const actions = createDragDropActions(this);
28
+ return Object.keys(actions).reduce((boundActions, key)=>{
29
+ const action = actions[key];
30
+ boundActions[key] = bindActionCreator(action);
31
+ return boundActions;
32
+ }, {});
33
+ }
34
+ dispatch(action) {
35
+ this.store.dispatch(action);
36
+ }
37
+ constructor(store, monitor){
38
+ this.isSetUp = false;
39
+ this.handleRefCountChange = ()=>{
40
+ const shouldSetUp = this.store.getState().refCount > 0;
41
+ if (this.backend) {
42
+ if (shouldSetUp && !this.isSetUp) {
43
+ this.backend.setup();
44
+ this.isSetUp = true;
45
+ } else if (!shouldSetUp && this.isSetUp) {
46
+ this.backend.teardown();
47
+ this.isSetUp = false;
48
+ }
49
+ }
50
+ };
51
+ this.store = store;
52
+ this.monitor = monitor;
53
+ store.subscribe(this.handleRefCountChange);
54
+ }
55
+ }
56
+
57
+ export { DragDropManagerImpl };
@@ -0,0 +1,153 @@
1
+ import { invariant } from '../../../@react-dnd/invariant/dist/index.js';
2
+ import { getSourceClientOffset, getDifferenceFromInitialOffset } from '../utils/coords.js';
3
+ import { areDirty } from '../utils/dirtiness.js';
4
+ import { matchesType } from '../utils/matchesType.js';
5
+
6
+ class DragDropMonitorImpl {
7
+ subscribeToStateChange(listener, options = {}) {
8
+ const { handlerIds } = options;
9
+ invariant(typeof listener === 'function', 'listener must be a function.');
10
+ invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');
11
+ let prevStateId = this.store.getState().stateId;
12
+ const handleChange = ()=>{
13
+ const state = this.store.getState();
14
+ const currentStateId = state.stateId;
15
+ try {
16
+ const canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !areDirty(state.dirtyHandlerIds, handlerIds);
17
+ if (!canSkipListener) {
18
+ listener();
19
+ }
20
+ } finally{
21
+ prevStateId = currentStateId;
22
+ }
23
+ };
24
+ return this.store.subscribe(handleChange);
25
+ }
26
+ subscribeToOffsetChange(listener) {
27
+ invariant(typeof listener === 'function', 'listener must be a function.');
28
+ let previousState = this.store.getState().dragOffset;
29
+ const handleChange = ()=>{
30
+ const nextState = this.store.getState().dragOffset;
31
+ if (nextState === previousState) {
32
+ return;
33
+ }
34
+ previousState = nextState;
35
+ listener();
36
+ };
37
+ return this.store.subscribe(handleChange);
38
+ }
39
+ canDragSource(sourceId) {
40
+ if (!sourceId) {
41
+ return false;
42
+ }
43
+ const source = this.registry.getSource(sourceId);
44
+ invariant(source, `Expected to find a valid source. sourceId=${sourceId}`);
45
+ if (this.isDragging()) {
46
+ return false;
47
+ }
48
+ return source.canDrag(this, sourceId);
49
+ }
50
+ canDropOnTarget(targetId) {
51
+ // undefined on initial render
52
+ if (!targetId) {
53
+ return false;
54
+ }
55
+ const target = this.registry.getTarget(targetId);
56
+ invariant(target, `Expected to find a valid target. targetId=${targetId}`);
57
+ if (!this.isDragging() || this.didDrop()) {
58
+ return false;
59
+ }
60
+ const targetType = this.registry.getTargetType(targetId);
61
+ const draggedItemType = this.getItemType();
62
+ return matchesType(targetType, draggedItemType) && target.canDrop(this, targetId);
63
+ }
64
+ isDragging() {
65
+ return Boolean(this.getItemType());
66
+ }
67
+ isDraggingSource(sourceId) {
68
+ // undefined on initial render
69
+ if (!sourceId) {
70
+ return false;
71
+ }
72
+ const source = this.registry.getSource(sourceId, true);
73
+ invariant(source, `Expected to find a valid source. sourceId=${sourceId}`);
74
+ if (!this.isDragging() || !this.isSourcePublic()) {
75
+ return false;
76
+ }
77
+ const sourceType = this.registry.getSourceType(sourceId);
78
+ const draggedItemType = this.getItemType();
79
+ if (sourceType !== draggedItemType) {
80
+ return false;
81
+ }
82
+ return source.isDragging(this, sourceId);
83
+ }
84
+ isOverTarget(targetId, options = {
85
+ shallow: false
86
+ }) {
87
+ // undefined on initial render
88
+ if (!targetId) {
89
+ return false;
90
+ }
91
+ const { shallow } = options;
92
+ if (!this.isDragging()) {
93
+ return false;
94
+ }
95
+ const targetType = this.registry.getTargetType(targetId);
96
+ const draggedItemType = this.getItemType();
97
+ if (draggedItemType && !matchesType(targetType, draggedItemType)) {
98
+ return false;
99
+ }
100
+ const targetIds = this.getTargetIds();
101
+ if (!targetIds.length) {
102
+ return false;
103
+ }
104
+ const index = targetIds.indexOf(targetId);
105
+ if (shallow) {
106
+ return index === targetIds.length - 1;
107
+ } else {
108
+ return index > -1;
109
+ }
110
+ }
111
+ getItemType() {
112
+ return this.store.getState().dragOperation.itemType;
113
+ }
114
+ getItem() {
115
+ return this.store.getState().dragOperation.item;
116
+ }
117
+ getSourceId() {
118
+ return this.store.getState().dragOperation.sourceId;
119
+ }
120
+ getTargetIds() {
121
+ return this.store.getState().dragOperation.targetIds;
122
+ }
123
+ getDropResult() {
124
+ return this.store.getState().dragOperation.dropResult;
125
+ }
126
+ didDrop() {
127
+ return this.store.getState().dragOperation.didDrop;
128
+ }
129
+ isSourcePublic() {
130
+ return Boolean(this.store.getState().dragOperation.isSourcePublic);
131
+ }
132
+ getInitialClientOffset() {
133
+ return this.store.getState().dragOffset.initialClientOffset;
134
+ }
135
+ getInitialSourceClientOffset() {
136
+ return this.store.getState().dragOffset.initialSourceClientOffset;
137
+ }
138
+ getClientOffset() {
139
+ return this.store.getState().dragOffset.clientOffset;
140
+ }
141
+ getSourceClientOffset() {
142
+ return getSourceClientOffset(this.store.getState().dragOffset);
143
+ }
144
+ getDifferenceFromInitialOffset() {
145
+ return getDifferenceFromInitialOffset(this.store.getState().dragOffset);
146
+ }
147
+ constructor(store, registry){
148
+ this.store = store;
149
+ this.registry = registry;
150
+ }
151
+ }
152
+
153
+ export { DragDropMonitorImpl };
@@ -0,0 +1,130 @@
1
+ import { asap } from '../../../@react-dnd/asap/dist/asap.js';
2
+ import { invariant } from '../../../@react-dnd/invariant/dist/index.js';
3
+ import { addSource, addTarget, removeSource, removeTarget } from '../actions/registry.js';
4
+ import { validateType, validateSourceContract, validateTargetContract } from '../contracts.js';
5
+ import { HandlerRole } from '../interfaces.js';
6
+ import { getNextUniqueId } from '../utils/getNextUniqueId.js';
7
+
8
+ function getNextHandlerId(role) {
9
+ const id = getNextUniqueId().toString();
10
+ switch(role){
11
+ case HandlerRole.SOURCE:
12
+ return `S${id}`;
13
+ case HandlerRole.TARGET:
14
+ return `T${id}`;
15
+ default:
16
+ throw new Error(`Unknown Handler Role: ${role}`);
17
+ }
18
+ }
19
+ function parseRoleFromHandlerId(handlerId) {
20
+ switch(handlerId[0]){
21
+ case 'S':
22
+ return HandlerRole.SOURCE;
23
+ case 'T':
24
+ return HandlerRole.TARGET;
25
+ default:
26
+ throw new Error(`Cannot parse handler ID: ${handlerId}`);
27
+ }
28
+ }
29
+ function mapContainsValue(map, searchValue) {
30
+ const entries = map.entries();
31
+ let isDone = false;
32
+ do {
33
+ const { done , value: [, value] , } = entries.next();
34
+ if (value === searchValue) {
35
+ return true;
36
+ }
37
+ isDone = !!done;
38
+ }while (!isDone)
39
+ return false;
40
+ }
41
+ class HandlerRegistryImpl {
42
+ addSource(type, source) {
43
+ validateType(type);
44
+ validateSourceContract(source);
45
+ const sourceId = this.addHandler(HandlerRole.SOURCE, type, source);
46
+ this.store.dispatch(addSource(sourceId));
47
+ return sourceId;
48
+ }
49
+ addTarget(type, target) {
50
+ validateType(type, true);
51
+ validateTargetContract(target);
52
+ const targetId = this.addHandler(HandlerRole.TARGET, type, target);
53
+ this.store.dispatch(addTarget(targetId));
54
+ return targetId;
55
+ }
56
+ containsHandler(handler) {
57
+ return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);
58
+ }
59
+ getSource(sourceId, includePinned = false) {
60
+ invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');
61
+ const isPinned = includePinned && sourceId === this.pinnedSourceId;
62
+ const source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);
63
+ return source;
64
+ }
65
+ getTarget(targetId) {
66
+ invariant(this.isTargetId(targetId), 'Expected a valid target ID.');
67
+ return this.dropTargets.get(targetId);
68
+ }
69
+ getSourceType(sourceId) {
70
+ invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');
71
+ return this.types.get(sourceId);
72
+ }
73
+ getTargetType(targetId) {
74
+ invariant(this.isTargetId(targetId), 'Expected a valid target ID.');
75
+ return this.types.get(targetId);
76
+ }
77
+ isSourceId(handlerId) {
78
+ const role = parseRoleFromHandlerId(handlerId);
79
+ return role === HandlerRole.SOURCE;
80
+ }
81
+ isTargetId(handlerId) {
82
+ const role = parseRoleFromHandlerId(handlerId);
83
+ return role === HandlerRole.TARGET;
84
+ }
85
+ removeSource(sourceId) {
86
+ invariant(this.getSource(sourceId), 'Expected an existing source.');
87
+ this.store.dispatch(removeSource(sourceId));
88
+ asap(()=>{
89
+ this.dragSources.delete(sourceId);
90
+ this.types.delete(sourceId);
91
+ });
92
+ }
93
+ removeTarget(targetId) {
94
+ invariant(this.getTarget(targetId), 'Expected an existing target.');
95
+ this.store.dispatch(removeTarget(targetId));
96
+ this.dropTargets.delete(targetId);
97
+ this.types.delete(targetId);
98
+ }
99
+ pinSource(sourceId) {
100
+ const source = this.getSource(sourceId);
101
+ invariant(source, 'Expected an existing source.');
102
+ this.pinnedSourceId = sourceId;
103
+ this.pinnedSource = source;
104
+ }
105
+ unpinSource() {
106
+ invariant(this.pinnedSource, 'No source is pinned at the time.');
107
+ this.pinnedSourceId = null;
108
+ this.pinnedSource = null;
109
+ }
110
+ addHandler(role, type, handler) {
111
+ const id = getNextHandlerId(role);
112
+ this.types.set(id, type);
113
+ if (role === HandlerRole.SOURCE) {
114
+ this.dragSources.set(id, handler);
115
+ } else if (role === HandlerRole.TARGET) {
116
+ this.dropTargets.set(id, handler);
117
+ }
118
+ return id;
119
+ }
120
+ constructor(store){
121
+ this.types = new Map();
122
+ this.dragSources = new Map();
123
+ this.dropTargets = new Map();
124
+ this.pinnedSourceId = null;
125
+ this.pinnedSource = null;
126
+ this.store = store;
127
+ }
128
+ }
129
+
130
+ export { HandlerRegistryImpl };
@@ -0,0 +1,22 @@
1
+ import { invariant } from '../../@react-dnd/invariant/dist/index.js';
2
+
3
+ function validateSourceContract(source) {
4
+ invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');
5
+ invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');
6
+ invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');
7
+ }
8
+ function validateTargetContract(target) {
9
+ invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');
10
+ invariant(typeof target.hover === 'function', 'Expected hover to be a function.');
11
+ invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');
12
+ }
13
+ function validateType(type, allowArray) {
14
+ if (allowArray && Array.isArray(type)) {
15
+ type.forEach((t)=>validateType(t, false)
16
+ );
17
+ return;
18
+ }
19
+ invariant(typeof type === 'string' || typeof type === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');
20
+ }
21
+
22
+ export { validateSourceContract, validateTargetContract, validateType };
@@ -0,0 +1,25 @@
1
+ import { createStore } from '../../redux/es/redux.js';
2
+ import { DragDropManagerImpl } from './classes/DragDropManagerImpl.js';
3
+ import { DragDropMonitorImpl } from './classes/DragDropMonitorImpl.js';
4
+ import { HandlerRegistryImpl } from './classes/HandlerRegistryImpl.js';
5
+ import { reduce } from './reducers/index.js';
6
+
7
+ function createDragDropManager(backendFactory, globalContext = undefined, backendOptions = {}, debugMode = false) {
8
+ const store = makeStoreInstance(debugMode);
9
+ const monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));
10
+ const manager = new DragDropManagerImpl(store, monitor);
11
+ const backend = backendFactory(manager, globalContext, backendOptions);
12
+ manager.receiveBackend(backend);
13
+ return manager;
14
+ }
15
+ function makeStoreInstance(debugMode) {
16
+ // TODO: if we ever make a react-native version of this,
17
+ // we'll need to consider how to pull off dev-tooling
18
+ const reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;
19
+ return createStore(reduce, debugMode && reduxDevTools && reduxDevTools({
20
+ name: 'dnd-core',
21
+ instanceId: 'dnd-core'
22
+ }));
23
+ }
24
+
25
+ export { createDragDropManager };
@@ -0,0 +1,7 @@
1
+ var HandlerRole;
2
+ (function(HandlerRole) {
3
+ HandlerRole["SOURCE"] = "SOURCE";
4
+ HandlerRole["TARGET"] = "TARGET";
5
+ })(HandlerRole || (HandlerRole = {}));
6
+
7
+ export { HandlerRole };
@@ -0,0 +1,45 @@
1
+ import { REMOVE_SOURCE, REMOVE_TARGET, ADD_TARGET, ADD_SOURCE } from '../actions/registry.js';
2
+ import { ALL, NONE } from '../utils/dirtiness.js';
3
+ import { areArraysEqual } from '../utils/equality.js';
4
+ import { xor } from '../utils/js_utils.js';
5
+ import { DROP, END_DRAG, PUBLISH_DRAG_SOURCE, BEGIN_DRAG, HOVER } from '../actions/dragDrop/types.js';
6
+
7
+ function reduce(// eslint-disable-next-line @typescript-eslint/no-unused-vars
8
+ _state = NONE, action) {
9
+ switch(action.type){
10
+ case HOVER:
11
+ break;
12
+ case ADD_SOURCE:
13
+ case ADD_TARGET:
14
+ case REMOVE_TARGET:
15
+ case REMOVE_SOURCE:
16
+ return NONE;
17
+ case BEGIN_DRAG:
18
+ case PUBLISH_DRAG_SOURCE:
19
+ case END_DRAG:
20
+ case DROP:
21
+ default:
22
+ return ALL;
23
+ }
24
+ const { targetIds =[] , prevTargetIds =[] } = action.payload;
25
+ const result = xor(targetIds, prevTargetIds);
26
+ const didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);
27
+ if (!didChange) {
28
+ return NONE;
29
+ }
30
+ // Check the target ids at the innermost position. If they are valid, add them
31
+ // to the result
32
+ const prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];
33
+ const innermostTargetId = targetIds[targetIds.length - 1];
34
+ if (prevInnermostTargetId !== innermostTargetId) {
35
+ if (prevInnermostTargetId) {
36
+ result.push(prevInnermostTargetId);
37
+ }
38
+ if (innermostTargetId) {
39
+ result.push(innermostTargetId);
40
+ }
41
+ }
42
+ return result;
43
+ }
44
+
45
+ export { reduce };
@@ -0,0 +1,62 @@
1
+ import { areCoordsEqual } from '../utils/equality.js';
2
+ import { DROP, END_DRAG, HOVER, BEGIN_DRAG, INIT_COORDS } from '../actions/dragDrop/types.js';
3
+
4
+ function _defineProperty(obj, key, value) {
5
+ if (key in obj) {
6
+ Object.defineProperty(obj, key, {
7
+ value: value,
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true
11
+ });
12
+ } else {
13
+ obj[key] = value;
14
+ }
15
+ return obj;
16
+ }
17
+ function _objectSpread(target) {
18
+ for(var i = 1; i < arguments.length; i++){
19
+ var source = arguments[i] != null ? arguments[i] : {};
20
+ var ownKeys = Object.keys(source);
21
+ if (typeof Object.getOwnPropertySymbols === 'function') {
22
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
23
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
24
+ }));
25
+ }
26
+ ownKeys.forEach(function(key) {
27
+ _defineProperty(target, key, source[key]);
28
+ });
29
+ }
30
+ return target;
31
+ }
32
+ const initialState = {
33
+ initialSourceClientOffset: null,
34
+ initialClientOffset: null,
35
+ clientOffset: null
36
+ };
37
+ function reduce(state = initialState, action) {
38
+ const { payload } = action;
39
+ switch(action.type){
40
+ case INIT_COORDS:
41
+ case BEGIN_DRAG:
42
+ return {
43
+ initialSourceClientOffset: payload.sourceClientOffset,
44
+ initialClientOffset: payload.clientOffset,
45
+ clientOffset: payload.clientOffset
46
+ };
47
+ case HOVER:
48
+ if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {
49
+ return state;
50
+ }
51
+ return _objectSpread({}, state, {
52
+ clientOffset: payload.clientOffset
53
+ });
54
+ case END_DRAG:
55
+ case DROP:
56
+ return initialState;
57
+ default:
58
+ return state;
59
+ }
60
+ }
61
+
62
+ export { reduce };