terra_ui_components 0.0.74__tar.gz → 0.0.76__tar.gz

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.

Potentially problematic release.


This version of terra_ui_components might be problematic. Click here for more details.

Files changed (380) hide show
  1. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/PKG-INFO +1 -1
  2. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/package-lock.json +2 -2
  3. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/package.json +1 -1
  4. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/pyproject.toml +1 -1
  5. terra_ui_components-0.0.76/src/components/plot-toolbar/notebooks/time-averaged-map-notebook.ts +66 -0
  6. terra_ui_components-0.0.76/src/components/plot-toolbar/notebooks/time-series-notebook.ts +76 -0
  7. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot-toolbar/plot-toolbar.component.ts +40 -68
  8. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-average-map/time-average-map.component.ts +121 -124
  9. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-average-map/time-average-map.controller.ts +2 -3
  10. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-average-map/time-average-map.styles.ts +3 -5
  11. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/declaration.d.ts +5 -0
  12. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/metadata-catalog/tasks.ts +5 -1
  13. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/base.py +2 -2
  14. terra_ui_components-0.0.76/src/terra_ui_components/time_average_map/time_average_map.py +95 -0
  15. terra_ui_components-0.0.74/src/terra_ui_components/time_average_map/time_average_map.py +0 -50
  16. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.editorconfig +0 -0
  17. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  18. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  19. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.github/workflows/build_and_deploy_docs.yml +0 -0
  20. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.github/workflows/node.js.yml +0 -0
  21. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.github/workflows/release.yml +0 -0
  22. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.gitignore +0 -0
  23. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.gitpod.yml +0 -0
  24. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.husky/pre-commit +0 -0
  25. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.prettierignore +0 -0
  26. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.vscode/extensions.json +0 -0
  27. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/.vscode/settings.json +0 -0
  28. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/LICENSE.md +0 -0
  29. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/README.md +0 -0
  30. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/certs/server.crt +0 -0
  31. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/certs/server.key +0 -0
  32. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/cspell.json +0 -0
  33. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/custom-elements-manifest.config.js +0 -0
  34. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/custom-elements-manifest.mjs +0 -0
  35. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_includes/component.njk +0 -0
  36. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_includes/default.njk +0 -0
  37. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_includes/sidebar.njk +0 -0
  38. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/active-links.cjs +0 -0
  39. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/anchor-headings.cjs +0 -0
  40. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/cem.cjs +0 -0
  41. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/code-previews.cjs +0 -0
  42. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/copy-code-buttons.cjs +0 -0
  43. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/external-links.cjs +0 -0
  44. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/highlight-code.cjs +0 -0
  45. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/markdown.cjs +0 -0
  46. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/prettier.cjs +0 -0
  47. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/replacer.cjs +0 -0
  48. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/scrolling-tables.cjs +0 -0
  49. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/strings.cjs +0 -0
  50. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/table-of-contents.cjs +0 -0
  51. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/_utilities/typography.cjs +0 -0
  52. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/examples/carousel/field.jpg +0 -0
  53. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/examples/carousel/mountains.jpg +0 -0
  54. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/examples/carousel/sunset.jpg +0 -0
  55. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/examples/carousel/valley.jpg +0 -0
  56. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/examples/carousel/waterfall.jpg +0 -0
  57. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/examples/include.html +0 -0
  58. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/NASA_logo.svg +0 -0
  59. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/awesome.svg +0 -0
  60. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/chrome.png +0 -0
  61. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/edge.png +0 -0
  62. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/firefox.png +0 -0
  63. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/gitpod.svg +0 -0
  64. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/logo.svg +0 -0
  65. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/logo.white.png +0 -0
  66. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/og-image.png +0 -0
  67. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/opera.png +0 -0
  68. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/safari.png +0 -0
  69. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/shoe.svg +0 -0
  70. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/tie.webp +0 -0
  71. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/touch-icon.png +0 -0
  72. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/twitter-card.png +0 -0
  73. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/undraw-content-team.svg +0 -0
  74. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/undraw-not-found.svg +0 -0
  75. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/undraw-taken.svg +0 -0
  76. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/walk.gif +0 -0
  77. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/images/wordmark.svg +0 -0
  78. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/scripts/code-previews.js +0 -0
  79. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/scripts/docs.js +0 -0
  80. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/scripts/search.js +0 -0
  81. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/scripts/turbo.js +0 -0
  82. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/styles/code-previews.css +0 -0
  83. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/styles/docs.css +0 -0
  84. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/assets/styles/search.css +0 -0
  85. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/eleventy.config.cjs +0 -0
  86. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/404.md +0 -0
  87. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/accordion.md +0 -0
  88. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/alert.md +0 -0
  89. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/browse-variables.md +0 -0
  90. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/button.md +0 -0
  91. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/chip.md +0 -0
  92. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/combobox.md +0 -0
  93. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/data-rods.md +0 -0
  94. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/data-subsetter-history.md +0 -0
  95. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/data-subsetter.md +0 -0
  96. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/date-picker.md +0 -0
  97. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/date-range-slider.md +0 -0
  98. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/dialog.md +0 -0
  99. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/icon.md +0 -0
  100. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/loader.md +0 -0
  101. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/login.md +0 -0
  102. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/map.md +0 -0
  103. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/plot-toolbar.md +0 -0
  104. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/plot.md +0 -0
  105. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/skeleton.md +0 -0
  106. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/spatial-picker.md +0 -0
  107. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/time-average-map.md +0 -0
  108. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/time-series.md +0 -0
  109. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/variable-combobox.md +0 -0
  110. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/components/variable-keyword-search.md +0 -0
  111. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/frameworks/angular.md +0 -0
  112. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/frameworks/react.md +0 -0
  113. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/frameworks/vue-2.md +0 -0
  114. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/frameworks/vue.md +0 -0
  115. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/getting-started/customizing.md +0 -0
  116. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/getting-started/form-controls.md +0 -0
  117. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/getting-started/installation.md +0 -0
  118. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/getting-started/localization.md +0 -0
  119. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/getting-started/themes.md +0 -0
  120. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/getting-started/usage.md +0 -0
  121. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/index.md +0 -0
  122. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tokens/border-radius.md +0 -0
  123. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tokens/color.md +0 -0
  124. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tokens/elevation.md +0 -0
  125. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tokens/more.md +0 -0
  126. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tokens/spacing.md +0 -0
  127. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tokens/transition.md +0 -0
  128. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tokens/typography.md +0 -0
  129. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tokens/z-index.md +0 -0
  130. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tutorials/integrating-with-laravel.md +0 -0
  131. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tutorials/integrating-with-nextjs.md +0 -0
  132. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/docs/pages/tutorials/integrating-with-rails.md +0 -0
  133. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/lint-staged.config.js +0 -0
  134. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/notebooks/playground.ipynb +0 -0
  135. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/build.js +0 -0
  136. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/bump-python-version.js +0 -0
  137. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/make-assets.js +0 -0
  138. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/make-icons.js +0 -0
  139. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/make-metadata.js +0 -0
  140. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/make-react.js +0 -0
  141. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/make-themes.js +0 -0
  142. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/plop/plopfile.js +0 -0
  143. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/plop/templates/component/component.hbs +0 -0
  144. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/plop/templates/component/define.hbs +0 -0
  145. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/plop/templates/component/docs.hbs +0 -0
  146. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/plop/templates/component/styles.hbs +0 -0
  147. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/plop/templates/component/tests.hbs +0 -0
  148. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/plop/templates/widget/widget.py.hbs +0 -0
  149. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/scripts/shared.js +0 -0
  150. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/auth/auth.controller.ts +0 -0
  151. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/auth/auth.service.ts +0 -0
  152. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/accordion/accordion.component.ts +0 -0
  153. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/accordion/accordion.styles.ts +0 -0
  154. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/accordion/accordion.test.ts +0 -0
  155. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/accordion/accordion.ts +0 -0
  156. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/alert/alert.component.ts +0 -0
  157. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/alert/alert.styles.ts +0 -0
  158. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/alert/alert.test.ts +0 -0
  159. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/alert/alert.ts +0 -0
  160. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/browse-variables/browse-variables.component.ts +0 -0
  161. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/browse-variables/browse-variables.controller.ts +0 -0
  162. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/browse-variables/browse-variables.styles.ts +0 -0
  163. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/browse-variables/browse-variables.test.ts +0 -0
  164. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/browse-variables/browse-variables.ts +0 -0
  165. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/browse-variables/browse-variables.types.ts +0 -0
  166. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/button/button.component.ts +0 -0
  167. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/button/button.styles.ts +0 -0
  168. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/button/button.test.ts +0 -0
  169. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/button/button.ts +0 -0
  170. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/chip/chip.component.ts +0 -0
  171. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/chip/chip.styles.ts +0 -0
  172. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/chip/chip.test.ts +0 -0
  173. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/chip/chip.ts +0 -0
  174. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/combobox/combobox.component.ts +0 -0
  175. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/combobox/combobox.styles.ts +0 -0
  176. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/combobox/combobox.test.ts +0 -0
  177. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/combobox/combobox.ts +0 -0
  178. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/combobox/lib.ts +0 -0
  179. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/combobox/type.ts +0 -0
  180. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-rods/data-rods.component.ts +0 -0
  181. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-rods/data-rods.styles.ts +0 -0
  182. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-rods/data-rods.test.ts +0 -0
  183. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-rods/data-rods.ts +0 -0
  184. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter/assets/download_subset_files.py.txt +0 -0
  185. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter/data-subsetter.component.ts +0 -0
  186. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter/data-subsetter.controller.ts +0 -0
  187. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter/data-subsetter.styles.ts +0 -0
  188. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter/data-subsetter.test.ts +0 -0
  189. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter/data-subsetter.ts +0 -0
  190. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter-history/data-subsetter-history.component.ts +0 -0
  191. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter-history/data-subsetter-history.controller.ts +0 -0
  192. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter-history/data-subsetter-history.styles.ts +0 -0
  193. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter-history/data-subsetter-history.test.ts +0 -0
  194. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/data-subsetter-history/data-subsetter-history.ts +0 -0
  195. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-picker/date-picker.component.ts +0 -0
  196. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-picker/date-picker.styles.ts +0 -0
  197. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-picker/date-picker.test.ts +0 -0
  198. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-picker/date-picker.ts +0 -0
  199. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-range-slider/date-range-slider.component.ts +0 -0
  200. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-range-slider/date-range-slider.styles.ts +0 -0
  201. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-range-slider/date-range-slider.test.ts +0 -0
  202. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-range-slider/date-range-slider.ts +0 -0
  203. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/date-range-slider/noui-slider-utilities.ts +0 -0
  204. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/dialog/dialog.component.ts +0 -0
  205. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/dialog/dialog.styles.ts +0 -0
  206. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/dialog/dialog.test.ts +0 -0
  207. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/dialog/dialog.ts +0 -0
  208. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/icon/icon.component.ts +0 -0
  209. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/icon/icon.styles.ts +0 -0
  210. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/icon/icon.test.ts +0 -0
  211. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/icon/icon.ts +0 -0
  212. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/icon/library.default.ts +0 -0
  213. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/icon/library.heroicons.ts +0 -0
  214. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/icon/library.ts +0 -0
  215. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/loader/loader.component.ts +0 -0
  216. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/loader/loader.styles.ts +0 -0
  217. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/loader/loader.test.ts +0 -0
  218. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/loader/loader.ts +0 -0
  219. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/login/login.component.ts +0 -0
  220. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/login/login.styles.ts +0 -0
  221. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/login/login.test.ts +0 -0
  222. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/login/login.ts +0 -0
  223. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/leaflet-draw.styles.ts +0 -0
  224. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/leaflet-utils.ts +0 -0
  225. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/leaflet.styles.ts +0 -0
  226. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/map.component.ts +0 -0
  227. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/map.controller.ts +0 -0
  228. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/map.styles.ts +0 -0
  229. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/map.test.ts +0 -0
  230. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/map.ts +0 -0
  231. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/map/type.ts +0 -0
  232. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot/plot.component.ts +0 -0
  233. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot/plot.styles.ts +0 -0
  234. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot/plot.ts +0 -0
  235. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot/plot.types.ts +0 -0
  236. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot-toolbar/plot-toolbar.styles.ts +0 -0
  237. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot-toolbar/plot-toolbar.test.ts +0 -0
  238. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot-toolbar/plot-toolbar.ts +0 -0
  239. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/plot-toolbar/plot-toolbar.types.ts +0 -0
  240. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/skeleton/skeleton.component.ts +0 -0
  241. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/skeleton/skeleton.styles.ts +0 -0
  242. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/skeleton/skeleton.test.ts +0 -0
  243. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/skeleton/skeleton.ts +0 -0
  244. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/spatial-picker/spatial-picker.component.ts +0 -0
  245. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/spatial-picker/spatial-picker.styles.ts +0 -0
  246. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/spatial-picker/spatial-picker.test.ts +0 -0
  247. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/spatial-picker/spatial-picker.ts +0 -0
  248. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-average-map/time-average-map.test.ts +0 -0
  249. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-average-map/time-average-map.ts +0 -0
  250. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-series/time-series.component.ts +0 -0
  251. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-series/time-series.controller.ts +0 -0
  252. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-series/time-series.styles.ts +0 -0
  253. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-series/time-series.test.ts +0 -0
  254. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-series/time-series.ts +0 -0
  255. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/time-series/time-series.types.ts +0 -0
  256. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-combobox/lib.ts +0 -0
  257. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-combobox/variable-combobox.component.ts +0 -0
  258. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-combobox/variable-combobox.controller.ts +0 -0
  259. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-combobox/variable-combobox.styles.ts +0 -0
  260. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-combobox/variable-combobox.test.ts +0 -0
  261. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-combobox/variable-combobox.ts +0 -0
  262. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-combobox/variable-combobox.types.ts +0 -0
  263. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-keyword-search/lib.ts +0 -0
  264. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-keyword-search/variable-keyword-search.component.ts +0 -0
  265. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-keyword-search/variable-keyword-search.controller.ts +0 -0
  266. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-keyword-search/variable-keyword-search.styles.ts +0 -0
  267. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-keyword-search/variable-keyword-search.test.ts +0 -0
  268. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-keyword-search/variable-keyword-search.ts +0 -0
  269. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/components/variable-keyword-search/variable-keyword-search.types.ts +0 -0
  270. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/data-services/harmony-data-service.ts +0 -0
  271. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/data-services/queries.ts +0 -0
  272. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/data-services/types.ts +0 -0
  273. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/events.ts +0 -0
  274. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-accordion-toggle.ts +0 -0
  275. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-after-hide.ts +0 -0
  276. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-after-show.ts +0 -0
  277. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-change.ts +0 -0
  278. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-combobox-change.ts +0 -0
  279. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-date-range-change.ts +0 -0
  280. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-dialog-hide.ts +0 -0
  281. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-dialog-show.ts +0 -0
  282. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-error.ts +0 -0
  283. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-hide.ts +0 -0
  284. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-load.ts +0 -0
  285. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-login.ts +0 -0
  286. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-map-change.ts +0 -0
  287. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-plot-relayout.ts +0 -0
  288. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-remove.ts +0 -0
  289. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-search.ts +0 -0
  290. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-show.ts +0 -0
  291. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-subset-job-complete.ts +0 -0
  292. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-time-average-map-data-change.ts +0 -0
  293. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-time-series-data-change.ts +0 -0
  294. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-variable-keyword-search-change.ts +0 -0
  295. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/events/terra-variables-change.ts +0 -0
  296. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/geojson/giovanni-geojson.ts +0 -0
  297. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/geojson/queries.ts +0 -0
  298. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/geojson/types.ts +0 -0
  299. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/active-elements.ts +0 -0
  300. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/animate.ts +0 -0
  301. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/debounce.ts +0 -0
  302. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/default-value.ts +0 -0
  303. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/drag.ts +0 -0
  304. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/event.ts +0 -0
  305. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/form.test.ts +0 -0
  306. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/form.ts +0 -0
  307. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/indexeddb.ts +0 -0
  308. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/math.ts +0 -0
  309. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/modal.ts +0 -0
  310. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/offset.ts +0 -0
  311. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/scroll.ts +0 -0
  312. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/scrollend-polyfill.ts +0 -0
  313. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/slot.ts +0 -0
  314. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/string.ts +0 -0
  315. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/tabbable.test.ts +0 -0
  316. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/tabbable.ts +0 -0
  317. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/terra-element.test.ts +0 -0
  318. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/terra-element.ts +0 -0
  319. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/test/data-testid-helpers.ts +0 -0
  320. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/test/element-visible-overflow.ts +0 -0
  321. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/test/form-control-base-tests.ts +0 -0
  322. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/test/wait-for-scrolling.ts +0 -0
  323. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/test.ts +0 -0
  324. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/internal/watch.ts +0 -0
  325. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/lib/dataset.test.ts +0 -0
  326. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/lib/dataset.ts +0 -0
  327. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/lib/graphql-client.ts +0 -0
  328. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/metadata-catalog/cmr-catalog.ts +0 -0
  329. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/metadata-catalog/giovanni-variable-catalog.ts +0 -0
  330. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/metadata-catalog/queries.ts +0 -0
  331. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/metadata-catalog/types.ts +0 -0
  332. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/metadata-catalog/utilities.ts +0 -0
  333. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/styles/component.styles.ts +0 -0
  334. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/styles/form-control.styles.ts +0 -0
  335. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra-ui-components-autoloader.ts +0 -0
  336. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra-ui-components.ts +0 -0
  337. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/README.md +0 -0
  338. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/__init__.py +0 -0
  339. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/accordion/__init__.py +0 -0
  340. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/accordion/accordion.py +0 -0
  341. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/browse_variables/__init__.py +0 -0
  342. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/browse_variables/browse_variables.py +0 -0
  343. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/data_rods/__init__.py +0 -0
  344. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/data_rods/data_rods.py +0 -0
  345. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/data_subsetter/__init__.py +0 -0
  346. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/data_subsetter/data_subsetter.py +0 -0
  347. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/data_subsetter_history/__init__.py +0 -0
  348. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/data_subsetter_history/data_subsetter_history.py +0 -0
  349. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/date_picker/__init__.py +0 -0
  350. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/date_picker/date_picker.py +0 -0
  351. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/date_range_slider/__init__.py +0 -0
  352. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/date_range_slider/date_range_slider.py +0 -0
  353. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/dialog/__init__.py +0 -0
  354. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/dialog/dialog.py +0 -0
  355. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/login/__init__.py +0 -0
  356. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/login/login.py +0 -0
  357. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/plot_toolbar/__init__.py +0 -0
  358. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/plot_toolbar/plot_toolbar.py +0 -0
  359. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/time_average_map/__init__.py +0 -0
  360. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/time_series/__init__.py +0 -0
  361. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/time_series/time_series.py +0 -0
  362. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/variable_keyword_search/__init__.py +0 -0
  363. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/terra_ui_components/variable_keyword_search/variable_keyword_search.py +0 -0
  364. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/themes/_utility.css +0 -0
  365. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/themes/horizon-dark.css +0 -0
  366. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/themes/horizon.css +0 -0
  367. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/types.ts +0 -0
  368. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/animation-registry.ts +0 -0
  369. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/animation.ts +0 -0
  370. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/base-path.ts +0 -0
  371. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/date.ts +0 -0
  372. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/debounce.ts +0 -0
  373. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/environment.ts +0 -0
  374. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/form.ts +0 -0
  375. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/icon-library.ts +0 -0
  376. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/mimetypes.ts +0 -0
  377. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/src/utilities/number.ts +0 -0
  378. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/tsconfig.json +0 -0
  379. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/tsconfig.prod.json +0 -0
  380. {terra_ui_components-0.0.74 → terra_ui_components-0.0.76}/web-test-runner.config.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: terra_ui_components
