@stonecrop/atable 0.8.1 → 0.8.3

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/atable.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import ACell from './components/ACell.vue';
2
+ import AddIcon from './stonecrop-ui-icon-add.svg?raw';
2
3
  import AExpansionRow from './components/AExpansionRow.vue';
3
4
  import AGanttCell from './components/AGanttCell.vue';
4
5
  import { App } from 'vue';
5
6
  import ARow from './components/ARow.vue';
7
+ import ARowActions from './components/ARowActions.vue';
6
8
  import ATable from './components/ATable.vue';
7
9
  import ATableHeader from './components/ATableHeader.vue';
8
10
  import ATableLoading from './components/ATableLoading.vue';
@@ -10,6 +12,11 @@ import ATableLoadingBar from './components/ATableLoadingBar.vue';
10
12
  import ATableModal from './components/ATableModal.vue';
11
13
  import { ComputedRef } from 'vue';
12
14
  import { CSSProperties } from 'vue';
15
+ import DeleteIcon from './stonecrop-ui-icon-delete.svg?raw';
16
+ import DuplicateIcon from './stonecrop-ui-icon-duplicate.svg?raw';
17
+ import InsertAboveIcon from './stonecrop-ui-icon-insert-above.svg?raw';
18
+ import InsertBelowIcon from './stonecrop-ui-icon-insert-below.svg?raw';
19
+ import MoveIcon from './stonecrop-ui-icon-move.svg?raw';
13
20
  import { Ref } from 'vue';
14
21
  import type { ShallowRef } from 'vue';
15
22
  import { Store } from 'pinia';
@@ -18,12 +25,23 @@ import { WritableComputedRef } from 'vue';
18
25
 
19
26
  export { ACell }
20
27
 
28
+ /**
29
+ * Map of action types to their default icons.
30
+ *
31
+ * @public
32
+ */
33
+ export declare const actionIcons: Record<string, string>;
34
+
35
+ export { AddIcon }
36
+
21
37
  export { AExpansionRow }
22
38
 
23
39
  export { AGanttCell }
24
40
 
25
41
  export { ARow }
26
42
 
43
+ export { ARowActions }
44
+
27
45
  export { ATable }
28
46
 
29
47
  export { ATableHeader }
@@ -45,6 +63,10 @@ export declare interface BaseTableConfig {
45
63
  * @defaultValue false
46
64
  */
47
65
  fullWidth?: boolean;
66
+ /**
67
+ * Configuration for row-level actions (add, delete, duplicate, etc.).
68
+ */
69
+ rowActions?: RowActionsConfig;
48
70
  }
49
71
 
