Skip to content

Commit a13c26a

Browse files
authored
Merge branch 'main' into readme
2 parents ef2ac09 + 8722643 commit a13c26a

File tree

13 files changed

+65
-46
lines changed

13 files changed

+65
-46
lines changed

packages/data-sheet/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format
44
is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this
55
project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [2.1.1] - 2025-06-25
8+
9+
- Fix issue with exports and Parcel
10+
- Improve some types
11+
- PostgREST sheet: set default ordering to `identityKey` ascending
12+
713
## [2.1.0] - 2025-06-25
814

915
- Add filtering to PostgREST table

packages/data-sheet/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@macrostrat/data-sheet",
3-
"version": "2.1.0",
3+
"version": "2.1.1",
44
"description": "Scalable data sheet with optional editing capabilities",
55
"type": "module",
66
"source": "src/index.ts",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from "./editor-popup";
22
export * from "./colors";
33
export * from "./text-areas";
4+
export * from "./actions";

packages/data-sheet/src/core.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,10 @@ import "@blueprintjs/table/lib/css/table.css";
1616
import hyper from "@macrostrat/hyper";
1717
import update from "immutability-helper";
1818
import { ReactNode, useCallback, useEffect, useMemo, useState } from "react";
19-
import { EditorPopup, handleSpecialKeys } from "./components";
19+
import { EditorPopup, handleSpecialKeys, DataSheetAction } from "./components";
2020
import styles from "./main.module.sass";
2121
import {
2222
ColumnSpec,
23-
ColumnSpecOptions,
2423
DataSheetProvider,
2524
DataSheetProviderProps,
2625
DataSheetStore,
@@ -29,10 +28,6 @@ import {
2928
useStoreAPI,
3029
VisibleCells,
3130
} from "./provider";
32-
import { DataSheetAction } from "./components/actions";
33-
34-
export type { ColumnSpec, ColumnSpecOptions };
35-
export * from "./components";
3631

3732
const h = hyper.styled(styles);
3833

@@ -157,7 +152,7 @@ function _DataSheet<T>({
157152
);
158153

159154
const onAddRow = useCallback(() => {
160-
setUpdatedData((updatedData) => {
155+
setUpdatedData((updatedData: any[]): any[] => {
161156
const ix = Math.max(updatedData.length, data.length);
162157
const addRowSpec = { [ix]: { $set: {} } };
163158
const newUpdatedData = update(updatedData, addRowSpec);

packages/data-sheet/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
export * from "./core";
22
export * from "./postgrest-table";
3+
export * from "./components";
4+
export * from "./provider";

packages/data-sheet/src/postgrest-table/data-loaders.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ interface LazyLoaderState<T> {
2525
initialized: boolean;
2626
}
2727

28+
export interface PostgrestOrder<T> {
29+
key: string;
30+
ascending?: boolean;
31+
nullsFirst?: boolean;
32+
}
33+
2834
type LazyLoaderAction<T> =
2935
| { type: "start-loading" }
3036
| { type: "loaded"; data: T[]; offset: number; totalSize: number }
@@ -130,7 +136,7 @@ interface QueryConfig {
130136
count?: "exact" | "estimated";
131137
limit?: number;
132138
offset?: number;
133-
order?: { key: string; ascending: boolean };
139+
order?: PostgrestOrder<any>;
134140
after?: any;
135141
filter?: (
136142
query: PostgrestFilterBuilder<any, any, any>,
@@ -158,12 +164,11 @@ function buildQuery<T>(
158164
}
159165

160166
if (config.order != null) {
161-
query = query.order(config.order.key, {
162-
ascending: config.order.ascending,
163-
});
167+
const { key: orderKey, ...rest } = config.order;
168+
query = query.order(orderKey, rest);
164169
if (config.after != null) {
165-
const op = config.order.ascending ? "gt" : "lt";
166-
query = query[op](config.order.key, config.after);
170+
const op = (rest.ascending ?? true) ? "gt" : "lt";
171+
query = query[op](orderKey, config.after);
167172
}
168173
}
169174
if (config.limit != null) {

packages/data-sheet/src/postgrest-table/index.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { Toaster, HotkeysProvider } from "@blueprintjs/core";
22
import hyper from "@macrostrat/hyper";
33
import styles from "./main.module.sass";
4-
import { DataSheet, ColorCell, getRowsToDelete } from "../core"; //getRowsToDelete
4+
import { DataSheet, getRowsToDelete } from "../core"; //getRowsToDelete
55
import { LithologyTag, Tag, TagSize } from "@macrostrat/data-components";
6-
import { usePostgRESTLazyLoader } from "./data-loaders";
6+
import { PostgrestOrder, usePostgRESTLazyLoader } from "./data-loaders";
77
import { Spinner } from "@blueprintjs/core";
88

99
export * from "./data-loaders";
@@ -21,6 +21,7 @@ import type {
2121
GenericTable,
2222
GenericView,
2323
} from "@supabase/postgrest-js/dist/cjs/types";
24+
import { ColorCell } from "../components";
2425

2526
const h = hyper.styled(styles);
2627

@@ -35,9 +36,10 @@ interface PostgRESTTableViewProps<T extends object>
3536
endpoint: string;
3637
table: string;
3738
columnOptions?: any;
38-
order?: any;
39+
order?: PostgrestOrder<T>;
3940
columns?: string;
4041
editable?: boolean;
42+
identityKey?: string;
4143
filter(
4244
query: PostgrestFilterBuilder<T, any, any>,
4345
): PostgrestFilterBuilder<T, any, any>;
@@ -67,7 +69,7 @@ function _PostgRESTTableView<T>({
6769
endpoint,
6870
table,
6971
{
70-
order,
72+
order: order ?? { key: identityKey, ascending: true },
7173
columns,
7274
filter,
7375
},
@@ -216,11 +218,11 @@ export function ExpandedLithologies({ value, onChange }) {
216218
h(
217219
"td.basis-col",
218220
d.basis_col?.map((d) => {
219-
return h(Tag, { size: TagSize.Small, key: d }, [
220-
h("span.tag-header", "Column"),
221-
" ",
222-
h("code", d),
223-
]);
221+
return h(Tag, {
222+
size: TagSize.Small,
223+
key: d,
224+
name: h([h("span.tag-header", "Column"), " ", h("code", d)]),
225+
});
224226
}),
225227
),
226228
]);

packages/data-sheet/src/provider.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,12 @@ export interface DataSheetComputedStore {
6161

6262
type DataSheetVals<T> = DataSheetState<T> & DataSheetCoreProps<T>;
6363

64+
type StateUpdater<T> = T[] | ((state: T[]) => T[]);
65+
6466
export interface DataSheetStore<T> extends DataSheetVals<T> {
6567
setSelection(selection: Region[]): void;
6668
onDragValue(cell: FocusedCellCoordinates | null): void;
67-
setUpdatedData(data: T[]): void;
69+
setUpdatedData(data: StateUpdater<T>): void;
6870
onCellEdited(rowIndex: number, columnName: string, value: any): void;
6971
onColumnsReordered(oldIndex: number, newIndex: number, length: number): void;
7072
moveFocusedCell(direction: "up" | "down" | "left" | "right"): void;
@@ -178,7 +180,7 @@ export function DataSheetProvider<T>({
178180
};
179181
});
180182
},
181-
setUpdatedData(data: T[] | ((state: T[]) => T[])) {
183+
setUpdatedData(data: StateUpdater<T>) {
182184
if (Array.isArray(data)) {
183185
set({ updatedData: data });
184186
} else {

packages/data-sheet/src/utils/column-spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import type { ColumnSpec, ColumnSpecOptions } from "../provider";
2+
13
const defaultRenderers = {
24
string: (d) => d,
35
number: (d) => d?.toFixed(2),
@@ -104,7 +106,7 @@ export function generateDefaultColumnSpec<T>(
104106

105107
export function generateColumnSpec<T>(
106108
data: T[],
107-
options: ColumnSpecOptions,
109+
options: ColumnSpecOptions<T>,
108110
): ColumnSpec[] {
109111
/** Generate a column spec from a dataset */
110112
const { overrides = {}, nRows = 10, omitColumns, includeColumns } = options;

packages/map-interface/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format
44
is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this
55
project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [1.3.2] - 2025-06-26
8+
9+
Bugfix for DevMapPage when applying custom styles
10+
711
## [1.3.1] - 2025-06-25
812

913
Small improvements to types and styles

0 commit comments

Comments
 (0)