@loaders.gl/i3s 3.4.14 → 3.4.15

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 (58) hide show
  1. package/dist/dist.min.js +93 -92
  2. package/dist/es5/arcgis-webscene-loader.js +5 -22
  3. package/dist/es5/arcgis-webscene-loader.js.map +1 -1
  4. package/dist/es5/bundle.js +1 -1
  5. package/dist/es5/bundle.js.map +1 -1
  6. package/dist/es5/i3s-attribute-loader.js +58 -123
  7. package/dist/es5/i3s-attribute-loader.js.map +1 -1
  8. package/dist/es5/i3s-building-scene-layer-loader.js +8 -28
  9. package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -1
  10. package/dist/es5/i3s-content-loader.js +16 -35
  11. package/dist/es5/i3s-content-loader.js.map +1 -1
  12. package/dist/es5/i3s-loader.js +49 -148
  13. package/dist/es5/i3s-loader.js.map +1 -1
  14. package/dist/es5/i3s-node-page-loader.js +8 -39
  15. package/dist/es5/i3s-node-page-loader.js.map +1 -1
  16. package/dist/es5/i3s-slpk-loader.js +2 -2
  17. package/dist/es5/i3s-slpk-loader.js.map +1 -1
  18. package/dist/es5/index.js +8 -8
  19. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +161 -267
  20. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
  21. package/dist/es5/lib/parsers/constants.js +6 -6
  22. package/dist/es5/lib/parsers/constants.js.map +1 -1
  23. package/dist/es5/lib/parsers/parse-arcgis-webscene.js +64 -146
  24. package/dist/es5/lib/parsers/parse-arcgis-webscene.js.map +1 -1
  25. package/dist/es5/lib/parsers/parse-i3s-attribute.js +26 -55
  26. package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +1 -1
  27. package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +27 -47
  28. package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -1
  29. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +278 -347
  30. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  31. package/dist/es5/lib/parsers/parse-i3s.js +55 -79
  32. package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
  33. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +30 -81
  34. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  35. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +44 -90
  36. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  37. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +17 -17
  38. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
  39. package/dist/es5/lib/parsers/parse-zip/local-file-header.js +10 -10
  40. package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +1 -1
  41. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +4 -6
  42. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -1
  43. package/dist/es5/lib/utils/customizeColors.js +79 -140
  44. package/dist/es5/lib/utils/customizeColors.js.map +1 -1
  45. package/dist/es5/lib/utils/url-utils.js +14 -11
  46. package/dist/es5/lib/utils/url-utils.js.map +1 -1
  47. package/dist/es5/types.js +2 -2
  48. package/dist/esm/arcgis-webscene-loader.js +1 -1
  49. package/dist/esm/i3s-attribute-loader.js +1 -1
  50. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  51. package/dist/esm/i3s-content-loader.js +1 -1
  52. package/dist/esm/i3s-loader.js +1 -1
  53. package/dist/esm/i3s-node-page-loader.js +1 -1
  54. package/dist/esm/i3s-slpk-loader.js +1 -1
  55. package/dist/i3s-content-nodejs-worker.js +61 -59
  56. package/dist/i3s-content-nodejs-worker.js.map +3 -3
  57. package/dist/i3s-content-worker.js +54 -53
  58. package/package.json +9 -9
@@ -1,132 +1,75 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.I3SAttributeLoader = void 0;
8
7
  exports.getAttributeValueType = getAttributeValueType;
9
8
  exports.loadFeatureAttributes = loadFeatureAttributes;
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
9
  var _core = require("@loaders.gl/core");
14
10
  var _parseI3sAttribute = require("./lib/parsers/parse-i3s-attribute");
15
11
  var _urlUtils = require("./lib/utils/url-utils");
