@ai-table/grid 0.0.55 → 0.0.57

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 (119) hide show
  1. package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
  2. package/components/cell-editors/cell-editor.scss +0 -1
  3. package/components/drag/drag.component.d.ts +1 -0
  4. package/components/drag/drag.component.d.ts.map +1 -1
  5. package/components/index.d.ts +0 -1
  6. package/components/index.d.ts.map +1 -1
  7. package/constants/editor.d.ts.map +1 -1
  8. package/constants/grid.d.ts +0 -1
  9. package/constants/grid.d.ts.map +1 -1
  10. package/constants/icon.d.ts +1 -0
  11. package/constants/icon.d.ts.map +1 -1
  12. package/constants/table.d.ts +6 -2
  13. package/constants/table.d.ts.map +1 -1
  14. package/core/types/core.d.ts +17 -13
  15. package/core/types/core.d.ts.map +1 -1
  16. package/dom-grid.component.d.ts.map +1 -1
  17. package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +2 -4
  18. package/esm2022/components/cell-editors/date/date-editor.component.mjs +5 -5
  19. package/esm2022/components/drag/drag.component.mjs +42 -2
  20. package/esm2022/components/index.mjs +1 -2
  21. package/esm2022/constants/editor.mjs +3 -4
  22. package/esm2022/constants/grid.mjs +1 -2
  23. package/esm2022/constants/icon.mjs +2 -1
  24. package/esm2022/constants/table.mjs +7 -3
  25. package/esm2022/core/constants/field.mjs +2 -2
  26. package/esm2022/core/types/core.mjs +1 -1
  27. package/esm2022/dom-grid.component.mjs +2 -4
  28. package/esm2022/grid-base.component.mjs +9 -30
  29. package/esm2022/grid.component.mjs +49 -53
  30. package/esm2022/renderer/components/cells/attachment.component.mjs +9 -19
  31. package/esm2022/renderer/components/cells/index.mjs +3 -2
  32. package/esm2022/renderer/components/cells/link.component.mjs +3 -5
  33. package/esm2022/renderer/components/cells/progress.component.mjs +268 -0
  34. package/esm2022/renderer/components/cells/rich-text.component.mjs +90 -0
  35. package/esm2022/renderer/components/frozen-heads.component.mjs +17 -5
  36. package/esm2022/renderer/components/hover-row-heads.component.mjs +20 -3
  37. package/esm2022/renderer/components/icon.component.mjs +6 -2
  38. package/esm2022/renderer/drawers/add-row-layout-drawer.mjs +5 -5
  39. package/esm2022/renderer/drawers/cell-drawer.mjs +28 -29
  40. package/esm2022/renderer/drawers/record-row-layout-drawer.mjs +5 -5
  41. package/esm2022/utils/cell.mjs +5 -3
  42. package/esm2022/utils/clipboard/copy.mjs +11 -5
  43. package/esm2022/utils/clipboard/paste.mjs +1 -4
  44. package/esm2022/utils/field/model/attachment.mjs +8 -1
  45. package/esm2022/utils/field/model/date.mjs +13 -3
  46. package/esm2022/utils/field/model/field.mjs +1 -2
  47. package/esm2022/utils/field/model/link.mjs +16 -4
  48. package/esm2022/utils/field/model/member.mjs +1 -1
  49. package/esm2022/utils/field/model/number.mjs +11 -8
  50. package/esm2022/utils/field/model/progress.mjs +7 -7
  51. package/esm2022/utils/field/model/rate.mjs +3 -2
  52. package/esm2022/utils/field/model/rich-text.mjs +1 -1
  53. package/esm2022/utils/field/model/select.mjs +1 -1
  54. package/esm2022/utils/field/model/text.mjs +3 -2
  55. package/esm2022/utils/field/operate.mjs +4 -2
  56. package/esm2022/utils/i18n.mjs +3 -3
  57. package/esm2022/utils/index.mjs +2 -1
  58. package/esm2022/utils/match-keywords.mjs +9 -4
  59. package/esm2022/utils/style.mjs +9 -3
  60. package/fesm2022/ai-table-grid.mjs +2065 -1792
  61. package/fesm2022/ai-table-grid.mjs.map +1 -1
  62. package/grid-base.component.d.ts +6 -5
  63. package/grid-base.component.d.ts.map +1 -1
  64. package/grid.component.d.ts +2 -1
  65. package/grid.component.d.ts.map +1 -1
  66. package/package.json +1 -1
  67. package/renderer/components/cells/attachment.component.d.ts +0 -3
  68. package/renderer/components/cells/attachment.component.d.ts.map +1 -1
  69. package/renderer/components/cells/index.d.ts +2 -1
  70. package/renderer/components/cells/index.d.ts.map +1 -1
  71. package/renderer/components/cells/link.component.d.ts.map +1 -1
  72. package/renderer/components/cells/progress.component.d.ts +82 -0
  73. package/renderer/components/cells/progress.component.d.ts.map +1 -0
  74. package/renderer/components/cells/{richtext.component.d.ts → rich-text.component.d.ts} +4 -4
  75. package/renderer/components/cells/rich-text.component.d.ts.map +1 -0
  76. package/renderer/components/frozen-heads.component.d.ts +1 -0
  77. package/renderer/components/frozen-heads.component.d.ts.map +1 -1
  78. package/renderer/components/hover-row-heads.component.d.ts.map +1 -1
  79. package/renderer/components/icon.component.d.ts.map +1 -1
  80. package/renderer/drawers/add-row-layout-drawer.d.ts.map +1 -1
  81. package/renderer/drawers/cell-drawer.d.ts.map +1 -1
  82. package/renderer/drawers/record-row-layout-drawer.d.ts.map +1 -1
  83. package/utils/cell.d.ts +1 -1
  84. package/utils/cell.d.ts.map +1 -1
  85. package/utils/clipboard/paste.d.ts.map +1 -1
  86. package/utils/field/model/attachment.d.ts.map +1 -1
  87. package/utils/field/model/date.d.ts +1 -0
  88. package/utils/field/model/date.d.ts.map +1 -1
  89. package/utils/field/model/field.d.ts.map +1 -1
  90. package/utils/field/model/link.d.ts +3 -2
  91. package/utils/field/model/link.d.ts.map +1 -1
  92. package/utils/field/model/member.d.ts +1 -1
  93. package/utils/field/model/member.d.ts.map +1 -1
  94. package/utils/field/model/number.d.ts +5 -4
  95. package/utils/field/model/number.d.ts.map +1 -1
  96. package/utils/field/model/progress.d.ts +4 -4
  97. package/utils/field/model/progress.d.ts.map +1 -1
  98. package/utils/field/model/rate.d.ts +2 -2
  99. package/utils/field/model/rate.d.ts.map +1 -1
  100. package/utils/field/model/rich-text.d.ts +3 -3
  101. package/utils/field/model/rich-text.d.ts.map +1 -1
  102. package/utils/field/model/select.d.ts +1 -1
  103. package/utils/field/model/select.d.ts.map +1 -1
  104. package/utils/field/model/text.d.ts +3 -3
  105. package/utils/field/model/text.d.ts.map +1 -1
  106. package/utils/field/operate.d.ts +1 -1
  107. package/utils/field/operate.d.ts.map +1 -1
  108. package/utils/i18n.d.ts +1 -1
  109. package/utils/index.d.ts +1 -0
  110. package/utils/index.d.ts.map +1 -1
  111. package/utils/match-keywords.d.ts.map +1 -1
  112. package/utils/style.d.ts +1 -1
  113. package/utils/style.d.ts.map +1 -1
  114. package/components/cell-editors/progress/progress-editor.component.d.ts +0 -19
  115. package/components/cell-editors/progress/progress-editor.component.d.ts.map +0 -1
  116. package/components/cell-editors/progress/progress-editor.component.scss +0 -29
  117. package/esm2022/components/cell-editors/progress/progress-editor.component.mjs +0 -72
  118. package/esm2022/renderer/components/cells/richtext.component.mjs +0 -90
  119. package/renderer/components/cells/richtext.component.d.ts.map +0 -1
@@ -1,20 +1,18 @@
1
1
  import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
2
2
  import { KoShape } from '../../../angular-konva/components/shape.component';
3
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';
4
+ import { generateTargetName, getFileThumbnailSvgString } from '../../../utils';
6
5
  import { AITableFieldType } from '../../../core';
7
- import { getFileThumbnailSvgString } from '../../../utils/file';
8
6
  import { AITableActionIcon } from '../action-icon.component';
9
7
  import * as i0 from "@angular/core";
