r3ui-lib 1.3.12 → 1.3.13

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.
Files changed (53) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/r3ui-lib.css +1 -1
  3. package/dist/r3ui-lib.es.js +14145 -13038
  4. package/dist/r3ui-lib.umd.js +31 -31
  5. package/dist/types/components/tables/EditTableColumns.vue.d.ts +2 -2
  6. package/dist/types/components/tables/ManagedRemoteTable.vue.d.ts +23 -0
  7. package/dist/types/components/tables/ManagedRemoteTable.vue.d.ts.map +1 -0
  8. package/dist/types/components/tables/Table.vue.d.ts +21 -3
  9. package/dist/types/components/tables/Table.vue.d.ts.map +1 -1
  10. package/dist/types/composables/table/createTableLifecycle.d.ts +12 -4
  11. package/dist/types/composables/table/createTableLifecycle.d.ts.map +1 -1
  12. package/dist/types/composables/table/createTableRebuildTransaction.d.ts +1 -1
  13. package/dist/types/composables/table/createTableSession.d.ts +2 -1
  14. package/dist/types/composables/table/createTableSession.d.ts.map +1 -1
  15. package/dist/types/composables/table/createTableState.d.ts +447 -12
  16. package/dist/types/composables/table/createTableState.d.ts.map +1 -1
  17. package/dist/types/composables/table/createTabulatorAdapter.d.ts +16 -1
  18. package/dist/types/composables/table/createTabulatorAdapter.d.ts.map +1 -1
  19. package/dist/types/composables/table/tableQueryTransitions.d.ts +59 -0
  20. package/dist/types/composables/table/tableQueryTransitions.d.ts.map +1 -0
  21. package/dist/types/composables/table/useManagedRemoteTable.d.ts +11 -5
  22. package/dist/types/composables/table/useManagedRemoteTable.d.ts.map +1 -1
  23. package/dist/types/composables/table/useRemoteTable.d.ts +4 -2
  24. package/dist/types/composables/table/useRemoteTable.d.ts.map +1 -1
  25. package/dist/types/composables/table/useTableDefault.d.ts.map +1 -1
  26. package/dist/types/main.d.ts +5 -1
  27. package/dist/types/main.d.ts.map +1 -1
  28. package/dist/types/types/managedRemoteTable.d.ts +29 -0
  29. package/dist/types/types/managedRemoteTable.d.ts.map +1 -0
  30. package/dist/types/types/table.d.ts +2 -1
  31. package/dist/types/types/table.d.ts.map +1 -1
  32. package/dist/types/types/tableInstance.d.ts +2 -1
  33. package/dist/types/types/tableInstance.d.ts.map +1 -1
  34. package/dist/types/utils/auth/sessionController.d.ts +20 -0
  35. package/dist/types/utils/auth/sessionController.d.ts.map +1 -0
  36. package/dist/types/utils/tableAdapter.d.ts +1 -0
  37. package/dist/types/utils/tableAdapter.d.ts.map +1 -1
  38. package/dist/types/utils/tableCancellation.d.ts.map +1 -1
  39. package/dist/types/utils/tableData.d.ts +64 -0
  40. package/dist/types/utils/tableData.d.ts.map +1 -0
  41. package/dist/types/utils/tableLoad.d.ts +1 -1
  42. package/dist/types/utils/tableLoad.d.ts.map +1 -1
  43. package/dist/types/utils/tableProjection.d.ts +35 -0
  44. package/dist/types/utils/tableProjection.d.ts.map +1 -0
  45. package/dist/types/utils/tableQueryParameters.d.ts +11 -0
  46. package/dist/types/utils/tableQueryParameters.d.ts.map +1 -0
  47. package/dist/types/utils/tableSnapshotValue.d.ts +5 -0
  48. package/dist/types/utils/tableSnapshotValue.d.ts.map +1 -0
  49. package/dist/types/utils/tabulatorQueryAdapter.d.ts +4 -0
  50. package/dist/types/utils/tabulatorQueryAdapter.d.ts.map +1 -0
  51. package/dist/types/utils/tabulatorRuntime.d.ts +143 -0
  52. package/dist/types/utils/tabulatorRuntime.d.ts.map +1 -0
  53. package/package.json +1 -1
