vastgrid 0.1.0 → 0.2.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.
- package/README.md +175 -13
- package/dist/canvas/geometry.d.ts +92 -0
- package/dist/canvas/geometry.d.ts.map +1 -0
- package/dist/canvas/geometry.js +197 -0
- package/dist/canvas/geometry.js.map +1 -0
- package/dist/canvas/grid-canvas.d.ts +161 -0
- package/dist/canvas/grid-canvas.d.ts.map +1 -0
- package/dist/canvas/grid-canvas.js +1146 -0
- package/dist/canvas/grid-canvas.js.map +1 -0
- package/dist/canvas/hooks.d.ts +61 -0
- package/dist/canvas/hooks.d.ts.map +1 -0
- package/dist/canvas/hooks.js +2 -0
- package/dist/canvas/hooks.js.map +1 -0
- package/dist/canvas/keys.d.ts +26 -0
- package/dist/canvas/keys.d.ts.map +1 -0
- package/dist/canvas/keys.js +133 -0
- package/dist/canvas/keys.js.map +1 -0
- package/dist/canvas/layout.d.ts +26 -0
- package/dist/canvas/layout.d.ts.map +1 -0
- package/dist/canvas/layout.js +73 -0
- package/dist/canvas/layout.js.map +1 -0
- package/dist/canvas/scroll.d.ts +31 -0
- package/dist/canvas/scroll.d.ts.map +1 -0
- package/dist/canvas/scroll.js +111 -0
- package/dist/canvas/scroll.js.map +1 -0
- package/dist/canvas/text.d.ts +23 -0
- package/dist/canvas/text.d.ts.map +1 -0
- package/dist/canvas/text.js +142 -0
- package/dist/canvas/text.js.map +1 -0
- package/dist/{theme.d.ts → canvas/theme.d.ts} +8 -0
- package/dist/canvas/theme.d.ts.map +1 -0
- package/dist/canvas/theme.js +62 -0
- package/dist/canvas/theme.js.map +1 -0
- package/dist/core/cache.d.ts +48 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +222 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/checked.d.ts +20 -0
- package/dist/core/checked.d.ts.map +1 -0
- package/dist/core/checked.js +61 -0
- package/dist/core/checked.js.map +1 -0
- package/dist/core/client.d.ts +33 -0
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/client.js +103 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/conditions.d.ts +48 -0
- package/dist/core/conditions.d.ts.map +1 -0
- package/dist/core/conditions.js +105 -0
- package/dist/core/conditions.js.map +1 -0
- package/dist/core/evaluate.d.ts +20 -0
- package/dist/core/evaluate.d.ts.map +1 -0
- package/dist/core/evaluate.js +210 -0
- package/dist/core/evaluate.js.map +1 -0
- package/dist/core/filters.d.ts +51 -0
- package/dist/core/filters.d.ts.map +1 -0
- package/dist/core/filters.js +303 -0
- package/dist/core/filters.js.map +1 -0
- package/dist/core/format.d.ts +14 -0
- package/dist/core/format.d.ts.map +1 -0
- package/dist/core/format.js +303 -0
- package/dist/core/format.js.map +1 -0
- package/dist/core/measures.d.ts +26 -0
- package/dist/core/measures.d.ts.map +1 -0
- package/dist/core/measures.js +105 -0
- package/dist/core/measures.js.map +1 -0
- package/dist/core/request-ids.d.ts +20 -0
- package/dist/core/request-ids.d.ts.map +1 -0
- package/dist/core/request-ids.js +55 -0
- package/dist/core/request-ids.js.map +1 -0
- package/dist/core/rows.d.ts +79 -0
- package/dist/core/rows.d.ts.map +1 -0
- package/dist/core/rows.js +173 -0
- package/dist/core/rows.js.map +1 -0
- package/dist/core/store.d.ts +233 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +1162 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/totals.d.ts +24 -0
- package/dist/core/totals.d.ts.map +1 -0
- package/dist/core/totals.js +49 -0
- package/dist/core/totals.js.map +1 -0
- package/dist/core/trace.d.ts +7 -0
- package/dist/core/trace.d.ts.map +1 -0
- package/dist/core/trace.js +26 -0
- package/dist/core/trace.js.map +1 -0
- package/dist/core/transports.d.ts +50 -0
- package/dist/core/transports.d.ts.map +1 -0
- package/dist/core/transports.js +160 -0
- package/dist/core/transports.js.map +1 -0
- package/dist/core/types.d.ts +150 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +45 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core.d.ts +12 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +11 -0
- package/dist/core.js.map +1 -0
- package/dist/index.d.ts +15 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -7
- package/dist/index.js.map +1 -1
- package/dist/react/accessible-rows.d.ts +13 -0
- package/dist/react/accessible-rows.d.ts.map +1 -0
- package/dist/react/accessible-rows.js +320 -0
- package/dist/react/accessible-rows.js.map +1 -0
- package/dist/react/cell-editor.d.ts +22 -0
- package/dist/react/cell-editor.d.ts.map +1 -0
- package/dist/react/cell-editor.js +431 -0
- package/dist/react/cell-editor.js.map +1 -0
- package/dist/react/cell-menu.d.ts +18 -0
- package/dist/react/cell-menu.d.ts.map +1 -0
- package/dist/react/cell-menu.js +299 -0
- package/dist/react/cell-menu.js.map +1 -0
- package/dist/react/column-menu.d.ts +16 -0
- package/dist/react/column-menu.d.ts.map +1 -0
- package/dist/react/column-menu.js +1311 -0
- package/dist/react/column-menu.js.map +1 -0
- package/dist/react/columns-menu.d.ts +7 -0
- package/dist/react/columns-menu.d.ts.map +1 -0
- package/dist/react/columns-menu.js +249 -0
- package/dist/react/columns-menu.js.map +1 -0
- package/dist/react/conditions-menu.d.ts +10 -0
- package/dist/react/conditions-menu.d.ts.map +1 -0
- package/dist/react/conditions-menu.js +795 -0
- package/dist/react/conditions-menu.js.map +1 -0
- package/dist/react/context.d.ts +29 -0
- package/dist/react/context.d.ts.map +1 -0
- package/dist/react/context.js +18 -0
- package/dist/react/context.js.map +1 -0
- package/dist/react/data-grid.d.ts +79 -0
- package/dist/react/data-grid.d.ts.map +1 -0
- package/dist/react/data-grid.js +653 -0
- package/dist/react/data-grid.js.map +1 -0
- package/dist/react/detail-panel.d.ts +22 -0
- package/dist/react/detail-panel.d.ts.map +1 -0
- package/dist/react/detail-panel.js +242 -0
- package/dist/react/detail-panel.js.map +1 -0
- package/dist/react/export-menu.d.ts +11 -0
- package/dist/react/export-menu.d.ts.map +1 -0
- package/dist/react/export-menu.js +304 -0
- package/dist/react/export-menu.js.map +1 -0
- package/dist/react/find-bar.d.ts +11 -0
- package/dist/react/find-bar.d.ts.map +1 -0
- package/dist/react/find-bar.js +303 -0
- package/dist/react/find-bar.js.map +1 -0
- package/dist/react/format-form.d.ts +12 -0
- package/dist/react/format-form.d.ts.map +1 -0
- package/dist/react/format-form.js +863 -0
- package/dist/react/format-form.js.map +1 -0
- package/dist/react/formula-menu.d.ts +6 -0
- package/dist/react/formula-menu.d.ts.map +1 -0
- package/dist/react/formula-menu.js +343 -0
- package/dist/react/formula-menu.js.map +1 -0
- package/dist/react/grid-body.d.ts +33 -0
- package/dist/react/grid-body.d.ts.map +1 -0
- package/dist/react/grid-body.js +1389 -0
- package/dist/react/grid-body.js.map +1 -0
- package/dist/react/group-menu.d.ts +7 -0
- package/dist/react/group-menu.d.ts.map +1 -0
- package/dist/react/group-menu.js +508 -0
- package/dist/react/group-menu.js.map +1 -0
- package/dist/react/hooks.d.ts +33 -0
- package/dist/react/hooks.d.ts.map +1 -0
- package/dist/react/hooks.js +161 -0
- package/dist/react/hooks.js.map +1 -0
- package/dist/react/messages.d.ts +180 -0
- package/dist/react/messages.d.ts.map +1 -0
- package/dist/react/messages.js +414 -0
- package/dist/react/messages.js.map +1 -0
- package/dist/react/save.d.ts +9 -0
- package/dist/react/save.d.ts.map +1 -0
- package/dist/react/save.js +102 -0
- package/dist/react/save.js.map +1 -0
- package/dist/react/static-rows.d.ts +9 -0
- package/dist/react/static-rows.d.ts.map +1 -0
- package/dist/react/static-rows.js +176 -0
- package/dist/react/static-rows.js.map +1 -0
- package/dist/react/status-bar.d.ts +12 -0
- package/dist/react/status-bar.d.ts.map +1 -0
- package/dist/react/status-bar.js +413 -0
- package/dist/react/status-bar.js.map +1 -0
- package/dist/react/toolbar-popover.d.ts +14 -0
- package/dist/react/toolbar-popover.d.ts.map +1 -0
- package/dist/react/toolbar-popover.js +143 -0
- package/dist/react/toolbar-popover.js.map +1 -0
- package/dist/react/toolbar.d.ts +13 -0
- package/dist/react/toolbar.d.ts.map +1 -0
- package/dist/react/toolbar.js +344 -0
- package/dist/react/toolbar.js.map +1 -0
- package/dist/server.d.ts +22 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +45 -0
- package/dist/server.js.map +1 -0
- package/dist/styles.css +496 -316
- package/package.json +43 -18
- package/src/canvas/geometry.ts +197 -0
- package/src/canvas/grid-canvas.ts +1222 -0
- package/src/canvas/hooks.ts +61 -0
- package/src/canvas/keys.ts +96 -0
- package/src/canvas/layout.ts +77 -0
- package/src/canvas/scroll.ts +120 -0
- package/src/canvas/text.ts +155 -0
- package/src/{theme.ts → canvas/theme.ts} +14 -1
- package/src/core/cache.ts +247 -0
- package/src/core/checked.ts +64 -0
- package/src/core/client.ts +103 -0
- package/src/core/conditions.ts +89 -0
- package/src/core/evaluate.ts +221 -0
- package/src/core/filters.ts +268 -0
- package/src/core/format.ts +309 -0
- package/src/core/measures.ts +99 -0
- package/src/core/request-ids.ts +54 -0
- package/src/core/rows.ts +213 -0
- package/src/core/store.ts +1122 -0
- package/src/core/totals.ts +59 -0
- package/src/core/trace.ts +44 -0
- package/src/core/transports.ts +177 -0
- package/src/core/types.ts +168 -0
- package/src/core.ts +39 -0
- package/src/index.ts +24 -12
- package/src/react/accessible-rows.tsx +242 -0
- package/src/react/cell-editor.tsx +216 -0
- package/src/react/cell-menu.tsx +166 -0
- package/src/react/column-menu.tsx +619 -0
- package/src/react/columns-menu.tsx +116 -0
- package/src/react/conditions-menu.tsx +289 -0
- package/src/react/context.ts +33 -0
- package/src/react/data-grid.tsx +286 -0
- package/src/react/detail-panel.tsx +92 -0
- package/src/react/export-menu.tsx +112 -0
- package/src/react/find-bar.tsx +112 -0
- package/src/react/format-form.tsx +421 -0
- package/src/react/formula-menu.tsx +163 -0
- package/src/react/grid-body.tsx +744 -0
- package/src/react/group-menu.tsx +214 -0
- package/src/react/hooks.ts +104 -0
- package/src/react/messages.ts +556 -0
- package/src/react/save.ts +42 -0
- package/src/react/static-rows.tsx +59 -0
- package/src/react/status-bar.tsx +175 -0
- package/src/react/toolbar-popover.tsx +69 -0
- package/src/react/toolbar.tsx +152 -0
- package/src/server.ts +58 -0
- package/src/styles.css +496 -316
- package/dist/components/bars.d.ts +0 -14
- package/dist/components/bars.d.ts.map +0 -1
- package/dist/components/bars.js +0 -67
- package/dist/components/bars.js.map +0 -1
- package/dist/components/cell-inspector.d.ts +0 -11
- package/dist/components/cell-inspector.d.ts.map +0 -1
- package/dist/components/cell-inspector.js +0 -37
- package/dist/components/cell-inspector.js.map +0 -1
- package/dist/components/columns-panel.d.ts +0 -12
- package/dist/components/columns-panel.d.ts.map +0 -1
- package/dist/components/columns-panel.js +0 -11
- package/dist/components/columns-panel.js.map +0 -1
- package/dist/components/filter-panel.d.ts +0 -17
- package/dist/components/filter-panel.d.ts.map +0 -1
- package/dist/components/filter-panel.js +0 -165
- package/dist/components/filter-panel.js.map +0 -1
- package/dist/components/find-bar.d.ts +0 -9
- package/dist/components/find-bar.d.ts.map +0 -1
- package/dist/components/find-bar.js +0 -46
- package/dist/components/find-bar.js.map +0 -1
- package/dist/components/popover.d.ts +0 -38
- package/dist/components/popover.d.ts.map +0 -1
- package/dist/components/popover.js +0 -104
- package/dist/components/popover.js.map +0 -1
- package/dist/components/stats-panel.d.ts +0 -12
- package/dist/components/stats-panel.d.ts.map +0 -1
- package/dist/components/stats-panel.js +0 -40
- package/dist/components/stats-panel.js.map +0 -1
- package/dist/controller.d.ts +0 -218
- package/dist/controller.d.ts.map +0 -1
- package/dist/controller.js +0 -788
- package/dist/controller.js.map +0 -1
- package/dist/data-grid.d.ts +0 -51
- package/dist/data-grid.d.ts.map +0 -1
- package/dist/data-grid.js +0 -698
- package/dist/data-grid.js.map +0 -1
- package/dist/labels.d.ts +0 -9
- package/dist/labels.d.ts.map +0 -1
- package/dist/labels.js +0 -38
- package/dist/labels.js.map +0 -1
- package/dist/messages.d.ts +0 -99
- package/dist/messages.d.ts.map +0 -1
- package/dist/messages.js +0 -276
- package/dist/messages.js.map +0 -1
- package/dist/renderer.d.ts +0 -52
- package/dist/renderer.d.ts.map +0 -1
- package/dist/renderer.js +0 -522
- package/dist/renderer.js.map +0 -1
- package/dist/text.d.ts +0 -14
- package/dist/text.d.ts.map +0 -1
- package/dist/text.js +0 -63
- package/dist/text.js.map +0 -1
- package/dist/theme.d.ts.map +0 -1
- package/dist/theme.js +0 -54
- package/dist/theme.js.map +0 -1
- package/src/components/bars.tsx +0 -179
- package/src/components/cell-inspector.tsx +0 -70
- package/src/components/columns-panel.tsx +0 -59
- package/src/components/filter-panel.tsx +0 -290
- package/src/components/find-bar.tsx +0 -104
- package/src/components/popover.tsx +0 -194
- package/src/components/stats-panel.tsx +0 -153
- package/src/controller.ts +0 -887
- package/src/data-grid.tsx +0 -1029
- package/src/labels.ts +0 -46
- package/src/messages.ts +0 -390
- package/src/renderer.ts +0 -535
- package/src/text.ts +0 -55
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["lazy","Suspense","use","useEffect","useEffectEvent","useImperativeHandle","useLayoutEffect","useRef","useState","useSyncExternalStore","createGridStore","GridContext","LocaleContext","SaveContext","GridBody","messagesFor","useSaveAction","StaticRows","StatusBar","Toolbar","jsx","_jsx","jsxs","_jsxs","FindBar","then","module","default","DetailPanel","transportIds","WeakMap","nextTransportId","transportId","transport","id","get","undefined","set","isPromise","value","noSubscription","browserLocale","navigator","language","serverLocale","DataGrid","props","$","_c","store","t0","Frame","table","Error","key","initial","t1","Symbol","for","className","t2","fallback","children","OwnStore","defaultDocument","defaultSession","document","open","session","connect","t3","useControlled","part","onChange","controlled","next","report","control","t4","setDocument","setSession","t5","on","next_0","t6","toolbar","statusBar","checkboxes","columnGroups","groupHeaderHeight","wrapLines","cellText","cellStyle","drawCell","cellAction","onCellAction","detailPanel","style","ref","rowHeight","headerHeight","locale","given","messages","replaced","onDocumentChange","onSessionChange","onError","ariaLabel","detected","base","Intl","NumberFormat","t7","number","label","grid","scrollerRef","notice","setNotice","finding","setFinding","detailOpen","useGridSelectorOf","_temp","saving","status","_temp2","t8","error","reportError","t9","error_0","t10","t11","t12","dispatch","focus","current","t13","t14","t15","onClose","t16","t17","t18","t19","hooks","onFind","t20","t21","onClosed","preventScroll","t22","t23","onDone","t24","t25","t26","t27","t28","snapshot_0","snapshot","detail","selector","getSnapshot","read","subscribe","GridProvider"],"sources":["data-grid.tsx"],"sourcesContent":["import {\n type ComponentType,\n type CSSProperties,\n lazy,\n type ReactNode,\n type Ref,\n Suspense,\n use,\n useEffect,\n useEffectEvent,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport type { GridDocument, GridSession } from \"vastgrid-spec\";\nimport type { CellHooks, ColumnGroup } from \"../canvas/hooks.js\";\nimport type { Transport } from \"../core/client.js\";\nimport { createGridStore, type GridStore } from \"../core/store.js\";\nimport type { GridError, InitialView, OpenOptions } from \"../core/types.js\";\nimport { GridContext, LocaleContext, SaveContext } from \"./context.js\";\nimport type { DetailPanelProps } from \"./detail-panel.js\";\nimport { type CellActionEvent, GridBody } from \"./grid-body.js\";\nimport { type GridMessages, messagesFor } from \"./messages.js\";\nimport { useSaveAction } from \"./save.js\";\nimport { StaticRows } from \"./static-rows.js\";\nimport { StatusBar } from \"./status-bar.js\";\nimport { Toolbar } from \"./toolbar.js\";\n\n// The find bar and the detail panel load when they first open (§10 of react.md).\nconst FindBar = lazy(() => import(\"./find-bar.js\").then((module) => ({ default: module.FindBar })));\nconst DetailPanel = lazy(() => import(\"./detail-panel.js\").then((module) => ({ default: module.DetailPanel })));\n\n/** What `ref` gives (§5.5 of react.md). */\nexport interface DataGridHandle {\n store: GridStore;\n dispatch: GridStore[\"dispatch\"];\n /** Moves the focus to the grid. */\n focus(): void;\n}\n\nexport interface DataGridProps {\n /** Where the rows come from, with `table`; a new transport or table makes a new store. */\n transport?: Transport;\n /** The `ref` of the table to open (§8.2). */\n table?: string;\n /** The `read` options of `open`. */\n open?: OpenOptions;\n /** A store made outside, instead of `transport` and `table`. */\n store?: GridStore;\n /** The view and its columns (§5.1), controlled. */\n document?: GridDocument;\n defaultDocument?: GridDocument;\n onDocumentChange?: (document: GridDocument) => void;\n /** Where the person is (§5.2), controlled. */\n session?: GridSession;\n defaultSession?: GridSession;\n onSessionChange?: (session: GridSession) => void;\n /** Rows read on a server, shown before the first read; a promise streams them (§7). */\n initial?: InitialView | Promise<InitialView>;\n toolbar?: boolean;\n statusBar?: boolean;\n /** A check box for each row in the gutter, and Space to check the active row (§5.2.1). */\n checkboxes?: boolean;\n /** Groups of columns named in header rows above the column names; nested groups add rows. */\n columnGroups?: readonly ColumnGroup[];\n /** The height of each row of groups, instead of `--vg-group-header-height`. */\n groupHeaderHeight?: number;\n /** How many lines rows have while a displayed column wraps its text (2 by default). */\n wrapLines?: number;\n /** The text of a cell instead of the grid's (§5.1: functions win over the document's formats). */\n cellText?: CellHooks[\"cellText\"];\n /** The colors of a cell instead of the column's style rules. */\n cellStyle?: CellHooks[\"cellStyle\"];\n /** Draws cells on the canvas, with the grid's drawing at hand (`drawDefault`). */\n drawCell?: CellHooks[\"drawCell\"];\n /** Makes cells links or buttons; a click or Space on them calls `onCellAction`. */\n cellAction?: CellHooks[\"cellAction\"];\n onCellAction?: (event: CellActionEvent) => void;\n /** Shows the active row in the detail panel your own way, instead of a list of its columns. */\n detailPanel?: ComponentType<DetailPanelProps>;\n rowHeight?: number;\n headerHeight?: number;\n /** The language of the UI, a BCP 47 tag; the browser's by default. */\n locale?: string;\n messages?: Partial<GridMessages>;\n /** Failures that belong to no command (§4.2). */\n onError?: (error: GridError) => void;\n ref?: Ref<DataGridHandle>;\n className?: string;\n style?: CSSProperties;\n \"aria-label\"?: string;\n}\n\nconst transportIds = new WeakMap<object, number>();\nlet nextTransportId = 1;\n\n/** A number for each transport, for the key that makes a new store when the transport changes. */\nfunction transportId(transport: object) {\n let id = transportIds.get(transport);\n if (id === undefined) {\n id = nextTransportId++;\n transportIds.set(transport, id);\n }\n return id;\n}\n\nfunction isPromise<T>(value: T | Promise<T> | undefined): value is Promise<T> {\n return typeof (value as { then?: unknown } | undefined)?.then === \"function\";\n}\n\nconst noSubscription = () => () => {};\nconst browserLocale = () => navigator.language;\nconst serverLocale = () => undefined;\n\n/**\n * A data grid for tables of any size (§5.1 of react.md): it draws on a canvas, reads rows through a\n * transport as you scroll, and is driven by the commands of the specification.\n */\nexport function DataGrid(props: DataGridProps) {\n if (props.store) return <Frame {...props} store={props.store} />;\n const { transport, table } = props;\n if (!transport || table === undefined) throw new Error(\"DataGrid needs a store, or a transport and a table.\");\n const key = `${transportId(transport)}\\u0000${table}`;\n if (isPromise(props.initial)) {\n return (\n <Suspense fallback={<div className=\"vg-root\" aria-busy=\"true\" />}>\n <OwnStore key={key} {...props} transport={transport} table={table} />\n </Suspense>\n );\n }\n return <OwnStore key={key} {...props} transport={transport} table={table} />;\n}\n\n/** A grid with a store of its own, made once and connected while it is mounted. */\nfunction OwnStore(props: DataGridProps & { transport: Transport; table: string }) {\n const initial = isPromise(props.initial) ? use(props.initial) : props.initial;\n const [store] = useState(() =>\n createGridStore({\n transport: props.transport,\n table: props.table,\n ...(props.open ? { open: props.open } : {}),\n ...((props.document ?? props.defaultDocument) ? { document: props.document ?? props.defaultDocument } : {}),\n ...((props.session ?? props.defaultSession) ? { session: props.session ?? props.defaultSession } : {}),\n ...(initial ? { initial } : {}),\n }),\n );\n useEffect(() => store.connect(), [store]);\n return <Frame {...props} store={store} />;\n}\n\n/** Makes a part of the state controlled by a prop (§5.2), and reports the changes that commands make. */\nfunction useControlled<T extends GridDocument | GridSession>(\n store: GridStore,\n part: \"document\" | \"session\",\n value: T | undefined,\n onChange: ((value: T) => void) | undefined,\n) {\n const controlled = value !== undefined;\n const report = useEffectEvent((next: T) => onChange?.(next));\n useLayoutEffect(() => {\n store.control(part, controlled);\n }, [store, part, controlled]);\n // In the commit that brings the prop, before the canvas draws.\n useLayoutEffect(() => {\n if (value === undefined) return;\n if (part === \"document\") store.setDocument(value as GridDocument);\n else store.setSession(value as GridSession);\n }, [store, part, value]);\n useEffect(() => store.on(part, (next) => report(next as T)), [store, part]);\n}\n\nfunction Frame({\n store,\n toolbar = true,\n statusBar = true,\n checkboxes = false,\n columnGroups,\n groupHeaderHeight,\n wrapLines,\n cellText,\n cellStyle,\n drawCell,\n cellAction,\n onCellAction,\n detailPanel,\n className,\n style,\n ref,\n rowHeight,\n headerHeight,\n locale: given,\n messages: replaced,\n document,\n onDocumentChange,\n session,\n onSessionChange,\n onError,\n \"aria-label\": ariaLabel,\n}: DataGridProps & { store: GridStore }) {\n const detected = useSyncExternalStore(noSubscription, browserLocale, serverLocale);\n const locale = given ?? detected;\n const base = messagesFor(locale);\n const messages = replaced ? { ...base, ...replaced } : base;\n const language = { messages, locale, number: new Intl.NumberFormat(locale) };\n const label = ariaLabel ?? messages.grid;\n const scrollerRef = useRef<HTMLDivElement>(null);\n const [notice, setNotice] = useState(\"\");\n const [finding, setFinding] = useState(false);\n const detailOpen = useGridSelectorOf(store, (snapshot) => snapshot.session.detail?.open === true);\n const saving = useSaveAction(store, language, setNotice);\n const status = useGridSelectorOf(store, (snapshot) => snapshot.status);\n useControlled(store, \"document\", document, onDocumentChange);\n useControlled(store, \"session\", session, onSessionChange);\n const reportError = useEffectEvent((error: GridError) => onError?.(error));\n useEffect(() => store.on(\"error\", (error) => reportError(error)), [store]);\n useImperativeHandle(\n ref,\n () => ({\n store,\n dispatch: store.dispatch,\n focus: () => scrollerRef.current?.focus(),\n }),\n [store],\n );\n return (\n <GridContext value={store}>\n <LocaleContext value={language}>\n <SaveContext value={saving}>\n <div className={className ? `vg-root ${className}` : \"vg-root\"} style={style} data-status={status}>\n {toolbar && <Toolbar announce={setNotice} />}\n {finding && (\n <Suspense fallback={null}>\n <FindBar onClose={() => setFinding(false)} scrollerRef={scrollerRef} />\n </Suspense>\n )}\n <div className=\"vg-main\">\n <Suspense fallback={<StaticRows label={label} />}>\n <GridBody\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n checkboxes={checkboxes}\n columnGroups={columnGroups}\n groupHeaderHeight={groupHeaderHeight}\n wrapLines={wrapLines}\n hooks={{ cellText, cellStyle, drawCell, cellAction }}\n onCellAction={onCellAction}\n onFind={() => setFinding(true)}\n label={label}\n scrollerRef={scrollerRef}\n announce={setNotice}\n />\n </Suspense>\n {detailOpen && (\n <Suspense fallback={null}>\n <DetailPanel\n custom={detailPanel}\n onClosed={() => scrollerRef.current?.focus({ preventScroll: true })}\n />\n </Suspense>\n )}\n </div>\n {statusBar && (\n <StatusBar announce={setNotice} onDone={() => scrollerRef.current?.focus({ preventScroll: true })} />\n )}\n <div className=\"vg-sr-only\" aria-live=\"polite\">\n {notice}\n </div>\n </div>\n </SaveContext>\n </LocaleContext>\n </GridContext>\n );\n}\n\n/** `useGridSelector` for a store given directly, before the context holds it. */\nfunction useGridSelectorOf<T>(store: GridStore, selector: (snapshot: ReturnType<GridStore[\"getSnapshot\"]>) => T): T {\n const read = () => selector(store.getSnapshot());\n return useSyncExternalStore(store.subscribe, read, read);\n}\n\n/** Gives a store to the hooks of the components inside (§5.4 of react.md). */\nexport function GridProvider({ store, children }: { store: GridStore; children?: ReactNode }) {\n return <GridContext value={store}>{children}</GridContext>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ComponentType } from "react";
|
|
2
|
+
import { type Column, type JsonValue, type RowKey } from "vastgrid-spec";
|
|
3
|
+
/**
|
|
4
|
+
* The detail panel of the active row (§5.2 of the specification, `detail`): every column of the view, hidden ones
|
|
5
|
+
* included, with its label and its value in full, by the column's format. It follows the active cell, reads the
|
|
6
|
+
* row's values that the canvas did not (`useGridRows`), and is opened and closed by `detail.open` and
|
|
7
|
+
* `detail.close`; the focus stays in the grid, and goes back to it when the panel is closed from inside (× or Esc).
|
|
8
|
+
*/
|
|
9
|
+
export declare function DetailPanel({ custom, onClosed, }: {
|
|
10
|
+
custom?: ComponentType<DetailPanelProps>;
|
|
11
|
+
/** Called when the panel is closed from inside it, to give the focus back to the grid. */
|
|
12
|
+
onClosed: () => void;
|
|
13
|
+
}): import("react").JSX.Element | null;
|
|
14
|
+
/** What a host's own detail panel (`detailPanel`) gets: the active row's position, the view's columns and values. */
|
|
15
|
+
export interface DetailPanelProps {
|
|
16
|
+
row: number;
|
|
17
|
+
columns: readonly Column[];
|
|
18
|
+
values: readonly JsonValue[];
|
|
19
|
+
/** The row's key (§5.3), when it is read. */
|
|
20
|
+
rowKey: RowKey | undefined;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=detail-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail-panel.d.ts","sourceRoot":"","sources":["../../src/react/detail-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAO,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAU,MAAM,eAAe,CAAC;AAKjF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzC,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,sCAIA;AAED,qHAAqH;AACrH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B,6CAA6C;IAC7C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
import { use } from "react";
|
|
3
|
+
import { textOf } from "vastgrid-spec";
|
|
4
|
+
import { formatterFor } from "../core/format.js";
|
|
5
|
+
import { LocaleContext } from "./context.js";
|
|
6
|
+
import { useGridRows, useGridSelector, useGridStore } from "./hooks.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The detail panel of the active row (§5.2 of the specification, `detail`): every column of the view, hidden ones
|
|
10
|
+
* included, with its label and its value in full, by the column's format. It follows the active cell, reads the
|
|
11
|
+
* row's values that the canvas did not (`useGridRows`), and is opened and closed by `detail.open` and
|
|
12
|
+
* `detail.close`; the focus stays in the grid, and goes back to it when the panel is closed from inside (× or Esc).
|
|
13
|
+
*/
|
|
14
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
export function DetailPanel(t0) {
|
|
16
|
+
const $ = _c(4);
|
|
17
|
+
const {
|
|
18
|
+
custom,
|
|
19
|
+
onClosed
|
|
20
|
+
} = t0;
|
|
21
|
+
const open = useGridSelector(_temp);
|
|
22
|
+
let t1;
|
|
23
|
+
if ($[0] !== custom || $[1] !== onClosed || $[2] !== open) {
|
|
24
|
+
t1 = open ? /*#__PURE__*/_jsx(OpenDetail, {
|
|
25
|
+
Custom: custom,
|
|
26
|
+
onClosed: onClosed
|
|
27
|
+
}) : null;
|
|
28
|
+
$[0] = custom;
|
|
29
|
+
$[1] = onClosed;
|
|
30
|
+
$[2] = open;
|
|
31
|
+
$[3] = t1;
|
|
32
|
+
} else {
|
|
33
|
+
t1 = $[3];
|
|
34
|
+
}
|
|
35
|
+
return t1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** What a host's own detail panel (`detailPanel`) gets: the active row's position, the view's columns and values. */
|
|
39
|
+
function _temp(snapshot) {
|
|
40
|
+
return snapshot.session.detail?.open === true;
|
|
41
|
+
}
|
|
42
|
+
function OpenDetail(t0) {
|
|
43
|
+
const $ = _c(37);
|
|
44
|
+
const {
|
|
45
|
+
Custom,
|
|
46
|
+
onClosed
|
|
47
|
+
} = t0;
|
|
48
|
+
const store = useGridStore();
|
|
49
|
+
const {
|
|
50
|
+
messages,
|
|
51
|
+
number,
|
|
52
|
+
locale
|
|
53
|
+
} = use(LocaleContext);
|
|
54
|
+
const row = useGridSelector(_temp2);
|
|
55
|
+
const rowCount = useGridSelector(_temp3);
|
|
56
|
+
const columns = useGridSelector(_temp4);
|
|
57
|
+
const settings = useGridSelector(_temp5);
|
|
58
|
+
let t1;
|
|
59
|
+
if ($[0] !== columns || $[1] !== rowCount) {
|
|
60
|
+
t1 = columns && rowCount > 0 ? columns.map(_temp6) : [];
|
|
61
|
+
$[0] = columns;
|
|
62
|
+
$[1] = rowCount;
|
|
63
|
+
$[2] = t1;
|
|
64
|
+
} else {
|
|
65
|
+
t1 = $[2];
|
|
66
|
+
}
|
|
67
|
+
const names = t1;
|
|
68
|
+
const t2 = names.length > 0 ? row + 1 : row;
|
|
69
|
+
let t3;
|
|
70
|
+
if ($[3] !== names || $[4] !== row || $[5] !== t2) {
|
|
71
|
+
t3 = {
|
|
72
|
+
start: row,
|
|
73
|
+
end: t2,
|
|
74
|
+
columns: names
|
|
75
|
+
};
|
|
76
|
+
$[3] = names;
|
|
77
|
+
$[4] = row;
|
|
78
|
+
$[5] = t2;
|
|
79
|
+
$[6] = t3;
|
|
80
|
+
} else {
|
|
81
|
+
t3 = $[6];
|
|
82
|
+
}
|
|
83
|
+
const [values] = useGridRows(t3);
|
|
84
|
+
if (!columns) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
let t4;
|
|
88
|
+
if ($[7] !== Custom || $[8] !== columns || $[9] !== locale || $[10] !== messages || $[11] !== number || $[12] !== onClosed || $[13] !== row || $[14] !== rowCount || $[15] !== settings || $[16] !== store || $[17] !== values) {
|
|
89
|
+
const byName = new Map((settings ?? []).map(_temp7));
|
|
90
|
+
const text = (value, index) => {
|
|
91
|
+
if (value === undefined) {
|
|
92
|
+
return messages.loading;
|
|
93
|
+
}
|
|
94
|
+
if (value === null) {
|
|
95
|
+
return "";
|
|
96
|
+
}
|
|
97
|
+
const column_0 = columns[index];
|
|
98
|
+
const format = byName.get(column_0.name)?.format;
|
|
99
|
+
return formatterFor(column_0, format, locale)?.(value) ?? textOf(value, column_0) ?? "";
|
|
100
|
+
};
|
|
101
|
+
let t5;
|
|
102
|
+
if ($[19] !== messages || $[20] !== number || $[21] !== row || $[22] !== rowCount) {
|
|
103
|
+
t5 = rowCount > 0 ? messages.detailOf(number.format(row + 1)) : messages.details;
|
|
104
|
+
$[19] = messages;
|
|
105
|
+
$[20] = number;
|
|
106
|
+
$[21] = row;
|
|
107
|
+
$[22] = rowCount;
|
|
108
|
+
$[23] = t5;
|
|
109
|
+
} else {
|
|
110
|
+
t5 = $[23];
|
|
111
|
+
}
|
|
112
|
+
const title = t5;
|
|
113
|
+
let t6;
|
|
114
|
+
if ($[24] !== onClosed || $[25] !== store) {
|
|
115
|
+
t6 = () => {
|
|
116
|
+
store.dispatch({
|
|
117
|
+
command: "detail.close"
|
|
118
|
+
});
|
|
119
|
+
onClosed();
|
|
120
|
+
};
|
|
121
|
+
$[24] = onClosed;
|
|
122
|
+
$[25] = store;
|
|
123
|
+
$[26] = t6;
|
|
124
|
+
} else {
|
|
125
|
+
t6 = $[26];
|
|
126
|
+
}
|
|
127
|
+
const close = t6;
|
|
128
|
+
let t7;
|
|
129
|
+
if ($[27] !== close) {
|
|
130
|
+
t7 = event => {
|
|
131
|
+
if (event.key !== "Escape" || event.nativeEvent.isComposing) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
event.preventDefault();
|
|
135
|
+
close();
|
|
136
|
+
};
|
|
137
|
+
$[27] = close;
|
|
138
|
+
$[28] = t7;
|
|
139
|
+
} else {
|
|
140
|
+
t7 = $[28];
|
|
141
|
+
}
|
|
142
|
+
let t8;
|
|
143
|
+
if ($[29] !== title) {
|
|
144
|
+
t8 = /*#__PURE__*/_jsx("h2", {
|
|
145
|
+
className: "vg-detail__title",
|
|
146
|
+
children: title
|
|
147
|
+
});
|
|
148
|
+
$[29] = title;
|
|
149
|
+
$[30] = t8;
|
|
150
|
+
} else {
|
|
151
|
+
t8 = $[30];
|
|
152
|
+
}
|
|
153
|
+
let t9;
|
|
154
|
+
if ($[31] !== close || $[32] !== messages.closeDetails) {
|
|
155
|
+
t9 = /*#__PURE__*/_jsx("button", {
|
|
156
|
+
type: "button",
|
|
157
|
+
className: "vg-button vg-button--small",
|
|
158
|
+
"aria-label": messages.closeDetails,
|
|
159
|
+
onClick: close,
|
|
160
|
+
children: "\xD7"
|
|
161
|
+
});
|
|
162
|
+
$[31] = close;
|
|
163
|
+
$[32] = messages.closeDetails;
|
|
164
|
+
$[33] = t9;
|
|
165
|
+
} else {
|
|
166
|
+
t9 = $[33];
|
|
167
|
+
}
|
|
168
|
+
let t10;
|
|
169
|
+
if ($[34] !== t8 || $[35] !== t9) {
|
|
170
|
+
t10 = /*#__PURE__*/_jsxs("header", {
|
|
171
|
+
className: "vg-detail__header",
|
|
172
|
+
children: [t8, t9]
|
|
173
|
+
});
|
|
174
|
+
$[34] = t8;
|
|
175
|
+
$[35] = t9;
|
|
176
|
+
$[36] = t10;
|
|
177
|
+
} else {
|
|
178
|
+
t10 = $[36];
|
|
179
|
+
}
|
|
180
|
+
t4 = /*#__PURE__*/_jsxs("aside", {
|
|
181
|
+
className: "vg-detail",
|
|
182
|
+
"aria-label": title,
|
|
183
|
+
onKeyDown: t7,
|
|
184
|
+
children: [t10, rowCount > 0 && Custom && values?.every(_temp8) ? /*#__PURE__*/_jsx(Custom, {
|
|
185
|
+
row: row,
|
|
186
|
+
columns: columns,
|
|
187
|
+
values: values,
|
|
188
|
+
rowKey: store.rowKey(row)
|
|
189
|
+
}) : rowCount > 0 && Custom ? /*#__PURE__*/_jsx("p", {
|
|
190
|
+
className: "vg-filter__note",
|
|
191
|
+
children: messages.loading
|
|
192
|
+
}) : rowCount > 0 && /*#__PURE__*/_jsx("dl", {
|
|
193
|
+
className: "vg-detail__list",
|
|
194
|
+
children: columns.map((column_1, index_0) => /*#__PURE__*/_jsxs("div", {
|
|
195
|
+
className: "vg-detail__item",
|
|
196
|
+
children: [/*#__PURE__*/_jsx("dt", {
|
|
197
|
+
children: byName.get(column_1.name)?.format?.label ?? column_1.name
|
|
198
|
+
}), /*#__PURE__*/_jsx("dd", {
|
|
199
|
+
children: text(values?.[index_0], index_0)
|
|
200
|
+
})]
|
|
201
|
+
}, column_1.name))
|
|
202
|
+
})]
|
|
203
|
+
});
|
|
204
|
+
$[7] = Custom;
|
|
205
|
+
$[8] = columns;
|
|
206
|
+
$[9] = locale;
|
|
207
|
+
$[10] = messages;
|
|
208
|
+
$[11] = number;
|
|
209
|
+
$[12] = onClosed;
|
|
210
|
+
$[13] = row;
|
|
211
|
+
$[14] = rowCount;
|
|
212
|
+
$[15] = settings;
|
|
213
|
+
$[16] = store;
|
|
214
|
+
$[17] = values;
|
|
215
|
+
$[18] = t4;
|
|
216
|
+
} else {
|
|
217
|
+
t4 = $[18];
|
|
218
|
+
}
|
|
219
|
+
return t4;
|
|
220
|
+
}
|
|
221
|
+
function _temp8(value_0) {
|
|
222
|
+
return value_0 !== undefined;
|
|
223
|
+
}
|
|
224
|
+
function _temp7(setting) {
|
|
225
|
+
return [setting.name, setting];
|
|
226
|
+
}
|
|
227
|
+
function _temp6(column) {
|
|
228
|
+
return column.name;
|
|
229
|
+
}
|
|
230
|
+
function _temp5(snapshot_2) {
|
|
231
|
+
return snapshot_2.document.columns;
|
|
232
|
+
}
|
|
233
|
+
function _temp4(snapshot_1) {
|
|
234
|
+
return snapshot_1.view?.columns;
|
|
235
|
+
}
|
|
236
|
+
function _temp3(snapshot_0) {
|
|
237
|
+
return snapshot_0.view?.rowCount ?? 0;
|
|
238
|
+
}
|
|
239
|
+
function _temp2(snapshot) {
|
|
240
|
+
return snapshot.session.active?.row ?? 0;
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=detail-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["use","textOf","formatterFor","LocaleContext","useGridRows","useGridSelector","useGridStore","jsx","_jsx","jsxs","_jsxs","DetailPanel","t0","$","_c","custom","onClosed","open","_temp","t1","OpenDetail","snapshot","session","detail","Custom","store","messages","number","locale","row","_temp2","rowCount","_temp3","columns","_temp4","settings","_temp5","map","_temp6","names","t2","length","t3","start","end","values","t4","byName","Map","_temp7","text","value","index","undefined","loading","column_0","format","get","column","name","t5","detailOf","details","title","t6","dispatch","command","close","t7","event","key","nativeEvent","isComposing","preventDefault","t8","className","children","t9","closeDetails","type","t10","onKeyDown","every","_temp8","rowKey","column_1","index_0","label","value_0","setting","snapshot_2","document","snapshot_1","view","snapshot_0","active"],"sources":["detail-panel.tsx"],"sourcesContent":["import { type ComponentType, use } from \"react\";\nimport { type Column, type JsonValue, type RowKey, textOf } from \"vastgrid-spec\";\nimport { formatterFor } from \"../core/format.js\";\nimport { LocaleContext } from \"./context.js\";\nimport { useGridRows, useGridSelector, useGridStore } from \"./hooks.js\";\n\n/**\n * The detail panel of the active row (§5.2 of the specification, `detail`): every column of the view, hidden ones\n * included, with its label and its value in full, by the column's format. It follows the active cell, reads the\n * row's values that the canvas did not (`useGridRows`), and is opened and closed by `detail.open` and\n * `detail.close`; the focus stays in the grid, and goes back to it when the panel is closed from inside (× or Esc).\n */\nexport function DetailPanel({\n custom,\n onClosed,\n}: {\n custom?: ComponentType<DetailPanelProps>;\n /** Called when the panel is closed from inside it, to give the focus back to the grid. */\n onClosed: () => void;\n}) {\n const open = useGridSelector((snapshot) => snapshot.session.detail?.open === true);\n // Closed, it follows no rows: scrolling commits nothing (§10 of react.md).\n return open ? <OpenDetail Custom={custom} onClosed={onClosed} /> : null;\n}\n\n/** What a host's own detail panel (`detailPanel`) gets: the active row's position, the view's columns and values. */\nexport interface DetailPanelProps {\n row: number;\n columns: readonly Column[];\n values: readonly JsonValue[];\n /** The row's key (§5.3), when it is read. */\n rowKey: RowKey | undefined;\n}\n\nfunction OpenDetail({ Custom, onClosed }: { Custom?: ComponentType<DetailPanelProps>; onClosed: () => void }) {\n const store = useGridStore();\n const { messages, number, locale } = use(LocaleContext);\n const row = useGridSelector((snapshot) => snapshot.session.active?.row ?? 0);\n const rowCount = useGridSelector((snapshot) => snapshot.view?.rowCount ?? 0);\n const columns = useGridSelector((snapshot) => snapshot.view?.columns);\n const settings = useGridSelector((snapshot) => snapshot.document.columns);\n const names = columns && rowCount > 0 ? columns.map((column) => column.name) : [];\n const [values] = useGridRows({ start: row, end: names.length > 0 ? row + 1 : row, columns: names });\n if (!columns) return null;\n const byName = new Map((settings ?? []).map((setting) => [setting.name, setting]));\n const text = (value: JsonValue | undefined, index: number) => {\n if (value === undefined) return messages.loading;\n if (value === null) return \"\";\n const column = columns[index];\n const format = byName.get(column.name)?.format;\n return formatterFor(column, format, locale)?.(value) ?? textOf(value, column) ?? \"\";\n };\n const title = rowCount > 0 ? messages.detailOf(number.format(row + 1)) : messages.details;\n const close = () => {\n void store.dispatch({ command: \"detail.close\" });\n onClosed();\n };\n return (\n <aside\n className=\"vg-detail\"\n aria-label={title}\n onKeyDown={(event) => {\n if (event.key !== \"Escape\" || event.nativeEvent.isComposing) return;\n event.preventDefault();\n close();\n }}\n >\n <header className=\"vg-detail__header\">\n <h2 className=\"vg-detail__title\">{title}</h2>\n <button type=\"button\" className=\"vg-button vg-button--small\" aria-label={messages.closeDetails} onClick={close}>\n ×\n </button>\n </header>\n {rowCount > 0 && Custom && values?.every((value) => value !== undefined) ? (\n <Custom row={row} columns={columns} values={values as JsonValue[]} rowKey={store.rowKey(row)} />\n ) : rowCount > 0 && Custom ? (\n <p className=\"vg-filter__note\">{messages.loading}</p>\n ) : (\n rowCount > 0 && (\n <dl className=\"vg-detail__list\">\n {columns.map((column, index) => (\n <div key={column.name} className=\"vg-detail__item\">\n <dt>{byName.get(column.name)?.format?.label ?? column.name}</dt>\n <dd>{text(values?.[index], index)}</dd>\n </div>\n ))}\n </dl>\n )\n )}\n </aside>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The toolbar's export menu (§6.6 of the specification): the rows of the view or the whole table, with the hidden
|
|
3
|
+
* columns or not, in one of the formats the engine exports. It runs as an Action: the button shows that it runs, and
|
|
4
|
+
* the outcome is announced. An export without a target is downloaded from where the transport gives it
|
|
5
|
+
* (`Transport.exportUrl`), or, from an engine that answers the file's bytes (`delivery` `data`), as a file made of
|
|
6
|
+
* them.
|
|
7
|
+
*/
|
|
8
|
+
export declare function ExportMenu({ announce }: {
|
|
9
|
+
announce: (text: string) => void;
|
|
10
|
+
}): import("react").JSX.Element | null;
|
|
11
|
+
//# sourceMappingURL=export-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-menu.d.ts","sourceRoot":"","sources":["../../src/react/export-menu.tsx"],"names":[],"mappings":"AAyBA;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,sCA+E5E"}
|