16
- 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; }
17
- 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
- var VERSION = typeof "3.4.14" !== 'undefined' ? "3.4.14" : 'latest';
19
- var EMPTY_VALUE = '';
20
- var REJECTED_STATUS = 'rejected';
21
- var I3SAttributeLoader = {
12
+ const VERSION = typeof "3.4.15" !== 'undefined' ? "3.4.15" : 'latest';
13
+ const EMPTY_VALUE = '';
14
+ const REJECTED_STATUS = 'rejected';
15
+ const I3SAttributeLoader = {
22
16
  name: 'I3S Attribute',
23
17
  id: 'i3s-attribute',
24
18
  module: 'i3s',
25
19
  version: VERSION,
26
20
  mimeTypes: ['application/binary'],
27
- parse: parse,
21
+ parse,
28
22
  extensions: ['bin'],
29
23
  options: {},
30
24
  binary: true
31
25
  };
32
26
  exports.I3SAttributeLoader = I3SAttributeLoader;
33
- function parse(_x, _x2) {
34
- return _parse.apply(this, arguments);
27
+ async function parse(data, options) {
28
+ data = (0, _parseI3sAttribute.parseI3STileAttribute)(data, options);
29
+ return data;
35
30
  }
36
- function _parse() {
37
- _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, options) {
38
- return _regenerator.default.wrap(function _callee$(_context) {
39
- while (1) switch (_context.prev = _context.next) {
40
- case 0:
41
- data = (0, _parseI3sAttribute.parseI3STileAttribute)(data, options);
42
- return _context.abrupt("return", data);
43
- case 2:
44
- case "end":
45
- return _context.stop();
46
- }
47
- }, _callee);
48
- }));
49
- return _parse.apply(this, arguments);
50
- }
51
- function loadFeatureAttributes(_x3, _x4) {
52
- return _loadFeatureAttributes.apply(this, arguments);
53
- }
54
- function _loadFeatureAttributes() {
55
- _loadFeatureAttributes = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(tile, featureId) {
56
- var options,
57
- _getAttributesData,
58
- attributeStorageInfo,
59
- attributeUrls,
60
- tilesetFields,
61
- attributes,
62
- attributeLoadPromises,
63
- index,
64
- _options$i3s,
65
- url,
31
+ async function loadFeatureAttributes(tile, featureId) {
32
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
33
+ const {
34
+ attributeStorageInfo,
35
+ attributeUrls,
36
+ tilesetFields
37
+ } = getAttributesData(tile);
38
+ if (!attributeStorageInfo || !attributeUrls || featureId < 0) {
39
+ return null;
40
+ }
41
+ let attributes = [];
42
+ const attributeLoadPromises = [];
43
+ for (let index = 0; index < attributeStorageInfo.length; index++) {
44
+ var _options$i3s;
45
+ const url = (0, _urlUtils.getUrlWithToken)(attributeUrls[index], (_options$i3s = options.i3s) === null || _options$i3s === void 0 ? void 0 : _options$i3s.token);
46
+ const attributeName = attributeStorageInfo[index].name;
47
+ const attributeType = getAttributeValueType(attributeStorageInfo[index]);
48
+ const loadOptions = {
49
+ ...options,
66
50
  attributeName,
67
- attributeType,
68
- loadOptions,
69
- promise,
70
- _args2 = arguments;
71
- return _regenerator.default.wrap(function _callee2$(_context2) {
72
- while (1) switch (_context2.prev = _context2.next) {
73
- case 0:
74
- options = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {};
75
- _getAttributesData = getAttributesData(tile), attributeStorageInfo = _getAttributesData.attributeStorageInfo, attributeUrls = _getAttributesData.attributeUrls, tilesetFields = _getAttributesData.tilesetFields;
76
- if (!(!attributeStorageInfo || !attributeUrls || featureId < 0)) {
77
- _context2.next = 4;
78
- break;
79
- }
80
- return _context2.abrupt("return", null);
81
- case 4:
82
- attributes = [];
83
- attributeLoadPromises = [];
84
- for (index = 0; index < attributeStorageInfo.length; index++) {
85
- url = (0, _urlUtils.getUrlWithToken)(attributeUrls[index], (_options$i3s = options.i3s) === null || _options$i3s === void 0 ? void 0 : _options$i3s.token);
86
- attributeName = attributeStorageInfo[index].name;
87
- attributeType = getAttributeValueType(attributeStorageInfo[index]);
88
- loadOptions = _objectSpread(_objectSpread({}, options), {}, {
89
- attributeName: attributeName,
90
- attributeType: attributeType
91
- });
92
- promise = (0, _core.load)(url, I3SAttributeLoader, loadOptions);
93
- attributeLoadPromises.push(promise);
94
- }
95
- _context2.prev = 7;
96
- _context2.next = 10;
97
- return Promise.allSettled(attributeLoadPromises);
98
- case 10:
99
- attributes = _context2.sent;
100
- _context2.next = 15;
101
- break;
102
- case 13:
103
- _context2.prev = 13;
104
- _context2.t0 = _context2["catch"](7);
105
- case 15:
106
- if (attributes.length) {
107
- _context2.next = 17;
108
- break;
109
- }
110
- return _context2.abrupt("return", null);
111
- case 17:
112
- return _context2.abrupt("return", generateAttributesByFeatureId(attributes, attributeStorageInfo, featureId, tilesetFields));
113
- case 18:
114
- case "end":
115
- return _context2.stop();
116
- }
117
- }, _callee2, null, [[7, 13]]);
118
- }));
119
- return _loadFeatureAttributes.apply(this, arguments);
51
+ attributeType
52
+ };
53
+ const promise = (0, _core.load)(url, I3SAttributeLoader, loadOptions);
54
+ attributeLoadPromises.push(promise);
55
+ }
56
+ try {
57
+ attributes = await Promise.allSettled(attributeLoadPromises);
58
+ } catch (error) {}
59
+ if (!attributes.length) {
60
+ return null;
61
+ }
62
+ return generateAttributesByFeatureId(attributes, attributeStorageInfo, featureId, tilesetFields);
120
63
  }
121
64
  function getAttributesData(tile) {
122
65
  var _tile$tileset, _tile$tileset$tileset, _tile$header, _tile$tileset2, _tile$tileset2$tilese;
123
- var attributeStorageInfo = (_tile$tileset = tile.tileset) === null || _tile$tileset === void 0 ? void 0 : (_tile$tileset$tileset = _tile$tileset.tileset) === null || _tile$tileset$tileset === void 0 ? void 0 : _tile$tileset$tileset.attributeStorageInfo;
124
- var attributeUrls = (_tile$header = tile.header) === null || _tile$header === void 0 ? void 0 : _tile$header.attributeUrls;
125
- var tilesetFields = ((_tile$tileset2 = tile.tileset) === null || _tile$tileset2 === void 0 ? void 0 : (_tile$tileset2$tilese = _tile$tileset2.tileset) === null || _tile$tileset2$tilese === void 0 ? void 0 : _tile$tileset2$tilese.fields) || [];
66
+ const attributeStorageInfo = (_tile$tileset = tile.tileset) === null || _tile$tileset === void 0 ? void 0 : (_tile$tileset$tileset = _tile$tileset.tileset) === null || _tile$tileset$tileset === void 0 ? void 0 : _tile$tileset$tileset.attributeStorageInfo;
67
+ const attributeUrls = (_tile$header = tile.header) === null || _tile$header === void 0 ? void 0 : _tile$header.attributeUrls;
68
+ const tilesetFields = ((_tile$tileset2 = tile.tileset) === null || _tile$tileset2 === void 0 ? void 0 : (_tile$tileset2$tilese = _tile$tileset2.tileset) === null || _tile$tileset2$tilese === void 0 ? void 0 : _tile$tileset2$tilese.fields) || [];
126
69
  return {
127
- attributeStorageInfo: attributeStorageInfo,
128
- attributeUrls: attributeUrls,
129
- tilesetFields: tilesetFields
70
+ attributeStorageInfo,
71
+ attributeUrls,
72
+ tilesetFields
130
73
  };
131
74
  }
