@carto/api-client 0.5.32-alpha.13acc23.123 → 0.5.32-alpha.48cef4f.127
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 +63 -61
- package/build/api-client.cjs.map +1 -1
- package/build/api-client.js +63 -57
- package/build/api-client.js.map +1 -1
- package/package.json +1 -1
- package/src/fetch-map/parse-map.ts +11 -2
- package/src/fetch-map/pattern-atlas.ts +207 -13
- package/src/fetch-map/pattern-atlas-baked.ts +0 -56
- package/src/fetch-map/pattern-atlas-runtime.ts +0 -139
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
5
|
- feat(fetchMap): Support line & polygon stroke dash styles (#297)
|
|
6
|
-
- feat(fetchMap): Support polygon fill patterns (
|
|
6
|
+
- feat(fetchMap): Support polygon fill patterns (runtime-assembled sprite atlas, `getFillPattern`/`scales.fillPattern`, `fillPatternEnabled`)
|
|
7
7
|
|
|
8
8
|
### 0.5.31
|
|
9
9
|
|
package/build/api-client.cjs
CHANGED
|
@@ -10675,41 +10675,6 @@ init_cjs_shims();
|
|
|
10675
10675
|
// src/fetch-map/pattern-atlas.ts
|
|
10676
10676
|
init_cjs_shims();
|
|
10677
10677
|
|
|
10678
|
-
// src/fetch-map/pattern-atlas-baked.ts
|
|
10679
|
-
init_cjs_shims();
|
|
10680
|
-
var BAKED_ATLAS_URL = "data:image/png;base64,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";
|
|
10681
|
-
var PATTERN_ATLAS_MAPPING = {
|
|
10682
|
-
"hlines-large": { x: 0, y: 0, width: 64, height: 64, mask: true },
|
|
10683
|
-
"hlines-medium": { x: 64, y: 0, width: 64, height: 64, mask: true },
|
|
10684
|
-
"hlines-small": { x: 128, y: 0, width: 64, height: 64, mask: true },
|
|
10685
|
-
"vlines-large": { x: 0, y: 64, width: 64, height: 64, mask: true },
|
|
10686
|
-
"vlines-medium": { x: 64, y: 64, width: 64, height: 64, mask: true },
|
|
10687
|
-
"vlines-small": { x: 128, y: 64, width: 64, height: 64, mask: true },
|
|
10688
|
-
"diag-left-large": { x: 0, y: 128, width: 64, height: 64, mask: true },
|
|
10689
|
-
"diag-left-medium": { x: 64, y: 128, width: 64, height: 64, mask: true },
|
|
10690
|
-
"diag-left-small": { x: 128, y: 128, width: 64, height: 64, mask: true },
|
|
10691
|
-
"diag-right-large": { x: 0, y: 192, width: 64, height: 64, mask: true },
|
|
10692
|
-
"diag-right-medium": { x: 64, y: 192, width: 64, height: 64, mask: true },
|
|
10693
|
-
"diag-right-small": { x: 128, y: 192, width: 64, height: 64, mask: true },
|
|
10694
|
-
"cross-hatch-large": { x: 0, y: 256, width: 64, height: 64, mask: true },
|
|
10695
|
-
"cross-hatch-medium": { x: 64, y: 256, width: 64, height: 64, mask: true },
|
|
10696
|
-
"cross-hatch-small": { x: 128, y: 256, width: 64, height: 64, mask: true },
|
|
10697
|
-
"dots-large": { x: 0, y: 320, width: 64, height: 64, mask: true },
|
|
10698
|
-
"dots-medium": { x: 64, y: 320, width: 64, height: 64, mask: true },
|
|
10699
|
-
"dots-small": { x: 128, y: 320, width: 64, height: 64, mask: true },
|
|
10700
|
-
"checker-large": { x: 0, y: 384, width: 64, height: 64, mask: true },
|
|
10701
|
-
"checker-medium": { x: 64, y: 384, width: 64, height: 64, mask: true },
|
|
10702
|
-
"checker-small": { x: 128, y: 384, width: 64, height: 64, mask: true },
|
|
10703
|
-
solid: { x: 64, y: 448, width: 64, height: 64, mask: true },
|
|
10704
|
-
none: { x: 0, y: 448, width: 64, height: 64, mask: true }
|
|
10705
|
-
};
|
|
10706
|
-
var CELL = 64;
|
|
10707
|
-
var ATLAS_W = CELL * 3;
|
|
10708
|
-
var ATLAS_H = CELL * 8;
|
|
10709
|
-
|
|
10710
|
-
// src/fetch-map/pattern-atlas-runtime.ts
|
|
10711
|
-
init_cjs_shims();
|
|
10712
|
-
|
|
10713
10678
|
// src/fetch-map/patterns/hlines-large.png
|
|
10714
10679
|
var hlines_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABBSURBVHic7dixAQAgDMOwwP8/wxfNUOkCz04AYK2T5LUjmm47AAAAAOb5Ae0AAAAAmOcHtAMAAABgnh/QDgAAaj69GwQJx6ek3QAAAABJRU5ErkJggg==";
|
|
10715
10680
|
|
|
@@ -10776,7 +10741,18 @@ var checker_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAA
|
|
|
10776
10741
|
// src/fetch-map/patterns/solid.png
|
|
10777
10742
|
var solid_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACWSURBVHic7dBBEcAwAMOwrPw5dzD0qIXA52/b3cOODtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QPsBULQBfwAqZPkAAAAASUVORK5CYII=";
|
|
10778
10743
|
|
|
10779
|
-
// src/fetch-map/pattern-atlas
|
|
10744
|
+
// src/fetch-map/pattern-atlas.ts
|
|
10745
|
+
var DEFAULT_CELL_SIZE = 128;
|
|
10746
|
+
var PATTERN_ROWS = [
|
|
10747
|
+
"hlines",
|
|
10748
|
+
"vlines",
|
|
10749
|
+
"diag-left",
|
|
10750
|
+
"diag-right",
|
|
10751
|
+
"cross-hatch",
|
|
10752
|
+
"dots",
|
|
10753
|
+
"checker"
|
|
10754
|
+
];
|
|
10755
|
+
var DENSITY_COLUMNS = ["large", "medium", "small"];
|
|
10780
10756
|
var CELL_URLS = {
|
|
10781
10757
|
"hlines-large": hlines_large_default,
|
|
10782
10758
|
"hlines-medium": hlines_medium_default,
|
|
@@ -10801,6 +10777,35 @@ var CELL_URLS = {
|
|
|
10801
10777
|
"checker-small": checker_small_default,
|
|
10802
10778
|
solid: solid_default
|
|
10803
10779
|
};
|
|
10780
|
+
function debugGlobals() {
|
|
10781
|
+
return globalThis;
|
|
10782
|
+
}
|
|
10783
|
+
function getPatternCellSize() {
|
|
10784
|
+
const cell = debugGlobals().__CARTO_PATTERN_CELL_SIZE__;
|
|
10785
|
+
return typeof cell === "number" && cell > 0 ? cell : DEFAULT_CELL_SIZE;
|
|
10786
|
+
}
|
|
10787
|
+
function getPatternTextureParameters() {
|
|
10788
|
+
const params = debugGlobals().__CARTO_PATTERN_TEXTURE_PARAMS__;
|
|
10789
|
+
return params && typeof params === "object" ? params : void 0;
|
|
10790
|
+
}
|
|
10791
|
+
function getPatternAtlasMapping(cell = getPatternCellSize()) {
|
|
10792
|
+
const mapping = {};
|
|
10793
|
+
const frame = (col, row) => ({
|
|
10794
|
+
x: col * cell,
|
|
10795
|
+
y: row * cell,
|
|
10796
|
+
width: cell,
|
|
10797
|
+
height: cell,
|
|
10798
|
+
mask: true
|
|
10799
|
+
});
|
|
10800
|
+
PATTERN_ROWS.forEach((pattern, row) => {
|
|
10801
|
+
DENSITY_COLUMNS.forEach((density, col) => {
|
|
10802
|
+
mapping[`${pattern}-${density}`] = frame(col, row);
|
|
10803
|
+
});
|
|
10804
|
+
});
|
|
10805
|
+
mapping.none = frame(0, PATTERN_ROWS.length);
|
|
10806
|
+
mapping.solid = frame(1, PATTERN_ROWS.length);
|
|
10807
|
+
return mapping;
|
|
10808
|
+
}
|
|
10804
10809
|
function createCanvas(w, h) {
|
|
10805
10810
|
if (typeof OffscreenCanvas !== "undefined") return new OffscreenCanvas(w, h);
|
|
10806
10811
|
if (typeof document !== "undefined") {
|
|
@@ -10825,24 +10830,20 @@ async function loadImage(dataUrl) {
|
|
|
10825
10830
|
img.src = dataUrl;
|
|
10826
10831
|
});
|
|
10827
10832
|
}
|
|
10828
|
-
|
|
10829
|
-
|
|
10830
|
-
|
|
10831
|
-
|
|
10832
|
-
|
|
10833
|
-
|
|
10834
|
-
reader.readAsDataURL(blob);
|
|
10833
|
+
var atlasPromises = /* @__PURE__ */ new Map();
|
|
10834
|
+
function getPatternAtlas(cell = getPatternCellSize()) {
|
|
10835
|
+
let promise = atlasPromises.get(cell);
|
|
10836
|
+
if (!promise) {
|
|
10837
|
+
promise = build(cell);
|
|
10838
|
+
promise.catch(() => {
|
|
10835
10839
|
});
|
|
10840
|
+
atlasPromises.set(cell, promise);
|
|
10836
10841
|
}
|
|
10837
|
-
return
|
|
10842
|
+
return promise;
|
|
10838
10843
|
}
|
|
10839
|
-
|
|
10840
|
-
|
|
10841
|
-
|
|
10842
|
-
return atlasPromise;
|
|
10843
|
-
}
|
|
10844
|
-
async function build() {
|
|
10845
|
-
const canvas = createCanvas(ATLAS_W, ATLAS_H);
|
|
10844
|
+
async function build(cell) {
|
|
10845
|
+
const mapping = getPatternAtlasMapping(cell);
|
|
10846
|
+
const canvas = createCanvas(cell * 3, cell * (PATTERN_ROWS.length + 1));
|
|
10846
10847
|
const ctx = canvas.getContext("2d");
|
|
10847
10848
|
if (!ctx)
|
|
10848
10849
|
throw new Error(
|
|
@@ -10854,17 +10855,14 @@ async function build() {
|
|
|
10854
10855
|
images[key] = await loadImage(url);
|
|
10855
10856
|
})
|
|
10856
10857
|
);
|
|
10857
|
-
|
|
10858
|
+
ctx.imageSmoothingEnabled = false;
|
|
10859
|
+
for (const [key, frame] of Object.entries(mapping)) {
|
|
10858
10860
|
const img = images[key];
|
|
10859
|
-
if (img) ctx.drawImage(img, frame.x, frame.y,
|
|
10861
|
+
if (img) ctx.drawImage(img, frame.x, frame.y, cell, cell);
|
|
10860
10862
|
}
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
|
|
10864
|
-
// src/fetch-map/pattern-atlas.ts
|
|
10865
|
-
function getPatternAtlas() {
|
|
10866
|
-
const runtime = globalThis.__CARTO_RUNTIME_ATLAS__ === true;
|
|
10867
|
-
return runtime ? assemblePatternAtlas() : BAKED_ATLAS_URL;
|
|
10863
|
+
if (typeof createImageBitmap !== "undefined")
|
|
10864
|
+
return createImageBitmap(canvas);
|
|
10865
|
+
return canvas;
|
|
10868
10866
|
}
|
|
10869
10867
|
|
|
10870
10868
|
// src/fetch-map/parse-map.ts
|
|
@@ -11295,8 +11293,12 @@ function createChannelProps(id, layerType, config2, visualChannels, data, datase
|
|
|
11295
11293
|
result.fillPatternEnabled = Boolean(visConfig.fillPatternEnabled);
|
|
11296
11294
|
if (visConfig.filled && visConfig.fillPatternEnabled) {
|
|
11297
11295
|
result.fillPatternAtlas = getPatternAtlas();
|
|
11298
|
-
result.fillPatternMapping =
|
|
11296
|
+
result.fillPatternMapping = getPatternAtlasMapping();
|
|
11299
11297
|
result.fillPatternMask = true;
|
|
11298
|
+
const textureParameters = getPatternTextureParameters();
|
|
11299
|
+
if (textureParameters) {
|
|
11300
|
+
result.textureParameters = textureParameters;
|
|
11301
|
+
}
|
|
11300
11302
|
result.getFillPatternScale = visConfig.fillPatternSize ?? 1;
|
|
11301
11303
|
result.fillPattern = visConfig.fillPattern;
|
|
11302
11304
|
const { fillPatternField, fillPatternScale } = visualChannels;
|