@ai-table/grid 0.0.47 → 0.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/drag/drag.component.d.ts +4 -4
- package/components/drag/drag.component.d.ts.map +1 -1
- package/components/drag/drag.component.scss +1 -1
- package/constants/icon.d.ts +2 -0
- package/constants/icon.d.ts.map +1 -1
- package/constants/table.d.ts +1 -0
- package/constants/table.d.ts.map +1 -1
- package/core/constants/field.d.ts.map +1 -1
- package/core/coordinate.d.ts.map +1 -1
- package/core/types/core.d.ts +2 -1
- package/core/types/core.d.ts.map +1 -1
- package/core/utils/field.d.ts +1 -1
- package/esm2022/components/cell-editors/link/edit-link/edit-link.component.mjs +3 -3
- package/esm2022/components/drag/drag.component.mjs +41 -49
- package/esm2022/constants/icon.mjs +3 -1
- package/esm2022/constants/table.mjs +2 -1
- package/esm2022/core/constants/field.mjs +7 -1
- package/esm2022/core/coordinate.mjs +3 -3
- package/esm2022/core/types/core.mjs +1 -1
- package/esm2022/core/utils/field.mjs +2 -2
- package/esm2022/grid.component.mjs +27 -32
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/renderer/components/add-field-column.component.mjs +5 -2
- package/esm2022/renderer/components/cells/index.mjs +2 -1
- package/esm2022/renderer/components/cells/richtext.component.mjs +90 -0
- package/esm2022/renderer/components/field-icon.component.mjs +5 -2
- package/esm2022/renderer/creations/create-cells.mjs +2 -2
- package/esm2022/renderer/drawers/cell-drawer.mjs +5 -3
- package/esm2022/utils/i18n.mjs +3 -1
- package/esm2022/utils/style.mjs +9 -3
- package/fesm2022/ai-table-grid.mjs +728 -633
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid.component.d.ts +1 -0
- package/grid.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -1
- package/renderer/components/add-field-column.component.d.ts.map +1 -1
- package/renderer/components/cells/index.d.ts +1 -0
- package/renderer/components/cells/index.d.ts.map +1 -1
- package/renderer/components/cells/richtext.component.d.ts +14 -0
- package/renderer/components/cells/richtext.component.d.ts.map +1 -0
- package/renderer/components/field-icon.component.d.ts +1 -1
- package/renderer/components/field-icon.component.d.ts.map +1 -1
- package/renderer/drawers/cell-drawer.d.ts.map +1 -1
- package/utils/i18n.d.ts +1 -0
- package/utils/i18n.d.ts.map +1 -1
- package/utils/style.d.ts +1 -1
- package/utils/style.d.ts.map +1 -1
@@ -0,0 +1,90 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
|
2
|
+
import { AI_TABLE_ACTION_COMMON_RADIUS, AI_TABLE_ACTION_COMMON_RIGHT_PADDING, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_CELL, AI_TABLE_CELL_EDIT, AI_TABLE_CELL_PADDING, Colors, EditPath } from '../../../constants';
|
3
|
+
import { generateTargetName } from '../../../utils';
|
4
|
+
import { AITableFieldType } from '../../../core';
|
5
|
+
import { AITableActionIcon } from '../action-icon.component';
|
6
|
+
import { drawer } from '../../drawers/drawer';
|
7
|
+
import { AITableText } from '../text.component';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
export class AITableCellRichtext {
|
10
|
+
constructor() {
|
11
|
+
this.config = input();
|
12
|
+
this.textConfig = computed(() => {
|
13
|
+
const render = this.config()?.render;
|
14
|
+
if (render) {
|
15
|
+
const { x, y, transformValue, field, columnWidth, rowHeight, style, zIndex } = render;
|
16
|
+
let textRender = transformValue;
|
17
|
+
if (textRender == null) {
|
18
|
+
return;
|
19
|
+
}
|
20
|
+
textRender = textRender.replace(/\r|\n/g, ' ');
|
21
|
+
const fontWeight = style?.fontWeight;
|
22
|
+
const textMaxWidth = columnWidth - AI_TABLE_CELL_PADDING - AI_TABLE_ACTION_COMMON_RIGHT_PADDING - AI_TABLE_ACTION_COMMON_SIZE;
|
23
|
+
const { text, textWidth } = drawer.textEllipsis({
|
24
|
+
text: textRender,
|
25
|
+
maxWidth: textMaxWidth,
|
26
|
+
fontWeight
|
27
|
+
});
|
28
|
+
return {
|
29
|
+
x,
|
30
|
+
y,
|
31
|
+
text,
|
32
|
+
wrap: 'none',
|
33
|
+
width: textWidth,
|
34
|
+
fillStyle: Colors.primary,
|
35
|
+
height: rowHeight + 2,
|
36
|
+
lineHeight: 1.84,
|
37
|
+
listening: false,
|
38
|
+
ellipsis: true,
|
39
|
+
zIndex
|
40
|
+
};
|
41
|
+
}
|
42
|
+
return;
|
43
|
+
});
|
44
|
+
this.iconConfig = computed(() => {
|
45
|
+
const { coordinate, render, field, recordId, readonly } = this.config();
|
46
|
+
const offsetX = render.columnWidth - AI_TABLE_ACTION_COMMON_SIZE - AI_TABLE_ACTION_COMMON_RIGHT_PADDING;
|
47
|
+
const offsetY = (coordinate.rowInitSize - AI_TABLE_ACTION_COMMON_SIZE) / 2;
|
48
|
+
return {
|
49
|
+
coordinate,
|
50
|
+
readonly,
|
51
|
+
name: generateTargetName({
|
52
|
+
targetName: AI_TABLE_CELL,
|
53
|
+
fieldId: field._id,
|
54
|
+
recordId,
|
55
|
+
source: AI_TABLE_CELL_EDIT,
|
56
|
+
mouseStyle: readonly ? 'default' : 'pointer'
|
57
|
+
}),
|
58
|
+
x: offsetX,
|
59
|
+
y: offsetY,
|
60
|
+
data: EditPath,
|
61
|
+
fill: Colors.gray600,
|
62
|
+
hoverFill: Colors.primary,
|
63
|
+
backgroundWidth: AI_TABLE_ACTION_COMMON_SIZE,
|
64
|
+
backgroundHeight: AI_TABLE_ACTION_COMMON_SIZE,
|
65
|
+
cornerRadius: AI_TABLE_ACTION_COMMON_RADIUS,
|
66
|
+
listening: true
|
67
|
+
};
|
68
|
+
});
|
69
|
+
}
|
70
|
+
static { this.fieldType = AITableFieldType.richText; }
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableCellRichtext, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
72
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AITableCellRichtext, isStandalone: true, selector: "ai-table-richtext", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
73
|
+
<ai-table-text [config]="textConfig()!"></ai-table-text>
|
74
|
+
<ai-table-action-icon [config]="iconConfig()"></ai-table-action-icon>
|
75
|
+
`, isInline: true, dependencies: [{ kind: "component", type: AITableText, selector: "ai-table-text", inputs: ["config"], outputs: ["koClick", "koMouseMove"] }, { kind: "component", type: AITableActionIcon, selector: "ai-table-action-icon", inputs: ["config"], outputs: ["onClick", "onMousemove", "onMouseenter", "onMouseleave"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
76
|
+
}
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableCellRichtext, decorators: [{
|
78
|
+
type: Component,
|
79
|
+
args: [{
|
80
|
+
selector: 'ai-table-richtext',
|
81
|
+
template: `
|
82
|
+
<ai-table-text [config]="textConfig()!"></ai-table-text>
|
83
|
+
<ai-table-action-icon [config]="iconConfig()"></ai-table-action-icon>
|
84
|
+
`,
|
85
|
+
standalone: true,
|
86
|
+
imports: [AITableText, AITableActionIcon],
|
87
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
88
|
+
}]
|
89
|
+
}] });
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvY29tcG9uZW50cy9jZWxscy9yaWNodGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLDJCQUEyQixFQUMzQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sUUFBUSxFQUNYLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBWWhELE1BQU0sT0FBTyxtQkFBbUI7SUFWaEM7UUFhSSxXQUFNLEdBQUcsS0FBSyxFQUEwQixDQUFDO1FBRXpDLGVBQVUsR0FBRyxRQUFRLENBQXlCLEdBQUcsRUFBRTtZQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDO1lBQ3JDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7Z0JBQ3RGLElBQUksVUFBVSxHQUFrQixjQUFjLENBQUM7Z0JBQy9DLElBQUksVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNyQixPQUFPO2dCQUNYLENBQUM7Z0JBQ0QsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsVUFBVSxDQUFDO2dCQUNyQyxNQUFNLFlBQVksR0FBRyxXQUFXLEdBQUcscUJBQXFCLEdBQUcsb0NBQW9DLEdBQUcsMkJBQTJCLENBQUM7Z0JBQzlILE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztvQkFDNUMsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVO2lCQUNiLENBQUMsQ0FBQztnQkFFSCxPQUFPO29CQUNILENBQUM7b0JBQ0QsQ0FBQztvQkFDRCxJQUFJO29CQUNKLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxTQUFTO29CQUNoQixTQUFTLEVBQUUsTUFBTSxDQUFDLE9BQU87b0JBQ3pCLE1BQU0sRUFBRSxTQUFTLEdBQUcsQ0FBQztvQkFDckIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxLQUFLO29CQUNoQixRQUFRLEVBQUUsSUFBSTtvQkFDZCxNQUFNO2lCQUNULENBQUM7WUFDTixDQUFDO1lBQ0QsT0FBTztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBRUgsZUFBVSxHQUFHLFFBQVEsQ0FBMEIsR0FBRyxFQUFFO1lBQ2hELE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDO1lBQ3pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLEdBQUcsb0NBQW9DLENBQUM7WUFDeEcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTNFLE9BQU87Z0JBQ0gsVUFBVTtnQkFDVixRQUFRO2dCQUNSLElBQUksRUFBRSxrQkFBa0IsQ0FBQztvQkFDckIsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRztvQkFDbEIsUUFBUTtvQkFDUixNQUFNLEVBQUUsa0JBQWtCO29CQUMxQixVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7aUJBQy9DLENBQUM7Z0JBQ0YsQ0FBQyxFQUFFLE9BQU87Z0JBQ1YsQ0FBQyxFQUFFLE9BQU87Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUNwQixTQUFTLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3pCLGVBQWUsRUFBRSwyQkFBMkI7Z0JBQzVDLGdCQUFnQixFQUFFLDJCQUEyQjtnQkFDN0MsWUFBWSxFQUFFLDZCQUE2QjtnQkFDM0MsU0FBUyxFQUFFLElBQUk7YUFDbEIsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0tBQ047YUFoRVUsY0FBUyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQUFBNUIsQ0FBNkI7K0dBRHBDLG1CQUFtQjttR0FBbkIsbUJBQW1CLG9OQVJsQjs7O0tBR1QsNERBRVMsV0FBVyxtSEFBRSxpQkFBaUI7OzRGQUcvQixtQkFBbUI7a0JBVi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7S0FHVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDO29CQUN6QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9SQURJVVMsXG4gICAgQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9SSUdIVF9QQURESU5HLFxuICAgIEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSxcbiAgICBBSV9UQUJMRV9DRUxMLFxuICAgIEFJX1RBQkxFX0NFTExfRURJVCxcbiAgICBBSV9UQUJMRV9DRUxMX1BBRERJTkcsXG4gICAgQ29sb3JzLFxuICAgIEVkaXRQYXRoXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZW5lcmF0ZVRhcmdldE5hbWUgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBSVRhYmxlQWN0aW9uSWNvbkNvbmZpZywgQUlUYWJsZUhvdmVyQ2VsbENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IEhvdmVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQUlUYWJsZUFjdGlvbkljb24gfSBmcm9tICcuLi9hY3Rpb24taWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbmZpZyB9IGZyb20gJ2tvbnZhL2xpYi9zaGFwZXMvVGV4dCc7XG5pbXBvcnQgeyBkcmF3ZXIgfSBmcm9tICcuLi8uLi9kcmF3ZXJzL2RyYXdlcic7XG5pbXBvcnQgeyBBSVRhYmxlVGV4dCB9IGZyb20gJy4uL3RleHQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhaS10YWJsZS1yaWNodGV4dCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGFpLXRhYmxlLXRleHQgW2NvbmZpZ109XCJ0ZXh0Q29uZmlnKCkhXCI+PC9haS10YWJsZS10ZXh0PlxuICAgICAgICA8YWktdGFibGUtYWN0aW9uLWljb24gW2NvbmZpZ109XCJpY29uQ29uZmlnKClcIj48L2FpLXRhYmxlLWFjdGlvbi1pY29uPlxuICAgIGAsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQUlUYWJsZVRleHQsIEFJVGFibGVBY3Rpb25JY29uXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBSVRhYmxlQ2VsbFJpY2h0ZXh0IGltcGxlbWVudHMgSG92ZXJDZWxsQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgZmllbGRUeXBlID0gQUlUYWJsZUZpZWxkVHlwZS5yaWNoVGV4dDtcblxuICAgIGNvbmZpZyA9IGlucHV0PEFJVGFibGVIb3ZlckNlbGxDb25maWc+KCk7XG5cbiAgICB0ZXh0Q29uZmlnID0gY29tcHV0ZWQ8VGV4dENvbmZpZyB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgICAgICBjb25zdCByZW5kZXIgPSB0aGlzLmNvbmZpZygpPy5yZW5kZXI7XG4gICAgICAgIGlmIChyZW5kZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgeCwgeSwgdHJhbnNmb3JtVmFsdWUsIGZpZWxkLCBjb2x1bW5XaWR0aCwgcm93SGVpZ2h0LCBzdHlsZSwgekluZGV4IH0gPSByZW5kZXI7XG4gICAgICAgICAgICBsZXQgdGV4dFJlbmRlcjogc3RyaW5nIHwgbnVsbCA9IHRyYW5zZm9ybVZhbHVlO1xuICAgICAgICAgICAgaWYgKHRleHRSZW5kZXIgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRleHRSZW5kZXIgPSB0ZXh0UmVuZGVyLnJlcGxhY2UoL1xccnxcXG4vZywgJyAnKTtcbiAgICAgICAgICAgIGNvbnN0IGZvbnRXZWlnaHQgPSBzdHlsZT8uZm9udFdlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNYXhXaWR0aCA9IGNvbHVtbldpZHRoIC0gQUlfVEFCTEVfQ0VMTF9QQURESU5HIC0gQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9SSUdIVF9QQURESU5HIC0gQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9TSVpFO1xuICAgICAgICAgICAgY29uc3QgeyB0ZXh0LCB0ZXh0V2lkdGggfSA9IGRyYXdlci50ZXh0RWxsaXBzaXMoe1xuICAgICAgICAgICAgICAgIHRleHQ6IHRleHRSZW5kZXIsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IHRleHRNYXhXaWR0aCxcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgIHksXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB3cmFwOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRleHRXaWR0aCxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6IENvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgICAgICAgIGhlaWdodDogcm93SGVpZ2h0ICsgMixcbiAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjg0LFxuICAgICAgICAgICAgICAgIGxpc3RlbmluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgZWxsaXBzaXM6IHRydWUsXG4gICAgICAgICAgICAgICAgekluZGV4XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9KTtcblxuICAgIGljb25Db25maWcgPSBjb21wdXRlZDxBSVRhYmxlQWN0aW9uSWNvbkNvbmZpZz4oKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvb3JkaW5hdGUsIHJlbmRlciwgZmllbGQsIHJlY29yZElkLCByZWFkb25seSB9ID0gdGhpcy5jb25maWcoKSE7XG4gICAgICAgIGNvbnN0IG9mZnNldFggPSByZW5kZXIuY29sdW1uV2lkdGggLSBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1NJWkUgLSBBSV9UQUJMRV9BQ1RJT05fQ09NTU9OX1JJR0hUX1BBRERJTkc7XG4gICAgICAgIGNvbnN0IG9mZnNldFkgPSAoY29vcmRpbmF0ZS5yb3dJbml0U2l6ZSAtIEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSkgLyAyO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29yZGluYXRlLFxuICAgICAgICAgICAgcmVhZG9ubHksXG4gICAgICAgICAgICBuYW1lOiBnZW5lcmF0ZVRhcmdldE5hbWUoe1xuICAgICAgICAgICAgICAgIHRhcmdldE5hbWU6IEFJX1RBQkxFX0NFTEwsXG4gICAgICAgICAgICAgICAgZmllbGRJZDogZmllbGQuX2lkLFxuICAgICAgICAgICAgICAgIHJlY29yZElkLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogQUlfVEFCTEVfQ0VMTF9FRElULFxuICAgICAgICAgICAgICAgIG1vdXNlU3R5bGU6IHJlYWRvbmx5ID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHg6IG9mZnNldFgsXG4gICAgICAgICAgICB5OiBvZmZzZXRZLFxuICAgICAgICAgICAgZGF0YTogRWRpdFBhdGgsXG4gICAgICAgICAgICBmaWxsOiBDb2xvcnMuZ3JheTYwMCxcbiAgICAgICAgICAgIGhvdmVyRmlsbDogQ29sb3JzLnByaW1hcnksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kV2lkdGg6IEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSxcbiAgICAgICAgICAgIGJhY2tncm91bmRIZWlnaHQ6IEFJX1RBQkxFX0FDVElPTl9DT01NT05fU0laRSxcbiAgICAgICAgICAgIGNvcm5lclJhZGl1czogQUlfVEFCTEVfQUNUSU9OX0NPTU1PTl9SQURJVVMsXG4gICAgICAgICAgICBsaXN0ZW5pbmc6IHRydWVcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cbiJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
|
2
|
-
import { AttachmentPath, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath } from '../../constants';
|
2
|
+
import { AttachmentPath, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnRichTextFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath } from '../../constants';
|
3
3
|
import { AITableFieldType } from '../../core';
|
4
4
|
import { AITableIcon } from './icon.component';
|
5
5
|
import * as i0 from "@angular/core";
|
@@ -13,6 +13,9 @@ export class AITableFieldIcon {
|
|
13
13
|
case AITableFieldType.text:
|
14
14
|
data = ColumnTextFilledPath;
|
15
15
|
break;
|
16
|
+
case AITableFieldType.richText:
|
17
|
+
data = ColumnRichTextFilledPath;
|
18
|
+
break;
|
16
19
|
case AITableFieldType.select:
|
17
20
|
data = field.settings?.is_multiple ? ColumnMultipleFillPath : ColumnSelectFilledPath;
|
18
21
|
break;
|
@@ -66,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
66
69
|
changeDetection: ChangeDetectionStrategy.OnPush
|
67
70
|
}]
|
68
71
|
}] });
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL2ZpZWxkLWljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQ0gsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUN2QixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxZQUFZLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVMvQyxNQUFNLE9BQU8sZ0JBQWdCO0lBUDdCO1FBUUksV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQThCLENBQUM7UUFFdEQsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztZQUNoQixRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJO29CQUN0QixJQUFJLEdBQUcsb0JBQW9CLENBQUM7b0JBQzVCLE1BQU07Z0JBQ1YsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRO29CQUMxQixJQUFJLEdBQUcsd0JBQXdCLENBQUM7b0JBQ2hDLE1BQU07Z0JBQ1YsS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNO29CQUN4QixJQUFJLEdBQUksS0FBSyxDQUFDLFFBQTJCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUM7b0JBQ3pHLE1BQU07Z0JBQ1YsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQzNCLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxLQUFLLGdCQUFnQixDQUFDLFNBQVM7b0JBQzNCLElBQUksR0FBRyx3QkFBd0IsQ0FBQztvQkFDaEMsTUFBTTtnQkFDVixLQUFLLGdCQUFnQixDQUFDLE1BQU07b0JBQ3hCLElBQUksR0FBRyxzQkFBc0IsQ0FBQztvQkFDOUIsTUFBTTtnQkFDVixLQUFLLGdCQUFnQixDQUFDLElBQUk7b0JBQ3RCLElBQUksR0FBRyxzQkFBc0IsQ0FBQztvQkFDOUIsTUFBTTtnQkFDVixLQUFLLGdCQUFnQixDQUFDLElBQUk7b0JBQ3RCLElBQUksR0FBRyxzQkFBc0IsQ0FBQztvQkFDOUIsTUFBTTtnQkFDVixLQUFLLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztnQkFDN0IsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLEtBQUssZ0JBQWdCLENBQUMsU0FBUztvQkFDM0IsSUFBSSxHQUFHLHNCQUFzQixDQUFDO29CQUM5QixNQUFNO2dCQUNWLEtBQUssZ0JBQWdCLENBQUMsUUFBUTtvQkFDMUIsSUFBSSxHQUFHLHdCQUF3QixDQUFDO29CQUNoQyxNQUFNO2dCQUNWLEtBQUssZ0JBQWdCLENBQUMsVUFBVTtvQkFDNUIsSUFBSSxHQUFHLGNBQWMsQ0FBQztvQkFDdEIsTUFBTTtZQUNkLENBQUM7WUFDRCxPQUFPO2dCQUNILENBQUM7Z0JBQ0QsQ0FBQztnQkFDRCxJQUFJLEVBQUUsS0FBSztnQkFDWCxnQkFBZ0IsRUFBRSxNQUFNO2dCQUN4QixTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSTtnQkFDSixJQUFJO2FBQ1AsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0tBQ047K0dBcERZLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHFOQUxmLDJEQUEyRCw0REFFM0QsV0FBVzs7NEZBR1osZ0JBQWdCO2tCQVA1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSwyREFBMkQ7b0JBQ3JFLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBdHRhY2htZW50UGF0aCxcbiAgICBDb2x1bW5DYWxlbmRhckZpbGxlZFBhdGgsXG4gICAgQ29sdW1uTGlua091dGxpbmVkUGF0aCxcbiAgICBDb2x1bW5NZW1iZXJGaWxsZWRQYXRoLFxuICAgIENvbHVtbk11bHRpcGxlRmlsbFBhdGgsXG4gICAgQ29sdW1uTnVtYmVyRmlsbGVkUGF0aCxcbiAgICBDb2x1bW5Qcm9ncmVzc0ZpbGxlZFBhdGgsXG4gICAgQ29sdW1uUmF0aW5nRmlsbGVkUGF0aCxcbiAgICBDb2x1bW5SaWNoVGV4dEZpbGxlZFBhdGgsXG4gICAgQ29sdW1uU2VsZWN0RmlsbGVkUGF0aCxcbiAgICBDb2x1bW5UZXh0RmlsbGVkUGF0aFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkVHlwZSwgU2VsZWN0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZFR5cGVJY29uQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQUlUYWJsZUljb24gfSBmcm9tICcuL2ljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhaS10YWJsZS1maWVsZC1pY29uJyxcbiAgICB0ZW1wbGF0ZTogYCA8YWktdGFibGUtaWNvbiBbY29uZmlnXT1cImljb25Db25maWcoKVwiPjwvYWktdGFibGUtaWNvbj4gYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBSVRhYmxlSWNvbl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQUlUYWJsZUZpZWxkSWNvbiB7XG4gICAgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8QUlUYWJsZUZpZWxkVHlwZUljb25Db25maWc+KCk7XG5cbiAgICBpY29uQ29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGZpZWxkLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmaWxsIH0gPSB0aGlzLmNvbmZpZygpO1xuICAgICAgICBsZXQgZGF0YSA9IG51bGw7XG4gICAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLnRleHQ6XG4gICAgICAgICAgICAgICAgZGF0YSA9IENvbHVtblRleHRGaWxsZWRQYXRoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLnJpY2hUZXh0OlxuICAgICAgICAgICAgICAgIGRhdGEgPSBDb2x1bW5SaWNoVGV4dEZpbGxlZFBhdGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWVsZFR5cGUuc2VsZWN0OlxuICAgICAgICAgICAgICAgIGRhdGEgPSAoZmllbGQuc2V0dGluZ3MgYXMgU2VsZWN0U2V0dGluZ3MpPy5pc19tdWx0aXBsZSA/IENvbHVtbk11bHRpcGxlRmlsbFBhdGggOiBDb2x1bW5TZWxlY3RGaWxsZWRQYXRoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLmRhdGU6XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEF0OlxuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRBdDpcbiAgICAgICAgICAgICAgICBkYXRhID0gQ29sdW1uQ2FsZW5kYXJGaWxsZWRQYXRoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLm51bWJlcjpcbiAgICAgICAgICAgICAgICBkYXRhID0gQ29sdW1uTnVtYmVyRmlsbGVkUGF0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5saW5rOlxuICAgICAgICAgICAgICAgIGRhdGEgPSBDb2x1bW5MaW5rT3V0bGluZWRQYXRoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLnJhdGU6XG4gICAgICAgICAgICAgICAgZGF0YSA9IENvbHVtblJhdGluZ0ZpbGxlZFBhdGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWVsZFR5cGUubWVtYmVyOlxuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeTpcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnk6XG4gICAgICAgICAgICAgICAgZGF0YSA9IENvbHVtbk1lbWJlckZpbGxlZFBhdGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWVsZFR5cGUucHJvZ3Jlc3M6XG4gICAgICAgICAgICAgICAgZGF0YSA9IENvbHVtblByb2dyZXNzRmlsbGVkUGF0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5hdHRhY2htZW50OlxuICAgICAgICAgICAgICAgIGRhdGEgPSBBdHRhY2htZW50UGF0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeCxcbiAgICAgICAgICAgIHksXG4gICAgICAgICAgICBzaXplOiB3aWR0aCxcbiAgICAgICAgICAgIGJhY2tncm91bmRIZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgIGxpc3RlbmluZzogZmFsc2UsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZmlsbFxuICAgICAgICB9O1xuICAgIH0pO1xufVxuIl19
|
@@ -32,7 +32,7 @@ export const createCells = (config) => {
|
|
32
32
|
// 获取该列对应的宽度
|
33
33
|
const columnWidth = coordinate.getColumnWidth(columnIndex);
|
34
34
|
const x = coordinate.getColumnOffset(columnIndex) + AI_TABLE_OFFSET;
|
35
|
-
const isLastColumn = columnIndex === aiTable.fields
|
35
|
+
const isLastColumn = columnIndex === aiTable.gridData().fields?.length - 1;
|
36
36
|
if (columnIndex === 1) {
|
37
37
|
cellDrawer.initStyle(field, { fontWeight: DEFAULT_FONT_STYLE });
|
38
38
|
}
|
@@ -182,4 +182,4 @@ const isSelectedRecord = (recordId, aiTable) => {
|
|
182
182
|
const isHoverRecord = (isHover, targetName) => {
|
183
183
|
return isHover && targetName !== AI_TABLE_FIELD_HEAD;
|
184
184
|
};
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNlbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvY3JlYXRpb25zL2NyZWF0ZS1jZWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBdUIsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxZQUFZLENBQUM7QUFDM0YsT0FBTyxFQUEyQyxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBZ0MsRUFBRSxFQUFFO0lBQzVELE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDeEgsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQTBCLENBQUM7SUFDbkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMs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QUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFFLE9BQWdCLEVBQVcsRUFBRTtJQUMxRSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLE9BQWdCLEVBQVcsRUFBRTtJQUNyRSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxVQUFrQixFQUFXLEVBQUU7SUFDcEUsT0FBTyxPQUFPLElBQUksVUFBVSxLQUFLLG1CQUFtQixDQUFDO0FBQ3pELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQUlfVEFCTEVfRklFTERfSEVBRCxcbiAgICBBSV9UQUJMRV9GSUVMRF9IRUFEX0hFSUdIVCxcbiAgICBBSV9UQUJMRV9PRkZTRVQsXG4gICAgQUlfVEFCTEVfUk9XX0FERF9CVVRUT04sXG4gICAgREVGQVVMVF9GT05UX1NUWUxFXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBSVJlY29yZEZpZWxkSWRQYXRoLCBBSVRhYmxlLCBBSVRhYmxlUXVlcmllcywgUmVuZGVyZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlQ2VsbHNEcmF3ZXJDb25maWcsIEFJVGFibGVSZW5kZXIsIEFJVGFibGVSb3dUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbiwgZ2V0SG92ZXJDZWxsLCB0cmFuc2Zvcm1DZWxsVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBhZGRSb3dMYXlvdXQgfSBmcm9tICcuLi9kcmF3ZXJzL2FkZC1yb3ctbGF5b3V0LWRyYXdlcic7XG5pbXBvcnQgeyBjZWxsRHJhd2VyIH0gZnJvbSAnLi4vZHJhd2Vycy9jZWxsLWRyYXdlcic7XG5pbXBvcnQgeyByZWNvcmRSb3dMYXlvdXQgfSBmcm9tICcuLi9kcmF3ZXJzL3JlY29yZC1yb3ctbGF5b3V0LWRyYXdlcic7XG5cbi8qKlxuICog57uY5Yi25Y2V5YWD5qC85YaF5a6555qE5Ye95pWwXG4gKiDliKnnlKggQ2FudmFzIEFQSSDnu5jliLbmr4/kuKrljZXlhYPmoLznmoTog4zmma/popzoibLjgIHmlofmnKzku6Xlj4rlhbbku5blj6/og73nmoTmoLflvI/jgILov5nkuKrlh73mlbDpgJrluLjnlKjkuo7oh6rlrprkuYnooajmoLzmuLLmn5PvvIzlsKTlhbbmmK/lnKjlpITnkIblpKfph4/mlbDmja7ml7bvvIzpgJrov4fnm7TmjqXmk43kvZwgQ2FudmFzIOadpeaPkOmrmOa4suafk+aAp+iDvVxuICogQHBhcmFtIGNvbmZpZ1xuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQ2VsbHMgPSAoY29uZmlnOiBBSVRhYmxlQ2VsbHNEcmF3ZXJDb25maWcpID0+IHtcbiAgICBjb25zdCB7IGFpVGFibGUsIGNvb3JkaW5hdGUsIHJlZmVyZW5jZXMsIGN0eCwgcm93U3RhcnRJbmRleCwgcm93U3RvcEluZGV4LCBjb2x1bW5TdGFydEluZGV4LCBjb2x1bW5TdG9wSW5kZXggfSA9IGNvbmZpZztcbiAgICBjb25zdCBjb250ZXh0ID0gYWlUYWJsZS5jb250ZXh0IGFzIFJlbmRlcmVyQ29udGV4dDtcbiAgICBjb25zdCB7IHJvd0hlaWdodCwgY29sdW1uQ291bnQsIHJvd0NvdW50IH0gPSBjb29yZGluYXRlO1xuICAgIGNvbnN0IGNvbG9ycyA9IEFJVGFibGUuZ2V0Q29sb3JzKCk7XG4gICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSBBSVRhYmxlLmdldFZpc2libGVGaWVsZHMoYWlUYWJsZSk7XG5cbiAgICAvLyDliJ3lp4vljJbnu5jlm77kuIrkuIvmlocsIOS4uuWQjue7reeahOe7mOWItuaTjeS9nOWBmuWHhuWkh1xuICAgIGNlbGxEcmF3ZXIuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcbiAgICBhZGRSb3dMYXlvdXQuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcbiAgICByZWNvcmRSb3dMYXlvdXQuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcblxuICAgIGNvbnN0IGhvdmVyQ2VsbCA9IGdldEhvdmVyQ2VsbChhaVRhYmxlKTtcblxuICAgIC8vIOmBjeWOhuWIlywg56Gu5a6a5Zyo5ZOq5Lqb5YiX5LiK57uY5Yi25Y2V5YWD5qC8XG4gICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSBjb2x1bW5TdGFydEluZGV4OyBjb2x1bW5JbmRleCA8PSBjb2x1bW5TdG9wSW5kZXg7IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgaWYgKGNvbHVtbkluZGV4ID4gY29sdW1uQ291bnQgLSAxKSBicmVhaztcblxuICAgICAgICAvLyDojrflj5bor6XliJflr7nlupTnmoQgZmllbGTvvIzlpoLmnpwgZmllbGQg5LiN5YaN5bGV56S66IyD5Zu077yM5YiZ6Lez6L+H6K+l5YiXXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdmlzaWJsZUNvbHVtbnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBpZiAoZmllbGQgPT0gbnVsbCkgY29udGludWU7XG5cbiAgICAgICAgLy8g6I635Y+W6K+l5YiX5a+55bqU55qE5a695bqmXG4gICAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IHggPSBjb29yZGluYXRlLmdldENvbHVtbk9mZnNldChjb2x1bW5JbmRleCkgKyBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgIGNvbnN0IGlzTGFzdENvbHVtbiA9IGNvbHVtbkluZGV4ID09PSBhaVRhYmxlLmZpZWxkcy5sZW5ndGggLSAxO1xuXG4gICAgICAgIGlmIChjb2x1bW5JbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgY2VsbERyYXdlci5pbml0U3R5bGUoZmllbGQsIHsgZm9udFdlaWdodDogREVGQVVMVF9GT05UX1NUWUxFIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g6YGN5Y6G6KGMLCDku44gcm93U3RhcnRJbmRleCDliLAgcm93U3RvcEluZGV4IOeahOaJgOacieihjO+8jOWGs+WumuWwhuWcqOWTquS6m+ihjOS4iue7mOWItuWNleWFg+agvFxuICAgICAgICBmb3IgKGxldCByb3dJbmRleCA9IHJvd1N0YXJ0SW5kZXg7IHJvd0luZGV4IDw9IHJvd1N0b3BJbmRleDsgcm93SW5kZXgrKykge1xuICAgICAgICAgICAgaWYgKHJvd0luZGV4ID4gcm93Q291bnQgLSAxKSBicmVhaztcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IGNvbnRleHQubGluZWFyUm93cygpW3Jvd0luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IHsgX2lkOiByZWNvcmRJZCwgdHlwZSB9ID0gcm93O1xuICAgICAgICAgICAgY29uc3QgeSA9IGNvb3JkaW5hdGUuZ2V0Um93T2Zmc2V0KHJvd0luZGV4KSArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgIGNvbnN0IHsgcm93SW5kZXg6IHBvaW50Um93SW5kZXgsIHRhcmdldE5hbWUgfSA9IGNvbnRleHQucG9pbnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgY29uc3QgaXNIb3ZlciA9IHBvaW50Um93SW5kZXggPT09IHJvd0luZGV4O1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEFJVGFibGVSb3dUeXBlLmFkZDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hvdmVyUm93ID0gaXNIb3ZlciAmJiB0YXJnZXROYW1lID09PSBBSV9UQUJMRV9ST1dfQUREX0JVVFRPTjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDaGVja2VkUm93ID0gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuaGFzKHJvdy5faWQpO1xuICAgICAgICAgICAgICAgICAgICBhZGRSb3dMYXlvdXQuaW5pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodDogQUlfVEFCTEVfRklFTERfSEVBRF9IRUlHSFQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBjb29yZGluYXRlLmNvbnRhaW5lcldpZHRoXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBhZGRSb3dMYXlvdXQucmVuZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSG92ZXJSb3csXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NoZWNrZWRSb3dcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIEFJVGFibGVSb3dUeXBlLnJlY29yZDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZElkID0gZmllbGQuX2lkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoID0gW3JlY29yZElkLCBmaWVsZElkXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2tncm91bmQgPSBnZXRDZWxsQmFja2dyb3VuZChjZWxsLCBpc0hvdmVyLCB0YXJnZXROYW1lLCBhaVRhYmxlKTtcblxuICAgICAgICAgICAgICAgICAgICByZWNvcmRSb3dMYXlvdXQuaW5pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkNvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyV2lkdGg6IGNvb3JkaW5hdGUuY29udGFpbmVyV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZFJvd0xheW91dC5yZW5kZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgZmlsbDogYmFja2dyb3VuZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIb3ZlclJvdzogaXNIb3ZlclJlY29yZChpc0hvdmVyLCB0YXJnZXROYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hlY2tlZFJvdzogaXNTZWxlY3RlZFJlY29yZChyZWNvcmRJZCwgYWlUYWJsZSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIG9mZnNldCB9ID0gZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uQ291bnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWxYID0geCArIG9mZnNldCArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVhbFkgPSB5ICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IHsgZm9udFdlaWdodDogREVGQVVMVF9GT05UX1NUWUxFIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgW3JlY29yZElkLCBmaWVsZElkXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVZhbHVlID0gdHJhbnNmb3JtQ2VsbFZhbHVlKGFpVGFibGUsIGZpZWxkLCBjZWxsVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW5kZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgeDogcmVhbFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiByZWFsWSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZElkOiByZWNvcmRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmU6IGlzU2VsZWN0ZWRGaWVsZChmaWVsZElkLCBhaVRhYmxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIC8vIGhvdmVyIOe7hOS7tua4suafk+aXtu+8jOW6leWxgueahCBjZWxsIOa4suafk+S4uuepulxuICAgICAgICAgICAgICAgICAgICBpZiAoaG92ZXJDZWxsICYmIGhvdmVyQ2VsbC5yZWNvcmRJZCA9PT0gcmVjb3JkSWQgJiYgaG92ZXJDZWxsLmZpZWxkSWQgPT09IGZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlci5jZWxsVmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlci50cmFuc2Zvcm1WYWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY2VsbERyYXdlci5pbml0U3R5bGUoZmllbGQsIHN0eWxlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8g5pyA5ZCO5LiA5YiX77yM5LiU5Y2V5YWD5qC85YaF5a655a2Y5Zyo77yM6ZyA6KaB6KOB5Ymq5YaF5a6577yM5Lul6Ziy5q2i5paH5pys5rqi5Ye65Y2V5YWD5qC86L6555WMXG4gICAgICAgICAgICAgICAgICAgIC8vIOeEtuWQju+8jOagueaNruiuoeeul+WlveeahOagt+W8j+WSjOW4g+WxgOe7mOWItuWNleWFg+agvOWGheWuuVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNMYXN0Q29sdW1uICYmIGNlbGxWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdHguc2F2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnJlY3QocmVhbFgsIHJlYWxZLCB3aWR0aCwgcm93SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5jbGlwKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsRHJhd2VyLnJlbmRlckNlbGwocmVuZGVyIGFzIEFJVGFibGVSZW5kZXIsIGN0eCBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxEcmF3ZXIucmVuZGVyQ2VsbChyZW5kZXIgYXMgQUlUYWJsZVJlbmRlciwgY3R4IGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBnZXRDZWxsQmFja2dyb3VuZCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBpc0hvdmVyOiBib29sZWFuLCB0YXJnZXROYW1lOiBzdHJpbmcsIGFpVGFibGU6IEFJVGFibGUpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGNvbG9ycyA9IEFJVGFibGUuZ2V0Q29sb3JzKCk7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgbGV0IGJhY2tncm91bmQgPSBjb2xvcnMud2hpdGU7XG5cbiAgICBjb25zdCBfaXNIb3ZlclJlY29yZCA9IGlzSG92ZXJSZWNvcmQoaXNIb3ZlciwgdGFyZ2V0TmFtZSk7XG4gICAgY29uc3QgX2lzU2VsZWN0ZWRSZWNvcmQgPSBpc1NlbGVjdGVkUmVjb3JkKHJlY29yZElkLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNTZWxlY3RlZEZpZWxkID0gaXNTZWxlY3RlZEZpZWxkKGZpZWxkSWQsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc1NpYmxpbmdDZWxsID0gaXNTaWJsaW5nQ2VsbChjZWxsLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNBY3RpdmVDZWxsID0gaXNBY3RpdmVDZWxsKGNlbGwsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc1NlbGVjdGVkQ2VsbCA9IGlzU2VsZWN0ZWRDZWxsKGNlbGwsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc0tleXdvcmRzTWF0Y2hlZENlbGwgPSBpc0tleXdvcmRzTWF0Y2hlZENlbGwoY2VsbCwgYWlUYWJsZSk7XG5cbiAgICBpZiAoX2lzS2V5d29yZHNNYXRjaGVkQ2VsbCkge1xuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3JzLml0ZW1NYXRjaEJnQ29sb3I7XG4gICAgfSBlbHNlIGlmIChfaXNTZWxlY3RlZFJlY29yZCB8fCBfaXNTZWxlY3RlZEZpZWxkIHx8IF9pc1NpYmxpbmdDZWxsIHx8IChfaXNTZWxlY3RlZENlbGwgJiYgIV9pc0FjdGl2ZUNlbGwpKSB7XG4gICAgICAgIGJhY2tncm91bmQgPSBjb2xvcnMuaXRlbUFjdGl2ZUJnQ29sb3I7XG4gICAgfSBlbHNlIGlmIChfaXNIb3ZlclJlY29yZCAmJiAhX2lzQWN0aXZlQ2VsbCkge1xuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3JzLmdyYXk4MDtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFja2dyb3VuZDtcbn07XG5cbmNvbnN0IGlzQWN0aXZlQ2VsbCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgY29uc3QgW2FjdGl2ZVJlY29yZElkLCBhY3RpdmVGaWVsZElkXSA9IEFJVGFibGUuZ2V0QWN0aXZlQ2VsbChhaVRhYmxlKSB8fCBbXTtcbiAgICByZXR1cm4gcmVjb3JkSWQgPT09IGFjdGl2ZVJlY29yZElkICYmIGZpZWxkSWQgPT09IGFjdGl2ZUZpZWxkSWQ7XG59O1xuXG5jb25zdCBpc1NpYmxpbmdDZWxsID0gKGNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgsIGFpVGFibGU6IEFJVGFibGUpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBbcmVjb3JkSWQsIGZpZWxkSWRdID0gY2VsbDtcbiAgICBjb25zdCBbYWN0aXZlUmVjb3JkSWQsIGFjdGl2ZUZpZWxkSWRdID0gQUlUYWJsZS5nZXRBY3RpdmVDZWxsKGFpVGFibGUpIHx8IFtdO1xuICAgIHJldHVybiBBSVRhYmxlLmdldEFjdGl2ZVJlY29yZElkcyhhaVRhYmxlKS5sZW5ndGggPT09IDEgJiYgcmVjb3JkSWQgPT09IGFjdGl2ZVJlY29yZElkICYmIGZpZWxkSWQgIT09IGFjdGl2ZUZpZWxkSWQ7XG59O1xuXG5jb25zdCBpc0tleXdvcmRzTWF0Y2hlZENlbGwgPSAoY2VsbDogQUlSZWNvcmRGaWVsZElkUGF0aCwgYWlUYWJsZTogQUlUYWJsZSk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBjZWxsO1xuICAgIHJldHVybiBhaVRhYmxlLmtleXdvcmRzTWF0Y2hlZENlbGxzKCkuaGFzKGAke3JlY29yZElkfToke2ZpZWxkSWR9YCk7XG59O1xuXG5jb25zdCBpc1NlbGVjdGVkQ2VsbCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRDZWxscy5oYXMoYCR7cmVjb3JkSWR9OiR7ZmllbGRJZH1gKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGVkRmllbGQgPSAoZmllbGRJZDogc3RyaW5nLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRGaWVsZHMuaGFzKGZpZWxkSWQpO1xufTtcblxuY29uc3QgaXNTZWxlY3RlZFJlY29yZCA9IChyZWNvcmRJZDogc3RyaW5nLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmhhcyhyZWNvcmRJZCk7XG59O1xuXG5jb25zdCBpc0hvdmVyUmVjb3JkID0gKGlzSG92ZXI6IGJvb2xlYW4sIHRhcmdldE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBpc0hvdmVyICYmIHRhcmdldE5hbWUgIT09IEFJX1RBQkxFX0ZJRUxEX0hFQUQ7XG59O1xuIl19
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNlbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvY3JlYXRpb25zL2NyZWF0ZS1jZWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBdUIsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxZQUFZLENBQUM7QUFDM0YsT0FBTyxFQUEyQyxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBZ0MsRUFBRSxFQUFFO0lBQzVELE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDeEgsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQTBCLENBQUM7SUFDbkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMs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QUksQ0FBQztJQUNqQyxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFFLE9BQWdCLEVBQVcsRUFBRTtJQUMxRSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLE9BQWdCLEVBQVcsRUFBRTtJQUNyRSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxVQUFrQixFQUFXLEVBQUU7SUFDcEUsT0FBTyxPQUFPLElBQUksVUFBVSxLQUFLLG1CQUFtQixDQUFDO0FBQ3pELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQUlfVEFCTEVfRklFTERfSEVBRCxcbiAgICBBSV9UQUJMRV9GSUVMRF9IRUFEX0hFSUdIVCxcbiAgICBBSV9UQUJMRV9PRkZTRVQsXG4gICAgQUlfVEFCTEVfUk9XX0FERF9CVVRUT04sXG4gICAgREVGQVVMVF9GT05UX1NUWUxFXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBSVJlY29yZEZpZWxkSWRQYXRoLCBBSVRhYmxlLCBBSVRhYmxlUXVlcmllcywgUmVuZGVyZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlQ2VsbHNEcmF3ZXJDb25maWcsIEFJVGFibGVSZW5kZXIsIEFJVGFibGVSb3dUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbiwgZ2V0SG92ZXJDZWxsLCB0cmFuc2Zvcm1DZWxsVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBhZGRSb3dMYXlvdXQgfSBmcm9tICcuLi9kcmF3ZXJzL2FkZC1yb3ctbGF5b3V0LWRyYXdlcic7XG5pbXBvcnQgeyBjZWxsRHJhd2VyIH0gZnJvbSAnLi4vZHJhd2Vycy9jZWxsLWRyYXdlcic7XG5pbXBvcnQgeyByZWNvcmRSb3dMYXlvdXQgfSBmcm9tICcuLi9kcmF3ZXJzL3JlY29yZC1yb3ctbGF5b3V0LWRyYXdlcic7XG5cbi8qKlxuICog57uY5Yi25Y2V5YWD5qC85YaF5a6555qE5Ye95pWwXG4gKiDliKnnlKggQ2FudmFzIEFQSSDnu5jliLbmr4/kuKrljZXlhYPmoLznmoTog4zmma/popzoibLjgIHmlofmnKzku6Xlj4rlhbbku5blj6/og73nmoTmoLflvI/jgILov5nkuKrlh73mlbDpgJrluLjnlKjkuo7oh6rlrprkuYnooajmoLzmuLLmn5PvvIzlsKTlhbbmmK/lnKjlpITnkIblpKfph4/mlbDmja7ml7bvvIzpgJrov4fnm7TmjqXmk43kvZwgQ2FudmFzIOadpeaPkOmrmOa4suafk+aAp+iDvVxuICogQHBhcmFtIGNvbmZpZ1xuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQ2VsbHMgPSAoY29uZmlnOiBBSVRhYmxlQ2VsbHNEcmF3ZXJDb25maWcpID0+IHtcbiAgICBjb25zdCB7IGFpVGFibGUsIGNvb3JkaW5hdGUsIHJlZmVyZW5jZXMsIGN0eCwgcm93U3RhcnRJbmRleCwgcm93U3RvcEluZGV4LCBjb2x1bW5TdGFydEluZGV4LCBjb2x1bW5TdG9wSW5kZXggfSA9IGNvbmZpZztcbiAgICBjb25zdCBjb250ZXh0ID0gYWlUYWJsZS5jb250ZXh0IGFzIFJlbmRlcmVyQ29udGV4dDtcbiAgICBjb25zdCB7IHJvd0hlaWdodCwgY29sdW1uQ291bnQsIHJvd0NvdW50IH0gPSBjb29yZGluYXRlO1xuICAgIGNvbnN0IGNvbG9ycyA9IEFJVGFibGUuZ2V0Q29sb3JzKCk7XG4gICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSBBSVRhYmxlLmdldFZpc2libGVGaWVsZHMoYWlUYWJsZSk7XG5cbiAgICAvLyDliJ3lp4vljJbnu5jlm77kuIrkuIvmlocsIOS4uuWQjue7reeahOe7mOWItuaTjeS9nOWBmuWHhuWkh1xuICAgIGNlbGxEcmF3ZXIuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcbiAgICBhZGRSb3dMYXlvdXQuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcbiAgICByZWNvcmRSb3dMYXlvdXQuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcblxuICAgIGNvbnN0IGhvdmVyQ2VsbCA9IGdldEhvdmVyQ2VsbChhaVRhYmxlKTtcblxuICAgIC8vIOmBjeWOhuWIlywg56Gu5a6a5Zyo5ZOq5Lqb5YiX5LiK57uY5Yi25Y2V5YWD5qC8XG4gICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSBjb2x1bW5TdGFydEluZGV4OyBjb2x1bW5JbmRleCA8PSBjb2x1bW5TdG9wSW5kZXg7IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgaWYgKGNvbHVtbkluZGV4ID4gY29sdW1uQ291bnQgLSAxKSBicmVhaztcblxuICAgICAgICAvLyDojrflj5bor6XliJflr7nlupTnmoQgZmllbGTvvIzlpoLmnpwgZmllbGQg5LiN5YaN5bGV56S66IyD5Zu077yM5YiZ6Lez6L+H6K+l5YiXXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdmlzaWJsZUNvbHVtbnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBpZiAoZmllbGQgPT0gbnVsbCkgY29udGludWU7XG5cbiAgICAgICAgLy8g6I635Y+W6K+l5YiX5a+55bqU55qE5a695bqmXG4gICAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IHggPSBjb29yZGluYXRlLmdldENvbHVtbk9mZnNldChjb2x1bW5JbmRleCkgKyBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgIGNvbnN0IGlzTGFzdENvbHVtbiA9IGNvbHVtbkluZGV4ID09PSBhaVRhYmxlLmdyaWREYXRhKCkuZmllbGRzPy5sZW5ndGggLSAxO1xuXG4gICAgICAgIGlmIChjb2x1bW5JbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgY2VsbERyYXdlci5pbml0U3R5bGUoZmllbGQsIHsgZm9udFdlaWdodDogREVGQVVMVF9GT05UX1NUWUxFIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g6YGN5Y6G6KGMLCDku44gcm93U3RhcnRJbmRleCDliLAgcm93U3RvcEluZGV4IOeahOaJgOacieihjO+8jOWGs+WumuWwhuWcqOWTquS6m+ihjOS4iue7mOWItuWNleWFg+agvFxuICAgICAgICBmb3IgKGxldCByb3dJbmRleCA9IHJvd1N0YXJ0SW5kZXg7IHJvd0luZGV4IDw9IHJvd1N0b3BJbmRleDsgcm93SW5kZXgrKykge1xuICAgICAgICAgICAgaWYgKHJvd0luZGV4ID4gcm93Q291bnQgLSAxKSBicmVhaztcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IGNvbnRleHQubGluZWFyUm93cygpW3Jvd0luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IHsgX2lkOiByZWNvcmRJZCwgdHlwZSB9ID0gcm93O1xuICAgICAgICAgICAgY29uc3QgeSA9IGNvb3JkaW5hdGUuZ2V0Um93T2Zmc2V0KHJvd0luZGV4KSArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgIGNvbnN0IHsgcm93SW5kZXg6IHBvaW50Um93SW5kZXgsIHRhcmdldE5hbWUgfSA9IGNvbnRleHQucG9pbnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgY29uc3QgaXNIb3ZlciA9IHBvaW50Um93SW5kZXggPT09IHJvd0luZGV4O1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEFJVGFibGVSb3dUeXBlLmFkZDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hvdmVyUm93ID0gaXNIb3ZlciAmJiB0YXJnZXROYW1lID09PSBBSV9UQUJMRV9ST1dfQUREX0JVVFRPTjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDaGVja2VkUm93ID0gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuaGFzKHJvdy5faWQpO1xuICAgICAgICAgICAgICAgICAgICBhZGRSb3dMYXlvdXQuaW5pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodDogQUlfVEFCTEVfRklFTERfSEVBRF9IRUlHSFQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBjb29yZGluYXRlLmNvbnRhaW5lcldpZHRoXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBhZGRSb3dMYXlvdXQucmVuZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSG92ZXJSb3csXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NoZWNrZWRSb3dcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIEFJVGFibGVSb3dUeXBlLnJlY29yZDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZElkID0gZmllbGQuX2lkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoID0gW3JlY29yZElkLCBmaWVsZElkXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2tncm91bmQgPSBnZXRDZWxsQmFja2dyb3VuZChjZWxsLCBpc0hvdmVyLCB0YXJnZXROYW1lLCBhaVRhYmxlKTtcblxuICAgICAgICAgICAgICAgICAgICByZWNvcmRSb3dMYXlvdXQuaW5pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkNvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyV2lkdGg6IGNvb3JkaW5hdGUuY29udGFpbmVyV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZFJvd0xheW91dC5yZW5kZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgZmlsbDogYmFja2dyb3VuZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIb3ZlclJvdzogaXNIb3ZlclJlY29yZChpc0hvdmVyLCB0YXJnZXROYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hlY2tlZFJvdzogaXNTZWxlY3RlZFJlY29yZChyZWNvcmRJZCwgYWlUYWJsZSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIG9mZnNldCB9ID0gZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uQ291bnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWxYID0geCArIG9mZnNldCArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVhbFkgPSB5ICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IHsgZm9udFdlaWdodDogREVGQVVMVF9GT05UX1NUWUxFIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgW3JlY29yZElkLCBmaWVsZElkXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVZhbHVlID0gdHJhbnNmb3JtQ2VsbFZhbHVlKGFpVGFibGUsIGZpZWxkLCBjZWxsVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW5kZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgeDogcmVhbFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiByZWFsWSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZElkOiByZWNvcmRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmU6IGlzU2VsZWN0ZWRGaWVsZChmaWVsZElkLCBhaVRhYmxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIC8vIGhvdmVyIOe7hOS7tua4suafk+aXtu+8jOW6leWxgueahCBjZWxsIOa4suafk+S4uuepulxuICAgICAgICAgICAgICAgICAgICBpZiAoaG92ZXJDZWxsICYmIGhvdmVyQ2VsbC5yZWNvcmRJZCA9PT0gcmVjb3JkSWQgJiYgaG92ZXJDZWxsLmZpZWxkSWQgPT09IGZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlci5jZWxsVmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlci50cmFuc2Zvcm1WYWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY2VsbERyYXdlci5pbml0U3R5bGUoZmllbGQsIHN0eWxlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8g5pyA5ZCO5LiA5YiX77yM5LiU5Y2V5YWD5qC85YaF5a655a2Y5Zyo77yM6ZyA6KaB6KOB5Ymq5YaF5a6577yM5Lul6Ziy5q2i5paH5pys5rqi5Ye65Y2V5YWD5qC86L6555WMXG4gICAgICAgICAgICAgICAgICAgIC8vIOeEtuWQju+8jOagueaNruiuoeeul+WlveeahOagt+W8j+WSjOW4g+WxgOe7mOWItuWNleWFg+agvOWGheWuuVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNMYXN0Q29sdW1uICYmIGNlbGxWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdHguc2F2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnJlY3QocmVhbFgsIHJlYWxZLCB3aWR0aCwgcm93SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5jbGlwKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsRHJhd2VyLnJlbmRlckNlbGwocmVuZGVyIGFzIEFJVGFibGVSZW5kZXIsIGN0eCBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxEcmF3ZXIucmVuZGVyQ2VsbChyZW5kZXIgYXMgQUlUYWJsZVJlbmRlciwgY3R4IGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBnZXRDZWxsQmFja2dyb3VuZCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBpc0hvdmVyOiBib29sZWFuLCB0YXJnZXROYW1lOiBzdHJpbmcsIGFpVGFibGU6IEFJVGFibGUpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGNvbG9ycyA9IEFJVGFibGUuZ2V0Q29sb3JzKCk7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgbGV0IGJhY2tncm91bmQgPSBjb2xvcnMud2hpdGU7XG5cbiAgICBjb25zdCBfaXNIb3ZlclJlY29yZCA9IGlzSG92ZXJSZWNvcmQoaXNIb3ZlciwgdGFyZ2V0TmFtZSk7XG4gICAgY29uc3QgX2lzU2VsZWN0ZWRSZWNvcmQgPSBpc1NlbGVjdGVkUmVjb3JkKHJlY29yZElkLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNTZWxlY3RlZEZpZWxkID0gaXNTZWxlY3RlZEZpZWxkKGZpZWxkSWQsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc1NpYmxpbmdDZWxsID0gaXNTaWJsaW5nQ2VsbChjZWxsLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNBY3RpdmVDZWxsID0gaXNBY3RpdmVDZWxsKGNlbGwsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc1NlbGVjdGVkQ2VsbCA9IGlzU2VsZWN0ZWRDZWxsKGNlbGwsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc0tleXdvcmRzTWF0Y2hlZENlbGwgPSBpc0tleXdvcmRzTWF0Y2hlZENlbGwoY2VsbCwgYWlUYWJsZSk7XG5cbiAgICBpZiAoX2lzS2V5d29yZHNNYXRjaGVkQ2VsbCkge1xuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3JzLml0ZW1NYXRjaEJnQ29sb3I7XG4gICAgfSBlbHNlIGlmIChfaXNTZWxlY3RlZFJlY29yZCB8fCBfaXNTZWxlY3RlZEZpZWxkIHx8IF9pc1NpYmxpbmdDZWxsIHx8IChfaXNTZWxlY3RlZENlbGwgJiYgIV9pc0FjdGl2ZUNlbGwpKSB7XG4gICAgICAgIGJhY2tncm91bmQgPSBjb2xvcnMuaXRlbUFjdGl2ZUJnQ29sb3I7XG4gICAgfSBlbHNlIGlmIChfaXNIb3ZlclJlY29yZCAmJiAhX2lzQWN0aXZlQ2VsbCkge1xuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3JzLmdyYXk4MDtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFja2dyb3VuZDtcbn07XG5cbmNvbnN0IGlzQWN0aXZlQ2VsbCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgY29uc3QgW2FjdGl2ZVJlY29yZElkLCBhY3RpdmVGaWVsZElkXSA9IEFJVGFibGUuZ2V0QWN0aXZlQ2VsbChhaVRhYmxlKSB8fCBbXTtcbiAgICByZXR1cm4gcmVjb3JkSWQgPT09IGFjdGl2ZVJlY29yZElkICYmIGZpZWxkSWQgPT09IGFjdGl2ZUZpZWxkSWQ7XG59O1xuXG5jb25zdCBpc1NpYmxpbmdDZWxsID0gKGNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgsIGFpVGFibGU6IEFJVGFibGUpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBbcmVjb3JkSWQsIGZpZWxkSWRdID0gY2VsbDtcbiAgICBjb25zdCBbYWN0aXZlUmVjb3JkSWQsIGFjdGl2ZUZpZWxkSWRdID0gQUlUYWJsZS5nZXRBY3RpdmVDZWxsKGFpVGFibGUpIHx8IFtdO1xuICAgIHJldHVybiBBSVRhYmxlLmdldEFjdGl2ZVJlY29yZElkcyhhaVRhYmxlKS5sZW5ndGggPT09IDEgJiYgcmVjb3JkSWQgPT09IGFjdGl2ZVJlY29yZElkICYmIGZpZWxkSWQgIT09IGFjdGl2ZUZpZWxkSWQ7XG59O1xuXG5jb25zdCBpc0tleXdvcmRzTWF0Y2hlZENlbGwgPSAoY2VsbDogQUlSZWNvcmRGaWVsZElkUGF0aCwgYWlUYWJsZTogQUlUYWJsZSk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBjZWxsO1xuICAgIHJldHVybiBhaVRhYmxlLmtleXdvcmRzTWF0Y2hlZENlbGxzKCkuaGFzKGAke3JlY29yZElkfToke2ZpZWxkSWR9YCk7XG59O1xuXG5jb25zdCBpc1NlbGVjdGVkQ2VsbCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRDZWxscy5oYXMoYCR7cmVjb3JkSWR9OiR7ZmllbGRJZH1gKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGVkRmllbGQgPSAoZmllbGRJZDogc3RyaW5nLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRGaWVsZHMuaGFzKGZpZWxkSWQpO1xufTtcblxuY29uc3QgaXNTZWxlY3RlZFJlY29yZCA9IChyZWNvcmRJZDogc3RyaW5nLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmhhcyhyZWNvcmRJZCk7XG59O1xuXG5jb25zdCBpc0hvdmVyUmVjb3JkID0gKGlzSG92ZXI6IGJvb2xlYW4sIHRhcmdldE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBpc0hvdmVyICYmIHRhcmdldE5hbWUgIT09IEFJX1RBQkxFX0ZJRUxEX0hFQUQ7XG59O1xuIl19
|