@ai-table/grid 0.0.43 → 0.0.44

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.
Files changed (57) hide show
  1. package/angular-konva/interfaces/event-object.d.ts +4 -0
  2. package/angular-konva/interfaces/event-object.d.ts.map +1 -1
  3. package/components/field-menu/field-menu.component.d.ts +3 -2
  4. package/components/field-menu/field-menu.component.d.ts.map +1 -1
  5. package/constants/grid.d.ts.map +1 -1
  6. package/constants/table.d.ts +5 -1
  7. package/constants/table.d.ts.map +1 -1
  8. package/esm2022/angular-konva/interfaces/event-object.mjs +1 -1
  9. package/esm2022/components/field-menu/field-menu.component.mjs +9 -3
  10. package/esm2022/constants/grid.mjs +1 -2
  11. package/esm2022/constants/table.mjs +6 -2
  12. package/esm2022/grid-base.component.mjs +4 -2
  13. package/esm2022/grid.component.mjs +38 -22
  14. package/esm2022/renderer/components/action-icon.component.mjs +117 -0
  15. package/esm2022/renderer/components/cells/attachment.component.mjs +117 -0
  16. package/esm2022/renderer/components/cells/index.mjs +3 -1
  17. package/esm2022/renderer/components/hover-cell.component.mjs +7 -7
  18. package/esm2022/renderer/drawers/cell-drawer.mjs +4 -7
  19. package/esm2022/types/cell.mjs +1 -1
  20. package/esm2022/types/component-config.mjs +1 -1
  21. package/esm2022/types/field.mjs +1 -1
  22. package/esm2022/utils/clipboard/paste.mjs +3 -2
  23. package/esm2022/utils/common.mjs +6 -5
  24. package/esm2022/utils/field/model/date.mjs +6 -12
  25. package/esm2022/utils/field/model/progress.mjs +11 -4
  26. package/esm2022/utils/file.mjs +1 -93
  27. package/esm2022/utils/hover-cell.mjs +1 -8
  28. package/fesm2022/ai-table-grid.mjs +1322 -1252
  29. package/fesm2022/ai-table-grid.mjs.map +1 -1
  30. package/grid-base.component.d.ts +4 -1
  31. package/grid-base.component.d.ts.map +1 -1
  32. package/grid.component.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/renderer/components/action-icon.component.d.ts +47 -0
  35. package/renderer/components/action-icon.component.d.ts.map +1 -0
  36. package/renderer/components/cells/attachment.component.d.ts +16 -0
  37. package/renderer/components/cells/attachment.component.d.ts.map +1 -0
  38. package/renderer/components/cells/index.d.ts +1 -0
  39. package/renderer/components/cells/index.d.ts.map +1 -1
  40. package/renderer/drawers/cell-drawer.d.ts.map +1 -1
  41. package/types/cell.d.ts +1 -0
  42. package/types/cell.d.ts.map +1 -1
  43. package/types/component-config.d.ts +13 -1
  44. package/types/component-config.d.ts.map +1 -1
  45. package/types/field.d.ts +1 -1
  46. package/types/field.d.ts.map +1 -1
  47. package/utils/clipboard/paste.d.ts.map +1 -1
  48. package/utils/common.d.ts +1 -1
  49. package/utils/common.d.ts.map +1 -1
  50. package/utils/field/model/date.d.ts.map +1 -1
  51. package/utils/field/model/progress.d.ts.map +1 -1
  52. package/utils/file.d.ts +0 -9
  53. package/utils/file.d.ts.map +1 -1
  54. package/utils/hover-cell.d.ts.map +1 -1
  55. package/esm2022/utils/icon.mjs +0 -48
  56. package/utils/icon.d.ts +0 -19
  57. package/utils/icon.d.ts.map +0 -1