10
8
  export class AITableCellAttachment {
11
9
  constructor() {
12
10
  this.config = input();
13
11
  this.attachments = computed(() => {
14
- const { render, aiTable, coordinate, field, recordId, readonly } = this.config();
12
+ const { render, aiTable, field, recordId, readonly } = this.config();
15
13
  if (render) {
16
14
  const {} = aiTable;
17
- const { transformValue, references, columnWidth, rowHeight, style, zIndex } = render;
15
+ const { transformValue, references, columnWidth } = render;
18
16
  if (!transformValue?.length) {
19
17
  return [];
20
18
  }
@@ -34,8 +32,6 @@ export class AITableCellAttachment {
34
32
  const image = new Image();
35
33
  image.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgString)}`;
36
34
  return {
37
- // coordinate,
38
- // readonly,
39
35
  attachmentInfo,
40
36
  name: generateTargetName({
41
37
  targetName: AI_TABLE_CELL,
@@ -85,18 +81,12 @@ export class AITableCellAttachment {
85
81
  });
86
82
  }
87
83
  static { this.fieldType = AITableFieldType.attachment; }
88
- addClick(e) {
89
- // e.event.cancelBubble = true;
90
- }
91
- attachmentClick(e) {
92
- // e.event.cancelBubble = true;
93
- }
94
84
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableCellAttachment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
85
  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
86
  @for (attachment of attachments(); track attachment.attachmentInfo._id) {
97
- <ko-image [config]="attachment" (koClick)="attachmentClick($event)"></ko-image>
87
+ <ko-image [config]="attachment"></ko-image>
98
88
  }
99
- <ai-table-action-icon [config]="iconConfig()" (onClick)="addClick($event)"></ai-table-action-icon>
89
+ <ai-table-action-icon [config]="iconConfig()"></ai-table-action-icon>
100
90
  `, 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
91
  }
102
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableCellAttachment, decorators: [{
@@ -105,13 +95,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
105
95
  selector: 'ai-table-attachments',
106
96
  template: `
107
97
  @for (attachment of attachments(); track attachment.attachmentInfo._id) {
108
- <ko-image [config]="attachment" (koClick)="attachmentClick($event)"></ko-image>
98
+ <ko-image [config]="attachment"></ko-image>
109
99
  }
110
- <ai-table-action-icon [config]="iconConfig()" (onClick)="addClick($event)"></ai-table-action-icon>
100
+ <ai-table-action-icon [config]="iconConfig()"></ai-table-action-icon>
111
101
  `,
112
102
  standalone: true,
113
- imports: [KoContainer, KoShape, AITableActionIcon],
103
+ imports: [KoShape, AITableActionIcon],
114
104
  changeDetection: ChangeDetectionStrategy.OnPush
115
105
  }]
116
106
  }] });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2F0dGFjaG1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUUsT0FBTyxFQUNILGVBQWUsRUFDZiw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsNEJBQTRCLEVBRTVCLHFCQUFxQixFQUVyQixnQ0FBZ0MsRUFDaEMsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsTUFBTSxFQUNULE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFjN0QsTUFBTSxPQUFPLHFCQUFxQjtJQVpsQztRQWVJLFdBQU0sR0FBRyxLQUFLLEVBQTBCLENBQUM7UUFFekMsZ0JBQVcsR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRTtZQUNuRCxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUM7WUFFbEYsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDVCxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7Z0JBQ25CLE1BQU0sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQztnQkFDckYsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUM7Z0JBQ2QsQ0FBQztnQkFDRCxNQUFNLE1BQU0sR0FDUixjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsWUFBb0IsRUFBRSxLQUFhLEVBQUUsRUFBRTtvQkFDeEQsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLEdBQUcsZ0NBQWdDLENBQUM7b0JBQzdFLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixHQUFHLEtBQUssR0FBRyxTQUFTLEdBQUcsZUFBZSxDQUFDO29CQUM3RSxJQUFJLFFBQVEsR0FBRyxDQUFDLHlCQUF5QixHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxHQUFHLGVBQWUsQ0FBQztvQkFDM0YsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ3RCLGtCQUFrQjt3QkFDbEIsSUFBSSxRQUFRLElBQUksV0FBVyxHQUFHLDJCQUEyQixHQUFHLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxDQUFDOzRCQUNwRixPQUFPLElBQUksQ0FBQzt3QkFDaEIsQ0FBQztvQkFDTCxDQUFDO29CQUVELE1BQU0sY0FBYyxHQUFHLFVBQVcsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzdELElBQUksY0FBYyxFQUFFLENBQUM7d0JBQ2pCLE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ3pFLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7d0JBQzFCLEtBQUssQ0FBQyxHQUFHLEdBQUcsb0NBQW9DLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7d0JBQ2hGLE9BQU87NEJBQ0gsY0FBYzs0QkFDZCxZQUFZOzRCQUNaLGNBQWM7NEJBQ2QsSUFBSSxFQUFFLGtCQUFrQixDQUFDO2dDQUNyQixVQUFVLEVBQUUsYUFBYTtnQ0FDekIsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHO2dDQUNsQixRQUFRO2dDQUNSLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQ0FDNUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxHQUFHOzZCQUM3QixDQUFDOzRCQUNGLENBQUMsRUFBRSxRQUFROzRCQUNYLENBQUMsRUFBRSxRQUFROzRCQUNYLEtBQUssRUFBRSx1QkFBdUI7NEJBQzlCLE1BQU0sRUFBRSx1QkFBdUI7NEJBQy9CLEtBQUs7NEJBQ0wsU0FBUyxFQUFFLElBQUk7eUJBQ2xCLENBQUM7b0JBQ04sQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNiLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQTZCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBRUQsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILGVBQVUsR0FBRyxRQUFRLENBQTBCLEdBQUcsRUFBRTtZQUNoRCxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUcsQ0FBQztZQUN6RSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLDJCQUEyQixHQUFHLG9DQUFvQyxDQUFDO1lBQ3hHLE1BQU0sT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUzRSxPQUFPO2dCQUNILFVBQVU7Z0JBQ1YsUUFBUTtnQkFDUixJQUFJLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3JCLFVBQVUsRUFBRSxhQUFhO29CQUN6QixPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUc7b0JBQ2xCLFFBQVE7b0JBQ1IsTUFBTSxFQUFFLDRCQUE0QjtvQkFDcEMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUMvQyxDQUFDO2dCQUNGLENBQUMsRUFBRSxPQUFPO2dCQUNWLENBQUMsRUFBRSxPQUFPO2dCQUNWLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3BCLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDekIsZUFBZSxFQUFFLDJCQUEyQjtnQkFDNUMsZ0JBQWdCLEVBQUUsMkJBQTJCO2dCQUM3QyxZQUFZLEVBQUUsNkJBQTZCO2dCQUMzQyxTQUFTLEVBQUUsSUFBSTthQUNsQixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7S0FTTjthQTNGVSxjQUFTLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxBQUE5QixDQUErQjtJQW9GL0MsUUFBUSxDQUFDLENBQTRCO1FBQ2pDLCtCQUErQjtJQUNuQyxDQUFDO0lBRUQsZUFBZSxDQUFDLENBQTRCO1FBQ3hDLCtCQUErQjtJQUNuQyxDQUFDOytHQTNGUSxxQkFBcUI7bUdBQXJCLHFCQUFxQix1TkFWcEI7Ozs7O0tBS1QsNERBRXNCLE9BQU8sK2hCQUFFLGlCQUFpQjs7NEZBR3hDLHFCQUFxQjtrQkFaakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUU7Ozs7O0tBS1Q7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLENBQUM7b0JBQ2xELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS29TaGFwZSB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIta29udmEvY29tcG9uZW50cy9zaGFwZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBBZGRPdXRsaW5lZFBhdGgsXG4gICAgQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9SQURJVVMsXG4gICAgQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9SSUdIVF9QQURESU5HLFxuICAgIEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSxcbiAgICBBSV9UQUJMRV9DRUxMLFxuICAgIEFJX1RBQkxFX0NFTExfQVRUQUNITUVOVF9BREQsXG4gICAgQUlfVEFCTEVfQ0VMTF9BVFRBQ0hNRU5UX0ZJTEUsXG4gICAgQUlfVEFCTEVfQ0VMTF9QQURESU5HLFxuICAgIEFJX1RBQkxFX0ZJRUxEX0hFQURfTU9SRSxcbiAgICBBSV9UQUJMRV9GSUVMRF9JVEVNX01BUkdJTl9SSUdIVCxcbiAgICBBSV9UQUJMRV9GSUxFX0lDT05fU0laRSxcbiAgICBBSV9UQUJMRV9PRkZTRVQsXG4gICAgQUlfVEFCTEVfUk9XX0JMQU5LX0hFSUdIVCxcbiAgICBDb2xvcnNcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEtvQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vLi4vYW5ndWxhci1rb252YS9jb21wb25lbnRzL2NvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2VuZXJhdGVUYXJnZXROYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQUlUYWJsZUFjdGlvbkljb25Db25maWcsIEFJVGFibGVBdHRhY2htZW50Q29uZmlnLCBBSVRhYmxlSG92ZXJDZWxsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgS29FdmVudE9iamVjdCB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIta29udmEnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkVHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgSG92ZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRGaWxlVGh1bWJuYWlsU3ZnU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZmlsZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBSVRhYmxlQWN0aW9uSWNvbiB9IGZyb20gJy4uL2FjdGlvbi1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWktdGFibGUtYXR0YWNobWVudHMnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBmb3IgKGF0dGFjaG1lbnQgb2YgYXR0YWNobWVudHMoKTsgdHJhY2sgYXR0YWNobWVudC5hdHRhY2htZW50SW5mby5faWQpIHtcbiAgICAgICAgICAgIDxrby1pbWFnZSBbY29uZmlnXT1cImF0dGFjaG1lbnRcIiAoa29DbGljayk9XCJhdHRhY2htZW50Q2xpY2soJGV2ZW50KVwiPjwva28taW1hZ2U+XG4gICAgICAgIH1cbiAgICAgICAgPGFpLXRhYmxlLWFjdGlvbi1pY29uIFtjb25maWddPVwiaWNvbkNvbmZpZygpXCIgKG9uQ2xpY2spPVwiYWRkQ2xpY2soJGV2ZW50KVwiPjwvYWktdGFibGUtYWN0aW9uLWljb24+XG4gICAgYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLb0NvbnRhaW5lciwgS29TaGFwZSwgQUlUYWJsZUFjdGlvbkljb25dLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFJVGFibGVDZWxsQXR0YWNobWVudCBpbXBsZW1lbnRzIEhvdmVyQ2VsbENvbXBvbmVudCB7XG4gICAgc3RhdGljIGZpZWxkVHlwZSA9IEFJVGFibGVGaWVsZFR5cGUuYXR0YWNobWVudDtcblxuICAgIGNvbmZpZyA9IGlucHV0PEFJVGFibGVIb3ZlckNlbGxDb25maWc+KCk7XG5cbiAgICBhdHRhY2htZW50cyA9IGNvbXB1dGVkPEFJVGFibGVBdHRhY2htZW50Q29uZmlnW10+KCgpID0+IHtcbiAgICAgICAgY29uc3QgeyByZW5kZXIsIGFpVGFibGUsIGNvb3JkaW5hdGUsIGZpZWxkLCByZWNvcmRJZCwgcmVhZG9ubHkgfSA9IHRoaXMuY29uZmlnKCkhO1xuXG4gICAgICAgIGlmIChyZW5kZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHt9ID0gYWlUYWJsZTtcbiAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNmb3JtVmFsdWUsIHJlZmVyZW5jZXMsIGNvbHVtbldpZHRoLCByb3dIZWlnaHQsIHN0eWxlLCB6SW5kZXggfSA9IHJlbmRlcjtcbiAgICAgICAgICAgIGlmICghdHJhbnNmb3JtVmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtVmFsdWU/Lm1hcCgoYXR0YWNobWVudElkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbVdpZHRoID0gQUlfVEFCTEVfRklMRV9JQ09OX1NJWkUgKyBBSV9UQUJMRV9GSUVMRF9JVEVNX01BUkdJTl9SSUdIVDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFggPSBBSV9UQUJMRV9DRUxMX1BBRERJTkcgKyBpbmRleCAqIGl0ZW1XaWR0aCArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRZID0gKEFJX1RBQkxFX1JPV19CTEFOS19IRUlHSFQgLSBBSV9UQUJMRV9GSUxFX0lDT05fU0laRSkgLyAyICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uV2lkdGggIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5b2T6LaF5Ye65YiX5a695pe277yM5LiN5Lya5riy5p+T5ZCO57ut5YaF5a65XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFggPj0gY29sdW1uV2lkdGggLSBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUgLSAyICogQUlfVEFCTEVfQ0VMTF9QQURESU5HKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRhY2htZW50SW5mbyA9IHJlZmVyZW5jZXMhLmF0dGFjaG1lbnRzW2F0dGFjaG1lbnRJZF07XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdHRhY2htZW50SW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ZnU3RyaW5nID0gZ2V0RmlsZVRodW1ibmFpbFN2Z1N0cmluZyhhdHRhY2htZW50SW5mby5hZGRpdGlvbi5leHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwke2VuY29kZVVSSUNvbXBvbmVudChzdmdTdHJpbmcpfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvb3JkaW5hdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZG9ubHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZ2VuZXJhdGVUYXJnZXROYW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TmFtZTogQUlfVEFCTEVfQ0VMTCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogZmllbGQuX2lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VTdHlsZTogcmVhZG9ubHkgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogYXR0YWNobWVudEluZm8uX2lkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogY3VycmVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogY3VycmVudFksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IEFJX1RBQkxFX0ZJTEVfSUNPTl9TSVpFLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogQUlfVEFCTEVfRklMRV9JQ09OX1NJWkUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuaW5nOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maWx0ZXIoKGl0ZW06IEFJVGFibGVBdHRhY2htZW50Q29uZmlnKSA9PiAhIWl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH0pO1xuXG4gICAgaWNvbkNvbmZpZyA9IGNvbXB1dGVkPEFJVGFibGVBY3Rpb25JY29uQ29uZmlnPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY29vcmRpbmF0ZSwgcmVuZGVyLCBmaWVsZCwgcmVjb3JkSWQsIHJlYWRvbmx5IH0gPSB0aGlzLmNvbmZpZygpITtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IHJlbmRlci5jb2x1bW5XaWR0aCAtIEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSAtIEFJX1RBQkxFX0FDVElPTl9DT01NT05fUklHSFRfUEFERElORztcbiAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IChjb29yZGluYXRlLnJvd0luaXRTaXplIC0gQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9TSVpFKSAvIDI7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvb3JkaW5hdGUsXG4gICAgICAgICAgICByZWFkb25seSxcbiAgICAgICAgICAgIG5hbWU6IGdlbmVyYXRlVGFyZ2V0TmFtZSh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0TmFtZTogQUlfVEFCTEVfQ0VMTCxcbiAgICAgICAgICAgICAgICBmaWVsZElkOiBmaWVsZC5faWQsXG4gICAgICAgICAgICAgICAgcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgc291cmNlOiBBSV9UQUJMRV9DRUxMX0FUVEFDSE1FTlRfQURELFxuICAgICAgICAgICAgICAgIG1vdXNlU3R5bGU6IHJlYWRvbmx5ID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHg6IG9mZnNldFgsXG4gICAgICAgICAgICB5OiBvZmZzZXRZLFxuICAgICAgICAgICAgZGF0YTogQWRkT3V0bGluZWRQYXRoLFxuICAgICAgICAgICAgZmlsbDogQ29sb3JzLmdyYXk2MDAsXG4gICAgICAgICAgICBob3ZlckZpbGw6IENvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgICAgYmFja2dyb3VuZFdpZHRoOiBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kSGVpZ2h0OiBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUsXG4gICAgICAgICAgICBjb3JuZXJSYWRpdXM6IEFJX1RBQkxFX0FDVElPTl9DT01NT05fUkFESVVTLFxuICAgICAgICAgICAgbGlzdGVuaW5nOiB0cnVlXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBhZGRDbGljayhlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIC8vIGUuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBhdHRhY2htZW50Q2xpY2soZTogS29FdmVudE9iamVjdDxNb3VzZUV2ZW50Pikge1xuICAgICAgICAvLyBlLmV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7XG4gICAgfVxufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2F0dGFjaG1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUUsT0FBTyxFQUNILGVBQWUsRUFDZiw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQixnQ0FBZ0MsRUFDaEMsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsTUFBTSxFQUNULE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWM3RCxNQUFNLE9BQU8scUJBQXFCO0lBWmxDO1FBZUksV0FBTSxHQUFHLEtBQUssRUFBMEIsQ0FBQztRQUV6QyxnQkFBVyxHQUFHLFFBQVEsQ0FBNEIsR0FBRyxFQUFFO1lBQ25ELE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDO1lBRXRFLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUNuQixNQUFNLEVBQUUsY0FBYyxFQUFF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LENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUMvQyxDQUFDO2dCQUNGLENBQUMsRUFBRSxPQUFPO2dCQUNWLENBQUMsRUFBRSxPQUFPO2dCQUNWLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3BCLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDekIsZUFBZSxFQUFFLDJCQUEyQjtnQkFDNUMsZ0JBQWdCLEVBQUUsMkJBQTJCO2dCQUM3QyxZQUFZLEVBQUUsNkJBQTZCO2dCQUMzQyxTQUFTLEVBQUUsSUFBSTthQUNsQixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7S0FDTjthQWpGVSxjQUFTLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxBQUE5QixDQUErQjsrR0FEdEMscUJBQXFCO21HQUFyQixxQkFBcUIsdU5BVnBCOzs7OztLQUtULDREQUVTLE9BQU8sK2hCQUFFLGlCQUFpQjs7NEZBRzNCLHFCQUFxQjtrQkFaakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUU7Ozs7O0tBS1Q7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQztvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLb1NoYXBlIH0gZnJvbSAnLi4vLi4vLi4vYW5ndWxhci1rb252YS9jb21wb25lbnRzL3NoYXBlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEFkZE91dGxpbmVkUGF0aCxcbiAgICBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1JBRElVUyxcbiAgICBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1JJR0hUX1BBRERJTkcsXG4gICAgQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9TSVpFLFxuICAgIEFJX1RBQkxFX0NFTEwsXG4gICAgQUlfVEFCTEVfQ0VMTF9BVFRBQ0hNRU5UX0FERCxcbiAgICBBSV9UQUJMRV9DRUxMX1BBRERJTkcsXG4gICAgQUlfVEFCTEVfRklFTERfSVRFTV9NQVJHSU5fUklHSFQsXG4gICAgQUlfVEFCTEVfRklMRV9JQ09OX1NJWkUsXG4gICAgQUlfVEFCTEVfT0ZGU0VULFxuICAgIEFJX1RBQkxFX1JPV19CTEFOS19IRUlHSFQsXG4gICAgQ29sb3JzXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZW5lcmF0ZVRhcmdldE5hbWUsIGdldEZpbGVUaHVtYm5haWxTdmdTdHJpbmcgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBSVRhYmxlQWN0aW9uSWNvbkNvbmZpZywgQUlUYWJsZUF0dGFjaG1lbnRDb25maWcsIEFJVGFibGVIb3ZlckNlbGxDb25maWcgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBBSVRhYmxlRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBIb3ZlckNlbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFJVGFibGVBY3Rpb25JY29uIH0gZnJvbSAnLi4vYWN0aW9uLWljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhaS10YWJsZS1hdHRhY2htZW50cycsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGZvciAoYXR0YWNobWVudCBvZiBhdHRhY2htZW50cygpOyB0cmFjayBhdHRhY2htZW50LmF0dGFjaG1lbnRJbmZvLl9pZCkge1xuICAgICAgICAgICAgPGtvLWltYWdlIFtjb25maWddPVwiYXR0YWNobWVudFwiPjwva28taW1hZ2U+XG4gICAgICAgIH1cbiAgICAgICAgPGFpLXRhYmxlLWFjdGlvbi1pY29uIFtjb25maWddPVwiaWNvbkNvbmZpZygpXCI+PC9haS10YWJsZS1hY3Rpb24taWNvbj5cbiAgICBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0tvU2hhcGUsIEFJVGFibGVBY3Rpb25JY29uXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBSVRhYmxlQ2VsbEF0dGFjaG1lbnQgaW1wbGVtZW50cyBIb3ZlckNlbGxDb21wb25lbnQge1xuICAgIHN0YXRpYyBmaWVsZFR5cGUgPSBBSVRhYmxlRmllbGRUeXBlLmF0dGFjaG1lbnQ7XG5cbiAgICBjb25maWcgPSBpbnB1dDxBSVRhYmxlSG92ZXJDZWxsQ29uZmlnPigpO1xuXG4gICAgYXR0YWNobWVudHMgPSBjb21wdXRlZDxBSVRhYmxlQXR0YWNobWVudENvbmZpZ1tdPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmVuZGVyLCBhaVRhYmxlLCBmaWVsZCwgcmVjb3JkSWQsIHJlYWRvbmx5IH0gPSB0aGlzLmNvbmZpZygpITtcblxuICAgICAgICBpZiAocmVuZGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7fSA9IGFpVGFibGU7XG4gICAgICAgICAgICBjb25zdCB7IHRyYW5zZm9ybVZhbHVlLCByZWZlcmVuY2VzLCBjb2x1bW5XaWR0aCB9ID0gcmVuZGVyO1xuICAgICAgICAgICAgaWYgKCF0cmFuc2Zvcm1WYWx1ZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID1cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1WYWx1ZT8ubWFwKChhdHRhY2htZW50SWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtV2lkdGggPSBBSV9UQUJMRV9GSUxFX0lDT05fU0laRSArIEFJX1RBQkxFX0ZJRUxEX0lURU1fTUFSR0lOX1JJR0hUO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50WCA9IEFJX1RBQkxFX0NFTExfUEFERElORyArIGluZGV4ICogaXRlbVdpZHRoICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudFkgPSAoQUlfVEFCTEVfUk9XX0JMQU5LX0hFSUdIVCAtIEFJX1RBQkxFX0ZJTEVfSUNPTl9TSVpFKSAvIDIgKyBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5XaWR0aCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDlvZPotoXlh7rliJflrr3ml7bvvIzkuI3kvJrmuLLmn5PlkI7nu63lhoXlrrlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50WCA+PSBjb2x1bW5XaWR0aCAtIEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSAtIDIgKiBBSV9UQUJMRV9DRUxMX1BBRERJTkcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnRJbmZvID0gcmVmZXJlbmNlcyEuYXR0YWNobWVudHNbYXR0YWNobWVudElkXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF0dGFjaG1lbnRJbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdmdTdHJpbmcgPSBnZXRGaWxlVGh1bWJuYWlsU3ZnU3RyaW5nKGF0dGFjaG1lbnRJbmZvLmFkZGl0aW9uLmV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCR7ZW5jb2RlVVJJQ29tcG9uZW50KHN2Z1N0cmluZyl9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZ2VuZXJhdGVUYXJnZXROYW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TmFtZTogQUlfVEFCTEVfQ0VMTCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogZmllbGQuX2lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VTdHlsZTogcmVhZG9ubHkgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogYXR0YWNobWVudEluZm8uX2lkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogY3VycmVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogY3VycmVudFksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IEFJX1RBQkxFX0ZJTEVfSUNPTl9TSVpFLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogQUlfVEFCTEVfRklMRV9JQ09OX1NJWkUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuaW5nOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maWx0ZXIoKGl0ZW06IEFJVGFibGVBdHRhY2htZW50Q29uZmlnKSA9PiAhIWl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH0pO1xuXG4gICAgaWNvbkNvbmZpZyA9IGNvbXB1dGVkPEFJVGFibGVBY3Rpb25JY29uQ29uZmlnPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY29vcmRpbmF0ZSwgcmVuZGVyLCBmaWVsZCwgcmVjb3JkSWQsIHJlYWRvbmx5IH0gPSB0aGlzLmNvbmZpZygpITtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IHJlbmRlci5jb2x1bW5XaWR0aCAtIEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSAtIEFJX1RBQkxFX0FDVElPTl9DT01NT05fUklHSFRfUEFERElORztcbiAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IChjb29yZGluYXRlLnJvd0luaXRTaXplIC0gQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9TSVpFKSAvIDI7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvb3JkaW5hdGUsXG4gICAgICAgICAgICByZWFkb25seSxcbiAgICAgICAgICAgIG5hbWU6IGdlbmVyYXRlVGFyZ2V0TmFtZSh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0TmFtZTogQUlfVEFCTEVfQ0VMTCxcbiAgICAgICAgICAgICAgICBmaWVsZElkOiBmaWVsZC5faWQsXG4gICAgICAgICAgICAgICAgcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgc291cmNlOiBBSV9UQUJMRV9DRUxMX0FUVEFDSE1FTlRfQURELFxuICAgICAgICAgICAgICAgIG1vdXNlU3R5bGU6IHJlYWRvbmx5ID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHg6IG9mZnNldFgsXG4gICAgICAgICAgICB5OiBvZmZzZXRZLFxuICAgICAgICAgICAgZGF0YTogQWRkT3V0bGluZWRQYXRoLFxuICAgICAgICAgICAgZmlsbDogQ29sb3JzLmdyYXk2MDAsXG4gICAgICAgICAgICBob3ZlckZpbGw6IENvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgICAgYmFja2dyb3VuZFdpZHRoOiBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kSGVpZ2h0OiBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUsXG4gICAgICAgICAgICBjb3JuZXJSYWRpdXM6IEFJX1RBQkxFX0FDVElPTl9DT01NT05fUkFESVVTLFxuICAgICAgICAgICAgbGlzdGVuaW5nOiB0cnVlXG4gICAgICAgIH07XG4gICAgfSk7XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  // TODO: components下的cells组件考虑移出 components ,这些组件都属于
