@plait/draw 0.71.0 → 0.73.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.
Files changed (86) hide show
  1. package/arrow-line.component.d.ts +1 -1
  2. package/constants/default.d.ts +1 -0
  3. package/constants/geometry.d.ts +5 -5
  4. package/constants/index.d.ts +1 -0
  5. package/constants/pointer.d.ts +3 -3
  6. package/engines/index.d.ts +2 -2
  7. package/engines/table/table.d.ts +2 -2
  8. package/engines/uml/combined-fragment.d.ts +3 -3
  9. package/engines/uml/package.d.ts +3 -3
  10. package/esm2022/arrow-line.component.mjs +13 -13
  11. package/esm2022/constants/default.mjs +2 -0
  12. package/esm2022/constants/geometry.mjs +8 -8
  13. package/esm2022/constants/index.mjs +2 -1
  14. package/esm2022/constants/pointer.mjs +4 -4
  15. package/esm2022/engines/index.mjs +1 -1
  16. package/esm2022/engines/table/table.mjs +3 -3
  17. package/esm2022/engines/uml/combined-fragment.mjs +5 -5
  18. package/esm2022/engines/uml/package.mjs +5 -5
  19. package/esm2022/generators/single-text.generator.mjs +3 -3
  20. package/esm2022/generators/text.generator.mjs +25 -21
  21. package/esm2022/geometry.component.mjs +4 -5
  22. package/esm2022/interfaces/arrow-line.mjs +1 -1
  23. package/esm2022/interfaces/element.mjs +1 -7
  24. package/esm2022/interfaces/engine.mjs +1 -1
  25. package/esm2022/interfaces/geometry.mjs +6 -6
  26. package/esm2022/interfaces/index.mjs +13 -1
  27. package/esm2022/interfaces/options.mjs +2 -0
  28. package/esm2022/interfaces/table.mjs +1 -1
  29. package/esm2022/interfaces/vector-line.mjs +5 -5
  30. package/esm2022/plugins/with-arrow-line-text.mjs +2 -2
  31. package/esm2022/plugins/with-draw-fragment.mjs +8 -12
  32. package/esm2022/plugins/with-draw-hotkey.mjs +3 -3
  33. package/esm2022/plugins/with-draw-resize.mjs +11 -6
  34. package/esm2022/plugins/with-draw-rotate.mjs +4 -2
  35. package/esm2022/plugins/with-draw.mjs +10 -11
  36. package/esm2022/plugins/with-vector-line-create.mjs +123 -0
  37. package/esm2022/plugins/with-vector-line-resize.mjs +3 -3
  38. package/esm2022/table.component.mjs +9 -10
  39. package/esm2022/transforms/index.mjs +3 -3
  40. package/esm2022/transforms/multi-text-geometry-text.mjs +3 -3
  41. package/esm2022/utils/arrow-line/arrow-line-basic.mjs +3 -3
  42. package/esm2022/utils/clipboard.mjs +6 -17
  43. package/esm2022/utils/common.mjs +16 -9
  44. package/esm2022/utils/geometry.mjs +3 -3
  45. package/esm2022/utils/hit.mjs +21 -19
  46. package/esm2022/utils/index.mjs +2 -1
  47. package/esm2022/utils/multi-text-geometry.mjs +3 -3
  48. package/esm2022/utils/selected.mjs +9 -1
  49. package/esm2022/utils/snap-resizing.mjs +1 -1
  50. package/esm2022/utils/style/stroke.mjs +6 -6
  51. package/esm2022/utils/table.mjs +2 -2
  52. package/esm2022/utils/vector-line.mjs +3 -9
  53. package/esm2022/vector-line.component.mjs +2 -4
  54. package/fesm2022/plait-draw.mjs +251 -303
  55. package/fesm2022/plait-draw.mjs.map +1 -1
  56. package/generators/single-text.generator.d.ts +2 -2
  57. package/generators/text.generator.d.ts +11 -13
  58. package/interfaces/arrow-line.d.ts +1 -1
  59. package/interfaces/element.d.ts +0 -5
  60. package/interfaces/engine.d.ts +7 -2
  61. package/interfaces/geometry.d.ts +11 -10
  62. package/interfaces/index.d.ts +4 -1
  63. package/interfaces/options.d.ts +4 -0
  64. package/interfaces/table.d.ts +2 -2
  65. package/interfaces/vector-line.d.ts +4 -4
  66. package/package.json +1 -1
  67. package/plugins/with-vector-line-create.d.ts +2 -0
  68. package/styles/styles.scss +1 -1
  69. package/table.component.d.ts +2 -2
  70. package/transforms/common.d.ts +1 -1
  71. package/transforms/geometry.d.ts +1 -1
  72. package/transforms/index.d.ts +3 -3
  73. package/transforms/multi-text-geometry-text.d.ts +2 -2
  74. package/utils/clipboard.d.ts +10 -3
  75. package/utils/common.d.ts +6 -4
  76. package/utils/geometry.d.ts +6 -6
  77. package/utils/hit.d.ts +8 -4
  78. package/utils/index.d.ts +1 -0
  79. package/utils/multi-text-geometry.d.ts +6 -10
  80. package/utils/selected.d.ts +3 -1
  81. package/utils/snap-resizing.d.ts +2 -2
  82. package/utils/vector-line.d.ts +0 -1
  83. package/esm2022/plugins/with-geometry-resize.mjs +0 -70
  84. package/esm2022/plugins/with-vector-pen-create.mjs +0 -123
  85. package/plugins/with-geometry-resize.d.ts +0 -2
  86. package/plugins/with-vector-pen-create.d.ts +0 -2
@@ -51,8 +51,8 @@ export const TableEngine = {
51
51
  },
