@carto/api-client 0.5.32-alpha.307c0b4.122 → 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.
Files changed (35) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/build/api-client.cjs +245 -0
  3. package/build/api-client.cjs.map +1 -1
  4. package/build/api-client.d.cts +21 -2
  5. package/build/api-client.d.ts +21 -2
  6. package/build/api-client.js +239 -0
  7. package/build/api-client.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/fetch-map/layer-map.ts +28 -0
  10. package/src/fetch-map/parse-map.ts +56 -1
  11. package/src/fetch-map/pattern-atlas.ts +215 -0
  12. package/src/fetch-map/patterns/checker-large.png +0 -0
  13. package/src/fetch-map/patterns/checker-medium.png +0 -0
  14. package/src/fetch-map/patterns/checker-small.png +0 -0
  15. package/src/fetch-map/patterns/cross-hatch-large.png +0 -0
  16. package/src/fetch-map/patterns/cross-hatch-medium.png +0 -0
  17. package/src/fetch-map/patterns/cross-hatch-small.png +0 -0
  18. package/src/fetch-map/patterns/diag-left-large.png +0 -0
  19. package/src/fetch-map/patterns/diag-left-medium.png +0 -0
  20. package/src/fetch-map/patterns/diag-left-small.png +0 -0
  21. package/src/fetch-map/patterns/diag-right-large.png +0 -0
  22. package/src/fetch-map/patterns/diag-right-medium.png +0 -0
  23. package/src/fetch-map/patterns/diag-right-small.png +0 -0
  24. package/src/fetch-map/patterns/dots-large.png +0 -0
  25. package/src/fetch-map/patterns/dots-medium.png +0 -0
  26. package/src/fetch-map/patterns/dots-small.png +0 -0
  27. package/src/fetch-map/patterns/hlines-large.png +0 -0
  28. package/src/fetch-map/patterns/hlines-medium.png +0 -0
  29. package/src/fetch-map/patterns/hlines-small.png +0 -0
  30. package/src/fetch-map/patterns/solid.png +0 -0
  31. package/src/fetch-map/patterns/vlines-large.png +0 -0
  32. package/src/fetch-map/patterns/vlines-medium.png +0 -0
  33. package/src/fetch-map/patterns/vlines-small.png +0 -0
  34. package/src/fetch-map/types.ts +25 -0
  35. package/src/global.d.ts +10 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +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
7
 
7
8
  ### 0.5.31
8
9
 
