geotiff 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-browser/geotiff.js +3 -2
- package/dist-browser/geotiff.js.map +1 -1
- package/dist-module/compression/basedecoder.d.ts +4 -0
- package/dist-module/compression/basedecoder.d.ts.map +1 -1
- package/dist-module/compression/basedecoder.js +6 -0
- package/dist-module/compression/index.d.ts +4 -4
- package/dist-module/compression/index.d.ts.map +1 -1
- package/dist-module/compression/index.js +4 -4
- package/dist-module/compression/jpeg.d.ts +6 -1
- package/dist-module/compression/jpeg.d.ts.map +1 -1
- package/dist-module/compression/jpeg.js +50 -5
- package/dist-module/compression/lzw.js +1 -1
- package/dist-module/compression/webimage.d.ts +1 -1
- package/dist-module/compression/webimage.d.ts.map +1 -1
- package/dist-module/compression/webimage.js +1 -1
- package/dist-module/dataslice.d.ts.map +1 -1
- package/dist-module/dataslice.js +2 -2
- package/dist-module/dataview64.d.ts +2 -2
- package/dist-module/dataview64.d.ts.map +1 -1
- package/dist-module/dataview64.js +4 -4
- package/dist-module/geotiff.d.ts +161 -45
- package/dist-module/geotiff.d.ts.map +1 -1
- package/dist-module/geotiff.js +111 -20
- package/dist-module/geotiffimage.d.ts +76 -110
- package/dist-module/geotiffimage.d.ts.map +1 -1
- package/dist-module/geotiffimage.js +98 -70
- package/dist-module/geotiffwriter.js +2 -2
- package/dist-module/globals.d.ts +48 -40
- package/dist-module/globals.d.ts.map +1 -1
- package/dist-module/globals.js +14 -10
- package/dist-module/imagefiledirectory.d.ts +2 -2
- package/dist-module/imagefiledirectory.d.ts.map +1 -1
- package/dist-module/imagefiledirectory.js +23 -12
- package/dist-module/logging.js +7 -7
- package/dist-module/pool.d.ts +2 -3
- package/dist-module/pool.d.ts.map +1 -1
- package/dist-module/pool.js +18 -16
- package/dist-module/predictor.js +1 -1
- package/dist-module/resample.d.ts +18 -18
- package/dist-module/resample.d.ts.map +1 -1
- package/dist-module/resample.js +12 -12
- package/dist-module/source/basesource.d.ts +7 -7
- package/dist-module/source/basesource.d.ts.map +1 -1
- package/dist-module/source/basesource.js +7 -7
- package/dist-module/source/blockedsource.d.ts +10 -10
- package/dist-module/source/blockedsource.d.ts.map +1 -1
- package/dist-module/source/blockedsource.js +12 -9
- package/dist-module/source/client/base.d.ts +8 -10
- package/dist-module/source/client/base.d.ts.map +1 -1
- package/dist-module/source/client/base.js +4 -3
- package/dist-module/source/client/fetch.d.ts +2 -7
- package/dist-module/source/client/fetch.d.ts.map +1 -1
- package/dist-module/source/client/fetch.js +7 -2
- package/dist-module/source/client/http.d.ts +4 -1
- package/dist-module/source/client/http.d.ts.map +1 -1
- package/dist-module/source/client/http.js +4 -4
- package/dist-module/source/client/xhr.d.ts +4 -1
- package/dist-module/source/client/xhr.d.ts.map +1 -1
- package/dist-module/source/client/xhr.js +1 -1
- package/dist-module/source/file.js +4 -4
- package/dist-module/source/filereader.js +1 -1
- package/dist-module/source/httputils.d.ts +14 -6
- package/dist-module/source/httputils.d.ts.map +1 -1
- package/dist-module/source/httputils.js +13 -12
- package/dist-module/source/remote.d.ts +31 -22
- package/dist-module/source/remote.d.ts.map +1 -1
- package/dist-module/source/remote.js +37 -13
- package/dist-module/utils.d.ts +7 -1
- package/dist-module/utils.d.ts.map +1 -1
- package/dist-module/utils.js +6 -0
- package/dist-module/worker/create.js +1 -1
- package/dist-node/compression/basedecoder.d.ts +4 -0
- package/dist-node/compression/basedecoder.d.ts.map +1 -1
- package/dist-node/compression/basedecoder.js +6 -0
- package/dist-node/compression/basedecoder.js.map +1 -1
- package/dist-node/compression/index.d.ts +4 -4
- package/dist-node/compression/index.d.ts.map +1 -1
- package/dist-node/compression/index.js +4 -4
- package/dist-node/compression/jpeg.d.ts +6 -1
- package/dist-node/compression/jpeg.d.ts.map +1 -1
- package/dist-node/compression/jpeg.js +50 -5
- package/dist-node/compression/jpeg.js.map +1 -1
- package/dist-node/compression/lzw.js +1 -1
- package/dist-node/compression/lzw.js.map +1 -1
- package/dist-node/compression/webimage.js +1 -1
- package/dist-node/compression/webimage.js.map +1 -1
- package/dist-node/dataslice.js +2 -2
- package/dist-node/dataslice.js.map +1 -1
- package/dist-node/dataview64.d.ts +2 -2
- package/dist-node/dataview64.d.ts.map +1 -1
- package/dist-node/dataview64.js +4 -4
- package/dist-node/dataview64.js.map +1 -1
- package/dist-node/geotiff.d.ts +161 -45
- package/dist-node/geotiff.d.ts.map +1 -1
- package/dist-node/geotiff.js +110 -20
- package/dist-node/geotiff.js.map +1 -1
- package/dist-node/geotiffimage.d.ts +77 -111
- package/dist-node/geotiffimage.d.ts.map +1 -1
- package/dist-node/geotiffimage.js +98 -70
- package/dist-node/geotiffimage.js.map +1 -1
- package/dist-node/geotiffwriter.js +2 -2
- package/dist-node/geotiffwriter.js.map +1 -1
- package/dist-node/globals.d.ts +48 -40
- package/dist-node/globals.d.ts.map +1 -1
- package/dist-node/globals.js +14 -10
- package/dist-node/globals.js.map +1 -1
- package/dist-node/imagefiledirectory.d.ts +2 -2
- package/dist-node/imagefiledirectory.d.ts.map +1 -1
- package/dist-node/imagefiledirectory.js +23 -12
- package/dist-node/imagefiledirectory.js.map +1 -1
- package/dist-node/logging.js +7 -7
- package/dist-node/logging.js.map +1 -1
- package/dist-node/pool.d.ts +2 -3
- package/dist-node/pool.d.ts.map +1 -1
- package/dist-node/pool.js +18 -16
- package/dist-node/pool.js.map +1 -1
- package/dist-node/predictor.js +1 -1
- package/dist-node/predictor.js.map +1 -1
- package/dist-node/resample.d.ts +18 -18
- package/dist-node/resample.d.ts.map +1 -1
- package/dist-node/resample.js +12 -12
- package/dist-node/source/basesource.d.ts +7 -7
- package/dist-node/source/basesource.d.ts.map +1 -1
- package/dist-node/source/basesource.js +7 -7
- package/dist-node/source/basesource.js.map +1 -1
- package/dist-node/source/blockedsource.d.ts +10 -10
- package/dist-node/source/blockedsource.d.ts.map +1 -1
- package/dist-node/source/blockedsource.js +12 -9
- package/dist-node/source/blockedsource.js.map +1 -1
- package/dist-node/source/client/base.d.ts +8 -10
- package/dist-node/source/client/base.d.ts.map +1 -1
- package/dist-node/source/client/base.js +4 -3
- package/dist-node/source/client/base.js.map +1 -1
- package/dist-node/source/client/fetch.d.ts +2 -6
- package/dist-node/source/client/fetch.d.ts.map +1 -1
- package/dist-node/source/client/fetch.js +7 -2
- package/dist-node/source/client/fetch.js.map +1 -1
- package/dist-node/source/client/http.d.ts +4 -1
- package/dist-node/source/client/http.d.ts.map +1 -1
- package/dist-node/source/client/http.js +4 -4
- package/dist-node/source/client/http.js.map +1 -1
- package/dist-node/source/client/xhr.d.ts +4 -1
- package/dist-node/source/client/xhr.d.ts.map +1 -1
- package/dist-node/source/client/xhr.js +1 -1
- package/dist-node/source/client/xhr.js.map +1 -1
- package/dist-node/source/file.js +4 -4
- package/dist-node/source/file.js.map +1 -1
- package/dist-node/source/filereader.js +1 -1
- package/dist-node/source/filereader.js.map +1 -1
- package/dist-node/source/httputils.d.ts +14 -6
- package/dist-node/source/httputils.d.ts.map +1 -1
- package/dist-node/source/httputils.js +13 -12
- package/dist-node/source/httputils.js.map +1 -1
- package/dist-node/source/remote.d.ts +31 -22
- package/dist-node/source/remote.d.ts.map +1 -1
- package/dist-node/source/remote.js +37 -13
- package/dist-node/source/remote.js.map +1 -1
- package/dist-node/utils.d.ts +7 -1
- package/dist-node/utils.d.ts.map +1 -1
- package/dist-node/utils.js +6 -0
- package/dist-node/utils.js.map +1 -1
- package/dist-node/worker/create.js +1 -1
- package/dist-node/worker/create.js.map +1 -1
- package/package.json +3 -54
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geotiff.d.ts","sourceRoot":"","sources":["../src/geotiff.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"geotiff.d.ts","sourceRoot":"","sources":["../src/geotiff.js"],"names":[],"mappings":"AAsnBA;;;;;;;;GAQG;AACH,6BAPW,MAAM,YACN,mBAAmB,WAEnB,WAAW,GAET,OAAO,CAAC,OAAO,CAAC,CAI5B;AAED;;;;;;;;GAQG;AACH,yCAPW,UAAU,YACV,mBAAmB,WAEnB,WAAW,GAET,OAAO,CAAC,OAAO,CAAC,CAI5B;AAED;;;;;;;GAOG;AACH,6CALW,WAAW,WACX,WAAW,GAET,OAAO,CAAC,OAAO,CAAC,CAI5B;AAED;;;;;;;;;;;GAWG;AACH,+BALW,MAAM,WACN,WAAW,GAET,OAAO,CAAC,OAAO,CAAC,CAI5B;AAED;;;;;;;;;GASG;AACH,+BALW,IAAI,GAAC,IAAI,WACT,WAAW,GAET,OAAO,CAAC,OAAO,CAAC,CAI5B;AAED;;;;;;;;;;GAUG;AACH,kCATW,MAAM,iBACN,MAAM,EAAE,YACR,mBAAmB,WAGnB,WAAW,GAET,OAAO,CAAC,YAAY,CAAC,CASjC;AAED;;;;;GAKG;AACH,0DAHW,MAAM,GACJ,WAAW,CAIvB;;;yBAxrBY,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY;yBAK1G;IAAE,MAAM,EAAC,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;;;;;;uCAOhC,UAAU,GAAG,UAAU;;;;;;4CAOvB,UAAU,EAAE,GAAG,UAAU;;;;;;+BAOzB,wBAAwB,GAAG,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6RrE;;;GAGG;AAEH;;GAEG;AACH;IA8IE;;;;;;;OAOG;IACH,0BALW,UAAU,YACV,cAAc,WACd,WAAW,oBAmCrB;IArLD;;;;;;;;OAQG;IACH,oBAPW,UAAU,gBACV,OAAO,WACP,OAAO,kBACP,MAAM,YAEN,cAAc,EAYxB;IARC,mBAAoB;IACpB,iCAAgF;IAChF,sBAAgC;IAChC,iBAAsB;IACtB,uBAAoC;IACpC,eAAmC;IACnC,mBAAqB;IACrB,oBAAuB;IAGzB,qDAWC;IAED,qCAkCC;IAuCD;;;;OAIG;IACH,kBAFa,OAAO,CAAC,MAAM,CAAC,CA6B3B;IA4CD;;;;OAIG;IACH,+BAKC;CACF;2BAthBwC,yBAAyB;AA2hBlE;;;GAGG;AACH;IACE;;;;OAIG;IACH,sBAHW,OAAO,iBACP,OAAO,EAAE,EAWnB;IAPC,kBAAwB;IACxB,yBAAkC;IAClC,sBAAkD;IAElD,sFAAkC;IAClC,mCAAyC;IACzC,0BAAsB;IAGxB,+FAMC;IA8CC,kCAA8C;CAIjD;yBAlmBwB,cAAc;4BAFmB,cAAc;qBAGnD,UAAU;2BACQ,wBAAwB;2BAAxB,wBAAwB;0BACrC,cAAc;iBAfvB,WAAW;yBAHH,mBAAmB;6BASH,yBAAyB;AAwMlE;IACE;;;OAGG;IACH,kBAHW,MAAM,GACJ,OAAO,CAAC,YAAY,CAAC,CAIjC;IAED;;OAEG;IACH,iBAFa,OAAO,CAAC,MAAM,CAAC,CAI3B;IAED;;;;;;OAMG;IAEH;;;;;;;;;;;OAWG;IACH,sBAHW,kBAAkB;;;;;;;;;;;;;;KAA2B,GAC3C,OAAO,CAAC,gBAAgB,CAAC,CA8FrC;CACF;gCA/T+B,wBAAwB;yCARf,yBAAyB;sBAT5C,gBAAgB"}
|
package/dist-module/geotiff.js
CHANGED
|
@@ -15,6 +15,7 @@ import * as globals from './globals.js';
|
|
|
15
15
|
import * as rgb from './rgb.js';
|
|
16
16
|
import { getDecoder, addDecoder } from './compression/index.js';
|
|
17
17
|
import { setLogger } from './logging.js';
|
|
18
|
+
/** @import { BaseSource } from './source/basesource.js' */
|
|
18
19
|
export { globals };
|
|
19
20
|
export { registerTag };
|
|
20
21
|
export { rgb };
|
|
@@ -46,7 +47,69 @@ export { setLogger };
|
|
|
46
47
|
* `(TypedArray | TypedArray[]) & { height: number; width: number}`
|
|
47
48
|
* @typedef {TypedArrayWithDimensions | TypedArrayArrayWithDimensions} ReadRasterResult
|
|
48
49
|
*/
|
|
50
|
+
/**
|
|
51
|
+
* @typedef {Object} ReadRastersOptions
|
|
52
|
+
* @property {Array<number>} [window] the subset to read data from in pixels. Whole window if not specified.
|
|
53
|
+
* @property {Array<number>} [samples] the selection of samples to read from. Default is all samples.
|
|
54
|
+
* All samples if not specified.
|
|
55
|
+
* @property {Pool|null} [pool=null] The optional decoder pool to use.
|
|
56
|
+
* @property {number} [width] The desired width of the output. When the width is not the
|
|
57
|
+
* same as the images, resampling will be performed.
|
|
58
|
+
* @property {number} [height] The desired height of the output. When the width is not the
|
|
59
|
+
* same as the images, resampling will be performed.
|
|
60
|
+
* @property {string} [resampleMethod='nearest'] The desired resampling method.
|
|
61
|
+
* @property {AbortSignal} [signal] An AbortSignal that may be signalled if the request is
|
|
62
|
+
* to be aborted
|
|
63
|
+
* @property {number|number[]} [fillValue] The value to use for parts of the image
|
|
64
|
+
* outside of the images extent. When multiple samples are requested and `interleave` is
|
|
65
|
+
* `false`, an array of fill values can be passed.
|
|
66
|
+
* @property {boolean|true|false} [interleave] whether the data shall be read
|
|
67
|
+
* in one single array or separate arrays.
|
|
68
|
+
*/
|
|
69
|
+
/**
|
|
70
|
+
* @typedef {Object} ReadRGBOptions
|
|
71
|
+
* @property {Array<number>} [window] the subset to read data from in pixels. Whole window if not specified.
|
|
72
|
+
* @property {Pool|null} [pool=null] The optional decoder pool to use.
|
|
73
|
+
* @property {number} [width] The desired width of the output. When the width is no the
|
|
74
|
+
* same as the images, resampling will be performed.
|
|
75
|
+
* @property {number} [height] The desired height of the output. When the width is no the
|
|
76
|
+
* same as the images, resampling will be performed.
|
|
77
|
+
* @property {string} [resampleMethod='nearest'] The desired resampling method.
|
|
78
|
+
* @property {boolean} [enableAlpha=false] Enable reading alpha channel if present.
|
|
79
|
+
* @property {AbortSignal} [signal] An AbortSignal that may be signalled if the request is
|
|
80
|
+
* to be aborted
|
|
81
|
+
* @property {boolean|true|false} [interleave] whether the data shall be read
|
|
82
|
+
* in one single array or separate arrays.
|
|
83
|
+
*/
|
|
84
|
+
/**
|
|
85
|
+
* @typedef {Object} BlockedSourceOptions
|
|
86
|
+
* @property {number|null} [blockSize=null] Block size for a BlockedSource.
|
|
87
|
+
* @property {number} [cacheSize=100] The number of blocks to cache.
|
|
88
|
+
*/
|
|
89
|
+
/**
|
|
90
|
+
* @typedef {Object} RemoteSourceOptions
|
|
91
|
+
* @property {Object} [headers={}] Additional headers to add to each request
|
|
92
|
+
* @property {number} [maxRanges=0] Maximum number of ranges to request in a single HTTP request. 0 means no multi-range requests.
|
|
93
|
+
* @property {boolean} [allowFullFile=false] Whether to allow full file responses when requesting ranges
|
|
94
|
+
* @property {boolean} [forceXHR=false] When the Fetch API would be used, force using XMLHttpRequest instead.
|
|
95
|
+
*/
|
|
96
|
+
/**
|
|
97
|
+
* @overload
|
|
98
|
+
* @param {DataSlice} dataSlice
|
|
99
|
+
* @param {0x0002} fieldType
|
|
100
|
+
* @param {number} count
|
|
101
|
+
* @param {number} offset
|
|
102
|
+
* @returns {string}
|
|
103
|
+
*/
|
|
104
|
+
/**
|
|
105
|
+
* @param {DataSlice} dataSlice
|
|
106
|
+
* @param {import('./globals.js').FieldType} fieldType
|
|
107
|
+
* @param {number} count
|
|
108
|
+
* @param {number} offset
|
|
109
|
+
* @returns {TypedArray|Array<number>|string}
|
|
110
|
+
*/
|
|
49
111
|
function getValues(dataSlice, fieldType, count, offset) {
|
|
112
|
+
/** @type {TypedArray|Array|null} */
|
|
50
113
|
let values = null;
|
|
51
114
|
let readMethod = null;
|
|
52
115
|
const fieldTypeLength = getFieldTypeSize(fieldType);
|
|
@@ -104,7 +167,10 @@ function getValues(dataSlice, fieldType, count, offset) {
|
|
|
104
167
|
readMethod = dataSlice.readFloat64;
|
|
105
168
|
break;
|
|
106
169
|
default:
|
|
107
|
-
|
|
170
|
+
// will throw below
|
|
171
|
+
}
|
|
172
|
+
if (values === null || readMethod === null) {
|
|
173
|
+
throw new RangeError(`Invalid field type: ${fieldType}`);
|
|
108
174
|
}
|
|
109
175
|
// normal fields
|
|
110
176
|
if (!(fieldType === fieldTypes.RATIONAL || fieldType === fieldTypes.SRATIONAL)) {
|
|
@@ -119,7 +185,7 @@ function getValues(dataSlice, fieldType, count, offset) {
|
|
|
119
185
|
}
|
|
120
186
|
}
|
|
121
187
|
if (fieldType === fieldTypes.ASCII) {
|
|
122
|
-
return new TextDecoder('utf-8').decode(values);
|
|
188
|
+
return new TextDecoder('utf-8').decode(/** @type {Uint8Array} */ (values));
|
|
123
189
|
}
|
|
124
190
|
return values;
|
|
125
191
|
}
|
|
@@ -134,6 +200,26 @@ class GeoTIFFImageIndexError extends Error {
|
|
|
134
200
|
}
|
|
135
201
|
}
|
|
136
202
|
class GeoTIFFBase {
|
|
203
|
+
/**
|
|
204
|
+
* @param {number} [_index=0] the index of the image to return.
|
|
205
|
+
* @returns {Promise<GeoTIFFImage>} the image at the given index
|
|
206
|
+
*/
|
|
207
|
+
async getImage(_index = 0) {
|
|
208
|
+
throw new Error('Not implemented');
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* @returns {Promise<number>} the number of internal subfile images
|
|
212
|
+
*/
|
|
213
|
+
async getImageCount() {
|
|
214
|
+
throw new Error('Not implemented');
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* @typedef {Object} ReadRastersWindowOptions
|
|
218
|
+
* @property {number} [resX] desired Y resolution (world units per pixel)
|
|
219
|
+
* @property {number} [resY] desired X resolution (world units per pixel)
|
|
220
|
+
* @property {Array<number>} [bbox] the subset to read data from in
|
|
221
|
+
* geographical coordinates. Whole image if not specified.
|
|
222
|
+
*/
|
|
137
223
|
/**
|
|
138
224
|
* (experimental) Reads raster data from the best fitting image. This function uses
|
|
139
225
|
* the image with the lowest resolution that is still a higher resolution than the
|
|
@@ -143,7 +229,7 @@ class GeoTIFFBase {
|
|
|
143
229
|
* Then, the [readRasters]{@link GeoTIFFImage#readRasters} method of the selected
|
|
144
230
|
* image is called and the result returned.
|
|
145
231
|
* @see GeoTIFFImage.readRasters
|
|
146
|
-
* @param {
|
|
232
|
+
* @param {ReadRastersOptions & ReadRastersWindowOptions} options optional parameters
|
|
147
233
|
* @returns {Promise<ReadRasterResult>} the decoded array(s), with `height` and `width`, as a promise
|
|
148
234
|
*/
|
|
149
235
|
async readRasters(options = {}) {
|
|
@@ -233,12 +319,11 @@ class GeoTIFFBase {
|
|
|
233
319
|
*/
|
|
234
320
|
/**
|
|
235
321
|
* The abstraction for a whole GeoTIFF file.
|
|
236
|
-
* @augments GeoTIFFBase
|
|
237
322
|
*/
|
|
238
323
|
class GeoTIFF extends GeoTIFFBase {
|
|
239
324
|
/**
|
|
240
325
|
* @constructor
|
|
241
|
-
* @param {
|
|
326
|
+
* @param {BaseSource} source The datasource to read from.
|
|
242
327
|
* @param {boolean} littleEndian Whether the image uses little endian.
|
|
243
328
|
* @param {boolean} bigTiff Whether the image uses bigTIFF conventions.
|
|
244
329
|
* @param {number} firstIFDOffset The numeric byte-offset from the start of the image
|
|
@@ -308,7 +393,7 @@ class GeoTIFF extends GeoTIFFBase {
|
|
|
308
393
|
* @returns {Promise<GeoTIFFImage>} the image at the given index
|
|
309
394
|
*/
|
|
310
395
|
async getImage(index = 0) {
|
|
311
|
-
return new GeoTIFFImage(await this.requestIFD(index), this.
|
|
396
|
+
return new GeoTIFFImage(await this.requestIFD(index), this.littleEndian, this.cache, this.source);
|
|
312
397
|
}
|
|
313
398
|
/**
|
|
314
399
|
* Returns the count of the internal subfiles.
|
|
@@ -356,6 +441,7 @@ class GeoTIFF extends GeoTIFFBase {
|
|
|
356
441
|
slice = await this.getSlice(offset, metadataSize);
|
|
357
442
|
}
|
|
358
443
|
const fullString = getValues(slice, fieldTypes.ASCII, metadataSize, offset);
|
|
444
|
+
/** @type {Object} */
|
|
359
445
|
this.ghostValues = {};
|
|
360
446
|
fullString
|
|
361
447
|
.split('\n')
|
|
@@ -370,7 +456,7 @@ class GeoTIFF extends GeoTIFFBase {
|
|
|
370
456
|
/**
|
|
371
457
|
* Parse a (Geo)TIFF file from the given source.
|
|
372
458
|
*
|
|
373
|
-
* @param {
|
|
459
|
+
* @param {BaseSource} source The source of data to parse from.
|
|
374
460
|
* @param {GeoTIFFOptions} [options] Additional options.
|
|
375
461
|
* @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is
|
|
376
462
|
* to be aborted
|
|
@@ -455,7 +541,11 @@ class MultiGeoTIFF extends GeoTIFFBase {
|
|
|
455
541
|
* @returns {Promise<GeoTIFFImage>} the image at the given index
|
|
456
542
|
*/
|
|
457
543
|
async getImage(index = 0) {
|
|
544
|
+
// Initialize this.imageCounts if not yet done
|
|
458
545
|
await this.getImageCount();
|
|
546
|
+
if (!this.imageCounts) {
|
|
547
|
+
throw new Error('Image counts not available');
|
|
548
|
+
}
|
|
459
549
|
await this.parseFileDirectoriesPerFile();
|
|
460
550
|
let visited = 0;
|
|
461
551
|
let relativeIndex = 0;
|
|
@@ -463,7 +553,7 @@ class MultiGeoTIFF extends GeoTIFFBase {
|
|
|
463
553
|
const imageFile = this.imageFiles[i];
|
|
464
554
|
for (let ii = 0; ii < this.imageCounts[i]; ii++) {
|
|
465
555
|
if (index === visited) {
|
|
466
|
-
return new GeoTIFFImage(await imageFile.requestIFD(relativeIndex), imageFile.
|
|
556
|
+
return new GeoTIFFImage(await imageFile.requestIFD(relativeIndex), imageFile.littleEndian, imageFile.cache, imageFile.source);
|
|
467
557
|
}
|
|
468
558
|
visited++;
|
|
469
559
|
relativeIndex++;
|
|
@@ -492,26 +582,26 @@ export { MultiGeoTIFF };
|
|
|
492
582
|
/**
|
|
493
583
|
* Creates a new GeoTIFF from a remote URL.
|
|
494
584
|
* @param {string} url The URL to access the image from
|
|
495
|
-
* @param {
|
|
585
|
+
* @param {RemoteSourceOptions} [options] Additional options to pass to the source.
|
|
496
586
|
* See {@link makeRemoteSource} for details.
|
|
497
587
|
* @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is
|
|
498
588
|
* to be aborted
|
|
499
589
|
* @returns {Promise<GeoTIFF>} The resulting GeoTIFF file.
|
|
500
590
|
*/
|
|
501
591
|
export async function fromUrl(url, options = {}, signal) {
|
|
502
|
-
return GeoTIFF.fromSource(makeRemoteSource(url, options), signal);
|
|
592
|
+
return GeoTIFF.fromSource(makeRemoteSource(url, options), undefined, signal);
|
|
503
593
|
}
|
|
504
594
|
/**
|
|
505
595
|
* Creates a new GeoTIFF from a custom {@link BaseClient}.
|
|
506
596
|
* @param {BaseClient} client The client.
|
|
507
|
-
* @param {
|
|
597
|
+
* @param {RemoteSourceOptions} [options] Additional options to pass to the source.
|
|
508
598
|
* See {@link makeRemoteSource} for details.
|
|
509
599
|
* @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is
|
|
510
600
|
* to be aborted
|
|
511
601
|
* @returns {Promise<GeoTIFF>} The resulting GeoTIFF file.
|
|
512
602
|
*/
|
|
513
603
|
export async function fromCustomClient(client, options = {}, signal) {
|
|
514
|
-
return GeoTIFF.fromSource(makeCustomSource(client, options), signal);
|
|
604
|
+
return GeoTIFF.fromSource(makeCustomSource(client, options), undefined, signal);
|
|
515
605
|
}
|
|
516
606
|
/**
|
|
517
607
|
* Construct a new GeoTIFF from an
|
|
@@ -522,7 +612,7 @@ export async function fromCustomClient(client, options = {}, signal) {
|
|
|
522
612
|
* @returns {Promise<GeoTIFF>} The resulting GeoTIFF file.
|
|
523
613
|
*/
|
|
524
614
|
export async function fromArrayBuffer(arrayBuffer, signal) {
|
|
525
|
-
return GeoTIFF.fromSource(makeBufferSource(arrayBuffer), signal);
|
|
615
|
+
return GeoTIFF.fromSource(makeBufferSource(arrayBuffer), undefined, signal);
|
|
526
616
|
}
|
|
527
617
|
/**
|
|
528
618
|
* Construct a GeoTIFF from a local file path. This uses the node
|
|
@@ -537,7 +627,7 @@ export async function fromArrayBuffer(arrayBuffer, signal) {
|
|
|
537
627
|
* @returns {Promise<GeoTIFF>} The resulting GeoTIFF file.
|
|
538
628
|
*/
|
|
539
629
|
export async function fromFile(path, signal) {
|
|
540
|
-
return GeoTIFF.fromSource(makeFileSource(path), signal);
|
|
630
|
+
return GeoTIFF.fromSource(makeFileSource(path), undefined, signal);
|
|
541
631
|
}
|
|
542
632
|
/**
|
|
543
633
|
* Construct a GeoTIFF from an HTML
|
|
@@ -550,13 +640,13 @@ export async function fromFile(path, signal) {
|
|
|
550
640
|
* @returns {Promise<GeoTIFF>} The resulting GeoTIFF file.
|
|
551
641
|
*/
|
|
552
642
|
export async function fromBlob(blob, signal) {
|
|
553
|
-
return GeoTIFF.fromSource(makeFileReaderSource(blob), signal);
|
|
643
|
+
return GeoTIFF.fromSource(makeFileReaderSource(blob), undefined, signal);
|
|
554
644
|
}
|
|
555
645
|
/**
|
|
556
646
|
* Construct a MultiGeoTIFF from the given URLs.
|
|
557
647
|
* @param {string} mainUrl The URL for the main file.
|
|
558
648
|
* @param {string[]} overviewUrls An array of URLs for the overview images.
|
|
559
|
-
* @param {
|
|
649
|
+
* @param {RemoteSourceOptions} [options] Additional options to pass to the source.
|
|
560
650
|
* See [makeRemoteSource]{@link module:source.makeRemoteSource}
|
|
561
651
|
* for details.
|
|
562
652
|
* @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is
|
|
@@ -564,14 +654,15 @@ export async function fromBlob(blob, signal) {
|
|
|
564
654
|
* @returns {Promise<MultiGeoTIFF>} The resulting MultiGeoTIFF file.
|
|
565
655
|
*/
|
|
566
656
|
export async function fromUrls(mainUrl, overviewUrls = [], options = {}, signal) {
|
|
567
|
-
const mainFile = await GeoTIFF.fromSource(makeRemoteSource(mainUrl, options), signal);
|
|
568
|
-
const overviewFiles = await Promise.all(overviewUrls.map((url) => GeoTIFF.fromSource(makeRemoteSource(url, options))));
|
|
657
|
+
const mainFile = await GeoTIFF.fromSource(makeRemoteSource(mainUrl, options), undefined, signal);
|
|
658
|
+
const overviewFiles = await Promise.all(overviewUrls.map((url) => GeoTIFF.fromSource(makeRemoteSource(url, options), undefined, signal)));
|
|
569
659
|
return new MultiGeoTIFF(mainFile, overviewFiles);
|
|
570
660
|
}
|
|
571
661
|
/**
|
|
572
662
|
* Main creating function for GeoTIFF files.
|
|
573
|
-
* @param {
|
|
574
|
-
* @
|
|
663
|
+
* @param {Array} values of pixel values
|
|
664
|
+
* @param {Object} metadata
|
|
665
|
+
* @returns {ArrayBuffer}
|
|
575
666
|
*/
|
|
576
667
|
export function writeArrayBuffer(values, metadata) {
|
|
577
668
|
return writeGeotiff(values, metadata);
|
|
@@ -1,87 +1,33 @@
|
|
|
1
1
|
export default GeoTIFFImage;
|
|
2
|
-
export type ReadRasterOptions = {
|
|
3
|
-
/**
|
|
4
|
-
* window] the subset to read data from in pixels.
|
|
5
|
-
*/
|
|
6
|
-
window?: number[] | undefined;
|
|
7
|
-
/**
|
|
8
|
-
* image] the subset to read data from in
|
|
9
|
-
* geographical coordinates.
|
|
10
|
-
*/
|
|
11
|
-
bbox?: number[] | undefined;
|
|
12
|
-
/**
|
|
13
|
-
* samples] the selection of samples to read from. Default is all samples.
|
|
14
|
-
*/
|
|
15
|
-
samples?: number[] | undefined;
|
|
16
|
-
/**
|
|
17
|
-
* whether the data shall be read
|
|
18
|
-
* in one single array or separate
|
|
19
|
-
* arrays.
|
|
20
|
-
*/
|
|
21
|
-
interleave?: boolean | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* The optional decoder pool to use.
|
|
24
|
-
*/
|
|
25
|
-
pool?: Pool;
|
|
26
|
-
/**
|
|
27
|
-
* The desired width of the output. When the width is not the
|
|
28
|
-
* same as the images, resampling will be performed.
|
|
29
|
-
*/
|
|
30
|
-
width?: number | undefined;
|
|
31
|
-
/**
|
|
32
|
-
* The desired height of the output. When the width is not the
|
|
33
|
-
* same as the images, resampling will be performed.
|
|
34
|
-
*/
|
|
35
|
-
height?: number | undefined;
|
|
36
|
-
/**
|
|
37
|
-
* The desired resampling method.
|
|
38
|
-
*/
|
|
39
|
-
resampleMethod?: string | undefined;
|
|
40
|
-
/**
|
|
41
|
-
* An AbortSignal that may be signalled if the request is
|
|
42
|
-
* to be aborted
|
|
43
|
-
*/
|
|
44
|
-
signal?: AbortSignal | undefined;
|
|
45
|
-
/**
|
|
46
|
-
* The value to use for parts of the image
|
|
47
|
-
* outside of the images extent. When multiple
|
|
48
|
-
* samples are requested, an array of fill values
|
|
49
|
-
* can be passed.
|
|
50
|
-
*/
|
|
51
|
-
fillValue?: number | number[] | undefined;
|
|
52
|
-
};
|
|
53
|
-
export type TypedArray = import("./geotiff.js").TypedArray;
|
|
54
|
-
export type ReadRasterResult = import("./geotiff.js").ReadRasterResult;
|
|
55
2
|
/**
|
|
56
3
|
* GeoTIFF sub-file image.
|
|
57
4
|
*/
|
|
58
5
|
declare class GeoTIFFImage {
|
|
59
6
|
/**
|
|
60
7
|
* @constructor
|
|
61
|
-
* @param {import("./imagefiledirectory
|
|
62
|
-
* @param {DataView} dataView The DataView for the underlying file.
|
|
8
|
+
* @param {import("./imagefiledirectory").ImageFileDirectory} fileDirectory The parsed file directory
|
|
63
9
|
* @param {Boolean} littleEndian Whether the file is encoded in little or big endian
|
|
64
10
|
* @param {Boolean} cache Whether or not decoded tiles shall be cached
|
|
65
|
-
* @param {import('./source/basesource').BaseSource} source The datasource to read from
|
|
11
|
+
* @param {import('./source/basesource.js').BaseSource} source The datasource to read from
|
|
66
12
|
*/
|
|
67
|
-
constructor(fileDirectory: import("./imagefiledirectory
|
|
68
|
-
fileDirectory: import("./imagefiledirectory
|
|
69
|
-
dataView: DataView<ArrayBufferLike>;
|
|
13
|
+
constructor(fileDirectory: import("./imagefiledirectory").ImageFileDirectory, littleEndian: boolean, cache: boolean, source: import("./source/basesource.js").BaseSource);
|
|
14
|
+
fileDirectory: import("./imagefiledirectory").ImageFileDirectory;
|
|
70
15
|
littleEndian: boolean;
|
|
71
16
|
tiles: {} | null;
|
|
72
17
|
isTiled: boolean;
|
|
73
|
-
|
|
74
|
-
|
|
18
|
+
/** @type {1 | 2} */
|
|
19
|
+
planarConfiguration: 1 | 2;
|
|
20
|
+
source: import("./source/basesource.js").BaseSource;
|
|
75
21
|
/**
|
|
76
22
|
* Returns the associated parsed file directory.
|
|
77
|
-
* @returns {import("./imagefiledirectory
|
|
23
|
+
* @returns {import("./imagefiledirectory").ImageFileDirectory} the parsed file directory
|
|
78
24
|
*/
|
|
79
|
-
getFileDirectory(): import("./imagefiledirectory
|
|
25
|
+
getFileDirectory(): import("./imagefiledirectory").ImageFileDirectory;
|
|
80
26
|
/**
|
|
81
27
|
* Returns the associated parsed geo keys.
|
|
82
|
-
* @returns {Record<import('./globals.js').GeoKeyName,
|
|
28
|
+
* @returns {Partial<Record<import('./globals.js').GeoKeyName, *>>|null} the parsed geo keys
|
|
83
29
|
*/
|
|
84
|
-
getGeoKeys(): Record<import("./globals.js").GeoKeyName, any
|
|
30
|
+
getGeoKeys(): Partial<Record<import("./globals.js").GeoKeyName, any>> | null;
|
|
85
31
|
/**
|
|
86
32
|
* Returns the width of the image.
|
|
87
33
|
* @returns {Number} the width of the image
|
|
@@ -142,59 +88,76 @@ declare class GeoTIFFImage {
|
|
|
142
88
|
* @param {Array} imageWindow The image window in pixel coordinates
|
|
143
89
|
* @param {Array} samples The selected samples (0-based indices)
|
|
144
90
|
* @param {TypedArray|TypedArray[]} valueArrays The array(s) to write into
|
|
145
|
-
* @param {
|
|
146
|
-
* @param {import("./geotiff").Pool|
|
|
147
|
-
* @param {number} width the width of window to be read into
|
|
148
|
-
* @param {number} height the height of window to be read into
|
|
149
|
-
* @param {
|
|
91
|
+
* @param {boolean|undefined} interleave Whether or not to write in an interleaved manner
|
|
92
|
+
* @param {import("./geotiff").Pool|import("./geotiff").BaseDecoder} poolOrDecoder the decoder or decoder pool
|
|
93
|
+
* @param {number} [width] the width of window to be read into
|
|
94
|
+
* @param {number} [height] the height of window to be read into
|
|
95
|
+
* @param {string} [resampleMethod] the resampling method to be used when interpolating
|
|
150
96
|
* @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is
|
|
151
97
|
* to be aborted
|
|
152
98
|
* @returns {Promise<ReadRasterResult>}
|
|
153
99
|
*/
|
|
154
100
|
private _readRaster;
|
|
155
101
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
102
|
+
* @overload
|
|
103
|
+
* @param {ReadRastersOptions & {interleave: true}} options optional parameters
|
|
104
|
+
* @returns {Promise<import("./geotiff").TypedArrayWithDimensions>} the decoded arrays as a promise
|
|
105
|
+
*/
|
|
106
|
+
readRasters(options: ReadRastersOptions & {
|
|
107
|
+
interleave: true;
|
|
108
|
+
}): Promise<import("./geotiff").TypedArrayWithDimensions>;
|
|
109
|
+
/**
|
|
110
|
+
* @overload
|
|
111
|
+
* @param {ReadRastersOptions & {interleave: false}} options optional parameters
|
|
112
|
+
* @returns {Promise<import("./geotiff").TypedArrayArrayWithDimensions>} the decoded arrays as a promise
|
|
113
|
+
*/
|
|
114
|
+
readRasters(options: ReadRastersOptions & {
|
|
115
|
+
interleave: false;
|
|
116
|
+
}): Promise<import("./geotiff").TypedArrayArrayWithDimensions>;
|
|
117
|
+
/**
|
|
118
|
+
* @overload
|
|
119
|
+
* @param {ReadRastersOptions & {interleave: boolean}} options optional parameters
|
|
162
120
|
* @returns {Promise<ReadRasterResult>} the decoded arrays as a promise
|
|
163
121
|
*/
|
|
164
|
-
readRasters(
|
|
122
|
+
readRasters(options: ReadRastersOptions & {
|
|
123
|
+
interleave: boolean;
|
|
124
|
+
}): Promise<ReadRasterResult>;
|
|
125
|
+
/**
|
|
126
|
+
* @overload
|
|
127
|
+
* @param {ReadRastersOptions} [options={}] optional parameters
|
|
128
|
+
* @returns {Promise<import("./geotiff").TypedArrayArrayWithDimensions>} the decoded arrays as a promise
|
|
129
|
+
*/
|
|
130
|
+
readRasters(options?: ReadRastersOptions | undefined): Promise<import("./geotiff").TypedArrayArrayWithDimensions>;
|
|
165
131
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
* @
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
* @
|
|
183
|
-
* @param {boolean}
|
|
184
|
-
* @param {AbortSignal} [options.signal] An AbortSignal that may be signalled if the request is
|
|
185
|
-
* to be aborted
|
|
132
|
+
* @overload
|
|
133
|
+
* @param {ReadRGBOptions & {interleave: true}} options optional parameters
|
|
134
|
+
* @returns {Promise<import("./geotiff").TypedArrayWithDimensions>} the RGB array as a Promise
|
|
135
|
+
*/
|
|
136
|
+
readRGB(options: ReadRGBOptions & {
|
|
137
|
+
interleave: true;
|
|
138
|
+
}): Promise<import("./geotiff").TypedArrayWithDimensions>;
|
|
139
|
+
/**
|
|
140
|
+
* @overload
|
|
141
|
+
* @param {ReadRGBOptions & {interleave: false}} options optional parameters
|
|
142
|
+
* @returns {Promise<import("./geotiff").TypedArrayArrayWithDimensions>} the RGB array as a Promise
|
|
143
|
+
*/
|
|
144
|
+
readRGB(options: ReadRGBOptions & {
|
|
145
|
+
interleave: false;
|
|
146
|
+
}): Promise<import("./geotiff").TypedArrayArrayWithDimensions>;
|
|
147
|
+
/**
|
|
148
|
+
* @overload
|
|
149
|
+
* @param {ReadRGBOptions & {interleave: boolean}} options optional parameters
|
|
186
150
|
* @returns {Promise<ReadRasterResult>} the RGB array as a Promise
|
|
187
151
|
*/
|
|
188
|
-
readRGB(
|
|
189
|
-
|
|
190
|
-
interleave?: boolean | undefined;
|
|
191
|
-
pool?: import("./pool.js").default | undefined;
|
|
192
|
-
width?: number | undefined;
|
|
193
|
-
height?: number | undefined;
|
|
194
|
-
resampleMethod?: string | undefined;
|
|
195
|
-
enableAlpha?: boolean | undefined;
|
|
196
|
-
signal?: AbortSignal | undefined;
|
|
152
|
+
readRGB(options: ReadRGBOptions & {
|
|
153
|
+
interleave: boolean;
|
|
197
154
|
}): Promise<ReadRasterResult>;
|
|
155
|
+
/**
|
|
156
|
+
* @overload
|
|
157
|
+
* @param {ReadRGBOptions} [options={}] optional parameters
|
|
158
|
+
* @returns {Promise<import("./geotiff").TypedArrayArrayWithDimensions>} the RGB array as a Promise
|
|
159
|
+
*/
|
|
160
|
+
readRGB(options?: ReadRGBOptions | undefined): Promise<import("./geotiff").TypedArrayArrayWithDimensions>;
|
|
198
161
|
/**
|
|
199
162
|
* Returns an array of tiepoints.
|
|
200
163
|
* @returns {Promise<Object[]>}
|
|
@@ -206,10 +169,10 @@ declare class GeoTIFFImage {
|
|
|
206
169
|
* If sample is passed to null, dataset-level metadata will be returned.
|
|
207
170
|
* Otherwise only metadata specific to the provided sample will be returned.
|
|
208
171
|
*
|
|
209
|
-
* @param {number} [sample=null] The sample index.
|
|
172
|
+
* @param {number|null} [sample=null] The sample index.
|
|
210
173
|
* @returns {Promise<Object>}
|
|
211
174
|
*/
|
|
212
|
-
getGDALMetadata(sample?: number): Promise<Object>;
|
|
175
|
+
getGDALMetadata(sample?: number | null): Promise<Object>;
|
|
213
176
|
/**
|
|
214
177
|
* Returns the GDAL nodata value
|
|
215
178
|
* @returns {number|null}
|
|
@@ -224,12 +187,12 @@ declare class GeoTIFFImage {
|
|
|
224
187
|
/**
|
|
225
188
|
* Returns the image resolution as a XYZ-vector. When the image has no affine
|
|
226
189
|
* transformation, then an exception is thrown.
|
|
227
|
-
* @param {GeoTIFFImage} [referenceImage=null] A reference image to calculate the resolution from
|
|
190
|
+
* @param {GeoTIFFImage|null} [referenceImage=null] A reference image to calculate the resolution from
|
|
228
191
|
* in cases when the current image does not have the
|
|
229
192
|
* required tags on its own.
|
|
230
193
|
* @returns {Array<number>} The resolution as a vector
|
|
231
194
|
*/
|
|
232
|
-
getResolution(referenceImage?: GeoTIFFImage): Array<number>;
|
|
195
|
+
getResolution(referenceImage?: GeoTIFFImage | null): Array<number>;
|
|
233
196
|
/**
|
|
234
197
|
* Returns whether or not the pixels of the image depict an area (or point).
|
|
235
198
|
* @returns {Boolean} Whether the pixels are a point
|
|
@@ -245,4 +208,7 @@ declare class GeoTIFFImage {
|
|
|
245
208
|
*/
|
|
246
209
|
getBoundingBox(tilegrid?: boolean): Array<number>;
|
|
247
210
|
}
|
|
211
|
+
import type { ReadRastersOptions } from "./geotiff";
|
|
212
|
+
import type { ReadRasterResult } from "./geotiff";
|
|
213
|
+
import type { ReadRGBOptions } from "./geotiff";
|
|
248
214
|
//# sourceMappingURL=geotiffimage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geotiffimage.d.ts","sourceRoot":"","sources":["../src/geotiffimage.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"geotiffimage.d.ts","sourceRoot":"","sources":["../src/geotiffimage.js"],"names":[],"mappings":";AAuJA;;GAEG;AACH;IACE;;;;;;OAMG;IACH,2BALW,OAAO,sBAAsB,EAAE,kBAAkB,iDAGjD,OAAO,wBAAwB,EAAE,UAAU,EAerD;IAZC,iEAAkC;IAClC,sBAAgC;IAChC,iBAA8B;IAC9B,iBAAoD;IAKpD,oBAAoB;IACpB,qBADW,CAAC,GAAG,CAAC,CAC8B;IAE9C,oDAAoB;IAGtB;;;OAGG;IACH,oBAFa,OAAO,sBAAsB,EAAE,kBAAkB,CAI7D;IAED;;;OAGG;IACH,cAFa,OAAO,CAAC,MAAM,CAAC,OAAO,cAAc,EAAE,UAAU,EAAE,GAAC,CAAC,CAAC,GAAC,IAAI,CAItE;IAED;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,oBAEC;IAED;;;OAGG;IACH,6BAGC;IAED;;;OAGG;IACH,uBAEC;IAED;;;OAGG;IACH,wBAQC;IAED,wBAEC;IAED,+BAMC;IAED;;;;OAIG;IACH,2BAQC;IAED,kCAMC;IAED,6FAyCC;IAED,2CAGC;IAED,4CAEC;IAED,mMAIC;IAED;;;;;;;;;OASG;IACH,oEALW,OAAO,WAAW,EAAE,IAAI,GAAC,OAAO,WAAW,EAAE,WAAW,WACxD,WAAW,GAET,OAAO,CAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAC,CAAC,CAqE/E;IAED;;;;;;;;;;;;;;OAcG;IACH,oBA6HC;;;;;;IAGE,qBACQ,kBAAkB,GAAG;QAAC,UAAU,EAAE,IAAI,CAAA;KAAC,GACrC,OAAO,CAAC,OAAO,WAAW,EAAE,wBAAwB,CAAC,CACjE;;;;;;IAGE,qBACQ,kBAAkB,GAAG;QAAC,UAAU,EAAE,KAAK,CAAA;KAAC,GACtC,OAAO,CAAC,OAAO,WAAW,EAAE,6BAA6B,CAAC,CACtE;;;;;;IAGE,qBACQ,kBAAkB,GAAG;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC,GACxC,OAAO,CAAC,gBAAgB,CAAC,CACrC;;;;;;IAGE,uDAEU,OAAO,CAAC,OAAO,WAAW,EAAE,6BAA6B,CAAC,CACtE;;;;;;IA+EE,iBACQ,cAAc,GAAG;QAAC,UAAU,EAAE,IAAI,CAAA;KAAC,GACjC,OAAO,CAAC,OAAO,WAAW,EAAE,wBAAwB,CAAC,CACjE;;;;;;IAGE,iBACQ,cAAc,GAAG;QAAC,UAAU,EAAE,KAAK,CAAA;KAAC,GAClC,OAAO,CAAC,OAAO,WAAW,EAAE,6BAA6B,CAAC,CACtE;;;;;;IAGE,iBACQ,cAAc,GAAG;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC,GACpC,OAAO,CAAC,gBAAgB,CAAC,CACrC;;;;;;IAGE,+CAEU,OAAO,CAAC,OAAO,WAAW,EAAE,6BAA6B,CAAC,CACtE;IA2HD;;;OAGG;IACH,gBAFa,OAAO,CAAC,MAAM,EAAE,CAAC,CAoB7B;IAED;;;;;;;;OAQG;IACH,yBAHW,MAAM,GAAC,IAAI,GACT,OAAO,CAAC,MAAM,CAAC,CAsB3B;IAED;;;OAGG;IACH,iBAFa,MAAM,GAAC,IAAI,CAQvB;IAED;;;;OAIG;IACH,aAFa,KAAK,CAAC,MAAM,CAAC,CAoBzB;IAED;;;;;;;OAOG;IACH,+BALW,YAAY,GAAC,IAAI,GAGf,KAAK,CAAC,MAAM,CAAC,CAuCzB;IAED;;;OAGG;IACH,uBAEC;IAED;;;;;;;OAOG;IACH,0BAJW,OAAO,GAEL,KAAK,CAAC,MAAM,CAAC,CAgDzB;CACF;wCA79BqC,WAAW;sCADb,WAAW;oCAEb,WAAW"}
|