@plait/draw 0.59.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/geometry.d.ts +80 -0
- package/engines/uml/activity-class.d.ts +2 -0
- package/engines/uml/deletion.d.ts +2 -0
- package/engines/uml/note.d.ts +2 -0
- package/esm2022/constants/geometry.mjs +62 -3
- package/esm2022/engines/index.mjs +15 -2
- package/esm2022/engines/table/table.mjs +3 -2
- package/esm2022/engines/uml/activity-class.mjs +47 -0
- package/esm2022/engines/uml/deletion.mjs +31 -0
- package/esm2022/engines/uml/note.mjs +58 -0
- package/esm2022/interfaces/geometry.mjs +11 -1
- package/esm2022/interfaces/index.mjs +2 -2
- package/esm2022/plugins/with-draw-fragment.mjs +3 -2
- package/esm2022/plugins/with-draw.mjs +1 -1
- package/esm2022/plugins/with-geometry-create.mjs +13 -4
- package/esm2022/transforms/swimlane.mjs +23 -20
- package/esm2022/utils/geometry.mjs +13 -7
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/multi-text-geometry.mjs +3 -3
- package/esm2022/utils/swimlane.mjs +8 -2
- package/esm2022/utils/table.mjs +1 -1
- package/esm2022/utils/uml.mjs +88 -0
- package/fesm2022/plait-draw.mjs +360 -51
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/interfaces/geometry.d.ts +11 -1
- package/package.json +1 -1
- package/transforms/geometry.d.ts +2 -2
- package/transforms/index.d.ts +2 -2
- package/utils/geometry.d.ts +27 -1
- package/utils/index.d.ts +1 -0
- package/utils/multi-text-geometry.d.ts +1 -1
- package/utils/uml.d.ts +3 -0
|
@@ -63,8 +63,18 @@ export var UMLSymbols;
|
|
|
63
63
|
UMLSymbols["actor"] = "actor";
|
|
64
64
|
UMLSymbols["useCase"] = "useCase";
|
|
65
65
|
UMLSymbols["container"] = "container";
|
|
66
|
+
UMLSymbols["note"] = "note";
|
|
67
|
+
UMLSymbols["simpleClass"] = "simpleClass";
|
|
68
|
+
UMLSymbols["activityClass"] = "activityClass";
|
|
69
|
+
UMLSymbols["branchMerge"] = "branchMerge";
|
|
70
|
+
UMLSymbols["port"] = "port";
|
|
66
71
|
UMLSymbols["package"] = "package";
|
|
67
72
|
UMLSymbols["combinedFragment"] = "combinedFragment";
|
|
73
|
+
UMLSymbols["class"] = "class";
|
|
74
|
+
UMLSymbols["interface"] = "interface";
|
|
75
|
+
UMLSymbols["object"] = "object";
|
|
76
|
+
UMLSymbols["activation"] = "activation";
|
|
77
|
+
UMLSymbols["deletion"] = "deletion";
|
|
68
78
|
})(UMLSymbols || (UMLSymbols = {}));
|
|
69
79
|
export var MultipleTextGeometryCommonTextKeys;
|
|
70
80
|
(function (MultipleTextGeometryCommonTextKeys) {
|
|
@@ -72,4 +82,4 @@ export var MultipleTextGeometryCommonTextKeys;
|
|
|
72
82
|
MultipleTextGeometryCommonTextKeys["content"] = "content";
|
|
73
83
|
})(MultipleTextGeometryCommonTextKeys || (MultipleTextGeometryCommonTextKeys = {}));
|
|
74
84
|
export const PlaitGeometry = {};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9pbnRlcmZhY2VzL2dlb21ldHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sQ0FBTixJQUFZLFdBc0JYO0FBdEJELFdBQVksV0FBVztJQUNuQixzQ0FBdUIsQ0FBQTtJQUN2QixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtJQUNuQixnREFBaUMsQ0FBQTtJQUNqQyw4Q0FBK0IsQ0FBQTtJQUMvQiw0QkFBYSxDQUFBO0lBQ2Isb0NBQXFCLENBQUE7SUFDckIsc0NBQXVCLENBQUE7SUFDdkIsc0NBQXVCLENBQUE7SUFDdkIsd0NBQXlCLENBQUE7SUFDekIsOEJBQWUsQ0FBQTtJQUNmLDRCQUFhLENBQUE7SUFDYixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtJQUNuQiw4Q0FBK0IsQ0FBQTtJQUMvQiw0Q0FBNkIsQ0FBQTtJQUM3QiwwQ0FBMkIsQ0FBQTtJQUMzQixrQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBNkIsQ0FBQTtJQUM3Qiw4QkFBZSxDQUFBO0FBQ25CLENBQUMsRUF0QlcsV0FBVyxLQUFYLFdBQVcsUUFzQnRCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBeUJYO0FBekJELFdBQVksZ0JBQWdCO0lBQ3hCLHVDQUFtQixDQUFBO0lBQ25CLHlDQUFxQixDQUFBO0lBQ3JCLGlDQUFhLENBQUE7SUFDYiwyQ0FBdUIsQ0FBQTtJQUN2Qix5Q0FBcUIsQ0FBQTtJQUNyQiwrQ0FBMkIsQ0FBQTtJQUMzQiwrQ0FBMkIsQ0FBQTtJQUMzQiw2Q0FBeUIsQ0FBQTtJQUN6QixtQ0FBZSxDQUFBO0lBQ2YsbUNBQWUsQ0FBQTtJQUNmLDZDQUF5QixDQUFBO0lBQ3pCLDZCQUFTLENBQUE7SUFDVCx1REFBbUMsQ0FBQTtJQUNuQywyREFBdUMsQ0FBQTtJQUN2Qyx1Q0FBbUIsQ0FBQTtJQUNuQix5Q0FBcUIsQ0FBQTtJQUNyQixtREFBK0IsQ0FBQTtJQUMvQix5Q0FBcUIsQ0FBQTtJQUNyQix5Q0FBcUIsQ0FBQTtJQUNyQix1REFBbUMsQ0FBQTtJQUNuQyxxREFBaUMsQ0FBQTtJQUNqQyxtREFBK0IsQ0FBQTtJQUMvQiw2Q0FBeUIsQ0FBQTtJQUN6Qix1Q0FBbUIsQ0FBQTtBQUN2QixDQUFDLEVBekJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUF5QjNCO0FBRUQsTUFBTSxDQUFOLElBQVksWUFFWDtBQUZELFdBQVksWUFBWTtJQUNwQiwrQkFBZSxDQUFBO0FBQ25CLENBQUMsRUFGVyxZQUFZLEtBQVosWUFBWSxRQUV2QjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDdkIsd0RBQXFDLENBQUE7SUFDckMsNERBQXlDLENBQUE7QUFDN0MsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFnQlg7QUFoQkQsV0FBWSxVQUFVO0lBQ2xCLDZCQUFlLENBQUE7SUFDZixpQ0FBbUIsQ0FBQTtJQUNuQixxQ0FBdUIsQ0FBQTtJQUN2QiwyQkFBYSxDQUFBO0lBQ2IseUNBQTJCLENBQUE7SUFDM0IsNkNBQStCLENBQUE7SUFDL0IseUNBQTJCLENBQUE7SUFDM0IsMkJBQWEsQ0FBQTtJQUNiLGlDQUFtQixDQUFBO0lBQ25CLG1EQUFxQyxDQUFBO0lBQ3JDLDZCQUFlLENBQUE7SUFDZixxQ0FBdUIsQ0FBQTtJQUN2QiwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6QixtQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBaEJXLFVBQVUsS0FBVixVQUFVLFFBZ0JyQjtBQUVELE1BQU0sQ0FBTixJQUFZLGtDQUdYO0FBSEQsV0FBWSxrQ0FBa0M7SUFDMUMsbURBQWEsQ0FBQTtJQUNiLHlEQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxrQ0FBa0MsS0FBbEMsa0NBQWtDLFFBRzdDO0FBcURELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEVsZW1lbnQsIFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGFyYWdyYXBoRWxlbWVudCB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IFN0cm9rZVN0eWxlIH0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0VGFibGUgfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuXG5leHBvcnQgZW51bSBCYXNpY1NoYXBlcyB7XG4gICAgcmVjdGFuZ2xlID0gJ3JlY3RhbmdsZScsXG4gICAgZWxsaXBzZSA9ICdlbGxpcHNlJyxcbiAgICBkaWFtb25kID0gJ2RpYW1vbmQnLFxuICAgIHJvdW5kUmVjdGFuZ2xlID0gJ3JvdW5kUmVjdGFuZ2xlJyxcbiAgICBwYXJhbGxlbG9ncmFtID0gJ3BhcmFsbGVsb2dyYW0nLFxuICAgIHRleHQgPSAndGV4dCcsXG4gICAgdHJpYW5nbGUgPSAndHJpYW5nbGUnLFxuICAgIGxlZnRBcnJvdyA9ICdsZWZ0QXJyb3cnLFxuICAgIHRyYXBlem9pZCA9ICd0cmFwZXpvaWQnLFxuICAgIHJpZ2h0QXJyb3cgPSAncmlnaHRBcnJvdycsXG4gICAgY3Jvc3MgPSAnY3Jvc3MnLFxuICAgIHN0YXIgPSAnc3RhcicsXG4gICAgcGVudGFnb24gPSAncGVudGFnb24nLFxuICAgIGhleGFnb24gPSAnaGV4YWdvbicsXG4gICAgb2N0YWdvbiA9ICdvY3RhZ29uJyxcbiAgICBwZW50YWdvbkFycm93ID0gJ3BlbnRhZ29uQXJyb3cnLFxuICAgIHByb2Nlc3NBcnJvdyA9ICdwcm9jZXNzQXJyb3cnLFxuICAgIHR3b1dheUFycm93ID0gJ3R3b1dheUFycm93JyxcbiAgICBjb21tZW50ID0gJ2NvbW1lbnQnLFxuICAgIHJvdW5kQ29tbWVudCA9ICdyb3VuZENvbW1lbnQnLFxuICAgIGNsb3VkID0gJ2Nsb3VkJ1xufVxuXG5leHBvcnQgZW51bSBGbG93Y2hhcnRTeW1ib2xzIHtcbiAgICBwcm9jZXNzID0gJ3Byb2Nlc3MnLFxuICAgIGRlY2lzaW9uID0gJ2RlY2lzaW9uJyxcbiAgICBkYXRhID0gJ2RhdGEnLFxuICAgIGNvbm5lY3RvciA9ICdjb25uZWN0b3InLFxuICAgIHRlcm1pbmFsID0gJ3Rlcm1pbmFsJyxcbiAgICBtYW51YWxJbnB1dCA9ICdtYW51YWxJbnB1dCcsXG4gICAgcHJlcGFyYXRpb24gPSAncHJlcGFyYXRpb24nLFxuICAgIG1hbnVhbExvb3AgPSAnbWFudWFsTG9vcCcsXG4gICAgbWVyZ2UgPSAnbWVyZ2UnLFxuICAgIGRlbGF5ID0gJ2RlbGF5JyxcbiAgICBzdG9yZWREYXRhID0gJ3N0b3JlZERhdGEnLFxuICAgIG9yID0gJ29yJyxcbiAgICBzdW1taW5nSnVuY3Rpb24gPSAnc3VtbWluZ0p1bmN0aW9uJyxcbiAgICBwcmVkZWZpbmVkUHJvY2VzcyA9ICdwcmVkZWZpbmVkUHJvY2VzcycsXG4gICAgb2ZmUGFnZSA9ICdvZmZQYWdlJyxcbiAgICBkb2N1bWVudCA9ICdkb2N1bWVudCcsXG4gICAgbXVsdGlEb2N1bWVudCA9ICdtdWx0aURvY3VtZW50JyxcbiAgICBkYXRhYmFzZSA9ICdkYXRhYmFzZScsXG4gICAgaGFyZERpc2sgPSAnaGFyZERpc2snLFxuICAgIGludGVybmFsU3RvcmFnZSA9ICdpbnRlcm5hbFN0b3JhZ2UnLFxuICAgIG5vdGVDdXJseVJpZ2h0ID0gJ25vdGVDdXJseVJpZ2h0JyxcbiAgICBub3RlQ3VybHlMZWZ0ID0gJ25vdGVDdXJseUxlZnQnLFxuICAgIG5vdGVTcXVhcmUgPSAnbm90ZVNxdWFyZScsXG4gICAgZGlzcGxheSA9ICdkaXNwbGF5J1xufVxuXG5leHBvcnQgZW51bSBUYWJsZVN5bWJvbHMge1xuICAgIHRhYmxlID0gJ3RhYmxlJ1xufVxuXG5leHBvcnQgZW51bSBTd2ltbGFuZVN5bWJvbHMge1xuICAgIHN3aW1sYW5lVmVydGljYWwgPSAnc3dpbWxhbmVWZXJ0aWNhbCcsXG4gICAgc3dpbWxhbmVIb3Jpem9udGFsID0gJ3N3aW1sYW5lSG9yaXpvbnRhbCdcbn1cblxuZXhwb3J0IGVudW0gVU1MU3ltYm9scyB7XG4gICAgYWN0b3IgPSAnYWN0b3InLFxuICAgIHVzZUNhc2UgPSAndXNlQ2FzZScsXG4gICAgY29udGFpbmVyID0gJ2NvbnRhaW5lcicsXG4gICAgbm90ZSA9ICdub3RlJyxcbiAgICBzaW1wbGVDbGFzcyA9ICdzaW1wbGVDbGFzcycsXG4gICAgYWN0aXZpdHlDbGFzcyA9ICdhY3Rpdml0eUNsYXNzJyxcbiAgICBicmFuY2hNZXJnZSA9ICdicmFuY2hNZXJnZScsXG4gICAgcG9ydCA9ICdwb3J0JyxcbiAgICBwYWNrYWdlID0gJ3BhY2thZ2UnLFxuICAgIGNvbWJpbmVkRnJhZ21lbnQgPSAnY29tYmluZWRGcmFnbWVudCcsXG4gICAgY2xhc3MgPSAnY2xhc3MnLFxuICAgIGludGVyZmFjZSA9ICdpbnRlcmZhY2UnLFxuICAgIG9iamVjdCA9ICdvYmplY3QnLFxuICAgIGFjdGl2YXRpb24gPSAnYWN0aXZhdGlvbicsXG4gICAgZGVsZXRpb24gPSAnZGVsZXRpb24nXG59XG5cbmV4cG9ydCBlbnVtIE11bHRpcGxlVGV4dEdlb21ldHJ5Q29tbW9uVGV4dEtleXMge1xuICAgIG5hbWUgPSAnbmFtZScsXG4gICAgY29udGVudCA9ICdjb250ZW50J1xufVxuXG5leHBvcnQgdHlwZSBHZW9tZXRyeVNoYXBlcyA9IEJhc2ljU2hhcGVzIHwgRmxvd2NoYXJ0U3ltYm9scyB8IFN3aW1sYW5lU3ltYm9scyB8IFVNTFN5bWJvbHM7XG5cbmV4cG9ydCB0eXBlIFN3aW1sYW5lRGlyZWN0aW9uID0gJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdENvbW1vbkdlb21ldHJ5IGV4dGVuZHMgUGxhaXRFbGVtZW50IHtcbiAgICBwb2ludHM6IFtQb2ludCwgUG9pbnRdO1xuICAgIHR5cGU6ICdnZW9tZXRyeSc7XG4gICAgc2hhcGU6IEdlb21ldHJ5U2hhcGVzO1xuXG4gICAgLy8gbm9kZSBzdHlsZSBhdHRyaWJ1dGVzXG4gICAgZmlsbD86IHN0cmluZztcbiAgICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgICBzdHJva2VXaWR0aD86IG51bWJlcjtcbiAgICBzdHJva2VTdHlsZT86IFN0cm9rZVN0eWxlO1xuICAgIGFuZ2xlOiBudW1iZXI7XG4gICAgb3BhY2l0eTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnkgZXh0ZW5kcyBQbGFpdENvbW1vbkdlb21ldHJ5IHtcbiAgICB0ZXh0czogUGxhaXREcmF3U2hhcGVUZXh0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaXRHZW9tZXRyeSBleHRlbmRzIFBsYWl0Q29tbW9uR2VvbWV0cnkge1xuICAgIHRleHQ/OiBQYXJhZ3JhcGhFbGVtZW50O1xuICAgIHRleHRIZWlnaHQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaXRSZWN0YW5nbGUgZXh0ZW5kcyBQbGFpdEdlb21ldHJ5IHtcbiAgICBzaGFwZTogQmFzaWNTaGFwZXMucmVjdGFuZ2xlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0RWxsaXBzZSBleHRlbmRzIFBsYWl0R2VvbWV0cnkge1xuICAgIHNoYXBlOiBCYXNpY1NoYXBlcy5lbGxpcHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0RGlhbW9uZCBleHRlbmRzIFBsYWl0R2VvbWV0cnkge1xuICAgIHNoYXBlOiBCYXNpY1NoYXBlcy5kaWFtb25kO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0U3dpbWxhbmUgZXh0ZW5kcyBQbGFpdFRhYmxlIHtcbiAgICBzaGFwZTogU3dpbWxhbmVTeW1ib2xzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0U3dpbWxhbmVWZXJ0aWNhbCBleHRlbmRzIFBsYWl0U3dpbWxhbmUge1xuICAgIHNoYXBlOiBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVWZXJ0aWNhbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdFN3aW1sYW5lSG9yaXpvbnRhbCBleHRlbmRzIFBsYWl0U3dpbWxhbmUge1xuICAgIHNoYXBlOiBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsO1xufVxuXG5leHBvcnQgY29uc3QgUGxhaXRHZW9tZXRyeSA9IHt9O1xuIl19
|
|
@@ -54,7 +54,7 @@ export const PlaitDrawElement = {
|
|
|
54
54
|
return Object.keys(SwimlaneSymbols).includes(value.shape) && value.shape === SwimlaneSymbols.swimlaneHorizontal;
|
|
55
55
|
},
|
|
56
56
|
isUMLClassOrInterface: (value) => {
|
|
57
|
-
return
|
|
57
|
+
return Object.keys(UMLSymbols).includes(value.shape) && [UMLSymbols.class, UMLSymbols.interface].includes(value.shape);
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWlDLGVBQWUsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3JJLE9BQU8sRUFBYyxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUd4RCxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQVF6QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixVQUFVLEVBQUUsQ0FBQyxLQUFVLEVBQTBCLEVBQUU7UUFDL0MsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFzQixFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBc0IsRUFBRTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQztJQUN6RSxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUF1QixFQUFFO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBdUIsRUFBRTtRQUN6QyxPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsYUFBYSxFQUFFLENBQUMsS0FBVSxFQUE2QixFQUFFO1FBQ3JELElBQ0ksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNsQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzlCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDL0IsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUNsQyxDQUFDO1lBQ0MsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsRUFBRSxDQUFDLEtBQVUsRUFBOEIsRUFBRTtRQUN2RCxPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFDRCxZQUFZLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtRQUN6QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDbEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELFVBQVUsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxrQkFBa0IsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1FBQy9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLGdCQUFnQixDQUFDO0lBQ2xILENBQUM7SUFDRCxvQkFBb0IsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLGtCQUFrQixDQUFDO0lBQ3BILENBQUM7SUFDRCxxQkFBcUIsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1FBQ2xDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzSCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2ljU2hhcGVzLCBGbG93Y2hhcnRTeW1ib2xzLCBHZW9tZXRyeVNoYXBlcywgUGxhaXRHZW9tZXRyeSwgU3dpbWxhbmVTeW1ib2xzLCBUYWJsZVN5bWJvbHMsIFVNTFN5bWJvbHMgfSBmcm9tICcuL2dlb21ldHJ5JztcbmltcG9ydCB7IFBsYWl0SW1hZ2UgfSBmcm9tICcuL2ltYWdlJztcbmltcG9ydCB7IFBsYWl0TGluZSB9IGZyb20gJy4vbGluZSc7XG5pbXBvcnQgeyBQbGFpdFRhYmxlLCBQbGFpdFRhYmxlRWxlbWVudCB9IGZyb20gJy4vdGFibGUnO1xuaW1wb3J0IHsgUGxhaXRUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VvbWV0cnknO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VuZ2luZSc7XG5cbmV4cG9ydCB0eXBlIFBsYWl0RHJhd0VsZW1lbnQgPSBQbGFpdEdlb21ldHJ5IHwgUGxhaXRMaW5lIHwgUGxhaXRJbWFnZSB8IFBsYWl0VGFibGU7XG5cbmV4cG9ydCB0eXBlIFBsYWl0U2hhcGVFbGVtZW50ID0gUGxhaXRHZW9tZXRyeSB8IFBsYWl0SW1hZ2UgfCBQbGFpdFRhYmxlO1xuXG5leHBvcnQgdHlwZSBEcmF3U2hhcGVzID0gR2VvbWV0cnlTaGFwZXMgfCBUYWJsZVN5bWJvbHM7XG5cbmV4cG9ydCBjb25zdCBQbGFpdERyYXdFbGVtZW50ID0ge1xuICAgIGlzR2VvbWV0cnk6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRHZW9tZXRyeSA9PiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50eXBlID09PSAnZ2VvbWV0cnknO1xuICAgIH0sXG4gICAgaXNMaW5lOiAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFBsYWl0TGluZSA9PiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50eXBlID09PSAnbGluZSc7XG4gICAgfSxcbiAgICBpc1RleHQ6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRUZXh0ID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdnZW9tZXRyeScgJiYgdmFsdWUuc2hhcGUgPT09IEJhc2ljU2hhcGVzLnRleHQ7XG4gICAgfSxcbiAgICBpc0ltYWdlOiAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFBsYWl0SW1hZ2UgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ2ltYWdlJztcbiAgICB9LFxuICAgIGlzVGFibGU6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRUYWJsZSA9PiB7XG4gICAgICAgIHJldHVybiBQbGFpdFRhYmxlRWxlbWVudC5pc1RhYmxlKHZhbHVlKTtcbiAgICB9LFxuICAgIGlzRHJhd0VsZW1lbnQ6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXREcmF3RWxlbWVudCA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeSh2YWx1ZSkgfHxcbiAgICAgICAgICAgIFBsYWl0RHJhd0VsZW1lbnQuaXNMaW5lKHZhbHVlKSB8fFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKHZhbHVlKSB8fFxuICAgICAgICAgICAgUGxhaXRUYWJsZUVsZW1lbnQuaXNUYWJsZSh2YWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaXNTaGFwZUVsZW1lbnQ6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRTaGFwZUVsZW1lbnQgPT4ge1xuICAgICAgICByZXR1cm4gUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKHZhbHVlKSB8fCBQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkodmFsdWUpIHx8IFBsYWl0RHJhd0VsZW1lbnQuaXNUYWJsZSh2YWx1ZSk7XG4gICAgfSxcbiAgICBpc0Jhc2ljU2hhcGU6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhCYXNpY1NoYXBlcykuaW5jbHVkZXModmFsdWUuc2hhcGUpO1xuICAgIH0sXG4gICAgaXNGbG93Y2hhcnQ6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhGbG93Y2hhcnRTeW1ib2xzKS5pbmNsdWRlcyh2YWx1ZS5zaGFwZSk7XG4gICAgfSxcbiAgICBpc1VNTDogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKFVNTFN5bWJvbHMpLmluY2x1ZGVzKHZhbHVlLnNoYXBlKTtcbiAgICB9LFxuICAgIGlzU3dpbWxhbmU6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhTd2ltbGFuZVN5bWJvbHMpLmluY2x1ZGVzKHZhbHVlLnNoYXBlKTtcbiAgICB9LFxuICAgIGlzVmVydGljYWxTd2ltbGFuZTogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKFN3aW1sYW5lU3ltYm9scykuaW5jbHVkZXModmFsdWUuc2hhcGUpICYmIHZhbHVlLnNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVWZXJ0aWNhbDtcbiAgICB9LFxuICAgIGlzSG9yaXpvbnRhbFN3aW1sYW5lOiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoU3dpbWxhbmVTeW1ib2xzKS5pbmNsdWRlcyh2YWx1ZS5zaGFwZSkgJiYgdmFsdWUuc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZUhvcml6b250YWw7XG4gICAgfSxcbiAgICBpc1VNTENsYXNzT3JJbnRlcmZhY2U6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhVTUxTeW1ib2xzKS5pbmNsdWRlcyh2YWx1ZS5zaGFwZSkgJiYgW1VNTFN5bWJvbHMuY2xhc3MsIFVNTFN5bWJvbHMuaW50ZXJmYWNlXS5pbmNsdWRlcyh2YWx1ZS5zaGFwZSk7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -18,7 +18,8 @@ export const withDrawFragment = (baseBoard) => {
|
|
|
18
18
|
const tableElements = drawElements.filter(value => PlaitDrawElement.isTable(value));
|
|
19
19
|
const boundLineElements = [
|
|
20
20
|
...getBoundedLineElements(board, geometryElements),
|
|
21
|
-
...getBoundedLineElements(board, imageElements)
|
|
21
|
+
...getBoundedLineElements(board, imageElements),
|
|
22
|
+
...getBoundedLineElements(board, tableElements)
|
|
22
23
|
].filter(line => !lineElements.includes(line));
|
|
23
24
|
data.push(...[
|
|
24
25
|
...geometryElements,
|
|
@@ -93,4 +94,4 @@ export const getBoundedLineElements = (board, plaitShapes) => {
|
|
|
93
94
|
const lines = getLines(board);
|
|
94
95
|
return lines.filter(line => plaitShapes.find(shape => PlaitLine.isBoundElementOfSource(line, shape) || PlaitLine.isBoundElementOfTarget(line, shape)));
|
|
95
96
|
};
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kcmF3LWZyYWdtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvcGx1Z2lucy93aXRoLWRyYXctZnJhZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQU9ILDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUduRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFNBQXFCLEVBQUUsRUFBRTtJQUN0RCxNQUFNLEtBQUssR0FBRyxTQUF1QixDQUFDO0lBQ3RDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXBFLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLElBQW9CLEVBQUUsRUFBRTtRQUNoRCxNQUFNLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixN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TztnQkFDWCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxjQUFjLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsV0FBZ0MsRUFBRSxFQUFFO0lBQzFGLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDdkIsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUM1SCxDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDbGlwYm9hcmREYXRhLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBvaW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBXcml0YWJsZUNsaXBib2FyZENvbnRleHQsXG4gICAgV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlLFxuICAgIFdyaXRhYmxlQ2xpcGJvYXJkVHlwZSxcbiAgICBhZGRDbGlwYm9hcmRDb250ZXh0LFxuICAgIGNyZWF0ZUNsaXBib2FyZENvbnRleHQsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50c1xufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRTZWxlY3RlZERyYXdFbGVtZW50cyB9IGZyb20gJy4uL3V0aWxzL3NlbGVjdGVkJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQsIFBsYWl0R2VvbWV0cnksIFBsYWl0TGluZSwgUGxhaXRTaGFwZUVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGJ1aWxkQ2xpcGJvYXJkRGF0YSwgaW5zZXJ0Q2xpcGJvYXJkRGF0YSB9IGZyb20gJy4uL3V0aWxzL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBEcmF3VHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgZ2V0TGluZXMgfSBmcm9tICcuLi91dGlscy9saW5lL2xpbmUtYmFzaWMnO1xuaW1wb3J0IHsgUGxhaXRJbWFnZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvaW1hZ2UnO1xuaW1wb3J0IHsgYWNjZXB0SW1hZ2VUeXBlcywgYnVpbGRJbWFnZSwgZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlLCBnZXRFbGVtZW50c1RleHQgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IERFRkFVTFRfSU1BR0VfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGxhaXRUYWJsZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGFibGUnO1xuXG5leHBvcnQgY29uc3Qgd2l0aERyYXdGcmFnbWVudCA9IChiYXNlQm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBib2FyZCA9IGJhc2VCb2FyZCBhcyBQbGFpdEJvYXJkO1xuICAgIGNvbnN0IHsgZ2V0RGVsZXRlZEZyYWdtZW50LCBidWlsZEZyYWdtZW50LCBpbnNlcnRGcmFnbWVudCB9ID0gYm9hcmQ7XG5cbiAgICBib2FyZC5nZXREZWxldGVkRnJhZ21lbnQgPSAoZGF0YTogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICAgICAgY29uc3QgZHJhd0VsZW1lbnRzID0gZ2V0U2VsZWN0ZWREcmF3RWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBpZiAoZHJhd0VsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZ2VvbWV0cnlFbGVtZW50cyA9IGRyYXdFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KHZhbHVlKSkgYXMgUGxhaXRHZW9tZXRyeVtdO1xuICAgICAgICAgICAgY29uc3QgbGluZUVsZW1lbnRzID0gZHJhd0VsZW1lbnRzLmZpbHRlcih2YWx1ZSA9PiBQbGFpdERyYXdFbGVtZW50LmlzTGluZSh2YWx1ZSkpIGFzIFBsYWl0TGluZVtdO1xuICAgICAgICAgICAgY29uc3QgaW1hZ2VFbGVtZW50cyA9IGRyYXdFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKHZhbHVlKSkgYXMgUGxhaXRJbWFnZVtdO1xuICAgICAgICAgICAgY29uc3QgdGFibGVFbGVtZW50cyA9IGRyYXdFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc1RhYmxlKHZhbHVlKSkgYXMgUGxhaXRUYWJsZVtdO1xuXG4gICAgICAgICAgICBjb25zdCBib3VuZExpbmVFbGVtZW50cyA9IFtcbiAgICAgICAgICAgICAgICAuLi5nZXRCb3VuZGVkTGluZUVsZW1lbnRzKGJvYXJkLCBnZW9tZXRyeUVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgICAuLi5nZXRCb3VuZGVkTGluZUVsZW1lbnRzKGJvYXJkLCBpbWFnZUVsZW1lbnRzKVxuICAgICAgICAgICAgXS5maWx0ZXIobGluZSA9PiAhbGluZUVsZW1lbnRzLmluY2x1ZGVzKGxpbmUpKTtcbiAgICAgICAgICAgIGRhdGEucHVzaChcbiAgICAgICAgICAgICAgICAuLi5bXG4gICAgICAgICAgICAgICAgICAgIC4uLmdlb21ldHJ5RWxlbWVudHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLmxpbmVFbGVtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgLi4uaW1hZ2VFbGVtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgLi4udGFibGVFbGVtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgLi4uYm91bmRMaW5lRWxlbWVudHMuZmlsdGVyKGxpbmUgPT4gIWxpbmVFbGVtZW50cy5pbmNsdWRlcyhsaW5lKSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXREZWxldGVkRnJhZ21lbnQoZGF0YSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmJ1aWxkRnJhZ21lbnQgPSAoXG4gICAgICAgIGNsaXBib2FyZENvbnRleHQ6IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCB8IG51bGwsXG4gICAgICAgIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50IHwgbnVsbCxcbiAgICAgICAgb3BlcmF0aW9uVHlwZTogV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlLFxuICAgICAgICBvcmlnaW5EYXRhPzogUGxhaXRFbGVtZW50W11cbiAgICApID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RHJhd0VsZW1lbnRzID0gZ2V0U2VsZWN0ZWREcmF3RWxlbWVudHMoYm9hcmQsIG9yaWdpbkRhdGEpO1xuICAgICAgICBsZXQgYm91bmRMaW5lRWxlbWVudHM6IFBsYWl0TGluZVtdID0gW107XG4gICAgICAgIGlmICh0YXJnZXREcmF3RWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAob3BlcmF0aW9uVHlwZSA9PT0gV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlLmN1dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdlb21ldHJ5RWxlbWVudHMgPSB0YXJnZXREcmF3RWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeSh2YWx1ZSkpIGFzIFBsYWl0R2VvbWV0cnlbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lRWxlbWVudHMgPSB0YXJnZXREcmF3RWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNMaW5lKHZhbHVlKSkgYXMgUGxhaXRMaW5lW107XG4gICAgICAgICAgICAgICAgYm91bmRMaW5lRWxlbWVudHMgPSBnZXRCb3VuZGVkTGluZUVsZW1lbnRzKGJvYXJkLCBnZW9tZXRyeUVsZW1lbnRzKS5maWx0ZXIobGluZSA9PiAhbGluZUVsZW1lbnRzLmluY2x1ZGVzKGxpbmUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBbLi4udGFyZ2V0RHJhd0VsZW1lbnRzLCAuLi5ib3VuZExpbmVFbGVtZW50c107XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IGJ1aWxkQ2xpcGJvYXJkRGF0YShib2FyZCwgc2VsZWN0ZWRFbGVtZW50cywgcmVjdGFuZ2xlID8gW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueV0gOiBbMCwgMF0pO1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGdldEVsZW1lbnRzVGV4dChzZWxlY3RlZEVsZW1lbnRzKTtcbiAgICAgICAgICAgIGlmICghY2xpcGJvYXJkQ29udGV4dCkge1xuICAgICAgICAgICAgICAgIGNsaXBib2FyZENvbnRleHQgPSBjcmVhdGVDbGlwYm9hcmRDb250ZXh0KFdyaXRhYmxlQ2xpcGJvYXJkVHlwZS5lbGVtZW50cywgZWxlbWVudHMsIHRleHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjbGlwYm9hcmRDb250ZXh0ID0gYWRkQ2xpcGJvYXJkQ29udGV4dChjbGlwYm9hcmRDb250ZXh0LCB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFdyaXRhYmxlQ2xpcGJvYXJkVHlwZS5lbGVtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnVpbGRGcmFnbWVudChjbGlwYm9hcmRDb250ZXh0LCByZWN0YW5nbGUsIG9wZXJhdGlvblR5cGUsIG9yaWdpbkRhdGEpO1xuICAgIH07XG5cbiAgICBib2FyZC5pbnNlcnRGcmFnbWVudCA9IChjbGlwYm9hcmREYXRhOiBDbGlwYm9hcmREYXRhIHwgbnVsbCwgdGFyZ2V0UG9pbnQ6IFBvaW50LCBvcGVyYXRpb25UeXBlPzogV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgaWYgKGNsaXBib2FyZERhdGE/LmZpbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjY2VwdEltYWdlQXJyYXkgPSBhY2NlcHRJbWFnZVR5cGVzLm1hcCh0eXBlID0+ICdpbWFnZS8nICsgdHlwZSk7XG4gICAgICAgICAgICBjb25zdCBjYW5JbnNlcnRpb25JbWFnZSA9XG4gICAgICAgICAgICAgICAgIWdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCkgJiYgIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBib2FyZC5pc0ltYWdlQmluZGluZ0FsbG93ZWQoc2VsZWN0ZWRFbGVtZW50c1swXSkpO1xuICAgICAgICAgICAgaWYgKGFjY2VwdEltYWdlQXJyYXkuaW5jbHVkZXMoY2xpcGJvYXJkRGF0YS5maWxlc1swXS50eXBlKSAmJiBjYW5JbnNlcnRpb25JbWFnZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlRmlsZSA9IGNsaXBib2FyZERhdGEuZmlsZXNbMF07XG4gICAgICAgICAgICAgICAgYnVpbGRJbWFnZShib2FyZCwgaW1hZ2VGaWxlLCBERUZBVUxUX0lNQUdFX1dJRFRILCBpbWFnZUl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5pbnNlcnRJbWFnZShib2FyZCwgaW1hZ2VJdGVtLCB0YXJnZXRQb2ludCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsaXBib2FyZERhdGE/LmVsZW1lbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGRyYXdFbGVtZW50cyA9IGNsaXBib2FyZERhdGEuZWxlbWVudHM/LmZpbHRlcih2YWx1ZSA9PiBQbGFpdERyYXdFbGVtZW50LmlzRHJhd0VsZW1lbnQodmFsdWUpKSBhcyBQbGFpdERyYXdFbGVtZW50W107XG4gICAgICAgICAgICBpZiAoY2xpcGJvYXJkRGF0YS5lbGVtZW50cyAmJiBjbGlwYm9hcmREYXRhLmVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgZHJhd0VsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBpbnNlcnRDbGlwYm9hcmREYXRhKGJvYXJkLCBkcmF3RWxlbWVudHMsIHRhcmdldFBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy50ZXh0KSB7XG4gICAgICAgICAgICBpZiAoIWNsaXBib2FyZERhdGEuZWxlbWVudHMgfHwgY2xpcGJvYXJkRGF0YS5lbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAvLyAoKu+/o++4tu+/oylcbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRBc0NoaWxkcmVuID0gc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgc2VsZWN0ZWRFbGVtZW50c1swXS5jaGlsZHJlbjtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRBc0ZyZWVUZXh0ID0gIWluc2VydEFzQ2hpbGRyZW47XG4gICAgICAgICAgICAgICAgaWYgKGluc2VydEFzRnJlZVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgRHJhd1RyYW5zZm9ybXMuaW5zZXJ0VGV4dChib2FyZCwgdGFyZ2V0UG9pbnQsIGNsaXBib2FyZERhdGEudGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnNlcnRGcmFnbWVudChjbGlwYm9hcmREYXRhLCB0YXJnZXRQb2ludCwgb3BlcmF0aW9uVHlwZSk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCb3VuZGVkTGluZUVsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBwbGFpdFNoYXBlczogUGxhaXRTaGFwZUVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IGxpbmVzID0gZ2V0TGluZXMoYm9hcmQpO1xuICAgIHJldHVybiBsaW5lcy5maWx0ZXIobGluZSA9PlxuICAgICAgICBwbGFpdFNoYXBlcy5maW5kKHNoYXBlID0+IFBsYWl0TGluZS5pc0JvdW5kRWxlbWVudE9mU291cmNlKGxpbmUsIHNoYXBlKSB8fCBQbGFpdExpbmUuaXNCb3VuZEVsZW1lbnRPZlRhcmdldChsaW5lLCBzaGFwZSkpXG4gICAgKTtcbn07XG4iXX0=
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kcmF3LWZyYWdtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvcGx1Z2lucy93aXRoLWRyYXctZnJhZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQU9ILDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUduRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFNBQXFCLEVBQUUsRUFBRTtJQUN0RCxNQUFNLEtBQUssR0FBRyxTQUF1QixDQUFDO0lBQ3RDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXBFLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLElBQW9CLEVBQUUsRUFBRTtRQUNoRCxNQUFNLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQW9CLENBQUM7WUFDN0csTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztZQUNqRyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFpQixDQUFDO1lBQ3BHLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQWlCLENBQUM7WUFFcEcsTUFBTSxpQkFBaUIsR0FBRztnQkFDdEIsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUM7Z0JBQ2xELEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQztnQkFDL0MsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO2FBQ2xELENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FDTCxHQUFHO2dCQUNDLEdBQUcsZ0JBQWdCO2dCQUNuQixHQUFHLFlBQVk7Z0JBQ2YsR0FBRyxhQUFhO2dCQUNoQixHQUFHLGFBQWE7Z0JBQ2hCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BFLENBQ0osQ0FBQztRQUNOLENBQUM7UUFDRCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FDbEIsZ0JBQWlELEVBQ2pELFNBQWlDLEVBQ2pDLGFBQTZDLEVBQzdDLFVBQTJCLEVBQzdCLEVBQUU7UUFDQSxNQUFNLGtCQUFrQixHQUFHLHVCQUF1QixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RSxJQUFJLGlCQUFpQixHQUFnQixFQUFFLENBQUM7UUFDeEMsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLGFBQWEsS0FBSyw4QkFBOEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQW9CLENBQUM7Z0JBQ25ILE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztnQkFDdkcsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDckgsQ0FBQztZQUNELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztZQUN2RSxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlHLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNwQixnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlGLENBQUM7aUJBQU0sQ0FBQztnQkFDSixnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDckQsSUFBSTtvQkFDSixJQUFJLEVBQUUscUJBQXFCLENBQUMsUUFBUTtvQkFDcEMsUUFBUTtpQkFDWCxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakYsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLGFBQW1DLEVBQUUsV0FBa0IsRUFBRSxhQUE4QyxFQUFFLEVBQUU7UUFDL0gsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDL0IsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdkUsTUFBTSxpQkFBaUIsR0FDbkIsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdILElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDOUUsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLEVBQUU7b0JBQzFELGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDOUQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTztZQUNYLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUF1QixDQUFDO1lBQzFILElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekYsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqRSxTQUFTO2dCQUNULE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ3ZGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDM0MsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO29CQUNuQixjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsRSxPQUFPO2dCQUNYLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUVELGNBQWMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBaUIsRUFBRSxXQUFnQyxFQUFFLEVBQUU7SUFDMUYsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN2QixXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQzVILENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENsaXBib2FyZERhdGEsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCxcbiAgICBXcml0YWJsZUNsaXBib2FyZE9wZXJhdGlvblR5cGUsXG4gICAgV3JpdGFibGVDbGlwYm9hcmRUeXBlLFxuICAgIGFkZENsaXBib2FyZENvbnRleHQsXG4gICAgY3JlYXRlQ2xpcGJvYXJkQ29udGV4dCxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGdldFNlbGVjdGVkRHJhd0VsZW1lbnRzIH0gZnJvbSAnLi4vdXRpbHMvc2VsZWN0ZWQnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRHZW9tZXRyeSwgUGxhaXRMaW5lLCBQbGFpdFNoYXBlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYnVpbGRDbGlwYm9hcmREYXRhLCBpbnNlcnRDbGlwYm9hcmREYXRhIH0gZnJvbSAnLi4vdXRpbHMvY2xpcGJvYXJkJztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBnZXRMaW5lcyB9IGZyb20gJy4uL3V0aWxzL2xpbmUvbGluZS1iYXNpYyc7XG5pbXBvcnQgeyBQbGFpdEltYWdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbWFnZSc7XG5pbXBvcnQgeyBhY2NlcHRJbWFnZVR5cGVzLCBidWlsZEltYWdlLCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UsIGdldEVsZW1lbnRzVGV4dCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgREVGQVVMVF9JTUFHRV9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQbGFpdFRhYmxlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5cbmV4cG9ydCBjb25zdCB3aXRoRHJhd0ZyYWdtZW50ID0gKGJhc2VCb2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IGJvYXJkID0gYmFzZUJvYXJkIGFzIFBsYWl0Qm9hcmQ7XG4gICAgY29uc3QgeyBnZXREZWxldGVkRnJhZ21lbnQsIGJ1aWxkRnJhZ21lbnQsIGluc2VydEZyYWdtZW50IH0gPSBib2FyZDtcblxuICAgIGJvYXJkLmdldERlbGV0ZWRGcmFnbWVudCA9IChkYXRhOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBjb25zdCBkcmF3RWxlbWVudHMgPSBnZXRTZWxlY3RlZERyYXdFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIGlmIChkcmF3RWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBnZW9tZXRyeUVsZW1lbnRzID0gZHJhd0VsZW1lbnRzLmZpbHRlcih2YWx1ZSA9PiBQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkodmFsdWUpKSBhcyBQbGFpdEdlb21ldHJ5W107XG4gICAgICAgICAgICBjb25zdCBsaW5lRWxlbWVudHMgPSBkcmF3RWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNMaW5lKHZhbHVlKSkgYXMgUGxhaXRMaW5lW107XG4gICAgICAgICAgICBjb25zdCBpbWFnZUVsZW1lbnRzID0gZHJhd0VsZW1lbnRzLmZpbHRlcih2YWx1ZSA9PiBQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UodmFsdWUpKSBhcyBQbGFpdEltYWdlW107XG4gICAgICAgICAgICBjb25zdCB0YWJsZUVsZW1lbnRzID0gZHJhd0VsZW1lbnRzLmZpbHRlcih2YWx1ZSA9PiBQbGFpdERyYXdFbGVtZW50LmlzVGFibGUodmFsdWUpKSBhcyBQbGFpdFRhYmxlW107XG5cbiAgICAgICAgICAgIGNvbnN0IGJvdW5kTGluZUVsZW1lbnRzID0gW1xuICAgICAgICAgICAgICAgIC4uLmdldEJvdW5kZWRMaW5lRWxlbWVudHMoYm9hcmQsIGdlb21ldHJ5RWxlbWVudHMpLFxuICAgICAgICAgICAgICAgIC4uLmdldEJvdW5kZWRMaW5lRWxlbWVudHMoYm9hcmQsIGltYWdlRWxlbWVudHMpLFxuICAgICAgICAgICAgICAgIC4uLmdldEJvdW5kZWRMaW5lRWxlbWVudHMoYm9hcmQsIHRhYmxlRWxlbWVudHMpXG4gICAgICAgICAgICBdLmZpbHRlcihsaW5lID0+ICFsaW5lRWxlbWVudHMuaW5jbHVkZXMobGluZSkpO1xuICAgICAgICAgICAgZGF0YS5wdXNoKFxuICAgICAgICAgICAgICAgIC4uLltcbiAgICAgICAgICAgICAgICAgICAgLi4uZ2VvbWV0cnlFbGVtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgLi4ubGluZUVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICAuLi5pbWFnZUVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICAuLi50YWJsZUVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICAuLi5ib3VuZExpbmVFbGVtZW50cy5maWx0ZXIobGluZSA9PiAhbGluZUVsZW1lbnRzLmluY2x1ZGVzKGxpbmUpKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldERlbGV0ZWRGcmFnbWVudChkYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuYnVpbGRGcmFnbWVudCA9IChcbiAgICAgICAgY2xpcGJvYXJkQ29udGV4dDogV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0IHwgbnVsbCxcbiAgICAgICAgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQgfCBudWxsLFxuICAgICAgICBvcGVyYXRpb25UeXBlOiBXcml0YWJsZUNsaXBib2FyZE9wZXJhdGlvblR5cGUsXG4gICAgICAgIG9yaWdpbkRhdGE/OiBQbGFpdEVsZW1lbnRbXVxuICAgICkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREcmF3RWxlbWVudHMgPSBnZXRTZWxlY3RlZERyYXdFbGVtZW50cyhib2FyZCwgb3JpZ2luRGF0YSk7XG4gICAgICAgIGxldCBib3VuZExpbmVFbGVtZW50czogUGxhaXRMaW5lW10gPSBbXTtcbiAgICAgICAgaWYgKHRhcmdldERyYXdFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChvcGVyYXRpb25UeXBlID09PSBXcml0YWJsZUNsaXBib2FyZE9wZXJhdGlvblR5cGUuY3V0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2VvbWV0cnlFbGVtZW50cyA9IHRhcmdldERyYXdFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KHZhbHVlKSkgYXMgUGxhaXRHZW9tZXRyeVtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVFbGVtZW50cyA9IHRhcmdldERyYXdFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0xpbmUodmFsdWUpKSBhcyBQbGFpdExpbmVbXTtcbiAgICAgICAgICAgICAgICBib3VuZExpbmVFbGVtZW50cyA9IGdldEJvdW5kZWRMaW5lRWxlbWVudHMoYm9hcmQsIGdlb21ldHJ5RWxlbWVudHMpLmZpbHRlcihsaW5lID0+ICFsaW5lRWxlbWVudHMuaW5jbHVkZXMobGluZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IFsuLi50YXJnZXREcmF3RWxlbWVudHMsIC4uLmJvdW5kTGluZUVsZW1lbnRzXTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gYnVpbGRDbGlwYm9hcmREYXRhKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzLCByZWN0YW5nbGUgPyBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSA6IFswLCAwXSk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gZ2V0RWxlbWVudHNUZXh0KHNlbGVjdGVkRWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKCFjbGlwYm9hcmRDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgY2xpcGJvYXJkQ29udGV4dCA9IGNyZWF0ZUNsaXBib2FyZENvbnRleHQoV3JpdGFibGVDbGlwYm9hcmRUeXBlLmVsZW1lbnRzLCBlbGVtZW50cywgdGV4dCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNsaXBib2FyZENvbnRleHQgPSBhZGRDbGlwYm9hcmRDb250ZXh0KGNsaXBib2FyZENvbnRleHQsIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogV3JpdGFibGVDbGlwYm9hcmRUeXBlLmVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50c1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidWlsZEZyYWdtZW50KGNsaXBib2FyZENvbnRleHQsIHJlY3RhbmdsZSwgb3BlcmF0aW9uVHlwZSwgb3JpZ2luRGF0YSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmluc2VydEZyYWdtZW50ID0gKGNsaXBib2FyZERhdGE6IENsaXBib2FyZERhdGEgfCBudWxsLCB0YXJnZXRQb2ludDogUG9pbnQsIG9wZXJhdGlvblR5cGU/OiBXcml0YWJsZUNsaXBib2FyZE9wZXJhdGlvblR5cGUpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBpZiAoY2xpcGJvYXJkRGF0YT8uZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgYWNjZXB0SW1hZ2VBcnJheSA9IGFjY2VwdEltYWdlVHlwZXMubWFwKHR5cGUgPT4gJ2ltYWdlLycgKyB0eXBlKTtcbiAgICAgICAgICAgIGNvbnN0IGNhbkluc2VydGlvbkltYWdlID1cbiAgICAgICAgICAgICAgICAhZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKSAmJiAhKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmIGJvYXJkLmlzSW1hZ2VCaW5kaW5nQWxsb3dlZChzZWxlY3RlZEVsZW1lbnRzWzBdKSk7XG4gICAgICAgICAgICBpZiAoYWNjZXB0SW1hZ2VBcnJheS5pbmNsdWRlcyhjbGlwYm9hcmREYXRhLmZpbGVzWzBdLnR5cGUpICYmIGNhbkluc2VydGlvbkltYWdlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VGaWxlID0gY2xpcGJvYXJkRGF0YS5maWxlc1swXTtcbiAgICAgICAgICAgICAgICBidWlsZEltYWdlKGJvYXJkLCBpbWFnZUZpbGUsIERFRkFVTFRfSU1BR0VfV0lEVEgsIGltYWdlSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLmluc2VydEltYWdlKGJvYXJkLCBpbWFnZUl0ZW0sIHRhcmdldFBvaW50KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2xpcGJvYXJkRGF0YT8uZWxlbWVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZHJhd0VsZW1lbnRzID0gY2xpcGJvYXJkRGF0YS5lbGVtZW50cz8uZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNEcmF3RWxlbWVudCh2YWx1ZSkpIGFzIFBsYWl0RHJhd0VsZW1lbnRbXTtcbiAgICAgICAgICAgIGlmIChjbGlwYm9hcmREYXRhLmVsZW1lbnRzICYmIGNsaXBib2FyZERhdGEuZWxlbWVudHMubGVuZ3RoID4gMCAmJiBkcmF3RWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGluc2VydENsaXBib2FyZERhdGEoYm9hcmQsIGRyYXdFbGVtZW50cywgdGFyZ2V0UG9pbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsaXBib2FyZERhdGE/LnRleHQpIHtcbiAgICAgICAgICAgIGlmICghY2xpcGJvYXJkRGF0YS5lbGVtZW50cyB8fCBjbGlwYm9hcmREYXRhLmVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vICgq77+j77i277+jKVxuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydEFzQ2hpbGRyZW4gPSBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBzZWxlY3RlZEVsZW1lbnRzWzBdLmNoaWxkcmVuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydEFzRnJlZVRleHQgPSAhaW5zZXJ0QXNDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0QXNGcmVlVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5pbnNlcnRUZXh0KGJvYXJkLCB0YXJnZXRQb2ludCwgY2xpcGJvYXJkRGF0YS50ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluc2VydEZyYWdtZW50KGNsaXBib2FyZERhdGEsIHRhcmdldFBvaW50LCBvcGVyYXRpb25UeXBlKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJvdW5kZWRMaW5lRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBsYWl0U2hhcGVzOiBQbGFpdFNoYXBlRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3QgbGluZXMgPSBnZXRMaW5lcyhib2FyZCk7XG4gICAgcmV0dXJuIGxpbmVzLmZpbHRlcihsaW5lID0+XG4gICAgICAgIHBsYWl0U2hhcGVzLmZpbmQoc2hhcGUgPT4gUGxhaXRMaW5lLmlzQm91bmRFbGVtZW50T2ZTb3VyY2UobGluZSwgc2hhcGUpIHx8IFBsYWl0TGluZS5pc0JvdW5kRWxlbWVudE9mVGFyZ2V0KGxpbmUsIHNoYXBlKSlcbiAgICApO1xufTsiXX0=
|
|
@@ -120,4 +120,4 @@ export const withDraw = (board) => {
|
|
|
120
120
|
};
|
|
121
121
|
return withSwimlane(withTable(withDrawResize(withLineAutoCompleteReaction(withLineBoundReaction(withLineResize(withLineTextMove(withLineText(withGeometryResize(withDrawRotate(withLineCreateByDraw(withLineAutoComplete(withGeometryCreateByDrag(withGeometryCreateByDrawing(withDrawFragment(withDrawHotkey(board))))))))))))))));
|
|
122
122
|
};
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kcmF3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvcGx1Z2lucy93aXRoLWRyYXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4RCxlQUFlLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9C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cUJBQXFCLENBQ2pCLGNBQWMsQ0FDVixnQkFBZ0IsQ0FDWixZQUFZLENBQ1Isa0JBQWtCLENBQ2QsY0FBYyxDQUNWLG9CQUFvQixDQUNoQixvQkFBb0IsQ0FDaEIsd0JBQXdCLENBQ3BCLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ3ZFLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FDSixDQUNKLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQsIFNlbGVjdGlvbiwgZ2V0U2VsZWN0ZWRFbGVtZW50cyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEdlb21ldHJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vZ2VvbWV0cnkuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmVDb21wb25lbnQgfSBmcm9tICcuLi9saW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFpdERyYXdFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyB3aXRoRHJhd0hvdGtleSB9IGZyb20gJy4vd2l0aC1kcmF3LWhvdGtleSc7XG5pbXBvcnQgeyB3aXRoR2VvbWV0cnlDcmVhdGVCeURyYXdpbmcsIHdpdGhHZW9tZXRyeUNyZWF0ZUJ5RHJhZyB9IGZyb20gJy4vd2l0aC1nZW9tZXRyeS1jcmVhdGUnO1xuaW1wb3J0IHsgd2l0aERyYXdGcmFnbWVudCB9IGZyb20gJy4vd2l0aC1kcmF3LWZyYWdtZW50JztcbmltcG9ydCB7IHdpdGhMaW5lQ3JlYXRlQnlEcmF3IH0gZnJvbSAnLi93aXRoLWxpbmUtY3JlYXRlJztcbmltcG9ydCB7IHdpdGhHZW9tZXRyeVJlc2l6ZSB9IGZyb20gJy4vd2l0aC1nZW9tZXRyeS1yZXNpemUnO1xuaW1wb3J0IHsgd2l0aExpbmVSZXNpemUgfSBmcm9tICcuL3dpdGgtbGluZS1yZXNpemUnO1xuaW1wb3J0IHsgd2l0aExpbmVCb3VuZFJlYWN0aW9uIH0gZnJvbSAnLi93aXRoLWxpbmUtYm91bmQtcmVhY3Rpb24nO1xuaW1wb3J0IHsgd2l0aExpbmVUZXh0IH0gZnJvbSAnLi93aXRoLWxpbmUtdGV4dCc7XG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyB3aXRoTGluZUF1dG9Db21wbGV0ZVJlYWN0aW9uIH0gZnJvbSAnLi93aXRoLWxpbmUtYXV0by1jb21wbGV0ZS1yZWFjdGlvbic7XG5pbXBvcnQgeyB3aXRoTGluZUF1dG9Db21wbGV0ZSB9IGZyb20gJy4vd2l0aC1saW5lLWF1dG8tY29tcGxldGUnO1xuaW1wb3J0IHsgd2l0aExpbmVUZXh0TW92ZSB9IGZyb20gJy4vd2l0aC1saW5lLXRleHQtbW92ZSc7XG5pbXBvcnQgeyB3aXRoRHJhd1Jlc2l6ZSB9IGZyb20gJy4vd2l0aC1kcmF3LXJlc2l6ZSc7XG5pbXBvcnQgeyBpc0hpdERyYXdFbGVtZW50LCBpc0hpdEVsZW1lbnRJbnNpZGUsIGlzUmVjdGFuZ2xlSGl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi91dGlscy9oaXQnO1xuaW1wb3J0IHsgZ2V0TGluZVBvaW50cywgZ2V0TGluZVRleHRSZWN0YW5nbGUgfSBmcm9tICcuLi91dGlscy9saW5lL2xpbmUtYmFzaWMnO1xuaW1wb3J0IHsgd2l0aERyYXdSb3RhdGUgfSBmcm9tICcuL3dpdGgtZHJhdy1yb3RhdGUnO1xuaW1wb3J0IHsgd2l0aFRhYmxlIH0gZnJvbSAnLi93aXRoLXRhYmxlJztcbmltcG9ydCB7IHdpdGhTd2ltbGFuZSB9IGZyb20gJy4vd2l0aC1zd2ltbGFuZSc7XG5cbmV4cG9ydCBjb25zdCB3aXRoRHJhdyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHsgZHJhd0VsZW1lbnQsIGdldFJlY3RhbmdsZSwgaXNSZWN0YW5nbGVIaXQsIGlzSGl0LCBpc0luc2lkZVBvaW50LCBpc01vdmFibGUsIGlzQWxpZ24sIGdldFJlbGF0ZWRGcmFnbWVudCB9ID0gYm9hcmQ7XG5cbiAgICBib2FyZC5kcmF3RWxlbWVudCA9IChjb250ZXh0OiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNVTUwoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBHZW9tZXRyeUNvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBHZW9tZXRyeUNvbXBvbmVudDtcbiAgICAgICAgfSBlbHNlIGlmIChQbGFpdERyYXdFbGVtZW50LmlzTGluZShjb250ZXh0LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTGluZUNvbXBvbmVudDtcbiAgICAgICAgfSBlbHNlIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIEltYWdlQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkcmF3RWxlbWVudChjb250ZXh0KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2V0UmVjdGFuZ2xlID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0xpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IGdldExpbmVQb2ludHMoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgbGluZVRleHRSZWN0YW5nbGVzID0gZWxlbWVudC50ZXh0cy5tYXAoKHRleHQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0TGluZVRleHRSZWN0YW5nbGUoYm9hcmQsIGVsZW1lbnQsIGluZGV4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjdGFuZ2xlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBsaW5lUG9pbnRzUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHBvaW50cyk7XG4gICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEJvdW5kaW5nUmVjdGFuZ2xlKFtsaW5lUG9pbnRzUmVjdGFuZ2xlLCAuLi5saW5lVGV4dFJlY3RhbmdsZXNdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc1JlY3RhbmdsZUhpdCA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQsIHNlbGVjdGlvbjogU2VsZWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGlzUmVjdGFuZ2xlSGl0RHJhd0VsZW1lbnQoYm9hcmQsIGVsZW1lbnQsIHNlbGVjdGlvbik7XG4gICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzUmVjdGFuZ2xlSGl0KGVsZW1lbnQsIHNlbGVjdGlvbik7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzSGl0ID0gKGVsZW1lbnQsIHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGlzSGl0RHJhd0VsZW1lbnQoYm9hcmQsIGVsZW1lbnQsIHBvaW50KTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNIaXQoZWxlbWVudCwgcG9pbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc0luc2lkZVBvaW50ID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGlzSGl0RWxlbWVudEluc2lkZShib2FyZCwgZWxlbWVudCwgcG9pbnQpO1xuICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0luc2lkZVBvaW50KGVsZW1lbnQsIHBvaW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaXNNb3ZhYmxlID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0xpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSAoYm91bmRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhc2VsZWN0ZWRFbGVtZW50cy5maW5kKHZhbHVlID0+IHZhbHVlLmlkID09PSBib3VuZElkKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIWVsZW1lbnQuc291cmNlLmJvdW5kSWQgJiYgIWVsZW1lbnQudGFyZ2V0LmJvdW5kSWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbGVtZW50LnNvdXJjZS5ib3VuZElkICYmIGlzU2VsZWN0ZWQoZWxlbWVudC5zb3VyY2UuYm91bmRJZCkgJiYgc2VsZWN0ZWRFbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVsZW1lbnQudGFyZ2V0LmJvdW5kSWQgJiYgaXNTZWxlY3RlZChlbGVtZW50LnRhcmdldC5ib3VuZElkKSAmJiBzZWxlY3RlZEVsZW1lbnRzLmluY2x1ZGVzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTW92YWJsZShlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaXNBbGlnbiA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeShlbGVtZW50KSB8fCBQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0FsaWduKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nZXRSZWxhdGVkRnJhZ21lbnQgPSAoZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdLCBvcmlnaW5EYXRhPzogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IG9yaWdpbkRhdGE/Lmxlbmd0aCA/IG9yaWdpbkRhdGEgOiBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgY29uc3QgbGluZUVsZW1lbnRzID0gYm9hcmQuY2hpbGRyZW4uZmlsdGVyKGVsZW1lbnQgPT4gUGxhaXREcmF3RWxlbWVudC5pc0xpbmUoZWxlbWVudCkpO1xuICAgICAgICBjb25zdCBhY3RpdmVMaW5lcyA9IGxpbmVFbGVtZW50cy5maWx0ZXIobGluZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBzZWxlY3RlZEVsZW1lbnRzLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LmlkID09PSBsaW5lLnNvdXJjZS5ib3VuZElkKTtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHNlbGVjdGVkRWxlbWVudHMuZmluZChlbGVtZW50ID0+IGVsZW1lbnQuaWQgPT09IGxpbmUudGFyZ2V0LmJvdW5kSWQpO1xuICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkRWxlbWVudHMuaW5jbHVkZXMobGluZSk7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlICYmIHRhcmdldCAmJiAhaXNTZWxlY3RlZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBnZXRSZWxhdGVkRnJhZ21lbnQoWy4uLmVsZW1lbnRzLCAuLi5hY3RpdmVMaW5lc10sIG9yaWdpbkRhdGEpO1xuICAgIH07XG5cbiAgICByZXR1cm4gd2l0aFN3aW1sYW5lKFxuICAgICAgICB3aXRoVGFibGUoXG4gICAgICAgICAgICB3aXRoRHJhd1Jlc2l6ZShcbiAgICAgICAgICAgICAgICB3aXRoTGluZUF1dG9Db21wbGV0ZVJlYWN0aW9uKFxuICAgICAgICAgICAgICAgICAgICB3aXRoTGluZUJvdW5kUmVhY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoTGluZVJlc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoTGluZVRleHRNb3ZlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoTGluZVRleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoR2VvbWV0cnlSZXNpemUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aERyYXdSb3RhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhMaW5lQ3JlYXRlQnlEcmF3KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aExpbmVBdXRvQ29tcGxldGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEdlb21ldHJ5Q3JlYXRlQnlEcmFnKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoR2VvbWV0cnlDcmVhdGVCeURyYXdpbmcod2l0aERyYXdGcmFnbWVudCh3aXRoRHJhd0hvdGtleShib2FyZCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICk7XG59O1xuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kcmF3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvcGx1Z2lucy93aXRoLWRyYXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4RCxlQUFlLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9C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cUJBQXFCLENBQ2pCLGNBQWMsQ0FDVixnQkFBZ0IsQ0FDWixZQUFZLENBQ1Isa0JBQWtCLENBQ2QsY0FBYyxDQUNWLG9CQUFvQixDQUNoQixvQkFBb0IsQ0FDaEIsd0JBQXdCLENBQ3BCLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ3ZFLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FDSixDQUNKLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQsIFNlbGVjdGlvbiwgZ2V0U2VsZWN0ZWRFbGVtZW50cyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEdlb21ldHJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vZ2VvbWV0cnkuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmVDb21wb25lbnQgfSBmcm9tICcuLi9saW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFpdERyYXdFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyB3aXRoRHJhd0hvdGtleSB9IGZyb20gJy4vd2l0aC1kcmF3LWhvdGtleSc7XG5pbXBvcnQgeyB3aXRoR2VvbWV0cnlDcmVhdGVCeURyYXdpbmcsIHdpdGhHZW9tZXRyeUNyZWF0ZUJ5RHJhZyB9IGZyb20gJy4vd2l0aC1nZW9tZXRyeS1jcmVhdGUnO1xuaW1wb3J0IHsgd2l0aERyYXdGcmFnbWVudCB9IGZyb20gJy4vd2l0aC1kcmF3LWZyYWdtZW50JztcbmltcG9ydCB7IHdpdGhMaW5lQ3JlYXRlQnlEcmF3IH0gZnJvbSAnLi93aXRoLWxpbmUtY3JlYXRlJztcbmltcG9ydCB7IHdpdGhHZW9tZXRyeVJlc2l6ZSB9IGZyb20gJy4vd2l0aC1nZW9tZXRyeS1yZXNpemUnO1xuaW1wb3J0IHsgd2l0aExpbmVSZXNpemUgfSBmcm9tICcuL3dpdGgtbGluZS1yZXNpemUnO1xuaW1wb3J0IHsgd2l0aExpbmVCb3VuZFJlYWN0aW9uIH0gZnJvbSAnLi93aXRoLWxpbmUtYm91bmQtcmVhY3Rpb24nO1xuaW1wb3J0IHsgd2l0aExpbmVUZXh0IH0gZnJvbSAnLi93aXRoLWxpbmUtdGV4dCc7XG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyB3aXRoTGluZUF1dG9Db21wbGV0ZVJlYWN0aW9uIH0gZnJvbSAnLi93aXRoLWxpbmUtYXV0by1jb21wbGV0ZS1yZWFjdGlvbic7XG5pbXBvcnQgeyB3aXRoTGluZUF1dG9Db21wbGV0ZSB9IGZyb20gJy4vd2l0aC1saW5lLWF1dG8tY29tcGxldGUnO1xuaW1wb3J0IHsgd2l0aExpbmVUZXh0TW92ZSB9IGZyb20gJy4vd2l0aC1saW5lLXRleHQtbW92ZSc7XG5pbXBvcnQgeyB3aXRoRHJhd1Jlc2l6ZSB9IGZyb20gJy4vd2l0aC1kcmF3LXJlc2l6ZSc7XG5pbXBvcnQgeyBpc0hpdERyYXdFbGVtZW50LCBpc0hpdEVsZW1lbnRJbnNpZGUsIGlzUmVjdGFuZ2xlSGl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi91dGlscy9oaXQnO1xuaW1wb3J0IHsgZ2V0TGluZVBvaW50cywgZ2V0TGluZVRleHRSZWN0YW5nbGUgfSBmcm9tICcuLi91dGlscy9saW5lL2xpbmUtYmFzaWMnO1xuaW1wb3J0IHsgd2l0aERyYXdSb3RhdGUgfSBmcm9tICcuL3dpdGgtZHJhdy1yb3RhdGUnO1xuaW1wb3J0IHsgd2l0aFRhYmxlIH0gZnJvbSAnLi93aXRoLXRhYmxlJztcbmltcG9ydCB7IHdpdGhTd2ltbGFuZSB9IGZyb20gJy4vd2l0aC1zd2ltbGFuZSc7XG5pbXBvcnQgeyB3aXRoVGFibGVSZXNpemUgfSBmcm9tICcuL3dpdGgtdGFibGUtcmVzaXplJztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IHdpdGhEcmF3ID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBkcmF3RWxlbWVudCwgZ2V0UmVjdGFuZ2xlLCBpc1JlY3RhbmdsZUhpdCwgaXNIaXQsIGlzSW5zaWRlUG9pbnQsIGlzTW92YWJsZSwgaXNBbGlnbiwgZ2V0UmVsYXRlZEZyYWdtZW50IH0gPSBib2FyZDtcblxuICAgIGJvYXJkLmRyYXdFbGVtZW50ID0gKGNvbnRleHQ6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeShjb250ZXh0LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1VNTChjb250ZXh0LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEdlb21ldHJ5Q29tcG9uZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIEdlb21ldHJ5Q29tcG9uZW50O1xuICAgICAgICB9IGVsc2UgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNMaW5lKGNvbnRleHQuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBMaW5lQ29tcG9uZW50O1xuICAgICAgICB9IGVsc2UgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZShjb250ZXh0LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gSW1hZ2VDb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRyYXdFbGVtZW50KGNvbnRleHQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nZXRSZWN0YW5nbGUgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzTGluZShlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0TGluZVBvaW50cyhib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBsaW5lVGV4dFJlY3RhbmdsZXMgPSBlbGVtZW50LnRleHRzLm1hcCgodGV4dCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRMaW5lVGV4dFJlY3RhbmdsZShib2FyZCwgZWxlbWVudCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZWN0YW5nbGU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVQb2ludHNSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocG9pbnRzKTtcbiAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Qm91bmRpbmdSZWN0YW5nbGUoW2xpbmVQb2ludHNSZWN0YW5nbGUsIC4uLmxpbmVUZXh0UmVjdGFuZ2xlc10pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzUmVjdGFuZ2xlSGl0ID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgc2VsZWN0aW9uOiBTZWxlY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXNSZWN0YW5nbGVIaXREcmF3RWxlbWVudChib2FyZCwgZWxlbWVudCwgc2VsZWN0aW9uKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNSZWN0YW5nbGVIaXQoZWxlbWVudCwgc2VsZWN0aW9uKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaXNIaXQgPSAoZWxlbWVudCwgcG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXNIaXREcmF3RWxlbWVudChib2FyZCwgZWxlbWVudCwgcG9pbnQpO1xuICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0hpdChlbGVtZW50LCBwb2ludCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzSW5zaWRlUG9pbnQgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50LCBwb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXNIaXRFbGVtZW50SW5zaWRlKGJvYXJkLCBlbGVtZW50LCBwb2ludCk7XG4gICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzSW5zaWRlUG9pbnQoZWxlbWVudCwgcG9pbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc01vdmFibGUgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzTGluZShlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IChib3VuZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFzZWxlY3RlZEVsZW1lbnRzLmZpbmQodmFsdWUgPT4gdmFsdWUuaWQgPT09IGJvdW5kSWQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghZWxlbWVudC5zb3VyY2UuYm91bmRJZCAmJiAhZWxlbWVudC50YXJnZXQuYm91bmRJZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuc291cmNlLmJvdW5kSWQgJiYgaXNTZWxlY3RlZChlbGVtZW50LnNvdXJjZS5ib3VuZElkKSAmJiBzZWxlY3RlZEVsZW1lbnRzLmluY2x1ZGVzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZWxlbWVudC50YXJnZXQuYm91bmRJZCAmJiBpc1NlbGVjdGVkKGVsZW1lbnQudGFyZ2V0LmJvdW5kSWQpICYmIHNlbGVjdGVkRWxlbWVudHMuaW5jbHVkZXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNNb3ZhYmxlKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc0FsaWduID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsZW1lbnQpIHx8IFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQWxpZ24oZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdldFJlbGF0ZWRGcmFnbWVudCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10sIG9yaWdpbkRhdGE/OiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gb3JpZ2luRGF0YT8ubGVuZ3RoID8gb3JpZ2luRGF0YSA6IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBjb25zdCBsaW5lRWxlbWVudHMgPSBib2FyZC5jaGlsZHJlbi5maWx0ZXIoZWxlbWVudCA9PiBQbGFpdERyYXdFbGVtZW50LmlzTGluZShlbGVtZW50KSk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUxpbmVzID0gbGluZUVsZW1lbnRzLmZpbHRlcihsaW5lID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IHNlbGVjdGVkRWxlbWVudHMuZmluZChlbGVtZW50ID0+IGVsZW1lbnQuaWQgPT09IGxpbmUuc291cmNlLmJvdW5kSWQpO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gc2VsZWN0ZWRFbGVtZW50cy5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5pZCA9PT0gbGluZS50YXJnZXQuYm91bmRJZCk7XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWRFbGVtZW50cy5pbmNsdWRlcyhsaW5lKTtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2UgJiYgdGFyZ2V0ICYmICFpc1NlbGVjdGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGdldFJlbGF0ZWRGcmFnbWVudChbLi4uZWxlbWVudHMsIC4uLmFjdGl2ZUxpbmVzXSwgb3JpZ2luRGF0YSk7XG4gICAgfTtcblxuICAgIHJldHVybiB3aXRoU3dpbWxhbmUoXG4gICAgICAgIHdpdGhUYWJsZShcbiAgICAgICAgICAgIHdpdGhEcmF3UmVzaXplKFxuICAgICAgICAgICAgICAgIHdpdGhMaW5lQXV0b0NvbXBsZXRlUmVhY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgIHdpdGhMaW5lQm91bmRSZWFjdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhMaW5lUmVzaXplKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhMaW5lVGV4dE1vdmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhMaW5lVGV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhHZW9tZXRyeVJlc2l6ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoRHJhd1JvdGF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aExpbmVDcmVhdGVCeURyYXcoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoTGluZUF1dG9Db21wbGV0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoR2VvbWV0cnlDcmVhdGVCeURyYWcoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhHZW9tZXRyeUNyZWF0ZUJ5RHJhd2luZyh3aXRoRHJhd0ZyYWdtZW50KHdpdGhEcmF3SG90a2V5KGJvYXJkKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgKTtcbn07XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PlaitBoard, RectangleClient, createG, preventTouchMove, toHostPoint, toViewBoxPoint } from '@plait/core';
|
|
2
|
-
import { BasicShapes } from '../interfaces';
|
|
2
|
+
import { BasicShapes, PlaitDrawElement } from '../interfaces';
|
|
3
3
|
import { GeometryShapeGenerator } from '../generators/geometry-shape.generator';
|
|
4
4
|
import { createDefaultGeometry, createTextElement, getDefaultGeometryPoints, getTextShapeProperty, getMemorizedLatestByPointer, getTextRectangle, insertElement } from '../utils';
|
|
5
5
|
import { DefaultTextProperty, getGeometryPointers } from '../constants';
|
|
@@ -8,6 +8,7 @@ import { TextManage } from '@plait/text';
|
|
|
8
8
|
import { isKeyHotkey } from 'is-hotkey';
|
|
9
9
|
import { NgZone } from '@angular/core';
|
|
10
10
|
import { getSnapResizingRef } from '../utils/snap-resizing';
|
|
11
|
+
import { TableGenerator } from '../generators/table.generator';
|
|
11
12
|
const isGeometryDndMode = (board) => {
|
|
12
13
|
const geometryPointers = getGeometryPointers();
|
|
13
14
|
const isGeometryPointer = PlaitBoard.isInPointer(board, geometryPointers);
|
|
@@ -20,6 +21,14 @@ const isGeometryDrawingMode = (board) => {
|
|
|
20
21
|
const drawingMode = isGeometryPointer && isDrawingMode(board);
|
|
21
22
|
return drawingMode;
|
|
22
23
|
};
|
|
24
|
+
const getGeometryGeneratorByShape = (board, shape) => {
|
|
25
|
+
if (PlaitDrawElement.isUMLClassOrInterface({ shape: shape })) {
|
|
26
|
+
return new TableGenerator(board);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return new GeometryShapeGenerator(board);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
23
32
|
export const withGeometryCreateByDrag = (board) => {
|
|
24
33
|
const { pointerMove, globalPointerUp, pointerUp } = board;
|
|
25
34
|
let geometryShapeG = null;
|
|
@@ -28,12 +37,12 @@ export const withGeometryCreateByDrag = (board) => {
|
|
|
28
37
|
board.pointerMove = (event) => {
|
|
29
38
|
geometryShapeG?.remove();
|
|
30
39
|
geometryShapeG = createG();
|
|
31
|
-
const geometryGenerator = new GeometryShapeGenerator(board);
|
|
32
40
|
const geometryPointers = getGeometryPointers();
|
|
33
41
|
const isGeometryPointer = PlaitBoard.isInPointer(board, geometryPointers);
|
|
34
42
|
const dragMode = isGeometryPointer && isDndMode(board);
|
|
35
43
|
const movingPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
36
44
|
const pointer = PlaitBoard.getPointer(board);
|
|
45
|
+
const geometryGenerator = getGeometryGeneratorByShape(board, pointer);
|
|
37
46
|
if (dragMode) {
|
|
38
47
|
const memorizedLatest = getMemorizedLatestByPointer(pointer);
|
|
39
48
|
if (pointer === BasicShapes.text) {
|
|
@@ -128,9 +137,9 @@ export const withGeometryCreateByDrawing = (board) => {
|
|
|
128
137
|
board.pointerMove = (event) => {
|
|
129
138
|
geometryShapeG?.remove();
|
|
130
139
|
geometryShapeG = createG();
|
|
131
|
-
const geometryGenerator = new GeometryShapeGenerator(board);
|
|
132
140
|
const movingPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
133
141
|
const pointer = PlaitBoard.getPointer(board);
|
|
142
|
+
const geometryGenerator = getGeometryGeneratorByShape(board, pointer);
|
|
134
143
|
snapG?.remove();
|
|
135
144
|
if (start && isGeometryDrawingMode(board)) {
|
|
136
145
|
let points = normalizeShapePoints([start, movingPoint], isShift);
|
|
@@ -179,4 +188,4 @@ export const withGeometryCreateByDrawing = (board) => {
|
|
|
179
188
|
};
|
|
180
189
|
return board;
|
|
181
190
|
};
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZW9tZXRyeS1jcmVhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9wbHVnaW5zL3dpdGgtZ2VvbWV0cnktY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVMsZUFBZSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxXQUFXLEVBQXNELE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQixhQUFhLEVBQ2hCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekYsT0FBTyxFQUNILG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsYUFBYSxFQUNiLHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFDL0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFPNUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUM1QyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixFQUFFLENBQUM7SUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFD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WUFDdEYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQW9CLENBQUM7Z0JBQ2hFLElBQUksT0FBTyxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDL0IsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUM5RCxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQXlCLENBQUMsQ0FBQztnQkFDdkYsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLGFBQWEsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6QixjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDYixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDeEIsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QyxPQUFPO1FBQ1gsQ0FBQztRQUNELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFDRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBjcmVhdGVHLCBwcmV2ZW50VG91Y2hNb3ZlLCB0b0hvc3RQb2ludCwgdG9WaWV3Qm94UG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBCYXNpY1NoYXBlcywgR2VvbWV0cnlTaGFwZXMsIFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0R2VvbWV0cnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2dlb21ldHJ5LXNoYXBlLmdlbmVyYXRvcic7XG5pbXBvcnQge1xuICAgIGNyZWF0ZURlZmF1bHRHZW9tZXRyeSxcbiAgICBjcmVhdGVUZXh0RWxlbWVudCxcbiAgICBnZXREZWZhdWx0R2VvbWV0cnlQb2ludHMsXG4gICAgZ2V0VGV4dFNoYXBlUHJvcGVydHksXG4gICAgZ2V0TWVtb3JpemVkTGF0ZXN0QnlQb2ludGVyLFxuICAgIGdldFRleHRSZWN0YW5nbGUsXG4gICAgaW5zZXJ0RWxlbWVudFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBEZWZhdWx0VGV4dFByb3BlcnR5LCBEcmF3UG9pbnRlclR5cGUsIGdldEdlb21ldHJ5UG9pbnRlcnMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBub3JtYWxpemVTaGFwZVBvaW50cyxcbiAgICBpc0RuZE1vZGUsXG4gICAgaXNEcmF3aW5nTW9kZSxcbiAgICBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCxcbiAgICBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50XG59IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgVGV4dE1hbmFnZSB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IGlzS2V5SG90a2V5IH0gZnJvbSAnaXMtaG90a2V5JztcbmltcG9ydCB7IE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0U25hcFJlc2l6aW5nUmVmIH0gZnJvbSAnLi4vdXRpbHMvc25hcC1yZXNpemluZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFrZUNyZWF0ZVRleHRSZWYge1xuICAgIGc6IFNWR0dFbGVtZW50O1xuICAgIHRleHRNYW5hZ2U6IFRleHRNYW5hZ2U7XG59XG5cbmNvbnN0IGlzR2VvbWV0cnlEbmRNb2RlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgZ2VvbWV0cnlQb2ludGVycyA9IGdldEdlb21ldHJ5UG9pbnRlcnMoKTtcbiAgICBjb25zdCBpc0dlb21ldHJ5UG9pbnRlciA9IFBsYWl0Qm9hcmQuaXNJblBvaW50ZXIoYm9hcmQsIGdlb21ldHJ5UG9pbnRlcnMpO1xuICAgIGNvbnN0IGRuZE1vZGUgPSBpc0dlb21ldHJ5UG9pbnRlciAmJiBpc0RuZE1vZGUoYm9hcmQpO1xuICAgIHJldHVybiBkbmRNb2RlO1xufTtcblxuY29uc3QgaXNHZW9tZXRyeURyYXdpbmdNb2RlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgZ2VvbWV0cnlQb2ludGVycyA9IGdldEdlb21ldHJ5UG9pbnRlcnMoKTtcbiAgICBjb25zdCBpc0dlb21ldHJ5UG9pbnRlciA9IFBsYWl0Qm9hcmQuaXNJblBvaW50ZXIoYm9hcmQsIGdlb21ldHJ5UG9pbnRlcnMpO1xuICAgIGNvbnN0IGRyYXdpbmdNb2RlID0gaXNHZW9tZXRyeVBvaW50ZXIgJiYgaXNEcmF3aW5nTW9kZShib2FyZCk7XG4gICAgcmV0dXJuIGRyYXdpbmdNb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhHZW9tZXRyeUNyZWF0ZUJ5RHJhZyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHsgcG9pbnRlck1vdmUsIGdsb2JhbFBvaW50ZXJVcCwgcG9pbnRlclVwIH0gPSBib2FyZDtcblxuICAgIGxldCBnZW9tZXRyeVNoYXBlRzogU1ZHR0VsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGxldCB0ZW1wb3JhcnlFbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBsZXQgZmFrZUNyZWF0ZVRleHRSZWY6IEZha2VDcmVhdGVUZXh0UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgICBib2FyZC5wb2ludGVyTW92ZSA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdlb21ldHJ5U2hhcGVHPy5yZW1vdmUoKTtcbiAgICAgICAgZ2VvbWV0cnlTaGFwZUcgPSBjcmVhdGVHKCk7XG5cbiAgICAgICAgY29uc3QgZ2VvbWV0cnlHZW5lcmF0b3IgPSBuZXcgR2VvbWV0cnlTaGFwZUdlbmVyYXRvcihib2FyZCk7XG4gICAgICAgIGNvbnN0IGdlb21ldHJ5UG9pbnRlcnMgPSBnZXRHZW9tZXRyeVBvaW50ZXJzKCk7XG4gICAgICAgIGNvbnN0IGlzR2VvbWV0cnlQb2ludGVyID0gUGxhaXRCb2FyZC5pc0luUG9pbnRlcihib2FyZCwgZ2VvbWV0cnlQb2ludGVycyk7XG4gICAgICAgIGNvbnN0IGRyYWdNb2RlID0gaXNHZW9tZXRyeVBvaW50ZXIgJiYgaXNEbmRNb2RlKGJvYXJkKTtcbiAgICAgICAgY29uc3QgbW92aW5nUG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgY29uc3QgcG9pbnRlciA9IFBsYWl0Qm9hcmQuZ2V0UG9pbnRlcihib2FyZCkgYXMgRHJhd1BvaW50ZXJUeXBlO1xuXG4gICAgICAgIGlmIChkcmFnTW9kZSkge1xuICAgICAgICAgICAgY29uc3QgbWVtb3JpemVkTGF0ZXN0ID0gZ2V0TWVtb3JpemVkTGF0ZXN0QnlQb2ludGVyKHBvaW50ZXIpO1xuICAgICAgICAgICAgaWYgKHBvaW50ZXIgPT09IEJhc2ljU2hhcGVzLnRleHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGdldFRleHRTaGFwZVByb3BlcnR5KGJvYXJkLCBEZWZhdWx0VGV4dFByb3BlcnR5LnRleHQsIG1lbW9yaXplZExhdGVzdC50ZXh0UHJvcGVydGllc1snZm9udC1zaXplJ10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMoXG4gICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeUNlbnRlclBvaW50KG1vdmluZ1BvaW50LCBwcm9wZXJ0eS53aWR0aCwgcHJvcGVydHkuaGVpZ2h0KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGVtcG9yYXJ5RWxlbWVudCA9IGNyZWF0ZVRleHRFbGVtZW50KGJvYXJkLCBwb2ludHMpO1xuICAgICAgICAgICAgICAgIGlmICghZmFrZUNyZWF0ZVRleHRSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dE1hbmFnZSA9IG5ldyBUZXh0TWFuYWdlKGJvYXJkLCBQbGFpdEJvYXJkLmdldENvbXBvbmVudChib2FyZCkudmlld0NvbnRhaW5lclJlZiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldFRleHRSZWN0YW5nbGUodGVtcG9yYXJ5RWxlbWVudCEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRDb21wb25lbnQoYm9hcmQpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmlld0NvbnRhaW5lclJlZi5pbmplY3Rvci5nZXQoTmdab25lKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZS5kcmF3KHRlbXBvcmFyeUVsZW1lbnQhLnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZzogY3JlYXRlRygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkuYXBwZW5kKGZha2VDcmVhdGVUZXh0UmVmLmcpO1xuICAgICAgICAgICAgICAgICAgICBmYWtlQ3JlYXRlVGV4dFJlZi5nLmFwcGVuZCh0ZXh0TWFuYWdlLmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmLnRleHRNYW5hZ2UudXBkYXRlUmVjdGFuZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmLmcuYXBwZW5kKGZha2VDcmVhdGVUZXh0UmVmLnRleHRNYW5hZ2UuZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludHMgPSBnZXREZWZhdWx0R2VvbWV0cnlQb2ludHMocG9pbnRlciwgbW92aW5nUG9pbnQpO1xuICAgICAgICAgICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0R2VvbWV0cnkoYm9hcmQsIHBvaW50cywgcG9pbnRlciBhcyBHZW9tZXRyeVNoYXBlcyk7XG4gICAgICAgICAgICAgICAgZ2VvbWV0cnlHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGVtcG9yYXJ5RWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBnZW9tZXRyeVNoYXBlRyk7XG4gICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKGdlb21ldHJ5U2hhcGVHKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBvaW50ZXJNb3ZlKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGlzR2VvbWV0cnlEbmRNb2RlKGJvYXJkKSAmJiB0ZW1wb3JhcnlFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlclVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2xvYmFsUG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGlzR2VvbWV0cnlEbmRNb2RlKGJvYXJkKSAmJiB0ZW1wb3JhcnlFbGVtZW50KSB7XG4gICAgICAgICAgICBpbnNlcnRFbGVtZW50KGJvYXJkLCB0ZW1wb3JhcnlFbGVtZW50KTtcbiAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmPy50ZXh0TWFuYWdlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmPy5nLnJlbW92ZSgpO1xuICAgICAgICAgICAgZmFrZUNyZWF0ZVRleHRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBudWxsO1xuICAgICAgICBnZW9tZXRyeVNoYXBlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGdlb21ldHJ5U2hhcGVHID0gbnVsbDtcbiAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgZ2xvYmFsUG9pbnRlclVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhHZW9tZXRyeUNyZWF0ZUJ5RHJhd2luZyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHsgcG9pbnRlckRvd24sIHBvaW50ZXJNb3ZlLCBwb2ludGVyVXAsIGtleURvd24sIGtleVVwIH0gPSBib2FyZDtcbiAgICBsZXQgc3RhcnQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBsZXQgZ2VvbWV0cnlTaGFwZUc6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBsZXQgdGVtcG9yYXJ5RWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSB8IG51bGwgPSBudWxsO1xuXG4gICAgbGV0IGlzU2hpZnQgPSBmYWxzZTtcblxuICAgIGxldCBzbmFwRzogU1ZHR0VsZW1lbnQgfCBudWxsO1xuXG4gICAgYm9hcmQua2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpc1NoaWZ0ID0gaXNLZXlIb3RrZXkoJ3NoaWZ0JywgZXZlbnQpO1xuICAgICAgICBrZXlEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQua2V5VXAgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaXNTaGlmdCA9IGZhbHNlO1xuICAgICAgICBrZXlVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmIGlzR2VvbWV0cnlEcmF3aW5nTW9kZShib2FyZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICBzdGFydCA9IHBvaW50O1xuICAgICAgICAgICAgY29uc3QgcG9pbnRlciA9IFBsYWl0Qm9hcmQuZ2V0UG9pbnRlcihib2FyZCkgYXMgRHJhd1BvaW50ZXJUeXBlO1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIHRydWUpO1xuICAgICAgICAgICAgaWYgKHBvaW50ZXIgPT09IEJhc2ljU2hhcGVzLnRleHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1vcml6ZWRMYXRlc3QgPSBnZXRNZW1vcml6ZWRMYXRlc3RCeVBvaW50ZXIocG9pbnRlcik7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSBnZXRUZXh0U2hhcGVQcm9wZXJ0eShib2FyZCwgRGVmYXVsdFRleHRQcm9wZXJ0eS50ZXh0LCBtZW1vcml6ZWRMYXRlc3QudGV4dFByb3BlcnRpZXNbJ2ZvbnQtc2l6ZSddKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludHMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UG9pbnRzKFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeUNlbnRlclBvaW50KHBvaW50LCBwcm9wZXJ0eS53aWR0aCwgcHJvcGVydHkuaGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBjcmVhdGVUZXh0RWxlbWVudChib2FyZCwgcG9pbnRzKTtcbiAgICAgICAgICAgICAgICBpbnNlcnRFbGVtZW50KGJvYXJkLCB0ZXh0RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBnZW9tZXRyeVNoYXBlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGdlb21ldHJ5U2hhcGVHID0gY3JlYXRlRygpO1xuICAgICAgICBjb25zdCBnZW9tZXRyeUdlbmVyYXRvciA9IG5ldyBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yKGJvYXJkKTtcbiAgICAgICAgY29uc3QgbW92aW5nUG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgY29uc3QgcG9pbnRlciA9IFBsYWl0Qm9hcmQuZ2V0UG9pbnRlcihib2FyZCkgYXMgRHJhd1BvaW50ZXJUeXBlO1xuICAgICAgICBzbmFwRz8ucmVtb3ZlKCk7XG4gICAgICAgIGlmIChzdGFydCAmJiBpc0dlb21ldHJ5RHJhd2luZ01vZGUoYm9hcmQpKSB7XG4gICAgICAgICAgICBsZXQgcG9pbnRzOiBbUG9pbnQsIFBvaW50XSA9IG5vcm1hbGl6ZVNoYXBlUG9pbnRzKFtzdGFydCwgbW92aW5nUG9pbnRdLCBpc1NoaWZ0KTtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhwb2ludHMpO1xuICAgICAgICAgICAgY29uc3QgW3gsIHldID0gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChzdGFydCwgbW92aW5nUG9pbnQpO1xuICAgICAgICAgICAgY29uc3QgcmVzaXplU25hcFJlZiA9IGdldFNuYXBSZXNpemluZ1JlZihib2FyZCwgW10sIHtcbiAgICAgICAgICAgICAgICByZXNpemVQb2ludHM6IHBvaW50cyxcbiAgICAgICAgICAgICAgICBhY3RpdmVSZWN0YW5nbGUsXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uRmFjdG9yczogW2dldERpcmVjdGlvbkZhY3RvckJ5RGlyZWN0aW9uQ29tcG9uZW50KHgpLCBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCh5KV0sXG4gICAgICAgICAgICAgICAgaXNBc3BlY3RSYXRpbzogaXNTaGlmdCxcbiAgICAgICAgICAgICAgICBpc0Zyb21Db3JuZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNDcmVhdGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc25hcEcgPSByZXNpemVTbmFwUmVmLnNuYXBHO1xuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKHNuYXBHKTtcbiAgICAgICAgICAgIHBvaW50cyA9IG5vcm1hbGl6ZVNoYXBlUG9pbnRzKHJlc2l6ZVNuYXBSZWYuYWN0aXZlUG9pbnRzIGFzIFtQb2ludCwgUG9pbnRdLCBpc1NoaWZ0KTtcbiAgICAgICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0R2VvbWV0cnkoYm9hcmQsIHBvaW50cywgcG9pbnRlciBhcyBHZW9tZXRyeVNoYXBlcyk7XG4gICAgICAgICAgICBnZW9tZXRyeUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0ZW1wb3JhcnlFbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIGdlb21ldHJ5U2hhcGVHKTtcbiAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QoYm9hcmQpLmFwcGVuZChnZW9tZXRyeVNoYXBlRyk7XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5wb2ludGVyVXAgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoaXNHZW9tZXRyeURyYXdpbmdNb2RlKGJvYXJkKSAmJiBzdGFydCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtzdGFydCEsIHRhcmdldFBvaW50XSk7XG4gICAgICAgICAgICBpZiAoTWF0aC5oeXBvdCh3aWR0aCwgaGVpZ2h0KSA8IDgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludGVyID0gUGxhaXRCb2FyZC5nZXRQb2ludGVyKGJvYXJkKSBhcyBEcmF3UG9pbnRlclR5cGU7XG4gICAgICAgICAgICAgICAgaWYgKHBvaW50ZXIgIT09IEJhc2ljU2hhcGVzLnRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0RGVmYXVsdEdlb21ldHJ5UG9pbnRzKHBvaW50ZXIsIHRhcmdldFBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5RWxlbWVudCA9IGNyZWF0ZURlZmF1bHRHZW9tZXRyeShib2FyZCwgcG9pbnRzLCBwb2ludGVyIGFzIEdlb21ldHJ5U2hhcGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGVtcG9yYXJ5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGluc2VydEVsZW1lbnQoYm9hcmQsIHRlbXBvcmFyeUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc25hcEc/LnJlbW92ZSgpO1xuICAgICAgICAgICAgZ2VvbWV0cnlTaGFwZUc/LnJlbW92ZSgpO1xuICAgICAgICAgICAgZ2VvbWV0cnlTaGFwZUcgPSBudWxsO1xuICAgICAgICAgICAgc3RhcnQgPSBudWxsO1xuICAgICAgICAgICAgdGVtcG9yYXJ5RWxlbWVudCA9IG51bGw7XG4gICAgICAgICAgICBwcmV2ZW50VG91Y2hNb3ZlKGJvYXJkLCBldmVudCwgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZW9tZXRyeS1jcmVhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9wbHVnaW5zL3dpdGgtZ2VvbWV0cnktY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVMsZUFBZSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxXQUFXLEVBQXVDLGdCQUFnQixFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNoQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pGLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsU0FBUyxFQUNULGFBQWEsRUFDYixzQ0FBc0MsRUFDdEMsNEJBQTRCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU8vRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsbUJB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S0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLE9BQU87UUFDWCxDQUFDO1FBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQsIGNyZWF0ZUcsIHByZXZlbnRUb3VjaE1vdmUsIHRvSG9zdFBvaW50LCB0b1ZpZXdCb3hQb2ludCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEJhc2ljU2hhcGVzLCBHZW9tZXRyeVNoYXBlcywgUGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRHZW9tZXRyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR2VvbWV0cnlTaGFwZUdlbmVyYXRvciB9IGZyb20gJy4uL2dlbmVyYXRvcnMvZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7XG4gICAgY3JlYXRlRGVmYXVsdEdlb21ldHJ5LFxuICAgIGNyZWF0ZVRleHRFbGVtZW50LFxuICAgIGdldERlZmF1bHRHZW9tZXRyeVBvaW50cyxcbiAgICBnZXRUZXh0U2hhcGVQcm9wZXJ0eSxcbiAgICBnZXRNZW1vcml6ZWRMYXRlc3RCeVBvaW50ZXIsXG4gICAgZ2V0VGV4dFJlY3RhbmdsZSxcbiAgICBpbnNlcnRFbGVtZW50XG59IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IERlZmF1bHRUZXh0UHJvcGVydHksIERyYXdQb2ludGVyVHlwZSwgZ2V0R2VvbWV0cnlQb2ludGVycyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIG5vcm1hbGl6ZVNoYXBlUG9pbnRzLFxuICAgIGlzRG5kTW9kZSxcbiAgICBpc0RyYXdpbmdNb2RlLFxuICAgIGdldERpcmVjdGlvbkZhY3RvckJ5RGlyZWN0aW9uQ29tcG9uZW50LFxuICAgIGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBUZXh0TWFuYWdlIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgaXNLZXlIb3RrZXkgfSBmcm9tICdpcy1ob3RrZXknO1xuaW1wb3J0IHsgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRTbmFwUmVzaXppbmdSZWYgfSBmcm9tICcuLi91dGlscy9zbmFwLXJlc2l6aW5nJztcbmltcG9ydCB7IFRhYmxlR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy90YWJsZS5nZW5lcmF0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZha2VDcmVhdGVUZXh0UmVmIHtcbiAgICBnOiBTVkdHRWxlbWVudDtcbiAgICB0ZXh0TWFuYWdlOiBUZXh0TWFuYWdlO1xufVxuXG5jb25zdCBpc0dlb21ldHJ5RG5kTW9kZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IGdlb21ldHJ5UG9pbnRlcnMgPSBnZXRHZW9tZXRyeVBvaW50ZXJzKCk7XG4gICAgY29uc3QgaXNHZW9tZXRyeVBvaW50ZXIgPSBQbGFpdEJvYXJkLmlzSW5Qb2ludGVyKGJvYXJkLCBnZW9tZXRyeVBvaW50ZXJzKTtcbiAgICBjb25zdCBkbmRNb2RlID0gaXNHZW9tZXRyeVBvaW50ZXIgJiYgaXNEbmRNb2RlKGJvYXJkKTtcbiAgICByZXR1cm4gZG5kTW9kZTtcbn07XG5cbmNvbnN0IGlzR2VvbWV0cnlEcmF3aW5nTW9kZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IGdlb21ldHJ5UG9pbnRlcnMgPSBnZXRHZW9tZXRyeVBvaW50ZXJzKCk7XG4gICAgY29uc3QgaXNHZW9tZXRyeVBvaW50ZXIgPSBQbGFpdEJvYXJkLmlzSW5Qb2ludGVyKGJvYXJkLCBnZW9tZXRyeVBvaW50ZXJzKTtcbiAgICBjb25zdCBkcmF3aW5nTW9kZSA9IGlzR2VvbWV0cnlQb2ludGVyICYmIGlzRHJhd2luZ01vZGUoYm9hcmQpO1xuICAgIHJldHVybiBkcmF3aW5nTW9kZTtcbn07XG5cbmNvbnN0IGdldEdlb21ldHJ5R2VuZXJhdG9yQnlTaGFwZSA9IChib2FyZDogUGxhaXRCb2FyZCwgc2hhcGU6IERyYXdQb2ludGVyVHlwZSkgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVU1MQ2xhc3NPckludGVyZmFjZSh7IHNoYXBlOiBzaGFwZSB9KSkge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlR2VuZXJhdG9yPFBsYWl0R2VvbWV0cnk+KGJvYXJkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IoYm9hcmQpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCB3aXRoR2VvbWV0cnlDcmVhdGVCeURyYWcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCB7IHBvaW50ZXJNb3ZlLCBnbG9iYWxQb2ludGVyVXAsIHBvaW50ZXJVcCB9ID0gYm9hcmQ7XG5cbiAgICBsZXQgZ2VvbWV0cnlTaGFwZUc6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBsZXQgdGVtcG9yYXJ5RWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSB8IG51bGwgPSBudWxsO1xuXG4gICAgbGV0IGZha2VDcmVhdGVUZXh0UmVmOiBGYWtlQ3JlYXRlVGV4dFJlZiB8IG51bGwgPSBudWxsO1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBnZW9tZXRyeVNoYXBlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGdlb21ldHJ5U2hhcGVHID0gY3JlYXRlRygpO1xuXG4gICAgICAgIGNvbnN0IGdlb21ldHJ5UG9pbnRlcnMgPSBnZXRHZW9tZXRyeVBvaW50ZXJzKCk7XG4gICAgICAgIGNvbnN0IGlzR2VvbWV0cnlQb2ludGVyID0gUGxhaXRCb2FyZC5pc0luUG9pbnRlcihib2FyZCwgZ2VvbWV0cnlQb2ludGVycyk7XG4gICAgICAgIGNvbnN0IGRyYWdNb2RlID0gaXNHZW9tZXRyeVBvaW50ZXIgJiYgaXNEbmRNb2RlKGJvYXJkKTtcbiAgICAgICAgY29uc3QgbW92aW5nUG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgY29uc3QgcG9pbnRlciA9IFBsYWl0Qm9hcmQuZ2V0UG9pbnRlcihib2FyZCkgYXMgRHJhd1BvaW50ZXJUeXBlO1xuICAgICAgICBjb25zdCBnZW9tZXRyeUdlbmVyYXRvciA9IGdldEdlb21ldHJ5R2VuZXJhdG9yQnlTaGFwZShib2FyZCwgcG9pbnRlcik7XG4gICAgICAgIGlmIChkcmFnTW9kZSkge1xuICAgICAgICAgICAgY29uc3QgbWVtb3JpemVkTGF0ZXN0ID0gZ2V0TWVtb3JpemVkTGF0ZXN0QnlQb2ludGVyKHBvaW50ZXIpO1xuICAgICAgICAgICAgaWYgKHBvaW50ZXIgPT09IEJhc2ljU2hhcGVzLnRleHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGdldFRleHRTaGFwZVByb3BlcnR5KGJvYXJkLCBEZWZhdWx0VGV4dFByb3BlcnR5LnRleHQsIG1lbW9yaXplZExhdGVzdC50ZXh0UHJvcGVydGllc1snZm9udC1zaXplJ10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMoXG4gICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeUNlbnRlclBvaW50KG1vdmluZ1BvaW50LCBwcm9wZXJ0eS53aWR0aCwgcHJvcGVydHkuaGVpZ2h0KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGVtcG9yYXJ5RWxlbWVudCA9IGNyZWF0ZVRleHRFbGVtZW50KGJvYXJkLCBwb2ludHMpO1xuICAgICAgICAgICAgICAgIGlmICghZmFrZUNyZWF0ZVRleHRSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dE1hbmFnZSA9IG5ldyBUZXh0TWFuYWdlKGJvYXJkLCBQbGFpdEJvYXJkLmdldENvbXBvbmVudChib2FyZCkudmlld0NvbnRhaW5lclJlZiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldFRleHRSZWN0YW5nbGUodGVtcG9yYXJ5RWxlbWVudCEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRDb21wb25lbnQoYm9hcmQpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmlld0NvbnRhaW5lclJlZi5pbmplY3Rvci5nZXQoTmdab25lKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZS5kcmF3KHRlbXBvcmFyeUVsZW1lbnQhLnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZzogY3JlYXRlRygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkuYXBwZW5kKGZha2VDcmVhdGVUZXh0UmVmLmcpO1xuICAgICAgICAgICAgICAgICAgICBmYWtlQ3JlYXRlVGV4dFJlZi5nLmFwcGVuZCh0ZXh0TWFuYWdlLmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmLnRleHRNYW5hZ2UudXBkYXRlUmVjdGFuZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmLmcuYXBwZW5kKGZha2VDcmVhdGVUZXh0UmVmLnRleHRNYW5hZ2UuZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludHMgPSBnZXREZWZhdWx0R2VvbWV0cnlQb2ludHMocG9pbnRlciwgbW92aW5nUG9pbnQpO1xuICAgICAgICAgICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0R2VvbWV0cnkoYm9hcmQsIHBvaW50cywgcG9pbnRlciBhcyBHZW9tZXRyeVNoYXBlcyk7XG4gICAgICAgICAgICAgICAgZ2VvbWV0cnlHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGVtcG9yYXJ5RWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBnZW9tZXRyeVNoYXBlRyk7XG4gICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKGdlb21ldHJ5U2hhcGVHKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBvaW50ZXJNb3ZlKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGlzR2VvbWV0cnlEbmRNb2RlKGJvYXJkKSAmJiB0ZW1wb3JhcnlFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlclVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2xvYmFsUG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGlzR2VvbWV0cnlEbmRNb2RlKGJvYXJkKSAmJiB0ZW1wb3JhcnlFbGVtZW50KSB7XG4gICAgICAgICAgICBpbnNlcnRFbGVtZW50KGJvYXJkLCB0ZW1wb3JhcnlFbGVtZW50KTtcbiAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmPy50ZXh0TWFuYWdlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIGZha2VDcmVhdGVUZXh0UmVmPy5nLnJlbW92ZSgpO1xuICAgICAgICAgICAgZmFrZUNyZWF0ZVRleHRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBudWxsO1xuICAgICAgICBnZW9tZXRyeVNoYXBlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGdlb21ldHJ5U2hhcGVHID0gbnVsbDtcbiAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgZ2xvYmFsUG9pbnRlclVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhHZW9tZXRyeUNyZWF0ZUJ5RHJhd2luZyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHsgcG9pbnRlckRvd24sIHBvaW50ZXJNb3ZlLCBwb2ludGVyVXAsIGtleURvd24sIGtleVVwIH0gPSBib2FyZDtcbiAgICBsZXQgc3RhcnQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBsZXQgZ2VvbWV0cnlTaGFwZUc6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBsZXQgdGVtcG9yYXJ5RWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSB8IG51bGwgPSBudWxsO1xuXG4gICAgbGV0IGlzU2hpZnQgPSBmYWxzZTtcblxuICAgIGxldCBzbmFwRzogU1ZHR0VsZW1lbnQgfCBudWxsO1xuXG4gICAgYm9hcmQua2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpc1NoaWZ0ID0gaXNLZXlIb3RrZXkoJ3NoaWZ0JywgZXZlbnQpO1xuICAgICAgICBrZXlEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQua2V5VXAgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaXNTaGlmdCA9IGZhbHNlO1xuICAgICAgICBrZXlVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmIGlzR2VvbWV0cnlEcmF3aW5nTW9kZShib2FyZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICBzdGFydCA9IHBvaW50O1xuICAgICAgICAgICAgY29uc3QgcG9pbnRlciA9IFBsYWl0Qm9hcmQuZ2V0UG9pbnRlcihib2FyZCkgYXMgRHJhd1BvaW50ZXJUeXBlO1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIHRydWUpO1xuICAgICAgICAgICAgaWYgKHBvaW50ZXIgPT09IEJhc2ljU2hhcGVzLnRleHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1vcml6ZWRMYXRlc3QgPSBnZXRNZW1vcml6ZWRMYXRlc3RCeVBvaW50ZXIocG9pbnRlcik7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSBnZXRUZXh0U2hhcGVQcm9wZXJ0eShib2FyZCwgRGVmYXVsdFRleHRQcm9wZXJ0eS50ZXh0LCBtZW1vcml6ZWRMYXRlc3QudGV4dFByb3BlcnRpZXNbJ2ZvbnQtc2l6ZSddKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludHMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UG9pbnRzKFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeUNlbnRlclBvaW50KHBvaW50LCBwcm9wZXJ0eS53aWR0aCwgcHJvcGVydHkuaGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBjcmVhdGVUZXh0RWxlbWVudChib2FyZCwgcG9pbnRzKTtcbiAgICAgICAgICAgICAgICBpbnNlcnRFbGVtZW50KGJvYXJkLCB0ZXh0RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBnZW9tZXRyeVNoYXBlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGdlb21ldHJ5U2hhcGVHID0gY3JlYXRlRygpO1xuICAgICAgICBjb25zdCBtb3ZpbmdQb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICBjb25zdCBwb2ludGVyID0gUGxhaXRCb2FyZC5nZXRQb2ludGVyKGJvYXJkKSBhcyBEcmF3UG9pbnRlclR5cGU7XG4gICAgICAgIGNvbnN0IGdlb21ldHJ5R2VuZXJhdG9yID0gZ2V0R2VvbWV0cnlHZW5lcmF0b3JCeVNoYXBlKGJvYXJkLCBwb2ludGVyKTtcblxuICAgICAgICBzbmFwRz8ucmVtb3ZlKCk7XG4gICAgICAgIGlmIChzdGFydCAmJiBpc0dlb21ldHJ5RHJhd2luZ01vZGUoYm9hcmQpKSB7XG4gICAgICAgICAgICBsZXQgcG9pbnRzOiBbUG9pbnQsIFBvaW50XSA9IG5vcm1hbGl6ZVNoYXBlUG9pbnRzKFtzdGFydCwgbW92aW5nUG9pbnRdLCBpc1NoaWZ0KTtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhwb2ludHMpO1xuICAgICAgICAgICAgY29uc3QgW3gsIHldID0gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChzdGFydCwgbW92aW5nUG9pbnQpO1xuICAgICAgICAgICAgY29uc3QgcmVzaXplU25hcFJlZiA9IGdldFNuYXBSZXNpemluZ1JlZihib2FyZCwgW10sIHtcbiAgICAgICAgICAgICAgICByZXNpemVQb2ludHM6IHBvaW50cyxcbiAgICAgICAgICAgICAgICBhY3RpdmVSZWN0YW5nbGUsXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uRmFjdG9yczogW2dldERpcmVjdGlvbkZhY3RvckJ5RGlyZWN0aW9uQ29tcG9uZW50KHgpLCBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCh5KV0sXG4gICAgICAgICAgICAgICAgaXNBc3BlY3RSYXRpbzogaXNTaGlmdCxcbiAgICAgICAgICAgICAgICBpc0Zyb21Db3JuZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNDcmVhdGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc25hcEcgPSByZXNpemVTbmFwUmVmLnNuYXBHO1xuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKHNuYXBHKTtcbiAgICAgICAgICAgIHBvaW50cyA9IG5vcm1hbGl6ZVNoYXBlUG9pbnRzKHJlc2l6ZVNuYXBSZWYuYWN0aXZlUG9pbnRzIGFzIFtQb2ludCwgUG9pbnRdLCBpc1NoaWZ0KTtcbiAgICAgICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0R2VvbWV0cnkoYm9hcmQsIHBvaW50cywgcG9pbnRlciBhcyBHZW9tZXRyeVNoYXBlcyk7XG4gICAgICAgICAgICBnZW9tZXRyeUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0ZW1wb3JhcnlFbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIGdlb21ldHJ5U2hhcGVHKTtcbiAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QoYm9hcmQpLmFwcGVuZChnZW9tZXRyeVNoYXBlRyk7XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5wb2ludGVyVXAgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoaXNHZW9tZXRyeURyYXdpbmdNb2RlKGJvYXJkKSAmJiBzdGFydCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtzdGFydCEsIHRhcmdldFBvaW50XSk7XG4gICAgICAgICAgICBpZiAoTWF0aC5oeXBvdCh3aWR0aCwgaGVpZ2h0KSA8IDgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludGVyID0gUGxhaXRCb2FyZC5nZXRQb2ludGVyKGJvYXJkKSBhcyBEcmF3UG9pbnRlclR5cGU7XG4gICAgICAgICAgICAgICAgaWYgKHBvaW50ZXIgIT09IEJhc2ljU2hhcGVzLnRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0RGVmYXVsdEdlb21ldHJ5UG9pbnRzKHBvaW50ZXIsIHRhcmdldFBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5RWxlbWVudCA9IGNyZWF0ZURlZmF1bHRHZW9tZXRyeShib2FyZCwgcG9pbnRzLCBwb2ludGVyIGFzIEdlb21ldHJ5U2hhcGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGVtcG9yYXJ5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGluc2VydEVsZW1lbnQoYm9hcmQsIHRlbXBvcmFyeUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc25hcEc/LnJlbW92ZSgpO1xuICAgICAgICAgICAgZ2VvbWV0cnlTaGFwZUc/LnJlbW92ZSgpO1xuICAgICAgICAgICAgZ2VvbWV0cnlTaGFwZUcgPSBudWxsO1xuICAgICAgICAgICAgc3RhcnQgPSBudWxsO1xuICAgICAgICAgICAgdGVtcG9yYXJ5RWxlbWVudCA9IG51bGw7XG4gICAgICAgICAgICBwcmV2ZW50VG91Y2hNb3ZlKGJvYXJkLCBldmVudCwgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { idCreator, PlaitBoard, RectangleClient, Transforms } from '@plait/core';
|
|
2
2
|
import { PlaitDrawElement, SwimlaneSymbols } from '../interfaces';
|
|
3
3
|
import { getCellWithPoints } from '../utils/table';
|
|
4
|
+
import { Alignment } from '@plait/text';
|
|
4
5
|
export const addSwimlaneRow = (board, swimlane, index) => {
|
|
5
6
|
if (PlaitDrawElement.isSwimlane(swimlane) && swimlane.shape === SwimlaneSymbols.swimlaneHorizontal) {
|
|
6
7
|
const newRows = [...swimlane.rows];
|
|
7
8
|
const newRowId = idCreator();
|
|
8
9
|
newRows.splice(index, 0, { id: newRowId });
|
|
9
|
-
|
|
10
|
-
newCells.shift();
|
|
11
|
-
newCells = [...swimlane.cells, ...newCells];
|
|
10
|
+
const newCells = [...swimlane.cells, ...createNewSwimlaneCells(swimlane, newRowId, 'column')];
|
|
12
11
|
const lastCellPoints = getCellWithPoints(board, swimlane, swimlane.cells[swimlane.cells.length - 1].id).points;
|
|
13
12
|
const lastRowHeight = RectangleClient.getRectangleByPoints(lastCellPoints).height;
|
|
14
13
|
const newPoints = [swimlane.points[0], [swimlane.points[1][0], swimlane.points[1][1] + lastRowHeight]];
|
|
@@ -20,9 +19,7 @@ export const addSwimlaneColumn = (board, swimlane, index) => {
|
|
|
20
19
|
const newColumns = [...swimlane.columns];
|
|
21
20
|
const newColumnId = idCreator();
|
|
22
21
|
newColumns.splice(index, 0, { id: newColumnId });
|
|
23
|
-
|
|
24
|
-
newCells.shift();
|
|
25
|
-
newCells = [...swimlane.cells, ...newCells];
|
|
22
|
+
const newCells = [...swimlane.cells, ...createNewSwimlaneCells(swimlane, newColumnId, 'row')];
|
|
26
23
|
const lastCellPoints = getCellWithPoints(board, swimlane, swimlane.cells[swimlane.cells.length - 1].id).points;
|
|
27
24
|
const lastColumnWidth = RectangleClient.getRectangleByPoints(lastCellPoints).width;
|
|
28
25
|
const newPoints = [swimlane.points[0], [swimlane.points[1][0] + lastColumnWidth, swimlane.points[1][1]]];
|
|
@@ -42,7 +39,8 @@ export const removeSwimlaneRow = (board, swimlane, index) => {
|
|
|
42
39
|
const newCells = swimlane.cells.filter(item => item.rowId !== removeRow.id);
|
|
43
40
|
let removeRowHeight = removeRow.height;
|
|
44
41
|
if (!removeRowHeight) {
|
|
45
|
-
const
|
|
42
|
+
const rowCell = swimlane.cells.find(item => item.rowId === removeRow.id);
|
|
43
|
+
const cellPoints = getCellWithPoints(board, swimlane, rowCell.id).points;
|
|
46
44
|
removeRowHeight = RectangleClient.getRectangleByPoints(cellPoints).height;
|
|
47
45
|
}
|
|
48
46
|
const newPoints = [swimlane.points[0], [swimlane.points[1][0], swimlane.points[1][1] - removeRowHeight]];
|
|
@@ -63,7 +61,8 @@ export const removeSwimlaneColumn = (board, swimlane, index) => {
|
|
|
63
61
|
const newCells = swimlane.cells.filter(item => item.columnId !== removeColumn.id);
|
|
64
62
|
let removeColumnWidth = removeColumn.width;
|
|
65
63
|
if (!removeColumnWidth) {
|
|
66
|
-
const
|
|
64
|
+
const columnCell = swimlane.cells.find(item => item.columnId === removeColumn.id);
|
|
65
|
+
const cellPoints = getCellWithPoints(board, swimlane, columnCell.id).points;
|
|
67
66
|
removeColumnWidth = RectangleClient.getRectangleByPoints(cellPoints).width;
|
|
68
67
|
}
|
|
69
68
|
const newPoints = [swimlane.points[0], [swimlane.points[1][0] - removeColumnWidth, swimlane.points[1][1]]];
|
|
@@ -71,19 +70,23 @@ export const removeSwimlaneColumn = (board, swimlane, index) => {
|
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
72
|
};
|
|
74
|
-
const
|
|
75
|
-
|
|
73
|
+
const createNewSwimlaneCells = (swimlane, newId, type) => {
|
|
74
|
+
const cells = swimlane[`${type}s`].map(item => ({
|
|
76
75
|
id: idCreator(),
|
|
77
|
-
rowId: row.id,
|
|
78
|
-
columnId:
|
|
79
|
-
}));
|
|
80
|
-
};
|
|
81
|
-
const createNewRowCells = (swimlane, newRowId) => {
|
|
82
|
-
return swimlane.columns.map(column => ({
|
|
83
|
-
id: idCreator(),
|
|
84
|
-
rowId: newRowId,
|
|
85
|
-
columnId: column.id
|
|
76
|
+
rowId: type === 'row' ? item.id : newId,
|
|
77
|
+
columnId: type === 'row' ? newId : item.id
|
|
86
78
|
}));
|
|
79
|
+
cells.shift();
|
|
80
|
+
cells[0] = {
|
|
81
|
+
...cells[0],
|
|
82
|
+
text: {
|
|
83
|
+
children: [{ text: 'Lane' }],
|
|
84
|
+
align: Alignment.center,
|
|
85
|
+
direction: type === 'row' ? undefined : 'vertical'
|
|
86
|
+
},
|
|
87
|
+
textHeight: 20
|
|
88
|
+
};
|
|
89
|
+
return cells;
|
|
87
90
|
};
|
|
88
91
|
const updateSwimlane = (board, swimlane, newColumns, newRows, newCells, newPoints) => {
|
|
89
92
|
const path = PlaitBoard.findPath(board, swimlane);
|
|
@@ -94,4 +97,4 @@ const updateSwimlane = (board, swimlane, newColumns, newRows, newCells, newPoint
|
|
|
94
97
|
points: newPoints
|
|
95
98
|
}, path);
|
|
96
99
|
};
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy90cmFuc2Zvcm1zL3N3aW1sYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFTLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBaUIsRUFBRSxRQUF1QixFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQ3hGLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDakcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUUzQyxJQUFJLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckQsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLFFBQVEsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1B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LENBQ2QsS0FBSyxFQUNMO1FBQ0ksT0FBTyxFQUFFLFVBQVU7UUFDbkIsSUFBSSxFQUFFLE9BQU87UUFDYixLQUFLLEVBQUUsUUFBUTtRQUNmLE1BQU0sRUFBRSxTQUFTO0tBQ3BCLEVBQ0QsSUFBSSxDQUNQLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpZENyZWF0b3IsIFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdERyYXdFbGVtZW50LCBQbGFpdFN3aW1sYW5lLCBTd2ltbGFuZVN5bWJvbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0VGFibGVDZWxsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uL3V0aWxzL3RhYmxlJztcblxuZXhwb3J0IGNvbnN0IGFkZFN3aW1sYW5lUm93ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzU3dpbWxhbmUoc3dpbWxhbmUpICYmIHN3aW1sYW5lLnNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIGNvbnN0IG5ld1Jvd0lkID0gaWRDcmVhdG9yKCk7XG4gICAgICAgIG5ld1Jvd3Muc3BsaWNlKGluZGV4LCAwLCB7IGlkOiBuZXdSb3dJZCB9KTtcblxuICAgICAgICBsZXQgbmV3Q2VsbHMgPSBjcmVhdGVOZXdSb3dDZWxscyhzd2ltbGFuZSwgbmV3Um93SWQpO1xuICAgICAgICBuZXdDZWxscy5zaGlmdCgpO1xuICAgICAgICBuZXdDZWxscyA9IFsuLi5zd2ltbGFuZS5jZWxscywgLi4ubmV3Q2VsbHNdO1xuXG4gICAgICAgIGNvbnN0IGxhc3RDZWxsUG9pbnRzID0gZ2V0Q2VsbFdpdGhQb2ludHMoYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jZWxsc1tzd2ltbGFuZS5jZWxscy5sZW5ndGggLSAxXS5pZCkucG9pbnRzO1xuICAgICAgICBjb25zdCBsYXN0Um93SGVpZ2h0ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGxhc3RDZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0sIHN3aW1sYW5lLnBvaW50c1sxXVsxXSArIGxhc3RSb3dIZWlnaHRdXTtcblxuICAgICAgICB1cGRhdGVTd2ltbGFuZShib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNvbHVtbnMsIG5ld1Jvd3MsIG5ld0NlbGxzLCBuZXdQb2ludHMpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTd2ltbGFuZUNvbHVtbiA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1N3aW1sYW5lKHN3aW1sYW5lKSAmJiBzd2ltbGFuZS5zaGFwZSA9PT0gU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWwpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1ucyA9IFsuLi5zd2ltbGFuZS5jb2x1bW5zXTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uSWQgPSBpZENyZWF0b3IoKTtcbiAgICAgICAgbmV3Q29sdW1ucy5zcGxpY2UoaW5kZXgsIDAsIHsgaWQ6IG5ld0NvbHVtbklkIH0pO1xuXG4gICAgICAgIGxldCBuZXdDZWxscyA9IGNyZWF0ZU5ld0NvbHVtbkNlbGxzKHN3aW1sYW5lLCBuZXdDb2x1bW5JZCk7XG4gICAgICAgIG5ld0NlbGxzLnNoaWZ0KCk7XG4gICAgICAgIG5ld0NlbGxzID0gWy4uLnN3aW1sYW5lLmNlbGxzLCAuLi5uZXdDZWxsc107XG5cbiAgICAgICAgY29uc3QgbGFzdENlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNlbGxzW3N3aW1sYW5lLmNlbGxzLmxlbmd0aCAtIDFdLmlkKS5wb2ludHM7XG4gICAgICAgIGNvbnN0IGxhc3RDb2x1bW5XaWR0aCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhsYXN0Q2VsbFBvaW50cykud2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0gKyBsYXN0Q29sdW1uV2lkdGgsIHN3aW1sYW5lLnBvaW50c1sxXVsxXV1dO1xuXG4gICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgbmV3Q29sdW1ucywgc3dpbWxhbmUucm93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZVN3aW1sYW5lUm93ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzU3dpbWxhbmUoc3dpbWxhbmUpICYmIHN3aW1sYW5lLnNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIG5ld1Jvd3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgaWYgKG5ld1Jvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZVJvdyA9IHN3aW1sYW5lLnJvd3NbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBzd2ltbGFuZS5jZWxscy5maWx0ZXIoaXRlbSA9PiBpdGVtLnJvd0lkICE9PSByZW1vdmVSb3cuaWQpO1xuICAgICAgICAgICAgbGV0IHJlbW92ZVJvd0hlaWdodCA9IHJlbW92ZVJvdy5oZWlnaHQ7XG4gICAgICAgICAgICBpZiAoIXJlbW92ZVJvd0hlaWdodCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNlbGxzW2luZGV4XS5pZCkucG9pbnRzO1xuICAgICAgICAgICAgICAgIHJlbW92ZVJvd0hlaWdodCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdQb2ludHM6IFBvaW50W10gPSBbc3dpbWxhbmUucG9pbnRzWzBdLCBbc3dpbWxhbmUucG9pbnRzWzFdWzBdLCBzd2ltbGFuZS5wb2ludHNbMV1bMV0gLSByZW1vdmVSb3dIZWlnaHRdXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgc3dpbWxhbmUuY29sdW1ucywgbmV3Um93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU3dpbWxhbmVDb2x1bW4gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZShzd2ltbGFuZSkgJiYgc3dpbWxhbmUuc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsKSB7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbnMgPSBbLi4uc3dpbWxhbmUuY29sdW1uc107XG4gICAgICAgIG5ld0NvbHVtbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgaWYgKG5ld0NvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZUNvbHVtbiA9IHN3aW1sYW5lLmNvbHVtbnNbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBzd2ltbGFuZS5jZWxscy5maWx0ZXIoaXRlbSA9PiBpdGVtLmNvbHVtbklkICE9PSByZW1vdmVDb2x1bW4uaWQpO1xuICAgICAgICAgICAgbGV0IHJlbW92ZUNvbHVtbldpZHRoID0gcmVtb3ZlQ29sdW1uLndpZHRoO1xuICAgICAgICAgICAgaWYgKCFyZW1vdmVDb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNlbGxzW2luZGV4XS5pZCkucG9pbnRzO1xuICAgICAgICAgICAgICAgIHJlbW92ZUNvbHVtbldpZHRoID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGxQb2ludHMpLndpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV3UG9pbnRzOiBQb2ludFtdID0gW3N3aW1sYW5lLnBvaW50c1swXSwgW3N3aW1sYW5lLnBvaW50c1sxXVswXSAtIHJlbW92ZUNvbHVtbldpZHRoLCBzd2ltbGFuZS5wb2ludHNbMV1bMV1dXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgbmV3Q29sdW1ucywgc3dpbWxhbmUucm93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBjcmVhdGVOZXdDb2x1bW5DZWxscyA9IChzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgbmV3Q29sdW1uSWQ6IHN0cmluZyk6IFBsYWl0VGFibGVDZWxsW10gPT4ge1xuICAgIHJldHVybiBzd2ltbGFuZS5yb3dzLm1hcChyb3cgPT4gKHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICByb3dJZDogcm93LmlkLFxuICAgICAgICBjb2x1bW5JZDogbmV3Q29sdW1uSWRcbiAgICB9KSk7XG59O1xuXG5jb25zdCBjcmVhdGVOZXdSb3dDZWxscyA9IChzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgbmV3Um93SWQ6IHN0cmluZyk6IFBsYWl0VGFibGVDZWxsW10gPT4ge1xuICAgIHJldHVybiBzd2ltbGFuZS5jb2x1bW5zLm1hcChjb2x1bW4gPT4gKHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICByb3dJZDogbmV3Um93SWQsXG4gICAgICAgIGNvbHVtbklkOiBjb2x1bW4uaWRcbiAgICB9KSk7XG59O1xuXG5jb25zdCB1cGRhdGVTd2ltbGFuZSA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSxcbiAgICBuZXdDb2x1bW5zOiB7IGlkOiBzdHJpbmc7IHdpZHRoPzogbnVtYmVyIH1bXSxcbiAgICBuZXdSb3dzOiB7IGlkOiBzdHJpbmc7IGhlaWdodD86IG51bWJlciB9W10sXG4gICAgbmV3Q2VsbHM6IFBsYWl0VGFibGVDZWxsW10sXG4gICAgbmV3UG9pbnRzOiBQb2ludFtdXG4pID0+IHtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShcbiAgICAgICAgYm9hcmQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbHVtbnM6IG5ld0NvbHVtbnMsXG4gICAgICAgICAgICByb3dzOiBuZXdSb3dzLFxuICAgICAgICAgICAgY2VsbHM6IG5ld0NlbGxzLFxuICAgICAgICAgICAgcG9pbnRzOiBuZXdQb2ludHNcbiAgICAgICAgfSxcbiAgICAgICAgcGF0aFxuICAgICk7XG59O1xuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy90cmFuc2Zvcm1zL3N3aW1sYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFTLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXVCLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDeEYsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNqRyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FB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NUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7U0FDckQ7UUFDRCxVQUFVLEVBQUUsRUFBRTtLQUNqQixDQUFDO0lBQ0YsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FDbkIsS0FBaUIsRUFDakIsUUFBdUIsRUFDdkIsVUFBNEMsRUFDNUMsT0FBMEMsRUFDMUMsUUFBMEIsRUFDMUIsU0FBa0IsRUFDcEIsRUFBRTtJQUNBLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELFVBQVUsQ0FBQyxPQUFPLENBQ2QsS0FBSyxFQUNMO1FBQ0ksT0FBTyxFQUFFLFVBQVU7UUFDbkIsSUFBSSxFQUFFLE9BQU87UUFDYixLQUFLLEVBQUUsUUFBUTtRQUNmLE1BQU0sRUFBRSxTQUFTO0tBQ3BCLEVBQ0QsSUFBSSxDQUNQLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpZENyZWF0b3IsIFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdERyYXdFbGVtZW50LCBQbGFpdFN3aW1sYW5lLCBTd2ltbGFuZVN5bWJvbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0VGFibGVDZWxsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uL3V0aWxzL3RhYmxlJztcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJ0BwbGFpdC90ZXh0JztcblxuZXhwb3J0IGNvbnN0IGFkZFN3aW1sYW5lUm93ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzU3dpbWxhbmUoc3dpbWxhbmUpICYmIHN3aW1sYW5lLnNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIGNvbnN0IG5ld1Jvd0lkID0gaWRDcmVhdG9yKCk7XG4gICAgICAgIG5ld1Jvd3Muc3BsaWNlKGluZGV4LCAwLCB7IGlkOiBuZXdSb3dJZCB9KTtcblxuICAgICAgICBjb25zdCBuZXdDZWxscyA9IFsuLi5zd2ltbGFuZS5jZWxscywgLi4uY3JlYXRlTmV3U3dpbWxhbmVDZWxscyhzd2ltbGFuZSwgbmV3Um93SWQsICdjb2x1bW4nKV07XG4gICAgICAgIGNvbnN0IGxhc3RDZWxsUG9pbnRzID0gZ2V0Q2VsbFdpdGhQb2ludHMoYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jZWxsc1tzd2ltbGFuZS5jZWxscy5sZW5ndGggLSAxXS5pZCkucG9pbnRzO1xuICAgICAgICBjb25zdCBsYXN0Um93SGVpZ2h0ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGxhc3RDZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0sIHN3aW1sYW5lLnBvaW50c1sxXVsxXSArIGxhc3RSb3dIZWlnaHRdXTtcblxuICAgICAgICB1cGRhdGVTd2ltbGFuZShib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNvbHVtbnMsIG5ld1Jvd3MsIG5ld0NlbGxzLCBuZXdQb2ludHMpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTd2ltbGFuZUNvbHVtbiA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1N3aW1sYW5lKHN3aW1sYW5lKSAmJiBzd2ltbGFuZS5zaGFwZSA9PT0gU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWwpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1ucyA9IFsuLi5zd2ltbGFuZS5jb2x1bW5zXTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uSWQgPSBpZENyZWF0b3IoKTtcbiAgICAgICAgbmV3Q29sdW1ucy5zcGxpY2UoaW5kZXgsIDAsIHsgaWQ6IG5ld0NvbHVtbklkIH0pO1xuXG4gICAgICAgIGNvbnN0IG5ld0NlbGxzID0gWy4uLnN3aW1sYW5lLmNlbGxzLCAuLi5jcmVhdGVOZXdTd2ltbGFuZUNlbGxzKHN3aW1sYW5lLCBuZXdDb2x1bW5JZCwgJ3JvdycpXTtcbiAgICAgICAgY29uc3QgbGFzdENlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNlbGxzW3N3aW1sYW5lLmNlbGxzLmxlbmd0aCAtIDFdLmlkKS5wb2ludHM7XG4gICAgICAgIGNvbnN0IGxhc3RDb2x1bW5XaWR0aCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhsYXN0Q2VsbFBvaW50cykud2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0gKyBsYXN0Q29sdW1uV2lkdGgsIHN3aW1sYW5lLnBvaW50c1sxXVsxXV1dO1xuXG4gICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgbmV3Q29sdW1ucywgc3dpbWxhbmUucm93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZVN3aW1sYW5lUm93ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzU3dpbWxhbmUoc3dpbWxhbmUpICYmIHN3aW1sYW5lLnNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIG5ld1Jvd3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgaWYgKG5ld1Jvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZVJvdyA9IHN3aW1sYW5lLnJvd3NbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBzd2ltbGFuZS5jZWxscy5maWx0ZXIoaXRlbSA9PiBpdGVtLnJvd0lkICE9PSByZW1vdmVSb3cuaWQpO1xuICAgICAgICAgICAgbGV0IHJlbW92ZVJvd0hlaWdodCA9IHJlbW92ZVJvdy5oZWlnaHQ7XG4gICAgICAgICAgICBpZiAoIXJlbW92ZVJvd0hlaWdodCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvd0NlbGwgPSBzd2ltbGFuZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5yb3dJZCA9PT0gcmVtb3ZlUm93LmlkKSE7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgcm93Q2VsbC5pZCkucG9pbnRzO1xuICAgICAgICAgICAgICAgIHJlbW92ZVJvd0hlaWdodCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdQb2ludHM6IFBvaW50W10gPSBbc3dpbWxhbmUucG9pbnRzWzBdLCBbc3dpbWxhbmUucG9pbnRzWzFdWzBdLCBzd2ltbGFuZS5wb2ludHNbMV1bMV0gLSByZW1vdmVSb3dIZWlnaHRdXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgc3dpbWxhbmUuY29sdW1ucywgbmV3Um93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU3dpbWxhbmVDb2x1bW4gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZShzd2ltbGFuZSkgJiYgc3dpbWxhbmUuc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsKSB7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbnMgPSBbLi4uc3dpbWxhbmUuY29sdW1uc107XG4gICAgICAgIG5ld0NvbHVtbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgaWYgKG5ld0NvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZUNvbHVtbiA9IHN3aW1sYW5lLmNvbHVtbnNbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBzd2ltbGFuZS5jZWxscy5maWx0ZXIoaXRlbSA9PiBpdGVtLmNvbHVtbklkICE9PSByZW1vdmVDb2x1bW4uaWQpO1xuICAgICAgICAgICAgbGV0IHJlbW92ZUNvbHVtbldpZHRoID0gcmVtb3ZlQ29sdW1uLndpZHRoO1xuICAgICAgICAgICAgaWYgKCFyZW1vdmVDb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbkNlbGwgPSBzd2ltbGFuZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5jb2x1bW5JZCA9PT0gcmVtb3ZlQ29sdW1uLmlkKSE7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgY29sdW1uQ2VsbC5pZCkucG9pbnRzO1xuICAgICAgICAgICAgICAgIHJlbW92ZUNvbHVtbldpZHRoID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGxQb2ludHMpLndpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV3UG9pbnRzOiBQb2ludFtdID0gW3N3aW1sYW5lLnBvaW50c1swXSwgW3N3aW1sYW5lLnBvaW50c1sxXVswXSAtIHJlbW92ZUNvbHVtbldpZHRoLCBzd2ltbGFuZS5wb2ludHNbMV1bMV1dXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgbmV3Q29sdW1ucywgc3dpbWxhbmUucm93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBjcmVhdGVOZXdTd2ltbGFuZUNlbGxzID0gKHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBuZXdJZDogc3RyaW5nLCB0eXBlOiAncm93JyB8ICdjb2x1bW4nKTogUGxhaXRUYWJsZUNlbGxbXSA9PiB7XG4gICAgY29uc3QgY2VsbHM6IFBsYWl0VGFibGVDZWxsW10gPSBzd2ltbGFuZVtgJHt0eXBlfXNgXS5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHJvd0lkOiB0eXBlID09PSAncm93JyA/IGl0ZW0uaWQgOiBuZXdJZCxcbiAgICAgICAgY29sdW1uSWQ6IHR5cGUgPT09ICdyb3cnID8gbmV3SWQgOiBpdGVtLmlkXG4gICAgfSkpO1xuICAgIGNlbGxzLnNoaWZ0KCk7XG4gICAgY2VsbHNbMF0gPSB7XG4gICAgICAgIC4uLmNlbGxzWzBdLFxuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dDogJ0xhbmUnIH1dLFxuICAgICAgICAgICAgYWxpZ246IEFsaWdubWVudC5jZW50ZXIsXG4gICAgICAgICAgICBkaXJlY3Rpb246IHR5cGUgPT09ICdyb3cnID8gdW5kZWZpbmVkIDogJ3ZlcnRpY2FsJ1xuICAgICAgICB9LFxuICAgICAgICB0ZXh0SGVpZ2h0OiAyMFxuICAgIH07XG4gICAgcmV0dXJuIGNlbGxzO1xufTtcblxuY29uc3QgdXBkYXRlU3dpbWxhbmUgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsXG4gICAgbmV3Q29sdW1uczogeyBpZDogc3RyaW5nOyB3aWR0aD86IG51bWJlciB9W10sXG4gICAgbmV3Um93czogeyBpZDogc3RyaW5nOyBoZWlnaHQ/OiBudW1iZXIgfVtdLFxuICAgIG5ld0NlbGxzOiBQbGFpdFRhYmxlQ2VsbFtdLFxuICAgIG5ld1BvaW50czogUG9pbnRbXVxuKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHN3aW1sYW5lKTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoXG4gICAgICAgIGJvYXJkLFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2x1bW5zOiBuZXdDb2x1bW5zLFxuICAgICAgICAgICAgcm93czogbmV3Um93cyxcbiAgICAgICAgICAgIGNlbGxzOiBuZXdDZWxscyxcbiAgICAgICAgICAgIHBvaW50czogbmV3UG9pbnRzXG4gICAgICAgIH0sXG4gICAgICAgIHBhdGhcbiAgICApO1xufTtcbiJdfQ==
|