@carto/api-client 0.5.32-alpha.77957dd.124 → 0.5.32-alpha.b3291bf.129
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/CHANGELOG.md +1 -1
- package/build/api-client.cjs +86 -52
- package/build/api-client.cjs.map +1 -1
- package/build/api-client.js +86 -48
- package/build/api-client.js.map +1 -1
- package/package.json +1 -1
- package/src/fetch-map/parse-map.ts +15 -3
- package/src/fetch-map/pattern-atlas.ts +245 -20
- package/src/fetch-map/pattern-atlas-baked.ts +0 -56
- package/src/fetch-map/pattern-atlas-runtime.ts +0 -134
package/build/api-client.js
CHANGED
|
@@ -10310,37 +10310,6 @@ function hexToRGB2(hexColor) {
|
|
|
10310
10310
|
return [r, g, b];
|
|
10311
10311
|
}
|
|
10312
10312
|
|
|
10313
|
-
// src/fetch-map/pattern-atlas-baked.ts
|
|
10314
|
-
var BAKED_ATLAS_URL = "data:image/png;base64,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";
|
|
10315
|
-
var PATTERN_ATLAS_MAPPING = {
|
|
10316
|
-
"hlines-large": { x: 0, y: 0, width: 64, height: 64, mask: true },
|
|
10317
|
-
"hlines-medium": { x: 64, y: 0, width: 64, height: 64, mask: true },
|
|
10318
|
-
"hlines-small": { x: 128, y: 0, width: 64, height: 64, mask: true },
|
|
10319
|
-
"vlines-large": { x: 0, y: 64, width: 64, height: 64, mask: true },
|
|
10320
|
-
"vlines-medium": { x: 64, y: 64, width: 64, height: 64, mask: true },
|
|
10321
|
-
"vlines-small": { x: 128, y: 64, width: 64, height: 64, mask: true },
|
|
10322
|
-
"diag-left-large": { x: 0, y: 128, width: 64, height: 64, mask: true },
|
|
10323
|
-
"diag-left-medium": { x: 64, y: 128, width: 64, height: 64, mask: true },
|
|
10324
|
-
"diag-left-small": { x: 128, y: 128, width: 64, height: 64, mask: true },
|
|
10325
|
-
"diag-right-large": { x: 0, y: 192, width: 64, height: 64, mask: true },
|
|
10326
|
-
"diag-right-medium": { x: 64, y: 192, width: 64, height: 64, mask: true },
|
|
10327
|
-
"diag-right-small": { x: 128, y: 192, width: 64, height: 64, mask: true },
|
|
10328
|
-
"cross-hatch-large": { x: 0, y: 256, width: 64, height: 64, mask: true },
|
|
10329
|
-
"cross-hatch-medium": { x: 64, y: 256, width: 64, height: 64, mask: true },
|
|
10330
|
-
"cross-hatch-small": { x: 128, y: 256, width: 64, height: 64, mask: true },
|
|
10331
|
-
"dots-large": { x: 0, y: 320, width: 64, height: 64, mask: true },
|
|
10332
|
-
"dots-medium": { x: 64, y: 320, width: 64, height: 64, mask: true },
|
|
10333
|
-
"dots-small": { x: 128, y: 320, width: 64, height: 64, mask: true },
|
|
10334
|
-
"checker-large": { x: 0, y: 384, width: 64, height: 64, mask: true },
|
|
10335
|
-
"checker-medium": { x: 64, y: 384, width: 64, height: 64, mask: true },
|
|
10336
|
-
"checker-small": { x: 128, y: 384, width: 64, height: 64, mask: true },
|
|
10337
|
-
solid: { x: 64, y: 448, width: 64, height: 64, mask: true },
|
|
10338
|
-
none: { x: 0, y: 448, width: 64, height: 64, mask: true }
|
|
10339
|
-
};
|
|
10340
|
-
var CELL = 64;
|
|
10341
|
-
var ATLAS_W = CELL * 3;
|
|
10342
|
-
var ATLAS_H = CELL * 8;
|
|
10343
|
-
|
|
10344
10313
|
// src/fetch-map/patterns/hlines-large.png
|
|
10345
10314
|
var hlines_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABBSURBVHic7dixAQAgDMOwwP8/wxfNUOkCz04AYK2T5LUjmm47AAAAAOb5Ae0AAAAAmOcHtAMAAABgnh/QDgAAaj69GwQJx6ek3QAAAABJRU5ErkJggg==";
|
|
10346
10315
|
|
|
@@ -10407,7 +10376,19 @@ var checker_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAA
|
|
|
10407
10376
|
// src/fetch-map/patterns/solid.png
|
|
10408
10377
|
var solid_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACWSURBVHic7dBBEcAwAMOwrPw5dzD0qIXA52/b3cOODtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QPsBULQBfwAqZPkAAAAASUVORK5CYII=";
|
|
10409
10378
|
|
|
10410
|
-
// src/fetch-map/pattern-atlas
|
|
10379
|
+
// src/fetch-map/pattern-atlas.ts
|
|
10380
|
+
var DEFAULT_CELL_SIZE = 128;
|
|
10381
|
+
var SOURCE_TILE_SIZE = 64;
|
|
10382
|
+
var PATTERN_ROWS = [
|
|
10383
|
+
"hlines",
|
|
10384
|
+
"vlines",
|
|
10385
|
+
"diag-left",
|
|
10386
|
+
"diag-right",
|
|
10387
|
+
"cross-hatch",
|
|
10388
|
+
"dots",
|
|
10389
|
+
"checker"
|
|
10390
|
+
];
|
|
10391
|
+
var DENSITY_COLUMNS = ["large", "medium", "small"];
|
|
10411
10392
|
var CELL_URLS = {
|
|
10412
10393
|
"hlines-large": hlines_large_default,
|
|
10413
10394
|
"hlines-medium": hlines_medium_default,
|
|
@@ -10432,6 +10413,43 @@ var CELL_URLS = {
|
|
|
10432
10413
|
"checker-small": checker_small_default,
|
|
10433
10414
|
solid: solid_default
|
|
10434
10415
|
};
|
|
10416
|
+
function debugGlobals() {
|
|
10417
|
+
return globalThis;
|
|
10418
|
+
}
|
|
10419
|
+
function getPatternCellSize() {
|
|
10420
|
+
const cell = debugGlobals().__CARTO_PATTERN_CELL_SIZE__;
|
|
10421
|
+
return typeof cell === "number" && cell > 0 ? cell : DEFAULT_CELL_SIZE;
|
|
10422
|
+
}
|
|
10423
|
+
function getPatternTextureParameters() {
|
|
10424
|
+
const params = debugGlobals().__CARTO_PATTERN_TEXTURE_PARAMS__;
|
|
10425
|
+
return params && typeof params === "object" ? params : void 0;
|
|
10426
|
+
}
|
|
10427
|
+
function getPatternScaleAdjustment(cell = getPatternCellSize()) {
|
|
10428
|
+
return SOURCE_TILE_SIZE / cell;
|
|
10429
|
+
}
|
|
10430
|
+
function getPatternCellPadding(cell) {
|
|
10431
|
+
return Math.max(2, Math.round(cell / 16));
|
|
10432
|
+
}
|
|
10433
|
+
function getPatternAtlasMapping(cell = getPatternCellSize()) {
|
|
10434
|
+
const pad = getPatternCellPadding(cell);
|
|
10435
|
+
const pitch = cell + 2 * pad;
|
|
10436
|
+
const mapping = {};
|
|
10437
|
+
const frame = (col, row) => ({
|
|
10438
|
+
x: pad + col * pitch,
|
|
10439
|
+
y: pad + row * pitch,
|
|
10440
|
+
width: cell,
|
|
10441
|
+
height: cell,
|
|
10442
|
+
mask: true
|
|
10443
|
+
});
|
|
10444
|
+
PATTERN_ROWS.forEach((pattern, row) => {
|
|
10445
|
+
DENSITY_COLUMNS.forEach((density, col) => {
|
|
10446
|
+
mapping[`${pattern}-${density}`] = frame(col, row);
|
|
10447
|
+
});
|
|
10448
|
+
});
|
|
10449
|
+
mapping.none = frame(0, PATTERN_ROWS.length);
|
|
10450
|
+
mapping.solid = frame(1, PATTERN_ROWS.length);
|
|
10451
|
+
return mapping;
|
|
10452
|
+
}
|
|
10435
10453
|
function createCanvas(w, h) {
|
|
10436
10454
|
if (typeof OffscreenCanvas !== "undefined") return new OffscreenCanvas(w, h);
|
|
10437
10455
|
if (typeof document !== "undefined") {
|
|
@@ -10456,13 +10474,22 @@ async function loadImage(dataUrl) {
|
|
|
10456
10474
|
img.src = dataUrl;
|
|
10457
10475
|
});
|
|
10458
10476
|
}
|
|
10459
|
-
var
|
|
10460
|
-
function
|
|
10461
|
-
|
|
10462
|
-
|
|
10477
|
+
var atlasPromises = /* @__PURE__ */ new Map();
|
|
10478
|
+
function getPatternAtlas(cell = getPatternCellSize()) {
|
|
10479
|
+
let promise = atlasPromises.get(cell);
|
|
10480
|
+
if (!promise) {
|
|
10481
|
+
promise = build(cell);
|
|
10482
|
+
promise.catch(() => {
|
|
10483
|
+
});
|
|
10484
|
+
atlasPromises.set(cell, promise);
|
|
10485
|
+
}
|
|
10486
|
+
return promise;
|
|
10463
10487
|
}
|
|
10464
|
-
async function build() {
|
|
10465
|
-
const
|
|
10488
|
+
async function build(cell) {
|
|
10489
|
+
const mapping = getPatternAtlasMapping(cell);
|
|
10490
|
+
const pad = getPatternCellPadding(cell);
|
|
10491
|
+
const pitch = cell + 2 * pad;
|
|
10492
|
+
const canvas = createCanvas(pitch * 3, pitch * (PATTERN_ROWS.length + 1));
|
|
10466
10493
|
const ctx = canvas.getContext("2d");
|
|
10467
10494
|
if (!ctx)
|
|
10468
10495
|
throw new Error(
|
|
@@ -10474,21 +10501,28 @@ async function build() {
|
|
|
10474
10501
|
images[key] = await loadImage(url);
|
|
10475
10502
|
})
|
|
10476
10503
|
);
|
|
10477
|
-
for (const [key, frame] of Object.entries(
|
|
10504
|
+
for (const [key, frame] of Object.entries(mapping)) {
|
|
10478
10505
|
const img = images[key];
|
|
10479
|
-
if (img)
|
|
10506
|
+
if (!img) continue;
|
|
10507
|
+
const srcWidth = img.width;
|
|
10508
|
+
ctx.imageSmoothingEnabled = srcWidth > cell;
|
|
10509
|
+
if ("imageSmoothingQuality" in ctx) ctx.imageSmoothingQuality = "high";
|
|
10510
|
+
ctx.save();
|
|
10511
|
+
ctx.beginPath();
|
|
10512
|
+
ctx.rect(frame.x - pad, frame.y - pad, cell + 2 * pad, cell + 2 * pad);
|
|
10513
|
+
ctx.clip();
|
|
10514
|
+
for (const dx of [-cell, 0, cell]) {
|
|
10515
|
+
for (const dy of [-cell, 0, cell]) {
|
|
10516
|
+
ctx.drawImage(img, frame.x + dx, frame.y + dy, cell, cell);
|
|
10517
|
+
}
|
|
10518
|
+
}
|
|
10519
|
+
ctx.restore();
|
|
10480
10520
|
}
|
|
10481
10521
|
if (typeof createImageBitmap !== "undefined")
|
|
10482
10522
|
return createImageBitmap(canvas);
|
|
10483
10523
|
return canvas;
|
|
10484
10524
|
}
|
|
10485
10525
|
|
|
10486
|
-
// src/fetch-map/pattern-atlas.ts
|
|
10487
|
-
function getPatternAtlas() {
|
|
10488
|
-
const runtime = globalThis.__CARTO_RUNTIME_ATLAS__ === true;
|
|
10489
|
-
return runtime ? assemblePatternAtlas() : BAKED_ATLAS_URL;
|
|
10490
|
-
}
|
|
10491
|
-
|
|
10492
10526
|
// src/fetch-map/parse-map.ts
|
|
10493
10527
|
function getLayerDescriptor({
|
|
10494
10528
|
mapConfig,
|
|
@@ -10917,9 +10951,13 @@ function createChannelProps(id, layerType, config2, visualChannels, data, datase
|
|
|
10917
10951
|
result.fillPatternEnabled = Boolean(visConfig.fillPatternEnabled);
|
|
10918
10952
|
if (visConfig.filled && visConfig.fillPatternEnabled) {
|
|
10919
10953
|
result.fillPatternAtlas = getPatternAtlas();
|
|
10920
|
-
result.fillPatternMapping =
|
|
10954
|
+
result.fillPatternMapping = getPatternAtlasMapping();
|
|
10921
10955
|
result.fillPatternMask = true;
|
|
10922
|
-
|
|
10956
|
+
const textureParameters = getPatternTextureParameters();
|
|
10957
|
+
if (textureParameters) {
|
|
10958
|
+
result.textureParameters = textureParameters;
|
|
10959
|
+
}
|
|
10960
|
+
result.getFillPatternScale = (visConfig.fillPatternSize ?? 1) * getPatternScaleAdjustment();
|
|
10923
10961
|
result.fillPattern = visConfig.fillPattern;
|
|
10924
10962
|
const { fillPatternField, fillPatternScale } = visualChannels;
|
|
10925
10963
|
const { fillPatternRange, fillPatternDensity } = visConfig;
|