@svgrid/enterprise 3.1.24 → 3.1.25
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/dist/cdn/svgrid-enterprise.svelte-external.js +1 -1
- package/dist/designer/assets/{index-BB1G1RTR.js → index-UhFdGGXv.js} +1 -1
- package/dist/designer/index.html +1 -1
- package/dist/node/studio.js +1 -1
- package/dist/review/model.svelte.d.ts +65 -140
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -64741,7 +64741,7 @@ function g1(e) {
|
|
|
64741
64741
|
}
|
|
64742
64742
|
//#endregion
|
|
64743
64743
|
//#region src/version.ts
|
|
64744
|
-
var _1 = "3.1.
|
|
64744
|
+
var _1 = "3.1.25", v1 = "3.0.22", y1 = (e, t) => e.some((e) => e.config.kind === t), b1 = (e) => `activeTab_${e.replace(/[^a-zA-Z0-9_$]/g, "_")}`, x1 = (e, t) => `${e}-${t}`, S1 = (e) => `accOpen_${e.replace(/[^a-zA-Z0-9_$]/g, "_")}`, C1 = (e, t) => `${e}-s${t}`, w1 = (e) => `md_${e.replace(/[^a-zA-Z0-9]/g, "_")}_rows`;
|
|
64745
64745
|
function T1(e) {
|
|
64746
64746
|
switch (e.type) {
|
|
64747
64747
|
case "number": {
|
|
@@ -76261,7 +76261,7 @@ ${k}
|
|
|
76261
76261
|
.st-home a { color: var(--sg-accent, #6366f1); font-weight: 600; }
|
|
76262
76262
|
@keyframes st-home-spin { to { transform: rotate(360deg); } }
|
|
76263
76263
|
</style>
|
|
76264
|
-
`}}function M1(e){for(let t of e)MG(t);let t=new Map(e.map(e=>[e.name,e])),n=e.map(e=>{let n=c1(e,t);return{schema:l1(e,n),infos:n}});return{entries:n,seed:u1(n)}}function wre(e,t={}){let{entries:n,seed:r}=M1(e),{file:i,needs:a}=O1(n,r,t.sources,t.supabaseConn,t.serverMemory),o=[_re(n),i];(a.supabase||t.supabaseAuth)&&!a.supabaseUrl&&(t.supabaseConn?.url||t.supabaseConn?.key)&&(a.supabaseUrl=t.supabaseConn.url,a.supabaseKey=t.supabaseConn.key),(a.supabase||t.supabaseAuth)&&o.push(k1(a));for(let e of a.sqlRoutes)o.push(y1(e.schema,e.table,e.dialect,{access:t.accessEnabled,audit:t.auditEnabled,screenIds:t.screensByEntity?.get(e.schema.name)??[],triggers:t.triggers?.[e.schema.name],dbSchema:e.dbSchema,tenantField:t.tenantField&&t.tenantScoped?.(e.schema.name)!==!1?t.tenantField:void 0}));if(a.memoryRoutes.length){o.push(x1(a.memoryRoutes));for(let e of a.memoryRoutes)o.push(b1(e.schema,{access:t.accessEnabled,audit:t.auditEnabled,screenIds:t.screensByEntity?.get(e.schema.name)??[],triggers:t.triggers?.[e.schema.name],tenantField:t.tenantField&&t.tenantScoped?.(e.schema.name)!==!1?t.tenantField:void 0}))}return{files:o,prepared:n.map(e=>e.schema)}}var N1=`3.1.
|
|
76264
|
+
`}}function M1(e){for(let t of e)MG(t);let t=new Map(e.map(e=>[e.name,e])),n=e.map(e=>{let n=c1(e,t);return{schema:l1(e,n),infos:n}});return{entries:n,seed:u1(n)}}function wre(e,t={}){let{entries:n,seed:r}=M1(e),{file:i,needs:a}=O1(n,r,t.sources,t.supabaseConn,t.serverMemory),o=[_re(n),i];(a.supabase||t.supabaseAuth)&&!a.supabaseUrl&&(t.supabaseConn?.url||t.supabaseConn?.key)&&(a.supabaseUrl=t.supabaseConn.url,a.supabaseKey=t.supabaseConn.key),(a.supabase||t.supabaseAuth)&&o.push(k1(a));for(let e of a.sqlRoutes)o.push(y1(e.schema,e.table,e.dialect,{access:t.accessEnabled,audit:t.auditEnabled,screenIds:t.screensByEntity?.get(e.schema.name)??[],triggers:t.triggers?.[e.schema.name],dbSchema:e.dbSchema,tenantField:t.tenantField&&t.tenantScoped?.(e.schema.name)!==!1?t.tenantField:void 0}));if(a.memoryRoutes.length){o.push(x1(a.memoryRoutes));for(let e of a.memoryRoutes)o.push(b1(e.schema,{access:t.accessEnabled,audit:t.auditEnabled,screenIds:t.screensByEntity?.get(e.schema.name)??[],triggers:t.triggers?.[e.schema.name],tenantField:t.tenantField&&t.tenantScoped?.(e.schema.name)!==!1?t.tenantField:void 0}))}return{files:o,prepared:n.map(e=>e.schema)}}var N1=`3.1.25`,P1=`3.0.22`,F1=(e,t)=>e.some(e=>e.config.kind===t),I1=e=>`activeTab_${e.replace(/[^a-zA-Z0-9_$]/g,`_`)}`,L1=(e,t)=>`${e}-${t}`,R1=e=>`accOpen_${e.replace(/[^a-zA-Z0-9_$]/g,`_`)}`,z1=(e,t)=>`${e}-s${t}`,B1=e=>`md_${e.replace(/[^a-zA-Z0-9]/g,`_`)}_rows`;function V1(e){switch(e.type){case`number`:{let t=e.decimals;return t==null?`{ type: 'number' }`:`{ type: 'number', options: { minimumFractionDigits: ${t}, maximumFractionDigits: ${t} } }`}case`currency`:return`{ type: 'currency', currency: ${$1(e.currency||`USD`)} }`;case`percent`:{let t=[`type: 'percent'`];return e.valueIsPercentPoints&&t.push(`valueIsPercentPoints: true`),e.decimals!=null&&t.push(`options: { minimumFractionDigits: ${e.decimals}, maximumFractionDigits: ${e.decimals} }`),`{ ${t.join(`, `)} }`}case`date`:case`datetime`:return e.pattern?`{ type: '${e.type}', pattern: ${$1(e.pattern)} }`:`{ type: '${e.type}' }`}}function H1(e,t,n,r){if(t.config.kind!==`grid`)return`schemaToColumns(${e})`;let i=t.config,a=t.id.replace(/-/g,`_`),o=i.columns.filter(e=>e.show),s=new Set(o.map(e=>e.field)),c=new Set,l=o.map(e=>{let t=r?.get(e.field);return{c:e,col:t&&!s.has(t)?t:e.field}}).filter(e=>!c.has(e.col)&&!!c.add(e.col)),u=i.editing===`inline`?``:`, editable: false`;if(l.length===0)return u?`schemaToColumns(${e}).map((c) => ({ ...c${u} }))`:`schemaToColumns(${e})`;let d=l.map(e=>`'${e.col}'`),f=l.map(({c:e,col:t})=>{let r=[];return e.header&&r.push(`header: ${JSON.stringify(e.header)}`),e.width!=null&&r.push(`width: ${e.width}`),e.align&&r.push(`align: '${e.align}'`),e.aggregate&&r.push(`aggregate: '${e.aggregate}'`),i.treeData&&e.field===i.treeData.labelField&&n?r.push(`cell: (ctx: CellContext<${n}>) => renderSnippet(treeCell_${a}, { value: ctx.getValue(), row: ctx.row.original })`):e.cellType&&n?r.push(`cell: (ctx: CellContext<${n}>) => renderSnippet(${d0(a,e.field)}, { value: ctx.getValue() })`):e.format&&r.push(`format: ${V1(e.format)}`),r.length?`'${t}': { ${r.join(`, `)} }`:null}).filter(e=>!!e),p=f.length?` const ov: Record<string, Partial<(typeof all)[number]>> = { ${f.join(`, `)} };`:``,m=f.length?`, ...(ov[String(c.field)] ?? {})`:``,h=`[${d.join(`, `)}].map((f) => all.find((c) => c.field === f)).filter((c): c is (typeof all)[number] => !!c)`;return`(() => { const all = schemaToColumns(${e});${p} return ${u||m?`${h}.map((c) => ({ ...c${u}${m} }))`:h} })()`}function U1(e,t){let n=[`grid-column: span ${uZ(e)}`,`min-width: 0`];t&&n.push(t);let r=fZ(e.style);return r&&n.push(r),`style="${n.join(`; `)}"`}var Tre=e=>e&&e.replace(/[^#a-zA-Z0-9(),.%\s_-]/g,``).slice(0,40)||`var(--sg-accent)`;function W1(e,t){let n=[t,lZ(e)].filter(Boolean).join(` `);return n?` class="${n}"`:``}function G1(e){let t=cZ(e.className);return t?` ${t}`:``}function Ere(e){let t=n$(e);if(t===`grid`){let t=BZ(e),n=t.maxWidth?` max-width: ${t.maxWidth}px; margin-inline: auto;`:``;return` .st-screen { grid-template-columns: repeat(12, 1fr); gap: ${t.rowGap}px ${t.colGap}px; align-items: ${t.align};${n} }\n @media (max-width: ${t.mobileBreakpoint}px) { .st-screen { grid-template-columns: 1fr; gap: 12px; } }\n`}if(t===`stack`){let t=VZ(e),n=t.maxWidth?` max-width: ${t.maxWidth}px;${t.align===`center`?` margin-inline: auto;`:``}`:``,r=t.minHeight?`\n .st-stack > * { min-height: ${t.minHeight}px; }`:``,i=t.dividers?`\n .st-stack > * + * { border-top: 1px solid var(--sg-border, #e2e8f0); padding-top: ${t.gap}px; }`:``;return` .st-stack { gap: ${t.gap}px;${n} }${r}${i}\n`}if(t===`canvas`){let t=WZ(e),n=t.showGrid?`\n .st-canvas { background-image: linear-gradient(var(--sg-border, #e6e8ec) 1px, transparent 1px), linear-gradient(90deg, var(--sg-border, #e6e8ec) 1px, transparent 1px); background-size: calc((100% - ${t.cols-1} * ${t.gap}px) / ${t.cols} + ${t.gap}px) calc(${t.rowHeight}px + ${t.gap}px); }`:``;return` .st-canvas { grid-template-columns: repeat(${t.cols}, 1fr); grid-auto-rows: ${t.rowHeight}px; gap: ${t.gap}px; }${n}\n`}return``}function K1(e,t,n,r,i,a={hasRecord:!1}){let o=(e,t)=>a.i18n?`{$t('block.${t}', ${JSON.stringify(e)})}`:e,s=a.pane?`style="height: 100%; min-width: 0; min-height: 0; display: flex; flex-direction: column;"`:U1(r),c=W1(r),l=r.config,u=a.handleNames?.get(r.id),d=u?`${u}.rows`:`allRows`;switch(l.kind){case`grid`:{let t=r.id.replace(/-/g,`_`),o=`columns_${t}`,u=`No ${(e.label??e.name).toLowerCase()} yet.`,d=Dre(l,t);if(l.scheduler){let t=s1(a.rawEntity??e,i);return` <div ${s}${c}>
|
|
76265
76265
|
${d.decls} <SvGrid
|
|
76266
76266
|
data={allRows}
|
|
76267
76267
|
columns={${o}}
|
package/dist/designer/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>SvGrid Studio - Designer</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-UhFdGGXv.js"></script>
|
|
8
8
|
<link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-Dd_uD5pT.js">
|
|
9
9
|
<link rel="modulepreload" crossorigin href="./assets/disclose-version-CIm4S9xS.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="./assets/cell-formatting-JoxA0t65.js">
|
package/dist/node/studio.js
CHANGED
|
@@ -16506,7 +16506,7 @@ function hasFieldConditions(schema) {
|
|
|
16506
16506
|
*
|
|
16507
16507
|
* `version.test.ts` asserts this matches `package.json`, so the two cannot drift.
|
|
16508
16508
|
*/
|
|
16509
|
-
var SVGRID_VERSION = "3.1.
|
|
16509
|
+
var SVGRID_VERSION = "3.1.25";
|
|
16510
16510
|
/**
|
|
16511
16511
|
* The version of `@svgrid/grid`, which releases on its own line: enterprise is
|
|
16512
16512
|
* on 3.1.x while the grid is on 3.0.x.
|
|
@@ -131,164 +131,89 @@ export type ReviewJSON = {
|
|
|
131
131
|
sets: ChangeSet[];
|
|
132
132
|
};
|
|
133
133
|
/**
|
|
134
|
-
* What `createReview` returns
|
|
134
|
+
* What `createReview` returns: the proposals, their groups, the decisions,
|
|
135
|
+
* and what the grid takes (`columns`, `formats`). Every read is reactive.
|
|
135
136
|
*/
|
|
136
|
-
export
|
|
137
|
-
/**
|
|
138
|
-
* Hold writes nobody typed (an agent's edits, an import, an AI helper's
|
|
139
|
-
* output) as proposals, grouped by the change they make, and write them only
|
|
140
|
-
* when a person accepts them. Give the grid `review.columns(columns)` and
|
|
141
|
-
* `review.formats`, and render `<SvReviewPanel {review} />` beside it. Each
|
|
142
|
-
* decision is one Ctrl+Z in the grid.
|
|
143
|
-
*/
|
|
144
|
-
export declare function createReview<TData = unknown>(opts: ReviewOptions<TData>): {
|
|
137
|
+
export interface Review<TData = unknown> {
|
|
138
|
+
/** Bumped on every change, for code that caches what it reads. */
|
|
145
139
|
readonly version: number;
|
|
146
140
|
/** The wording in effect: English with `messages` laid over it. */
|
|
147
|
-
messages:
|
|
148
|
-
title: string;
|
|
149
|
-
decided: string;
|
|
150
|
-
pendingInGroups: string;
|
|
151
|
-
pendingInOneGroup: string;
|
|
152
|
-
nothingPending: string;
|
|
153
|
-
inConflict: string;
|
|
154
|
-
acceptAll: string;
|
|
155
|
-
rejectAll: string;
|
|
156
|
-
acceptRuleGroups: string;
|
|
157
|
-
resolveFirst: string;
|
|
158
|
-
onlyRowsWithChanges: string;
|
|
159
|
-
confirmAcceptGroup: string;
|
|
160
|
-
confirmRejectGroup: string;
|
|
161
|
-
confirmAcceptAll: string;
|
|
162
|
-
confirmRejectAll: string;
|
|
163
|
-
confirmAcceptRules: string;
|
|
164
|
-
confirmYes: string;
|
|
165
|
-
cancel: string;
|
|
166
|
-
conflictsTitle: string;
|
|
167
|
-
conflictCell: string;
|
|
168
|
-
keep: string;
|
|
169
|
-
badgeRule: string;
|
|
170
|
-
hintRule: string;
|
|
171
|
-
hintMapping: string;
|
|
172
|
-
hintFill: string;
|
|
173
|
-
hintConstant: string;
|
|
174
|
-
hintEach: string;
|
|
175
|
-
oneChange: string;
|
|
176
|
-
changes: string;
|
|
177
|
-
sure: string;
|
|
178
|
-
sureRange: string;
|
|
179
|
-
accept: string;
|
|
180
|
-
reject: string;
|
|
181
|
-
acceptGroupLabel: string;
|
|
182
|
-
rejectGroupLabel: string;
|
|
183
|
-
from: string;
|
|
184
|
-
otherValues: string;
|
|
185
|
-
sampleOf: string;
|
|
186
|
-
everyChange: string;
|
|
187
|
-
firstN: string;
|
|
188
|
-
showRow: string;
|
|
189
|
-
rowId: string;
|
|
190
|
-
acceptOne: string;
|
|
191
|
-
rejectOne: string;
|
|
192
|
-
showAll: string;
|
|
193
|
-
keysHint: string;
|
|
194
|
-
showInGrid: string;
|
|
195
|
-
nextInGrid: string;
|
|
196
|
-
hiddenRows: string;
|
|
197
|
-
allReviewed: string;
|
|
198
|
-
reviewedSummary: string;
|
|
199
|
-
reviewedStale: string;
|
|
200
|
-
noProposals: string;
|
|
201
|
-
noProposalsHint: string;
|
|
202
|
-
notWritten: string;
|
|
203
|
-
rowField: string;
|
|
204
|
-
decidedLabel: string;
|
|
205
|
-
noteCellChanged: string;
|
|
206
|
-
noteRowGone: string;
|
|
207
|
-
noteRowEditing: string;
|
|
208
|
-
noteGridNotReady: string;
|
|
209
|
-
noteSavedStale: string;
|
|
210
|
-
noteConflict: string;
|
|
211
|
-
undoHint: string;
|
|
212
|
-
announceAccepted: string;
|
|
213
|
-
announceRejected: string;
|
|
214
|
-
announceStale: string;
|
|
215
|
-
announceSkipped: string;
|
|
216
|
-
announceCommittedStale: string;
|
|
217
|
-
announceNotSaved: string;
|
|
218
|
-
announceNothing: string;
|
|
219
|
-
undoFailed: string;
|
|
220
|
-
redoFailed: string;
|
|
221
|
-
cardProposed: string;
|
|
222
|
-
proposes: string;
|
|
223
|
-
nowValue: string;
|
|
224
|
-
empty: string;
|
|
225
|
-
labelWhitespace: string;
|
|
226
|
-
labelCase: string;
|
|
227
|
-
caseUpper: string;
|
|
228
|
-
caseLower: string;
|
|
229
|
-
caseTitle: string;
|
|
230
|
-
caseMixed: string;
|
|
231
|
-
labelToNumber: string;
|
|
232
|
-
labelDates: string;
|
|
233
|
-
datesAsDates: string;
|
|
234
|
-
labelShape: string;
|
|
235
|
-
labelPunct: string;
|
|
236
|
-
punctRemove: string;
|
|
237
|
-
punctAdd: string;
|
|
238
|
-
punctSpaces: string;
|
|
239
|
-
labelDivide: string;
|
|
240
|
-
labelMultiply: string;
|
|
241
|
-
labelMapping: string;
|
|
242
|
-
mappingValues: string;
|
|
243
|
-
labelFill: string;
|
|
244
|
-
labelFillVarious: string;
|
|
245
|
-
labelConstant: string;
|
|
246
|
-
labelUnpatterned: string;
|
|
247
|
-
};
|
|
141
|
+
readonly messages: ReviewMessages;
|
|
248
142
|
/** The last undo or redo whose save failed, or null. */
|
|
249
143
|
readonly lastError: {
|
|
250
144
|
error: unknown;
|
|
251
|
-
during:
|
|
145
|
+
during: 'undo' | 'redo';
|
|
252
146
|
at: number;
|
|
253
147
|
} | null;
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
148
|
+
/** Add a change set; a cell that already has a live proposal from another source becomes a conflict. */
|
|
149
|
+
add(input: AddInput): ChangeSet;
|
|
150
|
+
/** One proposal by id. */
|
|
151
|
+
get(id: string): Proposal | undefined;
|
|
152
|
+
/** Every proposal of the session, whatever its status. */
|
|
153
|
+
proposals(): Proposal[];
|
|
154
|
+
/** What names a proposal's row (`rowLabel`), or null. */
|
|
155
|
+
rowLabel(p: Proposal): string | null;
|
|
259
156
|
/** A field's column header, as the group labels show it. */
|
|
260
|
-
fieldLabel
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
157
|
+
fieldLabel(field: string): string;
|
|
158
|
+
/** The proposals waiting for a decision. */
|
|
159
|
+
pending(): Proposal[];
|
|
160
|
+
/** The proposals two sources disagree on, to settle with `resolveConflict`. */
|
|
161
|
+
conflicts(): Proposal[];
|
|
162
|
+
/** The pending proposals grouped by the change they make, the groups that need a person first. */
|
|
163
|
+
groups(): ProposalGroup[];
|
|
164
|
+
/** The pending proposal for one cell, if there is one. */
|
|
165
|
+
pendingFor(rowId: string, field: string): Proposal | undefined;
|
|
166
|
+
/** Write these proposals: checks each cell still holds `before`, before and after `onCommit`. One undo step. */
|
|
167
|
+
accept(ids: ReadonlyArray<string>): Promise<ReviewOutcome>;
|
|
168
|
+
/** Decide against these proposals; nothing is written. One undo step. */
|
|
169
|
+
reject(ids: ReadonlyArray<string>): ReviewOutcome;
|
|
170
|
+
/** Accept a group, limited to the ids the person was shown, so a proposal added since is not decided unseen. */
|
|
171
|
+
acceptGroup(key: string, shownIds: ReadonlyArray<string>): Promise<ReviewOutcome>;
|
|
172
|
+
/** Reject a group, limited to the ids the person was shown. */
|
|
173
|
+
rejectGroup(key: string, shownIds: ReadonlyArray<string>): ReviewOutcome;
|
|
174
|
+
/** Keep one of a cell's conflicting proposals (it becomes pending) and reject the rest, as one undo step. */
|
|
175
|
+
resolveConflict(keepId: string): void;
|
|
176
|
+
/** `conditionalFormats` for the grid: pending cells tinted, conflicting cells marked, the row "Show in grid" lands on lit. */
|
|
270
177
|
readonly formats: ConditionalFormat<any>[];
|
|
271
|
-
columns
|
|
272
|
-
|
|
178
|
+
/** The grid's columns with the proposed value drawn in each pending cell. */
|
|
179
|
+
columns<C extends ReadonlyArray<any>>(cols: C): C;
|
|
180
|
+
/** Show the next proposal of `ids` after `fromId` in the grid, on whatever page it is. */
|
|
181
|
+
reveal(ids: ReadonlyArray<string>, fromId?: string): {
|
|
273
182
|
id: string | null;
|
|
274
183
|
hidden: number;
|
|
275
184
|
};
|
|
276
|
-
|
|
277
|
-
|
|
185
|
+
/** Show only rows with a pending or conflicting proposal, on top of the user's own filters. */
|
|
186
|
+
showPendingOnly(on: boolean): void;
|
|
187
|
+
/** Whether `showPendingOnly` is on (the grid's own Clear turns it off too). */
|
|
278
188
|
readonly pendingOnly: boolean;
|
|
279
|
-
|
|
189
|
+
/** Every set with its proposals and their status, as plain JSON; `setIds` exports only some. */
|
|
190
|
+
toJSON(opts?: {
|
|
280
191
|
setIds?: ReadonlyArray<string>;
|
|
281
|
-
})
|
|
282
|
-
|
|
192
|
+
}): ReviewJSON;
|
|
193
|
+
/** Replace everything with an export; returns how many malformed proposals were dropped. */
|
|
194
|
+
load(json: ReviewJSON): {
|
|
283
195
|
dropped: number;
|
|
284
196
|
};
|
|
285
|
-
|
|
197
|
+
/** Add the sets of an export, keeping what is here; returns how many were dropped. */
|
|
198
|
+
merge(json: ReviewJSON): {
|
|
286
199
|
dropped: number;
|
|
287
200
|
};
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
201
|
+
/** Every decided proposal (accepted, rejected or stale), oldest decision first. */
|
|
202
|
+
log(): Proposal[];
|
|
203
|
+
/** Propose undoing what a set wrote, as a new set to review; null when nothing of it was accepted. */
|
|
204
|
+
revertSet(setId: string): ChangeSet | null;
|
|
205
|
+
/** The sets in this review, newest last, without their proposals. */
|
|
206
|
+
sets(): Array<Omit<ChangeSet, 'proposals'> & {
|
|
291
207
|
count: number;
|
|
292
208
|
}>;
|
|
293
|
-
|
|
294
|
-
|
|
209
|
+
/** Forget every proposal and set. */
|
|
210
|
+
clear(): void;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Hold writes nobody typed (an agent's edits, an import, an AI helper's
|
|
214
|
+
* output) as proposals, grouped by the change they make, and write them only
|
|
215
|
+
* when a person accepts them. Give the grid `review.columns(columns)` and
|
|
216
|
+
* `review.formats`, and render `<SvReviewPanel {review} />` beside it. Each
|
|
217
|
+
* decision is one Ctrl+Z in the grid.
|
|
218
|
+
*/
|
|
219
|
+
export declare function createReview<TData = unknown>(opts: ReviewOptions<TData>): Review<TData>;
|
package/dist/version.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* `version.test.ts` asserts this matches `package.json`, so the two cannot drift.
|
|
12
12
|
*/
|
|
13
|
-
export declare const SVGRID_VERSION = "3.1.
|
|
13
|
+
export declare const SVGRID_VERSION = "3.1.25";
|
|
14
14
|
/**
|
|
15
15
|
* The version of `@svgrid/grid`, which releases on its own line: enterprise is
|
|
16
16
|
* on 3.1.x while the grid is on 3.0.x.
|
package/dist/version.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* `version.test.ts` asserts this matches `package.json`, so the two cannot drift.
|
|
12
12
|
*/
|
|
13
|
-
export const SVGRID_VERSION = '3.1.
|
|
13
|
+
export const SVGRID_VERSION = '3.1.25';
|
|
14
14
|
/**
|
|
15
15
|
* The version of `@svgrid/grid`, which releases on its own line: enterprise is
|
|
16
16
|
* on 3.1.x while the grid is on 3.0.x.
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"type": "commercial",
|
|
5
5
|
"url": "https://svgrid.com/pricing"
|
|
6
6
|
},
|
|
7
|
-
"version": "3.1.
|
|
7
|
+
"version": "3.1.25",
|
|
8
8
|
"description": "Enterprise feature pack for SvGrid: the server-side row model (lazy grouping, tree, pivot, transactions, selection across unloaded rows), Excel (xlsx) and PDF export, Excel/CSV/JSON import, pivot tables with a drag-and-drop designer, paginated print, Kanban board and scheduler renderers, no-code alerts and batch editing. CSV, TSV and JSON export are already free in @svgrid/grid. Requires a paid license key.",
|
|
9
9
|
"license": "SEE LICENSE IN LICENSE",
|
|
10
10
|
"author": "jQWidgets <sales@jqwidgets.com>",
|