132
75
  function getAttributeValueType(attribute) {
@@ -138,58 +81,50 @@ function getAttributeValueType(attribute) {
138
81
  return '';
139
82
  }
140
83
  function getFeatureIdsAttributeName(attributeStorageInfo) {
141
- var objectIdsAttribute = attributeStorageInfo.find(function (attribute) {
142
- return attribute.name.includes('OBJECTID');
143
- });
84
+ const objectIdsAttribute = attributeStorageInfo.find(attribute => attribute.name.includes('OBJECTID'));
144
85
  return objectIdsAttribute === null || objectIdsAttribute === void 0 ? void 0 : objectIdsAttribute.name;
145
86
  }
146
87
  function generateAttributesByFeatureId(attributes, attributeStorageInfo, featureId, tilesetFields) {
147
- var objectIdsAttributeName = getFeatureIdsAttributeName(attributeStorageInfo);
148
- var objectIds = attributes.find(function (attribute) {
149
- return attribute.value[objectIdsAttributeName];
150
- });
88
+ const objectIdsAttributeName = getFeatureIdsAttributeName(attributeStorageInfo);
89
+ const objectIds = attributes.find(attribute => attribute.value[objectIdsAttributeName]);
151
90
  if (!objectIds) {
152
91
  return null;
153
92
  }
154
- var attributeIndex = objectIds.value[objectIdsAttributeName].indexOf(featureId);
93
+ const attributeIndex = objectIds.value[objectIdsAttributeName].indexOf(featureId);
155
94
  if (attributeIndex < 0) {
156
95
  return null;
157
96
  }
158
97
  return getFeatureAttributesByIndex(attributes, attributeIndex, attributeStorageInfo, tilesetFields);
159
98
  }
160
99
  function getFeatureAttributesByIndex(attributes, featureIdIndex, attributeStorageInfo, tilesetFields) {
161
- var attributesObject = {};
162
- for (var index = 0; index < attributeStorageInfo.length; index++) {
163
- var attributeName = attributeStorageInfo[index].name;
164
- var codedValues = getAttributeCodedValues(attributeName, tilesetFields);
165
- var attribute = getAttributeByIndexAndAttributeName(attributes, index, attributeName);
100
+ const attributesObject = {};
101
+ for (let index = 0; index < attributeStorageInfo.length; index++) {
102
+ const attributeName = attributeStorageInfo[index].name;
103
+ const codedValues = getAttributeCodedValues(attributeName, tilesetFields);
104
+ const attribute = getAttributeByIndexAndAttributeName(attributes, index, attributeName);
166
105
  attributesObject[attributeName] = formatAttributeValue(attribute, featureIdIndex, codedValues);
167
106
  }
168
107
  return attributesObject;
169
108
  }
170
109
  function getAttributeCodedValues(attributeName, tilesetFields) {
171
110
  var _attributeField$domai;
172
- var attributeField = tilesetFields.find(function (field) {
173
- return field.name === attributeName || field.alias === attributeName;
174
- });
111
+ const attributeField = tilesetFields.find(field => field.name === attributeName || field.alias === attributeName);
175
112
  return (attributeField === null || attributeField === void 0 ? void 0 : (_attributeField$domai = attributeField.domain) === null || _attributeField$domai === void 0 ? void 0 : _attributeField$domai.codedValues) || [];
176
113
  }
177
114
  function getAttributeByIndexAndAttributeName(attributes, index, attributesName) {
178
- var attributeObject = attributes[index];
115
+ const attributeObject = attributes[index];
179
116
  if (attributeObject.status === REJECTED_STATUS) {
180
117
  return null;
181
118
  }
182
119
  return attributeObject.value[attributesName];
183
120
  }
184
121
  function formatAttributeValue(attribute, featureIdIndex, codedValues) {
185
- var value = EMPTY_VALUE;
122
+ let value = EMPTY_VALUE;
186
123
  if (attribute && featureIdIndex in attribute) {
187
124
  value = String(attribute[featureIdIndex]).replace(/\u0000|NaN/g, '').trim();
188
125
  }
189
126
  if (codedValues.length) {
190
- var codeValue = codedValues.find(function (codedValue) {
191
- return codedValue.code === Number(value);
192
- });
127
+ const codeValue = codedValues.find(codedValue => codedValue.code === Number(value));
193
128
  value = (codeValue === null || codeValue === void 0 ? void 0 : codeValue.name) || EMPTY_VALUE;
194
129
  }
195
130
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-attribute-loader.js","names":["_core","require","_parseI3sAttribute","_urlUtils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","VERSION","EMPTY_VALUE","REJECTED_STATUS","I3SAttributeLoader","name","id","module","version","mimeTypes","parse","extensions","options","binary","exports","_x","_x2","_parse","_asyncToGenerator2","_regenerator","mark","_callee","data","wrap","_callee$","_context","prev","next","parseI3STileAttribute","abrupt","stop","loadFeatureAttributes","_x3","_x4","_loadFeatureAttributes","_callee2","tile","featureId","_getAttributesData","attributeStorageInfo","attributeUrls","tilesetFields","attributes","attributeLoadPromises","index","_options$i3s","url","attributeName","attributeType","loadOptions","promise","_args2","_callee2$","_context2","undefined","getAttributesData","getUrlWithToken","i3s","token","getAttributeValueType","load","Promise","allSettled","sent","t0","generateAttributesByFeatureId","_tile$tileset","_tile$tileset$tileset","_tile$header","_tile$tileset2","_tile$tileset2$tilese","tileset","header","fields","attribute","hasOwnProperty","attributeValues","valueType","getFeatureIdsAttributeName","objectIdsAttribute","find","includes","objectIdsAttributeName","objectIds","value","attributeIndex","indexOf","getFeatureAttributesByIndex","featureIdIndex","attributesObject","codedValues","getAttributeCodedValues","getAttributeByIndexAndAttributeName","formatAttributeValue","_attributeField$domai","attributeField","field","alias","domain","attributesName","attributeObject","status","String","replace","trim","codeValue","codedValue","code","Number"],"sources":["../../src/i3s-attribute-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {load} from '@loaders.gl/core';\nimport {parseI3STileAttribute} from './lib/parsers/parse-i3s-attribute';\nimport {getUrlWithToken} from './lib/utils/url-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst EMPTY_VALUE = '';\nconst REJECTED_STATUS = 'rejected';\n/**\n * Loader for I3S attributes\n */\nexport const I3SAttributeLoader: LoaderWithParser = {\n name: 'I3S Attribute',\n id: 'i3s-attribute',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/binary'],\n parse,\n extensions: ['bin'],\n options: {},\n binary: true\n};\n\nasync function parse(data, options) {\n data = parseI3STileAttribute(data, options);\n return data;\n}\n\n/**\n * Load attributes based on feature id\n * @param {Object} tile\n * @param {number} featureId\n * @param {Object} options\n * @returns {Promise}\n */\n// eslint-disable-next-line complexity\nexport async function loadFeatureAttributes(tile, featureId, options = {}) {\n const {attributeStorageInfo, attributeUrls, tilesetFields} = getAttributesData(tile);\n\n if (!attributeStorageInfo || !attributeUrls || featureId < 0) {\n return null;\n }\n\n let attributes: object[] = [];\n const attributeLoadPromises: Promise<object>[] = [];\n\n for (let index = 0; index < attributeStorageInfo.length; index++) {\n // @ts-ignore\n const url = getUrlWithToken(attributeUrls[index], options.i3s?.token);\n const attributeName = attributeStorageInfo[index].name;\n const attributeType = getAttributeValueType(attributeStorageInfo[index]);\n const loadOptions = {...options, attributeName, attributeType};\n const promise = load(url, I3SAttributeLoader, loadOptions);\n\n attributeLoadPromises.push(promise);\n }\n try {\n attributes = await Promise.allSettled(attributeLoadPromises);\n } catch (error) {\n // do nothing\n }\n\n if (!attributes.length) {\n return null;\n }\n\n return generateAttributesByFeatureId(attributes, attributeStorageInfo, featureId, tilesetFields);\n}\n\n/**\n * Gets attributes data from tile.\n * @param tile \n * @returns \n */\nfunction getAttributesData(tile) {\n const attributeStorageInfo = tile.tileset?.tileset?.attributeStorageInfo;\n const attributeUrls = tile.header?.attributeUrls;\n const tilesetFields = tile.tileset?.tileset?.fields || [];\n\n return {attributeStorageInfo, attributeUrls, tilesetFields};\n}\n\n/**\n * Get attribute value type based on property names\n * @param {Object} attribute\n * @returns {String}\n */\nexport function getAttributeValueType(attribute) {\n if (attribute.hasOwnProperty('objectIds')) {\n return 'Oid32';\n } else if (attribute.hasOwnProperty('attributeValues')) {\n return attribute.attributeValues.valueType;\n }\n return '';\n}\n\n/**\n * Find in attributeStorageInfo attribute name responsible for feature ids list.\n * @param attributeStorageInfo \n * @returns Feature ids attribute name\n */\nfunction getFeatureIdsAttributeName(attributeStorageInfo) {\n const objectIdsAttribute = attributeStorageInfo.find(attribute => attribute.name.includes('OBJECTID'));\n\n return objectIdsAttribute?.name;\n}\n\n/**\n * Generates mapping featureId to feature attributes\n * @param {Array} attributes\n * @param {Object} attributeStorageInfo\n * @param {number} featureId\n * @returns {Object}\n */\nfunction generateAttributesByFeatureId(attributes, attributeStorageInfo, featureId, tilesetFields) {\n const objectIdsAttributeName = getFeatureIdsAttributeName(attributeStorageInfo);\n const objectIds = attributes.find((attribute) => attribute.value[objectIdsAttributeName]);\n\n if (!objectIds) {\n return null;\n }\n\n const attributeIndex = objectIds.value[objectIdsAttributeName].indexOf(featureId);\n\n if (attributeIndex < 0) {\n return null;\n }\n\n return getFeatureAttributesByIndex(attributes, attributeIndex, attributeStorageInfo, tilesetFields);\n}\n\n/**\n * Generates attribute object for feature mapping by feature id\n * @param {Array} attributes\n * @param {Number} featureIdIndex\n * @param {Object} attributeStorageInfo\n * @returns {Object}\n */\nfunction getFeatureAttributesByIndex(attributes, featureIdIndex, attributeStorageInfo, tilesetFields) {\n const attributesObject = {};\n\n for (let index = 0; index < attributeStorageInfo.length; index++) {\n const attributeName = attributeStorageInfo[index].name;\n const codedValues = getAttributeCodedValues(attributeName, tilesetFields);\n const attribute = getAttributeByIndexAndAttributeName(attributes, index, attributeName);\n attributesObject[attributeName] = formatAttributeValue(attribute, featureIdIndex, codedValues);\n }\n\n return attributesObject;\n}\n\n/**\n * Get coded values list from tileset.\n * @param attributeName \n * @param tilesetFields \n */\nfunction getAttributeCodedValues(attributeName, tilesetFields) {\n const attributeField = tilesetFields\n .find(field => field.name === attributeName || field.alias === attributeName);\n\n return attributeField?.domain?.codedValues || [];\n}\n\n/**\n * Return attribute value if it presents in atrributes list\n * @param {array} attributes\n * @param {number} index\n * @param {string} attributesName\n */\nfunction getAttributeByIndexAndAttributeName(attributes, index, attributesName) {\n const attributeObject = attributes[index];\n\n if (attributeObject.status === REJECTED_STATUS) {\n return null;\n }\n\n return attributeObject.value[attributesName];\n}\n\n/**\n * Do formatting of attribute values or return empty string.\n * @param {Array} attribute\n * @param {Number} featureIdIndex\n * @returns {String}\n */\nfunction formatAttributeValue(attribute, featureIdIndex, codedValues) {\n let value = EMPTY_VALUE;\n\n if (attribute && (featureIdIndex in attribute)) {\n // eslint-disable-next-line no-control-regex\n value = String(attribute[featureIdIndex]).replace(/\\u0000|NaN/g, '').trim();\n }\n\n // Check if coded values are existed. If so we use them.\n if (codedValues.length) {\n const codeValue = codedValues.find(codedValue => codedValue.code === Number(value));\n value = codeValue?.name || EMPTY_VALUE;\n }\n\n return value;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"i3s-attribute-loader.js","names":["_core","require","_parseI3sAttribute","_urlUtils","VERSION","EMPTY_VALUE","REJECTED_STATUS","I3SAttributeLoader","name","id","module","version","mimeTypes","parse","extensions","options","binary","exports","data","parseI3STileAttribute","loadFeatureAttributes","tile","featureId","arguments","length","undefined","attributeStorageInfo","attributeUrls","tilesetFields","getAttributesData","attributes","attributeLoadPromises","index","_options$i3s","url","getUrlWithToken","i3s","token","attributeName","attributeType","getAttributeValueType","loadOptions","promise","load","push","Promise","allSettled","error","generateAttributesByFeatureId","_tile$tileset","_tile$tileset$tileset","_tile$header","_tile$tileset2","_tile$tileset2$tilese","tileset","header","fields","attribute","hasOwnProperty","attributeValues","valueType","getFeatureIdsAttributeName","objectIdsAttribute","find","includes","objectIdsAttributeName","objectIds","value","attributeIndex","indexOf","getFeatureAttributesByIndex","featureIdIndex","attributesObject","codedValues","getAttributeCodedValues","getAttributeByIndexAndAttributeName","formatAttributeValue","_attributeField$domai","attributeField","field","alias","domain","attributesName","attributeObject","status","String","replace","trim","codeValue","codedValue","code","Number"],"sources":["../../src/i3s-attribute-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {load} from '@loaders.gl/core';\nimport {parseI3STileAttribute} from './lib/parsers/parse-i3s-attribute';\nimport {getUrlWithToken} from './lib/utils/url-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst EMPTY_VALUE = '';\nconst REJECTED_STATUS = 'rejected';\n/**\n * Loader for I3S attributes\n */\nexport const I3SAttributeLoader: LoaderWithParser = {\n name: 'I3S Attribute',\n id: 'i3s-attribute',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/binary'],\n parse,\n extensions: ['bin'],\n options: {},\n binary: true\n};\n\nasync function parse(data, options) {\n data = parseI3STileAttribute(data, options);\n return data;\n}\n\n/**\n * Load attributes based on feature id\n * @param {Object} tile\n * @param {number} featureId\n * @param {Object} options\n * @returns {Promise}\n */\n// eslint-disable-next-line complexity\nexport async function loadFeatureAttributes(tile, featureId, options = {}) {\n const {attributeStorageInfo, attributeUrls, tilesetFields} = getAttributesData(tile);\n\n if (!attributeStorageInfo || !attributeUrls || featureId < 0) {\n return null;\n }\n\n let attributes: object[] = [];\n const attributeLoadPromises: Promise<object>[] = [];\n\n for (let index = 0; index < attributeStorageInfo.length; index++) {\n // @ts-ignore\n const url = getUrlWithToken(attributeUrls[index], options.i3s?.token);\n const attributeName = attributeStorageInfo[index].name;\n const attributeType = getAttributeValueType(attributeStorageInfo[index]);\n const loadOptions = {...options, attributeName, attributeType};\n const promise = load(url, I3SAttributeLoader, loadOptions);\n\n attributeLoadPromises.push(promise);\n }\n try {\n attributes = await Promise.allSettled(attributeLoadPromises);\n } catch (error) {\n // do nothing\n }\n\n if (!attributes.length) {\n return null;\n }\n\n return generateAttributesByFeatureId(attributes, attributeStorageInfo, featureId, tilesetFields);\n}\n\n/**\n * Gets attributes data from tile.\n * @param tile \n * @returns \n */\nfunction getAttributesData(tile) {\n const attributeStorageInfo = tile.tileset?.tileset?.attributeStorageInfo;\n const attributeUrls = tile.header?.attributeUrls;\n const tilesetFields = tile.tileset?.tileset?.fields || [];\n\n return {attributeStorageInfo, attributeUrls, tilesetFields};\n}\n\n/**\n * Get attribute value type based on property names\n * @param {Object} attribute\n * @returns {String}\n */\nexport function getAttributeValueType(attribute) {\n if (attribute.hasOwnProperty('objectIds')) {\n return 'Oid32';\n } else if (attribute.hasOwnProperty('attributeValues')) {\n return attribute.attributeValues.valueType;\n }\n return '';\n}\n\n/**\n * Find in attributeStorageInfo attribute name responsible for feature ids list.\n * @param attributeStorageInfo \n * @returns Feature ids attribute name\n */\nfunction getFeatureIdsAttributeName(attributeStorageInfo) {\n const objectIdsAttribute = attributeStorageInfo.find(attribute => attribute.name.includes('OBJECTID'));\n\n return objectIdsAttribute?.name;\n}\n\n/**\n * Generates mapping featureId to feature attributes\n * @param {Array} attributes\n * @param {Object} attributeStorageInfo\n * @param {number} featureId\n * @returns {Object}\n */\nfunction generateAttributesByFeatureId(attributes, attributeStorageInfo, featureId, tilesetFields) {\n const objectIdsAttributeName = getFeatureIdsAttributeName(attributeStorageInfo);\n const objectIds = attributes.find((attribute) => attribute.value[objectIdsAttributeName]);\n\n if (!objectIds) {\n return null;\n }\n\n const attributeIndex = objectIds.value[objectIdsAttributeName].indexOf(featureId);\n\n if (attributeIndex < 0) {\n return null;\n }\n\n return getFeatureAttributesByIndex(attributes, attributeIndex, attributeStorageInfo, tilesetFields);\n}\n\n/**\n * Generates attribute object for feature mapping by feature id\n * @param {Array} attributes\n * @param {Number} featureIdIndex\n * @param {Object} attributeStorageInfo\n * @returns {Object}\n */\nfunction getFeatureAttributesByIndex(attributes, featureIdIndex, attributeStorageInfo, tilesetFields) {\n const attributesObject = {};\n\n for (let index = 0; index < attributeStorageInfo.length; index++) {\n const attributeName = attributeStorageInfo[index].name;\n const codedValues = getAttributeCodedValues(attributeName, tilesetFields);\n const attribute = getAttributeByIndexAndAttributeName(attributes, index, attributeName);\n attributesObject[attributeName] = formatAttributeValue(attribute, featureIdIndex, codedValues);\n }\n\n return attributesObject;\n}\n\n/**\n * Get coded values list from tileset.\n * @param attributeName \n * @param tilesetFields \n */\nfunction getAttributeCodedValues(attributeName, tilesetFields) {\n const attributeField = tilesetFields\n .find(field => field.name === attributeName || field.alias === attributeName);\n\n return attributeField?.domain?.codedValues || [];\n}\n\n/**\n * Return attribute value if it presents in atrributes list\n * @param {array} attributes\n * @param {number} index\n * @param {string} attributesName\n */\nfunction getAttributeByIndexAndAttributeName(attributes, index, attributesName) {\n const attributeObject = attributes[index];\n\n if (attributeObject.status === REJECTED_STATUS) {\n return null;\n }\n\n return attributeObject.value[attributesName];\n}\n\n/**\n * Do formatting of attribute values or return empty string.\n * @param {Array} attribute\n * @param {Number} featureIdIndex\n * @returns {String}\n */\nfunction formatAttributeValue(attribute, featureIdIndex, codedValues) {\n let value = EMPTY_VALUE;\n\n if (attribute && (featureIdIndex in attribute)) {\n // eslint-disable-next-line no-control-regex\n value = String(attribute[featureIdIndex]).replace(/\\u0000|NaN/g, '').trim();\n }\n\n // Check if coded values are existed. If so we use them.\n if (codedValues.length) {\n const codeValue = codedValues.find(codedValue => codedValue.code === Number(value));\n value = codeValue?.name || EMPTY_VALUE;\n }\n\n return value;\n}\n"],"mappings":"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"}
@@ -1,46 +1,26 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.I3SBuildingSceneLayerLoader = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
7
  var _parseI3sBuildingSceneLayer = require("./lib/parsers/parse-i3s-building-scene-layer");
11
- var VERSION = typeof "3.4.14" !== 'undefined' ? "3.4.14" : 'latest';
12
- var I3SBuildingSceneLayerLoader = {
8
+ const VERSION = typeof "3.4.15" !== 'undefined' ? "3.4.15" : 'latest';
9
+ const I3SBuildingSceneLayerLoader = {
13
10
  name: 'I3S Building Scene Layer',
14
11
  id: 'i3s-building-scene-layer',
15
12
  module: 'i3s',
16
13
  version: VERSION,
17
14
  mimeTypes: ['application/json'],
18
- parse: parse,
15
+ parse,
19
16
  extensions: ['json'],
20
17
  options: {}
21
18
  };
22
19
  exports.I3SBuildingSceneLayerLoader = I3SBuildingSceneLayerLoader;
23
- function parse(_x, _x2, _x3) {
24
- return _parse.apply(this, arguments);
25
- }
26
- function _parse() {
27
- _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, options, context) {
28
- return _regenerator.default.wrap(function _callee$(_context) {
29
- while (1) switch (_context.prev = _context.next) {
30
- case 0:
31
- if (context !== null && context !== void 0 && context.url) {
32
- _context.next = 2;
33
- break;
34
- }
35
- throw new Error('Url is not provided');
36
- case 2:
37
- return _context.abrupt("return", (0, _parseI3sBuildingSceneLayer.parseBuildingSceneLayer)(data, context.url));
38
- case 3:
39
- case "end":
40
- return _context.stop();
41
- }
42
- }, _callee);
43
- }));
44
- return _parse.apply(this, arguments);
20
+ async function parse(data, options, context) {
21
+ if (!(context !== null && context !== void 0 && context.url)) {
22
+ throw new Error('Url is not provided');
23
+ }
24
+ return (0, _parseI3sBuildingSceneLayer.parseBuildingSceneLayer)(data, context.url);
45
25
  }