2
2
  export * from './link.component';
3
3
  export * from './attachment.component';
4
- export * from './richtext.component';
4
+ export * from './rich-text.component';
5
5
  export * from './rate.component';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETzogY29tcG9uZW50c+S4i+eahGNlbGxz57uE5Lu26ICD6JmR56e75Ye6IGNvbXBvbmVudHMg77yM6L+Z5Lqb57uE5Lu26YO95bGe5LqOXG5leHBvcnQgKiBmcm9tICcuL2xpbmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXR0YWNobWVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yaWNodGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yYXRlLmNvbXBvbmVudCc7XG4iXX0=
6
+ export * from './progress.component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBjb21wb25lbnRz5LiL55qEY2VsbHPnu4Tku7bogIPomZHnp7vlh7ogY29tcG9uZW50cyDvvIzov5nkupvnu4Tku7bpg73lsZ7kuo5cbmV4cG9ydCAqIGZyb20gJy4vbGluay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2htZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JpY2gtdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yYXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2dyZXNzLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,7 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
2
- import { KoShape } from '../../../angular-konva/components/shape.component';
3
2
  import { AI_TABLE_CELL_PADDING, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, Colors } from '../../../constants';
4
- import { KoContainer } from '../../../angular-konva/components/container.component';
5
3
  import { getMousePosition, handleMouseStyle } from '../../../utils';