52
52
  getTextRectangle(element, options) {
53
53
  try {
54
- if (options && options.key) {
55
- const cell = getCellWithPoints(options?.board, element, options.key);
54
+ if (options && options.id) {
55
+ const cell = getCellWithPoints(options?.board, element, options.id);
56
56
  if (cell) {
57
57
  if (PlaitTableElement.isVerticalText(cell)) {
58
58
  return getVerticalTextRectangle(cell);
@@ -98,4 +98,4 @@ export function getHorizontalTextRectangle(cell) {
98
98
  y: cellRectangle.y + (cellRectangle.height - height) / 2
99
99
  };
100
100
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFTLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFFLE9BQU8sRUFBK0QsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUF1RTtJQUMzRixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLFlBQXFCLEVBQUUsT0FBK0I7UUFDdEcsTUFBTSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixDQUFDLENBQUM7WUFDcEYsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUMxQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMs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LENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTTtRQUNOLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ3hELENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0tBQzNELENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQThCO0lBQ3JFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7SUFDcEMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUM3RixPQUFPO1FBQ0gsTUFBTTtRQUNOLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztRQUNyRSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztLQUMzRCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCwgUG9pbnQsIGNyZWF0ZUcsIGRyYXdMaW5lLCBzZXRTdHJva2VMaW5lY2FwLCBkcmF3UmVjdGFuZ2xlLCBBQ1RJVkVfU1RST0tFX1dJRFRIIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0Q2VsbHNXaXRoUG9pbnRzLCBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL3RhYmxlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdERyYXdTaGFwZVRleHQgfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFBsYWl0VGFibGUsIFBsYWl0VGFibGVDZWxsV2l0aFBvaW50cywgUGxhaXRUYWJsZURyYXdPcHRpb25zLCBQbGFpdFRhYmxlRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFibGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZSwgZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMgfSBmcm9tICcuLi9iYXNpYy1zaGFwZXMvcm91bmQtcmVjdGFuZ2xlJztcblxuZXhwb3J0IGNvbnN0IFRhYmxlRW5naW5lOiBTaGFwZUVuZ2luZTxQbGFpdFRhYmxlLCBQbGFpdFRhYmxlRHJhd09wdGlvbnMsIFBsYWl0RHJhd1NoYXBlVGV4dD4gPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHJvdWdoT3B0aW9uczogT3B0aW9ucywgb3B0aW9ucz86IFBsYWl0VGFibGVEcmF3T3B0aW9ucykge1xuICAgICAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRDZWxscyA9IGdldENlbGxzV2l0aFBvaW50cyhib2FyZCwgeyAuLi5vcHRpb25zPy5lbGVtZW50IH0gYXMgUGxhaXRUYWJsZSk7XG4gICAgICAgICAgICBpZiAocG9pbnRDZWxscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGVUb3BCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCArIHdpZHRoLCB5XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJsZUxlZnRCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgZy5hcHBlbmQodGFibGVUb3BCb3JkZXIsIHRhYmxlTGVmdEJvcmRlcik7XG4gICAgICAgICAgICAgICAgcG9pbnRDZWxscy5mb3JFYWNoKGNlbGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbC5wb2ludHMhKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0YW5nbGUgPSBkcmF3UmVjdGFuZ2xlKFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9hcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogeCArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogeSArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoIC0gQUNUSVZFX1NUUk9LRV9XSURUSCAqIDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQgLSBBQ1RJVkVfU1RST0tFX1dJRFRIICogMlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgZmlsbDogY2VsbC5maWxsLCBmaWxsU3R5bGU6ICdzb2xpZCcsIHN0cm9rZVdpZHRoOiAwIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbFJpZ2h0Qm9yZGVyID0gZHJhd0xpbmUocnMsIFt4ICsgd2lkdGgsIHldLCBbeCArIHdpZHRoLCB5ICsgaGVpZ2h0XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbEJvdHRvbUJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCwgeSArIGhlaWdodF0sIFt4ICsgd2lkdGgsIHkgKyBoZWlnaHRdLCByb3VnaE9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBnLmFwcGVuZChjZWxsUmVjdGFuZ2xlLCBjZWxsUmlnaHRCb3JkZXIsIGNlbGxCb3R0b21Cb3JkZXIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNldFN0cm9rZUxpbmVjYXAoZywgJ3JvdW5kJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZztcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludCwgcmVjdGFuZ2xlLCBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRUYWJsZSwgb3B0aW9ucz86IFBsYWl0RHJhd1NoYXBlVGV4dCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5rZXkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsID0gZ2V0Q2VsbFdpdGhQb2ludHMob3B0aW9ucz8uYm9hcmQhLCBlbGVtZW50LCBvcHRpb25zIS5rZXkpO1xuICAgICAgICAgICAgICAgIGlmIChjZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChQbGFpdFRhYmxlRWxlbWVudC5pc1ZlcnRpY2FsVGV4dChjZWxsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldFZlcnRpY2FsVGV4dFJlY3RhbmdsZShjZWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRIb3Jpem9udGFsVGV4dFJlY3RhbmdsZShjZWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgICAgaGVpZ2h0OiAwXG4gICAgICAgIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnRpY2FsVGV4dFJlY3RhbmdsZShjZWxsOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMpIHtcbiAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGNlbGwpO1xuICAgIGNvbnN0IGhlaWdodCA9IGNlbGwudGV4dEhlaWdodCB8fCAwO1xuICAgIGNvbnN0IHdpZHRoID0gY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHg6IGNlbGxSZWN0YW5nbGUueCAtIHdpZHRoIC8gMiArIGNlbGxSZWN0YW5nbGUud2lkdGggLyAyLFxuICAgICAgICB5OiBjZWxsUmVjdGFuZ2xlLnkgKyAoY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIb3Jpem9udGFsVGV4dFJlY3RhbmdsZShjZWxsOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMpIHtcbiAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGNlbGwpO1xuICAgIGNvbnN0IGhlaWdodCA9IGNlbGwudGV4dEhlaWdodCB8fCAwO1xuICAgIGNvbnN0IHdpZHRoID0gY2VsbFJlY3RhbmdsZS53aWR0aCAtIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKiAyIC0gc3Ryb2tlV2lkdGggKiAyO1xuICAgIHJldHVybiB7XG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgeDogY2VsbFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICB5OiBjZWxsUmVjdGFuZ2xlLnkgKyAoY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgIH07XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFTLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFFLE9BQU8sRUFBK0QsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFpRTtJQUNyRixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLFlBQXFCLEVBQUUsT0FBK0I7UUFDdEcsTUFBTSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixDQUFDLENBQUM7WUFDcEYsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUMxQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMs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LENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTTtRQUNOLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ3hELENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0tBQzNELENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQThCO0lBQ3JFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7SUFDcEMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUM3RixPQUFPO1FBQ0gsTUFBTTtRQUNOLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztRQUNyRSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztLQUMzRCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCwgUG9pbnQsIGNyZWF0ZUcsIGRyYXdMaW5lLCBzZXRTdHJva2VMaW5lY2FwLCBkcmF3UmVjdGFuZ2xlLCBBQ1RJVkVfU1RST0tFX1dJRFRIIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0Q2VsbHNXaXRoUG9pbnRzLCBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL3RhYmxlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEcmF3VGV4dEluZm8gfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFBsYWl0VGFibGUsIFBsYWl0VGFibGVDZWxsV2l0aFBvaW50cywgUGxhaXRUYWJsZURyYXdPcHRpb25zLCBQbGFpdFRhYmxlRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFibGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZSwgZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMgfSBmcm9tICcuLi9iYXNpYy1zaGFwZXMvcm91bmQtcmVjdGFuZ2xlJztcblxuZXhwb3J0IGNvbnN0IFRhYmxlRW5naW5lOiBTaGFwZUVuZ2luZTxQbGFpdFRhYmxlLCBQbGFpdFRhYmxlRHJhd09wdGlvbnMsIERyYXdUZXh0SW5mbz4gPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHJvdWdoT3B0aW9uczogT3B0aW9ucywgb3B0aW9ucz86IFBsYWl0VGFibGVEcmF3T3B0aW9ucykge1xuICAgICAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRDZWxscyA9IGdldENlbGxzV2l0aFBvaW50cyhib2FyZCwgeyAuLi5vcHRpb25zPy5lbGVtZW50IH0gYXMgUGxhaXRUYWJsZSk7XG4gICAgICAgICAgICBpZiAocG9pbnRDZWxscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGVUb3BCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCArIHdpZHRoLCB5XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJsZUxlZnRCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgZy5hcHBlbmQodGFibGVUb3BCb3JkZXIsIHRhYmxlTGVmdEJvcmRlcik7XG4gICAgICAgICAgICAgICAgcG9pbnRDZWxscy5mb3JFYWNoKGNlbGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbC5wb2ludHMhKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0YW5nbGUgPSBkcmF3UmVjdGFuZ2xlKFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9hcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogeCArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogeSArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoIC0gQUNUSVZFX1NUUk9LRV9XSURUSCAqIDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQgLSBBQ1RJVkVfU1RST0tFX1dJRFRIICogMlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgZmlsbDogY2VsbC5maWxsLCBmaWxsU3R5bGU6ICdzb2xpZCcsIHN0cm9rZVdpZHRoOiAwIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbFJpZ2h0Qm9yZGVyID0gZHJhd0xpbmUocnMsIFt4ICsgd2lkdGgsIHldLCBbeCArIHdpZHRoLCB5ICsgaGVpZ2h0XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbEJvdHRvbUJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCwgeSArIGhlaWdodF0sIFt4ICsgd2lkdGgsIHkgKyBoZWlnaHRdLCByb3VnaE9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBnLmFwcGVuZChjZWxsUmVjdGFuZ2xlLCBjZWxsUmlnaHRCb3JkZXIsIGNlbGxCb3R0b21Cb3JkZXIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNldFN0cm9rZUxpbmVjYXAoZywgJ3JvdW5kJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZztcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludCwgcmVjdGFuZ2xlLCBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRUYWJsZSwgb3B0aW9ucz86IERyYXdUZXh0SW5mbykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5pZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGwgPSBnZXRDZWxsV2l0aFBvaW50cyhvcHRpb25zPy5ib2FyZCEsIGVsZW1lbnQsIG9wdGlvbnMhLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAoY2VsbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoUGxhaXRUYWJsZUVsZW1lbnQuaXNWZXJ0aWNhbFRleHQoY2VsbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRWZXJ0aWNhbFRleHRSZWN0YW5nbGUoY2VsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0SG9yaXpvbnRhbFRleHRSZWN0YW5nbGUoY2VsbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgIGhlaWdodDogMFxuICAgICAgICB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJ0aWNhbFRleHRSZWN0YW5nbGUoY2VsbDogUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzKSB7XG4gICAgY29uc3QgY2VsbFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsLnBvaW50cyk7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChjZWxsKTtcbiAgICBjb25zdCBoZWlnaHQgPSBjZWxsLnRleHRIZWlnaHQgfHwgMDtcbiAgICBjb25zdCB3aWR0aCA9IGNlbGxSZWN0YW5nbGUuaGVpZ2h0IC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAqIDIgLSBzdHJva2VXaWR0aCAqIDI7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICB4OiBjZWxsUmVjdGFuZ2xlLnggLSB3aWR0aCAvIDIgKyBjZWxsUmVjdGFuZ2xlLndpZHRoIC8gMixcbiAgICAgICAgeTogY2VsbFJlY3RhbmdsZS55ICsgKGNlbGxSZWN0YW5nbGUuaGVpZ2h0IC0gaGVpZ2h0KSAvIDJcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9yaXpvbnRhbFRleHRSZWN0YW5nbGUoY2VsbDogUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzKSB7XG4gICAgY29uc3QgY2VsbFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsLnBvaW50cyk7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChjZWxsKTtcbiAgICBjb25zdCBoZWlnaHQgPSBjZWxsLnRleHRIZWlnaHQgfHwgMDtcbiAgICBjb25zdCB3aWR0aCA9IGNlbGxSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICByZXR1cm4ge1xuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgIHg6IGNlbGxSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgeTogY2VsbFJlY3RhbmdsZS55ICsgKGNlbGxSZWN0YW5nbGUuaGVpZ2h0IC0gaGVpZ2h0KSAvIDJcbiAgICB9O1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
2
- import { MultipleTextGeometryCommonTextKeys } from '../../interfaces';
2
+ import { GeometryCommonTextKeys } from '../../interfaces';
3
3
  import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
4
4
  import { RectangleEngine } from '../basic-shapes/rectangle';
5
5
  import { getStrokeWidthByElement } from '../../utils';
@@ -41,8 +41,8 @@ export const CombinedFragmentEngine = {
41
41
  getTextRectangle(element, options) {
42
42
  const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
43
43
  const strokeWidth = getStrokeWidthByElement(element);
44
- const textHeight = element.texts?.find(item => item.key === options?.key)?.textHeight;
45
- if (options?.key === MultipleTextGeometryCommonTextKeys.name) {
44
+ const textHeight = element.texts?.find(item => item.id === options?.id)?.textHeight;
45
+ if (options?.id === GeometryCommonTextKeys.name) {
46
46
  const width = elementRectangle.width / 3 - 8 - ShapeDefaultSpace.rectangleAndText - strokeWidth;
47
47
  return {
48
48
  height: textHeight,
@@ -51,7 +51,7 @@ export const CombinedFragmentEngine = {
51
51
  y: elementRectangle.y + (25 - textHeight) / 2
52
52
  };
53
53
  }
54
- if (options?.key === MultipleTextGeometryCommonTextKeys.content) {
54
+ if (options?.id === GeometryCommonTextKeys.content) {
55
55
  const width = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
56
56
  return {
57
57
  height: textHeight,
@@ -63,4 +63,4 @@ export const CombinedFragmentEngine = {
63
63
  return elementRectangle;
64
64
  }
65
65
  };
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtZnJhZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC9jb21iaW5lZC1mcmFnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixzQ0FBc0MsRUFDdEMsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxrQ0FBa0MsRUFBMEMsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3BELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFtRTtJQUNsRyxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQyxTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUs7ZUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtlQUM5QixTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQixTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUM7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LEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztnQkFDeEUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVzthQUNoRixDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNdWx0aXBsZVRleHRHZW9tZXRyeUNvbW1vblRleHRLZXlzLCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvbHlnb24nO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuXG5leHBvcnQgY29uc3QgQ29tYmluZWRGcmFnbWVudEVuZ2luZTogU2hhcGVFbmdpbmU8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwge30sIFBsYWl0RHJhd1NoYXBlVGV4dD4gPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55ICsgMjV9IFxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnl9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gXG4gICAgICAgICAgICBWJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueH1cbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55ICsgMjV9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDMgLSA4fVxuICAgICAgICAgICAgTCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAzfSAke3JlY3RhbmdsZS55ICsgMTZ9XG4gICAgICAgICAgICBWJHtyZWN0YW5nbGUueX1cbiAgICAgICAgICAgIGAsXG5cbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG5cbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSkpO1xuICAgIH0sXG4gICAgZ2V0RWRnZUJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKTogW1BvaW50LCBQb2ludF0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgY29ybmVycyA9IFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50KGNvcm5lcnMsIHBvaW50KTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwgb3B0aW9ucz86IFBsYWl0RHJhd1NoYXBlVGV4dCkge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzISk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHRleHRIZWlnaHQgPSBlbGVtZW50LnRleHRzPy5maW5kKGl0ZW0gPT4gaXRlbS5rZXkgPT09IG9wdGlvbnM/LmtleSk/LnRleHRIZWlnaHQhO1xuICAgICAgICBpZiAob3B0aW9ucz8ua2V5ID09PSBNdWx0aXBsZVRleHRHZW9tZXRyeUNvbW1vblRleHRLZXlzLm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudFJlY3RhbmdsZS53aWR0aCAvIDMgLSA4IC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAtIHN0cm9rZVdpZHRoO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRleHRIZWlnaHQsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICAgICAgeTogZWxlbWVudFJlY3RhbmdsZS55ICsgKDI1IC0gdGV4dEhlaWdodCkgLyAyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy5rZXkgPT09IE11bHRpcGxlVGV4dEdlb21ldHJ5Q29tbW9uVGV4dEtleXMuY29udGVudCkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50UmVjdGFuZ2xlLndpZHRoIC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAqIDIgLSBzdHJva2VXaWR0aCAqIDI7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogdGV4dEhlaWdodCxcbiAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICAgICAgICAgIHg6IGVsZW1lbnRSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgICAgICB5OiBlbGVtZW50UmVjdGFuZ2xlLnkgKyAyNSArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudFJlY3RhbmdsZTtcbiAgICB9XG59O1xuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtZnJhZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC9jb21iaW5lZC1mcmFnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixzQ0FBc0MsRUFDdEMsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBZSxzQkFBc0IsRUFBMEMsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3BELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFzRTtJQUNyRyxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQyxTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUs7ZUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtlQUM5QixTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQixTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUM7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LEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztnQkFDeEUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVzthQUNoRixDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBEcmF3T3B0aW9ucywgR2VvbWV0cnlDb21tb25UZXh0S2V5cywgUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IGdldFBvbHlnb25FZGdlQnlDb25uZWN0aW9uUG9pbnQgfSBmcm9tICcuLi8uLi91dGlscy9wb2x5Z29uJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEcmF3VGV4dEluZm8gfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcblxuZXhwb3J0IGNvbnN0IENvbWJpbmVkRnJhZ21lbnRFbmdpbmU6IFNoYXBlRW5naW5lPFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksIERyYXdPcHRpb25zLCBEcmF3VGV4dEluZm8+ID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtyZWN0YW5nbGUueH0gJHtyZWN0YW5nbGUueSArIDI1fSBcbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55fVxuICAgICAgICAgICAgSCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGh9IFxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0fVxuICAgICAgICAgICAgSCR7cmVjdGFuZ2xlLnh9XG4gICAgICAgICAgICBWJHtyZWN0YW5nbGUueSArIDI1fVxuICAgICAgICAgICAgSCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAzIC0gOH1cbiAgICAgICAgICAgIEwke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gM30gJHtyZWN0YW5nbGUueSArIDE2fVxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnl9XG4gICAgICAgICAgICBgLFxuXG4gICAgICAgICAgICB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9XG4gICAgICAgICk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuXG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhwb2ludCwgUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSk6IFtQb2ludCwgUG9pbnRdIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludChjb3JuZXJzLCBwb2ludCk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksIG9wdGlvbnM/OiBEcmF3VGV4dEluZm8pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCB0ZXh0SGVpZ2h0ID0gZWxlbWVudC50ZXh0cz8uZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IG9wdGlvbnM/LmlkKT8udGV4dEhlaWdodCE7XG4gICAgICAgIGlmIChvcHRpb25zPy5pZCA9PT0gR2VvbWV0cnlDb21tb25UZXh0S2V5cy5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLyAzIC0gOCAtIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgLSBzdHJva2VXaWR0aDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0ZXh0SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICAgICAgeDogZWxlbWVudFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArICgyNSAtIHRleHRIZWlnaHQpIC8gMlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucz8uaWQgPT09IEdlb21ldHJ5Q29tbW9uVGV4dEtleXMuY29udGVudCkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50UmVjdGFuZ2xlLndpZHRoIC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAqIDIgLSBzdHJva2VXaWR0aCAqIDI7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogdGV4dEhlaWdodCxcbiAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICAgICAgICAgIHg6IGVsZW1lbnRSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgICAgICB5OiBlbGVtZW50UmVjdGFuZ2xlLnkgKyAyNSArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudFJlY3RhbmdsZTtcbiAgICB9XG59O1xuIl19
@@ -1,6 +1,6 @@
1
1
  import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
2
2
  import { getUnitVectorByPointAndPoint } from '@plait/common';
3
- import { MultipleTextGeometryCommonTextKeys } from '../../interfaces';
3
+ import { GeometryCommonTextKeys } from '../../interfaces';
4
4
  import { RectangleEngine } from '../basic-shapes/rectangle';
5
5
  import { getStrokeWidthByElement } from '../../utils';
6
6
  import { ShapeDefaultSpace } from '../../constants';
@@ -50,8 +50,8 @@ export const PackageEngine = {
50
50
  getTextRectangle(element, options) {
51
51
  const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
52
52
  const strokeWidth = getStrokeWidthByElement(element);
53
- const textHeight = element.texts?.find(item => item.key === options?.key)?.textHeight;
54
- if (options?.key === MultipleTextGeometryCommonTextKeys.name) {
53
+ const textHeight = element.texts?.find(item => item.id === options?.id)?.textHeight;
54
+ if (options?.id === GeometryCommonTextKeys.name) {
55
55
  const width = elementRectangle.width * 0.7 - ShapeDefaultSpace.rectangleAndText - strokeWidth;
56
56
  return {
57
57
  height: textHeight,
@@ -60,7 +60,7 @@ export const PackageEngine = {
60
60
  y: elementRectangle.y + (25 - textHeight) / 2
61
61
  };
62
62
  }
63
- if (options?.key === MultipleTextGeometryCommonTextKeys.content) {
63
+ if (options?.id === GeometryCommonTextKeys.content) {
64
64
  const width = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
65
65
  return {
66
66
  height: textHeight,
@@ -72,4 +72,4 @@ export const PackageEngine = {
72
72
  return elementRectangle;
73
73
  }
74
74
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvdW1sL3BhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFHVixlQUFlLEVBQ2Ysc0NBQXNDLEVBQ3RDLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtDQUFrQyxFQUEwQyxNQUFNLGtCQUFrQixDQUFDO0FBRTlHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHcEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFtRTtJQUN6RixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQyxTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHO2VBQ25DLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFO2VBQ3ZELFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUs7ZUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtlQUM5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aUIsQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXO2dCQUN4RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQzthQUMvRSxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBNdWx0aXBsZVRleHRHZW9tZXRyeUNvbW1vblRleHRLZXlzLCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuXG5leHBvcnQgY29uc3QgUGFja2FnZUVuZ2luZTogU2hhcGVFbmdpbmU8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwge30sIFBsYWl0RHJhd1NoYXBlVGV4dD4gPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55ICsgMjV9IFxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnl9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuN30gXG4gICAgICAgICAgICBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuOH0gJHtyZWN0YW5nbGUueSArIDI1fSBcbiAgICAgICAgICAgIEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSBcbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1cbiAgICAgICAgICAgIEgke3JlY3RhbmdsZS54fVxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnkgKyAyNX1cbiAgICAgICAgICAgIEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC44fWAsXG4gICAgICAgICAgICB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9XG4gICAgICAgICk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuXG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGxldCBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhwb2ludCwgUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpKTtcbiAgICAgICAgaWYgKG5lYXJlc3RQb2ludFswXSA+IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC43ICYmIG5lYXJlc3RQb2ludFsxXSA8PSByZWN0YW5nbGUueSArIDI1KSB7XG4gICAgICAgICAgICBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhcbiAgICAgICAgICAgICAgICBwb2ludCxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNywgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjgsIHJlY3RhbmdsZS55ICsgMjVdLFxuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55ICsgMjVdXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmVhcmVzdFBvaW50O1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0VGFuZ2VudFZlY3RvckJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgaWYgKGNvbm5lY3Rpb25Qb2ludFswXSA+IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC43ICYmIGNvbm5lY3Rpb25Qb2ludFsxXSA8IHJlY3RhbmdsZS55ICsgMjUpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNywgcmVjdGFuZ2xlLnldLCBjb25uZWN0aW9uUG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuOCwgcmVjdGFuZ2xlLnkgKyAyNV0sIGNvbm5lY3Rpb25Qb2ludCk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksIG9wdGlvbnM/OiBQbGFpdERyYXdTaGFwZVRleHQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCB0ZXh0SGVpZ2h0ID0gZWxlbWVudC50ZXh0cz8uZmluZChpdGVtID0+IGl0ZW0ua2V5ID09PSBvcHRpb25zPy5rZXkpPy50ZXh0SGVpZ2h0ITtcbiAgICAgICAgaWYgKG9wdGlvbnM/LmtleSA9PT0gTXVsdGlwbGVUZXh0R2VvbWV0cnlDb21tb25UZXh0S2V5cy5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggKiAwLjcgLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0IC0gc3Ryb2tlV2lkdGg7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogdGV4dEhlaWdodCxcbiAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICAgICAgICAgIHg6IGVsZW1lbnRSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgICAgICB5OiBlbGVtZW50UmVjdGFuZ2xlLnkgKyAoMjUgLSB0ZXh0SGVpZ2h0KSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnM/LmtleSA9PT0gTXVsdGlwbGVUZXh0R2VvbWV0cnlDb21tb25UZXh0S2V5cy5jb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0ZXh0SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICAgICAgeDogZWxlbWVudFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIDI1ICsgKGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0IC0gMjUgLSB0ZXh0SGVpZ2h0KSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRSZWN0YW5nbGU7XG4gICAgfVxufTtcbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvdW1sL3BhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFHVixlQUFlLEVBQ2Ysc0NBQXNDLEVBQ3RDLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFlLHNCQUFzQixFQUEwQyxNQUFNLGtCQUFrQixDQUFDO0FBRS9HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHcEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFzRTtJQUM1RixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQyxTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHO2VBQ25DLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFO2VBQ3ZELFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUs7ZUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtlQUM5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aUIsQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXO2dCQUN4RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQzthQUMvRSxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBEcmF3T3B0aW9ucywgR2VvbWV0cnlDb21tb25UZXh0S2V5cywgUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEcmF3VGV4dEluZm8gfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcblxuZXhwb3J0IGNvbnN0IFBhY2thZ2VFbmdpbmU6IFNoYXBlRW5naW5lPFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksIERyYXdPcHRpb25zLCBEcmF3VGV4dEluZm8+ID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtyZWN0YW5nbGUueH0gJHtyZWN0YW5nbGUueSArIDI1fSBcbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55fVxuICAgICAgICAgICAgSCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjd9IFxuICAgICAgICAgICAgTCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjh9ICR7cmVjdGFuZ2xlLnkgKyAyNX0gXG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gXG4gICAgICAgICAgICBWJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueH1cbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55ICsgMjV9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuOH1gLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcblxuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBsZXQgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKSk7XG4gICAgICAgIGlmIChuZWFyZXN0UG9pbnRbMF0gPiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNyAmJiBuZWFyZXN0UG9pbnRbMV0gPD0gcmVjdGFuZ2xlLnkgKyAyNSkge1xuICAgICAgICAgICAgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMoXG4gICAgICAgICAgICAgICAgcG9pbnQsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjcsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC44LCByZWN0YW5nbGUueSArIDI1XSxcbiAgICAgICAgICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIDI1XVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5lYXJlc3RQb2ludDtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIGlmIChjb25uZWN0aW9uUG9pbnRbMF0gPiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNyAmJiBjb25uZWN0aW9uUG9pbnRbMV0gPCByZWN0YW5nbGUueSArIDI1KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjcsIHJlY3RhbmdsZS55XSwgY29ubmVjdGlvblBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjgsIHJlY3RhbmdsZS55ICsgMjVdLCBjb25uZWN0aW9uUG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBvcHRpb25zPzogRHJhd1RleHRJbmZvKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMhKTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgdGV4dEhlaWdodCA9IGVsZW1lbnQudGV4dHM/LmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBvcHRpb25zPy5pZCk/LnRleHRIZWlnaHQhO1xuICAgICAgICBpZiAob3B0aW9ucz8uaWQgPT09IEdlb21ldHJ5Q29tbW9uVGV4dEtleXMubmFtZSkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50UmVjdGFuZ2xlLndpZHRoICogMC43IC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAtIHN0cm9rZVdpZHRoO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRleHRIZWlnaHQsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICAgICAgeTogZWxlbWVudFJlY3RhbmdsZS55ICsgKDI1IC0gdGV4dEhlaWdodCkgLyAyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy5pZCA9PT0gR2VvbWV0cnlDb21tb25UZXh0S2V5cy5jb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0ZXh0SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICAgICAgeDogZWxlbWVudFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIDI1ICsgKGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0IC0gMjUgLSB0ZXh0SGVpZ2h0KSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRSZWN0YW5nbGU7XG4gICAgfVxufTtcbiJdfQ==
@@ -5,12 +5,12 @@ export class SingleTextGenerator extends TextGenerator {
5
5
  return this.textManages[0];
6
6
  }
7
7
  constructor(board, element, text, options) {
8
- super(board, element, [{ key: element.id, text: text, textHeight: element.textHeight }], options);
8
+ super(board, element, [{ id: element.id, text: text, textHeight: element.textHeight }], options);
9
9
  }
10
10
  update(element, previousText, currentText, elementG) {
11
11
  if (!isMultipleTextGeometry(element)) {
12
- super.update(element, [{ text: previousText, key: element.id, textHeight: element.textHeight }], [{ text: currentText, key: element.id, textHeight: element.textHeight }], elementG);
12
+ super.update(element, [{ text: previousText, id: element.id, textHeight: element.textHeight }], [{ text: currentText, id: element.id, textHeight: element.textHeight }], elementG);
13
13
  }
14
14
  }
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXRleHQuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9zaW5nbGUtdGV4dC5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFzQixhQUFhLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xELE1BQU0sT0FBTyxtQkFBNEQsU0FBUSxhQUFnQjtJQUM3RixJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQ0ksS0FBaUIsRUFDakIsT0FBVSxFQUNWLElBQXNCLEVBQ3RCLE9BQWdDO1FBRWhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBU0QsTUFBTSxDQUNGLE9BQVUsRUFDVixZQUFxRCxFQUNyRCxXQUFvRCxFQUNwRCxRQUFvQjtRQUVwQixJQUFJLENBQUMsc0JBQXNCLENBQUUsT0FBMEMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsS0FBSyxDQUFDLE1BQU0sQ0FDUixPQUFPLEVBQ1AsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFnQyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDN0YsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUErQixFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDNUYsUUFBUSxDQUNYLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRHZW9tZXRyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXREcmF3U2hhcGVUZXh0LCBUZXh0R2VuZXJhdG9yLCBUZXh0R2VuZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4vdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgaXNNdWx0aXBsZVRleHRHZW9tZXRyeSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFBhcmFncmFwaEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIFNpbmdsZVRleHRHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0R2VvbWV0cnk+IGV4dGVuZHMgVGV4dEdlbmVyYXRvcjxUPiB7XG4gICAgZ2V0IHRleHRNYW5hZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRNYW5hZ2VzWzBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICAgICAgZWxlbWVudDogVCxcbiAgICAgICAgdGV4dDogUGFyYWdyYXBoRWxlbWVudCxcbiAgICAgICAgb3B0aW9uczogVGV4dEdlbmVyYXRvck9wdGlvbnM8VD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIGVsZW1lbnQsIFt7IGtleTogZWxlbWVudC5pZCwgdGV4dDogdGV4dCwgdGV4dEhlaWdodDogZWxlbWVudC50ZXh0SGVpZ2h0IH1dLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICB1cGRhdGUoXG4gICAgICAgIGVsZW1lbnQ6IFQsXG4gICAgICAgIHByZXZpb3VzRHJhd1NoYXBlVGV4dHM6IFBsYWl0RHJhd1NoYXBlVGV4dFtdLFxuICAgICAgICBjdXJyZW50RHJhd1NoYXBlVGV4dHM6IFBsYWl0RHJhd1NoYXBlVGV4dFtdLFxuICAgICAgICBlbGVtZW50RzogU1ZHRWxlbWVudFxuICAgICk6IHZvaWQ7XG4gICAgdXBkYXRlKGVsZW1lbnQ6IFQsIHByZXZpb3VzVGV4dDogUGFyYWdyYXBoRWxlbWVudCwgY3VycmVudFRleHQ6IFBhcmFncmFwaEVsZW1lbnQsIGVsZW1lbnRHOiBTVkdFbGVtZW50KTogdm9pZDtcbiAgICB1cGRhdGUoXG4gICAgICAgIGVsZW1lbnQ6IFQsXG4gICAgICAgIHByZXZpb3VzVGV4dDogUGFyYWdyYXBoRWxlbWVudCB8IFBsYWl0RHJhd1NoYXBlVGV4dFtdLFxuICAgICAgICBjdXJyZW50VGV4dDogUGFyYWdyYXBoRWxlbWVudCB8IFBsYWl0RHJhd1NoYXBlVGV4dFtdLFxuICAgICAgICBlbGVtZW50RzogU1ZHRWxlbWVudFxuICAgICkge1xuICAgICAgICBpZiAoIWlzTXVsdGlwbGVUZXh0R2VvbWV0cnkoKGVsZW1lbnQgYXMgdW5rbm93bikgYXMgUGxhaXRDb21tb25HZW9tZXRyeSkpIHtcbiAgICAgICAgICAgIHN1cGVyLnVwZGF0ZShcbiAgICAgICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgICAgIFt7IHRleHQ6IHByZXZpb3VzVGV4dCBhcyBQYXJhZ3JhcGhFbGVtZW50LCBrZXk6IGVsZW1lbnQuaWQsIHRleHRIZWlnaHQ6IGVsZW1lbnQudGV4dEhlaWdodCB9XSxcbiAgICAgICAgICAgICAgICBbeyB0ZXh0OiBjdXJyZW50VGV4dCBhcyBQYXJhZ3JhcGhFbGVtZW50LCBrZXk6IGVsZW1lbnQuaWQsIHRleHRIZWlnaHQ6IGVsZW1lbnQudGV4dEhlaWdodCB9XSxcbiAgICAgICAgICAgICAgICBlbGVtZW50R1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXRleHQuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9zaW5nbGUtdGV4dC5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFnQixhQUFhLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xELE1BQU0sT0FBTyxtQkFBNEQsU0FBUSxhQUFnQjtJQUM3RixJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksS0FBaUIsRUFBRSxPQUFVLEVBQUUsSUFBc0IsRUFBRSxPQUFnQztRQUMvRixLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUlELE1BQU0sQ0FDRixPQUFVLEVBQ1YsWUFBK0MsRUFDL0MsV0FBOEMsRUFDOUMsUUFBb0I7UUFFcEIsSUFBSSxDQUFDLHNCQUFzQixDQUFFLE9BQTBDLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLEtBQUssQ0FBQyxNQUFNLENBQ1IsT0FBTyxFQUNQLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBZ0MsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQzVGLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBK0IsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQzNGLFFBQVEsQ0FDWCxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0R2VvbWV0cnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERyYXdUZXh0SW5mbywgVGV4dEdlbmVyYXRvciwgVGV4dEdlbmVyYXRvck9wdGlvbnMgfSBmcm9tICcuL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjbGFzcyBTaW5nbGVUZXh0R2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEdlb21ldHJ5PiBleHRlbmRzIFRleHRHZW5lcmF0b3I8VD4ge1xuICAgIGdldCB0ZXh0TWFuYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0TWFuYWdlc1swXTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogVCwgdGV4dDogUGFyYWdyYXBoRWxlbWVudCwgb3B0aW9uczogVGV4dEdlbmVyYXRvck9wdGlvbnM8VD4pIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIGVsZW1lbnQsIFt7IGlkOiBlbGVtZW50LmlkLCB0ZXh0OiB0ZXh0LCB0ZXh0SGVpZ2h0OiBlbGVtZW50LnRleHRIZWlnaHQgfV0sIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHVwZGF0ZShlbGVtZW50OiBULCBwcmV2aW91c0RyYXdTaGFwZVRleHRzOiBEcmF3VGV4dEluZm9bXSwgY3VycmVudERyYXdTaGFwZVRleHRzOiBEcmF3VGV4dEluZm9bXSwgZWxlbWVudEc6IFNWR0VsZW1lbnQpOiB2b2lkO1xuICAgIHVwZGF0ZShlbGVtZW50OiBULCBwcmV2aW91c1RleHQ6IFBhcmFncmFwaEVsZW1lbnQsIGN1cnJlbnRUZXh0OiBQYXJhZ3JhcGhFbGVtZW50LCBlbGVtZW50RzogU1ZHRWxlbWVudCk6IHZvaWQ7XG4gICAgdXBkYXRlKFxuICAgICAgICBlbGVtZW50OiBULFxuICAgICAgICBwcmV2aW91c1RleHQ6IFBhcmFncmFwaEVsZW1lbnQgfCBEcmF3VGV4dEluZm9bXSxcbiAgICAgICAgY3VycmVudFRleHQ6IFBhcmFncmFwaEVsZW1lbnQgfCBEcmF3VGV4dEluZm9bXSxcbiAgICAgICAgZWxlbWVudEc6IFNWR0VsZW1lbnRcbiAgICApIHtcbiAgICAgICAgaWYgKCFpc011bHRpcGxlVGV4dEdlb21ldHJ5KChlbGVtZW50IGFzIHVua25vd24pIGFzIFBsYWl0Q29tbW9uR2VvbWV0cnkpKSB7XG4gICAgICAgICAgICBzdXBlci51cGRhdGUoXG4gICAgICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgICAgICBbeyB0ZXh0OiBwcmV2aW91c1RleHQgYXMgUGFyYWdyYXBoRWxlbWVudCwgaWQ6IGVsZW1lbnQuaWQsIHRleHRIZWlnaHQ6IGVsZW1lbnQudGV4dEhlaWdodCB9XSxcbiAgICAgICAgICAgICAgICBbeyB0ZXh0OiBjdXJyZW50VGV4dCBhcyBQYXJhZ3JhcGhFbGVtZW50LCBpZDogZWxlbWVudC5pZCwgdGV4dEhlaWdodDogZWxlbWVudC50ZXh0SGVpZ2h0IH1dLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRHXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,15 +1,21 @@
1
- import { ELEMENT_TO_TEXT_MANAGES, TextManage, WithTextPluginKey } from '@plait/common';
2
- import { RectangleClient } from '@plait/core';
1
+ import { TextManage, WithTextPluginKey } from '@plait/common';
2
+ import { PlaitElement, RectangleClient } from '@plait/core';
3
3
  import { getEngine } from '../engines';
4
4
  import { getTextKey, getTextRectangle } from '../utils';
5
+ // TODO: 是否可以完全基于位置定位 TextManager,实现 line 和 多文本 geometry 统一
6
+ // 一个元素有多个文本时,单纯通过位置无法获取 TextManage,因此这里单独通过 Map 保存关键字 key 和 TextManage 的对应关系
7
+ // 1. 单文本元素 key 就是元素的 id
8
+ // 2. 表格元素 key 是单元格的 id
9
+ // 3. 符合 isMultipleTextGeometry 的元素,key 是元素 id + text.id (通常不是 id 而是文本位置的常量)
10
+ // 4. arrow-line 和 vector-line 文本不依赖于 text.generator,基于 text 可以直接找到 TextManage
5
11
  export const KEY_TO_TEXT_MANAGE = new WeakMap();
6
- export const setTextManage = (board, key, textManage) => {
12
+ export const setTextManage = (board, element, text, textManage) => {
7
13
  const textManages = KEY_TO_TEXT_MANAGE.get(board);
8
- return KEY_TO_TEXT_MANAGE.set(board, { ...textManages, [key]: textManage });
14
+ return KEY_TO_TEXT_MANAGE.set(board, { ...textManages, [getTextKey(element, text)]: textManage });
9
15
  };
10
- export const getTextManage = (board, key) => {
16
+ export const getTextManage = (board, element, text) => {
11
17
  const textManages = KEY_TO_TEXT_MANAGE.get(board);
12
- return textManages[key];
18
+ return textManages[getTextKey(element, text)];
13
19
  };
14
20
  export const deleteTextManage = (board, key) => {
15
21
  const textManages = KEY_TO_TEXT_MANAGE.get(board);
@@ -31,15 +37,16 @@ export class TextGenerator {
31
37
  .textPlugins;
32
38
  this.textManages = this.texts.map(text => {
33
39
  const textManage = this.createTextManage(text, textPlugins);
34
- setTextManage(this.board, getTextKey(this.element, text), textManage);
40
+ setTextManage(this.board, this.element, text, textManage);
35
41
  return textManage;
36
42
  });
37
- ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
43
+ const ref = PlaitElement.getElementRef(this.element);
44
+ ref.initializeTextManage(this.textManages);
38
45
  }
39
46
  draw(elementG) {
40
47
  const centerPoint = RectangleClient.getCenterPoint(this.board.getRectangle(this.element));
41
48
  this.texts.forEach(drawShapeText => {
42
- const textManage = getTextManage(this.board, getTextKey(this.element, drawShapeText));
49
+ const textManage = getTextManage(this.board, this.element, drawShapeText);
43
50
  if (drawShapeText.text && textManage) {
44
51
  textManage.draw(drawShapeText.text);
45
52
  elementG.append(textManage.g);
@@ -49,30 +56,29 @@ export class TextGenerator {
49
56
  }
50
57
  update(element, previousDrawShapeTexts, currentDrawShapeTexts, elementG) {
51
58
  this.element = element;
52
- ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
53
59
  const centerPoint = RectangleClient.getCenterPoint(this.board.getRectangle(this.element));
54
60
  const textPlugins = (this.board.getPluginOptions(WithTextPluginKey) || {})
55
61
  .textPlugins;
56
62
  const removedTexts = previousDrawShapeTexts.filter(value => {
57
- return !currentDrawShapeTexts.find(item => item.key === value.key);
63
+ return !currentDrawShapeTexts.find(item => item.id === value.id);
58
64
  });
59
65
  if (removedTexts.length) {
60
66
  removedTexts.forEach(item => {
61
- const textManage = getTextManage(this.board, item.key);
67
+ const textManage = getTextManage(this.board, element, item);
62
68
  const index = this.textManages.findIndex(value => value === textManage);
63
69
  if (index > -1 && item.text && item.textHeight) {
64
70
  this.textManages.splice(index, 1);
65
71
  }
66
72
  textManage?.destroy();
67
- deleteTextManage(this.board, item.key);
73
+ deleteTextManage(this.board, item.id);
68
74
  });
69
75
  }
70
76
  currentDrawShapeTexts.forEach(drawShapeText => {
71
77
  if (drawShapeText.text) {
72
- let textManage = getTextManage(this.board, getTextKey(this.element, drawShapeText));
78
+ let textManage = getTextManage(this.board, this.element, drawShapeText);
73
79
  if (!textManage) {
74
80
  textManage = this.createTextManage(drawShapeText, textPlugins);
75
- setTextManage(this.board, drawShapeText.key, textManage);
81
+ setTextManage(this.board, element, drawShapeText, textManage);
76
82
  textManage.draw(drawShapeText.text);
77
83
  elementG.append(textManage.g);
78
84
  this.textManages.push(textManage);
@@ -114,14 +120,12 @@ export class TextGenerator {
114
120
  return this.options.getMaxWidth ? this.options.getMaxWidth() : this.getRectangle(text).width;
115
121
  }
116
122
  destroy() {
117
- this.textManages.forEach(manage => {
118
- manage.destroy();
119
- });
123
+ const ref = PlaitElement.getElementRef(this.element);
124
+ ref.destroyTextManage();
120
125
  this.textManages = [];
121
- ELEMENT_TO_TEXT_MANAGES.delete(this.element);
122
126
  this.texts.forEach(item => {
123
- deleteTextManage(this.board, item.key);
127
+ deleteTextManage(this.board, item.id);
124
128
  });
125
129
  }
126
130
  }
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsVUFBVSxFQUdWLGlCQUFpQixFQUVwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQStDLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFleEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXVELElBQUksT0FBTyxFQUFFLENBQUM7QUFFcEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxHQUFXLEVBQUUsVUFBc0IsRUFBRSxFQUFFO0lBQ3BGLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQztJQUNuRCxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDaEYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxHQUFXLEVBQWMsRUFBRTtJQUN4RSxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFFLENBQUM7SUFDbkQsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQy9ELE1B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QUFLLENBQUM7SUFDakcsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0Qix1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUyxcbiAgICBQYXJhZ3JhcGhFbGVtZW50LFxuICAgIFRleHRNYW5hZ2UsXG4gICAgVGV4dE1hbmFnZUNoYW5nZURhdGEsXG4gICAgVGV4dFBsdWdpbixcbiAgICBXaXRoVGV4dFBsdWdpbktleSxcbiAgICBXaXRoVGV4dFBsdWdpbk9wdGlvbnNcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0T3B0aW9uc0JvYXJkLCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRFbmdpbmUgfSBmcm9tICcuLi9lbmdpbmVzJztcbmltcG9ydCB7IERyYXdTaGFwZXMsIEVuZ2luZUV4dHJhRGF0YSwgUGxhaXRHZW9tZXRyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0VGV4dEtleSwgZ2V0VGV4dFJlY3RhbmdsZSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdERyYXdTaGFwZVRleHQgZXh0ZW5kcyBFbmdpbmVFeHRyYURhdGEge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHRleHQ6IFBhcmFncmFwaEVsZW1lbnQ7XG4gICAgdGV4dEhlaWdodDogbnVtYmVyO1xuICAgIGJvYXJkPzogUGxhaXRCb2FyZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0R2VuZXJhdG9yT3B0aW9uczxUPiB7XG4gICAgb25DaGFuZ2U6IChlbGVtZW50OiBULCB0ZXh0Q2hhbmdlUmVmOiBUZXh0TWFuYWdlQ2hhbmdlRGF0YSwgdGV4dDogUGxhaXREcmF3U2hhcGVUZXh0KSA9PiB2b2lkO1xuICAgIGdldFJlbmRlclJlY3RhbmdsZT86IChlbGVtZW50OiBULCB0ZXh0OiBQbGFpdERyYXdTaGFwZVRleHQpID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICBnZXRNYXhXaWR0aD86ICgpID0+IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IEtFWV9UT19URVhUX01BTkFHRTogV2Vha01hcDxQbGFpdEJvYXJkLCB7IFtrZXk6IHN0cmluZ106IFRleHRNYW5hZ2UgfT4gPSBuZXcgV2Vha01hcCgpO1xuXG5leHBvcnQgY29uc3Qgc2V0VGV4dE1hbmFnZSA9IChib2FyZDogUGxhaXRCb2FyZCwga2V5OiBzdHJpbmcsIHRleHRNYW5hZ2U6IFRleHRNYW5hZ2UpID0+IHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlcyA9IEtFWV9UT19URVhUX01BTkFHRS5nZXQoYm9hcmQpITtcbiAgICByZXR1cm4gS0VZX1RPX1RFWFRfTUFOQUdFLnNldChib2FyZCwgeyAuLi50ZXh0TWFuYWdlcywgW2tleV06IHRleHRNYW5hZ2UgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dE1hbmFnZSA9IChib2FyZDogUGxhaXRCb2FyZCwga2V5OiBzdHJpbmcpOiBUZXh0TWFuYWdlID0+IHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlcyA9IEtFWV9UT19URVhUX01BTkFHRS5nZXQoYm9hcmQpITtcbiAgICByZXR1cm4gdGV4dE1hbmFnZXNba2V5XTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVUZXh0TWFuYWdlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBrZXk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHRleHRNYW5hZ2VzID0gS0VZX1RPX1RFWFRfTUFOQUdFLmdldChib2FyZCkhO1xuICAgIGRlbGV0ZSB0ZXh0TWFuYWdlc1trZXldO1xuICAgIEtFWV9UT19URVhUX01BTkFHRS5zZXQoYm9hcmQsIHRleHRNYW5hZ2VzKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBUZXh0R2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEdlb21ldHJ5PiB7XG4gICAgcHJvdGVjdGVkIGJvYXJkOiBQbGFpdEJvYXJkO1xuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ6IFQ7XG5cbiAgICBwcm90ZWN0ZWQgdGV4dHM6IFBsYWl0RHJhd1NoYXBlVGV4dFtdO1xuXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IFRleHRHZW5lcmF0b3JPcHRpb25zPFQ+O1xuXG4gICAgcHVibGljIHRleHRNYW5hZ2VzITogVGV4dE1hbmFnZVtdO1xuXG4gICAgZ2V0IHNoYXBlKCk6IERyYXdTaGFwZXMge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LnNoYXBlIHx8IHRoaXMuZWxlbWVudC50eXBlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBULCB0ZXh0czogUGxhaXREcmF3U2hhcGVUZXh0W10sIG9wdGlvbnM6IFRleHRHZW5lcmF0b3JPcHRpb25zPFQ+KSB7XG4gICAgICAgIHRoaXMuYm9hcmQgPSBib2FyZDtcbiAgICAgICAgdGhpcy50ZXh0cyA9IHRleHRzO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKSB7XG4gICAgICAgIGNvbnN0IHRleHRQbHVnaW5zID0gKCh0aGlzLmJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5nZXRQbHVnaW5PcHRpb25zPFdpdGhUZXh0UGx1Z2luT3B0aW9ucz4oV2l0aFRleHRQbHVnaW5LZXkpIHx8IHt9KVxuICAgICAgICAgICAgLnRleHRQbHVnaW5zO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2VzID0gdGhpcy50ZXh0cy5tYXAodGV4dCA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gdGhpcy5jcmVhdGVUZXh0TWFuYWdlKHRleHQsIHRleHRQbHVnaW5zKTtcbiAgICAgICAgICAgIHNldFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgZ2V0VGV4dEtleSh0aGlzLmVsZW1lbnQsIHRleHQpLCB0ZXh0TWFuYWdlKTtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0TWFuYWdlO1xuICAgICAgICB9KTtcbiAgICAgICAgRUxFTUVOVF9UT19URVhUX01BTkFHRVMuc2V0KHRoaXMuZWxlbWVudCwgdGhpcy50ZXh0TWFuYWdlcyk7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50RzogU1ZHRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjZW50ZXJQb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludCh0aGlzLmJvYXJkLmdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQpISk7XG4gICAgICAgIHRoaXMudGV4dHMuZm9yRWFjaChkcmF3U2hhcGVUZXh0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlKHRoaXMuYm9hcmQsIGdldFRleHRLZXkodGhpcy5lbGVtZW50LCBkcmF3U2hhcGVUZXh0KSk7XG4gICAgICAgICAgICBpZiAoZHJhd1NoYXBlVGV4dC50ZXh0ICYmIHRleHRNYW5hZ2UpIHtcbiAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlLmRyYXcoZHJhd1NoYXBlVGV4dC50ZXh0KTtcbiAgICAgICAgICAgICAgICBlbGVtZW50Ry5hcHBlbmQodGV4dE1hbmFnZS5nKTtcbiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50LmFuZ2xlIHx8IHRoaXMuZWxlbWVudC5hbmdsZSA9PT0gMCkgJiYgdGV4dE1hbmFnZS51cGRhdGVBbmdsZShjZW50ZXJQb2ludCwgdGhpcy5lbGVtZW50LmFuZ2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlKGVsZW1lbnQ6IFQsIHByZXZpb3VzRHJhd1NoYXBlVGV4dHM6IFBsYWl0RHJhd1NoYXBlVGV4dFtdLCBjdXJyZW50RHJhd1NoYXBlVGV4dHM6IFBsYWl0RHJhd1NoYXBlVGV4dFtdLCBlbGVtZW50RzogU1ZHRWxlbWVudCkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUy5zZXQodGhpcy5lbGVtZW50LCB0aGlzLnRleHRNYW5hZ2VzKTtcbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQodGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50KSEpO1xuICAgICAgICBjb25zdCB0ZXh0UGx1Z2lucyA9ICgodGhpcy5ib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCkuZ2V0UGx1Z2luT3B0aW9uczxXaXRoVGV4dFBsdWdpbk9wdGlvbnM+KFdpdGhUZXh0UGx1Z2luS2V5KSB8fCB7fSlcbiAgICAgICAgICAgIC50ZXh0UGx1Z2lucztcbiAgICAgICAgY29uc3QgcmVtb3ZlZFRleHRzID0gcHJldmlvdXNEcmF3U2hhcGVUZXh0cy5maWx0ZXIodmFsdWUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFjdXJyZW50RHJhd1NoYXBlVGV4dHMuZmluZChpdGVtID0+IGl0ZW0ua2V5ID09PSB2YWx1ZS5rZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlbW92ZWRUZXh0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlbW92ZWRUZXh0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlKHRoaXMuYm9hcmQsIGl0ZW0ua2V5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudGV4dE1hbmFnZXMuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlID09PSB0ZXh0TWFuYWdlKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSAmJiBpdGVtLnRleHQgJiYgaXRlbS50ZXh0SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dE1hbmFnZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGV4dE1hbmFnZT8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZVRleHRNYW5hZ2UodGhpcy5ib2FyZCwgaXRlbS5rZXkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudERyYXdTaGFwZVRleHRzLmZvckVhY2goZHJhd1NoYXBlVGV4dCA9PiB7XG4gICAgICAgICAgICBpZiAoZHJhd1NoYXBlVGV4dC50ZXh0KSB7XG4gICAgICAgICAgICAgICAgbGV0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlKHRoaXMuYm9hcmQsIGdldFRleHRLZXkodGhpcy5lbGVtZW50LCBkcmF3U2hhcGVUZXh0KSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0TWFuYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UgPSB0aGlzLmNyZWF0ZVRleHRNYW5hZ2UoZHJhd1NoYXBlVGV4dCwgdGV4dFBsdWdpbnMpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUZXh0TWFuYWdlKHRoaXMuYm9hcmQsIGRyYXdTaGFwZVRleHQua2V5LCB0ZXh0TWFuYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZS5kcmF3KGRyYXdTaGFwZVRleHQudGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRHLmFwcGVuZCh0ZXh0TWFuYWdlLmcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRNYW5hZ2VzLnB1c2godGV4dE1hbmFnZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZS51cGRhdGVUZXh0KGRyYXdTaGFwZVRleHQudGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UudXBkYXRlUmVjdGFuZ2xlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICh0aGlzLmVsZW1lbnQuYW5nbGUgfHwgdGhpcy5lbGVtZW50LmFuZ2xlID09PSAwKSAmJiB0ZXh0TWFuYWdlLnVwZGF0ZUFuZ2xlKGNlbnRlclBvaW50LCB0aGlzLmVsZW1lbnQuYW5nbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVRleHRNYW5hZ2UodGV4dDogUGxhaXREcmF3U2hhcGVUZXh0LCB0ZXh0UGx1Z2lucz86IFRleHRQbHVnaW5bXSkge1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gbmV3IFRleHRNYW5hZ2UodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVjdGFuZ2xlKHRleHQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAoZGF0YTogVGV4dE1hbmFnZUNoYW5nZURhdGEpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm9uQ2hhbmdlKHRoaXMuZWxlbWVudCwgZGF0YSwgdGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TWF4V2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRNYXhXaWR0aCh0ZXh0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZW5kZXJSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldFJlbmRlclJlY3RhbmdsZSA/IHRoaXMub3B0aW9ucy5nZXRSZW5kZXJSZWN0YW5nbGUodGhpcy5lbGVtZW50LCB0ZXh0KSA6IHRoaXMuZ2V0UmVjdGFuZ2xlKHRleHQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRleHRQbHVnaW5zXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGV4dE1hbmFnZTtcbiAgICB9XG5cbiAgICBnZXRSZWN0YW5nbGUodGV4dDogUGxhaXREcmF3U2hhcGVUZXh0KSB7XG4gICAgICAgIGNvbnN0IGdldFJlY3RhbmdsZSA9IGdldEVuZ2luZTxUPih0aGlzLnNoYXBlKS5nZXRUZXh0UmVjdGFuZ2xlO1xuICAgICAgICBpZiAoZ2V0UmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCwgdGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFRleHRSZWN0YW5nbGUodGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXRNYXhXaWR0aCh0ZXh0OiBQbGFpdERyYXdTaGFwZVRleHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRNYXhXaWR0aCA/IHRoaXMub3B0aW9ucy5nZXRNYXhXaWR0aCgpIDogdGhpcy5nZXRSZWN0YW5nbGUodGV4dCkud2lkdGg7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlcy5mb3JFYWNoKG1hbmFnZSA9PiB7XG4gICAgICAgICAgICBtYW5hZ2UuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlcyA9IFtdO1xuICAgICAgICBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUy5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICAgICAgdGhpcy50ZXh0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgZGVsZXRlVGV4dE1hbmFnZSh0aGlzLmJvYXJkLCBpdGVtLmtleSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxVQUFVLEVBR1YsaUJBQWlCLEVBRXBCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxZQUFZLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFheEQsMkRBQTJEO0FBQzNELDZFQUE2RTtBQUM3RSx3QkFBd0I7QUFDeEIsdUJBQXVCO0FBQ3ZCLDRFQUE0RTtBQUM1RSw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXVELElBQUksT0FBTyxFQUFFLENBQUM7QUFFcEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFxQixFQUFFLElBQWtCLEVBQUUsVUFBc0IsRUFBRSxFQUFFO0lBQ2xILE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQztJQUNuRCxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ3RHLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBaUMsRUFBRSxJQUE4QixFQUFjLEVBQUU7SUFDOUgsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFD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SSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDakcsQ0FBQztJQUVELE9BQU87UUFDSCxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUF3QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBhcmFncmFwaEVsZW1lbnQsXG4gICAgUGxhaXRDb21tb25FbGVtZW50UmVmLFxuICAgIFRleHRNYW5hZ2UsXG4gICAgVGV4dE1hbmFnZUNoYW5nZURhdGEsXG4gICAgVGV4dFBsdWdpbixcbiAgICBXaXRoVGV4dFBsdWdpbktleSxcbiAgICBXaXRoVGV4dFBsdWdpbk9wdGlvbnNcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0T3B0aW9uc0JvYXJkLCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRFbmdpbmUgfSBmcm9tICcuLi9lbmdpbmVzJztcbmltcG9ydCB7IERyYXdTaGFwZXMsIFBsYWl0R2VvbWV0cnksIFRleHRSZWN0YW5nbGVPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRUZXh0S2V5LCBnZXRUZXh0UmVjdGFuZ2xlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyYXdUZXh0SW5mbyBleHRlbmRzIFRleHRSZWN0YW5nbGVPcHRpb25zIHtcbiAgICB0ZXh0OiBQYXJhZ3JhcGhFbGVtZW50O1xuICAgIHRleHRIZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0R2VuZXJhdG9yT3B0aW9uczxUPiB7XG4gICAgb25DaGFuZ2U6IChlbGVtZW50OiBULCB0ZXh0Q2hhbmdlUmVmOiBUZXh0TWFuYWdlQ2hhbmdlRGF0YSwgdGV4dDogRHJhd1RleHRJbmZvKSA9PiB2b2lkO1xuICAgIGdldFJlbmRlclJlY3RhbmdsZT86IChlbGVtZW50OiBULCB0ZXh0OiBEcmF3VGV4dEluZm8pID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICBnZXRNYXhXaWR0aD86ICgpID0+IG51bWJlcjtcbn1cblxuLy8gVE9ETzog5piv5ZCm5Y+v5Lul5a6M5YWo5Z+65LqO5L2N572u5a6a5L2NIFRleHRNYW5hZ2Vy77yM5a6e546wIGxpbmUg5ZKMIOWkmuaWh+acrCBnZW9tZXRyeSDnu5/kuIBcbi8vIOS4gOS4quWFg+e0oOacieWkmuS4quaWh+acrOaXtu+8jOWNlee6r+mAmui/h+S9jee9ruaXoOazleiOt+WPliBUZXh0TWFuYWdl77yM5Zug5q2k6L+Z6YeM5Y2V54us6YCa6L+HIE1hcCDkv53lrZjlhbPplK7lrZcga2V5IOWSjCBUZXh0TWFuYWdlIOeahOWvueW6lOWFs+ezu1xuLy8gMS4g5Y2V5paH5pys5YWD57SgIGtleSDlsLHmmK/lhYPntKDnmoQgaWRcbi8vIDIuIOihqOagvOWFg+e0oCBrZXkg5piv5Y2V5YWD5qC855qEIGlkXG4vLyAzLiDnrKblkIggaXNNdWx0aXBsZVRleHRHZW9tZXRyeSDnmoTlhYPntKDvvIxrZXkg5piv5YWD57SgIGlkICsgdGV4dC5pZCDvvIjpgJrluLjkuI3mmK8gaWQg6ICM5piv5paH5pys5L2N572u55qE5bi46YeP77yJXG4vLyA0LiBhcnJvdy1saW5lIOWSjCB2ZWN0b3ItbGluZSDmlofmnKzkuI3kvp3otZbkuo4gdGV4dC5nZW5lcmF0b3LvvIzln7rkuo4gdGV4dCDlj6/ku6Xnm7TmjqXmib7liLAgVGV4dE1hbmFnZVxuZXhwb3J0IGNvbnN0IEtFWV9UT19URVhUX01BTkFHRTogV2Vha01hcDxQbGFpdEJvYXJkLCB7IFtrZXk6IHN0cmluZ106IFRleHRNYW5hZ2UgfT4gPSBuZXcgV2Vha01hcCgpO1xuXG5leHBvcnQgY29uc3Qgc2V0VGV4dE1hbmFnZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50LCB0ZXh0OiBEcmF3VGV4dEluZm8sIHRleHRNYW5hZ2U6IFRleHRNYW5hZ2UpID0+IHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlcyA9IEtFWV9UT19URVhUX01BTkFHRS5nZXQoYm9hcmQpITtcbiAgICByZXR1cm4gS0VZX1RPX1RFWFRfTUFOQUdFLnNldChib2FyZCwgeyAuLi50ZXh0TWFuYWdlcywgW2dldFRleHRLZXkoZWxlbWVudCwgdGV4dCldOiB0ZXh0TWFuYWdlIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRNYW5hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCB8IHVuZGVmaW5lZCwgdGV4dDogUGljazxEcmF3VGV4dEluZm8sICdpZCc+KTogVGV4dE1hbmFnZSA9PiB7XG4gICAgY29uc3QgdGV4dE1hbmFnZXMgPSBLRVlfVE9fVEVYVF9NQU5BR0UuZ2V0KGJvYXJkKSE7XG4gICAgcmV0dXJuIHRleHRNYW5hZ2VzW2dldFRleHRLZXkoZWxlbWVudCwgdGV4dCldO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVRleHRNYW5hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgdGV4dE1hbmFnZXMgPSBLRVlfVE9fVEVYVF9NQU5BR0UuZ2V0KGJvYXJkKSE7XG4gICAgZGVsZXRlIHRleHRNYW5hZ2VzW2tleV07XG4gICAgS0VZX1RPX1RFWFRfTUFOQUdFLnNldChib2FyZCwgdGV4dE1hbmFnZXMpO1xufTtcblxuZXhwb3J0IGNsYXNzIFRleHRHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0R2VvbWV0cnk+IHtcbiAgICBwcm90ZWN0ZWQgYm9hcmQ6IFBsYWl0Qm9hcmQ7XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogVDtcblxuICAgIHByb3RlY3RlZCB0ZXh0czogRHJhd1RleHRJbmZvW107XG5cbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogVGV4dEdlbmVyYXRvck9wdGlvbnM8VD47XG5cbiAgICBwdWJsaWMgdGV4dE1hbmFnZXMhOiBUZXh0TWFuYWdlW107XG5cbiAgICBnZXQgc2hhcGUoKTogRHJhd1NoYXBlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuc2hhcGUgfHwgdGhpcy5lbGVtZW50LnR5cGU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFQsIHRleHRzOiBEcmF3VGV4dEluZm9bXSwgb3B0aW9uczogVGV4dEdlbmVyYXRvck9wdGlvbnM8VD4pIHtcbiAgICAgICAgdGhpcy5ib2FyZCA9IGJvYXJkO1xuICAgICAgICB0aGlzLnRleHRzID0gdGV4dHM7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgY29uc3QgdGV4dFBsdWdpbnMgPSAoKHRoaXMuYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLmdldFBsdWdpbk9wdGlvbnM8V2l0aFRleHRQbHVnaW5PcHRpb25zPihXaXRoVGV4dFBsdWdpbktleSkgfHwge30pXG4gICAgICAgICAgICAudGV4dFBsdWdpbnM7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZXMgPSB0aGlzLnRleHRzLm1hcCh0ZXh0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNYW5hZ2UgPSB0aGlzLmNyZWF0ZVRleHRNYW5hZ2UodGV4dCwgdGV4dFBsdWdpbnMpO1xuICAgICAgICAgICAgc2V0VGV4dE1hbmFnZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHRleHQsIHRleHRNYW5hZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIHRleHRNYW5hZ2U7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZWYgPSBQbGFpdEVsZW1lbnQuZ2V0RWxlbWVudFJlZjxQbGFpdENvbW1vbkVsZW1lbnRSZWY+KHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHJlZi5pbml0aWFsaXplVGV4dE1hbmFnZSh0aGlzLnRleHRNYW5hZ2VzKTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnRHOiBTVkdFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KHRoaXMuYm9hcmQuZ2V0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCkhKTtcbiAgICAgICAgdGhpcy50ZXh0cy5mb3JFYWNoKGRyYXdTaGFwZVRleHQgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50LCBkcmF3U2hhcGVUZXh0KTtcbiAgICAgICAgICAgIGlmIChkcmF3U2hhcGVUZXh0LnRleHQgJiYgdGV4dE1hbmFnZSkge1xuICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UuZHJhdyhkcmF3U2hhcGVUZXh0LnRleHQpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRHLmFwcGVuZCh0ZXh0TWFuYWdlLmcpO1xuICAgICAgICAgICAgICAgICh0aGlzLmVsZW1lbnQuYW5nbGUgfHwgdGhpcy5lbGVtZW50LmFuZ2xlID09PSAwKSAmJiB0ZXh0TWFuYWdlLnVwZGF0ZUFuZ2xlKGNlbnRlclBvaW50LCB0aGlzLmVsZW1lbnQuYW5nbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGUoZWxlbWVudDogVCwgcHJldmlvdXNEcmF3U2hhcGVUZXh0czogRHJhd1RleHRJbmZvW10sIGN1cnJlbnREcmF3U2hhcGVUZXh0czogRHJhd1RleHRJbmZvW10sIGVsZW1lbnRHOiBTVkdFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQodGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50KSEpO1xuICAgICAgICBjb25zdCB0ZXh0UGx1Z2lucyA9ICgodGhpcy5ib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCkuZ2V0UGx1Z2luT3B0aW9uczxXaXRoVGV4dFBsdWdpbk9wdGlvbnM+KFdpdGhUZXh0UGx1Z2luS2V5KSB8fCB7fSlcbiAgICAgICAgICAgIC50ZXh0UGx1Z2lucztcbiAgICAgICAgY29uc3QgcmVtb3ZlZFRleHRzID0gcHJldmlvdXNEcmF3U2hhcGVUZXh0cy5maWx0ZXIodmFsdWUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFjdXJyZW50RHJhd1NoYXBlVGV4dHMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHZhbHVlLmlkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZW1vdmVkVGV4dHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZW1vdmVkVGV4dHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZSh0aGlzLmJvYXJkLCBlbGVtZW50LCBpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudGV4dE1hbmFnZXMuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlID09PSB0ZXh0TWFuYWdlKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSAmJiBpdGVtLnRleHQgJiYgaXRlbS50ZXh0SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dE1hbmFnZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGV4dE1hbmFnZT8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZVRleHRNYW5hZ2UodGhpcy5ib2FyZCwgaXRlbS5pZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50RHJhd1NoYXBlVGV4dHMuZm9yRWFjaChkcmF3U2hhcGVUZXh0ID0+IHtcbiAgICAgICAgICAgIGlmIChkcmF3U2hhcGVUZXh0LnRleHQpIHtcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50LCBkcmF3U2hhcGVUZXh0KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRleHRNYW5hZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZSA9IHRoaXMuY3JlYXRlVGV4dE1hbmFnZShkcmF3U2hhcGVUZXh0LCB0ZXh0UGx1Z2lucyk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgZWxlbWVudCwgZHJhd1NoYXBlVGV4dCwgdGV4dE1hbmFnZSk7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UuZHJhdyhkcmF3U2hhcGVUZXh0LnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50Ry5hcHBlbmQodGV4dE1hbmFnZS5nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0TWFuYWdlcy5wdXNoKHRleHRNYW5hZ2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UudXBkYXRlVGV4dChkcmF3U2hhcGVUZXh0LnRleHQpO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50LmFuZ2xlIHx8IHRoaXMuZWxlbWVudC5hbmdsZSA9PT0gMCkgJiYgdGV4dE1hbmFnZS51cGRhdGVBbmdsZShjZW50ZXJQb2ludCwgdGhpcy5lbGVtZW50LmFuZ2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVUZXh0TWFuYWdlKHRleHQ6IERyYXdUZXh0SW5mbywgdGV4dFBsdWdpbnM/OiBUZXh0UGx1Z2luW10pIHtcbiAgICAgICAgY29uc3QgdGV4dE1hbmFnZSA9IG5ldyBUZXh0TWFuYWdlKHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFJlY3RhbmdsZSh0ZXh0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKGRhdGE6IFRleHRNYW5hZ2VDaGFuZ2VEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5vbkNoYW5nZSh0aGlzLmVsZW1lbnQsIGRhdGEsIHRleHQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWF4V2lkdGgodGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0UmVuZGVyUmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZW5kZXJSZWN0YW5nbGUgPyB0aGlzLm9wdGlvbnMuZ2V0UmVuZGVyUmVjdGFuZ2xlKHRoaXMuZWxlbWVudCwgdGV4dCkgOiB0aGlzLmdldFJlY3RhbmdsZSh0ZXh0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZXh0UGx1Z2luc1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRleHRNYW5hZ2U7XG4gICAgfVxuXG4gICAgZ2V0UmVjdGFuZ2xlKHRleHQ6IERyYXdUZXh0SW5mbykge1xuICAgICAgICBjb25zdCBnZXRSZWN0YW5nbGUgPSBnZXRFbmdpbmU8VD4odGhpcy5zaGFwZSkuZ2V0VGV4dFJlY3RhbmdsZTtcbiAgICAgICAgaWYgKGdldFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQsIHRleHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRUZXh0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0TWF4V2lkdGgodGV4dDogRHJhd1RleHRJbmZvKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGggPyB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGgoKSA6IHRoaXMuZ2V0UmVjdGFuZ2xlKHRleHQpLndpZHRoO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGNvbnN0IHJlZiA9IFBsYWl0RWxlbWVudC5nZXRFbGVtZW50UmVmPFBsYWl0Q29tbW9uRWxlbWVudFJlZj4odGhpcy5lbGVtZW50KTtcbiAgICAgICAgcmVmLmRlc3Ryb3lUZXh0TWFuYWdlKCk7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZXMgPSBbXTtcbiAgICAgICAgdGhpcy50ZXh0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgZGVsZXRlVGV4dE1hbmFnZSh0aGlzLmJvYXJkLCBpdGVtLmlkKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -60,8 +60,7 @@ export class GeometryComponent extends CommonElementFlavour {
60
60
  this.textGenerator && this.textGenerator.draw(this.getElementG());
61
61
  }
62
62
  onContextChanged(value, previous) {
63
- const isChangeTheme = this.board.operations.find(op => op.type === 'set_theme');
64
- if (value.element !== previous.element || isChangeTheme) {
63
+ if (value.element !== previous.element || value.hasThemeChanged) {
65
64
  this.shapeGenerator.processDrawing(this.element, this.getElementG());
66
65
  this.activeGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), { selected: this.selected });
67
66
  this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), {
@@ -92,8 +91,8 @@ export class GeometryComponent extends CommonElementFlavour {
92
91
  const onTextChange = (element, textManageChangeData, text) => {
93
92
  if (textManageChangeData.newText) {
94
93
  if (isMultipleTextGeometry(element)) {
95
- DrawTransforms.setDrawShapeText(this.board, element, {
96
- key: text.key,
94
+ DrawTransforms.setDrawTexts(this.board, element, {
95
+ id: text.id,
97
96
  text: textManageChangeData.newText,
98
97
  textHeight: textManageChangeData.height
99
98
  });
@@ -134,4 +133,4 @@ export class GeometryComponent extends CommonElementFlavour {
134
133
  this.textGenerator?.destroy();
135
134
  }
136
135
  }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VvbWV0cnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUcsT0FBTyxFQUFzQixhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQXFEO0lBVXhGO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4RSxjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxL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LE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDO29CQUNwRSxJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUNmLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQzlELENBQUM7b0JBQ0QsT0FBUSxJQUFJLENBQUMsT0FBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pHLENBQUM7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIE9uQ29udGV4dENoYW5nZWQsXG4gICAgaXNTZWxlY3Rpb25Nb3ZpbmcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFJlY3RhbmdsZUNsaWVudFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkdlb21ldHJ5LCBQbGFpdEdlb21ldHJ5LCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2dlb21ldHJ5JztcbmltcG9ydCB7IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvciwgQ29tbW9uRWxlbWVudEZsYXZvdXIsIFRleHRNYW5hZ2VDaGFuZ2VEYXRhLCBjYW5SZXNpemUgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9hcnJvdy1saW5lLWF1dG8tY29tcGxldGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUsIGlzR2VvbWV0cnlJbmNsdWRlVGV4dCwgaXNNdWx0aXBsZVRleHRHZW9tZXRyeSwgbWVtb3JpemVMYXRlc3RUZXh0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBQbGFpdERyYXdTaGFwZVRleHQsIFRleHRHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgU2luZ2xlVGV4dEdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9zaW5nbGUtdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRUZXh0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlb21ldHJ5VGhyZXNob2xkIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RW5naW5lIH0gZnJvbSAnLi9lbmdpbmVzJztcblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5Q29tcG9uZW50IGV4dGVuZHMgQ29tbW9uRWxlbWVudEZsYXZvdXI8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD5cbiAgICBpbXBsZW1lbnRzIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD4ge1xuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdENvbW1vbkdlb21ldHJ5PjtcblxuICAgIGxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IhOiBBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I7XG5cbiAgICBzaGFwZUdlbmVyYXRvciE6IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3I7XG5cbiAgICB0ZXh0R2VuZXJhdG9yITogVGV4dEdlbmVyYXRvcjxQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5PiB8IFNpbmdsZVRleHRHZW5lcmF0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplR2VuZXJhdG9yKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3I8UGxhaXRDb21tb25HZW9tZXRyeT4odGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFzUmVzaXplSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhblJlc2l6ZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yID0gbmV3IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvciA9IG5ldyBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICBpZiAoaXNHZW9tZXRyeUluY2x1ZGVUZXh0KHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3Iua2V5LCB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IpO1xuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBY3RpdmVHZW5lcmF0b3Iua2V5LCB0aGlzLmFjdGl2ZUdlbmVyYXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yICYmIHRoaXMudGV4dEdlbmVyYXRvci5kcmF3KHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0Qm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGlzQ2hhbmdlVGhlbWUgPSB0aGlzLmJvYXJkLm9wZXJhdGlvbnMuZmluZChvcCA9PiBvcC50eXBlID09PSAnc2V0X3RoZW1lJyk7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50IHx8IGlzQ2hhbmdlVGhlbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hhcGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQgfSk7XG4gICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgJiYgdGhpcy51cGRhdGVUZXh0KHByZXZpb3VzLmVsZW1lbnQsIHZhbHVlLmVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZVNlbGVjdGVkID0gdmFsdWUuc2VsZWN0ZWQgPT09IHByZXZpb3VzLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZUhhbmRsZVN0YXRlID0gdGhpcy5hY3RpdmVHZW5lcmF0b3Iub3B0aW9ucy5oYXNSZXNpemVIYW5kbGUoKSA9PT0gdGhpcy5hY3RpdmVHZW5lcmF0b3IuaGFzUmVzaXplSGFuZGxlO1xuICAgICAgICAgICAgaWYgKCFoYXNTYW1lU2VsZWN0ZWQgfHwgIWhhc1NhbWVIYW5kbGVTdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVRleHQocHJldmlvdXNFbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCBjdXJyZW50RWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSkge1xuICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeSh0aGlzLmVsZW1lbnQpKSB7XG4gICAgICAgICAgICAodGhpcy50ZXh0R2VuZXJhdG9yIGFzIFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4pLnVwZGF0ZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNFbGVtZW50LnRleHRzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LnRleHRzLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudEcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICh0aGlzLnRleHRHZW5lcmF0b3IgYXMgU2luZ2xlVGV4dEdlbmVyYXRvcikudXBkYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgIHByZXZpb3VzRWxlbWVudC50ZXh0LFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LnRleHQsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRFbGVtZW50RygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKSB7XG4gICAgICAgIGNvbnN0IG9uVGV4dENoYW5nZSA9IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YTogVGV4dE1hbmFnZUNoYW5nZURhdGEsIHRleHQ6IFBsYWl0RHJhd1NoYXBlVGV4dCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm5ld1RleHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeShlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5zZXREcmF3U2hhcGVUZXh0KHRoaXMuYm9hcmQsIGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogdGV4dC5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5uZXdUZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEhlaWdodDogdGV4dE1hbmFnZUNoYW5nZURhdGEuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnNldFRleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEubmV3VGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLndpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5zZXRUZXh0U2l6ZSh0aGlzLmJvYXJkLCBlbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLndpZHRoLCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5oZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEub3BlcmF0aW9ucyAmJiBtZW1vcml6ZUxhdGVzdFRleHQoZWxlbWVudCwgdGV4dE1hbmFnZUNoYW5nZURhdGEub3BlcmF0aW9ucyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yID0gbmV3IFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4oXG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQgYXMgUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSxcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudGV4dHMhLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IG9uVGV4dENoYW5nZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgPSBuZXcgU2luZ2xlVGV4dEdlbmVyYXRvcih0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5lbGVtZW50LnRleHQsIHtcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogb25UZXh0Q2hhbmdlLFxuICAgICAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IGdldFRleHRSZWN0YW5nbGUodGhpcy5lbGVtZW50KS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0UmVjdGFuZ2xlID0gZ2V0RW5naW5lKHRoaXMuZWxlbWVudC5zaGFwZSkuZ2V0VGV4dFJlY3RhbmdsZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBnZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnkpLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodGhpcy5lbGVtZW50IGFzIFBsYWl0VGV4dCk/LmF1dG9TaXplID8gR2VvbWV0cnlUaHJlc2hvbGQuZGVmYXVsdFRleHRNYXhXaWR0aCA6IHdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvci5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvcj8uZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VvbWV0cnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUcsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQXFEO0lBVXhGO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4RSxjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxL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QUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQzlELENBQUM7b0JBQ0QsT0FBUSxJQUFJLENBQUMsT0FBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pHLENBQUM7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIE9uQ29udGV4dENoYW5nZWQsXG4gICAgaXNTZWxlY3Rpb25Nb3ZpbmcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFJlY3RhbmdsZUNsaWVudFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkdlb21ldHJ5LCBQbGFpdEdlb21ldHJ5LCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2dlb21ldHJ5JztcbmltcG9ydCB7IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvciwgQ29tbW9uRWxlbWVudEZsYXZvdXIsIFRleHRNYW5hZ2VDaGFuZ2VEYXRhLCBjYW5SZXNpemUgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9hcnJvdy1saW5lLWF1dG8tY29tcGxldGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUsIGlzR2VvbWV0cnlJbmNsdWRlVGV4dCwgaXNNdWx0aXBsZVRleHRHZW9tZXRyeSwgbWVtb3JpemVMYXRlc3RUZXh0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBEcmF3VGV4dEluZm8sIFRleHRHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgU2luZ2xlVGV4dEdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9zaW5nbGUtdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRUZXh0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlb21ldHJ5VGhyZXNob2xkIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RW5naW5lIH0gZnJvbSAnLi9lbmdpbmVzJztcblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5Q29tcG9uZW50IGV4dGVuZHMgQ29tbW9uRWxlbWVudEZsYXZvdXI8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD5cbiAgICBpbXBsZW1lbnRzIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD4ge1xuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdENvbW1vbkdlb21ldHJ5PjtcblxuICAgIGxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IhOiBBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I7XG5cbiAgICBzaGFwZUdlbmVyYXRvciE6IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3I7XG5cbiAgICB0ZXh0R2VuZXJhdG9yITogVGV4dEdlbmVyYXRvcjxQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5PiB8IFNpbmdsZVRleHRHZW5lcmF0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplR2VuZXJhdG9yKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3I8UGxhaXRDb21tb25HZW9tZXRyeT4odGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFzUmVzaXplSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhblJlc2l6ZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yID0gbmV3IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvciA9IG5ldyBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICBpZiAoaXNHZW9tZXRyeUluY2x1ZGVUZXh0KHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3Iua2V5LCB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IpO1xuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBY3RpdmVHZW5lcmF0b3Iua2V5LCB0aGlzLmFjdGl2ZUdlbmVyYXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yICYmIHRoaXMudGV4dEdlbmVyYXRvci5kcmF3KHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0Qm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50IHx8IHZhbHVlLmhhc1RoZW1lQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcbiAgICAgICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudGV4dEdlbmVyYXRvciAmJiB0aGlzLnVwZGF0ZVRleHQocHJldmlvdXMuZWxlbWVudCwgdmFsdWUuZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lU2VsZWN0ZWQgPSB2YWx1ZS5zZWxlY3RlZCA9PT0gcHJldmlvdXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lSGFuZGxlU3RhdGUgPSB0aGlzLmFjdGl2ZUdlbmVyYXRvci5vcHRpb25zLmhhc1Jlc2l6ZUhhbmRsZSgpID09PSB0aGlzLmFjdGl2ZUdlbmVyYXRvci5oYXNSZXNpemVIYW5kbGU7XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVTZWxlY3RlZCB8fCAhaGFzU2FtZUhhbmRsZVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlVGV4dChwcmV2aW91c0VsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnksIGN1cnJlbnRFbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5KSB7XG4gICAgICAgIGlmIChpc011bHRpcGxlVGV4dEdlb21ldHJ5KHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgICh0aGlzLnRleHRHZW5lcmF0b3IgYXMgVGV4dEdlbmVyYXRvcjxQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5PikudXBkYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCxcbiAgICAgICAgICAgICAgICBwcmV2aW91c0VsZW1lbnQudGV4dHMsXG4gICAgICAgICAgICAgICAgY3VycmVudEVsZW1lbnQudGV4dHMsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRFbGVtZW50RygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKHRoaXMudGV4dEdlbmVyYXRvciBhcyBTaW5nbGVUZXh0R2VuZXJhdG9yKS51cGRhdGUoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksXG4gICAgICAgICAgICAgICAgcHJldmlvdXNFbGVtZW50LnRleHQsXG4gICAgICAgICAgICAgICAgY3VycmVudEVsZW1lbnQudGV4dCxcbiAgICAgICAgICAgICAgICB0aGlzLmdldEVsZW1lbnRHKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0aWFsaXplVGV4dE1hbmFnZSgpIHtcbiAgICAgICAgY29uc3Qgb25UZXh0Q2hhbmdlID0gKGVsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnksIHRleHRNYW5hZ2VDaGFuZ2VEYXRhOiBUZXh0TWFuYWdlQ2hhbmdlRGF0YSwgdGV4dDogRHJhd1RleHRJbmZvKSA9PiB7XG4gICAgICAgICAgICBpZiAodGV4dE1hbmFnZUNoYW5nZURhdGEubmV3VGV4dCkge1xuICAgICAgICAgICAgICAgIGlmIChpc011bHRpcGxlVGV4dEdlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnNldERyYXdUZXh0cyh0aGlzLmJvYXJkLCBlbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdGV4dC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm5ld1RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0SGVpZ2h0OiB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5oZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgRHJhd1RyYW5zZm9ybXMuc2V0VGV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5uZXdUZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5oZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnNldFRleHRTaXplKHRoaXMuYm9hcmQsIGVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGV4dE1hbmFnZUNoYW5nZURhdGEud2lkdGgsIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLmhlaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5vcGVyYXRpb25zICYmIG1lbW9yaXplTGF0ZXN0VGV4dChlbGVtZW50LCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5vcGVyYXRpb25zKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeSh0aGlzLmVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgPSBuZXcgVGV4dEdlbmVyYXRvcjxQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5PihcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCBhcyBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC50ZXh0cyEsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogb25UZXh0Q2hhbmdlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGV4dEdlbmVyYXRvciA9IG5ldyBTaW5nbGVUZXh0R2VuZXJhdG9yKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCB0aGlzLmVsZW1lbnQudGV4dCwge1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBvblRleHRDaGFuZ2UsXG4gICAgICAgICAgICAgICAgZ2V0TWF4V2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gZ2V0VGV4dFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQpLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBnZXRSZWN0YW5nbGUgPSBnZXRFbmdpbmUodGhpcy5lbGVtZW50LnNoYXBlKS5nZXRUZXh0UmVjdGFuZ2xlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0UmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSkud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLmVsZW1lbnQgYXMgUGxhaXRUZXh0KT8uYXV0b1NpemUgPyBHZW9tZXRyeVRocmVzaG9sZC5kZWZhdWx0VGV4dE1heFdpZHRoIDogd2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yLmluaXRpYWxpemUoKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yPy5kZXN0cm95KCk7XG4gICAgfVxufVxuIl19