@loaders.gl/images 3.3.0-alpha.1 → 3.3.0-alpha.11

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 (85) hide show
  1. package/dist/dist.min.js.map +1 -1
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/image-loader.js +1 -5
  5. package/dist/es5/image-loader.js.map +1 -1
  6. package/dist/es5/image-writer.js +0 -2
  7. package/dist/es5/image-writer.js.map +1 -1
  8. package/dist/es5/index.js +14 -21
  9. package/dist/es5/index.js.map +1 -1
  10. package/dist/es5/lib/category-api/binary-image-api.js +3 -13
  11. package/dist/es5/lib/category-api/binary-image-api.js.map +1 -1
  12. package/dist/es5/lib/category-api/image-format.js +1 -7
  13. package/dist/es5/lib/category-api/image-format.js.map +1 -1
  14. package/dist/es5/lib/category-api/image-type.js +1 -9
  15. package/dist/es5/lib/category-api/image-type.js.map +1 -1
  16. package/dist/es5/lib/category-api/parsed-image-api.js +3 -19
  17. package/dist/es5/lib/category-api/parsed-image-api.js.map +1 -1
  18. package/dist/es5/lib/encoders/encode-image.js +1 -21
  19. package/dist/es5/lib/encoders/encode-image.js.map +1 -1
  20. package/dist/es5/lib/parsers/parse-image.js +0 -24
  21. package/dist/es5/lib/parsers/parse-image.js.map +1 -1
  22. package/dist/es5/lib/parsers/parse-to-image-bitmap.js +1 -26
  23. package/dist/es5/lib/parsers/parse-to-image-bitmap.js.map +1 -1
  24. package/dist/es5/lib/parsers/parse-to-image.js +0 -19
  25. package/dist/es5/lib/parsers/parse-to-image.js.map +1 -1
  26. package/dist/es5/lib/parsers/parse-to-node-image.js +1 -10
  27. package/dist/es5/lib/parsers/parse-to-node-image.js.map +1 -1
  28. package/dist/es5/lib/parsers/svg-utils.js +3 -9
  29. package/dist/es5/lib/parsers/svg-utils.js.map +1 -1
  30. package/dist/es5/lib/texture-api/async-deep-map.js +3 -32
  31. package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -1
  32. package/dist/es5/lib/texture-api/deep-load.js +0 -14
  33. package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
  34. package/dist/es5/lib/texture-api/generate-url.js +3 -12
  35. package/dist/es5/lib/texture-api/generate-url.js.map +1 -1
  36. package/dist/es5/lib/texture-api/load-image.js +9 -43
  37. package/dist/es5/lib/texture-api/load-image.js.map +1 -1
  38. package/dist/es5/lib/utils/version.js +1 -1
  39. package/dist/es5/lib/utils/version.js.map +1 -1
  40. package/dist/es5/types.js.map +1 -1
  41. package/dist/esm/bundle.js +1 -1
  42. package/dist/esm/bundle.js.map +1 -1
  43. package/dist/esm/image-loader.js +1 -0
  44. package/dist/esm/image-loader.js.map +1 -1
  45. package/dist/esm/image-writer.js +1 -0
  46. package/dist/esm/image-writer.js.map +1 -1
  47. package/dist/esm/index.js +6 -0
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/lib/category-api/binary-image-api.js +4 -11
  50. package/dist/esm/lib/category-api/binary-image-api.js.map +1 -1
  51. package/dist/esm/lib/category-api/image-format.js +3 -5
  52. package/dist/esm/lib/category-api/image-format.js.map +1 -1
  53. package/dist/esm/lib/category-api/image-type.js +2 -6
  54. package/dist/esm/lib/category-api/image-type.js.map +1 -1
  55. package/dist/esm/lib/category-api/parsed-image-api.js +1 -10
  56. package/dist/esm/lib/category-api/parsed-image-api.js.map +1 -1
  57. package/dist/esm/lib/encoders/encode-image.js +9 -7
  58. package/dist/esm/lib/encoders/encode-image.js.map +1 -1
  59. package/dist/esm/lib/parsers/parse-image.js +3 -6
  60. package/dist/esm/lib/parsers/parse-image.js.map +1 -1
  61. package/dist/esm/lib/parsers/parse-to-image-bitmap.js +3 -6
  62. package/dist/esm/lib/parsers/parse-to-image-bitmap.js.map +1 -1
  63. package/dist/esm/lib/parsers/parse-to-image.js +2 -2
  64. package/dist/esm/lib/parsers/parse-to-image.js.map +1 -1
  65. package/dist/esm/lib/parsers/parse-to-node-image.js +3 -0
  66. package/dist/esm/lib/parsers/parse-to-node-image.js.map +1 -1
  67. package/dist/esm/lib/parsers/svg-utils.js +2 -4
  68. package/dist/esm/lib/parsers/svg-utils.js.map +1 -1
  69. package/dist/esm/lib/texture-api/async-deep-map.js +6 -6
  70. package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -1
  71. package/dist/esm/lib/texture-api/deep-load.js.map +1 -1
  72. package/dist/esm/lib/texture-api/generate-url.js +4 -5
  73. package/dist/esm/lib/texture-api/generate-url.js.map +1 -1
  74. package/dist/esm/lib/texture-api/load-image.js +14 -11
  75. package/dist/esm/lib/texture-api/load-image.js.map +1 -1
  76. package/dist/esm/lib/utils/version.js +2 -1
  77. package/dist/esm/lib/utils/version.js.map +1 -1
  78. package/dist/esm/types.js.map +1 -1
  79. package/dist/image-loader.d.ts +1 -1
  80. package/dist/image-loader.d.ts.map +1 -1
  81. package/dist/lib/category-api/binary-image-api.d.ts +1 -1
  82. package/dist/lib/category-api/binary-image-api.d.ts.map +1 -1
  83. package/dist/types.d.ts +3 -3
  84. package/dist/types.d.ts.map +1 -1
  85. package/package.json +6 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/parse-to-image.ts"],"names":["parseToImage","arrayBuffer","options","url","blobOrDataUrl","URL","self","webkitURL","objectUrl","createObjectURL","loadToImage","revokeObjectURL","image","Image","src","decode","Promise","resolve","reject","onload","onerror","err","Error","error"],"mappings":";;;;;;;;;;;;;;AACA;;SAG8BA,Y;;;;;4EAAf,iBACbC,WADa,EAEbC,OAFa,EAGbC,GAHa;AAAA;AAAA;AAAA;AAAA;AAAA;AASPC,YAAAA,aATO,GASS,mCAAoBH,WAApB,EAAiCE,GAAjC,CATT;AAUPE,YAAAA,GAVO,GAUDC,IAAI,CAACD,GAAL,IAAYC,IAAI,CAACC,SAVhB;AAWPC,YAAAA,SAXO,GAWK,OAAOJ,aAAP,KAAyB,QAAzB,IAAqCC,GAAG,CAACI,eAAJ,CAAoBL,aAApB,CAX1C;AAAA;AAAA;AAAA,mBAaEM,WAAW,CAACF,SAAS,IAAIJ,aAAd,EAA6BF,OAA7B,CAbb;;AAAA;AAAA;;AAAA;AAAA;;AAeX,gBAAIM,SAAJ,EAAe;AACbH,cAAAA,GAAG,CAACM,eAAJ,CAAoBH,SAApB;AACD;;AAjBU;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAqBOE,W;;;;;2EAAf,kBAA2BP,GAA3B,EAAgCD,OAAhC;AAAA;AAAA;AAAA;AAAA;AAAA;AACCU,YAAAA,KADD,GACS,IAAIC,KAAJ,EADT;AAELD,YAAAA,KAAK,CAACE,GAAN,GAAYX,GAAZ;;AAFK,kBAWDD,OAAO,CAACU,KAAR,IAAiBV,OAAO,CAACU,KAAR,CAAcG,MAA/B,IAAyCH,KAAK,CAACG,MAX9C;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAYGH,KAAK,CAACG,MAAN,EAZH;;AAAA;AAAA,8CAaIH,KAbJ;;AAAA;AAAA;AAAA,mBAiBQ,IAAII,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AAC5C,kBAAI;AACFN,gBAAAA,KAAK,CAACO,MAAN,GAAe;AAAA,yBAAMF,OAAO,CAACL,KAAD,CAAb;AAAA,iBAAf;;AACAA,gBAAAA,KAAK,CAACQ,OAAN,GAAgB,UAACC,GAAD;AAAA,yBAASH,MAAM,CAAC,IAAII,KAAJ,gCAAkCnB,GAAlC,eAA0CkB,GAA1C,EAAD,CAAf;AAAA,iBAAhB;AACD,eAHD,CAGE,OAAOE,KAAP,EAAc;AACdL,gBAAAA,MAAM,CAACK,KAAD,CAAN;AACD;AACF,aAPY,CAjBR;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport {getBlobOrSVGDataUrl} from './svg-utils';\n\n// Parses html image from array buffer\nexport default async function parseToImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions,\n url?: string\n): Promise<HTMLImageElement> {\n // Note: image parsing requires conversion to Blob (for createObjectURL).\n // Potentially inefficient for not using `response.blob()` (and for File / Blob inputs)...\n // But presumably not worth adding 'blob' flag to loader objects?\n\n const blobOrDataUrl = getBlobOrSVGDataUrl(arrayBuffer, url);\n const URL = self.URL || self.webkitURL;\n const objectUrl = typeof blobOrDataUrl !== 'string' && URL.createObjectURL(blobOrDataUrl);\n try {\n return await loadToImage(objectUrl || blobOrDataUrl, options);\n } finally {\n if (objectUrl) {\n URL.revokeObjectURL(objectUrl);\n }\n }\n}\n\nexport async function loadToImage(url, options): Promise<HTMLImageElement> {\n const image = new Image();\n image.src = url;\n\n // The `image.onload()` callback does not guarantee that the image has been decoded\n // so a main thread \"freeze\" can be incurred when using the image for the first time.\n // `Image.decode()` returns a promise that completes when image is decoded.\n\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode\n // Note: When calling `img.decode()`, we do not need to wait for `img.onload()`\n // Note: `HTMLImageElement.decode()` is not available in Edge and IE11\n if (options.image && options.image.decode && image.decode) {\n await image.decode();\n return image;\n }\n\n // Create a promise that tracks onload/onerror callbacks\n return await new Promise((resolve, reject) => {\n try {\n image.onload = () => resolve(image);\n image.onerror = (err) => reject(new Error(`Could not load image ${url}: ${err}`));\n } catch (error) {\n reject(error);\n }\n });\n}\n"],"file":"parse-to-image.js"}
