@sl-utils/map 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas/index.js +21 -0
- package/dist/canvas/index.js.map +1 -0
- package/dist/canvas/slu-canvas-gif.js +471 -0
- package/dist/canvas/slu-canvas-gif.js.map +1 -0
- package/dist/canvas/slu-canvas-img.js +49 -0
- package/dist/canvas/slu-canvas-img.js.map +1 -0
- package/dist/canvas/slu-canvas-text.js +151 -0
- package/dist/canvas/slu-canvas-text.js.map +1 -0
- package/dist/canvas/slu-canvas.js +163 -0
- package/dist/canvas/slu-canvas.js.map +1 -0
- package/dist/map/canvas-draw.js +214 -0
- package/dist/map/canvas-draw.js.map +1 -0
- package/dist/map/canvas-event.js +210 -0
- package/dist/map/canvas-event.js.map +1 -0
- package/dist/map/canvas-layer.js +159 -0
- package/dist/map/canvas-layer.js.map +1 -0
- package/dist/sl-utils-map.js +6 -0
- package/dist/sl-utils-map.js.map +1 -0
- package/dist/utils/slu-map.js +341 -0
- package/dist/utils/slu-map.js.map +1 -0
- package/dist/utils/txt.js +181 -0
- package/dist/utils/txt.js.map +1 -0
- package/index.cjs +12 -0
- package/package.json +14 -4
- package/src/sl-utils-map.d.ts +6 -0
- package/src/sl-utils-map.ts +1 -0
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +6 -4
- package/src/index.ts +0 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.u_arrItemDel = delItem;
|
|
4
|
+
exports.u_mapTobd09gps84 = tobd09gps84;
|
|
5
|
+
exports.u_mapTogcj02gps84 = togcj02gps84;
|
|
6
|
+
exports.u_mapTogps84bd09 = togps84bd09;
|
|
7
|
+
exports.u_mapTogps84gcj02 = togps84gcj02;
|
|
8
|
+
exports.u_mapTogcj02bd09 = togcj02bd09;
|
|
9
|
+
exports.u_mapTobd09cj02 = tobd09cj02;
|
|
10
|
+
exports.u_mapGetAngle = getAngle;
|
|
11
|
+
exports.u_mapGetBounds = getBounds;
|
|
12
|
+
exports.u_mapGetDiffLatitude = getDiffLatitude;
|
|
13
|
+
exports.u_mapGetDistance = getDistance;
|
|
14
|
+
exports.u_mapGetLatLngByPoint = getLatLngByPoint;
|
|
15
|
+
exports.u_mapGetLngDiffByDistance = getLngDiffByDistance;
|
|
16
|
+
exports.u_mapGetPointByLatlng = getPointByLatlng;
|
|
17
|
+
exports.u_mapGetPointsByLatlngs = getPointsByLatlngs;
|
|
18
|
+
exports.u_mapGetSizeByMap = getSizeByMap;
|
|
19
|
+
exports.u_mapGetMapSize = getMapSize;
|
|
20
|
+
exports.u_mapSetMapStatus = setMapStatus;
|
|
21
|
+
exports.u_mapGetMapMouseEvent = getMapMouseEvent;
|
|
22
|
+
exports.u_mapSetFitBounds = setFitBounds;
|
|
23
|
+
exports.u_mapSetViewCenter = setViewCenter;
|
|
24
|
+
exports.u_mapGetMapType = getMapType;
|
|
25
|
+
const L = require("leaflet");
|
|
26
|
+
const a = 6378245.0;
|
|
27
|
+
const pi = 3.1415926535897932384626;
|
|
28
|
+
const ee = 0.00669342162296594323;
|
|
29
|
+
const x_pi = pi * 3000.0 / 180.0;
|
|
30
|
+
const R = 6378137;
|
|
31
|
+
function tobd09gps84(lng, lat) {
|
|
32
|
+
var gcj02 = tobd09cj02(lng, lat);
|
|
33
|
+
var map84 = togcj02gps84(gcj02.lng, gcj02.lat);
|
|
34
|
+
return map84;
|
|
35
|
+
}
|
|
36
|
+
function togcj02gps84(lng, lat) {
|
|
37
|
+
var coord = transform(lng, lat);
|
|
38
|
+
var lontitude = lng * 2 - coord.lng;
|
|
39
|
+
var latitude = lat * 2 - coord.lat;
|
|
40
|
+
var newCoord = {
|
|
41
|
+
lng: lontitude,
|
|
42
|
+
lat: latitude
|
|
43
|
+
};
|
|
44
|
+
return newCoord;
|
|
45
|
+
}
|
|
46
|
+
function togps84bd09(lng, lat) {
|
|
47
|
+
var gcj02 = togps84gcj02(lng, lat);
|
|
48
|
+
var bd09 = togcj02bd09(gcj02.lng, gcj02.lat);
|
|
49
|
+
return bd09;
|
|
50
|
+
}
|
|
51
|
+
function togps84gcj02(lng, lat) {
|
|
52
|
+
var dLat = transformLat(lng - 105.0, lat - 35.0);
|
|
53
|
+
var dLng = transformLng(lng - 105.0, lat - 35.0);
|
|
54
|
+
var radLat = lat / 180.0 * pi;
|
|
55
|
+
var magic = Math.sin(radLat);
|
|
56
|
+
magic = 1 - ee * magic * magic;
|
|
57
|
+
var sqrtMagic = Math.sqrt(magic);
|
|
58
|
+
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
|
|
59
|
+
dLng = (dLng * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
|
|
60
|
+
var mgLat = lat + dLat;
|
|
61
|
+
var mgLng = lng + dLng;
|
|
62
|
+
var newCoord = {
|
|
63
|
+
lng: mgLng,
|
|
64
|
+
lat: mgLat
|
|
65
|
+
};
|
|
66
|
+
return newCoord;
|
|
67
|
+
}
|
|
68
|
+
function togcj02bd09(lng, lat) {
|
|
69
|
+
var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_pi);
|
|
70
|
+
var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_pi);
|
|
71
|
+
var bd_lng = z * Math.cos(theta) + 0.0065;
|
|
72
|
+
var bd_lat = z * Math.sin(theta) + 0.006;
|
|
73
|
+
var newCoord = {
|
|
74
|
+
lng: bd_lng,
|
|
75
|
+
lat: bd_lat
|
|
76
|
+
};
|
|
77
|
+
return newCoord;
|
|
78
|
+
}
|
|
79
|
+
function tobd09cj02(bd_lng, bd_lat) {
|
|
80
|
+
var x = bd_lng - 0.0065;
|
|
81
|
+
var y = bd_lat - 0.006;
|
|
82
|
+
var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
|
|
83
|
+
var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
|
|
84
|
+
var gg_lng = z * Math.cos(theta);
|
|
85
|
+
var gg_lat = z * Math.sin(theta);
|
|
86
|
+
var newCoord = {
|
|
87
|
+
lng: gg_lng,
|
|
88
|
+
lat: gg_lat
|
|
89
|
+
};
|
|
90
|
+
return newCoord;
|
|
91
|
+
}
|
|
92
|
+
function transform(lng, lat) {
|
|
93
|
+
var dLat = transformLat(lng - 105.0, lat - 35.0);
|
|
94
|
+
var dLng = transformLng(lng - 105.0, lat - 35.0);
|
|
95
|
+
var radLat = lat / 180.0 * pi;
|
|
96
|
+
var magic = Math.sin(radLat);
|
|
97
|
+
magic = 1 - ee * magic * magic;
|
|
98
|
+
var sqrtMagic = Math.sqrt(magic);
|
|
99
|
+
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
|
|
100
|
+
dLng = (dLng * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
|
|
101
|
+
var mgLat = lat + dLat;
|
|
102
|
+
var mgLng = lng + dLng;
|
|
103
|
+
var newCoord = {
|
|
104
|
+
lng: mgLng,
|
|
105
|
+
lat: mgLat
|
|
106
|
+
};
|
|
107
|
+
return newCoord;
|
|
108
|
+
}
|
|
109
|
+
function transformLat(x, y) {
|
|
110
|
+
var ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x));
|
|
111
|
+
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
|
|
112
|
+
ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0;
|
|
113
|
+
ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0;
|
|
114
|
+
return ret;
|
|
115
|
+
}
|
|
116
|
+
function transformLng(x, y) {
|
|
117
|
+
var ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x));
|
|
118
|
+
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
|
|
119
|
+
ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0;
|
|
120
|
+
ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0;
|
|
121
|
+
return ret;
|
|
122
|
+
}
|
|
123
|
+
function getAngle(map, latLngA, latLngB) {
|
|
124
|
+
let [y0, x0] = getPointByLatlng(map, latLngA), [y1, x1] = getPointByLatlng(map, latLngB);
|
|
125
|
+
let θ = Math.atan2(x1 - x0, y1 - y0);
|
|
126
|
+
θ = θ * 180 / Math.PI;
|
|
127
|
+
θ = (90 + θ) < 0 ? 450 + θ : 90 + θ;
|
|
128
|
+
return θ;
|
|
129
|
+
}
|
|
130
|
+
function getBounds(map) {
|
|
131
|
+
const mapType = getMapType(map);
|
|
132
|
+
if (mapType == 0) {
|
|
133
|
+
let bounds = map.getBounds();
|
|
134
|
+
return {
|
|
135
|
+
lngLeft: bounds.getSouthWest().lng,
|
|
136
|
+
latTop: bounds.getNorthEast().lat,
|
|
137
|
+
lngRight: bounds.getNorthEast().lng,
|
|
138
|
+
latBottom: bounds.getSouthWest().lat
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
else if (mapType == 1) {
|
|
142
|
+
let { southwest, northeast } = map.getBounds();
|
|
143
|
+
return {
|
|
144
|
+
lngLeft: southwest.lng,
|
|
145
|
+
latTop: northeast.lat,
|
|
146
|
+
lngRight: northeast.lng,
|
|
147
|
+
latBottom: southwest.lat
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
throw new Error('百度地图暂时不支持!');
|
|
151
|
+
}
|
|
152
|
+
function getDiffLatitude(distance) {
|
|
153
|
+
let d = Number(distance);
|
|
154
|
+
const delta_lat = 2 * Math.asin(d / (2 * R));
|
|
155
|
+
return delta_lat * (180 / Math.PI);
|
|
156
|
+
}
|
|
157
|
+
function getDistance(latLngA, latLngB, type = 0) {
|
|
158
|
+
let [latA, lngA] = latLngA, [latB, lngB] = latLngB, dis = 0;
|
|
159
|
+
if (type && AMap && AMap.GeometryUtil) {
|
|
160
|
+
dis = AMap.GeometryUtil.distance([lngA, latA], [lngB, latB]);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
dis = L.latLng(latLngA).distanceTo(latLngB);
|
|
164
|
+
}
|
|
165
|
+
return dis;
|
|
166
|
+
}
|
|
167
|
+
function getLatLngByPoint(map, point) {
|
|
168
|
+
if (!point)
|
|
169
|
+
return [0, 0];
|
|
170
|
+
let p;
|
|
171
|
+
if (map instanceof L.Map) {
|
|
172
|
+
p = map.containerPointToLatLng(point);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
p = map.containerToLngLat(new AMap.Pixel(point[0], point[1]));
|
|
176
|
+
}
|
|
177
|
+
return [p.lat, p.lng];
|
|
178
|
+
}
|
|
179
|
+
function getLngDiffByDistance(map, distance = 100, latLng) {
|
|
180
|
+
if (latLng.length === 0) {
|
|
181
|
+
return 0;
|
|
182
|
+
}
|
|
183
|
+
let type = map instanceof L.Map ? 0 : 1;
|
|
184
|
+
let lng = 0.00001, lat = latLng.map(e => e[0]).reduce((s, v) => s + v) / latLng.length;
|
|
185
|
+
let positionA = [lat, 100], positionB = [lat, 100 + lng];
|
|
186
|
+
let xMeasure = getDistance(positionA, positionB, type);
|
|
187
|
+
return distance / xMeasure * lng;
|
|
188
|
+
}
|
|
189
|
+
function getPointByLatlng(map, latlng) {
|
|
190
|
+
if (!latlng)
|
|
191
|
+
return [-1000, -1000];
|
|
192
|
+
let [lat = 90, lng = 180] = latlng, p;
|
|
193
|
+
if (isNaN(lat) || isNaN(lng))
|
|
194
|
+
return [-1000, -1000];
|
|
195
|
+
if (map.latLngToContainerPoint) {
|
|
196
|
+
p = map.latLngToContainerPoint([lat, lng]);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
p = map.lngLatToContainer([lng, lat]);
|
|
200
|
+
}
|
|
201
|
+
return [p.x, p.y];
|
|
202
|
+
}
|
|
203
|
+
function getPointsByLatlngs(map, latlngs) {
|
|
204
|
+
return latlngs?.map(e => getPointByLatlng(map, e)) || [];
|
|
205
|
+
}
|
|
206
|
+
function getSizeByMap(map, info) {
|
|
207
|
+
let { sizeFix, latlng, size = [0, 0] } = info;
|
|
208
|
+
if (!sizeFix || !latlng) {
|
|
209
|
+
Array.isArray(size) || (size = [size, size]);
|
|
210
|
+
return size;
|
|
211
|
+
}
|
|
212
|
+
let sizes = Array.isArray(sizeFix) ? sizeFix : [sizeFix, sizeFix];
|
|
213
|
+
let [x, y] = latlng;
|
|
214
|
+
let lngDiff = getLngDiffByDistance(map, sizes[1], [latlng]);
|
|
215
|
+
let [x0, y0] = getPointByLatlng(map, [x, y]);
|
|
216
|
+
let [x1, y1] = getPointByLatlng(map, [x, y + lngDiff]);
|
|
217
|
+
let xd = Math.abs(x1 - x0), yd = (xd * sizes[1]) / sizes[0];
|
|
218
|
+
return [xd, yd];
|
|
219
|
+
}
|
|
220
|
+
function getMapSize(map) {
|
|
221
|
+
let size = map.getSize();
|
|
222
|
+
let { x, y, width, height } = size;
|
|
223
|
+
return {
|
|
224
|
+
w: x || width,
|
|
225
|
+
h: y || height
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function getMapMouseEvent(e, mapType) {
|
|
229
|
+
let latlng, point, page, originalEvent, type;
|
|
230
|
+
type = e.type;
|
|
231
|
+
if (mapType == 0) {
|
|
232
|
+
const { latlng: Llatlng, originalEvent: LorginalEvent, containerPoint } = e = e;
|
|
233
|
+
const { lat, lng } = Llatlng;
|
|
234
|
+
latlng = { lat, lng };
|
|
235
|
+
const { x, y } = containerPoint;
|
|
236
|
+
point = { x, y };
|
|
237
|
+
originalEvent = LorginalEvent;
|
|
238
|
+
}
|
|
239
|
+
else if (mapType == 1) {
|
|
240
|
+
const { pixel, originEvent, lnglat } = e = e;
|
|
241
|
+
const { lat, lng } = lnglat;
|
|
242
|
+
latlng = { lat, lng };
|
|
243
|
+
const { x, y } = pixel;
|
|
244
|
+
point = { x, y };
|
|
245
|
+
originalEvent = originEvent;
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
type,
|
|
249
|
+
latlng,
|
|
250
|
+
containerPoint: point,
|
|
251
|
+
orginDOMEvent: originalEvent,
|
|
252
|
+
orginMapEvent: e
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
function setMapStatus(map, key, flag) {
|
|
256
|
+
let _map = map;
|
|
257
|
+
const amap = _map.setStatus ? _map : undefined, lmap = _map.dragging ? _map : undefined;
|
|
258
|
+
switch (key) {
|
|
259
|
+
case 'dragEnable':
|
|
260
|
+
if (lmap) {
|
|
261
|
+
flag ? lmap.dragging.enable() : lmap.dragging.disable();
|
|
262
|
+
}
|
|
263
|
+
else if (amap) {
|
|
264
|
+
amap.setStatus({ dragEnable: flag });
|
|
265
|
+
}
|
|
266
|
+
;
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
function getMapType(map) {
|
|
271
|
+
if (map instanceof L.Map) {
|
|
272
|
+
return 0;
|
|
273
|
+
}
|
|
274
|
+
else if (map instanceof AMap.Map) {
|
|
275
|
+
return 1;
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
return 2;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
function setViewCenter(map, center, zoom, offset) {
|
|
282
|
+
const mapType = getMapType(map);
|
|
283
|
+
if (offset) {
|
|
284
|
+
const centerPixel = getPointByLatlng(map, center);
|
|
285
|
+
center = getLatLngByPoint(map, [centerPixel[0] + offset[0], centerPixel[1] + offset[1]]);
|
|
286
|
+
}
|
|
287
|
+
if (mapType == 0) {
|
|
288
|
+
map = map;
|
|
289
|
+
map.setView(center, zoom);
|
|
290
|
+
}
|
|
291
|
+
else if (mapType == 1) {
|
|
292
|
+
map = map;
|
|
293
|
+
map.setCenter(center.reverse());
|
|
294
|
+
map.setZoom(zoom);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
throw new Error('百度地图暂时不支持!');
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
function setFitBounds(map, point, point2) {
|
|
301
|
+
const mapType = getMapType(map);
|
|
302
|
+
let southwest, northeast;
|
|
303
|
+
if (point.length == 0 || !point)
|
|
304
|
+
return;
|
|
305
|
+
if (uc_tsIfTwoArr(point)) {
|
|
306
|
+
let maxLat = Math.max(...point.map((e) => e[0])), minLat = Math.min(...point.map((e) => e[0])), maxLng = Math.max(...point.map((e) => e[1])), minLng = Math.min(...point.map((e) => e[1]));
|
|
307
|
+
southwest = [minLat, minLng];
|
|
308
|
+
northeast = [maxLat, maxLng];
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
southwest = point;
|
|
312
|
+
northeast = point2;
|
|
313
|
+
}
|
|
314
|
+
if (mapType == 0) {
|
|
315
|
+
map = map;
|
|
316
|
+
map.fitBounds([southwest, northeast]);
|
|
317
|
+
}
|
|
318
|
+
else if (mapType == 1) {
|
|
319
|
+
map = map;
|
|
320
|
+
const bounds = new AMap.Bounds(southwest.reverse(), northeast.reverse());
|
|
321
|
+
const [zoom, center] = map.getFitZoomAndCenterByBounds(bounds);
|
|
322
|
+
map.setZoomAndCenter(zoom, center);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
function uc_tsIfTwoArr(value) {
|
|
326
|
+
return value && Array.isArray(value[0]);
|
|
327
|
+
}
|
|
328
|
+
function delItem(arr, item, key) {
|
|
329
|
+
if (Array.isArray(arr) && arr.length > 0) {
|
|
330
|
+
let index;
|
|
331
|
+
if (key) {
|
|
332
|
+
index = arr.findIndex(e => e == item || e[key] == item[key]);
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
index = arr.findIndex(e => e == item);
|
|
336
|
+
}
|
|
337
|
+
index >= 0 && arr.splice(index, 1);
|
|
338
|
+
}
|
|
339
|
+
return arr || [];
|
|
340
|
+
}
|
|
341
|
+
//# sourceMappingURL=slu-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slu-map.js","sourceRoot":"","sources":["../../src/utils/slu-map.ts"],"names":[],"mappings":";;AAoZe,+BAAY;AACR,uCAAgB;AACf,yCAAiB;AAClB,uCAAgB;AACf,yCAAiB;AAClB,uCAAgB;AACjB,qCAAe;AACjB,iCAAa;AACZ,mCAAc;AACR,+CAAoB;AACxB,uCAAgB;AACX,iDAAqB;AACjB,yDAAyB;AAC7B,iDAAqB;AACnB,qDAAuB;AAC7B,yCAAiB;AACnB,qCAAe;AACb,yCAAiB;AACb,iDAAqB;AACzB,yCAAiB;AAChB,2CAAkB;AACrB,qCAAe;AAzajC,6BAA6B;AAE7B,MAAM,CAAC,GAAG,SAAS,CAAC;AACpB,MAAM,EAAE,GAAG,wBAAwB,CAAC;AACpC,MAAM,EAAE,GAAG,sBAAsB,CAAC;AAClC,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjC,MAAM,CAAC,GAAG,OAAO,CAAC;AAElB,SAAS,WAAW,CAAC,GAAW,EAAE,GAAW;IACzC,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW;IAC1C,IAAI,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,IAAI,SAAS,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;IACpC,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;IACnC,IAAI,QAAQ,GAAG;QACX,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,QAAQ;KAChB,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,GAAW;IACzC,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW;IAC1C,IAAI,IAAI,GAAG,YAAY,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,GAAG,YAAY,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;IACpE,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAChE,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;IACvB,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;IACvB,IAAI,QAAQ,GAAG;QACX,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,KAAK;KACb,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,GAAW;IACzC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC1E,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACnE,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IAC1C,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACzC,IAAI,QAAQ,GAAG;QACX,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAAM;KACd,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,MAAc;IAC9C,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAChE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAG;QACX,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAAM;KACd,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD,SAAS,SAAS,CAAC,GAAW,EAAE,GAAW;IACvC,IAAI,IAAI,GAAG,YAAY,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,GAAG,YAAY,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;IACpE,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAChE,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;IACvB,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;IACvB,IAAI,QAAQ,GAAG;QACX,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,KAAK;KACb,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS;IACtC,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACnF,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7E,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACrF,OAAO,GAAG,CAAC;AACf,CAAC;AACD,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS;IACtC,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACnF,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7E,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACvF,OAAO,GAAG,CAAC;AACf,CAAC;AAQD,SAAS,QAAQ,CAAC,GAAqB,EAAE,OAAyB,EAAE,OAAyB;IACzF,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EACzC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,OAAO,CAAC,CAAA;AACZ,CAAC;AAMD,SAAS,SAAS,CAAC,GAAqB;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACf,IAAI,MAAM,GAAI,GAAa,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG;YAClC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG;YACjC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG;YACnC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG;SACvC,CAAA;IACL,CAAC;SAAM,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAI,GAAgB,CAAC,SAAS,EAAE,CAAC;QAC7D,OAAO;YACH,OAAO,EAAE,SAAS,CAAC,GAAG;YACtB,MAAM,EAAE,SAAS,CAAC,GAAG;YACrB,QAAQ,EAAE,SAAS,CAAC,GAAG;YACvB,SAAS,EAAE,SAAS,CAAC,GAAG;SAC3B,CAAA;IACL,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;AACjC,CAAC;AAID,SAAS,eAAe,CAAC,QAAyB;IAC9C,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,SAAS,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAOD,SAAS,WAAW,CAAC,OAAyB,EAAE,OAAyB,EAAE,OAAc,CAAC;IACtF,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC;IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAChE,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAMD,SAAS,gBAAgB,CAAC,GAAqB,EAAE,KAAmC;IAChF,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAyB,CAAC;IAC9B,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACJ,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;AACzB,CAAC;AAMD,SAAS,oBAAoB,CAAC,GAAqB,EAAE,WAAmB,GAAG,EAAE,MAA0B;IACnG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACtC,IAAI,IAAI,GAAU,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,GAAG,GAAG,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACvF,IAAI,SAAS,GAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EACxC,SAAS,GAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACnD,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA;AACpC,CAAC;AAMD,SAAS,gBAAgB,CAAC,GAAqB,EAAE,MAAoC;IACjF,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,EAAE,CAAuB,CAAC;IAC5D,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IACpD,IAAK,GAAa,CAAC,sBAAsB,EAAE,CAAC;QACxC,CAAC,GAAI,GAAa,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACJ,CAAC,GAAI,GAAgB,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAMD,SAAS,kBAAkB,CAAC,GAAqB,EAAE,OAAuC;IACtF,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC;AAOD,SAAS,YAAY,CAAC,GAAqB,EAAE,IAAqD;IAC9F,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,GAAqB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpF,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IACpB,IAAI,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5D,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACvD,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,GAAqB;IACrC,IAAI,IAAI,GAAQ,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC,OAAO;QACH,CAAC,EAAE,CAAC,IAAI,KAAK;QACb,CAAC,EAAE,CAAC,IAAI,MAAM;KACjB,CAAA;AACL,CAAC;AAMD,SAAS,gBAAgB,CAAC,CAAsC,EAAE,OAAgB;IAC9E,IAAI,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC;IAC7C,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACd,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,CAAC,GAAG,CAAwB,CAAC;QACvG,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAC7B,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACtB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC;QAChC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjB,aAAa,GAAG,aAAa,CAAC;IAClC,CAAC;SAAM,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAkB,CAAC;QAC9D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC5B,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACtB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;QACvB,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjB,aAAa,GAAG,WAAW,CAAC;IAChC,CAAC;IACD,OAAO;QACH,IAAI;QACJ,MAAM;QACN,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,CAAC;KACnB,CAAA;AACL,CAAC;AAUD,SAAS,YAAY,CAAC,GAAqB,EAAE,GAAiB,EAAE,IAAa;IACzE,IAAI,IAAI,GAAQ,GAAG,CAAC;IACpB,MAAM,IAAI,GAAa,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,GAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACxG,QAAQ,GAAG,EAAE,CAAC;QACV,KAAK,YAAY;YAAE,IAAI,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;YAC3D,CAAC;iBAAM,IAAI,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;YACxC,CAAC;YAAA,CAAC;YAAC,MAAM;IACb,CAAC;AACL,CAAC;AAMD,SAAS,UAAU,CAAC,GAAqB;IACrC,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC;IACb,CAAC;SAAM,IAAI,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC;IACb,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,CAAC;IACb,CAAC;AACL,CAAC;AAQD,SAAS,aAAa,CAAC,GAAqB,EAAE,MAAwB,EAAE,IAAY,EAAE,MAAyB;IAC3G,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5F,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACf,GAAG,GAAG,GAAY,CAAA;QAClB,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACtB,GAAG,GAAG,GAAe,CAAA;QACrB,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAsB,CAAC,CAAC;QACpD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC;AACL,CAAC;AAcD,SAAS,YAAY,CAAC,GAAqB,EAAE,KAA4C,EAAE,MAAyB;IAChH,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,SAA2B,EAAE,SAA2B,CAAC;IAC7D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO;IACxC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAEvB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,KAAyB,CAAC;QACtC,SAAS,GAAG,MAA0B,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACf,GAAG,GAAG,GAAY,CAAC;QACnB,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACtB,GAAG,GAAG,GAAe,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAC/D,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAA8C;IACjE,OAAO,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAOD,SAAS,OAAO,CAAI,GAAoB,EAAE,IAAO,EAAE,GAAa;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC;QACV,IAAI,GAAG,EAAE,CAAC;YACN,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAChE,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,IAAI,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.u_TextSplitMultilineText = splitMultilineText;
|
|
4
|
+
exports.u_TextClearMultilineCache = clearMultilineCache;
|
|
5
|
+
const resultCache = new Map();
|
|
6
|
+
const metrics = new Map();
|
|
7
|
+
const hyperMaps = new Map();
|
|
8
|
+
function backProp(text, realWidth, keyMap, temperature, avgSize) {
|
|
9
|
+
let guessWidth = 0;
|
|
10
|
+
const contribMap = {};
|
|
11
|
+
for (const char of text) {
|
|
12
|
+
const v = keyMap.get(char) ?? avgSize;
|
|
13
|
+
guessWidth += v;
|
|
14
|
+
contribMap[char] = (contribMap[char] ?? 0) + 1;
|
|
15
|
+
``;
|
|
16
|
+
}
|
|
17
|
+
const diff = realWidth - guessWidth;
|
|
18
|
+
for (const key of Object.keys(contribMap)) {
|
|
19
|
+
const numContribution = contribMap[key];
|
|
20
|
+
const contribWidth = keyMap.get(key) ?? avgSize;
|
|
21
|
+
const contribAmount = (contribWidth * numContribution) / guessWidth;
|
|
22
|
+
const adjustment = (diff * contribAmount * temperature) / numContribution;
|
|
23
|
+
const newVal = contribWidth + adjustment;
|
|
24
|
+
keyMap.set(key, newVal);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function makeHyperMap(ctx, avgSize) {
|
|
28
|
+
const result = new Map();
|
|
29
|
+
let total = 0;
|
|
30
|
+
for (const char of "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,.-+=?") {
|
|
31
|
+
const w = ctx.measureText(char).width;
|
|
32
|
+
result.set(char, w);
|
|
33
|
+
total += w;
|
|
34
|
+
}
|
|
35
|
+
const avg = total / result.size;
|
|
36
|
+
const damper = 3;
|
|
37
|
+
const scaler = (avgSize / avg + damper) / (damper + 1);
|
|
38
|
+
const keys = result.keys();
|
|
39
|
+
for (const key of keys) {
|
|
40
|
+
result.set(key, (result.get(key) ?? avg) * scaler);
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
function measureText(ctx, text, fontStyle, hyperMode) {
|
|
45
|
+
const current = metrics.get(fontStyle);
|
|
46
|
+
if (hyperMode && current !== undefined && current.count > 20000) {
|
|
47
|
+
let hyperMap = hyperMaps.get(fontStyle);
|
|
48
|
+
if (hyperMap === undefined) {
|
|
49
|
+
hyperMap = makeHyperMap(ctx, current.size);
|
|
50
|
+
hyperMaps.set(fontStyle, hyperMap);
|
|
51
|
+
}
|
|
52
|
+
if (current.count > 500000) {
|
|
53
|
+
let final = 0;
|
|
54
|
+
for (const char of text) {
|
|
55
|
+
final += hyperMap.get(char) ?? current.size;
|
|
56
|
+
}
|
|
57
|
+
return final * 1.01;
|
|
58
|
+
}
|
|
59
|
+
const result = ctx.measureText(text);
|
|
60
|
+
backProp(text, result.width, hyperMap, Math.max(0.05, 1 - current.count / 200000), current.size);
|
|
61
|
+
metrics.set(fontStyle, {
|
|
62
|
+
count: current.count + text.length,
|
|
63
|
+
size: current.size,
|
|
64
|
+
});
|
|
65
|
+
return result.width;
|
|
66
|
+
}
|
|
67
|
+
const result = ctx.measureText(text);
|
|
68
|
+
const avg = result.width / text.length;
|
|
69
|
+
if ((current?.count ?? 0) > 20000) {
|
|
70
|
+
return result.width;
|
|
71
|
+
}
|
|
72
|
+
if (current === undefined) {
|
|
73
|
+
metrics.set(fontStyle, {
|
|
74
|
+
count: text.length,
|
|
75
|
+
size: avg,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const diff = avg - current.size;
|
|
80
|
+
const contribution = text.length / (current.count + text.length);
|
|
81
|
+
const newVal = current.size + diff * contribution;
|
|
82
|
+
metrics.set(fontStyle, {
|
|
83
|
+
count: current.count + text.length,
|
|
84
|
+
size: newVal,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return result.width;
|
|
88
|
+
}
|
|
89
|
+
function getSplitPoint(ctx, text, width, fontStyle, totalWidth, measuredChars, hyperMode, getBreakOpportunities) {
|
|
90
|
+
if (text.length <= 1)
|
|
91
|
+
return text.length;
|
|
92
|
+
if (totalWidth < width)
|
|
93
|
+
return -1;
|
|
94
|
+
let guess = Math.floor((width / totalWidth) * measuredChars);
|
|
95
|
+
let guessWidth = measureText(ctx, text.slice(0, Math.max(0, guess)), fontStyle, hyperMode);
|
|
96
|
+
const oppos = getBreakOpportunities?.(text);
|
|
97
|
+
if (guessWidth === width) {
|
|
98
|
+
}
|
|
99
|
+
else if (guessWidth < width) {
|
|
100
|
+
while (guessWidth < width) {
|
|
101
|
+
guess++;
|
|
102
|
+
guessWidth = measureText(ctx, text.slice(0, Math.max(0, guess)), fontStyle, hyperMode);
|
|
103
|
+
}
|
|
104
|
+
guess--;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
while (guessWidth > width) {
|
|
108
|
+
const lastSpace = oppos !== undefined ? 0 : text.lastIndexOf(" ", guess - 1);
|
|
109
|
+
if (lastSpace > 0) {
|
|
110
|
+
guess = lastSpace;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
guess--;
|
|
114
|
+
}
|
|
115
|
+
guessWidth = measureText(ctx, text.slice(0, Math.max(0, guess)), fontStyle, hyperMode);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (text[guess] !== " ") {
|
|
119
|
+
let greedyBreak = 0;
|
|
120
|
+
if (oppos === undefined) {
|
|
121
|
+
greedyBreak = text.lastIndexOf(" ", guess);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
for (const o of oppos) {
|
|
125
|
+
if (o > guess)
|
|
126
|
+
break;
|
|
127
|
+
greedyBreak = o;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (greedyBreak > 0) {
|
|
131
|
+
guess = greedyBreak;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return guess;
|
|
135
|
+
}
|
|
136
|
+
function splitMultilineText(ctx, value, fontStyle, width, hyperWrappingAllowed, getBreakOpportunities) {
|
|
137
|
+
const key = `${value}_${fontStyle}_${width}px`;
|
|
138
|
+
const cacheResult = resultCache.get(key);
|
|
139
|
+
if (cacheResult !== undefined)
|
|
140
|
+
return cacheResult;
|
|
141
|
+
if (width <= 0) {
|
|
142
|
+
return [];
|
|
143
|
+
}
|
|
144
|
+
let result = [];
|
|
145
|
+
const encodedLines = value.split("\n");
|
|
146
|
+
const fontMetrics = metrics.get(fontStyle);
|
|
147
|
+
const safeLineGuess = fontMetrics === undefined ? value.length : (width / fontMetrics.size) * 1.5;
|
|
148
|
+
const hyperMode = hyperWrappingAllowed && fontMetrics !== undefined && fontMetrics.count > 20000;
|
|
149
|
+
for (let line of encodedLines) {
|
|
150
|
+
let textWidth = measureText(ctx, line.slice(0, Math.max(0, safeLineGuess)), fontStyle, hyperMode);
|
|
151
|
+
let measuredChars = Math.min(line.length, safeLineGuess);
|
|
152
|
+
if (textWidth <= width) {
|
|
153
|
+
result.push(line);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
while (textWidth > width) {
|
|
157
|
+
const splitPoint = getSplitPoint(ctx, line, width, fontStyle, textWidth, measuredChars, hyperMode, getBreakOpportunities);
|
|
158
|
+
const subLine = line.slice(0, Math.max(0, splitPoint));
|
|
159
|
+
line = line.slice(subLine.length);
|
|
160
|
+
result.push(subLine);
|
|
161
|
+
textWidth = measureText(ctx, line.slice(0, Math.max(0, safeLineGuess)), fontStyle, hyperMode);
|
|
162
|
+
measuredChars = Math.min(line.length, safeLineGuess);
|
|
163
|
+
}
|
|
164
|
+
if (textWidth > 0) {
|
|
165
|
+
result.push(line);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
result = result.map((l, i) => (i === 0 ? l.trimEnd() : l.trim()));
|
|
170
|
+
resultCache.set(key, result);
|
|
171
|
+
if (resultCache.size > 500) {
|
|
172
|
+
resultCache.delete(resultCache.keys().next().value);
|
|
173
|
+
}
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
function clearMultilineCache() {
|
|
177
|
+
resultCache.clear();
|
|
178
|
+
hyperMaps.clear();
|
|
179
|
+
metrics.clear();
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=txt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"txt.js","sourceRoot":"","sources":["../../src/utils/txt.ts"],"names":[],"mappings":"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"}
|
package/index.cjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*eslint-env node*/
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const minified = path.join(__dirname, "dist/sl-utils-map.js");
|
|
6
|
+
const unminified = path.join(__dirname, "Build/CesiumUnminified/index.cjs");
|
|
7
|
+
|
|
8
|
+
// If in 'production' mode, use the combined/minified/optimized version of Cesium
|
|
9
|
+
module.exports =
|
|
10
|
+
process.env.NODE_ENV === "production"
|
|
11
|
+
? require(minified)
|
|
12
|
+
: require(unminified);
|
package/package.json
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sl-utils/map",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "",
|
|
5
|
-
"main": "index.
|
|
5
|
+
"main": "index.cjs",
|
|
6
|
+
"module": "./src/sl-utils-map.ts",
|
|
6
7
|
"scripts": {
|
|
7
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
|
+
"build": "npm run build:cjs",
|
|
10
|
+
"build:cjs": "tsc -p tsconfig.cjs.json"
|
|
8
11
|
},
|
|
9
12
|
"dependencies": {
|
|
10
13
|
"leaflet": "^1.9.4",
|
|
@@ -16,6 +19,13 @@
|
|
|
16
19
|
"ts-node": "^10.9.2",
|
|
17
20
|
"typescript": "~5.7.2"
|
|
18
21
|
},
|
|
22
|
+
"exports": {
|
|
23
|
+
"./package.json": "./package.json",
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./src/sl-utils-map.d.ts",
|
|
26
|
+
"import": "./src/sl-utils-map.js"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
19
29
|
"repository": {
|
|
20
30
|
"type": "git",
|
|
21
31
|
"url": "git+https://github.com/sl-utils/map.git"
|
|
@@ -29,4 +39,4 @@
|
|
|
29
39
|
"publishConfig": {
|
|
30
40
|
"access": "public"
|
|
31
41
|
}
|
|
32
|
-
}
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MapCanvasDraw } from './map/canvas-draw'
|
package/tsconfig.json
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
|
2
2
|
{
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"module": "commonjs",
|
|
5
4
|
"noImplicitAny": true,
|
|
6
5
|
"removeComments": true,
|
|
7
6
|
"preserveConstEnums": true,
|
|
8
7
|
"sourceMap": true,
|
|
9
|
-
"target": "
|
|
8
|
+
"target": "ES2020",
|
|
9
|
+
"module": "commonjs",
|
|
10
|
+
"outDir": "./dist",
|
|
11
|
+
"rootDir": "./src",
|
|
10
12
|
"lib": [
|
|
11
13
|
"es2020",
|
|
12
14
|
"dom"
|
|
13
15
|
],
|
|
14
16
|
},
|
|
15
17
|
"include": [
|
|
16
|
-
"types/**/*",
|
|
17
18
|
"src/**/*",
|
|
19
|
+
"types/**/*",
|
|
18
20
|
],
|
|
19
21
|
"exclude": [
|
|
20
22
|
"node_modules",
|
|
21
|
-
"
|
|
23
|
+
"dist"
|
|
22
24
|
]
|
|
23
25
|
}
|
package/src/index.ts
DELETED
|
File without changes
|