@@ -0,0 +1,117 @@
1
+ import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
2
+ import { KoShape } from '../../../angular-konva/components/shape.component';
3
+ import { AddOutlinedPath, AI_TABLE_ACTION_COMMON_RADIUS, AI_TABLE_ACTION_COMMON_RIGHT_PADDING, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_CELL, AI_TABLE_CELL_ATTACHMENT_ADD, AI_TABLE_CELL_PADDING, AI_TABLE_FIELD_ITEM_MARGIN_RIGHT, AI_TABLE_FILE_ICON_SIZE, AI_TABLE_OFFSET, AI_TABLE_ROW_BLANK_HEIGHT, Colors } from '../../../constants';
4
+ import { KoContainer } from '../../../angular-konva/components/container.component';
5
+ import { generateTargetName } from '../../../utils';
6
+ import { AITableFieldType } from '../../../core';
7
+ import { getFileThumbnailSvgString } from '../../../utils/file';
8
+ import { AITableActionIcon } from '../action-icon.component';
9
+ import * as i0 from "@angular/core";
10
+ export class AITableCellAttachment {
11
+ constructor() {
12
+ this.config = input();
13
+ this.attachments = computed(() => {
14
+ const { render, aiTable, coordinate, field, recordId, readonly } = this.config();
15
+ if (render) {
16
+ const {} = aiTable;
17
+ const { transformValue, references, columnWidth, rowHeight, style, zIndex } = render;
18
+ if (!transformValue?.length) {
19
+ return [];
20
+ }
21
+ const result = transformValue?.map((attachmentId, index) => {
22
+ const itemWidth = AI_TABLE_FILE_ICON_SIZE + AI_TABLE_FIELD_ITEM_MARGIN_RIGHT;
23
+ const currentX = AI_TABLE_CELL_PADDING + index * itemWidth + AI_TABLE_OFFSET;
24
+ let currentY = (AI_TABLE_ROW_BLANK_HEIGHT - AI_TABLE_FILE_ICON_SIZE) / 2 + AI_TABLE_OFFSET;
25
+ if (columnWidth != null) {
26
+ // 当超出列宽时,不会渲染后续内容
27
+ if (currentX >= columnWidth - AI_TABLE_ACTION_COMMON_SIZE - 2 * AI_TABLE_CELL_PADDING) {
28
+ return null;
29
+ }
30
+ }
31
+ const attachmentInfo = references.attachments[attachmentId];
32
+ if (attachmentInfo) {
33
+ const svgString = getFileThumbnailSvgString(attachmentInfo.addition.ext);
34
+ const image = new Image();
35
+ image.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgString)}`;
36
+ return {
37
+ // coordinate,
38
+ // readonly,
39
+ attachmentInfo,
40
+ name: generateTargetName({
41
+ targetName: AI_TABLE_CELL,
42
+ fieldId: field._id,
43
+ recordId,
44
+ mouseStyle: readonly ? 'default' : 'pointer',
45
+ source: attachmentInfo._id
46
+ }),
47
+ x: currentX,
48
+ y: currentY,
49
+ width: AI_TABLE_FILE_ICON_SIZE,
50
+ height: AI_TABLE_FILE_ICON_SIZE,
51
+ image,
52
+ listening: true
53
+ };
54
+ }
55
+ return null;
56
+ }) || [];
57
+ return result.filter((item) => !!item);
58
+ }
59
+ return [];
60
+ });
61
+ this.iconConfig = computed(() => {
62
+ const { coordinate, render, field, recordId, readonly } = this.config();
63
+ const offsetX = render.columnWidth - AI_TABLE_ACTION_COMMON_SIZE - AI_TABLE_ACTION_COMMON_RIGHT_PADDING;
64
+ const offsetY = (coordinate.rowInitSize - AI_TABLE_ACTION_COMMON_SIZE) / 2;
65
+ return {
66
+ coordinate,
67
+ readonly,
68
+ name: generateTargetName({
69
+ targetName: AI_TABLE_CELL,
70
+ fieldId: field._id,
71
+ recordId,
72
+ source: AI_TABLE_CELL_ATTACHMENT_ADD,
73
+ mouseStyle: readonly ? 'default' : 'pointer'
74
+ }),
75
+ x: offsetX,
76
+ y: offsetY,
77
+ data: AddOutlinedPath,
78
+ fill: Colors.gray600,
79
+ hoverFill: Colors.primary,
80
+ backgroundWidth: AI_TABLE_ACTION_COMMON_SIZE,
81
+ backgroundHeight: AI_TABLE_ACTION_COMMON_SIZE,
82
+ cornerRadius: AI_TABLE_ACTION_COMMON_RADIUS,
83
+ listening: true
84
+ };
85
+ });
86
+ }
87
+ static { this.fieldType = AITableFieldType.attachment; }
88
+ addClick(e) {
89
+ // e.event.cancelBubble = true;
90
+ }
91
+ attachmentClick(e) {
92
+ // e.event.cancelBubble = true;
93
+ }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableCellAttachment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AITableCellAttachment, isStandalone: true, selector: "ai-table-attachments", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
96
+ @for (attachment of attachments(); track attachment.attachmentInfo._id) {
97
+ <ko-image [config]="attachment" (koClick)="attachmentClick($event)"></ko-image>
98
+ }
99
+ <ai-table-action-icon [config]="iconConfig()" (onClick)="addClick($event)"></ai-table-action-icon>
100
+ `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableActionIcon, selector: "ai-table-action-icon", inputs: ["config"], outputs: ["onClick", "onMousemove", "onMouseenter", "onMouseleave"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
101
+ }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableCellAttachment, decorators: [{
103
+ type: Component,
104
+ args: [{
105
+ selector: 'ai-table-attachments',
106
+ template: `
107
+ @for (attachment of attachments(); track attachment.attachmentInfo._id) {
108
+ <ko-image [config]="attachment" (koClick)="attachmentClick($event)"></ko-image>
109
+ }
110
+ <ai-table-action-icon [config]="iconConfig()" (onClick)="addClick($event)"></ai-table-action-icon>
111
+ `,
112
+ standalone: true,
113
+ imports: [KoContainer, KoShape, AITableActionIcon],
114
+ changeDetection: ChangeDetectionStrategy.OnPush
115
+ }]
116
+ }] });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2F0dGFjaG1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUUsT0FBTyxFQUNILGVBQWUsRUFDZiw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsNEJBQTRCLEVBRTVCLHFCQUFxQixFQUVyQixnQ0FBZ0MsRUFDaEMsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsTUFBTSxFQUNULE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFjN0QsTUFBTSxPQUFPLHFCQUFxQjtJQVpsQztRQWVJLFdBQU0sR0FBRyxLQUFLLEVBQTBCLENBQUM7UUFFekMsZ0JBQVcsR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRTtZQUNuRCxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFHLENB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b21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS29TaGFwZSB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIta29udmEvY29tcG9uZW50cy9zaGFwZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBBZGRPdXRsaW5lZFBhdGgsXG4gICAgQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9SQURJVVMsXG4gICAgQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9SSUdIVF9QQURESU5HLFxuICAgIEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSxcbiAgICBBSV9UQUJMRV9DRUxMLFxuICAgIEFJX1RBQkxFX0NFTExfQVRUQUNITUVOVF9BREQsXG4gICAgQUlfVEFCTEVfQ0VMTF9BVFRBQ0hNRU5UX0ZJTEUsXG4gICAgQUlfVEFCTEVfQ0VMTF9QQURESU5HLFxuICAgIEFJX1RBQkxFX0ZJRUxEX0hFQURfTU9SRSxcbiAgICBBSV9UQUJMRV9GSUVMRF9JVEVNX01BUkdJTl9SSUdIVCxcbiAgICBBSV9UQUJMRV9GSUxFX0lDT05fU0laRSxcbiAgICBBSV9UQUJMRV9PRkZTRVQsXG4gICAgQUlfVEFCTEVfUk9XX0JMQU5LX0hFSUdIVCxcbiAgICBDb2xvcnNcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEtvQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vLi4vYW5ndWxhci1rb252YS9jb21wb25lbnRzL2NvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2VuZXJhdGVUYXJnZXROYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQUlUYWJsZUFjdGlvbkljb25Db25maWcsIEFJVGFibGVBdHRhY2htZW50Q29uZmlnLCBBSVRhYmxlSG92ZXJDZWxsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgS29FdmVudE9iamVjdCB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIta29udmEnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkVHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgSG92ZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRGaWxlVGh1bWJuYWlsU3ZnU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZmlsZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBSVRhYmxlQWN0aW9uSWNvbiB9IGZyb20gJy4uL2FjdGlvbi1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWktdGFibGUtYXR0YWNobWVudHMnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBmb3IgKGF0dGFjaG1lbnQgb2YgYXR0YWNobWVudHMoKTsgdHJhY2sgYXR0YWNobWVudC5hdHRhY2htZW50SW5mby5faWQpIHtcbiAgICAgICAgICAgIDxrby1pbWFnZSBbY29uZmlnXT1cImF0dGFjaG1lbnRcIiAoa29DbGljayk9XCJhdHRhY2htZW50Q2xpY2soJGV2ZW50KVwiPjwva28taW1hZ2U+XG4gICAgICAgIH1cbiAgICAgICAgPGFpLXRhYmxlLWFjdGlvbi1pY29uIFtjb25maWddPVwiaWNvbkNvbmZpZygpXCIgKG9uQ2xpY2spPVwiYWRkQ2xpY2soJGV2ZW50KVwiPjwvYWktdGFibGUtYWN0aW9uLWljb24+XG4gICAgYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLb0NvbnRhaW5lciwgS29TaGFwZSwgQUlUYWJsZUFjdGlvbkljb25dLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFJVGFibGVDZWxsQXR0YWNobWVudCBpbXBsZW1lbnRzIEhvdmVyQ2VsbENvbXBvbmVudCB7XG4gICAgc3RhdGljIGZpZWxkVHlwZSA9IEFJVGFibGVGaWVsZFR5cGUuYXR0YWNobWVudDtcblxuICAgIGNvbmZpZyA9IGlucHV0PEFJVGFibGVIb3ZlckNlbGxDb25maWc+KCk7XG5cbiAgICBhdHRhY2htZW50cyA9IGNvbXB1dGVkPEFJVGFibGVBdHRhY2htZW50Q29uZmlnW10+KCgpID0+IHtcbiAgICAgICAgY29uc3QgeyByZW5kZXIsIGFpVGFibGUsIGNvb3JkaW5hdGUsIGZpZWxkLCByZWNvcmRJZCwgcmVhZG9ubHkgfSA9IHRoaXMuY29uZmlnKCkhO1xuXG4gICAgICAgIGlmIChyZW5kZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHt9ID0gYWlUYWJsZTtcbiAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNmb3JtVmFsdWUsIHJlZmVyZW5jZXMsIGNvbHVtbldpZHRoLCByb3dIZWlnaHQsIHN0eWxlLCB6SW5kZXggfSA9IHJlbmRlcjtcbiAgICAgICAgICAgIGlmICghdHJhbnNmb3JtVmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtVmFsdWU/Lm1hcCgoYXR0YWNobWVudElkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbVdpZHRoID0gQUlfVEFCTEVfRklMRV9JQ09OX1NJWkUgKyBBSV9UQUJMRV9GSUVMRF9JVEVNX01BUkdJTl9SSUdIVDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFggPSBBSV9UQUJMRV9DRUxMX1BBRERJTkcgKyBpbmRleCAqIGl0ZW1XaWR0aCArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRZID0gKEFJX1RBQkxFX1JPV19CTEFOS19IRUlHSFQgLSBBSV9UQUJMRV9GSUxFX0lDT05fU0laRSkgLyAyICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uV2lkdGggIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5b2T6LaF5Ye65YiX5a695pe277yM5LiN5Lya5riy5p+T5ZCO57ut5YaF5a65XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFggPj0gY29sdW1uV2lkdGggLSBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUgLSAyICogQUlfVEFCTEVfQ0VMTF9QQURESU5HKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRhY2htZW50SW5mbyA9IHJlZmVyZW5jZXMhLmF0dGFjaG1lbnRzW2F0dGFjaG1lbnRJZF07XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdHRhY2htZW50SW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ZnU3RyaW5nID0gZ2V0RmlsZVRodW1ibmFpbFN2Z1N0cmluZyhhdHRhY2htZW50SW5mby5hZGRpdGlvbi5leHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwke2VuY29kZVVSSUNvbXBvbmVudChzdmdTdHJpbmcpfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvb3JkaW5hdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZG9ubHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZ2VuZXJhdGVUYXJnZXROYW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TmFtZTogQUlfVEFCTEVfQ0VMTCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogZmllbGQuX2lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VTdHlsZTogcmVhZG9ubHkgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogYXR0YWNobWVudEluZm8uX2lkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogY3VycmVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogY3VycmVudFksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IEFJX1RBQkxFX0ZJTEVfSUNPTl9TSVpFLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogQUlfVEFCTEVfRklMRV9JQ09OX1NJWkUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuaW5nOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maWx0ZXIoKGl0ZW06IEFJVGFibGVBdHRhY2htZW50Q29uZmlnKSA9PiAhIWl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH0pO1xuXG4gICAgaWNvbkNvbmZpZyA9IGNvbXB1dGVkPEFJVGFibGVBY3Rpb25JY29uQ29uZmlnPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY29vcmRpbmF0ZSwgcmVuZGVyLCBmaWVsZCwgcmVjb3JkSWQsIHJlYWRvbmx5IH0gPSB0aGlzLmNvbmZpZygpITtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IHJlbmRlci5jb2x1bW5XaWR0aCAtIEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSAtIEFJX1RBQkxFX0FDVElPTl9DT01NT05fUklHSFRfUEFERElORztcbiAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IChjb29yZGluYXRlLnJvd0luaXRTaXplIC0gQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9TSVpFKSAvIDI7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvb3JkaW5hdGUsXG4gICAgICAgICAgICByZWFkb25seSxcbiAgICAgICAgICAgIG5hbWU6IGdlbmVyYXRlVGFyZ2V0TmFtZSh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0TmFtZTogQUlfVEFCTEVfQ0VMTCxcbiAgICAgICAgICAgICAgICBmaWVsZElkOiBmaWVsZC5faWQsXG4gICAgICAgICAgICAgICAgcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgc291cmNlOiBBSV9UQUJMRV9DRUxMX0FUVEFDSE1FTlRfQURELFxuICAgICAgICAgICAgICAgIG1vdXNlU3R5bGU6IHJlYWRvbmx5ID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHg6IG9mZnNldFgsXG4gICAgICAgICAgICB5OiBvZmZzZXRZLFxuICAgICAgICAgICAgZGF0YTogQWRkT3V0bGluZWRQYXRoLFxuICAgICAgICAgICAgZmlsbDogQ29sb3JzLmdyYXk2MDAsXG4gICAgICAgICAgICBob3ZlckZpbGw6IENvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgICAgYmFja2dyb3VuZFdpZHRoOiBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kSGVpZ2h0OiBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUsXG4gICAgICAgICAgICBjb3JuZXJSYWRpdXM6IEFJX1RBQkxFX0FDVElPTl9DT01NT05fUkFESVVTLFxuICAgICAgICAgICAgbGlzdGVuaW5nOiB0cnVlXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBhZGRDbGljayhlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIC8vIGUuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBhdHRhY2htZW50Q2xpY2soZTogS29FdmVudE9iamVjdDxNb3VzZUV2ZW50Pikge1xuICAgICAgICAvLyBlLmV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7XG4gICAgfVxufVxuIl19
@@ -1,2 +1,4 @@
1
+ // TODO: components下的cells组件考虑移出 components ,这些组件都属于
1
2
  export * from './link.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpbmsuY29tcG9uZW50JztcbiJdfQ==
3
+ export * from './attachment.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBjb21wb25lbnRz5LiL55qEY2VsbHPnu4Tku7bogIPomZHnp7vlh7ogY29tcG9uZW50cyDvvIzov5nkupvnu4Tku7bpg73lsZ7kuo5cbmV4cG9ydCAqIGZyb20gJy4vbGluay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2htZW50LmNvbXBvbmVudCc7XG4iXX0=
@@ -18,7 +18,7 @@ export class AITableHoverCells {
18
18
  };
19
19
  });
20
20
  this.hoverCellConfig = computed(() => {
21
- const { aiTable, coordinate } = this.config();
21
+ const { aiTable, coordinate, references, readonly } = this.config();
22
22
  const pointPosition = aiTable.context.pointPosition();
23
23
  const hoverCell = this.hoverCell();
24
24
  if (!hoverCell) {
@@ -26,10 +26,7 @@ export class AITableHoverCells {
26
26
  }
27
27
  const { field, recordId, fieldId, renderComponentDefinition } = hoverCell;
28
28
  const cellValue = AITableQueries.getFieldValue(aiTable, [recordId, field._id]);
29
- const transformValue = transformCellValue(aiTable, field, cellValue) || {};
30
- if (Object.keys(transformValue).length === 0) {
31
- return;
32
- }
29
+ const transformValue = transformCellValue(aiTable, field, cellValue);
33
30
  const { rowHeight, columnCount, rowCount } = coordinate;
34
31
  const columnIndex = pointPosition.columnIndex;
35
32
  const rowIndex = pointPosition.rowIndex;
@@ -51,10 +48,12 @@ export class AITableHoverCells {
51
48
  const renderY = 0 - AI_TABLE_OFFSET * 2;
52
49
  const result = {
53
50
  field,
51
+ recordId,
54
52
  aiTable,
55
53
  coordinate,
56
54
  x,
57
55
  y,
56
+ readonly,
58
57
  render: {
59
58
  aiTable,
60
59
  recordId,
@@ -66,7 +65,8 @@ export class AITableHoverCells {
66
65
  rowHeight,
67
66
  cellValue,
68
67
  transformValue,
69
- style
68
+ style,
69
+ references
70
70
  }
71
71
  };
72
72
  return result;
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
100
100
  changeDetection: ChangeDetectionStrategy.OnPush
101
101
  }]
102
102
  }] });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2hvdmVyLWNlbGwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLEtBQUssRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQWtDLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVILHFCQUFxQixFQUNyQixlQUFlLEVBRWYsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUMzQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFxQjVELE1BQU0sT0FBTyxpQkFBaUI7SUFkOUI7UUFlSSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBc0IsQ0FBQztRQUU5QyxpQkFBWSxHQUF1RSxFQUFFLENBQUM7UUFFdEYsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3hCLE9BQU87Z0JBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO2dCQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7YUFDL0IsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLE1BQU0sRUFB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LHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7O0tBT1Q7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDO29CQUM3QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS29Db250YWluZXIsIEtvU2hhcGUgfSBmcm9tICcuLi8uLi9hbmd1bGFyLWtvbnZhJztcbmltcG9ydCB7IEFJVGFibGVDZWxsc0NvbmZpZywgQUlUYWJsZUhvdmVyQ2VsbENvbmZpZyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZVF1ZXJpZXMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVDZWxsTGluayB9IGZyb20gJy4vY2VsbHMvbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQUlfVEFCTEVfQ0VMTF9CT1JERVIsXG4gICAgQUlfVEFCTEVfQ0VMTF9QQURESU5HLFxuICAgIEFJX1RBQkxFX09GRlNFVCxcbiAgICBDb2xvcnMsXG4gICAgREVGQVVMVF9URVhUX0FMSUdOX0xFRlQsXG4gICAgREVGQVVMVF9URVhUX0FMSUdOX1JJR0hUXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRDZWxsSG9yaXpvbnRhbFBvc2l0aW9uLCBnZXRIb3ZlckNlbGwsIHRyYW5zZm9ybUNlbGxWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGlzU2VsZWN0ZWRGaWVsZCB9IGZyb20gJy4uL2NyZWF0aW9ucy9jcmVhdGUtY2VsbHMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0ICogYXMgY2VsbENvbXBvbmVudHMgZnJvbSAnLi9jZWxscyc7XG5pbXBvcnQgeyBIb3ZlckNlbGxDb21wb25lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhaS10YWJsZS1ob3Zlci1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAaWYgKGhvdmVyQ2VsbCgpKSB7XG4gICAgICAgICAgICA8a28tZ3JvdXAgW2NvbmZpZ109XCJncm91cENvbmZpZygpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJob3ZlckNlbGwoKSEucmVuZGVyQ29tcG9uZW50RGVmaW5pdGlvbjsgaW5wdXRzOiB7IGNvbmZpZzogaG92ZXJDZWxsQ29uZmlnKCkgfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9rby1ncm91cD5cbiAgICAgICAgfVxuICAgIGAsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbS29TaGFwZSwgS29Db250YWluZXIsIENvbW1vbk1vZHVsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQUlUYWJsZUhvdmVyQ2VsbHMge1xuICAgIGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEFJVGFibGVDZWxsc0NvbmZpZz4oKTtcblxuICAgIGNvbXBvbmVudE1hcDogUGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgQ29uc3RydWN0b3I8SG92ZXJDZWxsQ29tcG9uZW50Pj4+ID0ge307XG5cbiAgICBncm91cENvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IHRoaXMuaG92ZXJDZWxsQ29uZmlnKCk/LngsXG4gICAgICAgICAgICB5OiB0aGlzLmhvdmVyQ2VsbENvbmZpZygpPy55XG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBob3ZlckNlbGxDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgYWlUYWJsZSwgY29vcmRpbmF0ZSB9ID0gdGhpcy5jb25maWcoKTtcbiAgICAgICAgY29uc3QgcG9pbnRQb3NpdGlvbiA9IGFpVGFibGUuY29udGV4dCEucG9pbnRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBob3ZlckNlbGwgPSB0aGlzLmhvdmVyQ2VsbCgpO1xuICAgICAgICBpZiAoIWhvdmVyQ2VsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZmllbGQsIHJlY29yZElkLCBmaWVsZElkLCByZW5kZXJDb21wb25lbnREZWZpbml0aW9uIH0gPSBob3ZlckNlbGw7XG4gICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgW3JlY29yZElkLCBmaWVsZC5faWRdKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtVmFsdWUgPSB0cmFuc2Zvcm1DZWxsVmFsdWUoYWlUYWJsZSwgZmllbGQsIGNlbGxWYWx1ZSkgfHwge307XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh0cmFuc2Zvcm1WYWx1ZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHJvd0hlaWdodCwgY29sdW1uQ291bnQsIHJvd0NvdW50IH0gPSBjb29yZGluYXRlO1xuICAgICAgICBjb25zdCBjb2x1bW5JbmRleCA9IHBvaW50UG9zaXRpb24uY29sdW1uSW5kZXg7XG4gICAgICAgIGNvbnN0IHJvd0luZGV4ID0gcG9pbnRQb3NpdGlvbi5yb3dJbmRleDtcblxuICAgICAgICBjb25zdCB4ID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5PZmZzZXQoY29sdW1uSW5kZXgpICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IGNvb3JkaW5hdGUuZ2V0Q29sdW1uV2lkdGgoY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCB5ID0gY29vcmRpbmF0ZS5nZXRSb3dPZmZzZXQocm93SW5kZXgpICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICBjb25zdCB7IHdpZHRoIH0gPSBnZXRDZWxsSG9yaXpvbnRhbFBvc2l0aW9uKHtcbiAgICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgICAgY29sdW1uSW5kZXgsXG4gICAgICAgICAgICBjb2x1bW5Db3VudFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgICAgICAgIHRleHRBbGlnbjogREVGQVVMVF9URVhUX0FMSUdOX0xFRlRcbiAgICAgICAgfSBhcyBhbnk7XG4gICAgICAgIGNvbnN0IHRleHRBbGlnbiA9IHN0eWxlLnRleHRBbGlnbjtcbiAgICAgICAgY29uc3QgcmVuZGVyWCA9XG4gICAgICAgICAgICB0ZXh0QWxpZ24gPT09IERFRkFVTFRfVEVYVF9BTElHTl9SSUdIVFxuICAgICAgICAgICAgICAgID8gY29sdW1uV2lkdGggLSBBSV9UQUJMRV9DRUxMX1BBRERJTkcgKyBBSV9UQUJMRV9PRkZTRVRcbiAgICAgICAgICAgICAgICA6IEFJX1RBQkxFX0NFTExfUEFERElORyArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgY29uc3QgcmVuZGVyWSA9IDAgLSBBSV9UQUJMRV9PRkZTRVQgKiAyO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogQUlUYWJsZUhvdmVyQ2VsbENvbmZpZyA9IHtcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgYWlUYWJsZSxcbiAgICAgICAgICAgIGNvb3JkaW5hdGUsXG4gICAgICAgICAgICB4LFxuICAgICAgICAgICAgeSxcbiAgICAgICAgICAgIHJlbmRlcjoge1xuICAgICAgICAgICAgICAgIGFpVGFibGUsXG4gICAgICAgICAgICAgICAgcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU6IGlzU2VsZWN0ZWRGaWVsZChmaWVsZC5faWQsIGFpVGFibGUpLFxuICAgICAgICAgICAgICAgIHg6IHJlbmRlclgsXG4gICAgICAgICAgICAgICAgeTogcmVuZGVyWSxcbiAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aDogd2lkdGgsXG4gICAgICAgICAgICAgICAgcm93SGVpZ2h0LFxuICAgICAgICAgICAgICAgIGNlbGxWYWx1ZSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1WYWx1ZSxcbiAgICAgICAgICAgICAgICBzdHlsZVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICBob3ZlckNlbGwgPSBjb21wdXRlZCgoKSA9PiBnZXRIb3ZlckNlbGwodGhpcy5jb25maWcoKS5haVRhYmxlKSk7XG59XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2hvdmVyLWNlbGwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLEtBQUssRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQWtDLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVILHFCQUFxQixFQUNyQixlQUFlLEVBRWYsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUMzQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFxQjVELE1BQU0sT0FBTyxpQkFBaUI7SUFkOUI7UUFlSSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBc0IsQ0FBQztRQUU5QyxpQkFBWSxHQUF1RSxFQUFFLENBQUM7UUFFdEYsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3hCLE9BQU87Z0JBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO2dCQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7YUFDL0IsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLE1BQU0sRUFB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QUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7b0JBQzdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLb0NvbnRhaW5lciwgS29TaGFwZSB9IGZyb20gJy4uLy4uL2FuZ3VsYXIta29udmEnO1xuaW1wb3J0IHsgQUlUYWJsZUNlbGxzQ29uZmlnLCBBSVRhYmxlSG92ZXJDZWxsQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRUeXBlLCBBSVRhYmxlUXVlcmllcyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUNlbGxMaW5rIH0gZnJvbSAnLi9jZWxscy9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBSV9UQUJMRV9DRUxMX0JPUkRFUixcbiAgICBBSV9UQUJMRV9DRUxMX1BBRERJTkcsXG4gICAgQUlfVEFCTEVfT0ZGU0VULFxuICAgIENvbG9ycyxcbiAgICBERUZBVUxUX1RFWFRfQUxJR05fTEVGVCxcbiAgICBERUZBVUxUX1RFWFRfQUxJR05fUklHSFRcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldENlbGxIb3Jpem9udGFsUG9zaXRpb24sIGdldEhvdmVyQ2VsbCwgdHJhbnNmb3JtQ2VsbFZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgaXNTZWxlY3RlZEZpZWxkIH0gZnJvbSAnLi4vY3JlYXRpb25zL2NyZWF0ZS1jZWxscyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgKiBhcyBjZWxsQ29tcG9uZW50cyBmcm9tICcuL2NlbGxzJztcbmltcG9ydCB7IEhvdmVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FpLXRhYmxlLWhvdmVyLWNlbGwnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoaG92ZXJDZWxsKCkpIHtcbiAgICAgICAgICAgIDxrby1ncm91cCBbY29uZmlnXT1cImdyb3VwQ29uZmlnKClcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImhvdmVyQ2VsbCgpIS5yZW5kZXJDb21wb25lbnREZWZpbml0aW9uOyBpbnB1dHM6IHsgY29uZmlnOiBob3ZlckNlbGxDb25maWcoKSB9XCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2tvLWdyb3VwPlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLb1NoYXBlLCBLb0NvbnRhaW5lciwgQ29tbW9uTW9kdWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBSVRhYmxlSG92ZXJDZWxscyB7XG4gICAgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8QUlUYWJsZUNlbGxzQ29uZmlnPigpO1xuXG4gICAgY29tcG9uZW50TWFwOiBQYXJ0aWFsPFJlY29yZDxBSVRhYmxlRmllbGRUeXBlLCBDb25zdHJ1Y3RvcjxIb3ZlckNlbGxDb21wb25lbnQ+Pj4gPSB7fTtcblxuICAgIGdyb3VwQ29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogdGhpcy5ob3ZlckNlbGxDb25maWcoKT8ueCxcbiAgICAgICAgICAgIHk6IHRoaXMuaG92ZXJDZWxsQ29uZmlnKCk/LnlcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIGhvdmVyQ2VsbENvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBhaVRhYmxlLCBjb29yZGluYXRlLCByZWZlcmVuY2VzLCByZWFkb25seSB9ID0gdGhpcy5jb25maWcoKTtcbiAgICAgICAgY29uc3QgcG9pbnRQb3NpdGlvbiA9IGFpVGFibGUuY29udGV4dCEucG9pbnRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBob3ZlckNlbGwgPSB0aGlzLmhvdmVyQ2VsbCgpO1xuICAgICAgICBpZiAoIWhvdmVyQ2VsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZmllbGQsIHJlY29yZElkLCBmaWVsZElkLCByZW5kZXJDb21wb25lbnREZWZpbml0aW9uIH0gPSBob3ZlckNlbGw7XG4gICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgW3JlY29yZElkLCBmaWVsZC5faWRdKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtVmFsdWUgPSB0cmFuc2Zvcm1DZWxsVmFsdWUoYWlUYWJsZSwgZmllbGQsIGNlbGxWYWx1ZSk7XG5cbiAgICAgICAgY29uc3QgeyByb3dIZWlnaHQsIGNvbHVtbkNvdW50LCByb3dDb3VudCB9ID0gY29vcmRpbmF0ZTtcbiAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSBwb2ludFBvc2l0aW9uLmNvbHVtbkluZGV4O1xuICAgICAgICBjb25zdCByb3dJbmRleCA9IHBvaW50UG9zaXRpb24ucm93SW5kZXg7XG5cbiAgICAgICAgY29uc3QgeCA9IGNvb3JkaW5hdGUuZ2V0Q29sdW1uT2Zmc2V0KGNvbHVtbkluZGV4KSArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSBjb29yZGluYXRlLmdldENvbHVtbldpZHRoKGNvbHVtbkluZGV4KTtcbiAgICAgICAgY29uc3QgeSA9IGNvb3JkaW5hdGUuZ2V0Um93T2Zmc2V0KHJvd0luZGV4KSArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgY29uc3QgeyB3aWR0aCB9ID0gZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbih7XG4gICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgIGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgY29sdW1uQ291bnRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICAgICAgICB0ZXh0QWxpZ246IERFRkFVTFRfVEVYVF9BTElHTl9MRUZUXG4gICAgICAgIH0gYXMgYW55O1xuICAgICAgICBjb25zdCB0ZXh0QWxpZ24gPSBzdHlsZS50ZXh0QWxpZ247XG4gICAgICAgIGNvbnN0IHJlbmRlclggPVxuICAgICAgICAgICAgdGV4dEFsaWduID09PSBERUZBVUxUX1RFWFRfQUxJR05fUklHSFRcbiAgICAgICAgICAgICAgICA/IGNvbHVtbldpZHRoIC0gQUlfVEFCTEVfQ0VMTF9QQURESU5HICsgQUlfVEFCTEVfT0ZGU0VUXG4gICAgICAgICAgICAgICAgOiBBSV9UQUJMRV9DRUxMX1BBRERJTkcgKyBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgIGNvbnN0IHJlbmRlclkgPSAwIC0gQUlfVEFCTEVfT0ZGU0VUICogMjtcblxuICAgICAgICBjb25zdCByZXN1bHQ6IEFJVGFibGVIb3ZlckNlbGxDb25maWcgPSB7XG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIHJlY29yZElkLFxuICAgICAgICAgICAgYWlUYWJsZSxcbiAgICAgICAgICAgIGNvb3JkaW5hdGUsXG4gICAgICAgICAgICB4LFxuICAgICAgICAgICAgeSxcbiAgICAgICAgICAgIHJlYWRvbmx5LFxuICAgICAgICAgICAgcmVuZGVyOiB7XG4gICAgICAgICAgICAgICAgYWlUYWJsZSxcbiAgICAgICAgICAgICAgICByZWNvcmRJZCxcbiAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZTogaXNTZWxlY3RlZEZpZWxkKGZpZWxkLl9pZCwgYWlUYWJsZSksXG4gICAgICAgICAgICAgICAgeDogcmVuZGVyWCxcbiAgICAgICAgICAgICAgICB5OiByZW5kZXJZLFxuICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICByb3dIZWlnaHQsXG4gICAgICAgICAgICAgICAgY2VsbFZhbHVlLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybVZhbHVlLFxuICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgaG92ZXJDZWxsID0gY29tcHV0ZWQoKCkgPT4gZ2V0SG92ZXJDZWxsKHRoaXMuY29uZmlnKCkuYWlUYWJsZSkpO1xufVxuIl19