@vtx/ol-map 1.0.2-0

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 +202 -0
  2. package/lib/_util/filterSpecialCharacters.js +90 -0
  3. package/lib/_util/filterSpecialCharacters.js.map +1 -0
  4. package/lib/_util/getComponentProps.js +14 -0
  5. package/lib/_util/getComponentProps.js.map +1 -0
  6. package/lib/_util/getCookie.js +25 -0
  7. package/lib/_util/getCookie.js.map +1 -0
  8. package/lib/_util/getDefaultMapInfo.js +34 -0
  9. package/lib/_util/getDefaultMapInfo.js.map +1 -0
  10. package/lib/_util/getSystemInfo.js +27 -0
  11. package/lib/_util/getSystemInfo.js.map +1 -0
  12. package/lib/_util/getToken.js +14 -0
  13. package/lib/_util/getToken.js.map +1 -0
  14. package/lib/_util/getUrlParam.js +16 -0
  15. package/lib/_util/getUrlParam.js.map +1 -0
  16. package/lib/_util/http.js +235 -0
  17. package/lib/_util/http.js.map +1 -0
  18. package/lib/_util/isFunction.js +10 -0
  19. package/lib/_util/isFunction.js.map +1 -0
  20. package/lib/_util/isObject.js +10 -0
  21. package/lib/_util/isObject.js.map +1 -0
  22. package/lib/_util/layer.js +134 -0
  23. package/lib/_util/layer.js.map +1 -0
  24. package/lib/_util/mapTool.js +189 -0
  25. package/lib/_util/mapTool.js.map +1 -0
  26. package/lib/_util/setCookie.js +16 -0
  27. package/lib/_util/setCookie.js.map +1 -0
  28. package/lib/_util/useColSize.js +29 -0
  29. package/lib/_util/useColSize.js.map +1 -0
  30. package/lib/_util/useInterval.js +19 -0
  31. package/lib/_util/useInterval.js.map +1 -0
  32. package/lib/_util/useSet.js +45 -0
  33. package/lib/_util/useSet.js.map +1 -0
  34. package/lib/config.js +13 -0
  35. package/lib/config.js.map +1 -0
  36. package/lib/feature-layer/FeatureLayer.js +277 -0
  37. package/lib/feature-layer/FeatureLayer.js.map +1 -0
  38. package/lib/feature-layer/index.js +48 -0
  39. package/lib/feature-layer/index.js.map +1 -0
  40. package/lib/feature-layer/style/css.js +4 -0
  41. package/lib/feature-layer/style/css.js.map +1 -0
  42. package/lib/feature-layer/style/index.css +0 -0
  43. package/lib/feature-layer/style/index.js +4 -0
  44. package/lib/feature-layer/style/index.js.map +1 -0
  45. package/lib/feature-layer/style/index.less +0 -0
  46. package/lib/image-layer/ImageLayer.js +101 -0
  47. package/lib/image-layer/ImageLayer.js.map +1 -0
  48. package/lib/image-layer/index.js +44 -0
  49. package/lib/image-layer/index.js.map +1 -0
  50. package/lib/image-layer/style/css.js +4 -0
  51. package/lib/image-layer/style/css.js.map +1 -0
  52. package/lib/image-layer/style/index.css +0 -0
  53. package/lib/image-layer/style/index.js +4 -0
  54. package/lib/image-layer/style/index.js.map +1 -0
  55. package/lib/image-layer/style/index.less +0 -0
  56. package/lib/index.js +42 -0
  57. package/lib/index.js.map +1 -0
  58. package/lib/map/Popup.js +134 -0
  59. package/lib/map/Popup.js.map +1 -0
  60. package/lib/map/getBaseLayers.js +50 -0
  61. package/lib/map/getBaseLayers.js.map +1 -0
  62. package/lib/map/index.js +319 -0
  63. package/lib/map/index.js.map +1 -0
  64. package/lib/map/style/css.js +4 -0
  65. package/lib/map/style/css.js.map +1 -0
  66. package/lib/map/style/index.css +140 -0
  67. package/lib/map/style/index.js +4 -0
  68. package/lib/map/style/index.js.map +1 -0
  69. package/lib/map/style/index.less +128 -0
  70. package/lib/map-icon/Canvas.js +367 -0
  71. package/lib/map-icon/Canvas.js.map +1 -0
  72. package/lib/map-icon/CockpitIcon.js +317 -0
  73. package/lib/map-icon/CockpitIcon.js.map +1 -0
  74. package/lib/map-icon/CockpitIcon2.js +268 -0
  75. package/lib/map-icon/CockpitIcon2.js.map +1 -0
  76. package/lib/map-icon/CommonIcon.js +193 -0
  77. package/lib/map-icon/CommonIcon.js.map +1 -0
  78. package/lib/map-icon/CommonIcon2.js +164 -0
  79. package/lib/map-icon/CommonIcon2.js.map +1 -0
  80. package/lib/map-icon/Legend.js +53 -0
  81. package/lib/map-icon/Legend.js.map +1 -0
  82. package/lib/map-icon/config.js +3868 -0
  83. package/lib/map-icon/config.js.map +1 -0
  84. package/lib/map-icon/index.js +21 -0
  85. package/lib/map-icon/index.js.map +1 -0
  86. package/lib/map-icon/style/css.js +4 -0
  87. package/lib/map-icon/style/css.js.map +1 -0
  88. package/lib/map-icon/style/index.css +0 -0
  89. package/lib/map-icon/style/index.js +4 -0
  90. package/lib/map-icon/style/index.js.map +1 -0
  91. package/lib/map-icon/style/index.less +0 -0
  92. package/lib/map-icon/svg/index.js +53 -0
  93. package/lib/map-icon/svg/index.js.map +1 -0
  94. package/lib/map-icon/svg/tuceng.svg.js +2 -0
  95. package/lib/map-icon/svg/tuceng.svg.js.map +1 -0
  96. package/lib/style/index.css +0 -0
  97. package/lib/style/index.less +2 -0
  98. package/lib/style/themes/compact.css +0 -0
  99. package/lib/style/themes/compact.less +1 -0
  100. package/lib/style/themes/dark.css +0 -0
  101. package/lib/style/themes/dark.less +9 -0
  102. package/lib/style/themes/default.css +0 -0
  103. package/lib/style/themes/default.less +7 -0
  104. package/lib/style/themes/index.css +0 -0
  105. package/lib/style/themes/index.less +1 -0
  106. package/lib/style/themes/variable.css +0 -0
  107. package/lib/style/themes/variable.less +5 -0
  108. package/lib/tools/Analysis/AnalysisLayer.js +380 -0
  109. package/lib/tools/Analysis/AnalysisLayer.js.map +1 -0
  110. package/lib/tools/Layer/LayerService.js +150 -0
  111. package/lib/tools/Layer/LayerService.js.map +1 -0
  112. package/lib/tools/Layer/LayersCheckService.js +173 -0
  113. package/lib/tools/Layer/LayersCheckService.js.map +1 -0
  114. package/lib/tools/Layer/index.css +34 -0
  115. package/lib/tools/Layer/index.js +227 -0
  116. package/lib/tools/Layer/index.js.map +1 -0
  117. package/lib/tools/Layer/index.less +27 -0
  118. package/lib/tools/Search/index.js +194 -0
  119. package/lib/tools/Search/index.js.map +1 -0
  120. package/lib/tools/Toolbox/BoxSelect/index.js +20 -0
  121. package/lib/tools/Toolbox/BoxSelect/index.js.map +1 -0
  122. package/lib/tools/Toolbox/CircleSelect/index.js +20 -0
  123. package/lib/tools/Toolbox/CircleSelect/index.js.map +1 -0
  124. package/lib/tools/Toolbox/EagleEye/index.js +57 -0
  125. package/lib/tools/Toolbox/EagleEye/index.js.map +1 -0
  126. package/lib/tools/Toolbox/MapBookmark/index.css +18 -0
  127. package/lib/tools/Toolbox/MapBookmark/index.js +494 -0
  128. package/lib/tools/Toolbox/MapBookmark/index.js.map +1 -0
  129. package/lib/tools/Toolbox/MapBookmark/index.less +20 -0
  130. package/lib/tools/Toolbox/MapDownload/index.js +16 -0
  131. package/lib/tools/Toolbox/MapDownload/index.js.map +1 -0
  132. package/lib/tools/Toolbox/MapPrint/index.css +4 -0
  133. package/lib/tools/Toolbox/MapPrint/index.js +242 -0
  134. package/lib/tools/Toolbox/MapPrint/index.js.map +1 -0
  135. package/lib/tools/Toolbox/MapPrint/index.less +4 -0
  136. package/lib/tools/Toolbox/Measure/Area/index.js +17 -0
  137. package/lib/tools/Toolbox/Measure/Area/index.js.map +1 -0
  138. package/lib/tools/Toolbox/Measure/Distance/index.js +17 -0
  139. package/lib/tools/Toolbox/Measure/Distance/index.js.map +1 -0
  140. package/lib/tools/Toolbox/Measure/Measure.js +229 -0
  141. package/lib/tools/Toolbox/Measure/Measure.js.map +1 -0
  142. package/lib/tools/Toolbox/Measure/index.js +70 -0
  143. package/lib/tools/Toolbox/Measure/index.js.map +1 -0
  144. package/lib/tools/Toolbox/PolygonSelect/index.js +20 -0
  145. package/lib/tools/Toolbox/PolygonSelect/index.js.map +1 -0
  146. package/lib/tools/Toolbox/ScaleLine/index.js +55 -0
  147. package/lib/tools/Toolbox/ScaleLine/index.js.map +1 -0
  148. package/lib/tools/Toolbox/SelectTools/index.css +15 -0
  149. package/lib/tools/Toolbox/SelectTools/index.js +243 -0
  150. package/lib/tools/Toolbox/SelectTools/index.js.map +1 -0
  151. package/lib/tools/Toolbox/SelectTools/index.less +10 -0
  152. package/lib/tools/Toolbox/SpaceQuery/index.css +19 -0
  153. package/lib/tools/Toolbox/SpaceQuery/index.js +590 -0
  154. package/lib/tools/Toolbox/SpaceQuery/index.js.map +1 -0
  155. package/lib/tools/Toolbox/SpaceQuery/index.less +18 -0
  156. package/lib/tools/Toolbox/index.css +6 -0
  157. package/lib/tools/Toolbox/index.js +187 -0
  158. package/lib/tools/Toolbox/index.js.map +1 -0
  159. package/lib/tools/Toolbox/index.less +11 -0
  160. package/lib/tools/Utils/CreateOverlay.js +47 -0
  161. package/lib/tools/Utils/CreateOverlay.js.map +1 -0
  162. package/lib/tools/Utils/Draw.js +129 -0
  163. package/lib/tools/Utils/Draw.js.map +1 -0
  164. package/lib/tools/Utils/HighLayer.js +184 -0
  165. package/lib/tools/Utils/HighLayer.js.map +1 -0
  166. package/lib/tools/Utils/measure.js +247 -0
  167. package/lib/tools/Utils/measure.js.map +1 -0
  168. package/lib/tools/Utils/utils.js +272 -0
  169. package/lib/tools/Utils/utils.js.map +1 -0
  170. package/lib/tools/View/index.js +51 -0
  171. package/lib/tools/View/index.js.map +1 -0
  172. package/lib/tools/components/Icon/index.js +28 -0
  173. package/lib/tools/components/Icon/index.js.map +1 -0
  174. package/lib/tools/components/ItemWrap/index.css +43 -0
  175. package/lib/tools/components/ItemWrap/index.js +40 -0
  176. package/lib/tools/components/ItemWrap/index.js.map +1 -0
  177. package/lib/tools/components/ItemWrap/index.less +41 -0
  178. package/lib/tools/components/Modal/index.css +36 -0
  179. package/lib/tools/components/Modal/index.js +37 -0
  180. package/lib/tools/components/Modal/index.js.map +1 -0
  181. package/lib/tools/components/Modal/index.less +28 -0
  182. package/lib/tools/components/MyTabs/index.js +22 -0
  183. package/lib/tools/components/MyTabs/index.js.map +1 -0
  184. package/lib/tools/components/RequiredLabel/index.css +5 -0
  185. package/lib/tools/components/RequiredLabel/index.js +32 -0
  186. package/lib/tools/components/RequiredLabel/index.js.map +1 -0
  187. package/lib/tools/components/RequiredLabel/index.less +5 -0
  188. package/lib/tools/components/Select/index.js +33 -0
  189. package/lib/tools/components/Select/index.js.map +1 -0
  190. package/lib/tools/components/Table/index.css +10 -0
  191. package/lib/tools/components/Table/index.js +91 -0
  192. package/lib/tools/components/Table/index.js.map +1 -0
  193. package/lib/tools/components/Table/index.less +13 -0
  194. package/lib/tools/components/ToolItem/index.css +30 -0
  195. package/lib/tools/components/ToolItem/index.js +29 -0
  196. package/lib/tools/components/ToolItem/index.js.map +1 -0
  197. package/lib/tools/components/ToolItem/index.less +27 -0
  198. package/lib/tools/components/ToolsSelect/index.css +30 -0
  199. package/lib/tools/components/ToolsSelect/index.js +43 -0
  200. package/lib/tools/components/ToolsSelect/index.js.map +1 -0
  201. package/lib/tools/components/ToolsSelect/index.less +29 -0
  202. package/lib/tools/index.js +84 -0
  203. package/lib/tools/index.js.map +1 -0
  204. package/lib/tools/style/css.js +4 -0
  205. package/lib/tools/style/css.js.map +1 -0
  206. package/lib/tools/style/index.css +19 -0
  207. package/lib/tools/style/index.js +4 -0
  208. package/lib/tools/style/index.js.map +1 -0
  209. package/lib/tools/style/index.less +19 -0
  210. package/package.json +118 -0
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _antd = require("antd");
8
+ var _source = require("ol/source");
9
+ var _layer = require("ol/layer");
10
+ var _style = require("ol/style");
11
+ var _ol = require("ol");
12
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
13
+ 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; }
14
+ 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(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; }
15
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
17
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
18
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
20
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /**
21
+ * 图层高亮操作
22
+ */
23
+ var Highlight = /*#__PURE__*/function () {
24
+ function Highlight(options) {
25
+ var _this = this;
26
+ _classCallCheck(this, Highlight);
27
+ // 高亮图层增加feature
28
+ _defineProperty(this, "addHighlightFeature", function (feature) {
29
+ if (!feature) return;
30
+ _this.feature = feature;
31
+ _this.clearSelectFeature();
32
+ _this.clearFeatures();
33
+ if (Array.isArray(feature) && feature !== null && feature !== void 0 && feature.length) {
34
+ feature.map(function (v) {
35
+ _this.addFeature(v);
36
+ });
37
+ } else {
38
+ _this.addFeature(feature);
39
+ }
40
+
41
+ // this.map.getView().fit(feature.values_.geometry.getExtent(), {
42
+ // maxZoom: 18,
43
+ // duration: 500,
44
+ // });
45
+ });
46
+ _defineProperty(this, "addFeature", function (feature) {
47
+ var geometry = feature === null || feature === void 0 ? void 0 : feature.getGeometry();
48
+ var type = geometry === null || geometry === void 0 ? void 0 : geometry.getType();
49
+ if (type === 'Point' && geometry) {
50
+ _this.addPointHighlight(feature);
51
+ } else {
52
+ _this.source.addFeature(feature);
53
+ }
54
+ });
55
+ // 点位高亮-扩散
56
+ _defineProperty(this, "addPointHighlight", function (feature) {
57
+ var _id = feature.get('id') || 'point_animation';
58
+ _this.clearFeatures();
59
+ var point_overlay = _this.map.getOverlayById(_id);
60
+ if (feature) {
61
+ var geometry = feature === null || feature === void 0 ? void 0 : feature.getGeometry();
62
+ var type = geometry === null || geometry === void 0 ? void 0 : geometry.getType();
63
+ if (type === 'Point' && geometry) {
64
+ var ele = document.createElement('div');
65
+ ele.className = 'point_animation';
66
+ if (!point_overlay) {
67
+ point_overlay = new _ol.Overlay({
68
+ id: _id,
69
+ element: ele,
70
+ positioning: 'center-center',
71
+ stopEvent: false
72
+ });
73
+ _this.pointOverlay = point_overlay;
74
+ }
75
+ _this.map.addOverlay(point_overlay);
76
+ point_overlay.setPosition(geometry.getFlatCoordinates());
77
+ }
78
+ }
79
+ });
80
+ _defineProperty(this, "setCenter", function (field, fieldName) {
81
+ var filterField = fieldName || 'code';
82
+ _this.clearSelectFeature();
83
+ var newFeature;
84
+ if (_this.feature && Array.isArray(_this.feature)) {
85
+ newFeature = _this.feature.find(function (v) {
86
+ return v.get(filterField) === field;
87
+ });
88
+ } else if (_this.feature && _this.feature.get(filterField) === field) {
89
+ newFeature = _this.feature;
90
+ }
91
+ _this.selectFeature = newFeature;
92
+ if (newFeature) {
93
+ newFeature.setStyle();
94
+ _this.map.getView().fit(newFeature.values_.geometry.getExtent(), {
95
+ maxZoom: 20,
96
+ duration: 500
97
+ });
98
+ _this.setSelectFeature(newFeature);
99
+ } else {
100
+ _antd.message.warning('地图上未查询到该数据,请检查是否配置坐标信息!');
101
+ }
102
+ });
103
+ this.highStyle = new _style.Style({
104
+ // 高亮样式
105
+ image: new _style.Circle({
106
+ radius: 7,
107
+ fill: new _style.Fill({
108
+ color: '#ff4d4f'
109
+ }),
110
+ stroke: new _style.Stroke({
111
+ color: '#FFFFFF',
112
+ width: 2
113
+ })
114
+ }),
115
+ fill: new _style.Fill({
116
+ color: '#ff4d4f'
117
+ }),
118
+ stroke: new _style.Stroke({
119
+ color: '#ff4d4f',
120
+ width: 4
121
+ })
122
+ });
123
+ this.map = options.map;
124
+ this.feature = options.feature;
125
+ this.selectFeature = null;
126
+ this.pointOverlay = null;
127
+ this.source = new _source.Vector();
128
+ this.layer = new _layer.Vector(_objectSpread({
129
+ source: this.source,
130
+ zIndex: 20,
131
+ style: this.highStyle
132
+ }, options.parmas || {}));
133
+ this.map.addLayer(this.layer);
134
+ }
135
+ _createClass(Highlight, [{
136
+ key: "clearSelectFeature",
137
+ value: function clearSelectFeature() {
138
+ if (this.selectFeature) {
139
+ this.selectFeature.setStyle();
140
+ this.selectFeature = null;
141
+ }
142
+ }
143
+ }, {
144
+ key: "clearFeatures",
145
+ value: function clearFeatures() {
146
+ this.source && this.source.clear();
147
+ this.pointOverlay && this.map.removeOverlay(this.pointOverlay);
148
+ }
149
+ }, {
150
+ key: "setSelectFeature",
151
+ value: function setSelectFeature(feature) {
152
+ if (feature) {
153
+ this.selectFeature = feature;
154
+ this.selectFeature.setStyle(new _style.Style({
155
+ image: new _style.Circle({
156
+ radius: 7,
157
+ fill: new _style.Fill({
158
+ color: '#2491fc'
159
+ }),
160
+ stroke: new _style.Stroke({
161
+ color: '#FFFFFF',
162
+ width: 2
163
+ })
164
+ }),
165
+ fill: new _style.Fill({
166
+ color: '#2491fc'
167
+ }),
168
+ stroke: new _style.Stroke({
169
+ color: '#2491fc',
170
+ width: 4
171
+ })
172
+ }));
173
+ }
174
+ }
175
+ }, {
176
+ key: "destroy",
177
+ value: function destroy() {
178
+ this.map.removeLayer(this.layer);
179
+ }
180
+ }]);
181
+ return Highlight;
182
+ }();
183
+ exports["default"] = Highlight;
184
+ //# sourceMappingURL=HighLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HighLayer.js","names":["_antd","require","_source","_layer","_style","_ol","_typeof","obj","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","configurable","writable","_toPropertyKey","_createClass","protoProps","staticProps","value","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","Number","Highlight","options","_this","feature","clearSelectFeature","clearFeatures","Array","isArray","map","v","addFeature","geometry","getGeometry","type","getType","addPointHighlight","_id","get","point_overlay","getOverlayById","ele","document","createElement","className","Overlay","id","element","positioning","stopEvent","pointOverlay","addOverlay","setPosition","getFlatCoordinates","field","fieldName","filterField","newFeature","find","selectFeature","setStyle","getView","fit","values_","getExtent","maxZoom","duration","setSelectFeature","message","warning","highStyle","Style","image","CircleStyle","radius","fill","Fill","color","stroke","Stroke","width","VectorSource","layer","VectorLayer","zIndex","style","parmas","addLayer","clear","removeOverlay","destroy","removeLayer","exports"],"sources":["tools/Utils/HighLayer.js"],"sourcesContent":["/**\n * 图层高亮操作\n */\nimport { message } from 'antd';\nimport { Vector as VectorSource } from 'ol/source';\nimport { Vector as VectorLayer } from 'ol/layer';\nimport { Style, Stroke, Fill, Circle as CircleStyle } from 'ol/style';\nimport { Overlay } from 'ol';\n\nexport default class Highlight {\n constructor(options) {\n this.highStyle = new Style({\n // 高亮样式\n image: new CircleStyle({\n radius: 7,\n fill: new Fill({\n color: '#ff4d4f',\n }),\n stroke: new Stroke({\n color: '#FFFFFF',\n width: 2,\n }),\n }),\n fill: new Fill({\n color: '#ff4d4f',\n }),\n stroke: new Stroke({\n color: '#ff4d4f',\n width: 4,\n }),\n });\n this.map = options.map;\n this.feature = options.feature;\n this.selectFeature = null;\n this.pointOverlay = null;\n this.source = new VectorSource();\n this.layer = new VectorLayer({\n source: this.source,\n zIndex: 20,\n style: this.highStyle,\n ...(options.parmas || {}),\n });\n this.map.addLayer(this.layer);\n }\n\n // 高亮图层增加feature\n addHighlightFeature = feature => {\n if (!feature) return;\n this.feature = feature;\n this.clearSelectFeature();\n this.clearFeatures();\n if (Array.isArray(feature) && feature?.length) {\n feature.map(v => {\n this.addFeature(v);\n });\n } else {\n this.addFeature(feature);\n }\n\n // this.map.getView().fit(feature.values_.geometry.getExtent(), {\n // maxZoom: 18,\n // duration: 500,\n // });\n };\n\n addFeature = feature => {\n let geometry = feature?.getGeometry();\n let type = geometry?.getType();\n if (type === 'Point' && geometry) {\n this.addPointHighlight(feature);\n } else {\n this.source.addFeature(feature);\n }\n };\n\n // 点位高亮-扩散\n addPointHighlight = feature => {\n let _id = feature.get('id') || 'point_animation';\n this.clearFeatures();\n let point_overlay = this.map.getOverlayById(_id);\n\n if (feature) {\n let geometry = feature?.getGeometry();\n let type = geometry?.getType();\n if (type === 'Point' && geometry) {\n let ele = document.createElement('div');\n ele.className = 'point_animation';\n\n if (!point_overlay) {\n point_overlay = new Overlay({\n id: _id,\n element: ele,\n positioning: 'center-center',\n stopEvent: false,\n });\n\n this.pointOverlay = point_overlay;\n }\n this.map.addOverlay(point_overlay);\n point_overlay.setPosition(geometry.getFlatCoordinates());\n }\n }\n };\n\n setCenter = (field, fieldName) => {\n let filterField = fieldName || 'code';\n this.clearSelectFeature();\n let newFeature;\n if (this.feature && Array.isArray(this.feature)) {\n newFeature = this.feature.find(v => {\n return v.get(filterField) === field;\n });\n } else if (this.feature && this.feature.get(filterField) === field) {\n newFeature = this.feature;\n }\n this.selectFeature = newFeature;\n if (newFeature) {\n newFeature.setStyle();\n this.map.getView().fit(newFeature.values_.geometry.getExtent(), {\n maxZoom: 20,\n duration: 500,\n });\n\n this.setSelectFeature(newFeature);\n } else {\n message.warning('地图上未查询到该数据,请检查是否配置坐标信息!');\n }\n };\n\n clearSelectFeature() {\n if (this.selectFeature) {\n this.selectFeature.setStyle();\n this.selectFeature = null;\n }\n }\n\n clearFeatures() {\n this.source && this.source.clear();\n this.pointOverlay && this.map.removeOverlay(this.pointOverlay);\n }\n\n setSelectFeature(feature) {\n if (feature) {\n this.selectFeature = feature;\n this.selectFeature.setStyle(\n new Style({\n image: new CircleStyle({\n radius: 7,\n fill: new Fill({\n color: '#2491fc',\n }),\n stroke: new Stroke({\n color: '#FFFFFF',\n width: 2,\n }),\n }),\n fill: new Fill({\n color: '#2491fc',\n }),\n stroke: new Stroke({\n color: '#2491fc',\n width: 4,\n }),\n }),\n );\n }\n }\n\n destroy() {\n this.map.removeLayer(this.layer);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _ol = require("ol");
8
+ var _layer = require("ol/layer");
9
+ var _source = require("ol/source");
10
+ var _interaction = require("ol/interaction");
11
+ var _Draw = require("ol/interaction/Draw");
12
+ var _sphere = require("ol/sphere");
13
+ var _Observable = require("ol/Observable");
14
+ var _style = require("ol/style");
15
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
16
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
19
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
+ var source, vector, measureTooltip;
22
+ var measureTooltipElement, draw, sketch;
23
+ function Measure(props) {
24
+ var map = props.map;
25
+ var sourceProj = map.getView().getProjection();
26
+ var doubleClickZoom = map.getInteractions().getArray().find(function (interaction) {
27
+ return interaction instanceof _interaction.DoubleClickZoom;
28
+ });
29
+ source = new _source.Vector();
30
+ function resetLayer() {
31
+ vector && map.removeLayer(vector);
32
+ vector = new _layer.Vector({
33
+ source: source,
34
+ style: new _style.Style({
35
+ fill: new _style.Fill({
36
+ color: 'rgba(255,255,255,0.2)'
37
+ }),
38
+ stroke: new _style.Stroke({
39
+ color: '#ffcc33',
40
+ width: 3
41
+ }),
42
+ image: new _style.Circle({
43
+ radius: 7,
44
+ fill: new _style.Fill({
45
+ color: '#ffcc33'
46
+ })
47
+ })
48
+ })
49
+ });
50
+ map.addLayer(vector);
51
+ }
52
+
53
+ // 生成面积或长度tooltip
54
+ function createMeasureTooltip() {
55
+ if (measureTooltip) {
56
+ map.removeOverlay(measureTooltip);
57
+ }
58
+ if (measureTooltipElement) {
59
+ measureTooltipElement.parentNode.removeChild(measureTooltipElement);
60
+ }
61
+ measureTooltipElement = document.createElement('div');
62
+ measureTooltipElement.className = 'ol-tooltip ol-tooltip-measure';
63
+ measureTooltip = new _ol.Overlay({
64
+ element: measureTooltipElement,
65
+ offset: [0, -15],
66
+ positioning: 'bottom-center',
67
+ stopEvent: false,
68
+ insertFirst: false
69
+ });
70
+ map.addOverlay(measureTooltip);
71
+ }
72
+
73
+ // 获取面积
74
+ function formatArea(polygon) {
75
+ var area = (0, _sphere.getArea)(polygon, {
76
+ projection: sourceProj
77
+ });
78
+ var output;
79
+ if (area > 10000) {
80
+ output = "".concat(Math.round(area / 1000000 * 100) / 100, " km<sup>2</sup>");
81
+ } else {
82
+ output = "".concat(Math.round(area * 100) / 100, " m<sup>2</sup>");
83
+ }
84
+ return output;
85
+ }
86
+
87
+ // 获取长度
88
+ function formatLength(line) {
89
+ var length = (0, _sphere.getLength)(line, {
90
+ projection: sourceProj
91
+ });
92
+ var output;
93
+ if (length > 100) {
94
+ output = "".concat(Math.round(length / 1000 * 100) / 100, " km");
95
+ } else {
96
+ output = "".concat(Math.round(length * 100) / 100, " m");
97
+ }
98
+ return output;
99
+ }
100
+
101
+ // 测量
102
+ function addInteraction() {
103
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'point';
104
+ draw = new _interaction.Draw({
105
+ source: source,
106
+ type: type,
107
+ style: new _style.Style({
108
+ fill: new _style.Fill({
109
+ color: 'rgba(255,255,255,0.2)'
110
+ }),
111
+ stroke: new _style.Stroke({
112
+ color: 'rgba(0,0,0,0.5)',
113
+ lineDash: [10, 10],
114
+ width: 2
115
+ }),
116
+ image: new _style.Circle({
117
+ radius: 5,
118
+ stroke: new _style.Stroke({
119
+ color: 'rgba(0,0,0,0.7)'
120
+ }),
121
+ fill: new _style.Fill({
122
+ color: 'rgba(255,255,255,0.2)'
123
+ })
124
+ })
125
+ })
126
+ });
127
+ map.addInteraction(draw);
128
+ createMeasureTooltip();
129
+ var listener;
130
+ draw.on('drawstart', function (evt) {
131
+ map.removeInteraction(doubleClickZoom);
132
+ sketch = evt.feature;
133
+ var tooltipCoord = evt.coordinate;
134
+ listener = sketch.getGeometry().on('change', function (evt) {
135
+ var geom = evt.target;
136
+ var output;
137
+ if (type === 'Polygon') {
138
+ output = formatArea(geom);
139
+ tooltipCoord = geom.getInteriorPoint().getCoordinates();
140
+ } else if (type === 'LineString') {
141
+ output = formatLength(geom);
142
+ tooltipCoord = geom.getLastCoordinate();
143
+ }
144
+ measureTooltipElement.innerHTML = output;
145
+ measureTooltip.setPosition(tooltipCoord);
146
+ });
147
+ });
148
+ draw.on('drawend', function () {
149
+ measureTooltipElement.className = 'ol-tooltip ol-tooltip-static';
150
+ measureTooltip.setOffset([0, -7]);
151
+ sketch = null;
152
+ measureTooltipElement = null;
153
+ (0, _Observable.unByKey)(listener);
154
+ map.removeInteraction(draw);
155
+ setTimeout(function () {
156
+ map.addInteraction(doubleClickZoom);
157
+ });
158
+ });
159
+ }
160
+
161
+ // 框选 临时添加需优化
162
+ function addFrameInteraction(callback) {
163
+ draw = new _interaction.Draw({
164
+ source: source,
165
+ type: 'Circle',
166
+ style: new _style.Style({
167
+ fill: new _style.Fill({
168
+ color: 'rgba(255,255,255,0.2)'
169
+ }),
170
+ stroke: new _style.Stroke({
171
+ color: 'rgba(0,0,0,0.5)',
172
+ lineDash: [10, 10],
173
+ width: 2
174
+ }),
175
+ image: new _style.Circle({
176
+ radius: 5,
177
+ stroke: new _style.Stroke({
178
+ color: 'rgba(0,0,0,0.7)'
179
+ }),
180
+ fill: new _style.Fill({
181
+ color: 'rgba(255,255,255,0.2)'
182
+ })
183
+ })
184
+ }),
185
+ geometryFunction: (0, _Draw.createBox)()
186
+ });
187
+ map.addInteraction(draw);
188
+ draw.on('drawend', function (evt) {
189
+ var polygon = evt.feature.getGeometry();
190
+ setTimeout(function () {
191
+ var features = [];
192
+ var extent = polygon.getExtent();
193
+ var layers = map.getLayers(); // 获取所有图层
194
+ var allLayers = layers.getArray();
195
+ allLayers.map(function (item) {
196
+ var name = item.get('name');
197
+ // 过滤地图及标注
198
+ if (name !== 'baseMap') {
199
+ var feature = item.getSource().getFeaturesInExtent(extent);
200
+ if (feature && feature.length) {
201
+ features = [].concat(_toConsumableArray(features), _toConsumableArray(feature));
202
+ }
203
+ }
204
+ });
205
+ features.length = features.length - 1;
206
+ map.removeInteraction(draw);
207
+ callback && callback(features);
208
+ });
209
+ });
210
+ }
211
+
212
+ // 测距
213
+ function measureLen() {
214
+ map.removeInteraction(draw);
215
+ resetLayer();
216
+ addInteraction('LineString');
217
+ }
218
+
219
+ // 测面
220
+ function measureArea() {
221
+ map.removeInteraction(draw);
222
+ resetLayer();
223
+ addInteraction('Polygon');
224
+ }
225
+
226
+ // 框选
227
+ function frameSelect(callback) {
228
+ map.removeInteraction(draw);
229
+ resetLayer();
230
+ addFrameInteraction(callback);
231
+ }
232
+
233
+ // 清除绘制
234
+ function clear() {
235
+ map.removeInteraction(draw);
236
+ resetLayer();
237
+ }
238
+ return {
239
+ measureArea: measureArea,
240
+ measureLen: measureLen,
241
+ frameSelect: frameSelect,
242
+ clear: clear
243
+ };
244
+ }
245
+ var _default = Measure;
246
+ exports["default"] = _default;
247
+ //# sourceMappingURL=measure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure.js","names":["_ol","require","_layer","_source","_interaction","_Draw","_sphere","_Observable","_style","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","iter","Symbol","iterator","isArray","len","length","i","arr2","source","vector","measureTooltip","measureTooltipElement","draw","sketch","Measure","props","map","sourceProj","getView","getProjection","doubleClickZoom","getInteractions","getArray","find","interaction","DoubleClickZoom","VectorSource","resetLayer","removeLayer","VectorLayer","style","Style","fill","Fill","color","stroke","Stroke","width","image","CircleStyle","radius","addLayer","createMeasureTooltip","removeOverlay","parentNode","removeChild","document","createElement","className","Overlay","element","offset","positioning","stopEvent","insertFirst","addOverlay","formatArea","polygon","area","getArea","projection","output","concat","Math","round","formatLength","line","getLength","addInteraction","type","arguments","undefined","Draw","lineDash","listener","on","evt","removeInteraction","feature","tooltipCoord","coordinate","getGeometry","geom","target","getInteriorPoint","getCoordinates","getLastCoordinate","innerHTML","setPosition","setOffset","unByKey","setTimeout","addFrameInteraction","callback","geometryFunction","createBox","features","extent","getExtent","layers","getLayers","allLayers","item","get","getSource","getFeaturesInExtent","measureLen","measureArea","frameSelect","clear","_default","exports"],"sources":["tools/Utils/measure.js"],"sourcesContent":["import { Overlay } from 'ol';\nimport { Vector as VectorLayer } from 'ol/layer';\nimport { Vector as VectorSource } from 'ol/source';\nimport { Draw, DoubleClickZoom } from 'ol/interaction';\nimport { createBox } from 'ol/interaction/Draw';\nimport { getArea, getLength } from 'ol/sphere';\nimport { unByKey } from 'ol/Observable';\nimport { Circle as CircleStyle, Fill, Stroke, Style } from 'ol/style';\n\nlet source, vector, measureTooltip;\nlet measureTooltipElement, draw, sketch;\nfunction Measure(props) {\n let { map } = props;\n let sourceProj = map.getView().getProjection();\n let doubleClickZoom = map\n .getInteractions()\n .getArray()\n .find(interaction => {\n return interaction instanceof DoubleClickZoom;\n });\n source = new VectorSource();\n function resetLayer() {\n vector && map.removeLayer(vector);\n vector = new VectorLayer({\n source,\n style: new Style({\n fill: new Fill({\n color: 'rgba(255,255,255,0.2)',\n }),\n stroke: new Stroke({\n color: '#ffcc33',\n width: 3,\n }),\n image: new CircleStyle({\n radius: 7,\n fill: new Fill({\n color: '#ffcc33',\n }),\n }),\n }),\n });\n map.addLayer(vector);\n }\n\n // 生成面积或长度tooltip\n function createMeasureTooltip() {\n if (measureTooltip) {\n map.removeOverlay(measureTooltip);\n }\n if (measureTooltipElement) {\n measureTooltipElement.parentNode.removeChild(measureTooltipElement);\n }\n measureTooltipElement = document.createElement('div');\n measureTooltipElement.className = 'ol-tooltip ol-tooltip-measure';\n measureTooltip = new Overlay({\n element: measureTooltipElement,\n offset: [0, -15],\n positioning: 'bottom-center',\n stopEvent: false,\n insertFirst: false,\n });\n map.addOverlay(measureTooltip);\n }\n\n // 获取面积\n function formatArea(polygon) {\n const area = getArea(polygon, { projection: sourceProj });\n let output;\n if (area > 10000) {\n output = `${Math.round((area / 1000000) * 100) / 100} km<sup>2</sup>`;\n } else {\n output = `${Math.round(area * 100) / 100} m<sup>2</sup>`;\n }\n return output;\n }\n\n // 获取长度\n function formatLength(line) {\n const length = getLength(line, { projection: sourceProj });\n let output;\n if (length > 100) {\n output = `${Math.round((length / 1000) * 100) / 100} km`;\n } else {\n output = `${Math.round(length * 100) / 100} m`;\n }\n return output;\n }\n\n // 测量\n function addInteraction(type = 'point') {\n draw = new Draw({\n source,\n type,\n style: new Style({\n fill: new Fill({\n color: 'rgba(255,255,255,0.2)',\n }),\n stroke: new Stroke({\n color: 'rgba(0,0,0,0.5)',\n lineDash: [10, 10],\n width: 2,\n }),\n image: new CircleStyle({\n radius: 5,\n stroke: new Stroke({\n color: 'rgba(0,0,0,0.7)',\n }),\n fill: new Fill({\n color: 'rgba(255,255,255,0.2)',\n }),\n }),\n }),\n });\n map.addInteraction(draw);\n createMeasureTooltip();\n\n let listener;\n draw.on('drawstart', function(evt) {\n map.removeInteraction(doubleClickZoom);\n sketch = evt.feature;\n let tooltipCoord = evt.coordinate;\n listener = sketch.getGeometry().on('change', function(evt) {\n const geom = evt.target;\n let output;\n if (type === 'Polygon') {\n output = formatArea(geom);\n tooltipCoord = geom.getInteriorPoint().getCoordinates();\n } else if (type === 'LineString') {\n output = formatLength(geom);\n tooltipCoord = geom.getLastCoordinate();\n }\n measureTooltipElement.innerHTML = output;\n measureTooltip.setPosition(tooltipCoord);\n });\n });\n draw.on('drawend', function() {\n measureTooltipElement.className = 'ol-tooltip ol-tooltip-static';\n measureTooltip.setOffset([0, -7]);\n sketch = null;\n measureTooltipElement = null;\n unByKey(listener);\n map.removeInteraction(draw);\n setTimeout(() => {\n map.addInteraction(doubleClickZoom);\n });\n });\n }\n\n // 框选 临时添加需优化\n function addFrameInteraction(callback) {\n draw = new Draw({\n source,\n type: 'Circle',\n style: new Style({\n fill: new Fill({\n color: 'rgba(255,255,255,0.2)',\n }),\n stroke: new Stroke({\n color: 'rgba(0,0,0,0.5)',\n lineDash: [10, 10],\n width: 2,\n }),\n image: new CircleStyle({\n radius: 5,\n stroke: new Stroke({\n color: 'rgba(0,0,0,0.7)',\n }),\n fill: new Fill({\n color: 'rgba(255,255,255,0.2)',\n }),\n }),\n }),\n geometryFunction: createBox(),\n });\n map.addInteraction(draw);\n draw.on('drawend', function(evt) {\n let polygon = evt.feature.getGeometry();\n setTimeout(() => {\n let features = [];\n let extent = polygon.getExtent();\n let layers = map.getLayers(); // 获取所有图层\n let allLayers = layers.getArray();\n allLayers.map(item => {\n let name = item.get('name');\n // 过滤地图及标注\n if (name !== 'baseMap') {\n let feature = item.getSource().getFeaturesInExtent(extent);\n if (feature && feature.length) {\n features = [...features, ...feature];\n }\n }\n });\n features.length = features.length - 1;\n map.removeInteraction(draw);\n callback && callback(features);\n });\n });\n }\n\n // 测距\n function measureLen() {\n map.removeInteraction(draw);\n resetLayer();\n addInteraction('LineString');\n }\n\n // 测面\n function measureArea() {\n map.removeInteraction(draw);\n resetLayer();\n addInteraction('Polygon');\n }\n\n // 框选\n function frameSelect(callback) {\n map.removeInteraction(draw);\n resetLayer();\n addFrameInteraction(callback);\n }\n\n // 清除绘制\n function clear() {\n map.removeInteraction(draw);\n resetLayer();\n }\n\n return { measureArea, measureLen, frameSelect, clear };\n}\n\nexport default Measure;\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAAsE,SAAAQ,mBAAAC,GAAA,WAAAC,kBAAA,CAAAD,GAAA,KAAAE,gBAAA,CAAAF,GAAA,KAAAG,2BAAA,CAAAH,GAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAP,CAAA,EAAAQ,KAAA,aAAAL,CAAA,iBAAAH,CAAA,CAAAS,WAAA,EAAAN,CAAA,GAAAH,CAAA,CAAAS,WAAA,CAAAC,IAAA,MAAAP,CAAA,cAAAA,CAAA,mBAAAQ,KAAA,CAAAC,IAAA,CAAAZ,CAAA,OAAAG,CAAA,+DAAAU,IAAA,CAAAV,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAL,iBAAAkB,IAAA,eAAAC,MAAA,oBAAAD,IAAA,CAAAC,MAAA,CAAAC,QAAA,aAAAF,IAAA,+BAAAH,KAAA,CAAAC,IAAA,CAAAE,IAAA;AAAA,SAAAnB,mBAAAD,GAAA,QAAAiB,KAAA,CAAAM,OAAA,CAAAvB,GAAA,UAAAQ,iBAAA,CAAAR,GAAA;AAAA,SAAAQ,kBAAAR,GAAA,EAAAwB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAxB,GAAA,CAAAyB,MAAA,EAAAD,GAAA,GAAAxB,GAAA,CAAAyB,MAAA,WAAAC,CAAA,MAAAC,IAAA,OAAAV,KAAA,CAAAO,GAAA,GAAAE,CAAA,GAAAF,GAAA,EAAAE,CAAA,IAAAC,IAAA,CAAAD,CAAA,IAAA1B,GAAA,CAAA0B,CAAA,UAAAC,IAAA;AAEtE,IAAIC,MAAM,EAAEC,MAAM,EAAEC,cAAc;AAClC,IAAIC,qBAAqB,EAAEC,IAAI,EAAEC,MAAM;AACvC,SAASC,OAAOA,CAACC,KAAK,EAAE;EACtB,IAAMC,GAAG,GAAKD,KAAK,CAAbC,GAAG;EACT,IAAIC,UAAU,GAAGD,GAAG,CAACE,OAAO,CAAC,CAAC,CAACC,aAAa,CAAC,CAAC;EAC9C,IAAIC,eAAe,GAAGJ,GAAG,CACtBK,eAAe,CAAC,CAAC,CACjBC,QAAQ,CAAC,CAAC,CACVC,IAAI,CAAC,UAAAC,WAAW,EAAI;IACnB,OAAOA,WAAW,YAAYC,4BAAe;EAC/C,CAAC,CAAC;EACJjB,MAAM,GAAG,IAAIkB,cAAY,CAAC,CAAC;EAC3B,SAASC,UAAUA,CAAA,EAAG;IACpBlB,MAAM,IAAIO,GAAG,CAACY,WAAW,CAACnB,MAAM,CAAC;IACjCA,MAAM,GAAG,IAAIoB,aAAW,CAAC;MACvBrB,MAAM,EAANA,MAAM;MACNsB,KAAK,EAAE,IAAIC,YAAK,CAAC;QACfC,IAAI,EAAE,IAAIC,WAAI,CAAC;UACbC,KAAK,EAAE;QACT,CAAC,CAAC;QACFC,MAAM,EAAE,IAAIC,aAAM,CAAC;UACjBF,KAAK,EAAE,SAAS;UAChBG,KAAK,EAAE;QACT,CAAC,CAAC;QACFC,KAAK,EAAE,IAAIC,aAAW,CAAC;UACrBC,MAAM,EAAE,CAAC;UACTR,IAAI,EAAE,IAAIC,WAAI,CAAC;YACbC,KAAK,EAAE;UACT,CAAC;QACH,CAAC;MACH,CAAC;IACH,CAAC,CAAC;IACFlB,GAAG,CAACyB,QAAQ,CAAChC,MAAM,CAAC;EACtB;;EAEA;EACA,SAASiC,oBAAoBA,CAAA,EAAG;IAC9B,IAAIhC,cAAc,EAAE;MAClBM,GAAG,CAAC2B,aAAa,CAACjC,cAAc,CAAC;IACnC;IACA,IAAIC,qBAAqB,EAAE;MACzBA,qBAAqB,CAACiC,UAAU,CAACC,WAAW,CAAClC,qBAAqB,CAAC;IACrE;IACAA,qBAAqB,GAAGmC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IACrDpC,qBAAqB,CAACqC,SAAS,GAAG,+BAA+B;IACjEtC,cAAc,GAAG,IAAIuC,WAAO,CAAC;MAC3BC,OAAO,EAAEvC,qBAAqB;MAC9BwC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MAChBC,WAAW,EAAE,eAAe;MAC5BC,SAAS,EAAE,KAAK;MAChBC,WAAW,EAAE;IACf,CAAC,CAAC;IACFtC,GAAG,CAACuC,UAAU,CAAC7C,cAAc,CAAC;EAChC;;EAEA;EACA,SAAS8C,UAAUA,CAACC,OAAO,EAAE;IAC3B,IAAMC,IAAI,GAAG,IAAAC,eAAO,EAACF,OAAO,EAAE;MAAEG,UAAU,EAAE3C;IAAW,CAAC,CAAC;IACzD,IAAI4C,MAAM;IACV,IAAIH,IAAI,GAAG,KAAK,EAAE;MAChBG,MAAM,MAAAC,MAAA,CAAMC,IAAI,CAACC,KAAK,CAAEN,IAAI,GAAG,OAAO,GAAI,GAAG,CAAC,GAAG,GAAG,oBAAiB;IACvE,CAAC,MAAM;MACLG,MAAM,MAAAC,MAAA,CAAMC,IAAI,CAACC,KAAK,CAACN,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,mBAAgB;IAC1D;IACA,OAAOG,MAAM;EACf;;EAEA;EACA,SAASI,YAAYA,CAACC,IAAI,EAAE;IAC1B,IAAM7D,MAAM,GAAG,IAAA8D,iBAAS,EAACD,IAAI,EAAE;MAAEN,UAAU,EAAE3C;IAAW,CAAC,CAAC;IAC1D,IAAI4C,MAAM;IACV,IAAIxD,MAAM,GAAG,GAAG,EAAE;MAChBwD,MAAM,MAAAC,MAAA,CAAMC,IAAI,CAACC,KAAK,CAAE3D,MAAM,GAAG,IAAI,GAAI,GAAG,CAAC,GAAG,GAAG,QAAK;IAC1D,CAAC,MAAM;MACLwD,MAAM,MAAAC,MAAA,CAAMC,IAAI,CAACC,KAAK,CAAC3D,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,OAAI;IAChD;IACA,OAAOwD,MAAM;EACf;;EAEA;EACA,SAASO,cAAcA,CAAA,EAAiB;IAAA,IAAhBC,IAAI,GAAAC,SAAA,CAAAjE,MAAA,QAAAiE,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,OAAO;IACpC1D,IAAI,GAAG,IAAI4D,iBAAI,CAAC;MACdhE,MAAM,EAANA,MAAM;MACN6D,IAAI,EAAJA,IAAI;MACJvC,KAAK,EAAE,IAAIC,YAAK,CAAC;QACfC,IAAI,EAAE,IAAIC,WAAI,CAAC;UACbC,KAAK,EAAE;QACT,CAAC,CAAC;QACFC,MAAM,EAAE,IAAIC,aAAM,CAAC;UACjBF,KAAK,EAAE,iBAAiB;UACxBuC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;UAClBpC,KAAK,EAAE;QACT,CAAC,CAAC;QACFC,KAAK,EAAE,IAAIC,aAAW,CAAC;UACrBC,MAAM,EAAE,CAAC;UACTL,MAAM,EAAE,IAAIC,aAAM,CAAC;YACjBF,KAAK,EAAE;UACT,CAAC,CAAC;UACFF,IAAI,EAAE,IAAIC,WAAI,CAAC;YACbC,KAAK,EAAE;UACT,CAAC;QACH,CAAC;MACH,CAAC;IACH,CAAC,CAAC;IACFlB,GAAG,CAACoD,cAAc,CAACxD,IAAI,CAAC;IACxB8B,oBAAoB,CAAC,CAAC;IAEtB,IAAIgC,QAAQ;IACZ9D,IAAI,CAAC+D,EAAE,CAAC,WAAW,EAAE,UAASC,GAAG,EAAE;MACjC5D,GAAG,CAAC6D,iBAAiB,CAACzD,eAAe,CAAC;MACtCP,MAAM,GAAG+D,GAAG,CAACE,OAAO;MACpB,IAAIC,YAAY,GAAGH,GAAG,CAACI,UAAU;MACjCN,QAAQ,GAAG7D,MAAM,CAACoE,WAAW,CAAC,CAAC,CAACN,EAAE,CAAC,QAAQ,EAAE,UAASC,GAAG,EAAE;QACzD,IAAMM,IAAI,GAAGN,GAAG,CAACO,MAAM;QACvB,IAAItB,MAAM;QACV,IAAIQ,IAAI,KAAK,SAAS,EAAE;UACtBR,MAAM,GAAGL,UAAU,CAAC0B,IAAI,CAAC;UACzBH,YAAY,GAAGG,IAAI,CAACE,gBAAgB,CAAC,CAAC,CAACC,cAAc,CAAC,CAAC;QACzD,CAAC,MAAM,IAAIhB,IAAI,KAAK,YAAY,EAAE;UAChCR,MAAM,GAAGI,YAAY,CAACiB,IAAI,CAAC;UAC3BH,YAAY,GAAGG,IAAI,CAACI,iBAAiB,CAAC,CAAC;QACzC;QACA3E,qBAAqB,CAAC4E,SAAS,GAAG1B,MAAM;QACxCnD,cAAc,CAAC8E,WAAW,CAACT,YAAY,CAAC;MAC1C,CAAC,CAAC;IACJ,CAAC,CAAC;IACFnE,IAAI,CAAC+D,EAAE,CAAC,SAAS,EAAE,YAAW;MAC5BhE,qBAAqB,CAACqC,SAAS,GAAG,8BAA8B;MAChEtC,cAAc,CAAC+E,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACjC5E,MAAM,GAAG,IAAI;MACbF,qBAAqB,GAAG,IAAI;MAC5B,IAAA+E,mBAAO,EAAChB,QAAQ,CAAC;MACjB1D,GAAG,CAAC6D,iBAAiB,CAACjE,IAAI,CAAC;MAC3B+E,UAAU,CAAC,YAAM;QACf3E,GAAG,CAACoD,cAAc,CAAChD,eAAe,CAAC;MACrC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,SAASwE,mBAAmBA,CAACC,QAAQ,EAAE;IACrCjF,IAAI,GAAG,IAAI4D,iBAAI,CAAC;MACdhE,MAAM,EAANA,MAAM;MACN6D,IAAI,EAAE,QAAQ;MACdvC,KAAK,EAAE,IAAIC,YAAK,CAAC;QACfC,IAAI,EAAE,IAAIC,WAAI,CAAC;UACbC,KAAK,EAAE;QACT,CAAC,CAAC;QACFC,MAAM,EAAE,IAAIC,aAAM,CAAC;UACjBF,KAAK,EAAE,iBAAiB;UACxBuC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;UAClBpC,KAAK,EAAE;QACT,CAAC,CAAC;QACFC,KAAK,EAAE,IAAIC,aAAW,CAAC;UACrBC,MAAM,EAAE,CAAC;UACTL,MAAM,EAAE,IAAIC,aAAM,CAAC;YACjBF,KAAK,EAAE;UACT,CAAC,CAAC;UACFF,IAAI,EAAE,IAAIC,WAAI,CAAC;YACbC,KAAK,EAAE;UACT,CAAC;QACH,CAAC;MACH,CAAC,CAAC;MACF4D,gBAAgB,EAAE,IAAAC,eAAS,EAAC;IAC9B,CAAC,CAAC;IACF/E,GAAG,CAACoD,cAAc,CAACxD,IAAI,CAAC;IACxBA,IAAI,CAAC+D,EAAE,CAAC,SAAS,EAAE,UAASC,GAAG,EAAE;MAC/B,IAAInB,OAAO,GAAGmB,GAAG,CAACE,OAAO,CAACG,WAAW,CAAC,CAAC;MACvCU,UAAU,CAAC,YAAM;QACf,IAAIK,QAAQ,GAAG,EAAE;QACjB,IAAIC,MAAM,GAAGxC,OAAO,CAACyC,SAAS,CAAC,CAAC;QAChC,IAAIC,MAAM,GAAGnF,GAAG,CAACoF,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAIC,SAAS,GAAGF,MAAM,CAAC7E,QAAQ,CAAC,CAAC;QACjC+E,SAAS,CAACrF,GAAG,CAAC,UAAAsF,IAAI,EAAI;UACpB,IAAI1G,IAAI,GAAG0G,IAAI,CAACC,GAAG,CAAC,MAAM,CAAC;UAC3B;UACA,IAAI3G,IAAI,KAAK,SAAS,EAAE;YACtB,IAAIkF,OAAO,GAAGwB,IAAI,CAACE,SAAS,CAAC,CAAC,CAACC,mBAAmB,CAACR,MAAM,CAAC;YAC1D,IAAInB,OAAO,IAAIA,OAAO,CAACzE,MAAM,EAAE;cAC7B2F,QAAQ,MAAAlC,MAAA,CAAAnF,kBAAA,CAAOqH,QAAQ,GAAArH,kBAAA,CAAKmG,OAAO,EAAC;YACtC;UACF;QACF,CAAC,CAAC;QACFkB,QAAQ,CAAC3F,MAAM,GAAG2F,QAAQ,CAAC3F,MAAM,GAAG,CAAC;QACrCW,GAAG,CAAC6D,iBAAiB,CAACjE,IAAI,CAAC;QAC3BiF,QAAQ,IAAIA,QAAQ,CAACG,QAAQ,CAAC;MAChC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,SAASU,UAAUA,CAAA,EAAG;IACpB1F,GAAG,CAAC6D,iBAAiB,CAACjE,IAAI,CAAC;IAC3Be,UAAU,CAAC,CAAC;IACZyC,cAAc,CAAC,YAAY,CAAC;EAC9B;;EAEA;EACA,SAASuC,WAAWA,CAAA,EAAG;IACrB3F,GAAG,CAAC6D,iBAAiB,CAACjE,IAAI,CAAC;IAC3Be,UAAU,CAAC,CAAC;IACZyC,cAAc,CAAC,SAAS,CAAC;EAC3B;;EAEA;EACA,SAASwC,WAAWA,CAACf,QAAQ,EAAE;IAC7B7E,GAAG,CAAC6D,iBAAiB,CAACjE,IAAI,CAAC;IAC3Be,UAAU,CAAC,CAAC;IACZiE,mBAAmB,CAACC,QAAQ,CAAC;EAC/B;;EAEA;EACA,SAASgB,KAAKA,CAAA,EAAG;IACf7F,GAAG,CAAC6D,iBAAiB,CAACjE,IAAI,CAAC;IAC3Be,UAAU,CAAC,CAAC;EACd;EAEA,OAAO;IAAEgF,WAAW,EAAXA,WAAW;IAAED,UAAU,EAAVA,UAAU;IAAEE,WAAW,EAAXA,WAAW;IAAEC,KAAK,EAALA;EAAM,CAAC;AACxD;AAAC,IAAAC,QAAA,GAEchG,OAAO;AAAAiG,OAAA,cAAAD,QAAA"}