46
26
  //# sourceMappingURL=i3s-building-scene-layer-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-building-scene-layer-loader.js","names":["_parseI3sBuildingSceneLayer","require","VERSION","I3SBuildingSceneLayerLoader","name","id","module","version","mimeTypes","parse","extensions","options","exports","_x","_x2","_x3","_parse","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","context","wrap","_callee$","_context","prev","next","url","Error","abrupt","parseBuildingSceneLayer","stop"],"sources":["../../src/i3s-building-scene-layer-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';\nimport type {BuildingSceneLayerTileset} from './types';\n\nimport {parseBuildingSceneLayer} from './lib/parsers/parse-i3s-building-scene-layer';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n/**\n * Loader for I3S - Building Scene Layer\n */\nexport const I3SBuildingSceneLayerLoader: LoaderWithParser = {\n name: 'I3S Building Scene Layer',\n id: 'i3s-building-scene-layer',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/json'],\n parse,\n extensions: ['json'],\n options: {}\n};\n\nasync function parse(\n data: ArrayBuffer,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<BuildingSceneLayerTileset> {\n if (!context?.url) {\n throw new Error('Url is not provided');\n }\n\n return parseBuildingSceneLayer(data, context.url);\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,2BAAA,GAAAC,OAAA;AAKA,IAAMC,OAAO,GAAG,eAAkB,KAAK,WAAW,cAAiB,QAAQ;AAIpE,IAAMC,2BAA6C,GAAG;EAC3DC,IAAI,EAAE,0BAA0B;EAChCC,EAAE,EAAE,0BAA0B;EAC9BC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,KAAK,EAALA,KAAK;EACLC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAT,2BAAA,GAAAA,2BAAA;AAAA,SAEaM,KAAKA,CAAAI,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,OAAA;EAAAA,MAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAApB,SAAAC,QACEC,IAAiB,EACjBb,OAAuB,EACvBc,OAAuB;IAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAA,IAElBL,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEM,GAAG;YAAAH,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MACT,IAAIE,KAAK,CAAC,qBAAqB,CAAC;QAAA;UAAA,OAAAJ,QAAA,CAAAK,MAAA,WAGjC,IAAAC,mDAAuB,EAACV,IAAI,EAAEC,OAAO,CAACM,GAAG,CAAC;QAAA;QAAA;UAAA,OAAAH,QAAA,CAAAO,IAAA;MAAA;IAAA,GAAAZ,OAAA;EAAA,CAClD;EAAA,OAAAP,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"file":"i3s-building-scene-layer-loader.js","names":["_parseI3sBuildingSceneLayer","require","VERSION","I3SBuildingSceneLayerLoader","name","id","module","version","mimeTypes","parse","extensions","options","exports","data","context","url","Error","parseBuildingSceneLayer"],"sources":["../../src/i3s-building-scene-layer-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';\nimport type {BuildingSceneLayerTileset} from './types';\n\nimport {parseBuildingSceneLayer} from './lib/parsers/parse-i3s-building-scene-layer';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n/**\n * Loader for I3S - Building Scene Layer\n */\nexport const I3SBuildingSceneLayerLoader: LoaderWithParser = {\n name: 'I3S Building Scene Layer',\n id: 'i3s-building-scene-layer',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/json'],\n parse,\n extensions: ['json'],\n options: {}\n};\n\nasync function parse(\n data: ArrayBuffer,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<BuildingSceneLayerTileset> {\n if (!context?.url) {\n throw new Error('Url is not provided');\n }\n\n return parseBuildingSceneLayer(data, context.url);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,2BAAA,GAAAC,OAAA;AAKA,MAAMC,OAAO,GAAG,eAAkB,KAAK,WAAW,cAAiB,QAAQ;AAIpE,MAAMC,2BAA6C,GAAG;EAC3DC,IAAI,EAAE,0BAA0B;EAChCC,EAAE,EAAE,0BAA0B;EAC9BC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,KAAK;EACLC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAT,2BAAA,GAAAA,2BAAA;AAEF,eAAeM,KAAKA,CAClBI,IAAiB,EACjBF,OAAuB,EACvBG,OAAuB,EACa;EACpC,IAAI,EAACA,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,GAAG,GAAE;IACjB,MAAM,IAAIC,KAAK,CAAC,qBAAqB,CAAC;EACxC;EAEA,OAAO,IAAAC,mDAAuB,EAACJ,IAAI,EAAEC,OAAO,CAACC,GAAG,CAAC;AACnD"}
