@carto/api-client 0.5.32-alpha.72cdcfe.130 → 0.5.32-alpha.77957dd.124

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 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 (runtime-assembled sprite atlas, `getFillPattern`/`scales.fillPattern`, `fillPatternEnabled`)
6
+ - feat(fetchMap): Support polygon fill patterns (inline sprite atlas, `getFillPattern`/`scales.fillPattern`, `fillPatternEnabled`)
7
7
 
8
8
  ### 0.5.31
9
9
 
@@ -10675,6 +10675,41 @@ 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
+
10678
10713
  // src/fetch-map/patterns/hlines-large.png
10679
10714
  var hlines_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABBSURBVHic7dixAQAgDMOwwP8/wxfNUOkCz04AYK2T5LUjmm47AAAAAOb5Ae0AAAAAmOcHtAMAAABgnh/QDgAAaj69GwQJx6ek3QAAAABJRU5ErkJggg==";
10680
10715
 
@@ -10741,19 +10776,7 @@ var checker_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAA
10741
10776
  // src/fetch-map/patterns/solid.png
10742
10777
  var solid_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACWSURBVHic7dBBEcAwAMOwrPw5dzD0qIXA52/b3cOODtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QPsBULQBfwAqZPkAAAAASUVORK5CYII=";
10743
10778
 