3
- Version: 0.0.74
3
+ Version: 0.0.76
4
4
  Summary: NASA Terra UI Components Library
5
5
  License-File: LICENSE.md
6
6
  Requires-Python: >=3.8
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@nasa-terra/components",
3
- "version": "0.0.74",
3
+ "version": "0.0.76",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@nasa-terra/components",
9
- "version": "0.0.74",
9
+ "version": "0.0.76",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@apollo/client": "^3.13.8",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nasa-terra/components",
3
3
  "description": "A collection of NASA Earthdata components",
4
- "version": "0.0.74",
4
+ "version": "0.0.76",
5
5
  "homepage": "https://github.com/nasa/terra-ui-components",
6
6
  "author": "NASA GES DISC <https://disc.gsfc.nasa.gov>",
7
7
  "license": "MIT",
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
5
5
  [project]
6
6
  name = "terra_ui_components"
7
7
  dependencies = ["anywidget>=0.9"]
8
- version = "0.0.74"
8
+ version = "0.0.76"
9
9
  readme = "README.md"
10
10
  description = "NASA Terra UI Components Library"
11
11
  requires-python = ">=3.8"
@@ -0,0 +1,66 @@
1
+ import type TerraPlotToolbar from '../plot-toolbar.component.js'
2
+
3
+ export function getTimeAveragedMapNotebook(host: TerraPlotToolbar) {
4
+ /**
5
+ * these cells were originally created in a Jupyter Notebook and then imported here.
6
+ * Note that one of the code cells takes in dynamic data
7
+ */
8
+ return [
9
+ {
10
+ cell_type: 'markdown',
11
+ id: '367f56b9-7ca8-4435-9dcc-89bf586f33ab',
12
+ metadata: {},
13
+ source: [
14
+ '### Prerequisites:\n',
15
+ '\n',
16
+ 'This notebook uses the `terra_ui_components`, `anywidget`, and `pandas` packages.\n',
17
+ '\n',
18
+ 'After running the `pip install` cell for the first time, please reload the page to ensure the dependencies are active.',
19
+ ],
20
+ },
21
+ {
22
+ id: '2733501b-0de4-4067-8aff-864e1b4c76cb',
23
+ cell_type: 'code',
24
+ source: '%pip install -q "terra_ui_components==0.0.70" "anywidget==0.9.15" "pandas"',
25
+ metadata: {
26
+ trusted: true,
27
+ },
28
+ outputs: [],
29
+ execution_count: null,
30
+ },
31
+ {
32
+ cell_type: 'markdown',
33
+ id: '35aa4a00-8e2c-4478-9df7-de633fd8f6ce',
34
+ metadata: {},
35
+ source: ['### Render an area-averaged map'],
36
+ },
37
+ {
38
+ id: '870c1384-e706-48ee-ba07-fd552a949869',
39
+ cell_type: 'code',
40
+ source: `from terra_ui_components import TerraTimeAverageMap\nmap = TerraTimeAverageMap()\nmap.collection='${host.catalogVariable.dataProductShortName}_${host.catalogVariable.dataProductVersion}'\nmap.variable = '${host.catalogVariable.dataFieldShortName}'\nmap.startDate = '${host.startDate}'\nmap.endDate = '${host.endDate}'\nmap.location = '${host.location}'\n\nmap`,
41
+ metadata: {
42
+ trusted: true,
43
+ },
44
+ outputs: [],
45
+ execution_count: null,
46
+ },
47
+ {
48
+ cell_type: 'markdown',
49
+ id: '25b87ed4-2ad9-4c7d-b851-bc8fea3ded5a',
50
+ metadata: {},
51
+ source: [
52
+ '### Access the map GeoTIFF data\n',
53
+ '\n',
54
+ 'Once the map renders, you can access the data:',
55
+ ],
56
+ },
57
+ {
58
+ cell_type: 'code',
59
+ execution_count: null,
60
+ id: '6b81a089-884d-4fd7-9d4e-c45a53307c20',
61
+ metadata: {},
62
+ outputs: [],
63
+ source: ['map.data'],
64
+ },
65
+ ]
66
+ }
@@ -0,0 +1,76 @@
1
+ import type TerraPlotToolbar from '../plot-toolbar.component.js'
2
+
3
+ export function getTimeSeriesNotebook(host: TerraPlotToolbar) {
4
+ /**
5
+ * these cells were originally created in a Jupyter Notebook and then imported here.
6
+ * Note that one of the code cells takes in dynamic data
7
+ */
8
+ return [
9
+ {
10
+ cell_type: 'markdown',
11
+ id: '367f56b9-7ca8-4435-9dcc-89bf586f33ab',
12
+ metadata: {},
13
+ source: [
14
+ '### Prerequisites:\n',
15
+ '\n',
16
+ 'This notebook uses the `terra_ui_components`, `anywidget`, and `pandas` packages.\n',
17
+ '\n',
18
+ 'After running the `pip install` cell for the first time, please reload the page to ensure the dependencies are active.',
19
+ ],
20
+ },
21
+ {
22
+ id: '2733501b-0de4-4067-8aff-864e1b4c76cb',
23
+ cell_type: 'code',
24
+ source: '%pip install -q "terra_ui_components==0.0.70" "anywidget==0.9.15" "pandas"',
25
+ metadata: {
26
+ trusted: true,
27
+ },
28
+ outputs: [],
29
+ execution_count: null,
30
+ },
31
+ {
32
+ cell_type: 'markdown',
33
+ id: '35aa4a00-8e2c-4478-9df7-de633fd8f6ce',
34
+ metadata: {},
35
+ source: [
36
+ `### Render ${host.location.split(',').length > 2 ? 'an area-averaged' : 'a point-based'} time series plot`,
37
+ ],
38
+ },
39
+ {
40
+ id: '870c1384-e706-48ee-ba07-fd552a949869',
41
+ cell_type: 'code',
42
+ source: `from terra_ui_components import TerraTimeSeries\ntimeseries = TerraTimeSeries()\n\ntimeseries.variableEntryId = '${host.variableEntryId}'\ntimeseries.startDate = '${host.startDate}'\ntimeseries.endDate = '${host.endDate}'\ntimeseries.location = '${host.location}'\n\ntimeseries`,
43
+ metadata: {
44
+ trusted: true,
45
+ },
46
+ outputs: [],
47
+ execution_count: null,
48
+ },
49
+ {
50
+ cell_type: 'markdown',
51
+ id: '25b87ed4-2ad9-4c7d-b851-bc8fea3ded5a',
52
+ metadata: {},
53
+ source: [
54
+ '### Access the time series data\n',
55
+ '\n',
56
+ 'Once the time series runs and you see a plot, you can access the data:',
57
+ ],
58
+ },
59
+ {
60
+ cell_type: 'code',
61
+ execution_count: null,
62
+ id: '6b81a089-884d-4fd7-9d4e-c45a53307c20',
63
+ metadata: {},
64
+ outputs: [],
65
+ source: [
66
+ 'import pandas as pd\n',
67
+ 'if getattr(timeseries, "data", None):\n',
68
+ ' df = pd.DataFrame(timeseries.data)\n',
69
+ " df['timestamp'] = pd.to_datetime(df['timestamp'])\n",
70
+ " df['value'] = pd.to_numeric(df['value'])\n",
71
+ ' print(df.dtypes)\n',
72
+ ' print(df.head())',
73
+ ],
74
+ },
75
+ ]
76
+ }
@@ -16,6 +16,8 @@ import TerraButton from '../button/button.component.js'
16
16
  import TerraIcon from '../icon/icon.component.js'