@@ -172,6 +172,7 @@ __export(src_exports, {
172
172
  getColumnNameFromGeoColumn: () => getColumnNameFromGeoColumn,
173
173
  getDataFilterExtensionProps: () => getDataFilterExtensionProps,
174
174
  getDefaultAggregationExpColumnAliasForLayerType: () => getDefaultAggregationExpColumnAliasForLayerType,
175
+ getFillPatternAccessor: () => getFillPatternAccessor,
175
176
  getFilter: () => getFilter,
176
177
  getIconUrlAccessor: () => getIconUrlAccessor,
177
178
  getLayerDescriptor: () => getLayerDescriptor,
@@ -10164,6 +10165,21 @@ function getLineStyleAccessor(field, range, data) {
10164
10165
  range: range.dashArrayMap.map(({ dashArray }) => dashArray)
10165
10166
  };
10166
10167
  }
10168
+ function getFillPatternAccessor(field, range, density, data) {
10169
+ const d = density ?? "medium";
10170
+ const toKey = (pattern) => pattern === "solid" || pattern === "none" ? pattern : `${pattern}-${d}`;
10171
+ const fallback = toKey(range.othersPattern ?? "none");
10172
+ const mapping = {};
10173
+ for (const { value, pattern } of range.patternMap) {
10174
+ mapping[value] = toKey(pattern);
10175
+ }
10176
+ const accessor = (properties) => mapping[properties[field.name]] ?? fallback;
10177
+ return {
10178
+ accessor: normalizeAccessor(accessor, data),
10179
+ domain: range.patternMap.map(({ value }) => value),
10180
+ range: range.patternMap.map(({ pattern }) => pattern)
10181
+ };
10182
+ }
10167
10183
  function getMaxMarkerSize(visConfig, visualChannels) {
10168
10184
  const { radiusRange, radius, sizeMaxPixels } = visConfig;
10169
10185
  const { radiusField, sizeField } = visualChannels;
@@ -10655,6 +10671,201 @@ init_cjs_shims();
10655
10671
 
10656
10672
  // src/fetch-map/parse-map.ts
10657
10673
  init_cjs_shims();
10674
+
10675
+ // src/fetch-map/pattern-atlas.ts
10676
+ init_cjs_shims();
10677
+
10678
+ // src/fetch-map/patterns/hlines-large.png
10679
+ var hlines_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABBSURBVHic7dixAQAgDMOwwP8/wxfNUOkCz04AYK2T5LUjmm47AAAAAOb5Ae0AAAAAmOcHtAMAAABgnh/QDgAAaj69GwQJx6ek3QAAAABJRU5ErkJggg==";
10680
+
10681
+ // src/fetch-map/patterns/hlines-medium.png
10682
+ var hlines_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABOSURBVHic7daxAQAgDMOwwv8/wxkeKl3gLTkz8wYAVjrbZ/DWAQDQ8QPqAADo+AF1AAB0/IA6AAA6fkAdAAAdP6AOAICOH1AHAEBn/Q/4F6kJD4qx2asAAAAASUVORK5CYII=";
10683
+
10684
+ // src/fetch-map/patterns/hlines-small.png
10685
+ var hlines_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABrSURBVHic7dSxAQAgDMOwwv8/wxkeKl3gJTkz8wbWOtsncOsAaPmAOgBaPqAOgJYPqAOg5QPqAGj5gDoAWj6gDoCWD6gDoOUD6gBo+YA6AFo+oA6Alg+oA6DlA+oAaPmAOgBaPqAOgNb6D/gRbhEfmYiEGgAAAABJRU5ErkJggg==";
10686
+
10687
+ // src/fetch-map/patterns/vlines-large.png
10688
+ var vlines_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACkSURBVHic7dAxCsAwEMRAk///2W5Sp7CLMUGCK28RGuOb+d4u1/8/B+O/oABaQFMALaApgBbQFEALaAqgBTQF0AKaAmgBTQG0gKYAWkBTAC2gKYAW0BRAC2gKoAU0BdACmgJoAU0BtICmAFpAUwAtoCmAFtAUQAtoCqAFNAXQApoCaAFNAbSApgBaQFMALaApgBbQFEALaAqgBTQF0AKaAmgBzQIgxAh3o/Zl8AAAAABJRU5ErkJggg==";
10689
+
10690
+ // src/fetch-map/patterns/vlines-medium.png
10691
+ var vlines_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACfSURBVHic7dCxDYBQAITQi/vv/J1A25cotDSEbTt75nzdXy/yFzRAB2gaoAM0DdABmgboAE0DdICmATpA0wAdoGmADtA0QAdoGqADNA3QAZoG6ABNA3SApgE6QNMAHaBpgA7QNEAHaBqgAzQN0AGaBugATQN0gKYBOkDTAB2gaYAO0DRAB2gaoAM0DdABmgboAE0DdICmATpA0wAdoLkBMJgQb6A8qDAAAAAASUVORK5CYII=";
10692
+
10693
+ // src/fetch-map/patterns/vlines-small.png
10694
+ var vlines_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACcSURBVHic7dCxDcAwAMMwo///nIw9gUPEzZuhbTv7ndf2t8cVQB/QCqAPaAXQB7QC6ANaAfQBrQD6gFYAfUArgD6gFUAf0AqgD2gF0Ae0AugDWgH0Aa0A+oBWAH1AK4A+oBVAH9AKoA9oBdAHtALoA1oB9AGtAPqAVgB9QCuAPqAVQB/QCqAPaAXQB7QC6ANaAfQBrQD6gFYAfUC7UEAgXxU1dpkAAAAASUVORK5CYII=";
10695
+
10696
+ // src/fetch-map/patterns/diag-left-large.png
10697
+ var diag_left_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACtSURBVHic7dkxCsMwEETRuf/lfKSkmBCiflUseR/cDuYhN3KSvD7PVM+FzfxsPsOb3+F/RTiGIUCAACEQzmEIECBACIRzGAIECBAC4RyGAGEpwvQd2zaE8eOwDeHKN7EJIYHQIEBoECA0CBAaBAgNAoQGAUKDAKFBgNAgbEWYltiGcOU4bEJY9QfmBkICoUGA0CBAaBAgNAgQGgQIDQKEBgFCgwChrUWYfOF1CG/KcyXf7pwUyQAAAABJRU5ErkJggg==";
10698
+
10699
+ // src/fetch-map/patterns/diag-left-medium.png
10700
+ var diag_left_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAD+SURBVHic7dqxDYAwDADB7L9cRoIGaiQk81cQKZ3l+wG81lrH9Z/ePbcf5vaLnaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMRtU9EjPtEROgTEaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMRn/hEROgTEaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMRtU9EjPtEROgTEaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMRtU9EjPtEROgTEaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMR/33Afx8w7xMRpU9E1D4RUftERO0TEbVPRNQ+EVH7RETtExHjPhFR+SdUtUu99aAoTAAAAABJRU5ErkJggg==";
10701
+
10702
+ // src/fetch-map/patterns/diag-left-small.png
10703
+ var diag_left_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAADqSURBVHic7dgxCsMwAARB/f9zflLS2JDC/U7gDG4EA4s63TnnfO7/+a6Xs/Nzdr2c/bMnIkpPRNSeiMg8ERF6IqL0RETpiYjaExG1JyIST0SEnogoPRFReiKi9kRE5omI0BMRpSciSk9E1J6IyDwREXoiYnvAXoG7hNwTEYknIkJPRJSeiCg9EVF7ImJ7wPaAxhMRpSciak9EZJ6ICD0RsT1gr8BdQu6JiMQTEaEnIkpPRJSeiKg9EbE9YHtA44mI0hMRtSciMk9EhJ6I2B6wV+AuIfdEROKJiNATEaUnIkpPRNSeiNgeUPgvaSqXeT0fItoAAAAASUVORK5CYII=";
10704
+
10705
+ // src/fetch-map/patterns/diag-right-large.png
10706
+ var diag_right_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAClSURBVHic7djBCQMgFAXB339zlmQuOaSAFSLOFvBwEC/OzOzpWt+9cnN+NteBzawb8dlZ4eHb4OH7TfgiePg2ePh+E74IHr4NHr7fhK9HT2z+O37N4/jafh3+yFOCjzfho+Dhw+Dh+034KHj4MHj4fhM+Ch4+DP5V/DyO3/M4/shTugmfXT48fBc8fBs8fDwIHwUP3wYPHw/CR8HDt8HH33hP4/cHynMl31YK/QUAAAAASUVORK5CYII=";
10707
+
10708
+ // src/fetch-map/patterns/diag-right-medium.png
10709
+ var diag_right_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAADKSURBVHic7doxCsMwEAXRf//L6UhKkyJVVmkyRn8M6pYdHhg3VpLszM9+nzXMrY/Z0510H43T+HFWvHggTvfFiwfidF98Kz7l+J1y/Dh3O/5rX7x4IE73xYsH4nS/Gp9y/Eo5/mTf1fhxp3jxQJzuixcPxOm++FZ8yvE75fif3pAb8cffB/H/jtN98eKBON0XLx6IP6Bfjd8px49zt+P9Y/TION0XLx6I033xrfiU470fcLDvavy4U7x4IE73xYsH4nRffCs+5fj9AlS1S72cv9TCAAAAAElFTkSuQmCC";
10710
+
10711
+ // src/fetch-map/patterns/diag-right-small.png
10712
+ var diag_right_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAADbSURBVHic7dgxCsNAEMXQuf/lfCSnCdiFqx01AqXLwgP90jMzc8/zu/7/32/zers+3uxeHY95dXzjd14dT3h1POHV8ahXxze+8cdeHU94dTzh1fGYV8c3fufV8YRXxxNeHY95dXzjd14d3z0A8Op41KvjG9/47gGnXh1PeHV8n8SN33t1POHV8YRXx2NeHd/4nVfHdw8AvDoe9er4xje+e8CpV8cTXh3fJ3Hj914dT3h1POHV8ZhXxzd+59Xx3QMAr45HvTq+8Y3vHnDq1fGEV8f3Sdz4vVfHr/0PaSqXeV716iAAAAAASUVORK5CYII=";
10713
+
10714
+ // src/fetch-map/patterns/cross-hatch-large.png
10715
+ var cross_hatch_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAALoSURBVHic1ZpdUiwxCIUpV3D3/zJL0qXcHeiLsVokCT8fPRmq5kErnOGcTgMKIiKf3x/CHhc8ClMU5juMiQX8UEFSIliYVRH+cK6KcCX/7/t3hAgW4aoIU65ZESzywyoirIhmRdhyjIqwIj8sI4KHYFQENzfvQQ/5YRERIsS8Z8O3e+cQIT/MI0Lmau980vlt5pghP2wlQiW5zXzLFU4DVMgPs0QgypvGwPqRT+OTJT/s3cAkGhwrVsRI8sPIxuZqOHnd3lLAd2CWhdXvPBXwNUCqbdaxlUWYJbyqCFZgVRFmMaVF2GX7rAirgLIi7GIJi+AtdVERPIFERfDG4BYhWufxAAIi4A8g2+TgV9AhAv4KVjs8PAktRMCTMNHeWoERtViL0FGGEfIaGGtEJm0zYT9YVKAamAq0C/NxFYASQT8pIuAOzIfGIkTQGETAGoNom6c5ryLCzLciwsy3IsI24WdE2PlkRNj5ZERwV7uICN6zERG8ZyMihEu9h1j0tniIRW+LR4R0n7MimM0XK4LZfLESodzkWUSrFcMiWq0YlghUh/uLMNUzWLW9Wt+v8WHkrYDp8TTV3IjRNm/Jv0FffIp9qJ//E6Cv8gq07Ce8ShJs2U94lTLYsp/wKo1Qy35ChJj3bISY92zLfkLmau98Mld759Oyn1BJbjPfSnKb+bbsJxDlTWMQ5U1jtOwnkB0eXdtnmOR+AkZ+GEnewqT3E9Bg9ZMihO3eTzh3Pn/TfoLIifP5m/cTRE6azz9pP0HkhPn8k/cTRJ45nz9kP0HkGfP5w/YTRO6czx+6nyBy03z+5P0EkRvm8wT5GSbW4dLkxfgfHmV4rFpVAthqb4/8Y0wDdc3nCRE0RlmEGUDXfL4iwsw3LcLOsWs+nxFh5xMWwevQNZ+PiOA96xYhqlbXfN5DLHpbttyy70vXfH5FMJsvphyrGbNrPm8RrVaMP1ypmtk1n78SpnqGX5zJrik8n3ca3TD9YH4B52HxPNYfWfcAAAAASUVORK5CYII=";
10716
+
10717
+ // src/fetch-map/patterns/cross-hatch-medium.png
10718
+ var cross_hatch_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAKASURBVHic7ZpNbgMxCIWtnqD33+RI7VF6g2STSg4/D2zTAaIiZVEb8zEeG/WhGWOM+/OH7D79voDfjfh6Y2byzQUzGCVxU3ytB8rmywMCHI3N8M/nmJaExIrk/9oKX5xAuz3PSQ+vJYHedgSf2gqfOVj3jfrSh5eSsO7mCV+zFT4LjIzeuYiY6XxvYaLVFiXhjZnOp4G0BdKd15KgMVB1TuV7A6CC530AKYlU/s4R0gqe97hJhSmLv1xENLjki8z6x+YqvuksFRwP3Howb8y/5sPCRO8cSoLOoSTmuWz+0DZBKzhSElpiUhLSWDafJYGqLQVaR3MGoreSzWdJWAXHey+pL7qXl/M/iOM3+fvHCBxtqfyuej6EX0nPX86vpOcz+GbBuUrPZ/FNRxrYMq9vlX6CmYS32Kz4VuonvCxsq+cP+UsByun5ID5bgI5QJT0fyWcLkFXR86F8765Kvpq16SdQB5TEPJet50P42oSUhDSWreeP+NbRmIHorWTr+V2+q+B472W7fgLtB5xay35C1BHs2k+Am+AtQt37CeIE2u15LlvPR/GZg1VwqO879BNYYGRV9Hwo31uYKun5MD4NpC2oqOeP+d4AlfX8Nn/nCFXV8zv85SJSWs9v8E3nNnp+k/8eev6AP7RNaKPnA/gsiU56PorPkrAKjvdeUt9S/YT/7wMm66rnQ/in39ufFqEy3wdQ66Tnd/lmEemk53f4piMNbJnXt0o/wUzCW2xWfCv1E14WttXzh/ylAOX0fBCfLUBHqJKej+SzBciq6PlQvndXJV/N2vQTqANKYp7L1vMhfG1CSkIay9bzR3zraMxA9Fay9fwu31VwvPeyXT/hAZMuKfjIf3HUAAAAAElFTkSuQmCC";
10719
+
10720
+ // src/fetch-map/patterns/cross-hatch-small.png
10721
+ var cross_hatch_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAHqSURBVHic7ZhRagMxDERFT5D7/+RI26PkBu5PFipZirqmE41aB/wRR89LhoG3WERkPJeIyP3b93NPzN7h7HXmp4POoZ/sRasTPyV0e+4dBvZmGXm5ytvaDGcw2jv+AK+S9wa86niHVfPRH8z45YrdzYO68uoQm1S0vNp15aeEXmnGPuTWnJcPufb5NN8fzXmRxQp18nzGq9qIGfT2qj3/2+8J6gcvqWpPo/k2nke9J4QVYfE0nLepDDJPo3mVBpun4bx9D2Dz9Ft4rxZMnkbzUwjVnn47z+5pNK+S8wa6eH6Vv1wxrzmdeXWITSpanTyf8VNCVJ5G8//9PuAhixXq5PmMV7URM+jttfN8wqthL6lqT+/7ADAf1obF03DepjLIPI3mVRp0nkbz+z4gqAWTp9H8FAKbp+E8u6fRvErOG6j29L4PAPPqEJtUtDp5PuOnhKg8jeb3fcBihTp5PuNVbcQMenvtPJ/wathLqtrT+z4AzIe1YfE0nLepDDJPo3mVBp2n0fy+DwhqweRpND+FcH5YPA3n2T2N5tOBak/v+wAwrw6xSUWrk+czfkqIytNoft8HLFaok+czXtVGzOCrvTaeT3g17CVV7Wma+4DoAeyez/iwNiyehvM2lUHmaTSv0rBDXkitPJ/xX9QhcjSKhBtGAAAAAElFTkSuQmCC";
10722
+
10723
+ // src/fetch-map/patterns/dots-large.png
10724
+ var dots_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABJSURBVHic7dixEQAgDAMxH/vvDDskBReQ+h/ATpKduv1ADwAAwJduz9Gr/WrEAAAAMNjoPe8PAAAAgJLRe94fAAAAACWj93y3PwvzJ98DYTY6AAAAAElFTkSuQmCC";
10725
+
10726
+ // src/fetch-map/patterns/dots-medium.png
10727
+ var dots_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABdSURBVHic7daxDcBADAMxI/vv/Jkg6YQXYLLVAKeZmTPfzoIdgNVuZ+jq/vyMALBAdaf9AACIqu60HwAAUdWd9gMAIKq6034AAERVd9oPAICo6k77AQAQVd3p9P4CKgaPf9S3g48AAAAASUVORK5CYII=";
10728
+
10729
+ // src/fetch-map/patterns/dots-small.png
10730
+ var dots_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAB8SURBVHic7dSxDQAxDAMx4/ffOSl/A0WAyc69TzMzZ35n4c16r1/w6f0NrFfVpA2AuKombQDEVTVpAyCuqkkbAHFVTdoAiKtq0gZAXFWTNgDiqpq0ARBX1aQNgLiqJm0AxFU1aQMgrqpJGwBxVU3aAIiratIGQFxVk+n7ApyMHh3vKZDHAAAAAElFTkSuQmCC";
10731
+
10732
+ // src/fetch-map/patterns/checker-large.png
10733
+ var checker_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAC7SURBVHic7dhRCsJQEMXQV/e/57oD56scHZPfciGEFnGuc859PnMNz396/xrG6ymAFtBM39fR3+jT+79/AwqgBTQF0AKaAmgBzfXtv9P9F3iYAmgBTQG0gKYAWkDTPWAYr6cAWkBTAC2gKYAW0HQPGMbrKYAW0BRAC2gKoAU03QOG8XoKoAU0BdACmgJoAU33gGG8ngJoAU0BtICmAFpA0z1gGK+nAFpAUwAtoCmAFtB0DxjG6ymAFtC8AfltJHRjA+VQAAAAAElFTkSuQmCC";
10734
+
10735
+ // src/fetch-map/patterns/checker-medium.png
10736
+ var checker_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACpSURBVHic7dYxDoNAAAPBvfz/z6EOD2AjvNOhayzDCR/gy69ze371+Ydx97aw38jT5/NfQAXYAWzn3+5kf4GHVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGXajSiGiQ1/fcAAAAAElFTkSuQmCC";
10737
+
10738
+ // src/fetch-map/patterns/checker-small.png
10739
+ var checker_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACgSURBVHic7dRBCoNQFEPR1P3vuZ1UEBcQAv8ccPB0am6SfP/P7aj78/rwfHfEfYWtX7J9H/8HaEDY2qQGlGlA2NqkBpRpQNjapAaUaUDY2qQGlGlA2NqkBpRpQNjapAaUaUDY2qQGlGlA2NqkBpRpQNjapAaUaUDY2qQGlGlA2NqkBpRpQNjapAaUaUDY2qQGlGlA2NqkBpRpQNjaZPv+AQpgHkxA3R9BAAAAAElFTkSuQmCC";
10740
+
10741
+ // src/fetch-map/patterns/solid.png
10742
+ var solid_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACWSURBVHic7dBBEcAwAMOwrPw5dzD0qIXA52/b3cOODtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QPsBULQBfwAqZPkAAAAASUVORK5CYII=";
10743
+
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"];
10756
+ var CELL_URLS = {
10757
+ "hlines-large": hlines_large_default,
10758
+ "hlines-medium": hlines_medium_default,
10759
+ "hlines-small": hlines_small_default,
10760
+ "vlines-large": vlines_large_default,
10761
+ "vlines-medium": vlines_medium_default,
10762
+ "vlines-small": vlines_small_default,
10763
+ "diag-left-large": diag_left_large_default,
10764
+ "diag-left-medium": diag_left_medium_default,
10765
+ "diag-left-small": diag_left_small_default,
10766
+ "diag-right-large": diag_right_large_default,
10767
+ "diag-right-medium": diag_right_medium_default,
10768
+ "diag-right-small": diag_right_small_default,
10769
+ "cross-hatch-large": cross_hatch_large_default,
10770
+ "cross-hatch-medium": cross_hatch_medium_default,
10771
+ "cross-hatch-small": cross_hatch_small_default,
10772
+ "dots-large": dots_large_default,
10773
+ "dots-medium": dots_medium_default,
10774
+ "dots-small": dots_small_default,
10775
+ "checker-large": checker_large_default,
10776
+ "checker-medium": checker_medium_default,
10777
+ "checker-small": checker_small_default,
10778
+ solid: solid_default
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
+ }
10809
+ function createCanvas(w, h) {
10810
+ if (typeof OffscreenCanvas !== "undefined") return new OffscreenCanvas(w, h);
10811
+ if (typeof document !== "undefined") {
10812
+ const c = document.createElement("canvas");
10813
+ c.width = w;
10814
+ c.height = h;
10815
+ return c;
10816
+ }
10817
+ throw new Error(
10818
+ "carto-api-client: no Canvas available to assemble the pattern atlas"
10819
+ );
10820
+ }
10821
+ async function loadImage(dataUrl) {
10822
+ if (typeof createImageBitmap !== "undefined" && typeof fetch !== "undefined") {
10823
+ const blob = await (await fetch(dataUrl)).blob();
10824
+ return createImageBitmap(blob);
10825
+ }
10826
+ return new Promise((resolve, reject) => {
10827
+ const img = new Image();
10828
+ img.onload = () => resolve(img);
10829
+ img.onerror = reject;
10830
+ img.src = dataUrl;
10831
+ });
10832
+ }
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(() => {
10839
+ });
10840
+ atlasPromises.set(cell, promise);
10841
+ }
10842
+ return promise;
10843
+ }
10844
+ async function build(cell) {
10845
+ const mapping = getPatternAtlasMapping(cell);
10846
+ const canvas = createCanvas(cell * 3, cell * (PATTERN_ROWS.length + 1));
10847
+ const ctx = canvas.getContext("2d");
10848
+ if (!ctx)
10849
+ throw new Error(
10850
+ "carto-api-client: 2D context unavailable for pattern atlas"
10851
+ );
10852
+ const images = {};
10853
+ await Promise.all(
10854
+ Object.entries(CELL_URLS).map(async ([key, url]) => {
10855
+ images[key] = await loadImage(url);
10856
+ })
10857
+ );
10858
+ ctx.imageSmoothingEnabled = false;
10859
+ for (const [key, frame] of Object.entries(mapping)) {
10860
+ const img = images[key];
10861
+ if (img) ctx.drawImage(img, frame.x, frame.y, cell, cell);
10862
+ }
10863
+ if (typeof createImageBitmap !== "undefined")
10864
+ return createImageBitmap(canvas);
10865
+ return canvas;
10866
+ }
10867
+
10868
+ // src/fetch-map/parse-map.ts
10658
10869
  function getLayerDescriptor({
10659
10870
  mapConfig,
10660
10871
  layer,
@@ -11078,6 +11289,39 @@ function createChannelProps(id, layerType, config2, visualChannels, data, datase
11078
11289
  }
11079
11290
  }
11080
11291
  }