50
72
  /**
@@ -227,35 +249,387 @@ originalIndex?: number | undefined;
227
249
  config: Ref< {
228
250
  view?: "uncounted" | "list" | "list-expansion" | undefined;
229
251
  fullWidth?: boolean | undefined;
252
+ rowActions?: {
253
+ enabled: boolean;
254
+ position?: "before-index" | "after-index" | "end" | undefined;
255
+ dropdownThreshold?: number | undefined;
256
+ forceDropdown?: boolean | undefined;
257
+ actions?: {
258
+ add?: boolean | {
259
+ enabled?: boolean | undefined;
260
+ label?: string | undefined;
261
+ icon?: string | undefined;
262
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
263
+ } | undefined;
264
+ delete?: boolean | {
265
+ enabled?: boolean | undefined;
266
+ label?: string | undefined;
267
+ icon?: string | undefined;
268
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
269
+ } | undefined;
270
+ duplicate?: boolean | {
271
+ enabled?: boolean | undefined;
272
+ label?: string | undefined;
273
+ icon?: string | undefined;
274
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
275
+ } | undefined;
276
+ insertAbove?: boolean | {
277
+ enabled?: boolean | undefined;
278
+ label?: string | undefined;
279
+ icon?: string | undefined;
280
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
281
+ } | undefined;
282
+ insertBelow?: boolean | {
283
+ enabled?: boolean | undefined;
284
+ label?: string | undefined;
285
+ icon?: string | undefined;
286
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
287
+ } | undefined;
288
+ move?: boolean | {
289
+ enabled?: boolean | undefined;
290
+ label?: string | undefined;
291
+ icon?: string | undefined;
292
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
293
+ } | undefined;
294
+ } | undefined;
295
+ } | undefined;
230
296
  } | {
231
297
  view: "tree";
232
298
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
233
299
  fullWidth?: boolean | undefined;
300
+ rowActions?: {
301
+ enabled: boolean;
302
+ position?: "before-index" | "after-index" | "end" | undefined;
303
+ dropdownThreshold?: number | undefined;
304
+ forceDropdown?: boolean | undefined;
305
+ actions?: {
306
+ add?: boolean | {
307
+ enabled?: boolean | undefined;
308
+ label?: string | undefined;
309
+ icon?: string | undefined;
310
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
311
+ } | undefined;
312
+ delete?: boolean | {
313
+ enabled?: boolean | undefined;
314
+ label?: string | undefined;
315
+ icon?: string | undefined;
316
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
317
+ } | undefined;
318
+ duplicate?: boolean | {
319
+ enabled?: boolean | undefined;
320
+ label?: string | undefined;
321
+ icon?: string | undefined;
322
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
323
+ } | undefined;
324
+ insertAbove?: boolean | {
325
+ enabled?: boolean | undefined;
326
+ label?: string | undefined;
327
+ icon?: string | undefined;
328
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
329
+ } | undefined;
330
+ insertBelow?: boolean | {
331
+ enabled?: boolean | undefined;
332
+ label?: string | undefined;
333
+ icon?: string | undefined;
334
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
335
+ } | undefined;
336
+ move?: boolean | {
337
+ enabled?: boolean | undefined;
338
+ label?: string | undefined;
339
+ icon?: string | undefined;
340
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
341
+ } | undefined;
342
+ } | undefined;
343
+ } | undefined;
234
344
  } | {
235
345
  view: "gantt";
236
346
  dependencyGraph?: boolean | undefined;
237
347
  fullWidth?: boolean | undefined;
348
+ rowActions?: {
349
+ enabled: boolean;
350
+ position?: "before-index" | "after-index" | "end" | undefined;
351
+ dropdownThreshold?: number | undefined;
352
+ forceDropdown?: boolean | undefined;
353
+ actions?: {
354
+ add?: boolean | {
355
+ enabled?: boolean | undefined;
356
+ label?: string | undefined;
357
+ icon?: string | undefined;
358
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
359
+ } | undefined;
360
+ delete?: boolean | {
361
+ enabled?: boolean | undefined;
362
+ label?: string | undefined;
363
+ icon?: string | undefined;
364
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
365
+ } | undefined;
366
+ duplicate?: boolean | {
367
+ enabled?: boolean | undefined;
368
+ label?: string | undefined;
369
+ icon?: string | undefined;
370
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
371
+ } | undefined;
372
+ insertAbove?: boolean | {
373
+ enabled?: boolean | undefined;
374
+ label?: string | undefined;
375
+ icon?: string | undefined;
376
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
377
+ } | undefined;
378
+ insertBelow?: boolean | {
379
+ enabled?: boolean | undefined;
380
+ label?: string | undefined;
381
+ icon?: string | undefined;
382
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
383
+ } | undefined;
384
+ move?: boolean | {
385
+ enabled?: boolean | undefined;
386
+ label?: string | undefined;
387
+ icon?: string | undefined;
388
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
389
+ } | undefined;
390
+ } | undefined;
391
+ } | undefined;
238
392
  } | {
239
393
  view: "tree-gantt";
240
394
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
241
395
  dependencyGraph?: boolean | undefined;
242
396
  fullWidth?: boolean | undefined;
397
+ rowActions?: {
398
+ enabled: boolean;
399
+ position?: "before-index" | "after-index" | "end" | undefined;
400
+ dropdownThreshold?: number | undefined;
401
+ forceDropdown?: boolean | undefined;
402
+ actions?: {
403
+ add?: boolean | {
404
+ enabled?: boolean | undefined;
405
+ label?: string | undefined;
406
+ icon?: string | undefined;
407
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
408
+ } | undefined;
409
+ delete?: boolean | {
410
+ enabled?: boolean | undefined;
411
+ label?: string | undefined;
412
+ icon?: string | undefined;
413
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
414
+ } | undefined;
415
+ duplicate?: boolean | {
416
+ enabled?: boolean | undefined;
417
+ label?: string | undefined;
418
+ icon?: string | undefined;
419
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
420
+ } | undefined;
421
+ insertAbove?: boolean | {
422
+ enabled?: boolean | undefined;
423
+ label?: string | undefined;
424
+ icon?: string | undefined;
425
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
426
+ } | undefined;
427
+ insertBelow?: boolean | {
428
+ enabled?: boolean | undefined;
429
+ label?: string | undefined;
430
+ icon?: string | undefined;
431
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
432
+ } | undefined;
433
+ move?: boolean | {
434
+ enabled?: boolean | undefined;
435
+ label?: string | undefined;
436
+ icon?: string | undefined;
437
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
438
+ } | undefined;
439
+ } | undefined;
440
+ } | undefined;
243
441
  }, TableConfig | {
244
442
  view?: "uncounted" | "list" | "list-expansion" | undefined;
245
443
  fullWidth?: boolean | undefined;
444
+ rowActions?: {
445
+ enabled: boolean;
446
+ position?: "before-index" | "after-index" | "end" | undefined;
447
+ dropdownThreshold?: number | undefined;
448
+ forceDropdown?: boolean | undefined;
449
+ actions?: {
450
+ add?: boolean | {
451
+ enabled?: boolean | undefined;
452
+ label?: string | undefined;
453
+ icon?: string | undefined;
454
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
455
+ } | undefined;
456
+ delete?: boolean | {
457
+ enabled?: boolean | undefined;
458
+ label?: string | undefined;
459
+ icon?: string | undefined;
460
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
461
+ } | undefined;
462
+ duplicate?: boolean | {
463
+ enabled?: boolean | undefined;
464
+ label?: string | undefined;
465
+ icon?: string | undefined;
466
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
467
+ } | undefined;
468
+ insertAbove?: boolean | {
469
+ enabled?: boolean | undefined;
470
+ label?: string | undefined;
471
+ icon?: string | undefined;
472
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
473
+ } | undefined;
474
+ insertBelow?: boolean | {
475
+ enabled?: boolean | undefined;
476
+ label?: string | undefined;
477
+ icon?: string | undefined;
478
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
479
+ } | undefined;
480
+ move?: boolean | {
481
+ enabled?: boolean | undefined;
482
+ label?: string | undefined;
483
+ icon?: string | undefined;
484
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
485
+ } | undefined;
486
+ } | undefined;
487
+ } | undefined;
246
488
  } | {
247
489
  view: "tree";
248
490
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
249
491
  fullWidth?: boolean | undefined;
492
+ rowActions?: {
493
+ enabled: boolean;
494
+ position?: "before-index" | "after-index" | "end" | undefined;
495
+ dropdownThreshold?: number | undefined;
496
+ forceDropdown?: boolean | undefined;
497
+ actions?: {
498
+ add?: boolean | {
499
+ enabled?: boolean | undefined;
500
+ label?: string | undefined;
501
+ icon?: string | undefined;
502
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
503
+ } | undefined;
504
+ delete?: boolean | {
505
+ enabled?: boolean | undefined;
506
+ label?: string | undefined;
507
+ icon?: string | undefined;
508
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
509
+ } | undefined;
510
+ duplicate?: boolean | {
511
+ enabled?: boolean | undefined;
512
+ label?: string | undefined;
513
+ icon?: string | undefined;
514
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
515
+ } | undefined;
516
+ insertAbove?: boolean | {
517
+ enabled?: boolean | undefined;
518
+ label?: string | undefined;
519
+ icon?: string | undefined;
520
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
521
+ } | undefined;
522
+ insertBelow?: boolean | {
523
+ enabled?: boolean | undefined;
524
+ label?: string | undefined;
525
+ icon?: string | undefined;
526
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
527
+ } | undefined;
528
+ move?: boolean | {
529
+ enabled?: boolean | undefined;
530
+ label?: string | undefined;
531
+ icon?: string | undefined;
532
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
533
+ } | undefined;
534
+ } | undefined;
535
+ } | undefined;
250
536
  } | {
251
537
  view: "gantt";
252
538
  dependencyGraph?: boolean | undefined;
253
539
  fullWidth?: boolean | undefined;
540
+ rowActions?: {
541
+ enabled: boolean;
542
+ position?: "before-index" | "after-index" | "end" | undefined;
543
+ dropdownThreshold?: number | undefined;
544
+ forceDropdown?: boolean | undefined;
545
+ actions?: {
546
+ add?: boolean | {
547
+ enabled?: boolean | undefined;
548
+ label?: string | undefined;
549
+ icon?: string | undefined;
550
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
551
+ } | undefined;
552
+ delete?: boolean | {
553
+ enabled?: boolean | undefined;
554
+ label?: string | undefined;
555
+ icon?: string | undefined;
556
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
557
+ } | undefined;
558
+ duplicate?: boolean | {
559
+ enabled?: boolean | undefined;
560
+ label?: string | undefined;
561
+ icon?: string | undefined;
562
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
563
+ } | undefined;
564
+ insertAbove?: boolean | {
565
+ enabled?: boolean | undefined;
566
+ label?: string | undefined;
567
+ icon?: string | undefined;
568
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
569
+ } | undefined;
570
+ insertBelow?: boolean | {
571
+ enabled?: boolean | undefined;
572
+ label?: string | undefined;
573
+ icon?: string | undefined;
574
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
575
+ } | undefined;
576
+ move?: boolean | {
577
+ enabled?: boolean | undefined;
578
+ label?: string | undefined;
579
+ icon?: string | undefined;
580
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
581
+ } | undefined;
582
+ } | undefined;
583
+ } | undefined;
254
584
  } | {
255
585
  view: "tree-gantt";
256
586
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
257
587
  dependencyGraph?: boolean | undefined;
258
588
  fullWidth?: boolean | undefined;
589
+ rowActions?: {
590
+ enabled: boolean;
591
+ position?: "before-index" | "after-index" | "end" | undefined;
592
+ dropdownThreshold?: number | undefined;
593
+ forceDropdown?: boolean | undefined;
594
+ actions?: {
595
+ add?: boolean | {
596
+ enabled?: boolean | undefined;
597
+ label?: string | undefined;
598
+ icon?: string | undefined;
599
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
600
+ } | undefined;
601
+ delete?: boolean | {
602
+ enabled?: boolean | undefined;
603
+ label?: string | undefined;
604
+ icon?: string | undefined;
605
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
606
+ } | undefined;
607
+ duplicate?: boolean | {
608
+ enabled?: boolean | undefined;
609
+ label?: string | undefined;
610
+ icon?: string | undefined;
611
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
612
+ } | undefined;
613
+ insertAbove?: boolean | {
614
+ enabled?: boolean | undefined;
615
+ label?: string | undefined;
616
+ icon?: string | undefined;
617
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
618
+ } | undefined;
619
+ insertBelow?: boolean | {
620
+ enabled?: boolean | undefined;
621
+ label?: string | undefined;
622
+ icon?: string | undefined;
623
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
624
+ } | undefined;
625
+ move?: boolean | {
626
+ enabled?: boolean | undefined;
627
+ label?: string | undefined;
628
+ icon?: string | undefined;
629
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
630
+ } | undefined;
631
+ } | undefined;
632
+ } | undefined;
259
633
  }>;
260
634
  connectionHandles: Ref< {
261
635
  id: string;
@@ -413,6 +787,7 @@ isTreeView: ComputedRef<boolean>;
413
787
  isDependencyGraphEnabled: ComputedRef<boolean>;
414
788
  numberedRowWidth: ComputedRef<string>;
415
789
  zeroColumn: ComputedRef<boolean>;
790
+ addRow: (rowData?: Partial<TableRow>, position?: "start" | "end" | number) => number;
416
791
  clearFilter: (colIndex: number) => void;
417
792
  closeModal: (event: MouseEvent) => void;
418
793
  createConnection: (fromHandleId: string, toHandleId: string, options?: {
@@ -420,6 +795,8 @@ style?: ConnectionPath["style"];
420
795
  label?: string;
421
796
  }) => ConnectionPath | null;
422
797
  deleteConnection: (connectionId: string) => boolean;
798
+ deleteRow: (rowIndex: number) => TableRow | null;
799
+ duplicateRow: (rowIndex: number) => number;
423
800
  getCellData: <T = any>(colIndex: number, rowIndex: number) => T;
424
801
  getCellDisplayValue: (colIndex: number, rowIndex: number) => any;
425
802
  getConnectionsForBar: (barId: string) => {
@@ -454,8 +831,11 @@ barId: string;
454
831
  getHeaderCellStyle: (column: TableColumn) => CSSProperties;
455
832
  getIndent: (colIndex: number, indentLevel?: number) => string;
456
833
  getRowExpandSymbol: (rowIndex: number) => "" | "▼" | "►";
834
+ insertRowAbove: (rowIndex: number, rowData?: Partial<TableRow>) => number;
835
+ insertRowBelow: (rowIndex: number, rowData?: Partial<TableRow>) => number;
457
836
  isRowGantt: (rowIndex: number) => boolean;
458
837
  isRowVisible: (rowIndex: number) => boolean | undefined;
838
+ moveRow: (fromIndex: number, toIndex: number) => boolean;
459
839
  registerConnectionHandle: (handleInfo: ConnectionHandle) => void;
460
840
  registerGanttBar: (barInfo: GanttBarInfo) => void;
461
841
  resizeColumn: (colIndex: number, newWidth: number) => void;
@@ -521,35 +901,387 @@ originalIndex?: number | undefined;
521
901
  config: Ref< {
522
902
  view?: "uncounted" | "list" | "list-expansion" | undefined;
523
903
  fullWidth?: boolean | undefined;
904
+ rowActions?: {
905
+ enabled: boolean;
906
+ position?: "before-index" | "after-index" | "end" | undefined;
907
+ dropdownThreshold?: number | undefined;
908
+ forceDropdown?: boolean | undefined;
909
+ actions?: {
910
+ add?: boolean | {
911
+ enabled?: boolean | undefined;
912
+ label?: string | undefined;
913
+ icon?: string | undefined;
914
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
915
+ } | undefined;
916
+ delete?: boolean | {
917
+ enabled?: boolean | undefined;
918
+ label?: string | undefined;
919
+ icon?: string | undefined;
920
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
921
+ } | undefined;
922
+ duplicate?: boolean | {
923
+ enabled?: boolean | undefined;
924
+ label?: string | undefined;
925
+ icon?: string | undefined;
926
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
927
+ } | undefined;
928
+ insertAbove?: boolean | {
929
+ enabled?: boolean | undefined;
930
+ label?: string | undefined;
931
+ icon?: string | undefined;
932
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
933
+ } | undefined;
934
+ insertBelow?: boolean | {
935
+ enabled?: boolean | undefined;
936
+ label?: string | undefined;
937
+ icon?: string | undefined;
938
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
939
+ } | undefined;
940
+ move?: boolean | {
941
+ enabled?: boolean | undefined;
942
+ label?: string | undefined;
943
+ icon?: string | undefined;
944
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
945
+ } | undefined;
946
+ } | undefined;
947
+ } | undefined;
524
948
  } | {
525
949
  view: "tree";
526
950
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
527
951
  fullWidth?: boolean | undefined;
952
+ rowActions?: {
953
+ enabled: boolean;
954
+ position?: "before-index" | "after-index" | "end" | undefined;
955
+ dropdownThreshold?: number | undefined;
956
+ forceDropdown?: boolean | undefined;
957
+ actions?: {
958
+ add?: boolean | {
959
+ enabled?: boolean | undefined;
960
+ label?: string | undefined;
961
+ icon?: string | undefined;
962
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
963
+ } | undefined;
964
+ delete?: boolean | {
965
+ enabled?: boolean | undefined;
966
+ label?: string | undefined;
967
+ icon?: string | undefined;
968
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
969
+ } | undefined;
970
+ duplicate?: boolean | {
971
+ enabled?: boolean | undefined;
972
+ label?: string | undefined;
973
+ icon?: string | undefined;
974
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
975
+ } | undefined;
976
+ insertAbove?: boolean | {
977
+ enabled?: boolean | undefined;
978
+ label?: string | undefined;
979
+ icon?: string | undefined;
980
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
981
+ } | undefined;
982
+ insertBelow?: boolean | {
983
+ enabled?: boolean | undefined;
984
+ label?: string | undefined;
985
+ icon?: string | undefined;
986
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
987
+ } | undefined;
988
+ move?: boolean | {
989
+ enabled?: boolean | undefined;
990
+ label?: string | undefined;
991
+ icon?: string | undefined;
992
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
993
+ } | undefined;
994
+ } | undefined;
995
+ } | undefined;
528
996
  } | {
529
997
  view: "gantt";
530
998
  dependencyGraph?: boolean | undefined;
531
999
  fullWidth?: boolean | undefined;
1000
+ rowActions?: {
1001
+ enabled: boolean;
1002
+ position?: "before-index" | "after-index" | "end" | undefined;
1003
+ dropdownThreshold?: number | undefined;
1004
+ forceDropdown?: boolean | undefined;
1005
+ actions?: {
1006
+ add?: boolean | {
1007
+ enabled?: boolean | undefined;
1008
+ label?: string | undefined;
1009
+ icon?: string | undefined;
1010
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1011
+ } | undefined;
1012
+ delete?: boolean | {
1013
+ enabled?: boolean | undefined;
1014
+ label?: string | undefined;
1015
+ icon?: string | undefined;
1016
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1017
+ } | undefined;
1018
+ duplicate?: boolean | {
1019
+ enabled?: boolean | undefined;
1020
+ label?: string | undefined;
1021
+ icon?: string | undefined;
1022
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1023
+ } | undefined;
1024
+ insertAbove?: boolean | {
1025
+ enabled?: boolean | undefined;
1026
+ label?: string | undefined;
1027
+ icon?: string | undefined;
1028
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1029
+ } | undefined;
1030
+ insertBelow?: boolean | {
1031
+ enabled?: boolean | undefined;
1032
+ label?: string | undefined;
1033
+ icon?: string | undefined;
1034
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1035
+ } | undefined;
1036
+ move?: boolean | {
1037
+ enabled?: boolean | undefined;
1038
+ label?: string | undefined;
1039
+ icon?: string | undefined;
1040
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1041
+ } | undefined;
1042
+ } | undefined;
1043
+ } | undefined;
532
1044
  } | {
533
1045
  view: "tree-gantt";
534
1046
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
535
1047
  dependencyGraph?: boolean | undefined;
536
1048
  fullWidth?: boolean | undefined;
1049
+ rowActions?: {
1050
+ enabled: boolean;
1051
+ position?: "before-index" | "after-index" | "end" | undefined;
1052
+ dropdownThreshold?: number | undefined;
1053
+ forceDropdown?: boolean | undefined;
1054
+ actions?: {
1055
+ add?: boolean | {
1056
+ enabled?: boolean | undefined;
1057
+ label?: string | undefined;
1058
+ icon?: string | undefined;
1059
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1060
+ } | undefined;
1061
+ delete?: boolean | {
1062
+ enabled?: boolean | undefined;
1063
+ label?: string | undefined;
1064
+ icon?: string | undefined;
1065
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1066
+ } | undefined;
1067
+ duplicate?: boolean | {
1068
+ enabled?: boolean | undefined;
1069
+ label?: string | undefined;
1070
+ icon?: string | undefined;
1071
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1072
+ } | undefined;
1073
+ insertAbove?: boolean | {
1074
+ enabled?: boolean | undefined;
1075
+ label?: string | undefined;
1076
+ icon?: string | undefined;
1077
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1078
+ } | undefined;
1079
+ insertBelow?: boolean | {
1080
+ enabled?: boolean | undefined;
1081
+ label?: string | undefined;
1082
+ icon?: string | undefined;
1083
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1084
+ } | undefined;
1085
+ move?: boolean | {
1086
+ enabled?: boolean | undefined;
1087
+ label?: string | undefined;
1088
+ icon?: string | undefined;
1089
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1090
+ } | undefined;
1091
+ } | undefined;
1092
+ } | undefined;
537
1093
  }, TableConfig | {
538
1094
  view?: "uncounted" | "list" | "list-expansion" | undefined;
539
1095
  fullWidth?: boolean | undefined;
1096
+ rowActions?: {
1097
+ enabled: boolean;
1098
+ position?: "before-index" | "after-index" | "end" | undefined;
1099
+ dropdownThreshold?: number | undefined;
1100
+ forceDropdown?: boolean | undefined;
1101
+ actions?: {
1102
+ add?: boolean | {
1103
+ enabled?: boolean | undefined;
1104
+ label?: string | undefined;
1105
+ icon?: string | undefined;
1106
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1107
+ } | undefined;
1108
+ delete?: boolean | {
1109
+ enabled?: boolean | undefined;
1110
+ label?: string | undefined;
1111
+ icon?: string | undefined;
1112
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1113
+ } | undefined;
1114
+ duplicate?: boolean | {
1115
+ enabled?: boolean | undefined;
1116
+ label?: string | undefined;
1117
+ icon?: string | undefined;
1118
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1119
+ } | undefined;
1120
+ insertAbove?: boolean | {
1121
+ enabled?: boolean | undefined;
1122
+ label?: string | undefined;
1123
+ icon?: string | undefined;
1124
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1125
+ } | undefined;
1126
+ insertBelow?: boolean | {
1127
+ enabled?: boolean | undefined;
1128
+ label?: string | undefined;
1129
+ icon?: string | undefined;
1130
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1131
+ } | undefined;
1132
+ move?: boolean | {
1133
+ enabled?: boolean | undefined;
1134
+ label?: string | undefined;
1135
+ icon?: string | undefined;
1136
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1137
+ } | undefined;
1138
+ } | undefined;
1139
+ } | undefined;
540
1140
  } | {
541
1141
  view: "tree";
542
1142
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
543
1143
  fullWidth?: boolean | undefined;
1144
+ rowActions?: {
1145
+ enabled: boolean;
1146
+ position?: "before-index" | "after-index" | "end" | undefined;
1147
+ dropdownThreshold?: number | undefined;
1148
+ forceDropdown?: boolean | undefined;
1149
+ actions?: {
1150
+ add?: boolean | {
1151
+ enabled?: boolean | undefined;
1152
+ label?: string | undefined;
1153
+ icon?: string | undefined;
1154
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1155
+ } | undefined;
1156
+ delete?: boolean | {
1157
+ enabled?: boolean | undefined;
1158
+ label?: string | undefined;
1159
+ icon?: string | undefined;
1160
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1161
+ } | undefined;
1162
+ duplicate?: boolean | {
1163
+ enabled?: boolean | undefined;
1164
+ label?: string | undefined;
1165
+ icon?: string | undefined;
1166
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1167
+ } | undefined;
1168
+ insertAbove?: boolean | {
1169
+ enabled?: boolean | undefined;
1170
+ label?: string | undefined;
1171
+ icon?: string | undefined;
1172
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1173
+ } | undefined;
1174
+ insertBelow?: boolean | {
1175
+ enabled?: boolean | undefined;
1176
+ label?: string | undefined;
1177
+ icon?: string | undefined;
1178
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1179
+ } | undefined;
1180
+ move?: boolean | {
1181
+ enabled?: boolean | undefined;
1182
+ label?: string | undefined;
1183
+ icon?: string | undefined;
1184
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1185
+ } | undefined;
1186
+ } | undefined;
1187
+ } | undefined;
544
1188
  } | {
545
1189
  view: "gantt";
546
1190
  dependencyGraph?: boolean | undefined;
547
1191
  fullWidth?: boolean | undefined;
1192
+ rowActions?: {
1193
+ enabled: boolean;
1194
+ position?: "before-index" | "after-index" | "end" | undefined;
1195
+ dropdownThreshold?: number | undefined;
1196
+ forceDropdown?: boolean | undefined;
1197
+ actions?: {
1198
+ add?: boolean | {
1199
+ enabled?: boolean | undefined;
1200
+ label?: string | undefined;
1201
+ icon?: string | undefined;
1202
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1203
+ } | undefined;
1204
+ delete?: boolean | {
1205
+ enabled?: boolean | undefined;
1206
+ label?: string | undefined;
1207
+ icon?: string | undefined;
1208
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1209
+ } | undefined;
1210
+ duplicate?: boolean | {
1211
+ enabled?: boolean | undefined;
1212
+ label?: string | undefined;
1213
+ icon?: string | undefined;
1214
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1215
+ } | undefined;
1216
+ insertAbove?: boolean | {
1217
+ enabled?: boolean | undefined;
1218
+ label?: string | undefined;
1219
+ icon?: string | undefined;
1220
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1221
+ } | undefined;
1222
+ insertBelow?: boolean | {
1223
+ enabled?: boolean | undefined;
1224
+ label?: string | undefined;
1225
+ icon?: string | undefined;
1226
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1227
+ } | undefined;
1228
+ move?: boolean | {
1229
+ enabled?: boolean | undefined;
1230
+ label?: string | undefined;
1231
+ icon?: string | undefined;
1232
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1233
+ } | undefined;
1234
+ } | undefined;
1235
+ } | undefined;
548
1236
  } | {
549
1237
  view: "tree-gantt";
550
1238
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
551
1239
  dependencyGraph?: boolean | undefined;
552
1240
  fullWidth?: boolean | undefined;
1241
+ rowActions?: {
1242
+ enabled: boolean;
1243
+ position?: "before-index" | "after-index" | "end" | undefined;
1244
+ dropdownThreshold?: number | undefined;
1245
+ forceDropdown?: boolean | undefined;
1246
+ actions?: {
1247
+ add?: boolean | {
1248
+ enabled?: boolean | undefined;
1249
+ label?: string | undefined;
1250
+ icon?: string | undefined;
1251
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1252
+ } | undefined;
1253
+ delete?: boolean | {
1254
+ enabled?: boolean | undefined;
1255
+ label?: string | undefined;
1256
+ icon?: string | undefined;
1257
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1258
+ } | undefined;
1259
+ duplicate?: boolean | {
1260
+ enabled?: boolean | undefined;
1261
+ label?: string | undefined;
1262
+ icon?: string | undefined;
1263
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1264
+ } | undefined;
1265
+ insertAbove?: boolean | {
1266
+ enabled?: boolean | undefined;
1267
+ label?: string | undefined;
1268
+ icon?: string | undefined;
1269
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1270
+ } | undefined;
1271
+ insertBelow?: boolean | {
1272
+ enabled?: boolean | undefined;
1273
+ label?: string | undefined;
1274
+ icon?: string | undefined;
1275
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1276
+ } | undefined;
1277
+ move?: boolean | {
1278
+ enabled?: boolean | undefined;
1279
+ label?: string | undefined;
1280
+ icon?: string | undefined;
1281
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1282
+ } | undefined;
1283
+ } | undefined;
1284
+ } | undefined;
553
1285
  }>;
554
1286
  connectionHandles: Ref< {
555
1287
  id: string;
@@ -707,6 +1439,7 @@ isTreeView: ComputedRef<boolean>;
707
1439
  isDependencyGraphEnabled: ComputedRef<boolean>;
708
1440
  numberedRowWidth: ComputedRef<string>;
709
1441
  zeroColumn: ComputedRef<boolean>;
1442
+ addRow: (rowData?: Partial<TableRow>, position?: "start" | "end" | number) => number;
710
1443
  clearFilter: (colIndex: number) => void;
711
1444
  closeModal: (event: MouseEvent) => void;
712
1445
  createConnection: (fromHandleId: string, toHandleId: string, options?: {
@@ -714,6 +1447,8 @@ style?: ConnectionPath["style"];
714
1447
  label?: string;
715
1448
  }) => ConnectionPath | null;
716
1449
  deleteConnection: (connectionId: string) => boolean;
1450
+ deleteRow: (rowIndex: number) => TableRow | null;
1451
+ duplicateRow: (rowIndex: number) => number;
717
1452
  getCellData: <T = any>(colIndex: number, rowIndex: number) => T;
718
1453
  getCellDisplayValue: (colIndex: number, rowIndex: number) => any;
719
1454
  getConnectionsForBar: (barId: string) => {
@@ -748,8 +1483,11 @@ barId: string;
748
1483
  getHeaderCellStyle: (column: TableColumn) => CSSProperties;
749
1484
  getIndent: (colIndex: number, indentLevel?: number) => string;
750
1485
  getRowExpandSymbol: (rowIndex: number) => "" | "▼" | "►";
1486
+ insertRowAbove: (rowIndex: number, rowData?: Partial<TableRow>) => number;
1487
+ insertRowBelow: (rowIndex: number, rowData?: Partial<TableRow>) => number;
751
1488
  isRowGantt: (rowIndex: number) => boolean;
752
1489
  isRowVisible: (rowIndex: number) => boolean | undefined;
1490
+ moveRow: (fromIndex: number, toIndex: number) => boolean;
753
1491
  registerConnectionHandle: (handleInfo: ConnectionHandle) => void;
754
1492
  registerGanttBar: (barInfo: GanttBarInfo) => void;
755
1493
  resizeColumn: (colIndex: number, newWidth: number) => void;
@@ -815,35 +1553,387 @@ originalIndex?: number | undefined;
815
1553
  config: Ref< {
816
1554
  view?: "uncounted" | "list" | "list-expansion" | undefined;
817
1555
  fullWidth?: boolean | undefined;
1556
+ rowActions?: {
1557
+ enabled: boolean;
1558
+ position?: "before-index" | "after-index" | "end" | undefined;
1559
+ dropdownThreshold?: number | undefined;
1560
+ forceDropdown?: boolean | undefined;
1561
+ actions?: {
1562
+ add?: boolean | {
1563
+ enabled?: boolean | undefined;
1564
+ label?: string | undefined;
1565
+ icon?: string | undefined;
1566
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1567
+ } | undefined;
1568
+ delete?: boolean | {
1569
+ enabled?: boolean | undefined;
1570
+ label?: string | undefined;
1571
+ icon?: string | undefined;
1572
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1573
+ } | undefined;
1574
+ duplicate?: boolean | {
1575
+ enabled?: boolean | undefined;
1576
+ label?: string | undefined;
1577
+ icon?: string | undefined;
1578
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1579
+ } | undefined;
1580
+ insertAbove?: boolean | {
1581
+ enabled?: boolean | undefined;
1582
+ label?: string | undefined;
1583
+ icon?: string | undefined;
1584
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1585
+ } | undefined;
1586
+ insertBelow?: boolean | {
1587
+ enabled?: boolean | undefined;
1588
+ label?: string | undefined;
1589
+ icon?: string | undefined;
1590
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1591
+ } | undefined;
1592
+ move?: boolean | {
1593
+ enabled?: boolean | undefined;
1594
+ label?: string | undefined;
1595
+ icon?: string | undefined;
1596
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1597
+ } | undefined;
1598
+ } | undefined;
1599
+ } | undefined;
818
1600
  } | {
819
1601
  view: "tree";
820
1602
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
821
1603
  fullWidth?: boolean | undefined;
1604
+ rowActions?: {
1605
+ enabled: boolean;
1606
+ position?: "before-index" | "after-index" | "end" | undefined;
1607
+ dropdownThreshold?: number | undefined;
1608
+ forceDropdown?: boolean | undefined;
1609
+ actions?: {
1610
+ add?: boolean | {
1611
+ enabled?: boolean | undefined;
1612
+ label?: string | undefined;
1613
+ icon?: string | undefined;
1614
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1615
+ } | undefined;
1616
+ delete?: boolean | {
1617
+ enabled?: boolean | undefined;
1618
+ label?: string | undefined;
1619
+ icon?: string | undefined;
1620
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1621
+ } | undefined;
1622
+ duplicate?: boolean | {
1623
+ enabled?: boolean | undefined;
1624
+ label?: string | undefined;
1625
+ icon?: string | undefined;
1626
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1627
+ } | undefined;
1628
+ insertAbove?: boolean | {
1629
+ enabled?: boolean | undefined;
1630
+ label?: string | undefined;
1631
+ icon?: string | undefined;
1632
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1633
+ } | undefined;
1634
+ insertBelow?: boolean | {
1635
+ enabled?: boolean | undefined;
1636
+ label?: string | undefined;
1637
+ icon?: string | undefined;
1638
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1639
+ } | undefined;
1640
+ move?: boolean | {
1641
+ enabled?: boolean | undefined;
1642
+ label?: string | undefined;
1643
+ icon?: string | undefined;
1644
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1645
+ } | undefined;
1646
+ } | undefined;
1647
+ } | undefined;
822
1648
  } | {
823
1649
  view: "gantt";
824
1650
  dependencyGraph?: boolean | undefined;
825
1651
  fullWidth?: boolean | undefined;
1652
+ rowActions?: {
1653
+ enabled: boolean;
1654
+ position?: "before-index" | "after-index" | "end" | undefined;
1655
+ dropdownThreshold?: number | undefined;
1656
+ forceDropdown?: boolean | undefined;
1657
+ actions?: {
1658
+ add?: boolean | {
1659
+ enabled?: boolean | undefined;
1660
+ label?: string | undefined;
1661
+ icon?: string | undefined;
1662
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1663
+ } | undefined;
1664
+ delete?: boolean | {
1665
+ enabled?: boolean | undefined;
1666
+ label?: string | undefined;
1667
+ icon?: string | undefined;
1668
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1669
+ } | undefined;
1670
+ duplicate?: boolean | {
1671
+ enabled?: boolean | undefined;
1672
+ label?: string | undefined;
1673
+ icon?: string | undefined;
1674
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1675
+ } | undefined;
1676
+ insertAbove?: boolean | {
1677
+ enabled?: boolean | undefined;
1678
+ label?: string | undefined;
1679
+ icon?: string | undefined;
1680
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1681
+ } | undefined;
1682
+ insertBelow?: boolean | {
1683
+ enabled?: boolean | undefined;
1684
+ label?: string | undefined;
1685
+ icon?: string | undefined;
1686
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1687
+ } | undefined;
1688
+ move?: boolean | {
1689
+ enabled?: boolean | undefined;
1690
+ label?: string | undefined;
1691
+ icon?: string | undefined;
1692
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1693
+ } | undefined;
1694
+ } | undefined;
1695
+ } | undefined;
826
1696
  } | {
827
1697
  view: "tree-gantt";
828
1698
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
829
1699
  dependencyGraph?: boolean | undefined;
830
1700
  fullWidth?: boolean | undefined;
1701
+ rowActions?: {
1702
+ enabled: boolean;
1703
+ position?: "before-index" | "after-index" | "end" | undefined;
1704
+ dropdownThreshold?: number | undefined;
1705
+ forceDropdown?: boolean | undefined;
1706
+ actions?: {
1707
+ add?: boolean | {
1708
+ enabled?: boolean | undefined;
1709
+ label?: string | undefined;
1710
+ icon?: string | undefined;
1711
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1712
+ } | undefined;
1713
+ delete?: boolean | {
1714
+ enabled?: boolean | undefined;
1715
+ label?: string | undefined;
1716
+ icon?: string | undefined;
1717
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1718
+ } | undefined;
1719
+ duplicate?: boolean | {
1720
+ enabled?: boolean | undefined;
1721
+ label?: string | undefined;
1722
+ icon?: string | undefined;
1723
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1724
+ } | undefined;
1725
+ insertAbove?: boolean | {
1726
+ enabled?: boolean | undefined;
1727
+ label?: string | undefined;
1728
+ icon?: string | undefined;
1729
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1730
+ } | undefined;
1731
+ insertBelow?: boolean | {
1732
+ enabled?: boolean | undefined;
1733
+ label?: string | undefined;
1734
+ icon?: string | undefined;
1735
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1736
+ } | undefined;
1737
+ move?: boolean | {
1738
+ enabled?: boolean | undefined;
1739
+ label?: string | undefined;
1740
+ icon?: string | undefined;
1741
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1742
+ } | undefined;
1743
+ } | undefined;
1744
+ } | undefined;
831
1745
  }, TableConfig | {
832
1746
  view?: "uncounted" | "list" | "list-expansion" | undefined;
833
1747
  fullWidth?: boolean | undefined;
1748
+ rowActions?: {
1749
+ enabled: boolean;
1750
+ position?: "before-index" | "after-index" | "end" | undefined;
1751
+ dropdownThreshold?: number | undefined;
1752
+ forceDropdown?: boolean | undefined;
1753
+ actions?: {
1754
+ add?: boolean | {
1755
+ enabled?: boolean | undefined;
1756
+ label?: string | undefined;
1757
+ icon?: string | undefined;
1758
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1759
+ } | undefined;
1760
+ delete?: boolean | {
1761
+ enabled?: boolean | undefined;
1762
+ label?: string | undefined;
1763
+ icon?: string | undefined;
1764
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1765
+ } | undefined;
1766
+ duplicate?: boolean | {
1767
+ enabled?: boolean | undefined;
1768
+ label?: string | undefined;
1769
+ icon?: string | undefined;
1770
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1771
+ } | undefined;
1772
+ insertAbove?: boolean | {
1773
+ enabled?: boolean | undefined;
1774
+ label?: string | undefined;
1775
+ icon?: string | undefined;
1776
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1777
+ } | undefined;
1778
+ insertBelow?: boolean | {
1779
+ enabled?: boolean | undefined;
1780
+ label?: string | undefined;
1781
+ icon?: string | undefined;
1782
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1783
+ } | undefined;
1784
+ move?: boolean | {
1785
+ enabled?: boolean | undefined;
1786
+ label?: string | undefined;
1787
+ icon?: string | undefined;
1788
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1789
+ } | undefined;
1790
+ } | undefined;
1791
+ } | undefined;
834
1792
  } | {
835
1793
  view: "tree";
836
1794
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
837
1795
  fullWidth?: boolean | undefined;
1796
+ rowActions?: {
1797
+ enabled: boolean;
1798
+ position?: "before-index" | "after-index" | "end" | undefined;
1799
+ dropdownThreshold?: number | undefined;
1800
+ forceDropdown?: boolean | undefined;
1801
+ actions?: {
1802
+ add?: boolean | {
1803
+ enabled?: boolean | undefined;
1804
+ label?: string | undefined;
1805
+ icon?: string | undefined;
1806
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1807
+ } | undefined;
1808
+ delete?: boolean | {
1809
+ enabled?: boolean | undefined;
1810
+ label?: string | undefined;
1811
+ icon?: string | undefined;
1812
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1813
+ } | undefined;
1814
+ duplicate?: boolean | {
1815
+ enabled?: boolean | undefined;
1816
+ label?: string | undefined;
1817
+ icon?: string | undefined;
1818
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1819
+ } | undefined;
1820
+ insertAbove?: boolean | {
1821
+ enabled?: boolean | undefined;
1822
+ label?: string | undefined;
1823
+ icon?: string | undefined;
1824
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1825
+ } | undefined;
1826
+ insertBelow?: boolean | {
1827
+ enabled?: boolean | undefined;
1828
+ label?: string | undefined;
1829
+ icon?: string | undefined;
1830
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1831
+ } | undefined;
1832
+ move?: boolean | {
1833
+ enabled?: boolean | undefined;
1834
+ label?: string | undefined;
1835
+ icon?: string | undefined;
1836
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1837
+ } | undefined;
1838
+ } | undefined;
1839
+ } | undefined;
838
1840
  } | {
839
1841
  view: "gantt";
840
1842
  dependencyGraph?: boolean | undefined;
841
1843
  fullWidth?: boolean | undefined;
1844
+ rowActions?: {
1845
+ enabled: boolean;
1846
+ position?: "before-index" | "after-index" | "end" | undefined;
1847
+ dropdownThreshold?: number | undefined;
1848
+ forceDropdown?: boolean | undefined;
1849
+ actions?: {
1850
+ add?: boolean | {
1851
+ enabled?: boolean | undefined;
1852
+ label?: string | undefined;
1853
+ icon?: string | undefined;
1854
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1855
+ } | undefined;
1856
+ delete?: boolean | {
1857
+ enabled?: boolean | undefined;
1858
+ label?: string | undefined;
1859
+ icon?: string | undefined;
1860
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1861
+ } | undefined;
1862
+ duplicate?: boolean | {
1863
+ enabled?: boolean | undefined;
1864
+ label?: string | undefined;
1865
+ icon?: string | undefined;
1866
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1867
+ } | undefined;
1868
+ insertAbove?: boolean | {
1869
+ enabled?: boolean | undefined;
1870
+ label?: string | undefined;
1871
+ icon?: string | undefined;
1872
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1873
+ } | undefined;
1874
+ insertBelow?: boolean | {
1875
+ enabled?: boolean | undefined;
1876
+ label?: string | undefined;
1877
+ icon?: string | undefined;
1878
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1879
+ } | undefined;
1880
+ move?: boolean | {
1881
+ enabled?: boolean | undefined;
1882
+ label?: string | undefined;
1883
+ icon?: string | undefined;
1884
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1885
+ } | undefined;
1886
+ } | undefined;
1887
+ } | undefined;
842
1888
  } | {
843
1889
  view: "tree-gantt";
844
1890
  defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
845
1891
  dependencyGraph?: boolean | undefined;
846
1892
  fullWidth?: boolean | undefined;
1893
+ rowActions?: {
1894
+ enabled: boolean;
1895
+ position?: "before-index" | "after-index" | "end" | undefined;
1896
+ dropdownThreshold?: number | undefined;
1897
+ forceDropdown?: boolean | undefined;
1898
+ actions?: {
1899
+ add?: boolean | {
1900
+ enabled?: boolean | undefined;
1901
+ label?: string | undefined;
1902
+ icon?: string | undefined;
1903
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1904
+ } | undefined;
1905
+ delete?: boolean | {
1906
+ enabled?: boolean | undefined;
1907
+ label?: string | undefined;
1908
+ icon?: string | undefined;
1909
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1910
+ } | undefined;
1911
+ duplicate?: boolean | {
1912
+ enabled?: boolean | undefined;
1913
+ label?: string | undefined;
1914
+ icon?: string | undefined;
1915
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1916
+ } | undefined;
1917
+ insertAbove?: boolean | {
1918
+ enabled?: boolean | undefined;
1919
+ label?: string | undefined;
1920
+ icon?: string | undefined;
1921
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1922
+ } | undefined;
1923
+ insertBelow?: boolean | {
1924
+ enabled?: boolean | undefined;
1925
+ label?: string | undefined;
1926
+ icon?: string | undefined;
1927
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1928
+ } | undefined;
1929
+ move?: boolean | {
1930
+ enabled?: boolean | undefined;
1931
+ label?: string | undefined;
1932
+ icon?: string | undefined;
1933
+ handler?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean) | undefined;
1934
+ } | undefined;
1935
+ } | undefined;
1936
+ } | undefined;
847
1937
  }>;
848
1938
  connectionHandles: Ref< {
849
1939
  id: string;
@@ -1001,6 +2091,7 @@ isTreeView: ComputedRef<boolean>;
1001
2091
  isDependencyGraphEnabled: ComputedRef<boolean>;
1002
2092
  numberedRowWidth: ComputedRef<string>;
1003
2093
  zeroColumn: ComputedRef<boolean>;
2094
+ addRow: (rowData?: Partial<TableRow>, position?: "start" | "end" | number) => number;
1004
2095
  clearFilter: (colIndex: number) => void;
1005
2096
  closeModal: (event: MouseEvent) => void;
1006
2097
  createConnection: (fromHandleId: string, toHandleId: string, options?: {
@@ -1008,6 +2099,8 @@ style?: ConnectionPath["style"];
1008
2099
  label?: string;
1009
2100
  }) => ConnectionPath | null;
1010
2101
  deleteConnection: (connectionId: string) => boolean;
2102
+ deleteRow: (rowIndex: number) => TableRow | null;
2103
+ duplicateRow: (rowIndex: number) => number;
1011
2104
  getCellData: <T = any>(colIndex: number, rowIndex: number) => T;
1012
2105
  getCellDisplayValue: (colIndex: number, rowIndex: number) => any;
1013
2106
  getConnectionsForBar: (barId: string) => {
@@ -1042,8 +2135,11 @@ barId: string;
1042
2135
  getHeaderCellStyle: (column: TableColumn) => CSSProperties;
1043
2136
  getIndent: (colIndex: number, indentLevel?: number) => string;
1044
2137
  getRowExpandSymbol: (rowIndex: number) => "" | "▼" | "►";
2138
+ insertRowAbove: (rowIndex: number, rowData?: Partial<TableRow>) => number;
2139
+ insertRowBelow: (rowIndex: number, rowData?: Partial<TableRow>) => number;
1045
2140
  isRowGantt: (rowIndex: number) => boolean;
1046
2141
  isRowVisible: (rowIndex: number) => boolean | undefined;
2142
+ moveRow: (fromIndex: number, toIndex: number) => boolean;
1047
2143
  registerConnectionHandle: (handleInfo: ConnectionHandle) => void;
1048
2144
  registerGanttBar: (barInfo: GanttBarInfo) => void;
1049
2145
  resizeColumn: (colIndex: number, newWidth: number) => void;
@@ -1056,7 +2152,11 @@ unregisterConnectionHandle: (handleId: string) => void;
1056
2152
  unregisterGanttBar: (barId: string) => void;
1057
2153
  updateGanttBar: (event: GanttDragEvent) => void;
1058
2154
  updateRows: (newRows: TableRow[]) => void;
1059
- }, "clearFilter" | "closeModal" | "createConnection" | "deleteConnection" | "getCellData" | "getCellDisplayValue" | "getConnectionsForBar" | "getFormattedValue" | "getHandlesForBar" | "getHeaderCellStyle" | "getIndent" | "getRowExpandSymbol" | "isRowGantt" | "isRowVisible" | "registerConnectionHandle" | "registerGanttBar" | "resizeColumn" | "setCellData" | "setCellText" | "setFilter" | "sortByColumn" | "toggleRowExpand" | "unregisterConnectionHandle" | "unregisterGanttBar" | "updateGanttBar" | "updateRows">>;
2155
+ }, "addRow" | "clearFilter" | "closeModal" | "createConnection" | "deleteConnection" | "deleteRow" | "duplicateRow" | "getCellData" | "getCellDisplayValue" | "getConnectionsForBar" | "getFormattedValue" | "getHandlesForBar" | "getHeaderCellStyle" | "getIndent" | "getRowExpandSymbol" | "insertRowAbove" | "insertRowBelow" | "isRowGantt" | "isRowVisible" | "moveRow" | "registerConnectionHandle" | "registerGanttBar" | "resizeColumn" | "setCellData" | "setCellText" | "setFilter" | "sortByColumn" | "toggleRowExpand" | "unregisterConnectionHandle" | "unregisterGanttBar" | "updateGanttBar" | "updateRows">>;
2156
+
2157
+ export { DeleteIcon }
2158
+
2159
+ export { DuplicateIcon }
1060
2160
 
1061
2161
  /**
1062
2162
  * Represents the state of a single filter
@@ -1199,6 +2299,10 @@ export declare interface GanttTableConfig extends BaseTableConfig {
1199
2299
  dependencyGraph?: boolean;
1200
2300
  }
1201
2301
 
2302
+ export { InsertAboveIcon }
2303
+
2304
+ export { InsertBelowIcon }
2305
+
1202
2306
  /**
1203
2307
  * Install all ATable components
1204
2308
  * @param app - Vue app instance
@@ -1206,6 +2310,134 @@ export declare interface GanttTableConfig extends BaseTableConfig {
1206
2310
  */