17
17
  import { cache } from 'lit/directives/cache.js'
18
18
  import { AuthController } from '../../auth/auth.controller.js'
19
+ import { getTimeAveragedMapNotebook } from './notebooks/time-averaged-map-notebook.js'
20
+ import { getTimeSeriesNotebook } from './notebooks/time-series-notebook.js'
19
21
 
20
22
  /**
21
23
  * @summary Short summary of the component's intended use.
@@ -432,7 +434,15 @@ export default class TerraPlotToolbar extends TerraElement {
432
434
  }
433
435
 
434
436
  #sendDataToJupyterNotebook(jupyterWindow: Window) {
435
- console.log('Sending data to JupyterLite...')
437
+ if (this.dataType === 'geotiff') {
438
+ this.#sendMapDataToJupyterNotebook(jupyterWindow)
439
+ } else {
440
+ this.#sendTimeSeriesDataToJupyterNotebook(jupyterWindow)
441
+ }
442
+ }
443
+
444
+ #sendTimeSeriesDataToJupyterNotebook(jupyterWindow: Window) {
445
+ console.log('Sending time series data to JupyterLite...')
436
446
 
437
447
  // Fetch the time series data from IndexedDB
438
448
  getDataByKey<VariableDbEntry>(
@@ -441,77 +451,12 @@ export default class TerraPlotToolbar extends TerraElement {
441
451
  ).then(timeSeriesData => {
442
452
  // we don't have an easy way of knowing when JupyterLite finishes loading, so we'll wait a bit and then post our notebook
443
453
  setTimeout(() => {
444
- const notebook = [
445
- {
446
- cell_type: 'markdown',
447
- id: '367f56b9-7ca8-4435-9dcc-89bf586f33ab',
448
- metadata: {},
449
- source: [
450
- '### Prerequisites:\n',
451
- '\n',
452
- 'This notebook uses the `terra_ui_components` and `anywidget` packages.\n',
453
- '\n',
454
- 'After running the `pip install` cell for the first time, please reload the page to ensure the dependencies are active.',
455
- ],
456
- },
457
- {
458
- id: '2733501b-0de4-4067-8aff-864e1b4c76cb',
459
- cell_type: 'code',
460
- source: '%pip install -q "terra_ui_components==0.0.70" "anywidget==0.9.15" "pandas"',
461
- metadata: {
462
- trusted: true,
463
- },
464
- outputs: [],
465
- execution_count: null,
466
- },
467
- {
468
- cell_type: 'markdown',
469
- id: '35aa4a00-8e2c-4478-9df7-de633fd8f6ce',
470
- metadata: {},
471
- source: ['### Render a point-based time series plot'],
472
- },
473
- {
474
- id: '870c1384-e706-48ee-ba07-fd552a949869',
475
- cell_type: 'code',
476
- source: `from terra_ui_components import TerraTimeSeries\ntimeseries = TerraTimeSeries()\n\ntimeseries.variableEntryId = '${this.variableEntryId}'\ntimeseries.startDate = '${this.startDate}'\ntimeseries.endDate = '${this.endDate}'\ntimeseries.location = '${this.location}'\n\ntimeseries`,
477
- metadata: {
478
- trusted: true,
479
- },
480
- outputs: [],
481
- execution_count: null,
482
- },
483
- {
484
- cell_type: 'markdown',
485
- id: '25b87ed4-2ad9-4c7d-b851-bc8fea3ded5a',
486
- metadata: {},
487
- source: [
488
- '### Access the time series data\n',
489
- '\n',
490
- 'Once the time series runs and you see a plot, you can access the data:',
491
- ],
492
- },
493
- {
494
- cell_type: 'code',
495
- execution_count: null,
496
- id: '6b81a089-884d-4fd7-9d4e-c45a53307c20',
497
- metadata: {},
498
- outputs: [],
499
- source: [
500
- 'import pandas as pd\n',
501
- 'if getattr(timeseries, "data", None):\n',
502
- ' df = pd.DataFrame(timeseries.data)\n',
503
- " df['timestamp'] = pd.to_datetime(df['timestamp'])\n",
504
- " df['value'] = pd.to_numeric(df['value'])\n",
505
- ' print(df.dtypes)\n',
506
- ' print(df.head())',
507
- ],
508
- },
509
- ]
454
+ const notebook = getTimeSeriesNotebook(this)
510
455
 
511
456
  jupyterWindow.postMessage(
512
457
  {
513
458
  type: 'load-notebook',
514
- filename: `${encodeURIComponent(this.variableEntryId ?? 'plot')}.ipynb`,
459
+ filename: `${encodeURIComponent(this.variableEntryId ?? 'plot')}-timeseries.ipynb`,
515
460
  notebook,
516
461
  timeSeriesData,
517
462
  databaseName: DB_NAME,
@@ -524,6 +469,33 @@ export default class TerraPlotToolbar extends TerraElement {
524
469
  })
525
470
  }
526
471
 
472
+ #sendMapDataToJupyterNotebook(jupyterWindow: Window) {
473
+ console.log('Sending map data to JupyterLite...')
474
+
475
+ // Fetch the time series data from IndexedDB
476
+ getDataByKey<Blob>(IndexedDbStores.TIME_AVERAGE_MAP, this.cacheKey).then(
477
+ blob => {
478
+ // we don't have an easy way of knowing when JupyterLite finishes loading, so we'll wait a bit and then post our notebook
479
+ setTimeout(() => {
480
+ const notebook = getTimeAveragedMapNotebook(this)
481
+
482
+ jupyterWindow.postMessage(
483
+ {
484
+ type: 'load-notebook',
485
+ filename: `${encodeURIComponent(this.variableEntryId ?? 'plot')}-map.ipynb`,
486
+ notebook,
487
+ blob,
488
+ databaseName: DB_NAME,
489
+ storeName: IndexedDbStores.TIME_AVERAGE_MAP,
490
+ token: this.bearerToken,
491
+ },
492
+ '*'
493
+ )
494
+ }, 500)
495
+ }
496
+ )
497
+ }
498
+
527
499
  #downloadPNG(_event: Event) {
528
500
  downloadImage(this.plot!.base, {
529
501
  filename: this.catalogVariable!.dataFieldId,
@@ -1,5 +1,5 @@
1
1
  import { html } from 'lit'
2
- import { property, query, state } from 'lit/decorators.js'
2
+ import { property, state } from 'lit/decorators.js'
3
3
  import { Map, MapBrowserEvent, View } from 'ol'
4
4
  import WebGLTileLayer from 'ol/layer/WebGLTile.js'
5
5
  import OSM from 'ol/source/OSM.js'
@@ -8,7 +8,6 @@ import TerraElement from '../../internal/terra-element.js'
8
8
  import componentStyles from '../../styles/component.styles.js'
9
9
  import styles from './time-average-map.styles.js'
10
10
  import type { CSSResultGroup } from 'lit'
11
- import { watch } from '../../internal/watch.js'
12
11
  import { TimeAvgMapController } from './time-average-map.controller.js'
13
12
  import TerraButton from '../button/button.component.js'
14
13
  import TerraIcon from '../icon/icon.component.js'
@@ -17,10 +16,9 @@ import type { Variable } from '../browse-variables/browse-variables.types.js'
17
16
  import { cache } from 'lit/directives/cache.js'
18
17
  import { AuthController } from '../../auth/auth.controller.js'
19
18
  import { toLonLat } from 'ol/proj.js'
20
- // @ts-ignore
21
- import colormap from 'colormap'
22
19
  import { getFetchVariableTask } from '../../metadata-catalog/tasks.js'
23
20
  import { getVariableEntryId } from '../../metadata-catalog/utilities.js'
21
+ import colormap from 'colormap'
24
22
 
25
23
  export default class TerraTimeAverageMap extends TerraElement {
26
24
  static styles: CSSResultGroup = [componentStyles, styles]
@@ -60,9 +58,13 @@ export default class TerraTimeAverageMap extends TerraElement {
60
58
  })
61
59
  location?: string
62
60
 
61
+ @property({ type: String }) long_name = ''
62
+
63
63
  @state()
64
64
  activeMenuItem: any = null
65
65
 
66
+ @state() catalogVariable: Variable
67
+
66
68
  @state() colormaps = [
67
69
  'jet',
68
70
  'hsv',
@@ -109,41 +111,17 @@ export default class TerraTimeAverageMap extends TerraElement {
109
111
  'cubhelix',
110
112
  ]
111
113
  @state() colorMapName = 'density'
112
-
113
- @watch('activeMenuItem')
114
- handleFocus(_oldValue: any, newValue: any) {
115
- if (newValue === null) {
116
- return
117
- }
118
-
119
- this.menu.focus()
120
- }
121
-
122
- /**
123
- * The token to be used for authentication with remote servers.
124
- * The component provides the header "Authorization: Bearer" (the request header and authentication scheme).
125
- * The property's value will be inserted after "Bearer" (the authentication scheme).
126
- */
127
- @property({ attribute: 'bearer-token', reflect: false })
128
- bearerToken: string
129
-
130
- @property({ type: String })
131
- long_name = ''
132
-
133
- @query('#menu') menu: HTMLMenuElement
134
-
135
- @state() catalogVariable: Variable
136
-
114
+ // Private fields
137
115
  #controller: TimeAvgMapController
