@jupytergis/base 0.11.1 → 0.12.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.
Files changed (102) hide show
  1. package/lib/commands/BaseCommandIDs.d.ts +1 -0
  2. package/lib/commands/BaseCommandIDs.js +1 -0
  3. package/lib/commands/index.js +52 -0
  4. package/lib/constants.d.ts +3 -2
  5. package/lib/constants.js +3 -0
  6. package/lib/dialogs/symbology/hooks/useGetBandInfo.d.ts +0 -6
  7. package/lib/dialogs/symbology/hooks/useGetBandInfo.js +2 -2
  8. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.js +4 -4
  9. package/lib/formbuilder/objectform/StoryEditorForm.d.ts +3 -2
  10. package/lib/formbuilder/objectform/StoryEditorForm.js +24 -1
  11. package/lib/mainview/mainView.d.ts +18 -0
  12. package/lib/mainview/mainView.js +243 -18
  13. package/lib/panelview/{components/filter-panel → filter-panel}/Filter.js +1 -1
  14. package/lib/panelview/leftpanel.js +26 -17
  15. package/lib/panelview/rightpanel.d.ts +2 -0
  16. package/lib/panelview/rightpanel.js +22 -14
  17. package/lib/panelview/{components/story-maps → story-maps}/PreviewModeSwitch.js +3 -2
  18. package/lib/panelview/story-maps/StoryEditorPanel.d.ts +9 -0
  19. package/lib/panelview/story-maps/StoryEditorPanel.js +34 -0
  20. package/lib/panelview/{components/story-maps → story-maps}/StoryNavBar.d.ts +2 -1
  21. package/lib/panelview/{components/story-maps → story-maps}/StoryNavBar.js +3 -3
  22. package/lib/panelview/story-maps/StoryViewerPanel.d.ts +13 -0
  23. package/lib/panelview/{components/story-maps → story-maps}/StoryViewerPanel.js +37 -24
  24. package/lib/panelview/story-maps/components/StoryContentSection.d.ts +6 -0
  25. package/lib/panelview/story-maps/components/StoryContentSection.js +10 -0
  26. package/lib/panelview/story-maps/components/StoryImageSection.d.ts +15 -0
  27. package/lib/panelview/story-maps/components/StoryImageSection.js +13 -0
  28. package/lib/panelview/story-maps/components/StorySubtitleSection.d.ts +11 -0
  29. package/lib/panelview/story-maps/components/StorySubtitleSection.js +9 -0
  30. package/lib/panelview/story-maps/components/StoryTitleSection.d.ts +12 -0
  31. package/lib/panelview/story-maps/components/StoryTitleSection.js +8 -0
  32. package/lib/shared/components/Combobox.d.ts +21 -0
  33. package/lib/shared/components/Combobox.js +32 -0
  34. package/lib/shared/components/Command.js +10 -10
  35. package/lib/shared/components/Input.d.ts +3 -0
  36. package/lib/shared/components/Input.js +18 -0
  37. package/lib/shared/components/Pagination.js +3 -2
  38. package/lib/shared/components/Select.d.ts +19 -0
  39. package/lib/shared/components/Select.js +28 -0
  40. package/lib/shared/components/SingleDatePicker.d.ts +11 -0
  41. package/lib/shared/components/SingleDatePicker.js +16 -0
  42. package/lib/stacBrowser/components/StacPanel.d.ts +9 -1
  43. package/lib/stacBrowser/components/StacPanel.js +53 -9
  44. package/lib/stacBrowser/components/filter-extension/QueryableComboBox.d.ts +9 -0
  45. package/lib/stacBrowser/components/filter-extension/QueryableComboBox.js +179 -0
  46. package/lib/stacBrowser/components/filter-extension/QueryableRow.d.ts +16 -0
  47. package/lib/stacBrowser/components/filter-extension/QueryableRow.js +16 -0
  48. package/lib/stacBrowser/components/filter-extension/StacFilterExtensionPanel.d.ts +7 -0
  49. package/lib/stacBrowser/components/filter-extension/StacFilterExtensionPanel.js +49 -0
  50. package/lib/stacBrowser/components/filter-extension/StacQueryableFilters.d.ts +11 -0
  51. package/lib/stacBrowser/components/filter-extension/StacQueryableFilters.js +19 -0
  52. package/lib/stacBrowser/components/{StacFilterSection.d.ts → geodes/StacFilterSection.d.ts} +1 -1
  53. package/lib/stacBrowser/components/{StacFilterSection.js → geodes/StacFilterSection.js} +3 -3
  54. package/lib/stacBrowser/components/geodes/StacGeodesFilterPanel.d.ts +7 -0
  55. package/lib/stacBrowser/components/geodes/StacGeodesFilterPanel.js +69 -0
  56. package/lib/stacBrowser/components/shared/StacPanelResults.d.ts +3 -0
  57. package/lib/stacBrowser/components/shared/StacPanelResults.js +68 -0
  58. package/lib/stacBrowser/components/shared/StacSpatialExtent.d.ts +8 -0
  59. package/lib/stacBrowser/components/shared/StacSpatialExtent.js +10 -0
  60. package/lib/stacBrowser/components/shared/StacTemporalExtent.d.ts +9 -0
  61. package/lib/stacBrowser/components/shared/StacTemporalExtent.js +9 -0
  62. package/lib/stacBrowser/context/StacResultsContext.d.ts +33 -0
  63. package/lib/stacBrowser/context/StacResultsContext.js +269 -0
  64. package/lib/stacBrowser/hooks/useGeodesSearch.d.ts +24 -0
  65. package/lib/stacBrowser/hooks/useGeodesSearch.js +178 -0
  66. package/lib/stacBrowser/hooks/useStacFilterExtension.d.ts +30 -0
  67. package/lib/stacBrowser/hooks/useStacFilterExtension.js +262 -0
  68. package/lib/stacBrowser/hooks/useStacSearch.d.ts +5 -16
  69. package/lib/stacBrowser/hooks/useStacSearch.js +30 -184
  70. package/lib/stacBrowser/types/types.d.ts +86 -3
  71. package/lib/toolbar/widget.d.ts +5 -0
  72. package/lib/toolbar/widget.js +23 -2
  73. package/lib/tools.d.ts +2 -8
  74. package/lib/tools.js +67 -18
  75. package/package.json +2 -3
  76. package/style/base.css +54 -11
  77. package/style/shared/button.css +5 -4
  78. package/style/shared/calendar.css +7 -1
  79. package/style/shared/combobox.css +75 -0
  80. package/style/shared/command.css +178 -0
  81. package/style/shared/input.css +59 -0
  82. package/style/shared/pagination.css +1 -1
  83. package/style/shared/popover.css +1 -0
  84. package/style/shared/tabs.css +1 -7
  85. package/style/shared/toggle.css +1 -1
  86. package/style/stacBrowser.css +169 -16
  87. package/style/statusBar.css +1 -0
  88. package/style/storyPanel.css +122 -3
  89. package/style/tabPanel.css +0 -86
  90. package/lib/panelview/components/story-maps/StoryEditorPanel.d.ts +0 -7
  91. package/lib/panelview/components/story-maps/StoryEditorPanel.js +0 -29
  92. package/lib/panelview/components/story-maps/StoryViewerPanel.d.ts +0 -7
  93. package/lib/stacBrowser/components/StacPanelFilters.d.ts +0 -14
  94. package/lib/stacBrowser/components/StacPanelFilters.js +0 -81
  95. package/lib/stacBrowser/components/StacPanelResults.d.ts +0 -13
  96. package/lib/stacBrowser/components/StacPanelResults.js +0 -48
  97. /package/lib/panelview/{components/filter-panel → filter-panel}/Filter.d.ts +0 -0
  98. /package/lib/panelview/{components/filter-panel → filter-panel}/FilterRow.d.ts +0 -0
  99. /package/lib/panelview/{components/filter-panel → filter-panel}/FilterRow.js +0 -0
  100. /package/lib/panelview/{components/identify-panel → identify-panel}/IdentifyPanel.d.ts +0 -0
  101. /package/lib/panelview/{components/identify-panel → identify-panel}/IdentifyPanel.js +0 -0
  102. /package/lib/panelview/{components/story-maps → story-maps}/PreviewModeSwitch.d.ts +0 -0
