@vtx/ol-map 2.0.0-beta.17 → 2.0.0-beta.19

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 (259) hide show
  1. package/README.md +205 -205
  2. package/lib/_util/EventEmitter.js.map +1 -1
  3. package/lib/_util/StyleCache.js.map +1 -1
  4. package/lib/_util/encryptParams.js +10 -10
  5. package/lib/_util/encryptParams.js.map +1 -1
  6. package/lib/_util/filterSpecialCharacters.js +6 -6
  7. package/lib/_util/filterSpecialCharacters.js.map +1 -1
  8. package/lib/_util/getComponentProps.js.map +1 -1
  9. package/lib/_util/getCookie.js +4 -4
  10. package/lib/_util/getCookie.js.map +1 -1
  11. package/lib/_util/getDefaultMapInfo.js.map +1 -1
  12. package/lib/_util/getSystemInfo.js.map +1 -1
  13. package/lib/_util/getToken.js.map +1 -1
  14. package/lib/_util/http.js +18 -18
  15. package/lib/_util/http.js.map +1 -1
  16. package/lib/_util/isFunction.js.map +1 -1
  17. package/lib/_util/isObject.js.map +1 -1
  18. package/lib/_util/layer.js +21 -21
  19. package/lib/_util/layer.js.map +1 -1
  20. package/lib/_util/mapTool.js +35 -35
  21. package/lib/_util/mapTool.js.map +1 -1
  22. package/lib/_util/projection.js +8 -8
  23. package/lib/_util/projection.js.map +1 -1
  24. package/lib/_util/projzh/datum/bd-09.js.map +1 -1
  25. package/lib/_util/projzh/datum/gcj-02.js.map +1 -1
  26. package/lib/_util/projzh/datum/index.js.map +1 -1
  27. package/lib/_util/projzh/index.js.map +1 -1
  28. package/lib/_util/projzh/projection/baidu-mercator.js.map +1 -1
  29. package/lib/_util/projzh/projection/index.js.map +1 -1
  30. package/lib/_util/projzh/projection/spherical-mercator.js.map +1 -1
  31. package/lib/_util/projzh/util.js.map +1 -1
  32. package/lib/_util/search.js.map +1 -1
  33. package/lib/_util/setCookie.js +4 -4
  34. package/lib/_util/setCookie.js.map +1 -1
  35. package/lib/_util/stringToFun.js.map +1 -1
  36. package/lib/_util/transform.js.map +1 -1
  37. package/lib/_util/useColSize.js.map +1 -1
  38. package/lib/_util/useInterval.js.map +1 -1
  39. package/lib/_util/useSet.js.map +1 -1
  40. package/lib/analysis-layer/index.js +20 -20
  41. package/lib/analysis-layer/index.js.map +1 -1
  42. package/lib/arrow-flow-layer/ArrowFlowLayer.js +6 -6
  43. package/lib/arrow-flow-layer/ArrowFlowLayer.js.map +1 -1
  44. package/lib/arrow-flow-layer/index.js.map +1 -1
  45. package/lib/arrow-flow-layer/sampleArrowsAlongLine.js +16 -16
  46. package/lib/arrow-flow-layer/sampleArrowsAlongLine.js.map +1 -1
  47. package/lib/arrow-flow-layer/style/css.js.map +1 -1
  48. package/lib/arrow-flow-layer/style/index.js.map +1 -1
  49. package/lib/buffer-draw/BufferDraw.js.map +1 -1
  50. package/lib/buffer-draw/index.js.map +1 -1
  51. package/lib/config.js.map +1 -1
  52. package/lib/convertCamelToCSS.js.map +1 -1
  53. package/lib/dom/Dom.js.map +1 -1
  54. package/lib/dom/index.js.map +1 -1
  55. package/lib/dom-layer/index.js.map +1 -1
  56. package/lib/dom-layer/style/css.js.map +1 -1
  57. package/lib/dom-layer/style/index.js.map +1 -1
  58. package/lib/dom-layer/style/index.less +3 -3
  59. package/lib/events/index.js.map +1 -1
  60. package/lib/feature-draw/FeatureDraw.js +4 -4
  61. package/lib/feature-draw/FeatureDraw.js.map +1 -1
  62. package/lib/feature-draw/index.js.map +1 -1
  63. package/lib/feature-layer/FeatureLayer.js.map +1 -1
  64. package/lib/feature-layer/MyCluster.js +7 -7
  65. package/lib/feature-layer/MyCluster.js.map +1 -1
  66. package/lib/feature-layer/createFeatureCollection.js +11 -11
  67. package/lib/feature-layer/createFeatureCollection.js.map +1 -1
  68. package/lib/feature-layer/index.js.map +1 -1
  69. package/lib/feature-layer/style/css.js.map +1 -1
  70. package/lib/feature-layer/style/index.js.map +1 -1
  71. package/lib/flow-line-layer/FlowLineLayer.js.map +1 -1
  72. package/lib/flow-line-layer/index.js.map +1 -1
  73. package/lib/flow-line-layer/style/css.js.map +1 -1
  74. package/lib/flow-line-layer/style/index.js.map +1 -1
  75. package/lib/fly-line-layer/FlyLineLayer.js.map +1 -1
  76. package/lib/fly-line-layer/index.js.map +1 -1
  77. package/lib/fly-line-layer/style/css.js.map +1 -1
  78. package/lib/fly-line-layer/style/index.js.map +1 -1
  79. package/lib/group-layer/GroupLayer.js.map +1 -1
  80. package/lib/group-layer/index.js.map +1 -1
  81. package/lib/group-layer/style/css.js.map +1 -1
  82. package/lib/group-layer/style/index.js.map +1 -1
  83. package/lib/heatmap-layer/HeatmapLayer.js.map +1 -1
  84. package/lib/heatmap-layer/index.js.map +1 -1
  85. package/lib/heatmap-layer/style/css.js.map +1 -1
  86. package/lib/heatmap-layer/style/index.js.map +1 -1
  87. package/lib/high-layer/HighLayer.js +2 -2
  88. package/lib/high-layer/HighLayer.js.map +1 -1
  89. package/lib/high-layer/index.js.map +1 -1
  90. package/lib/image-layer/ImageLayer.js.map +1 -1
  91. package/lib/image-layer/ImageTileLayer.js.map +1 -1
  92. package/lib/image-layer/index.js.map +1 -1
  93. package/lib/image-layer/style/css.js.map +1 -1
  94. package/lib/image-layer/style/index.js.map +1 -1
  95. package/lib/index.js.map +1 -1
  96. package/lib/legend/index.js.map +1 -1
  97. package/lib/legend/style/css.js.map +1 -1
  98. package/lib/legend/style/index.js.map +1 -1
  99. package/lib/legend/style/index.less +100 -100
  100. package/lib/map/Analysis.js.map +1 -1
  101. package/lib/map/Layers.js.map +1 -1
  102. package/lib/map/Popup.js.map +1 -1
  103. package/lib/map/ScaleDenominator.js.map +1 -1
  104. package/lib/map/Test.js.map +1 -1
  105. package/lib/map/defaultTextEnum.js.map +1 -1
  106. package/lib/map/defaultTextEnumEN.js +223 -0
  107. package/lib/map/defaultTextEnumEN.js.map +1 -0
  108. package/lib/map/getBaseLayers/imagery/amap/AmapImageryProvider.js.map +1 -1
  109. package/lib/map/getBaseLayers/imagery/baidu/BaiduImageryProvider.js.map +1 -1
  110. package/lib/map/getBaseLayers/imagery/geoq/GeoQImageryProvider.js.map +1 -1
  111. package/lib/map/getBaseLayers/imagery/tdt/TdtImageryProvider.js.map +1 -1
  112. package/lib/map/getBaseLayers/index.js.map +1 -1
  113. package/lib/map/index.js +5 -2
  114. package/lib/map/index.js.map +1 -1
  115. package/lib/map/style/css.js.map +1 -1
  116. package/lib/map/style/index.js.map +1 -1
  117. package/lib/map/style/index.less +152 -152
  118. package/lib/map-icon/svg/index.js.map +1 -1
  119. package/lib/marker/Marker.js.map +1 -1
  120. package/lib/marker/index.js.map +1 -1
  121. package/lib/path-line-layer/PathLineLayer.js.map +1 -1
  122. package/lib/path-line-layer/getPathLineStyles.js.map +1 -1
  123. package/lib/path-line-layer/index.js.map +1 -1
  124. package/lib/path-line-layer/style/css.js.map +1 -1
  125. package/lib/path-line-layer/style/index.js.map +1 -1
  126. package/lib/path-play-back/PathPlayBack.js.map +1 -1
  127. package/lib/path-play-back/index.js.map +1 -1
  128. package/lib/poi-search/Location.js.map +1 -1
  129. package/lib/poi-search/PoiList.js.map +1 -1
  130. package/lib/poi-search/Search.js.map +1 -1
  131. package/lib/poi-search/index.js.map +1 -1
  132. package/lib/poi-search/style/css.js.map +1 -1
  133. package/lib/poi-search/style/index.js.map +1 -1
  134. package/lib/poi-search/style/index.less +97 -97
  135. package/lib/point/Point.js.map +1 -1
  136. package/lib/point/index.js.map +1 -1
  137. package/lib/polygon/Polygon.js.map +1 -1
  138. package/lib/polygon/index.js.map +1 -1
  139. package/lib/polyline/Polyline.js.map +1 -1
  140. package/lib/polyline/index.js.map +1 -1
  141. package/lib/popup/index.js.map +1 -1
  142. package/lib/popup/style/css.js.map +1 -1
  143. package/lib/popup/style/index.js.map +1 -1
  144. package/lib/popup/style/index.less +129 -129
  145. package/lib/provider/index.js.map +1 -1
  146. package/lib/renderer/Fill.js.map +1 -1
  147. package/lib/renderer/Stroke.js.map +1 -1
  148. package/lib/renderer/index.js.map +1 -1
  149. package/lib/renderer/style/css.js.map +1 -1
  150. package/lib/renderer/style/index.js.map +1 -1
  151. package/lib/renderer/transformRgb.js.map +1 -1
  152. package/lib/search-map/VtxModal.js.map +1 -1
  153. package/lib/search-map/index.js +6 -3
  154. package/lib/search-map/index.js.map +1 -1
  155. package/lib/search-map/style/css.js.map +1 -1
  156. package/lib/search-map/style/index.js.map +1 -1
  157. package/lib/search-map/style/index.less +96 -96
  158. package/lib/search-map/style/modal.less +65 -65
  159. package/lib/style/index.less +2 -2
  160. package/lib/style/themes/compact.less +1 -1
  161. package/lib/style/themes/dark.less +7 -7
  162. package/lib/style/themes/default.less +7 -7
  163. package/lib/style/themes/index.less +1 -1
  164. package/lib/style/themes/variable.less +5 -5
  165. package/lib/tile-layer/TileLayer.js.map +1 -1
  166. package/lib/tile-layer/index.js.map +1 -1
  167. package/lib/tile-layer/style/css.js.map +1 -1
  168. package/lib/tile-layer/style/index.js.map +1 -1
  169. package/lib/tools/Layer/LayerService.js.map +1 -1
  170. package/lib/tools/Layer/LayersCheckService.js.map +1 -1
  171. package/lib/tools/Layer/index.js +2 -2
  172. package/lib/tools/Layer/index.js.map +1 -1
  173. package/lib/tools/Layer/index.less +43 -43
  174. package/lib/tools/Search/index.js +5 -5
  175. package/lib/tools/Search/index.js.map +1 -1
  176. package/lib/tools/Toolbox/BoxSelect/index.js +2 -2
  177. package/lib/tools/Toolbox/BoxSelect/index.js.map +1 -1
  178. package/lib/tools/Toolbox/CircleSelect/index.js +2 -2
  179. package/lib/tools/Toolbox/CircleSelect/index.js.map +1 -1
  180. package/lib/tools/Toolbox/EagleEye/index.js.map +1 -1
  181. package/lib/tools/Toolbox/MapBookmark/Bookmark.js +1 -1
  182. package/lib/tools/Toolbox/MapBookmark/Bookmark.js.map +1 -1
  183. package/lib/tools/Toolbox/MapBookmark/index.js +2 -2
  184. package/lib/tools/Toolbox/MapBookmark/index.js.map +1 -1
  185. package/lib/tools/Toolbox/MapBookmark/index.less +20 -20
  186. package/lib/tools/Toolbox/MapDownload/index.js.map +1 -1
  187. package/lib/tools/Toolbox/MapPrint/index.js +6 -6
  188. package/lib/tools/Toolbox/MapPrint/index.js.map +1 -1
  189. package/lib/tools/Toolbox/MapPrint/index.less +73 -73
  190. package/lib/tools/Toolbox/MapSheetPrint/index.js +24 -5
  191. package/lib/tools/Toolbox/MapSheetPrint/index.js.map +1 -1
  192. package/lib/tools/Toolbox/MapSheetPrint/index.less +34 -34
  193. package/lib/tools/Toolbox/Measure/Area/index.js.map +1 -1
  194. package/lib/tools/Toolbox/Measure/Distance/index.js.map +1 -1
  195. package/lib/tools/Toolbox/Measure/Measure.js.map +1 -1
  196. package/lib/tools/Toolbox/Measure/index.js.map +1 -1
  197. package/lib/tools/Toolbox/PolygonSelect/index.js +2 -2
  198. package/lib/tools/Toolbox/PolygonSelect/index.js.map +1 -1
  199. package/lib/tools/Toolbox/ScaleLine/index.js.map +1 -1
  200. package/lib/tools/Toolbox/SelectTools/index.js +11 -11
  201. package/lib/tools/Toolbox/SelectTools/index.js.map +1 -1
  202. package/lib/tools/Toolbox/SelectTools/index.less +87 -87
  203. package/lib/tools/Toolbox/SpaceQuery/index.js.map +1 -1
  204. package/lib/tools/Toolbox/SpaceQuery/index.less +16 -16
  205. package/lib/tools/Toolbox/ZoomInput/index.js.map +1 -1
  206. package/lib/tools/Toolbox/ZoomInput/index.less +5 -5
  207. package/lib/tools/Toolbox/draftingPrint/index.js +4 -3
  208. package/lib/tools/Toolbox/draftingPrint/index.js.map +1 -1
  209. package/lib/tools/Toolbox/draftingPrint/index.less +34 -34
  210. package/lib/tools/Toolbox/index.js.map +1 -1
  211. package/lib/tools/Toolbox/index.less +2 -2
  212. package/lib/tools/Utils/CreateOverlay.js +2 -2
  213. package/lib/tools/Utils/CreateOverlay.js.map +1 -1
  214. package/lib/tools/Utils/Draw.js +4 -4
  215. package/lib/tools/Utils/Draw.js.map +1 -1
  216. package/lib/tools/Utils/HighLayer.js +2 -2
  217. package/lib/tools/Utils/HighLayer.js.map +1 -1
  218. package/lib/tools/Utils/measure.js.map +1 -1
  219. package/lib/tools/Utils/utils.js +17 -17
  220. package/lib/tools/Utils/utils.js.map +1 -1
  221. package/lib/tools/View/index.js.map +1 -1
  222. package/lib/tools/View/index.less +28 -28
  223. package/lib/tools/analysis-tool/index.js.map +1 -1
  224. package/lib/tools/base-map-switch/index.js.map +1 -1
  225. package/lib/tools/components/Chart/index.js +88 -88
  226. package/lib/tools/components/Chart/index.js.map +1 -1
  227. package/lib/tools/components/Icon/index.js.map +1 -1
  228. package/lib/tools/components/Info/index.js.map +1 -1
  229. package/lib/tools/components/Info/index.less +26 -26
  230. package/lib/tools/components/ItemWrap/index.js.map +1 -1
  231. package/lib/tools/components/ItemWrap/index.less +41 -41
  232. package/lib/tools/components/Modal/index.js +2 -2
  233. package/lib/tools/components/Modal/index.js.map +1 -1
  234. package/lib/tools/components/Modal/index.less +33 -33
  235. package/lib/tools/components/MyTabs/index.js.map +1 -1
  236. package/lib/tools/components/RequiredLabel/index.js.map +1 -1
  237. package/lib/tools/components/RequiredLabel/index.less +5 -5
  238. package/lib/tools/components/Select/index.js.map +1 -1
  239. package/lib/tools/components/Table/index.js +2 -2
  240. package/lib/tools/components/Table/index.js.map +1 -1
  241. package/lib/tools/components/Table/index.less +13 -13
  242. package/lib/tools/components/ToolItem/index.js.map +1 -1
  243. package/lib/tools/components/ToolItem/index.less +27 -27
  244. package/lib/tools/components/ToolsSelect/index.js.map +1 -1
  245. package/lib/tools/components/ToolsSelect/index.less +10 -10
  246. package/lib/tools/full-screen/index.js.map +1 -1
  247. package/lib/tools/index.js.map +1 -1
  248. package/lib/tools/layer-control/index.js.map +1 -1
  249. package/lib/tools/refresh/index.js.map +1 -1
  250. package/lib/tools/style/css.js.map +1 -1
  251. package/lib/tools/style/index.js.map +1 -1
  252. package/lib/tools/style/index.less +154 -154
  253. package/lib/tools-item/index.js.map +1 -1
  254. package/lib/use-props/index.js.map +1 -1
  255. package/lib/wms-layer/WmsLayer.js.map +1 -1
  256. package/lib/wms-layer/index.js.map +1 -1
  257. package/lib/wms-layer/style/css.js.map +1 -1
  258. package/lib/wms-layer/style/index.js.map +1 -1
  259. package/package.json +138 -138
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_antd","_Modal","_interopRequireDefault","_jspdf","_html2canvas","_interaction","_Vector","_Tile","_Image","_Vector2","_Draw","_Draw2","_useProps2","_olMap","_FeatureLayer","_ImageLayer","_lock","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_regenerator","toStringTag","c","prototype","Generator","create","_regeneratorDefine2","p","y","G","v","d","bind","l","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","ownKeys","keys","getOwnPropertySymbols","filter","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","constructor","name","test","pageSizeOptions","pageSizeMap","A4","width","height","A3","A2","A1","A0","DIMENSION_DPI","EXPORT_DPI","PREVIEW_HEIGHT","PREVIEW_WIDTH","pxToMm","px","dpi","undefined","mmToPx","mm","isValidExtent","extent","every","item","isFinite","calcMetricsFromZoom","view","zoom","resolution","getResolutionForZoom","getResolution","geoWidth","geoHeight","pixelWidth","pixelHeight","widthMm","heightMm","ratio","calcSplitPlan","_ref","totalWidthMm","totalHeightMm","pageSize","_ref$overlapMargin","overlapMargin","paper","safeOverlap","Math","max","stepX","stepY","cols","ceil","rows","sheets","row","col","xMm","yMm","min","id","concat","index","isPartial","paperWidthMm","paperHeightMm","totalSheets","buildSheetExtent","sheet","plan","totalExtent","_totalExtent","minX","minY","maxX","maxY","xScale","yScale","left","right","top","bottom","buildPreviewFrameExtent","_totalExtent2","frameWidthMm","frameHeightMm","getPreviewFrameSizeMm","getExtentCenter","cloneVectorSource","source","getFeatures","VectorSource","features","map","feature","clone","cloneLayer","layer","_layer$getOpacity","_layer$getVisible","_layer$getZIndex","_layer$getExtent","common","opacity","getOpacity","visible","getVisible","zIndex","getZIndex","getExtent","VectorLayer","clonedLayer","getSource","style","getStyle","TileLayer","ImageLayer","clearClonedLayers","mapInstance","getLayers","getArray","removeLayer","syncBusinessLayers","sourceMap","targetMap","excludeLayer","_layer$getVisible2","addLayer","waitNextFrame","requestAnimationFrame","waitMapRender","_mapInstance$renderSy","finish","once","setTimeout","renderSync","waitLayerSourcesSettled","timeout","_mapInstance$renderSy3","disposers","pending","idleTimer","clearTimeout","dispose","scheduleFinish","delay","onStart","onEnd","target","type","handler","on","_target$un","un","_layer$getSource","BusinessImageLayer","getImage","_mapInstance$getView","_mapInstance$getSize","_view$calculateExtent","_view$getResolution","_view$getProjection","_image$getState","getView","size","getSize","calculateExtent","projection","getProjection","image","imageState","getState","_image$on","handleImageChange","_image$getState2","_image$un","_mapInstance$renderSy2","nextState","_image$un2","load","parseCanvasTransform","canvas","transformText","transform","window","getComputedStyle","match","split","trim","snapdomPromise","dynamicImport","specifier","Function","getSnapdom","_ref2","_callee","_context","mod","snapdom","captureDomCanvas","_ref3","_callee2","dom","ctx","layerCanvases","snapshot","_context2","document","createElement","round","getContext","fillStyle","fillRect","querySelectorAll","layerCanvas","parentStyle","parentElement","canvasStyle","backgroundColor","save","globalAlpha","setTransform","drawImage","restore","toCanvas","scale","_x","_x2","_x3","loadImage","src","reject","img","Image","onload","onerror","createPdfFromImages","_ref4","images","pageWidthMm","pageHeightMm","title","orientation","pdf","jsPDF","unit","format","compress","addPage","addImage","url","decodeURIComponent","_default","props","_splitPlan$sheets2","onClose","_useProps","useProps","TextEnum","_Form$useForm","Form","useForm","_Form$useForm2","form","_useState","useState","_useState2","previewVisible","setPreviewVisible","_useState3","_useState4","sheetVisible","setSheetVisible","_useState5","_useState6","formVal","setFormVal","_useState7","_useState8","pageSizeValue","setPageSizeValue","_useState9","_useState0","overlapMarginValue","setOverlapMarginValue","_useState1","_useState10","metrics","setMetrics","_useState11","_useState12","setTotalWidthMm","_useState13","_useState14","setTotalHeightMm","_useState15","_useState16","previewReady","setPreviewReady","_useState17","generatingPreviewText","_useState18","previewLoadingText","setPreviewLoadingText","_useState19","_useState20","previewImage","setPreviewImage","_useState21","_useState22","sheetImages","setSheetImages","_useState23","_useState24","selectedSheetIds","setSelectedSheetIds","_useState25","_useState26","generating","setGenerating","drawTool","useRef","boxExtentRef","boxLayerRef","exportMapRef","previewMapRef","exportStageRef","previewMasterCanvasRef","previewMasterFramePixelsRef","renderLayersSyncedRef","previewRenderSeqRef","previewRenderTimerRef","_useState27","_useState28","exportSize","setExportSize","useEffect","setFieldsValue","range","boxSource","boxLayer","drawStyle","tool","Draw","geometryFunction","createBox","current","setActive","clear","showTip","clickAgainToEnd","event","getGeometry","leftClickToStart","fit","duration","addInteraction","removeInteraction","hideTip","splitPlan","useMemo","previewFrameExtent","mapProjection","_map$getView","_map$getView$getProje","_map$getView$getProje2","getCode","error","inheritedMapProps","baseLayerParams","mapStyle","baseMapStyle","dark","tk","previewScale","scaleX","scaleY","selectedMapPixels","previewFramePixels","frameSizeMm","selectedRangeCoverage","widthPercent","heightPercent","handleRangeChange","_drawTool$current","_boxLayerRef$current","handlePageSizeChange","nextPageSize","setFieldValue","handleExportMapCreated","exportMap","handlePreviewMapCreated","previewMap","ensureRenderMapLayers","syncPreviewMapLayers","handleSubmit","values","_values$overlapMargin","_map$getView$getZoom","_map$getView2","getFieldValue","console","log","getZoom","nextMetrics","rangeMode","printZoom","toFixed","handleWidthChange","nextWidth","handleHeightChange","nextHeight","renderSheetImage","_ref5","_callee3","previewMasterCanvas","previewMasterFramePixels","frameTotalWidthMm","frameTotalHeightMm","sourceX","sourceY","sourceWidth","sourceHeight","pageWidthPx","pageHeightPx","pageCanvas","_context3","sheetId","sheetIndex","sheetWidthMm","sheetHeightMm","toDataURL","_x4","renderPreviewImage","_ref6","_callee4","seq","_exportMapRef$current","_exportMapRef$current2","widthScale","heightScale","captureWidthPx","captureHeightPx","targetResolution","targetCenter","_previewMapRef$curren","_previewMapRef$curren2","previewView","sourceCanvas","previewCanvas","masterScaleX","masterScaleY","masterCtx","_context4","syncingLayersText","updateSize","setCenter","setResolution","waitingBusinessLayersText","_x5","handleGenerateSheets","_ref7","_callee5","_splitPlan$sheets","_iterator","_step","_t","_context5","handleExportPdf","selectedImages","includes","toolMapSheetPrint","labelCol","span","wrapperCol","onFinish","Item","label","mapPrintTitle","rules","required","message","pleaseInput","Input","placeholder","printRange","pleaseSelect","Select","allowClear","onChange","options","currentView","manualBoxSelect","marginLeft","marginBottom","color","fontSize","fontWeight","sheetPrintParams","display","alignItems","gap","pleaseInputInteger","flex","InputNumber","precision","changeOnBlur","step","whiteSpace","offset","Button","htmlType","executeSheetPrint","Modal","open","preview","onCancel","onOk","okText","ok","cancelText","cancel","getViewport","clientWidth","centered","wrapClassName","confirmLoading","destroyOnHidden","widthText","lockImg","alt","fixedRatioText","objectFit","heightText","colText","rowText","totalText","sheetText","position","overflow","background","border","flexDirection","justifyContent","pointerEvents","Spin","transformOrigin","Map","hidePopupTable","createdMap","boxSizing","key","padding","sheetResultText","printText","Checkbox","indeterminate","checked","selectAllText","gridTemplateColumns","maxHeight","borderRadius","sheetIndexPrefix","ref"],"sources":["tools/Toolbox/MapSheetPrint/index.js"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Modal, Button, Select, Form, Input, InputNumber, Checkbox, Spin } from 'antd';\nimport DivModal from '../../components/Modal';\nimport { jsPDF } from 'jspdf';\n// import { snapdom } from '@zumer/snapdom';\nimport html2canvas from 'html2canvas';\nimport { Draw } from 'ol/interaction';\nimport VectorLayer from 'ol/layer/Vector';\nimport TileLayer from 'ol/layer/Tile';\nimport ImageLayer from 'ol/layer/Image';\nimport VectorSource from 'ol/source/Vector';\nimport { createBox } from 'ol/interaction/Draw';\nimport { drawStyle } from '../../Utils/Draw';\nimport useProps from '../../../use-props';\nimport { Map as OlMapComponent } from '@vtx/ol-map';\nimport FeatureLayer from '../../../feature-layer/FeatureLayer';\nimport BusinessImageLayer from '../../../image-layer/ImageLayer';\nimport lockImg from './assets/lock.png';\nimport './index.less';\n\nconst pageSizeOptions = ['A4', 'A3', 'A2', 'A1', 'A0'];\n\nconst pageSizeMap = {\n A4: { width: 210, height: 297 },\n A3: { width: 297, height: 420 },\n A2: { width: 420, height: 594 },\n A1: { width: 594, height: 841 },\n A0: { width: 841, height: 1189 },\n};\n\nconst DIMENSION_DPI = 96;\nconst EXPORT_DPI = 144;\nconst PREVIEW_HEIGHT = 610;\nconst PREVIEW_WIDTH = 980;\n\nconst pxToMm = (px, dpi = DIMENSION_DPI) => (px * 25.4) / dpi;\nconst mmToPx = (mm, dpi = EXPORT_DPI) => (mm * dpi) / 25.4;\n\nconst isValidExtent = extent => {\n return (\n Array.isArray(extent) &&\n extent.length === 4 &&\n extent.every(item => Number.isFinite(item)) &&\n extent[2] > extent[0] &&\n extent[3] > extent[1]\n );\n};\n\n// 按指定层级把地理范围换算成屏幕像素和毫米尺寸。\n// 这里算出来的宽高是后面分幅、预览和导出的统一基础数据。\nconst calcMetricsFromZoom = (extent, view, zoom) => {\n if (!isValidExtent(extent)) {\n return null;\n }\n\n const resolution = view.getResolutionForZoom(zoom) || view.getResolution();\n const geoWidth = extent[2] - extent[0];\n const geoHeight = extent[3] - extent[1];\n const pixelWidth = geoWidth / resolution;\n const pixelHeight = geoHeight / resolution;\n const widthMm = pxToMm(pixelWidth, DIMENSION_DPI);\n const heightMm = pxToMm(pixelHeight, DIMENSION_DPI);\n\n return {\n extent,\n zoom,\n resolution,\n geoWidth,\n geoHeight,\n pixelWidth,\n pixelHeight,\n widthMm,\n heightMm,\n ratio: heightMm / widthMm,\n };\n};\n\n// 根据总宽高、纸张尺寸和重叠边距,计算需要切成多少张纸,\n// 以及每一张纸在整幅图中的毫米位置。\nconst calcSplitPlan = ({ totalWidthMm, totalHeightMm, pageSize, overlapMargin = 0 }) => {\n const paper = pageSizeMap[pageSize];\n if (!paper || !totalWidthMm || !totalHeightMm) {\n return null;\n }\n\n const safeOverlap = Math.max(0, Number(overlapMargin) || 0);\n const stepX = Math.max(1, paper.width - safeOverlap);\n const stepY = Math.max(1, paper.height - safeOverlap);\n const cols = Math.max(1, Math.ceil(totalWidthMm / stepX));\n const rows = Math.max(1, Math.ceil(totalHeightMm / stepY));\n const sheets = [];\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const xMm = col * stepX;\n const yMm = row * stepY;\n const widthMm = Math.min(paper.width, totalWidthMm - xMm);\n const heightMm = Math.min(paper.height, totalHeightMm - yMm);\n\n sheets.push({\n id: `${row + 1}-${col + 1}`,\n index: row * cols + col + 1,\n row: row + 1,\n col: col + 1,\n xMm,\n yMm,\n widthMm,\n heightMm,\n isPartial: widthMm < paper.width || heightMm < paper.height,\n });\n }\n }\n\n return {\n paperWidthMm: paper.width,\n paperHeightMm: paper.height,\n overlapMargin: safeOverlap,\n totalWidthMm,\n totalHeightMm,\n stepX,\n stepY,\n cols,\n rows,\n totalSheets: sheets.length,\n sheets,\n };\n};\n\n// 把某一张分幅纸在整幅图中的毫米位置,映射回真实地图 extent。\nconst buildSheetExtent = (sheet, plan, totalExtent) => {\n const [minX, minY, maxX, maxY] = totalExtent;\n const xScale = (maxX - minX) / plan.totalWidthMm;\n const yScale = (maxY - minY) / plan.totalHeightMm;\n const left = minX + sheet.xMm * xScale;\n const right = left + sheet.widthMm * xScale;\n const top = maxY - sheet.yMm * yScale;\n const bottom = top - sheet.heightMm * yScale;\n\n return [left, bottom, right, top];\n};\n\n// 预览区显示的是“完整纸张网格”的外框,不是仅仅显示用户选中的蓝框范围。\n// 这样最后一张纸即使没铺满,虚线纸张尺寸也仍然是完整的。\nconst buildPreviewFrameExtent = (plan, totalExtent) => {\n if (!plan || !isValidExtent(totalExtent)) {\n return null;\n }\n\n const [minX, minY, maxX, maxY] = totalExtent;\n const xScale = (maxX - minX) / plan.totalWidthMm;\n const yScale = (maxY - minY) / plan.totalHeightMm;\n const frameWidthMm = plan.paperWidthMm + Math.max(0, plan.cols - 1) * plan.stepX;\n const frameHeightMm = plan.paperHeightMm + Math.max(0, plan.rows - 1) * plan.stepY;\n\n return [\n minX,\n maxY - frameHeightMm * yScale,\n minX + frameWidthMm * xScale,\n maxY,\n ];\n};\n\nconst getPreviewFrameSizeMm = plan => {\n if (!plan) {\n return null;\n }\n\n return {\n width: plan.paperWidthMm + Math.max(0, plan.cols - 1) * plan.stepX,\n height: plan.paperHeightMm + Math.max(0, plan.rows - 1) * plan.stepY,\n };\n};\n\nconst getExtentCenter = extent => [\n (extent[0] + extent[2]) / 2,\n (extent[1] + extent[3]) / 2,\n];\n\n// 预览/导出地图会复用原地图的图层源。\n// 矢量图层这里做一份克隆,避免直接操作原图层上的 feature。\nconst cloneVectorSource = source => {\n if (!source?.getFeatures) {\n return source;\n }\n\n return new VectorSource({\n features: source.getFeatures().map(feature => feature.clone()),\n });\n};\n\n// 这里只同步常见业务图层到隐藏导出地图中,\n// 不把框选图层、高亮层和底图标注层混进去,避免预览污染。\nconst cloneLayer = layer => {\n const common = {\n opacity: layer.getOpacity?.(),\n visible: layer.getVisible?.(),\n zIndex: layer.getZIndex?.(),\n extent: layer.getExtent?.(),\n };\n\n if (layer instanceof VectorLayer) {\n const clonedLayer = new VectorLayer({\n ...common,\n source: cloneVectorSource(layer.getSource()),\n style: layer.getStyle(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n if (layer instanceof TileLayer) {\n const clonedLayer = new TileLayer({\n ...common,\n source: layer.getSource(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n if (layer instanceof ImageLayer) {\n const clonedLayer = new ImageLayer({\n ...common,\n source: layer.getSource(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n return null;\n};\n\nconst clearClonedLayers = mapInstance => {\n if (!mapInstance) {\n return;\n }\n\n mapInstance\n .getLayers()\n .getArray()\n .filter(layer => layer.get('__sheetPrintClone'))\n .forEach(layer => mapInstance.removeLayer(layer));\n};\n\n// 隐藏导出地图和主地图不是同一个实例,所以需要把当前可见业务图层同步过去。\nconst syncBusinessLayers = (sourceMap, targetMap, excludeLayer) => {\n if (!sourceMap || !targetMap) {\n return;\n }\n\n clearClonedLayers(targetMap);\n\n sourceMap\n .getLayers()\n .getArray()\n .filter(layer => {\n if (layer === excludeLayer) {\n return false;\n }\n if (!layer?.getVisible?.()) {\n return false;\n }\n if (layer.get('key') === 'Highlight') {\n return false;\n }\n if (layer.get('key') === '__TDT_TILE' || layer.get('key') === '__TDT_MARK') {\n return false;\n }\n\n return true;\n })\n .forEach(layer => {\n const clonedLayer = cloneLayer(layer);\n if (clonedLayer) {\n targetMap.addLayer(clonedLayer);\n }\n });\n};\n\nconst waitNextFrame = () =>\n new Promise(resolve => {\n requestAnimationFrame(() => {\n requestAnimationFrame(resolve);\n });\n });\n\nconst waitMapRender = mapInstance =>\n new Promise(resolve => {\n if (!mapInstance) {\n resolve();\n return;\n }\n\n let done = false;\n const finish = () => {\n if (done) {\n return;\n }\n done = true;\n resolve();\n };\n\n mapInstance.once('rendercomplete', finish);\n setTimeout(finish, 600);\n mapInstance.renderSync?.();\n });\n\n// 业务图层经常是 WMS/WFS 异步请求,rendercomplete 加上固定 600ms 还不够稳。\n// 这里额外等待图层 source 进入一段“空闲期”后再截图,避免外面图层还在加载时就提前截空白图。\nconst waitLayerSourcesSettled = (mapInstance, timeout = 4000) =>\n new Promise(resolve => {\n if (!mapInstance) {\n resolve();\n return;\n }\n\n const disposers = [];\n let pending = 0;\n let done = false;\n let idleTimer = null;\n\n const finish = () => {\n if (done) {\n return;\n }\n done = true;\n if (idleTimer) {\n clearTimeout(idleTimer);\n }\n disposers.forEach(dispose => dispose());\n resolve();\n };\n\n const scheduleFinish = delay => {\n if (idleTimer) {\n clearTimeout(idleTimer);\n }\n idleTimer = setTimeout(() => {\n if (pending <= 0) {\n finish();\n }\n }, delay);\n };\n\n const onStart = () => {\n pending += 1;\n if (idleTimer) {\n clearTimeout(idleTimer);\n idleTimer = null;\n }\n };\n\n const onEnd = () => {\n pending = Math.max(0, pending - 1);\n if (pending === 0) {\n scheduleFinish(250);\n }\n };\n\n const bind = (target, type, handler) => {\n if (!target?.on) {\n return;\n }\n target.on(type, handler);\n disposers.push(() => target.un?.(type, handler));\n };\n\n mapInstance\n .getLayers()\n .getArray()\n .filter(layer => layer.get('__sheetPrintClone'))\n .forEach(layer => {\n const source = layer.getSource?.();\n if (!source) {\n return;\n }\n\n [\n 'tileloadstart',\n 'imageloadstart',\n 'featuresloadstart',\n 'vectorloadstart',\n ].forEach(type => bind(source, type, onStart));\n\n [\n 'tileloadend',\n 'tileloaderror',\n 'imageloadend',\n 'imageloaderror',\n 'featuresloadend',\n 'featuresloaderror',\n 'vectorloadend',\n 'vectorloaderror',\n ].forEach(type => bind(source, type, onEnd));\n\n // 业务 ImageLayer 第一次进入预览时,经常是 source 已经创建但首张 WMS 图还没真正画进地图。\n // 这里额外盯一下当前 image state,等它从 idle/loading 走到可用状态后再继续截图。\n if (layer instanceof BusinessImageLayer && typeof source.getImage === 'function') {\n const view = mapInstance.getView?.();\n const size = mapInstance.getSize?.();\n const extent = view?.calculateExtent?.(size);\n const resolution = view?.getResolution?.();\n const projection = view?.getProjection?.();\n const image = extent && resolution && projection\n ? source.getImage(extent, resolution, 1, projection)\n : null;\n const imageState = image?.getState?.();\n\n if (image && (imageState === 0 || imageState === 1)) {\n onStart();\n const handleImageChange = () => {\n const nextState = image.getState?.();\n if (nextState === 0 || nextState === 1) {\n return;\n }\n image.un?.('change', handleImageChange);\n onEnd();\n mapInstance.renderSync?.();\n };\n\n image.on?.('change', handleImageChange);\n disposers.push(() => image.un?.('change', handleImageChange));\n\n if (imageState === 0 && image.load) {\n image.load();\n }\n }\n }\n });\n\n scheduleFinish(500);\n setTimeout(finish, timeout);\n mapInstance.renderSync?.();\n });\n\nconst parseCanvasTransform = canvas => {\n const transformText =\n canvas.style.transform || window.getComputedStyle(canvas).transform || '';\n const match = transformText.match(/^matrix\\(([^)]+)\\)$/);\n\n if (!match) {\n return [1, 0, 0, 1, 0, 0];\n }\n\n return match[1]\n .split(',')\n .map(item => Number(item.trim()))\n .filter(item => Number.isFinite(item));\n};\n\n\nlet snapdomPromise = null;\n\nconst dynamicImport = specifier =>\n new Function('s', 'return import(s)')(specifier);\n\nconst getSnapdom = async () => {\n if (!snapdomPromise) {\n snapdomPromise = dynamicImport('@zumer/snapdom').then(mod => mod.snapdom);\n }\n return snapdomPromise;\n};\n\n\n// 优先直接合成 OpenLayers 实际渲染出来的各层 canvas,\n// 避免 html2canvas 再截图 DOM 时把地图细节压糊。\nconst captureDomCanvas = async (dom, width, height) => {\n const canvas = document.createElement('canvas');\n canvas.width = Math.max(1, Math.round(width));\n canvas.height = Math.max(1, Math.round(height));\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n const layerCanvases = Array.from(\n dom.querySelectorAll('.ol-layer canvas, canvas.ol-layer, canvas'),\n ).filter(item => item.width > 0 && item.height > 0);\n\n if (layerCanvases.length) {\n layerCanvases.forEach(layerCanvas => {\n const parentStyle = window.getComputedStyle(layerCanvas.parentElement || layerCanvas);\n const canvasStyle = window.getComputedStyle(layerCanvas);\n const opacity = Number(parentStyle.opacity || canvasStyle.opacity || 1);\n const transform = parseCanvasTransform(layerCanvas);\n const backgroundColor = parentStyle.backgroundColor;\n\n ctx.save();\n ctx.globalAlpha = Number.isFinite(opacity) ? opacity : 1;\n\n if (backgroundColor && backgroundColor !== 'rgba(0, 0, 0, 0)' && backgroundColor !== 'transparent') {\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n\n if (transform.length === 6) {\n ctx.setTransform(...transform);\n } else {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n\n ctx.drawImage(layerCanvas, 0, 0);\n ctx.restore();\n });\n\n return canvas;\n }\n\n // const snapshot = await html2canvas(dom, {\n // scale: 1,\n // backgroundColor: '#ffffff',\n // useCORS: true,\n // });\n\n const snapdom = await getSnapdom();\n const snapshot = await snapdom.toCanvas(dom, {\n scale: 1,\n backgroundColor: '#ffffff',\n });\n \n // const snapshot = await snapdom.toCanvas(dom, {\n // scale: 1,\n // backgroundColor: '#ffffff',\n // });\n ctx.drawImage(snapshot, 0, 0, canvas.width, canvas.height);\n\n return canvas;\n};\n\nconst loadImage = src =>\n new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = src;\n });\n\nconst createPdfFromImages = ({ images, pageWidthMm, pageHeightMm, title }) => {\n if (!images?.length) {\n return;\n }\n\n const orientation = pageWidthMm > pageHeightMm ? 'landscape' : 'portrait';\n const pdf = new jsPDF({\n orientation,\n unit: 'mm',\n format: [pageWidthMm, pageHeightMm],\n compress: true,\n });\n\n images.forEach((item, index) => {\n if (index > 0) {\n pdf.addPage([pageWidthMm, pageHeightMm], orientation);\n }\n\n pdf.addImage(item.url, 'PNG', 0, 0, pageWidthMm, pageHeightMm, undefined, 'FAST');\n });\n\n pdf.save(decodeURIComponent(`${title || 'map-sheet-print'}.pdf`));\n};\n\nexport default function(props) {\n const { onClose } = props;\n const { map, TextEnum } = useProps();\n const [form] = Form.useForm();\n const [previewVisible, setPreviewVisible] = useState(false);\n const [sheetVisible, setSheetVisible] = useState(false);\n const [formVal, setFormVal] = useState({});\n const [pageSizeValue, setPageSizeValue] = useState('A4');\n const [overlapMarginValue, setOverlapMarginValue] = useState(0);\n const [metrics, setMetrics] = useState(null);\n const [totalWidthMm, setTotalWidthMm] = useState(null);\n const [totalHeightMm, setTotalHeightMm] = useState(null);\n const [previewReady, setPreviewReady] = useState(false);\n const [previewLoadingText, setPreviewLoadingText] = useState(\n TextEnum.generatingPreviewText,\n );\n const [previewImage, setPreviewImage] = useState('');\n const [sheetImages, setSheetImages] = useState([]);\n const [selectedSheetIds, setSelectedSheetIds] = useState([]);\n const [generating, setGenerating] = useState(false);\n const drawTool = useRef(null);\n const boxExtentRef = useRef(null);\n const boxLayerRef = useRef(null);\n const exportMapRef = useRef(null);\n const previewMapRef = useRef(null);\n const exportStageRef = useRef(null);\n const previewMasterCanvasRef = useRef(null);\n const previewMasterFramePixelsRef = useRef(null);\n const renderLayersSyncedRef = useRef(false);\n const previewRenderSeqRef = useRef(0);\n const previewRenderTimerRef = useRef(null);\n const [exportSize, setExportSize] = useState({ width: 1, height: 1 });\n\n useEffect(() => {\n form.setFieldsValue({\n range: '1',\n pageSize: 'A4',\n overlapMargin: 0,\n });\n }, []);\n\n useEffect(() => {\n const boxSource = new VectorSource();\n const boxLayer = new VectorLayer({\n source: boxSource,\n style: drawStyle(),\n zIndex: 9999,\n });\n const tool = new Draw({\n source: boxSource,\n type: 'Circle',\n style: feature => drawStyle(feature),\n geometryFunction: createBox(),\n });\n\n boxLayerRef.current = boxLayer;\n drawTool.current = tool;\n tool.setActive(false);\n\n tool.on('drawstart', () => {\n boxSource.clear();\n map.showTip(TextEnum.clickAgainToEnd);\n });\n\n tool.on('drawend', event => {\n const extent = event.feature.getGeometry().getExtent();\n boxExtentRef.current = extent;\n map.showTip(TextEnum.leftClickToStart);\n map.getView().fit(extent, {\n duration: 500,\n });\n });\n\n map.addLayer(boxLayer);\n map.addInteraction(tool);\n\n return () => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n boxSource.clear();\n map.removeLayer(boxLayer);\n map.removeInteraction(tool);\n map.hideTip();\n };\n }, []);\n\n const splitPlan = useMemo(() => {\n return calcSplitPlan({\n totalWidthMm,\n totalHeightMm,\n pageSize: pageSizeValue,\n overlapMargin: overlapMarginValue,\n });\n }, [totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);\n\n const previewFrameExtent = useMemo(() => {\n return buildPreviewFrameExtent(splitPlan, metrics?.extent);\n }, [splitPlan, metrics?.extent]);\n\n const mapProjection = useMemo(() => {\n try {\n return map?.getView?.()?.getProjection?.()?.getCode?.() || 'EPSG:4326';\n } catch (error) {\n return 'EPSG:4326';\n }\n }, [map]);\n\n const inheritedMapProps = useMemo(() => {\n const baseLayerParams = map?.baseLayerParams || {};\n\n return {\n projection: mapProjection,\n mapStyle: baseLayerParams.mapStyle,\n baseMapStyle: baseLayerParams.baseMapStyle,\n dark: baseLayerParams.dark,\n tk: map?.tk || baseLayerParams.tk || '1adbb6e47668cb33757cd799548bf1f4',\n };\n }, [map, mapProjection]);\n\n // 预览里的“单张纸大小”应该只由纸张尺寸本身决定,\n // 不应该因为修改总宽高而把 A4/A3 的纸张框一起缩放掉。\n const previewScale = useMemo(() => {\n if (!splitPlan?.paperWidthMm || !splitPlan?.paperHeightMm) {\n return 1;\n }\n\n const scaleX = splitPlan.paperWidthMm / PREVIEW_WIDTH;\n const scaleY = splitPlan.paperHeightMm / PREVIEW_HEIGHT;\n return Math.max(scaleX, scaleY, 0.0001);\n }, [splitPlan]);\n\n const selectedMapPixels = useMemo(() => {\n if (!totalWidthMm || !totalHeightMm || !previewScale) {\n return null;\n }\n\n return {\n width: Math.max(1, totalWidthMm / previewScale),\n height: Math.max(1, totalHeightMm / previewScale),\n };\n }, [totalWidthMm, totalHeightMm, previewScale]);\n\n const previewFramePixels = useMemo(() => {\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n if (!frameSizeMm || !previewScale) {\n return null;\n }\n\n return {\n width: Math.max(1, frameSizeMm.width / previewScale),\n height: Math.max(1, frameSizeMm.height / previewScale),\n };\n }, [splitPlan, previewScale]);\n\n const selectedRangeCoverage = useMemo(() => {\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n if (!frameSizeMm || !totalWidthMm || !totalHeightMm) {\n return null;\n }\n\n return {\n widthPercent: (totalWidthMm / frameSizeMm.width) * 100,\n heightPercent: (totalHeightMm / frameSizeMm.height) * 100,\n };\n }, [splitPlan, totalWidthMm, totalHeightMm]);\n\n useEffect(() => {\n if (splitPlan) {\n setSelectedSheetIds(splitPlan.sheets.map(item => item.id));\n }\n }, [splitPlan]);\n\n const handleRangeChange = value => {\n if (value === '1') {\n map.hideTip();\n boxLayerRef.current?.getSource()?.clear();\n boxExtentRef.current = null;\n } else {\n map.showTip(TextEnum.leftClickToStart);\n }\n\n drawTool.current?.setActive(value === '2');\n };\n\n const handlePageSizeChange = value => {\n const nextPageSize = value || 'A4';\n setPageSizeValue(nextPageSize);\n form.setFieldValue('pageSize', nextPageSize);\n };\n\n const handleExportMapCreated = exportMap => {\n exportMapRef.current = exportMap;\n renderLayersSyncedRef.current = false;\n };\n\n const handlePreviewMapCreated = previewMap => {\n previewMapRef.current = previewMap;\n };\n\n // 隐藏导出地图只在第一次真正需要时补同步业务图层,\n // 后面同一轮预览/导出尽量复用,避免频繁清空重建。\n const ensureRenderMapLayers = () => {\n if (!exportMapRef.current) {\n return false;\n }\n\n if (!renderLayersSyncedRef.current) {\n syncBusinessLayers(map, exportMapRef.current, boxLayerRef.current);\n renderLayersSyncedRef.current = true;\n }\n\n return true;\n };\n\n const syncPreviewMapLayers = () => {\n if (!previewMapRef.current) {\n return false;\n }\n\n syncBusinessLayers(map, previewMapRef.current, boxLayerRef.current);\n return true;\n };\n\n // 点击“执行分幅”时,直接读取外部主地图当前层级,\n // 也就是“外面地图是什么层级,进去就按什么层级算”。\n const handleSubmit = values => {\n const pageSize = values.pageSize || form.getFieldValue('pageSize');\n const overlapMargin = Number(values.overlapMargin ?? form.getFieldValue('overlapMargin')) || 0;\n // const overlapMargin = 10\n\n console.log('overlapMargin', values.overlapMargin, form.getFieldValue('overlapMargin'), overlapMargin)\n const extent =\n values.range === '1'\n ? map.getView().calculateExtent(map.getSize())\n : boxExtentRef.current;\n\n if (!isValidExtent(extent)) {\n return;\n }\n\n const zoom = Math.round(map.getView().getZoom?.() || 0);\n const nextMetrics = calcMetricsFromZoom(extent, map.getView(), zoom);\n if (!nextMetrics) {\n return;\n }\n\n console.log('[MapSheetPrint] 执行分幅参数', {\n rangeMode: values.range,\n extent,\n zoom,\n pageSize,\n overlapMargin,\n metrics: {\n geoWidth: nextMetrics.geoWidth,\n geoHeight: nextMetrics.geoHeight,\n pixelWidth: nextMetrics.pixelWidth,\n pixelHeight: nextMetrics.pixelHeight,\n widthMm: nextMetrics.widthMm,\n heightMm: nextMetrics.heightMm,\n ratio: nextMetrics.ratio,\n },\n });\n\n setFormVal({\n ...values,\n pageSize,\n overlapMargin,\n printZoom: zoom,\n });\n setPageSizeValue(pageSize);\n setOverlapMarginValue(overlapMargin);\n setMetrics(nextMetrics);\n setTotalWidthMm(Number(nextMetrics.widthMm.toFixed(3)));\n setTotalHeightMm(Number(nextMetrics.heightMm.toFixed(3)));\n setPreviewReady(false);\n setPreviewLoadingText(TextEnum.generatingPreviewText);\n setPreviewImage('');\n previewMasterCanvasRef.current = null;\n previewMasterFramePixelsRef.current = null;\n renderLayersSyncedRef.current = false;\n setSheetImages([]);\n setSheetVisible(false);\n setPreviewVisible(true);\n };\n\n const handleWidthChange = value => {\n if (!metrics || !value) {\n return;\n }\n\n const nextWidth = Number(value);\n setTotalWidthMm(nextWidth);\n setTotalHeightMm(Number((nextWidth * metrics.ratio).toFixed(3)));\n };\n\n const handleHeightChange = value => {\n if (!metrics || !value) {\n return;\n }\n\n const nextHeight = Number(value);\n setTotalHeightMm(nextHeight);\n setTotalWidthMm(Number((nextHeight / metrics.ratio).toFixed(3)));\n };\n\n const renderSheetImage = async sheet => {\n if (!splitPlan || !previewMasterCanvasRef.current || !previewMasterFramePixelsRef.current) {\n return null;\n }\n\n const previewMasterCanvas = previewMasterCanvasRef.current;\n const previewMasterFramePixels = previewMasterFramePixelsRef.current;\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n const frameTotalWidthMm = frameSizeMm.width;\n const frameTotalHeightMm = frameSizeMm.height;\n const sourceX = (sheet.xMm / frameTotalWidthMm) * previewMasterFramePixels.width;\n const sourceY = (sheet.yMm / frameTotalHeightMm) * previewMasterFramePixels.height;\n const sourceWidth =\n (splitPlan.paperWidthMm / frameTotalWidthMm) * previewMasterFramePixels.width;\n const sourceHeight =\n (splitPlan.paperHeightMm / frameTotalHeightMm) * previewMasterFramePixels.height;\n const pageWidthPx = Math.max(1, Math.round(mmToPx(splitPlan.paperWidthMm, EXPORT_DPI)));\n const pageHeightPx = Math.max(1, Math.round(mmToPx(splitPlan.paperHeightMm, EXPORT_DPI)));\n\n console.log('[MapSheetPrint] 生成单张图幅', {\n sheetId: sheet.id,\n sheetIndex: sheet.index,\n sheetWidthMm: sheet.widthMm,\n sheetHeightMm: sheet.heightMm,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n pageWidthPx,\n pageHeightPx,\n });\n\n const pageCanvas = document.createElement('canvas');\n pageCanvas.width = pageWidthPx;\n pageCanvas.height = pageHeightPx;\n const ctx = pageCanvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, pageWidthPx, pageHeightPx);\n ctx.drawImage(\n previewMasterCanvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n pageWidthPx,\n pageHeightPx,\n );\n\n return {\n ...sheet,\n url: pageCanvas.toDataURL('image/png'),\n pixelWidth: pageWidthPx,\n pixelHeight: pageHeightPx,\n };\n };\n\n // 预览始终裁同一个原始 extent。\n // 宽高变大时,不改 extent,而是先把隐藏地图按更大的像素尺寸重新渲染,\n // 相当于“放大地图层级”,再把同一个 extent 裁成预览图。\n const renderPreviewImage = async seq => {\n if (\n !previewVisible ||\n !metrics?.extent ||\n !selectedMapPixels ||\n !previewFramePixels ||\n !exportMapRef.current ||\n !exportStageRef.current\n ) {\n return;\n }\n\n const widthScale = totalWidthMm / metrics.widthMm;\n const heightScale = totalHeightMm / metrics.heightMm;\n const captureWidthPx = Math.max(1, Math.round(metrics.pixelWidth * widthScale));\n const captureHeightPx = Math.max(1, Math.round(metrics.pixelHeight * heightScale));\n const targetResolution = Math.max(\n metrics.geoWidth / captureWidthPx,\n metrics.geoHeight / captureHeightPx,\n );\n const targetCenter = getExtentCenter(metrics.extent);\n\n console.log('[MapSheetPrint] 生成预览裁图', {\n seq,\n extent: metrics.extent,\n zoom: metrics.zoom,\n totalWidthMm,\n totalHeightMm,\n previewScale,\n previewFrameExtent,\n previewFramePixels,\n selectedMapPixels,\n captureWidthPx,\n captureHeightPx,\n targetResolution,\n targetCenter,\n splitPlan: splitPlan\n ? {\n cols: splitPlan.cols,\n rows: splitPlan.rows,\n totalSheets: splitPlan.totalSheets,\n paperWidthMm: splitPlan.paperWidthMm,\n paperHeightMm: splitPlan.paperHeightMm,\n stepX: splitPlan.stepX,\n stepY: splitPlan.stepY,\n }\n : null,\n });\n\n setPreviewReady(false);\n setPreviewLoadingText(TextEnum.syncingLayersText);\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n if (!ensureRenderMapLayers()) {\n return;\n }\n syncPreviewMapLayers();\n\n setExportSize({\n width: captureWidthPx,\n height: captureHeightPx,\n });\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n exportMapRef.current.updateSize?.();\n const view = exportMapRef.current.getView();\n view.setCenter(targetCenter);\n view.setResolution(targetResolution);\n if (previewMapRef.current) {\n previewMapRef.current.updateSize?.();\n const previewView = previewMapRef.current.getView();\n previewView.setCenter(targetCenter);\n previewView.setResolution(targetResolution);\n }\n await waitMapRender(exportMapRef.current);\n setPreviewLoadingText(TextEnum.waitingBusinessLayersText);\n await waitLayerSourcesSettled(exportMapRef.current);\n await waitMapRender(exportMapRef.current);\n if (previewMapRef.current) {\n await waitMapRender(previewMapRef.current);\n }\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n const sourceCanvas = await captureDomCanvas(\n exportStageRef.current,\n captureWidthPx,\n captureHeightPx,\n );\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n const previewCanvas = document.createElement('canvas');\n previewCanvas.width = Math.max(1, Math.round(previewFramePixels.width));\n previewCanvas.height = Math.max(1, Math.round(previewFramePixels.height));\n const masterScaleX = captureWidthPx / Math.max(1, selectedMapPixels.width);\n const masterScaleY = captureHeightPx / Math.max(1, selectedMapPixels.height);\n const previewMasterCanvas = document.createElement('canvas');\n previewMasterCanvas.width = Math.max(\n 1,\n Math.round(previewFramePixels.width * masterScaleX),\n );\n previewMasterCanvas.height = Math.max(\n 1,\n Math.round(previewFramePixels.height * masterScaleY),\n );\n const masterCtx = previewMasterCanvas.getContext('2d');\n masterCtx.fillStyle = '#fff';\n masterCtx.fillRect(0, 0, previewMasterCanvas.width, previewMasterCanvas.height);\n masterCtx.drawImage(sourceCanvas, 0, 0, captureWidthPx, captureHeightPx);\n previewMasterCanvasRef.current = previewMasterCanvas;\n previewMasterFramePixelsRef.current = {\n width: previewMasterCanvas.width,\n height: previewMasterCanvas.height,\n };\n const ctx = previewCanvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, previewCanvas.width, previewCanvas.height);\n ctx.drawImage(previewMasterCanvas, 0, 0, previewCanvas.width, previewCanvas.height);\n\n setPreviewImage(previewCanvas.toDataURL('image/png'));\n setPreviewReady(true);\n setPreviewLoadingText(TextEnum.generatingPreviewText);\n };\n\n useEffect(() => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n\n if (!previewVisible) {\n return;\n }\n\n const seq = previewRenderSeqRef.current + 1;\n previewRenderSeqRef.current = seq;\n previewRenderTimerRef.current = setTimeout(() => {\n renderPreviewImage(seq);\n }, 120);\n\n return () => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n };\n }, [previewVisible, metrics?.extent, previewFrameExtent, previewFramePixels, selectedMapPixels, totalWidthMm, totalHeightMm]);\n\n useEffect(() => {\n if (!splitPlan) {\n return;\n }\n\n console.log('[MapSheetPrint] 分幅计算结果', {\n totalWidthMm,\n totalHeightMm,\n pageSize: pageSizeValue,\n overlapMargin: overlapMarginValue,\n cols: splitPlan.cols,\n rows: splitPlan.rows,\n totalSheets: splitPlan.totalSheets,\n paperWidthMm: splitPlan.paperWidthMm,\n paperHeightMm: splitPlan.paperHeightMm,\n sheets: splitPlan.sheets.map(item => ({\n id: item.id,\n index: item.index,\n xMm: item.xMm,\n yMm: item.yMm,\n widthMm: item.widthMm,\n heightMm: item.heightMm,\n isPartial: item.isPartial,\n })),\n });\n }, [splitPlan, totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);\n\n const handleGenerateSheets = async () => {\n if (!splitPlan?.sheets?.length) {\n return;\n }\n\n setGenerating(true);\n try {\n const images = [];\n\n for (const sheet of splitPlan.sheets) {\n const image = await renderSheetImage(sheet);\n if (image) {\n images.push(image);\n }\n }\n\n setSheetImages(images);\n setSelectedSheetIds(images.map(item => item.id));\n setPreviewVisible(false);\n setSheetVisible(true);\n } finally {\n setGenerating(false);\n }\n };\n\n const handleExportPdf = () => {\n const selectedImages = sheetImages.filter(item => selectedSheetIds.includes(item.id));\n if (!selectedImages.length || !splitPlan) {\n return;\n }\n\n createPdfFromImages({\n images: selectedImages,\n pageWidthMm: splitPlan.paperWidthMm,\n pageHeightMm: splitPlan.paperHeightMm,\n title: formVal.title,\n });\n };\n\n return (\n <DivModal title={TextEnum.toolMapSheetPrint} onClose={onClose}>\n \n <Form\n form={form}\n name=\"mapSheetPrint\"\n labelCol={{ span: 8 }}\n wrapperCol={{ span: 16 }}\n onFinish={handleSubmit}\n >\n <Form.Item\n label={TextEnum.mapPrintTitle}\n name=\"title\"\n rules={[{ required: true, message: TextEnum.pleaseInput }]}\n >\n <Input placeholder={TextEnum.pleaseInput} />\n </Form.Item>\n\n <Form.Item\n label={TextEnum.printRange}\n name=\"range\"\n rules={[{ required: true, message: TextEnum.pleaseSelect }]}\n >\n <Select\n placeholder={TextEnum.pleaseSelect}\n allowClear\n onChange={handleRangeChange}\n options={[\n { value: '1', label: TextEnum.currentView },\n { value: '2', label: TextEnum.manualBoxSelect },\n ]}\n />\n </Form.Item>\n\n <div\n style={{\n marginLeft: 12,\n marginBottom: 12,\n color: '#333',\n fontSize: 14,\n fontWeight: 500,\n }}\n >\n {TextEnum.sheetPrintParams}\n </div>\n\n <Form.Item\n label={TextEnum.pageSize}\n name=\"pageSize\"\n rules={[{ required: true, message: TextEnum.pleaseSelect }]}\n >\n <Select\n placeholder={TextEnum.pleaseSelect}\n allowClear\n onChange={handlePageSizeChange}\n options={pageSizeOptions.map(item => ({\n value: item,\n label: item,\n }))}\n />\n </Form.Item>\n\n <Form.Item label={TextEnum.overlapMargin} required>\n <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n <Form.Item\n name=\"overlapMargin\"\n rules={[\n { required: true, message: TextEnum.pleaseInput },\n {\n type: 'integer',\n transform: value =>\n value === undefined || value === null || value === ''\n ? value\n : Number(value),\n message: TextEnum.pleaseInputInteger,\n },\n ]}\n style={{ flex: 1, marginBottom: 0 }}\n >\n <InputNumber\n min={0}\n precision={0}\n changeOnBlur={false}\n step={1}\n style={{ width: '100%' }}\n />\n </Form.Item>\n <span style={{ whiteSpace: 'nowrap' }}>(mm)</span>\n </div>\n </Form.Item>\n\n <Form.Item wrapperCol={{ offset: 8, span: 16 }}>\n <Button type=\"primary\" htmlType=\"submit\">\n {TextEnum.executeSheetPrint}\n </Button>\n </Form.Item>\n </Form>\n\n <Modal\n open={previewVisible}\n title={TextEnum.preview}\n onCancel={() => setPreviewVisible(false)}\n onOk={handleGenerateSheets}\n okText={TextEnum.ok}\n cancelText={TextEnum.cancel}\n width={map.getViewport().clientWidth - 80}\n centered\n wrapClassName=\"ol-mapprint-modal\"\n confirmLoading={generating}\n destroyOnHidden={false}\n >\n <div style={{ display: 'flex', gap: 12, alignItems: 'center', marginBottom: 12 }}>\n <span>{TextEnum.widthText}</span>\n <InputNumber\n min={0.001}\n precision={3}\n value={totalWidthMm}\n onChange={handleWidthChange}\n />\n <span>mm</span>\n <img\n src={lockImg}\n alt={TextEnum.fixedRatioText}\n style={{ width: 16, height: 16, objectFit: 'contain' }}\n />\n <span>{TextEnum.heightText}</span>\n <InputNumber\n precision={0}\n step={1}\n min={0}\n value={totalHeightMm}\n onChange={handleHeightChange}\n />\n <span>mm</span>\n {splitPlan && (\n <span style={{ marginLeft: 'auto', color: '#666' }}>\n {splitPlan.cols} {TextEnum.colText} x {splitPlan.rows} {TextEnum.rowText},\n {TextEnum.totalText} {splitPlan.totalSheets} {TextEnum.sheetText}\n </span>\n )}\n </div>\n\n <div\n style={{\n position: 'relative',\n height: PREVIEW_HEIGHT,\n overflow: 'auto',\n background: '#f5f5f5',\n border: '1px solid #e5e5e5',\n }}\n >\n {!previewReady && (\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 10,\n background: 'rgba(255,255,255,0.82)',\n gap: 12,\n pointerEvents: 'none',\n }}\n >\n <Spin />\n <div style={{ color: '#666', fontSize: 13 }}>{previewLoadingText}</div>\n </div>\n )}\n\n {metrics && previewFramePixels && splitPlan && selectedMapPixels && (\n <div\n style={{\n position: 'relative',\n width: previewFramePixels.width,\n height: previewFramePixels.height,\n transformOrigin: 'top left',\n }}\n >\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: selectedMapPixels.width,\n height: selectedMapPixels.height,\n overflow: 'hidden',\n zIndex: 0,\n display: 'none',\n }}\n >\n <OlMapComponent\n width={`${Math.max(1, Math.round(selectedMapPixels.width))}px`}\n height={`${Math.max(1, Math.round(selectedMapPixels.height))}px`}\n projection={inheritedMapProps.projection}\n mapStyle={inheritedMapProps.mapStyle}\n baseMapStyle={inheritedMapProps.baseMapStyle}\n dark={inheritedMapProps.dark}\n tk={inheritedMapProps.tk}\n hidePopupTable={true}\n createdMap={handlePreviewMapCreated}\n />\n </div>\n\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: previewFramePixels.width,\n height: previewFramePixels.height,\n zIndex: 1,\n pointerEvents: 'none',\n }}\n >\n <img\n src={previewImage}\n alt=\"sheet-preview\"\n style={{\n width: '100%',\n height: '100%',\n display: previewImage ? 'block' : 'none',\n pointerEvents: 'none',\n opacity: 1,\n }}\n />\n </div>\n\n {selectedRangeCoverage && selectedRangeCoverage.widthPercent < 100 && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: `${100 - selectedRangeCoverage.widthPercent}%`,\n height: `${selectedRangeCoverage.heightPercent}%`,\n background: 'rgba(255,255,255,0.96)',\n pointerEvents: 'none',\n zIndex: 2,\n }}\n />\n )}\n\n {selectedRangeCoverage && selectedRangeCoverage.heightPercent < 100 && (\n <div\n style={{\n position: 'absolute',\n left: 0,\n bottom: 0,\n width: '100%',\n height: `${100 - selectedRangeCoverage.heightPercent}%`,\n background: 'rgba(255,255,255,0.96)',\n pointerEvents: 'none',\n zIndex: 2,\n }}\n />\n )}\n\n {selectedRangeCoverage && (\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: `${selectedRangeCoverage.widthPercent}%`,\n height: `${selectedRangeCoverage.heightPercent}%`,\n border: '2px solid rgba(24, 144, 255, 0.9)',\n boxSizing: 'border-box',\n pointerEvents: 'none',\n zIndex: 3,\n }}\n />\n )}\n\n {splitPlan?.sheets?.map(sheet => (\n <div\n key={sheet.id}\n style={{\n position: 'absolute',\n left: `${(sheet.xMm / getPreviewFrameSizeMm(splitPlan).width) * 100}%`,\n top: `${(sheet.yMm / getPreviewFrameSizeMm(splitPlan).height) * 100}%`,\n width: `${(splitPlan.paperWidthMm / getPreviewFrameSizeMm(splitPlan).width) * 100}%`,\n height: `${(splitPlan.paperHeightMm / getPreviewFrameSizeMm(splitPlan).height) * 100}%`,\n border: '2px dashed #333',\n boxSizing: 'border-box',\n pointerEvents: 'none',\n zIndex: 4,\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: 4,\n left: 4,\n background: 'rgba(255,255,255,0.92)',\n padding: '0 4px',\n fontSize: 12,\n }}\n >\n {sheet.index}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </Modal>\n\n <Modal\n open={sheetVisible}\n title={TextEnum.sheetResultText}\n onCancel={() => setSheetVisible(false)}\n onOk={handleExportPdf}\n okText={TextEnum.printText}\n cancelText={TextEnum.cancel}\n width={map.getViewport().clientWidth - 80}\n centered\n wrapClassName=\"ol-mapprint-modal\"\n >\n <div style={{ marginBottom: 12 }}>\n <Checkbox\n indeterminate={\n selectedSheetIds.length > 0 && selectedSheetIds.length < sheetImages.length\n }\n checked={sheetImages.length > 0 && selectedSheetIds.length === sheetImages.length}\n onChange={e =>\n setSelectedSheetIds(e.target.checked ? sheetImages.map(item => item.id) : [])\n }\n >\n {TextEnum.selectAllText}\n </Checkbox>\n </div>\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(240px, 1fr))',\n gap: 16,\n maxHeight: '70vh',\n overflow: 'auto',\n }}\n >\n {sheetImages.map(item => (\n <label\n key={item.id}\n style={{\n display: 'block',\n border: '1px solid #ddd',\n borderRadius: 6,\n padding: 12,\n background: '#fff',\n }}\n >\n <div style={{ marginBottom: 8, display: 'flex', alignItems: 'center', gap: 8 }}>\n <Checkbox\n checked={selectedSheetIds.includes(item.id)}\n onChange={e => {\n setSelectedSheetIds(current =>\n e.target.checked\n ? [...current, item.id]\n : current.filter(id => id !== item.id),\n );\n }}\n />\n <span>\n {TextEnum.sheetIndexPrefix} {item.index} {TextEnum.sheetText} ({item.row}-{item.col})\n </span>\n </div>\n <img\n src={item.url}\n alt={`sheet-${item.index}`}\n style={{ width: '100%', display: 'block', border: '1px solid #eee' }}\n />\n </label>\n ))}\n </div>\n </Modal>\n\n <div\n style={{\n position: 'absolute',\n left: '-100000px',\n top: 0,\n width: exportSize.width,\n height: exportSize.height,\n overflow: 'hidden',\n }}\n >\n <div ref={exportStageRef} style={{ width: exportSize.width, height: exportSize.height }}>\n <OlMapComponent\n width={`${exportSize.width}px`}\n height={`${exportSize.height}px`}\n projection={inheritedMapProps.projection}\n mapStyle={inheritedMapProps.mapStyle}\n baseMapStyle={inheritedMapProps.baseMapStyle}\n dark={inheritedMapProps.dark}\n tk={inheritedMapProps.tk}\n hidePopupTable={true}\n createdMap={handleExportMapCreated}\n />\n </div>\n </div>\n </DivModal>\n );\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,YAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,KAAA,GAAAL,sBAAA,CAAAH,OAAA;AACA,IAAAS,MAAA,GAAAN,sBAAA,CAAAH,OAAA;AACA,IAAAU,QAAA,GAAAP,sBAAA,CAAAH,OAAA;AACA,IAAAW,KAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAV,sBAAA,CAAAH,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AACA,IAAAe,aAAA,GAAAZ,sBAAA,CAAAH,OAAA;AACA,IAAAgB,WAAA,GAAAb,sBAAA,CAAAH,OAAA;AACA,IAAAiB,KAAA,GAAAd,sBAAA,CAAAH,OAAA;AACAA,OAAA;AAAsB,SAAAG,uBAAAe,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAnB,wBAAAmB,CAAA,EAAAE,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAtB,uBAAA,YAAAA,wBAAAmB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,GAAA,IAAAd,CAAA,gBAAAc,GAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,GAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,GAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,GAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,GAAA,IAAAd,CAAA,CAAAc,GAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAE,CAAA;AAAA,SAAAkB,2BAAAhB,CAAA,EAAAJ,CAAA,QAAAE,CAAA,yBAAAmB,MAAA,IAAAjB,CAAA,CAAAiB,MAAA,CAAAC,QAAA,KAAAlB,CAAA,qBAAAF,CAAA,QAAAqB,KAAA,CAAAC,OAAA,CAAApB,CAAA,MAAAF,CAAA,GAAAuB,2BAAA,CAAArB,CAAA,MAAAJ,CAAA,IAAAI,CAAA,uBAAAA,CAAA,CAAAsB,MAAA,IAAAxB,CAAA,KAAAE,CAAA,GAAAF,CAAA,OAAAyB,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAvB,CAAA,WAAAA,EAAA,WAAAsB,EAAA,IAAAvB,CAAA,CAAAsB,MAAA,KAAAI,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAA3B,CAAA,CAAAuB,EAAA,UAAA3B,CAAA,WAAAA,EAAAI,CAAA,UAAAA,CAAA,KAAAI,CAAA,EAAAoB,CAAA,gBAAAI,SAAA,iJAAA1B,CAAA,EAAA2B,CAAA,OAAAC,CAAA,gBAAAL,CAAA,WAAAA,EAAA,IAAA3B,CAAA,GAAAA,CAAA,CAAAc,IAAA,CAAAZ,CAAA,MAAAC,CAAA,WAAAA,EAAA,QAAAD,CAAA,GAAAF,CAAA,CAAAiC,IAAA,WAAAF,CAAA,GAAA7B,CAAA,CAAA0B,IAAA,EAAA1B,CAAA,KAAAJ,CAAA,WAAAA,EAAAI,CAAA,IAAA8B,CAAA,OAAA5B,CAAA,GAAAF,CAAA,KAAAI,CAAA,WAAAA,EAAA,UAAAyB,CAAA,YAAA/B,CAAA,cAAAA,CAAA,8BAAAgC,CAAA,QAAA5B,CAAA;AAAA,SAAA8B,mBAAAhC,CAAA,WAAAiC,kBAAA,CAAAjC,CAAA,KAAAkC,gBAAA,CAAAlC,CAAA,KAAAqB,2BAAA,CAAArB,CAAA,KAAAmC,kBAAA;AAAA,SAAAA,mBAAA,cAAAP,SAAA;AAAA,SAAAM,iBAAAlC,CAAA,8BAAAiB,MAAA,YAAAjB,CAAA,CAAAiB,MAAA,CAAAC,QAAA,aAAAlB,CAAA,uBAAAmB,KAAA,CAAAiB,IAAA,CAAApC,CAAA;AAAA,SAAAiC,mBAAAjC,CAAA,QAAAmB,KAAA,CAAAC,OAAA,CAAApB,CAAA,UAAAqC,iBAAA,CAAArC,CAAA;AAAA,SAAAsC,aAAA,IAjBtB,uKAAA1C,CAAA,EAAAE,CAAA,EAAAE,CAAA,wBAAAiB,MAAA,GAAAA,MAAA,OAAAhB,CAAA,GAAAD,CAAA,CAAAkB,QAAA,kBAAAhB,CAAA,GAAAF,CAAA,CAAAuC,WAAA,8BAAApC,EAAAH,CAAA,EAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,QAAAqC,CAAA,GAAAvC,CAAA,IAAAA,CAAA,CAAAwC,SAAA,YAAAC,SAAA,GAAAzC,CAAA,GAAAyC,SAAA,EAAAZ,CAAA,GAAAjB,MAAA,CAAA8B,MAAA,CAAAH,CAAA,CAAAC,SAAA,UAAAG,mBAAA,CAAAd,CAAA,uBAAA9B,CAAA,EAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,EAAAqC,CAAA,EAAAV,CAAA,EAAA1B,CAAA,MAAAyC,CAAA,GAAA3C,CAAA,QAAA4C,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA5C,CAAA,KAAA+C,CAAA,EAAApD,CAAA,EAAAiC,CAAA,EAAAoB,CAAA,EAAA7C,CAAA,EAAA6C,CAAA,CAAAC,IAAA,CAAAtD,CAAA,MAAAqD,CAAA,WAAAA,EAAAnD,CAAA,EAAAE,CAAA,WAAAG,CAAA,GAAAL,CAAA,EAAA0C,CAAA,MAAAV,CAAA,GAAAlC,CAAA,EAAAmD,CAAA,CAAA9C,CAAA,GAAAD,CAAA,EAAA6B,CAAA,gBAAAoB,EAAAjD,CAAA,EAAAC,CAAA,SAAAuC,CAAA,GAAAxC,CAAA,EAAA8B,CAAA,GAAA7B,CAAA,EAAAH,CAAA,OAAAgD,CAAA,IAAA1C,CAAA,KAAAF,CAAA,IAAAJ,CAAA,GAAA+C,CAAA,CAAAvB,MAAA,EAAAxB,CAAA,UAAAI,CAAA,EAAAC,CAAA,GAAA0C,CAAA,CAAA/C,CAAA,GAAAmD,CAAA,GAAAF,CAAA,CAAAF,CAAA,EAAAM,CAAA,GAAAhD,CAAA,KAAAH,CAAA,QAAAE,CAAA,GAAAiD,CAAA,KAAAlD,CAAA,MAAA6B,CAAA,GAAA3B,CAAA,EAAAqC,CAAA,GAAArC,CAAA,YAAAqC,CAAA,WAAArC,CAAA,MAAAA,CAAA,MAAAP,CAAA,IAAAO,CAAA,OAAA8C,CAAA,MAAA/C,CAAA,GAAAF,CAAA,QAAAiD,CAAA,GAAA9C,CAAA,QAAAqC,CAAA,MAAAO,CAAA,CAAAC,CAAA,GAAA/C,CAAA,EAAA8C,CAAA,CAAA9C,CAAA,GAAAE,CAAA,OAAA8C,CAAA,GAAAE,CAAA,KAAAjD,CAAA,GAAAF,CAAA,QAAAG,CAAA,MAAAF,CAAA,IAAAA,CAAA,GAAAkD,CAAA,MAAAhD,CAAA,MAAAH,CAAA,EAAAG,CAAA,MAAAF,CAAA,EAAA8C,CAAA,CAAA9C,CAAA,GAAAkD,CAAA,EAAAX,CAAA,cAAAtC,CAAA,IAAAF,CAAA,aAAA6B,CAAA,QAAAiB,CAAA,OAAA7C,CAAA,qBAAAC,CAAA,EAAA2C,CAAA,EAAAM,CAAA,QAAA/C,CAAA,YAAAwB,SAAA,uCAAAkB,CAAA,UAAAD,CAAA,IAAAI,CAAA,CAAAJ,CAAA,EAAAM,CAAA,GAAAX,CAAA,GAAAK,CAAA,EAAAf,CAAA,GAAAqB,CAAA,GAAArD,CAAA,GAAA0C,CAAA,OAAA5C,CAAA,GAAAkC,CAAA,MAAAgB,CAAA,KAAA3C,CAAA,KAAAqC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAO,CAAA,CAAA9C,CAAA,QAAAgD,CAAA,CAAAT,CAAA,EAAAV,CAAA,KAAAiB,CAAA,CAAA9C,CAAA,GAAA6B,CAAA,GAAAiB,CAAA,CAAAC,CAAA,GAAAlB,CAAA,aAAA1B,CAAA,MAAAD,CAAA,QAAAqC,CAAA,KAAAtC,CAAA,YAAAJ,CAAA,GAAAK,CAAA,CAAAD,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAc,IAAA,CAAAT,CAAA,EAAA2B,CAAA,UAAAF,SAAA,2CAAA9B,CAAA,CAAA4B,IAAA,SAAA5B,CAAA,EAAAgC,CAAA,GAAAhC,CAAA,CAAA6B,KAAA,EAAAa,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAA1C,CAAA,GAAAK,CAAA,eAAAL,CAAA,CAAAc,IAAA,CAAAT,CAAA,GAAAqC,CAAA,SAAAV,CAAA,GAAAF,SAAA,uCAAA1B,CAAA,gBAAAsC,CAAA,OAAArC,CAAA,GAAAP,CAAA,cAAAE,CAAA,IAAAgD,CAAA,GAAAC,CAAA,CAAA9C,CAAA,QAAA6B,CAAA,GAAA9B,CAAA,CAAAY,IAAA,CAAAX,CAAA,EAAA8C,CAAA,OAAAlB,CAAA,kBAAA/B,CAAA,IAAAK,CAAA,GAAAP,CAAA,EAAA4C,CAAA,MAAAV,CAAA,GAAAhC,CAAA,cAAAM,CAAA,mBAAAuB,KAAA,EAAA7B,CAAA,EAAA4B,IAAA,EAAAoB,CAAA,SAAA9C,CAAA,EAAAE,CAAA,EAAAC,CAAA,QAAA2B,CAAA,QAAAD,CAAA,gBAAAa,UAAA,cAAAU,kBAAA,cAAAC,2BAAA,KAAAvD,CAAA,GAAAe,MAAA,CAAAyC,cAAA,MAAAd,CAAA,MAAAvC,CAAA,IAAAH,CAAA,CAAAA,CAAA,IAAAG,CAAA,SAAA2C,mBAAA,CAAA9C,CAAA,OAAAG,CAAA,iCAAAH,CAAA,GAAAgC,CAAA,GAAAuB,0BAAA,CAAAZ,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAA5B,MAAA,CAAA8B,MAAA,CAAAH,CAAA,YAAApC,EAAAR,CAAA,WAAAiB,MAAA,CAAA0C,cAAA,GAAA1C,MAAA,CAAA0C,cAAA,CAAA3D,CAAA,EAAAyD,0BAAA,KAAAzD,CAAA,CAAAS,SAAA,GAAAgD,0BAAA,EAAAT,mBAAA,CAAAhD,CAAA,EAAAM,CAAA,yBAAAN,CAAA,CAAA6C,SAAA,GAAA5B,MAAA,CAAA8B,MAAA,CAAAb,CAAA,GAAAlC,CAAA,WAAAwD,iBAAA,CAAAX,SAAA,GAAAY,0BAAA,EAAAT,mBAAA,CAAAd,CAAA,iBAAAuB,0BAAA,GAAAT,mBAAA,CAAAS,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAI,WAAA,wBAAAZ,mBAAA,CAAAS,0BAAA,EAAAnD,CAAA,wBAAA0C,mBAAA,CAAAd,CAAA,GAAAc,mBAAA,CAAAd,CAAA,EAAA5B,CAAA,gBAAA0C,mBAAA,CAAAd,CAAA,EAAA7B,CAAA,iCAAA2C,mBAAA,CAAAd,CAAA,8DAAAQ,YAAA,YAAAA,aAAA,aAAAmB,CAAA,EAAAtD,CAAA,EAAAuD,CAAA,EAAAtD,CAAA;AAAA,SAAAwC,oBAAAhD,CAAA,EAAAI,CAAA,EAAAC,CAAA,EAAAH,CAAA,QAAAK,CAAA,GAAAU,MAAA,CAAAC,cAAA,QAAAX,CAAA,uBAAAP,CAAA,IAAAO,CAAA,QAAAyC,mBAAA,YAAAe,mBAAA/D,CAAA,EAAAI,CAAA,EAAAC,CAAA,EAAAH,CAAA,aAAAI,EAAAF,CAAA,EAAAC,CAAA,IAAA2C,mBAAA,CAAAhD,CAAA,EAAAI,CAAA,YAAAJ,CAAA,gBAAAgE,OAAA,CAAA5D,CAAA,EAAAC,CAAA,EAAAL,CAAA,SAAAI,CAAA,GAAAG,CAAA,GAAAA,CAAA,CAAAP,CAAA,EAAAI,CAAA,IAAA2B,KAAA,EAAA1B,CAAA,EAAA4D,UAAA,GAAA/D,CAAA,EAAAgE,YAAA,GAAAhE,CAAA,EAAAiE,QAAA,GAAAjE,CAAA,MAAAF,CAAA,CAAAI,CAAA,IAAAC,CAAA,IAAAC,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAA0C,mBAAA,CAAAhD,CAAA,EAAAI,CAAA,EAAAC,CAAA,EAAAH,CAAA;AAAA,SAAAkE,mBAAA/D,CAAA,EAAAH,CAAA,EAAAF,CAAA,EAAAI,CAAA,EAAAE,CAAA,EAAA2B,CAAA,EAAAW,CAAA,cAAArC,CAAA,GAAAF,CAAA,CAAA4B,CAAA,EAAAW,CAAA,GAAAV,CAAA,GAAA3B,CAAA,CAAAwB,KAAA,WAAA1B,CAAA,gBAAAL,CAAA,CAAAK,CAAA,KAAAE,CAAA,CAAAuB,IAAA,GAAA5B,CAAA,CAAAgC,CAAA,IAAAmC,OAAA,CAAAC,OAAA,CAAApC,CAAA,EAAAqC,IAAA,CAAAnE,CAAA,EAAAE,CAAA;AAAA,SAAAkE,kBAAAnE,CAAA,6BAAAH,CAAA,SAAAF,CAAA,GAAAyE,SAAA,aAAAJ,OAAA,WAAAjE,CAAA,EAAAE,CAAA,QAAA2B,CAAA,GAAA5B,CAAA,CAAAqE,KAAA,CAAAxE,CAAA,EAAAF,CAAA,YAAA2E,MAAAtE,CAAA,IAAA+D,kBAAA,CAAAnC,CAAA,EAAA7B,CAAA,EAAAE,CAAA,EAAAqE,KAAA,EAAAC,MAAA,UAAAvE,CAAA,cAAAuE,OAAAvE,CAAA,IAAA+D,kBAAA,CAAAnC,CAAA,EAAA7B,CAAA,EAAAE,CAAA,EAAAqE,KAAA,EAAAC,MAAA,WAAAvE,CAAA,KAAAsE,KAAA;AAAA,SAAAE,QAAA7E,CAAA,EAAAI,CAAA,QAAAF,CAAA,GAAAe,MAAA,CAAA6D,IAAA,CAAA9E,CAAA,OAAAiB,MAAA,CAAA8D,qBAAA,QAAAzE,CAAA,GAAAW,MAAA,CAAA8D,qBAAA,CAAA/E,CAAA,GAAAI,CAAA,KAAAE,CAAA,GAAAA,CAAA,CAAA0E,MAAA,WAAA5E,CAAA,WAAAa,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAA6D,UAAA,OAAA/D,CAAA,CAAA+E,IAAA,CAAAP,KAAA,CAAAxE,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAgF,cAAAlF,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAqE,SAAA,CAAA/C,MAAA,EAAAtB,CAAA,UAAAF,CAAA,WAAAuE,SAAA,CAAArE,CAAA,IAAAqE,SAAA,CAAArE,CAAA,QAAAA,CAAA,OAAAyE,OAAA,CAAA5D,MAAA,CAAAf,CAAA,OAAAiF,OAAA,WAAA/E,CAAA,IAAAgF,eAAA,CAAApF,CAAA,EAAAI,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAa,MAAA,CAAAoE,yBAAA,GAAApE,MAAA,CAAAqE,gBAAA,CAAAtF,CAAA,EAAAiB,MAAA,CAAAoE,yBAAA,CAAAnF,CAAA,KAAA2E,OAAA,CAAA5D,MAAA,CAAAf,CAAA,GAAAiF,OAAA,WAAA/E,CAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAI,CAAA,EAAAa,MAAA,CAAAE,wBAAA,CAAAjB,CAAA,EAAAE,CAAA,iBAAAJ,CAAA;AAAA,SAAAoF,gBAAApF,CAAA,EAAAI,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAAmF,cAAA,CAAAnF,CAAA,MAAAJ,CAAA,GAAAiB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAI,CAAA,IAAA2B,KAAA,EAAA7B,CAAA,EAAA+D,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAnE,CAAA,CAAAI,CAAA,IAAAF,CAAA,EAAAF,CAAA;AAAA,SAAAuF,eAAArF,CAAA,QAAAK,CAAA,GAAAiF,YAAA,CAAAtF,CAAA,gCAAAQ,OAAA,CAAAH,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAiF,aAAAtF,CAAA,EAAAE,CAAA,oBAAAM,OAAA,CAAAR,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAmB,MAAA,CAAAoE,WAAA,kBAAAzF,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAgB,IAAA,CAAAd,CAAA,EAAAE,CAAA,gCAAAM,OAAA,CAAAH,CAAA,UAAAA,CAAA,YAAAyB,SAAA,yEAAA5B,CAAA,GAAAsF,MAAA,GAAAC,MAAA,EAAAzF,CAAA;AAAA,SAAA0F,eAAAxF,CAAA,EAAAJ,CAAA,WAAA6F,eAAA,CAAAzF,CAAA,KAAA0F,qBAAA,CAAA1F,CAAA,EAAAJ,CAAA,KAAAyB,2BAAA,CAAArB,CAAA,EAAAJ,CAAA,KAAA+F,gBAAA;AAAA,SAAAA,iBAAA,cAAA/D,SAAA;AAAA,SAAAP,4BAAArB,CAAA,EAAA6B,CAAA,QAAA7B,CAAA,2BAAAA,CAAA,SAAAqC,iBAAA,CAAArC,CAAA,EAAA6B,CAAA,OAAA/B,CAAA,MAAA8F,QAAA,CAAAhF,IAAA,CAAAZ,CAAA,EAAA6F,KAAA,6BAAA/F,CAAA,IAAAE,CAAA,CAAA8F,WAAA,KAAAhG,CAAA,GAAAE,CAAA,CAAA8F,WAAA,CAAAC,IAAA,aAAAjG,CAAA,cAAAA,CAAA,GAAAqB,KAAA,CAAAiB,IAAA,CAAApC,CAAA,oBAAAF,CAAA,+CAAAkG,IAAA,CAAAlG,CAAA,IAAAuC,iBAAA,CAAArC,CAAA,EAAA6B,CAAA;AAAA,SAAAQ,kBAAArC,CAAA,EAAA6B,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAA7B,CAAA,CAAAsB,MAAA,MAAAO,CAAA,GAAA7B,CAAA,CAAAsB,MAAA,YAAA1B,CAAA,MAAAK,CAAA,GAAAkB,KAAA,CAAAU,CAAA,GAAAjC,CAAA,GAAAiC,CAAA,EAAAjC,CAAA,IAAAK,CAAA,CAAAL,CAAA,IAAAI,CAAA,CAAAJ,CAAA,UAAAK,CAAA;AAAA,SAAAyF,sBAAA1F,CAAA,EAAAmD,CAAA,QAAArD,CAAA,WAAAE,CAAA,gCAAAiB,MAAA,IAAAjB,CAAA,CAAAiB,MAAA,CAAAC,QAAA,KAAAlB,CAAA,4BAAAF,CAAA,QAAAF,CAAA,EAAAK,CAAA,EAAAE,CAAA,EAAA2B,CAAA,EAAAD,CAAA,OAAAzB,CAAA,OAAAF,CAAA,iBAAAC,CAAA,IAAAL,CAAA,GAAAA,CAAA,CAAAc,IAAA,CAAAZ,CAAA,GAAA+B,IAAA,QAAAoB,CAAA,QAAAtC,MAAA,CAAAf,CAAA,MAAAA,CAAA,UAAAM,CAAA,uBAAAA,CAAA,IAAAR,CAAA,GAAAO,CAAA,CAAAS,IAAA,CAAAd,CAAA,GAAA4B,IAAA,MAAAG,CAAA,CAAAgD,IAAA,CAAAjF,CAAA,CAAA+B,KAAA,GAAAE,CAAA,CAAAP,MAAA,KAAA6B,CAAA,GAAA/C,CAAA,iBAAAJ,CAAA,IAAAE,CAAA,OAAAD,CAAA,GAAAD,CAAA,yBAAAI,CAAA,YAAAN,CAAA,eAAAgC,CAAA,GAAAhC,CAAA,cAAAe,MAAA,CAAAiB,CAAA,MAAAA,CAAA,2BAAA5B,CAAA,QAAAD,CAAA,aAAA4B,CAAA;AAAA,SAAA4D,gBAAAzF,CAAA,QAAAmB,KAAA,CAAAC,OAAA,CAAApB,CAAA,UAAAA,CAAA,IAGA;AAgBA,IAAMiG,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAEtD,IAAMC,WAAW,GAAG;EAChBC,EAAE,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAI,CAAC;EAC/BC,EAAE,EAAE;IAAEF,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAI,CAAC;EAC/BE,EAAE,EAAE;IAAEH,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAI,CAAC;EAC/BG,EAAE,EAAE;IAAEJ,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAI,CAAC;EAC/BI,EAAE,EAAE;IAAEL,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAK;AACnC,CAAC;AAED,IAAMK,aAAa,GAAG,EAAE;AACxB,IAAMC,UAAU,GAAG,GAAG;AACtB,IAAMC,cAAc,GAAG,GAAG;AAC1B,IAAMC,aAAa,GAAG,GAAG;AAEzB,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAIC,EAAE;EAAA,IAAEC,GAAG,GAAA3C,SAAA,CAAA/C,MAAA,QAAA+C,SAAA,QAAA4C,SAAA,GAAA5C,SAAA,MAAGqC,aAAa;EAAA,OAAMK,EAAE,GAAG,IAAI,GAAIC,GAAG;AAAA;AAC7D,IAAME,MAAM,GAAG,SAATA,MAAMA,CAAIC,EAAE;EAAA,IAAEH,GAAG,GAAA3C,SAAA,CAAA/C,MAAA,QAAA+C,SAAA,QAAA4C,SAAA,GAAA5C,SAAA,MAAGsC,UAAU;EAAA,OAAMQ,EAAE,GAAGH,GAAG,GAAI,IAAI;AAAA;AAE1D,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,MAAM,EAAI;EAC5B,OACIlG,KAAK,CAACC,OAAO,CAACiG,MAAM,CAAC,IACrBA,MAAM,CAAC/F,MAAM,KAAK,CAAC,IACnB+F,MAAM,CAACC,KAAK,CAAC,UAAAC,IAAI;IAAA,OAAIhC,MAAM,CAACiC,QAAQ,CAACD,IAAI,CAAC;EAAA,EAAC,IAC3CF,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,IACrBA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;AAE7B,CAAC;;AAED;AACA;AACA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIJ,MAAM,EAAEK,IAAI,EAAEC,IAAI,EAAK;EAChD,IAAI,CAACP,aAAa,CAACC,MAAM,CAAC,EAAE;IACxB,OAAO,IAAI;EACf;EAEA,IAAMO,UAAU,GAAGF,IAAI,CAACG,oBAAoB,CAACF,IAAI,CAAC,IAAID,IAAI,CAACI,aAAa,CAAC,CAAC;EAC1E,IAAMC,QAAQ,GAAGV,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;EACtC,IAAMW,SAAS,GAAGX,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;EACvC,IAAMY,UAAU,GAAGF,QAAQ,GAAGH,UAAU;EACxC,IAAMM,WAAW,GAAGF,SAAS,GAAGJ,UAAU;EAC1C,IAAMO,OAAO,GAAGrB,MAAM,CAACmB,UAAU,EAAEvB,aAAa,CAAC;EACjD,IAAM0B,QAAQ,GAAGtB,MAAM,CAACoB,WAAW,EAAExB,aAAa,CAAC;EAEnD,OAAO;IACHW,MAAM,EAANA,MAAM;IACNM,IAAI,EAAJA,IAAI;IACJC,UAAU,EAAVA,UAAU;IACVG,QAAQ,EAARA,QAAQ;IACRC,SAAS,EAATA,SAAS;IACTC,UAAU,EAAVA,UAAU;IACVC,WAAW,EAAXA,WAAW;IACXC,OAAO,EAAPA,OAAO;IACPC,QAAQ,EAARA,QAAQ;IACRC,KAAK,EAAED,QAAQ,GAAGD;EACtB,CAAC;AACL,CAAC;;AAED;AACA;AACA,IAAMG,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAqE;EAAA,IAA/DC,YAAY,GAAAD,IAAA,CAAZC,YAAY;IAAEC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAAC,kBAAA,GAAAJ,IAAA,CAAEK,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,CAAC,GAAAA,kBAAA;EAC7E,IAAME,KAAK,GAAG3C,WAAW,CAACwC,QAAQ,CAAC;EACnC,IAAI,CAACG,KAAK,IAAI,CAACL,YAAY,IAAI,CAACC,aAAa,EAAE;IAC3C,OAAO,IAAI;EACf;EAEA,IAAMK,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEzD,MAAM,CAACqD,aAAa,CAAC,IAAI,CAAC,CAAC;EAC3D,IAAMK,KAAK,GAAGF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,KAAK,CAACzC,KAAK,GAAG0C,WAAW,CAAC;EACpD,IAAMI,KAAK,GAAGH,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,KAAK,CAACxC,MAAM,GAAGyC,WAAW,CAAC;EACrD,IAAMK,IAAI,GAAGJ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACK,IAAI,CAACZ,YAAY,GAAGS,KAAK,CAAC,CAAC;EACzD,IAAMI,IAAI,GAAGN,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACK,IAAI,CAACX,aAAa,GAAGS,KAAK,CAAC,CAAC;EAC1D,IAAMI,MAAM,GAAG,EAAE;EAEjB,KAAK,IAAIC,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGF,IAAI,EAAEE,GAAG,EAAE,EAAE;IACjC,KAAK,IAAIC,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGL,IAAI,EAAEK,GAAG,EAAE,EAAE;MACjC,IAAMC,GAAG,GAAGD,GAAG,GAAGP,KAAK;MACvB,IAAMS,GAAG,GAAGH,GAAG,GAAGL,KAAK;MACvB,IAAMf,OAAO,GAAGY,IAAI,CAACY,GAAG,CAACd,KAAK,CAACzC,KAAK,EAAEoC,YAAY,GAAGiB,GAAG,CAAC;MACzD,IAAMrB,QAAQ,GAAGW,IAAI,CAACY,GAAG,CAACd,KAAK,CAACxC,MAAM,EAAEoC,aAAa,GAAGiB,GAAG,CAAC;MAE5DJ,MAAM,CAACzE,IAAI,CAAC;QACR+E,EAAE,KAAAC,MAAA,CAAKN,GAAG,GAAG,CAAC,OAAAM,MAAA,CAAIL,GAAG,GAAG,CAAC,CAAE;QAC3BM,KAAK,EAAEP,GAAG,GAAGJ,IAAI,GAAGK,GAAG,GAAG,CAAC;QAC3BD,GAAG,EAAEA,GAAG,GAAG,CAAC;QACZC,GAAG,EAAEA,GAAG,GAAG,CAAC;QACZC,GAAG,EAAHA,GAAG;QACHC,GAAG,EAAHA,GAAG;QACHvB,OAAO,EAAPA,OAAO;QACPC,QAAQ,EAARA,QAAQ;QACR2B,SAAS,EAAE5B,OAAO,GAAGU,KAAK,CAACzC,KAAK,IAAIgC,QAAQ,GAAGS,KAAK,CAACxC;MACzD,CAAC,CAAC;IACN;EACJ;EAEA,OAAO;IACH2D,YAAY,EAAEnB,KAAK,CAACzC,KAAK;IACzB6D,aAAa,EAAEpB,KAAK,CAACxC,MAAM;IAC3BuC,aAAa,EAAEE,WAAW;IAC1BN,YAAY,EAAZA,YAAY;IACZC,aAAa,EAAbA,aAAa;IACbQ,KAAK,EAALA,KAAK;IACLC,KAAK,EAALA,KAAK;IACLC,IAAI,EAAJA,IAAI;IACJE,IAAI,EAAJA,IAAI;IACJa,WAAW,EAAEZ,MAAM,CAAChI,MAAM;IAC1BgI,MAAM,EAANA;EACJ,CAAC;AACL,CAAC;;AAED;AACA,IAAMa,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAK;EACnD,IAAAC,YAAA,GAAA/E,cAAA,CAAiC8E,WAAW;IAArCE,IAAI,GAAAD,YAAA;IAAEE,IAAI,GAAAF,YAAA;IAAEG,IAAI,GAAAH,YAAA;IAAEI,IAAI,GAAAJ,YAAA;EAC7B,IAAMK,MAAM,GAAG,CAACF,IAAI,GAAGF,IAAI,IAAIH,IAAI,CAAC7B,YAAY;EAChD,IAAMqC,MAAM,GAAG,CAACF,IAAI,GAAGF,IAAI,IAAIJ,IAAI,CAAC5B,aAAa;EACjD,IAAMqC,IAAI,GAAGN,IAAI,GAAGJ,KAAK,CAACX,GAAG,GAAGmB,MAAM;EACtC,IAAMG,KAAK,GAAGD,IAAI,GAAGV,KAAK,CAACjC,OAAO,GAAGyC,MAAM;EAC3C,IAAMI,GAAG,GAAGL,IAAI,GAAGP,KAAK,CAACV,GAAG,GAAGmB,MAAM;EACrC,IAAMI,MAAM,GAAGD,GAAG,GAAGZ,KAAK,CAAChC,QAAQ,GAAGyC,MAAM;EAE5C,OAAO,CAACC,IAAI,EAAEG,MAAM,EAAEF,KAAK,EAAEC,GAAG,CAAC;AACrC,CAAC;;AAED;AACA;AACA,IAAME,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIb,IAAI,EAAEC,WAAW,EAAK;EACnD,IAAI,CAACD,IAAI,IAAI,CAACjD,aAAa,CAACkD,WAAW,CAAC,EAAE;IACtC,OAAO,IAAI;EACf;EAEA,IAAAa,aAAA,GAAA3F,cAAA,CAAiC8E,WAAW;IAArCE,IAAI,GAAAW,aAAA;IAAEV,IAAI,GAAAU,aAAA;IAAET,IAAI,GAAAS,aAAA;IAAER,IAAI,GAAAQ,aAAA;EAC7B,IAAMP,MAAM,GAAG,CAACF,IAAI,GAAGF,IAAI,IAAIH,IAAI,CAAC7B,YAAY;EAChD,IAAMqC,MAAM,GAAG,CAACF,IAAI,GAAGF,IAAI,IAAIJ,IAAI,CAAC5B,aAAa;EACjD,IAAM2C,YAAY,GAAGf,IAAI,CAACL,YAAY,GAAGjB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEqB,IAAI,CAAClB,IAAI,GAAG,CAAC,CAAC,GAAGkB,IAAI,CAACpB,KAAK;EAChF,IAAMoC,aAAa,GAAGhB,IAAI,CAACJ,aAAa,GAAGlB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEqB,IAAI,CAAChB,IAAI,GAAG,CAAC,CAAC,GAAGgB,IAAI,CAACnB,KAAK;EAElF,OAAO,CACHsB,IAAI,EACJG,IAAI,GAAGU,aAAa,GAAGR,MAAM,EAC7BL,IAAI,GAAGY,YAAY,GAAGR,MAAM,EAC5BD,IAAI,CACP;AACL,CAAC;AAED,IAAMW,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGjB,IAAI,EAAI;EAClC,IAAI,CAACA,IAAI,EAAE;IACP,OAAO,IAAI;EACf;EAEA,OAAO;IACHjE,KAAK,EAAEiE,IAAI,CAACL,YAAY,GAAGjB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEqB,IAAI,CAAClB,IAAI,GAAG,CAAC,CAAC,GAAGkB,IAAI,CAACpB,KAAK;IAClE5C,MAAM,EAAEgE,IAAI,CAACJ,aAAa,GAAGlB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEqB,IAAI,CAAChB,IAAI,GAAG,CAAC,CAAC,GAAGgB,IAAI,CAACnB;EACnE,CAAC;AACL,CAAC;AAED,IAAMqC,eAAe,GAAG,SAAlBA,eAAeA,CAAGlE,MAAM;EAAA,OAAI,CAC9B,CAACA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAC3B,CAACA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAC9B;AAAA;;AAED;AACA;AACA,IAAMmE,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,MAAM,EAAI;EAChC,IAAI,EAACA,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEC,WAAW,GAAE;IACtB,OAAOD,MAAM;EACjB;EAEA,OAAO,IAAIE,mBAAY,CAAC;IACpBC,QAAQ,EAAEH,MAAM,CAACC,WAAW,CAAC,CAAC,CAACG,GAAG,CAAC,UAAAC,OAAO;MAAA,OAAIA,OAAO,CAACC,KAAK,CAAC,CAAC;IAAA;EACjE,CAAC,CAAC;AACN,CAAC;;AAED;AACA;AACA,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAGC,KAAK,EAAI;EAAA,IAAAC,iBAAA,EAAAC,iBAAA,EAAAC,gBAAA,EAAAC,gBAAA;EACxB,IAAMC,MAAM,GAAG;IACXC,OAAO,GAAAL,iBAAA,GAAED,KAAK,CAACO,UAAU,cAAAN,iBAAA,uBAAhBA,iBAAA,CAAAtL,IAAA,CAAAqL,KAAmB,CAAC;IAC7BQ,OAAO,GAAAN,iBAAA,GAAEF,KAAK,CAACS,UAAU,cAAAP,iBAAA,uBAAhBA,iBAAA,CAAAvL,IAAA,CAAAqL,KAAmB,CAAC;IAC7BU,MAAM,GAAAP,gBAAA,GAAEH,KAAK,CAACW,SAAS,cAAAR,gBAAA,uBAAfA,gBAAA,CAAAxL,IAAA,CAAAqL,KAAkB,CAAC;IAC3B5E,MAAM,GAAAgF,gBAAA,GAAEJ,KAAK,CAACY,SAAS,cAAAR,gBAAA,uBAAfA,gBAAA,CAAAzL,IAAA,CAAAqL,KAAkB;EAC9B,CAAC;EAED,IAAIA,KAAK,YAAYa,kBAAW,EAAE;IAC9B,IAAMC,WAAW,GAAG,IAAID,kBAAW,CAAAhI,aAAA,CAAAA,aAAA,KAC5BwH,MAAM;MACTb,MAAM,EAAED,iBAAiB,CAACS,KAAK,CAACe,SAAS,CAAC,CAAC,CAAC;MAC5CC,KAAK,EAAEhB,KAAK,CAACiB,QAAQ,CAAC;IAAC,EAC1B,CAAC;IACFH,WAAW,CAACtM,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC;IAC1C,OAAOsM,WAAW;EACtB;EAEA,IAAId,KAAK,YAAYkB,gBAAS,EAAE;IAC5B,IAAMJ,YAAW,GAAG,IAAII,gBAAS,CAAArI,aAAA,CAAAA,aAAA,KAC1BwH,MAAM;MACTb,MAAM,EAAEQ,KAAK,CAACe,SAAS,CAAC;IAAC,EAC5B,CAAC;IACFD,YAAW,CAACtM,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC;IAC1C,OAAOsM,YAAW;EACtB;EAEA,IAAId,KAAK,YAAYmB,iBAAU,EAAE;IAC7B,IAAML,aAAW,GAAG,IAAIK,iBAAU,CAAAtI,aAAA,CAAAA,aAAA,KAC3BwH,MAAM;MACTb,MAAM,EAAEQ,KAAK,CAACe,SAAS,CAAC;IAAC,EAC5B,CAAC;IACFD,aAAW,CAACtM,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC;IAC1C,OAAOsM,aAAW;EACtB;EAEA,OAAO,IAAI;AACf,CAAC;AAED,IAAMM,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,WAAW,EAAI;EACrC,IAAI,CAACA,WAAW,EAAE;IACd;EACJ;EAEAA,WAAW,CACNC,SAAS,CAAC,CAAC,CACXC,QAAQ,CAAC,CAAC,CACV5I,MAAM,CAAC,UAAAqH,KAAK;IAAA,OAAIA,KAAK,CAACzL,GAAG,CAAC,mBAAmB,CAAC;EAAA,EAAC,CAC/CuE,OAAO,CAAC,UAAAkH,KAAK;IAAA,OAAIqB,WAAW,CAACG,WAAW,CAACxB,KAAK,CAAC;EAAA,EAAC;AACzD,CAAC;;AAED;AACA,IAAMyB,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,SAAS,EAAEC,SAAS,EAAEC,YAAY,EAAK;EAC/D,IAAI,CAACF,SAAS,IAAI,CAACC,SAAS,EAAE;IAC1B;EACJ;EAEAP,iBAAiB,CAACO,SAAS,CAAC;EAE5BD,SAAS,CACJJ,SAAS,CAAC,CAAC,CACXC,QAAQ,CAAC,CAAC,CACV5I,MAAM,CAAC,UAAAqH,KAAK,EAAI;IAAA,IAAA6B,kBAAA;IACb,IAAI7B,KAAK,KAAK4B,YAAY,EAAE;MACxB,OAAO,KAAK;IAChB;IACA,IAAI,EAAC5B,KAAK,aAALA,KAAK,gBAAA6B,kBAAA,GAAL7B,KAAK,CAAES,UAAU,cAAAoB,kBAAA,eAAjBA,kBAAA,CAAAlN,IAAA,CAAAqL,KAAoB,CAAC,GAAE;MACxB,OAAO,KAAK;IAChB;IACA,IAAIA,KAAK,CAACzL,GAAG,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE;MAClC,OAAO,KAAK;IAChB;IACA,IAAIyL,KAAK,CAACzL,GAAG,CAAC,KAAK,CAAC,KAAK,YAAY,IAAIyL,KAAK,CAACzL,GAAG,CAAC,KAAK,CAAC,KAAK,YAAY,EAAE;MACxE,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI;EACf,CAAC,CAAC,CACDuE,OAAO,CAAC,UAAAkH,KAAK,EAAI;IACd,IAAMc,WAAW,GAAGf,UAAU,CAACC,KAAK,CAAC;IACrC,IAAIc,WAAW,EAAE;MACba,SAAS,CAACG,QAAQ,CAAChB,WAAW,CAAC;IACnC;EACJ,CAAC,CAAC;AACV,CAAC;AAED,IAAMiB,aAAa,GAAG,SAAhBA,aAAaA,CAAA;EAAA,OACf,IAAI/J,OAAO,CAAC,UAAAC,OAAO,EAAI;IACnB+J,qBAAqB,CAAC,YAAM;MACxBA,qBAAqB,CAAC/J,OAAO,CAAC;IAClC,CAAC,CAAC;EACN,CAAC,CAAC;AAAA;AAEN,IAAMgK,aAAa,GAAG,SAAhBA,aAAaA,CAAGZ,WAAW;EAAA,OAC7B,IAAIrJ,OAAO,CAAC,UAAAC,OAAO,EAAI;IAAA,IAAAiK,qBAAA;IACnB,IAAI,CAACb,WAAW,EAAE;MACdpJ,OAAO,CAAC,CAAC;MACT;IACJ;IAEA,IAAIxC,IAAI,GAAG,KAAK;IAChB,IAAM0M,MAAM,GAAG,SAATA,MAAMA,CAAA,EAAS;MACjB,IAAI1M,IAAI,EAAE;QACN;MACJ;MACAA,IAAI,GAAG,IAAI;MACXwC,OAAO,CAAC,CAAC;IACb,CAAC;IAEDoJ,WAAW,CAACe,IAAI,CAAC,gBAAgB,EAAED,MAAM,CAAC;IAC1CE,UAAU,CAACF,MAAM,EAAE,GAAG,CAAC;IACvB,CAAAD,qBAAA,GAAAb,WAAW,CAACiB,UAAU,cAAAJ,qBAAA,eAAtBA,qBAAA,CAAAvN,IAAA,CAAA0M,WAAyB,CAAC;EAC9B,CAAC,CAAC;AAAA;;AAEN;AACA;AACA,IAAMkB,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIlB,WAAW;EAAA,IAAEmB,OAAO,GAAApK,SAAA,CAAA/C,MAAA,QAAA+C,SAAA,QAAA4C,SAAA,GAAA5C,SAAA,MAAG,IAAI;EAAA,OACxD,IAAIJ,OAAO,CAAC,UAAAC,OAAO,EAAI;IAAA,IAAAwK,sBAAA;IACnB,IAAI,CAACpB,WAAW,EAAE;MACdpJ,OAAO,CAAC,CAAC;MACT;IACJ;IAEA,IAAMyK,SAAS,GAAG,EAAE;IACpB,IAAIC,OAAO,GAAG,CAAC;IACf,IAAIlN,IAAI,GAAG,KAAK;IAChB,IAAImN,SAAS,GAAG,IAAI;IAEpB,IAAMT,MAAM,GAAG,SAATA,MAAMA,CAAA,EAAS;MACjB,IAAI1M,IAAI,EAAE;QACN;MACJ;MACAA,IAAI,GAAG,IAAI;MACX,IAAImN,SAAS,EAAE;QACXC,YAAY,CAACD,SAAS,CAAC;MAC3B;MACAF,SAAS,CAAC5J,OAAO,CAAC,UAAAgK,OAAO;QAAA,OAAIA,OAAO,CAAC,CAAC;MAAA,EAAC;MACvC7K,OAAO,CAAC,CAAC;IACb,CAAC;IAED,IAAM8K,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,KAAK,EAAI;MAC5B,IAAIJ,SAAS,EAAE;QACXC,YAAY,CAACD,SAAS,CAAC;MAC3B;MACAA,SAAS,GAAGP,UAAU,CAAC,YAAM;QACzB,IAAIM,OAAO,IAAI,CAAC,EAAE;UACdR,MAAM,CAAC,CAAC;QACZ;MACJ,CAAC,EAAEa,KAAK,CAAC;IACb,CAAC;IAED,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;MAClBN,OAAO,IAAI,CAAC;MACZ,IAAIC,SAAS,EAAE;QACXC,YAAY,CAACD,SAAS,CAAC;QACvBA,SAAS,GAAG,IAAI;MACpB;IACJ,CAAC;IAED,IAAMM,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAS;MAChBP,OAAO,GAAG7F,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE4F,OAAO,GAAG,CAAC,CAAC;MAClC,IAAIA,OAAO,KAAK,CAAC,EAAE;QACfI,cAAc,CAAC,GAAG,CAAC;MACvB;IACJ,CAAC;IAED,IAAM9L,IAAI,GAAG,SAAPA,IAAIA,CAAIkM,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAK;MACpC,IAAI,EAACF,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEG,EAAE,GAAE;QACb;MACJ;MACAH,MAAM,CAACG,EAAE,CAACF,IAAI,EAAEC,OAAO,CAAC;MACxBX,SAAS,CAAC9J,IAAI,CAAC;QAAA,IAAA2K,UAAA;QAAA,QAAAA,UAAA,GAAMJ,MAAM,CAACK,EAAE,cAAAD,UAAA,uBAATA,UAAA,CAAA5O,IAAA,CAAAwO,MAAM,EAAMC,IAAI,EAAEC,OAAO,CAAC;MAAA,EAAC;IACpD,CAAC;IAEDhC,WAAW,CACNC,SAAS,CAAC,CAAC,CACXC,QAAQ,CAAC,CAAC,CACV5I,MAAM,CAAC,UAAAqH,KAAK;MAAA,OAAIA,KAAK,CAACzL,GAAG,CAAC,mBAAmB,CAAC;IAAA,EAAC,CAC/CuE,OAAO,CAAC,UAAAkH,KAAK,EAAI;MAAA,IAAAyD,gBAAA;MACd,IAAMjE,MAAM,IAAAiE,gBAAA,GAAGzD,KAAK,CAACe,SAAS,cAAA0C,gBAAA,uBAAfA,gBAAA,CAAA9O,IAAA,CAAAqL,KAAkB,CAAC;MAClC,IAAI,CAACR,MAAM,EAAE;QACT;MACJ;MAEA,CACI,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,CACpB,CAAC1G,OAAO,CAAC,UAAAsK,IAAI;QAAA,OAAInM,IAAI,CAACuI,MAAM,EAAE4D,IAAI,EAAEH,OAAO,CAAC;MAAA,EAAC;MAE9C,CACI,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,CACpB,CAACnK,OAAO,CAAC,UAAAsK,IAAI;QAAA,OAAInM,IAAI,CAACuI,MAAM,EAAE4D,IAAI,EAAEF,KAAK,CAAC;MAAA,EAAC;;MAE5C;MACA;MACA,IAAIlD,KAAK,YAAY0D,sBAAkB,IAAI,OAAOlE,MAAM,CAACmE,QAAQ,KAAK,UAAU,EAAE;QAAA,IAAAC,oBAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,mBAAA,EAAAC,eAAA;QAC9E,IAAMxI,IAAI,IAAAmI,oBAAA,GAAGvC,WAAW,CAAC6C,OAAO,cAAAN,oBAAA,uBAAnBA,oBAAA,CAAAjP,IAAA,CAAA0M,WAAsB,CAAC;QACpC,IAAM8C,IAAI,IAAAN,oBAAA,GAAGxC,WAAW,CAAC+C,OAAO,cAAAP,oBAAA,uBAAnBA,oBAAA,CAAAlP,IAAA,CAAA0M,WAAsB,CAAC;QACpC,IAAMjG,MAAM,GAAGK,IAAI,aAAJA,IAAI,gBAAAqI,qBAAA,GAAJrI,IAAI,CAAE4I,eAAe,cAAAP,qBAAA,uBAArBA,qBAAA,CAAAnP,IAAA,CAAA8G,IAAI,EAAoB0I,IAAI,CAAC;QAC5C,IAAMxI,UAAU,GAAGF,IAAI,aAAJA,IAAI,gBAAAsI,mBAAA,GAAJtI,IAAI,CAAEI,aAAa,cAAAkI,mBAAA,uBAAnBA,mBAAA,CAAApP,IAAA,CAAA8G,IAAsB,CAAC;QAC1C,IAAM6I,UAAU,GAAG7I,IAAI,aAAJA,IAAI,gBAAAuI,mBAAA,GAAJvI,IAAI,CAAE8I,aAAa,cAAAP,mBAAA,uBAAnBA,mBAAA,CAAArP,IAAA,CAAA8G,IAAsB,CAAC;QAC1C,IAAM+I,KAAK,GAAGpJ,MAAM,IAAIO,UAAU,IAAI2I,UAAU,GAC1C9E,MAAM,CAACmE,QAAQ,CAACvI,MAAM,EAAEO,UAAU,EAAE,CAAC,EAAE2I,UAAU,CAAC,GAClD,IAAI;QACV,IAAMG,UAAU,GAAGD,KAAK,aAALA,KAAK,gBAAAP,eAAA,GAALO,KAAK,CAAEE,QAAQ,cAAAT,eAAA,uBAAfA,eAAA,CAAAtP,IAAA,CAAA6P,KAAkB,CAAC;QAEtC,IAAIA,KAAK,KAAKC,UAAU,KAAK,CAAC,IAAIA,UAAU,KAAK,CAAC,CAAC,EAAE;UAAA,IAAAE,SAAA;UACjD1B,OAAO,CAAC,CAAC;UACT,IAAM2B,kBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;YAAA,IAAAC,gBAAA,EAAAC,SAAA,EAAAC,sBAAA;YAC5B,IAAMC,SAAS,IAAAH,gBAAA,GAAGL,KAAK,CAACE,QAAQ,cAAAG,gBAAA,uBAAdA,gBAAA,CAAAlQ,IAAA,CAAA6P,KAAiB,CAAC;YACpC,IAAIQ,SAAS,KAAK,CAAC,IAAIA,SAAS,KAAK,CAAC,EAAE;cACpC;YACJ;YACA,CAAAF,SAAA,GAAAN,KAAK,CAAChB,EAAE,cAAAsB,SAAA,eAARA,SAAA,CAAAnQ,IAAA,CAAA6P,KAAK,EAAM,QAAQ,EAAEI,kBAAiB,CAAC;YACvC1B,KAAK,CAAC,CAAC;YACP,CAAA6B,sBAAA,GAAA1D,WAAW,CAACiB,UAAU,cAAAyC,sBAAA,eAAtBA,sBAAA,CAAApQ,IAAA,CAAA0M,WAAyB,CAAC;UAC9B,CAAC;UAED,CAAAsD,SAAA,GAAAH,KAAK,CAAClB,EAAE,cAAAqB,SAAA,eAARA,SAAA,CAAAhQ,IAAA,CAAA6P,KAAK,EAAM,QAAQ,EAAEI,kBAAiB,CAAC;UACvClC,SAAS,CAAC9J,IAAI,CAAC;YAAA,IAAAqM,UAAA;YAAA,QAAAA,UAAA,GAAMT,KAAK,CAAChB,EAAE,cAAAyB,UAAA,uBAARA,UAAA,CAAAtQ,IAAA,CAAA6P,KAAK,EAAM,QAAQ,EAAEI,kBAAiB,CAAC;UAAA,EAAC;UAE7D,IAAIH,UAAU,KAAK,CAAC,IAAID,KAAK,CAACU,IAAI,EAAE;YAChCV,KAAK,CAACU,IAAI,CAAC,CAAC;UAChB;QACJ;MACJ;IACJ,CAAC,CAAC;IAENnC,cAAc,CAAC,GAAG,CAAC;IACnBV,UAAU,CAACF,MAAM,EAAEK,OAAO,CAAC;IAC3B,CAAAC,sBAAA,GAAApB,WAAW,CAACiB,UAAU,cAAAG,sBAAA,eAAtBA,sBAAA,CAAA9N,IAAA,CAAA0M,WAAyB,CAAC;EAC9B,CAAC,CAAC;AAAA;AAEN,IAAM8D,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGC,MAAM,EAAI;EACnC,IAAMC,aAAa,GACfD,MAAM,CAACpE,KAAK,CAACsE,SAAS,IAAIC,MAAM,CAACC,gBAAgB,CAACJ,MAAM,CAAC,CAACE,SAAS,IAAI,EAAE;EAC7E,IAAMG,KAAK,GAAGJ,aAAa,CAACI,KAAK,CAAC,qBAAqB,CAAC;EAExD,IAAI,CAACA,KAAK,EAAE;IACR,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7B;EAEA,OAAOA,KAAK,CAAC,CAAC,CAAC,CACVC,KAAK,CAAC,GAAG,CAAC,CACV9F,GAAG,CAAC,UAAAtE,IAAI;IAAA,OAAIhC,MAAM,CAACgC,IAAI,CAACqK,IAAI,CAAC,CAAC,CAAC;EAAA,EAAC,CAChChN,MAAM,CAAC,UAAA2C,IAAI;IAAA,OAAIhC,MAAM,CAACiC,QAAQ,CAACD,IAAI,CAAC;EAAA,EAAC;AAC9C,CAAC;AAGD,IAAIsK,cAAc,GAAG,IAAI;AAEzB,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,SAAS;EAAA,OAC3B,IAAIC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAACD,SAAS,CAAC;AAAA;AAEpD,IAAME,UAAU;EAAA,IAAAC,KAAA,GAAA9N,iBAAA,cAAA9B,YAAA,GAAAoB,CAAA,CAAG,SAAAyO,QAAA;IAAA,OAAA7P,YAAA,GAAAmB,CAAA,WAAA2O,QAAA;MAAA,kBAAAA,QAAA,CAAAnS,CAAA;QAAA;UACf,IAAI,CAAC4R,cAAc,EAAE;YACjBA,cAAc,GAAGC,aAAa,CAAC,gBAAgB,CAAC,CAAC3N,IAAI,CAAC,UAAAkO,GAAG;cAAA,OAAIA,GAAG,CAACC,OAAO;YAAA,EAAC;UAC7E;UAAC,OAAAF,QAAA,CAAAvQ,CAAA,IACMgQ,cAAc;MAAA;IAAA,GAAAM,OAAA;EAAA,CACxB;EAAA,gBALKF,UAAUA,CAAA;IAAA,OAAAC,KAAA,CAAA5N,KAAA,OAAAD,SAAA;EAAA;AAAA,GAKf;;AAGD;AACA;AACA,IAAMkO,gBAAgB;EAAA,IAAAC,KAAA,GAAApO,iBAAA,cAAA9B,YAAA,GAAAoB,CAAA,CAAG,SAAA+O,SAAOC,GAAG,EAAEtM,KAAK,EAAEC,MAAM;IAAA,IAAAgL,MAAA,EAAAsB,GAAA,EAAAC,aAAA,EAAAN,OAAA,EAAAO,QAAA;IAAA,OAAAvQ,YAAA,GAAAmB,CAAA,WAAAqP,SAAA;MAAA,kBAAAA,SAAA,CAAA7S,CAAA;QAAA;UACxCoR,MAAM,GAAG0B,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;UAC/C3B,MAAM,CAACjL,KAAK,GAAG2C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAAC7M,KAAK,CAAC,CAAC;UAC7CiL,MAAM,CAAChL,MAAM,GAAG0C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAAC5M,MAAM,CAAC,CAAC;UACzCsM,GAAG,GAAGtB,MAAM,CAAC6B,UAAU,CAAC,IAAI,CAAC;UACnCP,GAAG,CAACQ,SAAS,GAAG,MAAM;UACtBR,GAAG,CAACS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE/B,MAAM,CAACjL,KAAK,EAAEiL,MAAM,CAAChL,MAAM,CAAC;UAEzCuM,aAAa,GAAGzR,KAAK,CAACiB,IAAI,CAC5BsQ,GAAG,CAACW,gBAAgB,CAAC,2CAA2C,CACpE,CAAC,CAACzO,MAAM,CAAC,UAAA2C,IAAI;YAAA,OAAIA,IAAI,CAACnB,KAAK,GAAG,CAAC,IAAImB,IAAI,CAAClB,MAAM,GAAG,CAAC;UAAA,EAAC;UAAA,KAE/CuM,aAAa,CAACtR,MAAM;YAAAwR,SAAA,CAAA7S,CAAA;YAAA;UAAA;UACpB2S,aAAa,CAAC7N,OAAO,CAAC,UAAAuO,WAAW,EAAI;YACjC,IAAMC,WAAW,GAAG/B,MAAM,CAACC,gBAAgB,CAAC6B,WAAW,CAACE,aAAa,IAAIF,WAAW,CAAC;YACrF,IAAMG,WAAW,GAAGjC,MAAM,CAACC,gBAAgB,CAAC6B,WAAW,CAAC;YACxD,IAAM/G,OAAO,GAAGhH,MAAM,CAACgO,WAAW,CAAChH,OAAO,IAAIkH,WAAW,CAAClH,OAAO,IAAI,CAAC,CAAC;YACvE,IAAMgF,SAAS,GAAGH,oBAAoB,CAACkC,WAAW,CAAC;YACnD,IAAMI,eAAe,GAAGH,WAAW,CAACG,eAAe;YAEnDf,GAAG,CAACgB,IAAI,CAAC,CAAC;YACVhB,GAAG,CAACiB,WAAW,GAAGrO,MAAM,CAACiC,QAAQ,CAAC+E,OAAO,CAAC,GAAGA,OAAO,GAAG,CAAC;YAExD,IAAImH,eAAe,IAAIA,eAAe,KAAK,kBAAkB,IAAIA,eAAe,KAAK,aAAa,EAAE;cAChGf,GAAG,CAACQ,SAAS,GAAGO,eAAe;cAC/Bf,GAAG,CAACS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE/B,MAAM,CAACjL,KAAK,EAAEiL,MAAM,CAAChL,MAAM,CAAC;YACnD;YAEA,IAAIkL,SAAS,CAACjQ,MAAM,KAAK,CAAC,EAAE;cACxBqR,GAAG,CAACkB,YAAY,CAAAvP,KAAA,CAAhBqO,GAAG,EAAA3Q,kBAAA,CAAiBuP,SAAS,EAAC;YAClC,CAAC,MAAM;cACHoB,GAAG,CAACkB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtC;YAEAlB,GAAG,CAACmB,SAAS,CAACR,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;YAChCX,GAAG,CAACoB,OAAO,CAAC,CAAC;UACjB,CAAC,CAAC;UAAC,OAAAjB,SAAA,CAAAjR,CAAA,IAEIwP,MAAM;QAAA;UAAAyB,SAAA,CAAA7S,CAAA;UAAA,OASKgS,UAAU,CAAC,CAAC;QAAA;UAA5BK,OAAO,GAAAQ,SAAA,CAAA9P,CAAA;UAAA8P,SAAA,CAAA7S,CAAA;UAAA,OACUqS,OAAO,CAAC0B,QAAQ,CAACtB,GAAG,EAAE;YACzCuB,KAAK,EAAE,CAAC;YACRP,eAAe,EAAE;UACrB,CAAC,CAAC;QAAA;UAHIb,QAAQ,GAAAC,SAAA,CAAA9P,CAAA;UAKd;UACA;UACA;UACA;UACA2P,GAAG,CAACmB,SAAS,CAACjB,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAExB,MAAM,CAACjL,KAAK,EAAEiL,MAAM,CAAChL,MAAM,CAAC;UAAC,OAAAyM,SAAA,CAAAjR,CAAA,IAEpDwP,MAAM;MAAA;IAAA,GAAAoB,QAAA;EAAA,CAChB;EAAA,gBA5DKF,gBAAgBA,CAAA2B,EAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAA5B,KAAA,CAAAlO,KAAA,OAAAD,SAAA;EAAA;AAAA,GA4DrB;AAED,IAAMgQ,SAAS,GAAG,SAAZA,SAASA,CAAGC,GAAG;EAAA,OACjB,IAAIrQ,OAAO,CAAC,UAACC,OAAO,EAAEqQ,MAAM,EAAK;IAC7B,IAAMC,GAAG,GAAG,IAAIC,KAAK,CAAC,CAAC;IACvBD,GAAG,CAACE,MAAM,GAAG;MAAA,OAAMxQ,OAAO,CAACsQ,GAAG,CAAC;IAAA;IAC/BA,GAAG,CAACG,OAAO,GAAGJ,MAAM;IACpBC,GAAG,CAACF,GAAG,GAAGA,GAAG;EACjB,CAAC,CAAC;AAAA;AAEN,IAAMM,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAAqD;EAAA,IAA/CC,MAAM,GAAAD,KAAA,CAANC,MAAM;IAAEC,WAAW,GAAAF,KAAA,CAAXE,WAAW;IAAEC,YAAY,GAAAH,KAAA,CAAZG,YAAY;IAAEC,KAAK,GAAAJ,KAAA,CAALI,KAAK;EACnE,IAAI,EAACH,MAAM,aAANA,MAAM,eAANA,MAAM,CAAExT,MAAM,GAAE;IACjB;EACJ;EAEA,IAAM4T,WAAW,GAAGH,WAAW,GAAGC,YAAY,GAAG,WAAW,GAAG,UAAU;EACzE,IAAMG,GAAG,GAAG,IAAIC,YAAK,CAAC;IAClBF,WAAW,EAAXA,WAAW;IACXG,IAAI,EAAE,IAAI;IACVC,MAAM,EAAE,CAACP,WAAW,EAAEC,YAAY,CAAC;IACnCO,QAAQ,EAAE;EACd,CAAC,CAAC;EAEFT,MAAM,CAAC/P,OAAO,CAAC,UAACwC,IAAI,EAAEuC,KAAK,EAAK;IAC5B,IAAIA,KAAK,GAAG,CAAC,EAAE;MACXqL,GAAG,CAACK,OAAO,CAAC,CAACT,WAAW,EAAEC,YAAY,CAAC,EAAEE,WAAW,CAAC;IACzD;IAEAC,GAAG,CAACM,QAAQ,CAAClO,IAAI,CAACmO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAEX,WAAW,EAAEC,YAAY,EAAE/N,SAAS,EAAE,MAAM,CAAC;EACrF,CAAC,CAAC;EAEFkO,GAAG,CAACxB,IAAI,CAACgC,kBAAkB,IAAA9L,MAAA,CAAIoL,KAAK,IAAI,iBAAiB,SAAM,CAAC,CAAC;AACrE,CAAC;AAEc,SAAAW,SAASC,KAAK,EAAE;EAAA,IAAAC,kBAAA;EAC3B,IAAQC,OAAO,GAAKF,KAAK,CAAjBE,OAAO;EACf,IAAAC,SAAA,GAA0B,IAAAC,qBAAQ,EAAC,CAAC;IAA5BpK,GAAG,GAAAmK,SAAA,CAAHnK,GAAG;IAAEqK,QAAQ,GAAAF,SAAA,CAARE,QAAQ;EACrB,IAAAC,aAAA,GAAeC,UAAI,CAACC,OAAO,CAAC,CAAC;IAAAC,cAAA,GAAA9Q,cAAA,CAAA2Q,aAAA;IAAtBI,IAAI,GAAAD,cAAA;EACX,IAAAE,SAAA,GAA4C,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,GAAAlR,cAAA,CAAAgR,SAAA;IAApDG,cAAc,GAAAD,UAAA;IAAEE,iBAAiB,GAAAF,UAAA;EACxC,IAAAG,UAAA,GAAwC,IAAAJ,eAAQ,EAAC,KAAK,CAAC;IAAAK,UAAA,GAAAtR,cAAA,CAAAqR,UAAA;IAAhDE,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EACpC,IAAAG,UAAA,GAA8B,IAAAR,eAAQ,EAAC,CAAC,CAAC,CAAC;IAAAS,UAAA,GAAA1R,cAAA,CAAAyR,UAAA;IAAnCE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAC1B,IAAAG,UAAA,GAA0C,IAAAZ,eAAQ,EAAC,IAAI,CAAC;IAAAa,UAAA,GAAA9R,cAAA,CAAA6R,UAAA;IAAjDE,aAAa,GAAAD,UAAA;IAAEE,gBAAgB,GAAAF,UAAA;EACtC,IAAAG,UAAA,GAAoD,IAAAhB,eAAQ,EAAC,CAAC,CAAC;IAAAiB,UAAA,GAAAlS,cAAA,CAAAiS,UAAA;IAAxDE,kBAAkB,GAAAD,UAAA;IAAEE,qBAAqB,GAAAF,UAAA;EAChD,IAAAG,UAAA,GAA8B,IAAApB,eAAQ,EAAC,IAAI,CAAC;IAAAqB,WAAA,GAAAtS,cAAA,CAAAqS,UAAA;IAArCE,OAAO,GAAAD,WAAA;IAAEE,UAAU,GAAAF,WAAA;EAC1B,IAAAG,WAAA,GAAwC,IAAAxB,eAAQ,EAAC,IAAI,CAAC;IAAAyB,WAAA,GAAA1S,cAAA,CAAAyS,WAAA;IAA/CzP,YAAY,GAAA0P,WAAA;IAAEC,eAAe,GAAAD,WAAA;EACpC,IAAAE,WAAA,GAA0C,IAAA3B,eAAQ,EAAC,IAAI,CAAC;IAAA4B,WAAA,GAAA7S,cAAA,CAAA4S,WAAA;IAAjD3P,aAAa,GAAA4P,WAAA;IAAEC,gBAAgB,GAAAD,WAAA;EACtC,IAAAE,WAAA,GAAwC,IAAA9B,eAAQ,EAAC,KAAK,CAAC;IAAA+B,WAAA,GAAAhT,cAAA,CAAA+S,WAAA;IAAhDE,YAAY,GAAAD,WAAA;IAAEE,eAAe,GAAAF,WAAA;EACpC,IAAAG,WAAA,GAAoD,IAAAlC,eAAQ,EACxDP,QAAQ,CAAC0C,qBACb,CAAC;IAAAC,WAAA,GAAArT,cAAA,CAAAmT,WAAA;IAFMG,kBAAkB,GAAAD,WAAA;IAAEE,qBAAqB,GAAAF,WAAA;EAGhD,IAAAG,WAAA,GAAwC,IAAAvC,eAAQ,EAAC,EAAE,CAAC;IAAAwC,WAAA,GAAAzT,cAAA,CAAAwT,WAAA;IAA7CE,YAAY,GAAAD,WAAA;IAAEE,eAAe,GAAAF,WAAA;EACpC,IAAAG,WAAA,GAAsC,IAAA3C,eAAQ,EAAC,EAAE,CAAC;IAAA4C,WAAA,GAAA7T,cAAA,CAAA4T,WAAA;IAA3CE,WAAW,GAAAD,WAAA;IAAEE,cAAc,GAAAF,WAAA;EAClC,IAAAG,WAAA,GAAgD,IAAA/C,eAAQ,EAAC,EAAE,CAAC;IAAAgD,WAAA,GAAAjU,cAAA,CAAAgU,WAAA;IAArDE,gBAAgB,GAAAD,WAAA;IAAEE,mBAAmB,GAAAF,WAAA;EAC5C,IAAAG,WAAA,GAAoC,IAAAnD,eAAQ,EAAC,KAAK,CAAC;IAAAoD,WAAA,GAAArU,cAAA,CAAAoU,WAAA;IAA5CE,UAAU,GAAAD,WAAA;IAAEE,aAAa,GAAAF,WAAA;EAChC,IAAMG,QAAQ,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC7B,IAAMC,YAAY,GAAG,IAAAD,aAAM,EAAC,IAAI,CAAC;EACjC,IAAME,WAAW,GAAG,IAAAF,aAAM,EAAC,IAAI,CAAC;EAChC,IAAMG,YAAY,GAAG,IAAAH,aAAM,EAAC,IAAI,CAAC;EACjC,IAAMI,aAAa,GAAG,IAAAJ,aAAM,EAAC,IAAI,CAAC;EAClC,IAAMK,cAAc,GAAG,IAAAL,aAAM,EAAC,IAAI,CAAC;EACnC,IAAMM,sBAAsB,GAAG,IAAAN,aAAM,EAAC,IAAI,CAAC;EAC3C,IAAMO,2BAA2B,GAAG,IAAAP,aAAM,EAAC,IAAI,CAAC;EAChD,IAAMQ,qBAAqB,GAAG,IAAAR,aAAM,EAAC,KAAK,CAAC;EAC3C,IAAMS,mBAAmB,GAAG,IAAAT,aAAM,EAAC,CAAC,CAAC;EACrC,IAAMU,qBAAqB,GAAG,IAAAV,aAAM,EAAC,IAAI,CAAC;EAC1C,IAAAW,WAAA,GAAoC,IAAAnE,eAAQ,EAAC;MAAErQ,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC,CAAC;IAAAwU,WAAA,GAAArV,cAAA,CAAAoV,WAAA;IAA9DE,UAAU,GAAAD,WAAA;IAAEE,aAAa,GAAAF,WAAA;EAEhC,IAAAG,gBAAS,EAAC,YAAM;IACZzE,IAAI,CAAC0E,cAAc,CAAC;MAChBC,KAAK,EAAE,GAAG;MACVxS,QAAQ,EAAE,IAAI;MACdE,aAAa,EAAE;IACnB,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAoS,gBAAS,EAAC,YAAM;IACZ,IAAMG,SAAS,GAAG,IAAIxP,mBAAY,CAAC,CAAC;IACpC,IAAMyP,QAAQ,GAAG,IAAItO,kBAAW,CAAC;MAC7BrB,MAAM,EAAE0P,SAAS;MACjBlO,KAAK,EAAE,IAAAoO,gBAAS,EAAC,CAAC;MAClB1O,MAAM,EAAE;IACZ,CAAC,CAAC;IACF,IAAM2O,IAAI,GAAG,IAAIC,iBAAI,CAAC;MAClB9P,MAAM,EAAE0P,SAAS;MACjB9L,IAAI,EAAE,QAAQ;MACdpC,KAAK,EAAE,SAAPA,KAAKA,CAAEnB,OAAO;QAAA,OAAI,IAAAuP,gBAAS,EAACvP,OAAO,CAAC;MAAA;MACpC0P,gBAAgB,EAAE,IAAAC,eAAS,EAAC;IAChC,CAAC,CAAC;IAEFtB,WAAW,CAACuB,OAAO,GAAGN,QAAQ;IAC9BpB,QAAQ,CAAC0B,OAAO,GAAGJ,IAAI;IACvBA,IAAI,CAACK,SAAS,CAAC,KAAK,CAAC;IAErBL,IAAI,CAAC/L,EAAE,CAAC,WAAW,EAAE,YAAM;MACvB4L,SAAS,CAACS,KAAK,CAAC,CAAC;MACjB/P,GAAG,CAACgQ,OAAO,CAAC3F,QAAQ,CAAC4F,eAAe,CAAC;IACzC,CAAC,CAAC;IAEFR,IAAI,CAAC/L,EAAE,CAAC,SAAS,EAAE,UAAAwM,KAAK,EAAI;MACxB,IAAM1U,MAAM,GAAG0U,KAAK,CAACjQ,OAAO,CAACkQ,WAAW,CAAC,CAAC,CAACnP,SAAS,CAAC,CAAC;MACtDqN,YAAY,CAACwB,OAAO,GAAGrU,MAAM;MAC7BwE,GAAG,CAACgQ,OAAO,CAAC3F,QAAQ,CAAC+F,gBAAgB,CAAC;MACtCpQ,GAAG,CAACsE,OAAO,CAAC,CAAC,CAAC+L,GAAG,CAAC7U,MAAM,EAAE;QACtB8U,QAAQ,EAAE;MACd,CAAC,CAAC;IACN,CAAC,CAAC;IAEFtQ,GAAG,CAACkC,QAAQ,CAACqN,QAAQ,CAAC;IACtBvP,GAAG,CAACuQ,cAAc,CAACd,IAAI,CAAC;IAExB,OAAO,YAAM;MACT,IAAIX,qBAAqB,CAACe,OAAO,EAAE;QAC/B5M,YAAY,CAAC6L,qBAAqB,CAACe,OAAO,CAAC;MAC/C;MACAP,SAAS,CAACS,KAAK,CAAC,CAAC;MACjB/P,GAAG,CAAC4B,WAAW,CAAC2N,QAAQ,CAAC;MACzBvP,GAAG,CAACwQ,iBAAiB,CAACf,IAAI,CAAC;MAC3BzP,GAAG,CAACyQ,OAAO,CAAC,CAAC;IACjB,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,SAAS,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC5B,OAAOlU,aAAa,CAAC;MACjBE,YAAY,EAAZA,YAAY;MACZC,aAAa,EAAbA,aAAa;MACbC,QAAQ,EAAE6O,aAAa;MACvB3O,aAAa,EAAE+O;IACnB,CAAC,CAAC;EACN,CAAC,EAAE,CAACnP,YAAY,EAAEC,aAAa,EAAE8O,aAAa,EAAEI,kBAAkB,CAAC,CAAC;EAEpE,IAAM8E,kBAAkB,GAAG,IAAAD,cAAO,EAAC,YAAM;IACrC,OAAOtR,uBAAuB,CAACqR,SAAS,EAAExE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE1Q,MAAM,CAAC;EAC9D,CAAC,EAAE,CAACkV,SAAS,EAAExE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE1Q,MAAM,CAAC,CAAC;EAEhC,IAAMqV,aAAa,GAAG,IAAAF,cAAO,EAAC,YAAM;IAChC,IAAI;MAAA,IAAAG,YAAA,EAAAC,qBAAA,EAAAC,sBAAA;MACA,OAAO,CAAAhR,GAAG,aAAHA,GAAG,gBAAA8Q,YAAA,GAAH9Q,GAAG,CAAEsE,OAAO,cAAAwM,YAAA,gBAAAA,YAAA,GAAZA,YAAA,CAAA/b,IAAA,CAAAiL,GAAe,CAAC,cAAA8Q,YAAA,gBAAAC,qBAAA,GAAhBD,YAAA,CAAkBnM,aAAa,cAAAoM,qBAAA,gBAAAA,qBAAA,GAA/BA,qBAAA,CAAAhc,IAAA,CAAA+b,YAAkC,CAAC,cAAAC,qBAAA,gBAAAC,sBAAA,GAAnCD,qBAAA,CAAqCE,OAAO,cAAAD,sBAAA,uBAA5CA,sBAAA,CAAAjc,IAAA,CAAAgc,qBAA+C,CAAC,KAAI,WAAW;IAC1E,CAAC,CAAC,OAAOG,KAAK,EAAE;MACZ,OAAO,WAAW;IACtB;EACJ,CAAC,EAAE,CAAClR,GAAG,CAAC,CAAC;EAET,IAAMmR,iBAAiB,GAAG,IAAAR,cAAO,EAAC,YAAM;IACpC,IAAMS,eAAe,GAAG,CAAApR,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEoR,eAAe,KAAI,CAAC,CAAC;IAElD,OAAO;MACH1M,UAAU,EAAEmM,aAAa;MACzBQ,QAAQ,EAAED,eAAe,CAACC,QAAQ;MAClCC,YAAY,EAAEF,eAAe,CAACE,YAAY;MAC1CC,IAAI,EAAEH,eAAe,CAACG,IAAI;MAC1BC,EAAE,EAAE,CAAAxR,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEwR,EAAE,KAAIJ,eAAe,CAACI,EAAE,IAAI;IACzC,CAAC;EACL,CAAC,EAAE,CAACxR,GAAG,EAAE6Q,aAAa,CAAC,CAAC;;EAExB;EACA;EACA,IAAMY,YAAY,GAAG,IAAAd,cAAO,EAAC,YAAM;IAC/B,IAAI,EAACD,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEvS,YAAY,KAAI,EAACuS,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEtS,aAAa,GAAE;MACvD,OAAO,CAAC;IACZ;IAEA,IAAMsT,MAAM,GAAGhB,SAAS,CAACvS,YAAY,GAAGnD,aAAa;IACrD,IAAM2W,MAAM,GAAGjB,SAAS,CAACtS,aAAa,GAAGrD,cAAc;IACvD,OAAOmC,IAAI,CAACC,GAAG,CAACuU,MAAM,EAAEC,MAAM,EAAE,MAAM,CAAC;EAC3C,CAAC,EAAE,CAACjB,SAAS,CAAC,CAAC;EAEf,IAAMkB,iBAAiB,GAAG,IAAAjB,cAAO,EAAC,YAAM;IACpC,IAAI,CAAChU,YAAY,IAAI,CAACC,aAAa,IAAI,CAAC6U,YAAY,EAAE;MAClD,OAAO,IAAI;IACf;IAEA,OAAO;MACHlX,KAAK,EAAE2C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAER,YAAY,GAAG8U,YAAY,CAAC;MAC/CjX,MAAM,EAAE0C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEP,aAAa,GAAG6U,YAAY;IACpD,CAAC;EACL,CAAC,EAAE,CAAC9U,YAAY,EAAEC,aAAa,EAAE6U,YAAY,CAAC,CAAC;EAE/C,IAAMI,kBAAkB,GAAG,IAAAlB,cAAO,EAAC,YAAM;IACrC,IAAMmB,WAAW,GAAGrS,qBAAqB,CAACiR,SAAS,CAAC;IACpD,IAAI,CAACoB,WAAW,IAAI,CAACL,YAAY,EAAE;MAC/B,OAAO,IAAI;IACf;IAEA,OAAO;MACHlX,KAAK,EAAE2C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE2U,WAAW,CAACvX,KAAK,GAAGkX,YAAY,CAAC;MACpDjX,MAAM,EAAE0C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE2U,WAAW,CAACtX,MAAM,GAAGiX,YAAY;IACzD,CAAC;EACL,CAAC,EAAE,CAACf,SAAS,EAAEe,YAAY,CAAC,CAAC;EAE7B,IAAMM,qBAAqB,GAAG,IAAApB,cAAO,EAAC,YAAM;IACxC,IAAMmB,WAAW,GAAGrS,qBAAqB,CAACiR,SAAS,CAAC;IACpD,IAAI,CAACoB,WAAW,IAAI,CAACnV,YAAY,IAAI,CAACC,aAAa,EAAE;MACjD,OAAO,IAAI;IACf;IAEA,OAAO;MACHoV,YAAY,EAAGrV,YAAY,GAAGmV,WAAW,CAACvX,KAAK,GAAI,GAAG;MACtD0X,aAAa,EAAGrV,aAAa,GAAGkV,WAAW,CAACtX,MAAM,GAAI;IAC1D,CAAC;EACL,CAAC,EAAE,CAACkW,SAAS,EAAE/T,YAAY,EAAEC,aAAa,CAAC,CAAC;EAE5C,IAAAuS,gBAAS,EAAC,YAAM;IACZ,IAAIuB,SAAS,EAAE;MACX5C,mBAAmB,CAAC4C,SAAS,CAACjT,MAAM,CAACuC,GAAG,CAAC,UAAAtE,IAAI;QAAA,OAAIA,IAAI,CAACqC,EAAE;MAAA,EAAC,CAAC;IAC9D;EACJ,CAAC,EAAE,CAAC2S,SAAS,CAAC,CAAC;EAEf,IAAMwB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGpc,KAAK,EAAI;IAAA,IAAAqc,iBAAA;IAC/B,IAAIrc,KAAK,KAAK,GAAG,EAAE;MAAA,IAAAsc,oBAAA;MACfpS,GAAG,CAACyQ,OAAO,CAAC,CAAC;MACb,CAAA2B,oBAAA,GAAA9D,WAAW,CAACuB,OAAO,cAAAuC,oBAAA,gBAAAA,oBAAA,GAAnBA,oBAAA,CAAqBjR,SAAS,CAAC,CAAC,cAAAiR,oBAAA,eAAhCA,oBAAA,CAAkCrC,KAAK,CAAC,CAAC;MACzC1B,YAAY,CAACwB,OAAO,GAAG,IAAI;IAC/B,CAAC,MAAM;MACH7P,GAAG,CAACgQ,OAAO,CAAC3F,QAAQ,CAAC+F,gBAAgB,CAAC;IAC1C;IAEA,CAAA+B,iBAAA,GAAAhE,QAAQ,CAAC0B,OAAO,cAAAsC,iBAAA,eAAhBA,iBAAA,CAAkBrC,SAAS,CAACha,KAAK,KAAK,GAAG,CAAC;EAC9C,CAAC;EAED,IAAMuc,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGvc,KAAK,EAAI;IAClC,IAAMwc,YAAY,GAAGxc,KAAK,IAAI,IAAI;IAClC6V,gBAAgB,CAAC2G,YAAY,CAAC;IAC9B5H,IAAI,CAAC6H,aAAa,CAAC,UAAU,EAAED,YAAY,CAAC;EAChD,CAAC;EAED,IAAME,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,SAAS,EAAI;IACxClE,YAAY,CAACsB,OAAO,GAAG4C,SAAS;IAChC7D,qBAAqB,CAACiB,OAAO,GAAG,KAAK;EACzC,CAAC;EAED,IAAM6C,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGC,UAAU,EAAI;IAC1CnE,aAAa,CAACqB,OAAO,GAAG8C,UAAU;EACtC,CAAC;;EAED;EACA;EACA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA,EAAS;IAChC,IAAI,CAACrE,YAAY,CAACsB,OAAO,EAAE;MACvB,OAAO,KAAK;IAChB;IAEA,IAAI,CAACjB,qBAAqB,CAACiB,OAAO,EAAE;MAChChO,kBAAkB,CAAC7B,GAAG,EAAEuO,YAAY,CAACsB,OAAO,EAAEvB,WAAW,CAACuB,OAAO,CAAC;MAClEjB,qBAAqB,CAACiB,OAAO,GAAG,IAAI;IACxC;IAEA,OAAO,IAAI;EACf,CAAC;EAED,IAAMgD,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;IAC/B,IAAI,CAACrE,aAAa,CAACqB,OAAO,EAAE;MACxB,OAAO,KAAK;IAChB;IAEAhO,kBAAkB,CAAC7B,GAAG,EAAEwO,aAAa,CAACqB,OAAO,EAAEvB,WAAW,CAACuB,OAAO,CAAC;IACnE,OAAO,IAAI;EACf,CAAC;;EAED;EACA;EACA,IAAMiD,YAAY,GAAG,SAAfA,YAAYA,CAAGC,MAAM,EAAI;IAAA,IAAAC,qBAAA,EAAAC,oBAAA,EAAAC,aAAA;IAC3B,IAAMrW,QAAQ,GAAGkW,MAAM,CAAClW,QAAQ,IAAI6N,IAAI,CAACyI,aAAa,CAAC,UAAU,CAAC;IAClE,IAAMpW,aAAa,GAAGrD,MAAM,EAAAsZ,qBAAA,GAACD,MAAM,CAAChW,aAAa,cAAAiW,qBAAA,cAAAA,qBAAA,GAAItI,IAAI,CAACyI,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;IAC9F;;IAEAC,OAAO,CAACC,GAAG,CAAC,eAAe,EAAEN,MAAM,CAAChW,aAAa,EAAE2N,IAAI,CAACyI,aAAa,CAAC,eAAe,CAAC,EAAEpW,aAAa,CAAC;IACtG,IAAMvB,MAAM,GACRuX,MAAM,CAAC1D,KAAK,KAAK,GAAG,GACdrP,GAAG,CAACsE,OAAO,CAAC,CAAC,CAACG,eAAe,CAACzE,GAAG,CAACwE,OAAO,CAAC,CAAC,CAAC,GAC5C6J,YAAY,CAACwB,OAAO;IAE9B,IAAI,CAACtU,aAAa,CAACC,MAAM,CAAC,EAAE;MACxB;IACJ;IAEA,IAAMM,IAAI,GAAGoB,IAAI,CAACkK,KAAK,CAAC,EAAA6L,oBAAA,IAAAC,aAAA,GAAAlT,GAAG,CAACsE,OAAO,CAAC,CAAC,EAACgP,OAAO,cAAAL,oBAAA,uBAArBA,oBAAA,CAAAle,IAAA,CAAAme,aAAwB,CAAC,KAAI,CAAC,CAAC;IACvD,IAAMK,WAAW,GAAG3X,mBAAmB,CAACJ,MAAM,EAAEwE,GAAG,CAACsE,OAAO,CAAC,CAAC,EAAExI,IAAI,CAAC;IACpE,IAAI,CAACyX,WAAW,EAAE;MACd;IACJ;IAEAH,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAE;MAClCG,SAAS,EAAET,MAAM,CAAC1D,KAAK;MACvB7T,MAAM,EAANA,MAAM;MACNM,IAAI,EAAJA,IAAI;MACJe,QAAQ,EAARA,QAAQ;MACRE,aAAa,EAAbA,aAAa;MACbmP,OAAO,EAAE;QACLhQ,QAAQ,EAAEqX,WAAW,CAACrX,QAAQ;QAC9BC,SAAS,EAAEoX,WAAW,CAACpX,SAAS;QAChCC,UAAU,EAAEmX,WAAW,CAACnX,UAAU;QAClCC,WAAW,EAAEkX,WAAW,CAAClX,WAAW;QACpCC,OAAO,EAAEiX,WAAW,CAACjX,OAAO;QAC5BC,QAAQ,EAAEgX,WAAW,CAAChX,QAAQ;QAC9BC,KAAK,EAAE+W,WAAW,CAAC/W;MACvB;IACJ,CAAC,CAAC;IAEF+O,UAAU,CAAAtS,aAAA,CAAAA,aAAA,KACH8Z,MAAM;MACTlW,QAAQ,EAARA,QAAQ;MACRE,aAAa,EAAbA,aAAa;MACb0W,SAAS,EAAE3X;IAAI,EAClB,CAAC;IACF6P,gBAAgB,CAAC9O,QAAQ,CAAC;IAC1BkP,qBAAqB,CAAChP,aAAa,CAAC;IACpCoP,UAAU,CAACoH,WAAW,CAAC;IACvBjH,eAAe,CAAC5S,MAAM,CAAC6Z,WAAW,CAACjX,OAAO,CAACoX,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvDjH,gBAAgB,CAAC/S,MAAM,CAAC6Z,WAAW,CAAChX,QAAQ,CAACmX,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD7G,eAAe,CAAC,KAAK,CAAC;IACtBK,qBAAqB,CAAC7C,QAAQ,CAAC0C,qBAAqB,CAAC;IACrDO,eAAe,CAAC,EAAE,CAAC;IACnBoB,sBAAsB,CAACmB,OAAO,GAAG,IAAI;IACrClB,2BAA2B,CAACkB,OAAO,GAAG,IAAI;IAC1CjB,qBAAqB,CAACiB,OAAO,GAAG,KAAK;IACrCnC,cAAc,CAAC,EAAE,CAAC;IAClBvC,eAAe,CAAC,KAAK,CAAC;IACtBJ,iBAAiB,CAAC,IAAI,CAAC;EAC3B,CAAC;EAED,IAAM4I,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAG7d,KAAK,EAAI;IAC/B,IAAI,CAACoW,OAAO,IAAI,CAACpW,KAAK,EAAE;MACpB;IACJ;IAEA,IAAM8d,SAAS,GAAGla,MAAM,CAAC5D,KAAK,CAAC;IAC/BwW,eAAe,CAACsH,SAAS,CAAC;IAC1BnH,gBAAgB,CAAC/S,MAAM,CAAC,CAACka,SAAS,GAAG1H,OAAO,CAAC1P,KAAK,EAAEkX,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;EACpE,CAAC;EAED,IAAMG,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAG/d,KAAK,EAAI;IAChC,IAAI,CAACoW,OAAO,IAAI,CAACpW,KAAK,EAAE;MACpB;IACJ;IAEA,IAAMge,UAAU,GAAGpa,MAAM,CAAC5D,KAAK,CAAC;IAChC2W,gBAAgB,CAACqH,UAAU,CAAC;IAC5BxH,eAAe,CAAC5S,MAAM,CAAC,CAACoa,UAAU,GAAG5H,OAAO,CAAC1P,KAAK,EAAEkX,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;EACpE,CAAC;EAED,IAAMK,gBAAgB;IAAA,IAAAC,KAAA,GAAAzb,iBAAA,cAAA9B,YAAA,GAAAoB,CAAA,CAAG,SAAAoc,SAAM1V,KAAK;MAAA,IAAA2V,mBAAA,EAAAC,wBAAA,EAAArC,WAAA,EAAAsC,iBAAA,EAAAC,kBAAA,EAAAC,OAAA,EAAAC,OAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA9N,GAAA;MAAA,OAAArQ,YAAA,GAAAmB,CAAA,WAAAid,SAAA;QAAA,kBAAAA,SAAA,CAAAzgB,CAAA;UAAA;YAAA,MAC5B,CAACsc,SAAS,IAAI,CAAChC,sBAAsB,CAACmB,OAAO,IAAI,CAAClB,2BAA2B,CAACkB,OAAO;cAAAgF,SAAA,CAAAzgB,CAAA;cAAA;YAAA;YAAA,OAAAygB,SAAA,CAAA7e,CAAA,IAC9E,IAAI;UAAA;YAGTke,mBAAmB,GAAGxF,sBAAsB,CAACmB,OAAO;YACpDsE,wBAAwB,GAAGxF,2BAA2B,CAACkB,OAAO;YAC9DiC,WAAW,GAAGrS,qBAAqB,CAACiR,SAAS,CAAC;YAC9C0D,iBAAiB,GAAGtC,WAAW,CAACvX,KAAK;YACrC8Z,kBAAkB,GAAGvC,WAAW,CAACtX,MAAM;YACvC8Z,OAAO,GAAI/V,KAAK,CAACX,GAAG,GAAGwW,iBAAiB,GAAID,wBAAwB,CAAC5Z,KAAK;YAC1Ega,OAAO,GAAIhW,KAAK,CAACV,GAAG,GAAGwW,kBAAkB,GAAIF,wBAAwB,CAAC3Z,MAAM;YAC5Ega,WAAW,GACZ9D,SAAS,CAACvS,YAAY,GAAGiW,iBAAiB,GAAID,wBAAwB,CAAC5Z,KAAK;YAC3Eka,YAAY,GACb/D,SAAS,CAACtS,aAAa,GAAGiW,kBAAkB,GAAIF,wBAAwB,CAAC3Z,MAAM;YAC9Eka,WAAW,GAAGxX,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAAC/L,MAAM,CAACqV,SAAS,CAACvS,YAAY,EAAErD,UAAU,CAAC,CAAC,CAAC;YACjF6Z,YAAY,GAAGzX,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAAC/L,MAAM,CAACqV,SAAS,CAACtS,aAAa,EAAEtD,UAAU,CAAC,CAAC,CAAC;YAEzFsY,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAE;cAClCyB,OAAO,EAAEvW,KAAK,CAACR,EAAE;cACjBgX,UAAU,EAAExW,KAAK,CAACN,KAAK;cACvB+W,YAAY,EAAEzW,KAAK,CAACjC,OAAO;cAC3B2Y,aAAa,EAAE1W,KAAK,CAAChC,QAAQ;cAC7B+X,OAAO,EAAPA,OAAO;cACPC,OAAO,EAAPA,OAAO;cACPC,WAAW,EAAXA,WAAW;cACXC,YAAY,EAAZA,YAAY;cACZC,WAAW,EAAXA,WAAW;cACXC,YAAY,EAAZA;YACJ,CAAC,CAAC;YAEIC,UAAU,GAAG1N,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;YACnDyN,UAAU,CAACra,KAAK,GAAGma,WAAW;YAC9BE,UAAU,CAACpa,MAAM,GAAGma,YAAY;YAC1B7N,GAAG,GAAG8N,UAAU,CAACvN,UAAU,CAAC,IAAI,CAAC;YACvCP,GAAG,CAACQ,SAAS,GAAG,MAAM;YACtBR,GAAG,CAACS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAEmN,WAAW,EAAEC,YAAY,CAAC;YAC7C7N,GAAG,CAACmB,SAAS,CACTiM,mBAAmB,EACnBI,OAAO,EACPC,OAAO,EACPC,WAAW,EACXC,YAAY,EACZ,CAAC,EACD,CAAC,EACDC,WAAW,EACXC,YACJ,CAAC;YAAC,OAAAE,SAAA,CAAA7e,CAAA,IAAAiD,aAAA,CAAAA,aAAA,KAGKsF,KAAK;cACRsL,GAAG,EAAE+K,UAAU,CAACM,SAAS,CAAC,WAAW,CAAC;cACtC9Y,UAAU,EAAEsY,WAAW;cACvBrY,WAAW,EAAEsY;YAAY;QAAA;MAAA,GAAAV,QAAA;IAAA,CAEhC;IAAA,gBAxDKF,gBAAgBA,CAAAoB,GAAA;MAAA,OAAAnB,KAAA,CAAAvb,KAAA,OAAAD,SAAA;IAAA;EAAA,GAwDrB;;EAED;EACA;EACA;EACA,IAAM4c,kBAAkB;IAAA,IAAAC,KAAA,GAAA9c,iBAAA,cAAA9B,YAAA,GAAAoB,CAAA,CAAG,SAAAyd,SAAMC,GAAG;MAAA,IAAAC,qBAAA,EAAAC,sBAAA;MAAA,IAAAC,UAAA,EAAAC,WAAA,EAAAC,cAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,YAAA,EAAAla,IAAA,EAAAma,qBAAA,EAAAC,sBAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,YAAA,EAAApC,mBAAA,EAAAqC,SAAA,EAAAzP,GAAA;MAAA,OAAArQ,YAAA,GAAAmB,CAAA,WAAA4e,SAAA;QAAA,kBAAAA,SAAA,CAAApiB,CAAA;UAAA;YAAA,MAE5B,CAAC0W,cAAc,IACf,EAACoB,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE1Q,MAAM,KAChB,CAACoW,iBAAiB,IAClB,CAACC,kBAAkB,IACnB,CAACtD,YAAY,CAACsB,OAAO,IACrB,CAACpB,cAAc,CAACoB,OAAO;cAAA2G,SAAA,CAAApiB,CAAA;cAAA;YAAA;YAAA,OAAAoiB,SAAA,CAAAxgB,CAAA;UAAA;YAKrB0f,UAAU,GAAG/Y,YAAY,GAAGuP,OAAO,CAAC5P,OAAO;YAC3CqZ,WAAW,GAAG/Y,aAAa,GAAGsP,OAAO,CAAC3P,QAAQ;YAC9CqZ,cAAc,GAAG1Y,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAAC8E,OAAO,CAAC9P,UAAU,GAAGsZ,UAAU,CAAC,CAAC;YACzEG,eAAe,GAAG3Y,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAAC8E,OAAO,CAAC7P,WAAW,GAAGsZ,WAAW,CAAC,CAAC;YAC5EG,gBAAgB,GAAG5Y,IAAI,CAACC,GAAG,CAC7B+O,OAAO,CAAChQ,QAAQ,GAAG0Z,cAAc,EACjC1J,OAAO,CAAC/P,SAAS,GAAG0Z,eACxB,CAAC;YACKE,YAAY,GAAGrW,eAAe,CAACwM,OAAO,CAAC1Q,MAAM,CAAC;YAEpD4X,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAE;cAClCkC,GAAG,EAAHA,GAAG;cACH/Z,MAAM,EAAE0Q,OAAO,CAAC1Q,MAAM;cACtBM,IAAI,EAAEoQ,OAAO,CAACpQ,IAAI;cAClBa,YAAY,EAAZA,YAAY;cACZC,aAAa,EAAbA,aAAa;cACb6U,YAAY,EAAZA,YAAY;cACZb,kBAAkB,EAAlBA,kBAAkB;cAClBiB,kBAAkB,EAAlBA,kBAAkB;cAClBD,iBAAiB,EAAjBA,iBAAiB;cACjBgE,cAAc,EAAdA,cAAc;cACdC,eAAe,EAAfA,eAAe;cACfC,gBAAgB,EAAhBA,gBAAgB;cAChBC,YAAY,EAAZA,YAAY;cACZrF,SAAS,EAAEA,SAAS,GACd;gBACIpT,IAAI,EAAEoT,SAAS,CAACpT,IAAI;gBACpBE,IAAI,EAAEkT,SAAS,CAAClT,IAAI;gBACpBa,WAAW,EAAEqS,SAAS,CAACrS,WAAW;gBAClCF,YAAY,EAAEuS,SAAS,CAACvS,YAAY;gBACpCC,aAAa,EAAEsS,SAAS,CAACtS,aAAa;gBACtChB,KAAK,EAAEsT,SAAS,CAACtT,KAAK;gBACtBC,KAAK,EAAEqT,SAAS,CAACrT;cACrB,CAAC,GACD;YACV,CAAC,CAAC;YAEFwP,eAAe,CAAC,KAAK,CAAC;YACtBK,qBAAqB,CAAC7C,QAAQ,CAACoM,iBAAiB,CAAC;YAACD,SAAA,CAAApiB,CAAA;YAAA,OAC5C+N,aAAa,CAAC,CAAC;UAAA;YAAA,MACjBoT,GAAG,KAAK1G,mBAAmB,CAACgB,OAAO;cAAA2G,SAAA,CAAApiB,CAAA;cAAA;YAAA;YAAA,OAAAoiB,SAAA,CAAAxgB,CAAA;UAAA;YAAA,IAGlC4c,qBAAqB,CAAC,CAAC;cAAA4D,SAAA,CAAApiB,CAAA;cAAA;YAAA;YAAA,OAAAoiB,SAAA,CAAAxgB,CAAA;UAAA;YAG5B6c,oBAAoB,CAAC,CAAC;YAEtB3D,aAAa,CAAC;cACV3U,KAAK,EAAEqb,cAAc;cACrBpb,MAAM,EAAEqb;YACZ,CAAC,CAAC;YAACW,SAAA,CAAApiB,CAAA;YAAA,OACG+N,aAAa,CAAC,CAAC;UAAA;YAAA,MACjBoT,GAAG,KAAK1G,mBAAmB,CAACgB,OAAO;cAAA2G,SAAA,CAAApiB,CAAA;cAAA;YAAA;YAAA,OAAAoiB,SAAA,CAAAxgB,CAAA;UAAA;YAIvC,CAAAwf,qBAAA,IAAAC,sBAAA,GAAAlH,YAAY,CAACsB,OAAO,EAAC6G,UAAU,cAAAlB,qBAAA,eAA/BA,qBAAA,CAAAzgB,IAAA,CAAA0gB,sBAAkC,CAAC;YAC7B5Z,IAAI,GAAG0S,YAAY,CAACsB,OAAO,CAACvL,OAAO,CAAC,CAAC;YAC3CzI,IAAI,CAAC8a,SAAS,CAACZ,YAAY,CAAC;YAC5Bla,IAAI,CAAC+a,aAAa,CAACd,gBAAgB,CAAC;YACpC,IAAItH,aAAa,CAACqB,OAAO,EAAE;cACvB,CAAAmG,qBAAA,IAAAC,sBAAA,GAAAzH,aAAa,CAACqB,OAAO,EAAC6G,UAAU,cAAAV,qBAAA,eAAhCA,qBAAA,CAAAjhB,IAAA,CAAAkhB,sBAAmC,CAAC;cAC9BC,WAAW,GAAG1H,aAAa,CAACqB,OAAO,CAACvL,OAAO,CAAC,CAAC;cACnD4R,WAAW,CAACS,SAAS,CAACZ,YAAY,CAAC;cACnCG,WAAW,CAACU,aAAa,CAACd,gBAAgB,CAAC;YAC/C;YAACU,SAAA,CAAApiB,CAAA;YAAA,OACKiO,aAAa,CAACkM,YAAY,CAACsB,OAAO,CAAC;UAAA;YACzC3C,qBAAqB,CAAC7C,QAAQ,CAACwM,yBAAyB,CAAC;YAACL,SAAA,CAAApiB,CAAA;YAAA,OACpDuO,uBAAuB,CAAC4L,YAAY,CAACsB,OAAO,CAAC;UAAA;YAAA2G,SAAA,CAAApiB,CAAA;YAAA,OAC7CiO,aAAa,CAACkM,YAAY,CAACsB,OAAO,CAAC;UAAA;YAAA,KACrCrB,aAAa,CAACqB,OAAO;cAAA2G,SAAA,CAAApiB,CAAA;cAAA;YAAA;YAAAoiB,SAAA,CAAApiB,CAAA;YAAA,OACfiO,aAAa,CAACmM,aAAa,CAACqB,OAAO,CAAC;UAAA;YAAA2G,SAAA,CAAApiB,CAAA;YAAA,OAExC+N,aAAa,CAAC,CAAC;UAAA;YAAA,MACjBoT,GAAG,KAAK1G,mBAAmB,CAACgB,OAAO;cAAA2G,SAAA,CAAApiB,CAAA;cAAA;YAAA;YAAA,OAAAoiB,SAAA,CAAAxgB,CAAA;UAAA;YAAAwgB,SAAA,CAAApiB,CAAA;YAAA,OAIZsS,gBAAgB,CACvC+H,cAAc,CAACoB,OAAO,EACtB+F,cAAc,EACdC,eACJ,CAAC;UAAA;YAJKM,YAAY,GAAAK,SAAA,CAAArf,CAAA;YAAA,MAKdoe,GAAG,KAAK1G,mBAAmB,CAACgB,OAAO;cAAA2G,SAAA,CAAApiB,CAAA;cAAA;YAAA;YAAA,OAAAoiB,SAAA,CAAAxgB,CAAA;UAAA;YAIjCogB,aAAa,GAAGlP,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;YACtDiP,aAAa,CAAC7b,KAAK,GAAG2C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAACyK,kBAAkB,CAACtX,KAAK,CAAC,CAAC;YACvE6b,aAAa,CAAC5b,MAAM,GAAG0C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAACyK,kBAAkB,CAACrX,MAAM,CAAC,CAAC;YACnE6b,YAAY,GAAGT,cAAc,GAAG1Y,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEyU,iBAAiB,CAACrX,KAAK,CAAC;YACpE+b,YAAY,GAAGT,eAAe,GAAG3Y,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEyU,iBAAiB,CAACpX,MAAM,CAAC;YACtE0Z,mBAAmB,GAAGhN,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;YAC5D+M,mBAAmB,CAAC3Z,KAAK,GAAG2C,IAAI,CAACC,GAAG,CAChC,CAAC,EACDD,IAAI,CAACkK,KAAK,CAACyK,kBAAkB,CAACtX,KAAK,GAAG8b,YAAY,CACtD,CAAC;YACDnC,mBAAmB,CAAC1Z,MAAM,GAAG0C,IAAI,CAACC,GAAG,CACjC,CAAC,EACDD,IAAI,CAACkK,KAAK,CAACyK,kBAAkB,CAACrX,MAAM,GAAG8b,YAAY,CACvD,CAAC;YACKC,SAAS,GAAGrC,mBAAmB,CAAC7M,UAAU,CAAC,IAAI,CAAC;YACtDkP,SAAS,CAACjP,SAAS,GAAG,MAAM;YAC5BiP,SAAS,CAAChP,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE2M,mBAAmB,CAAC3Z,KAAK,EAAE2Z,mBAAmB,CAAC1Z,MAAM,CAAC;YAC/E+b,SAAS,CAACtO,SAAS,CAACkO,YAAY,EAAE,CAAC,EAAE,CAAC,EAAEP,cAAc,EAAEC,eAAe,CAAC;YACxEnH,sBAAsB,CAACmB,OAAO,GAAGqE,mBAAmB;YACpDvF,2BAA2B,CAACkB,OAAO,GAAG;cAClCtV,KAAK,EAAE2Z,mBAAmB,CAAC3Z,KAAK;cAChCC,MAAM,EAAE0Z,mBAAmB,CAAC1Z;YAChC,CAAC;YACKsM,GAAG,GAAGsP,aAAa,CAAC/O,UAAU,CAAC,IAAI,CAAC;YAC1CP,GAAG,CAACQ,SAAS,GAAG,MAAM;YACtBR,GAAG,CAACS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE6O,aAAa,CAAC7b,KAAK,EAAE6b,aAAa,CAAC5b,MAAM,CAAC;YAC7DsM,GAAG,CAACmB,SAAS,CAACiM,mBAAmB,EAAE,CAAC,EAAE,CAAC,EAAEkC,aAAa,CAAC7b,KAAK,EAAE6b,aAAa,CAAC5b,MAAM,CAAC;YAEnF8S,eAAe,CAAC8I,aAAa,CAAClB,SAAS,CAAC,WAAW,CAAC,CAAC;YACrDrI,eAAe,CAAC,IAAI,CAAC;YACrBK,qBAAqB,CAAC7C,QAAQ,CAAC0C,qBAAqB,CAAC;UAAC;YAAA,OAAAyJ,SAAA,CAAAxgB,CAAA;QAAA;MAAA,GAAAsf,QAAA;IAAA,CACzD;IAAA,gBAnIKF,kBAAkBA,CAAA0B,GAAA;MAAA,OAAAzB,KAAA,CAAA5c,KAAA,OAAAD,SAAA;IAAA;EAAA,GAmIvB;EAED,IAAA2W,gBAAS,EAAC,YAAM;IACZ,IAAIL,qBAAqB,CAACe,OAAO,EAAE;MAC/B5M,YAAY,CAAC6L,qBAAqB,CAACe,OAAO,CAAC;IAC/C;IAEA,IAAI,CAAC/E,cAAc,EAAE;MACjB;IACJ;IAEA,IAAMyK,GAAG,GAAG1G,mBAAmB,CAACgB,OAAO,GAAG,CAAC;IAC3ChB,mBAAmB,CAACgB,OAAO,GAAG0F,GAAG;IACjCzG,qBAAqB,CAACe,OAAO,GAAGpN,UAAU,CAAC,YAAM;MAC7C2S,kBAAkB,CAACG,GAAG,CAAC;IAC3B,CAAC,EAAE,GAAG,CAAC;IAEP,OAAO,YAAM;MACT,IAAIzG,qBAAqB,CAACe,OAAO,EAAE;QAC/B5M,YAAY,CAAC6L,qBAAqB,CAACe,OAAO,CAAC;MAC/C;IACJ,CAAC;EACL,CAAC,EAAE,CAAC/E,cAAc,EAAEoB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE1Q,MAAM,EAAEoV,kBAAkB,EAAEiB,kBAAkB,EAAED,iBAAiB,EAAEjV,YAAY,EAAEC,aAAa,CAAC,CAAC;EAE7H,IAAAuS,gBAAS,EAAC,YAAM;IACZ,IAAI,CAACuB,SAAS,EAAE;MACZ;IACJ;IAEA0C,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAE;MAClC1W,YAAY,EAAZA,YAAY;MACZC,aAAa,EAAbA,aAAa;MACbC,QAAQ,EAAE6O,aAAa;MACvB3O,aAAa,EAAE+O,kBAAkB;MACjCxO,IAAI,EAAEoT,SAAS,CAACpT,IAAI;MACpBE,IAAI,EAAEkT,SAAS,CAAClT,IAAI;MACpBa,WAAW,EAAEqS,SAAS,CAACrS,WAAW;MAClCF,YAAY,EAAEuS,SAAS,CAACvS,YAAY;MACpCC,aAAa,EAAEsS,SAAS,CAACtS,aAAa;MACtCX,MAAM,EAAEiT,SAAS,CAACjT,MAAM,CAACuC,GAAG,CAAC,UAAAtE,IAAI;QAAA,OAAK;UAClCqC,EAAE,EAAErC,IAAI,CAACqC,EAAE;UACXE,KAAK,EAAEvC,IAAI,CAACuC,KAAK;UACjBL,GAAG,EAAElC,IAAI,CAACkC,GAAG;UACbC,GAAG,EAAEnC,IAAI,CAACmC,GAAG;UACbvB,OAAO,EAAEZ,IAAI,CAACY,OAAO;UACrBC,QAAQ,EAAEb,IAAI,CAACa,QAAQ;UACvB2B,SAAS,EAAExC,IAAI,CAACwC;QACpB,CAAC;MAAA,CAAC;IACN,CAAC,CAAC;EACN,CAAC,EAAE,CAACwS,SAAS,EAAE/T,YAAY,EAAEC,aAAa,EAAE8O,aAAa,EAAEI,kBAAkB,CAAC,CAAC;EAE/E,IAAMiL,oBAAoB;IAAA,IAAAC,KAAA,GAAAze,iBAAA,cAAA9B,YAAA,GAAAoB,CAAA,CAAG,SAAAof,SAAA;MAAA,IAAAC,iBAAA;MAAA,IAAAjO,MAAA,EAAAkO,SAAA,EAAAC,KAAA,EAAA7Y,KAAA,EAAAqG,KAAA,EAAAyS,EAAA;MAAA,OAAA5gB,YAAA,GAAAmB,CAAA,WAAA0f,SAAA;QAAA,kBAAAA,SAAA,CAAAtgB,CAAA,GAAAsgB,SAAA,CAAAljB,CAAA;UAAA;YAAA,IACpBsc,SAAS,aAATA,SAAS,gBAAAwG,iBAAA,GAATxG,SAAS,CAAEjT,MAAM,cAAAyZ,iBAAA,eAAjBA,iBAAA,CAAmBzhB,MAAM;cAAA6hB,SAAA,CAAAljB,CAAA;cAAA;YAAA;YAAA,OAAAkjB,SAAA,CAAAthB,CAAA;UAAA;YAI9BkY,aAAa,CAAC,IAAI,CAAC;YAACoJ,SAAA,CAAAtgB,CAAA;YAEViS,MAAM,GAAG,EAAE;YAAAkO,SAAA,GAAAhiB,0BAAA,CAEGub,SAAS,CAACjT,MAAM;YAAA6Z,SAAA,CAAAtgB,CAAA;YAAAmgB,SAAA,CAAAvhB,CAAA;UAAA;YAAA,KAAAwhB,KAAA,GAAAD,SAAA,CAAA/iB,CAAA,IAAAyB,IAAA;cAAAyhB,SAAA,CAAAljB,CAAA;cAAA;YAAA;YAAzBmK,KAAK,GAAA6Y,KAAA,CAAAthB,KAAA;YAAAwhB,SAAA,CAAAljB,CAAA;YAAA,OACQ2f,gBAAgB,CAACxV,KAAK,CAAC;UAAA;YAArCqG,KAAK,GAAA0S,SAAA,CAAAngB,CAAA;YACX,IAAIyN,KAAK,EAAE;cACPqE,MAAM,CAACjQ,IAAI,CAAC4L,KAAK,CAAC;YACtB;UAAC;YAAA0S,SAAA,CAAAljB,CAAA;YAAA;UAAA;YAAAkjB,SAAA,CAAAljB,CAAA;YAAA;UAAA;YAAAkjB,SAAA,CAAAtgB,CAAA;YAAAqgB,EAAA,GAAAC,SAAA,CAAAngB,CAAA;YAAAggB,SAAA,CAAApjB,CAAA,CAAAsjB,EAAA;UAAA;YAAAC,SAAA,CAAAtgB,CAAA;YAAAmgB,SAAA,CAAA5iB,CAAA;YAAA,OAAA+iB,SAAA,CAAA/iB,CAAA;UAAA;YAGLmZ,cAAc,CAACzE,MAAM,CAAC;YACtB6E,mBAAmB,CAAC7E,MAAM,CAACjJ,GAAG,CAAC,UAAAtE,IAAI;cAAA,OAAIA,IAAI,CAACqC,EAAE;YAAA,EAAC,CAAC;YAChDgN,iBAAiB,CAAC,KAAK,CAAC;YACxBI,eAAe,CAAC,IAAI,CAAC;UAAC;YAAAmM,SAAA,CAAAtgB,CAAA;YAEtBkX,aAAa,CAAC,KAAK,CAAC;YAAC,OAAAoJ,SAAA,CAAA/iB,CAAA;UAAA;YAAA,OAAA+iB,SAAA,CAAAthB,CAAA;QAAA;MAAA,GAAAihB,QAAA;IAAA,CAE5B;IAAA,gBAvBKF,oBAAoBA,CAAA;MAAA,OAAAC,KAAA,CAAAve,KAAA,OAAAD,SAAA;IAAA;EAAA,GAuBzB;EAED,IAAM+e,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;IAC1B,IAAMC,cAAc,GAAG/J,WAAW,CAAC1U,MAAM,CAAC,UAAA2C,IAAI;MAAA,OAAImS,gBAAgB,CAAC4J,QAAQ,CAAC/b,IAAI,CAACqC,EAAE,CAAC;IAAA,EAAC;IACrF,IAAI,CAACyZ,cAAc,CAAC/hB,MAAM,IAAI,CAACib,SAAS,EAAE;MACtC;IACJ;IAEA3H,mBAAmB,CAAC;MAChBE,MAAM,EAAEuO,cAAc;MACtBtO,WAAW,EAAEwH,SAAS,CAACvS,YAAY;MACnCgL,YAAY,EAAEuH,SAAS,CAACtS,aAAa;MACrCgL,KAAK,EAAEkC,OAAO,CAAClC;IACnB,CAAC,CAAC;EACN,CAAC;EAED,oBACIzW,MAAA,YAAAwU,aAAA,CAACpU,MAAA,WAAQ;IAACqW,KAAK,EAAEiB,QAAQ,CAACqN,iBAAkB;IAACxN,OAAO,EAAEA;EAAQ,gBAE1DvX,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAyX,IAAI;IACDG,IAAI,EAAEA,IAAK;IACXxQ,IAAI,EAAC,eAAe;IACpByd,QAAQ,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IACtBC,UAAU,EAAE;MAAED,IAAI,EAAE;IAAG,CAAE;IACzBE,QAAQ,EAAEhF;EAAa,gBAEvBngB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAyX,IAAI,CAACwN,IAAI;IACNC,KAAK,EAAE3N,QAAQ,CAAC4N,aAAc;IAC9B/d,IAAI,EAAC,OAAO;IACZge,KAAK,EAAE,CAAC;MAAEC,QAAQ,EAAE,IAAI;MAAEC,OAAO,EAAE/N,QAAQ,CAACgO;IAAY,CAAC;EAAE,gBAE3D1lB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAwlB,KAAK;IAACC,WAAW,EAAElO,QAAQ,CAACgO;EAAY,CAAE,CACpC,CAAC,eAEZ1lB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAyX,IAAI,CAACwN,IAAI;IACNC,KAAK,EAAE3N,QAAQ,CAACmO,UAAW;IAC3Bte,IAAI,EAAC,OAAO;IACZge,KAAK,EAAE,CAAC;MAAEC,QAAQ,EAAE,IAAI;MAAEC,OAAO,EAAE/N,QAAQ,CAACoO;IAAa,CAAC;EAAE,gBAE5D9lB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAA4lB,MAAM;IACHH,WAAW,EAAElO,QAAQ,CAACoO,YAAa;IACnCE,UAAU;IACVC,QAAQ,EAAE1G,iBAAkB;IAC5B2G,OAAO,EAAE,CACL;MAAE/iB,KAAK,EAAE,GAAG;MAAEkiB,KAAK,EAAE3N,QAAQ,CAACyO;IAAY,CAAC,EAC3C;MAAEhjB,KAAK,EAAE,GAAG;MAAEkiB,KAAK,EAAE3N,QAAQ,CAAC0O;IAAgB,CAAC;EACjD,CACL,CACM,CAAC,eAEhBpmB,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACH4X,UAAU,EAAE,EAAE;MACdC,YAAY,EAAE,EAAE;MAChBC,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAE;IAChB;EAAE,GAED/O,QAAQ,CAACgP,gBACT,CAAC,eAEF1mB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAyX,IAAI,CAACwN,IAAI;IACNC,KAAK,EAAE3N,QAAQ,CAACxN,QAAS;IACzB3C,IAAI,EAAC,UAAU;IACfge,KAAK,EAAE,CAAC;MAAEC,QAAQ,EAAE,IAAI;MAAEC,OAAO,EAAE/N,QAAQ,CAACoO;IAAa,CAAC;EAAE,gBAE5D9lB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAA4lB,MAAM;IACHH,WAAW,EAAElO,QAAQ,CAACoO,YAAa;IACnCE,UAAU;IACVC,QAAQ,EAAEvG,oBAAqB;IAC/BwG,OAAO,EAAEze,eAAe,CAAC4F,GAAG,CAAC,UAAAtE,IAAI;MAAA,OAAK;QAClC5F,KAAK,EAAE4F,IAAI;QACXsc,KAAK,EAAEtc;MACX,CAAC;IAAA,CAAC;EAAE,CACP,CACM,CAAC,eAEZ/I,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAyX,IAAI,CAACwN,IAAI;IAACC,KAAK,EAAE3N,QAAQ,CAACtN,aAAc;IAACob,QAAQ;EAAA,gBAC9CxlB,MAAA,YAAAwU,aAAA;IAAK/F,KAAK,EAAE;MAAEkY,OAAO,EAAE,MAAM;MAAEC,UAAU,EAAE,QAAQ;MAAEC,GAAG,EAAE;IAAE;EAAE,gBAC1D7mB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAyX,IAAI,CAACwN,IAAI;IACN7d,IAAI,EAAC,eAAe;IACpBge,KAAK,EAAE,CACH;MAAEC,QAAQ,EAAE,IAAI;MAAEC,OAAO,EAAE/N,QAAQ,CAACgO;IAAY,CAAC,EACjD;MACI7U,IAAI,EAAE,SAAS;MACfkC,SAAS,EAAE,SAAXA,SAASA,CAAE5P,KAAK;QAAA,OACZA,KAAK,KAAKsF,SAAS,IAAItF,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE,GAC/CA,KAAK,GACL4D,MAAM,CAAC5D,KAAK,CAAC;MAAA;MACvBsiB,OAAO,EAAE/N,QAAQ,CAACoP;IACtB,CAAC,CACH;IACFrY,KAAK,EAAE;MAAEsY,IAAI,EAAE,CAAC;MAAET,YAAY,EAAE;IAAE;EAAE,gBAEpCtmB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAA6mB,WAAW;IACR7b,GAAG,EAAE,CAAE;IACP8b,SAAS,EAAE,CAAE;IACbC,YAAY,EAAE,KAAM;IACpBC,IAAI,EAAE,CAAE;IACR1Y,KAAK,EAAE;MAAE7G,KAAK,EAAE;IAAO;EAAE,CAC5B,CACM,CAAC,eACZ5H,MAAA,YAAAwU,aAAA;IAAM/F,KAAK,EAAE;MAAE2Y,UAAU,EAAE;IAAS;EAAE,GAAC,gBAAU,CAChD,CACE,CAAC,eAEZpnB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAyX,IAAI,CAACwN,IAAI;IAACF,UAAU,EAAE;MAAEmC,MAAM,EAAE,CAAC;MAAEpC,IAAI,EAAE;IAAG;EAAE,gBAC3CjlB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAmnB,MAAM;IAACzW,IAAI,EAAC,SAAS;IAAC0W,QAAQ,EAAC;EAAQ,GACnC7P,QAAQ,CAAC8P,iBACN,CACD,CACT,CAAC,eAEPxnB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAsnB,KAAK;IACFC,IAAI,EAAEvP,cAAe;IACrB1B,KAAK,EAAEiB,QAAQ,CAACiQ,OAAQ;IACxBC,QAAQ,EAAE,SAAVA,QAAQA,CAAA;MAAA,OAAQxP,iBAAiB,CAAC,KAAK,CAAC;IAAA,CAAC;IACzCyP,IAAI,EAAEzD,oBAAqB;IAC3B0D,MAAM,EAAEpQ,QAAQ,CAACqQ,EAAG;IACpBC,UAAU,EAAEtQ,QAAQ,CAACuQ,MAAO;IAC5BrgB,KAAK,EAAEyF,GAAG,CAAC6a,WAAW,CAAC,CAAC,CAACC,WAAW,GAAG,EAAG;IAC1CC,QAAQ;IACRC,aAAa,EAAC,mBAAmB;IACjCC,cAAc,EAAEhN,UAAW;IAC3BiN,eAAe,EAAE;EAAM,gBAEvBvoB,MAAA,YAAAwU,aAAA;IAAK/F,KAAK,EAAE;MAAEkY,OAAO,EAAE,MAAM;MAAEE,GAAG,EAAE,EAAE;MAAED,UAAU,EAAE,QAAQ;MAAEN,YAAY,EAAE;IAAG;EAAE,gBAC7EtmB,MAAA,YAAAwU,aAAA,eAAOkD,QAAQ,CAAC8Q,SAAgB,CAAC,eACjCxoB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAA6mB,WAAW;IACR7b,GAAG,EAAE,KAAM;IACX8b,SAAS,EAAE,CAAE;IACb9jB,KAAK,EAAE6G,YAAa;IACpBic,QAAQ,EAAEjF;EAAkB,CAC/B,CAAC,eACFhhB,MAAA,YAAAwU,aAAA,eAAM,IAAQ,CAAC,eACfxU,MAAA,YAAAwU,aAAA;IACIsB,GAAG,EAAE2S,gBAAQ;IACbC,GAAG,EAAEhR,QAAQ,CAACiR,cAAe;IAC7Bla,KAAK,EAAE;MAAE7G,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE,EAAE;MAAE+gB,SAAS,EAAE;IAAU;EAAE,CAC1D,CAAC,eACF5oB,MAAA,YAAAwU,aAAA,eAAOkD,QAAQ,CAACmR,UAAiB,CAAC,eAClC7oB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAA6mB,WAAW;IACRC,SAAS,EAAE,CAAE;IACbE,IAAI,EAAE,CAAE;IACRhc,GAAG,EAAE,CAAE;IACPhI,KAAK,EAAE8G,aAAc;IACrBgc,QAAQ,EAAE/E;EAAmB,CAChC,CAAC,eACFlhB,MAAA,YAAAwU,aAAA,eAAM,IAAQ,CAAC,EACduJ,SAAS,iBACN/d,MAAA,YAAAwU,aAAA;IAAM/F,KAAK,EAAE;MAAE4X,UAAU,EAAE,MAAM;MAAEE,KAAK,EAAE;IAAO;EAAE,GAC9CxI,SAAS,CAACpT,IAAI,EAAC,GAAC,EAAC+M,QAAQ,CAACoR,OAAO,EAAC,KAAG,EAAC/K,SAAS,CAAClT,IAAI,EAAC,GAAC,EAAC6M,QAAQ,CAACqR,OAAO,EAAC,QACzE,EAACrR,QAAQ,CAACsR,SAAS,EAAC,GAAC,EAACjL,SAAS,CAACrS,WAAW,EAAC,GAAC,EAACgM,QAAQ,CAACuR,SACrD,CAET,CAAC,eAENjpB,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpBrhB,MAAM,EAAEO,cAAc;MACtB+gB,QAAQ,EAAE,MAAM;MAChBC,UAAU,EAAE,SAAS;MACrBC,MAAM,EAAE;IACZ;EAAE,GAED,CAACpP,YAAY,iBACVja,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpB5c,IAAI,EAAE,CAAC;MACPE,GAAG,EAAE,CAAC;MACND,KAAK,EAAE,CAAC;MACRE,MAAM,EAAE,CAAC;MACTka,OAAO,EAAE,MAAM;MACf2C,aAAa,EAAE,QAAQ;MACvB1C,UAAU,EAAE,QAAQ;MACpB2C,cAAc,EAAE,QAAQ;MACxBpb,MAAM,EAAE,EAAE;MACVib,UAAU,EAAE,wBAAwB;MACpCvC,GAAG,EAAE,EAAE;MACP2C,aAAa,EAAE;IACnB;EAAE,gBAEFxpB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAspB,IAAI,MAAE,CAAC,eACRzpB,MAAA,YAAAwU,aAAA;IAAK/F,KAAK,EAAE;MAAE8X,KAAK,EAAE,MAAM;MAAEC,QAAQ,EAAE;IAAG;EAAE,GAAElM,kBAAwB,CACrE,CACR,EAEAf,OAAO,IAAI2F,kBAAkB,IAAInB,SAAS,IAAIkB,iBAAiB,iBAC5Djf,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpBthB,KAAK,EAAEsX,kBAAkB,CAACtX,KAAK;MAC/BC,MAAM,EAAEqX,kBAAkB,CAACrX,MAAM;MACjC6hB,eAAe,EAAE;IACrB;EAAE,gBAEF1pB,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpB5c,IAAI,EAAE,CAAC;MACPE,GAAG,EAAE,CAAC;MACN5E,KAAK,EAAEqX,iBAAiB,CAACrX,KAAK;MAC9BC,MAAM,EAAEoX,iBAAiB,CAACpX,MAAM;MAChCshB,QAAQ,EAAE,QAAQ;MAClBhb,MAAM,EAAE,CAAC;MACTwY,OAAO,EAAE;IACb;EAAE,gBAEF3mB,MAAA,YAAAwU,aAAA,CAACxT,MAAA,CAAA2oB,GAAc;IACX/hB,KAAK,KAAAyD,MAAA,CAAKd,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAACwK,iBAAiB,CAACrX,KAAK,CAAC,CAAC,OAAK;IAC/DC,MAAM,KAAAwD,MAAA,CAAKd,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkK,KAAK,CAACwK,iBAAiB,CAACpX,MAAM,CAAC,CAAC,OAAK;IACjEkK,UAAU,EAAEyM,iBAAiB,CAACzM,UAAW;IACzC2M,QAAQ,EAAEF,iBAAiB,CAACE,QAAS;IACrCC,YAAY,EAAEH,iBAAiB,CAACG,YAAa;IAC7CC,IAAI,EAAEJ,iBAAiB,CAACI,IAAK;IAC7BC,EAAE,EAAEL,iBAAiB,CAACK,EAAG;IACzB+K,cAAc,EAAE,IAAK;IACrBC,UAAU,EAAE9J;EAAwB,CACvC,CACA,CAAC,eAEN/f,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpB5c,IAAI,EAAE,CAAC;MACPE,GAAG,EAAE,CAAC;MACN5E,KAAK,EAAEsX,kBAAkB,CAACtX,KAAK;MAC/BC,MAAM,EAAEqX,kBAAkB,CAACrX,MAAM;MACjCsG,MAAM,EAAE,CAAC;MACTqb,aAAa,EAAE;IACnB;EAAE,gBAEFxpB,MAAA,YAAAwU,aAAA;IACIsB,GAAG,EAAE4E,YAAa;IAClBgO,GAAG,EAAC,eAAe;IACnBja,KAAK,EAAE;MACH7G,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE,MAAM;MACd8e,OAAO,EAAEjM,YAAY,GAAG,OAAO,GAAG,MAAM;MACxC8O,aAAa,EAAE,MAAM;MACrBzb,OAAO,EAAE;IACb;EAAE,CACL,CACA,CAAC,EAELqR,qBAAqB,IAAIA,qBAAqB,CAACC,YAAY,GAAG,GAAG,iBAC9Drf,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpB1c,GAAG,EAAE,CAAC;MACND,KAAK,EAAE,CAAC;MACR3E,KAAK,KAAAyD,MAAA,CAAK,GAAG,GAAG+T,qBAAqB,CAACC,YAAY,MAAG;MACrDxX,MAAM,KAAAwD,MAAA,CAAK+T,qBAAqB,CAACE,aAAa,MAAG;MACjD8J,UAAU,EAAE,wBAAwB;MACpCI,aAAa,EAAE,MAAM;MACrBrb,MAAM,EAAE;IACZ;EAAE,CACL,CACJ,EAEAiR,qBAAqB,IAAIA,qBAAqB,CAACE,aAAa,GAAG,GAAG,iBAC/Dtf,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpB5c,IAAI,EAAE,CAAC;MACPG,MAAM,EAAE,CAAC;MACT7E,KAAK,EAAE,MAAM;MACbC,MAAM,KAAAwD,MAAA,CAAK,GAAG,GAAG+T,qBAAqB,CAACE,aAAa,MAAG;MACvD8J,UAAU,EAAE,wBAAwB;MACpCI,aAAa,EAAE,MAAM;MACrBrb,MAAM,EAAE;IACZ;EAAE,CACL,CACJ,EAEAiR,qBAAqB,iBAClBpf,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpB5c,IAAI,EAAE,CAAC;MACPE,GAAG,EAAE,CAAC;MACN5E,KAAK,KAAAyD,MAAA,CAAK+T,qBAAqB,CAACC,YAAY,MAAG;MAC/CxX,MAAM,KAAAwD,MAAA,CAAK+T,qBAAqB,CAACE,aAAa,MAAG;MACjD+J,MAAM,EAAE,mCAAmC;MAC3CS,SAAS,EAAE,YAAY;MACvBN,aAAa,EAAE,MAAM;MACrBrb,MAAM,EAAE;IACZ;EAAE,CACL,CACJ,EAEA4P,SAAS,aAATA,SAAS,gBAAAzG,kBAAA,GAATyG,SAAS,CAAEjT,MAAM,cAAAwM,kBAAA,uBAAjBA,kBAAA,CAAmBjK,GAAG,CAAC,UAAAzB,KAAK;IAAA,oBACzB5L,MAAA,YAAAwU,aAAA;MACIuV,GAAG,EAAEne,KAAK,CAACR,EAAG;MACdqD,KAAK,EAAE;QACHya,QAAQ,EAAE,UAAU;QACpB5c,IAAI,KAAAjB,MAAA,CAAMO,KAAK,CAACX,GAAG,GAAG6B,qBAAqB,CAACiR,SAAS,CAAC,CAACnW,KAAK,GAAI,GAAG,MAAG;QACtE4E,GAAG,KAAAnB,MAAA,CAAMO,KAAK,CAACV,GAAG,GAAG4B,qBAAqB,CAACiR,SAAS,CAAC,CAAClW,MAAM,GAAI,GAAG,MAAG;QACtED,KAAK,KAAAyD,MAAA,CAAM0S,SAAS,CAACvS,YAAY,GAAGsB,qBAAqB,CAACiR,SAAS,CAAC,CAACnW,KAAK,GAAI,GAAG,MAAG;QACpFC,MAAM,KAAAwD,MAAA,CAAM0S,SAAS,CAACtS,aAAa,GAAGqB,qBAAqB,CAACiR,SAAS,CAAC,CAAClW,MAAM,GAAI,GAAG,MAAG;QACvFwhB,MAAM,EAAE,iBAAiB;QACzBS,SAAS,EAAE,YAAY;QACvBN,aAAa,EAAE,MAAM;QACrBrb,MAAM,EAAE;MACZ;IAAE,gBAEFnO,MAAA,YAAAwU,aAAA;MACI/F,KAAK,EAAE;QACHya,QAAQ,EAAE,UAAU;QACpB1c,GAAG,EAAE,CAAC;QACNF,IAAI,EAAE,CAAC;QACP8c,UAAU,EAAE,wBAAwB;QACpCY,OAAO,EAAE,OAAO;QAChBxD,QAAQ,EAAE;MACd;IAAE,GAED5a,KAAK,CAACN,KACN,CACJ,CAAC;EAAA,CACT,CACA,CAER,CACF,CAAC,eAERtL,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAsnB,KAAK;IACFC,IAAI,EAAEnP,YAAa;IACnB9B,KAAK,EAAEiB,QAAQ,CAACuS,eAAgB;IAChCrC,QAAQ,EAAE,SAAVA,QAAQA,CAAA;MAAA,OAAQpP,eAAe,CAAC,KAAK,CAAC;IAAA,CAAC;IACvCqP,IAAI,EAAEjD,eAAgB;IACtBkD,MAAM,EAAEpQ,QAAQ,CAACwS,SAAU;IAC3BlC,UAAU,EAAEtQ,QAAQ,CAACuQ,MAAO;IAC5BrgB,KAAK,EAAEyF,GAAG,CAAC6a,WAAW,CAAC,CAAC,CAACC,WAAW,GAAG,EAAG;IAC1CC,QAAQ;IACRC,aAAa,EAAC;EAAmB,gBAEjCroB,MAAA,YAAAwU,aAAA;IAAK/F,KAAK,EAAE;MAAE6X,YAAY,EAAE;IAAG;EAAE,gBAC7BtmB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAgqB,QAAQ;IACLC,aAAa,EACTlP,gBAAgB,CAACpY,MAAM,GAAG,CAAC,IAAIoY,gBAAgB,CAACpY,MAAM,GAAGgY,WAAW,CAAChY,MACxE;IACDunB,OAAO,EAAEvP,WAAW,CAAChY,MAAM,GAAG,CAAC,IAAIoY,gBAAgB,CAACpY,MAAM,KAAKgY,WAAW,CAAChY,MAAO;IAClFmjB,QAAQ,EAAE,SAAVA,QAAQA,CAAE7kB,CAAC;MAAA,OACP+Z,mBAAmB,CAAC/Z,CAAC,CAACwP,MAAM,CAACyZ,OAAO,GAAGvP,WAAW,CAACzN,GAAG,CAAC,UAAAtE,IAAI;QAAA,OAAIA,IAAI,CAACqC,EAAE;MAAA,EAAC,GAAG,EAAE,CAAC;IAAA;EAChF,GAEAsM,QAAQ,CAAC4S,aACJ,CACT,CAAC,eACNtqB,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHkY,OAAO,EAAE,MAAM;MACf4D,mBAAmB,EAAE,uCAAuC;MAC5D1D,GAAG,EAAE,EAAE;MACP2D,SAAS,EAAE,MAAM;MACjBrB,QAAQ,EAAE;IACd;EAAE,GAEDrO,WAAW,CAACzN,GAAG,CAAC,UAAAtE,IAAI;IAAA,oBACjB/I,MAAA,YAAAwU,aAAA;MACIuV,GAAG,EAAEhhB,IAAI,CAACqC,EAAG;MACbqD,KAAK,EAAE;QACHkY,OAAO,EAAE,OAAO;QAChB0C,MAAM,EAAE,gBAAgB;QACxBoB,YAAY,EAAE,CAAC;QACfT,OAAO,EAAE,EAAE;QACXZ,UAAU,EAAE;MAChB;IAAE,gBAEFppB,MAAA,YAAAwU,aAAA;MAAK/F,KAAK,EAAE;QAAE6X,YAAY,EAAE,CAAC;QAAEK,OAAO,EAAE,MAAM;QAAEC,UAAU,EAAE,QAAQ;QAAEC,GAAG,EAAE;MAAE;IAAE,gBAC3E7mB,MAAA,YAAAwU,aAAA,CAACrU,KAAA,CAAAgqB,QAAQ;MACLE,OAAO,EAAEnP,gBAAgB,CAAC4J,QAAQ,CAAC/b,IAAI,CAACqC,EAAE,CAAE;MAC5C6a,QAAQ,EAAE,SAAVA,QAAQA,CAAE7kB,CAAC,EAAI;QACX+Z,mBAAmB,CAAC,UAAA+B,OAAO;UAAA,OACvB9b,CAAC,CAACwP,MAAM,CAACyZ,OAAO,MAAAhf,MAAA,CAAA7H,kBAAA,CACN0Z,OAAO,IAAEnU,IAAI,CAACqC,EAAE,KACpB8R,OAAO,CAAC9W,MAAM,CAAC,UAAAgF,EAAE;YAAA,OAAIA,EAAE,KAAKrC,IAAI,CAACqC,EAAE;UAAA,EAAC;QAAA,CAC9C,CAAC;MACL;IAAE,CACL,CAAC,eACFpL,MAAA,YAAAwU,aAAA,eACKkD,QAAQ,CAACgT,gBAAgB,EAAC,GAAC,EAAC3hB,IAAI,CAACuC,KAAK,EAAC,GAAC,EAACoM,QAAQ,CAACuR,SAAS,EAAC,IAAE,EAAClgB,IAAI,CAACgC,GAAG,EAAC,GAAC,EAAChC,IAAI,CAACiC,GAAG,EAAC,GAClF,CACL,CAAC,eACNhL,MAAA,YAAAwU,aAAA;MACIsB,GAAG,EAAE/M,IAAI,CAACmO,GAAI;MACdwR,GAAG,WAAArd,MAAA,CAAWtC,IAAI,CAACuC,KAAK,CAAG;MAC3BmD,KAAK,EAAE;QAAE7G,KAAK,EAAE,MAAM;QAAE+e,OAAO,EAAE,OAAO;QAAE0C,MAAM,EAAE;MAAiB;IAAE,CACxE,CACE,CAAC;EAAA,CACX,CACA,CACF,CAAC,eAERrpB,MAAA,YAAAwU,aAAA;IACI/F,KAAK,EAAE;MACHya,QAAQ,EAAE,UAAU;MACpB5c,IAAI,EAAE,WAAW;MACjBE,GAAG,EAAE,CAAC;MACN5E,KAAK,EAAE0U,UAAU,CAAC1U,KAAK;MACvBC,MAAM,EAAEyU,UAAU,CAACzU,MAAM;MACzBshB,QAAQ,EAAE;IACd;EAAE,gBAEFnpB,MAAA,YAAAwU,aAAA;IAAKmW,GAAG,EAAE7O,cAAe;IAACrN,KAAK,EAAE;MAAE7G,KAAK,EAAE0U,UAAU,CAAC1U,KAAK;MAAEC,MAAM,EAAEyU,UAAU,CAACzU;IAAO;EAAE,gBACpF7H,MAAA,YAAAwU,aAAA,CAACxT,MAAA,CAAA2oB,GAAc;IACX/hB,KAAK,KAAAyD,MAAA,CAAKiR,UAAU,CAAC1U,KAAK,OAAK;IAC/BC,MAAM,KAAAwD,MAAA,CAAKiR,UAAU,CAACzU,MAAM,OAAK;IACjCkK,UAAU,EAAEyM,iBAAiB,CAACzM,UAAW;IACzC2M,QAAQ,EAAEF,iBAAiB,CAACE,QAAS;IACrCC,YAAY,EAAEH,iBAAiB,CAACG,YAAa;IAC7CC,IAAI,EAAEJ,iBAAiB,CAACI,IAAK;IAC7BC,EAAE,EAAEL,iBAAiB,CAACK,EAAG;IACzB+K,cAAc,EAAE,IAAK;IACrBC,UAAU,EAAEhK;EAAuB,CACtC,CACA,CACJ,CACC,CAAC;AAEnB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_antd","_Modal","_interopRequireDefault","_jspdf","_html2canvas","_interaction","_Vector","_Tile","_Image","_Vector2","_Draw","_Draw2","_useProps2","_olMap","_FeatureLayer","_ImageLayer","_lock","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_regenerator","toStringTag","c","prototype","Generator","create","_regeneratorDefine2","p","y","G","v","d","bind","l","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","enumerable","configurable","writable","_invoke","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","ownKeys","keys","getOwnPropertySymbols","filter","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","constructor","name","test","pageSizeOptions","pageSizeMap","A4","width","height","A3","A2","A1","A0","DIMENSION_DPI","EXPORT_DPI","PREVIEW_HEIGHT","PREVIEW_WIDTH","pxToMm","px","dpi","undefined","mmToPx","mm","isValidExtent","extent","every","item","isFinite","calcMetricsFromZoom","view","zoom","resolution","getResolutionForZoom","getResolution","geoWidth","geoHeight","pixelWidth","pixelHeight","widthMm","heightMm","ratio","calcSplitPlan","_ref","totalWidthMm","totalHeightMm","pageSize","_ref$overlapMargin","overlapMargin","paper","safeOverlap","Math","max","stepX","stepY","cols","ceil","rows","sheets","row","col","xMm","yMm","min","id","concat","index","isPartial","paperWidthMm","paperHeightMm","totalSheets","buildSheetExtent","sheet","plan","totalExtent","_totalExtent","minX","minY","maxX","maxY","xScale","yScale","left","right","top","bottom","buildPreviewFrameExtent","_totalExtent2","frameWidthMm","frameHeightMm","getPreviewFrameSizeMm","getExtentCenter","cloneVectorSource","source","getFeatures","VectorSource","features","map","feature","clone","cloneLayer","layer","_layer$getOpacity","_layer$getVisible","_layer$getZIndex","_layer$getExtent","common","opacity","getOpacity","visible","getVisible","zIndex","getZIndex","getExtent","VectorLayer","clonedLayer","getSource","style","getStyle","TileLayer","ImageLayer","clearClonedLayers","mapInstance","getLayers","getArray","removeLayer","syncBusinessLayers","sourceMap","targetMap","excludeLayer","_layer$getVisible2","addLayer","waitNextFrame","requestAnimationFrame","waitMapRender","_mapInstance$renderSy","finish","once","setTimeout","renderSync","waitLayerSourcesSettled","timeout","_mapInstance$renderSy3","disposers","pending","idleTimer","clearTimeout","dispose","scheduleFinish","delay","onStart","onEnd","target","type","handler","on","_target$un","un","_layer$getSource","BusinessImageLayer","getImage","_mapInstance$getView","_mapInstance$getSize","_view$calculateExtent","_view$getResolution","_view$getProjection","_image$getState","getView","size","getSize","calculateExtent","projection","getProjection","image","imageState","getState","_image$on","handleImageChange","_image$getState2","_image$un","_mapInstance$renderSy2","nextState","_image$un2","load","parseCanvasTransform","canvas","transformText","transform","window","getComputedStyle","match","split","trim","snapdomPromise","dynamicImport","specifier","Function","getSnapdom","_ref2","_callee","_context","mod","snapdom","captureDomCanvas","_ref3","_callee2","dom","ctx","layerCanvases","snapshot","_context2","document","createElement","round","getContext","fillStyle","fillRect","querySelectorAll","layerCanvas","parentStyle","parentElement","canvasStyle","backgroundColor","save","globalAlpha","setTransform","drawImage","restore","toCanvas","scale","_x","_x2","_x3","loadImage","src","reject","img","Image","onload","onerror","createPdfFromImages","_ref4","images","pageWidthMm","pageHeightMm","title","orientation","pdf","jsPDF","unit","format","compress","addPage","addImage","url","decodeURIComponent","_default","props","_splitPlan$sheets2","onClose","_useProps","useProps","TextEnum","_Form$useForm","Form","useForm","_Form$useForm2","form","_useState","useState","_useState2","previewVisible","setPreviewVisible","_useState3","_useState4","sheetVisible","setSheetVisible","_useState5","_useState6","formVal","setFormVal","_useState7","_useState8","pageSizeValue","setPageSizeValue","_useState9","_useState0","overlapMarginValue","setOverlapMarginValue","_useState1","_useState10","metrics","setMetrics","_useState11","_useState12","setTotalWidthMm","_useState13","_useState14","setTotalHeightMm","_useState15","_useState16","previewReady","setPreviewReady","_useState17","generatingPreviewText","_useState18","previewLoadingText","setPreviewLoadingText","_useState19","_useState20","previewImage","setPreviewImage","_useState21","_useState22","sheetImages","setSheetImages","_useState23","_useState24","selectedSheetIds","setSelectedSheetIds","_useState25","_useState26","generating","setGenerating","drawTool","useRef","boxExtentRef","boxLayerRef","exportMapRef","previewMapRef","exportStageRef","previewMasterCanvasRef","previewMasterFramePixelsRef","cleanupInternalMaps","previewRenderTimerRef","current","renderLayersSyncedRef","previewRenderSeqRef","_useState27","_useState28","exportSize","setExportSize","useEffect","setFieldsValue","range","boxSource","boxLayer","drawStyle","tool","Draw","geometryFunction","createBox","setActive","clear","showTip","clickAgainToEnd","event","getGeometry","leftClickToStart","fit","duration","addInteraction","removeInteraction","hideTip","splitPlan","useMemo","previewFrameExtent","mapProjection","_map$getView","_map$getView$getProje","_map$getView$getProje2","getCode","error","inheritedMapProps","baseLayerParams","mapStyle","baseMapStyle","dark","tk","previewScale","scaleX","scaleY","selectedMapPixels","previewFramePixels","frameSizeMm","selectedRangeCoverage","widthPercent","heightPercent","handleRangeChange","_drawTool$current","_boxLayerRef$current","handlePageSizeChange","nextPageSize","setFieldValue","handleExportMapCreated","exportMap","handlePreviewMapCreated","previewMap","ensureRenderMapLayers","syncPreviewMapLayers","handleSubmit","values","_values$overlapMargin","_map$getView$getZoom","_map$getView2","getFieldValue","console","log","getZoom","nextMetrics","rangeMode","printZoom","toFixed","handleWidthChange","nextWidth","handleHeightChange","nextHeight","renderSheetImage","_ref5","_callee3","previewMasterCanvas","previewMasterFramePixels","frameTotalWidthMm","frameTotalHeightMm","sourceX","sourceY","sourceWidth","sourceHeight","pageWidthPx","pageHeightPx","pageCanvas","_context3","sheetId","sheetIndex","sheetWidthMm","sheetHeightMm","toDataURL","_x4","renderPreviewImage","_ref6","_callee4","seq","_exportMapRef$current","_exportMapRef$current2","widthScale","heightScale","captureWidthPx","captureHeightPx","targetResolution","targetCenter","_previewMapRef$curren","_previewMapRef$curren2","previewView","sourceCanvas","previewCanvas","masterScaleX","masterScaleY","masterCtx","_context4","syncingLayersText","updateSize","setCenter","setResolution","waitingBusinessLayersText","_x5","handleGenerateSheets","_ref7","_callee5","_splitPlan$sheets","_iterator","_step","_t","_context5","handleExportPdf","selectedImages","includes","toolMapSheetPrint","labelCol","span","wrapperCol","onFinish","Item","label","mapPrintTitle","rules","required","message","pleaseInput","Input","placeholder","printRange","pleaseSelect","Select","allowClear","onChange","options","currentView","manualBoxSelect","marginLeft","marginBottom","color","fontSize","fontWeight","sheetPrintParams","display","alignItems","gap","pleaseInputInteger","flex","minWidth","InputNumber","precision","changeOnBlur","step","whiteSpace","flexShrink","offset","Button","htmlType","executeSheetPrint","Modal","open","preview","onCancel","onOk","okText","ok","cancelText","cancel","getViewport","clientWidth","centered","wrapClassName","confirmLoading","destroyOnHidden","widthText","lockImg","alt","fixedRatioText","objectFit","heightText","colText","rowText","totalText","sheetText","position","overflow","background","border","flexDirection","justifyContent","pointerEvents","Spin","transformOrigin","Map","hidePopupTable","createdMap","boxSizing","key","padding","sheetResultText","printText","Checkbox","indeterminate","checked","selectAllText","gridTemplateColumns","maxHeight","borderRadius","sheetIndexPrefix","ref"],"sources":["tools/Toolbox/MapSheetPrint/index.js"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport { Modal, Button, Select, Form, Input, InputNumber, Checkbox, Spin } from 'antd';\r\nimport DivModal from '../../components/Modal';\r\nimport { jsPDF } from 'jspdf';\r\n// import { snapdom } from '@zumer/snapdom';\r\nimport html2canvas from 'html2canvas';\r\nimport { Draw } from 'ol/interaction';\r\nimport VectorLayer from 'ol/layer/Vector';\r\nimport TileLayer from 'ol/layer/Tile';\r\nimport ImageLayer from 'ol/layer/Image';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport { createBox } from 'ol/interaction/Draw';\r\nimport { drawStyle } from '../../Utils/Draw';\r\nimport useProps from '../../../use-props';\r\nimport { Map as OlMapComponent } from '@vtx/ol-map';\r\nimport FeatureLayer from '../../../feature-layer/FeatureLayer';\r\nimport BusinessImageLayer from '../../../image-layer/ImageLayer';\r\nimport lockImg from './assets/lock.png';\r\nimport './index.less';\r\n\r\nconst pageSizeOptions = ['A4', 'A3', 'A2', 'A1', 'A0'];\r\n\r\nconst pageSizeMap = {\r\n A4: { width: 210, height: 297 },\r\n A3: { width: 297, height: 420 },\r\n A2: { width: 420, height: 594 },\r\n A1: { width: 594, height: 841 },\r\n A0: { width: 841, height: 1189 },\r\n};\r\n\r\nconst DIMENSION_DPI = 96;\r\nconst EXPORT_DPI = 144;\r\nconst PREVIEW_HEIGHT = 610;\r\nconst PREVIEW_WIDTH = 980;\r\n\r\nconst pxToMm = (px, dpi = DIMENSION_DPI) => (px * 25.4) / dpi;\r\nconst mmToPx = (mm, dpi = EXPORT_DPI) => (mm * dpi) / 25.4;\r\n\r\nconst isValidExtent = extent => {\r\n return (\r\n Array.isArray(extent) &&\r\n extent.length === 4 &&\r\n extent.every(item => Number.isFinite(item)) &&\r\n extent[2] > extent[0] &&\r\n extent[3] > extent[1]\r\n );\r\n};\r\n\r\n// 按指定层级把地理范围换算成屏幕像素和毫米尺寸。\r\n// 这里算出来的宽高是后面分幅、预览和导出的统一基础数据。\r\nconst calcMetricsFromZoom = (extent, view, zoom) => {\r\n if (!isValidExtent(extent)) {\r\n return null;\r\n }\r\n\r\n const resolution = view.getResolutionForZoom(zoom) || view.getResolution();\r\n const geoWidth = extent[2] - extent[0];\r\n const geoHeight = extent[3] - extent[1];\r\n const pixelWidth = geoWidth / resolution;\r\n const pixelHeight = geoHeight / resolution;\r\n const widthMm = pxToMm(pixelWidth, DIMENSION_DPI);\r\n const heightMm = pxToMm(pixelHeight, DIMENSION_DPI);\r\n\r\n return {\r\n extent,\r\n zoom,\r\n resolution,\r\n geoWidth,\r\n geoHeight,\r\n pixelWidth,\r\n pixelHeight,\r\n widthMm,\r\n heightMm,\r\n ratio: heightMm / widthMm,\r\n };\r\n};\r\n\r\n// 根据总宽高、纸张尺寸和重叠边距,计算需要切成多少张纸,\r\n// 以及每一张纸在整幅图中的毫米位置。\r\nconst calcSplitPlan = ({ totalWidthMm, totalHeightMm, pageSize, overlapMargin = 0 }) => {\r\n const paper = pageSizeMap[pageSize];\r\n if (!paper || !totalWidthMm || !totalHeightMm) {\r\n return null;\r\n }\r\n\r\n const safeOverlap = Math.max(0, Number(overlapMargin) || 0);\r\n const stepX = Math.max(1, paper.width - safeOverlap);\r\n const stepY = Math.max(1, paper.height - safeOverlap);\r\n const cols = Math.max(1, Math.ceil(totalWidthMm / stepX));\r\n const rows = Math.max(1, Math.ceil(totalHeightMm / stepY));\r\n const sheets = [];\r\n\r\n for (let row = 0; row < rows; row++) {\r\n for (let col = 0; col < cols; col++) {\r\n const xMm = col * stepX;\r\n const yMm = row * stepY;\r\n const widthMm = Math.min(paper.width, totalWidthMm - xMm);\r\n const heightMm = Math.min(paper.height, totalHeightMm - yMm);\r\n\r\n sheets.push({\r\n id: `${row + 1}-${col + 1}`,\r\n index: row * cols + col + 1,\r\n row: row + 1,\r\n col: col + 1,\r\n xMm,\r\n yMm,\r\n widthMm,\r\n heightMm,\r\n isPartial: widthMm < paper.width || heightMm < paper.height,\r\n });\r\n }\r\n }\r\n\r\n return {\r\n paperWidthMm: paper.width,\r\n paperHeightMm: paper.height,\r\n overlapMargin: safeOverlap,\r\n totalWidthMm,\r\n totalHeightMm,\r\n stepX,\r\n stepY,\r\n cols,\r\n rows,\r\n totalSheets: sheets.length,\r\n sheets,\r\n };\r\n};\r\n\r\n// 把某一张分幅纸在整幅图中的毫米位置,映射回真实地图 extent。\r\nconst buildSheetExtent = (sheet, plan, totalExtent) => {\r\n const [minX, minY, maxX, maxY] = totalExtent;\r\n const xScale = (maxX - minX) / plan.totalWidthMm;\r\n const yScale = (maxY - minY) / plan.totalHeightMm;\r\n const left = minX + sheet.xMm * xScale;\r\n const right = left + sheet.widthMm * xScale;\r\n const top = maxY - sheet.yMm * yScale;\r\n const bottom = top - sheet.heightMm * yScale;\r\n\r\n return [left, bottom, right, top];\r\n};\r\n\r\n// 预览区显示的是“完整纸张网格”的外框,不是仅仅显示用户选中的蓝框范围。\r\n// 这样最后一张纸即使没铺满,虚线纸张尺寸也仍然是完整的。\r\nconst buildPreviewFrameExtent = (plan, totalExtent) => {\r\n if (!plan || !isValidExtent(totalExtent)) {\r\n return null;\r\n }\r\n\r\n const [minX, minY, maxX, maxY] = totalExtent;\r\n const xScale = (maxX - minX) / plan.totalWidthMm;\r\n const yScale = (maxY - minY) / plan.totalHeightMm;\r\n const frameWidthMm = plan.paperWidthMm + Math.max(0, plan.cols - 1) * plan.stepX;\r\n const frameHeightMm = plan.paperHeightMm + Math.max(0, plan.rows - 1) * plan.stepY;\r\n\r\n return [\r\n minX,\r\n maxY - frameHeightMm * yScale,\r\n minX + frameWidthMm * xScale,\r\n maxY,\r\n ];\r\n};\r\n\r\nconst getPreviewFrameSizeMm = plan => {\r\n if (!plan) {\r\n return null;\r\n }\r\n\r\n return {\r\n width: plan.paperWidthMm + Math.max(0, plan.cols - 1) * plan.stepX,\r\n height: plan.paperHeightMm + Math.max(0, plan.rows - 1) * plan.stepY,\r\n };\r\n};\r\n\r\nconst getExtentCenter = extent => [\r\n (extent[0] + extent[2]) / 2,\r\n (extent[1] + extent[3]) / 2,\r\n];\r\n\r\n// 预览/导出地图会复用原地图的图层源。\r\n// 矢量图层这里做一份克隆,避免直接操作原图层上的 feature。\r\nconst cloneVectorSource = source => {\r\n if (!source?.getFeatures) {\r\n return source;\r\n }\r\n\r\n return new VectorSource({\r\n features: source.getFeatures().map(feature => feature.clone()),\r\n });\r\n};\r\n\r\n// 这里只同步常见业务图层到隐藏导出地图中,\r\n// 不把框选图层、高亮层和底图标注层混进去,避免预览污染。\r\nconst cloneLayer = layer => {\r\n const common = {\r\n opacity: layer.getOpacity?.(),\r\n visible: layer.getVisible?.(),\r\n zIndex: layer.getZIndex?.(),\r\n extent: layer.getExtent?.(),\r\n };\r\n\r\n if (layer instanceof VectorLayer) {\r\n const clonedLayer = new VectorLayer({\r\n ...common,\r\n source: cloneVectorSource(layer.getSource()),\r\n style: layer.getStyle(),\r\n });\r\n clonedLayer.set('__sheetPrintClone', true);\r\n return clonedLayer;\r\n }\r\n\r\n if (layer instanceof TileLayer) {\r\n const clonedLayer = new TileLayer({\r\n ...common,\r\n source: layer.getSource(),\r\n });\r\n clonedLayer.set('__sheetPrintClone', true);\r\n return clonedLayer;\r\n }\r\n\r\n if (layer instanceof ImageLayer) {\r\n const clonedLayer = new ImageLayer({\r\n ...common,\r\n source: layer.getSource(),\r\n });\r\n clonedLayer.set('__sheetPrintClone', true);\r\n return clonedLayer;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst clearClonedLayers = mapInstance => {\r\n if (!mapInstance) {\r\n return;\r\n }\r\n\r\n mapInstance\r\n .getLayers()\r\n .getArray()\r\n .filter(layer => layer.get('__sheetPrintClone'))\r\n .forEach(layer => mapInstance.removeLayer(layer));\r\n};\r\n\r\n// 隐藏导出地图和主地图不是同一个实例,所以需要把当前可见业务图层同步过去。\r\nconst syncBusinessLayers = (sourceMap, targetMap, excludeLayer) => {\r\n if (!sourceMap || !targetMap) {\r\n return;\r\n }\r\n\r\n clearClonedLayers(targetMap);\r\n\r\n sourceMap\r\n .getLayers()\r\n .getArray()\r\n .filter(layer => {\r\n if (layer === excludeLayer) {\r\n return false;\r\n }\r\n if (!layer?.getVisible?.()) {\r\n return false;\r\n }\r\n if (layer.get('key') === 'Highlight') {\r\n return false;\r\n }\r\n if (layer.get('key') === '__TDT_TILE' || layer.get('key') === '__TDT_MARK') {\r\n return false;\r\n }\r\n\r\n return true;\r\n })\r\n .forEach(layer => {\r\n const clonedLayer = cloneLayer(layer);\r\n if (clonedLayer) {\r\n targetMap.addLayer(clonedLayer);\r\n }\r\n });\r\n};\r\n\r\nconst waitNextFrame = () =>\r\n new Promise(resolve => {\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(resolve);\r\n });\r\n });\r\n\r\nconst waitMapRender = mapInstance =>\r\n new Promise(resolve => {\r\n if (!mapInstance) {\r\n resolve();\r\n return;\r\n }\r\n\r\n let done = false;\r\n const finish = () => {\r\n if (done) {\r\n return;\r\n }\r\n done = true;\r\n resolve();\r\n };\r\n\r\n mapInstance.once('rendercomplete', finish);\r\n setTimeout(finish, 600);\r\n mapInstance.renderSync?.();\r\n });\r\n\r\n// 业务图层经常是 WMS/WFS 异步请求,rendercomplete 加上固定 600ms 还不够稳。\r\n// 这里额外等待图层 source 进入一段“空闲期”后再截图,避免外面图层还在加载时就提前截空白图。\r\nconst waitLayerSourcesSettled = (mapInstance, timeout = 4000) =>\r\n new Promise(resolve => {\r\n if (!mapInstance) {\r\n resolve();\r\n return;\r\n }\r\n\r\n const disposers = [];\r\n let pending = 0;\r\n let done = false;\r\n let idleTimer = null;\r\n\r\n const finish = () => {\r\n if (done) {\r\n return;\r\n }\r\n done = true;\r\n if (idleTimer) {\r\n clearTimeout(idleTimer);\r\n }\r\n disposers.forEach(dispose => dispose());\r\n resolve();\r\n };\r\n\r\n const scheduleFinish = delay => {\r\n if (idleTimer) {\r\n clearTimeout(idleTimer);\r\n }\r\n idleTimer = setTimeout(() => {\r\n if (pending <= 0) {\r\n finish();\r\n }\r\n }, delay);\r\n };\r\n\r\n const onStart = () => {\r\n pending += 1;\r\n if (idleTimer) {\r\n clearTimeout(idleTimer);\r\n idleTimer = null;\r\n }\r\n };\r\n\r\n const onEnd = () => {\r\n pending = Math.max(0, pending - 1);\r\n if (pending === 0) {\r\n scheduleFinish(250);\r\n }\r\n };\r\n\r\n const bind = (target, type, handler) => {\r\n if (!target?.on) {\r\n return;\r\n }\r\n target.on(type, handler);\r\n disposers.push(() => target.un?.(type, handler));\r\n };\r\n\r\n mapInstance\r\n .getLayers()\r\n .getArray()\r\n .filter(layer => layer.get('__sheetPrintClone'))\r\n .forEach(layer => {\r\n const source = layer.getSource?.();\r\n if (!source) {\r\n return;\r\n }\r\n\r\n [\r\n 'tileloadstart',\r\n 'imageloadstart',\r\n 'featuresloadstart',\r\n 'vectorloadstart',\r\n ].forEach(type => bind(source, type, onStart));\r\n\r\n [\r\n 'tileloadend',\r\n 'tileloaderror',\r\n 'imageloadend',\r\n 'imageloaderror',\r\n 'featuresloadend',\r\n 'featuresloaderror',\r\n 'vectorloadend',\r\n 'vectorloaderror',\r\n ].forEach(type => bind(source, type, onEnd));\r\n\r\n // 业务 ImageLayer 第一次进入预览时,经常是 source 已经创建但首张 WMS 图还没真正画进地图。\r\n // 这里额外盯一下当前 image state,等它从 idle/loading 走到可用状态后再继续截图。\r\n if (layer instanceof BusinessImageLayer && typeof source.getImage === 'function') {\r\n const view = mapInstance.getView?.();\r\n const size = mapInstance.getSize?.();\r\n const extent = view?.calculateExtent?.(size);\r\n const resolution = view?.getResolution?.();\r\n const projection = view?.getProjection?.();\r\n const image = extent && resolution && projection\r\n ? source.getImage(extent, resolution, 1, projection)\r\n : null;\r\n const imageState = image?.getState?.();\r\n\r\n if (image && (imageState === 0 || imageState === 1)) {\r\n onStart();\r\n const handleImageChange = () => {\r\n const nextState = image.getState?.();\r\n if (nextState === 0 || nextState === 1) {\r\n return;\r\n }\r\n image.un?.('change', handleImageChange);\r\n onEnd();\r\n mapInstance.renderSync?.();\r\n };\r\n\r\n image.on?.('change', handleImageChange);\r\n disposers.push(() => image.un?.('change', handleImageChange));\r\n\r\n if (imageState === 0 && image.load) {\r\n image.load();\r\n }\r\n }\r\n }\r\n });\r\n\r\n scheduleFinish(500);\r\n setTimeout(finish, timeout);\r\n mapInstance.renderSync?.();\r\n });\r\n\r\nconst parseCanvasTransform = canvas => {\r\n const transformText =\r\n canvas.style.transform || window.getComputedStyle(canvas).transform || '';\r\n const match = transformText.match(/^matrix\\(([^)]+)\\)$/);\r\n\r\n if (!match) {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n\r\n return match[1]\r\n .split(',')\r\n .map(item => Number(item.trim()))\r\n .filter(item => Number.isFinite(item));\r\n};\r\n\r\n\r\nlet snapdomPromise = null;\r\n\r\nconst dynamicImport = specifier =>\r\n new Function('s', 'return import(s)')(specifier);\r\n\r\nconst getSnapdom = async () => {\r\n if (!snapdomPromise) {\r\n snapdomPromise = dynamicImport('@zumer/snapdom').then(mod => mod.snapdom);\r\n }\r\n return snapdomPromise;\r\n};\r\n\r\n\r\n// 优先直接合成 OpenLayers 实际渲染出来的各层 canvas,\r\n// 避免 html2canvas 再截图 DOM 时把地图细节压糊。\r\nconst captureDomCanvas = async (dom, width, height) => {\r\n const canvas = document.createElement('canvas');\r\n canvas.width = Math.max(1, Math.round(width));\r\n canvas.height = Math.max(1, Math.round(height));\r\n const ctx = canvas.getContext('2d');\r\n ctx.fillStyle = '#fff';\r\n ctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n const layerCanvases = Array.from(\r\n dom.querySelectorAll('.ol-layer canvas, canvas.ol-layer, canvas'),\r\n ).filter(item => item.width > 0 && item.height > 0);\r\n\r\n if (layerCanvases.length) {\r\n layerCanvases.forEach(layerCanvas => {\r\n const parentStyle = window.getComputedStyle(layerCanvas.parentElement || layerCanvas);\r\n const canvasStyle = window.getComputedStyle(layerCanvas);\r\n const opacity = Number(parentStyle.opacity || canvasStyle.opacity || 1);\r\n const transform = parseCanvasTransform(layerCanvas);\r\n const backgroundColor = parentStyle.backgroundColor;\r\n\r\n ctx.save();\r\n ctx.globalAlpha = Number.isFinite(opacity) ? opacity : 1;\r\n\r\n if (backgroundColor && backgroundColor !== 'rgba(0, 0, 0, 0)' && backgroundColor !== 'transparent') {\r\n ctx.fillStyle = backgroundColor;\r\n ctx.fillRect(0, 0, canvas.width, canvas.height);\r\n }\r\n\r\n if (transform.length === 6) {\r\n ctx.setTransform(...transform);\r\n } else {\r\n ctx.setTransform(1, 0, 0, 1, 0, 0);\r\n }\r\n\r\n ctx.drawImage(layerCanvas, 0, 0);\r\n ctx.restore();\r\n });\r\n\r\n return canvas;\r\n }\r\n\r\n // const snapshot = await html2canvas(dom, {\r\n // scale: 1,\r\n // backgroundColor: '#ffffff',\r\n // useCORS: true,\r\n // });\r\n\r\n const snapdom = await getSnapdom();\r\n const snapshot = await snapdom.toCanvas(dom, {\r\n scale: 1,\r\n backgroundColor: '#ffffff',\r\n });\r\n \r\n // const snapshot = await snapdom.toCanvas(dom, {\r\n // scale: 1,\r\n // backgroundColor: '#ffffff',\r\n // });\r\n ctx.drawImage(snapshot, 0, 0, canvas.width, canvas.height);\r\n\r\n return canvas;\r\n};\r\n\r\nconst loadImage = src =>\r\n new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.onload = () => resolve(img);\r\n img.onerror = reject;\r\n img.src = src;\r\n });\r\n\r\nconst createPdfFromImages = ({ images, pageWidthMm, pageHeightMm, title }) => {\r\n if (!images?.length) {\r\n return;\r\n }\r\n\r\n const orientation = pageWidthMm > pageHeightMm ? 'landscape' : 'portrait';\r\n const pdf = new jsPDF({\r\n orientation,\r\n unit: 'mm',\r\n format: [pageWidthMm, pageHeightMm],\r\n compress: true,\r\n });\r\n\r\n images.forEach((item, index) => {\r\n if (index > 0) {\r\n pdf.addPage([pageWidthMm, pageHeightMm], orientation);\r\n }\r\n\r\n pdf.addImage(item.url, 'PNG', 0, 0, pageWidthMm, pageHeightMm, undefined, 'FAST');\r\n });\r\n\r\n pdf.save(decodeURIComponent(`${title || 'map-sheet-print'}.pdf`));\r\n};\r\n\r\nexport default function(props) {\r\n const { onClose } = props;\r\n const { map, TextEnum } = useProps();\r\n const [form] = Form.useForm();\r\n const [previewVisible, setPreviewVisible] = useState(false);\r\n const [sheetVisible, setSheetVisible] = useState(false);\r\n const [formVal, setFormVal] = useState({});\r\n const [pageSizeValue, setPageSizeValue] = useState('A4');\r\n const [overlapMarginValue, setOverlapMarginValue] = useState(0);\r\n const [metrics, setMetrics] = useState(null);\r\n const [totalWidthMm, setTotalWidthMm] = useState(null);\r\n const [totalHeightMm, setTotalHeightMm] = useState(null);\r\n const [previewReady, setPreviewReady] = useState(false);\r\n const [previewLoadingText, setPreviewLoadingText] = useState(\r\n TextEnum.generatingPreviewText,\r\n );\r\n const [previewImage, setPreviewImage] = useState('');\r\n const [sheetImages, setSheetImages] = useState([]);\r\n const [selectedSheetIds, setSelectedSheetIds] = useState([]);\r\n const [generating, setGenerating] = useState(false);\r\n const drawTool = useRef(null);\r\n const boxExtentRef = useRef(null);\r\n const boxLayerRef = useRef(null);\r\n const exportMapRef = useRef(null);\r\n const previewMapRef = useRef(null);\r\n const exportStageRef = useRef(null);\r\n const previewMasterCanvasRef = useRef(null);\r\n const previewMasterFramePixelsRef = useRef(null);\r\n\r\n const cleanupInternalMaps = () => {\r\n if (previewRenderTimerRef.current) {\r\n clearTimeout(previewRenderTimerRef.current);\r\n previewRenderTimerRef.current = null;\r\n }\r\n clearClonedLayers(exportMapRef.current);\r\n clearClonedLayers(previewMapRef.current);\r\n renderLayersSyncedRef.current = false;\r\n };\r\n const renderLayersSyncedRef = useRef(false);\r\n const previewRenderSeqRef = useRef(0);\r\n const previewRenderTimerRef = useRef(null);\r\n const [exportSize, setExportSize] = useState({ width: 1, height: 1 });\r\n\r\n useEffect(() => {\r\n form.setFieldsValue({\r\n range: '1',\r\n pageSize: 'A4',\r\n overlapMargin: 0,\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n const boxSource = new VectorSource();\r\n const boxLayer = new VectorLayer({\r\n source: boxSource,\r\n style: drawStyle(),\r\n zIndex: 9999,\r\n });\r\n const tool = new Draw({\r\n source: boxSource,\r\n type: 'Circle',\r\n style: feature => drawStyle(feature),\r\n geometryFunction: createBox(),\r\n });\r\n\r\n boxLayerRef.current = boxLayer;\r\n drawTool.current = tool;\r\n tool.setActive(false);\r\n\r\n tool.on('drawstart', () => {\r\n boxSource.clear();\r\n map.showTip(TextEnum.clickAgainToEnd);\r\n });\r\n\r\n tool.on('drawend', event => {\r\n const extent = event.feature.getGeometry().getExtent();\r\n boxExtentRef.current = extent;\r\n map.showTip(TextEnum.leftClickToStart);\r\n map.getView().fit(extent, {\r\n duration: 500,\r\n });\r\n });\r\n\r\n map.addLayer(boxLayer);\r\n map.addInteraction(tool);\r\n\r\n return () => {\r\n if (previewRenderTimerRef.current) {\r\n clearTimeout(previewRenderTimerRef.current);\r\n }\r\n boxSource.clear();\r\n map.removeLayer(boxLayer);\r\n map.removeInteraction(tool);\r\n map.hideTip();\r\n };\r\n }, []);\r\n\r\n const splitPlan = useMemo(() => {\r\n return calcSplitPlan({\r\n totalWidthMm,\r\n totalHeightMm,\r\n pageSize: pageSizeValue,\r\n overlapMargin: overlapMarginValue,\r\n });\r\n }, [totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);\r\n\r\n const previewFrameExtent = useMemo(() => {\r\n return buildPreviewFrameExtent(splitPlan, metrics?.extent);\r\n }, [splitPlan, metrics?.extent]);\r\n\r\n const mapProjection = useMemo(() => {\r\n try {\r\n return map?.getView?.()?.getProjection?.()?.getCode?.() || 'EPSG:4326';\r\n } catch (error) {\r\n return 'EPSG:4326';\r\n }\r\n }, [map]);\r\n\r\n const inheritedMapProps = useMemo(() => {\r\n const baseLayerParams = map?.baseLayerParams || {};\r\n\r\n return {\r\n projection: mapProjection,\r\n mapStyle: baseLayerParams.mapStyle,\r\n baseMapStyle: baseLayerParams.baseMapStyle,\r\n dark: baseLayerParams.dark,\r\n tk: map?.tk || baseLayerParams.tk || '1adbb6e47668cb33757cd799548bf1f4',\r\n };\r\n }, [map, mapProjection]);\r\n\r\n // 预览里的“单张纸大小”应该只由纸张尺寸本身决定,\r\n // 不应该因为修改总宽高而把 A4/A3 的纸张框一起缩放掉。\r\n const previewScale = useMemo(() => {\r\n if (!splitPlan?.paperWidthMm || !splitPlan?.paperHeightMm) {\r\n return 1;\r\n }\r\n\r\n const scaleX = splitPlan.paperWidthMm / PREVIEW_WIDTH;\r\n const scaleY = splitPlan.paperHeightMm / PREVIEW_HEIGHT;\r\n return Math.max(scaleX, scaleY, 0.0001);\r\n }, [splitPlan]);\r\n\r\n const selectedMapPixels = useMemo(() => {\r\n if (!totalWidthMm || !totalHeightMm || !previewScale) {\r\n return null;\r\n }\r\n\r\n return {\r\n width: Math.max(1, totalWidthMm / previewScale),\r\n height: Math.max(1, totalHeightMm / previewScale),\r\n };\r\n }, [totalWidthMm, totalHeightMm, previewScale]);\r\n\r\n const previewFramePixels = useMemo(() => {\r\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\r\n if (!frameSizeMm || !previewScale) {\r\n return null;\r\n }\r\n\r\n return {\r\n width: Math.max(1, frameSizeMm.width / previewScale),\r\n height: Math.max(1, frameSizeMm.height / previewScale),\r\n };\r\n }, [splitPlan, previewScale]);\r\n\r\n const selectedRangeCoverage = useMemo(() => {\r\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\r\n if (!frameSizeMm || !totalWidthMm || !totalHeightMm) {\r\n return null;\r\n }\r\n\r\n return {\r\n widthPercent: (totalWidthMm / frameSizeMm.width) * 100,\r\n heightPercent: (totalHeightMm / frameSizeMm.height) * 100,\r\n };\r\n }, [splitPlan, totalWidthMm, totalHeightMm]);\r\n\r\n useEffect(() => {\r\n if (splitPlan) {\r\n setSelectedSheetIds(splitPlan.sheets.map(item => item.id));\r\n }\r\n }, [splitPlan]);\r\n\r\n const handleRangeChange = value => {\r\n if (value === '1') {\r\n map.hideTip();\r\n boxLayerRef.current?.getSource()?.clear();\r\n boxExtentRef.current = null;\r\n } else {\r\n map.showTip(TextEnum.leftClickToStart);\r\n }\r\n\r\n drawTool.current?.setActive(value === '2');\r\n };\r\n\r\n const handlePageSizeChange = value => {\r\n const nextPageSize = value || 'A4';\r\n setPageSizeValue(nextPageSize);\r\n form.setFieldValue('pageSize', nextPageSize);\r\n };\r\n\r\n const handleExportMapCreated = exportMap => {\r\n exportMapRef.current = exportMap;\r\n renderLayersSyncedRef.current = false;\r\n };\r\n\r\n const handlePreviewMapCreated = previewMap => {\r\n previewMapRef.current = previewMap;\r\n };\r\n\r\n // 隐藏导出地图只在第一次真正需要时补同步业务图层,\r\n // 后面同一轮预览/导出尽量复用,避免频繁清空重建。\r\n const ensureRenderMapLayers = () => {\r\n if (!exportMapRef.current) {\r\n return false;\r\n }\r\n\r\n if (!renderLayersSyncedRef.current) {\r\n syncBusinessLayers(map, exportMapRef.current, boxLayerRef.current);\r\n renderLayersSyncedRef.current = true;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const syncPreviewMapLayers = () => {\r\n if (!previewMapRef.current) {\r\n return false;\r\n }\r\n\r\n syncBusinessLayers(map, previewMapRef.current, boxLayerRef.current);\r\n return true;\r\n };\r\n\r\n // 点击“执行分幅”时,直接读取外部主地图当前层级,\r\n // 也就是“外面地图是什么层级,进去就按什么层级算”。\r\n const handleSubmit = values => {\r\n const pageSize = values.pageSize || form.getFieldValue('pageSize');\r\n const overlapMargin = Number(values.overlapMargin ?? form.getFieldValue('overlapMargin')) || 0;\r\n // const overlapMargin = 10\r\n\r\n console.log('overlapMargin', values.overlapMargin, form.getFieldValue('overlapMargin'), overlapMargin)\r\n const extent =\r\n values.range === '1'\r\n ? map.getView().calculateExtent(map.getSize())\r\n : boxExtentRef.current;\r\n\r\n if (!isValidExtent(extent)) {\r\n return;\r\n }\r\n\r\n const zoom = Math.round(map.getView().getZoom?.() || 0);\r\n const nextMetrics = calcMetricsFromZoom(extent, map.getView(), zoom);\r\n if (!nextMetrics) {\r\n return;\r\n }\r\n\r\n console.log('[MapSheetPrint] 执行分幅参数', {\r\n rangeMode: values.range,\r\n extent,\r\n zoom,\r\n pageSize,\r\n overlapMargin,\r\n metrics: {\r\n geoWidth: nextMetrics.geoWidth,\r\n geoHeight: nextMetrics.geoHeight,\r\n pixelWidth: nextMetrics.pixelWidth,\r\n pixelHeight: nextMetrics.pixelHeight,\r\n widthMm: nextMetrics.widthMm,\r\n heightMm: nextMetrics.heightMm,\r\n ratio: nextMetrics.ratio,\r\n },\r\n });\r\n\r\n setFormVal({\r\n ...values,\r\n pageSize,\r\n overlapMargin,\r\n printZoom: zoom,\r\n });\r\n setPageSizeValue(pageSize);\r\n setOverlapMarginValue(overlapMargin);\r\n setMetrics(nextMetrics);\r\n setTotalWidthMm(Number(nextMetrics.widthMm.toFixed(3)));\r\n setTotalHeightMm(Number(nextMetrics.heightMm.toFixed(3)));\r\n setPreviewReady(false);\r\n setPreviewLoadingText(TextEnum.generatingPreviewText);\r\n setPreviewImage('');\r\n previewMasterCanvasRef.current = null;\r\n previewMasterFramePixelsRef.current = null;\r\n renderLayersSyncedRef.current = false;\r\n setSheetImages([]);\r\n setSheetVisible(false);\r\n setPreviewVisible(true);\r\n };\r\n\r\n const handleWidthChange = value => {\r\n if (!metrics || !value) {\r\n return;\r\n }\r\n\r\n const nextWidth = Number(value);\r\n setTotalWidthMm(nextWidth);\r\n setTotalHeightMm(Number((nextWidth * metrics.ratio).toFixed(3)));\r\n };\r\n\r\n const handleHeightChange = value => {\r\n if (!metrics || !value) {\r\n return;\r\n }\r\n\r\n const nextHeight = Number(value);\r\n setTotalHeightMm(nextHeight);\r\n setTotalWidthMm(Number((nextHeight / metrics.ratio).toFixed(3)));\r\n };\r\n\r\n const renderSheetImage = async sheet => {\r\n if (!splitPlan || !previewMasterCanvasRef.current || !previewMasterFramePixelsRef.current) {\r\n return null;\r\n }\r\n\r\n const previewMasterCanvas = previewMasterCanvasRef.current;\r\n const previewMasterFramePixels = previewMasterFramePixelsRef.current;\r\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\r\n const frameTotalWidthMm = frameSizeMm.width;\r\n const frameTotalHeightMm = frameSizeMm.height;\r\n const sourceX = (sheet.xMm / frameTotalWidthMm) * previewMasterFramePixels.width;\r\n const sourceY = (sheet.yMm / frameTotalHeightMm) * previewMasterFramePixels.height;\r\n const sourceWidth =\r\n (splitPlan.paperWidthMm / frameTotalWidthMm) * previewMasterFramePixels.width;\r\n const sourceHeight =\r\n (splitPlan.paperHeightMm / frameTotalHeightMm) * previewMasterFramePixels.height;\r\n const pageWidthPx = Math.max(1, Math.round(mmToPx(splitPlan.paperWidthMm, EXPORT_DPI)));\r\n const pageHeightPx = Math.max(1, Math.round(mmToPx(splitPlan.paperHeightMm, EXPORT_DPI)));\r\n\r\n console.log('[MapSheetPrint] 生成单张图幅', {\r\n sheetId: sheet.id,\r\n sheetIndex: sheet.index,\r\n sheetWidthMm: sheet.widthMm,\r\n sheetHeightMm: sheet.heightMm,\r\n sourceX,\r\n sourceY,\r\n sourceWidth,\r\n sourceHeight,\r\n pageWidthPx,\r\n pageHeightPx,\r\n });\r\n\r\n const pageCanvas = document.createElement('canvas');\r\n pageCanvas.width = pageWidthPx;\r\n pageCanvas.height = pageHeightPx;\r\n const ctx = pageCanvas.getContext('2d');\r\n ctx.fillStyle = '#fff';\r\n ctx.fillRect(0, 0, pageWidthPx, pageHeightPx);\r\n ctx.drawImage(\r\n previewMasterCanvas,\r\n sourceX,\r\n sourceY,\r\n sourceWidth,\r\n sourceHeight,\r\n 0,\r\n 0,\r\n pageWidthPx,\r\n pageHeightPx,\r\n );\r\n\r\n return {\r\n ...sheet,\r\n url: pageCanvas.toDataURL('image/png'),\r\n pixelWidth: pageWidthPx,\r\n pixelHeight: pageHeightPx,\r\n };\r\n };\r\n\r\n // 预览始终裁同一个原始 extent。\r\n // 宽高变大时,不改 extent,而是先把隐藏地图按更大的像素尺寸重新渲染,\r\n // 相当于“放大地图层级”,再把同一个 extent 裁成预览图。\r\n const renderPreviewImage = async seq => {\r\n if (\r\n !previewVisible ||\r\n !metrics?.extent ||\r\n !selectedMapPixels ||\r\n !previewFramePixels ||\r\n !exportMapRef.current ||\r\n !exportStageRef.current\r\n ) {\r\n return;\r\n }\r\n\r\n const widthScale = totalWidthMm / metrics.widthMm;\r\n const heightScale = totalHeightMm / metrics.heightMm;\r\n const captureWidthPx = Math.max(1, Math.round(metrics.pixelWidth * widthScale));\r\n const captureHeightPx = Math.max(1, Math.round(metrics.pixelHeight * heightScale));\r\n const targetResolution = Math.max(\r\n metrics.geoWidth / captureWidthPx,\r\n metrics.geoHeight / captureHeightPx,\r\n );\r\n const targetCenter = getExtentCenter(metrics.extent);\r\n\r\n console.log('[MapSheetPrint] 生成预览裁图', {\r\n seq,\r\n extent: metrics.extent,\r\n zoom: metrics.zoom,\r\n totalWidthMm,\r\n totalHeightMm,\r\n previewScale,\r\n previewFrameExtent,\r\n previewFramePixels,\r\n selectedMapPixels,\r\n captureWidthPx,\r\n captureHeightPx,\r\n targetResolution,\r\n targetCenter,\r\n splitPlan: splitPlan\r\n ? {\r\n cols: splitPlan.cols,\r\n rows: splitPlan.rows,\r\n totalSheets: splitPlan.totalSheets,\r\n paperWidthMm: splitPlan.paperWidthMm,\r\n paperHeightMm: splitPlan.paperHeightMm,\r\n stepX: splitPlan.stepX,\r\n stepY: splitPlan.stepY,\r\n }\r\n : null,\r\n });\r\n\r\n setPreviewReady(false);\r\n setPreviewLoadingText(TextEnum.syncingLayersText);\r\n await waitNextFrame();\r\n if (seq !== previewRenderSeqRef.current) {\r\n return;\r\n }\r\n if (!ensureRenderMapLayers()) {\r\n return;\r\n }\r\n syncPreviewMapLayers();\r\n\r\n setExportSize({\r\n width: captureWidthPx,\r\n height: captureHeightPx,\r\n });\r\n await waitNextFrame();\r\n if (seq !== previewRenderSeqRef.current) {\r\n return;\r\n }\r\n\r\n exportMapRef.current.updateSize?.();\r\n const view = exportMapRef.current.getView();\r\n view.setCenter(targetCenter);\r\n view.setResolution(targetResolution);\r\n if (previewMapRef.current) {\r\n previewMapRef.current.updateSize?.();\r\n const previewView = previewMapRef.current.getView();\r\n previewView.setCenter(targetCenter);\r\n previewView.setResolution(targetResolution);\r\n }\r\n await waitMapRender(exportMapRef.current);\r\n setPreviewLoadingText(TextEnum.waitingBusinessLayersText);\r\n await waitLayerSourcesSettled(exportMapRef.current);\r\n await waitMapRender(exportMapRef.current);\r\n if (previewMapRef.current) {\r\n await waitMapRender(previewMapRef.current);\r\n }\r\n await waitNextFrame();\r\n if (seq !== previewRenderSeqRef.current) {\r\n return;\r\n }\r\n\r\n const sourceCanvas = await captureDomCanvas(\r\n exportStageRef.current,\r\n captureWidthPx,\r\n captureHeightPx,\r\n );\r\n if (seq !== previewRenderSeqRef.current) {\r\n return;\r\n }\r\n\r\n const previewCanvas = document.createElement('canvas');\r\n previewCanvas.width = Math.max(1, Math.round(previewFramePixels.width));\r\n previewCanvas.height = Math.max(1, Math.round(previewFramePixels.height));\r\n const masterScaleX = captureWidthPx / Math.max(1, selectedMapPixels.width);\r\n const masterScaleY = captureHeightPx / Math.max(1, selectedMapPixels.height);\r\n const previewMasterCanvas = document.createElement('canvas');\r\n previewMasterCanvas.width = Math.max(\r\n 1,\r\n Math.round(previewFramePixels.width * masterScaleX),\r\n );\r\n previewMasterCanvas.height = Math.max(\r\n 1,\r\n Math.round(previewFramePixels.height * masterScaleY),\r\n );\r\n const masterCtx = previewMasterCanvas.getContext('2d');\r\n masterCtx.fillStyle = '#fff';\r\n masterCtx.fillRect(0, 0, previewMasterCanvas.width, previewMasterCanvas.height);\r\n masterCtx.drawImage(sourceCanvas, 0, 0, captureWidthPx, captureHeightPx);\r\n previewMasterCanvasRef.current = previewMasterCanvas;\r\n previewMasterFramePixelsRef.current = {\r\n width: previewMasterCanvas.width,\r\n height: previewMasterCanvas.height,\r\n };\r\n const ctx = previewCanvas.getContext('2d');\r\n ctx.fillStyle = '#fff';\r\n ctx.fillRect(0, 0, previewCanvas.width, previewCanvas.height);\r\n ctx.drawImage(previewMasterCanvas, 0, 0, previewCanvas.width, previewCanvas.height);\r\n\r\n setPreviewImage(previewCanvas.toDataURL('image/png'));\r\n setPreviewReady(true);\r\n setPreviewLoadingText(TextEnum.generatingPreviewText);\r\n };\r\n\r\n useEffect(() => {\r\n if (previewRenderTimerRef.current) {\r\n clearTimeout(previewRenderTimerRef.current);\r\n }\r\n\r\n if (!previewVisible) {\r\n return;\r\n }\r\n\r\n const seq = previewRenderSeqRef.current + 1;\r\n previewRenderSeqRef.current = seq;\r\n previewRenderTimerRef.current = setTimeout(() => {\r\n renderPreviewImage(seq);\r\n }, 120);\r\n\r\n return () => {\r\n if (previewRenderTimerRef.current) {\r\n clearTimeout(previewRenderTimerRef.current);\r\n }\r\n };\r\n }, [previewVisible, metrics?.extent, previewFrameExtent, previewFramePixels, selectedMapPixels, totalWidthMm, totalHeightMm]);\r\n\r\n useEffect(() => {\r\n if (!previewVisible && !sheetVisible) {\r\n cleanupInternalMaps();\r\n }\r\n }, [previewVisible, sheetVisible]);\r\n\r\n useEffect(() => {\r\n if (!splitPlan) {\r\n return;\r\n }\r\n\r\n console.log('[MapSheetPrint] 分幅计算结果', {\r\n totalWidthMm,\r\n totalHeightMm,\r\n pageSize: pageSizeValue,\r\n overlapMargin: overlapMarginValue,\r\n cols: splitPlan.cols,\r\n rows: splitPlan.rows,\r\n totalSheets: splitPlan.totalSheets,\r\n paperWidthMm: splitPlan.paperWidthMm,\r\n paperHeightMm: splitPlan.paperHeightMm,\r\n sheets: splitPlan.sheets.map(item => ({\r\n id: item.id,\r\n index: item.index,\r\n xMm: item.xMm,\r\n yMm: item.yMm,\r\n widthMm: item.widthMm,\r\n heightMm: item.heightMm,\r\n isPartial: item.isPartial,\r\n })),\r\n });\r\n }, [splitPlan, totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);\r\n\r\n const handleGenerateSheets = async () => {\r\n if (!splitPlan?.sheets?.length) {\r\n return;\r\n }\r\n\r\n setGenerating(true);\r\n try {\r\n const images = [];\r\n\r\n for (const sheet of splitPlan.sheets) {\r\n const image = await renderSheetImage(sheet);\r\n if (image) {\r\n images.push(image);\r\n }\r\n }\r\n\r\n setSheetImages(images);\r\n setSelectedSheetIds(images.map(item => item.id));\r\n setPreviewVisible(false);\r\n setSheetVisible(true);\r\n } finally {\r\n setGenerating(false);\r\n }\r\n };\r\n\r\n const handleExportPdf = () => {\r\n const selectedImages = sheetImages.filter(item => selectedSheetIds.includes(item.id));\r\n if (!selectedImages.length || !splitPlan) {\r\n return;\r\n }\r\n\r\n createPdfFromImages({\r\n images: selectedImages,\r\n pageWidthMm: splitPlan.paperWidthMm,\r\n pageHeightMm: splitPlan.paperHeightMm,\r\n title: formVal.title,\r\n });\r\n };\r\n\r\n return (\r\n <DivModal\r\n title={TextEnum.toolMapSheetPrint}\r\n onClose={() => {\r\n cleanupInternalMaps();\r\n onClose?.();\r\n }}\r\n >\r\n \r\n <Form\r\n form={form}\r\n name=\"mapSheetPrint\"\r\n labelCol={{ span: 8 }}\r\n wrapperCol={{ span: 16 }}\r\n onFinish={handleSubmit}\r\n >\r\n <Form.Item\r\n label={TextEnum.mapPrintTitle}\r\n name=\"title\"\r\n rules={[{ required: true, message: TextEnum.pleaseInput }]}\r\n >\r\n <Input placeholder={TextEnum.pleaseInput} />\r\n </Form.Item>\r\n\r\n <Form.Item\r\n label={TextEnum.printRange}\r\n name=\"range\"\r\n rules={[{ required: true, message: TextEnum.pleaseSelect }]}\r\n >\r\n <Select\r\n placeholder={TextEnum.pleaseSelect}\r\n allowClear\r\n onChange={handleRangeChange}\r\n options={[\r\n { value: '1', label: TextEnum.currentView },\r\n { value: '2', label: TextEnum.manualBoxSelect },\r\n ]}\r\n />\r\n </Form.Item>\r\n\r\n <div\r\n style={{\r\n marginLeft: 12,\r\n marginBottom: 12,\r\n color: '#333',\r\n fontSize: 14,\r\n fontWeight: 500,\r\n }}\r\n >\r\n {TextEnum.sheetPrintParams}\r\n </div>\r\n\r\n <Form.Item\r\n label={TextEnum.pageSize}\r\n name=\"pageSize\"\r\n rules={[{ required: true, message: TextEnum.pleaseSelect }]}\r\n >\r\n <Select\r\n placeholder={TextEnum.pleaseSelect}\r\n allowClear\r\n onChange={handlePageSizeChange}\r\n options={pageSizeOptions.map(item => ({\r\n value: item,\r\n label: item,\r\n }))}\r\n />\r\n </Form.Item>\r\n\r\n <Form.Item label={TextEnum.overlapMargin} required>\r\n <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\r\n <Form.Item\r\n name=\"overlapMargin\"\r\n rules={[\r\n { required: true, message: TextEnum.pleaseInput },\r\n {\r\n type: 'integer',\r\n transform: value =>\r\n value === undefined || value === null || value === ''\r\n ? value\r\n : Number(value),\r\n message: TextEnum.pleaseInputInteger,\r\n },\r\n ]}\r\n style={{ flex: 1, marginBottom: 0, minWidth: 0 }} \r\n >\r\n <InputNumber\r\n min={0}\r\n precision={0}\r\n changeOnBlur={false}\r\n step={1}\r\n style={{ width: '100%' }}\r\n />\r\n </Form.Item>\r\n <span style={{ whiteSpace: 'nowrap', flexShrink: 0 }}>(mm)</span>\r\n </div>\r\n </Form.Item>\r\n\r\n <Form.Item wrapperCol={{ offset: 8, span: 16 }}>\r\n <Button type=\"primary\" htmlType=\"submit\">\r\n {TextEnum.executeSheetPrint}\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n\r\n <Modal\r\n open={previewVisible}\r\n title={TextEnum.preview}\r\n onCancel={() => setPreviewVisible(false)}\r\n onOk={handleGenerateSheets}\r\n okText={TextEnum.ok}\r\n cancelText={TextEnum.cancel}\r\n width={map.getViewport().clientWidth - 80}\r\n centered\r\n wrapClassName=\"ol-mapprint-modal\"\r\n confirmLoading={generating}\r\n destroyOnHidden={false}\r\n >\r\n <div style={{ display: 'flex', gap: 12, alignItems: 'center', marginBottom: 12 }}>\r\n <span>{TextEnum.widthText}</span>\r\n <InputNumber\r\n min={0.001}\r\n precision={3}\r\n value={totalWidthMm}\r\n onChange={handleWidthChange}\r\n />\r\n <span>mm</span>\r\n <img\r\n src={lockImg}\r\n alt={TextEnum.fixedRatioText}\r\n style={{ width: 16, height: 16, objectFit: 'contain' }}\r\n />\r\n <span>{TextEnum.heightText}</span>\r\n <InputNumber\r\n precision={0}\r\n step={1}\r\n min={0}\r\n value={totalHeightMm}\r\n onChange={handleHeightChange}\r\n />\r\n <span>mm</span>\r\n {splitPlan && (\r\n <span style={{ marginLeft: 'auto', color: '#666' }}>\r\n {splitPlan.cols} {TextEnum.colText} x {splitPlan.rows} {TextEnum.rowText},\r\n {TextEnum.totalText} {splitPlan.totalSheets} {TextEnum.sheetText}\r\n </span>\r\n )}\r\n </div>\r\n\r\n <div\r\n style={{\r\n position: 'relative',\r\n height: PREVIEW_HEIGHT,\r\n overflow: 'auto',\r\n background: '#f5f5f5',\r\n border: '1px solid #e5e5e5',\r\n }}\r\n >\r\n {!previewReady && (\r\n <div\r\n style={{\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n zIndex: 10,\r\n background: 'rgba(255,255,255,0.82)',\r\n gap: 12,\r\n pointerEvents: 'none',\r\n }}\r\n >\r\n <Spin />\r\n <div style={{ color: '#666', fontSize: 13 }}>{previewLoadingText}</div>\r\n </div>\r\n )}\r\n\r\n {metrics && previewFramePixels && splitPlan && selectedMapPixels && (\r\n <div\r\n style={{\r\n position: 'relative',\r\n width: previewFramePixels.width,\r\n height: previewFramePixels.height,\r\n transformOrigin: 'top left',\r\n }}\r\n >\r\n <div\r\n style={{\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n width: selectedMapPixels.width,\r\n height: selectedMapPixels.height,\r\n overflow: 'hidden',\r\n zIndex: 0,\r\n display: 'none',\r\n }}\r\n >\r\n <OlMapComponent\r\n width={`${Math.max(1, Math.round(selectedMapPixels.width))}px`}\r\n height={`${Math.max(1, Math.round(selectedMapPixels.height))}px`}\r\n projection={inheritedMapProps.projection}\r\n mapStyle={inheritedMapProps.mapStyle}\r\n baseMapStyle={inheritedMapProps.baseMapStyle}\r\n dark={inheritedMapProps.dark}\r\n tk={inheritedMapProps.tk}\r\n hidePopupTable={true}\r\n createdMap={handlePreviewMapCreated}\r\n />\r\n </div>\r\n\r\n <div\r\n style={{\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n width: previewFramePixels.width,\r\n height: previewFramePixels.height,\r\n zIndex: 1,\r\n pointerEvents: 'none',\r\n }}\r\n >\r\n <img\r\n src={previewImage}\r\n alt=\"sheet-preview\"\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n display: previewImage ? 'block' : 'none',\r\n pointerEvents: 'none',\r\n opacity: 1,\r\n }}\r\n />\r\n </div>\r\n\r\n {selectedRangeCoverage && selectedRangeCoverage.widthPercent < 100 && (\r\n <div\r\n style={{\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n width: `${100 - selectedRangeCoverage.widthPercent}%`,\r\n height: `${selectedRangeCoverage.heightPercent}%`,\r\n background: 'rgba(255,255,255,0.96)',\r\n pointerEvents: 'none',\r\n zIndex: 2,\r\n }}\r\n />\r\n )}\r\n\r\n {selectedRangeCoverage && selectedRangeCoverage.heightPercent < 100 && (\r\n <div\r\n style={{\r\n position: 'absolute',\r\n left: 0,\r\n bottom: 0,\r\n width: '100%',\r\n height: `${100 - selectedRangeCoverage.heightPercent}%`,\r\n background: 'rgba(255,255,255,0.96)',\r\n pointerEvents: 'none',\r\n zIndex: 2,\r\n }}\r\n />\r\n )}\r\n\r\n {selectedRangeCoverage && (\r\n <div\r\n style={{\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n width: `${selectedRangeCoverage.widthPercent}%`,\r\n height: `${selectedRangeCoverage.heightPercent}%`,\r\n border: '2px solid rgba(24, 144, 255, 0.9)',\r\n boxSizing: 'border-box',\r\n pointerEvents: 'none',\r\n zIndex: 3,\r\n }}\r\n />\r\n )}\r\n\r\n {splitPlan?.sheets?.map(sheet => (\r\n <div\r\n key={sheet.id}\r\n style={{\r\n position: 'absolute',\r\n left: `${(sheet.xMm / getPreviewFrameSizeMm(splitPlan).width) * 100}%`,\r\n top: `${(sheet.yMm / getPreviewFrameSizeMm(splitPlan).height) * 100}%`,\r\n width: `${(splitPlan.paperWidthMm / getPreviewFrameSizeMm(splitPlan).width) * 100}%`,\r\n height: `${(splitPlan.paperHeightMm / getPreviewFrameSizeMm(splitPlan).height) * 100}%`,\r\n border: '2px dashed #333',\r\n boxSizing: 'border-box',\r\n pointerEvents: 'none',\r\n zIndex: 4,\r\n }}\r\n >\r\n <div\r\n style={{\r\n position: 'absolute',\r\n top: 4,\r\n left: 4,\r\n background: 'rgba(255,255,255,0.92)',\r\n padding: '0 4px',\r\n fontSize: 12,\r\n }}\r\n >\r\n {sheet.index}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </Modal>\r\n\r\n <Modal\r\n open={sheetVisible}\r\n title={TextEnum.sheetResultText}\r\n onCancel={() => setSheetVisible(false)}\r\n onOk={handleExportPdf}\r\n okText={TextEnum.printText}\r\n cancelText={TextEnum.cancel}\r\n width={map.getViewport().clientWidth - 80}\r\n centered\r\n wrapClassName=\"ol-mapprint-modal\"\r\n >\r\n <div style={{ marginBottom: 12 }}>\r\n <Checkbox\r\n indeterminate={\r\n selectedSheetIds.length > 0 && selectedSheetIds.length < sheetImages.length\r\n }\r\n checked={sheetImages.length > 0 && selectedSheetIds.length === sheetImages.length}\r\n onChange={e =>\r\n setSelectedSheetIds(e.target.checked ? sheetImages.map(item => item.id) : [])\r\n }\r\n >\r\n {TextEnum.selectAllText}\r\n </Checkbox>\r\n </div>\r\n <div\r\n style={{\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(auto-fill, minmax(240px, 1fr))',\r\n gap: 16,\r\n maxHeight: '70vh',\r\n overflow: 'auto',\r\n }}\r\n >\r\n {sheetImages.map(item => (\r\n <label\r\n key={item.id}\r\n style={{\r\n display: 'block',\r\n border: '1px solid #ddd',\r\n borderRadius: 6,\r\n padding: 12,\r\n background: '#fff',\r\n }}\r\n >\r\n <div style={{ marginBottom: 8, display: 'flex', alignItems: 'center', gap: 8 }}>\r\n <Checkbox\r\n checked={selectedSheetIds.includes(item.id)}\r\n onChange={e => {\r\n setSelectedSheetIds(current =>\r\n e.target.checked\r\n ? [...current, item.id]\r\n : current.filter(id => id !== item.id),\r\n );\r\n }}\r\n />\r\n <span>\r\n {TextEnum.sheetIndexPrefix} {item.index} {TextEnum.sheetText} ({item.row}-{item.col})\r\n </span>\r\n </div>\r\n <img\r\n src={item.url}\r\n alt={`sheet-${item.index}`}\r\n style={{ width: '100%', display: 'block', border: '1px solid #eee' }}\r\n />\r\n </label>\r\n ))}\r\n </div>\r\n </Modal>\r\n\r\n <div\r\n style={{\r\n position: 'absolute',\r\n left: '-100000px',\r\n top: 0,\r\n width: exportSize.width,\r\n height: exportSize.height,\r\n overflow: 'hidden',\r\n }}\r\n >\r\n <div ref={exportStageRef} style={{ width: exportSize.width, height: exportSize.height }}>\r\n <OlMapComponent\r\n width={`${exportSize.width}px`}\r\n height={`${exportSize.height}px`}\r\n projection={inheritedMapProps.projection}\r\n mapStyle={inheritedMapProps.mapStyle}\r\n baseMapStyle={inheritedMapProps.baseMapStyle}\r\n dark={inheritedMapProps.dark}\r\n tk={inheritedMapProps.tk}\r\n hidePopupTable={true}\r\n createdMap={handleExportMapCreated}\r\n />\r\n </div>\r\n </div>\r\n </DivModal>\r\n );\r\n}\r\n"],"mappings":"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","ignoreList":[]}