1207
2311
  export declare function install(app: App): void;
1208
2312
 
2313
+ export { MoveIcon }
2314
+
2315
+ /**
2316
+ * Options for configuring individual row actions.
2317
+ * @public
2318
+ */
2319
+ export declare interface RowActionOptions {
2320
+ /**
2321
+ * Whether the action is enabled.
2322
+ *
2323
+ * @defaultValue true
2324
+ */
2325
+ enabled?: boolean;
2326
+ /**
2327
+ * Custom label for the action (used in dropdown mode).
2328
+ */
2329
+ label?: string;
2330
+ /**
2331
+ * Custom icon override (raw SVG string).
2332
+ */
2333
+ icon?: string;
2334
+ /**
2335
+ * Custom handler for the action. Return false to prevent the default behavior.
2336
+ *
2337
+ * @param rowIndex - The index of the row the action is being performed on
2338
+ * @param store - The table store instance
2339
+ * @returns void or false to prevent default behavior
2340
+ */
2341
+ handler?: (rowIndex: number, store: ReturnType<typeof createTableStore>) => void | boolean;
2342
+ }
2343
+
2344
+ /**
2345
+ * Configuration for row-level actions (add, delete, duplicate, etc.).
2346
+ * @public
2347
+ */
2348
+ export declare interface RowActionsConfig {
2349
+ /**
2350
+ * Whether row actions are enabled.
2351
+ *
2352
+ * @defaultValue false
2353
+ */
2354
+ enabled: boolean;
2355
+ /**
2356
+ * Position of the row actions column relative to the index column.
2357
+ *
2358
+ * @defaultValue 'before-index'
2359
+ */
2360
+ position?: 'before-index' | 'after-index' | 'end';
2361
+ /**
2362
+ * Pixel width threshold at which to switch from icons to dropdown mode.
2363
+ * Set to 0 to always use icons, or a large number to always use dropdown.
2364
+ *
2365
+ * @defaultValue 150
2366
+ */
2367
+ dropdownThreshold?: number;
2368
+ /**
2369
+ * Force dropdown mode regardless of available width.
2370
+ *
2371
+ * @defaultValue false
2372
+ */
2373
+ forceDropdown?: boolean;
2374
+ /**
2375
+ * Configuration for individual actions. Set to true to enable with defaults,
2376
+ * false to disable, or provide RowActionOptions for custom configuration.
2377
+ */
2378
+ actions?: {
2379
+ add?: boolean | RowActionOptions;
2380
+ delete?: boolean | RowActionOptions;
2381
+ duplicate?: boolean | RowActionOptions;
2382
+ insertAbove?: boolean | RowActionOptions;
2383
+ insertBelow?: boolean | RowActionOptions;
2384
+ move?: boolean | RowActionOptions;
2385
+ };
2386
+ }
2387
+
2388
+ /**
2389
+ * Row action type identifiers.
2390
+ * @public
2391
+ */
2392
+ export declare type RowActionType = 'add' | 'delete' | 'duplicate' | 'insertAbove' | 'insertBelow' | 'move';
2393
+
2394
+ /**
2395
+ * Event payload for row:add event.
2396
+ * @public
2397
+ */
2398
+ export declare interface RowAddEvent {
2399
+ rowIndex: number;
2400
+ row: TableRow;
2401
+ }
2402
+
2403
+ /**
2404
+ * Event payload for row:delete event.
2405
+ * @public
2406
+ */
2407
+ export declare interface RowDeleteEvent {
2408
+ rowIndex: number;
2409
+ row: TableRow;
2410
+ }
2411
+
2412
+ /**
2413
+ * Event payload for row:duplicate event.
2414
+ * @public
2415
+ */
2416
+ export declare interface RowDuplicateEvent {
2417
+ sourceIndex: number;
2418
+ newIndex: number;
2419
+ row: TableRow;
2420
+ }
2421
+
2422
+ /**
2423
+ * Event payload for row:insert-above and row:insert-below events.
2424
+ * @public
2425
+ */
2426
+ export declare interface RowInsertEvent {
2427
+ targetIndex: number;
2428
+ newIndex: number;
2429
+ row: TableRow;
2430
+ }
2431
+
2432
+ /**
2433
+ * Event payload for row:move event.
2434
+ * @public
2435
+ */
2436
+ export declare interface RowMoveEvent {
2437
+ fromIndex: number;
2438
+ toIndex: number;
2439
+ }
2440
+
1209
2441
  /**
1210
2442
  * Table column definition.
1211
2443
  * @public