6
4
  import { AITableText } from '../text.component';
7
5
  import { AITable, AITableFieldType } from '../../../core';
@@ -17,7 +15,7 @@ export class AITableCellLink {
17
15
  this.textConfig = computed(() => {
18
16
  const render = this.config()?.render;
19
17
  if (render) {
20
- const { x, y, transformValue, field, columnWidth, rowHeight, style, zIndex } = render;
18
+ const { x, y, transformValue, columnWidth, rowHeight, style, zIndex } = render;
21
19
  let textRender = transformValue.text;
22
20
  if (textRender == null) {
23
21
  return;
@@ -84,8 +82,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
84
82
  }
85
83
  `,
86
84
  standalone: true,
87
- imports: [KoContainer, KoShape, AITableText],
85
+ imports: [AITableText],
88
86
  changeDetection: ChangeDetectionStrategy.OnPush
89
87
  }]
90
88
  }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2xpbmsuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlDQUFpQyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLGdCQUFnQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWM5QyxNQUFNLE9BQU8sZUFBZTtJQVg1QjtRQWNJLFdBQU0sR0FBRyxLQUFLLEVBQXNDLENBQUM7UUFFckQsZUFBVSxHQUFHLHFCQUFxQixHQUFHLGlDQUFpQyxDQUFDO1FBRXZFLFdBQU0sR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUxRSxtQkFBYyxHQUFHLFFBQVEsQ0FBZ0MsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRTlGLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FB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QUFVLENBQUMsQ0FBQztRQUM5SCxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7K0dBbEVRLGVBQWU7bUdBQWYsZUFBZSxnTkFUZDs7OztLQUlULDREQUUrQixXQUFXOzs0RkFHbEMsZUFBZTtrQkFYM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7O0tBSVQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtvU2hhcGUgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyLWtvbnZhL2NvbXBvbmVudHMvc2hhcGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFJX1RBQkxFX0NFTExfUEFERElORywgQUlfVEFCTEVfRklFTERfSEVBRF9JQ09OX0dBUF9TSVpFLCBBSV9UQUJMRV9GSUVMRF9IRUFEX01PUkUsIENvbG9ycyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBLb0NvbnRhaW5lciB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIta29udmEvY29tcG9uZW50cy9jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IGdldE1vdXNlUG9zaXRpb24sIGdldFRleHRXaWR0aCwgaGFuZGxlTW91c2VTdHlsZSwgVGV4dE1lYXN1cmUgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBSVRhYmxlVGV4dCB9IGZyb20gJy4uL3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEFJVGFibGVIb3ZlckNlbGxDb25maWcsIEFJVGFibGVSZW5kZXIgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBLb0V2ZW50T2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vYW5ndWxhci1rb252YSc7XG5pbXBvcnQgeyBBSVRhYmxlLCBBSVRhYmxlRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBUZXh0Q29uZmlnIH0gZnJvbSAna29udmEvbGliL3NoYXBlcy9UZXh0JztcbmltcG9ydCB7IGRyYXdlciB9IGZyb20gJy4uLy4uL2RyYXdlcnMvZHJhd2VyJztcbmltcG9ydCB7IEhvdmVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FpLXRhYmxlLWxpbmsnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoc2hvd0xpbmsoKSkge1xuICAgICAgICAgICAgPGFpLXRhYmxlLXRleHQgW2NvbmZpZ109XCJ0ZXh0Q29uZmlnKCkhXCIgKGtvQ2xpY2spPVwibGlua0NsaWNrKCRldmVudClcIiAoa29Nb3VzZU1vdmUpPVwibGlua01vdXNlTW92ZSgkZXZlbnQpXCI+PC9haS10YWJsZS10ZXh0PlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLb0NvbnRhaW5lciwgS29TaGFwZSwgQUlUYWJsZVRleHRdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFJVGFibGVDZWxsTGluayBpbXBsZW1lbnRzIEhvdmVyQ2VsbENvbXBvbmVudCB7XG4gICAgc3RhdGljIGZpZWxkVHlwZSA9IEFJVGFibGVGaWVsZFR5cGUubGluaztcblxuICAgIGNvbmZpZyA9IGlucHV0PEFJVGFibGVIb3ZlckNlbGxDb25maWcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICB0ZXh0T2Zmc2V0ID0gQUlfVEFCTEVfQ0VMTF9QQURESU5HICsgQUlfVEFCTEVfRklFTERfSEVBRF9JQ09OX0dBUF9TSVpFO1xuXG4gICAgcmVuZGVyID0gY29tcHV0ZWQ8QUlUYWJsZVJlbmRlciB8IHVuZGVmaW5lZD4oKCkgPT4gdGhpcy5jb25maWcoKT8ucmVuZGVyKTtcblxuICAgIHRyYW5zZm9ybVZhbHVlID0gY29tcHV0ZWQ8eyB0ZXh0OiBzdHJpbmc7IHVybDogc3RyaW5nIH0+KCgpID0+IHRoaXMucmVuZGVyKCk/LnRyYW5zZm9ybVZhbHVlKTtcblxuICAgIHNob3dMaW5rID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gISF0aGlzLnRyYW5zZm9ybVZhbHVlKCk/LnRleHQpO1xuXG4gICAgdGV4dENvbmZpZyA9IGNvbXB1dGVkPFRleHRDb25maWcgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICAgICAgY29uc3QgcmVuZGVyID0gdGhpcy5jb25maWcoKT8ucmVuZGVyO1xuICAgICAgICBpZiAocmVuZGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IHgsIHksIHRyYW5zZm9ybVZhbHVlLCBmaWVsZCwgY29sdW1uV2lkdGgsIHJvd0hlaWdodCwgc3R5bGUsIHpJbmRleCB9ID0gcmVuZGVyO1xuICAgICAgICAgICAgbGV0IHRleHRSZW5kZXI6IHN0cmluZyB8IG51bGwgPSB0cmFuc2Zvcm1WYWx1ZS50ZXh0O1xuICAgICAgICAgICAgaWYgKHRleHRSZW5kZXIgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGV4dFJlbmRlciA9IHRleHRSZW5kZXIucmVwbGFjZSgvXFxyfFxcbi9nLCAnICcpO1xuICAgICAgICAgICAgY29uc3QgZm9udFdlaWdodCA9IHN0eWxlPy5mb250V2VpZ2h0O1xuICAgICAgICAgICAgY29uc3QgdGV4dE1heFdpZHRoID0gY29sdW1uV2lkdGggLSAyICogQUlfVEFCTEVfQ0VMTF9QQURESU5HO1xuICAgICAgICAgICAgY29uc3QgeyB0ZXh0LCB0ZXh0V2lkdGggfSA9IGRyYXdlci50ZXh0RWxsaXBzaXMoe1xuICAgICAgICAgICAgICAgIHRleHQ6IHRleHRSZW5kZXIsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IHRleHRNYXhXaWR0aCxcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgIHksXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB3cmFwOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRleHRXaWR0aCxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6IENvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgICAgICAgIGZpbGw6IENvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgICAgICAgIGhlaWdodDogcm93SGVpZ2h0ICsgMixcbiAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjg0LFxuICAgICAgICAgICAgICAgIGxpc3RlbmluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbGxpcHNpczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZScsXG4gICAgICAgICAgICAgICAgekluZGV4XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9KTtcblxuICAgIGxpbmtDbGljayhlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGUuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy50cmFuc2Zvcm1WYWx1ZSgpLnVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XG4gICAgfVxuXG4gICAgbGlua01vdXNlTW92ZShlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGUuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgeyBhaVRhYmxlLCBjb29yZGluYXRlIH0gPSB0aGlzLmNvbmZpZygpITtcbiAgICAgICAgY29uc3QgdGFyZ2V0TmFtZSA9IGUuZXZlbnQudGFyZ2V0Lm5hbWUoKTtcbiAgICAgICAgY29uc3QgZ3JpZFN0YWdlID0gZS5ldmVudC5jdXJyZW50VGFyZ2V0LmdldFN0YWdlKCk7XG4gICAgICAgIGNvbnN0IHBvcyA9IGdyaWRTdGFnZT8uZ2V0UG9pbnRlclBvc2l0aW9uKCk7XG4gICAgICAgIGlmIChwb3MgPT0gbnVsbCkgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGNvbnRleHQgfSA9IGFpVGFibGU7XG4gICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gcG9zO1xuICAgICAgICBjb25zdCBjdXJNb3VzZVBvc2l0aW9uID0gZ2V0TW91c2VQb3NpdGlvbihhaVRhYmxlLCB4LCB5LCBjb29yZGluYXRlLCBBSVRhYmxlLmdldFZpc2libGVGaWVsZHMoYWlUYWJsZSksIGNvbnRleHQhLCB0YXJnZXROYW1lKTtcbiAgICAgICAgaGFuZGxlTW91c2VTdHlsZShBSV9UQUJMRV9GSUVMRF9IRUFEX01PUkUsIGN1ck1vdXNlUG9zaXRpb24uYXJlYVR5cGUsIGNvb3JkaW5hdGUuY29udGFpbmVyKTtcbiAgICB9XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2NlbGxzL2xpbmsuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUNBQWlDLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWM5QyxNQUFNLE9BQU8sZUFBZTtJQVg1QjtRQWNJLFdBQU0sR0FBRyxLQUFLLEVBQXNDLENBQUM7UUFFckQsZUFBVSxHQUFHLHFCQUFxQixHQUFHLGlDQUFpQyxDQUFDO1FBRXZFLFdBQU0sR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUxRSxtQkFBYyxHQUFHLFFBQVEsQ0FBZ0MsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRTlGLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVsRSxlQUFVLEdBQUcsUUFBUSxDQUF5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Q0FBQzsrR0FsRVEsZUFBZTttR0FBZixlQUFlLGdOQVRkOzs7O0tBSVQsNERBRVMsV0FBVzs7NEZBR1osZUFBZTtrQkFYM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7O0tBSVQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDdEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBSV9UQUJMRV9DRUxMX1BBRERJTkcsIEFJX1RBQkxFX0ZJRUxEX0hFQURfSUNPTl9HQVBfU0laRSwgQUlfVEFCTEVfRklFTERfSEVBRF9NT1JFLCBDb2xvcnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TW91c2VQb3NpdGlvbiwgaGFuZGxlTW91c2VTdHlsZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEFJVGFibGVUZXh0IH0gZnJvbSAnLi4vdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQUlUYWJsZUhvdmVyQ2VsbENvbmZpZywgQUlUYWJsZVJlbmRlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEtvRXZlbnRPYmplY3QgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyLWtvbnZhJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IFRleHRDb25maWcgfSBmcm9tICdrb252YS9saWIvc2hhcGVzL1RleHQnO1xuaW1wb3J0IHsgZHJhd2VyIH0gZnJvbSAnLi4vLi4vZHJhd2Vycy9kcmF3ZXInO1xuaW1wb3J0IHsgSG92ZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWktdGFibGUtbGluaycsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmIChzaG93TGluaygpKSB7XG4gICAgICAgICAgICA8YWktdGFibGUtdGV4dCBbY29uZmlnXT1cInRleHRDb25maWcoKSFcIiAoa29DbGljayk9XCJsaW5rQ2xpY2soJGV2ZW50KVwiIChrb01vdXNlTW92ZSk9XCJsaW5rTW91c2VNb3ZlKCRldmVudClcIj48L2FpLXRhYmxlLXRleHQ+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FJVGFibGVUZXh0XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBSVRhYmxlQ2VsbExpbmsgaW1wbGVtZW50cyBIb3ZlckNlbGxDb21wb25lbnQge1xuICAgIHN0YXRpYyBmaWVsZFR5cGUgPSBBSVRhYmxlRmllbGRUeXBlLmxpbms7XG5cbiAgICBjb25maWcgPSBpbnB1dDxBSVRhYmxlSG92ZXJDZWxsQ29uZmlnIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgdGV4dE9mZnNldCA9IEFJX1RBQkxFX0NFTExfUEFERElORyArIEFJX1RBQkxFX0ZJRUxEX0hFQURfSUNPTl9HQVBfU0laRTtcblxuICAgIHJlbmRlciA9IGNvbXB1dGVkPEFJVGFibGVSZW5kZXIgfCB1bmRlZmluZWQ+KCgpID0+IHRoaXMuY29uZmlnKCk/LnJlbmRlcik7XG5cbiAgICB0cmFuc2Zvcm1WYWx1ZSA9IGNvbXB1dGVkPHsgdGV4dDogc3RyaW5nOyB1cmw6IHN0cmluZyB9PigoKSA9PiB0aGlzLnJlbmRlcigpPy50cmFuc2Zvcm1WYWx1ZSk7XG5cbiAgICBzaG93TGluayA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+ICEhdGhpcy50cmFuc2Zvcm1WYWx1ZSgpPy50ZXh0KTtcblxuICAgIHRleHRDb25maWcgPSBjb21wdXRlZDxUZXh0Q29uZmlnIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbmRlciA9IHRoaXMuY29uZmlnKCk/LnJlbmRlcjtcbiAgICAgICAgaWYgKHJlbmRlcikge1xuICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB0cmFuc2Zvcm1WYWx1ZSwgY29sdW1uV2lkdGgsIHJvd0hlaWdodCwgc3R5bGUsIHpJbmRleCB9ID0gcmVuZGVyO1xuICAgICAgICAgICAgbGV0IHRleHRSZW5kZXI6IHN0cmluZyB8IG51bGwgPSB0cmFuc2Zvcm1WYWx1ZS50ZXh0O1xuICAgICAgICAgICAgaWYgKHRleHRSZW5kZXIgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGV4dFJlbmRlciA9IHRleHRSZW5kZXIucmVwbGFjZSgvXFxyfFxcbi9nLCAnICcpO1xuICAgICAgICAgICAgY29uc3QgZm9udFdlaWdodCA9IHN0eWxlPy5mb250V2VpZ2h0O1xuICAgICAgICAgICAgY29uc3QgdGV4dE1heFdpZHRoID0gY29sdW1uV2lkdGggLSAyICogQUlfVEFCTEVfQ0VMTF9QQURESU5HO1xuICAgICAgICAgICAgY29uc3QgeyB0ZXh0LCB0ZXh0V2lkdGggfSA9IGRyYXdlci50ZXh0RWxsaXBzaXMoe1xuICAgICAgICAgICAgICAgIHRleHQ6IHRleHRSZW5kZXIsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IHRleHRNYXhXaWR0aCxcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgIHksXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB3cmFwOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRleHRXaWR0aCxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6IENvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgICAgICAgIGZpbGw6IENvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgICAgICAgIGhlaWdodDogcm93SGVpZ2h0ICsgMixcbiAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjg0LFxuICAgICAgICAgICAgICAgIGxpc3RlbmluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbGxpcHNpczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZScsXG4gICAgICAgICAgICAgICAgekluZGV4XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9KTtcblxuICAgIGxpbmtDbGljayhlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGUuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy50cmFuc2Zvcm1WYWx1ZSgpLnVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XG4gICAgfVxuXG4gICAgbGlua01vdXNlTW92ZShlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGUuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgeyBhaVRhYmxlLCBjb29yZGluYXRlIH0gPSB0aGlzLmNvbmZpZygpITtcbiAgICAgICAgY29uc3QgdGFyZ2V0TmFtZSA9IGUuZXZlbnQudGFyZ2V0Lm5hbWUoKTtcbiAgICAgICAgY29uc3QgZ3JpZFN0YWdlID0gZS5ldmVudC5jdXJyZW50VGFyZ2V0LmdldFN0YWdlKCk7XG4gICAgICAgIGNvbnN0IHBvcyA9IGdyaWRTdGFnZT8uZ2V0UG9pbnRlclBvc2l0aW9uKCk7XG4gICAgICAgIGlmIChwb3MgPT0gbnVsbCkgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGNvbnRleHQgfSA9IGFpVGFibGU7XG4gICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gcG9zO1xuICAgICAgICBjb25zdCBjdXJNb3VzZVBvc2l0aW9uID0gZ2V0TW91c2VQb3NpdGlvbihhaVRhYmxlLCB4LCB5LCBjb29yZGluYXRlLCBBSVRhYmxlLmdldFZpc2libGVGaWVsZHMoYWlUYWJsZSksIGNvbnRleHQhLCB0YXJnZXROYW1lKTtcbiAgICAgICAgaGFuZGxlTW91c2VTdHlsZShBSV9UQUJMRV9GSUVMRF9IRUFEX01PUkUsIGN1ck1vdXNlUG9zaXRpb24uYXJlYVR5cGUsIGNvb3JkaW5hdGUuY29udGFpbmVyKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,268 @@
1
+ import { Component, computed, input, signal } from '@angular/core';
2
+ import { ChangeDetectionStrategy } from '@angular/core';
3
+ import { KoShape } from '../../../angular-konva';
4
+ import { AITableFieldType } from '../../../core';
5
+ import { generateTargetName } from '../../../utils';
6
+ import { isActiveCell } from '../../../renderer';
7
+ import { Colors, AI_TABLE_CELL_PADDING, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_OFFSET, AI_TABLE_CELL, AI_TABLE_CELL_BORDER, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_TEXT_WIDTH, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_BAR_POINTER_WIDTH, AI_TABLE_PROGRESS_BAR_POINTER_HEIGHT, AI_TABLE_TEXT_GAP, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_TEXT_FILL } from '../../../constants';
8
+ import { isNil } from 'lodash';
9
+ import * as i0 from "@angular/core";
10
+ export class AITableCellProgress {
11
+ constructor() {
12
+ this.config = input();
13
+ this.readonly = computed(() => {
14
+ return this.config()?.readonly;
15
+ });
16
+ this.dragPointerX = signal(null);
17
+ this.railWidth = computed(() => {
18
+ const { columnWidth } = this.config().render;
19
+ return columnWidth - 2 * AI_TABLE_CELL_PADDING - AI_TABLE_PROGRESS_TEXT_WIDTH;
20
+ });
21
+ this.trackWidth = computed(() => {
22
+ return (this.progressValue() / 100) * this.railWidth();
23
+ });
24
+ this.pointerWidth = AI_TABLE_PROGRESS_BAR_POINTER_WIDTH;
25
+ this.progressOffsetY = (AI_TABLE_ROW_BLANK_HEIGHT - AI_TABLE_PROGRESS_BAR_HEIGHT) / 2 + AI_TABLE_OFFSET;
26
+ this.dragProgressValue = signal(null);
27
+ this.progressValue = computed(() => {
28
+ const dragValue = this.dragProgressValue();
29
+ if (dragValue !== null) {
30
+ return dragValue;
31
+ }
32
+ const { render } = this.config();
33
+ const { transformValue } = render;
34
+ if (isNil(transformValue)) {
35
+ return 0;
36
+ }
37
+ return transformValue;
38
+ });
39
+ this.whiteBgConfig = computed(() => {
40
+ const { aiTable, render, field, recordId, coordinate } = this.config();
41
+ const pointPosition = aiTable.context.pointPosition();
42
+ const { x, y } = render;
43
+ const { columnIndex } = pointPosition;
44
+ const isActive = isActiveCell([recordId, field._id], aiTable);
45
+ return {
46
+ x: x - AI_TABLE_CELL_PADDING + AI_TABLE_CELL_BORDER / 2,
47
+ y: y + AI_TABLE_CELL_BORDER + AI_TABLE_OFFSET,
48
+ width: coordinate.getColumnWidth(columnIndex) - (AI_TABLE_CELL_BORDER + AI_TABLE_OFFSET) * 2 + AI_TABLE_CELL_BORDER / 2,
49
+ height: AI_TABLE_ROW_BLANK_HEIGHT - (AI_TABLE_CELL_BORDER + AI_TABLE_OFFSET),
50
+ fill: Colors.white,
51
+ stroke: isActive ? null : Colors.white,
52
+ name: generateTargetName({
53
+ targetName: AI_TABLE_CELL,
54
+ fieldId: field._id,
55
+ recordId
56
+ })
57
+ };
58
+ });
59
+ this.railConfig = computed(() => {
60
+ const { render, field, recordId } = this.config();
61
+ const { x } = render;
62
+ return {
63
+ x,
64
+ y: this.progressOffsetY,
65
+ width: this.railWidth(),
66
+ height: AI_TABLE_PROGRESS_BAR_HEIGHT,
67
+ cornerRadius: AI_TABLE_PROGRESS_BAR_RADIUS,
68
+ fill: Colors.gray200,
69
+ name: generateTargetName({
70
+ targetName: AI_TABLE_CELL,
71
+ fieldId: field._id,
72
+ recordId,
73
+ mouseStyle: this.readonly() ? 'default' : 'pointer'
74
+ })
75
+ };
76
+ });
77
+ this.trackConfig = computed(() => {
78
+ const { render, field, recordId } = this.config();
79
+ const { x } = render;
80
+ return {
81
+ x,
82
+ y: this.progressOffsetY,
83
+ width: this.trackWidth(),
84
+ height: AI_TABLE_PROGRESS_BAR_HEIGHT,
85
+ cornerRadius: AI_TABLE_PROGRESS_BAR_RADIUS,
86
+ fill: Colors.success,
87
+ name: generateTargetName({
88
+ targetName: AI_TABLE_CELL,
89
+ fieldId: field._id,
90
+ recordId,
91
+ mouseStyle: this.readonly() ? 'default' : 'pointer'
92
+ })
93
+ };
94
+ });
95
+ this.pointerConfig = computed(() => {
96
+ const { render, field, recordId } = this.config();
97
+ const { x } = render;
98
+ const halfPointerWidth = this.pointerWidth / 2;
99
+ const pointerY = this.progressOffsetY - (AI_TABLE_PROGRESS_BAR_POINTER_HEIGHT - AI_TABLE_PROGRESS_BAR_HEIGHT) / 2;
100
+ let pointerX;
101
+ if (this.dragPointerX() !== null) {
102
+ pointerX = this.dragPointerX() - halfPointerWidth;
103
+ }
104
+ else {
105
+ pointerX = x + this.trackWidth() - halfPointerWidth;
106
+ }
107
+ return {
108
+ x: pointerX,
109
+ y: pointerY,
110
+ width: this.pointerWidth,
111
+ height: AI_TABLE_PROGRESS_BAR_POINTER_HEIGHT,
112
+ fill: Colors.white,
113
+ stroke: Colors.success,
114
+ strokeWidth: 1,
115
+ cornerRadius: AI_TABLE_PROGRESS_BAR_RADIUS,
116
+ opacity: this.readonly() ? 0 : 1,
117
+ draggable: !this.readonly(),
118
+ dragBoundFunc: (pos) => {
119
+ const minX = x;
120
+ const maxX = x + this.railWidth() - this.pointerWidth;
121
+ return {
122
+ x: Math.min(minX, Math.min(maxX, pos.x)),
123
+ y: pointerY
124
+ };
125
+ },
126
+ name: generateTargetName({
127
+ targetName: AI_TABLE_CELL,
128
+ fieldId: field._id,
129
+ recordId,
130
+ mouseStyle: this.readonly() ? 'default' : 'pointer'
131
+ })
132
+ };
133
+ });
134
+ this.textConfig = computed(() => {
135
+ const { render, field, recordId } = this.config();
136
+ const { x } = render;
137
+ const textX = x + this.railWidth() + AI_TABLE_TEXT_GAP;
138
+ const textY = (AI_TABLE_ROW_BLANK_HEIGHT - DEFAULT_FONT_SIZE) / 2 + AI_TABLE_OFFSET;
139
+ return {
140
+ x: textX,
141
+ y: textY,
142
+ text: `${this.progressValue()}%`,
143
+ fill: DEFAULT_TEXT_FILL,
144
+ fontFamily: DEFAULT_FONT_FAMILY,
145
+ fontSize: DEFAULT_FONT_SIZE,
146
+ name: generateTargetName({
147
+ targetName: AI_TABLE_CELL,
148
+ fieldId: field._id,
149
+ recordId
150
+ })
151
+ };
152
+ });
153
+ }
154
+ static { this.fieldType = AITableFieldType.progress; }
155
+ calculatePercentage(clickX) {
156
+ return Math.max(0, Math.min(100, Math.round((clickX / this.railWidth()) * 100)));
157
+ }
158
+ koClick(e) {
159
+ if (this.readonly()) {
160
+ return;
161
+ }
162
+ this.updateProgressValue(e);
163
+ }
164
+ pointerDragstart(e) {
165
+ if (this.readonly()) {
166
+ return;
167
+ }
168
+ }
169
+ pointerDragmove(e) {
170
+ if (this.readonly()) {
171
+ return;
172
+ }
173
+ const { render, aiTable, coordinate } = this.config();
174
+ const { x } = render;
175
+ const { scrollLeft } = aiTable.context.scrollState();
176
+ const pointPosition = aiTable.context.pointPosition();
177
+ const { columnIndex } = pointPosition;
178
+ const columnLeftX = coordinate.getColumnOffset(columnIndex) - scrollLeft + AI_TABLE_OFFSET;
179
+ const stage = e.event.target.getStage();
180
+ if (!stage)
181
+ return;
182
+ const point = stage.getPointerPosition();
183
+ if (!point)
184
+ return;
185
+ const dragX = point.x - columnLeftX - x;
186
+ const minX = x;
187
+ const maxX = x + this.railWidth();
188
+ let dragPointerX = point.x - columnLeftX;
189
+ if (dragPointerX < minX) {
190
+ dragPointerX = minX;
191
+ }
192
+ else if (dragPointerX > maxX) {
193
+ dragPointerX = maxX;
194
+ }
195
+ this.dragPointerX.set(dragPointerX);
196
+ const percentage = this.calculatePercentage(dragX);
197
+ this.dragProgressValue.set(percentage);
198
+ }
199
+ pointerDragend(e) {
200
+ if (this.readonly()) {
201
+ return;
202
+ }
203
+ this.updateProgressValue(e);
204
+ this.dragPointerX.set(null);
205
+ this.dragProgressValue.set(null);
206
+ }
207
+ updateProgressValue(e) {
208
+ const { render, aiTable, coordinate, actions, field, recordId } = this.config();
209
+ const { x } = render;
210
+ const { scrollLeft } = aiTable.context.scrollState();
211
+ const pointPosition = aiTable.context.pointPosition();
212
+ const { columnIndex } = pointPosition;
213
+ const columnLeftX = coordinate.getColumnOffset(columnIndex) - scrollLeft + AI_TABLE_OFFSET;
214
+ const stage = e.event.target.getStage();
215
+ if (!stage)
216
+ return;
217
+ const point = stage.getPointerPosition();
218
+ if (!point)
219
+ return;
220
+ const dragX = point.x - columnLeftX - x;
221
+ const percentage = this.calculatePercentage(dragX);
222
+ if (!this.readonly() && actions && actions.updateFieldValue) {
223
+ actions.updateFieldValue({
224
+ value: percentage,
225
+ path: [recordId, field._id]
226
+ });
227
+ }
228
+ }
229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableCellProgress, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AITableCellProgress, isStandalone: true, selector: "ai-table-progress", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
231
+ @if (!readonly()) {
232
+ <ko-rect [config]="whiteBgConfig()"></ko-rect>
233
+ }
234
+ <ko-rect [config]="railConfig()" (koClick)="koClick($event)"></ko-rect>
235
+ <ko-rect [config]="trackConfig()" (koClick)="koClick($event)"></ko-rect>
236
+ <ko-rect
237
+ [config]="pointerConfig()"
238
+ (koDragstart)="pointerDragstart($event)"
239
+ (koDragmove)="pointerDragmove($event)"
240
+ (koDragend)="pointerDragend($event)"
241
+ ></ko-rect>
242
+ <ko-text [config]="textConfig()"></ko-text>
243
+ `, 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
244
+ }
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableCellProgress, decorators: [{
246
+ type: Component,
247
+ args: [{
248
+ selector: 'ai-table-progress',
249
+ template: `
250
+ @if (!readonly()) {
251
+ <ko-rect [config]="whiteBgConfig()"></ko-rect>
252
+ }
253
+ <ko-rect [config]="railConfig()" (koClick)="koClick($event)"></ko-rect>
254
+ <ko-rect [config]="trackConfig()" (koClick)="koClick($event)"></ko-rect>
255
+ <ko-rect
256
+ [config]="pointerConfig()"
257
+ (koDragstart)="pointerDragstart($event)"
258
+ (koDragmove)="pointerDragmove($event)"
259
+ (koDragend)="pointerDragend($event)"
260
+ ></ko-rect>
261
+ <ko-text [config]="textConfig()"></ko-text>
262
+ `,
263
+ standalone: true,
264
+ imports: [KoShape],
265
+ changeDetection: ChangeDetectionStrategy.OnPush
266
+ }]
267
+ }] });
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvY29tcG9uZW50cy9jZWxscy9wcm9ncmVzcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUdoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFDSCxNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QixtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNwQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBc0IvQixNQUFNLE9BQU8sbUJBQW1CO0lBcEJoQztRQXVCSSxXQUFNLEdBQUcsS0FBSyxFQUEwQixDQUFDO1FBRXpDLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVL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SztZQUFFLE9BQU87UUFFbkIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxRCxPQUFPLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3JCLEtBQUssRUFBRSxVQUFVO2dCQUNqQixJQUFJLEVBQUUsQ0FBQyxRQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUMvQixDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQzsrR0F6UFEsbUJBQW1CO21HQUFuQixtQkFBbUIsb05BbEJsQjs7Ozs7Ozs7Ozs7OztLQWFULDREQUVTLE9BQU87OzRGQUdSLG1CQUFtQjtrQkFwQi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0tBYVQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtvU2hhcGUsIEtvRXZlbnRPYmplY3QgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyLWtvbnZhJztcbmltcG9ydCB7IEhvdmVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQUlUYWJsZUhvdmVyQ2VsbENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IGdlbmVyYXRlVGFyZ2V0TmFtZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGlzQWN0aXZlQ2VsbCB9IGZyb20gJy4uLy4uLy4uL3JlbmRlcmVyJztcbmltcG9ydCB7XG4gICAgQ29sb3JzLFxuICAgIEFJX1RBQkxFX0NFTExfUEFERElORyxcbiAgICBBSV9UQUJMRV9ST1dfQkxBTktfSEVJR0hULFxuICAgIEFJX1RBQkxFX09GRlNFVCxcbiAgICBBSV9UQUJMRV9DRUxMLFxuICAgIEFJX1RBQkxFX0NFTExfQk9SREVSLFxuICAgIEFJX1RBQkxFX1BST0dSRVNTX0JBUl9IRUlHSFQsXG4gICAgQUlfVEFCTEVfUFJPR1JFU1NfVEVYVF9XSURUSCxcbiAgICBBSV9UQUJMRV9QUk9HUkVTU19CQVJfUkFESVVTLFxuICAgIEFJX1RBQkxFX1BST0dSRVNTX0JBUl9QT0lOVEVSX1dJRFRILFxuICAgIEFJX1RBQkxFX1BST0dSRVNTX0JBUl9QT0lOVEVSX0hFSUdIVCxcbiAgICBBSV9UQUJMRV9URVhUX0dBUCxcbiAgICBERUZBVUxUX0ZPTlRfRkFNSUxZLFxuICAgIERFRkFVTFRfRk9OVF9TSVpFLFxuICAgIERFRkFVTFRfVEVYVF9GSUxMXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWktdGFibGUtcHJvZ3Jlc3MnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoIXJlYWRvbmx5KCkpIHtcbiAgICAgICAgICAgIDxrby1yZWN0IFtjb25maWddPVwid2hpdGVCZ0NvbmZpZygpXCI+PC9rby1yZWN0PlxuICAgICAgICB9XG4gICAgICAgIDxrby1yZWN0IFtjb25maWddPVwicmFpbENvbmZpZygpXCIgKGtvQ2xpY2spPVwia29DbGljaygkZXZlbnQpXCI+PC9rby1yZWN0PlxuICAgICAgICA8a28tcmVjdCBbY29uZmlnXT1cInRyYWNrQ29uZmlnKClcIiAoa29DbGljayk9XCJrb0NsaWNrKCRldmVudClcIj48L2tvLXJlY3Q+XG4gICAgICAgIDxrby1yZWN0XG4gICAgICAgICAgICBbY29uZmlnXT1cInBvaW50ZXJDb25maWcoKVwiXG4gICAgICAgICAgICAoa29EcmFnc3RhcnQpPVwicG9pbnRlckRyYWdzdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrb0RyYWdtb3ZlKT1cInBvaW50ZXJEcmFnbW92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrb0RyYWdlbmQpPVwicG9pbnRlckRyYWdlbmQoJGV2ZW50KVwiXG4gICAgICAgID48L2tvLXJlY3Q+XG4gICAgICAgIDxrby10ZXh0IFtjb25maWddPVwidGV4dENvbmZpZygpXCI+PC9rby10ZXh0PlxuICAgIGAsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbS29TaGFwZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQUlUYWJsZUNlbGxQcm9ncmVzcyBpbXBsZW1lbnRzIEhvdmVyQ2VsbENvbXBvbmVudCB7XG4gICAgc3RhdGljIGZpZWxkVHlwZSA9IEFJVGFibGVGaWVsZFR5cGUucHJvZ3Jlc3M7XG5cbiAgICBjb25maWcgPSBpbnB1dDxBSVRhYmxlSG92ZXJDZWxsQ29uZmlnPigpO1xuXG4gICAgcmVhZG9ubHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZygpPy5yZWFkb25seTtcbiAgICB9KTtcblxuICAgIHByaXZhdGUgZHJhZ1BvaW50ZXJYID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gICAgcHJpdmF0ZSByYWlsV2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1uV2lkdGggfSA9IHRoaXMuY29uZmlnKCkhLnJlbmRlcjtcbiAgICAgICAgcmV0dXJuIGNvbHVtbldpZHRoIC0gMiAqIEFJX1RBQkxFX0NFTExfUEFERElORyAtIEFJX1RBQkxFX1BST0dSRVNTX1RFWFRfV0lEVEg7XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHRyYWNrV2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAodGhpcy5wcm9ncmVzc1ZhbHVlKCkgLyAxMDApICogdGhpcy5yYWlsV2lkdGgoKTtcbiAgICB9KTtcblxuICAgIHByaXZhdGUgcG9pbnRlcldpZHRoID0gQUlfVEFCTEVfUFJPR1JFU1NfQkFSX1BPSU5URVJfV0lEVEg7XG5cbiAgICBwcml2YXRlIHByb2dyZXNzT2Zmc2V0WSA9IChBSV9UQUJMRV9ST1dfQkxBTktfSEVJR0hUIC0gQUlfVEFCTEVfUFJPR1JFU1NfQkFSX0hFSUdIVCkgLyAyICsgQUlfVEFCTEVfT0ZGU0VUO1xuXG4gICAgcHJpdmF0ZSBkcmFnUHJvZ3Jlc3NWYWx1ZSA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICAgIHByaXZhdGUgcHJvZ3Jlc3NWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZHJhZ1ZhbHVlID0gdGhpcy5kcmFnUHJvZ3Jlc3NWYWx1ZSgpO1xuICAgICAgICBpZiAoZHJhZ1ZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZHJhZ1ZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyByZW5kZXIgfSA9IHRoaXMuY29uZmlnKCkhO1xuICAgICAgICBjb25zdCB7IHRyYW5zZm9ybVZhbHVlIH0gPSByZW5kZXI7XG4gICAgICAgIGlmIChpc05pbCh0cmFuc2Zvcm1WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1WYWx1ZTtcbiAgICB9KTtcblxuICAgIHdoaXRlQmdDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgYWlUYWJsZSwgcmVuZGVyLCBmaWVsZCwgcmVjb3JkSWQsIGNvb3JkaW5hdGUgfSA9IHRoaXMuY29uZmlnKCkhO1xuICAgICAgICBjb25zdCBwb2ludFBvc2l0aW9uID0gYWlUYWJsZS5jb250ZXh0IS5wb2ludFBvc2l0aW9uKCk7XG4gICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gcmVuZGVyO1xuICAgICAgICBjb25zdCB7IGNvbHVtbkluZGV4IH0gPSBwb2ludFBvc2l0aW9uO1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGlzQWN0aXZlQ2VsbChbcmVjb3JkSWQhLCBmaWVsZC5faWRdLCBhaVRhYmxlKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogeCAtIEFJX1RBQkxFX0NFTExfUEFERElORyArIEFJX1RBQkxFX0NFTExfQk9SREVSIC8gMixcbiAgICAgICAgICAgIHk6IHkgKyBBSV9UQUJMRV9DRUxMX0JPUkRFUiArIEFJX1RBQkxFX09GRlNFVCxcbiAgICAgICAgICAgIHdpZHRoOiBjb29yZGluYXRlLmdldENvbHVtbldpZHRoKGNvbHVtbkluZGV4KSAtIChBSV9UQUJMRV9DRUxMX0JPUkRFUiArIEFJX1RBQkxFX09GRlNFVCkgKiAyICsgQUlfVEFCTEVfQ0VMTF9CT1JERVIgLyAyLFxuICAgICAgICAgICAgaGVpZ2h0OiBBSV9UQUJMRV9ST1dfQkxBTktfSEVJR0hUIC0gKEFJX1RBQkxFX0NFTExfQk9SREVSICsgQUlfVEFCTEVfT0ZGU0VUKSxcbiAgICAgICAgICAgIGZpbGw6IENvbG9ycy53aGl0ZSxcbiAgICAgICAgICAgIHN0cm9rZTogaXNBY3RpdmUgPyBudWxsIDogQ29sb3JzLndoaXRlLFxuICAgICAgICAgICAgbmFtZTogZ2VuZXJhdGVUYXJnZXROYW1lKHtcbiAgICAgICAgICAgICAgICB0YXJnZXROYW1lOiBBSV9UQUJMRV9DRUxMLFxuICAgICAgICAgICAgICAgIGZpZWxkSWQ6IGZpZWxkLl9pZCxcbiAgICAgICAgICAgICAgICByZWNvcmRJZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJhaWxDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmVuZGVyLCBmaWVsZCwgcmVjb3JkSWQgfSA9IHRoaXMuY29uZmlnKCkhO1xuICAgICAgICBjb25zdCB7IHggfSA9IHJlbmRlcjtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeCxcbiAgICAgICAgICAgIHk6IHRoaXMucHJvZ3Jlc3NPZmZzZXRZLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMucmFpbFdpZHRoKCksXG4gICAgICAgICAgICBoZWlnaHQ6IEFJX1RBQkxFX1BST0dSRVNTX0JBUl9IRUlHSFQsXG4gICAgICAgICAgICBjb3JuZXJSYWRpdXM6IEFJX1RBQkxFX1BST0dSRVNTX0JBUl9SQURJVVMsXG4gICAgICAgICAgICBmaWxsOiBDb2xvcnMuZ3JheTIwMCxcbiAgICAgICAgICAgIG5hbWU6IGdlbmVyYXRlVGFyZ2V0TmFtZSh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0TmFtZTogQUlfVEFCTEVfQ0VMTCxcbiAgICAgICAgICAgICAgICBmaWVsZElkOiBmaWVsZC5faWQsXG4gICAgICAgICAgICAgICAgcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgbW91c2VTdHlsZTogdGhpcy5yZWFkb25seSgpID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInXG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgdHJhY2tDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmVuZGVyLCBmaWVsZCwgcmVjb3JkSWQgfSA9IHRoaXMuY29uZmlnKCkhO1xuICAgICAgICBjb25zdCB7IHggfSA9IHJlbmRlcjtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeCxcbiAgICAgICAgICAgIHk6IHRoaXMucHJvZ3Jlc3NPZmZzZXRZLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMudHJhY2tXaWR0aCgpLFxuICAgICAgICAgICAgaGVpZ2h0OiBBSV9UQUJMRV9QUk9HUkVTU19CQVJfSEVJR0hULFxuICAgICAgICAgICAgY29ybmVyUmFkaXVzOiBBSV9UQUJMRV9QUk9HUkVTU19CQVJfUkFESVVTLFxuICAgICAgICAgICAgZmlsbDogQ29sb3JzLnN1Y2Nlc3MsXG4gICAgICAgICAgICBuYW1lOiBnZW5lcmF0ZVRhcmdldE5hbWUoe1xuICAgICAgICAgICAgICAgIHRhcmdldE5hbWU6IEFJX1RBQkxFX0NFTEwsXG4gICAgICAgICAgICAgICAgZmllbGRJZDogZmllbGQuX2lkLFxuICAgICAgICAgICAgICAgIHJlY29yZElkLFxuICAgICAgICAgICAgICAgIG1vdXNlU3R5bGU6IHRoaXMucmVhZG9ubHkoKSA/ICdkZWZhdWx0JyA6ICdwb2ludGVyJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHBvaW50ZXJDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmVuZGVyLCBmaWVsZCwgcmVjb3JkSWQgfSA9IHRoaXMuY29uZmlnKCkhO1xuICAgICAgICBjb25zdCB7IHggfSA9IHJlbmRlcjtcbiAgICAgICAgY29uc3QgaGFsZlBvaW50ZXJXaWR0aCA9IHRoaXMucG9pbnRlcldpZHRoIC8gMjtcbiAgICAgICAgY29uc3QgcG9pbnRlclkgPSB0aGlzLnByb2dyZXNzT2Zmc2V0WSAtIChBSV9UQUJMRV9QUk9HUkVTU19CQVJfUE9JTlRFUl9IRUlHSFQgLSBBSV9UQUJMRV9QUk9HUkVTU19CQVJfSEVJR0hUKSAvIDI7XG5cbiAgICAgICAgbGV0IHBvaW50ZXJYOiBudW1iZXI7XG4gICAgICAgIGlmICh0aGlzLmRyYWdQb2ludGVyWCgpICE9PSBudWxsKSB7XG4gICAgICAgICAgICBwb2ludGVyWCA9IHRoaXMuZHJhZ1BvaW50ZXJYKCkhIC0gaGFsZlBvaW50ZXJXaWR0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvaW50ZXJYID0geCArIHRoaXMudHJhY2tXaWR0aCgpIC0gaGFsZlBvaW50ZXJXaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBwb2ludGVyWCxcbiAgICAgICAgICAgIHk6IHBvaW50ZXJZLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMucG9pbnRlcldpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBBSV9UQUJMRV9QUk9HUkVTU19CQVJfUE9JTlRFUl9IRUlHSFQsXG4gICAgICAgICAgICBmaWxsOiBDb2xvcnMud2hpdGUsXG4gICAgICAgICAgICBzdHJva2U6IENvbG9ycy5zdWNjZXNzLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgICAgICBjb3JuZXJSYWRpdXM6IEFJX1RBQkxFX1BST0dSRVNTX0JBUl9SQURJVVMsXG4gICAgICAgICAgICBvcGFjaXR5OiB0aGlzLnJlYWRvbmx5KCkgPyAwIDogMSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogIXRoaXMucmVhZG9ubHkoKSxcbiAgICAgICAgICAgIGRyYWdCb3VuZEZ1bmM6IChwb3M6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1pblggPSB4O1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heFggPSB4ICsgdGhpcy5yYWlsV2lkdGgoKSAtIHRoaXMucG9pbnRlcldpZHRoO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgeDogTWF0aC5taW4obWluWCwgTWF0aC5taW4obWF4WCwgcG9zLngpKSxcbiAgICAgICAgICAgICAgICAgICAgeTogcG9pbnRlcllcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWU6IGdlbmVyYXRlVGFyZ2V0TmFtZSh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0TmFtZTogQUlfVEFCTEVfQ0VMTCxcbiAgICAgICAgICAgICAgICBmaWVsZElkOiBmaWVsZC5faWQsXG4gICAgICAgICAgICAgICAgcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgbW91c2VTdHlsZTogdGhpcy5yZWFkb25seSgpID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInXG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGV4dENvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyByZW5kZXIsIGZpZWxkLCByZWNvcmRJZCB9ID0gdGhpcy5jb25maWcoKSE7XG4gICAgICAgIGNvbnN0IHsgeCB9ID0gcmVuZGVyO1xuICAgICAgICBjb25zdCB0ZXh0WCA9IHggKyB0aGlzLnJhaWxXaWR0aCgpICsgQUlfVEFCTEVfVEVYVF9HQVA7XG4gICAgICAgIGNvbnN0IHRleHRZID0gKEFJX1RBQkxFX1JPV19CTEFOS19IRUlHSFQgLSBERUZBVUxUX0ZPTlRfU0laRSkgLyAyICsgQUlfVEFCTEVfT0ZGU0VUO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiB0ZXh0WCxcbiAgICAgICAgICAgIHk6IHRleHRZLFxuICAgICAgICAgICAgdGV4dDogYCR7dGhpcy5wcm9ncmVzc1ZhbHVlKCl9JWAsXG4gICAgICAgICAgICBmaWxsOiBERUZBVUxUX1RFWFRfRklMTCxcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IERFRkFVTFRfRk9OVF9GQU1JTFksXG4gICAgICAgICAgICBmb250U2l6ZTogREVGQVVMVF9GT05UX1NJWkUsXG4gICAgICAgICAgICBuYW1lOiBnZW5lcmF0ZVRhcmdldE5hbWUoe1xuICAgICAgICAgICAgICAgIHRhcmdldE5hbWU6IEFJX1RBQkxFX0NFTEwsXG4gICAgICAgICAgICAgICAgZmllbGRJZDogZmllbGQuX2lkLFxuICAgICAgICAgICAgICAgIHJlY29yZElkXG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQZXJjZW50YWdlKGNsaWNrWDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgTWF0aC5yb3VuZCgoY2xpY2tYIC8gdGhpcy5yYWlsV2lkdGgoKSkgKiAxMDApKSk7XG4gICAgfVxuXG4gICAga29DbGljayhlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzVmFsdWUoZSk7XG4gICAgfVxuXG4gICAgcG9pbnRlckRyYWdzdGFydChlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHBvaW50ZXJEcmFnbW92ZShlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgcmVuZGVyLCBhaVRhYmxlLCBjb29yZGluYXRlIH0gPSB0aGlzLmNvbmZpZygpITtcbiAgICAgICAgY29uc3QgeyB4IH0gPSByZW5kZXI7XG4gICAgICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCB9ID0gYWlUYWJsZS5jb250ZXh0IS5zY3JvbGxTdGF0ZSgpO1xuICAgICAgICBjb25zdCBwb2ludFBvc2l0aW9uID0gYWlUYWJsZS5jb250ZXh0IS5wb2ludFBvc2l0aW9uKCk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1uSW5kZXggfSA9IHBvaW50UG9zaXRpb247XG4gICAgICAgIGNvbnN0IGNvbHVtbkxlZnRYID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5PZmZzZXQoY29sdW1uSW5kZXgpIC0gc2Nyb2xsTGVmdCArIEFJX1RBQkxFX09GRlNFVDtcblxuICAgICAgICBjb25zdCBzdGFnZSA9IGUuZXZlbnQudGFyZ2V0LmdldFN0YWdlKCk7XG4gICAgICAgIGlmICghc3RhZ2UpIHJldHVybjtcblxuICAgICAgICBjb25zdCBwb2ludCA9IHN0YWdlLmdldFBvaW50ZXJQb3NpdGlvbigpO1xuICAgICAgICBpZiAoIXBvaW50KSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgZHJhZ1ggPSBwb2ludC54IC0gY29sdW1uTGVmdFggLSB4O1xuICAgICAgICBjb25zdCBtaW5YID0geDtcbiAgICAgICAgY29uc3QgbWF4WCA9IHggKyB0aGlzLnJhaWxXaWR0aCgpO1xuXG4gICAgICAgIGxldCBkcmFnUG9pbnRlclggPSBwb2ludC54IC0gY29sdW1uTGVmdFg7XG4gICAgICAgIGlmIChkcmFnUG9pbnRlclggPCBtaW5YKSB7XG4gICAgICAgICAgICBkcmFnUG9pbnRlclggPSBtaW5YO1xuICAgICAgICB9IGVsc2UgaWYgKGRyYWdQb2ludGVyWCA+IG1heFgpIHtcbiAgICAgICAgICAgIGRyYWdQb2ludGVyWCA9IG1heFg7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyYWdQb2ludGVyWC5zZXQoZHJhZ1BvaW50ZXJYKTtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZSA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShkcmFnWCk7XG4gICAgICAgIHRoaXMuZHJhZ1Byb2dyZXNzVmFsdWUuc2V0KHBlcmNlbnRhZ2UpO1xuICAgIH1cblxuICAgIHBvaW50ZXJEcmFnZW5kKGU6IEtvRXZlbnRPYmplY3Q8TW91c2VFdmVudD4pIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc1ZhbHVlKGUpO1xuICAgICAgICB0aGlzLmRyYWdQb2ludGVyWC5zZXQobnVsbCk7XG4gICAgICAgIHRoaXMuZHJhZ1Byb2dyZXNzVmFsdWUuc2V0KG51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJvZ3Jlc3NWYWx1ZShlOiBLb0V2ZW50T2JqZWN0PE1vdXNlRXZlbnQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgcmVuZGVyLCBhaVRhYmxlLCBjb29yZGluYXRlLCBhY3Rpb25zLCBmaWVsZCwgcmVjb3JkSWQgfSA9IHRoaXMuY29uZmlnKCkhO1xuICAgICAgICBjb25zdCB7IHggfSA9IHJlbmRlcjtcbiAgICAgICAgY29uc3QgeyBzY3JvbGxMZWZ0IH0gPSBhaVRhYmxlLmNvbnRleHQhLnNjcm9sbFN0YXRlKCk7XG4gICAgICAgIGNvbnN0IHBvaW50UG9zaXRpb24gPSBhaVRhYmxlLmNvbnRleHQhLnBvaW50UG9zaXRpb24oKTtcbiAgICAgICAgY29uc3QgeyBjb2x1bW5JbmRleCB9ID0gcG9pbnRQb3NpdGlvbjtcbiAgICAgICAgY29uc3QgY29sdW1uTGVmdFggPSBjb29yZGluYXRlLmdldENvbHVtbk9mZnNldChjb2x1bW5JbmRleCkgLSBzY3JvbGxMZWZ0ICsgQUlfVEFCTEVfT0ZGU0VUO1xuXG4gICAgICAgIGNvbnN0IHN0YWdlID0gZS5ldmVudC50YXJnZXQuZ2V0U3RhZ2UoKTtcbiAgICAgICAgaWYgKCFzdGFnZSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHBvaW50ID0gc3RhZ2UuZ2V0UG9pbnRlclBvc2l0aW9uKCk7XG4gICAgICAgIGlmICghcG9pbnQpIHJldHVybjtcblxuICAgICAgICBjb25zdCBkcmFnWCA9IHBvaW50LnggLSBjb2x1bW5MZWZ0WCAtIHg7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UoZHJhZ1gpO1xuXG4gICAgICAgIGlmICghdGhpcy5yZWFkb25seSgpICYmIGFjdGlvbnMgJiYgYWN0aW9ucy51cGRhdGVGaWVsZFZhbHVlKSB7XG4gICAgICAgICAgICBhY3Rpb25zLnVwZGF0ZUZpZWxkVmFsdWUoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBwZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgIHBhdGg6IFtyZWNvcmRJZCEsIGZpZWxkLl9pZF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19