1
+ {"version":3,"file":"parse-to-image.js","names":["parseToImage","arrayBuffer","options","url","blobOrDataUrl","getBlobOrSVGDataUrl","URL","self","webkitURL","objectUrl","createObjectURL","loadToImage","revokeObjectURL","image","Image","src","decode","Promise","resolve","reject","onload","onerror","err","Error","error"],"sources":["../../../../src/lib/parsers/parse-to-image.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport {getBlobOrSVGDataUrl} from './svg-utils';\n\n// Parses html image from array buffer\nexport default async function parseToImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions,\n url?: string\n): Promise<HTMLImageElement> {\n // Note: image parsing requires conversion to Blob (for createObjectURL).\n // Potentially inefficient for not using `response.blob()` (and for File / Blob inputs)...\n // But presumably not worth adding 'blob' flag to loader objects?\n\n const blobOrDataUrl = getBlobOrSVGDataUrl(arrayBuffer, url);\n const URL = self.URL || self.webkitURL;\n const objectUrl = typeof blobOrDataUrl !== 'string' && URL.createObjectURL(blobOrDataUrl);\n try {\n return await loadToImage(objectUrl || blobOrDataUrl, options);\n } finally {\n if (objectUrl) {\n URL.revokeObjectURL(objectUrl);\n }\n }\n}\n\nexport async function loadToImage(url, options): Promise<HTMLImageElement> {\n const image = new Image();\n image.src = url;\n\n // The `image.onload()` callback does not guarantee that the image has been decoded\n // so a main thread \"freeze\" can be incurred when using the image for the first time.\n // `Image.decode()` returns a promise that completes when image is decoded.\n\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode\n // Note: When calling `img.decode()`, we do not need to wait for `img.onload()`\n // Note: `HTMLImageElement.decode()` is not available in Edge and IE11\n if (options.image && options.image.decode && image.decode) {\n await image.decode();\n return image;\n }\n\n // Create a promise that tracks onload/onerror callbacks\n return await new Promise((resolve, reject) => {\n try {\n image.onload = () => resolve(image);\n image.onerror = (err) => reject(new Error(`Could not load image ${url}: ${err}`));\n } catch (error) {\n reject(error);\n }\n });\n}\n"],"mappings":";;;;;;;;;;AACA;AAAgD,SAGlBA,YAAY;EAAA;AAAA;AAAA;EAAA,0EAA3B,iBACbC,WAAwB,EACxBC,OAA2B,EAC3BC,GAAY;IAAA;IAAA;MAAA;QAAA;UAAA;YAMNC,aAAa,GAAG,IAAAC,6BAAmB,EAACJ,WAAW,EAAEE,GAAG,CAAC;YACrDG,GAAG,GAAGC,IAAI,CAACD,GAAG,IAAIC,IAAI,CAACC,SAAS;YAChCC,SAAS,GAAG,OAAOL,aAAa,KAAK,QAAQ,IAAIE,GAAG,CAACI,eAAe,CAACN,aAAa,CAAC;YAAA;YAAA;YAAA,OAE1EO,WAAW,CAACF,SAAS,IAAIL,aAAa,EAAEF,OAAO,CAAC;UAAA;YAAA;UAAA;YAAA;YAE7D,IAAIO,SAAS,EAAE;cACbH,GAAG,CAACM,eAAe,CAACH,SAAS,CAAC;YAChC;YAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAEJ;EAAA;AAAA;AAAA,SAEqBE,WAAW;EAAA;AAAA;AAAA;EAAA,yEAA1B,kBAA2BR,GAAG,EAAED,OAAO;IAAA;IAAA;MAAA;QAAA;UAAA;YACtCW,KAAK,GAAG,IAAIC,KAAK,EAAE;YACzBD,KAAK,CAACE,GAAG,GAAGZ,GAAG;;YAAC,MASZD,OAAO,CAACW,KAAK,IAAIX,OAAO,CAACW,KAAK,CAACG,MAAM,IAAIH,KAAK,CAACG,MAAM;cAAA;cAAA;YAAA;YAAA;YAAA,OACjDH,KAAK,CAACG,MAAM,EAAE;UAAA;YAAA,kCACbH,KAAK;UAAA;YAAA;YAAA,OAID,IAAII,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;cAC5C,IAAI;gBACFN,KAAK,CAACO,MAAM,GAAG;kBAAA,OAAMF,OAAO,CAACL,KAAK,CAAC;gBAAA;gBACnCA,KAAK,CAACQ,OAAO,GAAG,UAACC,GAAG;kBAAA,OAAKH,MAAM,CAAC,IAAII,KAAK,gCAAyBpB,GAAG,eAAKmB,GAAG,EAAG,CAAC;gBAAA;cACnF,CAAC,CAAC,OAAOE,KAAK,EAAE;gBACdL,MAAM,CAACK,KAAK,CAAC;cACf;YACF,CAAC,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACH;EAAA;AAAA"}
@@ -1,28 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = parseToNodeImage;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _loaderUtils = require("@loaders.gl/loader-utils");
15
-
16
11
  var _binaryImageApi = require("../category-api/binary-image-api");
17
-
18
12
  function parseToNodeImage(_x, _x2) {
19
13
  return _parseToNodeImage.apply(this, arguments);
20
14
  }
