@ai-table/grid 0.1.40 → 0.1.41
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/constants/colors.d.ts +4 -1
- package/constants/colors.d.ts.map +1 -1
- package/constants/icon.d.ts +1 -0
- package/constants/icon.d.ts.map +1 -1
- package/constants/table.d.ts +3 -0
- package/constants/table.d.ts.map +1 -1
- package/core/types/ai-table.d.ts +4 -1
- package/core/types/ai-table.d.ts.map +1 -1
- package/fesm2022/ai-table-grid.mjs +327 -24
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid-base.component.d.ts +4 -2
- package/grid-base.component.d.ts.map +1 -1
- package/grid.component.d.ts +2 -1
- package/grid.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/renderer/components/group/frozen-groups.component.d.ts +10 -0
- package/renderer/components/group/frozen-groups.component.d.ts.map +1 -0
- package/renderer/components/other-rows.component.d.ts +2 -2
- package/renderer/creations/create-cells.d.ts.map +1 -1
- package/renderer/creations/create-groups.d.ts +3 -0
- package/renderer/creations/create-groups.d.ts.map +1 -0
- package/renderer/drawers/cell-drawer.d.ts +1 -1
- package/renderer/drawers/cell-drawer.d.ts.map +1 -1
- package/renderer/drawers/drawer.d.ts +4 -1
- package/renderer/drawers/drawer.d.ts.map +1 -1
- package/renderer/drawers/group-layout.d.ts +11 -0
- package/renderer/drawers/group-layout.d.ts.map +1 -0
- package/renderer/drawers/layout-drawer.d.ts +3 -1
- package/renderer/drawers/layout-drawer.d.ts.map +1 -1
- package/renderer/drawers/record-row-layout-drawer.d.ts.map +1 -1
- package/renderer/renderer.component.d.ts.map +1 -1
- package/types/cell.d.ts +9 -3
- package/types/cell.d.ts.map +1 -1
- package/types/component-config.d.ts +12 -0
- package/types/component-config.d.ts.map +1 -1
- package/types/layout.d.ts +1 -0
- package/types/layout.d.ts.map +1 -1
- package/types/row.d.ts +23 -7
- package/types/row.d.ts.map +1 -1
- package/utils/build.d.ts +1 -1
- package/utils/build.d.ts.map +1 -1
- package/utils/cell.d.ts +1 -0
- package/utils/cell.d.ts.map +1 -1
- package/utils/get-placeholder-cells.d.ts.map +1 -1
@@ -49,7 +49,7 @@ import { ThyInputNumber } from 'ngx-tethys/input-number';
|
|
49
49
|
import { isKeyHotkey } from 'is-hotkey';
|
50
50
|
import { LRUCache } from 'lru-cache';
|
51
51
|
import { fromUnixTime, subDays, differenceInDays, differenceInMonths } from 'date-fns';
|
52
|
-
import { isArray, TinyDate, helpers } from 'ngx-tethys/util';
|
52
|
+
import { isArray, TinyDate, helpers, hexToRgb } from 'ngx-tethys/util';
|
53
53
|
import { DEFAULT_COLORS } from 'ngx-tethys/color-picker';
|
54
54
|
import GraphemeSplitter from 'grapheme-splitter';
|
55
55
|
import * as i1$2 from '@angular/common';
|
@@ -752,9 +752,12 @@ const Colors = {
|
|
752
752
|
gray100: '#f5f5f5',
|
753
753
|
gray200: '#eee',
|
754
754
|
gray300: '#ddd',
|
755
|
-
|
755
|
+
gray400: '#cacaca',
|
756
|
+
gray500: '#aaa',
|
756
757
|
gray600: '#999',
|
757
758
|
gray700: '#666',
|
759
|
+
gray800: '#333',
|
760
|
+
gray900: '#212529',
|
758
761
|
white: '#fff',
|
759
762
|
black: '#000',
|
760
763
|
transparent: 'transparent',
|
@@ -822,6 +825,8 @@ var AITableRowType;
|
|
822
825
|
(function (AITableRowType) {
|
823
826
|
AITableRowType["add"] = "add";
|
824
827
|
AITableRowType["record"] = "record";
|
828
|
+
AITableRowType["group"] = "group";
|
829
|
+
AITableRowType["blank"] = "blank";
|
825
830
|
})(AITableRowType || (AITableRowType = {}));
|
826
831
|
|
827
832
|
const AI_TABLE_ACTION_COMMON_SIZE = 32; // 表格图标action背景的通用尺寸
|
@@ -915,6 +920,9 @@ const AI_TABLE_AUTO_SCROLL_BOTTOM_THRESHOLD = AI_TABLE_FIELD_HEAD_HEIGHT / 2;
|
|
915
920
|
const AI_TABLE_FIELD_STAT_INNER_HEIGHT = 47; // 字段统计内部高度
|
916
921
|
const AI_TABLE_TEXT_LINE_HEIGHT = 1.84; // 默认文本行高
|
917
922
|
const AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT = AI_TABLE_FIELD_STAT_INNER_HEIGHT + AI_TABLE_OFFSET * 2; // 统计容器高度
|
923
|
+
const AI_TABLE_GROUP_MAX_LEVEL = 3;
|
924
|
+
const AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON = 'AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON';
|
925
|
+
const AI_TABLE_ROW_GROUP_OFFSET = 16;
|
918
926
|
|
919
927
|
const MIN_COLUMN_WIDTH = 80;
|
920
928
|
const DBL_CLICK_EDIT_TYPE = [
|
@@ -979,6 +987,7 @@ const AttachmentPath = `M9.1773124,11.8057395 C7.96668709,13.0163648 6.00387566,
|
|
979
987
|
const EditPath = `M2,8.33918294 L10.7095952,0 L15,4.17020474 L6.53816398,13 L2,13 L2,8.33918294 Z M3.2,8.85157902 L3.2,11.8 L6.02608482,11.8 L13.3091776,4.20020516 L10.7033283,1.66736141 L3.2,8.85157902 Z M0,16 L0,14.8 L16,14.8 L16,16 L0,16 Z`;
|
980
988
|
const RowDragPath = `M6,3 C6.55228475,3 7,2.55228475 7,2 C7,1.44771525 6.55228475,1 6,1 C5.44771525,1 5,1.44771525 5,2 C5,2.55228475 5.44771525,3 6,3 Z M10,3 C10.5522847,3 11,2.55228475 11,2 C11,1.44771525 10.5522847,1 10,1 C9.44771525,1 9,1.44771525 9,2 C9,2.55228475 9.44771525,3 10,3 Z M6,7 C6.55228475,7 7,6.55228475 7,6 C7,5.44771525 6.55228475,5 6,5 C5.44771525,5 5,5.44771525 5,6 C5,6.55228475 5.44771525,7 6,7 Z M10,7 C10.5522847,7 11,6.55228475 11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 C9,6.55228475 9.44771525,7 10,7 Z M6,11 C6.55228475,11 7,10.5522847 7,10 C7,9.44771525 6.55228475,9 6,9 C5.44771525,9 5,9.44771525 5,10 C5,10.5522847 5.44771525,11 6,11 Z M10,11 C10.5522847,11 11,10.5522847 11,10 C11,9.44771525 10.5522847,9 10,9 C9.44771525,9 9,9.44771525 9,10 C9,10.5522847 9.44771525,11 10,11 Z M6,15 C6.55228475,15 7,14.5522847 7,14 C7,13.4477153 6.55228475,13 6,13 C5.44771525,13 5,13.4477153 5,14 C5,14.5522847 5.44771525,15 6,15 Z M10,15 C10.5522847,15 11,14.5522847 11,14 C11,13.4477153 10.5522847,13 10,13 C9.44771525,13 9,13.4477153 9,14 C9,14.5522847 9.44771525,15 10,15 Z`;
|
981
989
|
const AngleDownPath = `M7.97815,11.99732 L7.9728,12.00267 L2.2998,6.33067 L3.1298,5.49967 L7.97807731,10.3479473 L12.8255,5.49967 L13.6565,6.33067 L7.9835,12.00267 L7.97815,11.99732 Z`;
|
990
|
+
const AngleRightPath = `M4.72665,3.40415 L5.55765,2.57315 L11.22965,8.24615 L5.55765,13.92985 L4.72665,13.09985 L9.57465,8.25285`;
|
982
991
|
const IconPathMap = {};
|
983
992
|
|
984
993
|
const DEFAULT_FONT_SIZE = 14;
|
@@ -1947,8 +1956,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
1947
1956
|
args: ['inputElement', { static: false }]
|
1948
1957
|
}] } });
|
1949
1958
|
|
1950
|
-
const buildGridLinearRows = (visibleRecords, isAddingVisible = true) => {
|
1951
|
-
|
1959
|
+
const buildGridLinearRows = (visibleRecords, isAddingVisible = true, aiTable, aiBuildGroupLinearRowsFn) => {
|
1960
|
+
let linearRows = [];
|
1961
|
+
if (aiBuildGroupLinearRowsFn) {
|
1962
|
+
const groupLinearRows = aiBuildGroupLinearRowsFn(aiTable);
|
1963
|
+
if (groupLinearRows) {
|
1964
|
+
return groupLinearRows;
|
1965
|
+
}
|
1966
|
+
}
|
1952
1967
|
let displayRowIndex = 0;
|
1953
1968
|
[...visibleRecords, { _id: '' }].forEach((row) => {
|
1954
1969
|
if (row._id) {
|
@@ -1997,8 +2012,18 @@ function getColumnIndicesSizeMap(aiTable, fields) {
|
|
1997
2012
|
* 根据单元格是否是第一列/最后一列确定单元格所在的位置
|
1998
2013
|
*/
|
1999
2014
|
function getCellHorizontalPosition(options) {
|
2000
|
-
|
2001
|
-
|
2015
|
+
let { columnWidth, columnIndex, columnCount, depth = 0 } = options;
|
2016
|
+
depth += 1;
|
2017
|
+
if (!depth)
|
2018
|
+
return { width: columnWidth, offset: 0 };
|
2019
|
+
const firstIndent = columnIndex === 0 && depth;
|
2020
|
+
const lastIndent = columnIndex === columnCount - 1 && depth === 3;
|
2021
|
+
const offset = firstIndent ? (depth - 1) * AI_TABLE_ROW_GROUP_OFFSET + 0.5 : 0;
|
2022
|
+
const width = lastIndent && !firstIndent ? columnWidth - AI_TABLE_ROW_GROUP_OFFSET : columnWidth - offset;
|
2023
|
+
return {
|
2024
|
+
width,
|
2025
|
+
offset
|
2026
|
+
};
|
2002
2027
|
}
|
2003
2028
|
function transformToCellText(cellValue, options) {
|
2004
2029
|
const { aiTable, field } = options;
|
@@ -2237,7 +2262,7 @@ function getPlaceHolderCellsConfigs(options) {
|
|
2237
2262
|
break;
|
2238
2263
|
}
|
2239
2264
|
const row = linearRows()[rowIndex];
|
2240
|
-
const { _id: recordId, type } = row;
|
2265
|
+
const { _id: recordId, type, depth = 0 } = row;
|
2241
2266
|
if (type !== AITableRowType.record) {
|
2242
2267
|
continue;
|
2243
2268
|
}
|
@@ -2246,7 +2271,8 @@ function getPlaceHolderCellsConfigs(options) {
|
|
2246
2271
|
const { width, offset } = getCellHorizontalPosition({
|
2247
2272
|
columnWidth,
|
2248
2273
|
columnIndex,
|
2249
|
-
columnCount
|
2274
|
+
columnCount,
|
2275
|
+
depth
|
2250
2276
|
});
|
2251
2277
|
const height = rowHeight - AI_TABLE_OFFSET * 4;
|
2252
2278
|
configs.unshift({
|
@@ -5449,13 +5475,14 @@ class Layout extends Drawer {
|
|
5449
5475
|
// 列数
|
5450
5476
|
this.columnCount = 0;
|
5451
5477
|
this.containerWidth = 0;
|
5478
|
+
this.frozenColumnCount = 0;
|
5452
5479
|
this.rowHeadWidth = AI_TABLE_ROW_HEAD_WIDTH_AND_DRAG_ICON_WIDTH;
|
5453
5480
|
this.hiddenIndexColumn = false;
|
5454
5481
|
this.hiddenRowDrag = false;
|
5455
5482
|
this.readonly = false;
|
5456
5483
|
}
|
5457
5484
|
// 用于初始化或重置布局的基本属性。这个方法通常在每次渲染新的一行或单元格时调用,确保布局信息是最新的
|
5458
|
-
init({ x, y, rowIndex, columnIndex, rowHeight, columnWidth, columnCount, containerWidth, rowHeadWidth, hiddenIndexColumn, hiddenRowDrag, readonly }) {
|
5485
|
+
init({ x, y, rowIndex, columnIndex, rowHeight, columnWidth, columnCount, containerWidth, rowHeadWidth, hiddenIndexColumn, hiddenRowDrag, readonly, frozenColumnCount }) {
|
5459
5486
|
this.x = x;
|
5460
5487
|
this.y = y;
|
5461
5488
|
this.rowIndex = rowIndex;
|
@@ -5468,11 +5495,16 @@ class Layout extends Drawer {
|
|
5468
5495
|
this.hiddenIndexColumn = hiddenIndexColumn;
|
5469
5496
|
this.hiddenRowDrag = hiddenRowDrag;
|
5470
5497
|
this.readonly = readonly;
|
5498
|
+
this.frozenColumnCount = frozenColumnCount;
|
5471
5499
|
}
|
5472
5500
|
// 当前单元格是否是行的第一列
|
5473
5501
|
get isFirst() {
|
5474
5502
|
return this.columnIndex === 0;
|
5475
5503
|
}
|
5504
|
+
// 当前单元格是否是锁定列的最后一列
|
5505
|
+
get isLastFrozenColumn() {
|
5506
|
+
return this.columnIndex === this.frozenColumnCount - 1;
|
5507
|
+
}
|
5476
5508
|
// 当前单元格是否是行的最后一列
|
5477
5509
|
get isLast() {
|
5478
5510
|
return this.columnIndex === this.columnCount - 1;
|
@@ -6862,6 +6894,94 @@ class RecordRowLayout extends Layout {
|
|
6862
6894
|
}
|
6863
6895
|
const recordRowLayout = new RecordRowLayout();
|
6864
6896
|
|
6897
|
+
class GroupLayout extends Layout {
|
6898
|
+
renderAddFieldBlank({ isHoverRow, isCheckedRow }) {
|
6899
|
+
super.renderAddFieldBlank({ isHoverRow, isCheckedRow });
|
6900
|
+
const rowHeight = this.rowHeight;
|
6901
|
+
const startX = this.x + this.columnWidth;
|
6902
|
+
const lineWidth = this.containerWidth - startX < AI_TABLE_FIELD_ADD_BUTTON_WIDTH ? AI_TABLE_FIELD_ADD_BUTTON_WIDTH : this.containerWidth - startX;
|
6903
|
+
this.line({
|
6904
|
+
x: startX,
|
6905
|
+
y: this.y,
|
6906
|
+
points: [0, rowHeight, lineWidth, rowHeight],
|
6907
|
+
stroke: this.colors.gray200
|
6908
|
+
});
|
6909
|
+
}
|
6910
|
+
renderFirstCell(render, config) {
|
6911
|
+
if (!this.isFirst)
|
6912
|
+
return;
|
6913
|
+
const { row, indexStyle } = config;
|
6914
|
+
const { _id: recordId, type, depth = 0, groupValue, fieldId, isCollapsed } = row;
|
6915
|
+
const { field, style, aiTable } = render;
|
6916
|
+
const y = this.y;
|
6917
|
+
const rowHeight = this.rowHeight;
|
6918
|
+
const columnWidth = this.columnWidth;
|
6919
|
+
const { fill: indexFill } = indexStyle || {};
|
6920
|
+
const dragOccupyWidth = this.hiddenRowDrag || this.readonly ? 0 : AI_TABLE_ROW_DRAG_ICON_WIDTH;
|
6921
|
+
if (!this.hiddenIndexColumn) {
|
6922
|
+
this.customRect({
|
6923
|
+
x: AI_TABLE_OFFSET + dragOccupyWidth,
|
6924
|
+
y,
|
6925
|
+
width: this.rowHeadWidth - AI_TABLE_OFFSET - dragOccupyWidth,
|
6926
|
+
height: rowHeight,
|
6927
|
+
fill: indexFill,
|
6928
|
+
strokes: {
|
6929
|
+
top: this.colors.gray200,
|
6930
|
+
bottom: this.colors.gray200
|
6931
|
+
}
|
6932
|
+
});
|
6933
|
+
// 第一列单元格
|
6934
|
+
this.rect({
|
6935
|
+
x: AI_TABLE_CELL_PADDING + dragOccupyWidth + 2,
|
6936
|
+
y: this.y + (this.rowHeight - AI_TABLE_ICON_COMMON_SIZE) / 2,
|
6937
|
+
width: AI_TABLE_ICON_COMMON_SIZE,
|
6938
|
+
height: AI_TABLE_ICON_COMMON_SIZE,
|
6939
|
+
fill: hexToRgb(this.colors.gray400, 0.2),
|
6940
|
+
stroke: this.colors.gray300,
|
6941
|
+
radius: 2
|
6942
|
+
});
|
6943
|
+
}
|
6944
|
+
const iconContainerWidth = AI_TABLE_ICON_COMMON_SIZE + AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE;
|
6945
|
+
if (!isEmpty(groupValue)) {
|
6946
|
+
cellDrawer.initStyle(field, style);
|
6947
|
+
cellDrawer.renderCell({
|
6948
|
+
...render,
|
6949
|
+
x: render.x + iconContainerWidth,
|
6950
|
+
columnWidth: render.columnWidth - iconContainerWidth
|
6951
|
+
}, this.ctx, columnWidth);
|
6952
|
+
}
|
6953
|
+
}
|
6954
|
+
renderCommonCellBorder({ style }) {
|
6955
|
+
const { fill, stroke } = style || {};
|
6956
|
+
const colors = AITable.getColors();
|
6957
|
+
// 背景、边框
|
6958
|
+
this.customRect({
|
6959
|
+
x: this.x,
|
6960
|
+
y: this.y,
|
6961
|
+
width: this.columnWidth,
|
6962
|
+
height: this.rowHeight,
|
6963
|
+
fill: fill || colors.white,
|
6964
|
+
strokes: {
|
6965
|
+
top: stroke || colors.gray200,
|
6966
|
+
bottom: stroke || colors.gray200,
|
6967
|
+
right: this.isLastFrozenColumn ? this.colors.gray200 : undefined
|
6968
|
+
}
|
6969
|
+
});
|
6970
|
+
}
|
6971
|
+
renderLastCell({ style, isHoverRow, isCheckedRow }) {
|
6972
|
+
if (this.isLast) {
|
6973
|
+
this.renderAddFieldBlank({ isHoverRow: false, isCheckedRow: false });
|
6974
|
+
}
|
6975
|
+
}
|
6976
|
+
render(render, config) {
|
6977
|
+
const { style, isHoverRow, isCheckedRow } = config;
|
6978
|
+
this.renderFirstCell(render, config);
|
6979
|
+
this.renderCommonCellBorder({ style });
|
6980
|
+
this.renderLastCell({ style, isHoverRow, isCheckedRow });
|
6981
|
+
}
|
6982
|
+
}
|
6983
|
+
const groupLayout = new GroupLayout();
|
6984
|
+
|
6865
6985
|
/**
|
6866
6986
|
* 绘制单元格内容的函数
|
6867
6987
|
* 利用 Canvas API 绘制每个单元格的背景颜色、文本以及其他可能的样式。这个函数通常用于自定义表格渲染,尤其是在处理大量数据时,通过直接操作 Canvas 来提高渲染性能
|
@@ -6873,11 +6993,14 @@ const createCells = (config) => {
|
|
6873
6993
|
const { rowHeight, columnCount, rowCount } = coordinate;
|
6874
6994
|
const colors = AITable.getColors();
|
6875
6995
|
const visibleColumns = AITable.getVisibleFields(aiTable);
|
6996
|
+
const linearRows = aiTable.context?.linearRows();
|
6876
6997
|
// 初始化绘图上下文, 为后续的绘制操作做准备
|
6877
6998
|
cellDrawer.initCtx(ctx);
|
6878
6999
|
addRowLayout.initCtx(ctx);
|
6879
7000
|
recordRowLayout.initCtx(ctx);
|
7001
|
+
groupLayout.initCtx(ctx);
|
6880
7002
|
const coverCell = getCoverCell(aiTable);
|
7003
|
+
const frozenColumnCount = aiTable.context?.frozenColumnCount() || 1;
|
6881
7004
|
// 遍历列, 确定在哪些列上绘制单元格
|
6882
7005
|
for (let columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
|
6883
7006
|
if (columnIndex > columnCount - 1)
|
@@ -6898,7 +7021,7 @@ const createCells = (config) => {
|
|
6898
7021
|
if (rowIndex > rowCount - 1)
|
6899
7022
|
break;
|
6900
7023
|
const row = context.linearRows()[rowIndex];
|
6901
|
-
const { _id: recordId, type } = row;
|
7024
|
+
const { _id: recordId, type, depth = 0 } = row;
|
6902
7025
|
const y = coordinate.getRowOffset(rowIndex) + AI_TABLE_OFFSET;
|
6903
7026
|
const { rowIndex: pointRowIndex, targetName } = context.pointPosition();
|
6904
7027
|
const isHover = pointRowIndex === rowIndex;
|
@@ -6918,7 +7041,8 @@ const createCells = (config) => {
|
|
6918
7041
|
rowHeadWidth: context.rowHeadWidth(),
|
6919
7042
|
hiddenIndexColumn: !!context.aiFieldConfig()?.hiddenIndexColumn,
|
6920
7043
|
hiddenRowDrag: !!context.aiFieldConfig()?.hiddenRowDrag,
|
6921
|
-
readonly: aiTable.context?.readonly?.()
|
7044
|
+
readonly: aiTable.context?.readonly?.(),
|
7045
|
+
frozenColumnCount
|
6922
7046
|
});
|
6923
7047
|
addRowLayout.render({
|
6924
7048
|
isHoverRow,
|
@@ -6944,7 +7068,8 @@ const createCells = (config) => {
|
|
6944
7068
|
rowHeadWidth: context.rowHeadWidth(),
|
6945
7069
|
hiddenIndexColumn: !!context.aiFieldConfig()?.hiddenIndexColumn,
|
6946
7070
|
hiddenRowDrag: !!context.aiFieldConfig()?.hiddenRowDrag,
|
6947
|
-
readonly: aiTable.context?.readonly?.()
|
7071
|
+
readonly: aiTable.context?.readonly?.(),
|
7072
|
+
frozenColumnCount
|
6948
7073
|
});
|
6949
7074
|
recordRowLayout.render({
|
6950
7075
|
row,
|
@@ -6953,12 +7078,18 @@ const createCells = (config) => {
|
|
6953
7078
|
isHoverRow: isHoverRecord(isHover, targetName),
|
6954
7079
|
isCheckedRow: isSelectedRecord(recordId, aiTable)
|
6955
7080
|
});
|
7081
|
+
const isGroupAndFirstColumn = depth > 0 && columnIndex === 0;
|
6956
7082
|
const { width, offset } = getCellHorizontalPosition({
|
6957
7083
|
columnIndex,
|
6958
|
-
columnWidth,
|
6959
|
-
|
7084
|
+
columnWidth: isGroupAndFirstColumn ? columnWidth - AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE : columnWidth,
|
7085
|
+
// columnWidth,
|
7086
|
+
columnCount,
|
7087
|
+
depth
|
6960
7088
|
});
|
6961
|
-
|
7089
|
+
let realX = x + offset + AI_TABLE_OFFSET;
|
7090
|
+
if (isGroupAndFirstColumn) {
|
7091
|
+
realX += AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE;
|
7092
|
+
}
|
6962
7093
|
const realY = y + AI_TABLE_OFFSET;
|
6963
7094
|
const style = { fontWeight: DEFAULT_FONT_STYLE };
|
6964
7095
|
const cellValue = AITableQueries.getFieldValue(aiTable, [recordId, fieldId]);
|
@@ -6999,6 +7130,59 @@ const createCells = (config) => {
|
|
6999
7130
|
else {
|
7000
7131
|
cellDrawer.renderCell(render, ctx, columnWidth);
|
7001
7132
|
}
|
7133
|
+
break;
|
7134
|
+
}
|
7135
|
+
case AITableRowType.group: {
|
7136
|
+
const fieldId = row.fieldId;
|
7137
|
+
const field = aiTable.fieldsMap()[fieldId];
|
7138
|
+
groupLayout.init({
|
7139
|
+
x,
|
7140
|
+
y,
|
7141
|
+
rowIndex,
|
7142
|
+
columnIndex,
|
7143
|
+
columnWidth,
|
7144
|
+
rowHeight,
|
7145
|
+
columnCount,
|
7146
|
+
containerWidth: coordinate.containerWidth,
|
7147
|
+
rowHeadWidth: context.rowHeadWidth(),
|
7148
|
+
hiddenIndexColumn: !!context.aiFieldConfig()?.hiddenIndexColumn,
|
7149
|
+
hiddenRowDrag: !!context.aiFieldConfig()?.hiddenRowDrag,
|
7150
|
+
readonly: aiTable.context?.readonly?.(),
|
7151
|
+
frozenColumnCount
|
7152
|
+
});
|
7153
|
+
const { width, offset } = getCellHorizontalPosition({
|
7154
|
+
columnIndex,
|
7155
|
+
columnWidth,
|
7156
|
+
columnCount,
|
7157
|
+
depth
|
7158
|
+
});
|
7159
|
+
const realX = x + offset + AI_TABLE_OFFSET;
|
7160
|
+
const realY = y + AI_TABLE_OFFSET;
|
7161
|
+
const style = { fontWeight: DEFAULT_FONT_STYLE };
|
7162
|
+
const cellValue = row.groupValue;
|
7163
|
+
const fieldModel = FieldModelMap[field.type];
|
7164
|
+
const transformValue = fieldModel.transformCellValue(cellValue, { aiTable, field });
|
7165
|
+
const render = {
|
7166
|
+
aiTable,
|
7167
|
+
x: realX,
|
7168
|
+
y: realY,
|
7169
|
+
columnWidth: width,
|
7170
|
+
rowHeight,
|
7171
|
+
recordId: recordId,
|
7172
|
+
field,
|
7173
|
+
cellValue,
|
7174
|
+
transformValue,
|
7175
|
+
references,
|
7176
|
+
isActive: isSelectedField(fieldId, aiTable),
|
7177
|
+
style,
|
7178
|
+
colors,
|
7179
|
+
isCoverCell: false
|
7180
|
+
};
|
7181
|
+
groupLayout.render(render, {
|
7182
|
+
row: row,
|
7183
|
+
isHoverRow: isHoverRecord(isHover, targetName),
|
7184
|
+
isCheckedRow: isSelectedRecord(recordId, aiTable)
|
7185
|
+
});
|
7002
7186
|
}
|
7003
7187
|
}
|
7004
7188
|
}
|
@@ -9343,6 +9527,106 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
9343
9527
|
}]
|
9344
9528
|
}] });
|
9345
9529
|
|
9530
|
+
const createGroupCells = (config) => {
|
9531
|
+
const { coordinate, rowStartIndex, rowStopIndex, columnStartIndex, columnStopIndex, aiTable, actions, readonly } = config;
|
9532
|
+
const linearRows = aiTable.context?.linearRows();
|
9533
|
+
const { columnCount } = coordinate;
|
9534
|
+
const groups = [];
|
9535
|
+
for (let rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
|
9536
|
+
if (rowIndex > columnCount - 1)
|
9537
|
+
break;
|
9538
|
+
if (rowIndex < 0)
|
9539
|
+
continue;
|
9540
|
+
const row = linearRows[rowIndex];
|
9541
|
+
const { depth } = row;
|
9542
|
+
if (row == null)
|
9543
|
+
continue;
|
9544
|
+
if (row.type !== AITableRowType.group)
|
9545
|
+
continue;
|
9546
|
+
const y = coordinate.getRowOffset(rowIndex) + AI_TABLE_OFFSET;
|
9547
|
+
const rowHeight = coordinate.getRowHeight(rowIndex);
|
9548
|
+
for (let columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
|
9549
|
+
const columnWidth = coordinate.getColumnWidth(columnIndex);
|
9550
|
+
const { width, offset } = getCellHorizontalPosition({
|
9551
|
+
columnIndex,
|
9552
|
+
columnWidth,
|
9553
|
+
columnCount,
|
9554
|
+
depth
|
9555
|
+
});
|
9556
|
+
const x = coordinate.getColumnOffset(columnIndex);
|
9557
|
+
const group = {
|
9558
|
+
aiTable,
|
9559
|
+
coordinate,
|
9560
|
+
columnIndex,
|
9561
|
+
x: x + offset + AI_TABLE_CELL_PADDING,
|
9562
|
+
y,
|
9563
|
+
width,
|
9564
|
+
height: rowHeight,
|
9565
|
+
row,
|
9566
|
+
readonly
|
9567
|
+
};
|
9568
|
+
groups.push(group);
|
9569
|
+
}
|
9570
|
+
}
|
9571
|
+
return groups;
|
9572
|
+
};
|
9573
|
+
|
9574
|
+
class AITableFrozenGroups {
|
9575
|
+
constructor() {
|
9576
|
+
this.config = input.required();
|
9577
|
+
this.groupOptions = computed(() => {
|
9578
|
+
const { coordinate } = this.config();
|
9579
|
+
const { frozenColumnCount } = coordinate;
|
9580
|
+
return createGroupCells({
|
9581
|
+
...this.config(),
|
9582
|
+
columnStartIndex: 0,
|
9583
|
+
columnStopIndex: frozenColumnCount - 1
|
9584
|
+
});
|
9585
|
+
});
|
9586
|
+
this.groupFirstColumnCollapsedIcons = computed(() => {
|
9587
|
+
const groupOptions = this.groupOptions();
|
9588
|
+
const collapsedIcons = [];
|
9589
|
+
groupOptions.forEach((groupOption) => {
|
9590
|
+
const { row, x, y, height, columnIndex, readonly } = groupOption;
|
9591
|
+
if (columnIndex === 0) {
|
9592
|
+
const { isCollapsed, fieldId, groupId } = row;
|
9593
|
+
collapsedIcons.push({
|
9594
|
+
name: generateTargetName({
|
9595
|
+
targetName: AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON,
|
9596
|
+
fieldId: fieldId,
|
9597
|
+
source: groupId,
|
9598
|
+
mouseStyle: readonly ? 'default' : 'pointer'
|
9599
|
+
}),
|
9600
|
+
x,
|
9601
|
+
y: y + (height - AI_TABLE_ICON_COMMON_SIZE) / 2,
|
9602
|
+
data: isCollapsed ? AngleRightPath : AngleDownPath
|
9603
|
+
});
|
9604
|
+
}
|
9605
|
+
});
|
9606
|
+
return collapsedIcons;
|
9607
|
+
});
|
9608
|
+
}
|
9609
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableFrozenGroups, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
9610
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableFrozenGroups, isStandalone: true, selector: "ai-table-frozen-groups", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
9611
|
+
@for (collapsedIcon of groupFirstColumnCollapsedIcons(); track $index) {
|
9612
|
+
<ai-table-icon [config]="collapsedIcon"></ai-table-icon>
|
9613
|
+
}
|
9614
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
9615
|
+
}
|
9616
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableFrozenGroups, decorators: [{
|
9617
|
+
type: Component,
|
9618
|
+
args: [{
|
9619
|
+
selector: 'ai-table-frozen-groups',
|
9620
|
+
template: `
|
9621
|
+
@for (collapsedIcon of groupFirstColumnCollapsedIcons(); track $index) {
|
9622
|
+
<ai-table-icon [config]="collapsedIcon"></ai-table-icon>
|
9623
|
+
}
|
9624
|
+
`,
|
9625
|
+
imports: [CommonModule, AITableIcon],
|
9626
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
9627
|
+
}]
|
9628
|
+
}] });
|
9629
|
+
|
9346
9630
|
Konva.pixelRatio = 2;
|
9347
9631
|
class AITableRenderer {
|
9348
9632
|
constructor() {
|
@@ -9642,7 +9926,7 @@ class AITableRenderer {
|
|
9642
9926
|
this.isHoverStatContainer.set(isHover);
|
9643
9927
|
}
|
9644
9928
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
9645
|
-
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 }); }
|
9929
|
+
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-groups [config]=\"cellsConfig()\"></ai-table-frozen-groups>\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"] }, { kind: "component", type: AITableFrozenGroups, selector: "ai-table-frozen-groups", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
9646
9930
|
}
|
9647
9931
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableRenderer, decorators: [{
|
9648
9932
|
type: Component,
|
@@ -9663,8 +9947,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
9663
9947
|
AITableFillHandle,
|
9664
9948
|
AITableFieldStats,
|
9665
9949
|
AITableBackground,
|
9666
|
-
AITableFrozenFieldShadow
|
9667
|
-
|
9950
|
+
AITableFrozenFieldShadow,
|
9951
|
+
AITableFrozenGroups
|
9952
|
+
], 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-groups [config]=\"cellsConfig()\"></ai-table-frozen-groups>\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" }]
|
9668
9953
|
}] });
|
9669
9954
|
|
9670
9955
|
class AITableCellRate extends CoverCellBase {
|
@@ -11543,6 +11828,7 @@ class AITableGridBase {
|
|
11543
11828
|
this.aiMaxSelectOptions = input();
|
11544
11829
|
this.aiReferences = input.required();
|
11545
11830
|
this.aiBuildRenderDataFn = input();
|
11831
|
+
this.aiBuildGroupLinearRowsFn = input();
|
11546
11832
|
this.aiGetI18nTextByKey = input();
|
11547
11833
|
this.aiKeywords = input();
|
11548
11834
|
this.aiFrozenColumnCountFn = input();
|
@@ -11562,6 +11848,7 @@ class AITableGridBase {
|
|
11562
11848
|
this.aiMoveRecords = output();
|
11563
11849
|
this.aiClick = output();
|
11564
11850
|
this.aiDbClick = output();
|
11851
|
+
this.aiRowGroupCollapseClick = output();
|
11565
11852
|
this.fieldMenus = computed(() => {
|
11566
11853
|
const fieldMenusFn = this.aiFieldConfig()?.fieldMenus;
|
11567
11854
|
if (fieldMenusFn && this.aiTable) {
|
@@ -11658,7 +11945,7 @@ class AITableGridBase {
|
|
11658
11945
|
}
|
11659
11946
|
}
|
11660
11947
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableGridBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
11661
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: AITableGridBase, isStandalone: true, selector: "ai-table-grid-base", inputs: { aiRecords: { classPropertyName: "aiRecords", publicName: "aiRecords", isSignal: true, isRequired: true, transformFunction: null }, aiFields: { classPropertyName: "aiFields", publicName: "aiFields", isSignal: true, isRequired: true, transformFunction: null }, aiFieldsSizeMap: { classPropertyName: "aiFieldsSizeMap", publicName: "aiFieldsSizeMap", isSignal: true, isRequired: true, transformFunction: null }, aiContextMenuItems: { classPropertyName: "aiContextMenuItems", publicName: "aiContextMenuItems", isSignal: true, isRequired: false, transformFunction: null }, aiFieldConfig: { classPropertyName: "aiFieldConfig", publicName: "aiFieldConfig", isSignal: true, isRequired: false, transformFunction: null }, aiReadonly: { classPropertyName: "aiReadonly", publicName: "aiReadonly", isSignal: true, isRequired: false, transformFunction: null }, aiPlugins: { classPropertyName: "aiPlugins", publicName: "aiPlugins", isSignal: true, isRequired: false, transformFunction: null }, aiMaxFields: { classPropertyName: "aiMaxFields", publicName: "aiMaxFields", isSignal: true, isRequired: false, transformFunction: null }, aiMaxRecords: { classPropertyName: "aiMaxRecords", publicName: "aiMaxRecords", isSignal: true, isRequired: false, transformFunction: null }, aiMaxSelectOptions: { classPropertyName: "aiMaxSelectOptions", publicName: "aiMaxSelectOptions", isSignal: true, isRequired: false, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: true, transformFunction: null }, aiBuildRenderDataFn: { classPropertyName: "aiBuildRenderDataFn", publicName: "aiBuildRenderDataFn", isSignal: true, isRequired: false, transformFunction: null }, aiGetI18nTextByKey: { classPropertyName: "aiGetI18nTextByKey", publicName: "aiGetI18nTextByKey", isSignal: true, isRequired: false, transformFunction: null }, aiKeywords: { classPropertyName: "aiKeywords", publicName: "aiKeywords", isSignal: true, isRequired: false, transformFunction: null }, aiFrozenColumnCountFn: { classPropertyName: "aiFrozenColumnCountFn", publicName: "aiFrozenColumnCountFn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", aiFieldsSizeMap: "aiFieldsSizeMapChange", aiTableInitialized: "aiTableInitialized", aiAddRecord: "aiAddRecord", aiAddField: "aiAddField", aiMoveField: "aiMoveField", aiUpdateFieldValues: "aiUpdateFieldValues", aiSetField: "aiSetField", aiSetFieldWidth: "aiSetFieldWidth", aiSetFieldStatType: "aiSetFieldStatType", aiMoveRecords: "aiMoveRecords", aiClick: "aiClick", aiDbClick: "aiDbClick" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
11948
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: AITableGridBase, isStandalone: true, selector: "ai-table-grid-base", inputs: { aiRecords: { classPropertyName: "aiRecords", publicName: "aiRecords", isSignal: true, isRequired: true, transformFunction: null }, aiFields: { classPropertyName: "aiFields", publicName: "aiFields", isSignal: true, isRequired: true, transformFunction: null }, aiFieldsSizeMap: { classPropertyName: "aiFieldsSizeMap", publicName: "aiFieldsSizeMap", isSignal: true, isRequired: true, transformFunction: null }, aiContextMenuItems: { classPropertyName: "aiContextMenuItems", publicName: "aiContextMenuItems", isSignal: true, isRequired: false, transformFunction: null }, aiFieldConfig: { classPropertyName: "aiFieldConfig", publicName: "aiFieldConfig", isSignal: true, isRequired: false, transformFunction: null }, aiReadonly: { classPropertyName: "aiReadonly", publicName: "aiReadonly", isSignal: true, isRequired: false, transformFunction: null }, aiPlugins: { classPropertyName: "aiPlugins", publicName: "aiPlugins", isSignal: true, isRequired: false, transformFunction: null }, aiMaxFields: { classPropertyName: "aiMaxFields", publicName: "aiMaxFields", isSignal: true, isRequired: false, transformFunction: null }, aiMaxRecords: { classPropertyName: "aiMaxRecords", publicName: "aiMaxRecords", isSignal: true, isRequired: false, transformFunction: null }, aiMaxSelectOptions: { classPropertyName: "aiMaxSelectOptions", publicName: "aiMaxSelectOptions", isSignal: true, isRequired: false, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: true, transformFunction: null }, aiBuildRenderDataFn: { classPropertyName: "aiBuildRenderDataFn", publicName: "aiBuildRenderDataFn", isSignal: true, isRequired: false, transformFunction: null }, aiBuildGroupLinearRowsFn: { classPropertyName: "aiBuildGroupLinearRowsFn", publicName: "aiBuildGroupLinearRowsFn", isSignal: true, isRequired: false, transformFunction: null }, aiGetI18nTextByKey: { classPropertyName: "aiGetI18nTextByKey", publicName: "aiGetI18nTextByKey", isSignal: true, isRequired: false, transformFunction: null }, aiKeywords: { classPropertyName: "aiKeywords", publicName: "aiKeywords", isSignal: true, isRequired: false, transformFunction: null }, aiFrozenColumnCountFn: { classPropertyName: "aiFrozenColumnCountFn", publicName: "aiFrozenColumnCountFn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", aiFieldsSizeMap: "aiFieldsSizeMapChange", aiTableInitialized: "aiTableInitialized", aiAddRecord: "aiAddRecord", aiAddField: "aiAddField", aiMoveField: "aiMoveField", aiUpdateFieldValues: "aiUpdateFieldValues", aiSetField: "aiSetField", aiSetFieldWidth: "aiSetFieldWidth", aiSetFieldStatType: "aiSetFieldStatType", aiMoveRecords: "aiMoveRecords", aiClick: "aiClick", aiDbClick: "aiDbClick", aiRowGroupCollapseClick: "aiRowGroupCollapseClick" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
11662
11949
|
}
|
11663
11950
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableGridBase, decorators: [{
|
11664
11951
|
type: Component,
|
@@ -12380,7 +12667,7 @@ class AITableGrid extends AITableGridBase {
|
|
12380
12667
|
this.verticalBarRef = viewChild('verticalBar');
|
12381
12668
|
this.horizontalBarRef = viewChild('horizontalBar');
|
12382
12669
|
this.linearRows = computed(() => {
|
12383
|
-
return buildGridLinearRows(this.gridData().records, !this.aiReadonly());
|
12670
|
+
return buildGridLinearRows(this.gridData().records, !this.aiReadonly(), this.aiTable, this.aiBuildGroupLinearRowsFn?.());
|
12384
12671
|
});
|
12385
12672
|
this.domToolTips = computed(() => {
|
12386
12673
|
const scrollTop = this.aiTable.context.scrollState().scrollTop;
|
@@ -12440,7 +12727,7 @@ class AITableGrid extends AITableGridBase {
|
|
12440
12727
|
columnCount: fields.length,
|
12441
12728
|
rowInitSize: AI_TABLE_FIELD_HEAD_HEIGHT,
|
12442
12729
|
columnInitSize: this.aiTable.context.rowHeadWidth(),
|
12443
|
-
rowIndicesSizeMap:
|
12730
|
+
rowIndicesSizeMap: this.rowIndicesMap(),
|
12444
12731
|
columnIndicesSizeMap: getColumnIndicesSizeMap(this.aiTable, fields),
|
12445
12732
|
frozenColumnCount: this.frozenColumnCount()
|
12446
12733
|
});
|
@@ -12478,6 +12765,15 @@ class AITableGrid extends AITableGridBase {
|
|
12478
12765
|
};
|
12479
12766
|
});
|
12480
12767
|
// rowAddFilterTooltip = getI18nTextByKey(this.aiTable, AITableGridI18nKey.rowAddFilterTooltip);
|
12768
|
+
this.rowIndicesMap = computed(() => {
|
12769
|
+
const rowIndicesMap = {};
|
12770
|
+
this.linearRows().forEach((row, index) => {
|
12771
|
+
if (row.type === AITableRowType.blank) {
|
12772
|
+
rowIndicesMap[index] = 0;
|
12773
|
+
}
|
12774
|
+
});
|
12775
|
+
return rowIndicesMap;
|
12776
|
+
});
|
12481
12777
|
this.actions = {
|
12482
12778
|
updateFieldValues: (data) => {
|
12483
12779
|
this.aiUpdateFieldValues.emit(data);
|
@@ -12939,6 +13235,13 @@ class AITableGrid extends AITableGridBase {
|
|
12939
13235
|
}
|
12940
13236
|
}
|
12941
13237
|
break;
|
13238
|
+
case AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON: {
|
13239
|
+
const groupId = targetNameDetail.source;
|
13240
|
+
if (groupId) {
|
13241
|
+
this.aiRowGroupCollapseClick.emit(groupId);
|
13242
|
+
}
|
13243
|
+
break;
|
13244
|
+
}
|
12942
13245
|
}
|
12943
13246
|
return;
|
12944
13247
|
}
|
@@ -13069,8 +13372,8 @@ class AITableGrid extends AITableGridBase {
|
|
13069
13372
|
if (!hasSelectedCells) {
|
13070
13373
|
return;
|
13071
13374
|
}
|
13072
|
-
const
|
13073
|
-
if (
|
13375
|
+
const editingCell = this.aiTable.editingCell();
|
13376
|
+
if (editingCell && editingCell.path) {
|
13074
13377
|
return;
|
13075
13378
|
}
|
13076
13379
|
// 检查事件目标是否是输入框或文本区域
|
@@ -13326,5 +13629,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
13326
13629
|
* Generated bundle index. Do not edit.
|
13327
13630
|
*/
|
13328
13631
|
|
13329
|
-
export { AITable, AITableActionIcon, AITableAddField, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableBackground, AITableCellAttachment, AITableCellCheckbox, AITableCellLink, AITableCellProgress, AITableCellRate, AITableCellRichText, AITableCellText, AITableCells, AITableCheckType, AITableColumnHeads, AITableContextMenu, AITableDomGrid, AITableFieldHead, AITableFieldIcon, AITableFieldIsSameOptionPipe, AITableFieldSetting, AITableFrozenCells, AITableFrozenColumnHeads, AITableFrozenFieldShadow, AITableFrozenPlaceholderCells, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridI18nKey, AITableGridI18nText, 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, CheckboxMenuSort, Colors, ColumnCalendarFilledPath, ColumnCheckboxFilledPath, 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, clearCoverCell, clearSelectedCells, clearSelection, clearSelectionFields, clearSelectionRecords, closeEditingCell, closeExpendCell, 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, scrollToMatchedCell, selectCells, selectField, setActiveCell, setEditingCell, setExpandCellInfo, setMouseStyle, setSelection, shortIdCreator, shortIdsCreator, statDateRangeOfDays, statDateRangeOfMonths, statEarliestTime, statLatestTime, stringInclude, textDataCache, toAttachmentFieldValue, toDateFieldValue, toLinkFieldValue, toMemberFieldValue, toNumberFieldValue, toProgressFieldValue, toRateFieldValue, toRichTextFieldValue, toSelectFieldValue, toTextFieldValue, toggleSelectAllRecords, toggleSelectRecord, transformToCellText, updatePicture, writeToAITable, writeToClipboard, zhIntlCollator };
|
13632
|
+
export { AITable, AITableActionIcon, AITableAddField, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableBackground, AITableCellAttachment, AITableCellCheckbox, AITableCellLink, AITableCellProgress, AITableCellRate, AITableCellRichText, AITableCellText, AITableCells, AITableCheckType, AITableColumnHeads, AITableContextMenu, AITableDomGrid, AITableFieldHead, AITableFieldIcon, AITableFieldIsSameOptionPipe, AITableFieldSetting, AITableFrozenCells, AITableFrozenColumnHeads, AITableFrozenFieldShadow, AITableFrozenPlaceholderCells, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridI18nKey, AITableGridI18nText, 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_GROUP_MAX_LEVEL, 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_GROUP_COLLAPSE_BUTTON, AI_TABLE_ROW_GROUP_OFFSET, 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, AngleRightPath, AttachmentField, AttachmentPath, CellDrawer, Check, CheckboxMenuSort, Colors, ColumnCalendarFilledPath, ColumnCheckboxFilledPath, 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, clearCoverCell, clearSelectedCells, clearSelection, clearSelectionFields, clearSelectionRecords, closeEditingCell, closeExpendCell, 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, scrollToMatchedCell, selectCells, selectField, setActiveCell, setEditingCell, setExpandCellInfo, setMouseStyle, setSelection, shortIdCreator, shortIdsCreator, statDateRangeOfDays, statDateRangeOfMonths, statEarliestTime, statLatestTime, stringInclude, textDataCache, toAttachmentFieldValue, toDateFieldValue, toLinkFieldValue, toMemberFieldValue, toNumberFieldValue, toProgressFieldValue, toRateFieldValue, toRichTextFieldValue, toSelectFieldValue, toTextFieldValue, toggleSelectAllRecords, toggleSelectRecord, transformToCellText, updatePicture, writeToAITable, writeToClipboard, zhIntlCollator };
|
13330
13633
|
//# sourceMappingURL=ai-table-grid.mjs.map
|