@ai-table/grid 0.1.27 → 0.1.29
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/core/utils/common.d.ts.map +1 -1
- package/fesm2022/ai-table-grid.mjs +636 -85
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid.component.d.ts +1 -1
- package/grid.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/renderer/components/cells/attachment.component.d.ts +2 -2
- package/renderer/components/cells/attachment.component.d.ts.map +1 -1
- package/renderer/components/cells/cells.d.ts +2 -2
- package/renderer/components/cells/cells.d.ts.map +1 -1
- package/renderer/components/cells/cover-cell-base.d.ts +11 -0
- package/renderer/components/cells/cover-cell-base.d.ts.map +1 -0
- package/renderer/components/cells/link.component.d.ts +2 -2
- package/renderer/components/cells/link.component.d.ts.map +1 -1
- package/renderer/components/cells/progress.component.d.ts +2 -2
- package/renderer/components/cells/progress.component.d.ts.map +1 -1
- package/renderer/components/cells/rate.component.d.ts +2 -2
- package/renderer/components/cells/rate.component.d.ts.map +1 -1
- package/renderer/components/cells/rich-text.component.d.ts +2 -2
- package/renderer/components/cells/rich-text.component.d.ts.map +1 -1
- package/renderer/components/cover-cell.component.d.ts +6 -6
- package/renderer/components/cover-cell.component.d.ts.map +1 -1
- package/renderer/components/field-stat/stat.component.d.ts +10 -9
- package/renderer/components/field-stat/stat.component.d.ts.map +1 -1
- package/renderer/components/fill-handle.component.d.ts +1 -2
- package/renderer/components/fill-handle.component.d.ts.map +1 -1
- package/renderer/components/index.d.ts +2 -1
- package/renderer/components/index.d.ts.map +1 -1
- package/renderer/components/scrollable-group/index.d.ts +2 -0
- package/renderer/components/scrollable-group/index.d.ts.map +1 -0
- package/renderer/components/scrollable-group/scrollable-group.component.d.ts +123 -0
- package/renderer/components/scrollable-group/scrollable-group.component.d.ts.map +1 -0
- package/renderer/renderer.component.d.ts +8 -1
- package/renderer/renderer.component.d.ts.map +1 -1
- package/services/event.service.d.ts +1 -0
- package/services/event.service.d.ts.map +1 -1
- package/services/selection.service.d.ts +1 -0
- package/services/selection.service.d.ts.map +1 -1
- package/types/grid.d.ts +3 -2
- package/types/grid.d.ts.map +1 -1
- package/utils/cover-cell.d.ts +1 -1
- package/utils/drag-fill/drag-fill.d.ts.map +1 -1
- package/renderer/components/cells/cover-cell.d.ts +0 -12
- package/renderer/components/cells/cover-cell.d.ts.map +0 -1
@@ -29,7 +29,7 @@ import { AITableFieldGroup, AITableFieldType, AITableRowColumnType, DragType, is
|
|
29
29
|
import ObjectID from 'bson-objectid';
|
30
30
|
import { customAlphabet } from 'nanoid';
|
31
31
|
import * as _ from 'lodash';
|
32
|
-
import ___default, { isNumber, includes, values, isString, isObject } from 'lodash';
|
32
|
+
import ___default, { isNumber, includes, values, isString, isNil, isObject } from 'lodash';
|
33
33
|
import * as i1 from '@angular/forms';
|
34
34
|
import { FormsModule } from '@angular/forms';
|
35
35
|
import { ThyDatePicker, ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';
|
@@ -1354,6 +1354,7 @@ function createAITable(records, fields, gridData) {
|
|
1354
1354
|
selectedCells: new Set(),
|
1355
1355
|
activeCell: null,
|
1356
1356
|
expandCell: null,
|
1357
|
+
editingCell: null,
|
1357
1358
|
selectAllState: AITableSelectAllState.none
|
1358
1359
|
}),
|
1359
1360
|
keywordsMatchedCells: signal(new Set()),
|
@@ -5019,25 +5020,24 @@ class Drawer {
|
|
5019
5020
|
}
|
5020
5021
|
const drawer = new Drawer();
|
5021
5022
|
|
5022
|
-
class
|
5023
|
+
class CoverCellBase {
|
5023
5024
|
constructor() {
|
5024
|
-
super(...arguments);
|
5025
5025
|
this.config = input();
|
5026
5026
|
this.onlyDisplayBorder = input(false);
|
5027
5027
|
}
|
5028
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type:
|
5029
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type:
|
5028
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: CoverCellBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
5029
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: CoverCellBase, isStandalone: true, selector: "ai-table-cover-cell-base", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, onlyDisplayBorder: { classPropertyName: "onlyDisplayBorder", publicName: "onlyDisplayBorder", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
5030
5030
|
}
|
5031
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type:
|
5031
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: CoverCellBase, decorators: [{
|
5032
5032
|
type: Component,
|
5033
5033
|
args: [{
|
5034
|
-
selector: 'ai-table-cover-cell',
|
5034
|
+
selector: 'ai-table-cover-cell-base',
|
5035
5035
|
template: '',
|
5036
5036
|
changeDetection: ChangeDetectionStrategy.OnPush
|
5037
5037
|
}]
|
5038
5038
|
}] });
|
5039
5039
|
|
5040
|
-
class AITableCellLink extends
|
5040
|
+
class AITableCellLink extends CoverCellBase {
|
5041
5041
|
constructor() {
|
5042
5042
|
super(...arguments);
|
5043
5043
|
this.textOffset = AI_TABLE_CELL_PADDING + AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE;
|
@@ -5241,7 +5241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
5241
5241
|
}]
|
5242
5242
|
}] });
|
5243
5243
|
|
5244
|
-
class AITableCellAttachment extends
|
5244
|
+
class AITableCellAttachment extends CoverCellBase {
|
5245
5245
|
constructor() {
|
5246
5246
|
super(...arguments);
|
5247
5247
|
this.attachments = computed(() => {
|
@@ -5340,7 +5340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
5340
5340
|
}]
|
5341
5341
|
}] });
|
5342
5342
|
|
5343
|
-
class AITableCellRichText extends
|
5343
|
+
class AITableCellRichText extends CoverCellBase {
|
5344
5344
|
constructor() {
|
5345
5345
|
super(...arguments);
|
5346
5346
|
this.textConfig = computed(() => {
|
@@ -8315,14 +8315,488 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
8315
8315
|
}]
|
8316
8316
|
}] });
|
8317
8317
|
|
8318
|
-
class
|
8318
|
+
class AITableScrollableGroup {
|
8319
8319
|
constructor() {
|
8320
8320
|
this.config = input.required();
|
8321
|
-
this.
|
8322
|
-
|
8321
|
+
this.contentTemplate = input.required();
|
8322
|
+
this.parentContainer = input();
|
8323
|
+
this.scrollPosition = output();
|
8324
|
+
this.displayScrollbarTime = signal(null);
|
8325
|
+
this.hiddenScrollbar = signal(true);
|
8326
|
+
this.isHoverScrollbar = signal(false);
|
8327
|
+
// 滚动位置信号
|
8328
|
+
this.scrollX = signal(0);
|
8329
|
+
this.scrollY = signal(0);
|
8330
|
+
// 滚动条拖拽状态
|
8331
|
+
this.isDraggingVertical = signal(false);
|
8332
|
+
this.isDraggingHorizontal = signal(false);
|
8333
|
+
// 容器配置
|
8334
|
+
this.containerConfig = computed(() => {
|
8335
|
+
const { x = 0, y = 0, width, height } = this.config();
|
8336
|
+
return {
|
8337
|
+
x,
|
8338
|
+
y,
|
8339
|
+
width,
|
8340
|
+
height,
|
8341
|
+
fill: Colors.black,
|
8342
|
+
listening: true,
|
8343
|
+
clipX: 0,
|
8344
|
+
clipY: 0,
|
8345
|
+
clipWidth: width,
|
8346
|
+
clipHeight: height,
|
8347
|
+
name: 'scrollable-group'
|
8348
|
+
};
|
8323
8349
|
});
|
8324
|
-
this.
|
8325
|
-
|
8350
|
+
this.bgConfig = computed(() => {
|
8351
|
+
const { x = 0, y = 0, width, height } = this.config();
|
8352
|
+
return {
|
8353
|
+
x: 0,
|
8354
|
+
y: 0,
|
8355
|
+
width,
|
8356
|
+
height,
|
8357
|
+
listening: true
|
8358
|
+
};
|
8359
|
+
});
|
8360
|
+
// 内容区域配置
|
8361
|
+
this.contentConfig = computed(() => {
|
8362
|
+
if (this.config().contentNotScrollbar) {
|
8363
|
+
return {
|
8364
|
+
offsetX: 0,
|
8365
|
+
offsetY: 0
|
8366
|
+
};
|
8367
|
+
}
|
8368
|
+
return {
|
8369
|
+
offsetX: this.scrollX(),
|
8370
|
+
offsetY: this.scrollY()
|
8371
|
+
};
|
8372
|
+
});
|
8373
|
+
// 是否显示竖向滚动条
|
8374
|
+
this.showVerticalScrollbar = computed(() => {
|
8375
|
+
const { height, contentHeight, verticalScrollbar } = this.config();
|
8376
|
+
return verticalScrollbar && contentHeight > height;
|
8377
|
+
});
|
8378
|
+
// 是否显示横向滚动条
|
8379
|
+
this.showHorizontalScrollbar = computed(() => {
|
8380
|
+
const { width, contentWidth, horizontalScrollbar } = this.config();
|
8381
|
+
return horizontalScrollbar && contentWidth > width;
|
8382
|
+
});
|
8383
|
+
// 竖向滚动条配置
|
8384
|
+
this.verticalScrollbarConfig = computed(() => {
|
8385
|
+
const { width, scrollbarSize = 12 } = this.config();
|
8386
|
+
return {
|
8387
|
+
x: width - scrollbarSize,
|
8388
|
+
y: 0,
|
8389
|
+
width: scrollbarSize,
|
8390
|
+
height: this.verticalScrollbarHeight()
|
8391
|
+
};
|
8392
|
+
});
|
8393
|
+
// 横向滚动条配置
|
8394
|
+
this.horizontalScrollbarConfig = computed(() => {
|
8395
|
+
const { height, scrollbarSize = 12 } = this.config();
|
8396
|
+
return {
|
8397
|
+
x: 0,
|
8398
|
+
y: height - scrollbarSize,
|
8399
|
+
width: this.horizontalScrollbarHeight(),
|
8400
|
+
height: scrollbarSize
|
8401
|
+
};
|
8402
|
+
});
|
8403
|
+
// 竖向滚动条轨道配置
|
8404
|
+
this.verticalTrackConfig = computed(() => {
|
8405
|
+
const { scrollbarSize = 12, scrollbarTrackColor, height } = this.config();
|
8406
|
+
return {
|
8407
|
+
x: 0,
|
8408
|
+
y: 0,
|
8409
|
+
width: scrollbarSize,
|
8410
|
+
height: height,
|
8411
|
+
fill: scrollbarTrackColor,
|
8412
|
+
cornerRadius: 2
|
8413
|
+
};
|
8414
|
+
});
|
8415
|
+
// 横向滚动条轨道配置
|
8416
|
+
this.horizontalTrackConfig = computed(() => {
|
8417
|
+
const { scrollbarSize = 12, scrollbarTrackColor } = this.config();
|
8418
|
+
return {
|
8419
|
+
x: 0,
|
8420
|
+
y: 0,
|
8421
|
+
width: this.horizontalScrollbarHeight(),
|
8422
|
+
height: scrollbarSize,
|
8423
|
+
fill: scrollbarTrackColor,
|
8424
|
+
cornerRadius: 2
|
8425
|
+
};
|
8426
|
+
});
|
8427
|
+
this.verticalThumbMinY = computed(() => {
|
8428
|
+
const getAbsolutePositionY = this.verticalTrack.getNode().getAbsolutePosition().y;
|
8429
|
+
return getAbsolutePositionY;
|
8430
|
+
});
|
8431
|
+
// 垂直滚动条滑块的最大Y坐标
|
8432
|
+
this.verticalThumbMaxY = computed(() => {
|
8433
|
+
const { height, contentHeight } = this.config();
|
8434
|
+
const getAbsolutePositionY = this.verticalTrack.getNode().getAbsolutePosition().y;
|
8435
|
+
return getAbsolutePositionY + height - this.verticalThumbHeight();
|
8436
|
+
});
|
8437
|
+
// 横向滚动条滑块的最小X坐标
|
8438
|
+
this.horizontalThumbMinX = computed(() => {
|
8439
|
+
const getAbsolutePositionX = this.horizontalTrack.getNode().getAbsolutePosition().x;
|
8440
|
+
return getAbsolutePositionX;
|
8441
|
+
});
|
8442
|
+
// 横向滚动条滑块的最大X坐标
|
8443
|
+
this.horizontalThumbMaxX = computed(() => {
|
8444
|
+
const { width } = this.config();
|
8445
|
+
const getAbsolutePositionX = this.horizontalTrack.getNode().getAbsolutePosition().x;
|
8446
|
+
return getAbsolutePositionX + width - this.horizontalThumbWidth();
|
8447
|
+
});
|
8448
|
+
// 竖向滚动条滑块高度
|
8449
|
+
this.verticalThumbHeight = computed(() => {
|
8450
|
+
const { height, contentHeight } = this.config();
|
8451
|
+
const thumbHeight = Math.max(20, (height / contentHeight) * this.verticalScrollbarHeight());
|
8452
|
+
return thumbHeight;
|
8453
|
+
});
|
8454
|
+
// 横向滚动条滑块宽度
|
8455
|
+
this.horizontalThumbWidth = computed(() => {
|
8456
|
+
const { width, contentWidth } = this.config();
|
8457
|
+
const thumbWidth = Math.max(20, (width / contentWidth) * this.horizontalScrollbarHeight());
|
8458
|
+
return thumbWidth;
|
8459
|
+
});
|
8460
|
+
// 竖向滚动条滑块配置
|
8461
|
+
this.verticalConfig = computed(() => {
|
8462
|
+
if (this.isDraggingVertical()) {
|
8463
|
+
return null;
|
8464
|
+
}
|
8465
|
+
const { scrollbarSize = 12, scrollbarColor = '#c0c0c0' } = this.config();
|
8466
|
+
const { height, contentHeight } = this.config();
|
8467
|
+
const thumbHeight = this.verticalThumbHeight();
|
8468
|
+
const thumbY = (this.scrollY() / (contentHeight - height)) * (this.verticalScrollbarHeight() - thumbHeight);
|
8469
|
+
return {
|
8470
|
+
x: 1,
|
8471
|
+
y: thumbY,
|
8472
|
+
width: scrollbarSize - 2,
|
8473
|
+
height: thumbHeight,
|
8474
|
+
fill: scrollbarColor,
|
8475
|
+
cornerRadius: 6,
|
8476
|
+
draggable: true,
|
8477
|
+
dragBoundFunc: (pos) => {
|
8478
|
+
this.isDraggingVertical.set(true);
|
8479
|
+
this.displayScrollbarTime.set(new Date());
|
8480
|
+
// 限定垂直滚动条的拖拽范围,并更新newScrollY
|
8481
|
+
const maxThumbY = this.verticalThumbMaxY();
|
8482
|
+
const minThumbY = this.verticalThumbMinY();
|
8483
|
+
const newThumbY = Math.max(Math.min(pos.y, maxThumbY), minThumbY);
|
8484
|
+
const deltaY = newThumbY - this.verticalTrack.getNode().getAbsolutePosition().y;
|
8485
|
+
const newScrollY = (deltaY / (this.verticalScrollbarHeight() - this.verticalThumbHeight())) * (contentHeight - height);
|
8486
|
+
this.scrollY.set(newScrollY);
|
8487
|
+
const x = this.verticalTrack.getNode().getAbsolutePosition().x + 1;
|
8488
|
+
setTimeout(() => {
|
8489
|
+
this.isDraggingVertical.set(false);
|
8490
|
+
}, 100);
|
8491
|
+
return {
|
8492
|
+
x: x,
|
8493
|
+
y: newThumbY
|
8494
|
+
};
|
8495
|
+
}
|
8496
|
+
};
|
8497
|
+
});
|
8498
|
+
// 横向滚动条滑块配置
|
8499
|
+
this.horizontalThumbConfig = computed(() => {
|
8500
|
+
if (this.isDraggingHorizontal()) {
|
8501
|
+
return null;
|
8502
|
+
}
|
8503
|
+
const { scrollbarSize = 12, scrollbarColor = '#c0c0c0' } = this.config();
|
8504
|
+
const { width, contentWidth } = this.config();
|
8505
|
+
const thumbWidth = this.horizontalThumbWidth();
|
8506
|
+
const thumbX = (this.scrollX() / (contentWidth - width)) * (this.horizontalScrollbarHeight() - thumbWidth);
|
8507
|
+
return {
|
8508
|
+
x: thumbX,
|
8509
|
+
y: 1,
|
8510
|
+
width: thumbWidth,
|
8511
|
+
height: scrollbarSize - 2,
|
8512
|
+
fill: scrollbarColor,
|
8513
|
+
cornerRadius: 6,
|
8514
|
+
draggable: true,
|
8515
|
+
dragBoundFunc: (pos) => {
|
8516
|
+
this.isDraggingHorizontal.set(true);
|
8517
|
+
this.displayScrollbarTime.set(new Date());
|
8518
|
+
// 限定横向滚动条的拖拽范围,并更新scrollX
|
8519
|
+
const maxThumbX = this.horizontalThumbMaxX();
|
8520
|
+
const minThumbX = this.horizontalThumbMinX();
|
8521
|
+
const newThumbX = Math.max(Math.min(pos.x, maxThumbX), minThumbX);
|
8522
|
+
const deltaX = newThumbX - this.horizontalTrack.getNode().getAbsolutePosition().x;
|
8523
|
+
const newScrollX = (deltaX / (this.horizontalScrollbarHeight() - this.horizontalThumbWidth())) * (contentWidth - width);
|
8524
|
+
this.scrollX.set(newScrollX);
|
8525
|
+
const y = this.horizontalTrack.getNode().getAbsolutePosition().y + 1;
|
8526
|
+
setTimeout(() => {
|
8527
|
+
this.isDraggingHorizontal.set(false);
|
8528
|
+
}, 100);
|
8529
|
+
return {
|
8530
|
+
x: newThumbX,
|
8531
|
+
y: y
|
8532
|
+
};
|
8533
|
+
}
|
8534
|
+
};
|
8535
|
+
});
|
8536
|
+
// 横向滚动条滑块配置
|
8537
|
+
this.verticalScrollbarHeight = computed(() => {
|
8538
|
+
const { height } = this.config();
|
8539
|
+
return height;
|
8540
|
+
});
|
8541
|
+
// 获取横向滚动条宽度
|
8542
|
+
this.horizontalScrollbarHeight = computed(() => {
|
8543
|
+
const { width } = this.config();
|
8544
|
+
return width;
|
8545
|
+
});
|
8546
|
+
// 滚动条延迟隐藏
|
8547
|
+
effect(() => {
|
8548
|
+
const displayScrollbarTime = this.displayScrollbarTime();
|
8549
|
+
if (displayScrollbarTime) {
|
8550
|
+
this.hiddenScrollbar.set(false);
|
8551
|
+
clearTimeout(this.hiddenScrollbarTimer);
|
8552
|
+
this.hiddenScrollbarTimer = setTimeout(() => {
|
8553
|
+
this.hiddenScrollbar.set(true);
|
8554
|
+
}, 1000);
|
8555
|
+
}
|
8556
|
+
});
|
8557
|
+
effect(() => {
|
8558
|
+
const scrollX = this.scrollX();
|
8559
|
+
const scrollY = this.scrollY();
|
8560
|
+
this.scrollPosition.emit({ scrollX, scrollY });
|
8561
|
+
});
|
8562
|
+
}
|
8563
|
+
ngAfterViewInit() {
|
8564
|
+
this.contentTemplate().getNode().moveTo(this.contentGroup.getNode());
|
8565
|
+
if (this.parentContainer() && this.rootGroup) {
|
8566
|
+
this.rootGroup.getNode().moveTo(this.parentContainer().getNode());
|
8567
|
+
}
|
8568
|
+
}
|
8569
|
+
stopBubble(e) {
|
8570
|
+
e.event.cancelBubble = true;
|
8571
|
+
}
|
8572
|
+
verticalScrollbarClick(e) {
|
8573
|
+
e.event.cancelBubble = true;
|
8574
|
+
const { contentHeight, height } = this.config();
|
8575
|
+
const y = e.event.evt.offsetY - this.verticalThumbHeight() / 2;
|
8576
|
+
const maxThumbY = this.verticalThumbMaxY();
|
8577
|
+
const minThumbY = this.verticalThumbMinY();
|
8578
|
+
const newThumbY = Math.max(Math.min(y, maxThumbY), minThumbY);
|
8579
|
+
const deltaY = newThumbY - this.verticalTrack.getNode().getAbsolutePosition().y;
|
8580
|
+
const newScrollY = (deltaY / (this.verticalScrollbarHeight() - this.verticalThumbHeight())) * (contentHeight - height);
|
8581
|
+
this.scrollY.set(newScrollY);
|
8582
|
+
}
|
8583
|
+
horizontalScrollbarClick(e) {
|
8584
|
+
e.event.cancelBubble = true;
|
8585
|
+
const { contentWidth, width } = this.config();
|
8586
|
+
const x = e.event.evt.offsetX - this.horizontalThumbWidth() / 2;
|
8587
|
+
const maxThumbX = this.horizontalThumbMaxX();
|
8588
|
+
const minThumbX = this.horizontalThumbMinX();
|
8589
|
+
const newThumbX = Math.max(Math.min(x, maxThumbX), minThumbX);
|
8590
|
+
const deltaX = newThumbX - this.horizontalTrack.getNode().getAbsolutePosition().x;
|
8591
|
+
const newScrollX = (deltaX / (this.horizontalScrollbarHeight() - this.horizontalThumbWidth())) * (contentWidth - width);
|
8592
|
+
this.scrollX.set(newScrollX);
|
8593
|
+
}
|
8594
|
+
setHoverScrollbarStatus(isHover) {
|
8595
|
+
this.isHoverScrollbar.set(isHover);
|
8596
|
+
this.displayScrollbarTime.set(new Date());
|
8597
|
+
}
|
8598
|
+
stageWheel(e) {
|
8599
|
+
if (!this.showVerticalScrollbar() && !this.showHorizontalScrollbar()) {
|
8600
|
+
return;
|
8601
|
+
}
|
8602
|
+
this.displayScrollbarTime.set(new Date());
|
8603
|
+
e.event.cancelBubble = true;
|
8604
|
+
this.scrollByDelta({ deltaX: e.event.evt.deltaX, deltaY: e.event.evt.deltaY });
|
8605
|
+
}
|
8606
|
+
scrollByDelta(delta) {
|
8607
|
+
const { deltaX = 0, deltaY = 0 } = delta;
|
8608
|
+
const { contentWidth, contentHeight, width, height, horizontalScrollbar, verticalScrollbar } = this.config();
|
8609
|
+
if (horizontalScrollbar && deltaX > 0 && contentWidth - width > this.scrollX()) {
|
8610
|
+
const newScrollX = Math.min(this.scrollX() + deltaX, contentWidth - width);
|
8611
|
+
if (newScrollX !== this.scrollX()) {
|
8612
|
+
this.scrollX.set(newScrollX);
|
8613
|
+
}
|
8614
|
+
}
|
8615
|
+
if (horizontalScrollbar && deltaX < 0 && this.scrollX() > 0) {
|
8616
|
+
const newScrollX = Math.max(0, this.scrollX() + deltaX);
|
8617
|
+
if (newScrollX !== this.scrollX()) {
|
8618
|
+
this.scrollX.set(newScrollX);
|
8619
|
+
}
|
8620
|
+
}
|
8621
|
+
if (verticalScrollbar && deltaY > 0 && contentHeight - height > this.scrollY()) {
|
8622
|
+
const newScrollY = Math.min(this.scrollY() + deltaY, contentHeight - height);
|
8623
|
+
if (newScrollY !== this.scrollY()) {
|
8624
|
+
this.scrollY.set(newScrollY);
|
8625
|
+
}
|
8626
|
+
}
|
8627
|
+
if (verticalScrollbar && deltaY < 0 && this.scrollY() > 0) {
|
8628
|
+
const newScrollY = Math.max(0, this.scrollY() + deltaY);
|
8629
|
+
if (newScrollY !== this.scrollY()) {
|
8630
|
+
this.scrollY.set(newScrollY);
|
8631
|
+
}
|
8632
|
+
}
|
8633
|
+
}
|
8634
|
+
// 滚动到指定位置
|
8635
|
+
scrollTo(x, y) {
|
8636
|
+
const { width, height, contentWidth, contentHeight } = this.config();
|
8637
|
+
this.scrollX.set(Math.max(0, Math.min(contentWidth - width, x)));
|
8638
|
+
this.scrollY.set(Math.max(0, Math.min(contentHeight - height, y)));
|
8639
|
+
}
|
8640
|
+
// 滚动到顶部
|
8641
|
+
scrollToTop() {
|
8642
|
+
this.scrollY.set(0);
|
8643
|
+
}
|
8644
|
+
// 滚动到底部
|
8645
|
+
scrollToBottom() {
|
8646
|
+
const { height, contentHeight } = this.config();
|
8647
|
+
this.scrollY.set(Math.max(0, contentHeight - height));
|
8648
|
+
}
|
8649
|
+
// 滚动到左侧
|
8650
|
+
scrollToLeft() {
|
8651
|
+
this.scrollX.set(0);
|
8652
|
+
}
|
8653
|
+
// 滚动到右侧
|
8654
|
+
scrollToRight() {
|
8655
|
+
const { width, contentWidth } = this.config();
|
8656
|
+
this.scrollX.set(Math.max(0, contentWidth - width));
|
8657
|
+
}
|
8658
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableScrollableGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
8659
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableScrollableGroup, isStandalone: true, selector: "ai-table-scrollable-group", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: true, isRequired: true, transformFunction: null }, parentContainer: { classPropertyName: "parentContainer", publicName: "parentContainer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scrollPosition: "scrollPosition" }, viewQueries: [{ propertyName: "verticalTrack", first: true, predicate: ["verticalTrack"], descendants: true }, { propertyName: "verticalThumb", first: true, predicate: ["verticalThumb"], descendants: true }, { propertyName: "horizontalTrack", first: true, predicate: ["horizontalTrack"], descendants: true }, { propertyName: "contentGroup", first: true, predicate: ["contentGroup"], descendants: true }, { propertyName: "rootGroup", first: true, predicate: ["rootGroup"], descendants: true }], ngImport: i0, template: `
|
8660
|
+
<ko-group
|
8661
|
+
#rootGroup
|
8662
|
+
[config]="containerConfig()"
|
8663
|
+
(koWheel)="stageWheel($event)"
|
8664
|
+
(koMousedown)="stopBubble($event)"
|
8665
|
+
(koMouseup)="stopBubble($event)"
|
8666
|
+
>
|
8667
|
+
<ko-group>
|
8668
|
+
<ko-rect [config]="bgConfig()"></ko-rect>
|
8669
|
+
</ko-group>
|
8670
|
+
|
8671
|
+
<!-- 内容区域 -->
|
8672
|
+
<ko-group #contentGroup [config]="contentConfig()">
|
8673
|
+
<ng-content></ng-content>
|
8674
|
+
</ko-group>
|
8675
|
+
|
8676
|
+
<ko-group>
|
8677
|
+
@if (showVerticalScrollbar()) {
|
8678
|
+
<ko-group
|
8679
|
+
[config]="verticalScrollbarConfig()"
|
8680
|
+
(koMouseenter)="setHoverScrollbarStatus(true)"
|
8681
|
+
(koMouseleave)="setHoverScrollbarStatus(false)"
|
8682
|
+
(koClick)="verticalScrollbarClick($event)"
|
8683
|
+
>
|
8684
|
+
<!-- 滚动条轨道 -->
|
8685
|
+
<ko-rect #verticalTrack [config]="verticalTrackConfig()"></ko-rect>
|
8686
|
+
<!-- 滚动条滑块 -->
|
8687
|
+
@if (!hiddenScrollbar() || isHoverScrollbar()) {
|
8688
|
+
<ko-rect #verticalThumb [config]="verticalConfig()"></ko-rect>
|
8689
|
+
}
|
8690
|
+
</ko-group>
|
8691
|
+
}
|
8692
|
+
|
8693
|
+
<!-- 横向滚动条 -->
|
8694
|
+
@if (showHorizontalScrollbar()) {
|
8695
|
+
<ko-group
|
8696
|
+
[config]="horizontalScrollbarConfig()"
|
8697
|
+
(koMouseenter)="setHoverScrollbarStatus(true)"
|
8698
|
+
(koMouseleave)="setHoverScrollbarStatus(false)"
|
8699
|
+
(koClick)="horizontalScrollbarClick($event)"
|
8700
|
+
>
|
8701
|
+
<!-- 滚动条轨道 -->
|
8702
|
+
<ko-rect #horizontalTrack [config]="horizontalTrackConfig()"></ko-rect>
|
8703
|
+
<!-- 滚动条滑块 -->
|
8704
|
+
@if (!hiddenScrollbar() || isHoverScrollbar()) {
|
8705
|
+
<ko-rect [config]="horizontalThumbConfig()"></ko-rect>
|
8706
|
+
}
|
8707
|
+
</ko-group>
|
8708
|
+
}
|
8709
|
+
</ko-group>
|
8710
|
+
</ko-group>
|
8711
|
+
`, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
8712
|
+
}
|
8713
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableScrollableGroup, decorators: [{
|
8714
|
+
type: Component,
|
8715
|
+
args: [{
|
8716
|
+
selector: 'ai-table-scrollable-group',
|
8717
|
+
template: `
|
8718
|
+
<ko-group
|
8719
|
+
#rootGroup
|
8720
|
+
[config]="containerConfig()"
|
8721
|
+
(koWheel)="stageWheel($event)"
|
8722
|
+
(koMousedown)="stopBubble($event)"
|
8723
|
+
(koMouseup)="stopBubble($event)"
|
8724
|
+
>
|
8725
|
+
<ko-group>
|
8726
|
+
<ko-rect [config]="bgConfig()"></ko-rect>
|
8727
|
+
</ko-group>
|
8728
|
+
|
8729
|
+
<!-- 内容区域 -->
|
8730
|
+
<ko-group #contentGroup [config]="contentConfig()">
|
8731
|
+
<ng-content></ng-content>
|
8732
|
+
</ko-group>
|
8733
|
+
|
8734
|
+
<ko-group>
|
8735
|
+
@if (showVerticalScrollbar()) {
|
8736
|
+
<ko-group
|
8737
|
+
[config]="verticalScrollbarConfig()"
|
8738
|
+
(koMouseenter)="setHoverScrollbarStatus(true)"
|
8739
|
+
(koMouseleave)="setHoverScrollbarStatus(false)"
|
8740
|
+
(koClick)="verticalScrollbarClick($event)"
|
8741
|
+
>
|
8742
|
+
<!-- 滚动条轨道 -->
|
8743
|
+
<ko-rect #verticalTrack [config]="verticalTrackConfig()"></ko-rect>
|
8744
|
+
<!-- 滚动条滑块 -->
|
8745
|
+
@if (!hiddenScrollbar() || isHoverScrollbar()) {
|
8746
|
+
<ko-rect #verticalThumb [config]="verticalConfig()"></ko-rect>
|
8747
|
+
}
|
8748
|
+
</ko-group>
|
8749
|
+
}
|
8750
|
+
|
8751
|
+
<!-- 横向滚动条 -->
|
8752
|
+
@if (showHorizontalScrollbar()) {
|
8753
|
+
<ko-group
|
8754
|
+
[config]="horizontalScrollbarConfig()"
|
8755
|
+
(koMouseenter)="setHoverScrollbarStatus(true)"
|
8756
|
+
(koMouseleave)="setHoverScrollbarStatus(false)"
|
8757
|
+
(koClick)="horizontalScrollbarClick($event)"
|
8758
|
+
>
|
8759
|
+
<!-- 滚动条轨道 -->
|
8760
|
+
<ko-rect #horizontalTrack [config]="horizontalTrackConfig()"></ko-rect>
|
8761
|
+
<!-- 滚动条滑块 -->
|
8762
|
+
@if (!hiddenScrollbar() || isHoverScrollbar()) {
|
8763
|
+
<ko-rect [config]="horizontalThumbConfig()"></ko-rect>
|
8764
|
+
}
|
8765
|
+
</ko-group>
|
8766
|
+
}
|
8767
|
+
</ko-group>
|
8768
|
+
</ko-group>
|
8769
|
+
`,
|
8770
|
+
imports: [KoContainer, KoShape],
|
8771
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
8772
|
+
}]
|
8773
|
+
}], ctorParameters: () => [], propDecorators: { verticalTrack: [{
|
8774
|
+
type: ViewChild,
|
8775
|
+
args: ['verticalTrack']
|
8776
|
+
}], verticalThumb: [{
|
8777
|
+
type: ViewChild,
|
8778
|
+
args: ['verticalThumb']
|
8779
|
+
}], horizontalTrack: [{
|
8780
|
+
type: ViewChild,
|
8781
|
+
args: ['horizontalTrack']
|
8782
|
+
}], contentGroup: [{
|
8783
|
+
type: ViewChild,
|
8784
|
+
args: ['contentGroup']
|
8785
|
+
}], rootGroup: [{
|
8786
|
+
type: ViewChild,
|
8787
|
+
args: ['rootGroup']
|
8788
|
+
}] } });
|
8789
|
+
|
8790
|
+
class AITableFillHandle {
|
8791
|
+
constructor() {
|
8792
|
+
this.config = input.required();
|
8793
|
+
this.showFillHandle = computed(() => {
|
8794
|
+
const { aiTable, readonly } = this.config();
|
8795
|
+
const selection = aiTable.selection();
|
8796
|
+
const hasSelectedCells = selection.selectedCells.size > 0;
|
8797
|
+
const isExpandCell = selection.expandCell;
|
8798
|
+
const isEditingCell = selection.editingCell;
|
8799
|
+
return hasSelectedCells && !readonly && !isEditingCell && !isExpandCell;
|
8326
8800
|
});
|
8327
8801
|
this.handleConfig = computed(() => {
|
8328
8802
|
const { aiTable, coordinate } = this.config();
|
@@ -8355,7 +8829,7 @@ class AITableFillHandle {
|
|
8355
8829
|
}
|
8356
8830
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableFillHandle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
8357
8831
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableFillHandle, isStandalone: true, selector: "ai-table-fill-handle", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
8358
|
-
@if (
|
8832
|
+
@if (showFillHandle()) {
|
8359
8833
|
<ko-rect [config]="handleConfig()"></ko-rect>
|
8360
8834
|
}
|
8361
8835
|
`, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }] }); }
|
@@ -8365,7 +8839,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
8365
8839
|
args: [{
|
8366
8840
|
selector: 'ai-table-fill-handle',
|
8367
8841
|
template: `
|
8368
|
-
@if (
|
8842
|
+
@if (showFillHandle()) {
|
8369
8843
|
<ko-rect [config]="handleConfig()"></ko-rect>
|
8370
8844
|
}
|
8371
8845
|
`,
|
@@ -8373,7 +8847,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
8373
8847
|
}]
|
8374
8848
|
}] });
|
8375
8849
|
|
8376
|
-
class
|
8850
|
+
class AITableCoverCellEntry {
|
8377
8851
|
constructor() {
|
8378
8852
|
this.config = input.required();
|
8379
8853
|
this.onlyDisplayBorder = input(false);
|
@@ -8443,10 +8917,10 @@ class AITableCoverCells {
|
|
8443
8917
|
});
|
8444
8918
|
this.coverCell = computed(() => getCoverCell(this.config().aiTable));
|
8445
8919
|
}
|
8446
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type:
|
8447
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type:
|
8920
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableCoverCellEntry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
8921
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableCoverCellEntry, isStandalone: true, selector: "ai-table-cover-cell-entry", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, onlyDisplayBorder: { classPropertyName: "onlyDisplayBorder", publicName: "onlyDisplayBorder", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
8448
8922
|
@if (coverCell()) {
|
8449
|
-
<ko-group [config]="groupConfig()">
|
8923
|
+
<ko-group #rootGroup [config]="groupConfig()">
|
8450
8924
|
<ng-container
|
8451
8925
|
*ngComponentOutlet="
|
8452
8926
|
coverCell()!.renderComponentDefinition;
|
@@ -8458,13 +8932,13 @@ class AITableCoverCells {
|
|
8458
8932
|
}
|
8459
8933
|
`, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
8460
8934
|
}
|
8461
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type:
|
8935
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableCoverCellEntry, decorators: [{
|
8462
8936
|
type: Component,
|
8463
8937
|
args: [{
|
8464
|
-
selector: 'ai-table-cover-cell',
|
8938
|
+
selector: 'ai-table-cover-cell-entry',
|
8465
8939
|
template: `
|
8466
8940
|
@if (coverCell()) {
|
8467
|
-
<ko-group [config]="groupConfig()">
|
8941
|
+
<ko-group #rootGroup [config]="groupConfig()">
|
8468
8942
|
<ng-container
|
8469
8943
|
*ngComponentOutlet="
|
8470
8944
|
coverCell()!.renderComponentDefinition;
|
@@ -8551,20 +9025,6 @@ class AITableFieldStat {
|
|
8551
9025
|
const { width } = this.config();
|
8552
9026
|
return width - AI_TABLE_ACTION_COMMON_SIZE - AI_TABLE_CELL_PADDING;
|
8553
9027
|
});
|
8554
|
-
this.textData = computed(() => {
|
8555
|
-
const textString = this.renderText() || '';
|
8556
|
-
const availableTextWidth = this.availableTextWidth();
|
8557
|
-
const { text, textWidth } = drawer.textEllipsis({
|
8558
|
-
text: textString,
|
8559
|
-
maxWidth: availableTextWidth,
|
8560
|
-
fontSize: DEFAULT_FONT_SIZE,
|
8561
|
-
fontWeight: DEFAULT_FONT_WEIGHT
|
8562
|
-
});
|
8563
|
-
return {
|
8564
|
-
width: textWidth,
|
8565
|
-
text
|
8566
|
-
};
|
8567
|
-
});
|
8568
9028
|
this.groupConfig = computed(() => {
|
8569
9029
|
return {
|
8570
9030
|
x: this.config().x,
|
@@ -8590,7 +9050,7 @@ class AITableFieldStat {
|
|
8590
9050
|
opacity: 1,
|
8591
9051
|
listening: !readonly
|
8592
9052
|
};
|
8593
|
-
if (this.
|
9053
|
+
if (this.renderTexts()) {
|
8594
9054
|
config.borders = [false, true, false, true];
|
8595
9055
|
config.stroke = Colors.gray200;
|
8596
9056
|
config.strokeWidth = AI_TABLE_CELL_LINE_BORDER;
|
@@ -8627,53 +9087,119 @@ class AITableFieldStat {
|
|
8627
9087
|
const aiTable = this.aiTable();
|
8628
9088
|
return {
|
8629
9089
|
field: this.field(),
|
8630
|
-
aiTable
|
9090
|
+
aiTable,
|
9091
|
+
getFieldValue: (record, options) => {
|
9092
|
+
const { aiTable, field } = options;
|
9093
|
+
const cellValue = AITableQueries.getFieldValue(aiTable, [record._id, field._id]);
|
9094
|
+
return transformToCellText(cellValue, options);
|
9095
|
+
}
|
8631
9096
|
};
|
8632
9097
|
});
|
8633
9098
|
this.isActiveOrHover = computed(() => {
|
8634
9099
|
return this.isActive() || this.isHover();
|
8635
9100
|
});
|
8636
|
-
this.
|
9101
|
+
this.renderTexts = computed(() => {
|
9102
|
+
const { height, width } = this.containerBox();
|
8637
9103
|
const field = this.field();
|
8638
9104
|
const records = this.records();
|
8639
9105
|
const fieldModel = FieldModelMap[field.type];
|
8640
9106
|
const selectedInfo = this.selectedInfo();
|
9107
|
+
let resultString = null;
|
9108
|
+
let formatString = null;
|
9109
|
+
let statValue = '';
|
8641
9110
|
if (this.isFirstColumn() && selectedInfo.isSelected) {
|
8642
9111
|
if (selectedInfo.selectedType === 'records') {
|
8643
|
-
|
8644
|
-
return result.replace('{count}', selectedInfo.selectedCount.toString());
|
9112
|
+
formatString = getI18nTextByKey(this.aiTable(), AITableGridI18nKey.selectedRecordsCount);
|
8645
9113
|
}
|
8646
9114
|
else {
|
8647
|
-
|
8648
|
-
return result.replace('{count}', selectedInfo.selectedCount.toString());
|
9115
|
+
formatString = getI18nTextByKey(this.aiTable(), AITableGridI18nKey.selectedCellsCount);
|
8649
9116
|
}
|
9117
|
+
resultString = formatString.replace('{count}', `${selectedInfo.selectedCount.toString()}`);
|
9118
|
+
statValue = selectedInfo.selectedCount.toString();
|
8650
9119
|
}
|
8651
9120
|
else {
|
8652
|
-
|
8653
|
-
if (!
|
8654
|
-
|
9121
|
+
statValue = fieldModel.stat(records, this.options());
|
9122
|
+
if (!isNil(statValue)) {
|
9123
|
+
formatString = fieldModel.getFormat(this.field(), this.aiTable());
|
9124
|
+
if (formatString) {
|
9125
|
+
resultString = formatString.replace('{{statValue}}', `${statValue.toString()}`);
|
9126
|
+
statValue = statValue.toString();
|
9127
|
+
}
|
8655
9128
|
}
|
8656
|
-
|
9129
|
+
else if (this.isActiveOrHover()) {
|
9130
|
+
formatString = getI18nTextByKey(this.aiTable(), AITableGridI18nKey.stat);
|
9131
|
+
resultString = getI18nTextByKey(this.aiTable(), AITableGridI18nKey.stat);
|
9132
|
+
}
|
9133
|
+
}
|
9134
|
+
if (!resultString) {
|
9135
|
+
return null;
|
8657
9136
|
}
|
9137
|
+
const { text, textWidth } = drawer.textEllipsis({
|
9138
|
+
text: resultString,
|
9139
|
+
maxWidth: width - AI_TABLE_ACTION_COMMON_SIZE - AI_TABLE_CELL_PADDING,
|
9140
|
+
fontSize: DEFAULT_FONT_SIZE,
|
9141
|
+
fontWeight: DEFAULT_FONT_WEIGHT
|
9142
|
+
});
|
9143
|
+
return {
|
9144
|
+
texts: text.split(' '),
|
9145
|
+
totalWidth: textWidth,
|
9146
|
+
statValue: statValue || ''
|
9147
|
+
};
|
8658
9148
|
});
|
8659
9149
|
this.containerBox = computed(() => {
|
8660
9150
|
const { height, width } = this.config();
|
8661
9151
|
return { height, width };
|
8662
9152
|
});
|
8663
|
-
this.
|
9153
|
+
this.textsConfig = computed(() => {
|
8664
9154
|
const { height, width } = this.containerBox();
|
8665
|
-
const
|
8666
|
-
|
8667
|
-
|
8668
|
-
|
8669
|
-
|
8670
|
-
|
8671
|
-
|
8672
|
-
|
8673
|
-
|
8674
|
-
|
8675
|
-
|
8676
|
-
|
9155
|
+
const renderTexts = this.renderTexts();
|
9156
|
+
const result = [];
|
9157
|
+
let previousColor = Colors.gray700;
|
9158
|
+
if (renderTexts) {
|
9159
|
+
const { texts, totalWidth, statValue } = renderTexts;
|
9160
|
+
let remainingWidth = width - AI_TABLE_ACTION_COMMON_SIZE;
|
9161
|
+
for (const [index, text] of texts.entries()) {
|
9162
|
+
if (remainingWidth <= 0) {
|
9163
|
+
break;
|
9164
|
+
}
|
9165
|
+
let isLast = index === texts.length - 1;
|
9166
|
+
let isStatValue = statValue.includes(text.replace('%', '').replace('…', ''));
|
9167
|
+
let isEllipsis = text === '…';
|
9168
|
+
const { text: renderText, textWidth } = drawer.textEllipsis({
|
9169
|
+
text: isLast ? text : `${text} `,
|
9170
|
+
maxWidth: remainingWidth,
|
9171
|
+
fontSize: DEFAULT_FONT_SIZE,
|
9172
|
+
fontWeight: DEFAULT_FONT_WEIGHT
|
9173
|
+
});
|
9174
|
+
remainingWidth -= textWidth;
|
9175
|
+
let fill;
|
9176
|
+
if (isStatValue) {
|
9177
|
+
fill = Colors.gray700;
|
9178
|
+
}
|
9179
|
+
else if (isEllipsis) {
|
9180
|
+
fill = previousColor;
|
9181
|
+
}
|
9182
|
+
else {
|
9183
|
+
fill = Colors.gray600;
|
9184
|
+
}
|
9185
|
+
result.push({
|
9186
|
+
x: 0,
|
9187
|
+
y: 0,
|
9188
|
+
width: textWidth,
|
9189
|
+
height: height,
|
9190
|
+
fill,
|
9191
|
+
text: renderText,
|
9192
|
+
lineHeight: AI_TABLE_TEXT_LINE_HEIGHT,
|
9193
|
+
listening: false
|
9194
|
+
});
|
9195
|
+
previousColor = fill;
|
9196
|
+
}
|
9197
|
+
let startX = width - AI_TABLE_ACTION_COMMON_SIZE - totalWidth;
|
9198
|
+
result.forEach((item) => {
|
9199
|
+
item.x = startX;
|
9200
|
+
startX += item.width;
|
9201
|
+
});
|
9202
|
+
return result;
|
8677
9203
|
}
|
8678
9204
|
return null;
|
8679
9205
|
});
|
@@ -8778,8 +9304,10 @@ class AITableFieldStat {
|
|
8778
9304
|
></ai-table-background>
|
8779
9305
|
|
8780
9306
|
<ko-group>
|
8781
|
-
@if (
|
8782
|
-
|
9307
|
+
@if (textsConfig()) {
|
9308
|
+
@for (textConfig of textsConfig(); track $index) {
|
9309
|
+
<ai-table-text [config]="textConfig"></ai-table-text>
|
9310
|
+
}
|
8783
9311
|
<ai-table-icon [config]="iconConfig()"></ai-table-icon>
|
8784
9312
|
}
|
8785
9313
|
</ko-group>
|
@@ -8800,8 +9328,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
8800
9328
|
></ai-table-background>
|
8801
9329
|
|
8802
9330
|
<ko-group>
|
8803
|
-
@if (
|
8804
|
-
|
9331
|
+
@if (textsConfig()) {
|
9332
|
+
@for (textConfig of textsConfig(); track $index) {
|
9333
|
+
<ai-table-text [config]="textConfig"></ai-table-text>
|
9334
|
+
}
|
8805
9335
|
<ai-table-icon [config]="iconConfig()"></ai-table-icon>
|
8806
9336
|
}
|
8807
9337
|
</ko-group>
|
@@ -8862,6 +9392,7 @@ class AITableRenderer {
|
|
8862
9392
|
this.koClick = output();
|
8863
9393
|
this.koDblclick = output();
|
8864
9394
|
this.koMouseleave = output();
|
9395
|
+
this.onScrollPosition = output();
|
8865
9396
|
this.isHoverStatContainer = signal(false);
|
8866
9397
|
this.fields = computed(() => {
|
8867
9398
|
return AITable.getVisibleFields(this.config().aiTable);
|
@@ -8926,6 +9457,12 @@ class AITableRenderer {
|
|
8926
9457
|
height: AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT
|
8927
9458
|
};
|
8928
9459
|
});
|
9460
|
+
this.scrollTotalHeight = computed(() => {
|
9461
|
+
return Math.max(this.coordinate().totalHeight, this.containerHeight() - AI_TABLE_FIELD_HEAD_HEIGHT);
|
9462
|
+
});
|
9463
|
+
this.scrollTotalWidth = computed(() => {
|
9464
|
+
return this.coordinate().totalWidth + AI_TABLE_FIELD_ADD_BUTTON_WIDTH;
|
9465
|
+
});
|
8929
9466
|
this.commonGroupConfig = computed(() => {
|
8930
9467
|
return {
|
8931
9468
|
clipX: this.frozenAreaWidth() + 1,
|
@@ -9135,11 +9672,14 @@ class AITableRenderer {
|
|
9135
9672
|
stageMouseleave(e) {
|
9136
9673
|
this.koMouseleave.emit(e);
|
9137
9674
|
}
|
9675
|
+
stageWheel(e) {
|
9676
|
+
this.koWheel.emit(e);
|
9677
|
+
}
|
9138
9678
|
onStatContainerHover(isHover) {
|
9139
9679
|
this.isHoverStatContainer.set(isHover);
|
9140
9680
|
}
|
9141
9681
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
9142
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableRenderer, isStandalone: true, selector: "ai-table-renderer", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { koMousemove: "koMousemove", koMousedown: "koMousedown", koMouseup: "koMouseup", koContextmenu: "koContextmenu", koWheel: "koWheel", koClick: "koClick", koDblclick: "koDblclick", koMouseleave: "koMouseleave" }, ngImport: i0, template: "<ko-stage\n [config]=\"stageConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n>\n <ko-layer>\n <ko-group [config]=\"gridGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-cells [config]=\"cellsConfig()\"></ai-table-frozen-cells>\n <ai-table-other-rows [config]=\"cellsConfig()\"></ai-table-other-rows>\n @if (!hiddenIndexColumn()) {\n <ai-table-hover-row-heads [config]=\"cellsConfig()\"></ai-table-hover-row-heads>\n }\n <ai-table-frozen-placeholder-cells [config]=\"cellsConfig()\"></ai-table-frozen-placeholder-cells>\n </ko-group>\n\n <ko-group>\n <ai-table-frozen-column-heads [config]=\"columnFrozenHeadFieldConfig()\"></ai-table-frozen-column-heads>\n </ko-group>\n <ko-group [config]=\"commonGroupConfig()\">\n <ko-group [config]=\"offsetConfig()\">\n <ai-table-cells [config]=\"cellsConfig()\"></ai-table-cells>\n <ai-table-placeholder-cells [config]=\"cellsConfig()\"></ai-table-placeholder-cells>\n <ai-table-cover-cell [config]=\"cellsConfig()\"></ai-table-cover-cell>\n </ko-group>\n\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-heads [config]=\"columnHeadFieldConfig()\"></ai-table-column-heads>\n <ai-table-add-field [config]=\"columnHeadFieldConfig()\"></ai-table-add-field>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-field-shadow [config]=\"config()\"></ai-table-frozen-field-shadow>\n </ko-group>\n\n <ko-group [config]=\"attachGroupConfig()\">\n <ko-group [config]=\"offsetConfig()\">\n @if (activeCellBorderConfig().activeCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().activeCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().expandCellBorder) {\n <ai-table-cover-cell [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell>\n }\n @if (!isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n <ko-group [config]=\"frozenCoverAttachGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-cover-cell [config]=\"cellsConfig()\"></ai-table-cover-cell>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"frozenAttachGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n @if (activeCellBorderConfig().frozenActiveCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().frozenActiveCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().frozenExpandCellBorder) {\n <ai-table-cover-cell [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell>\n }\n @if (isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"statGroupConfig()\">\n <ai-table-background [config]=\"columnFieldStatsBgConfig()\"></ai-table-background>\n <ko-group>\n <ai-table-column-stats\n [config]=\"columnFrozenFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n <ko-group [config]=\"statCommonGroupConfig()\">\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-stats\n [config]=\"columnFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n </ko-group>\n <ko-group>\n <ai-table-frozen-field-shadow [config]=\"columnFieldStatsConfig()\" position=\"fieldStats\"></ai-table-frozen-field-shadow>\n </ko-group>\n </ko-group>\n </ko-layer>\n</ko-stage>\n\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoStage, selector: "ko-stage", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableColumnHeads, selector: "ai-table-column-heads", inputs: ["config"] }, { kind: "component", type: AITableFrozenColumnHeads, selector: "ai-table-frozen-column-heads", inputs: ["config"] }, { kind: "component", type: AITableCells, selector: "ai-table-cells", inputs: ["config"] }, { kind: "component", type: AITableFrozenCells, selector: "ai-table-frozen-cells", inputs: ["config"] }, { kind: "component", type: AITableFrozenPlaceholderCells, selector: "ai-table-frozen-placeholder-cells", inputs: ["config"] }, { kind: "component", type:
|
9682
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableRenderer, isStandalone: true, selector: "ai-table-renderer", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { koMousemove: "koMousemove", koMousedown: "koMousedown", koMouseup: "koMouseup", koContextmenu: "koContextmenu", koWheel: "koWheel", koClick: "koClick", koDblclick: "koDblclick", koMouseleave: "koMouseleave", onScrollPosition: "onScrollPosition" }, ngImport: i0, template: "<ko-stage\n [config]=\"stageConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n (koWheel)=\"stageWheel($event)\"\n>\n <ko-layer>\n <ko-group [config]=\"gridGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-cells [config]=\"cellsConfig()\"></ai-table-frozen-cells>\n <ai-table-other-rows [config]=\"cellsConfig()\"></ai-table-other-rows>\n @if (!hiddenIndexColumn()) {\n <ai-table-hover-row-heads [config]=\"cellsConfig()\"></ai-table-hover-row-heads>\n }\n <ai-table-frozen-placeholder-cells [config]=\"cellsConfig()\"></ai-table-frozen-placeholder-cells>\n </ko-group>\n\n <ko-group>\n <ai-table-frozen-column-heads [config]=\"columnFrozenHeadFieldConfig()\"></ai-table-frozen-column-heads>\n </ko-group>\n <ko-group [config]=\"commonGroupConfig()\">\n <ko-group #commonOffsetGroup [config]=\"offsetConfig()\">\n <ai-table-cells [config]=\"cellsConfig()\"></ai-table-cells>\n <ai-table-placeholder-cells [config]=\"cellsConfig()\"></ai-table-placeholder-cells>\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\"></ai-table-cover-cell-entry>\n </ko-group>\n\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-heads [config]=\"columnHeadFieldConfig()\"></ai-table-column-heads>\n <ai-table-add-field [config]=\"columnHeadFieldConfig()\"></ai-table-add-field>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-field-shadow [config]=\"config()\"></ai-table-frozen-field-shadow>\n </ko-group>\n\n <ko-group [config]=\"attachGroupConfig()\">\n <ko-group [config]=\"offsetConfig()\">\n @if (activeCellBorderConfig().activeCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().activeCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().expandCellBorder) {\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell-entry>\n }\n @if (!isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n <ko-group [config]=\"frozenCoverAttachGroupConfig()\">\n <ko-group #frozenCoverAttachOffsetGroup [config]=\"offsetYConfig()\">\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\"></ai-table-cover-cell-entry>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"frozenAttachGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n @if (activeCellBorderConfig().frozenActiveCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().frozenActiveCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().frozenExpandCellBorder) {\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell-entry>\n }\n @if (isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"statGroupConfig()\">\n <ai-table-background [config]=\"columnFieldStatsBgConfig()\"></ai-table-background>\n <ko-group>\n <ai-table-column-stats\n [config]=\"columnFrozenFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n <ko-group [config]=\"statCommonGroupConfig()\">\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-stats\n [config]=\"columnFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n </ko-group>\n <ko-group>\n <ai-table-frozen-field-shadow [config]=\"columnFieldStatsConfig()\" position=\"fieldStats\"></ai-table-frozen-field-shadow>\n </ko-group>\n </ko-group>\n </ko-layer>\n</ko-stage>\n\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoStage, selector: "ko-stage", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableColumnHeads, selector: "ai-table-column-heads", inputs: ["config"] }, { kind: "component", type: AITableFrozenColumnHeads, selector: "ai-table-frozen-column-heads", inputs: ["config"] }, { kind: "component", type: AITableCells, selector: "ai-table-cells", inputs: ["config"] }, { kind: "component", type: AITableFrozenCells, selector: "ai-table-frozen-cells", inputs: ["config"] }, { kind: "component", type: AITableFrozenPlaceholderCells, selector: "ai-table-frozen-placeholder-cells", inputs: ["config"] }, { kind: "component", type: AITableCoverCellEntry, selector: "ai-table-cover-cell-entry", inputs: ["config", "onlyDisplayBorder"] }, { kind: "component", type: AITablePlaceholderCells, selector: "ai-table-placeholder-cells", inputs: ["config"] }, { kind: "component", type: AITableAddField, selector: "ai-table-add-field", inputs: ["config"] }, { kind: "component", type: AITableHoverRowHeads, selector: "ai-table-hover-row-heads", inputs: ["config"] }, { kind: "component", type: AITableOtherRows, selector: "ai-table-other-rows", inputs: ["config"] }, { kind: "component", type: AITableFillHandle, selector: "ai-table-fill-handle", inputs: ["config"] }, { kind: "component", type: AITableFieldStats, selector: "ai-table-column-stats", inputs: ["config"], outputs: ["hover"] }, { kind: "component", type: AITableBackground, selector: "ai-table-background", inputs: ["config", "isActive", "isHover"], outputs: ["koClick", "hover", "koMouseenter", "koMouseleave", "isHoverChange"] }, { kind: "component", type: AITableFrozenFieldShadow, selector: "ai-table-frozen-field-shadow", inputs: ["config", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
9143
9683
|
}
|
9144
9684
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableRenderer, decorators: [{
|
9145
9685
|
type: Component,
|
@@ -9152,7 +9692,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
9152
9692
|
AITableCells,
|
9153
9693
|
AITableFrozenCells,
|
9154
9694
|
AITableFrozenPlaceholderCells,
|
9155
|
-
|
9695
|
+
AITableCoverCellEntry,
|
9156
9696
|
AITablePlaceholderCells,
|
9157
9697
|
AITableAddField,
|
9158
9698
|
AITableHoverRowHeads,
|
@@ -9161,10 +9701,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
9161
9701
|
AITableFieldStats,
|
9162
9702
|
AITableBackground,
|
9163
9703
|
AITableFrozenFieldShadow
|
9164
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ko-stage\n [config]=\"stageConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n>\n <ko-layer>\n <ko-group [config]=\"gridGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-cells [config]=\"cellsConfig()\"></ai-table-frozen-cells>\n <ai-table-other-rows [config]=\"cellsConfig()\"></ai-table-other-rows>\n @if (!hiddenIndexColumn()) {\n <ai-table-hover-row-heads [config]=\"cellsConfig()\"></ai-table-hover-row-heads>\n }\n <ai-table-frozen-placeholder-cells [config]=\"cellsConfig()\"></ai-table-frozen-placeholder-cells>\n </ko-group>\n\n <ko-group>\n <ai-table-frozen-column-heads [config]=\"columnFrozenHeadFieldConfig()\"></ai-table-frozen-column-heads>\n </ko-group>\n <ko-group [config]=\"commonGroupConfig()\">\n <ko-group [config]=\"offsetConfig()\">\n <ai-table-cells [config]=\"cellsConfig()\"></ai-table-cells>\n <ai-table-placeholder-cells [config]=\"cellsConfig()\"></ai-table-placeholder-cells>\n <ai-table-cover-cell [config]=\"cellsConfig()\"></ai-table-cover-cell>\n </ko-group>\n\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-heads [config]=\"columnHeadFieldConfig()\"></ai-table-column-heads>\n <ai-table-add-field [config]=\"columnHeadFieldConfig()\"></ai-table-add-field>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-field-shadow [config]=\"config()\"></ai-table-frozen-field-shadow>\n </ko-group>\n\n <ko-group [config]=\"attachGroupConfig()\">\n <ko-group [config]=\"offsetConfig()\">\n @if (activeCellBorderConfig().activeCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().activeCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().expandCellBorder) {\n <ai-table-cover-cell [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell>\n }\n @if (!isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n <ko-group [config]=\"frozenCoverAttachGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-cover-cell [config]=\"cellsConfig()\"></ai-table-cover-cell>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"frozenAttachGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n @if (activeCellBorderConfig().frozenActiveCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().frozenActiveCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().frozenExpandCellBorder) {\n <ai-table-cover-cell [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell>\n }\n @if (isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"statGroupConfig()\">\n <ai-table-background [config]=\"columnFieldStatsBgConfig()\"></ai-table-background>\n <ko-group>\n <ai-table-column-stats\n [config]=\"columnFrozenFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n <ko-group [config]=\"statCommonGroupConfig()\">\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-stats\n [config]=\"columnFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n </ko-group>\n <ko-group>\n <ai-table-frozen-field-shadow [config]=\"columnFieldStatsConfig()\" position=\"fieldStats\"></ai-table-frozen-field-shadow>\n </ko-group>\n </ko-group>\n </ko-layer>\n</ko-stage>\n\n<ng-content></ng-content>\n" }]
|
9704
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ko-stage\n [config]=\"stageConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n (koWheel)=\"stageWheel($event)\"\n>\n <ko-layer>\n <ko-group [config]=\"gridGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-cells [config]=\"cellsConfig()\"></ai-table-frozen-cells>\n <ai-table-other-rows [config]=\"cellsConfig()\"></ai-table-other-rows>\n @if (!hiddenIndexColumn()) {\n <ai-table-hover-row-heads [config]=\"cellsConfig()\"></ai-table-hover-row-heads>\n }\n <ai-table-frozen-placeholder-cells [config]=\"cellsConfig()\"></ai-table-frozen-placeholder-cells>\n </ko-group>\n\n <ko-group>\n <ai-table-frozen-column-heads [config]=\"columnFrozenHeadFieldConfig()\"></ai-table-frozen-column-heads>\n </ko-group>\n <ko-group [config]=\"commonGroupConfig()\">\n <ko-group #commonOffsetGroup [config]=\"offsetConfig()\">\n <ai-table-cells [config]=\"cellsConfig()\"></ai-table-cells>\n <ai-table-placeholder-cells [config]=\"cellsConfig()\"></ai-table-placeholder-cells>\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\"></ai-table-cover-cell-entry>\n </ko-group>\n\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-heads [config]=\"columnHeadFieldConfig()\"></ai-table-column-heads>\n <ai-table-add-field [config]=\"columnHeadFieldConfig()\"></ai-table-add-field>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-field-shadow [config]=\"config()\"></ai-table-frozen-field-shadow>\n </ko-group>\n\n <ko-group [config]=\"attachGroupConfig()\">\n <ko-group [config]=\"offsetConfig()\">\n @if (activeCellBorderConfig().activeCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().activeCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().expandCellBorder) {\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell-entry>\n }\n @if (!isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n <ko-group [config]=\"frozenCoverAttachGroupConfig()\">\n <ko-group #frozenCoverAttachOffsetGroup [config]=\"offsetYConfig()\">\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\"></ai-table-cover-cell-entry>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"frozenAttachGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n @if (activeCellBorderConfig().frozenActiveCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().frozenActiveCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().frozenExpandCellBorder) {\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell-entry>\n }\n @if (isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"statGroupConfig()\">\n <ai-table-background [config]=\"columnFieldStatsBgConfig()\"></ai-table-background>\n <ko-group>\n <ai-table-column-stats\n [config]=\"columnFrozenFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n <ko-group [config]=\"statCommonGroupConfig()\">\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-stats\n [config]=\"columnFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n </ko-group>\n <ko-group>\n <ai-table-frozen-field-shadow [config]=\"columnFieldStatsConfig()\" position=\"fieldStats\"></ai-table-frozen-field-shadow>\n </ko-group>\n </ko-group>\n </ko-layer>\n</ko-stage>\n\n<ng-content></ng-content>\n" }]
|
9165
9705
|
}] });
|
9166
9706
|
|
9167
|
-
class AITableCellRate extends
|
9707
|
+
class AITableCellRate extends CoverCellBase {
|
9168
9708
|
constructor() {
|
9169
9709
|
super(...arguments);
|
9170
9710
|
this.pointerX = signal(0);
|
@@ -9313,7 +9853,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
9313
9853
|
}]
|
9314
9854
|
}] });
|
9315
9855
|
|
9316
|
-
class AITableCellProgress extends
|
9856
|
+
class AITableCellProgress extends CoverCellBase {
|
9317
9857
|
constructor() {
|
9318
9858
|
super(...arguments);
|
9319
9859
|
this.readonly = computed(() => {
|
@@ -9823,7 +10363,11 @@ function performFill(aiTable, sourceCells, mouseUpRecordId, actions) {
|
|
9823
10363
|
const startFieldIndex = visibleColumnsIndexMap.get(sourceStartCell[1]);
|
9824
10364
|
const endFieldIndex = visibleColumnsIndexMap.get(sourceEndCell[1]);
|
9825
10365
|
for (let index = startFieldIndex; index <= endFieldIndex; index++) {
|
9826
|
-
const
|
10366
|
+
const field = fields[index];
|
10367
|
+
const fieldId = field._id;
|
10368
|
+
if (isSystemField(field)) {
|
10369
|
+
continue;
|
10370
|
+
}
|
9827
10371
|
for (let rowIndex = targetStartRowIndex; rowIndex <= targetEndRowIndex; rowIndex++) {
|
9828
10372
|
const targetRecordId = linearRows[rowIndex]._id;
|
9829
10373
|
const relativeRowIndex = direction === 'downward' ? rowIndex - targetStartRowIndex : targetEndRowIndex - rowIndex;
|
@@ -10017,6 +10561,7 @@ class AITableGridSelectionService {
|
|
10017
10561
|
selectedCells: new Set(),
|
10018
10562
|
activeCell: null,
|
10019
10563
|
expandCell: null,
|
10564
|
+
editingCell: null,
|
10020
10565
|
selectAllState: AITableSelectAllState.none
|
10021
10566
|
});
|
10022
10567
|
}
|
@@ -10029,6 +10574,12 @@ class AITableGridSelectionService {
|
|
10029
10574
|
expandCell: expandCell
|
10030
10575
|
});
|
10031
10576
|
}
|
10577
|
+
setEditingCell(editingCell) {
|
10578
|
+
this.aiTable.selection.set({
|
10579
|
+
...this.aiTable.selection(),
|
10580
|
+
editingCell: editingCell
|
10581
|
+
});
|
10582
|
+
}
|
10032
10583
|
selectField(fieldId) {
|
10033
10584
|
if (this.aiTable.selection().selectedFields.has(fieldId)) {
|
10034
10585
|
return;
|
@@ -10056,6 +10607,7 @@ class AITableGridSelectionService {
|
|
10056
10607
|
selectedCells: new Set(),
|
10057
10608
|
activeCell: null,
|
10058
10609
|
expandCell: null,
|
10610
|
+
editingCell: null,
|
10059
10611
|
selectAllState: this.selectAllState()
|
10060
10612
|
});
|
10061
10613
|
}
|
@@ -10199,6 +10751,7 @@ class AITableGridEventService {
|
|
10199
10751
|
this.globalMousedownEvent$ = new Subject();
|
10200
10752
|
this.destroyRef = inject(DestroyRef);
|
10201
10753
|
this.thyPopover = inject(ThyPopover);
|
10754
|
+
this.selectionService = inject(AITableGridSelectionService);
|
10202
10755
|
}
|
10203
10756
|
initialize(aiTable, aiFieldRenderers) {
|
10204
10757
|
this.aiTable = aiTable;
|
@@ -10317,6 +10870,7 @@ class AITableGridEventService {
|
|
10317
10870
|
const fieldType = this.aiTable.fieldsMap()[fieldId].type;
|
10318
10871
|
const { component, isInternalComponent } = this.getEditorComponent(fieldType);
|
10319
10872
|
const offsetOriginPosition = this.getOriginPosition(aiTable, options);
|
10873
|
+
this.selectionService.setEditingCell([recordId, fieldId]);
|
10320
10874
|
this.cellEditorPopoverRef = this.thyPopover.open(component, {
|
10321
10875
|
viewContainerRef: isInternalComponent ? undefined : options?.viewContainerRef,
|
10322
10876
|
origin: container,
|
@@ -10364,6 +10918,7 @@ class AITableGridEventService {
|
|
10364
10918
|
this.cellEditorPopoverRef.afterClosed().subscribe(() => {
|
10365
10919
|
wheelEvent.unsubscribe();
|
10366
10920
|
this.cellEditorPopoverRef = null;
|
10921
|
+
this.selectionService.setEditingCell(null);
|
10367
10922
|
});
|
10368
10923
|
this.cellEditorPopoverRef.componentInstance.updateFieldValues.subscribe((value) => {
|
10369
10924
|
options.updateFieldValues(value);
|
@@ -10375,6 +10930,7 @@ class AITableGridEventService {
|
|
10375
10930
|
if (this.cellEditorPopoverRef) {
|
10376
10931
|
this.cellEditorPopoverRef.close();
|
10377
10932
|
this.cellEditorPopoverRef = null;
|
10933
|
+
this.selectionService.setEditingCell(null);
|
10378
10934
|
}
|
10379
10935
|
}
|
10380
10936
|
getCurrentEditCell() {
|
@@ -11473,7 +12029,6 @@ class AITableGrid extends AITableGridBase {
|
|
11473
12029
|
this.setContainerRect();
|
11474
12030
|
this.bindGlobalMousedown();
|
11475
12031
|
this.containerResizeListener();
|
11476
|
-
this.bindWheel();
|
11477
12032
|
this.bindShortcuts();
|
11478
12033
|
});
|
11479
12034
|
effect(() => {
|
@@ -11731,6 +12286,11 @@ class AITableGrid extends AITableGridBase {
|
|
11731
12286
|
this.setDefaultPointPosition();
|
11732
12287
|
});
|
11733
12288
|
}
|
12289
|
+
stageWheel(e) {
|
12290
|
+
e.event.evt.preventDefault();
|
12291
|
+
this.aiTableGridEventService.closeCellEditor();
|
12292
|
+
this.scrollAction({ deltaX: e.event.evt.deltaX, deltaY: e.event.evt.deltaY, shiftKey: e.event.evt.shiftKey });
|
12293
|
+
}
|
11734
12294
|
stageContextmenu(e) {
|
11735
12295
|
const mouseEvent = e.event.evt;
|
11736
12296
|
mouseEvent.preventDefault();
|
@@ -11870,15 +12430,6 @@ class AITableGrid extends AITableGridBase {
|
|
11870
12430
|
}, 0);
|
11871
12431
|
}
|
11872
12432
|
}
|
11873
|
-
bindWheel() {
|
11874
|
-
fromEvent(this.containerElement(), 'wheel', { passive: false })
|
11875
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
11876
|
-
.subscribe((e) => {
|
11877
|
-
e.preventDefault();
|
11878
|
-
this.aiTableGridEventService.closeCellEditor();
|
11879
|
-
this.scrollAction({ deltaX: e.deltaX, deltaY: e.deltaY, shiftKey: e.shiftKey });
|
11880
|
-
});
|
11881
|
-
}
|
11882
12433
|
setDefaultPointPosition() {
|
11883
12434
|
const { context } = this.aiTable;
|
11884
12435
|
context.setPointPosition(DEFAULT_POINT_POSITION);
|
@@ -12155,18 +12706,18 @@ class AITableGrid extends AITableGridBase {
|
|
12155
12706
|
});
|
12156
12707
|
}
|
12157
12708
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
12158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableScrollControllerService], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "verticalBarRef", first: true, predicate: ["verticalBar"], descendants: true, isSignal: true }, { propertyName: "horizontalBarRef", first: true, predicate: ["horizontalBar"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"ai-table-grid-view\">\n @if (hasContainerRect()) {\n <ai-table-renderer\n [config]=\"rendererConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n >\n @if (domToolTips().length > 0) {\n <div\n class=\"ai-table-left-background-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n @for (domToolTip of domToolTips(); track trackBy(idx, domToolTip); let idx = $index) {\n <div\n class=\"ai-table-left-background\"\n [thyTooltip]=\"i18nTexts().rowAddFilterTooltip\"\n [style.--scroll-top.px]=\"domToolTip.top\"\n >\n <thy-icon class=\"text-white\" thyIconName=\"filter-line\"></thy-icon>\n </div>\n }\n </div>\n }\n <div #horizontalBar class=\"ai-table-horizontal-scroll-bar-wrapper\" [style.width.px]=\"containerRect().width\">\n <div class=\"ai-table-scroll-bar-inner\" [style.width.px]=\"scrollbarWidth()\"></div>\n </div>\n <div\n #verticalBar\n class=\"ai-table-vertical-scroll-bar-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n <div class=\"ai-table-scroll-bar-inner\" [style.height.px]=\"scrollTotalHeight()\"></div>\n </div>\n </ai-table-renderer>\n }\n <ai-table-drag [horizontalBar]=\"horizontalBarRef()\" [verticalBar]=\"verticalBarRef()\" (dragEnd)=\"dragEnd($event)\"></ai-table-drag>\n</div>\n", dependencies: [{ kind: "component", type: AITableRenderer, selector: "ai-table-renderer", inputs: ["config"], outputs: ["koMousemove", "koMousedown", "koMouseup", "koContextmenu", "koWheel", "koClick", "koDblclick", "koMouseleave"] }, { kind: "component", type: AITableDragComponent, selector: "ai-table-drag", inputs: ["horizontalBar", "verticalBar"], outputs: ["dragEnd"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
12709
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableScrollControllerService], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "verticalBarRef", first: true, predicate: ["verticalBar"], descendants: true, isSignal: true }, { propertyName: "horizontalBarRef", first: true, predicate: ["horizontalBar"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"ai-table-grid-view\">\n @if (hasContainerRect()) {\n <ai-table-renderer\n [config]=\"rendererConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n (koWheel)=\"stageWheel($event)\"\n >\n @if (domToolTips().length > 0) {\n <div\n class=\"ai-table-left-background-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n @for (domToolTip of domToolTips(); track trackBy(idx, domToolTip); let idx = $index) {\n <div\n class=\"ai-table-left-background\"\n [thyTooltip]=\"i18nTexts().rowAddFilterTooltip\"\n [style.--scroll-top.px]=\"domToolTip.top\"\n >\n <thy-icon class=\"text-white\" thyIconName=\"filter-line\"></thy-icon>\n </div>\n }\n </div>\n }\n <div #horizontalBar class=\"ai-table-horizontal-scroll-bar-wrapper\" [style.width.px]=\"containerRect().width\">\n <div class=\"ai-table-scroll-bar-inner\" [style.width.px]=\"scrollbarWidth()\"></div>\n </div>\n <div\n #verticalBar\n class=\"ai-table-vertical-scroll-bar-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n <div class=\"ai-table-scroll-bar-inner\" [style.height.px]=\"scrollTotalHeight()\"></div>\n </div>\n </ai-table-renderer>\n }\n <ai-table-drag [horizontalBar]=\"horizontalBarRef()\" [verticalBar]=\"verticalBarRef()\" (dragEnd)=\"dragEnd($event)\"></ai-table-drag>\n</div>\n", dependencies: [{ kind: "component", type: AITableRenderer, selector: "ai-table-renderer", inputs: ["config"], outputs: ["koMousemove", "koMousedown", "koMouseup", "koContextmenu", "koWheel", "koClick", "koDblclick", "koMouseleave", "onScrollPosition"] }, { kind: "component", type: AITableDragComponent, selector: "ai-table-drag", inputs: ["horizontalBar", "verticalBar"], outputs: ["dragEnd"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
12159
12710
|
}
|
12160
12711
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableGrid, decorators: [{
|
12161
12712
|
type: Component,
|
12162
12713
|
args: [{ selector: 'ai-table-grid', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
12163
12714
|
class: 'ai-table-grid'
|
12164
|
-
}, imports: [AITableRenderer, AITableDragComponent, ThyTooltipDirective, ThyIcon], providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableScrollControllerService], template: "<div #container class=\"ai-table-grid-view\">\n @if (hasContainerRect()) {\n <ai-table-renderer\n [config]=\"rendererConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n >\n @if (domToolTips().length > 0) {\n <div\n class=\"ai-table-left-background-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n @for (domToolTip of domToolTips(); track trackBy(idx, domToolTip); let idx = $index) {\n <div\n class=\"ai-table-left-background\"\n [thyTooltip]=\"i18nTexts().rowAddFilterTooltip\"\n [style.--scroll-top.px]=\"domToolTip.top\"\n >\n <thy-icon class=\"text-white\" thyIconName=\"filter-line\"></thy-icon>\n </div>\n }\n </div>\n }\n <div #horizontalBar class=\"ai-table-horizontal-scroll-bar-wrapper\" [style.width.px]=\"containerRect().width\">\n <div class=\"ai-table-scroll-bar-inner\" [style.width.px]=\"scrollbarWidth()\"></div>\n </div>\n <div\n #verticalBar\n class=\"ai-table-vertical-scroll-bar-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n <div class=\"ai-table-scroll-bar-inner\" [style.height.px]=\"scrollTotalHeight()\"></div>\n </div>\n </ai-table-renderer>\n }\n <ai-table-drag [horizontalBar]=\"horizontalBarRef()\" [verticalBar]=\"verticalBarRef()\" (dragEnd)=\"dragEnd($event)\"></ai-table-drag>\n</div>\n" }]
|
12715
|
+
}, imports: [AITableRenderer, AITableDragComponent, ThyTooltipDirective, ThyIcon], providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableScrollControllerService], template: "<div #container class=\"ai-table-grid-view\">\n @if (hasContainerRect()) {\n <ai-table-renderer\n [config]=\"rendererConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n (koWheel)=\"stageWheel($event)\"\n >\n @if (domToolTips().length > 0) {\n <div\n class=\"ai-table-left-background-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n @for (domToolTip of domToolTips(); track trackBy(idx, domToolTip); let idx = $index) {\n <div\n class=\"ai-table-left-background\"\n [thyTooltip]=\"i18nTexts().rowAddFilterTooltip\"\n [style.--scroll-top.px]=\"domToolTip.top\"\n >\n <thy-icon class=\"text-white\" thyIconName=\"filter-line\"></thy-icon>\n </div>\n }\n </div>\n }\n <div #horizontalBar class=\"ai-table-horizontal-scroll-bar-wrapper\" [style.width.px]=\"containerRect().width\">\n <div class=\"ai-table-scroll-bar-inner\" [style.width.px]=\"scrollbarWidth()\"></div>\n </div>\n <div\n #verticalBar\n class=\"ai-table-vertical-scroll-bar-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n <div class=\"ai-table-scroll-bar-inner\" [style.height.px]=\"scrollTotalHeight()\"></div>\n </div>\n </ai-table-renderer>\n }\n <ai-table-drag [horizontalBar]=\"horizontalBarRef()\" [verticalBar]=\"verticalBarRef()\" (dragEnd)=\"dragEnd($event)\"></ai-table-drag>\n</div>\n" }]
|
12165
12716
|
}], ctorParameters: () => [] });
|
12166
12717
|
|
12167
12718
|
/**
|
12168
12719
|
* Generated bundle index. Do not edit.
|
12169
12720
|
*/
|
12170
12721
|
|
12171
|
-
export { AITable, AITableActionIcon, AITableAddField, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableBackground, AITableCellAttachment, AITableCellLink, AITableCellProgress, AITableCellRate, AITableCellRichText, AITableCells, AITableCheckType, AITableColumnHeads, AITableContextMenu, AITableDomGrid, AITableFieldHead, AITableFieldIcon, AITableFieldIsSameOptionPipe, AITableFieldSetting, AITableFrozenCells, AITableFrozenColumnHeads, AITableFrozenFieldShadow, AITableFrozenPlaceholderCells, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridI18nKey, AITableGridI18nText, AITableGridSelectionService, AITableHoverRowHeads, AITableIcon, AITableMemberType, AITableMouseDownType, AITableOtherRows, AITablePlaceholderCells, AITableQueries, AITableRenderer, AITableRowType, AITableSelectAllState, AITableTextComponent, AI_TABLE_ACTION_COMMON_RADIUS, AI_TABLE_ACTION_COMMON_RIGHT_PADDING, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_AUTO_SCROLL_BOTTOM_THRESHOLD, AI_TABLE_AUTO_SCROLL_LEFT_THRESHOLD, AI_TABLE_AUTO_SCROLL_RIGHT_THRESHOLD, AI_TABLE_AUTO_SCROLL_TOP_THRESHOLD, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_ATTACHMENT_ADD, AI_TABLE_CELL_ATTACHMENT_FILE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EDIT, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_FIELD_ITEM_HEIGHT, AI_TABLE_CELL_LINE_BORDER, AI_TABLE_CELL_MAX_ROW_COUNT, AI_TABLE_CELL_MEMBER_ITEM_HEIGHT, AI_TABLE_CELL_MEMBER_ITEM_PADDING, AI_TABLE_CELL_MEMBER_MAX_HEIGHT, AI_TABLE_CELL_MULTI_DOT_RADIUS, AI_TABLE_CELL_MULTI_ITEM_MARGIN_LEFT, AI_TABLE_CELL_MULTI_ITEM_MARGIN_TOP, AI_TABLE_CELL_MULTI_ITEM_MIN_WIDTH, AI_TABLE_CELL_MULTI_PADDING_LEFT, AI_TABLE_CELL_MULTI_PADDING_TOP, AI_TABLE_CELL_PADDING, AI_TABLE_COMMON_FONT_SIZE, AI_TABLE_DEFAULT_COLUMN_WIDTH, AI_TABLE_DOT_RADIUS, AI_TABLE_FIELD_ADD_BUTTON, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, AI_TABLE_FIELD_HEAD_OPACITY_LINE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_FIELD_ITEM_MARGIN_RIGHT, AI_TABLE_FIELD_MAX_WIDTH, AI_TABLE_FIELD_MIDDLE_WIDTH, AI_TABLE_FIELD_MINI_WIDTH, AI_TABLE_FIELD_MIN_WIDTH, AI_TABLE_FIELD_STAT_BG, AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT, AI_TABLE_FIELD_STAT_INNER_HEIGHT, AI_TABLE_FILE_ICON_ITEM_HEIGHT, AI_TABLE_FILE_ICON_SIZE, AI_TABLE_FILL_HANDLE, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_INDEX_FIELD_TEXT, AI_TABLE_MEMBER_AVATAR_SIZE, AI_TABLE_MEMBER_ITEM_AVATAR_MARGIN_RIGHT, AI_TABLE_MEMBER_ITEM_PADDING_RIGHT, AI_TABLE_MIN_TEXT_WIDTH, AI_TABLE_OFFSET, AI_TABLE_OPTION_ITEM_FONT_SIZE, AI_TABLE_OPTION_ITEM_HEIGHT, AI_TABLE_OPTION_ITEM_PADDING, AI_TABLE_OPTION_ITEM_RADIUS, AI_TABLE_OPTION_MULTI_ITEM_FONT_SIZE, AI_TABLE_PIECE_RADIUS, AI_TABLE_PIECE_WIDTH, AI_TABLE_POPOVER_LEFT_OFFSET, AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_BAR_POINTER_HEIGHT, AI_TABLE_PROGRESS_BAR_POINTER_WIDTH, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_WIDTH, AI_TABLE_RATE_MAX, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_DRAG, AI_TABLE_ROW_DRAG_ICON_WIDTH, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEAD_WIDTH_AND_DRAG_ICON_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_SCROLL_BAR_SIZE, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AI_TABLE_TEXT_LINE_HEIGHT, AbstractEditCellEditor, AddOutlinedPath, AngleDownPath, AttachmentField, AttachmentPath, CellDrawer, Check, Colors, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnRichTextFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate,
|
12722
|
+
export { AITable, AITableActionIcon, AITableAddField, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableBackground, AITableCellAttachment, AITableCellLink, AITableCellProgress, AITableCellRate, AITableCellRichText, AITableCells, AITableCheckType, AITableColumnHeads, AITableContextMenu, AITableDomGrid, AITableFieldHead, AITableFieldIcon, AITableFieldIsSameOptionPipe, AITableFieldSetting, AITableFrozenCells, AITableFrozenColumnHeads, AITableFrozenFieldShadow, AITableFrozenPlaceholderCells, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridI18nKey, AITableGridI18nText, AITableGridSelectionService, AITableHoverRowHeads, AITableIcon, AITableMemberType, AITableMouseDownType, AITableOtherRows, AITablePlaceholderCells, AITableQueries, AITableRenderer, AITableRowType, AITableScrollableGroup, AITableSelectAllState, AITableTextComponent, AI_TABLE_ACTION_COMMON_RADIUS, AI_TABLE_ACTION_COMMON_RIGHT_PADDING, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_AUTO_SCROLL_BOTTOM_THRESHOLD, AI_TABLE_AUTO_SCROLL_LEFT_THRESHOLD, AI_TABLE_AUTO_SCROLL_RIGHT_THRESHOLD, AI_TABLE_AUTO_SCROLL_TOP_THRESHOLD, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_ATTACHMENT_ADD, AI_TABLE_CELL_ATTACHMENT_FILE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EDIT, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_FIELD_ITEM_HEIGHT, AI_TABLE_CELL_LINE_BORDER, AI_TABLE_CELL_MAX_ROW_COUNT, AI_TABLE_CELL_MEMBER_ITEM_HEIGHT, AI_TABLE_CELL_MEMBER_ITEM_PADDING, AI_TABLE_CELL_MEMBER_MAX_HEIGHT, AI_TABLE_CELL_MULTI_DOT_RADIUS, AI_TABLE_CELL_MULTI_ITEM_MARGIN_LEFT, AI_TABLE_CELL_MULTI_ITEM_MARGIN_TOP, AI_TABLE_CELL_MULTI_ITEM_MIN_WIDTH, AI_TABLE_CELL_MULTI_PADDING_LEFT, AI_TABLE_CELL_MULTI_PADDING_TOP, AI_TABLE_CELL_PADDING, AI_TABLE_COMMON_FONT_SIZE, AI_TABLE_DEFAULT_COLUMN_WIDTH, AI_TABLE_DOT_RADIUS, AI_TABLE_FIELD_ADD_BUTTON, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, AI_TABLE_FIELD_HEAD_OPACITY_LINE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_FIELD_ITEM_MARGIN_RIGHT, AI_TABLE_FIELD_MAX_WIDTH, AI_TABLE_FIELD_MIDDLE_WIDTH, AI_TABLE_FIELD_MINI_WIDTH, AI_TABLE_FIELD_MIN_WIDTH, AI_TABLE_FIELD_STAT_BG, AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT, AI_TABLE_FIELD_STAT_INNER_HEIGHT, AI_TABLE_FILE_ICON_ITEM_HEIGHT, AI_TABLE_FILE_ICON_SIZE, AI_TABLE_FILL_HANDLE, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_INDEX_FIELD_TEXT, AI_TABLE_MEMBER_AVATAR_SIZE, AI_TABLE_MEMBER_ITEM_AVATAR_MARGIN_RIGHT, AI_TABLE_MEMBER_ITEM_PADDING_RIGHT, AI_TABLE_MIN_TEXT_WIDTH, AI_TABLE_OFFSET, AI_TABLE_OPTION_ITEM_FONT_SIZE, AI_TABLE_OPTION_ITEM_HEIGHT, AI_TABLE_OPTION_ITEM_PADDING, AI_TABLE_OPTION_ITEM_RADIUS, AI_TABLE_OPTION_MULTI_ITEM_FONT_SIZE, AI_TABLE_PIECE_RADIUS, AI_TABLE_PIECE_WIDTH, AI_TABLE_POPOVER_LEFT_OFFSET, AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_BAR_POINTER_HEIGHT, AI_TABLE_PROGRESS_BAR_POINTER_WIDTH, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_WIDTH, AI_TABLE_RATE_MAX, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_DRAG, AI_TABLE_ROW_DRAG_ICON_WIDTH, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEAD_WIDTH_AND_DRAG_ICON_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_SCROLL_BAR_SIZE, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AI_TABLE_TEXT_LINE_HEIGHT, AbstractEditCellEditor, AddOutlinedPath, AngleDownPath, AttachmentField, AttachmentPath, CellDrawer, Check, Colors, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnRichTextFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, CoverCellBase, DBL_CLICK_EDIT_TYPE, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_FONT_STYLE, DEFAULT_FONT_WEIGHT, DEFAULT_ICON_SHAPE, DEFAULT_ICON_SIZE, DEFAULT_POINT_POSITION, DEFAULT_SCROLL_STATE, DEFAULT_TEXT_ALIGN_CENTER, DEFAULT_TEXT_ALIGN_LEFT, DEFAULT_TEXT_ALIGN_RIGHT, DEFAULT_TEXT_DECORATION, DEFAULT_TEXT_ELLIPSIS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_LINE_HEIGHT, DEFAULT_TEXT_LISTENING, DEFAULT_TEXT_MAX_CACHE, DEFAULT_TEXT_MAX_HEIGHT, DEFAULT_TEXT_SCALE, DEFAULT_TEXT_TRANSFORMS_ENABLED, DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE, DEFAULT_TEXT_VERTICAL_ALIGN_TOP, DEFAULT_TEXT_WRAP, DEFAULT_WRAP_TEXT_MAX_ROW, DateCellEditorComponent, DateField, DepartmentOutlinedPath, Drawer, EditPath, FONT_SIZE_SM, FieldModelMap, IconPathMap, IsSelectRecordPipe, KO_CONTAINER_TOKEN, KoComponent, KoContainer, KoShape, KoShapeTypes, KoStage, LinkCellEditorComponent, LinkField, MIN_COLUMN_WIDTH, MemberField, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, NumberField, ProgressField, RateField, RendererContext, RichTextField, RowDragPath, RowHeight, SelectCellEditorComponent, SelectField, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextField, TextMeasure, Unchecked, UserPipe, WebOutlinedPath, aiTableFragmentAttribute, aiTableImageConfigToKonvaConfig, aiTableRectConfigToKonvaConfig, aiTableTextConfigToKonvaConfig, applyNodeProps, buildClipboardData, buildGridData, buildGridLinearRows, castToString, cellDrawer, clearCells, compareNumber, compareOption, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName, createListener, dragFillHighlightArea, drawer, expandCell, extractLinkUrl, extractText, generateNewName, generateTargetName, getAvatarBgColor, getAvatarShortName, getCellEditorBorderSpace, getCellHorizontalPosition, getColumnIndicesSizeMap, getCoverCell, getDateFieldValues, getDefaultFieldOptions, getDefaultFieldValue, getDefaultI18nTextByKey, getDetailByTargetName, getEditorBoxOffset, getEditorSpace, getFieldOptionByField, getFieldOptionMap, getFieldOptions, getFieldValue, getFileThumbnailSvgString, getFillDirection, getHoverEditorBoxOffset, getHoverEditorSpace, getI18nTextByKey, getMousePosition, getName, getOptionsByFieldAndRecords, getPlaceHolderCellsConfigs, getStartAndEndCell, getSystemFieldValue, getTargetName, getTextWidth, getVisibleRangeInfo, graphemeSplitter, handleMouseStyle, hasIntersect, idCreator, idsCreator, imageCache, isActiveCell, isArrayField, isCellMatchKeywords, isClipboardReadSupported, isClipboardReadTextSupported, isClipboardWriteSupported, isClipboardWriteTextSupported, isDateFiled, isEmptyOrNot, isMac, isMeetFilter, isNumberFiled, isSameFieldOption, isSelectedField, isSystemField, isVirtualKey, isWindows, isWindowsOS, isWithinFrozenColumnBoundary, performFill, processPastedValueForSelect, readFromClipboard, scrollMax, setMouseStyle, shortIdCreator, shortIdsCreator, statDateRangeOfDays, statDateRangeOfMonths, statEarliestTime, statLatestTime, stringInclude, textDataCache, toAttachmentFieldValue, toDateFieldValue, toLinkFieldValue, toMemberFieldValue, toNumberFieldValue, toProgressFieldValue, toRateFieldValue, toRichTextFieldValue, toSelectFieldValue, toTextFieldValue, transformToCellText, updatePicture, writeToAITable, writeToClipboard, zhIntlCollator };
|
12172
12723
|
//# sourceMappingURL=ai-table-grid.mjs.map
|