@ai-table/grid 0.3.1 → 0.3.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.
@@ -13745,7 +13745,7 @@ class AITableGrid extends AITableGridBase {
13745
13745
  fromEvent(document, 'copy')
13746
13746
  .pipe(takeUntilDestroyed(this.destroyRef))
13747
13747
  .subscribe((event) => {
13748
- if (this.aiReadonly()) {
13748
+ if (this.stopEvent(event)) {
13749
13749
  return;
13750
13750
  }
13751
13751
  const dataTransfer = event.clipboardData;
@@ -13757,7 +13757,7 @@ class AITableGrid extends AITableGridBase {
13757
13757
  fromEvent(document, 'paste')
13758
13758
  .pipe(takeUntilDestroyed(this.destroyRef))
13759
13759
  .subscribe((event) => {
13760
- if (this.aiReadonly()) {
13760
+ if (this.stopEvent(event)) {
13761
13761
  return;
13762
13762
  }
13763
13763
  const dataTransfer = event.clipboardData;
@@ -13765,6 +13765,37 @@ class AITableGrid extends AITableGridBase {
13765
13765
  event.preventDefault();
13766
13766
  });
13767
13767
  }
13768
+ stopEvent(event) {
13769
+ if (this.aiReadonly()) {
13770
+ return true;
13771
+ }
13772
+ const focused = document.activeElement;
13773
+ if (!focused) {
13774
+ return true;
13775
+ }
13776
+ const hasAITableGrid = focused.querySelector('ai-table-grid') !== null;
13777
+ if (!hasAITableGrid) {
13778
+ return true;
13779
+ }
13780
+ const hasSelectedCells = this.aiTable.selection().selectedCells.size > 0;
13781
+ if (!hasSelectedCells) {
13782
+ return true;
13783
+ }
13784
+ const editingCell = this.aiTable.editingCell();
13785
+ if (editingCell && editingCell.path) {
13786
+ return true;
13787
+ }
13788
+ // 检查事件目标是否是输入框或文本区域
13789
+ const target = event.target;
13790
+ if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA') {
13791
+ return true;
13792
+ }
13793
+ const hasContentEditable = target.contentEditable === 'true';
13794
+ if (hasContentEditable) {
13795
+ return true;
13796
+ }
13797
+ return false;
13798
+ }
13768
13799
  updateDragSelectState(isDragging, startCell) {
13769
13800
  this.dragSelectState = {
13770
13801
  isDragging: isDragging,
@@ -13853,32 +13884,7 @@ class AITableGrid extends AITableGridBase {
13853
13884
  fromEvent(document, 'keydown')
13854
13885
  .pipe(takeUntilDestroyed(this.destroyRef))
13855
13886
  .subscribe(async (event) => {
13856
- if (this.aiReadonly()) {
13857
- return;
13858
- }
13859
- const focused = document.activeElement;
13860
- if (!focused) {
13861
- return;
13862
- }
13863
- const hasAITableGrid = focused.querySelector('ai-table-grid') !== null;
13864
- if (!hasAITableGrid) {
13865
- return;
13866
- }
13867
- const hasSelectedCells = this.aiTable.selection().selectedCells.size > 0;
13868
- if (!hasSelectedCells) {
13869
- return;
13870
- }
13871
- const editingCell = this.aiTable.editingCell();
13872
- if (editingCell && editingCell.path) {
13873
- return;
13874
- }
13875
- // 检查事件目标是否是输入框或文本区域
13876
- const target = event.target;
13877
- if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA') {
13878
- return;
13879
- }
13880
- const hasContentEditable = target.contentEditable === 'true';
13881
- if (hasContentEditable) {
13887
+ if (this.stopEvent(event)) {
13882
13888
  return;
13883
13889
  }
13884
13890
  const isDeleteOrBackspace = event.key === 'Backspace' || event.key === 'Delete';