add-curve-format
FreeAdd support for a new curve data format in the Curves package converter system
The English summary is being prepared. Showing the original description.
UI building guidelines for Datagrok TypeScript components, viewers, and drag-and-drop
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Rules and patterns for building UI in TypeScript packages and libraries. These are authoritative — follow them unless the user explicitly overrides.
addPane with a lazy getContent callback — never pass pre-built elements// Good
const tabs = ui.tabControl();
tabs.addPane('Sheet 1', () => {
const df = buildDataFrame();
const grid = DG.Viewer.grid(df);
return grid.root;
});
// Bad — all tabs built eagerly
const tabs = ui.tabControl({
'Sheet 1': buildExpensiveGrid(),
'Sheet 2': buildExpensiveGrid(),
});
DG.Viewer.grid(df) for embedding a grid inside a composite layoutDG.TableView.create(df, false) when the grid IS the entire viewfalse) prevents the table from being added to the workspaceui.splitH / ui.splitV for resizable split panelsui.divV / ui.divH for simple stacking without resize handlesflex: 1 on the element that should fill remaining spaceui.splitH([tree.root, contentPanel])ui.dialog() for modal interactionsui.input.choice(), ui.input.int(), ui.input.bool(), etc. for typed inputs - full set of input functions is in js-api/ui.ts.
Prefer onValueChanged in the options object over .onChanged.subscribe(): ui.input.bool('Debug', {value: DG.Test.isInDebug, onValueChanged: (v) => DG.Test.isInDebug = v});
Use ui.form([...inputs]) to render a labeled list of inputs inside a dialog
DG.JsViewer properties (this.string(...), this.int(...))
which automatically appear in the context panelFor toggleable settings in a DG.Menu.popup(), use menu.items() with isChecked — never use text-prefix hacks like `${flag ? '✓ ' : ''}Label`:
const toggles = [
{label: 'Debug', get: () => DG.Test.isInDebug, set: (v: boolean) => { DG.Test.isInDebug = v; }},
{label: 'Benchmark', get: () => DG.Test.isInBenchmark, set: (v: boolean) => { DG.Test.isInBenchmark = v; }},
];
const menu = DG.Menu.popup();
menu.closeOnClick = false;
const refresh = () => {
menu.clear();
menu.items(toggles, (t) => { t.set(!t.get()); refresh(); }, {isChecked: (t) => t.get()});
};
refresh();
menu.show();
DG.debounce(observable, 50)ui.accordion() with lazy getContent callbacks (same principle as tab controls)const acc = ui.accordion();
acc.addPane('Details', () => buildDetailsPanel());
acc.addPane('Statistics', () => buildStatsPanel());
ui.makeDroppable(el, IDragAndDropOptions<T>) — receive entities dragged from the browse tree, grid, or other sources.
acceptDrop(obj) — fast predicate for showing the zone.doDrop(args) — handle the drop. args is a DragDropArgs<T> with dragObject, dragSource, dragObjectType, copying (Ctrl/Cmd), link (Alt), handled.acceptDrag, onBeginDrag, onEndDrag, onMouseEnter/Over/Leave/Out, dropSuggestion, makeDropZone, dropZoneRectTransformation, dropIndication.ui.makeDraggable(el, {getDragObject, getDragCaption}) — make your own UI a drag source.ApiSamples/scripts/ui/interactivity/drag-and-drop.js.document.createElement when ui.* helpers existinnerHTML with user data — use ui.divText() or textContentstyle.width = '100%' on tables — let them size to contentNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Add support for a new curve data format in the Curves package converter system
The English summary is being prepared. Showing the original description.
Create info panels that appear in the context panel based on semantic types
The English summary is being prepared. Showing the original description.
Add a new single-objective optimization algorithm to the sci-comp library. Use when the user asks to implement a new optimizer (e.g. gradient descent, BFGS, simulated annealing, differential evolution).
The English summary is being prepared. Showing the original description.
Add unit tests to a Datagrok package
The English summary is being prepared. Showing the original description.
Answer a "how do I …" question about the platform with a Gherkin scenario on @datagrok-libraries/bdd that is filmed into a how-to video (grok-bdd guide), so the answer is demonstrated, sent as a video plus numbered steps, and kept as a regression test; the same scenarios, filmed in help mode, are the GIFs of the help pages
The English summary is being prepared. Showing the original description.
Translate hand-written Playwright specs (or any existing UI tests) into Gherkin features on @datagrok-libraries/bdd, then prove the features test what they claim by backward-matching them against the originals with independent reviewers, and fix the gaps in the core, the library and the features
The English summary is being prepared. Showing the original description.