11292
+ {
11293
+ result.fillPatternEnabled = Boolean(visConfig.fillPatternEnabled);
11294
+ if (visConfig.filled && visConfig.fillPatternEnabled) {
11295
+ result.fillPatternAtlas = getPatternAtlas();
11296
+ result.fillPatternMapping = getPatternAtlasMapping();
11297
+ result.fillPatternMask = true;
11298
+ const textureParameters = getPatternTextureParameters();
11299
+ if (textureParameters) {
11300
+ result.textureParameters = textureParameters;
11301
+ }
11302
+ result.getFillPatternScale = visConfig.fillPatternSize ?? 1;
11303
+ result.fillPattern = visConfig.fillPattern;
11304
+ const { fillPatternField, fillPatternScale } = visualChannels;
11305
+ const { fillPatternRange, fillPatternDensity } = visConfig;
11306
+ if (fillPatternField && fillPatternScale && fillPatternRange) {
11307
+ const { accessor, ...scaleProps } = getFillPatternAccessor(
11308
+ fillPatternField,
11309
+ fillPatternRange,
11310
+ fillPatternDensity,
11311
+ data
11312
+ );
11313
+ result.getFillPattern = accessor;
11314
+ scales.fillPattern = updateTriggers.getFillPattern = {
11315
+ field: fillPatternField,
11316
+ type: fillPatternScale,
11317
+ ...scaleProps
11318
+ };
11319
+ } else {
11320
+ const key = `${visConfig.fillPattern}-${fillPatternDensity ?? "medium"}`;
11321
+ result.getFillPattern = () => key;
11322
+ }
11323
+ }
11324
+ }
11081
11325
  {
11082
11326
  const { heightField, heightScale } = visualChannels;
11083
11327
  const { enable3d, heightRange } = visConfig;
@@ -11988,6 +12232,7 @@ function hashBuckets(initialCount) {
11988
12232
  getColumnNameFromGeoColumn,
11989
12233
  getDataFilterExtensionProps,
11990
12234
  getDefaultAggregationExpColumnAliasForLayerType,
12235
+ getFillPatternAccessor,
11991
12236
  getFilter,
11992
12237
  getIconUrlAccessor,
11993
12238
  getLayerDescriptor,