dtable-ui-component 5.3.6 → 5.3.7

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 (256) hide show
  1. package/lib/ButtonFormatter/index.js +8 -2
  2. package/lib/CheckboxEditor/index.css +8 -20
  3. package/lib/CheckboxEditor/index.js +98 -35
  4. package/lib/CheckboxFormatter/index.css +5 -0
  5. package/lib/CheckboxFormatter/index.js +9 -15
  6. package/lib/CollaboratorEditor/index.css +12 -35
  7. package/lib/CollaboratorEditor/index.js +18 -212
  8. package/lib/CollaboratorEditor/{mb-collaborator-editor-popover → mb-collaborator-editor}/index.js +27 -30
  9. package/lib/CollaboratorEditor/pc-collaborator-editor/index.js +257 -0
  10. package/lib/CollaboratorItem/index.css +5 -1
  11. package/lib/CollaboratorItem/index.js +6 -2
  12. package/lib/Comment/body/comment.js +190 -0
  13. package/lib/Comment/body/index.css +95 -0
  14. package/lib/Comment/body/index.js +32 -0
  15. package/lib/Comment/footer/btns/index.css +40 -0
  16. package/lib/Comment/footer/btns/index.js +113 -0
  17. package/lib/Comment/footer/index.css +157 -0
  18. package/lib/Comment/footer/index.js +169 -0
  19. package/lib/Comment/footer/input/index.css +52 -0
  20. package/lib/Comment/footer/input/index.js +448 -0
  21. package/lib/Comment/footer/input/participant/index.css +0 -0
  22. package/lib/Comment/footer/input/participant/index.js +53 -0
  23. package/lib/Comment/footer/participants/index.css +22 -0
  24. package/lib/Comment/footer/participants/index.js +68 -0
  25. package/lib/Comment/footer/participants/participant/index.css +5 -0
  26. package/lib/Comment/footer/participants/participant/index.js +32 -0
  27. package/lib/Comment/footer/participants/participant-select/index.css +104 -0
  28. package/lib/Comment/footer/participants/participant-select/index.js +182 -0
  29. package/lib/Comment/index.css +19 -0
  30. package/lib/Comment/index.js +304 -0
  31. package/lib/Comment/model.js +25 -0
  32. package/lib/Comment/utils/common.js +62 -0
  33. package/lib/Comment/utils/index.js +27 -0
  34. package/lib/Comment/utils/utilities.js +176 -0
  35. package/lib/DTableCustomizeSelect/index.js +2 -2
  36. package/lib/DTableFiltersPopover/utils/index.js +1 -7
  37. package/lib/DTableFiltersPopover/widgets/filter-calendar.js +2 -2
  38. package/lib/DTableGroupSelect/index.js +3 -3
  39. package/lib/DTableSelect/index.js +3 -1
  40. package/lib/DateEditor/index.js +14 -51
  41. package/lib/DateEditor/pc-date-editor-popover.js +149 -12
  42. package/lib/{common/delete-tip.js → DeleteTip/index.js} +12 -16
  43. package/lib/Department-editor/department-single-select.js +1 -1
  44. package/lib/Department-editor/index.js +3 -4
  45. package/lib/DepartmentSingleSelectFormatter/index.js +3 -2
  46. package/lib/DigitalSignEditor/constants.js +7 -0
  47. package/lib/DigitalSignEditor/index.css +69 -0
  48. package/lib/DigitalSignEditor/index.js +182 -0
  49. package/lib/DigitalSignEditor/service.js +39 -0
  50. package/lib/DigitalSignEditor/signature-board/index.css +35 -0
  51. package/lib/DigitalSignEditor/signature-board/index.js +135 -0
  52. package/lib/DigitalSignEditor/signature-board/signature-tool.js +396 -0
  53. package/lib/DigitalSignEditor/utils.js +29 -0
  54. package/lib/DurationEditor/index.js +110 -0
  55. package/lib/EmailEditor/index.js +58 -0
  56. package/lib/FileEditor/addition-previewer/index.css +1 -0
  57. package/lib/FileEditor/addition-previewer/index.js +52 -0
  58. package/lib/FileEditor/addition-previewer/local-file-addition/index.css +1 -0
  59. package/lib/FileEditor/addition-previewer/local-file-addition/index.js +252 -0
  60. package/lib/FileEditor/constants.js +7 -0
  61. package/lib/FileEditor/files-previewer/file-previewer/dropdown-menu.js +74 -0
  62. package/lib/FileEditor/files-previewer/file-previewer/file-name-editor/index.css +5 -0
  63. package/lib/FileEditor/files-previewer/file-previewer/file-name-editor/index.js +77 -0
  64. package/lib/FileEditor/files-previewer/file-previewer/index.css +88 -0
  65. package/lib/FileEditor/files-previewer/file-previewer/index.js +167 -0
  66. package/lib/FileEditor/files-previewer/index.css +56 -0
  67. package/lib/FileEditor/files-previewer/index.js +277 -0
  68. package/lib/FileEditor/index.css +6 -0
  69. package/lib/FileEditor/index.js +258 -11
  70. package/lib/FileEditor/utils.js +22 -0
  71. package/lib/FileItemFormatter/index.js +19 -20
  72. package/lib/FileUploader/index.css +9 -0
  73. package/lib/FileUploader/index.js +268 -14
  74. package/lib/FormulaFormatter/cell-value-validator.js +17 -17
  75. package/lib/FormulaFormatter/index.js +2 -1
  76. package/lib/FormulaFormatter/utils.js +0 -31
  77. package/lib/GeolocationEditor/country-editor.js +319 -0
  78. package/lib/GeolocationEditor/index.css +641 -0
  79. package/lib/GeolocationEditor/index.js +240 -0
  80. package/lib/GeolocationEditor/location-editor.js +368 -0
  81. package/lib/GeolocationEditor/map-editor/index.js +456 -0
  82. package/lib/GeolocationEditor/map-editor/large-editor/index.css +137 -0
  83. package/lib/GeolocationEditor/map-editor/large-editor/index.js +461 -0
  84. package/lib/GeolocationEditor/map-editor-utils.js +153 -0
  85. package/lib/GeolocationEditor/map-selection-editor/index.js +455 -0
  86. package/lib/GeolocationEditor/map-selection-editor/large-editor/index.css +1 -0
  87. package/lib/GeolocationEditor/map-selection-editor/large-editor/index.js +447 -0
  88. package/lib/GeolocationEditor/parse-geolocation.js +282 -0
  89. package/lib/GeolocationEditor/province-city-editor.js +292 -0
  90. package/lib/GeolocationEditor/province-editor.js +226 -0
  91. package/lib/GeolocationEditor/selector-header-item.js +28 -0
  92. package/lib/GeolocationEditor/selector-list.js +33 -0
  93. package/lib/ImageEditor/addition-previewer/image-link/index.css +45 -0
  94. package/lib/ImageEditor/addition-previewer/image-link/index.js +73 -0
  95. package/lib/ImageEditor/addition-previewer/index.css +106 -0
  96. package/lib/ImageEditor/addition-previewer/index.js +63 -0
  97. package/lib/ImageEditor/addition-previewer/local-image-addition/index.css +125 -0
  98. package/lib/ImageEditor/addition-previewer/local-image-addition/index.js +254 -0
  99. package/lib/ImageEditor/constants.js +7 -0
  100. package/lib/ImageEditor/images-previewer/image-preview/index.css +59 -0
  101. package/lib/ImageEditor/images-previewer/image-preview/index.js +155 -0
  102. package/lib/ImageEditor/images-previewer/index.css +18 -0
  103. package/lib/ImageEditor/images-previewer/index.js +140 -0
  104. package/lib/ImageEditor/index.css +24 -0
  105. package/lib/ImageEditor/index.js +194 -0
  106. package/lib/ImageThumbnail/index.css +20 -0
  107. package/lib/ImageThumbnail/index.js +136 -0
  108. package/lib/LinkEditor/index.js +2 -3
  109. package/lib/LinkEditor/pc-link-editor-popover/index.js +1 -1
  110. package/lib/MultipleSelectEditor/index.js +16 -177
  111. package/lib/NumberEditor/index.js +63 -77
  112. package/lib/RowExpandDialog/body/index.css +21 -0
  113. package/lib/RowExpandDialog/body/index.js +262 -0
  114. package/lib/RowExpandDialog/column-content/index.css +48 -0
  115. package/lib/RowExpandDialog/column-content/index.js +50 -0
  116. package/lib/RowExpandDialog/header/index.css +31 -0
  117. package/lib/RowExpandDialog/header/index.js +55 -0
  118. package/lib/RowExpandDialog/index.css +28 -0
  119. package/lib/RowExpandDialog/index.js +237 -0
  120. package/lib/RowExpandEditor/RowExpandAddBtn/index.css +22 -0
  121. package/lib/RowExpandEditor/RowExpandAddBtn/index.js +24 -0
  122. package/lib/RowExpandEditor/RowExpandCheckboxEditor/index.css +18 -0
  123. package/lib/RowExpandEditor/RowExpandCheckboxEditor/index.js +43 -0
  124. package/lib/RowExpandEditor/RowExpandCollaboratorEditor/index.css +5 -0
  125. package/lib/RowExpandEditor/RowExpandCollaboratorEditor/index.js +232 -0
  126. package/lib/RowExpandEditor/RowExpandDateEditor/index.js +130 -0
  127. package/lib/RowExpandEditor/RowExpandDepartmentEditor/index.js +106 -0
  128. package/lib/RowExpandEditor/RowExpandDigitalSignEditor/index.css +13 -0
  129. package/lib/RowExpandEditor/RowExpandDigitalSignEditor/index.js +208 -0
  130. package/lib/RowExpandEditor/RowExpandDurationEditor/index.js +105 -0
  131. package/lib/RowExpandEditor/RowExpandEmailEditor/index.css +2 -0
  132. package/lib/RowExpandEditor/RowExpandEmailEditor/index.js +125 -0
  133. package/lib/RowExpandEditor/RowExpandFileEditor/index.css +1 -0
  134. package/lib/RowExpandEditor/RowExpandFileEditor/index.js +147 -0
  135. package/lib/RowExpandEditor/RowExpandGeolocationEditor/index.css +17 -0
  136. package/lib/RowExpandEditor/RowExpandGeolocationEditor/index.js +165 -0
  137. package/lib/RowExpandEditor/RowExpandImageEditor/index.css +6 -0
  138. package/lib/RowExpandEditor/RowExpandImageEditor/index.js +170 -0
  139. package/lib/RowExpandEditor/RowExpandLongTextEditor/index.css +6 -0
  140. package/lib/RowExpandEditor/RowExpandLongTextEditor/index.js +123 -0
  141. package/lib/RowExpandEditor/RowExpandMultipleSelectEditor/index.css +44 -0
  142. package/lib/RowExpandEditor/RowExpandMultipleSelectEditor/index.js +224 -0
  143. package/lib/RowExpandEditor/RowExpandNumberEditor/index.js +105 -0
  144. package/lib/RowExpandEditor/RowExpandRateEditor/index.css +13 -0
  145. package/lib/RowExpandEditor/RowExpandRateEditor/index.js +152 -0
  146. package/lib/RowExpandEditor/RowExpandSingleSelectorEditor/index.css +58 -0
  147. package/lib/RowExpandEditor/RowExpandSingleSelectorEditor/index.js +193 -0
  148. package/lib/RowExpandEditor/RowExpandTextEditor/index.css +4 -0
  149. package/lib/RowExpandEditor/RowExpandTextEditor/index.js +127 -0
  150. package/lib/RowExpandEditor/RowExpandUrlEditor/index.css +31 -0
  151. package/lib/RowExpandEditor/RowExpandUrlEditor/index.js +130 -0
  152. package/lib/RowExpandEditor/constants.js +44 -0
  153. package/lib/RowExpandEditor/index.css +0 -0
  154. package/lib/RowExpandEditor/index.js +32 -0
  155. package/lib/RowExpandFormatter/RowExpandDepartmentFormatter/index.js +27 -0
  156. package/lib/{RowExpandEmailFormatter → RowExpandFormatter/RowExpandEmailFormatter}/index.css +1 -1
  157. package/lib/{RowExpandEmailFormatter → RowExpandFormatter/RowExpandEmailFormatter}/index.js +1 -1
  158. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/index.css +6 -6
  159. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/index.js +3 -1
  160. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/row-expand-file-item-formatter.js +12 -13
  161. package/lib/{RowExpandFormulaFormatter → RowExpandFormatter/RowExpandFormulaFormatter}/index.js +11 -10
  162. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/index.css +6 -6
  163. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/index.js +1 -1
  164. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/row-expand-image-item-formatter.js +5 -5
  165. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/collaborator-item-formatter.js +1 -1
  166. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/index.css +2 -2
  167. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/index.js +20 -20
  168. package/lib/{RowExpandRateFormatter → RowExpandFormatter/RowExpandRateFormatter}/index.css +1 -1
  169. package/lib/RowExpandFormatter/RowExpandUrlFormatter/index.css +1 -0
  170. package/lib/{RowExpandUrlFormatter → RowExpandFormatter/RowExpandUrlFormatter}/index.js +4 -3
  171. package/lib/RowExpandFormatter/constants.js +61 -0
  172. package/lib/RowExpandFormatter/index.css +28 -3
  173. package/lib/RowExpandFormatter/index.js +111 -130
  174. package/lib/SingleSelectEditor/index.js +16 -156
  175. package/lib/SvgIcon/index.css +11 -0
  176. package/lib/SvgIcon/index.js +29 -0
  177. package/lib/TextEditor/index.js +112 -42
  178. package/lib/UploadProgress/index.js +38 -0
  179. package/lib/UrlEditor/index.js +61 -0
  180. package/lib/common/editor-base.js +52 -0
  181. package/lib/constants/file.js +96 -0
  182. package/lib/constants/index.js +27 -15
  183. package/lib/constants/key-codes.js +109 -0
  184. package/lib/css/cell-editor.css +18 -2
  185. package/lib/formatterConfig/base-formatter-config.js +23 -23
  186. package/lib/formatterConfig/index.js +3 -3
  187. package/lib/hooks/index.js +16 -0
  188. package/lib/index.js +81 -46
  189. package/lib/lang/index.js +19 -16
  190. package/lib/locales/de.json +167 -0
  191. package/lib/locales/en.json +167 -0
  192. package/lib/locales/es.json +167 -0
  193. package/lib/locales/fr.json +167 -0
  194. package/lib/locales/pt.json +167 -0
  195. package/lib/locales/ru.json +167 -0
  196. package/lib/locales/zh-CN.json +167 -0
  197. package/lib/select-editor/index.js +6 -6
  198. package/lib/select-editor/{mb-select-editor-popover → mb-select-editor}/index.js +3 -3
  199. package/lib/select-editor/pc-select-editor/index.css +85 -0
  200. package/lib/select-editor/pc-select-editor/index.js +290 -0
  201. package/lib/utils/cell-comparer.js +35 -0
  202. package/lib/utils/cell.js +55 -0
  203. package/lib/utils/column-utils.js +25 -0
  204. package/lib/utils/editor-utils.js +1 -6
  205. package/lib/utils/get-event-transfer.js +75 -0
  206. package/lib/utils/hotkey.js +37 -0
  207. package/lib/utils/object-utils.js +61 -0
  208. package/lib/utils/url.js +121 -8
  209. package/lib/utils/utils.js +119 -2
  210. package/package.json +3 -2
  211. package/lib/CollaboratorEditor/pc-collaborator-editor-popover/index.js +0 -97
  212. package/lib/FileEditor/pc-files-addition/index.js +0 -1
  213. package/lib/FileEditor/pc-files-addition/pc-file-uploaded-item.js +0 -1
  214. package/lib/FileEditor/pc-files-preview/index.js +0 -1
  215. package/lib/FileEditor/pc-files-preview/pc-file-item-preview.js +0 -1
  216. package/lib/FileItemFormatter/assets/file/192/excel.png +0 -0
  217. package/lib/FileItemFormatter/assets/file/192/file.png +0 -0
  218. package/lib/FileItemFormatter/assets/file/192/music.png +0 -0
  219. package/lib/FileItemFormatter/assets/file/192/pdf.png +0 -0
  220. package/lib/FileItemFormatter/assets/file/192/pic.png +0 -0
  221. package/lib/FileItemFormatter/assets/file/192/ppt.png +0 -0
  222. package/lib/FileItemFormatter/assets/file/192/txt.png +0 -0
  223. package/lib/FileItemFormatter/assets/file/192/video.png +0 -0
  224. package/lib/FileItemFormatter/assets/file/192/word.png +0 -0
  225. package/lib/FileItemFormatter/assets/file/24/excel.png +0 -0
  226. package/lib/FileItemFormatter/assets/file/24/file.png +0 -0
  227. package/lib/FileItemFormatter/assets/file/24/music.png +0 -0
  228. package/lib/FileItemFormatter/assets/file/24/pdf.png +0 -0
  229. package/lib/FileItemFormatter/assets/file/24/pic.png +0 -0
  230. package/lib/FileItemFormatter/assets/file/24/ppt.png +0 -0
  231. package/lib/FileItemFormatter/assets/file/24/txt.png +0 -0
  232. package/lib/FileItemFormatter/assets/file/24/video.png +0 -0
  233. package/lib/FileItemFormatter/assets/file/24/word.png +0 -0
  234. package/lib/FileItemFormatter/assets/folder/folder-192.png +0 -0
  235. package/lib/FileItemFormatter/assets/folder/folder-24.png +0 -0
  236. package/lib/FileItemFormatter/utils.js +0 -99
  237. package/lib/MultipleSelectEditor/index.css +0 -9
  238. package/lib/RowExpandLinkFormatter/utils.js +0 -71
  239. package/lib/RowExpandUrlFormatter/index.css +0 -1
  240. package/lib/SingleSelectEditor/index.css +0 -14
  241. package/lib/common/modal-portal.js +0 -26
  242. package/lib/locals/de.js +0 -103
  243. package/lib/locals/en.js +0 -104
  244. package/lib/locals/es.js +0 -103
  245. package/lib/locals/fr.js +0 -103
  246. package/lib/locals/pt.js +0 -103
  247. package/lib/locals/ru.js +0 -103
  248. package/lib/locals/zh-CN.js +0 -104
  249. package/lib/select-editor/pc-select-editor-popover/index.css +0 -71
  250. package/lib/select-editor/pc-select-editor-popover/index.js +0 -122
  251. /package/lib/CollaboratorEditor/{mb-collaborator-editor-popover → mb-collaborator-editor}/index.css +0 -0
  252. /package/lib/CollaboratorEditor/{pc-collaborator-editor-popover → pc-collaborator-editor}/index.css +0 -0
  253. /package/lib/{common/delete-tip.css → DeleteTip/index.css} +0 -0
  254. /package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/value-display-utils.js +0 -0
  255. /package/lib/{RowExpandRateFormatter → RowExpandFormatter/RowExpandRateFormatter}/index.js +0 -0
  256. /package/lib/select-editor/{mb-select-editor-popover → mb-select-editor}/index.css +0 -0
