@ai-matrx/records-ui 0.113.30 → 0.113.32
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/CHANGELOG.md +48 -1
- package/dist/first-page.cjs +73 -585
- package/dist/first-page.cjs.map +1 -1
- package/dist/first-page.d.cts +17 -251
- package/dist/first-page.d.ts +17 -251
- package/dist/first-page.js +24 -582
- package/dist/first-page.js.map +1 -1
- package/dist/index.cjs +6520 -7879
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +54 -827
- package/dist/index.d.ts +54 -827
- package/dist/index.js +7675 -8954
- package/dist/index.js.map +1 -1
- package/dist/pickers.cjs +1619 -1605
- package/dist/pickers.cjs.map +1 -1
- package/dist/pickers.js +1498 -1470
- package/dist/pickers.js.map +1 -1
- package/package.json +5 -6
package/dist/index.d.cts
CHANGED
|
@@ -1,22 +1,33 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, KeyboardEvent, ReactElement, ComponentType, RefObject, SVGAttributes } from 'react';
|
|
3
3
|
import * as _ai_matrx_records from '@ai-matrx/records';
|
|
4
|
-
import { Uuid, RowAction, Field, RowActionStep, RecordScopeContext, EnrichCell, RecordsError, RecordDocument, Table, ReadRow, RecordRead,
|
|
4
|
+
import { Uuid, RowAction, Field, RowActionStep, RecordScopeContext, EnrichCell, RecordsError, RecordDocument, Table, ReadRow, RecordRead, RowAgentTarget, AggregateFilter, PermissionLevel, RelationDisplay, WriteConflict, TableDecorations, StoreFilter as StoreFilter$1, ImportRun, DeclarableFieldKind, NewerFieldKind, ParityFieldType, NewFieldDeclaration, RuleExpression, ChoiceRehome, FieldOptionEdit, StoredRecord, ChoiceNudge, HiddenFieldNotice, ValueEnvelope, ChecklistRequirementKind, ContextPolicy, WorkDueState, FieldSensitivity, StageRuleOnFail, SubscriptionCadence, WorkApprovalState, WorkInboxKind, FieldKind, ArchiveLane, ArchivedRow, WorkInboxView, WorkInboxItem, PortalCard, PortalPrincipal, PortalPreviewRow, PortalAccent, PublicPicture, PortalStyle, RecordFilter, MySubscription, DashboardBlockKind, AggregateBucket, AggregateMeasure, AggregateCompare, DashboardTarget, DashboardBlock, DashboardSummary, AggregateGroupValue, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, TableDuplicated, HistoryActor, FieldHistoryEntry, DrillDefinition, DrillSource, DrillLane, DrillQuestion, TableDuplicateProgress, TableArchiveProgress } from '@ai-matrx/records';
|
|
5
5
|
import { ReversibleAnnouncement } from '@ai-matrx/kit/reversible';
|
|
6
6
|
import { W as WhatYouMayDo, T as TableActionHost, O as ObjectAction, a as ObjectActionIcon } from './objectActions-B7AUBkcl.cjs';
|
|
7
7
|
export { A as ACTION_CHECKING_ACCESS_REASON, b as ACTION_NOT_HERE_REASON, c as ACTION_NO_ACCESS_REASON, d as ACTION_PLATFORM_TABLE_REASON, B as BuiltOnDestination, C as Capability, D as DEFAULT_ACTION_ORIGIN, K as KERNEL_REASON, L as LEVEL_WORD, N as NOT_ANSWERED_YET, e as OBJECT_ACTION_GROUPS, f as ObjectActionDropdownEntry, g as ObjectActionGroup, h as ObjectActionGroupDef, i as ObjectActionSection, S as STANDARD_VERBS, j as STRIP_FEATURE_ROWS, k as StandardVerbId, l as StripAndRows, m as TableActionSubject, n as TableActionsInput, o as dropdownActionIds, p as dropdownActions, q as groupObjectActions, r as levelNeededFor, s as rightsReason, t as tableActions, u as tableLink, v as toDropdownEntries, w as toStripAndRows, x as whatYouMayDo, y as whatYouMayDoWithTable, z as withExtensions } from './objectActions-B7AUBkcl.cjs';
|
|
8
8
|
import { Uuid as Uuid$1, Table as Table$1, Field as Field$1, ReadRow as ReadRow$1, StoreFilter, useRecordsClient } from '@ai-matrx/records/react';
|
|
9
|
+
import * as _ai_matrx_records_core from '@ai-matrx/records/core';
|
|
9
10
|
import { RecordsClient, ParsedImport, NewFieldSpec } from '@ai-matrx/records/core';
|
|
10
11
|
export { DEFAULT_FIELDS, DeclareResult, NewFieldSpec, NewTableSpec, addFields, declareTable, fieldDeclarationFor, tokenFor } from '@ai-matrx/records/core';
|
|
11
12
|
import { FieldFormatConfig } from '@ai-matrx/design-system/field-formats';
|
|
13
|
+
import { RecordVersions } from '@ai-matrx/records/versions';
|
|
14
|
+
export { asRefusal, refusal, refusalFromThrown, refusalOr } from '@ai-matrx/records/versions';
|
|
12
15
|
import { TableStyle, GroupAggregateSpec, GroupOrder, ChoiceColorLookup, MatrxTableCardProps, StyleColor, MatrxDataTableDrillConfig, MatrxColumnDef as MatrxColumnDef$1, MatrxDrillDimension, MatrxDrillMeasure, MatrxDrillFilter, MatrxDrillQuestion, MatrxDrillAnswers, MatrxDrillAttribute, MatrxDrillFocusAttribute } from '@ai-matrx/design-system/data-table';
|
|
16
|
+
import * as base from '@ai-matrx/records/views';
|
|
17
|
+
import { ViewOrder, ViewSort, ViewLayout, ViewNeed, PageView } from '@ai-matrx/records/views';
|
|
18
|
+
export { LAYOUT_FIELD_KIND, LAYOUT_LABEL, PAGE_VIEWS, PAGE_VIEW_LABEL, PageView, STORE_KEEPS_TIMELINE, STORE_KEPT_LAYOUTS, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NEEDS, ViewKeyDeclaration, ViewKeyLayout, ViewKeyWriter, ViewLayout, ViewNeed, ViewNeedKind, ViewSort, ViewSortKey, applyLook, defaultViewOf, freeColumnName, lookDiffers, lookPart, pageViewFromParam, saveToViewPlan, storeKeepsLayout, unknownViewLine, viewKeysFor, viewSettingsFor, wordsList } from '@ai-matrx/records/views';
|
|
13
19
|
import { GuessedFieldType, TableShape } from './table-shape.cjs';
|
|
14
20
|
export { ColumnGuess, FEWEST_KEY_VALUE_PAIRS, FEWEST_LIST_ITEMS, TableShapeKind, TableShapeSplit, cellWords, guessColumn, hasTableShape, parseDelimited, readTableShape, readTableShapes, shapeOfGrid, shapeOfValue, shapeTextOfNode } from './table-shape.cjs';
|
|
15
|
-
import {
|
|
21
|
+
import { SavedForm, FormSpec } from '@ai-matrx/records/forms';
|
|
22
|
+
export { FORM_EMBEDS, FORM_FLOWS, FormEmbed, FormEnding, FormFlow, FormJump, FormLook, FormQuestionSpec, FormSpec, FormTheme, FormWelcome, SavedForm, endingsFromDocument, formDeclareArgs, formEmbedSnippet, formFromSummary, formLookDocument, formLookFromDocument, formPresentation, formRoutes, hiddenFromLink, submissionStamp, themeFromDocument, welcomeFromDocument } from '@ai-matrx/records/forms';
|
|
23
|
+
import { QuestionSpec, QuestionAnswer } from '@ai-matrx/records/questions';
|
|
24
|
+
export { QUESTION_OPS, QUESTION_SURFACE, QuestionAnswer, QuestionGroup, QuestionMeasure, QuestionOp, QuestionRow, QuestionShow, QuestionSpec, SavedQuestion, ThroughCondition, askQuestion, flatWhere, measurableFields, newQuestion, questionArchive, questionFromDefinition, questionSave, questionsOf, unreadableKeys } from '@ai-matrx/records/questions';
|
|
25
|
+
import { Column, Row, Values } from '@ai-matrx/records/data';
|
|
16
26
|
export { ColumnValuesEditor, ColumnValuesEditorProps, ColumnValuesText, DATA_BINDING_MISSING, DATA_BINDING_SHAPES, DataBinding, DataBindingPicker, DataBindingPickerProps, DataBindingShape, HeldChangeDecision, HeldChangeDecisionProps, RecordNameText, RecordPicker, RecordPickerProps, TableAnywhere, TableNameText, TablePicker, TablePickerProps, TableScope, TableScopeProps, TablesAnywhere, bindingPlaceholdersFor, defaultBindingTemplate, emptyDataBinding, isCompleteDataBinding, isDataBinding, useTablesAnywhere } from './pickers.cjs';
|
|
17
27
|
import { ContentTransferReference } from '@ai-matrx/alchemy/react/workspace';
|
|
18
28
|
import { TemplateSpec } from '@ai-matrx/records/templates';
|
|
19
29
|
import { TemplatePreview as TemplatePreview$1 } from '@ai-matrx/records/memory';
|
|
30
|
+
export { EntityChartQuestionInput, entityChartQuestion, entityTableQuery } from '@ai-matrx/records/first-page';
|
|
20
31
|
import { MatrxColumnDef } from '@ai-matrx/design-system/data-table/types';
|
|
21
32
|
|
|
22
33
|
/** What the settings panel can see right now, in the words the agent reads. */
|
|
@@ -665,21 +676,7 @@ interface RecordsUiHost {
|
|
|
665
676
|
* them over: a host needs no `tableList`, `fields`, `recordRead` or `myLevels` to start the
|
|
666
677
|
* job, and the agent is handed exactly what the person was looking at.
|
|
667
678
|
*/
|
|
668
|
-
runAgentAction?: (target:
|
|
669
|
-
tableId: Uuid;
|
|
670
|
-
recordId: Uuid;
|
|
671
|
-
title: string;
|
|
672
|
-
action: string;
|
|
673
|
-
prompt: string;
|
|
674
|
-
/** The table's name, as the grid shows it. */
|
|
675
|
-
tableName: string;
|
|
676
|
-
/** The table's columns, as the grid drew them. */
|
|
677
|
-
fields: readonly Field[];
|
|
678
|
-
/** The row, masked for this reader exactly as the grid shows it. */
|
|
679
|
-
document: RecordDocument;
|
|
680
|
-
/** This reader's level on the row (`custom.read_records_matching`'s answer). */
|
|
681
|
-
level: PermissionLevel | null;
|
|
682
|
-
}) => void;
|
|
679
|
+
runAgentAction?: (target: RowAgentTarget) => void;
|
|
683
680
|
/**
|
|
684
681
|
* OPTIONAL. THE SERVER'S `records` TOOL (SCR-27).
|
|
685
682
|
*
|
|
@@ -722,6 +719,21 @@ interface RecordsUiHost {
|
|
|
722
719
|
* Never a Share button that opens nothing.
|
|
723
720
|
*/
|
|
724
721
|
share?: (subject: ShareSubject) => ReactNode;
|
|
722
|
+
/**
|
|
723
|
+
* OPTIONAL. THE ARCHIVED-ORGANIZATION DOOR (lane ARCHIVED-ORG-RESTORE). When the store refuses because the
|
|
724
|
+
* organization is archived, `RefusalNotice` says so and asks this port two things: `state` - may THIS person
|
|
725
|
+
* restore it (an owner or a super admin) - and `restore`, which calls the platform's one restore door. Left
|
|
726
|
+
* unbound, the notice still says the organization is archived and who can restore it, and offers no button.
|
|
727
|
+
*/
|
|
728
|
+
archivedOrganization?: {
|
|
729
|
+
state: (organizationId: Uuid) => Promise<{
|
|
730
|
+
mayRestore: boolean;
|
|
731
|
+
name?: string | null;
|
|
732
|
+
} | null>;
|
|
733
|
+
restore: (organizationId: Uuid) => Promise<void>;
|
|
734
|
+
/** Runs after a restore so the screen reloads; unbound, the page reloads. */
|
|
735
|
+
afterRestore?: () => void;
|
|
736
|
+
};
|
|
725
737
|
/**
|
|
726
738
|
* APPLETS ON A PAGE (v7 APPS-ON-DATA item 3). The host's applet system: which applets this person
|
|
727
739
|
* may place (`list`), and the applet itself drawn in place (`render`). Unbound, a page offers no
|
|
@@ -1205,22 +1217,6 @@ declare function personRecordForMember(client: RecordsClient, personTableId: Uui
|
|
|
1205
1217
|
}>;
|
|
1206
1218
|
declare function PersonPicker({ field, value, onChange, disabled, id, className, autoOpen, onClose, onCancel, initialSearch }: PersonPickerProps): react.JSX.Element;
|
|
1207
1219
|
|
|
1208
|
-
interface RecordVersions {
|
|
1209
|
-
/** The version the person saw this record at; waits for the read of freshly drawn rows. `null` = unread. */
|
|
1210
|
-
seen: (id: Uuid) => Promise<number | null>;
|
|
1211
|
-
/** The same, for many records at once. */
|
|
1212
|
-
seenMany: (ids: readonly Uuid[]) => Promise<Map<Uuid, number | null>>;
|
|
1213
|
-
/** A write this screen made moved the record on (a version only goes up). */
|
|
1214
|
-
wrote: (id: Uuid, version: number) => void;
|
|
1215
|
-
/**
|
|
1216
|
-
* Read these records' versions again now: the person pressed Reload, or the store refused a write
|
|
1217
|
-
* because somebody else won (`PT409`) — the rows are re-read too, so the next write is against what
|
|
1218
|
-
* the person then sees. A change that moved only the version (who sees the row) never re-reads by
|
|
1219
|
-
* content, so without this the row stayed refused until the screen was opened again (verifier V10).
|
|
1220
|
-
*/
|
|
1221
|
-
refresh: (ids: readonly Uuid[]) => void;
|
|
1222
|
-
}
|
|
1223
|
-
|
|
1224
1220
|
/** Which cell is open. A grid opens exactly one at a time, like every other grid. */
|
|
1225
1221
|
interface CellAddress {
|
|
1226
1222
|
rowId: Uuid;
|
|
@@ -1460,34 +1456,6 @@ declare function RefusalLine({ error, className }: {
|
|
|
1460
1456
|
className?: string | undefined;
|
|
1461
1457
|
}): react.JSX.Element;
|
|
1462
1458
|
|
|
1463
|
-
/**
|
|
1464
|
-
* A refusal in this package's own words.
|
|
1465
|
-
*
|
|
1466
|
-
* @param code what KIND of refusal — picks the notice's title and its fallback remedy.
|
|
1467
|
-
* @param sentence what happened, for a person.
|
|
1468
|
-
* @param remedy what to do now, when this call site knows better than the code's default.
|
|
1469
|
-
* @param diagnostic an engineer's note (a thrown message, a status) — rendered out of sight.
|
|
1470
|
-
*/
|
|
1471
|
-
declare function refusal(code: RecordsErrorCode, sentence: string, remedy?: string | null, diagnostic?: string | null): RecordsError;
|
|
1472
|
-
/**
|
|
1473
|
-
* A refusal made from something THROWN in the browser. The thrown text is an
|
|
1474
|
-
* engineer's (a parser's "Unexpected token } in JSON at position 14", a
|
|
1475
|
-
* library's stack) and goes out of sight; the person reads `sentence`.
|
|
1476
|
-
*/
|
|
1477
|
-
declare function refusalFromThrown(thrown: unknown, sentence: string, remedy?: string | null, code?: RecordsErrorCode): RecordsError;
|
|
1478
|
-
/**
|
|
1479
|
-
* The store's refusal when there is one, otherwise this package's own sentence —
|
|
1480
|
-
* for the call sites whose answer MAY carry an error (`res.error?.message ?? "…"`
|
|
1481
|
-
* was the old shape, and it printed the store's message raw).
|
|
1482
|
-
*/
|
|
1483
|
-
declare function refusalOr(error: RecordsError | null | undefined, code: RecordsErrorCode, sentence: string): RecordsError;
|
|
1484
|
-
/**
|
|
1485
|
-
* Whatever a host callback threw, as a refusal: the store's own `RecordsError`
|
|
1486
|
-
* when that is what arrived (it is drawn with its own words and remedy), and
|
|
1487
|
-
* otherwise `refusalFromThrown` — the thrown text out of sight, `sentence` in view.
|
|
1488
|
-
*/
|
|
1489
|
-
declare function asRefusal(thrown: unknown, sentence: string, remedy?: string | null, code?: RecordsErrorCode): RecordsError;
|
|
1490
|
-
|
|
1491
1459
|
/**
|
|
1492
1460
|
* HOW A TABLE LOOKS — colors, formats and the frozen column.
|
|
1493
1461
|
*
|
|
@@ -1732,353 +1700,16 @@ declare function styleFromDecorations(decorations: TableDecorations | null | und
|
|
|
1732
1700
|
*/
|
|
1733
1701
|
declare function resolveTableStyle(decorations: TableDecorations | null | undefined, fields: readonly Field[], viewStyle: TableStyle | undefined): TableStyle;
|
|
1734
1702
|
|
|
1735
|
-
/**
|
|
1736
|
-
type
|
|
1737
|
-
/**
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
* · `start_field` / `end_field` are held for the visit, never sent (`viewSettingsPatch`), and the
|
|
1746
|
-
* Start also rides `date_field`, which the store already keeps;
|
|
1747
|
-
* · the timeline's toolbar says "Kept for this visit only".
|
|
1748
|
-
* Flipped to `true`, VIEW_KEYS below mirrors the migrated registry row for row (the live walk
|
|
1749
|
-
* compares them) and every one of those is kept on the view.
|
|
1750
|
-
*/
|
|
1751
|
-
declare const STORE_KEEPS_TIMELINE = true;
|
|
1752
|
-
/** Who may write a key: anyone who may save the view, an input the door rewrites, or the server only. */
|
|
1753
|
-
type ViewKeyWriter = "caller" | "input" | "server";
|
|
1754
|
-
interface ViewKeyDeclaration {
|
|
1755
|
-
/** Where it lives in `platform.saved_view.definition` (dotted under `presentation`). */
|
|
1756
|
-
path: string;
|
|
1757
|
-
/** What the store's guard checks (`custom._view_key_value`). */
|
|
1758
|
-
shape: string;
|
|
1759
|
-
/** The layouts that read it. */
|
|
1760
|
-
layouts: readonly ViewKeyLayout[];
|
|
1761
|
-
writer: ViewKeyWriter;
|
|
1762
|
-
}
|
|
1763
|
-
/**
|
|
1764
|
-
* THE REGISTRY, as `custom.view_keys()` declares it (uichamp_s1_a_view_keeps_every_setting_it_is_given.sql).
|
|
1765
|
-
* Order and content are compared with the store by the live walk.
|
|
1766
|
-
*/
|
|
1767
|
-
declare const VIEW_KEYS: readonly ViewKeyDeclaration[];
|
|
1768
|
-
/**
|
|
1769
|
-
* THE LAYOUTS THE STORE KEEPS ON A VIEW. `custom.view_keys()` judges a view's `layout` against its
|
|
1770
|
-
* own list (grid, kanban, calendar, gallery) and refuses any other word by name. A layout this
|
|
1771
|
-
* package draws before the store keeps it — the timeline, 2026-10-02 — is never sent as a view's or a
|
|
1772
|
-
* look's layout (`viewSettingsPatch`, `viewDocument`): it is drawn for this visit and says so. When the
|
|
1773
|
-
* store's registry admits it, add it here and nothing else changes.
|
|
1774
|
-
*/
|
|
1775
|
-
declare const STORE_KEPT_LAYOUTS: readonly string[];
|
|
1776
|
-
/** Whether the store keeps this layout on a saved view. */
|
|
1777
|
-
declare function storeKeepsLayout(layout: string): boolean;
|
|
1778
|
-
/** The keys one layout reads, by path. */
|
|
1779
|
-
declare function viewKeysFor(layout: ViewKeyLayout): string[];
|
|
1780
|
-
/** One sort clause: a Field key and a direction. */
|
|
1781
|
-
interface ViewSortKey {
|
|
1782
|
-
field: string;
|
|
1783
|
-
direction: "asc" | "desc";
|
|
1784
|
-
}
|
|
1785
|
-
/**
|
|
1786
|
-
* EVERY DECLARED KEY OF A VIEW, TYPED. Absent keys are `null` / empty, never guessed.
|
|
1787
|
-
* `presentation` is the parsed look (colour field, pinned fields, row height, grouping with its
|
|
1788
|
-
* sub-groups and shut sections, hidden fields, gallery size, summaries).
|
|
1789
|
-
*/
|
|
1790
|
-
interface ViewSettings {
|
|
1791
|
-
layout: "grid" | "kanban" | "calendar" | "gallery" | "timeline" | "list";
|
|
1792
|
-
filters: RecordFilter | null;
|
|
1793
|
-
where: RuleExpression | null;
|
|
1794
|
-
groupField: string | null;
|
|
1795
|
-
swimlaneField: string | null;
|
|
1796
|
-
collapsedColumns: string[];
|
|
1797
|
-
measure: string | null;
|
|
1798
|
-
dateField: string | null;
|
|
1799
|
-
/** Timeline: where a record's bar starts (`start_field`). */
|
|
1800
|
-
startField: string | null;
|
|
1801
|
-
/** Calendar and timeline: where a record ends (`end_field`). */
|
|
1802
|
-
endField: string | null;
|
|
1803
|
-
imageField: string | null;
|
|
1804
|
-
sorts: ViewSortKey[];
|
|
1805
|
-
ruleId: string | null;
|
|
1806
|
-
isDefault: boolean;
|
|
1807
|
-
presentation: GridPresentation;
|
|
1808
|
-
movedFrom: Record<string, unknown> | null;
|
|
1809
|
-
}
|
|
1810
|
-
/** THE READER. A stored `definition` (and the row's flat `filters`) in, every declared key out. */
|
|
1811
|
-
declare function viewSettings(definition: Record<string, unknown> | null | undefined, rowFilters?: RecordFilter | null): ViewSettings;
|
|
1812
|
-
/** The settings as the spec names them — what `viewSettingsPatch` takes. */
|
|
1813
|
-
type ViewSettingsPatch = Partial<Omit<ViewSettings, "movedFrom" | "layout">> & {
|
|
1814
|
-
/** Any layout the package draws; one the store does not keep is not sent. */
|
|
1815
|
-
layout?: string;
|
|
1816
|
-
};
|
|
1817
|
-
/**
|
|
1818
|
-
* THE KEYS ONE LAYOUT READS, and nothing else. A layout that does not use a key never sees it:
|
|
1819
|
-
* a calendar is not told the board's swimlanes, a board is not told the grid's pinned fields.
|
|
1820
|
-
*/
|
|
1821
|
-
declare function viewSettingsFor(settings: ViewSettings, layout: ViewKeyLayout): Partial<ViewSettings>;
|
|
1822
|
-
/**
|
|
1823
|
-
* THE WRITER'S SHAPE. Only the keys a press changed; a cleared Field is `null` (the door removes
|
|
1824
|
-
* it); lists are sent whole. `presentation` is sent whole because the door judges it as one key.
|
|
1825
|
-
*/
|
|
1826
|
-
declare function viewSettingsPatch(patch: ViewSettingsPatch): Record<string, unknown>;
|
|
1827
|
-
|
|
1828
|
-
/** The ways one saved view can be looked at (SCR-6; the timeline, lane VIEWS-AND-FIELDS TL). */
|
|
1829
|
-
declare const VIEW_LAYOUTS: readonly ["grid", "kanban", "calendar", "gallery", "timeline", "list"];
|
|
1830
|
-
type ViewLayout = (typeof VIEW_LAYOUTS)[number];
|
|
1831
|
-
declare const LAYOUT_LABEL: Record<ViewLayout, string>;
|
|
1832
|
-
/**
|
|
1833
|
-
* ─────────────────────────────────────────────────────────────────────────────
|
|
1834
|
-
* WHAT EACH LAYOUT NEEDS FROM THE TABLE, AND HOW THE SCREEN SUPPLIES IT
|
|
1835
|
-
* (lane DATA-V2-VIEWS-1, Arman 2026-09-28).
|
|
1836
|
-
*
|
|
1837
|
-
* THE DEFECT. A plain table opened as a Kanban said "A kanban board needs a Field to make its
|
|
1838
|
-
* columns from … Add column, then Select — and it appears here." It told the person what to do
|
|
1839
|
-
* instead of doing it, and on an AI platform it offered no AI. The ruling: ONE primitive, used by
|
|
1840
|
-
* every view (`ViewNeeds`) — the empty state says in one plain sentence what is missing and what
|
|
1841
|
-
* pressing will do, offers "Make it work" (the column is declared through the store's
|
|
1842
|
-
* `custom.field_declare`, its key minted by the store, its name and choices editable before the
|
|
1843
|
-
* press) and "Ask AI" (the agent does it through the same door, held for the person's approval by
|
|
1844
|
-
* the organization's "Agent changes to this organization's data" setting).
|
|
1845
|
-
*
|
|
1846
|
-
* THE CENSUS — every layout this package draws, and what it reads:
|
|
1847
|
-
* · grid nothing.
|
|
1848
|
-
* · kanban a CHOICE column (its options become the board's columns). Blocking.
|
|
1849
|
-
* · calendar a DATE column (it places each record on a day). Blocking.
|
|
1850
|
-
* · gallery a FILE column for the card's picture. NOT blocking: the cards draw without one,
|
|
1851
|
-
* so the offer sits above them instead of in place of them.
|
|
1852
|
-
* · timeline a DATE column each bar starts on (the calendar's `dateField`). Blocking.
|
|
1853
|
-
* `PAGE_VIEWS`' two extra values (dashboards, archived) read
|
|
1854
|
-
* nothing a table can lack. This package ships no map layout; the day it does,
|
|
1855
|
-
* `Record<ViewLayout, …>` below refuses to compile until the new layout names what it needs.
|
|
1856
|
-
*/
|
|
1857
|
-
type ViewNeedKind = "choice" | "date" | "file";
|
|
1858
|
-
interface ViewNeed {
|
|
1859
|
-
/** What the layout reads, as a kind a column declares (`offerableFields`). */
|
|
1860
|
-
kind: ViewNeedKind;
|
|
1861
|
-
/** The view key the made column is written onto, so the layout opens drawn by it. */
|
|
1862
|
-
viewKey: "groupField" | "dateField" | "imageField";
|
|
1863
|
-
/** True when the layout cannot draw at all without it (kanban, calendar). */
|
|
1864
|
-
blocking: boolean;
|
|
1865
|
-
/** The column the press makes, before the person edits it: its name, the store's word, its choices. */
|
|
1866
|
-
starter: {
|
|
1867
|
-
label: string;
|
|
1868
|
-
type: "select" | "datetime" | "attachment";
|
|
1869
|
-
options?: readonly string[];
|
|
1870
|
-
};
|
|
1871
|
-
/** The table HAS columns this layout can use and none is chosen: the sentence over the picker. */
|
|
1872
|
-
pick: string;
|
|
1873
|
-
/** One plain sentence: what the table is missing (all a person who may not change it is told). */
|
|
1874
|
-
missing: string;
|
|
1875
|
-
/** One plain sentence: what pressing Make it work will do, with the column's name. */
|
|
1876
|
-
does: (label: string) => string;
|
|
1877
|
-
/** The sentence an agent is asked with — the same act, said in words. */
|
|
1878
|
-
ask: (label: string, options: readonly string[]) => string;
|
|
1879
|
-
}
|
|
1880
|
-
/** A list of words as a person says it: "To do, In progress and Done". */
|
|
1881
|
-
declare function wordsList(words: readonly string[]): string;
|
|
1882
|
-
declare const VIEW_NEEDS: Record<ViewLayout, ViewNeed | null>;
|
|
1883
|
-
/**
|
|
1884
|
-
* A NAME NO COLUMN OF THIS TABLE ALREADY HAS: the starter's own, else "Status 2", "Status 3"…
|
|
1885
|
-
* A table that already holds a text column called Status must not be refused the board.
|
|
1886
|
-
*/
|
|
1887
|
-
declare function freeColumnName(wanted: string, taken: readonly string[]): string;
|
|
1888
|
-
/** One sort clause. The Field's key and a direction; nothing else is a sort. */
|
|
1889
|
-
interface ViewSort {
|
|
1890
|
-
field: string;
|
|
1891
|
-
direction: "asc" | "desc";
|
|
1892
|
-
}
|
|
1893
|
-
/** How a saved view is ordered: by hand, by its sort, or it never said (the same as sorted). */
|
|
1894
|
-
type ViewOrder = "manual" | "sorted" | null;
|
|
1895
|
-
/**
|
|
1896
|
-
* THE DECLARATIVE SPEC. An agent writes this whole object; a person tweaks it.
|
|
1897
|
-
* Every builder component in this package takes one of these as a prop.
|
|
1898
|
-
*/
|
|
1899
|
-
interface SavedViewSpec {
|
|
1900
|
-
name: string;
|
|
1901
|
-
/** The Table this view looks at. */
|
|
1902
|
-
subject: Uuid;
|
|
1903
|
-
layout: ViewLayout;
|
|
1904
|
-
/** Kanban: the Field whose value becomes a column. */
|
|
1905
|
-
groupField?: string | null;
|
|
1906
|
-
/**
|
|
1907
|
-
* Kanban: a number Field to TOTAL under each column heading. It lives on the VIEW for
|
|
1908
|
-
* the same reason the colours do — two people read one board two ways and neither
|
|
1909
|
-
* reading is a fact about the records.
|
|
1910
|
-
*/
|
|
1911
|
-
measure?: string | null;
|
|
1912
|
-
/**
|
|
1913
|
-
* Kanban: the Field whose values cut the board into SWIMLANES across the columns — a
|
|
1914
|
-
* dispatcher's board by Status, one lane per Technician (S1-PRIME VIEW-KEYS). Never the
|
|
1915
|
-
* column Field itself; the store refuses that.
|
|
1916
|
-
*/
|
|
1917
|
-
swimlaneField?: string | null;
|
|
1918
|
-
/** Kanban: the columns this view keeps shut to a strip, by the column's stored value. */
|
|
1919
|
-
collapsedColumns?: string[];
|
|
1920
|
-
/** Calendar: the Field that places a record in the month. */
|
|
1921
|
-
dateField?: string | null;
|
|
1922
|
-
/** Timeline: the Field a record's bar starts on (`start_field`). */
|
|
1923
|
-
startField?: string | null;
|
|
1924
|
-
/** Calendar and timeline: the Field a record ends on (`end_field`). */
|
|
1925
|
-
endField?: string | null;
|
|
1926
|
-
/** Gallery: the Field shown large on the card. */
|
|
1927
|
-
imageField?: string | null;
|
|
1928
|
-
sorts?: ViewSort[];
|
|
1929
|
-
/**
|
|
1930
|
-
* HOW THE VIEW IS ORDERED (ORDER-FIX): `"manual"` — the positions a person set by hand ARE the
|
|
1931
|
-
* view's sort, and it carries no `sorts`; `"sorted"` or null — by `sorts`. READ ONLY: the store
|
|
1932
|
-
* writes "manual" only when the rows are placed (`custom.view_record_order_set`) and turns it
|
|
1933
|
-
* off itself when a sort is saved, so no patch ever sends it (`viewSettingsPatch` does not).
|
|
1934
|
-
*/
|
|
1935
|
-
order?: ViewOrder;
|
|
1936
|
-
/**
|
|
1937
|
-
* The membership Rule. The STORE decides who is in this view; this is a
|
|
1938
|
-
* reference to its Rule record, never a predicate this package evaluates.
|
|
1939
|
-
*/
|
|
1940
|
-
ruleId?: Uuid | null;
|
|
1941
|
-
/**
|
|
1942
|
-
* THE FLAT FILTER a digest or a notify rule wrote the view with — the one shape
|
|
1943
|
-
* `custom.record_filter_sql` compiles, by Field KEY. A view saved in the bar has
|
|
1944
|
-
* none; a view saved by `DigestScheduler` ("where Status is Open") does, and the
|
|
1945
|
-
* grid and the board show exactly the records it names.
|
|
1946
|
-
*/
|
|
1947
|
-
filters?: RecordFilter;
|
|
1948
|
-
/**
|
|
1949
|
-
* S2-PRIME — THE VIEW'S OWN QUESTION, as the condition builder writes it: the store's Rule
|
|
1950
|
-
* shape `{op, args}`, ALL / ANY / NOT groups nested to any depth, Fields by id. Kept in the
|
|
1951
|
-
* definition as `where` and asked of the store unchanged — the grid's list door, the board's
|
|
1952
|
-
* headings and the dashboard's numbers compile it into the one WHERE clause
|
|
1953
|
-
* (`custom.record_filter_sql`). Never stored under `filters`: that key is the flat map the
|
|
1954
|
-
* digests and the notifier read, and they would refuse it by name.
|
|
1955
|
-
*/
|
|
1956
|
-
where?: RuleExpression | null;
|
|
1957
|
-
isDefault?: boolean;
|
|
1958
|
-
/**
|
|
1959
|
-
* HOW THIS VIEW LOOKS — its colors, its per-column formats and its frozen
|
|
1960
|
-
* column (`presentation.ts`).
|
|
1961
|
-
*
|
|
1962
|
-
* It lives on the VIEW and not on the Fields because two people read one
|
|
1963
|
-
* table two ways and neither reading is a fact about the records; it lives on
|
|
1964
|
-
* a RECORD, not a new column, because that is what makes it something an
|
|
1965
|
-
* agent writes with the same `records` tool as everything else.
|
|
1966
|
-
*/
|
|
1967
|
-
presentation?: GridPresentation;
|
|
1968
|
-
}
|
|
1969
|
-
/**
|
|
1970
|
-
* A saved view as it comes back out of the store, with its row's own id.
|
|
1971
|
-
*
|
|
1972
|
-
* It carries no version: `custom.view_declare` MERGES one key at a time, so two
|
|
1973
|
-
* tabs pressing two different controls on one view both stand, and one control
|
|
1974
|
-
* pressed in both keeps the latest — how Airtable and Notion keep a view change.
|
|
1975
|
-
*/
|
|
1976
|
-
interface SavedView extends SavedViewSpec {
|
|
1977
|
-
id: Uuid;
|
|
1978
|
-
/** Where the view came from when it was moved in (the mover, the S0 repair), else null. */
|
|
1979
|
-
movedFrom: Record<string, unknown> | null;
|
|
1980
|
-
}
|
|
1981
|
-
/** THE TABLE'S DEFAULT VIEW: the first view that says it is. */
|
|
1982
|
-
declare function defaultViewOf<V extends Pick<SavedView, "isDefault">>(views: readonly V[]): V | undefined;
|
|
1983
|
-
/**
|
|
1984
|
-
* WHICH FIELD EACH LAYOUT CAN BE DRAWN FROM, decided from the FIELD'S OWN
|
|
1985
|
-
* DECLARATION and never from the values it happens to hold.
|
|
1986
|
-
*
|
|
1987
|
-
* A kanban makes columns from a choice: the Field whose value is one of a
|
|
1988
|
-
* closed set (FLD-5 / FLD-6 — a pick-list is a Table, and a select stores the
|
|
1989
|
-
* id of one of its records). Grouping by a free-text Field produces one column
|
|
1990
|
-
* per record, which is not a board. A calendar places a record in time, so it
|
|
1991
|
-
* needs a Field that holds a date.
|
|
1992
|
-
*
|
|
1993
|
-
* These two answers are here, beside the layouts, because the picker on the
|
|
1994
|
-
* screen and any agent writing a view spec must agree about what is offerable.
|
|
1995
|
-
*/
|
|
1996
|
-
declare const LAYOUT_FIELD_KIND: Record<ViewLayout, ViewNeedKind | null>;
|
|
1997
|
-
/**
|
|
1998
|
-
* ─────────────────────────────────────────────────────────────────────────────
|
|
1999
|
-
* WHICH VIEW A LINK NAMES — the address bar as a first-class control.
|
|
2000
|
-
*
|
|
2001
|
-
* 🚨 THE DEFECT THIS CLOSES (lane FRONT-DOOR, 2026-09-21; VERIFIER-8 HIGH-2).
|
|
2002
|
-
* `/data/<table>?view=kanban` returned 200 and rendered THE GRID. The
|
|
2003
|
-
* switcher was there, the four buttons worked, and the parameter was read by
|
|
2004
|
-
* nobody — so a person who bookmarked a board, or sent one to a colleague, got
|
|
2005
|
-
* a grid, and nothing on the screen said the view had been dropped. A link that
|
|
2006
|
-
* does not land is the inbox-link defect (`activeRecordId`) and the dashboard
|
|
2007
|
-
* defect (`activeDashboardId`) for the third time, so this is the same shape of
|
|
2008
|
-
* fix: the URL names it, the page opens on it, and the URL FOLLOWS the person
|
|
2009
|
-
* when they pick another.
|
|
2010
|
-
*
|
|
2011
|
-
* The dashboards are a fifth value and not a special case: to the person, "the
|
|
2012
|
-
* dashboard" is one of the ways to look at this table, and a link to it has to
|
|
2013
|
-
* work like a link to the board.
|
|
2014
|
-
*/
|
|
2015
|
-
/**
|
|
2016
|
-
* 🚨 `archived` IS THE SIXTH VALUE, AND IT IS NOT A SPECIAL CASE EITHER (lane
|
|
2017
|
-
* FIX-10A-ARCHIVE, 2026-09-22; VERIFIER-10 F4).
|
|
2018
|
-
*
|
|
2019
|
-
* Archiving a record used to be a ONE-WAY DOOR: the grid's row action soft-
|
|
2020
|
-
* deletes correctly — `deleted_at` set, version bumped, nothing removed — and
|
|
2021
|
-
* then no screen anywhere in the platform could bring it back. The store's
|
|
2022
|
-
* `custom.record_restore` was there the whole time and did exactly the right
|
|
2023
|
-
* thing; nothing reached it, because every read door answers live rows only.
|
|
2024
|
-
*
|
|
2025
|
-
* So the archive is a WAY OF LOOKING AT THIS TABLE, like the board and the
|
|
2026
|
-
* dashboards, reached by the same row of buttons and named by the same
|
|
2027
|
-
* `?view=` parameter — never a Trash area of the app somebody has to know
|
|
2028
|
-
* exists, and never a per-table screen. Every Table inherits it the moment it
|
|
2029
|
-
* is in this list.
|
|
2030
|
-
*/
|
|
2031
|
-
declare const PAGE_VIEWS: readonly ["grid", "kanban", "calendar", "gallery", "timeline", "list", "dashboards", "archived"];
|
|
2032
|
-
type PageView = (typeof PAGE_VIEWS)[number];
|
|
2033
|
-
declare const PAGE_VIEW_LABEL: Record<PageView, string>;
|
|
2034
|
-
/**
|
|
2035
|
-
* What a `?view=` value means, or `null` when it means nothing here.
|
|
2036
|
-
*
|
|
2037
|
-
* `null` is NOT "show the grid": the caller is expected to say that the link
|
|
2038
|
-
* named something this table has no view for, because silently substituting a
|
|
2039
|
-
* different view is exactly the defect above wearing a parser.
|
|
2040
|
-
*/
|
|
2041
|
-
declare function pageViewFromParam(raw: string | null | undefined): PageView | null;
|
|
2042
|
-
/** The sentence a link that named a view nobody has says. Never silent. */
|
|
2043
|
-
declare function unknownViewLine(raw: string): string;
|
|
2044
|
-
/**
|
|
2045
|
-
* THE SPEC AS THE ONE DEFINITION `platform.saved_view` HOLDS — the keys
|
|
2046
|
-
* `custom.view_declare` documents, by Field KEY. `subject` is not in it: the door
|
|
2047
|
-
* takes the Table as its own argument and writes `table_id` itself.
|
|
2048
|
-
*/
|
|
2049
|
-
declare function viewDocument(spec: SavedViewSpec): Record<string, unknown>;
|
|
2050
|
-
/**
|
|
2051
|
-
* One row of `custom.views` back into the spec a screen and an agent both read — THROUGH THE ONE
|
|
2052
|
-
* ACCESSOR (`viewSettings`, viewKeys.ts), so every layout sees every declared key the same way.
|
|
2053
|
-
*/
|
|
2054
|
-
declare function viewFromRow(row: SavedViewRow): SavedView;
|
|
2055
|
-
/**
|
|
2056
|
-
* SAVE ONE NEW VIEW of a Table — the bar's "New view" and an agent's seed spec.
|
|
2057
|
-
* One `view_declare` with no `view_id`; the answer is the new view's id.
|
|
2058
|
-
*/
|
|
2059
|
-
declare function declareView(client: Pick<RecordsClient, "viewDeclare">, spec: SavedViewSpec): Promise<RecordsResult<Uuid>>;
|
|
2060
|
-
/**
|
|
2061
|
-
* WRITE A CHANGE ONTO A SAVED VIEW, AND KEEP IT.
|
|
2062
|
-
*
|
|
2063
|
-
* `custom.view_declare` with the view's id MERGES: only the keys in `patch` are
|
|
2064
|
-
* written, a key cleared to null is removed, and everything the patch did not
|
|
2065
|
-
* name — the grid's own choices, a hand-set order, where the view was moved from,
|
|
2066
|
-
* a colour set in another tab — stays exactly as it was (S0, 2026-09-23: the door
|
|
2067
|
-
* used to rebuild the whole definition from what one press sent).
|
|
2068
|
-
*
|
|
2069
|
-
* There is no version to be stale against (VERIFIER-15 M4 is closed by the shape,
|
|
2070
|
-
* not by a retry): a saved view is a person's own arrangement of a table, and
|
|
2071
|
-
* their latest press on a control is the one that stands. A refusal — the view
|
|
2072
|
-
* was removed, or belongs to a table this person cannot open — is handed back for
|
|
2073
|
-
* the page to say through the one notice.
|
|
2074
|
-
*/
|
|
2075
|
-
declare function saveViewPatch(client: Pick<RecordsClient, "viewDeclare">, tableId: Uuid, viewId: Uuid, patch: Partial<SavedViewSpec>): Promise<RecordsResult<Uuid>>;
|
|
2076
|
-
/**
|
|
2077
|
-
* A PARTIAL change to a saved view, as the definition keys the door merges. Only
|
|
2078
|
-
* the keys the caller actually changed are sent; a Field cleared (a board with no
|
|
2079
|
-
* "Group by") is sent as `null`, which the door removes.
|
|
2080
|
-
*/
|
|
2081
|
-
declare function viewPatchDocument(patch: Partial<SavedViewSpec>): Record<string, unknown>;
|
|
1703
|
+
/** THE DECLARATIVE SPEC, with this package's grid look. */
|
|
1704
|
+
type SavedViewSpec = base.SavedViewSpec<GridPresentation>;
|
|
1705
|
+
/** A saved view as it comes back out of the store, with its row's own id. */
|
|
1706
|
+
type SavedView = base.SavedView<GridPresentation>;
|
|
1707
|
+
/** The view's doors with this package's grid look bound — bindings of records' one definition. */
|
|
1708
|
+
declare const viewDocument: (spec: base.SavedViewSpec<GridPresentation>) => Record<string, unknown>;
|
|
1709
|
+
declare const viewFromRow: (row: _ai_matrx_records.SavedViewRow) => base.SavedView<GridPresentation>;
|
|
1710
|
+
declare const declareView: (client: Pick<_ai_matrx_records_core.RecordsClient, "viewDeclare">, spec: base.SavedViewSpec<GridPresentation>) => Promise<_ai_matrx_records.RecordsResult<string>>;
|
|
1711
|
+
declare const saveViewPatch: (client: Pick<_ai_matrx_records_core.RecordsClient, "viewDeclare">, tableId: _ai_matrx_records.Uuid, viewId: _ai_matrx_records.Uuid, patch: Partial<base.SavedViewSpec<GridPresentation>>) => Promise<_ai_matrx_records.RecordsResult<string>>;
|
|
1712
|
+
declare const viewPatchDocument: (patch: Partial<base.SavedViewSpec<GridPresentation>>) => Record<string, unknown>;
|
|
2082
1713
|
|
|
2083
1714
|
/** A column sort as the grid holds it: the Field key and a direction. */
|
|
2084
1715
|
interface ColumnSort {
|
|
@@ -2329,7 +1960,7 @@ interface RecordsTableCardProps {
|
|
|
2329
1960
|
/**
|
|
2330
1961
|
* What to show: a custom Table (`{ kind: "table", id }`, drawn by this package's Grid) or a
|
|
2331
1962
|
* standard source (`{ kind: "entity", token }` — "party", "crm_deal", "task", "project"), read and
|
|
2332
|
-
* written through `@ai-matrx/entity
|
|
1963
|
+
* written through `@ai-matrx/records/entity` (`entityTable.tsx`): keyset pages, edits drawn at once and
|
|
2333
1964
|
* rolled back on refusal, other people's changes live.
|
|
2334
1965
|
*/
|
|
2335
1966
|
source: {
|
|
@@ -3522,30 +3153,6 @@ declare function choiceNudgeOf(client: RecordsClient): Promise<ChoiceNudge>;
|
|
|
3522
3153
|
*/
|
|
3523
3154
|
declare function useChoiceNudge(enabled?: boolean): ChoiceNudge | null;
|
|
3524
3155
|
|
|
3525
|
-
/** A standard source's first read: its page size and the viewer's search (an empty search is none). */
|
|
3526
|
-
declare function entityTableQuery(options?: {
|
|
3527
|
-
pageSize?: number | undefined;
|
|
3528
|
-
search?: string | null | undefined;
|
|
3529
|
-
}): Query;
|
|
3530
|
-
/** The block's own props that decide a chart's question. */
|
|
3531
|
-
interface EntityChartQuestionInput {
|
|
3532
|
-
/** The Dimension to group by. Absent: one total. */
|
|
3533
|
-
by?: string | undefined;
|
|
3534
|
-
/** What to count: the rows (default) or a number column summed. */
|
|
3535
|
-
measure?: {
|
|
3536
|
-
op: "count";
|
|
3537
|
-
} | {
|
|
3538
|
-
op: "sum" | "avg" | "min" | "max";
|
|
3539
|
-
of: string;
|
|
3540
|
-
} | undefined;
|
|
3541
|
-
where?: Record<string, unknown> | undefined;
|
|
3542
|
-
organization?: string | undefined;
|
|
3543
|
-
}
|
|
3544
|
-
/** The chart's `platform.drill_ask` question. */
|
|
3545
|
-
declare function entityChartQuestion(input: EntityChartQuestionInput): DrillQuestion & {
|
|
3546
|
-
organization?: string;
|
|
3547
|
-
};
|
|
3548
|
-
|
|
3549
3156
|
interface EmbeddedLook {
|
|
3550
3157
|
blankEmpty: boolean;
|
|
3551
3158
|
choiceDot: boolean;
|
|
@@ -3918,6 +3525,13 @@ interface TrackedVersion {
|
|
|
3918
3525
|
note: (version: number) => void;
|
|
3919
3526
|
}
|
|
3920
3527
|
|
|
3528
|
+
/** EVERY DECLARED KEY OF A VIEW, TYPED, with this package's grid look. */
|
|
3529
|
+
type ViewSettings = base.ViewSettings<GridPresentation>;
|
|
3530
|
+
type ViewSettingsPatch = base.ViewSettingsPatch<GridPresentation>;
|
|
3531
|
+
/** THE READER (a stored `definition` and the row's flat `filters` in, every declared key out) and THE WRITER'S SHAPE. */
|
|
3532
|
+
declare const viewSettings: (definition: Record<string, unknown> | null | undefined, rowFilters?: _ai_matrx_records.RecordFilter | null) => base.ViewSettings<GridPresentation>;
|
|
3533
|
+
declare const viewSettingsPatch: (patch: base.ViewSettingsPatch<GridPresentation>) => Record<string, unknown>;
|
|
3534
|
+
|
|
3921
3535
|
declare function archiveConfirmSentence(what: string): string;
|
|
3922
3536
|
|
|
3923
3537
|
interface AnnounceTableArchived {
|
|
@@ -3937,35 +3551,12 @@ declare class TableRestoreRefused extends Error {
|
|
|
3937
3551
|
}
|
|
3938
3552
|
declare function announceTableArchived({ notify, client, tableId, name, onRestored }: AnnounceTableArchived): void;
|
|
3939
3553
|
|
|
3940
|
-
/**
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
/** Only the look's own keys of a press — a name, a default, a Rule or an order is never a look. */
|
|
3947
|
-
declare function lookPart(patch: Partial<SavedViewSpec>): ViewLook;
|
|
3948
|
-
/** The look as the definition keys the store keeps (`view_look_set`); a cleared key is null. */
|
|
3949
|
-
declare function lookDocument(look: ViewLook): Record<string, unknown>;
|
|
3950
|
-
/** A kept look back into the spec's words. Only the keys it holds; a null key is "none, for me". */
|
|
3951
|
-
declare function lookFromDocument(doc: Record<string, unknown> | null | undefined): ViewLook;
|
|
3952
|
-
/** THE VIEW AS THIS PERSON SEES IT: the saved view, with her look laid over it. */
|
|
3953
|
-
declare function applyLook(view: SavedView, look: ViewLook | null | undefined): SavedView;
|
|
3954
|
-
/** Whether the look shows anything the view does not — which is when "Save to view" means something. */
|
|
3955
|
-
declare function lookDiffers(view: SavedView, look: ViewLook | null | undefined): boolean;
|
|
3956
|
-
/**
|
|
3957
|
-
* WHAT "SAVE TO VIEW" SENDS, and what stays the person's own afterwards. The default view's layout
|
|
3958
|
-
* is the table's designation (`viewPatchFor`): it is never saved here — "Make … the default" is —
|
|
3959
|
-
* so a look's layout on the default view stays her look.
|
|
3960
|
-
*/
|
|
3961
|
-
declare function saveToViewPlan(view: SavedView, look: ViewLook): {
|
|
3962
|
-
patch: Partial<SavedViewSpec>;
|
|
3963
|
-
left: ViewLook | null;
|
|
3964
|
-
};
|
|
3965
|
-
/** The caller's own looks at every view of a table, by view id. */
|
|
3966
|
-
declare function readLooks(client: Pick<RecordsClient, "viewLookRead">, tableId: Uuid): Promise<RecordsResult<Record<string, ViewLook>>>;
|
|
3967
|
-
/** Keep the whole look (null: "Reset to view"). The shared view is never written. */
|
|
3968
|
-
declare function keepLook(client: Pick<RecordsClient, "viewLookSet">, tableId: Uuid, viewId: Uuid, look: ViewLook | null): Promise<RecordsResult<Record<string, unknown> | null>>;
|
|
3554
|
+
/** What a look may hold, with this package's grid look. */
|
|
3555
|
+
type ViewLook = base.ViewLook<GridPresentation>;
|
|
3556
|
+
declare const lookDocument: (look: Partial<Pick<base.SavedViewSpec<GridPresentation>, "layout" | "measure" | "presentation" | "where" | "sorts" | "groupField" | "swimlaneField" | "collapsedColumns" | "dateField" | "startField" | "endField" | "imageField">>) => Record<string, unknown>;
|
|
3557
|
+
declare const lookFromDocument: (doc: Record<string, unknown> | null | undefined) => Partial<Pick<base.SavedViewSpec<GridPresentation>, "layout" | "measure" | "presentation" | "where" | "sorts" | "groupField" | "swimlaneField" | "collapsedColumns" | "dateField" | "startField" | "endField" | "imageField">>;
|
|
3558
|
+
declare const readLooks: (client: Pick<_ai_matrx_records_core.RecordsClient, "viewLookRead">, tableId: _ai_matrx_records.Uuid) => Promise<_ai_matrx_records.RecordsResult<Record<string, Partial<Pick<base.SavedViewSpec<GridPresentation>, "layout" | "measure" | "presentation" | "where" | "sorts" | "groupField" | "swimlaneField" | "collapsedColumns" | "dateField" | "startField" | "endField" | "imageField">>>>>;
|
|
3559
|
+
declare const keepLook: (client: Pick<_ai_matrx_records_core.RecordsClient, "viewLookSet">, tableId: _ai_matrx_records.Uuid, viewId: _ai_matrx_records.Uuid, look: Partial<Pick<base.SavedViewSpec<GridPresentation>, "layout" | "measure" | "presentation" | "where" | "sorts" | "groupField" | "swimlaneField" | "collapsedColumns" | "dateField" | "startField" | "endField" | "imageField">> | null) => Promise<_ai_matrx_records.RecordsResult<Record<string, unknown> | null>>;
|
|
3969
3560
|
/** The words of the look bar. One sentence, then the doors. */
|
|
3970
3561
|
declare const LOOK_WORDS: {
|
|
3971
3562
|
/** The reason, for a tooltip or a screen reader — never a line on the page (interface-text). */
|
|
@@ -4607,251 +4198,6 @@ interface FieldHistoryPanelProps {
|
|
|
4607
4198
|
}
|
|
4608
4199
|
declare function FieldHistoryPanel({ tableId, fieldKey, recordId, onClose, onOpenRecord, className, }: FieldHistoryPanelProps): react.JSX.Element;
|
|
4609
4200
|
|
|
4610
|
-
/** How a form is put in front of a person. */
|
|
4611
|
-
declare const FORM_FLOWS: readonly ["one-at-a-time", "single-page"];
|
|
4612
|
-
type FormFlow = (typeof FORM_FLOWS)[number];
|
|
4613
|
-
/** One question. It ASKS FOR one Field of the subject Table — never its own column. */
|
|
4614
|
-
interface FormQuestionSpec {
|
|
4615
|
-
/** The Field's key on the subject Table. */
|
|
4616
|
-
field: string;
|
|
4617
|
-
/** Ask it in the form's own words. Left out, the Field's own label is the question. */
|
|
4618
|
-
ask?: string | null;
|
|
4619
|
-
/** One line under the question. */
|
|
4620
|
-
help?: string | null;
|
|
4621
|
-
/** Override the Field's own `required`. Left out, the Field decides. */
|
|
4622
|
-
required?: boolean | null;
|
|
4623
|
-
/**
|
|
4624
|
-
* CONDITIONAL LOGIC, AS A RULE. `{"op":"eq","args":[{"field":"<field id>"},{"const":"Yes"}]}`
|
|
4625
|
-
* — the store answers it, this package never does. An UNDECIDED answer (the
|
|
4626
|
-
* store's `null`, which is what an unanswered question gives) SHOWS the
|
|
4627
|
-
* question: a person is never silently skipped past something.
|
|
4628
|
-
*/
|
|
4629
|
-
showIf?: RuleExpression | null;
|
|
4630
|
-
/**
|
|
4631
|
-
* LOGIC JUMPS (lane TYPEFORM-DUP). After this question, the FIRST jump whose `when` the store
|
|
4632
|
-
* answers true is taken — to a later question or to one of the form's endings. A jump with no
|
|
4633
|
-
* `when` is "always". Undecided falls through to the next question. The store judges the route
|
|
4634
|
-
* (`custom._form_route`); this package never does.
|
|
4635
|
-
*/
|
|
4636
|
-
jumps?: FormJump[] | null;
|
|
4637
|
-
/** SCORING: what each answer is worth (`{"Yes": 5}`); a list answer adds each of its parts. */
|
|
4638
|
-
points?: Record<string, number> | null;
|
|
4639
|
-
}
|
|
4640
|
-
/** One logic jump: when the Rule is true, go to a later question or to an ending. */
|
|
4641
|
-
interface FormJump {
|
|
4642
|
-
when?: RuleExpression | null;
|
|
4643
|
-
to: {
|
|
4644
|
-
question: string;
|
|
4645
|
-
} | {
|
|
4646
|
-
ending: string;
|
|
4647
|
-
};
|
|
4648
|
-
}
|
|
4649
|
-
/**
|
|
4650
|
-
* ONE ENDING (lane TYPEFORM-DUP). A form may have several; a jump picks one, or the first whose
|
|
4651
|
-
* condition holds (`when`, `scoreMin`, `scoreMax`), or else the first with no condition.
|
|
4652
|
-
*/
|
|
4653
|
-
interface FormEnding {
|
|
4654
|
-
/** A short name, lower-case letters, digits, - and _. Jumps point at it. */
|
|
4655
|
-
id: string;
|
|
4656
|
-
title?: string | null;
|
|
4657
|
-
body?: string | null;
|
|
4658
|
-
/** One of the organization's public pictures (the builder's side). */
|
|
4659
|
-
pictureFileId?: Uuid | null;
|
|
4660
|
-
/** The picture's public address (the store resolves it for the public page). */
|
|
4661
|
-
pictureUrl?: string | null;
|
|
4662
|
-
buttonLabel?: string | null;
|
|
4663
|
-
/** A secure page on the organization's own sites — the thank-you's own rule. */
|
|
4664
|
-
redirectUrl?: string | null;
|
|
4665
|
-
when?: RuleExpression | null;
|
|
4666
|
-
scoreMin?: number | null;
|
|
4667
|
-
scoreMax?: number | null;
|
|
4668
|
-
}
|
|
4669
|
-
/** THE WELCOME SCREEN, before question one: a title, a message, a picture and a Start button. */
|
|
4670
|
-
interface FormWelcome {
|
|
4671
|
-
title?: string | null;
|
|
4672
|
-
body?: string | null;
|
|
4673
|
-
pictureFileId?: Uuid | null;
|
|
4674
|
-
pictureUrl?: string | null;
|
|
4675
|
-
buttonLabel?: string | null;
|
|
4676
|
-
}
|
|
4677
|
-
/** The look. Tokens, so light and dark both come out right without a second theme. */
|
|
4678
|
-
interface FormTheme {
|
|
4679
|
-
/** A design-system accent class or a CSS color. Left out, the app's own accent. */
|
|
4680
|
-
accent?: string | null;
|
|
4681
|
-
align?: "left" | "center" | null;
|
|
4682
|
-
/** One of design-system `FORM_FONTS`. */
|
|
4683
|
-
font?: string | null;
|
|
4684
|
-
/** One of design-system `FORM_BUTTON_STYLES`. */
|
|
4685
|
-
button?: string | null;
|
|
4686
|
-
/** One of design-system `FORM_BACKGROUNDS`. */
|
|
4687
|
-
background?: string | null;
|
|
4688
|
-
/** The picture for the `picture` background: a public picture of the organization. */
|
|
4689
|
-
backgroundFileId?: Uuid | null;
|
|
4690
|
-
/** Its public address, as the store resolved it for the public page. */
|
|
4691
|
-
backgroundUrl?: string | null;
|
|
4692
|
-
}
|
|
4693
|
-
/**
|
|
4694
|
-
* THE FORM'S OWN LOOK, in the portal's words (`custom._portal_style` resolves both): a colour of
|
|
4695
|
-
* the app's own palette and two of the organization's PUBLIC pictures. Each part left out is the
|
|
4696
|
-
* organization's look — its newest open portal's, then its own name and logo. `custom.form_declare`
|
|
4697
|
-
* refuses a colour the app does not have or a picture a stranger could not see, by name.
|
|
4698
|
-
*/
|
|
4699
|
-
interface FormLook {
|
|
4700
|
-
accent?: PortalAccent | null;
|
|
4701
|
-
logoFileId?: Uuid | null;
|
|
4702
|
-
coverFileId?: Uuid | null;
|
|
4703
|
-
}
|
|
4704
|
-
/** The screen after sending: the form's words, and optionally where to go next. */
|
|
4705
|
-
interface FormThankYou {
|
|
4706
|
-
title?: string | null;
|
|
4707
|
-
body?: string | null;
|
|
4708
|
-
/** A secure page on one of the organization's own sites. The store judges it. */
|
|
4709
|
-
redirectUrl?: string | null;
|
|
4710
|
-
}
|
|
4711
|
-
/** THE COMPLETE DECLARATIVE SPEC. One `record_write` and the form exists. */
|
|
4712
|
-
interface FormSpec {
|
|
4713
|
-
name: string;
|
|
4714
|
-
/** The Table a submission lands in. */
|
|
4715
|
-
subject: Uuid;
|
|
4716
|
-
intro?: string | null;
|
|
4717
|
-
questions: FormQuestionSpec[];
|
|
4718
|
-
flow?: FormFlow | null;
|
|
4719
|
-
theme?: FormTheme | null;
|
|
4720
|
-
/** Colour, logo and cover a stranger sees. Left out, the organization's look. */
|
|
4721
|
-
look?: FormLook | null;
|
|
4722
|
-
/**
|
|
4723
|
-
* WHAT THE PERSON SEES AFTER SENDING. `title` and `body` are the form's own
|
|
4724
|
-
* words for the next step ("You are all set" / "Next, book your first visit").
|
|
4725
|
-
* `redirectUrl` optionally sends them on to a page instead — and only ever to
|
|
4726
|
-
* one of the organization's own sites: `custom.form_declare` refuses anything
|
|
4727
|
-
* else by name, and `custom.form_public` stops handing it out the moment its
|
|
4728
|
-
* site leaves the organization's list (lane S7-PRIME).
|
|
4729
|
-
*/
|
|
4730
|
-
thankYou?: FormThankYou | null;
|
|
4731
|
-
submitLabel?: string | null;
|
|
4732
|
-
/** A separate first screen with a Start button (lane TYPEFORM-DUP). */
|
|
4733
|
-
welcome?: FormWelcome | null;
|
|
4734
|
-
/** Several endings, each picked by the answers (lane TYPEFORM-DUP). */
|
|
4735
|
-
endings?: FormEnding[] | null;
|
|
4736
|
-
/**
|
|
4737
|
-
* HIDDEN FIELDS: names read from the link (`?utm_source=…&ref=…`), kept on the submission and
|
|
4738
|
-
* never shown. Not questions — a question with the same key is prefilled instead.
|
|
4739
|
-
*/
|
|
4740
|
-
hiddenFields?: string[] | null;
|
|
4741
|
-
/**
|
|
4742
|
-
* Is this form meant to be answerable by someone who is not signed in? The
|
|
4743
|
-
* runner does NOT make that true by itself — it needs the anonymous write
|
|
4744
|
-
* door, and until that door exists it says so BY NAME rather than writing as
|
|
4745
|
-
* whoever happens to be signed in and calling it public.
|
|
4746
|
-
*/
|
|
4747
|
-
isPublic?: boolean;
|
|
4748
|
-
/**
|
|
4749
|
-
* THE OWNER'S LOGO AND NAME ABOVE THE FORM (lane TYPEFORM-2). Left out, the organization's knob
|
|
4750
|
-
* `forms/show_owner_header` (default on); false hides the agency's brand on a client's form.
|
|
4751
|
-
*/
|
|
4752
|
-
showOwnerHeader?: boolean | null;
|
|
4753
|
-
/** A single choice goes on to the next question when picked. Left out, knob `forms/choice_auto_advance`. */
|
|
4754
|
-
autoAdvance?: boolean | null;
|
|
4755
|
-
/** NOTIFY ON ANSWER, the builder's words (lane TYPEFORM-2): a webhook and the automation that sends it. */
|
|
4756
|
-
notify?: FormNotify | null;
|
|
4757
|
-
}
|
|
4758
|
-
/** Where an answer is sent besides the owner's own subscription (lane TYPEFORM-2). */
|
|
4759
|
-
interface FormNotify {
|
|
4760
|
-
webhookUrl?: string | null;
|
|
4761
|
-
/** The `custom.automation_declare` row that posts to `webhookUrl` (trigger form_answered). */
|
|
4762
|
-
webhookAutomationId?: Uuid | null;
|
|
4763
|
-
/**
|
|
4764
|
-
* EMAIL THE RESPONDENT (TYPEFORM-2), off unless set: one email to the address the person typed
|
|
4765
|
-
* in `respondentField` (an email question), worded from the ending reached — sent by
|
|
4766
|
-
* `custom.form_respondent_copy` through the platform's notification sender.
|
|
4767
|
-
*/
|
|
4768
|
-
emailRespondent?: boolean | null;
|
|
4769
|
-
respondentField?: string | null;
|
|
4770
|
-
}
|
|
4771
|
-
/**
|
|
4772
|
-
* A form as `custom.forms` reports it — the spec a screen renders, plus the
|
|
4773
|
-
* things only the STORE knows about it.
|
|
4774
|
-
*
|
|
4775
|
-
* The four store-side ids are carried on purpose. `custom.form_declare` is a
|
|
4776
|
-
* RE-STATEMENT of the whole form, so a save that left `notifyRuleId` out would
|
|
4777
|
-
* set it to null and the owner would quietly stop being told when somebody
|
|
4778
|
-
* answers — the exact silent failure the notify Rule exists to prevent. They are
|
|
4779
|
-
* read here and handed straight back by `formDeclareArgs`.
|
|
4780
|
-
*/
|
|
4781
|
-
interface SavedForm extends FormSpec {
|
|
4782
|
-
id: Uuid;
|
|
4783
|
-
/** draft · open · closed · full — the store's own word, never derived on a screen. */
|
|
4784
|
-
state: FormSummary["state"];
|
|
4785
|
-
/** The form's readable name in the store. `form_declare` keeps it across saves. */
|
|
4786
|
-
slug: string;
|
|
4787
|
-
/** Stops taking answers at this many. Null is no ceiling. */
|
|
4788
|
-
submissionCap: number | null;
|
|
4789
|
-
/** The accept Rule: what counts as a complete answer. Null holds every answer for a person. */
|
|
4790
|
-
quarantineRuleId: Uuid | null;
|
|
4791
|
-
/** The subscription Rule that tells somebody an answer arrived. */
|
|
4792
|
-
notifyRuleId: Uuid | null;
|
|
4793
|
-
}
|
|
4794
|
-
/**
|
|
4795
|
-
* The spec as `custom.anon_form.presentation` holds it.
|
|
4796
|
-
*
|
|
4797
|
-
* `questions` is deliberately NOT here: the door writes it itself from the
|
|
4798
|
-
* argument it validated (`presentation || {"questions": p_questions}`), so the
|
|
4799
|
-
* words a form is asked in and the keys it is allowed to accept can never be two
|
|
4800
|
-
* different lists.
|
|
4801
|
-
*/
|
|
4802
|
-
declare function formPresentation(spec: FormSpec): Record<string, unknown>;
|
|
4803
|
-
declare function themeFromDocument(raw: unknown): FormTheme | null;
|
|
4804
|
-
declare function welcomeFromDocument(raw: unknown): FormWelcome | null;
|
|
4805
|
-
declare function endingsFromDocument(raw: unknown): FormEnding[];
|
|
4806
|
-
/** The hidden fields' values out of a link's query, narrowed to the names the form declares. */
|
|
4807
|
-
declare function hiddenFromLink(hiddenFields: readonly string[] | null | undefined, params: Record<string, string | string[] | undefined>): Record<string, string>;
|
|
4808
|
-
/** Does this form route at all — conditions, jumps, endings or points the store must judge? */
|
|
4809
|
-
declare function formRoutes(form: Pick<FormSpec, "questions" | "endings">): boolean;
|
|
4810
|
-
/** HOW A FORM GOES INTO SOMEBODY ELSE'S PAGE. */
|
|
4811
|
-
declare const FORM_EMBEDS: readonly ["inline", "popup", "slider"];
|
|
4812
|
-
type FormEmbed = (typeof FORM_EMBEDS)[number];
|
|
4813
|
-
/**
|
|
4814
|
-
* THE SNIPPET THE OWNER COPIES (lane TYPEFORM-DUP). `inline` is a plain iframe of the public link
|
|
4815
|
-
* in embed mode; `popup` and `slider` are one button plus the platform's own embed script
|
|
4816
|
-
* (`<origin>/embed/form.js`), which opens the same iframe in a centred window or a side panel.
|
|
4817
|
-
* Nothing in either needs a cookie: the form keeps its place in its own storage and posts to its
|
|
4818
|
-
* own origin, so it keeps working with third-party cookies blocked.
|
|
4819
|
-
*/
|
|
4820
|
-
declare function formEmbedSnippet(kind: FormEmbed, formUrl: string, options?: {
|
|
4821
|
-
label?: string | null;
|
|
4822
|
-
height?: number | null;
|
|
4823
|
-
}): string;
|
|
4824
|
-
/** `presentation.look` both directions. Nothing set is `null`, one spelling on both sides. */
|
|
4825
|
-
declare function formLookDocument(look: FormLook | null): Record<string, unknown> | null;
|
|
4826
|
-
declare function formLookFromDocument(raw: unknown): FormLook | null;
|
|
4827
|
-
/** The exact arguments `custom.form_declare` is called with, for a new form or a re-statement. */
|
|
4828
|
-
declare function formDeclareArgs(form: FormSpec | SavedForm): {
|
|
4829
|
-
table_id: Uuid;
|
|
4830
|
-
title: string;
|
|
4831
|
-
questions: FormQuestionSpec[];
|
|
4832
|
-
presentation: Record<string, unknown>;
|
|
4833
|
-
submission_cap: number | null;
|
|
4834
|
-
quarantine_rule_id: Uuid | null;
|
|
4835
|
-
notify_rule_id: Uuid | null;
|
|
4836
|
-
form_id: Uuid | null;
|
|
4837
|
-
slug: string | null;
|
|
4838
|
-
};
|
|
4839
|
-
/** One row of `custom.forms` back into the spec a screen and an agent both read. */
|
|
4840
|
-
declare function formFromSummary(summary: FormSummary): SavedForm;
|
|
4841
|
-
/**
|
|
4842
|
-
* THE SOURCE STAMP every submission carries. A record that arrived through a
|
|
4843
|
-
* form is not indistinguishable from one somebody typed into the grid: it says
|
|
4844
|
-
* which form, which version of it, when, and who was acting. `_source` is a
|
|
4845
|
-
* stamp on the document beside the answers, so it travels with the record
|
|
4846
|
-
* through export, History and the agent's context without a parallel table.
|
|
4847
|
-
*/
|
|
4848
|
-
declare function submissionStamp(args: {
|
|
4849
|
-
formId: Uuid | null;
|
|
4850
|
-
formName: string;
|
|
4851
|
-
actor: string;
|
|
4852
|
-
onBehalfOf?: string | null;
|
|
4853
|
-
}): Record<string, unknown>;
|
|
4854
|
-
|
|
4855
4201
|
interface FormResultsPanelProps {
|
|
4856
4202
|
form: SavedForm | (FormSpec & {
|
|
4857
4203
|
id: Uuid$1;
|
|
@@ -5458,125 +4804,6 @@ interface DashboardCanvasProps {
|
|
|
5458
4804
|
}
|
|
5459
4805
|
declare function DashboardCanvas({ tableId, activeDashboardId, filter, createOnMount, onCreated, className }: DashboardCanvasProps): react.JSX.Element;
|
|
5460
4806
|
|
|
5461
|
-
type QuestionOp = "count" | "sum" | "avg" | "min" | "max";
|
|
5462
|
-
declare const QUESTION_OPS: readonly QuestionOp[];
|
|
5463
|
-
interface QuestionMeasure {
|
|
5464
|
-
op: QuestionOp;
|
|
5465
|
-
/** The Field measured; absent for `count`. */
|
|
5466
|
-
key?: string | undefined;
|
|
5467
|
-
}
|
|
5468
|
-
/** What the answer is cut into. */
|
|
5469
|
-
type QuestionGroup = {
|
|
5470
|
-
kind: "field";
|
|
5471
|
-
key: string;
|
|
5472
|
-
} | {
|
|
5473
|
-
kind: "bucket";
|
|
5474
|
-
key: string;
|
|
5475
|
-
by: AggregateBucket;
|
|
5476
|
-
}
|
|
5477
|
-
/** A column of the table a relation points at: `Patient.Referring physician`. */
|
|
5478
|
-
| {
|
|
5479
|
-
kind: "through";
|
|
5480
|
-
relation: string;
|
|
5481
|
-
key: string;
|
|
5482
|
-
};
|
|
5483
|
-
/** A condition on a column of the table a relation points at ("Patient.Referring physician is …"). */
|
|
5484
|
-
interface ThroughCondition {
|
|
5485
|
-
relation: string;
|
|
5486
|
-
key: string;
|
|
5487
|
-
value: string | number | boolean | null;
|
|
5488
|
-
}
|
|
5489
|
-
type QuestionShow = "table" | "bar" | "column" | "line" | "donut" | "number";
|
|
5490
|
-
interface QuestionSpec {
|
|
5491
|
-
v: 1;
|
|
5492
|
-
measures: QuestionMeasure[];
|
|
5493
|
-
/** The grid's condition builder's Rule, on this table's own Fields (by id). */
|
|
5494
|
-
where: RuleExpression | null;
|
|
5495
|
-
/** Conditions across a relation, ANDed with `where`. */
|
|
5496
|
-
through: ThroughCondition[];
|
|
5497
|
-
group: QuestionGroup | null;
|
|
5498
|
-
/** An ISO moment: the table as the store held it then. Null = now. */
|
|
5499
|
-
asOf: string | null;
|
|
5500
|
-
/** Groups sorted by the FIRST measure (`measure`) or by how many records each holds. Null = the store's default. */
|
|
5501
|
-
order: {
|
|
5502
|
-
by: "measure" | "count";
|
|
5503
|
-
direction: "desc" | "asc";
|
|
5504
|
-
} | null;
|
|
5505
|
-
/** How many groups are shown. */
|
|
5506
|
-
limit: number;
|
|
5507
|
-
show: QuestionShow;
|
|
5508
|
-
}
|
|
5509
|
-
declare function newQuestion(): QuestionSpec;
|
|
5510
|
-
/** A kept definition read back: anything malformed becomes the empty question, never a throw. */
|
|
5511
|
-
declare function questionFromDefinition(definition: unknown): QuestionSpec;
|
|
5512
|
-
interface QuestionRow {
|
|
5513
|
-
/** The group's stored value (a relation's record id, a period's local moment, a word), or null. */
|
|
5514
|
-
group: string | null;
|
|
5515
|
-
/** By measure key (`count`, `sum_copay`). Null = no value (never 0 passed off as one). */
|
|
5516
|
-
values: Record<string, number | null>;
|
|
5517
|
-
/** A measure over a column this reader may not read: the store's own notice, by measure key. */
|
|
5518
|
-
withheld: Record<string, HiddenFieldNotice & {
|
|
5519
|
-
says?: string;
|
|
5520
|
-
}>;
|
|
5521
|
-
/** How many records the group was measured over. */
|
|
5522
|
-
n: number;
|
|
5523
|
-
}
|
|
5524
|
-
interface QuestionAnswer {
|
|
5525
|
-
rows: QuestionRow[];
|
|
5526
|
-
/** The measure keys, in the order asked. */
|
|
5527
|
-
measures: string[];
|
|
5528
|
-
/** The key the group values are under (a bucket's is `<key>_<by>`), or null. */
|
|
5529
|
-
groupKey: string | null;
|
|
5530
|
-
/** How many groups exist; `groupsExact` false when it is "at least". */
|
|
5531
|
-
groupsTotal: number | null;
|
|
5532
|
-
groupsExact: boolean;
|
|
5533
|
-
truncated: boolean;
|
|
5534
|
-
asOf: string | null;
|
|
5535
|
-
}
|
|
5536
|
-
/**
|
|
5537
|
-
* The Rule as a FLAT map (Field key → value) when it is only "is" conditions joined by ALL — the
|
|
5538
|
-
* one shape the as-of door and a condition across a relation can carry. Null when it is more.
|
|
5539
|
-
*/
|
|
5540
|
-
declare function flatWhere(where: RuleExpression | null, fields: readonly Field[]): Record<string, unknown> | null;
|
|
5541
|
-
/**
|
|
5542
|
-
* ASK THE STORE. `fields` are this table's Fields (the condition builder writes Fields by id, and a
|
|
5543
|
-
* formula column cannot be asked "as of"). Every number in the answer is a door's.
|
|
5544
|
-
*/
|
|
5545
|
-
declare function askQuestion(client: RecordsClient, tableId: Uuid, spec: QuestionSpec, fields: readonly Field[]): Promise<RecordsResult<QuestionAnswer>>;
|
|
5546
|
-
/**
|
|
5547
|
-
* THE COLUMNS THIS READER MAY NOT READ, asked of the store: one aggregate measuring how many
|
|
5548
|
-
* records fill each column that carries a sensitivity, and every measure the store WITHHOLDS is a
|
|
5549
|
-
* column never offered. Nothing is guessed from levels here; the store decides, as it does for the
|
|
5550
|
-
* grid's cells.
|
|
5551
|
-
*/
|
|
5552
|
-
declare function unreadableKeys(client: RecordsClient, tableId: Uuid, fields: readonly Field[]): Promise<Set<string>>;
|
|
5553
|
-
/** The columns a measure other than count may read: numbers (formula arithmetic included); min/max also dates. */
|
|
5554
|
-
declare function measurableFields(fields: readonly Field[], op: QuestionOp): Field[];
|
|
5555
|
-
/** The saved-view surface a Question is kept under, beside the table's views (`custom/records`). */
|
|
5556
|
-
declare const QUESTION_SURFACE = "custom/records/question";
|
|
5557
|
-
interface SavedQuestion {
|
|
5558
|
-
id: Uuid;
|
|
5559
|
-
name: string;
|
|
5560
|
-
spec: QuestionSpec;
|
|
5561
|
-
/** Shared with the organization (`internal`) or kept for its maker (`personal`). */
|
|
5562
|
-
shared: boolean;
|
|
5563
|
-
version: number;
|
|
5564
|
-
createdBy: Uuid | null;
|
|
5565
|
-
}
|
|
5566
|
-
/** The table's Questions this person may read (the row's own access decides). */
|
|
5567
|
-
declare function questionsOf(client: RecordsClient, tableId: Uuid): Promise<RecordsResult<SavedQuestion[]>>;
|
|
5568
|
-
/** Keep a Question (new when `id` is absent). `null` data = somebody changed it first. */
|
|
5569
|
-
declare function questionSave(client: RecordsClient, args: {
|
|
5570
|
-
id?: Uuid | null;
|
|
5571
|
-
tableId: Uuid;
|
|
5572
|
-
name: string;
|
|
5573
|
-
spec: QuestionSpec;
|
|
5574
|
-
shared: boolean;
|
|
5575
|
-
expectedVersion?: number;
|
|
5576
|
-
}): Promise<RecordsResult<SavedQuestion | null>>;
|
|
5577
|
-
/** Archive a Question (its maker, or an admin of it). */
|
|
5578
|
-
declare function questionArchive(client: RecordsClient, id: Uuid, version?: number): Promise<RecordsResult<boolean>>;
|
|
5579
|
-
|
|
5580
4807
|
/** A related table's columns, keyed by the relation that reaches it. */
|
|
5581
4808
|
type Related = Record<string, {
|
|
5582
4809
|
relation: Field;
|
|
@@ -7494,4 +6721,4 @@ declare function RecordsSkeleton({ layout, embedded, rows, className }: RecordsS
|
|
|
7494
6721
|
*/
|
|
7495
6722
|
declare function TablePageSkeleton({ layout: layoutAsked, embedded, rows, tableId, className, }: RecordsSkeletonProps): react.JSX.Element;
|
|
7496
6723
|
|
|
7497
|
-
export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarMode, CalendarView, type CalendarViewProps, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, type DrillBase, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityChartQuestionInput, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_EMBEDS, FORM_FLOWS, FORM_NOT_HERE_LINE, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldRuleKindValue, type FieldTypeChoice, FilePicker, type FilePickerProps, type FilterPageBlock, type FooterPlacement, type FormAsked, FormBuilder, type FormBuilderProps, type FormEmbed, type FormEnding, type FormFlow, type FormJump, type FormLook, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, type FormQuestionSpec, FormResultsPanel, type FormResultsPanelProps, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, type FormWelcome, FormsPanel, type FormsPanelProps, type FormulaHelpAsk, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MatrxDrillDimensionOptions, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, PERSON_KERNEL_TABLE, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, type PageView, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, PickOrAdd, type PickOrAddItem, type PickOrAddProps, type PickableFieldType, type PickerTable, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PlatformFieldSpec, type PlatformTableSpec, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalLookEditor, type PortalLookEditorProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, type ProposedChangeAct, ProvenanceBadge, PublicPicturePicker, type PublicPicturePickerProps, PublicViewPage, type PublicViewPageProps, QUESTION_OPS, QUESTION_SURFACE, type QuestionAnswer, QuestionAnswerView, type QuestionGroup, type QuestionMeasure, type QuestionOp, QuestionPanel, type QuestionPanelProps, type QuestionRow, type QuestionShow, type QuestionSpec, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STORE_KEEPS_TIMELINE, STORE_KEPT_LAYOUTS, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedForm, type SavedQuestion, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableAccessLevel, TableActionHost, TableAsk, type TableAskProps, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsAgent, type TableSettingsProps, type TableSettingsSnapshot, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type ThroughCondition, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UsePlatformTableState, VIEW_ADDRESS_KEYS, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NEEDS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewKeyDeclaration, type ViewKeyLayout, type ViewKeyWriter, type ViewLayout, type ViewLook, type ViewNeed, type ViewNeedKind, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, type ViewSort, type ViewSortKey, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actionForAgent, actorBadge, actorWords, addDays, announceTableArchived, applyLook, archiveConfirmSentence, archivedRowLine, asRefusal, askExampleFor, askQuestion, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, defaultViewOf, descriptionPatch, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillFactWords, drillLevelAsks, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, endingsFromDocument, ensurePlatformTable, entityCellValue, entityChartQuestion, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTableQuery, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, flatWhere, footerOf, formDeclareArgs, formEmbedSnippet, formFromSummary, formLookDocument, formLookFromDocument, formLookView, formPresentation, formRoutes, formatForField, freeColumnName, freshFormName, getPersonTimeZone, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hiddenFromLink, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, lookDiffers, lookDocument, lookFromDocument, lookPart, looksLikeId, machineIdentityIn, mayNotRestoreLine, measurableFields, memberName, moveRecordValue, newQuestion, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personColumns, personRecordForMember, personWallNow, pickableTypeOf, platformOwned, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionArchive, questionFromDefinition, questionFromWords, questionSave, questionsOf, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowActionFromAgent, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveTableDescription, saveToViewPlan, saveViewPatch, scalarText, seedIsSatisfied, setPersonTimeZone, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, stepFromAgent, storeDecidesRights, storeKeepsLayout, storePublishesKind, styleFromDecorations, submissionStamp, surfaceChosen, tableName, tableNameProblem, tablePickerEntries, tableReferenceChoices, tableRightsAt, themeFromDocument, titleRepeats, unknownRailLine, unknownViewLine, unreadableKeys, useAddressDrill, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useDrillLevelReads, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, usePickerTables, usePlatformTable, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewKeysFor, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, welcomeFromDocument, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition, wordsList };
|
|
6724
|
+
export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarMode, CalendarView, type CalendarViewProps, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, type DrillBase, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_NOT_HERE_LINE, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldRuleKindValue, type FieldTypeChoice, FilePicker, type FilePickerProps, type FilterPageBlock, type FooterPlacement, type FormAsked, FormBuilder, type FormBuilderProps, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, FormResultsPanel, type FormResultsPanelProps, FormRunner, type FormRunnerProps, type FormSubmitOutcome, FormsPanel, type FormsPanelProps, type FormulaHelpAsk, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MatrxDrillDimensionOptions, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PARITY_LABEL, PARITY_MADE_OF, PERSON_KERNEL_TABLE, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, PickOrAdd, type PickOrAddItem, type PickOrAddProps, type PickableFieldType, type PickerTable, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PlatformFieldSpec, type PlatformTableSpec, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalLookEditor, type PortalLookEditorProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, type ProposedChangeAct, ProvenanceBadge, PublicPicturePicker, type PublicPicturePickerProps, PublicViewPage, type PublicViewPageProps, QuestionAnswerView, QuestionPanel, type QuestionPanelProps, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableAccessLevel, TableActionHost, TableAsk, type TableAskProps, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsAgent, type TableSettingsProps, type TableSettingsSnapshot, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UsePlatformTableState, VIEW_ADDRESS_KEYS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewLook, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actionForAgent, actorBadge, actorWords, addDays, announceTableArchived, archiveConfirmSentence, archivedRowLine, askExampleFor, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, descriptionPatch, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillFactWords, drillLevelAsks, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensurePlatformTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, footerOf, formLookView, formatForField, freshFormName, getPersonTimeZone, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, lookDocument, lookFromDocument, looksLikeId, machineIdentityIn, mayNotRestoreLine, memberName, moveRecordValue, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, parityTypesWithNoExplanation, parseGridPresentation, personActor, personColumns, personRecordForMember, personWallNow, pickableTypeOf, platformOwned, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionFromWords, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusalForAPerson, refusalLineForAPerson, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowActionFromAgent, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveTableDescription, saveViewPatch, scalarText, seedIsSatisfied, setPersonTimeZone, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, stepFromAgent, storeDecidesRights, storePublishesKind, styleFromDecorations, surfaceChosen, tableName, tableNameProblem, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, useAddressDrill, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useDrillLevelReads, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, usePickerTables, usePlatformTable, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition };
|