@ai-table/grid 0.0.72 → 0.1.0
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/angular-konva/components/container.component.d.ts.map +1 -1
- package/angular-konva/components/shape.component.d.ts.map +1 -1
- package/angular-konva/components/stage.component.d.ts.map +1 -1
- package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
- package/components/cell-editors/date/date-editor.component.d.ts.map +1 -1
- package/components/cell-editors/link/edit-link/edit-link.component.d.ts.map +1 -1
- package/components/cell-editors/link/link-editor.component.d.ts.map +1 -1
- package/components/cell-editors/number/number-editor.component.d.ts.map +1 -1
- package/components/cell-editors/select/select-editor.component.d.ts.map +1 -1
- package/components/cell-editors/text/text-editor.component.d.ts.map +1 -1
- package/components/cell-views/select/option.component.d.ts.map +1 -1
- package/components/context-menu/context-menu.component.d.ts.map +1 -1
- package/components/drag/drag.component.d.ts.map +1 -1
- package/components/field-menu/field-menu.component.d.ts.map +1 -1
- package/components/field-setting/field-setting.component.d.ts.map +1 -1
- package/core/context.d.ts +2 -0
- package/core/context.d.ts.map +1 -1
- package/core/types/ai-table.d.ts.map +1 -1
- package/core/utils/field.d.ts.map +1 -1
- package/core/utils/queries.d.ts.map +1 -1
- package/core/utils/short-id.d.ts.map +1 -1
- package/dom-grid.component.d.ts.map +1 -1
- package/fesm2022/ai-table-grid.mjs +322 -310
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid-base.component.d.ts +3 -1
- package/grid-base.component.d.ts.map +1 -1
- package/grid.component.d.ts +1 -1
- package/grid.component.d.ts.map +1 -1
- package/package.json +3 -5
- package/pipes/grid.pipe.d.ts.map +1 -1
- package/renderer/components/action-icon.component.d.ts.map +1 -1
- package/renderer/components/add-field-column.component.d.ts.map +1 -1
- package/renderer/components/cells/attachment.component.d.ts.map +1 -1
- package/renderer/components/cells/link.component.d.ts.map +1 -1
- package/renderer/components/cells/progress.component.d.ts.map +1 -1
- package/renderer/components/cells/rate.component.d.ts.map +1 -1
- package/renderer/components/cells/rich-text.component.d.ts.map +1 -1
- package/renderer/components/cells.component.d.ts.map +1 -1
- package/renderer/components/field-head.component.d.ts +2 -2
- package/renderer/components/field-head.component.d.ts.map +1 -1
- package/renderer/components/field-icon.component.d.ts.map +1 -1
- package/renderer/components/frozen-cells.component.d.ts.map +1 -1
- package/renderer/components/frozen-heads.component.d.ts +1 -1
- package/renderer/components/frozen-heads.component.d.ts.map +1 -1
- package/renderer/components/frozen-placeholder-cells.component.d.ts.map +1 -1
- package/renderer/components/heads.component.d.ts +1 -1
- package/renderer/components/heads.component.d.ts.map +1 -1
- package/renderer/components/hover-cell.component.d.ts.map +1 -1
- package/renderer/components/hover-row-heads.component.d.ts.map +1 -1
- package/renderer/components/icon.component.d.ts.map +1 -1
- package/renderer/components/other-rows.component.d.ts.map +1 -1
- package/renderer/components/placeholder-cells.component.d.ts.map +1 -1
- package/renderer/components/text.component.d.ts.map +1 -1
- package/renderer/creations/create-active-cell-border.d.ts.map +1 -1
- package/renderer/creations/create-cells.d.ts.map +1 -1
- package/renderer/creations/create-heads.d.ts.map +1 -1
- package/renderer/drawers/add-row-layout-drawer.d.ts +1 -1
- package/renderer/drawers/add-row-layout-drawer.d.ts.map +1 -1
- package/renderer/drawers/cell-drawer.d.ts.map +1 -1
- package/renderer/drawers/drawer.d.ts +1 -1
- package/renderer/renderer.component.d.ts +5 -4
- package/renderer/renderer.component.d.ts.map +1 -1
- package/types/cell.d.ts +2 -0
- package/types/cell.d.ts.map +1 -1
- package/types/component-config.d.ts +2 -0
- package/types/component-config.d.ts.map +1 -1
- package/types/grid.d.ts +4 -0
- package/types/grid.d.ts.map +1 -1
- package/types/row.d.ts +1 -0
- package/types/row.d.ts.map +1 -1
- package/utils/build.d.ts.map +1 -1
- package/utils/clipboard/clipboard.d.ts.map +1 -1
- package/utils/clipboard/copy.d.ts.map +1 -1
- package/utils/clipboard/paste.d.ts +5 -1
- package/utils/clipboard/paste.d.ts.map +1 -1
- package/utils/common.d.ts.map +1 -1
- package/utils/field/model/date.d.ts.map +1 -1
- package/utils/field/model/link.d.ts.map +1 -1
- package/utils/field/model/progress.d.ts.map +1 -1
- package/utils/field/model/text.d.ts.map +1 -1
- package/utils/get-text-width.d.ts.map +1 -1
- package/utils/i18n.d.ts +2 -0
- package/utils/i18n.d.ts.map +1 -1
- package/utils/match-keywords.d.ts.map +1 -1
- package/utils/position.d.ts.map +1 -1
- package/utils/style.d.ts.map +1 -1
- package/utils/text-measure.d.ts.map +1 -1
- package/utils/visible-range.d.ts.map +1 -1
- package/esm2022/ai-table-grid.mjs +0 -5
- package/esm2022/angular-konva/components/container.component.mjs +0 -29
- package/esm2022/angular-konva/components/container.token.mjs +0 -3
- package/esm2022/angular-konva/components/index.mjs +0 -4
- package/esm2022/angular-konva/components/shape.component.mjs +0 -142
- package/esm2022/angular-konva/components/stage.component.mjs +0 -123
- package/esm2022/angular-konva/index.mjs +0 -5
- package/esm2022/angular-konva/interfaces/component.mjs +0 -4
- package/esm2022/angular-konva/interfaces/config.mjs +0 -2
- package/esm2022/angular-konva/interfaces/event-object.mjs +0 -2
- package/esm2022/angular-konva/interfaces/index.mjs +0 -5
- package/esm2022/angular-konva/interfaces/shape.mjs +0 -42
- package/esm2022/angular-konva/utils/apply-node-props.mjs +0 -67
- package/esm2022/angular-konva/utils/common.mjs +0 -48
- package/esm2022/angular-konva/utils/index.mjs +0 -5
- package/esm2022/angular-konva/utils/types.mjs +0 -2
- package/esm2022/angular-konva/utils/update-picture.mjs +0 -7
- package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +0 -56
- package/esm2022/components/cell-editors/date/date-editor.component.mjs +0 -87
- package/esm2022/components/cell-editors/link/edit-link/edit-link.component.mjs +0 -81
- package/esm2022/components/cell-editors/link/link-editor.component.mjs +0 -122
- package/esm2022/components/cell-editors/number/number-editor.component.mjs +0 -41
- package/esm2022/components/cell-editors/select/select-editor.component.mjs +0 -74
- package/esm2022/components/cell-editors/text/text-editor.component.mjs +0 -76
- package/esm2022/components/cell-views/select/option.component.mjs +0 -28
- package/esm2022/components/context-menu/context-menu.component.mjs +0 -42
- package/esm2022/components/drag/drag.component.mjs +0 -300
- package/esm2022/components/field-menu/field-menu.component.mjs +0 -47
- package/esm2022/components/field-setting/field-setting.component.mjs +0 -142
- package/esm2022/components/index.mjs +0 -10
- package/esm2022/constants/colors.mjs +0 -19
- package/esm2022/constants/editor.mjs +0 -11
- package/esm2022/constants/file-icon.mjs +0 -342
- package/esm2022/constants/grid.mjs +0 -35
- package/esm2022/constants/icon.mjs +0 -30
- package/esm2022/constants/index.mjs +0 -7
- package/esm2022/constants/table.mjs +0 -78
- package/esm2022/constants/text.mjs +0 -23
- package/esm2022/core/constants/field.mjs +0 -107
- package/esm2022/core/context.mjs +0 -29
- package/esm2022/core/coordinate.mjs +0 -222
- package/esm2022/core/index.mjs +0 -6
- package/esm2022/core/types/ai-table.mjs +0 -57
- package/esm2022/core/types/core.mjs +0 -2
- package/esm2022/core/types/index.mjs +0 -3
- package/esm2022/core/utils/common.mjs +0 -45
- package/esm2022/core/utils/field.mjs +0 -64
- package/esm2022/core/utils/id-creator.mjs +0 -21
- package/esm2022/core/utils/index.mjs +0 -5
- package/esm2022/core/utils/queries.mjs +0 -80
- package/esm2022/core/utils/short-id.mjs +0 -53
- package/esm2022/dom-grid.component.mjs +0 -80
- package/esm2022/grid-base.component.mjs +0 -145
- package/esm2022/grid.component.mjs +0 -649
- package/esm2022/index.mjs +0 -2
- package/esm2022/pipes/grid.pipe.mjs +0 -110
- package/esm2022/pipes/index.mjs +0 -2
- package/esm2022/public-api.mjs +0 -12
- package/esm2022/renderer/components/action-icon.component.mjs +0 -117
- package/esm2022/renderer/components/add-field-column.component.mjs +0 -88
- package/esm2022/renderer/components/cells/attachment.component.mjs +0 -107
- package/esm2022/renderer/components/cells/cells.mjs +0 -6
- package/esm2022/renderer/components/cells/index.mjs +0 -7
- package/esm2022/renderer/components/cells/link.component.mjs +0 -89
- package/esm2022/renderer/components/cells/progress.component.mjs +0 -268
- package/esm2022/renderer/components/cells/rate.component.mjs +0 -153
- package/esm2022/renderer/components/cells/rich-text.component.mjs +0 -95
- package/esm2022/renderer/components/cells.component.mjs +0 -35
- package/esm2022/renderer/components/field-head.component.mjs +0 -146
- package/esm2022/renderer/components/field-icon.component.mjs +0 -72
- package/esm2022/renderer/components/frozen-cells.component.mjs +0 -36
- package/esm2022/renderer/components/frozen-heads.component.mjs +0 -214
- package/esm2022/renderer/components/frozen-placeholder-cells.component.mjs +0 -38
- package/esm2022/renderer/components/heads.component.mjs +0 -38
- package/esm2022/renderer/components/hover-cell.component.mjs +0 -104
- package/esm2022/renderer/components/hover-row-heads.component.mjs +0 -132
- package/esm2022/renderer/components/icon.component.mjs +0 -84
- package/esm2022/renderer/components/index.mjs +0 -15
- package/esm2022/renderer/components/other-rows.component.mjs +0 -68
- package/esm2022/renderer/components/placeholder-cells.component.mjs +0 -33
- package/esm2022/renderer/components/text.component.mjs +0 -67
- package/esm2022/renderer/creations/create-active-cell-border.mjs +0 -70
- package/esm2022/renderer/creations/create-cells.mjs +0 -190
- package/esm2022/renderer/creations/create-heads.mjs +0 -51
- package/esm2022/renderer/drawers/add-row-layout-drawer.mjs +0 -98
- package/esm2022/renderer/drawers/cell-drawer.mjs +0 -673
- package/esm2022/renderer/drawers/drawer.mjs +0 -947
- package/esm2022/renderer/drawers/layout-drawer.mjs +0 -64
- package/esm2022/renderer/drawers/record-row-layout-drawer.mjs +0 -131
- package/esm2022/renderer/index.mjs +0 -4
- package/esm2022/renderer/interfaces/hover-cell.mjs +0 -4
- package/esm2022/renderer/interfaces/index.mjs +0 -2
- package/esm2022/renderer/renderer.component.mjs +0 -197
- package/esm2022/services/event.service.mjs +0 -241
- package/esm2022/services/field.service.mjs +0 -56
- package/esm2022/services/index.mjs +0 -4
- package/esm2022/services/selection.service.mjs +0 -151
- package/esm2022/types/avatar.mjs +0 -27
- package/esm2022/types/canvas.mjs +0 -2
- package/esm2022/types/cell.mjs +0 -2
- package/esm2022/types/clipboard.mjs +0 -2
- package/esm2022/types/component-config.mjs +0 -7
- package/esm2022/types/field.mjs +0 -2
- package/esm2022/types/grid.mjs +0 -17
- package/esm2022/types/index.mjs +0 -10
- package/esm2022/types/layout.mjs +0 -2
- package/esm2022/types/row.mjs +0 -6
- package/esm2022/utils/build.mjs +0 -39
- package/esm2022/utils/cell.mjs +0 -80
- package/esm2022/utils/clear-cells.mjs +0 -23
- package/esm2022/utils/clipboard/clipboard.mjs +0 -88
- package/esm2022/utils/clipboard/copy.mjs +0 -99
- package/esm2022/utils/clipboard/extract.mjs +0 -38
- package/esm2022/utils/clipboard/index.mjs +0 -5
- package/esm2022/utils/clipboard/paste.mjs +0 -188
- package/esm2022/utils/common.mjs +0 -50
- package/esm2022/utils/field/field-operable.mjs +0 -2
- package/esm2022/utils/field/field.mjs +0 -20
- package/esm2022/utils/field/index.mjs +0 -4
- package/esm2022/utils/field/model/attachment.mjs +0 -56
- package/esm2022/utils/field/model/date.mjs +0 -141
- package/esm2022/utils/field/model/index.mjs +0 -12
- package/esm2022/utils/field/model/link.mjs +0 -56
- package/esm2022/utils/field/model/member.mjs +0 -81
- package/esm2022/utils/field/model/number.mjs +0 -59
- package/esm2022/utils/field/model/progress.mjs +0 -69
- package/esm2022/utils/field/model/rate.mjs +0 -58
- package/esm2022/utils/field/model/rich-text.mjs +0 -39
- package/esm2022/utils/field/model/select.mjs +0 -131
- package/esm2022/utils/field/model/text.mjs +0 -32
- package/esm2022/utils/field/operate.mjs +0 -73
- package/esm2022/utils/file.mjs +0 -116
- package/esm2022/utils/get-placeholder-cells.mjs +0 -66
- package/esm2022/utils/get-text-width.mjs +0 -30
- package/esm2022/utils/hover-cell.mjs +0 -25
- package/esm2022/utils/i18n.mjs +0 -87
- package/esm2022/utils/image-cache.mjs +0 -57
- package/esm2022/utils/index.mjs +0 -19
- package/esm2022/utils/match-keywords.mjs +0 -15
- package/esm2022/utils/os.mjs +0 -16
- package/esm2022/utils/position.mjs +0 -48
- package/esm2022/utils/style.mjs +0 -37
- package/esm2022/utils/text-measure.mjs +0 -122
- package/esm2022/utils/visible-range.mjs +0 -42
@@ -1,222 +0,0 @@
|
|
1
|
-
import { AITableRowColumnType } from '@ai-table/utils';
|
2
|
-
/**
|
3
|
-
* 用于构建 Canvas 基础坐标系,后续的绘制工作以此为基础
|
4
|
-
*/
|
5
|
-
export class Coordinate {
|
6
|
-
constructor({ rowHeight, rowCount, columnCount, container, rowIndicesSizeMap = {}, columnIndicesSizeMap = {}, rowInitSize = 0, columnInitSize = 0, frozenColumnCount = 0 }) {
|
7
|
-
// 用 index 映射 每一行的 高度
|
8
|
-
this.rowIndicesSizeMap = {};
|
9
|
-
// 用 index 映射 每一列 的 宽度
|
10
|
-
this.columnIndicesSizeMap = {};
|
11
|
-
// 行坐标集中最后一行的索引
|
12
|
-
this.lastRowIndex = -1;
|
13
|
-
// 列坐标集中最后一列的索引
|
14
|
-
this.lastColumnIndex = -1;
|
15
|
-
this.rowMetaDataMap = {};
|
16
|
-
this.columnMetaDataMap = {};
|
17
|
-
this._rowHeight = rowHeight;
|
18
|
-
this.rowCount = rowCount;
|
19
|
-
this.columnCount = columnCount;
|
20
|
-
this.rowInitSize = rowInitSize;
|
21
|
-
this.columnInitSize = columnInitSize;
|
22
|
-
this.containerWidth = container.offsetWidth;
|
23
|
-
this.rowIndicesSizeMap = rowIndicesSizeMap;
|
24
|
-
this.columnIndicesSizeMap = columnIndicesSizeMap;
|
25
|
-
this.containerHeight = container.offsetHeight;
|
26
|
-
this.frozenColumnCount = frozenColumnCount;
|
27
|
-
this.container = container;
|
28
|
-
}
|
29
|
-
get rowHeight() {
|
30
|
-
return this._rowHeight;
|
31
|
-
}
|
32
|
-
set rowHeight(height) {
|
33
|
-
this._rowHeight = height;
|
34
|
-
}
|
35
|
-
/**
|
36
|
-
* 总宽度
|
37
|
-
*/
|
38
|
-
get totalWidth() {
|
39
|
-
const { offset, size } = this.getCellMetaData(this.columnCount - 1, AITableRowColumnType.column);
|
40
|
-
return offset + size;
|
41
|
-
}
|
42
|
-
/**
|
43
|
-
* 总高度
|
44
|
-
*/
|
45
|
-
get totalHeight() {
|
46
|
-
const { offset, size } = this.getCellMetaData(this.rowCount - 1, AITableRowColumnType.row);
|
47
|
-
return offset + size;
|
48
|
-
}
|
49
|
-
/**
|
50
|
-
* 根据 rowIndex 获取对应行高
|
51
|
-
*/
|
52
|
-
getRowHeight(index) {
|
53
|
-
return this.rowIndicesSizeMap[index] ?? this.rowHeight;
|
54
|
-
}
|
55
|
-
/**
|
56
|
-
* 根据 columnIndex 获取对应列宽
|
57
|
-
*/
|
58
|
-
getColumnWidth(index) {
|
59
|
-
return this.columnIndicesSizeMap[index] ?? 0;
|
60
|
-
}
|
61
|
-
/**
|
62
|
-
* 获取每个 cell 垂直/水平方向的坐标信息
|
63
|
-
*/
|
64
|
-
getCellMetaData(index, itemType) {
|
65
|
-
let cellMetadataMap, lastMeasuredIndex, offset;
|
66
|
-
const isColumnType = itemType === AITableRowColumnType.column;
|
67
|
-
if (isColumnType) {
|
68
|
-
offset = this.columnInitSize;
|
69
|
-
lastMeasuredIndex = this.lastColumnIndex;
|
70
|
-
cellMetadataMap = this.columnMetaDataMap;
|
71
|
-
}
|
72
|
-
else {
|
73
|
-
offset = this.rowInitSize;
|
74
|
-
lastMeasuredIndex = this.lastRowIndex;
|
75
|
-
cellMetadataMap = this.rowMetaDataMap;
|
76
|
-
}
|
77
|
-
if (index > lastMeasuredIndex) {
|
78
|
-
if (lastMeasuredIndex >= 0) {
|
79
|
-
const itemMetadata = cellMetadataMap[lastMeasuredIndex];
|
80
|
-
offset = itemMetadata.offset + itemMetadata.size;
|
81
|
-
}
|
82
|
-
for (let i = lastMeasuredIndex + 1; i <= index; i++) {
|
83
|
-
const size = isColumnType ? (this.columnIndicesSizeMap[i] ?? 0) : (this.rowIndicesSizeMap[i] ?? this.rowHeight);
|
84
|
-
cellMetadataMap[i] = {
|
85
|
-
offset,
|
86
|
-
size
|
87
|
-
};
|
88
|
-
offset += size;
|
89
|
-
}
|
90
|
-
if (isColumnType) {
|
91
|
-
this.lastColumnIndex = index;
|
92
|
-
}
|
93
|
-
else {
|
94
|
-
this.lastRowIndex = index;
|
95
|
-
}
|
96
|
-
}
|
97
|
-
return cellMetadataMap[index] || { size: 0, offset: 0 };
|
98
|
-
}
|
99
|
-
/**
|
100
|
-
* 查找最近的单元格索引
|
101
|
-
* 性能较差,但无论如何都可以找到
|
102
|
-
*/
|
103
|
-
_findNearestCellIndex(index, offset, itemType) {
|
104
|
-
const itemCount = itemType === AITableRowColumnType.column ? this.columnCount : this.rowCount;
|
105
|
-
let interval = 1;
|
106
|
-
while (index < itemCount && this.getCellMetaData(index, itemType).offset < offset) {
|
107
|
-
index += interval;
|
108
|
-
interval *= 2;
|
109
|
-
}
|
110
|
-
return this._findNearestCellIndexByBinary(offset, Math.floor(index / 2), Math.min(index, itemCount - 1), itemType);
|
111
|
-
}
|
112
|
-
/**
|
113
|
-
* 二分法查找最近的单元格索引
|
114
|
-
* 性能更佳,但需要加载数据
|
115
|
-
*/
|
116
|
-
_findNearestCellIndexByBinary(offset, low, high, itemType) {
|
117
|
-
while (low <= high) {
|
118
|
-
const middle = low + Math.floor((high - low) / 2);
|
119
|
-
const currentOffset = this.getCellMetaData(middle, itemType).offset;
|
120
|
-
if (currentOffset === offset) {
|
121
|
-
return middle;
|
122
|
-
}
|
123
|
-
else if (currentOffset < offset) {
|
124
|
-
low = middle + 1;
|
125
|
-
}
|
126
|
-
else if (currentOffset > offset) {
|
127
|
-
high = middle - 1;
|
128
|
-
}
|
129
|
-
}
|
130
|
-
return low > -1 ? low - 1 : 0;
|
131
|
-
}
|
132
|
-
/**
|
133
|
-
* 根据偏移量查找最近的单元格索引
|
134
|
-
*/
|
135
|
-
findNearestCellIndex(offset, itemType) {
|
136
|
-
let lastIndex;
|
137
|
-
if (itemType === AITableRowColumnType.column) {
|
138
|
-
lastIndex = this.lastColumnIndex;
|
139
|
-
}
|
140
|
-
else {
|
141
|
-
lastIndex = this.lastRowIndex;
|
142
|
-
}
|
143
|
-
const cellOffset = this.getCellMetaData(lastIndex, itemType).offset;
|
144
|
-
const lastMeasuredItemOffset = lastIndex > 0 ? cellOffset : 0;
|
145
|
-
if (lastMeasuredItemOffset >= offset) {
|
146
|
-
return this._findNearestCellIndexByBinary(offset, 0, lastIndex, itemType);
|
147
|
-
}
|
148
|
-
return this._findNearestCellIndex(Math.max(0, lastIndex), offset, itemType);
|
149
|
-
}
|
150
|
-
/**
|
151
|
-
* 根据垂直偏移量找到起始单元格的索引
|
152
|
-
*/
|
153
|
-
getRowStartIndex(offset) {
|
154
|
-
return this.findNearestCellIndex(offset, AITableRowColumnType.row);
|
155
|
-
}
|
156
|
-
/**
|
157
|
-
* 根据垂直起始单元格的索引查找结束单元格的索引
|
158
|
-
*/
|
159
|
-
getRowStopIndex(startIndex, scrollTop) {
|
160
|
-
const itemMetadata = this.getCellMetaData(startIndex, AITableRowColumnType.row);
|
161
|
-
const maxOffset = scrollTop + this.containerHeight;
|
162
|
-
let offset = itemMetadata.offset + itemMetadata.size;
|
163
|
-
let stopIndex = startIndex;
|
164
|
-
while (stopIndex < this.rowCount - 1 && offset < maxOffset) {
|
165
|
-
stopIndex++;
|
166
|
-
offset += this.getCellMetaData(stopIndex, AITableRowColumnType.row).size;
|
167
|
-
}
|
168
|
-
return stopIndex;
|
169
|
-
}
|
170
|
-
/**
|
171
|
-
* 根据水平偏移量找到起始单元格的索引
|
172
|
-
*/
|
173
|
-
getColumnStartIndex(offset) {
|
174
|
-
return this.findNearestCellIndex(offset, AITableRowColumnType.column);
|
175
|
-
}
|
176
|
-
/**
|
177
|
-
* 根据水平起始单元格的索引查找结束单元格的索引
|
178
|
-
*/
|
179
|
-
getColumnStopIndex(startIndex, scrollLeft) {
|
180
|
-
const itemMetadata = this.getCellMetaData(startIndex, AITableRowColumnType.column);
|
181
|
-
const maxOffset = scrollLeft + this.containerWidth;
|
182
|
-
let offset = itemMetadata.offset + itemMetadata.size;
|
183
|
-
let stopIndex = startIndex;
|
184
|
-
while (stopIndex < this.columnCount - 1 && offset < maxOffset) {
|
185
|
-
stopIndex++;
|
186
|
-
offset += this.getCellMetaData(stopIndex, AITableRowColumnType.column).size;
|
187
|
-
}
|
188
|
-
return stopIndex;
|
189
|
-
}
|
190
|
-
/**
|
191
|
-
* 根据 rowIndex 获取垂直偏移量
|
192
|
-
*/
|
193
|
-
getRowOffset(rowIndex) {
|
194
|
-
return this.getCellMetaData(rowIndex, AITableRowColumnType.row).offset;
|
195
|
-
}
|
196
|
-
/**
|
197
|
-
* 根据 columnIndex 获取水平偏移量
|
198
|
-
*/
|
199
|
-
getColumnOffset(columnIndex) {
|
200
|
-
return this.getCellMetaData(columnIndex, AITableRowColumnType.column).offset;
|
201
|
-
}
|
202
|
-
/**
|
203
|
-
* 冻结区域宽度
|
204
|
-
*/
|
205
|
-
get frozenColumnWidth() {
|
206
|
-
return this.getColumnOffset(this.frozenColumnCount) - this.columnInitSize;
|
207
|
-
}
|
208
|
-
/**
|
209
|
-
* 根据 rowIndex, columnIndex 获取单元格坐标信息
|
210
|
-
*/
|
211
|
-
getCellRect(rowIndex, columnIndex) {
|
212
|
-
const { size: height, offset: y } = this.getCellMetaData(rowIndex, AITableRowColumnType.row);
|
213
|
-
const { size: width, offset: x } = this.getCellMetaData(columnIndex, AITableRowColumnType.column);
|
214
|
-
return {
|
215
|
-
x,
|
216
|
-
y,
|
217
|
-
width,
|
218
|
-
height
|
219
|
-
};
|
220
|
-
}
|
221
|
-
}
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvY29vcmRpbmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLG9CQUFvQixFQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBRzFGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUF1Qm5CLFlBQVksRUFDUixTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQUcsRUFBRSxFQUN0QixvQkFBb0IsR0FBRyxFQUFFLEVBQ3pCLFdBQVcsR0FBRyxDQUFDLEVBQ2YsY0FBYyxHQUFHLENBQUMsRUFDbEIsaUJBQWlCLEdBQUcsQ0FBQyxFQUNMO1FBMUJwQixxQkFBcUI7UUFDZCxzQkFBaUIsR0FBbUIsRUFBRSxDQUFDO1FBQzlDLHNCQUFzQjtRQUNmLHlCQUFvQixHQUFtQixFQUFFLENBQUM7UUFLakQsZUFBZTtRQUNSLGlCQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekIsZUFBZTtRQUNSLG9CQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckIsbUJBQWMsR0FBd0MsRUFBRSxDQUFDO1FBQ3pELHNCQUFpQixHQUF3QyxFQUFFLENBQUM7UUFjL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcs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LFdBQVcsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQ3BELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3RixNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEcsT0FBTztZQUNILENBQUM7WUFDRCxDQUFDO1lBQ0QsS0FBSztZQUNMLE1BQU07U0FDVCxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZUNvb3JkaW5hdGUsIEFJVGFibGVSb3dDb2x1bW5UeXBlLCBBSVRhYmxlU2l6ZU1hcCB9IGZyb20gJ0BhaS10YWJsZS91dGlscyc7XG5pbXBvcnQgeyBBSVRhYmxlQ2VsbE1ldGFEYXRhIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIOeUqOS6juaehOW7uiBDYW52YXMg5Z+656GA5Z2Q5qCH57O777yM5ZCO57ut55qE57uY5Yi25bel5L2c5Lul5q2k5Li65Z+656GAXG4gKi9cbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlIHtcbiAgICBwcm90ZWN0ZWQgX3Jvd0hlaWdodDogbnVtYmVyO1xuICAgIHB1YmxpYyByb3dDb3VudDogbnVtYmVyO1xuICAgIHB1YmxpYyBjb2x1bW5Db3VudDogbnVtYmVyO1xuICAgIHB1YmxpYyBjb250YWluZXI6IEhUTUxEaXZFbGVtZW50O1xuICAgIHB1YmxpYyBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIHB1YmxpYyBjb250YWluZXJIZWlnaHQ6IG51bWJlcjtcbiAgICAvLyDnlKggaW5kZXgg5pig5bCEIOavj+S4gOihjOeahCDpq5jluqZcbiAgICBwdWJsaWMgcm93SW5kaWNlc1NpemVNYXA6IEFJVGFibGVTaXplTWFwID0ge307XG4gICAgLy8g55SoIGluZGV4IOaYoOWwhCDmr4/kuIDliJcg55qEIOWuveW6plxuICAgIHB1YmxpYyBjb2x1bW5JbmRpY2VzU2l6ZU1hcDogQUlUYWJsZVNpemVNYXAgPSB7fTtcbiAgICAvLyDpmaTljrvooajlpLTlkoznvJblj7fliJfnnJ/mraPljZXlhYPmoLznu5jliLbnmoTliJ3lp4vlgLwgeFxuICAgIHB1YmxpYyByb3dJbml0U2l6ZTogbnVtYmVyO1xuICAgIC8vIOmZpOWOu+ihqOWktOWSjOe8luWPt+WIl+ecn+ato+WNleWFg+agvOe7mOWItueahOWIneWni+WAvCB5XG4gICAgcHVibGljIGNvbHVtbkluaXRTaXplOiBudW1iZXI7XG4gICAgLy8g6KGM5Z2Q5qCH6ZuG5Lit5pyA5ZCO5LiA6KGM55qE57Si5byVXG4gICAgcHVibGljIGxhc3RSb3dJbmRleCA9IC0xO1xuICAgIC8vIOWIl+WdkOagh+mbhuS4reacgOWQjuS4gOWIl+eahOe0ouW8lVxuICAgIHB1YmxpYyBsYXN0Q29sdW1uSW5kZXggPSAtMTtcbiAgICBwdWJsaWMgcm93TWV0YURhdGFNYXA6IFJlY29yZDxudW1iZXIsIEFJVGFibGVDZWxsTWV0YURhdGE+ID0ge307XG4gICAgcHVibGljIGNvbHVtbk1ldGFEYXRhTWFwOiBSZWNvcmQ8bnVtYmVyLCBBSVRhYmxlQ2VsbE1ldGFEYXRhPiA9IHt9O1xuICAgIHB1YmxpYyBmcm96ZW5Db2x1bW5Db3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3Ioe1xuICAgICAgICByb3dIZWlnaHQsXG4gICAgICAgIHJvd0NvdW50LFxuICAgICAgICBjb2x1bW5Db3VudCxcbiAgICAgICAgY29udGFpbmVyLFxuICAgICAgICByb3dJbmRpY2VzU2l6ZU1hcCA9IHt9LFxuICAgICAgICBjb2x1bW5JbmRpY2VzU2l6ZU1hcCA9IHt9LFxuICAgICAgICByb3dJbml0U2l6ZSA9IDAsXG4gICAgICAgIGNvbHVtbkluaXRTaXplID0gMCxcbiAgICAgICAgZnJvemVuQ29sdW1uQ291bnQgPSAwXG4gICAgfTogQUlUYWJsZUNvb3JkaW5hdGUpIHtcbiAgICAgICAgdGhpcy5fcm93SGVpZ2h0ID0gcm93SGVpZ2h0O1xuICAgICAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgICAgIHRoaXMuY29sdW1uQ291bnQgPSBjb2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5yb3dJbml0U2l6ZSA9IHJvd0luaXRTaXplO1xuICAgICAgICB0aGlzLmNvbHVtbkluaXRTaXplID0gY29sdW1uSW5pdFNpemU7XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkdGggPSBjb250YWluZXIub2Zmc2V0V2lkdGg7XG4gICAgICAgIHRoaXMucm93SW5kaWNlc1NpemVNYXAgPSByb3dJbmRpY2VzU2l6ZU1hcDtcbiAgICAgICAgdGhpcy5jb2x1bW5JbmRpY2VzU2l6ZU1hcCA9IGNvbHVtbkluZGljZXNTaXplTWFwO1xuICAgICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCA9IGNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIHRoaXMuZnJvemVuQ29sdW1uQ291bnQgPSBmcm96ZW5Db2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3dIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dIZWlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByb3dIZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fcm93SGVpZ2h0ID0gaGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaAu+WuveW6plxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG90YWxXaWR0aCgpIHtcbiAgICAgICAgY29uc3QgeyBvZmZzZXQsIHNpemUgfSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHRoaXMuY29sdW1uQ291bnQgLSAxLCBBSVRhYmxlUm93Q29sdW1uVHlwZS5jb2x1bW4pO1xuICAgICAgICByZXR1cm4gb2Zmc2V0ICsgc2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmgLvpq5jluqZcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvdGFsSGVpZ2h0KCkge1xuICAgICAgICBjb25zdCB7IG9mZnNldCwgc2l6ZSB9ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEodGhpcy5yb3dDb3VudCAtIDEsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdyk7XG4gICAgICAgIHJldHVybiBvZmZzZXQgKyBzaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNriByb3dJbmRleCDojrflj5blr7nlupTooYzpq5hcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Um93SGVpZ2h0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm93SW5kaWNlc1NpemVNYXBbaW5kZXhdID8/IHRoaXMucm93SGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNriBjb2x1bW5JbmRleCDojrflj5blr7nlupTliJflrr1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sdW1uV2lkdGgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbkluZGljZXNTaXplTWFwW2luZGV4XSA/PyAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiOt+WPluavj+S4qiBjZWxsIOWeguebtC/msLTlubPmlrnlkJHnmoTlnZDmoIfkv6Hmga9cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Q2VsbE1ldGFEYXRhKGluZGV4OiBudW1iZXIsIGl0ZW1UeXBlOiBBSVRhYmxlUm93Q29sdW1uVHlwZSk6IEFJVGFibGVDZWxsTWV0YURhdGEge1xuICAgICAgICBsZXQgY2VsbE1ldGFkYXRhTWFwLCBsYXN0TWVhc3VyZWRJbmRleCwgb2Zmc2V0O1xuICAgICAgICBjb25zdCBpc0NvbHVtblR5cGUgPSBpdGVtVHlwZSA9PT0gQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uO1xuICAgICAgICBpZiAoaXNDb2x1bW5UeXBlKSB7XG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLmNvbHVtbkluaXRTaXplO1xuICAgICAgICAgICAgbGFzdE1lYXN1cmVkSW5kZXggPSB0aGlzLmxhc3RDb2x1bW5JbmRleDtcbiAgICAgICAgICAgIGNlbGxNZXRhZGF0YU1hcCA9IHRoaXMuY29sdW1uTWV0YURhdGFNYXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLnJvd0luaXRTaXplO1xuICAgICAgICAgICAgbGFzdE1lYXN1cmVkSW5kZXggPSB0aGlzLmxhc3RSb3dJbmRleDtcbiAgICAgICAgICAgIGNlbGxNZXRhZGF0YU1hcCA9IHRoaXMucm93TWV0YURhdGFNYXA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ID4gbGFzdE1lYXN1cmVkSW5kZXgpIHtcbiAgICAgICAgICAgIGlmIChsYXN0TWVhc3VyZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbU1ldGFkYXRhID0gY2VsbE1ldGFkYXRhTWFwW2xhc3RNZWFzdXJlZEluZGV4XTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBpdGVtTWV0YWRhdGEub2Zmc2V0ICsgaXRlbU1ldGFkYXRhLnNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBsYXN0TWVhc3VyZWRJbmRleCArIDE7IGkgPD0gaW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpemUgPSBpc0NvbHVtblR5cGUgPyAodGhpcy5jb2x1bW5JbmRpY2VzU2l6ZU1hcFtpXSA/PyAwKSA6ICh0aGlzLnJvd0luZGljZXNTaXplTWFwW2ldID8/IHRoaXMucm93SGVpZ2h0KTtcblxuICAgICAgICAgICAgICAgIGNlbGxNZXRhZGF0YU1hcFtpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBzaXplXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0NvbHVtblR5cGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RDb2x1bW5JbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RSb3dJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjZWxsTWV0YWRhdGFNYXBbaW5kZXhdIHx8IHsgc2l6ZTogMCwgb2Zmc2V0OiAwIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5p+l5om+5pyA6L+R55qE5Y2V5YWD5qC857Si5byVXG4gICAgICog5oCn6IO96L6D5beu77yM5L2G5peg6K665aaC5L2V6YO95Y+v5Lul5om+5YiwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZmluZE5lYXJlc3RDZWxsSW5kZXgoaW5kZXg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGl0ZW1UeXBlOiBBSVRhYmxlUm93Q29sdW1uVHlwZSkge1xuICAgICAgICBjb25zdCBpdGVtQ291bnQgPSBpdGVtVHlwZSA9PT0gQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uID8gdGhpcy5jb2x1bW5Db3VudCA6IHRoaXMucm93Q291bnQ7XG4gICAgICAgIGxldCBpbnRlcnZhbCA9IDE7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgaXRlbUNvdW50ICYmIHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKGluZGV4LCBpdGVtVHlwZSkub2Zmc2V0IDwgb2Zmc2V0KSB7XG4gICAgICAgICAgICBpbmRleCArPSBpbnRlcnZhbDtcbiAgICAgICAgICAgIGludGVydmFsICo9IDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZE5lYXJlc3RDZWxsSW5kZXhCeUJpbmFyeShvZmZzZXQsIE1hdGguZmxvb3IoaW5kZXggLyAyKSwgTWF0aC5taW4oaW5kZXgsIGl0ZW1Db3VudCAtIDEpLCBpdGVtVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5LqM5YiG5rOV5p+l5om+5pyA6L+R55qE5Y2V5YWD5qC857Si5byVXG4gICAgICog5oCn6IO95pu05L2z77yM5L2G6ZyA6KaB5Yqg6L295pWw5o2uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZmluZE5lYXJlc3RDZWxsSW5kZXhCeUJpbmFyeShvZmZzZXQ6IG51bWJlciwgbG93OiBudW1iZXIsIGhpZ2g6IG51bWJlciwgaXRlbVR5cGU6IEFJVGFibGVSb3dDb2x1bW5UeXBlKSB7XG4gICAgICAgIHdoaWxlIChsb3cgPD0gaGlnaCkge1xuICAgICAgICAgICAgY29uc3QgbWlkZGxlID0gbG93ICsgTWF0aC5mbG9vcigoaGlnaCAtIGxvdykgLyAyKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRPZmZzZXQgPSB0aGlzLmdldENlbGxNZXRhRGF0YShtaWRkbGUsIGl0ZW1UeXBlKS5vZmZzZXQ7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50T2Zmc2V0ID09PSBvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWlkZGxlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50T2Zmc2V0IDwgb2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgbG93ID0gbWlkZGxlICsgMTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE9mZnNldCA+IG9mZnNldCkge1xuICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWRkbGUgLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb3cgPiAtMSA/IGxvdyAtIDEgOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNruWBj+enu+mHj+afpeaJvuacgOi/keeahOWNleWFg+agvOe0ouW8lVxuICAgICAqL1xuICAgIHB1YmxpYyBmaW5kTmVhcmVzdENlbGxJbmRleChvZmZzZXQ6IG51bWJlciwgaXRlbVR5cGU6IEFJVGFibGVSb3dDb2x1bW5UeXBlKSB7XG4gICAgICAgIGxldCBsYXN0SW5kZXg7XG4gICAgICAgIGlmIChpdGVtVHlwZSA9PT0gQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uKSB7XG4gICAgICAgICAgICBsYXN0SW5kZXggPSB0aGlzLmxhc3RDb2x1bW5JbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhc3RJbmRleCA9IHRoaXMubGFzdFJvd0luZGV4O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNlbGxPZmZzZXQgPSB0aGlzLmdldENlbGxNZXRhRGF0YShsYXN0SW5kZXgsIGl0ZW1UeXBlKS5vZmZzZXQ7XG4gICAgICAgIGNvbnN0IGxhc3RNZWFzdXJlZEl0ZW1PZmZzZXQgPSBsYXN0SW5kZXggPiAwID8gY2VsbE9mZnNldCA6IDA7XG5cbiAgICAgICAgaWYgKGxhc3RNZWFzdXJlZEl0ZW1PZmZzZXQgPj0gb2Zmc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmluZE5lYXJlc3RDZWxsSW5kZXhCeUJpbmFyeShvZmZzZXQsIDAsIGxhc3RJbmRleCwgaXRlbVR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9maW5kTmVhcmVzdENlbGxJbmRleChNYXRoLm1heCgwLCBsYXN0SW5kZXgpLCBvZmZzZXQsIGl0ZW1UeXBlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7lnoLnm7TlgY/np7vph4/mib7liLDotbflp4vljZXlhYPmoLznmoTntKLlvJVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Um93U3RhcnRJbmRleChvZmZzZXQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kTmVhcmVzdENlbGxJbmRleChvZmZzZXQsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2u5Z6C55u06LW35aeL5Y2V5YWD5qC855qE57Si5byV5p+l5om+57uT5p2f5Y2V5YWD5qC855qE57Si5byVXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd1N0b3BJbmRleChzdGFydEluZGV4OiBudW1iZXIsIHNjcm9sbFRvcDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1NZXRhZGF0YSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHN0YXJ0SW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdyk7XG4gICAgICAgIGNvbnN0IG1heE9mZnNldCA9IHNjcm9sbFRvcCArIHRoaXMuY29udGFpbmVySGVpZ2h0O1xuICAgICAgICBsZXQgb2Zmc2V0ID0gaXRlbU1ldGFkYXRhLm9mZnNldCArIGl0ZW1NZXRhZGF0YS5zaXplO1xuICAgICAgICBsZXQgc3RvcEluZGV4ID0gc3RhcnRJbmRleDtcblxuICAgICAgICB3aGlsZSAoc3RvcEluZGV4IDwgdGhpcy5yb3dDb3VudCAtIDEgJiYgb2Zmc2V0IDwgbWF4T2Zmc2V0KSB7XG4gICAgICAgICAgICBzdG9wSW5kZXgrKztcbiAgICAgICAgICAgIG9mZnNldCArPSB0aGlzLmdldENlbGxNZXRhRGF0YShzdG9wSW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdykuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RvcEluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNruawtOW5s+WBj+enu+mHj+aJvuWIsOi1t+Wni+WNleWFg+agvOeahOe0ouW8lVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2x1bW5TdGFydEluZGV4KG9mZnNldDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmROZWFyZXN0Q2VsbEluZGV4KG9mZnNldCwgQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7msLTlubPotbflp4vljZXlhYPmoLznmoTntKLlvJXmn6Xmib7nu5PmnZ/ljZXlhYPmoLznmoTntKLlvJVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sdW1uU3RvcEluZGV4KHN0YXJ0SW5kZXg6IG51bWJlciwgc2Nyb2xsTGVmdDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1NZXRhZGF0YSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHN0YXJ0SW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbik7XG4gICAgICAgIGNvbnN0IG1heE9mZnNldCA9IHNjcm9sbExlZnQgKyB0aGlzLmNvbnRhaW5lcldpZHRoO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gaXRlbU1ldGFkYXRhLm9mZnNldCArIGl0ZW1NZXRhZGF0YS5zaXplO1xuICAgICAgICBsZXQgc3RvcEluZGV4ID0gc3RhcnRJbmRleDtcblxuICAgICAgICB3aGlsZSAoc3RvcEluZGV4IDwgdGhpcy5jb2x1bW5Db3VudCAtIDEgJiYgb2Zmc2V0IDwgbWF4T2Zmc2V0KSB7XG4gICAgICAgICAgICBzdG9wSW5kZXgrKztcbiAgICAgICAgICAgIG9mZnNldCArPSB0aGlzLmdldENlbGxNZXRhRGF0YShzdG9wSW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbikuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RvcEluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNriByb3dJbmRleCDojrflj5blnoLnm7TlgY/np7vph49cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Um93T2Zmc2V0KHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHJvd0luZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpLm9mZnNldDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja4gY29sdW1uSW5kZXgg6I635Y+W5rC05bmz5YGP56e76YePXG4gICAgICovXG4gICAgcHVibGljIGdldENvbHVtbk9mZnNldChjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxNZXRhRGF0YShjb2x1bW5JbmRleCwgQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uKS5vZmZzZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Ya757uT5Yy65Z+f5a695bqmXG4gICAgICovXG4gICAgZ2V0IGZyb3plbkNvbHVtbldpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5PZmZzZXQodGhpcy5mcm96ZW5Db2x1bW5Db3VudCkgLSB0aGlzLmNvbHVtbkluaXRTaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNriByb3dJbmRleCwgY29sdW1uSW5kZXgg6I635Y+W5Y2V5YWD5qC85Z2Q5qCH5L+h5oGvXG4gICAgICovXG4gICAgcHVibGljIGdldENlbGxSZWN0KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgeyBzaXplOiBoZWlnaHQsIG9mZnNldDogeSB9ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEocm93SW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdyk7XG4gICAgICAgIGNvbnN0IHsgc2l6ZTogd2lkdGgsIG9mZnNldDogeCB9ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEoY29sdW1uSW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4LFxuICAgICAgICAgICAgeSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
package/esm2022/core/index.mjs
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
export * from './constants/field';
|
2
|
-
export * from './coordinate';
|
3
|
-
export * from './types';
|
4
|
-
export * from './utils';
|
5
|
-
export * from './context';
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy9maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2Nvb3JkaW5hdGUnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dCc7XG4iXX0=
|
@@ -1,57 +0,0 @@
|
|
1
|
-
import { Colors } from '../../constants/colors';
|
2
|
-
export const AITable = {
|
3
|
-
getColors() {
|
4
|
-
return Colors;
|
5
|
-
},
|
6
|
-
getVisibleFields(aiTable) {
|
7
|
-
return aiTable.gridData().fields.filter((field) => !field.hidden);
|
8
|
-
},
|
9
|
-
getVisibleRows(aiTable) {
|
10
|
-
return aiTable.records();
|
11
|
-
},
|
12
|
-
getActiveCell(aiTable) {
|
13
|
-
return aiTable.selection().activeCell;
|
14
|
-
},
|
15
|
-
getActiveRecordIds(aiTable) {
|
16
|
-
const selectedRecords = aiTable.selection().selectedRecords;
|
17
|
-
const selectedCells = aiTable.selection().selectedCells;
|
18
|
-
let selectedRecordIds = [];
|
19
|
-
if (selectedRecords.size > 0) {
|
20
|
-
selectedRecordIds = [...selectedRecords.keys()];
|
21
|
-
}
|
22
|
-
else if (selectedCells.size > 0) {
|
23
|
-
selectedRecordIds = [...selectedCells].map((item) => item.split(':')[0]);
|
24
|
-
}
|
25
|
-
else {
|
26
|
-
selectedRecordIds = [];
|
27
|
-
}
|
28
|
-
return selectedRecordIds;
|
29
|
-
},
|
30
|
-
isCellVisible(aiTable, cell) {
|
31
|
-
const visibleRowIndexMap = aiTable.context.visibleRowsIndexMap();
|
32
|
-
const visibleColumnIndexMap = aiTable.context.visibleColumnsIndexMap();
|
33
|
-
const [recordId, fieldId] = cell || [];
|
34
|
-
const isVisible = visibleRowIndexMap.has(recordId) && visibleColumnIndexMap.has(fieldId);
|
35
|
-
return isVisible;
|
36
|
-
},
|
37
|
-
getCellIndex(aiTable, cell) {
|
38
|
-
const visibleRowIndexMap = aiTable.context.visibleRowsIndexMap();
|
39
|
-
const visibleColumnIndexMap = aiTable.context.visibleColumnsIndexMap();
|
40
|
-
if (AITable.isCellVisible(aiTable, cell)) {
|
41
|
-
const [recordId, fieldId] = cell;
|
42
|
-
return {
|
43
|
-
rowIndex: visibleRowIndexMap.get(recordId),
|
44
|
-
columnIndex: visibleColumnIndexMap.get(fieldId)
|
45
|
-
};
|
46
|
-
}
|
47
|
-
return null;
|
48
|
-
},
|
49
|
-
isFrozenColumn(aiTable, columnIndex) {
|
50
|
-
const frozenColumnCount = aiTable.context.frozenColumnCount();
|
51
|
-
if (columnIndex <= frozenColumnCount - 1) {
|
52
|
-
return true;
|
53
|
-
}
|
54
|
-
return false;
|
55
|
-
}
|
56
|
-
};
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3R5cGVzL2FpLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQXdCaEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLFNBQVM7UUFDTCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDN0IsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELGNBQWMsQ0FBQyxPQUFnQjtRQUMzQixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQWdCO1FBQzFCLE9BQU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQztJQUMxQyxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQztRQUM1RCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ3hELElBQUksaUJBQWlCLEdBQWEsRUFBRSxDQUFDO1FBQ3JDLElBQUksZUFBZSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixpQkFBaUIsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLElBQUksYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQzthQUFNLENBQUM7WUFDSixpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztJQUNELGFBQWEsQ0FBQyxPQUFnQixFQUFFLElBQXlCO1FBQ3JELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2xFLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3hFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBRyxrQkFBbUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUkscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFGLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBZ0IsRUFBRSxJQUF5QjtRQUNwRCxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxPQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNsRSxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxPQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN4RSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDakMsT0FBTztnQkFDSCxRQUFRLEVBQUUsa0JBQW1CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBRTtnQkFDNUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUU7YUFDbkQsQ0FBQztRQUNOLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsY0FBYyxDQUFDLE9BQWdCLEVBQUUsV0FBbUI7UUFDaEQsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDL0QsSUFBSSxXQUFXLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sb3JzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbG9ycyc7XG5pbXBvcnQgeyBBSVRhYmxlU2VsZWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgUmVuZGVyZXJDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyBBSVRhYmxlR3JpZEkxOG5LZXkgfSBmcm9tICcuLi8uLi91dGlscy9pMThuJztcbmltcG9ydCB7IEFJVGFibGVSZWNvcmRzLCBBSVRhYmxlRmllbGRzLCBBSVRhYmxlRmllbGQsIEFJVGFibGVWYWx1ZSwgQUlUYWJsZVJlY29yZCwgQUlSZWNvcmRGaWVsZElkUGF0aCB9IGZyb20gJ0BhaS10YWJsZS91dGlscyc7XG5pbXBvcnQgeyBBSVRhYmxlRHJhZ1N0YXRlIH0gZnJvbSAnLi9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlIHtcbiAgICByZWNvcmRzOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlUmVjb3Jkcz47XG4gICAgZmllbGRzOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlRmllbGRzPjtcbiAgICBncmlkRGF0YTogU2lnbmFsPEFJVGFibGVWYWx1ZT47XG4gICAgY29udGV4dD86IFJlbmRlcmVyQ29udGV4dDtcbiAgICBzZWxlY3Rpb246IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVTZWxlY3Rpb24+O1xuICAgIGtleXdvcmRzTWF0Y2hlZENlbGxzOiBXcml0YWJsZVNpZ25hbDxTZXQ8c3RyaW5nPj47IC8vIFtgJHtyZWNvcmRJZH06JHtmaWVsZElkfWBdXG4gICAgcmVjb3Jkc01hcDogU2lnbmFsPHsgW2tleTogc3RyaW5nXTogQUlUYWJsZVJlY29yZCB9PjtcbiAgICBmaWVsZHNNYXA6IFNpZ25hbDx7IFtrZXk6IHN0cmluZ106IEFJVGFibGVGaWVsZCB9PjtcbiAgICByZWNvcmRzV2lsbEhpZGRlbjogV3JpdGFibGVTaWduYWw8c3RyaW5nW10+O1xuICAgIHJlY29yZHNXaWxsTW92ZTogV3JpdGFibGVTaWduYWw8c3RyaW5nW10+O1xuICAgIGRyYWdTdGF0ZT86IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVEcmFnU3RhdGU+O1xuICAgIGdldEkxOG5UZXh0QnlLZXk/OiAoa2V5OiBBSVRhYmxlR3JpZEkxOG5LZXkgfCBzdHJpbmcpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQUlQbHVnaW4gPSAoYWlUYWJsZTogQUlUYWJsZSkgPT4gQUlUYWJsZTtcblxuZXhwb3J0IGNvbnN0IEFJVGFibGUgPSB7XG4gICAgZ2V0Q29sb3JzKCkge1xuICAgICAgICByZXR1cm4gQ29sb3JzO1xuICAgIH0sXG4gICAgZ2V0VmlzaWJsZUZpZWxkcyhhaVRhYmxlOiBBSVRhYmxlKTogQUlUYWJsZUZpZWxkcyB7XG4gICAgICAgIHJldHVybiBhaVRhYmxlLmdyaWREYXRhKCkuZmllbGRzLmZpbHRlcigoZmllbGQpID0+ICFmaWVsZC5oaWRkZW4pO1xuICAgIH0sXG4gICAgZ2V0VmlzaWJsZVJvd3MoYWlUYWJsZTogQUlUYWJsZSk6IEFJVGFibGVSZWNvcmRzIHtcbiAgICAgICAgcmV0dXJuIGFpVGFibGUucmVjb3JkcygpO1xuICAgIH0sXG4gICAgZ2V0QWN0aXZlQ2VsbChhaVRhYmxlOiBBSVRhYmxlKTogQUlSZWNvcmRGaWVsZElkUGF0aCB8IG51bGwge1xuICAgICAgICByZXR1cm4gYWlUYWJsZS5zZWxlY3Rpb24oKS5hY3RpdmVDZWxsO1xuICAgIH0sXG4gICAgZ2V0QWN0aXZlUmVjb3JkSWRzKGFpVGFibGU6IEFJVGFibGUpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmVjb3JkcyA9IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxzID0gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZENlbGxzO1xuICAgICAgICBsZXQgc2VsZWN0ZWRSZWNvcmRJZHM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmIChzZWxlY3RlZFJlY29yZHMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gWy4uLnNlbGVjdGVkUmVjb3Jkcy5rZXlzKCldO1xuICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkQ2VsbHMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gWy4uLnNlbGVjdGVkQ2VsbHNdLm1hcCgoaXRlbSkgPT4gaXRlbS5zcGxpdCgnOicpWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkUmVjb3JkSWRzO1xuICAgIH0sXG4gICAgaXNDZWxsVmlzaWJsZShhaVRhYmxlOiBBSVRhYmxlLCBjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZpc2libGVSb3dJbmRleE1hcCA9IGFpVGFibGUuY29udGV4dCEudmlzaWJsZVJvd3NJbmRleE1hcCgpO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1uSW5kZXhNYXAgPSBhaVRhYmxlLmNvbnRleHQhLnZpc2libGVDb2x1bW5zSW5kZXhNYXAoKTtcbiAgICAgICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGwgfHwgW107XG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IHZpc2libGVSb3dJbmRleE1hcCEuaGFzKHJlY29yZElkKSAmJiB2aXNpYmxlQ29sdW1uSW5kZXhNYXAuaGFzKGZpZWxkSWQpO1xuICAgICAgICByZXR1cm4gaXNWaXNpYmxlO1xuICAgIH0sXG4gICAgZ2V0Q2VsbEluZGV4KGFpVGFibGU6IEFJVGFibGUsIGNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgpOiB7IHJvd0luZGV4OiBudW1iZXI7IGNvbHVtbkluZGV4OiBudW1iZXIgfSB8IG51bGwge1xuICAgICAgICBjb25zdCB2aXNpYmxlUm93SW5kZXhNYXAgPSBhaVRhYmxlLmNvbnRleHQhLnZpc2libGVSb3dzSW5kZXhNYXAoKTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbkluZGV4TWFwID0gYWlUYWJsZS5jb250ZXh0IS52aXNpYmxlQ29sdW1uc0luZGV4TWFwKCk7XG4gICAgICAgIGlmIChBSVRhYmxlLmlzQ2VsbFZpc2libGUoYWlUYWJsZSwgY2VsbCkpIHtcbiAgICAgICAgICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBjZWxsO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByb3dJbmRleDogdmlzaWJsZVJvd0luZGV4TWFwIS5nZXQocmVjb3JkSWQpISxcbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleDogdmlzaWJsZUNvbHVtbkluZGV4TWFwLmdldChmaWVsZElkKSFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgICBpc0Zyb3plbkNvbHVtbihhaVRhYmxlOiBBSVRhYmxlLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGZyb3plbkNvbHVtbkNvdW50ID0gYWlUYWJsZS5jb250ZXh0IS5mcm96ZW5Db2x1bW5Db3VudCgpO1xuICAgICAgICBpZiAoY29sdW1uSW5kZXggPD0gZnJvemVuQ29sdW1uQ291bnQgLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcbiJdfQ==
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdHlwZXMvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yMmQgfSBmcm9tICdrb252YS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgRHJhZ1R5cGUgfSBmcm9tICdAYWktdGFibGUvdXRpbHMnO1xuaW1wb3J0IHsgQ29vcmRpbmF0ZSB9IGZyb20gJy4uL2Nvb3JkaW5hdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVEcmFnU3RhdGUge1xuICAgIHR5cGU6IERyYWdUeXBlO1xuICAgIHNvdXJjZUlkczogU2V0PHN0cmluZz47XG4gICAgc2Nyb2xsPzogVmVjdG9yMmQ7XG4gICAgY29vcmRpbmF0ZT86IENvb3JkaW5hdGU7XG59XG4iXX0=
|
@@ -1,3 +0,0 @@
|
|
1
|
-
export * from './ai-table';
|
2
|
-
export * from './core';
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9haS10YWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUnO1xuIl19
|
@@ -1,45 +0,0 @@
|
|
1
|
-
import { computed, signal } from '@angular/core';
|
2
|
-
import { AITableSelectAllState } from '../../types';
|
3
|
-
export function createAITable(records, fields, gridData) {
|
4
|
-
const aiTable = {
|
5
|
-
records,
|
6
|
-
fields,
|
7
|
-
gridData,
|
8
|
-
selection: signal({
|
9
|
-
selectedRecords: new Set(),
|
10
|
-
selectedFields: new Set(),
|
11
|
-
selectedCells: new Set(),
|
12
|
-
activeCell: null,
|
13
|
-
selectAllState: AITableSelectAllState.none
|
14
|
-
}),
|
15
|
-
keywordsMatchedCells: signal(new Set()),
|
16
|
-
recordsMap: computed(() => {
|
17
|
-
return records().reduce((object, item) => {
|
18
|
-
object[item._id] = item;
|
19
|
-
return object;
|
20
|
-
}, {});
|
21
|
-
}),
|
22
|
-
fieldsMap: computed(() => {
|
23
|
-
return fields().reduce((object, item) => {
|
24
|
-
object[item._id] = item;
|
25
|
-
return object;
|
26
|
-
}, {});
|
27
|
-
}),
|
28
|
-
recordsWillHidden: signal([]),
|
29
|
-
recordsWillMove: signal([])
|
30
|
-
};
|
31
|
-
return aiTable;
|
32
|
-
}
|
33
|
-
export function generateNewName(existNames, count, name) {
|
34
|
-
let newName = name;
|
35
|
-
let suffix = count;
|
36
|
-
if (count > 1) {
|
37
|
-
newName = `${name} ${suffix}`;
|
38
|
-
}
|
39
|
-
while (existNames.includes(newName)) {
|
40
|
-
suffix++;
|
41
|
-
newName = `${name} ${suffix}`;
|
42
|
-
}
|
43
|
-
return newName;
|
44
|
-
}
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvY29yZS91dGlscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEwQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdwRCxNQUFNLFVBQVUsYUFBYSxDQUN6QixPQUF1QyxFQUN2QyxNQUFxQyxFQUNyQyxRQUE4QjtJQUU5QixNQUFNLE9BQU8sR0FBWTtRQUNyQixPQUFPO1FBQ1AsTUFBTTtRQUNOLFFBQVE7UUFDUixTQUFTLEVBQUUsTUFBTSxDQUFDO1lBQ2QsZUFBZSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQzFCLGNBQWMsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUN6QixhQUFhLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDeEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFLHFCQUFxQixDQUFDLElBQUk7U0FDN0MsQ0FBQztRQUNGLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLFVBQVUsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3RCLE9BQU8sT0FBTyxFQUFFLENBQUMsTUFBTSxDQUNuQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUNELEVBQXNDLENBQ3pDLENBQUM7UUFDTixDQUFDLENBQUM7UUFDRixTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNyQixPQUFPLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FDbEIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUMsRUFDRCxFQUFxQyxDQUN4QyxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBQ0YsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUM3QixlQUFlLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztLQUM5QixDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsVUFBb0IsRUFBRSxLQUFhLEVBQUUsSUFBWTtJQUM3RSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDbkIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRW5CLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ1osT0FBTyxHQUFHLEdBQUcsSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEVBQUUsQ0FBQztRQUNULE9BQU8sR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgV3JpdGFibGVTaWduYWwsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcywgQUlUYWJsZVJlY29yZCwgQUlUYWJsZVJlY29yZHMsIEFJVGFibGVWYWx1ZSB9IGZyb20gJ0BhaS10YWJsZS91dGlscyc7XG5pbXBvcnQgeyBBSVRhYmxlU2VsZWN0QWxsU3RhdGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBBSVRhYmxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQUlUYWJsZShcbiAgICByZWNvcmRzOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlUmVjb3Jkcz4sXG4gICAgZmllbGRzOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlRmllbGRzPixcbiAgICBncmlkRGF0YTogU2lnbmFsPEFJVGFibGVWYWx1ZT5cbik6IEFJVGFibGUge1xuICAgIGNvbnN0IGFpVGFibGU6IEFJVGFibGUgPSB7XG4gICAgICAgIHJlY29yZHMsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgZ3JpZERhdGEsXG4gICAgICAgIHNlbGVjdGlvbjogc2lnbmFsKHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkczogbmV3IFNldCgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRGaWVsZHM6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIHNlbGVjdGVkQ2VsbHM6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIGFjdGl2ZUNlbGw6IG51bGwsXG4gICAgICAgICAgICBzZWxlY3RBbGxTdGF0ZTogQUlUYWJsZVNlbGVjdEFsbFN0YXRlLm5vbmVcbiAgICAgICAgfSksXG4gICAgICAgIGtleXdvcmRzTWF0Y2hlZENlbGxzOiBzaWduYWwobmV3IFNldCgpKSxcbiAgICAgICAgcmVjb3Jkc01hcDogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZHMoKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKG9iamVjdCwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3RbaXRlbS5faWRdID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogQUlUYWJsZVJlY29yZCB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgZmllbGRzTWFwOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGRzKCkucmVkdWNlKFxuICAgICAgICAgICAgICAgIChvYmplY3QsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0W2l0ZW0uX2lkXSA9IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IEFJVGFibGVGaWVsZCB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgcmVjb3Jkc1dpbGxIaWRkZW46IHNpZ25hbChbXSksXG4gICAgICAgIHJlY29yZHNXaWxsTW92ZTogc2lnbmFsKFtdKVxuICAgIH07XG4gICAgcmV0dXJuIGFpVGFibGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZU5ld05hbWUoZXhpc3ROYW1lczogc3RyaW5nW10sIGNvdW50OiBudW1iZXIsIG5hbWU6IHN0cmluZykge1xuICAgIGxldCBuZXdOYW1lID0gbmFtZTtcbiAgICBsZXQgc3VmZml4ID0gY291bnQ7XG5cbiAgICBpZiAoY291bnQgPiAxKSB7XG4gICAgICAgIG5ld05hbWUgPSBgJHtuYW1lfSAke3N1ZmZpeH1gO1xuICAgIH1cblxuICAgIHdoaWxlIChleGlzdE5hbWVzLmluY2x1ZGVzKG5ld05hbWUpKSB7XG4gICAgICAgIHN1ZmZpeCsrO1xuICAgICAgICBuZXdOYW1lID0gYCR7bmFtZX0gJHtzdWZmaXh9YDtcbiAgICB9XG4gICAgcmV0dXJuIG5ld05hbWU7XG59XG4iXX0=
|
@@ -1,64 +0,0 @@
|
|
1
|
-
import { AI_TABLE_FIELD_MIDDLE_WIDTH, getFieldOptions } from '../constants/field';
|
2
|
-
import { AITableFieldType } from '@ai-table/utils';
|
3
|
-
import { generateNewName } from './common';
|
4
|
-
import { idCreator } from './id-creator';
|
5
|
-
export const isArrayField = (field) => {
|
6
|
-
return [
|
7
|
-
AITableFieldType.member,
|
8
|
-
AITableFieldType.createdBy,
|
9
|
-
AITableFieldType.updatedBy,
|
10
|
-
AITableFieldType.select,
|
11
|
-
AITableFieldType.attachment,
|
12
|
-
AITableFieldType.richText
|
13
|
-
].includes(field.type);
|
14
|
-
};
|
15
|
-
export const isSystemField = (field) => {
|
16
|
-
return [AITableFieldType.createdAt, AITableFieldType.createdBy, AITableFieldType.updatedAt, AITableFieldType.updatedBy].includes(field.type);
|
17
|
-
};
|
18
|
-
export const isNumberFiled = (field) => {
|
19
|
-
return [AITableFieldType.number, AITableFieldType.progress, AITableFieldType.rate].includes(field.type);
|
20
|
-
};
|
21
|
-
export const isDateFiled = (field) => {
|
22
|
-
return [AITableFieldType.date, AITableFieldType.createdAt, AITableFieldType.updatedAt].includes(field.type);
|
23
|
-
};
|
24
|
-
export function getDefaultFieldValue(field) {
|
25
|
-
if (isArrayField(field)) {
|
26
|
-
return [];
|
27
|
-
}
|
28
|
-
if (isNumberFiled(field) || isDateFiled(field) || field.type === AITableFieldType.link) {
|
29
|
-
return null;
|
30
|
-
}
|
31
|
-
return '';
|
32
|
-
}
|
33
|
-
export function createDefaultFieldName(aiTable, field) {
|
34
|
-
const fieldOption = getFieldOptionByField(aiTable, field);
|
35
|
-
if (fieldOption) {
|
36
|
-
const allNames = aiTable.fields().map((item) => item.name);
|
37
|
-
const count = aiTable.fields().filter((item) => {
|
38
|
-
return isSameFieldOption(field, item);
|
39
|
-
}).length;
|
40
|
-
return generateNewName(allNames, count, fieldOption.name);
|
41
|
-
}
|
42
|
-
const fieldOptions = getFieldOptions(aiTable);
|
43
|
-
return fieldOptions[0].name;
|
44
|
-
}
|
45
|
-
export function getFieldOptionByField(aiTable, field) {
|
46
|
-
const fieldOptions = getFieldOptions(aiTable);
|
47
|
-
let fieldOption = fieldOptions.find((item) => isSameFieldOption(item, field));
|
48
|
-
if (fieldOption && field.type === AITableFieldType.member && field.settings?.is_multiple) {
|
49
|
-
fieldOption.width = AI_TABLE_FIELD_MIDDLE_WIDTH;
|
50
|
-
}
|
51
|
-
return fieldOption;
|
52
|
-
}
|
53
|
-
export function isSameFieldOption(fieldOption, field) {
|
54
|
-
return (fieldOption.type === field.type &&
|
55
|
-
(fieldOption.type === AITableFieldType.select
|
56
|
-
? !!fieldOption.settings?.is_multiple === !!field.settings?.is_multiple
|
57
|
-
: true));
|
58
|
-
}
|
59
|
-
export function createDefaultField(aiTable, type = AITableFieldType.text) {
|
60
|
-
const fieldOptions = getFieldOptions(aiTable);
|
61
|
-
const fieldOption = fieldOptions.find((item) => item.type === type);
|
62
|
-
return { _id: idCreator(), type, name: createDefaultFieldName(aiTable, fieldOption) };
|
63
|
-
}
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRixPQUFPLEVBQW9DLGdCQUFnQixFQUE4QixNQUFNLGlCQUFpQixDQUFDO0FBQ2pILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7SUFDaEQsT0FBTztRQUNILGdCQUFnQixDQUFDLE1BQU07UUFDdkIsZ0JBQWdCLENBQUMsU0FBUztRQUMxQixnQkFBZ0IsQ0FBQyxTQUFTO1FBQzFCLGdCQUFnQixDQUFDLE1BQU07UUFDdkIsZ0JBQWdCLENBQUMsVUFBVTtRQUMzQixnQkFBZ0IsQ0FBQyxRQUFRO0tBQzVCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7SUFDakQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FDNUgsS0FBSyxDQUFDLElBQUksQ0FDYixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO0lBQ2pELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxF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Z0IsRUFBRSxPQUF5QixnQkFBZ0IsQ0FBQyxJQUFJO0lBQy9GLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBRSxDQUFDO0lBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztBQUMxRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlfVEFCTEVfRklFTERfTUlERExFX1dJRFRILCBnZXRGaWVsZE9wdGlvbnMgfSBmcm9tICcuLi9jb25zdGFudHMvZmllbGQnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRPcHRpb24sIEFJVGFibGVGaWVsZFR5cGUsIElzTXVsdGlwbGUsIE1lbWJlclNldHRpbmdzIH0gZnJvbSAnQGFpLXRhYmxlL3V0aWxzJztcbmltcG9ydCB7IGdlbmVyYXRlTmV3TmFtZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGlkQ3JlYXRvciB9IGZyb20gJy4vaWQtY3JlYXRvcic7XG5pbXBvcnQgeyBBSVRhYmxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaXNBcnJheUZpZWxkID0gKGZpZWxkOiBBSVRhYmxlRmllbGQpID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAgICBBSVRhYmxlRmllbGRUeXBlLm1lbWJlcixcbiAgICAgICAgQUlUYWJsZUZpZWxkVHlwZS5jcmVhdGVkQnksXG4gICAgICAgIEFJVGFibGVGaWVsZFR5cGUudXBkYXRlZEJ5LFxuICAgICAgICBBSVRhYmxlRmllbGRUeXBlLnNlbGVjdCxcbiAgICAgICAgQUlUYWJsZUZpZWxkVHlwZS5hdHRhY2htZW50LFxuICAgICAgICBBSVRhYmxlRmllbGRUeXBlLnJpY2hUZXh0XG4gICAgXS5pbmNsdWRlcyhmaWVsZC50eXBlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1N5c3RlbUZpZWxkID0gKGZpZWxkOiBBSVRhYmxlRmllbGQpID0+IHtcbiAgICByZXR1cm4gW0FJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEF0LCBBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeSwgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQXQsIEFJVGFibGVGaWVsZFR5cGUudXBkYXRlZEJ5XS5pbmNsdWRlcyhcbiAgICAgICAgZmllbGQudHlwZVxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNOdW1iZXJGaWxlZCA9IChmaWVsZDogQUlUYWJsZUZpZWxkKSA9PiB7XG4gICAgcmV0dXJuIFtBSVRhYmxlRmllbGRUeXBlLm51bWJlciwgQUlUYWJsZUZpZWxkVHlwZS5wcm9ncmVzcywgQUlUYWJsZUZpZWxkVHlwZS5yYXRlXS5pbmNsdWRlcyhmaWVsZC50eXBlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVGaWxlZCA9IChmaWVsZDogQUlUYWJsZUZpZWxkKSA9PiB7XG4gICAgcmV0dXJuIFtBSVRhYmxlRmllbGRUeXBlLmRhdGUsIEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEF0LCBBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRBdF0uaW5jbHVkZXMoZmllbGQudHlwZSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEZpZWxkVmFsdWUoZmllbGQ6IEFJVGFibGVGaWVsZCkge1xuICAgIGlmIChpc0FycmF5RmllbGQoZmllbGQpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyRmlsZWQoZmllbGQpIHx8IGlzRGF0ZUZpbGVkKGZpZWxkKSB8fCBmaWVsZC50eXBlID09PSBBSVRhYmxlRmllbGRUeXBlLmxpbmspIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRGaWVsZE5hbWUoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ6IEFJVGFibGVGaWVsZE9wdGlvbikge1xuICAgIGNvbnN0IGZpZWxkT3B0aW9uID0gZ2V0RmllbGRPcHRpb25CeUZpZWxkKGFpVGFibGUsIGZpZWxkKTtcbiAgICBpZiAoZmllbGRPcHRpb24pIHtcbiAgICAgICAgY29uc3QgYWxsTmFtZXMgPSBhaVRhYmxlLmZpZWxkcygpLm1hcCgoaXRlbSkgPT4gaXRlbS5uYW1lKTtcbiAgICAgICAgY29uc3QgY291bnQgPSBhaVRhYmxlLmZpZWxkcygpLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGlzU2FtZUZpZWxkT3B0aW9uKGZpZWxkLCBpdGVtKTtcbiAgICAgICAgfSkubGVuZ3RoO1xuICAgICAgICByZXR1cm4gZ2VuZXJhdGVOZXdOYW1lKGFsbE5hbWVzLCBjb3VudCwgZmllbGRPcHRpb24ubmFtZSk7XG4gICAgfVxuICAgIGNvbnN0IGZpZWxkT3B0aW9ucyA9IGdldEZpZWxkT3B0aW9ucyhhaVRhYmxlKTtcbiAgICByZXR1cm4gZmllbGRPcHRpb25zWzBdLm5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZE9wdGlvbkJ5RmllbGQoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ6IFBhcnRpYWw8QUlUYWJsZUZpZWxkPikge1xuICAgIGNvbnN0IGZpZWxkT3B0aW9ucyA9IGdldEZpZWxkT3B0aW9ucyhhaVRhYmxlKTtcbiAgICBsZXQgZmllbGRPcHRpb24gPSBmaWVsZE9wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXNTYW1lRmllbGRPcHRpb24oaXRlbSwgZmllbGQpKTtcbiAgICBpZiAoZmllbGRPcHRpb24gJiYgZmllbGQudHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5tZW1iZXIgJiYgKGZpZWxkLnNldHRpbmdzIGFzIE1lbWJlclNldHRpbmdzKT8uaXNfbXVsdGlwbGUpIHtcbiAgICAgICAgZmllbGRPcHRpb24ud2lkdGggPSBBSV9UQUJMRV9GSUVMRF9NSURETEVfV0lEVEg7XG4gICAgfVxuICAgIHJldHVybiBmaWVsZE9wdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZUZpZWxkT3B0aW9uKGZpZWxkT3B0aW9uOiBBSVRhYmxlRmllbGRPcHRpb24sIGZpZWxkOiBQYXJ0aWFsPEFJVGFibGVGaWVsZD4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgICBmaWVsZE9wdGlvbi50eXBlID09PSBmaWVsZC50eXBlICYmXG4gICAgICAgIChmaWVsZE9wdGlvbi50eXBlID09PSBBSVRhYmxlRmllbGRUeXBlLnNlbGVjdFxuICAgICAgICAgICAgPyAhIShmaWVsZE9wdGlvbi5zZXR0aW5ncyBhcyBJc011bHRpcGxlKT8uaXNfbXVsdGlwbGUgPT09ICEhKGZpZWxkLnNldHRpbmdzIGFzIElzTXVsdGlwbGUpPy5pc19tdWx0aXBsZVxuICAgICAgICAgICAgOiB0cnVlKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0RmllbGQoYWlUYWJsZTogQUlUYWJsZSwgdHlwZTogQUlUYWJsZUZpZWxkVHlwZSA9IEFJVGFibGVGaWVsZFR5cGUudGV4dCkge1xuICAgIGNvbnN0IGZpZWxkT3B0aW9ucyA9IGdldEZpZWxkT3B0aW9ucyhhaVRhYmxlKTtcbiAgICBjb25zdCBmaWVsZE9wdGlvbiA9IGZpZWxkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLnR5cGUgPT09IHR5cGUpITtcbiAgICByZXR1cm4geyBfaWQ6IGlkQ3JlYXRvcigpLCB0eXBlLCBuYW1lOiBjcmVhdGVEZWZhdWx0RmllbGROYW1lKGFpVGFibGUsIGZpZWxkT3B0aW9uKSB9O1xufVxuIl19
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import ObjectID from 'bson-objectid';
|
2
|
-
import { shortId } from './short-id';
|
3
|
-
export function idCreator() {
|
4
|
-
return ObjectID().toHexString();
|
5
|
-
}
|
6
|
-
export function idsCreator(count) {
|
7
|
-
if (count <= 0)
|
8
|
-
return [];
|
9
|
-
const newIds = [];
|
10
|
-
for (let i = 0; i < count; i++) {
|
11
|
-
newIds.push(idCreator());
|
12
|
-
}
|
13
|
-
return newIds;
|
14
|
-
}
|
15
|
-
export function shortIdCreator() {
|
16
|
-
return shortId(undefined, 8);
|
17
|
-
}
|
18
|
-
export function shortIdsCreator(count) {
|
19
|
-
return shortId(undefined, 8, count);
|
20
|
-
}
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdXRpbHMvaWQtY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyQyxNQUFNLFVBQVUsU0FBUztJQUNyQixPQUFPLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWE7SUFDcEMsSUFBSSxLQUFLLElBQUksQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWM7SUFDMUIsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWE7SUFDekMsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdElEIGZyb20gJ2Jzb24tb2JqZWN0aWQnO1xuaW1wb3J0IHsgc2hvcnRJZCB9IGZyb20gJy4vc2hvcnQtaWQnO1xuXG5leHBvcnQgZnVuY3Rpb24gaWRDcmVhdG9yKCkge1xuICAgIHJldHVybiBPYmplY3RJRCgpLnRvSGV4U3RyaW5nKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpZHNDcmVhdG9yKGNvdW50OiBudW1iZXIpIHtcbiAgICBpZiAoY291bnQgPD0gMCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IG5ld0lkczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgbmV3SWRzLnB1c2goaWRDcmVhdG9yKCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3SWRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvcnRJZENyZWF0b3IoKSB7XG4gICAgcmV0dXJuIHNob3J0SWQodW5kZWZpbmVkLCA4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3J0SWRzQ3JlYXRvcihjb3VudDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHNob3J0SWQodW5kZWZpbmVkLCA4LCBjb3VudCk7XG59XG4iXX0=
|
@@ -1,5 +0,0 @@
|
|
1
|
-
export * from './id-creator';
|
2
|
-
export * from './field';
|
3
|
-
export * from './common';
|
4
|
-
export * from './queries';
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pZC1jcmVhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVzJztcbiJdfQ==
|
@@ -1,80 +0,0 @@
|
|
1
|
-
import { isUndefinedOrNull } from 'ngx-tethys/util';
|
2
|
-
import { AITableFieldType } from '@ai-table/utils';
|
3
|
-
import { isSystemField } from './field';
|
4
|
-
export function getFieldValue(record, field) {
|
5
|
-
if (isSystemField(field)) {
|
6
|
-
return getSystemFieldValue(record, field.type);
|
7
|
-
}
|
8
|
-
return record.values?.[field._id];
|
9
|
-
}
|
10
|
-
export function getSystemFieldValue(record, type) {
|
11
|
-
const value = record[type];
|
12
|
-
if (type === AITableFieldType.createdAt || type === AITableFieldType.updatedAt) {
|
13
|
-
return { timestamp: value };
|
14
|
-
}
|
15
|
-
if (type === AITableFieldType.createdBy || type === AITableFieldType.updatedBy) {
|
16
|
-
return [value];
|
17
|
-
}
|
18
|
-
throw new Error(`unexpected ${type}`);
|
19
|
-
}
|
20
|
-
export const AITableQueries = {
|
21
|
-
findRecordPath(aiTable, record) {
|
22
|
-
const recordIndex = record && aiTable.records().indexOf(record);
|
23
|
-
if (!isUndefinedOrNull(recordIndex) && recordIndex > -1) {
|
24
|
-
return [recordIndex];
|
25
|
-
}
|
26
|
-
throw new Error(`can not find the record path: ${JSON.stringify({ ...(record || {}) })}`);
|
27
|
-
},
|
28
|
-
findFieldPath(aiTable, field) {
|
29
|
-
const fieldIndex = field && aiTable.fields().indexOf(field);
|
30
|
-
if (!isUndefinedOrNull(fieldIndex) && fieldIndex > -1) {
|
31
|
-
return [fieldIndex];
|
32
|
-
}
|
33
|
-
throw new Error(`can not find the field path: ${JSON.stringify({ ...(field || {}) })}`);
|
34
|
-
},
|
35
|
-
getFieldValue(aiTable, path) {
|
36
|
-
if (!aiTable) {
|
37
|
-
throw new Error(`aiTable does not exist`);
|
38
|
-
}
|
39
|
-
if (!aiTable.records()) {
|
40
|
-
throw new Error(`aiTable has no records`);
|
41
|
-
}
|
42
|
-
if (!aiTable.fields()) {
|
43
|
-
throw new Error(`aiTable has no fields`);
|
44
|
-
}
|
45
|
-
if (!path) {
|
46
|
-
throw new Error(`path does not exist as path [${path}]`);
|
47
|
-
}
|
48
|
-
const record = aiTable.recordsMap()[path[0]];
|
49
|
-
if (!record) {
|
50
|
-
throw new Error(`can not find record at path [${path}]`);
|
51
|
-
}
|
52
|
-
const field = aiTable.fieldsMap()[path[1]];
|
53
|
-
if (!field) {
|
54
|
-
throw new Error(`can not find field at path [${path}]`);
|
55
|
-
}
|
56
|
-
return getFieldValue(record, field);
|
57
|
-
},
|
58
|
-
getSystemFieldValue(record, type) {
|
59
|
-
return getSystemFieldValue(record, type);
|
60
|
-
},
|
61
|
-
getField(aiTable, path) {
|
62
|
-
if (!aiTable) {
|
63
|
-
throw new Error(`aiTable does not exist`);
|
64
|
-
}
|
65
|
-
if (!path) {
|
66
|
-
throw new Error(`path does not exist as path [${path}]`);
|
67
|
-
}
|
68
|
-
return aiTable.gridData().fields.find((item) => item._id === path[0]);
|
69
|
-
},
|
70
|
-
getRecord(aiTable, path) {
|
71
|
-
if (!aiTable) {
|
72
|
-
throw new Error(`aiTable does not exist`);
|
73
|
-
}
|
74
|
-
if (!path) {
|
75
|
-
throw new Error(`path does not exist as path [${path}]`);
|
76
|
-
}
|
77
|
-
return aiTable.records()[path[0]];
|
78
|
-
}
|
79
|
-
};
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdXRpbHMvcXVlcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBTUgsZ0JBQWdCLEVBSW5CLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUd4QyxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQThCLEVBQUUsS0FBbUI7SUFDN0UsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBd0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUE4QixFQUFFLElBQXNCO0lBQ3RGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixJQUFJLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksSUFBSSxLQUFLLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQixDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksSUFBSSxLQUFLLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdFLE9BQU8sQ0FBQyxLQUFLLENBQXFCLENBQUM7SUFDdkMsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzFDLENB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Z0NBQWdDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFnQixFQUFFLElBQWdCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQge1xuICAgIEFJVGFibGVGaWVsZCxcbiAgICBBSVRhYmxlUmVjb3JkLFxuICAgIEFJUmVjb3JkRmllbGRJZFBhdGgsXG4gICAgSWRQYXRoLFxuICAgIE51bWJlclBhdGgsXG4gICAgQUlUYWJsZUZpZWxkVHlwZSxcbiAgICBTeXN0ZW1GaWVsZFR5cGVzLFxuICAgIERhdGVGaWVsZFZhbHVlLFxuICAgIE1lbWJlckZpZWxkVmFsdWVcbn0gZnJvbSAnQGFpLXRhYmxlL3V0aWxzJztcbmltcG9ydCB7IGlzU3lzdGVtRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcbmltcG9ydCB7IEFJVGFibGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZFZhbHVlKHJlY29yZDogUGFydGlhbDxBSVRhYmxlUmVjb3JkPiwgZmllbGQ6IEFJVGFibGVGaWVsZCkge1xuICAgIGlmIChpc1N5c3RlbUZpZWxkKGZpZWxkKSkge1xuICAgICAgICByZXR1cm4gZ2V0U3lzdGVtRmllbGRWYWx1ZShyZWNvcmQsIGZpZWxkLnR5cGUgYXMgU3lzdGVtRmllbGRUeXBlcyk7XG4gICAgfVxuICAgIHJldHVybiByZWNvcmQudmFsdWVzPy5bZmllbGQuX2lkXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN5c3RlbUZpZWxkVmFsdWUocmVjb3JkOiBQYXJ0aWFsPEFJVGFibGVSZWNvcmQ+LCB0eXBlOiBTeXN0ZW1GaWVsZFR5cGVzKSB7XG4gICAgY29uc3QgdmFsdWUgPSByZWNvcmRbdHlwZV07XG4gICAgaWYgKHR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEF0IHx8IHR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUudXBkYXRlZEF0KSB7XG4gICAgICAgIHJldHVybiB7IHRpbWVzdGFtcDogdmFsdWUgfSBhcyBEYXRlRmllbGRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEJ5IHx8IHR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUudXBkYXRlZEJ5KSB7XG4gICAgICAgIHJldHVybiBbdmFsdWVdIGFzIE1lbWJlckZpZWxkVmFsdWU7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCAke3R5cGV9YCk7XG59XG5cbmV4cG9ydCBjb25zdCBBSVRhYmxlUXVlcmllcyA9IHtcbiAgICBmaW5kUmVjb3JkUGF0aChhaVRhYmxlOiBBSVRhYmxlLCByZWNvcmQ6IEFJVGFibGVSZWNvcmQpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSByZWNvcmQgJiYgYWlUYWJsZS5yZWNvcmRzKCkuaW5kZXhPZihyZWNvcmQpO1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHJlY29yZEluZGV4KSAmJiByZWNvcmRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gW3JlY29yZEluZGV4XSBhcyBOdW1iZXJQYXRoO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kIHRoZSByZWNvcmQgcGF0aDogJHtKU09OLnN0cmluZ2lmeSh7IC4uLihyZWNvcmQgfHwge30pIH0pfWApO1xuICAgIH0sXG4gICAgZmluZEZpZWxkUGF0aChhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogQUlUYWJsZUZpZWxkKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkSW5kZXggPSBmaWVsZCAmJiBhaVRhYmxlLmZpZWxkcygpLmluZGV4T2YoZmllbGQpO1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGZpZWxkSW5kZXgpICYmIGZpZWxkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIFtmaWVsZEluZGV4XSBhcyBOdW1iZXJQYXRoO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kIHRoZSBmaWVsZCBwYXRoOiAke0pTT04uc3RyaW5naWZ5KHsgLi4uKGZpZWxkIHx8IHt9KSB9KX1gKTtcbiAgICB9LFxuICAgIGdldEZpZWxkVmFsdWUoYWlUYWJsZTogQUlUYWJsZSwgcGF0aDogQUlSZWNvcmRGaWVsZElkUGF0aCk6IGFueSB7XG4gICAgICAgIGlmICghYWlUYWJsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBhaVRhYmxlIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhaVRhYmxlLnJlY29yZHMoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBhaVRhYmxlIGhhcyBubyByZWNvcmRzYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhaVRhYmxlLmZpZWxkcygpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFpVGFibGUgaGFzIG5vIGZpZWxkc2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXRoIGRvZXMgbm90IGV4aXN0IGFzIHBhdGggWyR7cGF0aH1dYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVjb3JkID0gYWlUYWJsZS5yZWNvcmRzTWFwKClbcGF0aFswXV07XG4gICAgICAgIGlmICghcmVjb3JkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbiBub3QgZmluZCByZWNvcmQgYXQgcGF0aCBbJHtwYXRofV1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWVsZCA9IGFpVGFibGUuZmllbGRzTWFwKClbcGF0aFsxXV07XG4gICAgICAgIGlmICghZmllbGQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kIGZpZWxkIGF0IHBhdGggWyR7cGF0aH1dYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldEZpZWxkVmFsdWUocmVjb3JkLCBmaWVsZCk7XG4gICAgfSxcbiAgICBnZXRTeXN0ZW1GaWVsZFZhbHVlKHJlY29yZDogUGFydGlhbDxBSVRhYmxlUmVjb3JkPiwgdHlwZTogU3lzdGVtRmllbGRUeXBlcykge1xuICAgICAgICByZXR1cm4gZ2V0U3lzdGVtRmllbGRWYWx1ZShyZWNvcmQsIHR5cGUpO1xuICAgIH0sXG4gICAgZ2V0RmllbGQoYWlUYWJsZTogQUlUYWJsZSwgcGF0aDogSWRQYXRoKTogQUlUYWJsZUZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCFhaVRhYmxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFpVGFibGUgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGF0aCBkb2VzIG5vdCBleGlzdCBhcyBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhaVRhYmxlLmdyaWREYXRhKCkuZmllbGRzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBwYXRoWzBdKTtcbiAgICB9LFxuXG4gICAgZ2V0UmVjb3JkKGFpVGFibGU6IEFJVGFibGUsIHBhdGg6IE51bWJlclBhdGgpOiBBSVRhYmxlUmVjb3JkIHtcbiAgICAgICAgaWYgKCFhaVRhYmxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFpVGFibGUgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGF0aCBkb2VzIG5vdCBleGlzdCBhcyBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhaVRhYmxlLnJlY29yZHMoKVtwYXRoWzBdXTtcbiAgICB9XG59O1xuIl19
|