@@ -1,57 +1,38 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.I3SContentLoader = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
7
  var _workerUtils = require("@loaders.gl/worker-utils");
11
8
  var _parseI3sTileContent = require("./lib/parsers/parse-i3s-tile-content");
12
- var VERSION = typeof "3.4.14" !== 'undefined' ? "3.4.14" : 'latest';
13
- var I3SContentLoader = {
9
+ const VERSION = typeof "3.4.15" !== 'undefined' ? "3.4.15" : 'latest';
10
+ const I3SContentLoader = {
14
11
  name: 'I3S Content (Indexed Scene Layers)',
15
12
  id: _workerUtils.isBrowser ? 'i3s-content' : 'i3s-content-nodejs',
16
13
  module: 'i3s',
17
14
  worker: true,
18
15
  version: VERSION,
19
16
  mimeTypes: ['application/octet-stream'],
20
- parse: parse,
17
+ parse,
21
18
  extensions: ['bin'],
22
19
  options: {
23
20
  'i3s-content': {}
24
21
  }
25
22
  };
26
23
  exports.I3SContentLoader = I3SContentLoader;
27
- function parse(_x, _x2, _x3) {
28
- return _parse.apply(this, arguments);
29
- }
30
- function _parse() {
31
- _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, options, context) {
32
- var _ref, tile, _tileOptions, tileset, _tilesetOptions, tileOptions, tilesetOptions;
33
- return _regenerator.default.wrap(function _callee$(_context) {
34
- while (1) switch (_context.prev = _context.next) {
35
- case 0:
36
- _ref = (options === null || options === void 0 ? void 0 : options.i3s) || {}, tile = _ref.tile, _tileOptions = _ref._tileOptions, tileset = _ref.tileset, _tilesetOptions = _ref._tilesetOptions;
37
- tileOptions = _tileOptions || tile;
38
- tilesetOptions = _tilesetOptions || tileset;
39
- if (!(!tileOptions || !tilesetOptions)) {
40
- _context.next = 5;
41
- break;
42
- }
43
- return _context.abrupt("return", null);
44
- case 5:
45
- _context.next = 7;
46
- return (0, _parseI3sTileContent.parseI3STileContent)(data, tileOptions, tilesetOptions, options, context);
47
- case 7:
48
- return _context.abrupt("return", _context.sent);
49
- case 8:
50
- case "end":
51
- return _context.stop();
52
- }
53
- }, _callee);
54
- }));
55
- return _parse.apply(this, arguments);
24
+ async function parse(data, options, context) {
25
+ const {
26
+ tile,
27
+ _tileOptions,
28
+ tileset,
29
+ _tilesetOptions
30
+ } = (options === null || options === void 0 ? void 0 : options.i3s) || {};
31
+ const tileOptions = _tileOptions || tile;
32
+ const tilesetOptions = _tilesetOptions || tileset;
33
+ if (!tileOptions || !tilesetOptions) {
34
+ return null;
35
+ }
36
+ return await (0, _parseI3sTileContent.parseI3STileContent)(data, tileOptions, tilesetOptions, options, context);
56
37
  }