21
-
22
15
  function _parseToNodeImage() {
23
16
  _parseToNodeImage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
24
17
  var _ref, mimeType, _parseImageNode;
25
-
26
18
  return _regenerator.default.wrap(function _callee$(_context) {
27
19
  while (1) {
28
20
  switch (_context.prev = _context.next) {
@@ -30,12 +22,11 @@ function _parseToNodeImage() {
30
22
  _ref = (0, _binaryImageApi.getBinaryImageMetadata)(arrayBuffer) || {}, mimeType = _ref.mimeType;
31
23
  _parseImageNode = globalThis._parseImageNode;
32
24
  (0, _loaderUtils.assert)(_parseImageNode);
25
+
33
26
  _context.next = 5;
34
27
  return _parseImageNode(arrayBuffer, mimeType);
35
-
36
28
  case 5:
37
29
  return _context.abrupt("return", _context.sent);
38
-
39
30
  case 6:
40
31
  case "end":
41
32
  return _context.stop();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/parse-to-node-image.ts"],"names":["parseToNodeImage","arrayBuffer","options","mimeType","_parseImageNode","globalThis"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;SAgB8BA,gB;;;;;gFAAf,iBACbC,WADa,EAEbC,OAFa;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,mBAIM,4CAAuBD,WAAvB,KAAuC,EAJ7C,EAINE,QAJM,QAINA,QAJM;AAOPC,YAAAA,eAPO,GAO2BC,UAAU,CAACD,eAPtC;AAQb,qCAAOA,eAAP;AARa;AAAA,mBAWAA,eAAe,CAACH,WAAD,EAAcE,QAAd,CAXf;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport type {ImageDataType} from '../../types';\nimport {assert} from '@loaders.gl/loader-utils';\nimport {getBinaryImageMetadata} from '../category-api/binary-image-api';\n\n// Note: These types should be consistent with loaders.gl/polyfills\n\ntype NDArray = {\n shape: number[];\n data: Uint8Array;\n width: number;\n height: number;\n components: number;\n layers: number[];\n};\n\ntype ParseImageNode = (arrayBuffer: ArrayBuffer, mimeType: string) => Promise<NDArray>;\n\n// Use polyfills if installed to parsed image using get-pixels\nexport default async function parseToNodeImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions\n): Promise<ImageDataType> {\n const {mimeType} = getBinaryImageMetadata(arrayBuffer) || {};\n\n // @ts-ignore\n const _parseImageNode: ParseImageNode = globalThis._parseImageNode;\n assert(_parseImageNode); // '@loaders.gl/polyfills not installed'\n\n // @ts-expect-error TODO should we throw error in this case?\n return await _parseImageNode(arrayBuffer, mimeType);\n}\n"],"file":"parse-to-node-image.js"}
1
+ {"version":3,"file":"parse-to-node-image.js","names":["parseToNodeImage","arrayBuffer","options","getBinaryImageMetadata","mimeType","_parseImageNode","globalThis","assert"],"sources":["../../../../src/lib/parsers/parse-to-node-image.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport type {ImageDataType} from '../../types';\nimport {assert} from '@loaders.gl/loader-utils';\nimport {getBinaryImageMetadata} from '../category-api/binary-image-api';\n\n// Note: These types should be consistent with loaders.gl/polyfills\n\ntype NDArray = {\n shape: number[];\n data: Uint8Array;\n width: number;\n height: number;\n components: number;\n layers: number[];\n};\n\ntype ParseImageNode = (arrayBuffer: ArrayBuffer, mimeType: string) => Promise<NDArray>;\n\n// Use polyfills if installed to parsed image using get-pixels\nexport default async function parseToNodeImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions\n): Promise<ImageDataType> {\n const {mimeType} = getBinaryImageMetadata(arrayBuffer) || {};\n\n // @ts-ignore\n const _parseImageNode: ParseImageNode = globalThis._parseImageNode;\n assert(_parseImageNode); // '@loaders.gl/polyfills not installed'\n\n // @ts-expect-error TODO should we throw error in this case?\n return await _parseImageNode(arrayBuffer, mimeType);\n}\n"],"mappings":";;;;;;;;;AAEA;AACA;AAAwE,SAgB1CA,gBAAgB;EAAA;AAAA;AAAA;EAAA,8EAA/B,iBACbC,WAAwB,EACxBC,OAA2B;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA,OAER,IAAAC,sCAAsB,EAACF,WAAW,CAAC,IAAI,CAAC,CAAC,EAArDG,QAAQ,QAARA,QAAQ;YAGTC,eAA+B,GAAGC,UAAU,CAACD,eAAe;YAClE,IAAAE,mBAAM,EAACF,eAAe,CAAC;;YAAC;YAAA,OAGXA,eAAe,CAACJ,WAAW,EAAEG,QAAQ,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACpD;EAAA;AAAA"}
@@ -3,21 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isSVG = isSVG;
7
- exports.getBlobOrSVGDataUrl = getBlobOrSVGDataUrl;
8
6
  exports.getBlob = getBlob;
7
+ exports.getBlobOrSVGDataUrl = getBlobOrSVGDataUrl;
8
+ exports.isSVG = isSVG;
9
+
9
10
  var SVG_DATA_URL_PATTERN = /^data:image\/svg\+xml/;
10
11
  var SVG_URL_PATTERN = /\.svg((\?|#).*)?$/;
11
-
12
12
  function isSVG(url) {
13
13
  return url && (SVG_DATA_URL_PATTERN.test(url) || SVG_URL_PATTERN.test(url));
14
14
  }
15
-
16
15
  function getBlobOrSVGDataUrl(arrayBuffer, url) {
17
16
  if (isSVG(url)) {
18
17
  var textDecoder = new TextDecoder();
19
18
  var xmlText = textDecoder.decode(arrayBuffer);
20
-
21
19
  try {
22
20
  if (typeof unescape === 'function' && typeof encodeURIComponent === 'function') {
23
21
  xmlText = unescape(encodeURIComponent(xmlText));
@@ -25,19 +23,15 @@ function getBlobOrSVGDataUrl(arrayBuffer, url) {
25
23
  } catch (error) {
26
24
  throw new Error(error.message);
27
25
  }
28
-
29
26
  var src = "data:image/svg+xml;base64,".concat(btoa(xmlText));
30
27
  return src;
31
28
  }
32
-
33
29
  return getBlob(arrayBuffer, url);
34
30
  }
35
-
36
31
  function getBlob(arrayBuffer, url) {
37
32
  if (isSVG(url)) {
38
33
  throw new Error('SVG cannot be parsed directly to imagebitmap');
39
34
  }
40
-
41
35
  return new Blob([new Uint8Array(arrayBuffer)]);
42
36
  }
43
37
  //# sourceMappingURL=svg-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/svg-utils.ts"],"names":["SVG_DATA_URL_PATTERN","SVG_URL_PATTERN","isSVG","url","test","getBlobOrSVGDataUrl","arrayBuffer","textDecoder","TextDecoder","xmlText","decode","unescape","encodeURIComponent","error","Error","message","src","btoa","getBlob","Blob","Uint8Array"],"mappings":";;;;;;;;AAGA,IAAMA,oBAAoB,GAAG,uBAA7B;AACA,IAAMC,eAAe,GAAG,mBAAxB;;AAEO,SAASC,KAAT,CAAeC,GAAf,EAAoB;AACzB,SAAOA,GAAG,KAAKH,oBAAoB,CAACI,IAArB,CAA0BD,GAA1B,KAAkCF,eAAe,CAACG,IAAhB,CAAqBD,GAArB,CAAvC,CAAV;AACD;;AAEM,SAASE,mBAAT,CAA6BC,WAA7B,EAAuDH,GAAvD,EAAoF;AACzF,MAAID,KAAK,CAACC,GAAD,CAAT,EAAgB;AAEd,QAAMI,WAAW,GAAG,IAAIC,WAAJ,EAApB;AACA,QAAIC,OAAO,GAAGF,WAAW,CAACG,MAAZ,CAAmBJ,WAAnB,CAAd;;AAEA,QAAI;AACF,UAAI,OAAOK,QAAP,KAAoB,UAApB,IAAkC,OAAOC,kBAAP,KAA8B,UAApE,EAAgF;AAC9EH,QAAAA,OAAO,GAAGE,QAAQ,CAACC,kBAAkB,CAACH,OAAD,CAAnB,CAAlB;AACD;AACF,KAJD,CAIE,OAAOI,KAAP,EAAc;AACd,YAAM,IAAIC,KAAJ,CAAWD,KAAD,CAAiBE,OAA3B,CAAN;AACD;;AAED,QAAMC,GAAG,uCAAgCC,IAAI,CAACR,OAAD,CAApC,CAAT;AACA,WAAOO,GAAP;AACD;;AACD,SAAOE,OAAO,CAACZ,WAAD,EAAcH,GAAd,CAAd;AACD;;AAEM,SAASe,OAAT,CAAiBZ,WAAjB,EAA2CH,GAA3C,EAA+D;AACpE,MAAID,KAAK,CAACC,GAAD,CAAT,EAAgB;AAGd,UAAM,IAAIW,KAAJ,CAAU,8CAAV,CAAN;AACD;;AAED,SAAO,IAAIK,IAAJ,CAAS,CAAC,IAAIC,UAAJ,CAAed,WAAf,CAAD,CAAT,CAAP;AACD","sourcesContent":["// SVG parsing has limitations, e.g:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=606319\n\nconst SVG_DATA_URL_PATTERN = /^data:image\\/svg\\+xml/;\nconst SVG_URL_PATTERN = /\\.svg((\\?|#).*)?$/;\n\nexport function isSVG(url) {\n return url && (SVG_DATA_URL_PATTERN.test(url) || SVG_URL_PATTERN.test(url));\n}\n\nexport function getBlobOrSVGDataUrl(arrayBuffer: ArrayBuffer, url?: string): Blob | string {\n if (isSVG(url)) {\n // Prepare a properly tagged data URL, and load using normal mechanism\n const textDecoder = new TextDecoder();\n let xmlText = textDecoder.decode(arrayBuffer);\n // TODO Escape in browser to support e.g. Chinese characters\n try {\n if (typeof unescape === 'function' && typeof encodeURIComponent === 'function') {\n xmlText = unescape(encodeURIComponent(xmlText));\n }\n } catch (error) {\n throw new Error((error as Error).message);\n }\n // base64 encoding is safer. utf-8 fails in some browsers\n const src = `data:image/svg+xml;base64,${btoa(xmlText)}`;\n return src;\n }\n return getBlob(arrayBuffer, url);\n}\n\nexport function getBlob(arrayBuffer: ArrayBuffer, url?: string): Blob {\n if (isSVG(url)) {\n // https://bugs.chromium.org/p/chromium/issues/detail?id=606319\n // return new Blob([new Uint8Array(arrayBuffer)], {type: 'image/svg+xml'});\n throw new Error('SVG cannot be parsed directly to imagebitmap');\n }\n // TODO - how to determine mime type? Param? Sniff here?\n return new Blob([new Uint8Array(arrayBuffer)]); // MIME type not needed?\n}\n"],"file":"svg-utils.js"}
1
+ {"version":3,"file":"svg-utils.js","names":["SVG_DATA_URL_PATTERN","SVG_URL_PATTERN","isSVG","url","test","getBlobOrSVGDataUrl","arrayBuffer","textDecoder","TextDecoder","xmlText","decode","unescape","encodeURIComponent","error","Error","message","src","btoa","getBlob","Blob","Uint8Array"],"sources":["../../../../src/lib/parsers/svg-utils.ts"],"sourcesContent":["// SVG parsing has limitations, e.g:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=606319\n\nconst SVG_DATA_URL_PATTERN = /^data:image\\/svg\\+xml/;\nconst SVG_URL_PATTERN = /\\.svg((\\?|#).*)?$/;\n\nexport function isSVG(url) {\n return url && (SVG_DATA_URL_PATTERN.test(url) || SVG_URL_PATTERN.test(url));\n}\n\nexport function getBlobOrSVGDataUrl(arrayBuffer: ArrayBuffer, url?: string): Blob | string {\n if (isSVG(url)) {\n // Prepare a properly tagged data URL, and load using normal mechanism\n const textDecoder = new TextDecoder();\n let xmlText = textDecoder.decode(arrayBuffer);\n // TODO Escape in browser to support e.g. Chinese characters\n try {\n if (typeof unescape === 'function' && typeof encodeURIComponent === 'function') {\n xmlText = unescape(encodeURIComponent(xmlText));\n }\n } catch (error) {\n throw new Error((error as Error).message);\n }\n // base64 encoding is safer. utf-8 fails in some browsers\n const src = `data:image/svg+xml;base64,${btoa(xmlText)}`;\n return src;\n }\n return getBlob(arrayBuffer, url);\n}\n\nexport function getBlob(arrayBuffer: ArrayBuffer, url?: string): Blob {\n if (isSVG(url)) {\n // https://bugs.chromium.org/p/chromium/issues/detail?id=606319\n // return new Blob([new Uint8Array(arrayBuffer)], {type: 'image/svg+xml'});\n throw new Error('SVG cannot be parsed directly to imagebitmap');\n }\n // TODO - how to determine mime type? Param? Sniff here?\n return new Blob([new Uint8Array(arrayBuffer)]); // MIME type not needed?\n}\n"],"mappings":";;;;;;;;;AAGA,IAAMA,oBAAoB,GAAG,uBAAuB;AACpD,IAAMC,eAAe,GAAG,mBAAmB;AAEpC,SAASC,KAAK,CAACC,GAAG,EAAE;EACzB,OAAOA,GAAG,KAAKH,oBAAoB,CAACI,IAAI,CAACD,GAAG,CAAC,IAAIF,eAAe,CAACG,IAAI,CAACD,GAAG,CAAC,CAAC;AAC7E;AAEO,SAASE,mBAAmB,CAACC,WAAwB,EAAEH,GAAY,EAAiB;EACzF,IAAID,KAAK,CAACC,GAAG,CAAC,EAAE;IAEd,IAAMI,WAAW,GAAG,IAAIC,WAAW,EAAE;IACrC,IAAIC,OAAO,GAAGF,WAAW,CAACG,MAAM,CAACJ,WAAW,CAAC;IAE7C,IAAI;MACF,IAAI,OAAOK,QAAQ,KAAK,UAAU,IAAI,OAAOC,kBAAkB,KAAK,UAAU,EAAE;QAC9EH,OAAO,GAAGE,QAAQ,CAACC,kBAAkB,CAACH,OAAO,CAAC,CAAC;MACjD;IACF,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd,MAAM,IAAIC,KAAK,CAAED,KAAK,CAAWE,OAAO,CAAC;IAC3C;IAEA,IAAMC,GAAG,uCAAgCC,IAAI,CAACR,OAAO,CAAC,CAAE;IACxD,OAAOO,GAAG;EACZ;EACA,OAAOE,OAAO,CAACZ,WAAW,EAAEH,GAAG,CAAC;AAClC;AAEO,SAASe,OAAO,CAACZ,WAAwB,EAAEH,GAAY,EAAQ;EACpE,IAAID,KAAK,CAACC,GAAG,CAAC,EAAE;IAGd,MAAM,IAAIW,KAAK,CAAC,8CAA8C,CAAC;EACjE;EAEA,OAAO,IAAIK,IAAI,CAAC,CAAC,IAAIC,UAAU,CAACd,WAAW,CAAC,CAAC,CAAC;AAChD"}
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.asyncDeepMap = asyncDeepMap;
9
8
  exports.mapSubtree = mapSubtree;
10
-
11
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
-
15
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
16
12
 
17
13
  var isObject = function isObject(value) {
@@ -21,11 +17,10 @@ var isObject = function isObject(value) {
21
17
  function asyncDeepMap(_x, _x2) {
22
18
  return _asyncDeepMap.apply(this, arguments);
23
19
  }
24
-
25
20
  function _asyncDeepMap() {
26
21
  _asyncDeepMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tree, func) {
27
22
  var options,
28
- _args = arguments;
23
+ _args = arguments;
29
24
  return _regenerator.default.wrap(function _callee$(_context) {
30
25
  while (1) {
31
26
  switch (_context.prev = _context.next) {
@@ -33,10 +28,8 @@ function _asyncDeepMap() {
33
28
  options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};
34
29
  _context.next = 3;
35
30
  return mapSubtree(tree, func, options);
36
-
37
31
  case 3:
38
32
  return _context.abrupt("return", _context.sent);
39
-
40
33
  case 4:
41
34
  case "end":
42
35
  return _context.stop();
@@ -46,11 +39,9 @@ function _asyncDeepMap() {
46
39
  }));
47
40
  return _asyncDeepMap.apply(this, arguments);
48
41
  }
49
-
50
42
  function mapSubtree(_x3, _x4, _x5) {
51
43
  return _mapSubtree.apply(this, arguments);
52
44
  }
53
-
54
45
  function _mapSubtree() {
55
46
  _mapSubtree = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(object, func, options) {
56
47
  var url;
@@ -62,33 +53,25 @@ function _mapSubtree() {
62
53
  _context2.next = 4;
63
54
  break;
64
55
  }
65
-
66
56
  _context2.next = 3;
67
57
  return mapArray(object, func, options);
68
-
69
58
  case 3:
70
59
  return _context2.abrupt("return", _context2.sent);
71
-
72
60
  case 4:
73
61
  if (!isObject(object)) {
74
62
  _context2.next = 8;
75
63
  break;
76
64
  }
77
-
78
65
  _context2.next = 7;
79
66
  return mapObject(object, func, options);
80
-
81
67
  case 7:
82
68
  return _context2.abrupt("return", _context2.sent);
83
-
84
69
  case 8:
85
70
  url = object;
86
71
  _context2.next = 11;
87
72
  return func(url, options);
88
-
89
73
  case 11:
90
74
  return _context2.abrupt("return", _context2.sent);
91
-
92
75
  case 12:
93
76
  case "end":
94
77
  return _context2.stop();
@@ -98,22 +81,18 @@ function _mapSubtree() {
98
81
  }));
99
82
  return _mapSubtree.apply(this, arguments);
100
83
  }
101
-
102
84
  function mapObject(_x6, _x7, _x8) {
103
85
  return _mapObject.apply(this, arguments);
104
86
  }
105
-
106
87
  function _mapObject() {
107
88
  _mapObject = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(object, func, options) {
108
89
  var promises, values, _loop, key;
109
-
110
90
  return _regenerator.default.wrap(function _callee3$(_context3) {
111
91
  while (1) {
112
92
  switch (_context3.prev = _context3.next) {
113
93
  case 0:
114
94
  promises = [];
115
95
  values = {};
116
-
117
96
  _loop = function _loop(key) {
118
97
  var url = object[key];
119
98
  var promise = mapSubtree(url, func, options).then(function (value) {
@@ -121,17 +100,13 @@ function _mapObject() {
121
100
  });
122
101
  promises.push(promise);
123
102
  };
124
-
125
103
  for (key in object) {
126
104
  _loop(key);
127
105
  }
128
-
129
106
  _context3.next = 6;
130
107
  return Promise.all(promises);
131
-
132
108
  case 6:
133
109
  return _context3.abrupt("return", values);
134
-
135
110
  case 7:
136
111
  case "end":
137
112
  return _context3.stop();
@@ -141,16 +116,14 @@ function _mapObject() {
141
116
  }));
142
117
  return _mapObject.apply(this, arguments);
143
118
  }
144
-
145
119
  function mapArray(_x9, _x10) {
146
120
  return _mapArray.apply(this, arguments);
147
121
  }
148
-
149
122
  function _mapArray() {
150
123
  _mapArray = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(urlArray, func) {
151
124
  var options,
152
- promises,
153
- _args4 = arguments;
125
+ promises,
126
+ _args4 = arguments;
154
127
  return _regenerator.default.wrap(function _callee4$(_context4) {
155
128
  while (1) {
156
129
  switch (_context4.prev = _context4.next) {
@@ -161,10 +134,8 @@ function _mapArray() {
161
134
  });
162
135
  _context4.next = 4;
163
136
  return Promise.all(promises);
164
-
165
137
  case 4:
166
138
  return _context4.abrupt("return", _context4.sent);
167
-
168
139
  case 5:
169
140
  case "end":
170
141
  return _context4.stop();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/texture-api/async-deep-map.ts"],"names":["isObject","value","asyncDeepMap","tree","func","options","mapSubtree","object","Array","isArray","mapArray","mapObject","url","promises","values","key","promise","then","push","Promise","all","urlArray","map"],"mappings":";;;;;;;;;;;;;;;;AAgBA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD;AAAA,SAAWA,KAAK,IAAI,sBAAOA,KAAP,MAAiB,QAArC;AAAA,CAAjB;;SAKsBC,Y;;;;;4EAAf,iBAA4BC,IAA5B,EAAkCC,IAAlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwCC,YAAAA,OAAxC,2DAAkD,EAAlD;AAAA;AAAA,mBACQC,UAAU,CAACH,IAAD,EAAOC,IAAP,EAAaC,OAAb,CADlB;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAIeC,U;;;;;0EAAf,kBAA0BC,MAA1B,EAAkCH,IAAlC,EAAwCC,OAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBACDG,KAAK,CAACC,OAAN,CAAcF,MAAd,CADC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAEUG,QAAQ,CAACH,MAAD,EAASH,IAAT,EAAeC,OAAf,CAFlB;;AAAA;AAAA;;AAAA;AAAA,iBAKDL,QAAQ,CAACO,MAAD,CALP;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAMUI,SAAS,CAACJ,MAAD,EAASH,IAAT,EAAeC,OAAf,CANnB;;AAAA;AAAA;;AAAA;AAUCO,YAAAA,GAVD,GAUOL,MAVP;AAAA;AAAA,mBAWQH,IAAI,CAACQ,GAAD,EAAMP,OAAN,CAXZ;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAgBQM,S;;;;;yEAAf,kBAAyBJ,MAAzB,EAAiCH,IAAjC,EAAuCC,OAAvC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACQQ,YAAAA,QADR,GACmC,EADnC;AAEQC,YAAAA,MAFR,GAEiB,EAFjB;;AAAA,mCAIaC,GAJb;AAKI,kBAAMH,GAAG,GAAGL,MAAM,CAACQ,GAAD,CAAlB;AACA,kBAAMC,OAAO,GAAGV,UAAU,CAACM,GAAD,EAAMR,IAAN,EAAYC,OAAZ,CAAV,CAA+BY,IAA/B,CAAoC,UAAChB,KAAD,EAAW;AAC7Da,gBAAAA,MAAM,CAACC,GAAD,CAAN,GAAcd,KAAd;AACD,eAFe,CAAhB;AAGAY,cAAAA,QAAQ,CAACK,IAAT,CAAcF,OAAd;AATJ;;AAIE,iBAAWD,GAAX,IAAkBR,MAAlB,EAA0B;AAAA,oBAAfQ,GAAe;AAMzB;;AAVH;AAAA,mBAYQI,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAZR;;AAAA;AAAA,8CAcSC,MAdT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAiBeJ,Q;;;;;wEAAf,kBAAwBW,QAAxB,EAAkCjB,IAAlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwCC,YAAAA,OAAxC,8DAAkD,EAAlD;AACQQ,YAAAA,QADR,GACmBQ,QAAQ,CAACC,GAAT,CAAa,UAACV,GAAD;AAAA,qBAASN,UAAU,CAACM,GAAD,EAAMR,IAAN,EAAYC,OAAZ,CAAnB;AAAA,aAAb,CADnB;AAAA;AAAA,mBAEec,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAFf;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["/*\nAsynchronously maps a deep structure of values (e.g. objects and arrays of urls).\n\nE.g. a mipmapped cubemap\n{\n [CUBE_FACE_FRONT]: [\n \"image-front-0.jpg\",\n \"image-front-1.jpg\",\n \"image-front-2.jpg\",\n ],\n [CUBE_MAP_BACK]: [\n ...\n ]\n}\n*/\n\nconst isObject = (value) => value && typeof value === 'object';\n\n// Loads a deep structure of urls (objects and arrays of urls)\n// Returns an object with six key-value pairs containing the images (or image mip arrays)\n// for each cube face\nexport async function asyncDeepMap(tree, func, options = {}) {\n return await mapSubtree(tree, func, options);\n}\n\nexport async function mapSubtree(object, func, options) {\n if (Array.isArray(object)) {\n return await mapArray(object, func, options);\n }\n\n if (isObject(object)) {\n return await mapObject(object, func, options);\n }\n\n // TODO - ignore non-urls, non-arraybuffers?\n const url = object;\n return await func(url, options);\n}\n\n// HELPERS\n\nasync function mapObject(object, func, options) {\n const promises: Promise<any>[] = [];\n const values = {};\n\n for (const key in object) {\n const url = object[key];\n const promise = mapSubtree(url, func, options).then((value) => {\n values[key] = value;\n });\n promises.push(promise);\n }\n\n await Promise.all(promises);\n\n return values;\n}\n\nasync function mapArray(urlArray, func, options = {}) {\n const promises = urlArray.map((url) => mapSubtree(url, func, options));\n return await Promise.all(promises);\n}\n"],"file":"async-deep-map.js"}
1
+ {"version":3,"file":"async-deep-map.js","names":["isObject","value","asyncDeepMap","tree","func","options","mapSubtree","object","Array","isArray","mapArray","mapObject","url","promises","values","key","promise","then","push","Promise","all","urlArray","map"],"sources":["../../../../src/lib/texture-api/async-deep-map.ts"],"sourcesContent":["/*\nAsynchronously maps a deep structure of values (e.g. objects and arrays of urls).\n\nE.g. a mipmapped cubemap\n{\n [CUBE_FACE_FRONT]: [\n \"image-front-0.jpg\",\n \"image-front-1.jpg\",\n \"image-front-2.jpg\",\n ],\n [CUBE_MAP_BACK]: [\n ...\n ]\n}\n*/\n\nconst isObject = (value) => value && typeof value === 'object';\n\n// Loads a deep structure of urls (objects and arrays of urls)\n// Returns an object with six key-value pairs containing the images (or image mip arrays)\n// for each cube face\nexport async function asyncDeepMap(tree, func, options = {}) {\n return await mapSubtree(tree, func, options);\n}\n\nexport async function mapSubtree(object, func, options) {\n if (Array.isArray(object)) {\n return await mapArray(object, func, options);\n }\n\n if (isObject(object)) {\n return await mapObject(object, func, options);\n }\n\n // TODO - ignore non-urls, non-arraybuffers?\n const url = object;\n return await func(url, options);\n}\n\n// HELPERS\n\nasync function mapObject(object, func, options) {\n const promises: Promise<any>[] = [];\n const values = {};\n\n for (const key in object) {\n const url = object[key];\n const promise = mapSubtree(url, func, options).then((value) => {\n values[key] = value;\n });\n promises.push(promise);\n }\n\n await Promise.all(promises);\n\n return values;\n}\n\nasync function mapArray(urlArray, func, options = {}) {\n const promises = urlArray.map((url) => mapSubtree(url, func, options));\n return await Promise.all(promises);\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,IAAMA,QAAQ,GAAG,SAAXA,QAAQ,CAAIC,KAAK;EAAA,OAAKA,KAAK,IAAI,sBAAOA,KAAK,MAAK,QAAQ;AAAA;;AAAC,SAKzCC,YAAY;EAAA;AAAA;AAAA;EAAA,0EAA3B,iBAA4BC,IAAI,EAAEC,IAAI;IAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEC,OAAO,2DAAG,CAAC,CAAC;YAAA;YAAA,OAC5CC,UAAU,CAACH,IAAI,EAAEC,IAAI,EAAEC,OAAO,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAC7C;EAAA;AAAA;AAAA,SAEqBC,UAAU;EAAA;AAAA;AAAA;EAAA,wEAAzB,kBAA0BC,MAAM,EAAEH,IAAI,EAAEC,OAAO;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA,KAChDG,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC;cAAA;cAAA;YAAA;YAAA;YAAA,OACVG,QAAQ,CAACH,MAAM,EAAEH,IAAI,EAAEC,OAAO,CAAC;UAAA;YAAA;UAAA;YAAA,KAG1CL,QAAQ,CAACO,MAAM,CAAC;cAAA;cAAA;YAAA;YAAA;YAAA,OACLI,SAAS,CAACJ,MAAM,EAAEH,IAAI,EAAEC,OAAO,CAAC;UAAA;YAAA;UAAA;YAIzCO,GAAG,GAAGL,MAAM;YAAA;YAAA,OACLH,IAAI,CAACQ,GAAG,EAAEP,OAAO,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAChC;EAAA;AAAA;AAAA,SAIcM,SAAS;EAAA;AAAA;AAAA;EAAA,uEAAxB,kBAAyBJ,MAAM,EAAEH,IAAI,EAAEC,OAAO;IAAA;IAAA;MAAA;QAAA;UAAA;YACtCQ,QAAwB,GAAG,EAAE;YAC7BC,MAAM,GAAG,CAAC,CAAC;YAAA,uBAENC,GAAG;cACZ,IAAMH,GAAG,GAAGL,MAAM,CAACQ,GAAG,CAAC;cACvB,IAAMC,OAAO,GAAGV,UAAU,CAACM,GAAG,EAAER,IAAI,EAAEC,OAAO,CAAC,CAACY,IAAI,CAAC,UAAChB,KAAK,EAAK;gBAC7Da,MAAM,CAACC,GAAG,CAAC,GAAGd,KAAK;cACrB,CAAC,CAAC;cACFY,QAAQ,CAACK,IAAI,CAACF,OAAO,CAAC;YAAC;YALzB,KAAWD,GAAG,IAAIR,MAAM,EAAE;cAAA,MAAfQ,GAAG;YAMd;YAAC;YAAA,OAEKI,OAAO,CAACC,GAAG,CAACP,QAAQ,CAAC;UAAA;YAAA,kCAEpBC,MAAM;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACd;EAAA;AAAA;AAAA,SAEcJ,QAAQ;EAAA;AAAA;AAAA;EAAA,sEAAvB,kBAAwBW,QAAQ,EAAEjB,IAAI;IAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEC,OAAO,8DAAG,CAAC,CAAC;YAC5CQ,QAAQ,GAAGQ,QAAQ,CAACC,GAAG,CAAC,UAACV,GAAG;cAAA,OAAKN,UAAU,CAACM,GAAG,EAAER,IAAI,EAAEC,OAAO,CAAC;YAAA,EAAC;YAAA;YAAA,OACzDc,OAAO,CAACC,GAAG,CAACP,QAAQ,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACnC;EAAA;AAAA"}
@@ -1,23 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.deepLoad = deepLoad;
9
8
  exports.shallowLoad = shallowLoad;
10
-
11
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
-
15
11
  var _asyncDeepMap = require("./async-deep-map");
16
-
17
12
  function deepLoad(_x, _x2, _x3) {
18
13
  return _deepLoad.apply(this, arguments);
19
14
  }
20
-
21
15
  function _deepLoad() {
22
16
  _deepLoad = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(urlTree, load, options) {
23
17
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -28,10 +22,8 @@ function _deepLoad() {
28
22
  return (0, _asyncDeepMap.asyncDeepMap)(urlTree, function (url) {
29
23
  return shallowLoad(url, load, options);
30
24
  });
31
-
32
25
  case 2:
33
26
  return _context.abrupt("return", _context.sent);
34
-
35
27
  case 3:
36
28
  case "end":
37
29
  return _context.stop();
@@ -41,11 +33,9 @@ function _deepLoad() {
41
33
  }));
42
34
  return _deepLoad.apply(this, arguments);
43
35
  }
44
-
45
36
  function shallowLoad(_x4, _x5, _x6) {
46
37
  return _shallowLoad.apply(this, arguments);
47
38
  }
48
-
49
39
  function _shallowLoad() {
50
40
  _shallowLoad = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(url, load, options) {
51
41
  var response, arrayBuffer;
@@ -55,20 +45,16 @@ function _shallowLoad() {
55
45
  case 0:
56
46
  _context2.next = 2;
57
47
  return fetch(url, options.fetch);
58
-
59
48
  case 2:
60
49
  response = _context2.sent;
61
50
  _context2.next = 5;
62
51
  return response.arrayBuffer();
63
-
64
52
  case 5:
65
53
  arrayBuffer = _context2.sent;
66
54
  _context2.next = 8;
67
55
  return load(arrayBuffer, options);
68
-
69
56
  case 8:
70
57
  return _context2.abrupt("return", _context2.sent);
71
-
72
58
  case 9:
73
59
  case "end":
74
60
  return _context2.stop();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/texture-api/deep-load.ts"],"names":["deepLoad","urlTree","load","options","url","shallowLoad","fetch","response","arrayBuffer"],"mappings":";;;;;;;;;;;;;;AAAA;;SAEsBA,Q;;;;;wEAAf,iBAAwBC,OAAxB,EAAiCC,IAAjC,EAAuCC,OAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBACQ,gCAAaF,OAAb,EAAsB,UAACG,GAAD;AAAA,qBAASC,WAAW,CAACD,GAAD,EAAMF,IAAN,EAAYC,OAAZ,CAApB;AAAA,aAAtB,CADR;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAIeE,W;;;;;2EAAf,kBAA2BD,GAA3B,EAAgCF,IAAhC,EAAsCC,OAAtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAEkBG,KAAK,CAACF,GAAD,EAAMD,OAAO,CAACG,KAAd,CAFvB;;AAAA;AAECC,YAAAA,QAFD;AAAA;AAAA,mBAGqBA,QAAQ,CAACC,WAAT,EAHrB;;AAAA;AAGCA,YAAAA,WAHD;AAAA;AAAA,mBAIQN,IAAI,CAACM,WAAD,EAAcL,OAAd,CAJZ;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import {asyncDeepMap} from './async-deep-map';\n\nexport async function deepLoad(urlTree, load, options) {\n return await asyncDeepMap(urlTree, (url) => shallowLoad(url, load, options));\n}\n\nexport async function shallowLoad(url, load, options) {\n // console.error('loading', url);\n const response = await fetch(url, options.fetch);\n const arrayBuffer = await response.arrayBuffer();\n return await load(arrayBuffer, options);\n}\n"],"file":"deep-load.js"}
1
+ {"version":3,"file":"deep-load.js","names":["deepLoad","urlTree","load","options","asyncDeepMap","url","shallowLoad","fetch","response","arrayBuffer"],"sources":["../../../../src/lib/texture-api/deep-load.ts"],"sourcesContent":["import {asyncDeepMap} from './async-deep-map';\n\nexport async function deepLoad(urlTree, load, options) {\n return await asyncDeepMap(urlTree, (url) => shallowLoad(url, load, options));\n}\n\nexport async function shallowLoad(url, load, options) {\n // console.error('loading', url);\n const response = await fetch(url, options.fetch);\n const arrayBuffer = await response.arrayBuffer();\n return await load(arrayBuffer, options);\n}\n"],"mappings":";;;;;;;;;;AAAA;AAA8C,SAExBA,QAAQ;EAAA;AAAA;AAAA;EAAA,sEAAvB,iBAAwBC,OAAO,EAAEC,IAAI,EAAEC,OAAO;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACtC,IAAAC,0BAAY,EAACH,OAAO,EAAE,UAACI,GAAG;cAAA,OAAKC,WAAW,CAACD,GAAG,EAAEH,IAAI,EAAEC,OAAO,CAAC;YAAA,EAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAC7E;EAAA;AAAA;AAAA,SAEqBG,WAAW;EAAA;AAAA;AAAA;EAAA,yEAA1B,kBAA2BD,GAAG,EAAEH,IAAI,EAAEC,OAAO;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OAE3BI,KAAK,CAACF,GAAG,EAAEF,OAAO,CAACI,KAAK,CAAC;UAAA;YAA1CC,QAAQ;YAAA;YAAA,OACYA,QAAQ,CAACC,WAAW,EAAE;UAAA;YAA1CA,WAAW;YAAA;YAAA,OACJP,IAAI,CAACO,WAAW,EAAEN,OAAO,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACxC;EAAA;AAAA"}
@@ -1,34 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.generateUrl = generateUrl;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _loaderUtils = require("@loaders.gl/loader-utils");
13
-
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
-
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
-
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
12
  function generateUrl(getUrl, options, urlOptions) {
19
13
  var url = getUrl;
20
-
21
14
  if (typeof getUrl === 'function') {
22
15
  url = getUrl(_objectSpread(_objectSpread({}, options), urlOptions));
23
16
  }
24
-
25
17
  (0, _loaderUtils.assert)(typeof url === 'string');
26
- var baseUrl = options.baseUrl;
27
18
 
19
+ var baseUrl = options.baseUrl;
28
20
  if (baseUrl) {
29
21
  url = baseUrl[baseUrl.length - 1] === '/' ? "".concat(baseUrl).concat(url) : "".concat(baseUrl, "/").concat(url);
30
22
  }
31
-
32
23
  return (0, _loaderUtils.resolvePath)(url);
33
24
  }
34
25
  //# sourceMappingURL=generate-url.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/texture-api/generate-url.ts"],"names":["generateUrl","getUrl","options","urlOptions","url","baseUrl","length"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAGO,SAASA,WAAT,CAAqBC,MAArB,EAA6BC,OAA7B,EAAsCC,UAAtC,EAAkD;AAEvD,MAAIC,GAAG,GAAGH,MAAV;;AACA,MAAI,OAAOA,MAAP,KAAkB,UAAtB,EAAkC;AAChCG,IAAAA,GAAG,GAAGH,MAAM,iCAAKC,OAAL,GAAiBC,UAAjB,EAAZ;AACD;;AACD,2BAAO,OAAOC,GAAP,KAAe,QAAtB;AAGA,MAAOC,OAAP,GAAkBH,OAAlB,CAAOG,OAAP;;AACA,MAAIA,OAAJ,EAAa;AACXD,IAAAA,GAAG,GAAGC,OAAO,CAACA,OAAO,CAACC,MAAR,GAAiB,CAAlB,CAAP,KAAgC,GAAhC,aAAyCD,OAAzC,SAAmDD,GAAnD,cAA8DC,OAA9D,cAAyED,GAAzE,CAAN;AACD;;AAED,SAAO,8BAAYA,GAAZ,CAAP;AACD","sourcesContent":["import {resolvePath, assert} from '@loaders.gl/loader-utils';\n\n// Generate a url by calling getUrl with mix of options, applying options.baseUrl\nexport function generateUrl(getUrl, options, urlOptions) {\n // Get url\n let url = getUrl;\n if (typeof getUrl === 'function') {\n url = getUrl({...options, ...urlOptions});\n }\n assert(typeof url === 'string');\n\n // Apply options.baseUrl\n const {baseUrl} = options;\n if (baseUrl) {\n url = baseUrl[baseUrl.length - 1] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;\n }\n\n return resolvePath(url);\n}\n"],"file":"generate-url.js"}
1
+ {"version":3,"file":"generate-url.js","names":["generateUrl","getUrl","options","urlOptions","url","assert","baseUrl","length","resolvePath"],"sources":["../../../../src/lib/texture-api/generate-url.ts"],"sourcesContent":["import {resolvePath, assert} from '@loaders.gl/loader-utils';\n\n// Generate a url by calling getUrl with mix of options, applying options.baseUrl\nexport function generateUrl(getUrl, options, urlOptions) {\n // Get url\n let url = getUrl;\n if (typeof getUrl === 'function') {\n url = getUrl({...options, ...urlOptions});\n }\n assert(typeof url === 'string');\n\n // Apply options.baseUrl\n const {baseUrl} = options;\n if (baseUrl) {\n url = baseUrl[baseUrl.length - 1] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;\n }\n\n return resolvePath(url);\n}\n"],"mappings":";;;;;;;;AAAA;AAA6D;AAAA;AAGtD,SAASA,WAAW,CAACC,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAE;EAEvD,IAAIC,GAAG,GAAGH,MAAM;EAChB,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE;IAChCG,GAAG,GAAGH,MAAM,iCAAKC,OAAO,GAAKC,UAAU,EAAE;EAC3C;EACA,IAAAE,mBAAM,EAAC,OAAOD,GAAG,KAAK,QAAQ,CAAC;;EAG/B,IAAOE,OAAO,GAAIJ,OAAO,CAAlBI,OAAO;EACd,IAAIA,OAAO,EAAE;IACXF,GAAG,GAAGE,OAAO,CAACA,OAAO,CAACC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,aAAMD,OAAO,SAAGF,GAAG,cAAQE,OAAO,cAAIF,GAAG,CAAE;EACtF;EAEA,OAAO,IAAAI,wBAAW,EAACJ,GAAG,CAAC;AACzB"}
@@ -1,43 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.loadImage = loadImage;
9
7
  exports.getImageUrls = getImageUrls;
10
8
  exports.getMipLevels = getMipLevels;
11
-
9
+ exports.loadImage = loadImage;
12
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
13
  var _loaderUtils = require("@loaders.gl/loader-utils");
19
-
20
14
  var _parseImage = _interopRequireDefault(require("../parsers/parse-image"));
21
-
22
15
  var _parsedImageApi = require("../category-api/parsed-image-api");
23
-
24
16
  var _generateUrl = require("./generate-url");
25
-
26
17
  var _deepLoad = require("./deep-load");
27
-
28
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
29
-
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
31
-
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
32
20
  function loadImage(_x) {
33
21
  return _loadImage.apply(this, arguments);
34
22
  }
35
-
36
23
  function _loadImage() {
37
24
  _loadImage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(getUrl) {
38
25
  var options,
39
- imageUrls,
40
- _args = arguments;
26
+ imageUrls,
27
+ _args = arguments;
41
28
  return _regenerator.default.wrap(function _callee$(_context) {
42
29
  while (1) {
43
30
  switch (_context.prev = _context.next) {
@@ -45,15 +32,12 @@ function _loadImage() {
45
32
  options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
46
33
  _context.next = 3;
47
34
  return getImageUrls(getUrl, options);
48
-
49
35
  case 3:
50
36
  imageUrls = _context.sent;
51
37
  _context.next = 6;
52
38
  return (0, _deepLoad.deepLoad)(imageUrls, _parseImage.default, options);
53
-
54
39
  case 6:
55
40
  return _context.abrupt("return", _context.sent);
56
-
57
41
  case 7:
58
42
  case "end":
59
43
  return _context.stop();
@@ -63,42 +47,34 @@ function _loadImage() {
63
47
  }));
64
48
  return _loadImage.apply(this, arguments);
65
49
  }
66
-
67
50
  function getImageUrls(_x2, _x3) {
68
51
  return _getImageUrls.apply(this, arguments);
69
52
  }
70
-
71
53
  function _getImageUrls() {
72
54
  _getImageUrls = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(getUrl, options) {
73
55
  var urlOptions,
74
- mipLevels,
75
- _args2 = arguments;
56
+ mipLevels,
57
+ _args2 = arguments;
76
58
  return _regenerator.default.wrap(function _callee2$(_context2) {
77
59
  while (1) {
78
60
  switch (_context2.prev = _context2.next) {
79
61
  case 0:
80
62
  urlOptions = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {};
81
63
  mipLevels = options && options.image && options.image.mipLevels || 0;
82
-
83
64
  if (!(mipLevels !== 0)) {
84
65
  _context2.next = 8;
85
66
  break;
86
67
  }
87
-
88
68
  _context2.next = 5;
89
69
  return getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions);
90
-
91
70
  case 5:
92
71
  _context2.t0 = _context2.sent;
93
72
  _context2.next = 9;
94
73
  break;
95
-
96
74
  case 8:
97
75
  _context2.t0 = (0, _generateUrl.generateUrl)(getUrl, options, urlOptions);
98
-
99
76
  case 9:
100
77
  return _context2.abrupt("return", _context2.t0);
101
-
102
78
  case 10:
103
79
  case "end":
104
80
  return _context2.stop();
@@ -108,32 +84,26 @@ function _getImageUrls() {
108
84
  }));
109
85
  return _getImageUrls.apply(this, arguments);
110
86
  }
111
-
112
87
  function getMipmappedImageUrls(_x4, _x5, _x6, _x7) {
113
88
  return _getMipmappedImageUrls.apply(this, arguments);
114
89
  }
115
-
116
90
  function _getMipmappedImageUrls() {
117
91
  _getMipmappedImageUrls = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(getUrl, mipLevels, options, urlOptions) {
118
92
  var urls, url, image, _getImageSize, width, height, mipLevel, _url;
119
-
120
93
  return _regenerator.default.wrap(function _callee3$(_context3) {
121
94
  while (1) {
122
95
  switch (_context3.prev = _context3.next) {
123
96
  case 0:
124
97
  urls = [];
125
-
126
98
  if (!(mipLevels === 'auto')) {
127
99
  _context3.next = 9;
128
100
  break;
129
101
  }
130
-
131
102
  url = (0, _generateUrl.generateUrl)(getUrl, options, _objectSpread(_objectSpread({}, urlOptions), {}, {
132
103
  lod: 0
133
104
  }));
134
105
  _context3.next = 5;
135
106
  return (0, _deepLoad.shallowLoad)(url, _parseImage.default, options);
136
-
137
107
  case 5:
138
108
  image = _context3.sent;
139
109
  _getImageSize = (0, _parsedImageApi.getImageSize)(image), width = _getImageSize.width, height = _getImageSize.height;
@@ -141,20 +111,17 @@ function _getMipmappedImageUrls() {
141
111
  width: width,
142
112
  height: height
143
113
  });
144
- urls.push(url);
145
114
 
115
+ urls.push(url);
146
116
  case 9:
147
117
  (0, _loaderUtils.assert)(mipLevels > 0);
148
-
149
118
  for (mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {
150
119
  _url = (0, _generateUrl.generateUrl)(getUrl, options, _objectSpread(_objectSpread({}, urlOptions), {}, {
151
120
  lod: mipLevel
152
121
  }));
153
122
  urls.push(_url);
154
123
  }
155
-
156
124
  return _context3.abrupt("return", urls);
157
-
158
125
  case 12:
159
126
  case "end":
160
127
  return _context3.stop();
@@ -164,10 +131,9 @@ function _getMipmappedImageUrls() {
164
131
  }));
165
132
  return _getMipmappedImageUrls.apply(this, arguments);
166
133
  }
167
-
168
134
  function getMipLevels(_ref) {
169
135
  var width = _ref.width,
170
- height = _ref.height;
136
+ height = _ref.height;
171
137
  return 1 + Math.floor(Math.log2(Math.max(width, height)));
172
138
  }
173
139
  //# sourceMappingURL=load-image.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/texture-api/load-image.ts"],"names":["loadImage","getUrl","options","getImageUrls","imageUrls","parseImage","urlOptions","mipLevels","image","getMipmappedImageUrls","urls","url","lod","width","height","getMipLevels","push","mipLevel","length","Math","floor","log2","max"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;SAEsBA,S;;;;;yEAAf,iBAAyBC,MAAzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiCC,YAAAA,OAAjC,2DAA2C,EAA3C;AAAA;AAAA,mBACmBC,YAAY,CAACF,MAAD,EAASC,OAAT,CAD/B;;AAAA;AACCE,YAAAA,SADD;AAAA;AAAA,mBAEQ,wBAASA,SAAT,EAAoBC,mBAApB,EAAgCH,OAAhC,CAFR;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAKeC,Y;;;;;4EAAf,kBAA4BF,MAA5B,EAAoCC,OAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6CI,YAAAA,UAA7C,8DAA0D,EAA1D;AACCC,YAAAA,SADD,GACcL,OAAO,IAAIA,OAAO,CAACM,KAAnB,IAA4BN,OAAO,CAACM,KAAR,CAAcD,SAA3C,IAAyD,CADtE;;AAAA,kBAEEA,SAAS,KAAK,CAFhB;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAGKE,qBAAqB,CAACR,MAAD,EAASM,SAAT,EAAoBL,OAApB,EAA6BI,UAA7B,CAH1B;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,2BAID,8BAAYL,MAAZ,EAAoBC,OAApB,EAA6BI,UAA7B,CAJC;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAOQG,qB;;;;;qFAAf,kBAAqCR,MAArC,EAA6CM,SAA7C,EAAwDL,OAAxD,EAAiEI,UAAjE;AAAA;;AAAA;AAAA;AAAA;AAAA;AACQI,YAAAA,IADR,GACyB,EADzB;;AAAA,kBAIMH,SAAS,KAAK,MAJpB;AAAA;AAAA;AAAA;;AAKUI,YAAAA,GALV,GAKgB,8BAAYV,MAAZ,EAAoBC,OAApB,kCAAiCI,UAAjC;AAA6CM,cAAAA,GAAG,EAAE;AAAlD,eALhB;AAAA;AAAA,mBAMwB,2BAAYD,GAAZ,EAAiBN,mBAAjB,EAA6BH,OAA7B,CANxB;;AAAA;AAMUM,YAAAA,KANV;AAAA,4BAQ4B,kCAAaA,KAAb,CAR5B,EAQWK,KARX,iBAQWA,KARX,EAQkBC,MARlB,iBAQkBA,MARlB;AASIP,YAAAA,SAAS,GAAGQ,YAAY,CAAC;AAACF,cAAAA,KAAK,EAALA,KAAD;AAAQC,cAAAA,MAAM,EAANA;AAAR,aAAD,CAAxB;AAGAJ,YAAAA,IAAI,CAACM,IAAL,CAAUL,GAAV;;AAZJ;AAgBE,qCAAOJ,SAAS,GAAG,CAAnB;;AAEA,iBAASU,QAAT,GAAoBP,IAAI,CAACQ,MAAzB,EAAiCD,QAAQ,GAAGV,SAA5C,EAAuD,EAAEU,QAAzD,EAAmE;AAC3DN,cAAAA,IAD2D,GACrD,8BAAYV,MAAZ,EAAoBC,OAApB,kCAAiCI,UAAjC;AAA6CM,gBAAAA,GAAG,EAAEK;AAAlD,iBADqD;AAEjEP,cAAAA,IAAI,CAACM,IAAL,CAAUL,IAAV;AACD;;AArBH,8CAuBSD,IAvBT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AA2BO,SAASK,YAAT,OAAuC;AAAA,MAAhBF,KAAgB,QAAhBA,KAAgB;AAAA,MAATC,MAAS,QAATA,MAAS;AAC5C,SAAO,IAAIK,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,IAAL,CAAUF,IAAI,CAACG,GAAL,CAAST,KAAT,EAAgBC,MAAhB,CAAV,CAAX,CAAX;AACD","sourcesContent":["import {assert} from '@loaders.gl/loader-utils';\nimport parseImage from '../parsers/parse-image';\nimport {getImageSize} from '../category-api/parsed-image-api';\nimport {generateUrl} from './generate-url';\nimport {deepLoad, shallowLoad} from './deep-load';\n\nexport async function loadImage(getUrl, options = {}) {\n const imageUrls = await getImageUrls(getUrl, options);\n return await deepLoad(imageUrls, parseImage, options);\n}\n\nexport async function getImageUrls(getUrl, options, urlOptions = {}) {\n const mipLevels = (options && options.image && options.image.mipLevels) || 0;\n return mipLevels !== 0\n ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions)\n : generateUrl(getUrl, options, urlOptions);\n}\n\nasync function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {\n const urls: string[] = [];\n\n // If no mip levels supplied, we need to load the level 0 image and calculate based on size\n if (mipLevels === 'auto') {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: 0});\n const image = await shallowLoad(url, parseImage, options);\n\n const {width, height} = getImageSize(image);\n mipLevels = getMipLevels({width, height});\n\n // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?\n urls.push(url);\n }\n\n // We now know how many mipLevels we need, remaining image urls can now be constructed\n assert(mipLevels > 0);\n\n for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: mipLevel});\n urls.push(url);\n }\n\n return urls;\n}\n\n// Calculates number of mipmaps based on texture size (log2)\nexport function getMipLevels({width, height}) {\n return 1 + Math.floor(Math.log2(Math.max(width, height)));\n}\n"],"file":"load-image.js"}
1
+ {"version":3,"file":"load-image.js","names":["loadImage","getUrl","options","getImageUrls","imageUrls","deepLoad","parseImage","urlOptions","mipLevels","image","getMipmappedImageUrls","generateUrl","urls","url","lod","shallowLoad","getImageSize","width","height","getMipLevels","push","assert","mipLevel","length","Math","floor","log2","max"],"sources":["../../../../src/lib/texture-api/load-image.ts"],"sourcesContent":["import {assert} from '@loaders.gl/loader-utils';\nimport parseImage from '../parsers/parse-image';\nimport {getImageSize} from '../category-api/parsed-image-api';\nimport {generateUrl} from './generate-url';\nimport {deepLoad, shallowLoad} from './deep-load';\n\nexport async function loadImage(getUrl, options = {}) {\n const imageUrls = await getImageUrls(getUrl, options);\n return await deepLoad(imageUrls, parseImage, options);\n}\n\nexport async function getImageUrls(getUrl, options, urlOptions = {}) {\n const mipLevels = (options && options.image && options.image.mipLevels) || 0;\n return mipLevels !== 0\n ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions)\n : generateUrl(getUrl, options, urlOptions);\n}\n\nasync function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {\n const urls: string[] = [];\n\n // If no mip levels supplied, we need to load the level 0 image and calculate based on size\n if (mipLevels === 'auto') {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: 0});\n const image = await shallowLoad(url, parseImage, options);\n\n const {width, height} = getImageSize(image);\n mipLevels = getMipLevels({width, height});\n\n // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?\n urls.push(url);\n }\n\n // We now know how many mipLevels we need, remaining image urls can now be constructed\n assert(mipLevels > 0);\n\n for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: mipLevel});\n urls.push(url);\n }\n\n return urls;\n}\n\n// Calculates number of mipmaps based on texture size (log2)\nexport function getMipLevels({width, height}) {\n return 1 + Math.floor(Math.log2(Math.max(width, height)));\n}\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAAkD;AAAA;AAAA,SAE5BA,SAAS;EAAA;AAAA;AAAA;EAAA,uEAAxB,iBAAyBC,MAAM;IAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEC,OAAO,2DAAG,CAAC,CAAC;YAAA;YAAA,OAC1BC,YAAY,CAACF,MAAM,EAAEC,OAAO,CAAC;UAAA;YAA/CE,SAAS;YAAA;YAAA,OACF,IAAAC,kBAAQ,EAACD,SAAS,EAAEE,mBAAU,EAAEJ,OAAO,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACtD;EAAA;AAAA;AAAA,SAEqBC,YAAY;EAAA;AAAA;AAAA;EAAA,0EAA3B,kBAA4BF,MAAM,EAAEC,OAAO;IAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEK,UAAU,8DAAG,CAAC,CAAC;YAC3DC,SAAS,GAAIN,OAAO,IAAIA,OAAO,CAACO,KAAK,IAAIP,OAAO,CAACO,KAAK,CAACD,SAAS,IAAK,CAAC;YAAA,MACrEA,SAAS,KAAK,CAAC;cAAA;cAAA;YAAA;YAAA;YAAA,OACZE,qBAAqB,CAACT,MAAM,EAAEO,SAAS,EAAEN,OAAO,EAAEK,UAAU,CAAC;UAAA;YAAA;YAAA;YAAA;UAAA;YAAA,eACnE,IAAAI,wBAAW,EAACV,MAAM,EAAEC,OAAO,EAAEK,UAAU,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAC7C;EAAA;AAAA;AAAA,SAEcG,qBAAqB;EAAA;AAAA;AAAA;EAAA,mFAApC,kBAAqCT,MAAM,EAAEO,SAAS,EAAEN,OAAO,EAAEK,UAAU;IAAA;IAAA;MAAA;QAAA;UAAA;YACnEK,IAAc,GAAG,EAAE;YAAA,MAGrBJ,SAAS,KAAK,MAAM;cAAA;cAAA;YAAA;YAChBK,GAAG,GAAG,IAAAF,wBAAW,EAACV,MAAM,EAAEC,OAAO,kCAAMK,UAAU;cAAEO,GAAG,EAAE;YAAC,GAAE;YAAA;YAAA,OAC7C,IAAAC,qBAAW,EAACF,GAAG,EAAEP,mBAAU,EAAEJ,OAAO,CAAC;UAAA;YAAnDO,KAAK;YAAA,gBAEa,IAAAO,4BAAY,EAACP,KAAK,CAAC,EAApCQ,KAAK,iBAALA,KAAK,EAAEC,MAAM,iBAANA,MAAM;YACpBV,SAAS,GAAGW,YAAY,CAAC;cAACF,KAAK,EAALA,KAAK;cAAEC,MAAM,EAANA;YAAM,CAAC,CAAC;;YAGzCN,IAAI,CAACQ,IAAI,CAACP,GAAG,CAAC;UAAC;YAIjB,IAAAQ,mBAAM,EAACb,SAAS,GAAG,CAAC,CAAC;YAErB,KAASc,QAAQ,GAAGV,IAAI,CAACW,MAAM,EAAED,QAAQ,GAAGd,SAAS,EAAE,EAAEc,QAAQ,EAAE;cAC3DT,IAAG,GAAG,IAAAF,wBAAW,EAACV,MAAM,EAAEC,OAAO,kCAAMK,UAAU;gBAAEO,GAAG,EAAEQ;cAAQ,GAAE;cACxEV,IAAI,CAACQ,IAAI,CAACP,IAAG,CAAC;YAChB;YAAC,kCAEMD,IAAI;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACZ;EAAA;AAAA;AAGM,SAASO,YAAY,OAAkB;EAAA,IAAhBF,KAAK,QAALA,KAAK;IAAEC,MAAM,QAANA,MAAM;EACzC,OAAO,CAAC,GAAGM,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,IAAI,CAACF,IAAI,CAACG,GAAG,CAACV,KAAK,EAAEC,MAAM,CAAC,CAAC,CAAC;AAC3D"}