@ai-table/grid 0.0.11 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/angular-konva/components/container.component.d.ts +7 -0
- package/angular-konva/components/container.component.d.ts.map +1 -0
- package/angular-konva/components/container.token.d.ts +3 -0
- package/angular-konva/components/container.token.d.ts.map +1 -0
- package/angular-konva/components/index.d.ts +4 -0
- package/angular-konva/components/index.d.ts.map +1 -0
- package/angular-konva/components/shape.component.d.ts +61 -0
- package/angular-konva/components/shape.component.d.ts.map +1 -0
- package/angular-konva/components/stage.component.d.ts +40 -0
- package/angular-konva/components/stage.component.d.ts.map +1 -0
- package/angular-konva/index.d.ts +5 -0
- package/angular-konva/index.d.ts.map +1 -0
- package/angular-konva/interfaces/component.d.ts +49 -0
- package/angular-konva/interfaces/component.d.ts.map +1 -0
- package/angular-konva/interfaces/config.d.ts +26 -0
- package/angular-konva/interfaces/config.d.ts.map +1 -0
- package/angular-konva/interfaces/event-object.d.ts +7 -0
- package/angular-konva/interfaces/event-object.d.ts.map +1 -0
- package/angular-konva/interfaces/index.d.ts +5 -0
- package/angular-konva/interfaces/index.d.ts.map +1 -0
- package/angular-konva/interfaces/shape.d.ts +42 -0
- package/angular-konva/interfaces/shape.d.ts.map +1 -0
- package/angular-konva/utils/apply-node-props.d.ts +4 -0
- package/angular-konva/utils/apply-node-props.d.ts.map +1 -0
- package/angular-konva/utils/common.d.ts +8 -0
- package/angular-konva/utils/common.d.ts.map +1 -0
- package/angular-konva/utils/index.d.ts +5 -0
- package/angular-konva/utils/index.d.ts.map +1 -0
- package/angular-konva/utils/types.d.ts +4 -0
- package/angular-konva/utils/types.d.ts.map +1 -0
- package/angular-konva/utils/update-picture.d.ts +4 -0
- package/angular-konva/utils/update-picture.d.ts.map +1 -0
- package/components/cell-editors/abstract-cell-editor.component.d.ts +7 -5
- package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
- package/components/cell-editors/cell-editor.scss +38 -25
- package/components/cell-editors/cell-editor.variables.scss +5 -0
- 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 +33 -0
- package/components/cell-editors/link/edit-link/edit-link.component.d.ts.map +1 -0
- package/components/cell-editors/link/link-editor.component.d.ts +36 -0
- package/components/cell-editors/link/link-editor.component.d.ts.map +1 -0
- package/components/cell-editors/link/link-editor.component.scss +21 -0
- package/components/cell-editors/progress/progress-editor.component.d.ts +0 -1
- package/components/cell-editors/progress/progress-editor.component.d.ts.map +1 -1
- package/components/cell-editors/progress/progress-editor.component.scss +12 -4
- package/components/cell-editors/rating/rating-editor.component.d.ts +0 -1
- package/components/cell-editors/rating/rating-editor.component.d.ts.map +1 -1
- package/components/cell-editors/rating/rating-editor.component.scss +10 -0
- package/components/cell-editors/select/select-editor.component.d.ts +1 -3
- package/components/cell-editors/select/select-editor.component.d.ts.map +1 -1
- package/components/cell-editors/text/text-editor.component.d.ts +0 -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/cell-views/select/option.scss +10 -0
- package/components/field-menu/field-menu.component.d.ts +8 -3
- package/components/field-menu/field-menu.component.d.ts.map +1 -1
- package/components/field-property-editor/field-property-editor.component.d.ts +4 -2
- package/components/field-property-editor/field-property-editor.component.d.ts.map +1 -1
- package/components/index.d.ts +3 -1
- package/components/index.d.ts.map +1 -1
- package/constants/colors.d.ts +18 -0
- package/constants/colors.d.ts.map +1 -0
- package/constants/grid.d.ts +17 -1
- package/constants/grid.d.ts.map +1 -1
- package/constants/icon.d.ts +19 -0
- package/constants/icon.d.ts.map +1 -0
- package/constants/index.d.ts +5 -1
- package/constants/index.d.ts.map +1 -1
- package/constants/table.d.ts +60 -0
- package/constants/table.d.ts.map +1 -0
- package/constants/text.d.ts +22 -0
- package/constants/text.d.ts.map +1 -0
- package/core/context.d.ts +14 -0
- package/core/context.d.ts.map +1 -0
- package/core/coordinate.d.ts +96 -0
- package/core/coordinate.d.ts.map +1 -0
- package/core/index.d.ts +3 -2
- package/core/index.d.ts.map +1 -1
- package/core/types/ai-table.d.ts +56 -0
- package/core/types/ai-table.d.ts.map +1 -0
- package/core/types/core.d.ts +29 -23
- package/core/types/core.d.ts.map +1 -1
- package/core/types/index.d.ts +1 -1
- package/core/types/index.d.ts.map +1 -1
- package/core/utils/common.d.ts +1 -2
- package/core/utils/common.d.ts.map +1 -1
- package/core/utils/field.d.ts +1 -1
- package/core/utils/field.d.ts.map +1 -1
- package/core/utils/index.d.ts +0 -1
- package/core/utils/index.d.ts.map +1 -1
- package/core/utils/queries.d.ts +5 -5
- package/core/utils/queries.d.ts.map +1 -1
- package/dom-grid.component.d.ts +11 -0
- package/dom-grid.component.d.ts.map +1 -0
- package/esm2022/angular-konva/components/container.component.mjs +29 -0
- package/esm2022/angular-konva/components/container.token.mjs +3 -0
- package/esm2022/angular-konva/components/index.mjs +4 -0
- package/esm2022/angular-konva/components/shape.component.mjs +142 -0
- package/esm2022/angular-konva/components/stage.component.mjs +123 -0
- package/esm2022/angular-konva/index.mjs +5 -0
- package/esm2022/angular-konva/interfaces/component.mjs +4 -0
- package/esm2022/angular-konva/interfaces/config.mjs +2 -0
- package/esm2022/angular-konva/interfaces/event-object.mjs +2 -0
- package/esm2022/angular-konva/interfaces/index.mjs +5 -0
- package/esm2022/angular-konva/interfaces/shape.mjs +42 -0
- package/esm2022/angular-konva/utils/apply-node-props.mjs +67 -0
- package/esm2022/angular-konva/utils/common.mjs +48 -0
- package/esm2022/angular-konva/utils/index.mjs +5 -0
- package/esm2022/angular-konva/utils/types.mjs +2 -0
- package/esm2022/angular-konva/utils/update-picture.mjs +7 -0
- package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +12 -7
- package/esm2022/components/cell-editors/date/date-editor.component.mjs +6 -3
- package/esm2022/components/cell-editors/link/edit-link/edit-link.component.mjs +66 -0
- package/esm2022/components/cell-editors/link/link-editor.component.mjs +117 -0
- package/esm2022/components/cell-editors/number/number-editor.component.mjs +2 -2
- package/esm2022/components/cell-editors/progress/progress-editor.component.mjs +3 -6
- package/esm2022/components/cell-editors/rating/rating-editor.component.mjs +4 -7
- package/esm2022/components/cell-editors/select/select-editor.component.mjs +11 -16
- package/esm2022/components/cell-editors/text/text-editor.component.mjs +10 -11
- package/esm2022/components/cell-views/select/option.component.mjs +6 -5
- package/esm2022/components/field-menu/field-menu.component.mjs +11 -8
- package/esm2022/components/field-property-editor/field-property-editor.component.mjs +17 -12
- package/esm2022/components/index.mjs +4 -2
- package/esm2022/constants/colors.mjs +18 -0
- package/esm2022/constants/editor.mjs +2 -3
- package/esm2022/constants/grid.mjs +22 -4
- package/esm2022/constants/icon.mjs +26 -0
- package/esm2022/constants/index.mjs +6 -2
- package/esm2022/constants/table.mjs +62 -0
- package/esm2022/constants/text.mjs +23 -0
- package/esm2022/core/context.mjs +25 -0
- package/esm2022/core/coordinate.mjs +222 -0
- package/esm2022/core/index.mjs +4 -3
- package/esm2022/core/types/ai-table.mjs +44 -0
- package/esm2022/core/types/core.mjs +6 -1
- package/esm2022/core/types/index.mjs +2 -2
- package/esm2022/core/utils/common.mjs +3 -20
- package/esm2022/core/utils/field.mjs +9 -5
- package/esm2022/core/utils/index.mjs +1 -2
- package/esm2022/core/utils/queries.mjs +4 -4
- package/esm2022/dom-grid.component.mjs +82 -0
- package/esm2022/grid-base.component.mjs +154 -0
- package/esm2022/grid.component.mjs +336 -160
- package/esm2022/public-api.mjs +9 -5
- package/esm2022/renderer/components/add-field-column.component.mjs +68 -0
- package/esm2022/renderer/components/cells.component.mjs +35 -0
- package/esm2022/renderer/components/field-head.component.mjs +130 -0
- package/esm2022/renderer/components/field-icon.component.mjs +66 -0
- package/esm2022/renderer/components/frozen-cells.component.mjs +36 -0
- package/esm2022/renderer/components/frozen-heads.component.mjs +117 -0
- package/esm2022/renderer/components/frozen-placeholder-cells.component.mjs +38 -0
- package/esm2022/renderer/components/heads.component.mjs +38 -0
- package/esm2022/renderer/components/hover-row-heads.component.mjs +107 -0
- package/esm2022/renderer/components/icon.component.mjs +80 -0
- package/esm2022/renderer/components/index.mjs +14 -0
- package/esm2022/renderer/components/other-rows.component.mjs +68 -0
- package/esm2022/renderer/components/placeholder-cells.component.mjs +33 -0
- package/esm2022/renderer/components/text.component.mjs +45 -0
- package/esm2022/renderer/creations/create-active-cell-border.mjs +68 -0
- package/esm2022/renderer/creations/create-cells.mjs +135 -0
- package/esm2022/renderer/creations/create-heads.mjs +45 -0
- package/esm2022/renderer/drawers/add-row-layout-drawer.mjs +97 -0
- package/esm2022/renderer/drawers/cell-drawer.mjs +586 -0
- package/esm2022/renderer/drawers/drawer.mjs +936 -0
- package/esm2022/renderer/drawers/layout-drawer.mjs +58 -0
- package/esm2022/renderer/drawers/record-row-layout-drawer.mjs +101 -0
- package/esm2022/renderer/index.mjs +4 -0
- package/esm2022/renderer/renderer.component.mjs +174 -0
- package/esm2022/services/event.service.mjs +115 -11
- package/esm2022/services/field.service.mjs +28 -5
- package/esm2022/services/index.mjs +4 -0
- package/esm2022/services/selection.service.mjs +8 -1
- package/esm2022/types/avatar.mjs +27 -0
- package/esm2022/types/canvas.mjs +2 -0
- package/esm2022/types/cell.mjs +2 -0
- package/esm2022/types/component-config.mjs +7 -0
- package/esm2022/types/field.mjs +1 -1
- package/esm2022/types/grid.mjs +16 -2
- package/esm2022/types/index.mjs +8 -2
- package/esm2022/types/layout.mjs +2 -0
- package/esm2022/types/row.mjs +6 -0
- package/esm2022/utils/build.mjs +39 -0
- package/esm2022/utils/cell.mjs +71 -0
- package/esm2022/utils/common.mjs +49 -0
- package/esm2022/utils/get-placeholder-cells.mjs +66 -0
- package/esm2022/utils/get-text-width.mjs +30 -0
- package/esm2022/utils/image-cache.mjs +57 -0
- package/esm2022/utils/index.mjs +12 -0
- package/esm2022/utils/os.mjs +16 -0
- package/esm2022/utils/position.mjs +48 -0
- package/esm2022/utils/style.mjs +25 -0
- package/esm2022/utils/text-measure.mjs +122 -0
- package/esm2022/utils/visible-range.mjs +38 -0
- package/fesm2022/ai-table-grid.mjs +5526 -693
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid-base.component.d.ts +52 -0
- package/grid-base.component.d.ts.map +1 -0
- package/grid.component.d.ts +43 -40
- package/grid.component.d.ts.map +1 -1
- package/package.json +5 -2
- package/public-api.d.ts +8 -4
- package/public-api.d.ts.map +1 -1
- package/renderer/components/add-field-column.component.d.ts +16 -0
- package/renderer/components/add-field-column.component.d.ts.map +1 -0
- package/renderer/components/cells.component.d.ts +14 -0
- package/renderer/components/cells.component.d.ts.map +1 -0
- package/renderer/components/field-head.component.d.ts +73 -0
- package/renderer/components/field-head.component.d.ts.map +1 -0
- package/renderer/components/field-icon.component.d.ts +17 -0
- package/renderer/components/field-icon.component.d.ts.map +1 -0
- package/renderer/components/frozen-cells.component.d.ts +14 -0
- package/renderer/components/frozen-cells.component.d.ts.map +1 -0
- package/renderer/components/frozen-heads.component.d.ts +47 -0
- package/renderer/components/frozen-heads.component.d.ts.map +1 -0
- package/renderer/components/frozen-placeholder-cells.component.d.ts +22 -0
- package/renderer/components/frozen-placeholder-cells.component.d.ts.map +1 -0
- package/renderer/components/heads.component.d.ts +9 -0
- package/renderer/components/heads.component.d.ts.map +1 -0
- package/renderer/components/hover-row-heads.component.d.ts +11 -0
- package/renderer/components/hover-row-heads.component.d.ts.map +1 -0
- package/renderer/components/icon.component.d.ts +37 -0
- package/renderer/components/icon.component.d.ts.map +1 -0
- package/renderer/components/index.d.ts +14 -0
- package/renderer/components/index.d.ts.map +1 -0
- package/renderer/components/other-rows.component.d.ts +31 -0
- package/renderer/components/other-rows.component.d.ts.map +1 -0
- package/renderer/components/placeholder-cells.component.d.ts +22 -0
- package/renderer/components/placeholder-cells.component.d.ts.map +1 -0
- package/renderer/components/text.component.d.ts +99 -0
- package/renderer/components/text.component.d.ts.map +1 -0
- package/renderer/creations/create-active-cell-border.d.ts +7 -0
- package/renderer/creations/create-active-cell-border.d.ts.map +1 -0
- package/renderer/creations/create-cells.d.ts +8 -0
- package/renderer/creations/create-cells.d.ts.map +1 -0
- package/renderer/creations/create-heads.d.ts +3 -0
- package/renderer/creations/create-heads.d.ts.map +1 -0
- package/renderer/drawers/add-row-layout-drawer.d.ts +12 -0
- package/renderer/drawers/add-row-layout-drawer.d.ts.map +1 -0
- package/renderer/drawers/cell-drawer.d.ts +22 -0
- package/renderer/drawers/cell-drawer.d.ts.map +1 -0
- package/renderer/drawers/drawer.d.ts +136 -0
- package/renderer/drawers/drawer.d.ts.map +1 -0
- package/renderer/drawers/layout-drawer.d.ts +22 -0
- package/renderer/drawers/layout-drawer.d.ts.map +1 -0
- package/renderer/drawers/record-row-layout-drawer.d.ts +14 -0
- package/renderer/drawers/record-row-layout-drawer.d.ts.map +1 -0
- package/renderer/index.d.ts +4 -0
- package/renderer/index.d.ts.map +1 -0
- package/renderer/renderer.component.d.ts +64 -0
- package/renderer/renderer.component.d.ts.map +1 -0
- package/services/event.service.d.ts +17 -3
- package/services/event.service.d.ts.map +1 -1
- package/services/field.service.d.ts +5 -4
- package/services/field.service.d.ts.map +1 -1
- package/services/index.d.ts +4 -0
- package/services/index.d.ts.map +1 -0
- package/services/selection.service.d.ts.map +1 -1
- package/styles/styles.scss +71 -11
- package/types/avatar.d.ts +24 -0
- package/types/avatar.d.ts.map +1 -0
- package/types/canvas.d.ts +83 -0
- package/types/canvas.d.ts.map +1 -0
- package/types/cell.d.ts +43 -0
- package/types/cell.d.ts.map +1 -0
- package/types/component-config.d.ts +50 -0
- package/types/component-config.d.ts.map +1 -0
- package/types/field.d.ts +27 -1
- package/types/field.d.ts.map +1 -1
- package/types/grid.d.ts +80 -2
- package/types/grid.d.ts.map +1 -1
- package/types/index.d.ts +7 -1
- package/types/index.d.ts.map +1 -1
- package/types/layout.d.ts +11 -0
- package/types/layout.d.ts.map +1 -0
- package/types/row.d.ts +27 -0
- package/types/row.d.ts.map +1 -0
- package/utils/build.d.ts +5 -0
- package/utils/build.d.ts.map +1 -0
- package/utils/cell.d.ts +19 -0
- package/utils/cell.d.ts.map +1 -0
- package/utils/common.d.ts +20 -0
- package/utils/common.d.ts.map +1 -0
- package/utils/get-placeholder-cells.d.ts +16 -0
- package/utils/get-placeholder-cells.d.ts.map +1 -0
- package/utils/get-text-width.d.ts +9 -0
- package/utils/get-text-width.d.ts.map +1 -0
- package/utils/image-cache.d.ts +16 -0
- package/utils/image-cache.d.ts.map +1 -0
- package/utils/index.d.ts +12 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/os.d.ts +4 -0
- package/utils/os.d.ts.map +1 -0
- package/utils/position.d.ts +20 -0
- package/utils/position.d.ts.map +1 -0
- package/utils/style.d.ts +4 -0
- package/utils/style.d.ts.map +1 -0
- package/utils/text-measure.d.ts +32 -0
- package/utils/text-measure.d.ts.map +1 -0
- package/utils/visible-range.d.ts +13 -0
- package/utils/visible-range.d.ts.map +1 -0
- package/components/cell-editors/link/number-editor.component.d.ts +0 -8
- package/components/cell-editors/link/number-editor.component.d.ts.map +0 -1
- package/constants/field.d.ts +0 -20
- package/constants/field.d.ts.map +0 -1
- package/core/action/field.d.ts +0 -12
- package/core/action/field.d.ts.map +0 -1
- package/core/action/general.d.ts +0 -5
- package/core/action/general.d.ts.map +0 -1
- package/core/action/index.d.ts +0 -12
- package/core/action/index.d.ts.map +0 -1
- package/core/action/record.d.ts +0 -12
- package/core/action/record.d.ts.map +0 -1
- package/core/types/action.d.ts +0 -64
- package/core/types/action.d.ts.map +0 -1
- package/core/utils/weak-map.d.ts +0 -3
- package/core/utils/weak-map.d.ts.map +0 -1
- package/esm2022/components/cell-editors/link/number-editor.component.mjs +0 -25
- package/esm2022/constants/field.mjs +0 -25
- package/esm2022/core/action/field.mjs +0 -57
- package/esm2022/core/action/general.mjs +0 -116
- package/esm2022/core/action/index.mjs +0 -9
- package/esm2022/core/action/record.mjs +0 -44
- package/esm2022/core/types/action.mjs +0 -18
- package/esm2022/core/utils/weak-map.mjs +0 -2
@@ -0,0 +1,135 @@
|
|
1
|
+
import { AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_OFFSET, AI_TABLE_ROW_ADD_BUTTON, DEFAULT_FONT_STYLE } from '../../constants';
|
2
|
+
import { AITable, AITableQueries } from '../../core';
|
3
|
+
import { AITableAreaType, AITableRowType } from '../../types';
|
4
|
+
import { getCellHorizontalPosition, transformCellValue } from '../../utils';
|
5
|
+
import { addRowLayout } from '../drawers/add-row-layout-drawer';
|
6
|
+
import { cellDrawer } from '../drawers/cell-drawer';
|
7
|
+
import { recordRowLayout } from '../drawers/record-row-layout-drawer';
|
8
|
+
/**
|
9
|
+
* 绘制单元格内容的函数
|
10
|
+
* 利用 Canvas API 绘制每个单元格的背景颜色、文本以及其他可能的样式。这个函数通常用于自定义表格渲染,尤其是在处理大量数据时,通过直接操作 Canvas 来提高渲染性能
|
11
|
+
* @param config
|
12
|
+
*/
|
13
|
+
export const createCells = (config) => {
|
14
|
+
const { aiTable, coordinate, references, ctx, rowStartIndex, rowStopIndex, columnStartIndex, columnStopIndex } = config;
|
15
|
+
const context = aiTable.context;
|
16
|
+
const { rowHeight, columnCount, rowCount } = coordinate;
|
17
|
+
const colors = AITable.getColors();
|
18
|
+
const visibleColumns = AITable.getVisibleFields(aiTable);
|
19
|
+
// 初始化绘图上下文, 为后续的绘制操作做准备
|
20
|
+
cellDrawer.initCtx(ctx);
|
21
|
+
addRowLayout.initCtx(ctx);
|
22
|
+
recordRowLayout.initCtx(ctx);
|
23
|
+
// 遍历列, 确定在哪些列上绘制单元格
|
24
|
+
for (let columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
|
25
|
+
if (columnIndex > columnCount - 1)
|
26
|
+
break;
|
27
|
+
// 获取该列对应的 field,如果 field 不再展示范围,则跳过该列
|
28
|
+
const field = visibleColumns[columnIndex];
|
29
|
+
if (field == null)
|
30
|
+
continue;
|
31
|
+
// 获取该列对应的宽度
|
32
|
+
const columnWidth = coordinate.getColumnWidth(columnIndex);
|
33
|
+
const x = coordinate.getColumnOffset(columnIndex) + AI_TABLE_OFFSET;
|
34
|
+
const isLastColumn = columnIndex === aiTable.fields.length - 1;
|
35
|
+
if (columnIndex === 1) {
|
36
|
+
cellDrawer.initStyle(field, { fontWeight: DEFAULT_FONT_STYLE });
|
37
|
+
}
|
38
|
+
// 遍历行, 从 rowStartIndex 到 rowStopIndex 的所有行,决定将在哪些行上绘制单元格
|
39
|
+
for (let rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
|
40
|
+
if (rowIndex > rowCount - 1)
|
41
|
+
break;
|
42
|
+
const row = context.linearRows()[rowIndex];
|
43
|
+
const { _id: recordId, type } = row;
|
44
|
+
const y = coordinate.getRowOffset(rowIndex) + AI_TABLE_OFFSET;
|
45
|
+
const { rowIndex: pointRowIndex, areaType, targetName } = context.pointPosition();
|
46
|
+
const isHover = pointRowIndex === rowIndex && areaType !== AITableAreaType.none;
|
47
|
+
switch (type) {
|
48
|
+
case AITableRowType.add: {
|
49
|
+
const isHoverRow = isHover && targetName === AI_TABLE_ROW_ADD_BUTTON;
|
50
|
+
addRowLayout.init({
|
51
|
+
x,
|
52
|
+
y,
|
53
|
+
rowIndex,
|
54
|
+
columnIndex,
|
55
|
+
columnWidth,
|
56
|
+
rowHeight: AI_TABLE_FIELD_HEAD_HEIGHT,
|
57
|
+
columnCount,
|
58
|
+
containerWidth: coordinate.containerWidth
|
59
|
+
});
|
60
|
+
addRowLayout.render({
|
61
|
+
isHoverRow
|
62
|
+
});
|
63
|
+
break;
|
64
|
+
}
|
65
|
+
case AITableRowType.record: {
|
66
|
+
let background = colors.white;
|
67
|
+
const isCheckedRow = aiTable.selection().selectedRecords.has(row._id);
|
68
|
+
const isSelected = aiTable.selection().selectedFields.has(field._id);
|
69
|
+
const isHoverRow = isHover && targetName !== AI_TABLE_FIELD_HEAD;
|
70
|
+
if (isCheckedRow || isSelected) {
|
71
|
+
background = colors.itemActiveBgColor;
|
72
|
+
}
|
73
|
+
else if (isHoverRow) {
|
74
|
+
background = colors.gray80;
|
75
|
+
}
|
76
|
+
recordRowLayout.init({
|
77
|
+
x,
|
78
|
+
y,
|
79
|
+
rowIndex,
|
80
|
+
columnIndex,
|
81
|
+
columnWidth,
|
82
|
+
rowHeight,
|
83
|
+
columnCount,
|
84
|
+
containerWidth: coordinate.containerWidth
|
85
|
+
});
|
86
|
+
recordRowLayout.render({
|
87
|
+
row,
|
88
|
+
style: { fill: background },
|
89
|
+
isHoverRow,
|
90
|
+
isCheckedRow
|
91
|
+
});
|
92
|
+
const { width, offset } = getCellHorizontalPosition({
|
93
|
+
columnIndex,
|
94
|
+
columnWidth,
|
95
|
+
columnCount
|
96
|
+
});
|
97
|
+
const realX = x + offset + AI_TABLE_OFFSET;
|
98
|
+
const realY = y + AI_TABLE_OFFSET;
|
99
|
+
const style = { fontWeight: DEFAULT_FONT_STYLE };
|
100
|
+
const cellValue = AITableQueries.getFieldValue(aiTable, [recordId, field._id]);
|
101
|
+
const transformValue = transformCellValue(aiTable, field, cellValue);
|
102
|
+
const render = {
|
103
|
+
aiTable,
|
104
|
+
x: realX,
|
105
|
+
y: realY,
|
106
|
+
columnWidth: width,
|
107
|
+
rowHeight,
|
108
|
+
recordId: recordId,
|
109
|
+
field,
|
110
|
+
cellValue,
|
111
|
+
transformValue,
|
112
|
+
references,
|
113
|
+
isActive: isSelected,
|
114
|
+
style,
|
115
|
+
colors
|
116
|
+
};
|
117
|
+
cellDrawer.initStyle(field, style);
|
118
|
+
// 最后一列,且单元格内容存在,需要裁剪内容,以防止文本溢出单元格边界
|
119
|
+
// 然后,根据计算好的样式和布局绘制单元格内容
|
120
|
+
if (isLastColumn && cellValue != null) {
|
121
|
+
ctx.save();
|
122
|
+
ctx.rect(realX, realY, width, rowHeight);
|
123
|
+
ctx.clip();
|
124
|
+
cellDrawer.renderCell(render, ctx);
|
125
|
+
ctx.restore();
|
126
|
+
}
|
127
|
+
else {
|
128
|
+
cellDrawer.renderCell(render, ctx);
|
129
|
+
}
|
130
|
+
}
|
131
|
+
}
|
132
|
+
}
|
133
|
+
}
|
134
|
+
};
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNlbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvY3JlYXRpb25zL2NyZWF0ZS1jZWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUEyQyxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLEVBQUU7SUFDNUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN4SCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBMEIsQ0FBQztJQUNuRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFDeEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25DLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxn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TyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDckUsTUFBTSxNQUFNLEdBQUc7d0JBQ1gsT0FBTzt3QkFDUCxDQUFDLEVBQUUsS0FBSzt3QkFDUixDQUFDLEVBQUUsS0FBSzt3QkFDUixXQUFXLEVBQUUsS0FBSzt3QkFDbEIsU0FBUzt3QkFDVCxRQUFRLEVBQUUsUUFBUTt3QkFDbEIsS0FBSzt3QkFDTCxTQUFTO3dCQUNULGNBQWM7d0JBQ2QsVUFBVTt3QkFDVixRQUFRLEVBQUUsVUFBVTt3QkFDcEIsS0FBSzt3QkFDTCxNQUFNO3FCQUNULENBQUM7b0JBRUYsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ25DLG9DQUFvQztvQkFDcEMsd0JBQXdCO29CQUN4QixJQUFJLFlBQVksSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ3BDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDWCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO3dCQUN6QyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ1gsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUF1QixFQUFFLEdBQStCLENBQUMsQ0FBQzt3QkFDaEYsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNsQixDQUFDO3lCQUFNLENBQUM7d0JBQ0osVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUF1QixFQUFFLEdBQStCLENBQUMsQ0FBQztvQkFDcEYsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBSV9UQUJMRV9GSUVMRF9IRUFELFxuICAgIEFJX1RBQkxFX0ZJRUxEX0hFQURfSEVJR0hULFxuICAgIEFJX1RBQkxFX09GRlNFVCxcbiAgICBBSV9UQUJMRV9ST1dfQUREX0JVVFRPTixcbiAgICBERUZBVUxUX0ZPTlRfU1RZTEVcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVRdWVyaWVzLCBSZW5kZXJlckNvbnRleHQgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVBcmVhVHlwZSwgQUlUYWJsZUNlbGxzRHJhd2VyQ29uZmlnLCBBSVRhYmxlUmVuZGVyLCBBSVRhYmxlUm93VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGdldENlbGxIb3Jpem9udGFsUG9zaXRpb24sIHRyYW5zZm9ybUNlbGxWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGFkZFJvd0xheW91dCB9IGZyb20gJy4uL2RyYXdlcnMvYWRkLXJvdy1sYXlvdXQtZHJhd2VyJztcbmltcG9ydCB7IGNlbGxEcmF3ZXIgfSBmcm9tICcuLi9kcmF3ZXJzL2NlbGwtZHJhd2VyJztcbmltcG9ydCB7IHJlY29yZFJvd0xheW91dCB9IGZyb20gJy4uL2RyYXdlcnMvcmVjb3JkLXJvdy1sYXlvdXQtZHJhd2VyJztcblxuLyoqXG4gKiDnu5jliLbljZXlhYPmoLzlhoXlrrnnmoTlh73mlbBcbiAqIOWIqeeUqCBDYW52YXMgQVBJIOe7mOWItuavj+S4quWNleWFg+agvOeahOiDjOaZr+minOiJsuOAgeaWh+acrOS7peWPiuWFtuS7luWPr+iDveeahOagt+W8j+OAgui/meS4quWHveaVsOmAmuW4uOeUqOS6juiHquWumuS5ieihqOagvOa4suafk++8jOWwpOWFtuaYr+WcqOWkhOeQhuWkp+mHj+aVsOaNruaXtu+8jOmAmui/h+ebtOaOpeaTjeS9nCBDYW52YXMg5p2l5o+Q6auY5riy5p+T5oCn6IO9XG4gKiBAcGFyYW0gY29uZmlnXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVDZWxscyA9IChjb25maWc6IEFJVGFibGVDZWxsc0RyYXdlckNvbmZpZykgPT4ge1xuICAgIGNvbnN0IHsgYWlUYWJsZSwgY29vcmRpbmF0ZSwgcmVmZXJlbmNlcywgY3R4LCByb3dTdGFydEluZGV4LCByb3dTdG9wSW5kZXgsIGNvbHVtblN0YXJ0SW5kZXgsIGNvbHVtblN0b3BJbmRleCB9ID0gY29uZmlnO1xuICAgIGNvbnN0IGNvbnRleHQgPSBhaVRhYmxlLmNvbnRleHQgYXMgUmVuZGVyZXJDb250ZXh0O1xuICAgIGNvbnN0IHsgcm93SGVpZ2h0LCBjb2x1bW5Db3VudCwgcm93Q291bnQgfSA9IGNvb3JkaW5hdGU7XG4gICAgY29uc3QgY29sb3JzID0gQUlUYWJsZS5nZXRDb2xvcnMoKTtcbiAgICBjb25zdCB2aXNpYmxlQ29sdW1ucyA9IEFJVGFibGUuZ2V0VmlzaWJsZUZpZWxkcyhhaVRhYmxlKTtcblxuICAgIC8vIOWIneWni+WMlue7mOWbvuS4iuS4i+aWhywg5Li65ZCO57ut55qE57uY5Yi25pON5L2c5YGa5YeG5aSHXG4gICAgY2VsbERyYXdlci5pbml0Q3R4KGN0eCBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpO1xuICAgIGFkZFJvd0xheW91dC5pbml0Q3R4KGN0eCBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpO1xuICAgIHJlY29yZFJvd0xheW91dC5pbml0Q3R4KGN0eCBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpO1xuXG4gICAgLy8g6YGN5Y6G5YiXLCDnoa7lrprlnKjlk6rkupvliJfkuIrnu5jliLbljZXlhYPmoLxcbiAgICBmb3IgKGxldCBjb2x1bW5JbmRleCA9IGNvbHVtblN0YXJ0SW5kZXg7IGNvbHVtbkluZGV4IDw9IGNvbHVtblN0b3BJbmRleDsgY29sdW1uSW5kZXgrKykge1xuICAgICAgICBpZiAoY29sdW1uSW5kZXggPiBjb2x1bW5Db3VudCAtIDEpIGJyZWFrO1xuXG4gICAgICAgIC8vIOiOt+WPluivpeWIl+WvueW6lOeahCBmaWVsZO+8jOWmguaenCBmaWVsZCDkuI3lho3lsZXnpLrojIPlm7TvvIzliJnot7Pov4for6XliJdcbiAgICAgICAgY29uc3QgZmllbGQgPSB2aXNpYmxlQ29sdW1uc1tjb2x1bW5JbmRleF07XG4gICAgICAgIGlmIChmaWVsZCA9PSBudWxsKSBjb250aW51ZTtcblxuICAgICAgICAvLyDojrflj5bor6XliJflr7nlupTnmoTlrr3luqZcbiAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSBjb29yZGluYXRlLmdldENvbHVtbldpZHRoKGNvbHVtbkluZGV4KTtcbiAgICAgICAgY29uc3QgeCA9IGNvb3JkaW5hdGUuZ2V0Q29sdW1uT2Zmc2V0KGNvbHVtbkluZGV4KSArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgY29uc3QgaXNMYXN0Q29sdW1uID0gY29sdW1uSW5kZXggPT09IGFpVGFibGUuZmllbGRzLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgaWYgKGNvbHVtbkluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICBjZWxsRHJhd2VyLmluaXRTdHlsZShmaWVsZCwgeyBmb250V2VpZ2h0OiBERUZBVUxUX0ZPTlRfU1RZTEUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDpgY3ljobooYwsIOS7jiByb3dTdGFydEluZGV4IOWIsCByb3dTdG9wSW5kZXgg55qE5omA5pyJ6KGM77yM5Yaz5a6a5bCG5Zyo5ZOq5Lqb6KGM5LiK57uY5Yi25Y2V5YWD5qC8XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gcm93U3RhcnRJbmRleDsgcm93SW5kZXggPD0gcm93U3RvcEluZGV4OyByb3dJbmRleCsrKSB7XG4gICAgICAgICAgICBpZiAocm93SW5kZXggPiByb3dDb3VudCAtIDEpIGJyZWFrO1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gY29udGV4dC5saW5lYXJSb3dzKClbcm93SW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgeyBfaWQ6IHJlY29yZElkLCB0eXBlIH0gPSByb3c7XG4gICAgICAgICAgICBjb25zdCB5ID0gY29vcmRpbmF0ZS5nZXRSb3dPZmZzZXQocm93SW5kZXgpICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICAgICAgY29uc3QgeyByb3dJbmRleDogcG9pbnRSb3dJbmRleCwgYXJlYVR5cGUsIHRhcmdldE5hbWUgfSA9IGNvbnRleHQucG9pbnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgY29uc3QgaXNIb3ZlciA9IHBvaW50Um93SW5kZXggPT09IHJvd0luZGV4ICYmIGFyZWFUeXBlICE9PSBBSVRhYmxlQXJlYVR5cGUubm9uZTtcblxuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBSVRhYmxlUm93VHlwZS5hZGQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIb3ZlclJvdyA9IGlzSG92ZXIgJiYgdGFyZ2V0TmFtZSA9PT0gQUlfVEFCTEVfUk9XX0FERF9CVVRUT047XG4gICAgICAgICAgICAgICAgICAgIGFkZFJvd0xheW91dC5pbml0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5LFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93SGVpZ2h0OiBBSV9UQUJMRV9GSUVMRF9IRUFEX0hFSUdIVCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkNvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyV2lkdGg6IGNvb3JkaW5hdGUuY29udGFpbmVyV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGFkZFJvd0xheW91dC5yZW5kZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNIb3ZlclJvd1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgQUlUYWJsZVJvd1R5cGUucmVjb3JkOiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBiYWNrZ3JvdW5kID0gY29sb3JzLndoaXRlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0NoZWNrZWRSb3cgPSBhaVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkUmVjb3Jkcy5oYXMocm93Ll9pZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBhaVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkRmllbGRzLmhhcyhmaWVsZC5faWQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hvdmVyUm93ID0gaXNIb3ZlciAmJiB0YXJnZXROYW1lICE9PSBBSV9UQUJMRV9GSUVMRF9IRUFEO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDaGVja2VkUm93IHx8IGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgPSBjb2xvcnMuaXRlbUFjdGl2ZUJnQ29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNIb3ZlclJvdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZCA9IGNvbG9ycy5ncmF5ODA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkUm93TGF5b3V0LmluaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBjb29yZGluYXRlLmNvbnRhaW5lcldpZHRoXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRSb3dMYXlvdXQucmVuZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGZpbGw6IGJhY2tncm91bmQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSG92ZXJSb3csXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NoZWNrZWRSb3dcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIG9mZnNldCB9ID0gZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uQ291bnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWxYID0geCArIG9mZnNldCArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVhbFkgPSB5ICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IHsgZm9udFdlaWdodDogREVGQVVMVF9GT05UX1NUWUxFIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgW3JlY29yZElkLCBmaWVsZC5faWRdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtVmFsdWUgPSB0cmFuc2Zvcm1DZWxsVmFsdWUoYWlUYWJsZSwgZmllbGQsIGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbmRlciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB4OiByZWFsWCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IHJlYWxZLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93SGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkSWQ6IHJlY29yZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1WYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZTogaXNTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgY2VsbERyYXdlci5pbml0U3R5bGUoZmllbGQsIHN0eWxlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8g5pyA5ZCO5LiA5YiX77yM5LiU5Y2V5YWD5qC85YaF5a655a2Y5Zyo77yM6ZyA6KaB6KOB5Ymq5YaF5a6577yM5Lul6Ziy5q2i5paH5pys5rqi5Ye65Y2V5YWD5qC86L6555WMXG4gICAgICAgICAgICAgICAgICAgIC8vIOeEtuWQju+8jOagueaNruiuoeeul+WlveeahOagt+W8j+WSjOW4g+WxgOe7mOWItuWNleWFg+agvOWGheWuuVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNMYXN0Q29sdW1uICYmIGNlbGxWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdHguc2F2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnJlY3QocmVhbFgsIHJlYWxZLCB3aWR0aCwgcm93SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5jbGlwKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsRHJhd2VyLnJlbmRlckNlbGwocmVuZGVyIGFzIEFJVGFibGVSZW5kZXIsIGN0eCBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxEcmF3ZXIucmVuZGVyQ2VsbChyZW5kZXIgYXMgQUlUYWJsZVJlbmRlciwgY3R4IGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_MORE, Colors } from '../../constants';
|
2
|
+
export const createColumnHeads = (config) => {
|
3
|
+
const { coordinate, columnStartIndex, columnStopIndex, pointPosition, aiTable } = config;
|
4
|
+
const colors = Colors;
|
5
|
+
const { columnCount, rowInitSize: fieldHeadHeight } = coordinate;
|
6
|
+
const { columnIndex: pointColumnIndex, targetName: pointTargetName } = pointPosition;
|
7
|
+
const { fields } = aiTable;
|
8
|
+
const getFieldHeadStatus = (fieldId) => {
|
9
|
+
const iconVisible = [AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_MORE].includes(pointTargetName) && fields()[pointColumnIndex]?._id === fieldId;
|
10
|
+
const isHoverIcon = pointTargetName === AI_TABLE_FIELD_HEAD_MORE && fields()[pointColumnIndex]?._id === fieldId;
|
11
|
+
const isSelected = aiTable.selection().selectedFields.has(fieldId);
|
12
|
+
return {
|
13
|
+
iconVisible,
|
14
|
+
isSelected,
|
15
|
+
isHoverIcon
|
16
|
+
};
|
17
|
+
};
|
18
|
+
const fieldHeads = [];
|
19
|
+
for (let columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
|
20
|
+
if (columnIndex > columnCount - 1)
|
21
|
+
break;
|
22
|
+
if (columnIndex < 0)
|
23
|
+
continue;
|
24
|
+
const field = fields()[columnIndex];
|
25
|
+
if (field == null)
|
26
|
+
continue;
|
27
|
+
const x = coordinate.getColumnOffset(columnIndex);
|
28
|
+
const columnWidth = coordinate.getColumnWidth(columnIndex);
|
29
|
+
const { iconVisible, isSelected, isHoverIcon } = getFieldHeadStatus(field._id);
|
30
|
+
const fieldHead = {
|
31
|
+
x,
|
32
|
+
y: 0,
|
33
|
+
width: columnWidth,
|
34
|
+
height: fieldHeadHeight,
|
35
|
+
field,
|
36
|
+
stroke: columnIndex === 0 ? colors.transparent : undefined,
|
37
|
+
iconVisible,
|
38
|
+
isSelected,
|
39
|
+
isHoverIcon
|
40
|
+
};
|
41
|
+
fieldHeads.push(fieldHead);
|
42
|
+
}
|
43
|
+
return fieldHeads;
|
44
|
+
};
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWhlYWRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvY3JlYXRpb25zL2NyZWF0ZS1oZWFkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHeEYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLEVBQUU7SUFDbEUsTUFBTSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN6RixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdEIsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ2pFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxHQUFHLGFBQWEsQ0FBQztJQUNyRixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTNCLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTtRQUMzQyxNQUFNLFdBQVcsR0FDYixDQUFDLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQztRQUM3SCxNQUFNLFdBQVcsR0FBRyxlQUFlLEtBQUssd0JBQXdCLElBQUksTUFBTSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLEtBQUssT0FBTyxDQUFDO1FBQ2hILE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU87WUFDSCxXQUFXO1lBQ1gsVUFBVTtZQUNWLFdBQVc7U0FDZCxDQUFDO0lBQ04sQ0FBQyxDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQTZCLEVBQUUsQ0FBQztJQUNoRCxLQUFLLElBQUksV0FBVyxHQUFHLGdCQUFnQixFQUFFLFdBQVcsSUFBSSxlQUFlLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNyRixJQUFJLFdBQVcsR0FBRyxXQUFXLEdBQUcsQ0FBQztZQUFFLE1BQU07UUFDekMsSUFBSSxXQUFXLEdBQUcsQ0FBQztZQUFFLFNBQVM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsSUFBSSxLQUFLLElBQUksSUFBSTtZQUFFLFNBQVM7UUFDNUIsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRSxNQUFNLFNBQVMsR0FBRztZQUNkLENBQUM7WUFDRCxDQUFDLEVBQUUsQ0FBQztZQUNKLEtBQUssRUFBRSxXQUFXO1lBQ2xCLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLEtBQUs7WUFDTCxNQUFNLEVBQUUsV0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMxRCxXQUFXO1lBQ1gsVUFBVTtZQUNWLFdBQVc7U0FDZCxDQUFDO1FBRUYsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlfVEFCTEVfRklFTERfSEVBRCwgQUlfVEFCTEVfRklFTERfSEVBRF9NT1JFLCBDb2xvcnMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQUlUYWJsZUNyZWF0ZUhlYWRzQ29uZmlnLCBBSVRhYmxlRmllbGRIZWFkQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29sdW1uSGVhZHMgPSAoY29uZmlnOiBBSVRhYmxlQ3JlYXRlSGVhZHNDb25maWcpID0+IHtcbiAgICBjb25zdCB7IGNvb3JkaW5hdGUsIGNvbHVtblN0YXJ0SW5kZXgsIGNvbHVtblN0b3BJbmRleCwgcG9pbnRQb3NpdGlvbiwgYWlUYWJsZSB9ID0gY29uZmlnO1xuICAgIGNvbnN0IGNvbG9ycyA9IENvbG9ycztcbiAgICBjb25zdCB7IGNvbHVtbkNvdW50LCByb3dJbml0U2l6ZTogZmllbGRIZWFkSGVpZ2h0IH0gPSBjb29yZGluYXRlO1xuICAgIGNvbnN0IHsgY29sdW1uSW5kZXg6IHBvaW50Q29sdW1uSW5kZXgsIHRhcmdldE5hbWU6IHBvaW50VGFyZ2V0TmFtZSB9ID0gcG9pbnRQb3NpdGlvbjtcbiAgICBjb25zdCB7IGZpZWxkcyB9ID0gYWlUYWJsZTtcblxuICAgIGNvbnN0IGdldEZpZWxkSGVhZFN0YXR1cyA9IChmaWVsZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgaWNvblZpc2libGUgPVxuICAgICAgICAgICAgW0FJX1RBQkxFX0ZJRUxEX0hFQUQsIEFJX1RBQkxFX0ZJRUxEX0hFQURfTU9SRV0uaW5jbHVkZXMocG9pbnRUYXJnZXROYW1lKSAmJiBmaWVsZHMoKVtwb2ludENvbHVtbkluZGV4XT8uX2lkID09PSBmaWVsZElkO1xuICAgICAgICBjb25zdCBpc0hvdmVySWNvbiA9IHBvaW50VGFyZ2V0TmFtZSA9PT0gQUlfVEFCTEVfRklFTERfSEVBRF9NT1JFICYmIGZpZWxkcygpW3BvaW50Q29sdW1uSW5kZXhdPy5faWQgPT09IGZpZWxkSWQ7XG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBhaVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkRmllbGRzLmhhcyhmaWVsZElkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGljb25WaXNpYmxlLFxuICAgICAgICAgICAgaXNTZWxlY3RlZCxcbiAgICAgICAgICAgIGlzSG92ZXJJY29uXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGZpZWxkSGVhZHM6IEFJVGFibGVGaWVsZEhlYWRDb25maWdbXSA9IFtdO1xuICAgIGZvciAobGV0IGNvbHVtbkluZGV4ID0gY29sdW1uU3RhcnRJbmRleDsgY29sdW1uSW5kZXggPD0gY29sdW1uU3RvcEluZGV4OyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgIGlmIChjb2x1bW5JbmRleCA+IGNvbHVtbkNvdW50IC0gMSkgYnJlYWs7XG4gICAgICAgIGlmIChjb2x1bW5JbmRleCA8IDApIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkcygpW2NvbHVtbkluZGV4XTtcbiAgICAgICAgaWYgKGZpZWxkID09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCB4ID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5PZmZzZXQoY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IGNvb3JkaW5hdGUuZ2V0Q29sdW1uV2lkdGgoY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCB7IGljb25WaXNpYmxlLCBpc1NlbGVjdGVkLCBpc0hvdmVySWNvbiB9ID0gZ2V0RmllbGRIZWFkU3RhdHVzKGZpZWxkLl9pZCk7XG4gICAgICAgIGNvbnN0IGZpZWxkSGVhZCA9IHtcbiAgICAgICAgICAgIHgsXG4gICAgICAgICAgICB5OiAwLFxuICAgICAgICAgICAgd2lkdGg6IGNvbHVtbldpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBmaWVsZEhlYWRIZWlnaHQsXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIHN0cm9rZTogY29sdW1uSW5kZXggPT09IDAgPyBjb2xvcnMudHJhbnNwYXJlbnQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBpY29uVmlzaWJsZSxcbiAgICAgICAgICAgIGlzU2VsZWN0ZWQsXG4gICAgICAgICAgICBpc0hvdmVySWNvblxuICAgICAgICB9O1xuXG4gICAgICAgIGZpZWxkSGVhZHMucHVzaChmaWVsZEhlYWQpO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGRIZWFkcztcbn07XG4iXX0=
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import { AddOutlinedPath, AI_TABLE_CELL_PADDING, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_OFFSET, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH } from '../../constants';
|
2
|
+
import { Layout } from './layout-drawer';
|
3
|
+
export class AddRowLayout extends Layout {
|
4
|
+
renderAddFieldBlank() {
|
5
|
+
super.renderAddFieldBlank();
|
6
|
+
const rowHeight = this.rowHeight;
|
7
|
+
const defaultWidth = AI_TABLE_FIELD_ADD_BUTTON_WIDTH;
|
8
|
+
const width = this.containerWidth - this.x < defaultWidth ? defaultWidth : this.containerWidth - this.x;
|
9
|
+
this.line({
|
10
|
+
x: this.x + this.columnWidth,
|
11
|
+
y: this.y,
|
12
|
+
points: [0, rowHeight, width, rowHeight],
|
13
|
+
stroke: this.colors.gray200
|
14
|
+
});
|
15
|
+
}
|
16
|
+
renderCell({ width, isHoverRow }) {
|
17
|
+
const x = this.x;
|
18
|
+
const y = this.y;
|
19
|
+
const rowHeight = this.rowHeight;
|
20
|
+
const fill = isHoverRow ? this.colors.gray80 : this.colors.transparent;
|
21
|
+
this.rect({
|
22
|
+
x,
|
23
|
+
y: y + AI_TABLE_OFFSET,
|
24
|
+
width: width,
|
25
|
+
height: rowHeight,
|
26
|
+
fill
|
27
|
+
});
|
28
|
+
this.line({
|
29
|
+
x,
|
30
|
+
y: y + rowHeight,
|
31
|
+
points: [0, 0, width, 0],
|
32
|
+
stroke: this.colors.gray200
|
33
|
+
});
|
34
|
+
}
|
35
|
+
renderFirstCell({ isHoverRow }) {
|
36
|
+
if (!this.isFirst)
|
37
|
+
return;
|
38
|
+
const y = this.y;
|
39
|
+
const rowHeight = this.rowHeight;
|
40
|
+
const columnWidth = this.columnWidth;
|
41
|
+
const frozenOffset = AI_TABLE_OFFSET;
|
42
|
+
const fill = isHoverRow ? this.colors.gray80 : this.colors.transparent;
|
43
|
+
this.rect({
|
44
|
+
x: frozenOffset,
|
45
|
+
y: y + AI_TABLE_OFFSET,
|
46
|
+
width: columnWidth + AI_TABLE_ROW_HEAD_WIDTH - frozenOffset + 1,
|
47
|
+
height: rowHeight,
|
48
|
+
fill
|
49
|
+
});
|
50
|
+
this.line({
|
51
|
+
x: frozenOffset,
|
52
|
+
y,
|
53
|
+
points: [0, rowHeight, columnWidth + AI_TABLE_ROW_HEAD_WIDTH - frozenOffset + 1, rowHeight],
|
54
|
+
stroke: this.colors.gray200
|
55
|
+
});
|
56
|
+
this.path({
|
57
|
+
x: AI_TABLE_CELL_PADDING,
|
58
|
+
y: y + (rowHeight - AI_TABLE_ICON_COMMON_SIZE) / 2 - AI_TABLE_OFFSET,
|
59
|
+
data: AddOutlinedPath,
|
60
|
+
size: AI_TABLE_ROW_HEAD_SIZE,
|
61
|
+
fill: this.colors.gray600
|
62
|
+
});
|
63
|
+
}
|
64
|
+
renderLastCell({ isHoverRow }) {
|
65
|
+
if (!this.isLast)
|
66
|
+
return;
|
67
|
+
const width = this.columnWidth;
|
68
|
+
if (!this.isFirst) {
|
69
|
+
this.renderCell({
|
70
|
+
width,
|
71
|
+
isHoverRow
|
72
|
+
});
|
73
|
+
}
|
74
|
+
this.renderAddFieldBlank();
|
75
|
+
}
|
76
|
+
renderCommonCell({ isHoverRow }) {
|
77
|
+
if (this.isFirst || this.isLast)
|
78
|
+
return;
|
79
|
+
this.renderCell({
|
80
|
+
width: this.columnWidth,
|
81
|
+
isHoverRow
|
82
|
+
});
|
83
|
+
}
|
84
|
+
render({ isHoverRow }) {
|
85
|
+
this.renderFirstCell({
|
86
|
+
isHoverRow
|
87
|
+
});
|
88
|
+
this.renderCommonCell({
|
89
|
+
isHoverRow
|
90
|
+
});
|
91
|
+
this.renderLastCell({
|
92
|
+
isHoverRow
|
93
|
+
});
|
94
|
+
}
|
95
|
+
}
|
96
|
+
export const addRowLayout = new AddRowLayout();
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJvdy1sYXlvdXQtZHJhd2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvZHJhd2Vycy9hZGQtcm93LWxheW91dC1kcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFDZixxQkFBcUIsRUFDckIsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUMxQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxNQUFNLE9BQU8sWUFBYSxTQUFRLE1BQU07SUFDM0IsbUJBQW1CO1FBQ3hCLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTVCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsTUFBTSxZQUFZLEdBQUcsK0JBQStCLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFeEcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNOLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQzVCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNULE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1NBQzlCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUE2QztRQUMvRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUV2RSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ04sQ0FBQztZQUNELENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZTtZQUN0QixLQUFLLEVBQUUsS0FBZTtZQUN0QixNQUFNLEVBQUUsU0FBUztZQUNqQixJQUFJO1NBQ1AsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNOLENBQUM7WUFDRCxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVM7WUFDaEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87U0FDOUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGVBQWUsQ0FBQyxFQUFFLFVBQVUsRUFBbUM7UUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUMxQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFFdkUsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNOLENBQUMsRUFBRSxZQUFZO1lBQ2YsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlO1lBQ3RCLEtBQUssRUFBRSxXQUFXLEdBQUcsdUJBQXVCLEdBQUcsWUFBWSxHQUFHLENBQUM7WUFDL0QsTUFBTSxFQUFFLFNBQVM7WUFDakIsSUFBSTtTQUNQLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUM7WUFDTixDQUFDLEVBQUUsWUFBWTtZQUNmLENBQUM7WUFDRCxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsR0FBRyx1QkFBdUIsR0FBRyxZQUFZLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQztZQUMzRixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUM7WUFDTixDQUFDLEVBQUUscUJBQXFCO1lBQ3hCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcseUJBQXlCLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBZTtZQUNwRSxJQUFJLEVBQUUsZUFBZTtZQUNyQixJQUFJLEVBQUUsc0JBQXNCO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87U0FDNUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGNBQWMsQ0FBQyxFQUFFLFVBQVUsRUFBbUM7UUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDWixLQUFLO2dCQUNMLFVBQVU7YUFDYixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEVBQUUsVUFBVSxFQUFtQztRQUNwRSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDdkIsVUFBVTtTQUNiLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQW1DO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUM7WUFDakIsVUFBVTtTQUNiLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsQixVQUFVO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNoQixVQUFVO1NBQ2IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFkZE91dGxpbmVkUGF0aCxcbiAgICBBSV9UQUJMRV9DRUxMX1BBRERJTkcsXG4gICAgQUlfVEFCTEVfRklFTERfQUREX0JVVFRPTl9XSURUSCxcbiAgICBBSV9UQUJMRV9JQ09OX0NPTU1PTl9TSVpFLFxuICAgIEFJX1RBQkxFX09GRlNFVCxcbiAgICBBSV9UQUJMRV9ST1dfSEVBRF9TSVpFLFxuICAgIEFJX1RBQkxFX1JPV19IRUFEX1dJRFRIXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBSVRhYmxlQ2VsbCB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IExheW91dCB9IGZyb20gJy4vbGF5b3V0LWRyYXdlcic7XG5cbmV4cG9ydCBjbGFzcyBBZGRSb3dMYXlvdXQgZXh0ZW5kcyBMYXlvdXQge1xuICAgIG92ZXJyaWRlIHJlbmRlckFkZEZpZWxkQmxhbmsoKSB7XG4gICAgICAgIHN1cGVyLnJlbmRlckFkZEZpZWxkQmxhbmsoKTtcblxuICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLnJvd0hlaWdodDtcbiAgICAgICAgY29uc3QgZGVmYXVsdFdpZHRoID0gQUlfVEFCTEVfRklFTERfQUREX0JVVFRPTl9XSURUSDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmNvbnRhaW5lcldpZHRoIC0gdGhpcy54IDwgZGVmYXVsdFdpZHRoID8gZGVmYXVsdFdpZHRoIDogdGhpcy5jb250YWluZXJXaWR0aCAtIHRoaXMueDtcblxuICAgICAgICB0aGlzLmxpbmUoe1xuICAgICAgICAgICAgeDogdGhpcy54ICsgdGhpcy5jb2x1bW5XaWR0aCxcbiAgICAgICAgICAgIHk6IHRoaXMueSxcbiAgICAgICAgICAgIHBvaW50czogWzAsIHJvd0hlaWdodCwgd2lkdGgsIHJvd0hlaWdodF0sXG4gICAgICAgICAgICBzdHJva2U6IHRoaXMuY29sb3JzLmdyYXkyMDBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJDZWxsKHsgd2lkdGgsIGlzSG92ZXJSb3cgfTogUGljazxBSVRhYmxlQ2VsbCwgJ3dpZHRoJyB8ICdpc0hvdmVyUm93Jz4pIHtcbiAgICAgICAgY29uc3QgeCA9IHRoaXMueDtcbiAgICAgICAgY29uc3QgeSA9IHRoaXMueTtcbiAgICAgICAgY29uc3Qgcm93SGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGZpbGwgPSBpc0hvdmVyUm93ID8gdGhpcy5jb2xvcnMuZ3JheTgwIDogdGhpcy5jb2xvcnMudHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgdGhpcy5yZWN0KHtcbiAgICAgICAgICAgIHgsXG4gICAgICAgICAgICB5OiB5ICsgQUlfVEFCTEVfT0ZGU0VULFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoIGFzIG51bWJlcixcbiAgICAgICAgICAgIGhlaWdodDogcm93SGVpZ2h0LFxuICAgICAgICAgICAgZmlsbFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lKHtcbiAgICAgICAgICAgIHgsXG4gICAgICAgICAgICB5OiB5ICsgcm93SGVpZ2h0LFxuICAgICAgICAgICAgcG9pbnRzOiBbMCwgMCwgd2lkdGggYXMgbnVtYmVyLCAwXSxcbiAgICAgICAgICAgIHN0cm9rZTogdGhpcy5jb2xvcnMuZ3JheTIwMFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckZpcnN0Q2VsbCh7IGlzSG92ZXJSb3cgfTogUGljazxBSVRhYmxlQ2VsbCwgJ2lzSG92ZXJSb3cnPikge1xuICAgICAgICBpZiAoIXRoaXMuaXNGaXJzdCkgcmV0dXJuO1xuICAgICAgICBjb25zdCB5ID0gdGhpcy55O1xuICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLnJvd0hlaWdodDtcbiAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSB0aGlzLmNvbHVtbldpZHRoO1xuICAgICAgICBjb25zdCBmcm96ZW5PZmZzZXQgPSBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgIGNvbnN0IGZpbGwgPSBpc0hvdmVyUm93ID8gdGhpcy5jb2xvcnMuZ3JheTgwIDogdGhpcy5jb2xvcnMudHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgdGhpcy5yZWN0KHtcbiAgICAgICAgICAgIHg6IGZyb3plbk9mZnNldCxcbiAgICAgICAgICAgIHk6IHkgKyBBSV9UQUJMRV9PRkZTRVQsXG4gICAgICAgICAgICB3aWR0aDogY29sdW1uV2lkdGggKyBBSV9UQUJMRV9ST1dfSEVBRF9XSURUSCAtIGZyb3plbk9mZnNldCArIDEsXG4gICAgICAgICAgICBoZWlnaHQ6IHJvd0hlaWdodCxcbiAgICAgICAgICAgIGZpbGxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGluZSh7XG4gICAgICAgICAgICB4OiBmcm96ZW5PZmZzZXQsXG4gICAgICAgICAgICB5LFxuICAgICAgICAgICAgcG9pbnRzOiBbMCwgcm93SGVpZ2h0LCBjb2x1bW5XaWR0aCArIEFJX1RBQkxFX1JPV19IRUFEX1dJRFRIIC0gZnJvemVuT2Zmc2V0ICsgMSwgcm93SGVpZ2h0XSxcbiAgICAgICAgICAgIHN0cm9rZTogdGhpcy5jb2xvcnMuZ3JheTIwMFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBhdGgoe1xuICAgICAgICAgICAgeDogQUlfVEFCTEVfQ0VMTF9QQURESU5HLFxuICAgICAgICAgICAgeTogeSArIChyb3dIZWlnaHQgLSBBSV9UQUJMRV9JQ09OX0NPTU1PTl9TSVpFKSAvIDIgLSBBSV9UQUJMRV9PRkZTRVQsXG4gICAgICAgICAgICBkYXRhOiBBZGRPdXRsaW5lZFBhdGgsXG4gICAgICAgICAgICBzaXplOiBBSV9UQUJMRV9ST1dfSEVBRF9TSVpFLFxuICAgICAgICAgICAgZmlsbDogdGhpcy5jb2xvcnMuZ3JheTYwMFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckxhc3RDZWxsKHsgaXNIb3ZlclJvdyB9OiBQaWNrPEFJVGFibGVDZWxsLCAnaXNIb3ZlclJvdyc+KSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xhc3QpIHJldHVybjtcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmNvbHVtbldpZHRoO1xuICAgICAgICBpZiAoIXRoaXMuaXNGaXJzdCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJDZWxsKHtcbiAgICAgICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgICAgICBpc0hvdmVyUm93XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlckFkZEZpZWxkQmxhbmsoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNvbW1vbkNlbGwoeyBpc0hvdmVyUm93IH06IFBpY2s8QUlUYWJsZUNlbGwsICdpc0hvdmVyUm93Jz4pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGaXJzdCB8fCB0aGlzLmlzTGFzdCkgcmV0dXJuO1xuICAgICAgICB0aGlzLnJlbmRlckNlbGwoe1xuICAgICAgICAgICAgd2lkdGg6IHRoaXMuY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBpc0hvdmVyUm93XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbmRlcih7IGlzSG92ZXJSb3cgfTogUGljazxBSVRhYmxlQ2VsbCwgJ2lzSG92ZXJSb3cnPikge1xuICAgICAgICB0aGlzLnJlbmRlckZpcnN0Q2VsbCh7XG4gICAgICAgICAgICBpc0hvdmVyUm93XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlbmRlckNvbW1vbkNlbGwoe1xuICAgICAgICAgICAgaXNIb3ZlclJvd1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZW5kZXJMYXN0Q2VsbCh7XG4gICAgICAgICAgICBpc0hvdmVyUm93XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IGFkZFJvd0xheW91dCA9IG5ldyBBZGRSb3dMYXlvdXQoKTtcbiJdfQ==
|