57
38
  //# sourceMappingURL=i3s-content-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-content-loader.js","names":["_workerUtils","require","_parseI3sTileContent","VERSION","I3SContentLoader","name","id","isBrowser","module","worker","version","mimeTypes","parse","extensions","options","exports","_x","_x2","_x3","_parse","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","context","_ref","tile","_tileOptions","tileset","_tilesetOptions","tileOptions","tilesetOptions","wrap","_callee$","_context","prev","next","i3s","abrupt","parseI3STileContent","sent","stop"],"sources":["../../src/i3s-content-loader.ts"],"sourcesContent":["import {isBrowser} from '@loaders.gl/worker-utils';\nimport type {LoaderWithParser, LoaderContext} from '@loaders.gl/loader-utils';\nimport type {I3SLoaderOptions} from './i3s-loader';\nimport {parseI3STileContent} from './lib/parsers/parse-i3s-tile-content';\nimport {I3STileOptions, I3STilesetOptions} from './types';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n/**\n * Loader for I3S - Indexed 3D Scene Layer\n */\nexport const I3SContentLoader: LoaderWithParser = {\n name: 'I3S Content (Indexed Scene Layers)',\n id: isBrowser ? 'i3s-content' : 'i3s-content-nodejs',\n module: 'i3s',\n worker: true,\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse,\n extensions: ['bin'],\n options: {\n 'i3s-content': {}\n }\n};\n\nasync function parse(data, options?: I3SLoaderOptions, context?: LoaderContext) {\n const {tile, _tileOptions, tileset, _tilesetOptions} = options?.i3s || {};\n const tileOptions = _tileOptions || tile;\n const tilesetOptions = _tilesetOptions || tileset;\n if (!tileOptions || !tilesetOptions) {\n return null;\n }\n return await parseI3STileContent(\n data,\n tileOptions as I3STileOptions,\n tilesetOptions as I3STilesetOptions,\n options,\n context\n );\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,oBAAA,GAAAD,OAAA;AAMA,IAAME,OAAO,GAAG,eAAkB,KAAK,WAAW,cAAiB,QAAQ;AAIpE,IAAMC,gBAAkC,GAAG;EAChDC,IAAI,EAAE,oCAAoC;EAC1CC,EAAE,EAAEC,sBAAS,GAAG,aAAa,GAAG,oBAAoB;EACpDC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAEP,OAAO;EAChBQ,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAALA,KAAK;EACLC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE;IACP,aAAa,EAAE,CAAC;EAClB;AACF,CAAC;AAACC,OAAA,CAAAX,gBAAA,GAAAA,gBAAA;AAAA,SAEaQ,KAAKA,CAAAI,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,OAAA;EAAAA,MAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAApB,SAAAC,QAAqBC,IAAI,EAAEb,OAA0B,EAAEc,OAAuB;IAAA,IAAAC,IAAA,EAAAC,IAAA,EAAAC,YAAA,EAAAC,OAAA,EAAAC,eAAA,EAAAC,WAAA,EAAAC,cAAA;IAAA,OAAAX,YAAA,CAAAD,OAAA,CAAAa,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAX,IAAA,GACrB,CAAAf,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE2B,GAAG,KAAI,CAAC,CAAC,EAAlEX,IAAI,GAAAD,IAAA,CAAJC,IAAI,EAAEC,YAAY,GAAAF,IAAA,CAAZE,YAAY,EAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO,EAAEC,eAAe,GAAAJ,IAAA,CAAfI,eAAe;UAC7CC,WAAW,GAAGH,YAAY,IAAID,IAAI;UAClCK,cAAc,GAAGF,eAAe,IAAID,OAAO;UAAA,MAC7C,CAACE,WAAW,IAAI,CAACC,cAAc;YAAAG,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAI,MAAA,WAC1B,IAAI;QAAA;UAAAJ,QAAA,CAAAE,IAAA;UAAA,OAEA,IAAAG,wCAAmB,EAC9BhB,IAAI,EACJO,WAAW,EACXC,cAAc,EACdrB,OAAO,EACPc,OACF,CAAC;QAAA;UAAA,OAAAU,QAAA,CAAAI,MAAA,WAAAJ,QAAA,CAAAM,IAAA;QAAA;QAAA;UAAA,OAAAN,QAAA,CAAAO,IAAA;MAAA;IAAA,GAAAnB,OAAA;EAAA,CACF;EAAA,OAAAP,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"file":"i3s-content-loader.js","names":["_workerUtils","require","_parseI3sTileContent","VERSION","I3SContentLoader","name","id","isBrowser","module","worker","version","mimeTypes","parse","extensions","options","exports","data","context","tile","_tileOptions","tileset","_tilesetOptions","i3s","tileOptions","tilesetOptions","parseI3STileContent"],"sources":["../../src/i3s-content-loader.ts"],"sourcesContent":["import {isBrowser} from '@loaders.gl/worker-utils';\nimport type {LoaderWithParser, LoaderContext} from '@loaders.gl/loader-utils';\nimport type {I3SLoaderOptions} from './i3s-loader';\nimport {parseI3STileContent} from './lib/parsers/parse-i3s-tile-content';\nimport {I3STileOptions, I3STilesetOptions} from './types';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n/**\n * Loader for I3S - Indexed 3D Scene Layer\n */\nexport const I3SContentLoader: LoaderWithParser = {\n name: 'I3S Content (Indexed Scene Layers)',\n id: isBrowser ? 'i3s-content' : 'i3s-content-nodejs',\n module: 'i3s',\n worker: true,\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse,\n extensions: ['bin'],\n options: {\n 'i3s-content': {}\n }\n};\n\nasync function parse(data, options?: I3SLoaderOptions, context?: LoaderContext) {\n const {tile, _tileOptions, tileset, _tilesetOptions} = options?.i3s || {};\n const tileOptions = _tileOptions || tile;\n const tilesetOptions = _tilesetOptions || tileset;\n if (!tileOptions || !tilesetOptions) {\n return null;\n }\n return await parseI3STileContent(\n data,\n tileOptions as I3STileOptions,\n tilesetOptions as I3STilesetOptions,\n options,\n context\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,oBAAA,GAAAD,OAAA;AAMA,MAAME,OAAO,GAAG,eAAkB,KAAK,WAAW,cAAiB,QAAQ;AAIpE,MAAMC,gBAAkC,GAAG;EAChDC,IAAI,EAAE,oCAAoC;EAC1CC,EAAE,EAAEC,sBAAS,GAAG,aAAa,GAAG,oBAAoB;EACpDC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAEP,OAAO;EAChBQ,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK;EACLC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE;IACP,aAAa,EAAE,CAAC;EAClB;AACF,CAAC;AAACC,OAAA,CAAAX,gBAAA,GAAAA,gBAAA;AAEF,eAAeQ,KAAKA,CAACI,IAAI,EAAEF,OAA0B,EAAEG,OAAuB,EAAE;EAC9E,MAAM;IAACC,IAAI;IAAEC,YAAY;IAAEC,OAAO;IAAEC;EAAe,CAAC,GAAG,CAAAP,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEQ,GAAG,KAAI,CAAC,CAAC;EACzE,MAAMC,WAAW,GAAGJ,YAAY,IAAID,IAAI;EACxC,MAAMM,cAAc,GAAGH,eAAe,IAAID,OAAO;EACjD,IAAI,CAACG,WAAW,IAAI,CAACC,cAAc,EAAE;IACnC,OAAO,IAAI;EACb;EACA,OAAO,MAAM,IAAAC,wCAAmB,EAC9BT,IAAI,EACJO,WAAW,EACXC,cAAc,EACdV,OAAO,EACPG,OACF,CAAC;AACH"}