@@ -1,81 +0,0 @@
1
- import { format } from 'date-fns';
2
- import { CalendarIcon } from 'lucide-react';
3
- import React from 'react';
4
- import { Button } from "../../shared/components/Button";
5
- import { Calendar } from "../../shared/components/Calendar";
6
- import Checkbox from "../../shared/components/Checkbox";
7
- import { Popover, PopoverContent, PopoverTrigger, } from "../../shared/components/Popover";
8
- import StacFilterSection from "./StacFilterSection";
9
- import { datasets as datasetsList, platforms as platformsList, products as productsList, } from "../constants";
10
- const StacPanelFilters = ({ filterState, filterSetters, startTime, setStartTime, endTime, setEndTime, useWorldBBox, setUseWorldBBox, }) => {
11
- const handleDatasetSelection = (dataset, collection) => {
12
- const collections = new Set(filterState.collections);
13
- const datasets = new Set(filterState.datasets);
14
- if (datasets.has(dataset)) {
15
- datasets.delete(dataset);
16
- // Remove the collection if no datasets remain for it
17
- const datasetsForCollection = Array.from(datasets).filter(d => {
18
- return datasetsList.some(entry => entry.collection === collection && entry.datasets.includes(d));
19
- });
20
- if (datasetsForCollection.length === 0) {
21
- collections.delete(collection);
22
- const platforms = new Set(filterState.platforms);
23
- const products = new Set(filterState.products);
24
- // Remove platforms belonging to this collection
25
- if (platformsList[collection]) {
26
- platformsList[collection].forEach(platform => {
27
- platforms.delete(platform);
28
- });
29
- }
30
- // Remove products belonging to this collection
31
- productsList
32
- .filter(product => product.collections.includes(collection))
33
- .forEach(product => {
34
- products.delete(product.productCode);
35
- });
36
- filterSetters.platforms(platforms);
37
- filterSetters.products(products);
38
- }
39
- }
40
- else {
41
- datasets.add(dataset);
42
- collections.add(collection);
43
- }
44
- filterSetters.collections(collections);
45
- filterSetters.datasets(datasets);
46
- };
47
- const handleToggle = (key, value) => {
48
- const updated = new Set(filterState[key]);
49
- if (updated.has(value)) {
50
- updated.delete(value);
51
- }
52
- else {
53
- updated.add(value);
54
- }
55
- filterSetters[key](updated);
56
- };
57
- return (React.createElement("div", { className: "jgis-stac-browser-filters-panel" },
58
- React.createElement("div", null,
59
- React.createElement("span", { style: { display: 'flex', alignItems: 'center', gap: '0.5rem' } },
60
- React.createElement(Checkbox, { checked: useWorldBBox, onCheckedChange: setUseWorldBBox }),
61
- "Use whole world as bounding box")),
62
- React.createElement("div", { className: "jgis-stac-browser-date-picker" },
63
- React.createElement(Popover, null,
64
- React.createElement(PopoverTrigger, { asChild: true },
65
- React.createElement(Button, { style: { padding: '0 0.5rem' }, variant: 'outline' },
66
- React.createElement(CalendarIcon, { className: "jgis-stac-datepicker-icon" }),
67
- startTime ? format(startTime, 'PPP') : React.createElement("span", null, "Start Date"))),
68
- React.createElement(PopoverContent, null,
69
- React.createElement(Calendar, { mode: "single", selected: startTime, onSelect: setStartTime, autoFocus: true }))),
70
- React.createElement(Popover, null,
71
- React.createElement(PopoverTrigger, { asChild: true },
72
- React.createElement(Button, { style: { padding: '0 0.5rem' }, variant: 'outline' },
73
- React.createElement(CalendarIcon, { className: "jgis-stac-datepicker-icon" }),
74
- endTime ? format(endTime, 'PPP') : React.createElement("span", null, "End Date"))),
75
- React.createElement(PopoverContent, null,
76
- React.createElement(Calendar, { mode: "single", selected: endTime, onSelect: setEndTime, autoFocus: true })))),
77
- React.createElement(StacFilterSection, { section: "Collection", data: datasetsList, selectedCollections: Array.from(filterState.collections), selectedData: Array.from(filterState.datasets), handleCheckedChange: handleDatasetSelection }),
78
- React.createElement(StacFilterSection, { section: "Platform", data: platformsList, selectedCollections: Array.from(filterState.collections), selectedData: Array.from(filterState.platforms), handleCheckedChange: platform => handleToggle('platforms', platform) }),
79
- React.createElement(StacFilterSection, { section: "Data / Product", data: productsList, selectedCollections: Array.from(filterState.collections), selectedData: Array.from(filterState.products), handleCheckedChange: product => handleToggle('products', product) })));
80
- };
81
- export default StacPanelFilters;
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import { IStacItem } from "../types/types";
3
- interface IStacPanelResultsProps {
4
- results: IStacItem[];
5
- currentPage: number;
6
- totalPages: number;
7
- handlePaginationClick: (page: number) => void;
8
- handleResultClick: (id: string) => void;
9
- formatResult: (item: IStacItem) => string;
10
- isLoading: boolean;
11
- }
12
- declare const StacPanelResults: ({ results, currentPage, totalPages, handlePaginationClick, handleResultClick, formatResult, isLoading, }: IStacPanelResultsProps) => React.JSX.Element;
13
- export default StacPanelResults;
@@ -1,48 +0,0 @@
1
- import React from 'react';
2
- import { Button } from "../../shared/components/Button";
3
- import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from "../../shared/components/Pagination";
4
- function getPageItems(currentPage, totalPages) {
5
- if (totalPages <= 5) {
6
- return Array.from({ length: totalPages }, (_, i) => i + 1);
7
- }
8
- if (currentPage <= 3) {
9
- return [1, 2, 3, 'ellipsis', totalPages];
10
- }
11
- if (currentPage >= totalPages - 2) {
12
- return [
13
- totalPages - 4,
14
- totalPages - 3,
15
- totalPages - 2,
16
- totalPages - 1,
17
- totalPages,
18
- ];
19
- }
20
- return [
21
- currentPage - 2,
22
- currentPage - 1,
23
- currentPage,
24
- 'ellipsis',
25
- totalPages,
26
- ];
27
- }
28
- const StacPanelResults = ({ results, currentPage, totalPages, handlePaginationClick, handleResultClick, formatResult, isLoading, }) => {
29
- return (React.createElement("div", { className: "jgis-stac-browser-filters-panel" },
30
- React.createElement(Pagination, null,
31
- React.createElement(PaginationContent, { style: { marginTop: 0 } },
32
- React.createElement(PaginationItem, null,
33
- React.createElement(PaginationPrevious, { onClick: () => handlePaginationClick(Math.max(1, currentPage - 1)), disabled: currentPage === 1 })),
34
- totalPages <= 0 ? (React.createElement("div", null, "No Matches Found")) : (getPageItems(currentPage, totalPages).map(item => {
35
- if (item === 'ellipsis') {
36
- return (React.createElement(PaginationItem, { key: "ellipsis" },
37
- React.createElement(PaginationEllipsis, null)));
38
- }
39
- return (React.createElement(PaginationItem, { key: item },
40
- React.createElement(PaginationLink, { isActive: item === currentPage, onClick: () => handlePaginationClick(item) }, item)));
41
- })),
42
- React.createElement(PaginationItem, null,
43
- React.createElement(PaginationNext, { onClick: () => handlePaginationClick(Math.min(totalPages, currentPage + 1)), disabled: currentPage === totalPages })))),
44
- React.createElement("div", { className: "jgis-stac-browser-results-list" }, isLoading ? (
45
- // TODO: Fancy spinner
46
- React.createElement("div", null, "Loading results...")) : (results.map(result => (React.createElement(Button, { key: result.id, className: "jgis-stac-browser-results-item", onClick: () => handleResultClick(result.id) }, formatResult(result))))))));
47
- };
48
- export default StacPanelResults;