@@ -1,3 +1,5 @@
1
+ import { type TableQueryState, type TableQueryEvent } from "./tableQueryTransitions";
2
+ import type { TableRequestedData, TableAppliedData } from "../../utils/tableData";
1
3
  export type TableStatus = "idle" | "preparing" | "building" | "awaiting-instance" | "restoring" | "loading" | "columns" | "ready" | "failed" | "disposed";
2
4
  export type TableFailure = {
3
5
  readonly kind: "rebuild" | "restore" | "filters" | "columns";
@@ -8,12 +10,9 @@ type Desired<Context> = {
8
10
  url?: string;
9
11
  context?: Context;
10
12
  };
11
- type State<Snapshot, Context> = {
13
+ type State<Snapshot, Context> = TableQueryState<Context> & {
12
14
  active: boolean;
13
15
  snapshot?: Snapshot;
14
- desired: Desired<Context>;
15
- requestedContext?: Context;
16
- appliedContext?: Context;
17
16
  startedGeneration: number;
18
17
  owner?: object;
19
18
  } & ({
@@ -25,30 +24,254 @@ type State<Snapshot, Context> = {
25
24
  });
26
25
  /** Единый снимок состояния; завершить переход может только его текущий владелец. */
27
26
  export declare function createTableState<Snapshot, Context>(initialContext?: Context): {
27
+ transition: (event: TableQueryEvent<Context>) => {
28
+ state: TableQueryState<Context>;
29
+ restore?: TableAppliedData<Context> | undefined;
30
+ selection?: TableRequestedData<Context> | undefined;
31
+ };
32
+ rebuildPolicy(): {
33
+ mode: string;
34
+ resetContext: boolean;
35
+ resetPage: boolean;
36
+ programmatic: "initial" | "current";
37
+ };
38
+ queryContext(snapshot?: {
39
+ context?: Context;
40
+ }, restoring?: boolean): Context | undefined;
28
41
  state: Readonly<import("vue").Ref<{
29
- readonly active: boolean;
30
- readonly snapshot?: import("vue").DeepReadonly<Snapshot> | undefined;
31
42
  readonly desired: {
32
43
  readonly intent?: "context" | "apply" | undefined;
33
44
  readonly url?: string | undefined;
34
45
  readonly context?: import("vue").DeepReadonly<Context> | undefined;
35
46
  };
47
+ readonly requestedData?: {
48
+ readonly query: {
49
+ readonly url: string;
50
+ readonly params: {
51
+ readonly [x: string]: Readonly<unknown>;
52
+ };
53
+ readonly parameterSources?: {
54
+ readonly configured: {
55
+ readonly [x: string]: Readonly<unknown>;
56
+ };
57
+ readonly dynamic: {
58
+ readonly [x: string]: Readonly<unknown>;
59
+ };
60
+ readonly explicit: {
61
+ readonly [x: string]: Readonly<unknown>;
62
+ };
63
+ } | undefined;
64
+ readonly extraParams: {
65
+ readonly [x: string]: Readonly<unknown>;
66
+ };
67
+ readonly programmaticFilters: any;
68
+ readonly page: number;
69
+ readonly size: number;
70
+ readonly sort: readonly {
71
+ readonly column: string;
72
+ readonly dir: "asc" | "desc";
73
+ }[];
74
+ readonly filters: readonly {
75
+ readonly field: string;
76
+ readonly value: Readonly<unknown>;
77
+ }[];
78
+ };
79
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
80
+ } | undefined;
81
+ readonly appliedData?: {
82
+ readonly query: {
83
+ readonly url: string;
84
+ readonly params: {
85
+ readonly [x: string]: Readonly<unknown>;
86
+ };
87
+ readonly parameterSources?: {
88
+ readonly configured: {
89
+ readonly [x: string]: Readonly<unknown>;
90
+ };
91
+ readonly dynamic: {
92
+ readonly [x: string]: Readonly<unknown>;
93
+ };
94
+ readonly explicit: {
95
+ readonly [x: string]: Readonly<unknown>;
96
+ };
97
+ } | undefined;
98
+ readonly extraParams: {
99
+ readonly [x: string]: Readonly<unknown>;
100
+ };
101
+ readonly programmaticFilters: any;
102
+ readonly page: number;
103
+ readonly size: number;
104
+ readonly sort: readonly {
105
+ readonly column: string;
106
+ readonly dir: "asc" | "desc";
107
+ }[];
108
+ readonly filters: readonly {
109
+ readonly field: string;
110
+ readonly value: Readonly<unknown>;
111
+ }[];
112
+ };
113
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
114
+ readonly rows: readonly Readonly<unknown>[];
115
+ readonly total: number;
116
+ readonly lastPage: number;
117
+ } | undefined;
118
+ readonly currentData?: {
119
+ readonly query: {
120
+ readonly url: string;
121
+ readonly params: {
122
+ readonly [x: string]: Readonly<unknown>;
123
+ };
124
+ readonly parameterSources?: {
125
+ readonly configured: {
126
+ readonly [x: string]: Readonly<unknown>;
127
+ };
128
+ readonly dynamic: {
129
+ readonly [x: string]: Readonly<unknown>;
130
+ };
131
+ readonly explicit: {
132
+ readonly [x: string]: Readonly<unknown>;
133
+ };
134
+ } | undefined;
135
+ readonly extraParams: {
136
+ readonly [x: string]: Readonly<unknown>;
137
+ };
138
+ readonly programmaticFilters: any;
139
+ readonly page: number;
140
+ readonly size: number;
141
+ readonly sort: readonly {
142
+ readonly column: string;
143
+ readonly dir: "asc" | "desc";
144
+ }[];
145
+ readonly filters: readonly {
146
+ readonly field: string;
147
+ readonly value: Readonly<unknown>;
148
+ }[];
149
+ };
150
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
151
+ } | undefined;
36
152
  readonly requestedContext?: import("vue").DeepReadonly<Context> | undefined;
37
153
  readonly appliedContext?: import("vue").DeepReadonly<Context> | undefined;
154
+ readonly active: boolean;
155
+ readonly snapshot?: import("vue").DeepReadonly<Snapshot> | undefined;
38
156
  readonly startedGeneration: number;
39
157
  readonly owner?: object | undefined;
40
158
  readonly status: Exclude<TableStatus, "failed">;
41
159
  readonly failure?: undefined | undefined;
42
160
  } | {
43
- readonly active: boolean;
44
- readonly snapshot?: import("vue").DeepReadonly<Snapshot> | undefined;
45
161
  readonly desired: {
46
162
  readonly intent?: "context" | "apply" | undefined;
47
163
  readonly url?: string | undefined;
48
164
  readonly context?: import("vue").DeepReadonly<Context> | undefined;
49
165
  };
166
+ readonly requestedData?: {
167
+ readonly query: {
168
+ readonly url: string;
169
+ readonly params: {
170
+ readonly [x: string]: Readonly<unknown>;
171
+ };
172
+ readonly parameterSources?: {
173
+ readonly configured: {
174
+ readonly [x: string]: Readonly<unknown>;
175
+ };
176
+ readonly dynamic: {
177
+ readonly [x: string]: Readonly<unknown>;
178
+ };
179
+ readonly explicit: {
180
+ readonly [x: string]: Readonly<unknown>;
181
+ };
182
+ } | undefined;
183
+ readonly extraParams: {
184
+ readonly [x: string]: Readonly<unknown>;
185
+ };
186
+ readonly programmaticFilters: any;
187
+ readonly page: number;
188
+ readonly size: number;
189
+ readonly sort: readonly {
190
+ readonly column: string;
191
+ readonly dir: "asc" | "desc";
192
+ }[];
193
+ readonly filters: readonly {
194
+ readonly field: string;
195
+ readonly value: Readonly<unknown>;
196
+ }[];
197
+ };
198
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
199
+ } | undefined;
200
+ readonly appliedData?: {
201
+ readonly query: {
202
+ readonly url: string;
203
+ readonly params: {
204
+ readonly [x: string]: Readonly<unknown>;
205
+ };
206
+ readonly parameterSources?: {
207
+ readonly configured: {
208
+ readonly [x: string]: Readonly<unknown>;
209
+ };
210
+ readonly dynamic: {
211
+ readonly [x: string]: Readonly<unknown>;
212
+ };
213
+ readonly explicit: {
214
+ readonly [x: string]: Readonly<unknown>;
215
+ };
216
+ } | undefined;
217
+ readonly extraParams: {
218
+ readonly [x: string]: Readonly<unknown>;
219
+ };
220
+ readonly programmaticFilters: any;
221
+ readonly page: number;
222
+ readonly size: number;
223
+ readonly sort: readonly {
224
+ readonly column: string;
225
+ readonly dir: "asc" | "desc";
226
+ }[];
227
+ readonly filters: readonly {
228
+ readonly field: string;
229
+ readonly value: Readonly<unknown>;
230
+ }[];
231
+ };
232
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
233
+ readonly rows: readonly Readonly<unknown>[];
234
+ readonly total: number;
235
+ readonly lastPage: number;
236
+ } | undefined;
237
+ readonly currentData?: {
238
+ readonly query: {
239
+ readonly url: string;
240
+ readonly params: {
241
+ readonly [x: string]: Readonly<unknown>;
242
+ };
243
+ readonly parameterSources?: {
244
+ readonly configured: {
245
+ readonly [x: string]: Readonly<unknown>;
246
+ };
247
+ readonly dynamic: {
248
+ readonly [x: string]: Readonly<unknown>;
249
+ };
250
+ readonly explicit: {
251
+ readonly [x: string]: Readonly<unknown>;
252
+ };
253
+ } | undefined;
254
+ readonly extraParams: {
255
+ readonly [x: string]: Readonly<unknown>;
256
+ };
257
+ readonly programmaticFilters: any;
258
+ readonly page: number;
259
+ readonly size: number;
260
+ readonly sort: readonly {
261
+ readonly column: string;
262
+ readonly dir: "asc" | "desc";
263
+ }[];
264
+ readonly filters: readonly {
265
+ readonly field: string;
266
+ readonly value: Readonly<unknown>;
267
+ }[];
268
+ };
269
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
270
+ } | undefined;
50
271
  readonly requestedContext?: import("vue").DeepReadonly<Context> | undefined;
51
272
  readonly appliedContext?: import("vue").DeepReadonly<Context> | undefined;
273
+ readonly active: boolean;
274
+ readonly snapshot?: import("vue").DeepReadonly<Snapshot> | undefined;
52
275
  readonly startedGeneration: number;
53
276
  readonly owner?: object | undefined;
54
277
  readonly status: "failed";
@@ -57,29 +280,239 @@ export declare function createTableState<Snapshot, Context>(initialContext?: Con
57
280
  readonly cause: Readonly<unknown>;
58
281
  };
59
282
  }, {
60
- readonly active: boolean;
61
- readonly snapshot?: import("vue").DeepReadonly<Snapshot> | undefined;
62
283
  readonly desired: {
63
284
  readonly intent?: "context" | "apply" | undefined;
64
285
  readonly url?: string | undefined;
65
286
  readonly context?: import("vue").DeepReadonly<Context> | undefined;
66
287
  };
288
+ readonly requestedData?: {
289
+ readonly query: {
290
+ readonly url: string;
291
+ readonly params: {
292
+ readonly [x: string]: Readonly<unknown>;
293
+ };
294
+ readonly parameterSources?: {
295
+ readonly configured: {
296
+ readonly [x: string]: Readonly<unknown>;
297
+ };
298
+ readonly dynamic: {
299
+ readonly [x: string]: Readonly<unknown>;
300
+ };
301
+ readonly explicit: {
302
+ readonly [x: string]: Readonly<unknown>;
303
+ };
304
+ } | undefined;
305
+ readonly extraParams: {
306
+ readonly [x: string]: Readonly<unknown>;
307
+ };
308
+ readonly programmaticFilters: any;
309
+ readonly page: number;
310
+ readonly size: number;
311
+ readonly sort: readonly {
312
+ readonly column: string;
313
+ readonly dir: "asc" | "desc";
314
+ }[];
315
+ readonly filters: readonly {
316
+ readonly field: string;
317
+ readonly value: Readonly<unknown>;
318
+ }[];
319
+ };
320
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
321
+ } | undefined;
322
+ readonly appliedData?: {
323
+ readonly query: {
324
+ readonly url: string;
325
+ readonly params: {
326
+ readonly [x: string]: Readonly<unknown>;
327
+ };
328
+ readonly parameterSources?: {
329
+ readonly configured: {
330
+ readonly [x: string]: Readonly<unknown>;
331
+ };
332
+ readonly dynamic: {
333
+ readonly [x: string]: Readonly<unknown>;
334
+ };
335
+ readonly explicit: {
336
+ readonly [x: string]: Readonly<unknown>;
337
+ };
338
+ } | undefined;
339
+ readonly extraParams: {
340
+ readonly [x: string]: Readonly<unknown>;
341
+ };
342
+ readonly programmaticFilters: any;
343
+ readonly page: number;
344
+ readonly size: number;
345
+ readonly sort: readonly {
346
+ readonly column: string;
347
+ readonly dir: "asc" | "desc";
348
+ }[];
349
+ readonly filters: readonly {
350
+ readonly field: string;
351
+ readonly value: Readonly<unknown>;
352
+ }[];
353
+ };
354
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
355
+ readonly rows: readonly Readonly<unknown>[];
356
+ readonly total: number;
357
+ readonly lastPage: number;
358
+ } | undefined;
359
+ readonly currentData?: {
360
+ readonly query: {
361
+ readonly url: string;
362
+ readonly params: {
363
+ readonly [x: string]: Readonly<unknown>;
364
+ };
365
+ readonly parameterSources?: {
366
+ readonly configured: {
367
+ readonly [x: string]: Readonly<unknown>;
368
+ };
369
+ readonly dynamic: {
370
+ readonly [x: string]: Readonly<unknown>;
371
+ };
372
+ readonly explicit: {
373
+ readonly [x: string]: Readonly<unknown>;
374
+ };
375
+ } | undefined;
376
+ readonly extraParams: {
377
+ readonly [x: string]: Readonly<unknown>;
378
+ };
379
+ readonly programmaticFilters: any;
380
+ readonly page: number;
381
+ readonly size: number;
382
+ readonly sort: readonly {
383
+ readonly column: string;
384
+ readonly dir: "asc" | "desc";
385
+ }[];
386
+ readonly filters: readonly {
387
+ readonly field: string;
388
+ readonly value: Readonly<unknown>;
389
+ }[];
390
+ };
391
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
392
+ } | undefined;
67
393
  readonly requestedContext?: import("vue").DeepReadonly<Context> | undefined;
68
394
  readonly appliedContext?: import("vue").DeepReadonly<Context> | undefined;
395
+ readonly active: boolean;
396
+ readonly snapshot?: import("vue").DeepReadonly<Snapshot> | undefined;
69
397
  readonly startedGeneration: number;
70
398
  readonly owner?: object | undefined;
71
399
  readonly status: Exclude<TableStatus, "failed">;
72
400
  readonly failure?: undefined | undefined;
73
401
  } | {
74
- readonly active: boolean;
75
- readonly snapshot?: import("vue").DeepReadonly<Snapshot> | undefined;
76
402
  readonly desired: {
77
403
  readonly intent?: "context" | "apply" | undefined;
78
404
  readonly url?: string | undefined;
79
405
  readonly context?: import("vue").DeepReadonly<Context> | undefined;
80
406
  };
407
+ readonly requestedData?: {
408
+ readonly query: {
409
+ readonly url: string;
410
+ readonly params: {
411
+ readonly [x: string]: Readonly<unknown>;
412
+ };
413
+ readonly parameterSources?: {
414
+ readonly configured: {
415
+ readonly [x: string]: Readonly<unknown>;
416
+ };
417
+ readonly dynamic: {
418
+ readonly [x: string]: Readonly<unknown>;
419
+ };
420
+ readonly explicit: {
421
+ readonly [x: string]: Readonly<unknown>;
422
+ };
423
+ } | undefined;
424
+ readonly extraParams: {
425
+ readonly [x: string]: Readonly<unknown>;
426
+ };
427
+ readonly programmaticFilters: any;
428
+ readonly page: number;
429
+ readonly size: number;
430
+ readonly sort: readonly {
431
+ readonly column: string;
432
+ readonly dir: "asc" | "desc";
433
+ }[];
434
+ readonly filters: readonly {
435
+ readonly field: string;
436
+ readonly value: Readonly<unknown>;
437
+ }[];
438
+ };
439
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
440
+ } | undefined;
441
+ readonly appliedData?: {
442
+ readonly query: {
443
+ readonly url: string;
444
+ readonly params: {
445
+ readonly [x: string]: Readonly<unknown>;
446
+ };
447
+ readonly parameterSources?: {
448
+ readonly configured: {
449
+ readonly [x: string]: Readonly<unknown>;
450
+ };
451
+ readonly dynamic: {
452
+ readonly [x: string]: Readonly<unknown>;
453
+ };
454
+ readonly explicit: {
455
+ readonly [x: string]: Readonly<unknown>;
456
+ };
457
+ } | undefined;
458
+ readonly extraParams: {
459
+ readonly [x: string]: Readonly<unknown>;
460
+ };
461
+ readonly programmaticFilters: any;
462
+ readonly page: number;
463
+ readonly size: number;
464
+ readonly sort: readonly {
465
+ readonly column: string;
466
+ readonly dir: "asc" | "desc";
467
+ }[];
468
+ readonly filters: readonly {
469
+ readonly field: string;
470
+ readonly value: Readonly<unknown>;
471
+ }[];
472
+ };
473
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
474
+ readonly rows: readonly Readonly<unknown>[];
475
+ readonly total: number;
476
+ readonly lastPage: number;
477
+ } | undefined;
478
+ readonly currentData?: {
479
+ readonly query: {
480
+ readonly url: string;
481
+ readonly params: {
482
+ readonly [x: string]: Readonly<unknown>;
483
+ };
484
+ readonly parameterSources?: {
485
+ readonly configured: {
486
+ readonly [x: string]: Readonly<unknown>;
487
+ };
488
+ readonly dynamic: {
489
+ readonly [x: string]: Readonly<unknown>;
490
+ };
491
+ readonly explicit: {
492
+ readonly [x: string]: Readonly<unknown>;
493
+ };
494
+ } | undefined;
495
+ readonly extraParams: {
496
+ readonly [x: string]: Readonly<unknown>;
497
+ };
498
+ readonly programmaticFilters: any;
499
+ readonly page: number;
500
+ readonly size: number;
501
+ readonly sort: readonly {
502
+ readonly column: string;
503
+ readonly dir: "asc" | "desc";
504
+ }[];
505
+ readonly filters: readonly {
506
+ readonly field: string;
507
+ readonly value: Readonly<unknown>;
508
+ }[];
509
+ };
510
+ readonly context?: import("vue").DeepReadonly<Context> | undefined;
511
+ } | undefined;
81
512
  readonly requestedContext?: import("vue").DeepReadonly<Context> | undefined;
82
513
  readonly appliedContext?: import("vue").DeepReadonly<Context> | undefined;
514
+ readonly active: boolean;
515
+ readonly snapshot?: import("vue").DeepReadonly<Snapshot> | undefined;
83
516
  readonly startedGeneration: number;
84
517
  readonly owner?: object | undefined;
85
518
  readonly status: "failed";
@@ -96,6 +529,8 @@ export declare function createTableState<Snapshot, Context>(initialContext?: Con
96
529
  cancelled(owner: object, previousSnapshot: Snapshot | undefined, failure?: TableFailure): void;
97
530
  applied(owner: object, previousSnapshot: Snapshot | undefined, appliedContext: Context | undefined): void;
98
531
  stop(preserveSnapshot: boolean, status?: "idle" | "awaiting-instance"): void;
532
+ requestData(data: TableRequestedData<Context>): void;
533
+ acceptData(data: TableAppliedData<Context>): void;
99
534
  setSnapshot(snapshot: Snapshot | undefined): void;
100
535
  desire(intent: "context" | "apply", url: string, context?: Context): void;
101
536
  setIntent(intent: Desired<Context>["intent"]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"createTableState.d.ts","sourceRoot":"","sources":["../../../../src/composables/table/createTableState.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,WAAW,GACX,UAAU,GACV,mBAAmB,GACnB,WAAW,GACX,SAAS,GACT,SAAS,GACT,OAAO,GACP,QAAQ,GACR,UAAU,CAAC;AACf,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;AACF,KAAK,OAAO,CAAC,OAAO,IAAI;IACtB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,KAAK,KAAK,CAAC,QAAQ,EAAE,OAAO,IAAI;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,CACA;IAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,GAC/D;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAC9C,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO;;yBAblE,OAAO;;;8BALN,SAAS,GAAG,OAAO;2BACtB,MAAM;;;;;oCASO,MAAM;yBACjB,MAAM;yBAEF,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;2BAAY,SAAS;;yBARvD,OAAO;;;8BALN,SAAS,GAAG,OAAO;2BACtB,MAAM;;;;;oCASO,MAAM;yBACjB,MAAM;yBAGF,QAAQ;;2BAlBL,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;;;;yBASpD,OAAO;;;8BALN,SAAS,GAAG,OAAO;2BACtB,MAAM;;;;;oCASO,MAAM;yBACjB,MAAM;yBAEF,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;2BAAY,SAAS;;yBARvD,OAAO;;;8BALN,SAAS,GAAG,OAAO;2BACtB,MAAM;;;;;oCASO,MAAM;yBACjB,MAAM;yBAGF,QAAQ;;2BAlBL,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;;;;;kBAwC5C,OAAO,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;gBAK7C,MAAM,UAAU,OAAO,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;kBAGzD,MAAM,WAAW,OAAO;gBAK7B,MAAM,QACP,YAAY,CAAC,MAAM,CAAC,SACnB,OAAO;qBAaP,MAAM,oBACK,QAAQ,GAAG,SAAS,YAC5B,YAAY;mBAsBf,MAAM,oBACK,QAAQ,GAAG,SAAS,kBACtB,OAAO,GAAG,SAAS;2BAejB,OAAO,WACjB,MAAM,GAAG,mBAAmB;0BAUhB,QAAQ,GAAG,SAAS;mBAG3B,SAAS,GAAG,OAAO,OAAO,MAAM,YAAY,OAAO;sBAGhD,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;0CAGN,OAAO,GAAG,SAAS;sCAGvB,OAAO,GAAG,SAAS;mCAGtB,MAAM;sBAGnB,OAAO;;EAe5B"}
1
+ {"version":3,"file":"createTableState.d.ts","sourceRoot":"","sources":["../../../../src/composables/table/createTableState.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,15 @@
1
+ import type { TableProjection } from "../../utils/tableProjection";
2
+ import type { TableParameterSource } from "../../utils/tableQueryParameters";
3
+ import { type TableAppliedData, type TableDataQuery } from "../../utils/tableData";
1
4
  import type { R3uiTableInstance } from "../../types/tableInstance";
2
5
  import type { TableColumnDefinition } from "../../types/table";
3
6
  import { captureTableSnapshot, type TableSnapshot, type TableRestoreOperation } from "../../utils/tableAdapter";
4
7
  import type { TableOperationGuard } from "../../utils/tableOperation";
5
8
  /** Все обращения контроллера к движку проходят через живую сессию экземпляра. */
6
- export declare function createTabulatorAdapter(instance: R3uiTableInstance, session: TableOperationGuard): {
9
+ export declare function createTabulatorAdapter(instance: R3uiTableInstance, session: TableOperationGuard, projection?: TableProjection): {
10
+ readonly canRestoreQuery: boolean;
7
11
  capture(options: Parameters<typeof captureTableSnapshot>[1]): TableSnapshot;
12
+ parameterSource(fallback?: TableParameterSource): TableParameterSource | undefined;
8
13
  url(fallback: () => string): string;
9
14
  setUrl(url: string, operation: {
10
15
  isCurrent(): boolean;
@@ -12,6 +17,15 @@ export declare function createTabulatorAdapter(instance: R3uiTableInstance, sess
12
17
  setColumns(columns: TableColumnDefinition[], operation: {
13
18
  isCurrent(): boolean;
14
19
  }): void;
20
+ acceptQuery(data: TableAppliedData, operation: {
21
+ isCurrent(): boolean;
22
+ }): void;
23
+ restoreQuery(data: TableAppliedData, operation: {
24
+ isCurrent(): boolean;
25
+ }): void;
26
+ restoreSelection(data: TableAppliedData, operation: {
27
+ isCurrent(): boolean;
28
+ }, restoreQuery?: boolean): void;
15
29
  restoreView(state: Pick<TableSnapshot, "filters" | "sort">, operation: {
16
30
  isCurrent(): boolean;
17
31
  }): void;
@@ -21,6 +35,7 @@ export declare function createTabulatorAdapter(instance: R3uiTableInstance, sess
21
35
  restore(state: {
22
36
  page: number;
23
37
  size: number;
38
+ query?: TableDataQuery;
24
39
  }, url: string, operation: TableRestoreOperation): Promise<"cancelled" | "superseded" | "restored">;
25
40
  load(url: string, size: unknown, operation: TableRestoreOperation): Promise<import("../../utils/tableLoad").TableLoadOutcome>;
26
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createTabulatorAdapter.d.ts","sourceRoot":"","sources":["../../../../src/composables/table/createTabulatorAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EACL,oBAAoB,EAEpB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,iFAAiF;AACjF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,mBAAmB;qBAOT,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;kBAI7C,MAAM,MAAM;gBAMd,MAAM,aAAa;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;wBAK5C,qBAAqB,EAAE,aACrB;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;uBAY5B,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,MAAM,CAAC,aACnC;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;gBAe9B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,aAC5B;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;mBAM5B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,OAChC,MAAM,aACA,qBAAqB;cAKxB,MAAM,QAAQ,OAAO,aAAa,qBAAqB;EAepE"}
1
+ {"version":3,"file":"createTabulatorAdapter.d.ts","sourceRoot":"","sources":["../../../../src/composables/table/createTabulatorAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EASL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EACL,oBAAoB,EAEpB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,iFAAiF;AACjF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,UAAU,CAAC,EAAE,eAAe;;qBAYT,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;+BAIhC,oBAAoB;kBAIjC,MAAM,MAAM;gBASd,MAAM,aAAa;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;wBAK5C,qBAAqB,EAAE,aACrB;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;sBAgBnB,gBAAgB,aAAa;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;uBAIpD,gBAAgB,aAAa;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;2BAKhE,gBAAgB,aACX;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;uBAY5B,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,MAAM,CAAC,aACnC;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;gBAe9B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,aAC5B;QAAE,SAAS,IAAI,OAAO,CAAA;KAAE;mBAM5B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,cAAc,CAAA;KAAE,OACxD,MAAM,aACA,qBAAqB;cAYxB,MAAM,QAAQ,OAAO,aAAa,qBAAqB;EAepE"}
@@ -0,0 +1,59 @@
1
+ import type { TableAppliedData, TableRequestedData } from "../../utils/tableData";
2
+ export interface TableQueryState<Context> {
3
+ desired: {
4
+ intent?: "context" | "apply";
5
+ url?: string;
6
+ context?: Context;
7
+ };
8
+ requestedData?: TableRequestedData<Context>;
9
+ appliedData?: TableAppliedData<Context>;
10
+ currentData?: TableRequestedData<Context>;
11
+ requestedContext?: Context;
12
+ appliedContext?: Context;
13
+ }
14
+ export type TableQueryEvent<Context> = {
15
+ type: "desired";
16
+ intent: "context" | "apply";
17
+ url: string;
18
+ context?: Context;
19
+ } | {
20
+ type: "intent";
21
+ intent?: "context" | "apply";
22
+ } | {
23
+ type: "requested";
24
+ data: TableRequestedData<Context>;
25
+ } | {
26
+ type: "accepted";
27
+ data: TableAppliedData<Context>;
28
+ } | {
29
+ type: "settled";
30
+ outcome: "cancelled" | "failed";
31
+ } | {
32
+ type: "context-applied";
33
+ context?: Context;
34
+ } | {
35
+ type: "context-requested";
36
+ context?: Context;
37
+ } | {
38
+ type: "preserve";
39
+ reason: "locale" | "columns" | "retry";
40
+ } | {
41
+ type: "disposed";
42
+ };
43
+ /** Чистые переходы: рабочая пара меняется целиком, история запроса остаётся для повтора. */
44
+ export declare function transitionTableQuery<Context>(state: TableQueryState<Context>, event: TableQueryEvent<Context>): {
45
+ state: TableQueryState<Context>;
46
+ restore?: TableAppliedData<Context>;
47
+ selection?: TableRequestedData<Context>;
48
+ };
49
+ /** При обычном действии движка рабочий контекст имеет приоритет над снимком неудавшегося запроса. */
50
+ export declare function selectTableQueryContext<Context>(state: TableQueryState<Context>, snapshot?: {
51
+ context?: Context;
52
+ }, restoring?: boolean): Context | undefined;
53
+ export declare function planTableQueryRebuild<Context>(state: TableQueryState<Context>): {
54
+ mode: string;
55
+ resetContext: boolean;
56
+ resetPage: boolean;
57
+ programmatic: "initial" | "current";
58
+ };
59
+ //# sourceMappingURL=tableQueryTransitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableQueryTransitions.d.ts","sourceRoot":"","sources":["../../../../src/composables/table/tableQueryTransitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,eAAe,CAAC,OAAO;IACtC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3E,aAAa,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5C,WAAW,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,eAAe,CAAC,OAAO,IAC/B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,OAAO,EAC1C,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAC/B,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAC9B;IACD,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACzC,CAoEA;AAED,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,OAAO,EAC7C,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAC/B,QAAQ,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAChC,SAAS,UAAQ,GAChB,OAAO,GAAG,SAAS,CAOrB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAC3C,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC;;;;;EAUhC"}