ol-stac 0.0.0

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 (107) hide show
  1. package/.eslintignore +2 -0
  2. package/.github/workflows/deploy.yml +67 -0
  3. package/.github/workflows/publish.yml +32 -0
  4. package/.github/workflows/release.yml +21 -0
  5. package/.github/workflows/test.yml +85 -0
  6. package/CHANGELOG.md +14 -0
  7. package/DEVELOPING.md +104 -0
  8. package/LICENSE.md +201 -0
  9. package/README.md +43 -0
  10. package/config/jsdoc/api/conf.json +38 -0
  11. package/config/jsdoc/api/index.md +1 -0
  12. package/config/jsdoc/api/readme.md +65 -0
  13. package/config/jsdoc/api/template/README.md +3 -0
  14. package/config/jsdoc/api/template/publish.js +743 -0
  15. package/config/jsdoc/api/template/static/scripts/linenumber.js +11 -0
  16. package/config/jsdoc/api/template/static/scripts/main.js +305 -0
  17. package/config/jsdoc/api/template/static/scripts/prettify/Apache-License-2.0.txt +202 -0
  18. package/config/jsdoc/api/template/static/scripts/prettify/lang-css.js +2 -0
  19. package/config/jsdoc/api/template/static/scripts/prettify/prettify.js +28 -0
  20. package/config/jsdoc/api/template/static/styles/carbon.css +65 -0
  21. package/config/jsdoc/api/template/static/styles/jaguar.css +512 -0
  22. package/config/jsdoc/api/template/static/styles/prettify-jsdoc.css +111 -0
  23. package/config/jsdoc/api/template/static/styles/prettify-tomorrow.css +132 -0
  24. package/config/jsdoc/api/template/static/theme +1 -0
  25. package/config/jsdoc/api/template/tmpl/container.tmpl +205 -0
  26. package/config/jsdoc/api/template/tmpl/details.tmpl +84 -0
  27. package/config/jsdoc/api/template/tmpl/example.tmpl +2 -0
  28. package/config/jsdoc/api/template/tmpl/examples.tmpl +16 -0
  29. package/config/jsdoc/api/template/tmpl/exceptions.tmpl +30 -0
  30. package/config/jsdoc/api/template/tmpl/layout.tmpl +92 -0
  31. package/config/jsdoc/api/template/tmpl/mainpage.tmpl +14 -0
  32. package/config/jsdoc/api/template/tmpl/members.tmpl +38 -0
  33. package/config/jsdoc/api/template/tmpl/method.tmpl +132 -0
  34. package/config/jsdoc/api/template/tmpl/navigation.tmpl +59 -0
  35. package/config/jsdoc/api/template/tmpl/observables.tmpl +39 -0
  36. package/config/jsdoc/api/template/tmpl/params.tmpl +109 -0
  37. package/config/jsdoc/api/template/tmpl/properties.tmpl +85 -0
  38. package/config/jsdoc/api/template/tmpl/returns.tmpl +72 -0
  39. package/config/jsdoc/api/template/tmpl/source.tmpl +8 -0
  40. package/config/jsdoc/api/template/tmpl/stability.tmpl +7 -0
  41. package/config/jsdoc/api/template/tmpl/tutorial.tmpl +19 -0
  42. package/config/jsdoc/api/template/tmpl/type.tmpl +7 -0
  43. package/config/jsdoc/info/conf.json +22 -0
  44. package/config/jsdoc/info/publish.js +175 -0
  45. package/config/jsdoc/package.json +4 -0
  46. package/config/jsdoc/plugins/api.cjs +181 -0
  47. package/config/jsdoc/plugins/default-export.cjs +35 -0
  48. package/config/jsdoc/plugins/define-plugin.cjs +33 -0
  49. package/config/jsdoc/plugins/events.cjs +39 -0
  50. package/config/jsdoc/plugins/inline-options.cjs +102 -0
  51. package/config/jsdoc/plugins/markdown.cjs +119 -0
  52. package/config/jsdoc/plugins/observable.cjs +69 -0
  53. package/config/jsdoc/plugins/virtual-plugin.cjs +16 -0
  54. package/config/rollup-full-build.js +24 -0
  55. package/config/tsconfig-build.json +25 -0
  56. package/examples/.eslintrc +29 -0
  57. package/examples/index.html +100 -0
  58. package/examples/index.js +109 -0
  59. package/examples/planetary-computer.html +14 -0
  60. package/examples/planetary-computer.js +53 -0
  61. package/examples/resources/Jugl.js +15 -0
  62. package/examples/resources/common.js +111 -0
  63. package/examples/stac-collection-webmaplinks.html +9 -0
  64. package/examples/stac-collection-webmaplinks.js +55 -0
  65. package/examples/stac-item-from-object.html +9 -0
  66. package/examples/stac-item-from-object.js +102 -0
  67. package/examples/stac-item-tileserver.html +9 -0
  68. package/examples/stac-item-tileserver.js +34 -0
  69. package/examples/stac-item.html +9 -0
  70. package/examples/stac-item.js +45 -0
  71. package/examples/stac-itemcollection.html +11 -0
  72. package/examples/stac-itemcollection.js +39 -0
  73. package/examples/templates/example.html +206 -0
  74. package/examples/templates/readme.md +3 -0
  75. package/examples/webpack/config.mjs +69 -0
  76. package/examples/webpack/example-builder.js +410 -0
  77. package/package.json +107 -0
  78. package/site/build.js +26 -0
  79. package/site/layouts/default.hbs +78 -0
  80. package/site/src/doc/faq.md +8 -0
  81. package/site/src/doc/index.md +22 -0
  82. package/site/src/doc/quickstart.md +121 -0
  83. package/site/src/doc/tutorials/index.md +8 -0
  84. package/site/src/download/index.hbs +62 -0
  85. package/site/src/favicon.ico +0 -0
  86. package/site/src/index.hbs +71 -0
  87. package/site/src/theme/index.css +26 -0
  88. package/site/src/theme/site.css +531 -0
  89. package/src/ol/events/ErrorEvent.js +25 -0
  90. package/src/ol/layer/STAC.js +780 -0
  91. package/src/ol/layer/stacUtil.js +169 -0
  92. package/src/ol/source/GeoTIFF2.js +47 -0
  93. package/tasks/.eslintrc +5 -0
  94. package/tasks/build-website.sh +90 -0
  95. package/tasks/create-release.js +107 -0
  96. package/tasks/generate-index.js +125 -0
  97. package/tasks/generate-info.js +189 -0
  98. package/tasks/get-latest-release.js +36 -0
  99. package/tasks/newest-tag.js +52 -0
  100. package/tasks/prepare-package.js +46 -0
  101. package/tasks/publish.sh +90 -0
  102. package/test/README.md +56 -0
  103. package/test/browser/.eslintrc +14 -0
  104. package/test/browser/karma.config.cjs +94 -0
  105. package/test/browser/spec/ol/layer/STAC.test.js +18 -0
  106. package/test/browser/test-extensions.js +419 -0
  107. package/tsconfig.json +62 -0