10744
- // src/fetch-map/pattern-atlas.ts
10745
- var DEFAULT_CELL_SIZE = 128;
10746
- var SOURCE_TILE_SIZE = 64;
10747
- var PATTERN_ROWS = [
10748
- "hlines",
10749
- "vlines",
10750
- "diag-left",
10751
- "diag-right",
10752
- "cross-hatch",
10753
- "dots",
10754
- "checker"
10755
- ];
10756
- var DENSITY_COLUMNS = ["large", "medium", "small"];
10779
+ // src/fetch-map/pattern-atlas-runtime.ts
10757
10780
  var CELL_URLS = {
10758
10781
  "hlines-large": hlines_large_default,
10759
10782
  "hlines-medium": hlines_medium_default,
@@ -10778,43 +10801,6 @@ var CELL_URLS = {
10778
10801
  "checker-small": checker_small_default,
10779
10802
  solid: solid_default
10780
10803
  };
10781
- function debugGlobals() {
10782
- return globalThis;
10783
- }
10784
- function getPatternCellSize() {
10785
- const cell = debugGlobals().__CARTO_PATTERN_CELL_SIZE__;
10786
- return typeof cell === "number" && cell > 0 ? cell : DEFAULT_CELL_SIZE;
10787
- }
10788
- function getPatternTextureParameters() {
10789
- const params = debugGlobals().__CARTO_PATTERN_TEXTURE_PARAMS__;
10790
- return params && typeof params === "object" ? params : void 0;
10791
- }
10792
- function getPatternScaleAdjustment(cell = getPatternCellSize()) {
10793
- return SOURCE_TILE_SIZE / cell;
10794
- }
10795
- function getPatternCellPadding(cell) {
10796
- return Math.max(2, Math.round(cell / 16));
10797
- }
10798
- function getPatternAtlasMapping(cell = getPatternCellSize()) {
10799
- const pad = getPatternCellPadding(cell);
10800
- const pitch = cell + 2 * pad;
10801
- const mapping = {};
10802
- const frame = (col, row) => ({
10803
- x: pad + col * pitch,
10804
- y: pad + row * pitch,
10805
- width: cell,
10806
- height: cell,
10807
- mask: true
10808
- });
10809
- PATTERN_ROWS.forEach((pattern, row) => {
10810
- DENSITY_COLUMNS.forEach((density, col) => {
10811
- mapping[`${pattern}-${density}`] = frame(col, row);
10812
- });
10813
- });
10814
- mapping.none = frame(0, PATTERN_ROWS.length);
10815
- mapping.solid = frame(1, PATTERN_ROWS.length);
10816
- return mapping;
10817
- }
10818
10804
  function createCanvas(w, h) {
10819
10805
  if (typeof OffscreenCanvas !== "undefined") return new OffscreenCanvas(w, h);
10820
10806
  if (typeof document !== "undefined") {
@@ -10839,22 +10825,13 @@ async function loadImage(dataUrl) {
10839
10825
  img.src = dataUrl;
10840
10826
  });
10841
10827
  }
10842
- var atlasPromises = /* @__PURE__ */ new Map();
10843
- function getPatternAtlas(cell = getPatternCellSize()) {
10844
- let promise = atlasPromises.get(cell);
10845
- if (!promise) {
10846
- promise = build(cell);
10847
- promise.catch(() => {
10848
- });
10849
- atlasPromises.set(cell, promise);
10850
- }
10851
- return promise;
10828
+ var atlasPromise;
10829
+ function assemblePatternAtlas() {
10830
+ if (!atlasPromise) atlasPromise = build();
10831
+ return atlasPromise;
10852
10832
  }
10853
- async function build(cell) {
10854
- const mapping = getPatternAtlasMapping(cell);
10855
- const pad = getPatternCellPadding(cell);
10856
- const pitch = cell + 2 * pad;
10857
- const canvas = createCanvas(pitch * 3, pitch * (PATTERN_ROWS.length + 1));
10833
+ async function build() {
10834
+ const canvas = createCanvas(ATLAS_W, ATLAS_H);
10858
10835
  const ctx = canvas.getContext("2d");
10859
10836
  if (!ctx)
10860
10837
  throw new Error(
@@ -10866,27 +10843,21 @@ async function build(cell) {
10866
10843
  images[key] = await loadImage(url);
10867
10844
  })
10868
10845
  );
10869
- for (const [key, frame] of Object.entries(mapping)) {
10846
+ for (const [key, frame] of Object.entries(PATTERN_ATLAS_MAPPING)) {
10870
10847
  const img = images[key];
10871
- if (!img) continue;
10872
- ctx.imageSmoothingEnabled = /^(diag-|cross-hatch)/.test(key);
10873
- if ("imageSmoothingQuality" in ctx) ctx.imageSmoothingQuality = "high";
10874
- ctx.save();
10875
- ctx.beginPath();
10876
- ctx.rect(frame.x - pad, frame.y - pad, cell + 2 * pad, cell + 2 * pad);
10877
- ctx.clip();
10878
- for (const dx of [-cell, 0, cell]) {
10879
- for (const dy of [-cell, 0, cell]) {
10880
- ctx.drawImage(img, frame.x + dx, frame.y + dy, cell, cell);
10881
- }
10882
- }
10883
- ctx.restore();
10848
+ if (img) ctx.drawImage(img, frame.x, frame.y, CELL, CELL);
10884
10849
  }
10885
10850
  if (typeof createImageBitmap !== "undefined")
10886
10851
  return createImageBitmap(canvas);
10887
10852
  return canvas;
10888
10853
  }
10889
10854
 
10855
+ // src/fetch-map/pattern-atlas.ts
10856
+ function getPatternAtlas() {
10857
+ const runtime = globalThis.__CARTO_RUNTIME_ATLAS__ === true;
10858
+ return runtime ? assemblePatternAtlas() : BAKED_ATLAS_URL;
10859
+ }
10860
+
10890
10861
  // src/fetch-map/parse-map.ts
10891
10862
  function getLayerDescriptor({
10892
10863
  mapConfig,
@@ -11315,13 +11286,9 @@ function createChannelProps(id, layerType, config2, visualChannels, data, datase
11315
11286
  result.fillPatternEnabled = Boolean(visConfig.fillPatternEnabled);
11316
11287
  if (visConfig.filled && visConfig.fillPatternEnabled) {
11317
11288
  result.fillPatternAtlas = getPatternAtlas();
11318
- result.fillPatternMapping = getPatternAtlasMapping();
11289
+ result.fillPatternMapping = PATTERN_ATLAS_MAPPING;
11319
11290
  result.fillPatternMask = true;
11320
- const textureParameters = getPatternTextureParameters();
11321
- if (textureParameters) {
11322
- result.textureParameters = textureParameters;
11323
- }
11324
- result.getFillPatternScale = (visConfig.fillPatternSize ?? 1) * getPatternScaleAdjustment();
11291
+ result.getFillPatternScale = visConfig.fillPatternSize ?? 1;
11325
11292
  result.fillPattern = visConfig.fillPattern;
11326
11293
  const { fillPatternField, fillPatternScale } = visualChannels;
11327
11294
  const { fillPatternRange, fillPatternDensity } = visConfig;