138
- _authController = new AuthController(this)
139
-
140
116
  #map: Map | null = null
141
117
  #gtLayer: WebGLTileLayer | null = null
118
+ // Auth Controller
119
+ _authController = new AuthController(this)
142
120
 
143
121
  /**
144
122
  * anytime the collection or variable changes, we'll fetch the variable from the catalog to get all of it's metadata
145
123
  */
146
- _fetchVariableTask = getFetchVariableTask(this)
124
+ _fetchVariableTask = getFetchVariableTask(this, false)
147
125
 
148
126
  async firstUpdated() {
149
127
  this.#controller = new TimeAvgMapController(this)
@@ -153,6 +131,7 @@ export default class TerraTimeAverageMap extends TerraElement {
153
131
  }
154
132
 
155
133
  async updateGeoTIFFLayer() {
134
+ await this._fetchVariableTask.run()
156
135
  await this.#controller.jobStatusTask.run()
157
136
  // The task returns the blob upon completion
158
137
  let job_status_value = this.#controller.jobStatusTask.value
@@ -183,7 +162,8 @@ export default class TerraTimeAverageMap extends TerraElement {
183
162
 
184
163
  if (this.#map && this.#gtLayer) {
185
164
  this.renderPixelValues(this.#map, this.#gtLayer)
186
- this.applyColorToLayer(gtSource, 'density')
165
+ this.applyColorToLayer(gtSource, 'density') // Initial color for layer is density
166
+
187
167
  const opacityInput = this.shadowRoot?.getElementById(
188
168
  'opacity-input'
189
169
  ) as HTMLInputElement | null
@@ -208,46 +188,6 @@ export default class TerraTimeAverageMap extends TerraElement {
208
188
  }
209
189
  }
210
190
 
211
- renderPixelValues(map: Map, gtLayer: WebGLTileLayer) {
212
- const pixelValueEl = this.shadowRoot?.getElementById('pixelValue')
213
- const coordEl = this.shadowRoot?.getElementById('cursorCoordinates')
214
-
215
- map.on('pointermove', (event: MapBrowserEvent) => {
216
- const data = gtLayer.getData(event.pixel)
217
- const coordinate = toLonLat(event.coordinate)
218
- //TODO: Address type script error
219
- // @ts-ignore
220
- // Set pixel/coordinate display to N/A if the pixel values are zero or NaN
221
- if (!data || isNaN(data[0]) || data[0] === 0) {
222
- if (pixelValueEl) pixelValueEl.textContent = 'N/A'
223
- if (coordEl) coordEl.textContent = 'N/A'
224
- return
225
- }
226
- //TODO: Address type script error
227
- // @ts-ignore
228
- const val = Number(data[0]).toExponential(4)
229
- const coordStr = coordinate.map(c => c.toFixed(3)).join(', ')
230
-
231
- if (pixelValueEl) pixelValueEl.textContent = val
232
- if (coordEl) coordEl.textContent = coordStr
233
- })
234
- }
235
-
236
- // Referencing workshop example from https://openlayers.org/workshop/en/cog/colormap.html
237
- getColorStops(name: any, min: any, max: any, steps: any, reverse: any) {
238
- const delta = (max - min) / (steps - 1)
239
- const stops = new Array(steps * 2)
240
- const colors = colormap({ colormap: name, nshades: steps, format: 'rgba' })
241
- if (reverse) {
242
- colors.reverse()
243
- }
244
- for (let i = 0; i < steps; i++) {
245
- stops[i * 2] = min + i * delta
246
- stops[i * 2 + 1] = colors[i]
247
- }
248
- return stops
249
- }
250
-
251
191
  intializeMap() {
252
192
  const baseLayer = new WebGLTileLayer({
253
193
  source: new OSM() as any,
@@ -265,30 +205,6 @@ export default class TerraTimeAverageMap extends TerraElement {
265
205
  })
266
206
  }
267
207
 
268
- async getMinMax(gtSource: any) {
269
- await gtSource.getView()
270
- const gtImage = gtSource.sourceImagery_[0][0]
271
-
272
- // read raster data from band 1
273
- const rasterData = await gtImage.readRasters({ samples: [0] })
274
- const pixels = rasterData[0]
275
-
276
- let min = Infinity
277
- let max = -Infinity
278
-
279
- // Loop through pixels and get min and max values. This gives us a range to determine color mapping styling
280
- for (let i = 0; i < pixels.length; i++) {
281
- const val = pixels[i]
282
- if (!isNaN(val)) {
283
- // skip no-data pixels or NaN
284
- if (val < min) min = val
285
- if (val > max) max = val
286
- }
287
- }
288
-
289
- return { min, max }
290
- }
291
-
292
208
  async fetchGeotiffMetadata(
293
209
  gtSource: GeoTIFF
294
210
  ): Promise<{ [key: string]: string }> {
@@ -316,6 +232,73 @@ export default class TerraTimeAverageMap extends TerraElement {
316
232
  return dataObj
317
233
  }
318
234
 
235
+ renderPixelValues(map: Map, gtLayer: WebGLTileLayer) {
236
+ const pixelValueEl = this.shadowRoot?.getElementById('pixelValue')
237
+ const coordEl = this.shadowRoot?.getElementById('cursorCoordinates')
238
+
239
+ map.on('pointermove', (event: MapBrowserEvent) => {
240
+ const data = gtLayer.getData(event.pixel)
241
+ const coordinate = toLonLat(event.coordinate)
242
+
243
+ if (
244
+ !data ||
245
+ !(
246
+ data instanceof Uint8Array ||
247
+ data instanceof Uint8ClampedArray ||
248
+ data instanceof Float32Array
249
+ ) ||
250
+ isNaN(data[0]) ||
251
+ data[0] === 0
252
+ ) {
253
+ if (pixelValueEl) pixelValueEl.textContent = 'N/A'
254
+ if (coordEl) coordEl.textContent = 'N/A'
255
+ return
256
+ }
257
+ const val = Number(data[0]).toExponential(4)
258
+ const coordStr = coordinate.map(c => c.toFixed(3)).join(', ')
259
+
260
+ if (pixelValueEl) pixelValueEl.textContent = val
261
+ if (coordEl) coordEl.textContent = coordStr
262
+ })
263
+ }
264
+ async getMinMax(gtSource: any) {
265
+ await gtSource.getView()
266
+ const gtImage = gtSource.sourceImagery_[0][0]
267
+
268
+ // read raster data from band 1
269
+ const rasterData = await gtImage.readRasters({ samples: [0] })
270
+ const pixels = rasterData[0]
271
+
272
+ let min = Infinity
273
+ let max = -Infinity
274
+
275
+ // Loop through pixels and get min and max values. This gives us a range to determine color mapping styling
276
+ for (let i = 0; i < pixels.length; i++) {
277
+ const val = pixels[i]
278
+ if (!isNaN(val)) {
279
+ // skip no-data pixels or NaN
280
+ if (val < min) min = val
281
+ if (val > max) max = val
282
+ }
283
+ }
284
+
285
+ return { min, max }
286
+ }
287
+ // Referencing workshop example from https://openlayers.org/workshop/en/cog/colormap.html
288
+ getColorStops(name: any, min: any, max: any, steps: any, reverse: any) {
289
+ const delta = (max - min) / (steps - 1)
290
+ const stops = new Array(steps * 2)
291
+ const colors = colormap({ colormap: name, nshades: steps, format: 'rgba' })
292
+ if (reverse) {
293
+ colors.reverse()
294
+ }
295
+ for (let i = 0; i < steps; i++) {
296
+ stops[i * 2] = min + i * delta
297
+ stops[i * 2 + 1] = colors[i]
298
+ }
299
+ return stops
300
+ }
301
+
319
302
  async applyColorToLayer(gtSource: any, color: String) {
320
303
  var { min, max } = await this.getMinMax(gtSource)
321
304
  let gtStyle = {
@@ -334,10 +317,9 @@ export default class TerraTimeAverageMap extends TerraElement {
334
317
 
335
318
  this.#gtLayer?.setStyle(gtStyle)
336
319
  }
337
-
338
320
  #onColorMapChange(event: Event) {
339
321
  const selectedColormap = (event.target as HTMLSelectElement).value
340
- // Reapply the style with the new colormap
322
+ // Reapply the style with the new colormap to the layer
341
323
  if (this.#gtLayer && this.#gtLayer.getSource()) {
342
324
  this.applyColorToLayer(this.#gtLayer.getSource(), selectedColormap)
343
325
  }
@@ -360,33 +342,48 @@ export default class TerraTimeAverageMap extends TerraElement {
360
342
  : html`<div class="spacer"></div>`
361
343
  )}
362
344
 
363
- <!-- Display pixels/coordinate/opacity/colormap list in Map -->
364
- <div id="map"">
365
- <div id="settings">
366
- <div><strong>Value:</strong> <span id="pixelValue">N/A</span></div>
367
- <div><strong>Lat,Lon:</strong> <span id="cursorCoordinates">N/A</span></div>
368
- <div>
369
- <label>
370
- Layer opacity
371
- <input id="opacity-input" type="range" min="0" max="1" step="0.01" value="1" />
372
- <span id="opacity-output"></span>
373
- </label>
374
- <label>
375
- ColorMap:
376
- <select id="colormap-select" @change=${this.#onColorMapChange}>
377
- ${this.colormaps.map(
378
- cm =>
379
- html` <option
380
- value="${cm}"
381
- ?selected=${cm === this.colorMapName}
382
- >
383
- ${cm}
384
- </option>`
385
- )}
386
- </select>
345
+ <div id="map">
346
+ <!-- Settings for pixel value, coordinates, opacity, and colormap -->
347
+ <div id="settings">
348
+ <div>
349
+ <strong>Value:</strong> <span id="pixelValue">N/A</span>
350
+ </div>
351
+ <div>
352
+ <strong>Coordinate: </strong>
353
+ <span id="cursorCoordinates">N/A</span>
354
+ </div>
355
+
356
+ <label>
357
+ Layer opacity
358
+ <input
359
+ id="opacity-input"
360
+ type="range"
361
+ min="0"
362
+ max="1"
363
+ step="0.01"
364
+ value="1"
365
+ />
366
+ <span id="opacity-output"></span>
367
+ </label>
368
+
369
+ <label>
370
+ ColorMap:
371
+ <select
372
+ id="colormap-select"
373
+ @change=${this.#onColorMapChange}
374
+ >
375
+ ${this.colormaps.map(
376
+ cm =>
377
+ html` <option
378
+ value="${cm}"
379
+ ?selected=${cm === this.colorMapName}
380
+ >
381
+ ${cm}
382
+ </option>`
383
+ )}
384
+ </select>
387
385
  </label>
388
386
  </div>
389
- </div>
390
387
  </div>
391
388
  `
392
389
  }