@@ -0,0 +1,531 @@
1
+ @import url(https://fonts.googleapis.com/css?family=Quattrocento+Sans:400,400italic,700);
2
+
3
+ body {
4
+ font-family: 'Quattrocento Sans', sans-serif;
5
+ font-size: 16px;
6
+ color: var(--ol-foreground-color);
7
+ padding-top: 54px;
8
+ }
9
+
10
+ h1,
11
+ h2,
12
+ h3,
13
+ h4,
14
+ h5,
15
+ h6,
16
+ .h1,
17
+ .h2,
18
+ .h3,
19
+ .h4,
20
+ .h5,
21
+ .h6 {
22
+ font-weight: 700
23
+ }
24
+
25
+ h1,
26
+ .row h1 {
27
+ margin-top: 30px;
28
+ margin-bottom: 20px;
29
+ }
30
+
31
+ h1.topic {
32
+ font-size: 1.5rem;
33
+ color: var(--ol-subtle-foreground-color);
34
+ text-transform: uppercase;
35
+ }
36
+
37
+ code {
38
+ color: var(--ol-foreground-color);
39
+ background-color: var(--ol-accent-background-color);
40
+ padding: 0.2em 0.4em;
41
+ border-radius: 3px;
42
+ }
43
+
44
+ a>code,
45
+ pre>code {
46
+ color: inherit;
47
+ background-color: initial;
48
+ padding: initial;
49
+ border-radius: initial;
50
+ }
51
+
52
+ a {
53
+ color: var(--ol-brand-color);
54
+ text-decoration: none
55
+ }
56
+
57
+ a :not(:first-child) {
58
+ color: var(--ol-foreground-color);
59
+ }
60
+
61
+ a:hover,
62
+ a:focus {
63
+ color: var(--ol-brand-color);
64
+ text-decoration: underline;
65
+ }
66
+
67
+ .navbar {
68
+ background-color: var(--ol-foreground-color);
69
+ color: var(--ol-background-color);
70
+ border: 0;
71
+ border-radius: 0;
72
+ }
73
+
74
+ .navbar-brand {
75
+ color: var(--ol-background-color);
76
+ font-weight: bold;
77
+ font-size: 160%;
78
+ padding: 8px 0;
79
+ }
80
+
81
+ .navbar-brand img {
82
+ height: 35px;
83
+ width: 35px;
84
+ vertical-align: middle;
85
+ margin-right: 5px;
86
+ display: inline-block;
87
+ }
88
+
89
+ .navbar-dark .navbar-nav .nav-link {
90
+ color: var(--ol-background-color);
91
+ }
92
+
93
+ .navbar-dark .navbar-nav .nav-link:hover {
94
+ color: var(--ol-brand-color);
95
+ }
96
+
97
+ .navbar-brand:focus,
98
+ .navbar-brand:hover,
99
+ .nav-link:focus,
100
+ .nav-link:hover {
101
+ text-decoration: none;
102
+ color: var(--ol-brand-color);
103
+ }
104
+
105
+ footer {
106
+ background-color: var(--ol-foreground-color);
107
+ color: var(--ol-background-color);
108
+ margin-top: 40px;
109
+ padding: 10px;
110
+ text-align: center;
111
+ }
112
+
113
+ a.dropdown-item {
114
+ color: var(--ol-foreground-color);
115
+ }
116
+
117
+ .dropdown-item.active,
118
+ .dropdown-item:hover {
119
+ color: var(--ol-brand-color);
120
+ text-decoration: none;
121
+ background-color: var(--ol-background-color);
122
+ }
123
+
124
+ .navbar-nav>li>a {
125
+ color: var(--ol-background-color);
126
+ }
127
+
128
+ .display-table {
129
+ display: table;
130
+ }
131
+
132
+ .btn-link {
133
+ font-weight: 400;
134
+ color: var(--ol-subtle-foreground-color);
135
+ text-decoration: none;
136
+ }
137
+
138
+ .btn-link:hover {
139
+ color: var(--ol-brand-color);
140
+ text-decoration: none;
141
+ }
142
+
143
+ .version-form,
144
+ .navbar-form {
145
+ display: table-cell;
146
+ vertical-align: middle;
147
+ }
148
+
149
+ .version-form {
150
+ color: var(--ol-foreground-color);
151
+ }
152
+
153
+ #title {
154
+ margin-top: 1em;
155
+ }
156
+
157
+ .badge-group {
158
+ display: inline-block;
159
+ }
160
+
161
+ .badge-group>.badge:not(:last-child) {
162
+ border-top-right-radius: 0;
163
+ border-bottom-right-radius: 0;
164
+ }
165
+
166
+ .badge-group>.badge:not(:first-child) {
167
+ border-top-left-radius: 0;
168
+ border-bottom-left-radius: 0;
169
+ }
170
+
171
+ .badge-info {
172
+ background-color: var(--ol-subtle-foreground-color);
173
+ }
174
+
175
+ a.badge-info:focus,
176
+ a.badge-info:hover {
177
+ background-color: var(--ol-foreground-color);
178
+ color: var(--ol-brand-color);
179
+ text-decoration: none;
180
+ }
181
+
182
+ .tag-modal-toggle {
183
+ cursor: pointer;
184
+ }
185
+
186
+ .modal-tag-example .modal-body {
187
+ padding: 0;
188
+ }
189
+
190
+ .modal-tag-example .list-group-item:focus,
191
+ .modal-tag-example .list-group-item:hover,
192
+ .modal-tag-example .list-group-item:active {
193
+ background-color: var(--ol-background-color);
194
+ color: var(--ol-brand-color);
195
+ }
196
+
197
+ .modal-tag-example .list-group-item.active {
198
+ background-color: var(--ol-subtle-foreground-color);
199
+ color: var(--ol-background-color);
200
+ border: none;
201
+ }
202
+
203
+ #docs {
204
+ margin-top: 1em;
205
+ }
206
+
207
+ ul.inline,
208
+ ol.inline {
209
+ margin-left: 0;
210
+ padding-left: 0;
211
+ list-style: none;
212
+ }
213
+
214
+ ul.inline>li,
215
+ ol.inline>li {
216
+ display: inline-block;
217
+ padding-left: 5px;
218
+ padding-right: 5px;
219
+ }
220
+
221
+ .map {
222
+ height: 400px;
223
+ width: 100%;
224
+ background: var(--ol-background-color);
225
+ margin-bottom: 10px;
226
+ }
227
+
228
+ .ol-control {
229
+ line-height: normal;
230
+ }
231
+
232
+ .ol-attribution.ol-logo-only,
233
+ .ol-attribution.ol-uncollapsible {
234
+ max-width: calc(100% - 3em);
235
+ }
236
+
237
+ .iframe-info iframe {
238
+ width: 100%;
239
+ }
240
+
241
+ .source-heading {
242
+ margin-top: 1em;
243
+ margin-bottom: 0;
244
+ padding-left: .6em;
245
+ font-weight: bold;
246
+ }
247
+
248
+ #tags,
249
+ #shortdesc,
250
+ .hidden {
251
+ display: none;
252
+ }
253
+
254
+ #api-links ul {
255
+ display: inline;
256
+ }
257
+
258
+ #latest-check {
259
+ margin-top: -10px;
260
+ margin-bottom: 10px;
261
+ }
262
+
263
+ /* START PRISM THEME */
264
+
265
+ /**
266
+ * VS theme by Andrew Lock (https://andrewlock.net)
267
+ * Inspired by Visual Studio syntax coloring
268
+ */
269
+
270
+ code[class*="language-"],
271
+ pre[class*="language-"] {
272
+ color: #393A34;
273
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
274
+ direction: ltr;
275
+ text-align: left;
276
+ white-space: pre;
277
+ word-spacing: normal;
278
+ word-break: normal;
279
+ font-size: .9em;
280
+ line-height: 1.2em;
281
+
282
+ -moz-tab-size: 4;
283
+ -o-tab-size: 4;
284
+ tab-size: 4;
285
+
286
+ -webkit-hyphens: none;
287
+ -moz-hyphens: none;
288
+ -ms-hyphens: none;
289
+ hyphens: none;
290
+ }
291
+
292
+ pre>code[class*="language-"] {
293
+ font-size: 1em;
294
+ }
295
+
296
+ pre[class*="language-"]::-moz-selection,
297
+ pre[class*="language-"] ::-moz-selection,
298
+ code[class*="language-"]::-moz-selection,
299
+ code[class*="language-"] ::-moz-selection {
300
+ background: #C1DEF1;
301
+ }
302
+
303
+ pre[class*="language-"]::selection,
304
+ pre[class*="language-"] ::selection,
305
+ code[class*="language-"]::selection,
306
+ code[class*="language-"] ::selection {
307
+ background: #C1DEF1;
308
+ }
309
+
310
+ /* Code blocks */
311
+ pre[class*="language-"] {
312
+ padding: 1em;
313
+ margin: .5em 0;
314
+ overflow: auto;
315
+ border: 1px solid #dddddd;
316
+ background-color: white;
317
+ }
318
+
319
+ /* Inline code */
320
+ :not(pre)>code[class*="language-"] {
321
+ padding: .2em;
322
+ padding-top: 1px;
323
+ padding-bottom: 1px;
324
+ background: #f8f8f8;
325
+ border: 1px solid #dddddd;
326
+ }
327
+
328
+ .token.comment,
329
+ .token.prolog,
330
+ .token.doctype,
331
+ .token.cdata {
332
+ color: #008000;
333
+ font-style: italic;
334
+ }
335
+
336
+ .token.namespace {
337
+ opacity: .7;
338
+ }
339
+
340
+ .token.string {
341
+ color: #A31515;
342
+ }
343
+
344
+ .token.punctuation,
345
+ .token.operator {
346
+ color: #393A34;
347
+ /* no highlight */
348
+ }
349
+
350
+ .token.url,
351
+ .token.symbol,
352
+ .token.number,
353
+ .token.boolean,
354
+ .token.variable,
355
+ .token.constant,
356
+ .token.inserted {
357
+ color: #36acaa;
358
+ }
359
+
360
+ .token.atrule,
361
+ .token.keyword,
362
+ .token.attr-value,
363
+ .language-autohotkey .token.selector,
364
+ .language-json .token.boolean,
365
+ .language-json .token.number,
366
+ code[class*="language-css"] {
367
+ color: #0000ff;
368
+ }
369
+
370
+ .token.function {
371
+ color: #393A34;
372
+ }
373
+
374
+ .token.deleted,
375
+ .language-autohotkey .token.tag {
376
+ color: #9a050f;
377
+ }
378
+
379
+ .token.selector,
380
+ .language-autohotkey .token.keyword {
381
+ color: #00009f;
382
+ }
383
+
384
+ .token.important {
385
+ color: #e90;
386
+ }
387
+
388
+ .token.important,
389
+ .token.bold {
390
+ font-weight: bold;
391
+ }
392
+
393
+ .token.italic {
394
+ font-style: italic;
395
+ }
396
+
397
+ .token.class-name,
398
+ .language-json .token.property {
399
+ color: #2B91AF;
400
+ }
401
+
402
+ .token.tag,
403
+ .token.selector {
404
+ color: #800000;
405
+ }
406
+
407
+ .token.attr-name,
408
+ .token.property,
409
+ .token.regex,
410
+ .token.entity {
411
+ color: #ff0000;
412
+ }
413
+
414
+ .token.directive.tag .tag {
415
+ background: #ffff00;
416
+ color: #393A34;
417
+ }
418
+
419
+ /* overrides color-values for the Line Numbers plugin
420
+ * http://prismjs.com/plugins/line-numbers/
421
+ */
422
+ .line-numbers.line-numbers .line-numbers-rows {
423
+ border-right-color: #a5a5a5;
424
+ }
425
+
426
+ .line-numbers .line-numbers-rows>span:before {
427
+ color: #2B91AF;
428
+ }
429
+
430
+ /* overrides color-values for the Line Highlight plugin
431
+ * http://prismjs.com/plugins/line-highlight/
432
+ */
433
+ .line-highlight.line-highlight {
434
+ background: rgba(193, 222, 241, 0.2);
435
+ background: -webkit-linear-gradient(left, rgba(193, 222, 241, 0.2) 70%, rgba(221, 222, 241, 0));
436
+ background: linear-gradient(to right, rgba(193, 222, 241, 0.2) 70%, rgba(221, 222, 241, 0));
437
+ }
438
+
439
+ /* END PRISM THEME */
440
+
441
+ /* restyle prism copy button */
442
+ div.code-toolbar {
443
+ position: relative;
444
+ }
445
+
446
+ div.code-toolbar>.toolbar {
447
+ opacity: 0;
448
+ position: absolute;
449
+ right: 0;
450
+ top: 0;
451
+ transition: opacity .2s ease-in-out;
452
+ }
453
+
454
+ div.code-toolbar:hover>.toolbar,
455
+ div.code-toolbar:focus-within>.toolbar {
456
+ opacity: 1;
457
+ }
458
+
459
+ div.code-toolbar>.toolbar button {
460
+ font-size: 16px;
461
+ color: var(--ol-subtle-foreground-color);
462
+ background-color: transparent;
463
+ box-shadow: none;
464
+ padding: .615rem .75rem;
465
+ border: none;
466
+ }
467
+
468
+ div.code-toolbar>.toolbar button:hover,
469
+ div.code-toolbar>.toolbar button:focus {
470
+ color: var(--ol-brand-color);
471
+ }
472
+
473
+ div.code-toolbar>.toolbar button:focus {
474
+ outline: 0;
475
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
476
+ }
477
+
478
+ div.code-toolbar>.toolbar button {
479
+ background-color: rgba(255, 255, 255, .625);
480
+ border-radius: 0 0 0 10px;
481
+ margin: 1px;
482
+ }
483
+ div.code-toolbar>.toolbar button:before {
484
+ font: var(--fa-font-solid);
485
+ font-size: 1.33333333em;
486
+ line-height: .75em;
487
+ content: "\f0ea";
488
+ text-rendering: auto;
489
+ -webkit-font-smoothing: antialiased;
490
+ margin-right: .184em;
491
+ vertical-align: middle;
492
+ }
493
+
494
+ /* jarguar overrides for jsdoc */
495
+ .navigation {
496
+ background-color: var(--ol-foreground-color);
497
+ color: var(--ol-background-color);
498
+ }
499
+
500
+ .navigation li.item .subtitle {
501
+ color: var(--ol-background-color);
502
+ }
503
+
504
+ .navigation li.item a:hover,
505
+ .navigation li.item .title a:hover {
506
+ color: var(--ol-brand-color);
507
+ }
508
+
509
+ .main .subsection-title {
510
+ color: var(--ol-foreground-color);
511
+ }
512
+
513
+ .main .nameContainer,
514
+ .main .nameContainer.inherited {
515
+ border-top-color: var(--ol-subtle-foreground-color);
516
+ color: var(--ol-foreground-color);
517
+ }
518
+
519
+ .nameContainer .anchor:target+h4 {
520
+ background-color: inherit;
521
+ }
522
+
523
+ @media (min-width: 1400px) {
524
+ .container {
525
+ max-width: 1140px;
526
+ }
527
+ }
528
+
529
+ table.featureInfo {
530
+ caption-side: initial;
531
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @module ol/events/ErrorEvent
3
+ */
4
+ import BaseEvent from 'ol/events/Event.js';
5
+ import EventType from 'ol/events/EventType.js';
6
+
7
+ /**
8
+ * @classdesc
9
+ * Event emitted on configuration or loading error.
10
+ */
11
+ class ErrorEvent extends BaseEvent {
12
+ /**
13
+ * @param {Error} error error object.
14
+ */
15
+ constructor(error) {
16
+ super(EventType.ERROR);
17
+
18
+ /**
19
+ * @type {Error}
20
+ */
21
+ this.error = error;
22
+ }
23
+ }
24
+
25
+ export default ErrorEvent;