@@ -0,0 +1,447 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactstrap = require("reactstrap");
10
+ var _dtableUtils = require("dtable-utils");
11
+ var _toaster = _interopRequireDefault(require("../../../toaster"));
12
+ var _Loading = _interopRequireDefault(require("../../../Loading"));
13
+ var _constants = require("../../../constants");
14
+ var _cell = require("../../../utils/cell");
15
+ var _mapEditorUtils = require("../../map-editor-utils");
16
+ var _lang = require("../../../lang");
17
+ require("./index.css");
18
+ class LargeMapSelectionEditorDialog extends _react.default.Component {
19
+ constructor(props) {
20
+ super(props);
21
+ this.renderBaiduMap = () => {
22
+ this.setState({
23
+ isLoading: false
24
+ }, () => {
25
+ if (!window.BMap.Map) return;
26
+ this.map = new window.BMap.Map('geolocation-map-selection-container-large', {
27
+ enableMapClick: false
28
+ });
29
+ let {
30
+ lng,
31
+ lat,
32
+ zoom
33
+ } = (0, _mapEditorUtils.getInitCenter)(true);
34
+ const {
35
+ value
36
+ } = this.state;
37
+ const {
38
+ lngLat
39
+ } = value;
40
+ if ((0, _cell.isValidPosition)(lngLat === null || lngLat === void 0 ? void 0 : lngLat.lng, lngLat === null || lngLat === void 0 ? void 0 : lngLat.lat)) {
41
+ lng = lngLat.lng;
42
+ lat = lngLat.lat;
43
+ this.addMarkerByPosition(value);
44
+ }
45
+ let point = new window.BMap.Point(lng, lat);
46
+ this.map.centerAndZoom(point, zoom);
47
+ this.map.enableScrollWheelZoom(true);
48
+ if (this.readOnly) return;
49
+ this.map.addEventListener('click', event => {
50
+ if (this.state.searchResults.length > 0) {
51
+ this.setState({
52
+ searchResults: []
53
+ });
54
+ return;
55
+ }
56
+ let value = {};
57
+ const point = event.point;
58
+ const geoCoder = new window.BMap.Geocoder();
59
+ geoCoder.getLocation(point, result => {
60
+ const {
61
+ surroundingPois,
62
+ address,
63
+ point
64
+ } = result;
65
+ if (surroundingPois.length === 0) {
66
+ value.address = address;
67
+ value.lngLat = {
68
+ lng: point.lng,
69
+ lat: point.lat
70
+ };
71
+ value.tag = [];
72
+ value.title = '';
73
+ } else {
74
+ const position = surroundingPois[0];
75
+ const {
76
+ address,
77
+ title,
78
+ tags,
79
+ point
80
+ } = position;
81
+ value.address = address || '';
82
+ value.title = title || '';
83
+ value.tag = tags || [];
84
+ value.lngLat = {
85
+ lng: point.lng,
86
+ lat: point.lat
87
+ };
88
+ }
89
+ this.addMarkerByPosition(value);
90
+ });
91
+ });
92
+ });
93
+ };
94
+ this.addMarkerByPosition = value => {
95
+ const {
96
+ lngLat
97
+ } = value;
98
+ let point = new window.BMap.Point(lngLat.lng, lngLat.lat);
99
+ const marker = new window.BMap.Marker(point, {
100
+ offset: new window.BMap.Size(-2, -5)
101
+ });
102
+ if (this.map) {
103
+ this.map.clearOverlays();
104
+ const content = this.getLabelContent(value);
105
+ const translateY = value.title ? '30%' : '45%';
106
+ const label = new window.BMap.Label(content, {
107
+ offset: new window.BMap.Size(9, -5)
108
+ });
109
+ label.setStyle({
110
+ display: 'block',
111
+ border: 'none',
112
+ backgroundColor: '#ffffff',
113
+ boxShadow: '1px 2px 1px rgba(0,0,0,.15)',
114
+ padding: '3px 10px',
115
+ transform: "translate(-50%, ".concat(translateY, ")"),
116
+ borderRadius: '3px',
117
+ fontWeight: '500',
118
+ left: '7px'
119
+ });
120
+ marker.setLabel(label);
121
+ this.map.addOverlay(marker);
122
+ this.map.centerAndZoom(point, 10);
123
+ this.addLabelEventListener(marker, value);
124
+ }
125
+ };
126
+ this.addLabelEventListener = (marker, value) => {
127
+ if (this.map) {
128
+ setTimeout(() => {
129
+ const label = document.getElementById('dtable-ui-selection-label-content');
130
+ label.addEventListener('click', e => {
131
+ e.stopPropagation();
132
+ });
133
+ const closeElement = document.getElementById('selection-label-close');
134
+ closeElement.addEventListener('click', e => {
135
+ e.stopPropagation();
136
+ marker.getLabel().remove();
137
+ this.map.clearOverlays();
138
+ });
139
+ const submitElement = document.getElementById('selection-label-submit');
140
+ submitElement.addEventListener('click', e => {
141
+ e.stopPropagation();
142
+ // submit value
143
+ this.props.setValue(value);
144
+ this.props.onSubmit();
145
+ });
146
+ }, 10);
147
+ }
148
+ };
149
+ this.getLabelContent = value => {
150
+ const {
151
+ address,
152
+ title,
153
+ tag
154
+ } = value;
155
+ const tagContent = Array.isArray(tag) && tag.length > 0 ? tag[0] : '';
156
+ if (title) {
157
+ return "\n <div class='dtable-ui-selection-label-content' id='dtable-ui-selection-label-content'>\n <i class='dtable-font dtable-icon-down3'></i>\n <span class='label-title text-truncate' title=".concat(title, ">").concat(title, "</span>\n ").concat(tagContent && "<span class='label-tag'>".concat(tagContent, "</span>"), "\n <span class='dtable-font dtable-icon-x' id='selection-label-close'></span>\n <span class='label-address-tip'>").concat((0, _lang.getLocale)('Address'), "</span>\n <span class='label-address text-truncate' title=").concat(address, ">").concat(address, "</span>\n <div class='label-submit btn btn-primary' id='selection-label-submit'>").concat((0, _lang.getLocale)('Fill_in'), "</div>\n </div>\n ");
158
+ } else {
159
+ return "\n <div class='dtable-ui-selection-label-content simple' id='dtable-ui-selection-label-content'>\n <i class='dtable-font dtable-icon-down3'></i>\n <span class='dtable-font dtable-icon-x' id='selection-label-close'></span>\n <span class='label-address text-truncate simple' title=".concat(address, ">").concat(address, "</span>\n <div class='label-submit btn btn-primary' id='selection-label-submit'>").concat((0, _lang.getLocale)('Fill_in'), "</div>\n </div>\n ");
160
+ }
161
+ };
162
+ this.getInitValue = () => {
163
+ const {
164
+ value
165
+ } = this.props;
166
+ if (!value || (0, _dtableUtils.isEmptyObject)(value)) {
167
+ return {
168
+ address: '',
169
+ title: '',
170
+ tag: '',
171
+ point: {}
172
+ };
173
+ }
174
+ return value;
175
+ };
176
+ this.onSearch = () => {
177
+ const {
178
+ inputValue
179
+ } = this.state;
180
+ let options = {
181
+ onSearchComplete: results => {
182
+ const status = local.getStatus();
183
+ if (status !== window.BMAP_STATUS_SUCCESS) {
184
+ _toaster.default.danger((0, _lang.getLocale)('Search_failed_please_enter_detailed_address'));
185
+ return;
186
+ }
187
+ let searchResults = [];
188
+ for (let i = 0; i < results.getCurrentNumPois(); i++) {
189
+ const value = results.getPoi(i);
190
+ let position = {};
191
+ position.address = value.address || '';
192
+ position.title = value.title || '';
193
+ position.tag = value.tags || [];
194
+ position.lngLat = {
195
+ lng: value.point.lng,
196
+ lat: value.point.lat
197
+ };
198
+ searchResults.push(position);
199
+ }
200
+ this.setState({
201
+ searchResults
202
+ });
203
+ }
204
+ };
205
+ let local = new window.BMap.LocalSearch(this.map, options);
206
+ local.search(inputValue);
207
+ };
208
+ this.onChange = e => {
209
+ const inputValue = e.target.value;
210
+ this.setState({
211
+ inputValue
212
+ });
213
+ };
214
+ this.onKeyDown = event => {
215
+ event.stopPropagation();
216
+ event.nativeEvent.stopImmediatePropagation();
217
+ if (event.keyCode === _constants.KeyCodes.Enter) {
218
+ this.onSearch();
219
+ } else if (event.keyCode === _constants.KeyCodes.Backspace) {
220
+ this.setState({
221
+ searchResults: []
222
+ });
223
+ }
224
+ };
225
+ this.onClickSelection = result => {
226
+ this.setState({
227
+ searchResults: []
228
+ }, () => {
229
+ this.addMarkerByPosition(result);
230
+ });
231
+ };
232
+ this.clearSearchNumerical = () => {
233
+ this.setState({
234
+ inputValue: '',
235
+ searchResults: []
236
+ });
237
+ };
238
+ this.toggle = event => {
239
+ event.preventDefault();
240
+ event.stopPropagation();
241
+ event.nativeEvent.stopImmediatePropagation();
242
+ const {
243
+ value
244
+ } = this.state;
245
+ this.props.setValue(value);
246
+ this.props.toggleFullScreen();
247
+ };
248
+ this.renderSearchResults = () => {
249
+ const {
250
+ searchResults
251
+ } = this.state;
252
+ if (searchResults.length === 0) return null;
253
+ return /*#__PURE__*/_react.default.createElement("div", {
254
+ className: "search-results-container"
255
+ }, searchResults.map((result, index) => {
256
+ return /*#__PURE__*/_react.default.createElement("div", {
257
+ className: "search-result-item",
258
+ key: index,
259
+ onClick: this.onClickSelection.bind(this, result)
260
+ }, /*#__PURE__*/_react.default.createElement("span", {
261
+ className: "search-result-item-title"
262
+ }, result.title || ''), /*#__PURE__*/_react.default.createElement("span", {
263
+ className: "search-result-item-address"
264
+ }, result.address || ''));
265
+ }));
266
+ };
267
+ this.handlerClick = e => {
268
+ e.nativeEvent.stopImmediatePropagation();
269
+ e.stopPropagation();
270
+ };
271
+ this.onZoomIn = () => {
272
+ if (!this.map) return;
273
+ const currentZoom = this.map.getZoom();
274
+ this.map.setZoom(currentZoom + 1);
275
+ };
276
+ this.onZoomOut = () => {
277
+ if (!this.map) return;
278
+ const currentZoom = this.map.getZoom();
279
+ this.map.setZoom(currentZoom - 1);
280
+ };
281
+ this.onLocateCurrentPosition = () => {
282
+ (0, _mapEditorUtils.locateCurrentPosition)(this.map, this.mapType, this.geolocationCallback);
283
+ };
284
+ this.geolocationCallback = (error, point) => {
285
+ if (!error) {
286
+ const geoCoder = new window.BMap.Geocoder();
287
+ geoCoder.getLocation(point, result => {
288
+ let value = {};
289
+ const {
290
+ surroundingPois,
291
+ address,
292
+ point
293
+ } = result;
294
+ if (surroundingPois.length === 0) {
295
+ value.address = address;
296
+ value.lngLat = {
297
+ lng: point.lng,
298
+ lat: point.lat
299
+ };
300
+ value.tag = [];
301
+ value.title = '';
302
+ } else {
303
+ const position = surroundingPois[0];
304
+ const {
305
+ address,
306
+ title,
307
+ tags,
308
+ point
309
+ } = position;
310
+ value.address = address || '';
311
+ value.title = title || '';
312
+ value.tag = tags || [];
313
+ value.lngLat = {
314
+ lng: point.lng,
315
+ lat: point.lat
316
+ };
317
+ }
318
+ this.addMarkerByPosition(value);
319
+ });
320
+ } else {
321
+ _toaster.default.danger((0, _lang.getLocale)('Positioning_failed'));
322
+ }
323
+ };
324
+ const {
325
+ readOnly,
326
+ config
327
+ } = props;
328
+ const _value = this.getInitValue();
329
+ const _inputValue = _value.title || _value.address || '';
330
+ const {
331
+ mapType,
332
+ mapKey
333
+ } = (0, _mapEditorUtils.getMapInfo)(config);
334
+ this.readOnly = readOnly;
335
+ this.state = {
336
+ isLoading: true,
337
+ value: _value,
338
+ inputValue: _inputValue,
339
+ searchResults: []
340
+ };
341
+ this.mapType = mapType;
342
+ this.mapKey = mapKey;
343
+ this.map = null;
344
+ }
345
+ componentDidMount() {
346
+ if (this.mapType === _mapEditorUtils.MAP_TYPES.B_MAP) {
347
+ if (!window.BMap) {
348
+ window.renderBaiduMap = () => this.renderBaiduMap();
349
+ (0, _mapEditorUtils.loadMapSource)(this.mapType, this.mapKey);
350
+ } else {
351
+ this.renderBaiduMap();
352
+ }
353
+ window.onSubmitSelection = this.onSubmitSelection;
354
+ return;
355
+ }
356
+ }
357
+ componentWillUnmount() {
358
+ if (this.mapType === _mapEditorUtils.MAP_TYPES.B_MAP) {
359
+ let center = {};
360
+ center.zoom = this.map.getZoom();
361
+ let coordinate = this.map.getCenter();
362
+ center.lng = coordinate.lng;
363
+ center.lat = coordinate.lat;
364
+ localStorage.setItem('geolocation-map-selection-center', JSON.stringify(center));
365
+ this.map = null;
366
+ }
367
+ }
368
+ render() {
369
+ const {
370
+ isLoading,
371
+ inputValue
372
+ } = this.state;
373
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
374
+ size: "lg",
375
+ isOpen: true,
376
+ toggle: this.toggle,
377
+ className: "dtable-ui-large-map-editor-dialog"
378
+ }, /*#__PURE__*/_react.default.createElement("div", {
379
+ className: "dtable-ui-geolocation-map-editor-header",
380
+ onClick: this.handlerClick
381
+ }, /*#__PURE__*/_react.default.createElement("div", {
382
+ className: "dtable-ui-geolocation-map-editor-logo"
383
+ }, /*#__PURE__*/_react.default.createElement("span", {
384
+ className: "dtable-font dtable-icon-location"
385
+ }), /*#__PURE__*/_react.default.createElement("span", {
386
+ className: "ml-2 dtable-ui-geolocation-map-editor-title"
387
+ }, (0, _lang.getLocale)('Address'))), /*#__PURE__*/_react.default.createElement("span", {
388
+ className: "dtable-ui-geolocation-map-editor-screen dtable-font dtable-icon-full-screen",
389
+ onClick: this.toggle
390
+ })), /*#__PURE__*/_react.default.createElement("div", {
391
+ className: "dtable-ui-geolocation-map-editor-large selection-editor-large",
392
+ onClick: this.handlerClick
393
+ }, !this.readOnly && /*#__PURE__*/_react.default.createElement("div", {
394
+ className: "map-editor-header"
395
+ }, /*#__PURE__*/_react.default.createElement("div", {
396
+ className: "search-tables-container d-flex"
397
+ }, /*#__PURE__*/_react.default.createElement("input", {
398
+ type: "text",
399
+ value: inputValue,
400
+ onChange: this.onChange,
401
+ onKeyDown: this.onKeyDown,
402
+ className: "form-control search-tables-input selection-input-large",
403
+ placeholder: (0, _lang.getLocale)('Please_enter_the_address'),
404
+ autoFocus: true
405
+ }), inputValue && /*#__PURE__*/_react.default.createElement("span", {
406
+ className: "clear-search-numerical dtable-font dtable-icon-x-",
407
+ onClick: this.clearSearchNumerical
408
+ }), /*#__PURE__*/_react.default.createElement("span", {
409
+ className: "dtable-ui-geolocation-search-selection-editor",
410
+ onClick: this.onSearch
411
+ }, /*#__PURE__*/_react.default.createElement("i", {
412
+ className: "dtable-font dtable-icon-search"
413
+ })))), /*#__PURE__*/_react.default.createElement("div", {
414
+ className: this.readOnly ? 'geolocation-map-read-only-container' : 'geolocation-map-container-large'
415
+ }, this.mapType && isLoading && /*#__PURE__*/_react.default.createElement(_Loading.default, null), !this.mapType && /*#__PURE__*/_react.default.createElement("div", {
416
+ className: "error-message d-flex justify-content-center mt-9"
417
+ }, /*#__PURE__*/_react.default.createElement("span", {
418
+ className: "alert-danger"
419
+ }, (0, _lang.getLocale)('The_map_plugin_is_not_properly_configured_contact_the_administrator'))), !isLoading && this.mapType && /*#__PURE__*/_react.default.createElement("div", {
420
+ className: "w-100 h-100",
421
+ ref: ref => this.ref = ref,
422
+ id: "geolocation-map-selection-container-large"
423
+ })), /*#__PURE__*/_react.default.createElement("div", {
424
+ className: "geolocation-map-controller"
425
+ }, /*#__PURE__*/_react.default.createElement("div", {
426
+ className: "dtable-ui-geolocation-locate-control",
427
+ onClick: this.onLocateCurrentPosition
428
+ }, /*#__PURE__*/_react.default.createElement("i", {
429
+ className: "dtable-font dtable-icon-current-location"
430
+ })), /*#__PURE__*/_react.default.createElement("div", {
431
+ className: "dtable-ui-geolocation-zoom-control"
432
+ }, /*#__PURE__*/_react.default.createElement("div", {
433
+ className: "dtable-ui-geolocation-zoom-control-btn",
434
+ onClick: this.onZoomIn
435
+ }, /*#__PURE__*/_react.default.createElement("i", {
436
+ "aria-hidden": "true",
437
+ className: "dtable-font dtable-icon-enlarge"
438
+ })), /*#__PURE__*/_react.default.createElement("div", {
439
+ className: "dtable-ui-geolocation-zoom-control-btn",
440
+ onClick: this.onZoomOut
441
+ }, /*#__PURE__*/_react.default.createElement("i", {
442
+ "aria-hidden": "true",
443
+ className: "dtable-font dtable-icon-narrow"
444
+ })))), this.renderSearchResults()));
445
+ }
446
+ }
447
+ var _default = exports.default = LargeMapSelectionEditorDialog;