@plait/draw 0.60.0 → 0.62.0-next.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 (92) hide show
  1. package/constants/geometry.d.ts +41 -13
  2. package/constants/index.d.ts +2 -1
  3. package/constants/line.d.ts +1 -0
  4. package/constants/pointer.d.ts +2 -2
  5. package/constants/swimlane.d.ts +21 -0
  6. package/constants/text.d.ts +1 -0
  7. package/engines/uml/assembly.d.ts +2 -0
  8. package/engines/uml/component-box.d.ts +2 -0
  9. package/engines/uml/component.d.ts +2 -0
  10. package/engines/uml/provided-interface.d.ts +2 -0
  11. package/engines/uml/required-interface.d.ts +2 -0
  12. package/engines/uml/template.d.ts +2 -0
  13. package/esm2022/constants/geometry.mjs +30 -17
  14. package/esm2022/constants/index.mjs +3 -2
  15. package/esm2022/constants/line.mjs +2 -1
  16. package/esm2022/constants/pointer.mjs +3 -3
  17. package/esm2022/constants/swimlane.mjs +25 -0
  18. package/esm2022/constants/text.mjs +2 -0
  19. package/esm2022/engines/index.mjs +14 -2
  20. package/esm2022/engines/table/table.mjs +9 -3
  21. package/esm2022/engines/uml/assembly.mjs +56 -0
  22. package/esm2022/engines/uml/component-box.mjs +61 -0
  23. package/esm2022/engines/uml/component.mjs +72 -0
  24. package/esm2022/engines/uml/provided-interface.mjs +47 -0
  25. package/esm2022/engines/uml/required-interface.mjs +36 -0
  26. package/esm2022/engines/uml/template.mjs +47 -0
  27. package/esm2022/generators/single-text.generator.mjs +3 -3
  28. package/esm2022/generators/table.generator.mjs +1 -1
  29. package/esm2022/generators/text.generator.mjs +10 -13
  30. package/esm2022/geometry.component.mjs +12 -14
  31. package/esm2022/image.component.mjs +6 -8
  32. package/esm2022/interfaces/geometry.mjs +7 -10
  33. package/esm2022/interfaces/index.mjs +18 -8
  34. package/esm2022/interfaces/swimlane.mjs +13 -0
  35. package/esm2022/interfaces/table.mjs +5 -1
  36. package/esm2022/line.component.mjs +12 -13
  37. package/esm2022/plugins/with-draw-fragment.mjs +5 -2
  38. package/esm2022/plugins/with-draw.mjs +1 -1
  39. package/esm2022/plugins/with-geometry-create.mjs +4 -10
  40. package/esm2022/plugins/with-line-text.mjs +7 -8
  41. package/esm2022/plugins/with-swimlane-create.mjs +4 -4
  42. package/esm2022/plugins/with-swimlane.mjs +21 -2
  43. package/esm2022/plugins/with-table-resize.mjs +6 -5
  44. package/esm2022/plugins/with-table.mjs +28 -10
  45. package/esm2022/table.component.mjs +31 -12
  46. package/esm2022/transforms/geometry-text.mjs +8 -6
  47. package/esm2022/transforms/image.mjs +3 -3
  48. package/esm2022/transforms/index.mjs +5 -3
  49. package/esm2022/transforms/line.mjs +1 -1
  50. package/esm2022/transforms/multi-text-geometry-text.mjs +1 -1
  51. package/esm2022/transforms/swimlane.mjs +129 -37
  52. package/esm2022/utils/clipboard.mjs +27 -21
  53. package/esm2022/utils/common.mjs +6 -7
  54. package/esm2022/utils/geometry.mjs +4 -4
  55. package/esm2022/utils/hit.mjs +2 -2
  56. package/esm2022/utils/index.mjs +4 -1
  57. package/esm2022/utils/multi-text-geometry.mjs +2 -2
  58. package/esm2022/utils/selected.mjs +3 -8
  59. package/esm2022/utils/swimlane.mjs +66 -77
  60. package/esm2022/utils/table-selected.mjs +26 -0
  61. package/esm2022/utils/table.mjs +26 -1
  62. package/esm2022/utils/uml.mjs +2 -2
  63. package/fesm2022/plait-draw.mjs +848 -309
  64. package/fesm2022/plait-draw.mjs.map +1 -1
  65. package/generators/single-text.generator.d.ts +3 -4
  66. package/generators/table.generator.d.ts +2 -2
  67. package/generators/text.generator.d.ts +3 -6
  68. package/image.component.d.ts +0 -1
  69. package/interfaces/geometry.d.ts +15 -24
  70. package/interfaces/index.d.ts +11 -6
  71. package/interfaces/swimlane.d.ts +22 -0
  72. package/interfaces/table.d.ts +13 -4
  73. package/line.component.d.ts +1 -2
  74. package/package.json +1 -3
  75. package/plugins/with-geometry-create.d.ts +1 -1
  76. package/plugins/with-swimlane-create.d.ts +1 -1
  77. package/plugins/with-swimlane.d.ts +3 -2
  78. package/plugins/with-table-resize.d.ts +1 -1
  79. package/plugins/with-table.d.ts +1 -4
  80. package/transforms/index.d.ts +7 -5
  81. package/transforms/swimlane.d.ts +8 -5
  82. package/utils/clipboard.d.ts +4 -3
  83. package/utils/common.d.ts +5 -5
  84. package/utils/geometry.d.ts +16 -1
  85. package/utils/index.d.ts +3 -0
  86. package/utils/selected.d.ts +2 -4
  87. package/utils/shape.d.ts +1 -1
  88. package/utils/swimlane.d.ts +11 -26
  89. package/utils/table-selected.d.ts +9 -0
  90. package/utils/table.d.ts +10 -9
  91. package/constants/draw.d.ts +0 -1
  92. package/esm2022/constants/draw.mjs +0 -2
@@ -97,4 +97,4 @@ export const connectLineToGeometry = (board, lineElement, handle, geometryElemen
97
97
  resizeLine(board, { source, target }, path);
98
98
  }
99
99
  };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3RyYW5zZm9ybXMvbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBa0MsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RyxPQUFPLEVBRUgsYUFBYSxFQUliLFdBQVcsRUFDWCxnQkFBZ0IsRUFFaEIsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBMkIsRUFBRSxJQUFVLEVBQUUsRUFBRTtJQUNyRixVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFrQixFQUFFLEtBQWlCLEVBQUUsRUFBRTtJQUNyRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBa0IsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUNuRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxQixVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFNBQXdCLEVBQUUsTUFBc0IsRUFBRSxFQUFFO0lBQy9GLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRCxNQUFNLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQWtCLEVBQUUsRUFBRTtRQUM1QyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLE1BQU0sR0FBRyxTQUFTLEtBQUssYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNsRixNQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMvQixVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLGFBQWlDLEVBQUUsRUFBRTtJQUNqRixNQUFNLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ25CLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hDLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FDNUMsS0FBaUIsRUFDakIsUUFBdUIsRUFDdkIsSUFBb0QsRUFDdEQsRUFBRTtJQUNBLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUU7UUFDOUIsS0FBSyxFQUFFLENBQUMsT0FBcUIsRUFBRSxFQUFFO1lBQzdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVGLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSTtLQUM3QixDQUFnQixDQUFDO0lBQ2xCLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDbkQsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLE1BQU0sQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM3RCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNOLFFBQVEsRUFBRTt3QkFDTixDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07cUJBQ25CO29CQUNELElBQUk7aUJBQ1AsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6RSxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFdBQXNCLEVBQUUsTUFBcUIsRUFBRSxlQUE4QixFQUFFLEVBQUU7SUFDdEksTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEcsTUFBTSxVQUFVLEdBQXFCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDckYsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNiLElBQUksTUFBTSxHQUFlLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDNUMsSUFBSSxNQUFNLEdBQWUsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUM1QyxJQUFJLE1BQU0sS0FBSyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEMsTUFBTSxHQUFHO2dCQUNMLEdBQUcsTUFBTTtnQkFDVCxPQUFPLEVBQUUsZUFBZSxDQUFDLEVBQUU7Z0JBQzNCLFVBQVU7YUFDYixDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLEdBQUc7Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULE9BQU8sRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDM0IsVUFBVTthQUNiLENBQUM7UUFDTixDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckQsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aCwgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQb2ludE9mUmVjdGFuZ2xlLCBUcmFuc2Zvcm1zLCBmaW5kRWxlbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQge1xuICAgIExpbmVIYW5kbGUsXG4gICAgTGluZUhhbmRsZUtleSxcbiAgICBMaW5lTWFya2VyVHlwZSxcbiAgICBMaW5lU2hhcGUsXG4gICAgTGluZVRleHQsXG4gICAgTWVtb3JpemVLZXksXG4gICAgUGxhaXREcmF3RWxlbWVudCxcbiAgICBQbGFpdEdlb21ldHJ5LFxuICAgIFBsYWl0TGluZVxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IG1lbW9yaXplTGF0ZXN0IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBnZXRTZWxlY3RlZExpbmVFbGVtZW50cyB9IGZyb20gJy4uL3V0aWxzL3NlbGVjdGVkJztcbmltcG9ydCB7IGdldEhpdENvbm5lY3Rpb24sIGdldExpbmVQb2ludHMgfSBmcm9tICcuLi91dGlscy9saW5lL2xpbmUtYmFzaWMnO1xuXG5leHBvcnQgY29uc3QgcmVzaXplTGluZSA9IChib2FyZDogUGxhaXRCb2FyZCwgb3B0aW9uczogUGFydGlhbDxQbGFpdExpbmU+LCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBvcHRpb25zLCBwYXRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRMaW5lVGV4dHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0TGluZSwgdGV4dHM6IExpbmVUZXh0W10pID0+IHtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCB7IHRleHRzIH0sIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUxpbmVUZXh0ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdExpbmUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgdGV4dHMgPSBlbGVtZW50LnRleHRzPy5sZW5ndGggPyBbLi4uZWxlbWVudC50ZXh0c10gOiBbXTtcbiAgICBjb25zdCBuZXdUZXh0cyA9IFsuLi50ZXh0c107XG4gICAgbmV3VGV4dHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgdGV4dHM6IG5ld1RleHRzIH0sIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldExpbmVNYXJrID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBoYW5kbGVLZXk6IExpbmVIYW5kbGVLZXksIG1hcmtlcjogTGluZU1hcmtlclR5cGUpID0+IHtcbiAgICBtZW1vcml6ZUxhdGVzdChNZW1vcml6ZUtleS5saW5lLCBoYW5kbGVLZXksIG1hcmtlcik7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkTGluZUVsZW1lbnRzKGJvYXJkKTtcbiAgICBzZWxlY3RlZEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IFBsYWl0TGluZSkgPT4ge1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGxldCBoYW5kbGUgPSBoYW5kbGVLZXkgPT09IExpbmVIYW5kbGVLZXkuc291cmNlID8gZWxlbWVudC5zb3VyY2UgOiBlbGVtZW50LnRhcmdldDtcbiAgICAgICAgaGFuZGxlID0geyAuLi5oYW5kbGUsIG1hcmtlciB9O1xuICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgW2hhbmRsZUtleV06IGhhbmRsZSB9LCBwYXRoKTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRMaW5lU2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5ld1Byb3BlcnRpZXM6IFBhcnRpYWw8UGxhaXRMaW5lPikgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRMaW5lRWxlbWVudHMoYm9hcmQpO1xuICAgIGVsZW1lbnRzLm1hcChlbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgX3Byb3BlcnRpZXMgPSB7IC4uLm5ld1Byb3BlcnRpZXMgfTtcbiAgICAgICAgaWYgKGVsZW1lbnQuc2hhcGUgPT09IG5ld1Byb3BlcnRpZXMuc2hhcGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgX3Byb3BlcnRpZXMsIHBhdGgpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbGxlY3RMaW5lVXBkYXRlZFJlZnNCeUdlb21ldHJ5ID0gKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGdlb21ldHJ5OiBQbGFpdEdlb21ldHJ5LFxuICAgIHJlZnM6IHsgcHJvcGVydHk6IFBhcnRpYWw8UGxhaXRMaW5lPjsgcGF0aDogUGF0aCB9W11cbikgPT4ge1xuICAgIGNvbnN0IGxpbmVzID0gZmluZEVsZW1lbnRzKGJvYXJkLCB7XG4gICAgICAgIG1hdGNoOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0xpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5zb3VyY2UuYm91bmRJZCA9PT0gZ2VvbWV0cnkuaWQgfHwgZWxlbWVudC50YXJnZXQuYm91bmRJZCA9PT0gZ2VvbWV0cnkuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIHJlY3Vyc2lvbjogZWxlbWVudCA9PiB0cnVlXG4gICAgfSkgYXMgUGxhaXRMaW5lW107XG4gICAgaWYgKGxpbmVzLmxlbmd0aCkge1xuICAgICAgICBsaW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNTb3VyY2VCb3VuZCA9IGxpbmUuc291cmNlLmJvdW5kSWQgPT09IGdlb21ldHJ5LmlkO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlID0gaXNTb3VyY2VCb3VuZCA/ICdzb3VyY2UnIDogJ3RhcmdldCc7XG4gICAgICAgICAgICBjb25zdCBvYmplY3QgPSB7IC4uLmxpbmVbaGFuZGxlXSB9O1xuICAgICAgICAgICAgY29uc3QgbGluZVBvaW50cyA9IGdldExpbmVQb2ludHMoYm9hcmQsIGxpbmUpO1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBpc1NvdXJjZUJvdW5kID8gbGluZVBvaW50c1swXSA6IGxpbmVQb2ludHNbbGluZVBvaW50cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIG9iamVjdC5jb25uZWN0aW9uID0gZ2V0SGl0Q29ubmVjdGlvbihib2FyZCwgcG9pbnQsIGdlb21ldHJ5KTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBsaW5lKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcmVmcy5maW5kSW5kZXgob2JqID0+IFBhdGguZXF1YWxzKG9iai5wYXRoLCBwYXRoKSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVmcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoYW5kbGVdOiBvYmplY3RcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWZzW2luZGV4XS5wcm9wZXJ0eSA9IHsgLi4ucmVmc1tpbmRleF0ucHJvcGVydHksIFtoYW5kbGVdOiBvYmplY3QgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNvbm5lY3RMaW5lVG9HZW9tZXRyeSA9IChib2FyZDogUGxhaXRCb2FyZCwgbGluZUVsZW1lbnQ6IFBsYWl0TGluZSwgaGFuZGxlOiBMaW5lSGFuZGxlS2V5LCBnZW9tZXRyeUVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpID0+IHtcbiAgICBjb25zdCBsaW5lUG9pbnRzID0gUGxhaXRMaW5lLmdldFBvaW50cyhib2FyZCwgbGluZUVsZW1lbnQpO1xuICAgIGNvbnN0IHBvaW50ID0gaGFuZGxlID09PSBMaW5lSGFuZGxlS2V5LnNvdXJjZSA/IGxpbmVQb2ludHNbMF0gOiBsaW5lUG9pbnRzW2xpbmVQb2ludHMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgY29ubmVjdGlvbjogUG9pbnRPZlJlY3RhbmdsZSA9IGdldEhpdENvbm5lY3Rpb24oYm9hcmQsIHBvaW50LCBnZW9tZXRyeUVsZW1lbnQpO1xuICAgIGlmIChjb25uZWN0aW9uKSB7XG4gICAgICAgIGxldCBzb3VyY2U6IExpbmVIYW5kbGUgPSBsaW5lRWxlbWVudC5zb3VyY2U7XG4gICAgICAgIGxldCB0YXJnZXQ6IExpbmVIYW5kbGUgPSBsaW5lRWxlbWVudC50YXJnZXQ7XG4gICAgICAgIGlmIChoYW5kbGUgPT09IExpbmVIYW5kbGVLZXkuc291cmNlKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB7XG4gICAgICAgICAgICAgICAgLi4uc291cmNlLFxuICAgICAgICAgICAgICAgIGJvdW5kSWQ6IGdlb21ldHJ5RWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGFyZ2V0ID0ge1xuICAgICAgICAgICAgICAgIC4uLnRhcmdldCxcbiAgICAgICAgICAgICAgICBib3VuZElkOiBnZW9tZXRyeUVsZW1lbnQuaWQsXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvblxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgbGluZUVsZW1lbnQpO1xuICAgICAgICByZXNpemVMaW5lKGJvYXJkLCB7IHNvdXJjZSwgdGFyZ2V0IH0sIHBhdGgpO1xuICAgIH1cbn07XG4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3RyYW5zZm9ybXMvbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBa0MsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RyxPQUFPLEVBRUgsYUFBYSxFQUdiLFdBQVcsRUFDWCxnQkFBZ0IsRUFFaEIsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBMkIsRUFBRSxJQUFVLEVBQUUsRUFBRTtJQUNyRixVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFrQixFQUFFLEtBQWlCLEVBQUUsRUFBRTtJQUNyRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBa0IsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUNuRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFB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QyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckQsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aCwgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQb2ludE9mUmVjdGFuZ2xlLCBUcmFuc2Zvcm1zLCBmaW5kRWxlbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQge1xuICAgIExpbmVIYW5kbGUsXG4gICAgTGluZUhhbmRsZUtleSxcbiAgICBMaW5lTWFya2VyVHlwZSxcbiAgICBMaW5lVGV4dCxcbiAgICBNZW1vcml6ZUtleSxcbiAgICBQbGFpdERyYXdFbGVtZW50LFxuICAgIFBsYWl0R2VvbWV0cnksXG4gICAgUGxhaXRMaW5lXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgbWVtb3JpemVMYXRlc3QgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldFNlbGVjdGVkTGluZUVsZW1lbnRzIH0gZnJvbSAnLi4vdXRpbHMvc2VsZWN0ZWQnO1xuaW1wb3J0IHsgZ2V0SGl0Q29ubmVjdGlvbiwgZ2V0TGluZVBvaW50cyB9IGZyb20gJy4uL3V0aWxzL2xpbmUvbGluZS1iYXNpYyc7XG5cbmV4cG9ydCBjb25zdCByZXNpemVMaW5lID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBvcHRpb25zOiBQYXJ0aWFsPFBsYWl0TGluZT4sIHBhdGg6IFBhdGgpID0+IHtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG9wdGlvbnMsIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldExpbmVUZXh0cyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRMaW5lLCB0ZXh0czogTGluZVRleHRbXSkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgdGV4dHMgfSwgcGF0aCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTGluZVRleHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0TGluZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCB0ZXh0cyA9IGVsZW1lbnQudGV4dHM/Lmxlbmd0aCA/IFsuLi5lbGVtZW50LnRleHRzXSA6IFtdO1xuICAgIGNvbnN0IG5ld1RleHRzID0gWy4uLnRleHRzXTtcbiAgICBuZXdUZXh0cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyB0ZXh0czogbmV3VGV4dHMgfSwgcGF0aCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0TGluZU1hcmsgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGhhbmRsZUtleTogTGluZUhhbmRsZUtleSwgbWFya2VyOiBMaW5lTWFya2VyVHlwZSkgPT4ge1xuICAgIG1lbW9yaXplTGF0ZXN0KE1lbW9yaXplS2V5LmxpbmUsIGhhbmRsZUtleSwgbWFya2VyKTtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRMaW5lRWxlbWVudHMoYm9hcmQpO1xuICAgIHNlbGVjdGVkRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogUGxhaXRMaW5lKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgbGV0IGhhbmRsZSA9IGhhbmRsZUtleSA9PT0gTGluZUhhbmRsZUtleS5zb3VyY2UgPyBlbGVtZW50LnNvdXJjZSA6IGVsZW1lbnQudGFyZ2V0O1xuICAgICAgICBoYW5kbGUgPSB7IC4uLmhhbmRsZSwgbWFya2VyIH07XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBbaGFuZGxlS2V5XTogaGFuZGxlIH0sIHBhdGgpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldExpbmVTaGFwZSA9IChib2FyZDogUGxhaXRCb2FyZCwgbmV3UHJvcGVydGllczogUGFydGlhbDxQbGFpdExpbmU+KSA9PiB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBnZXRTZWxlY3RlZExpbmVFbGVtZW50cyhib2FyZCk7XG4gICAgZWxlbWVudHMubWFwKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBfcHJvcGVydGllcyA9IHsgLi4ubmV3UHJvcGVydGllcyB9O1xuICAgICAgICBpZiAoZWxlbWVudC5zaGFwZSA9PT0gbmV3UHJvcGVydGllcy5zaGFwZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBfcHJvcGVydGllcywgcGF0aCk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29sbGVjdExpbmVVcGRhdGVkUmVmc0J5R2VvbWV0cnkgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgZ2VvbWV0cnk6IFBsYWl0R2VvbWV0cnksXG4gICAgcmVmczogeyBwcm9wZXJ0eTogUGFydGlhbDxQbGFpdExpbmU+OyBwYXRoOiBQYXRoIH1bXVxuKSA9PiB7XG4gICAgY29uc3QgbGluZXMgPSBmaW5kRWxlbWVudHMoYm9hcmQsIHtcbiAgICAgICAgbWF0Y2g6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzTGluZShlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnNvdXJjZS5ib3VuZElkID09PSBnZW9tZXRyeS5pZCB8fCBlbGVtZW50LnRhcmdldC5ib3VuZElkID09PSBnZW9tZXRyeS5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVjdXJzaW9uOiBlbGVtZW50ID0+IHRydWVcbiAgICB9KSBhcyBQbGFpdExpbmVbXTtcbiAgICBpZiAobGluZXMubGVuZ3RoKSB7XG4gICAgICAgIGxpbmVzLmZvckVhY2gobGluZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc1NvdXJjZUJvdW5kID0gbGluZS5zb3VyY2UuYm91bmRJZCA9PT0gZ2VvbWV0cnkuaWQ7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGUgPSBpc1NvdXJjZUJvdW5kID8gJ3NvdXJjZScgOiAndGFyZ2V0JztcbiAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHsgLi4ubGluZVtoYW5kbGVdIH07XG4gICAgICAgICAgICBjb25zdCBsaW5lUG9pbnRzID0gZ2V0TGluZVBvaW50cyhib2FyZCwgbGluZSk7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IGlzU291cmNlQm91bmQgPyBsaW5lUG9pbnRzWzBdIDogbGluZVBvaW50c1tsaW5lUG9pbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgb2JqZWN0LmNvbm5lY3Rpb24gPSBnZXRIaXRDb25uZWN0aW9uKGJvYXJkLCBwb2ludCwgZ2VvbWV0cnkpO1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGxpbmUpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSByZWZzLmZpbmRJbmRleChvYmogPT4gUGF0aC5lcXVhbHMob2JqLnBhdGgsIHBhdGgpKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZWZzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eToge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2hhbmRsZV06IG9iamVjdFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlZnNbaW5kZXhdLnByb3BlcnR5ID0geyAuLi5yZWZzW2luZGV4XS5wcm9wZXJ0eSwgW2hhbmRsZV06IG9iamVjdCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29ubmVjdExpbmVUb0dlb21ldHJ5ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBsaW5lRWxlbWVudDogUGxhaXRMaW5lLCBoYW5kbGU6IExpbmVIYW5kbGVLZXksIGdlb21ldHJ5RWxlbWVudDogUGxhaXRHZW9tZXRyeSkgPT4ge1xuICAgIGNvbnN0IGxpbmVQb2ludHMgPSBQbGFpdExpbmUuZ2V0UG9pbnRzKGJvYXJkLCBsaW5lRWxlbWVudCk7XG4gICAgY29uc3QgcG9pbnQgPSBoYW5kbGUgPT09IExpbmVIYW5kbGVLZXkuc291cmNlID8gbGluZVBvaW50c1swXSA6IGxpbmVQb2ludHNbbGluZVBvaW50cy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBjb25uZWN0aW9uOiBQb2ludE9mUmVjdGFuZ2xlID0gZ2V0SGl0Q29ubmVjdGlvbihib2FyZCwgcG9pbnQsIGdlb21ldHJ5RWxlbWVudCk7XG4gICAgaWYgKGNvbm5lY3Rpb24pIHtcbiAgICAgICAgbGV0IHNvdXJjZTogTGluZUhhbmRsZSA9IGxpbmVFbGVtZW50LnNvdXJjZTtcbiAgICAgICAgbGV0IHRhcmdldDogTGluZUhhbmRsZSA9IGxpbmVFbGVtZW50LnRhcmdldDtcbiAgICAgICAgaWYgKGhhbmRsZSA9PT0gTGluZUhhbmRsZUtleS5zb3VyY2UpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgICAuLi5zb3VyY2UsXG4gICAgICAgICAgICAgICAgYm91bmRJZDogZ2VvbWV0cnlFbGVtZW50LmlkLFxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXQgPSB7XG4gICAgICAgICAgICAgICAgLi4udGFyZ2V0LFxuICAgICAgICAgICAgICAgIGJvdW5kSWQ6IGdlb21ldHJ5RWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBsaW5lRWxlbWVudCk7XG4gICAgICAgIHJlc2l6ZUxpbmUoYm9hcmQsIHsgc291cmNlLCB0YXJnZXQgfSwgcGF0aCk7XG4gICAgfVxufTtcbiJdfQ==
@@ -12,4 +12,4 @@ export const setDrawShapeText = (board, element, text) => {
12
12
  const path = board.children.findIndex(child => child === element);
13
13
  Transforms.setNode(board, newElement, [path]);
14
14
  };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGV4dC1nZW9tZXRyeS10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdHJhbnNmb3Jtcy9tdWx0aS10ZXh0LWdlb21ldHJ5LXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJNUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQWtDLEVBQUUsSUFBd0IsRUFBRSxFQUFFO0lBQ2hILE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZDLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxVQUFVLEdBQUc7UUFDZixLQUFLLEVBQUUsUUFBUTtLQUNsQixDQUFDO0lBQ0YsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDbEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgVHJhbnNmb3JtcyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuXG5leHBvcnQgY29uc3Qgc2V0RHJhd1NoYXBlVGV4dCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwgdGV4dDogUGxhaXREcmF3U2hhcGVUZXh0KSA9PiB7XG4gICAgY29uc3QgbmV3VGV4dHMgPSBlbGVtZW50LnRleHRzPy5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmtleSA9PT0gdGV4dC5rZXkpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIC4uLnRleHQgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICB0ZXh0czogbmV3VGV4dHNcbiAgICB9O1xuICAgIGNvbnN0IHBhdGggPSBib2FyZC5jaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gY2hpbGQgPT09IGVsZW1lbnQpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgW3BhdGhdKTtcbn07XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGV4dC1nZW9tZXRyeS10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdHJhbnNmb3Jtcy9tdWx0aS10ZXh0LWdlb21ldHJ5LXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUlyRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBa0MsRUFBRSxJQUF3QixFQUFFLEVBQUU7SUFDaEgsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdkMsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN4QixPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLFVBQVUsR0FBRztRQUNmLEtBQUssRUFBRSxRQUFRO0tBQ2xCLENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQztJQUNsRSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdERyYXdTaGFwZVRleHQgfSBmcm9tICcuLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcblxuZXhwb3J0IGNvbnN0IHNldERyYXdTaGFwZVRleHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksIHRleHQ6IFBsYWl0RHJhd1NoYXBlVGV4dCkgPT4ge1xuICAgIGNvbnN0IG5ld1RleHRzID0gZWxlbWVudC50ZXh0cz8ubWFwKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoaXRlbS5rZXkgPT09IHRleHQua2V5KSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5pdGVtLCAuLi50ZXh0IH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfSk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHtcbiAgICAgICAgdGV4dHM6IG5ld1RleHRzXG4gICAgfTtcbiAgICBjb25zdCBwYXRoID0gYm9hcmQuY2hpbGRyZW4uZmluZEluZGV4KGNoaWxkID0+IGNoaWxkID09PSBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIFtwYXRoXSk7XG59O1xuIl19
@@ -1,70 +1,133 @@
1
1
  import { idCreator, PlaitBoard, RectangleClient, Transforms } from '@plait/core';
2
- import { PlaitDrawElement, SwimlaneSymbols } from '../interfaces';
2
+ import { PlaitDrawElement } from '../interfaces';
3
3
  import { getCellWithPoints } from '../utils/table';
4
- import { Alignment } from '@plait/text';
5
- export const addSwimlaneRow = (board, swimlane, index) => {
6
- if (PlaitDrawElement.isSwimlane(swimlane) && swimlane.shape === SwimlaneSymbols.swimlaneHorizontal) {
4
+ import { getSwimlaneCount } from '../utils/swimlane';
5
+ import { getSelectedCells } from '../utils';
6
+ import { Alignment } from '@plait/common';
7
+ export const updateSwimlaneCount = (board, swimlane, count) => {
8
+ if (count > 0 && PlaitDrawElement.isSwimlane(swimlane)) {
9
+ const currentCount = getSwimlaneCount(swimlane);
10
+ if (PlaitDrawElement.isHorizontalSwimlane(swimlane)) {
11
+ if (count > currentCount) {
12
+ addSwimlaneRow(board, swimlane, swimlane.rows.length, count - currentCount);
13
+ }
14
+ else {
15
+ const deleteIndex = swimlane.rows.length - (currentCount - count);
16
+ removeSwimlaneRow(board, swimlane, deleteIndex, currentCount - count);
17
+ }
18
+ }
19
+ if (PlaitDrawElement.isVerticalSwimlane(swimlane)) {
20
+ if (count > currentCount) {
21
+ addSwimlaneColumn(board, swimlane, swimlane.columns.length, count - currentCount);
22
+ }
23
+ else {
24
+ const deleteIndex = swimlane.columns.length - (currentCount - count);
25
+ removeSwimlaneColumn(board, swimlane, deleteIndex, currentCount - count);
26
+ }
27
+ }
28
+ }
29
+ };
30
+ export const addSwimlaneRow = (board, swimlane, index, count = 1) => {
31
+ if (PlaitDrawElement.isHorizontalSwimlane(swimlane)) {
7
32
  const newRows = [...swimlane.rows];
8
- const newRowId = idCreator();
9
- newRows.splice(index, 0, { id: newRowId });
10
- const newCells = [...swimlane.cells, ...createNewSwimlaneCells(swimlane, newRowId, 'column')];
33
+ const addRows = [];
34
+ for (let i = 0; i < count; i++) {
35
+ addRows.push({ id: idCreator() });
36
+ }
37
+ newRows.splice(index, 0, ...addRows);
38
+ const newCells = [...swimlane.cells];
39
+ addRows.forEach(item => {
40
+ newCells.push(...createNewSwimlaneCells(swimlane, item.id, 'column'));
41
+ });
11
42
  const lastCellPoints = getCellWithPoints(board, swimlane, swimlane.cells[swimlane.cells.length - 1].id).points;
12
43
  const lastRowHeight = RectangleClient.getRectangleByPoints(lastCellPoints).height;
13
- const newPoints = [swimlane.points[0], [swimlane.points[1][0], swimlane.points[1][1] + lastRowHeight]];
44
+ const newPoints = [swimlane.points[0], [swimlane.points[1][0], swimlane.points[1][1] + lastRowHeight * count]];
14
45
  updateSwimlane(board, swimlane, swimlane.columns, newRows, newCells, newPoints);
15
46
  }
16
47
  };
17
- export const addSwimlaneColumn = (board, swimlane, index) => {
18
- if (PlaitDrawElement.isSwimlane(swimlane) && swimlane.shape === SwimlaneSymbols.swimlaneVertical) {
48
+ export const addSwimlaneColumn = (board, swimlane, index, count = 1) => {
49
+ if (PlaitDrawElement.isVerticalSwimlane(swimlane)) {
19
50
  const newColumns = [...swimlane.columns];
20
- const newColumnId = idCreator();
21
- newColumns.splice(index, 0, { id: newColumnId });
22
- const newCells = [...swimlane.cells, ...createNewSwimlaneCells(swimlane, newColumnId, 'row')];
51
+ const addColumns = [];
52
+ for (let i = 0; i < count; i++) {
53
+ addColumns.push({ id: idCreator() });
54
+ }
55
+ newColumns.splice(index, 0, ...addColumns);
56
+ const newCells = [...swimlane.cells];
57
+ addColumns.forEach(item => {
58
+ newCells.push(...createNewSwimlaneCells(swimlane, item.id, 'row'));
59
+ });
23
60
  const lastCellPoints = getCellWithPoints(board, swimlane, swimlane.cells[swimlane.cells.length - 1].id).points;
24
61
  const lastColumnWidth = RectangleClient.getRectangleByPoints(lastCellPoints).width;
25
- const newPoints = [swimlane.points[0], [swimlane.points[1][0] + lastColumnWidth, swimlane.points[1][1]]];
62
+ const newPoints = [swimlane.points[0], [swimlane.points[1][0] + lastColumnWidth * count, swimlane.points[1][1]]];
26
63
  updateSwimlane(board, swimlane, newColumns, swimlane.rows, newCells, newPoints);
27
64
  }
28
65
  };
29
- export const removeSwimlaneRow = (board, swimlane, index) => {
30
- if (PlaitDrawElement.isSwimlane(swimlane) && swimlane.shape === SwimlaneSymbols.swimlaneHorizontal) {
66
+ export const removeSwimlaneRow = (board, swimlane, index, count = 1) => {
67
+ if (PlaitDrawElement.isHorizontalSwimlane(swimlane)) {
68
+ if (count > swimlane.rows.length) {
69
+ return;
70
+ }
31
71
  const newRows = [...swimlane.rows];
32
- newRows.splice(index, 1);
72
+ newRows.splice(index, count);
33
73
  if (newRows.length === 0) {
34
74
  const path = PlaitBoard.findPath(board, swimlane);
35
75
  Transforms.removeNode(board, path);
36
76
  }
37
77
  else {
38
- const removeRow = swimlane.rows[index];
39
- const newCells = swimlane.cells.filter(item => item.rowId !== removeRow.id);
40
- let removeRowHeight = removeRow.height;
41
- if (!removeRowHeight) {
42
- const rowCell = swimlane.cells.find(item => item.rowId === removeRow.id);
43
- const cellPoints = getCellWithPoints(board, swimlane, rowCell.id).points;
44
- removeRowHeight = RectangleClient.getRectangleByPoints(cellPoints).height;
78
+ let newCells = [...swimlane.cells];
79
+ const removeRows = [];
80
+ for (let i = index; i < count + index; i++) {
81
+ const removeRow = swimlane.rows[i];
82
+ removeRows.push(removeRow);
83
+ newCells = newCells.filter(item => item.rowId !== removeRow.id);
45
84
  }
85
+ let removeRowHeight = 0;
86
+ removeRows.forEach(row => {
87
+ if (!row.height) {
88
+ const rowCell = swimlane.cells.find(item => item.rowId === row.id);
89
+ const cellPoints = getCellWithPoints(board, swimlane, rowCell.id).points;
90
+ removeRowHeight += RectangleClient.getRectangleByPoints(cellPoints).height;
91
+ }
92
+ else {
93
+ removeRowHeight += row.height;
94
+ }
95
+ });
46
96
  const newPoints = [swimlane.points[0], [swimlane.points[1][0], swimlane.points[1][1] - removeRowHeight]];
47
97
  updateSwimlane(board, swimlane, swimlane.columns, newRows, newCells, newPoints);
48
98
  }
49
99
  }
50
100
  };
51
- export const removeSwimlaneColumn = (board, swimlane, index) => {
52
- if (PlaitDrawElement.isSwimlane(swimlane) && swimlane.shape === SwimlaneSymbols.swimlaneVertical) {
101
+ export const removeSwimlaneColumn = (board, swimlane, index, count = 1) => {
102
+ if (PlaitDrawElement.isVerticalSwimlane(swimlane)) {
103
+ if (count > swimlane.columns.length) {
104
+ return;
105
+ }
53
106
  const newColumns = [...swimlane.columns];
54
- newColumns.splice(index, 1);
107
+ newColumns.splice(index, count);
55
108
  if (newColumns.length === 0) {
56
109
  const path = PlaitBoard.findPath(board, swimlane);
57
110
  Transforms.removeNode(board, path);
58
111
  }
59
112
  else {
60
- const removeColumn = swimlane.columns[index];
61
- const newCells = swimlane.cells.filter(item => item.columnId !== removeColumn.id);
62
- let removeColumnWidth = removeColumn.width;
63
- if (!removeColumnWidth) {
64
- const columnCell = swimlane.cells.find(item => item.columnId === removeColumn.id);
65
- const cellPoints = getCellWithPoints(board, swimlane, columnCell.id).points;
66
- removeColumnWidth = RectangleClient.getRectangleByPoints(cellPoints).width;
113
+ let newCells = [...swimlane.cells];
114
+ const removeColumns = [];
115
+ for (let i = index; i < count + index; i++) {
116
+ const removeColumn = swimlane.columns[i];
117
+ removeColumns.push(removeColumn);
118
+ newCells = newCells.filter(item => item.columnId !== removeColumn.id);
67
119
  }
120
+ let removeColumnWidth = 0;
121
+ removeColumns.forEach(column => {
122
+ if (!column.width) {
123
+ const rowCell = swimlane.cells.find(item => item.columnId === column.id);
124
+ const cellPoints = getCellWithPoints(board, swimlane, rowCell.id).points;
125
+ removeColumnWidth += RectangleClient.getRectangleByPoints(cellPoints).width;
126
+ }
127
+ else {
128
+ removeColumnWidth += column.width;
129
+ }
130
+ });
68
131
  const newPoints = [swimlane.points[0], [swimlane.points[1][0] - removeColumnWidth, swimlane.points[1][1]]];
69
132
  updateSwimlane(board, swimlane, newColumns, swimlane.rows, newCells, newPoints);
70
133
  }
@@ -76,11 +139,13 @@ const createNewSwimlaneCells = (swimlane, newId, type) => {
76
139
  rowId: type === 'row' ? item.id : newId,
77
140
  columnId: type === 'row' ? newId : item.id
78
141
  }));
79
- cells.shift();
142
+ if (swimlane.header) {
143
+ cells.shift();
144
+ }
80
145
  cells[0] = {
81
146
  ...cells[0],
82
147
  text: {
83
- children: [{ text: 'Lane' }],
148
+ children: [{ text: swimlane.header ? 'Lane' : 'New Swimlane' }],
84
149
  align: Alignment.center,
85
150
  direction: type === 'row' ? undefined : 'vertical'
86
151
  },
@@ -97,4 +162,31 @@ const updateSwimlane = (board, swimlane, newColumns, newRows, newCells, newPoint
97
162
  points: newPoints
98
163
  }, path);
99
164
  };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy90cmFuc2Zvcm1zL3N3aW1sYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFTLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXVCLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDeEYsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNqRyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDL0csTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNsRixNQUFNLFNBQVMsR0FBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUVoSCxjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEYsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxRQUF1QixFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQzNGLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDL0YsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxNQUFNLFdBQVcsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUVqRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RixNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQy9HLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbkYsTUFBTSxTQUFTLEdBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEgsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsUUFBdUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUMzRixJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2pHLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLElBQUksZUFBZSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDdkMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNuQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBRSxDQUFDO2dCQUMxRSxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pFLGVBQWUsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzlFLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNsSCxjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEYsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsUUFBdUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUM5RixJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQy9GLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xGLElBQUksaUJBQWlCLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUMzQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxFQUFFLENBQUUsQ0FBQztnQkFDbkYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUM1RSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQy9FLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BILGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRixDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxRQUF1QixFQUFFLEtBQWEsRUFBRSxJQUFzQixFQUFvQixFQUFFO0lBQ2hILE1BQU0sS0FBSyxHQUFxQixRQUFRLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQ3ZDLFFBQVEsRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO0tBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0osS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2QsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHO1FBQ1AsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxFQUFFO1lBQ0YsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDNUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7U0FDckQ7UUFDRCxVQUFVLEVBQUUsRUFBRTtLQUNqQixDQUFDO0lBQ0YsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FDbkIsS0FBaUIsRUFDakIsUUFBdUIsRUFDdkIsVUFBNEMsRUFDNUMsT0FBMEMsRUFDMUMsUUFBMEIsRUFDMUIsU0FBa0IsRUFDcEIsRUFBRTtJQUNBLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELFVBQVUsQ0FBQyxPQUFPLENBQ2QsS0FBSyxFQUNMO1FBQ0ksT0FBTyxFQUFFLFVBQVU7UUFDbkIsSUFBSSxFQUFFLE9BQU87UUFDYixLQUFLLEVBQUUsUUFBUTtRQUNmLE1BQU0sRUFBRSxTQUFTO0tBQ3BCLEVBQ0QsSUFBSSxDQUNQLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpZENyZWF0b3IsIFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdERyYXdFbGVtZW50LCBQbGFpdFN3aW1sYW5lLCBTd2ltbGFuZVN5bWJvbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0VGFibGVDZWxsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uL3V0aWxzL3RhYmxlJztcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJ0BwbGFpdC90ZXh0JztcblxuZXhwb3J0IGNvbnN0IGFkZFN3aW1sYW5lUm93ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzU3dpbWxhbmUoc3dpbWxhbmUpICYmIHN3aW1sYW5lLnNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIGNvbnN0IG5ld1Jvd0lkID0gaWRDcmVhdG9yKCk7XG4gICAgICAgIG5ld1Jvd3Muc3BsaWNlKGluZGV4LCAwLCB7IGlkOiBuZXdSb3dJZCB9KTtcblxuICAgICAgICBjb25zdCBuZXdDZWxscyA9IFsuLi5zd2ltbGFuZS5jZWxscywgLi4uY3JlYXRlTmV3U3dpbWxhbmVDZWxscyhzd2ltbGFuZSwgbmV3Um93SWQsICdjb2x1bW4nKV07XG4gICAgICAgIGNvbnN0IGxhc3RDZWxsUG9pbnRzID0gZ2V0Q2VsbFdpdGhQb2ludHMoYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jZWxsc1tzd2ltbGFuZS5jZWxscy5sZW5ndGggLSAxXS5pZCkucG9pbnRzO1xuICAgICAgICBjb25zdCBsYXN0Um93SGVpZ2h0ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGxhc3RDZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0sIHN3aW1sYW5lLnBvaW50c1sxXVsxXSArIGxhc3RSb3dIZWlnaHRdXTtcblxuICAgICAgICB1cGRhdGVTd2ltbGFuZShib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNvbHVtbnMsIG5ld1Jvd3MsIG5ld0NlbGxzLCBuZXdQb2ludHMpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTd2ltbGFuZUNvbHVtbiA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1N3aW1sYW5lKHN3aW1sYW5lKSAmJiBzd2ltbGFuZS5zaGFwZSA9PT0gU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWwpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1ucyA9IFsuLi5zd2ltbGFuZS5jb2x1bW5zXTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uSWQgPSBpZENyZWF0b3IoKTtcbiAgICAgICAgbmV3Q29sdW1ucy5zcGxpY2UoaW5kZXgsIDAsIHsgaWQ6IG5ld0NvbHVtbklkIH0pO1xuXG4gICAgICAgIGNvbnN0IG5ld0NlbGxzID0gWy4uLnN3aW1sYW5lLmNlbGxzLCAuLi5jcmVhdGVOZXdTd2ltbGFuZUNlbGxzKHN3aW1sYW5lLCBuZXdDb2x1bW5JZCwgJ3JvdycpXTtcbiAgICAgICAgY29uc3QgbGFzdENlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNlbGxzW3N3aW1sYW5lLmNlbGxzLmxlbmd0aCAtIDFdLmlkKS5wb2ludHM7XG4gICAgICAgIGNvbnN0IGxhc3RDb2x1bW5XaWR0aCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhsYXN0Q2VsbFBvaW50cykud2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0gKyBsYXN0Q29sdW1uV2lkdGgsIHN3aW1sYW5lLnBvaW50c1sxXVsxXV1dO1xuXG4gICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgbmV3Q29sdW1ucywgc3dpbWxhbmUucm93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZVN3aW1sYW5lUm93ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzU3dpbWxhbmUoc3dpbWxhbmUpICYmIHN3aW1sYW5lLnNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIG5ld1Jvd3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgaWYgKG5ld1Jvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZVJvdyA9IHN3aW1sYW5lLnJvd3NbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBzd2ltbGFuZS5jZWxscy5maWx0ZXIoaXRlbSA9PiBpdGVtLnJvd0lkICE9PSByZW1vdmVSb3cuaWQpO1xuICAgICAgICAgICAgbGV0IHJlbW92ZVJvd0hlaWdodCA9IHJlbW92ZVJvdy5oZWlnaHQ7XG4gICAgICAgICAgICBpZiAoIXJlbW92ZVJvd0hlaWdodCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvd0NlbGwgPSBzd2ltbGFuZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5yb3dJZCA9PT0gcmVtb3ZlUm93LmlkKSE7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgcm93Q2VsbC5pZCkucG9pbnRzO1xuICAgICAgICAgICAgICAgIHJlbW92ZVJvd0hlaWdodCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdQb2ludHM6IFBvaW50W10gPSBbc3dpbWxhbmUucG9pbnRzWzBdLCBbc3dpbWxhbmUucG9pbnRzWzFdWzBdLCBzd2ltbGFuZS5wb2ludHNbMV1bMV0gLSByZW1vdmVSb3dIZWlnaHRdXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgc3dpbWxhbmUuY29sdW1ucywgbmV3Um93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU3dpbWxhbmVDb2x1bW4gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZShzd2ltbGFuZSkgJiYgc3dpbWxhbmUuc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsKSB7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbnMgPSBbLi4uc3dpbWxhbmUuY29sdW1uc107XG4gICAgICAgIG5ld0NvbHVtbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgaWYgKG5ld0NvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZUNvbHVtbiA9IHN3aW1sYW5lLmNvbHVtbnNbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBzd2ltbGFuZS5jZWxscy5maWx0ZXIoaXRlbSA9PiBpdGVtLmNvbHVtbklkICE9PSByZW1vdmVDb2x1bW4uaWQpO1xuICAgICAgICAgICAgbGV0IHJlbW92ZUNvbHVtbldpZHRoID0gcmVtb3ZlQ29sdW1uLndpZHRoO1xuICAgICAgICAgICAgaWYgKCFyZW1vdmVDb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbkNlbGwgPSBzd2ltbGFuZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5jb2x1bW5JZCA9PT0gcmVtb3ZlQ29sdW1uLmlkKSE7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgY29sdW1uQ2VsbC5pZCkucG9pbnRzO1xuICAgICAgICAgICAgICAgIHJlbW92ZUNvbHVtbldpZHRoID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGxQb2ludHMpLndpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV3UG9pbnRzOiBQb2ludFtdID0gW3N3aW1sYW5lLnBvaW50c1swXSwgW3N3aW1sYW5lLnBvaW50c1sxXVswXSAtIHJlbW92ZUNvbHVtbldpZHRoLCBzd2ltbGFuZS5wb2ludHNbMV1bMV1dXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgbmV3Q29sdW1ucywgc3dpbWxhbmUucm93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBjcmVhdGVOZXdTd2ltbGFuZUNlbGxzID0gKHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBuZXdJZDogc3RyaW5nLCB0eXBlOiAncm93JyB8ICdjb2x1bW4nKTogUGxhaXRUYWJsZUNlbGxbXSA9PiB7XG4gICAgY29uc3QgY2VsbHM6IFBsYWl0VGFibGVDZWxsW10gPSBzd2ltbGFuZVtgJHt0eXBlfXNgXS5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHJvd0lkOiB0eXBlID09PSAncm93JyA/IGl0ZW0uaWQgOiBuZXdJZCxcbiAgICAgICAgY29sdW1uSWQ6IHR5cGUgPT09ICdyb3cnID8gbmV3SWQgOiBpdGVtLmlkXG4gICAgfSkpO1xuICAgIGNlbGxzLnNoaWZ0KCk7XG4gICAgY2VsbHNbMF0gPSB7XG4gICAgICAgIC4uLmNlbGxzWzBdLFxuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dDogJ0xhbmUnIH1dLFxuICAgICAgICAgICAgYWxpZ246IEFsaWdubWVudC5jZW50ZXIsXG4gICAgICAgICAgICBkaXJlY3Rpb246IHR5cGUgPT09ICdyb3cnID8gdW5kZWZpbmVkIDogJ3ZlcnRpY2FsJ1xuICAgICAgICB9LFxuICAgICAgICB0ZXh0SGVpZ2h0OiAyMFxuICAgIH07XG4gICAgcmV0dXJuIGNlbGxzO1xufTtcblxuY29uc3QgdXBkYXRlU3dpbWxhbmUgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsXG4gICAgbmV3Q29sdW1uczogeyBpZDogc3RyaW5nOyB3aWR0aD86IG51bWJlciB9W10sXG4gICAgbmV3Um93czogeyBpZDogc3RyaW5nOyBoZWlnaHQ/OiBudW1iZXIgfVtdLFxuICAgIG5ld0NlbGxzOiBQbGFpdFRhYmxlQ2VsbFtdLFxuICAgIG5ld1BvaW50czogUG9pbnRbXVxuKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHN3aW1sYW5lKTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoXG4gICAgICAgIGJvYXJkLFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2x1bW5zOiBuZXdDb2x1bW5zLFxuICAgICAgICAgICAgcm93czogbmV3Um93cyxcbiAgICAgICAgICAgIGNlbGxzOiBuZXdDZWxscyxcbiAgICAgICAgICAgIHBvaW50czogbmV3UG9pbnRzXG4gICAgICAgIH0sXG4gICAgICAgIHBhdGhcbiAgICApO1xufTtcbiJdfQ==
165
+ export const setSwimlaneFill = (board, element, fill, path) => {
166
+ const selectedCells = getSelectedCells(element);
167
+ let newCells = element.cells;
168
+ if (selectedCells?.length) {
169
+ newCells = element.cells.map(cell => {
170
+ if (selectedCells.map(item => item.id).includes(cell.id)) {
171
+ return {
172
+ ...cell,
173
+ fill
174
+ };
175
+ }
176
+ return cell;
177
+ });
178
+ }
179
+ else {
180
+ newCells = element.cells.map(cell => {
181
+ if (cell.text && cell.textHeight) {
182
+ return {
183
+ ...cell,
184
+ fill
185
+ };
186
+ }
187
+ return cell;
188
+ });
189
+ }
190
+ Transforms.setNode(board, { cells: newCells }, path);
191
+ };
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy90cmFuc2Zvcm1zL3N3aW1sYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVEsVUFBVSxFQUFTLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsUUFBdUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUM3RixJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDckQsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBSSxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2xELElBQUksS0FBSyxHQUFHLFlBQVksRUFBRSxDQUFDO2dCQUN2QixjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUM7WUFDaEYsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsWUFBWSxHQUFHLEtBQUss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O0lBQ0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaWRDcmVhdG9yLCBQYXRoLCBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBUcmFuc2Zvcm1zIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRTd2ltbGFuZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUsIFBsYWl0VGFibGVDZWxsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uL3V0aWxzL3RhYmxlJztcbmltcG9ydCB7IGdldFN3aW1sYW5lQ291bnQgfSBmcm9tICcuLi91dGlscy9zd2ltbGFuZSc7XG5pbXBvcnQgeyBnZXRTZWxlY3RlZENlbGxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQWxpZ25tZW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVTd2ltbGFuZUNvdW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgY291bnQ6IG51bWJlcikgPT4ge1xuICAgIGlmIChjb3VudCA+IDAgJiYgUGxhaXREcmF3RWxlbWVudC5pc1N3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICBjb25zdCBjdXJyZW50Q291bnQgPSBnZXRTd2ltbGFuZUNvdW50KHN3aW1sYW5lKTtcbiAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNIb3Jpem9udGFsU3dpbWxhbmUoc3dpbWxhbmUpKSB7XG4gICAgICAgICAgICBpZiAoY291bnQgPiBjdXJyZW50Q291bnQpIHtcbiAgICAgICAgICAgICAgICBhZGRTd2ltbGFuZVJvdyhib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLnJvd3MubGVuZ3RoLCBjb3VudCAtIGN1cnJlbnRDb3VudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc3dpbWxhbmUucm93cy5sZW5ndGggLSAoY3VycmVudENvdW50IC0gY291bnQpO1xuICAgICAgICAgICAgICAgIHJlbW92ZVN3aW1sYW5lUm93KGJvYXJkLCBzd2ltbGFuZSwgZGVsZXRlSW5kZXgsIGN1cnJlbnRDb3VudCAtIGNvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1ZlcnRpY2FsU3dpbWxhbmUoc3dpbWxhbmUpKSB7XG4gICAgICAgICAgICBpZiAoY291bnQgPiBjdXJyZW50Q291bnQpIHtcbiAgICAgICAgICAgICAgICBhZGRTd2ltbGFuZUNvbHVtbihib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNvbHVtbnMubGVuZ3RoLCBjb3VudCAtIGN1cnJlbnRDb3VudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc3dpbWxhbmUuY29sdW1ucy5sZW5ndGggLSAoY3VycmVudENvdW50IC0gY291bnQpO1xuICAgICAgICAgICAgICAgIHJlbW92ZVN3aW1sYW5lQ29sdW1uKGJvYXJkLCBzd2ltbGFuZSwgZGVsZXRlSW5kZXgsIGN1cnJlbnRDb3VudCAtIGNvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTd2ltbGFuZVJvdyA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIgPSAxKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNIb3Jpem9udGFsU3dpbWxhbmUoc3dpbWxhbmUpKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIGNvbnN0IGFkZFJvd3M6IHsgaWQ6IHN0cmluZyB9W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBhZGRSb3dzLnB1c2goeyBpZDogaWRDcmVhdG9yKCkgfSk7XG4gICAgICAgIH1cbiAgICAgICAgbmV3Um93cy5zcGxpY2UoaW5kZXgsIDAsIC4uLmFkZFJvd3MpO1xuICAgICAgICBjb25zdCBuZXdDZWxscyA9IFsuLi5zd2ltbGFuZS5jZWxsc107XG4gICAgICAgIGFkZFJvd3MuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIG5ld0NlbGxzLnB1c2goLi4uY3JlYXRlTmV3U3dpbWxhbmVDZWxscyhzd2ltbGFuZSwgaXRlbS5pZCwgJ2NvbHVtbicpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxhc3RDZWxsUG9pbnRzID0gZ2V0Q2VsbFdpdGhQb2ludHMoYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jZWxsc1tzd2ltbGFuZS5jZWxscy5sZW5ndGggLSAxXS5pZCkucG9pbnRzO1xuICAgICAgICBjb25zdCBsYXN0Um93SGVpZ2h0ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGxhc3RDZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0sIHN3aW1sYW5lLnBvaW50c1sxXVsxXSArIGxhc3RSb3dIZWlnaHQgKiBjb3VudF1dO1xuICAgICAgICB1cGRhdGVTd2ltbGFuZShib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNvbHVtbnMsIG5ld1Jvd3MsIG5ld0NlbGxzLCBuZXdQb2ludHMpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTd2ltbGFuZUNvbHVtbiA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIgPSAxKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNWZXJ0aWNhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICBjb25zdCBuZXdDb2x1bW5zID0gWy4uLnN3aW1sYW5lLmNvbHVtbnNdO1xuICAgICAgICBjb25zdCBhZGRDb2x1bW5zOiB7IGlkOiBzdHJpbmcgfVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgYWRkQ29sdW1ucy5wdXNoKHsgaWQ6IGlkQ3JlYXRvcigpIH0pO1xuICAgICAgICB9XG4gICAgICAgIG5ld0NvbHVtbnMuc3BsaWNlKGluZGV4LCAwLCAuLi5hZGRDb2x1bW5zKTtcbiAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBbLi4uc3dpbWxhbmUuY2VsbHNdO1xuICAgICAgICBhZGRDb2x1bW5zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBuZXdDZWxscy5wdXNoKC4uLmNyZWF0ZU5ld1N3aW1sYW5lQ2VsbHMoc3dpbWxhbmUsIGl0ZW0uaWQsICdyb3cnKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBsYXN0Q2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgc3dpbWxhbmUuY2VsbHNbc3dpbWxhbmUuY2VsbHMubGVuZ3RoIC0gMV0uaWQpLnBvaW50cztcbiAgICAgICAgY29uc3QgbGFzdENvbHVtbldpZHRoID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGxhc3RDZWxsUG9pbnRzKS53aWR0aDtcbiAgICAgICAgY29uc3QgbmV3UG9pbnRzOiBQb2ludFtdID0gW3N3aW1sYW5lLnBvaW50c1swXSwgW3N3aW1sYW5lLnBvaW50c1sxXVswXSArIGxhc3RDb2x1bW5XaWR0aCAqIGNvdW50LCBzd2ltbGFuZS5wb2ludHNbMV1bMV1dXTtcblxuICAgICAgICB1cGRhdGVTd2ltbGFuZShib2FyZCwgc3dpbWxhbmUsIG5ld0NvbHVtbnMsIHN3aW1sYW5lLnJvd3MsIG5ld0NlbGxzLCBuZXdQb2ludHMpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTd2ltbGFuZVJvdyA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIgPSAxKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNIb3Jpem9udGFsU3dpbWxhbmUoc3dpbWxhbmUpKSB7XG4gICAgICAgIGlmIChjb3VudCA+IHN3aW1sYW5lLnJvd3MubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3Um93cyA9IFsuLi5zd2ltbGFuZS5yb3dzXTtcbiAgICAgICAgbmV3Um93cy5zcGxpY2UoaW5kZXgsIGNvdW50KTtcbiAgICAgICAgaWYgKG5ld1Jvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBuZXdDZWxscyA9IFsuLi5zd2ltbGFuZS5jZWxsc107XG4gICAgICAgICAgICBjb25zdCByZW1vdmVSb3dzID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCBjb3VudCArIGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW1vdmVSb3cgPSBzd2ltbGFuZS5yb3dzW2ldO1xuICAgICAgICAgICAgICAgIHJlbW92ZVJvd3MucHVzaChyZW1vdmVSb3cpO1xuICAgICAgICAgICAgICAgIG5ld0NlbGxzID0gbmV3Q2VsbHMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5yb3dJZCAhPT0gcmVtb3ZlUm93LmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByZW1vdmVSb3dIZWlnaHQgPSAwO1xuICAgICAgICAgICAgcmVtb3ZlUm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyb3cuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvd0NlbGwgPSBzd2ltbGFuZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5yb3dJZCA9PT0gcm93LmlkKSE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHJvd0NlbGwuaWQpLnBvaW50cztcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUm93SGVpZ2h0ICs9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUm93SGVpZ2h0ICs9IHJvdy5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0sIHN3aW1sYW5lLnBvaW50c1sxXVsxXSAtIHJlbW92ZVJvd0hlaWdodF1dO1xuICAgICAgICAgICAgdXBkYXRlU3dpbWxhbmUoYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jb2x1bW5zLCBuZXdSb3dzLCBuZXdDZWxscywgbmV3UG9pbnRzKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTd2ltbGFuZUNvbHVtbiA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIgPSAxKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNWZXJ0aWNhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICBpZiAoY291bnQgPiBzd2ltbGFuZS5jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbnMgPSBbLi4uc3dpbWxhbmUuY29sdW1uc107XG4gICAgICAgIG5ld0NvbHVtbnMuc3BsaWNlKGluZGV4LCBjb3VudCk7XG4gICAgICAgIGlmIChuZXdDb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHN3aW1sYW5lKTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZShib2FyZCwgcGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgbmV3Q2VsbHMgPSBbLi4uc3dpbWxhbmUuY2VsbHNdO1xuICAgICAgICAgICAgY29uc3QgcmVtb3ZlQ29sdW1ucyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgY291bnQgKyBpbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlQ29sdW1uID0gc3dpbWxhbmUuY29sdW1uc1tpXTtcbiAgICAgICAgICAgICAgICByZW1vdmVDb2x1bW5zLnB1c2gocmVtb3ZlQ29sdW1uKTtcbiAgICAgICAgICAgICAgICBuZXdDZWxscyA9IG5ld0NlbGxzLmZpbHRlcihpdGVtID0+IGl0ZW0uY29sdW1uSWQgIT09IHJlbW92ZUNvbHVtbi5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcmVtb3ZlQ29sdW1uV2lkdGggPSAwO1xuICAgICAgICAgICAgcmVtb3ZlQ29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFjb2x1bW4ud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93Q2VsbCA9IHN3aW1sYW5lLmNlbGxzLmZpbmQoaXRlbSA9PiBpdGVtLmNvbHVtbklkID09PSBjb2x1bW4uaWQpITtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgcm93Q2VsbC5pZCkucG9pbnRzO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDb2x1bW5XaWR0aCArPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbFBvaW50cykud2lkdGg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29sdW1uV2lkdGggKz0gY29sdW1uLndpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgbmV3UG9pbnRzOiBQb2ludFtdID0gW3N3aW1sYW5lLnBvaW50c1swXSwgW3N3aW1sYW5lLnBvaW50c1sxXVswXSAtIHJlbW92ZUNvbHVtbldpZHRoLCBzd2ltbGFuZS5wb2ludHNbMV1bMV1dXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgbmV3Q29sdW1ucywgc3dpbWxhbmUucm93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBjcmVhdGVOZXdTd2ltbGFuZUNlbGxzID0gKHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBuZXdJZDogc3RyaW5nLCB0eXBlOiAncm93JyB8ICdjb2x1bW4nKTogUGxhaXRUYWJsZUNlbGxbXSA9PiB7XG4gICAgY29uc3QgY2VsbHM6IFBsYWl0VGFibGVDZWxsW10gPSBzd2ltbGFuZVtgJHt0eXBlfXNgXS5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHJvd0lkOiB0eXBlID09PSAncm93JyA/IGl0ZW0uaWQgOiBuZXdJZCxcbiAgICAgICAgY29sdW1uSWQ6IHR5cGUgPT09ICdyb3cnID8gbmV3SWQgOiBpdGVtLmlkXG4gICAgfSkpO1xuICAgIGlmIChzd2ltbGFuZS5oZWFkZXIpIHtcbiAgICAgICAgY2VsbHMuc2hpZnQoKTtcbiAgICB9XG4gICAgY2VsbHNbMF0gPSB7XG4gICAgICAgIC4uLmNlbGxzWzBdLFxuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dDogc3dpbWxhbmUuaGVhZGVyID8gJ0xhbmUnIDogJ05ldyBTd2ltbGFuZScgfV0sXG4gICAgICAgICAgICBhbGlnbjogQWxpZ25tZW50LmNlbnRlcixcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdHlwZSA9PT0gJ3JvdycgPyB1bmRlZmluZWQgOiAndmVydGljYWwnXG4gICAgICAgIH0sXG4gICAgICAgIHRleHRIZWlnaHQ6IDIwXG4gICAgfTtcbiAgICByZXR1cm4gY2VsbHM7XG59O1xuXG5jb25zdCB1cGRhdGVTd2ltbGFuZSA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSxcbiAgICBuZXdDb2x1bW5zOiB7IGlkOiBzdHJpbmc7IHdpZHRoPzogbnVtYmVyIH1bXSxcbiAgICBuZXdSb3dzOiB7IGlkOiBzdHJpbmc7IGhlaWdodD86IG51bWJlciB9W10sXG4gICAgbmV3Q2VsbHM6IFBsYWl0VGFibGVDZWxsW10sXG4gICAgbmV3UG9pbnRzOiBQb2ludFtdXG4pID0+IHtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShcbiAgICAgICAgYm9hcmQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbHVtbnM6IG5ld0NvbHVtbnMsXG4gICAgICAgICAgICByb3dzOiBuZXdSb3dzLFxuICAgICAgICAgICAgY2VsbHM6IG5ld0NlbGxzLFxuICAgICAgICAgICAgcG9pbnRzOiBuZXdQb2ludHNcbiAgICAgICAgfSxcbiAgICAgICAgcGF0aFxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0U3dpbWxhbmVGaWxsID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEJhc2VUYWJsZSwgZmlsbDogc3RyaW5nLCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDZWxscyA9IGdldFNlbGVjdGVkQ2VsbHMoZWxlbWVudCk7XG4gICAgbGV0IG5ld0NlbGxzID0gZWxlbWVudC5jZWxscztcbiAgICBpZiAoc2VsZWN0ZWRDZWxscz8ubGVuZ3RoKSB7XG4gICAgICAgIG5ld0NlbGxzID0gZWxlbWVudC5jZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRDZWxscy5tYXAoaXRlbSA9PiBpdGVtLmlkKS5pbmNsdWRlcyhjZWxsLmlkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmNlbGwsXG4gICAgICAgICAgICAgICAgICAgIGZpbGxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0NlbGxzID0gZWxlbWVudC5jZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY2VsbC50ZXh0ICYmIGNlbGwudGV4dEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmNlbGwsXG4gICAgICAgICAgICAgICAgICAgIGZpbGxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgY2VsbHM6IG5ld0NlbGxzIH0sIHBhdGgpO1xufTtcbiJdfQ==
@@ -4,7 +4,7 @@ import { getConnectionPoint } from './line/line-common';
4
4
  import { updateCellIds, updateRowOrColumnIds } from './table';
5
5
  export const buildClipboardData = (board, elements, startPoint) => {
6
6
  return elements.map(element => {
7
- if (PlaitDrawElement.isGeometry(element) || PlaitDrawElement.isImage(element) || PlaitDrawElement.isTable(element)) {
7
+ if (PlaitDrawElement.isShapeElement(element)) {
8
8
  const points = element.points.map(point => [point[0] - startPoint[0], point[1] - startPoint[1]]);
9
9
  return { ...element, points };
10
10
  }
@@ -34,37 +34,28 @@ export const buildClipboardData = (board, elements, startPoint) => {
34
34
  };
35
35
  export const insertClipboardData = (board, elements, startPoint) => {
36
36
  const lines = elements.filter(value => PlaitDrawElement.isLine(value));
37
- const geometries = elements.filter(value => PlaitDrawElement.isGeometry(value) || PlaitDrawElement.isImage(value));
38
- const tables = elements.filter(value => PlaitDrawElement.isTable(value));
37
+ const geometries = elements.filter(value => (PlaitDrawElement.isGeometry(value) && !PlaitDrawElement.isGeometryByTable(value)) || PlaitDrawElement.isImage(value));
38
+ const tables = elements.filter(value => PlaitDrawElement.isElementByTable(value));
39
39
  geometries.forEach(element => {
40
- const sourceLines = [];
41
- const targetLines = [];
42
- lines.forEach(line => {
43
- if (PlaitLine.isBoundElementOfSource(line, element)) {
44
- sourceLines.push(line);
45
- }
46
- if (PlaitLine.isBoundElementOfTarget(line, element)) {
47
- targetLines.push(line);
48
- }
49
- });
50
- element.id = idCreator();
51
- // update lines
52
- sourceLines.forEach(sourceLine => (sourceLine.source.boundId = element.id));
53
- targetLines.forEach(targetLine => (targetLine.target.boundId = element.id));
40
+ const newId = idCreator();
41
+ updateBoundLinesId(element, lines, newId);
42
+ element.id = newId;
54
43
  element.points = element.points.map(point => [startPoint[0] + point[0], startPoint[1] + point[1]]);
55
44
  Transforms.insertNode(board, element, [board.children.length]);
56
45
  });
46
+ insertClipboardTableData(board, tables, startPoint, lines);
57
47
  lines.forEach(element => {
58
48
  element.id = idCreator();
59
49
  element.points = element.points.map(point => [startPoint[0] + point[0], startPoint[1] + point[1]]);
60
50
  Transforms.insertNode(board, element, [board.children.length]);
61
51
  });
62
- insertClipboardTableData(board, tables, startPoint);
63
52
  Transforms.addSelectionWithTemporaryElements(board, elements);
64
53
  };
65
- export const insertClipboardTableData = (board, elements, startPoint) => {
54
+ export const insertClipboardTableData = (board, elements, startPoint, lines) => {
66
55
  elements.forEach(element => {
67
- element.id = idCreator();
56
+ const newId = idCreator();
57
+ updateBoundLinesId(element, lines, newId);
58
+ element.id = newId;
68
59
  updateRowOrColumnIds(element, 'row');
69
60
  updateRowOrColumnIds(element, 'column');
70
61
  updateCellIds(element.cells);
@@ -72,4 +63,19 @@ export const insertClipboardTableData = (board, elements, startPoint) => {
72
63
  Transforms.insertNode(board, element, [board.children.length]);
73
64
  });
74
65
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsUUFBNEIsRUFBRSxVQUFpQixFQUFFLEVBQUU7SUFDckcsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzFCLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNqSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRyxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFtQixDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ25D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QUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIFRyYW5zZm9ybXMsIGdldEVsZW1lbnRCeUlkLCBpZENyZWF0b3IgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdERyYXdFbGVtZW50LCBQbGFpdEdlb21ldHJ5LCBQbGFpdExpbmUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0SW1hZ2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ltYWdlJztcbmltcG9ydCB7IGdldENvbm5lY3Rpb25Qb2ludCB9IGZyb20gJy4vbGluZS9saW5lLWNvbW1vbic7XG5pbXBvcnQgeyBQbGFpdFRhYmxlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyB1cGRhdGVDZWxsSWRzLCB1cGRhdGVSb3dPckNvbHVtbklkcyB9IGZyb20gJy4vdGFibGUnO1xuXG5leHBvcnQgY29uc3QgYnVpbGRDbGlwYm9hcmREYXRhID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogUGxhaXREcmF3RWxlbWVudFtdLCBzdGFydFBvaW50OiBQb2ludCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkgfHwgUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKGVsZW1lbnQpIHx8IFBsYWl0RHJhd0VsZW1lbnQuaXNUYWJsZShlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gZWxlbWVudC5wb2ludHMubWFwKHBvaW50ID0+IFtwb2ludFswXSAtIHN0YXJ0UG9pbnRbMF0sIHBvaW50WzFdIC0gc3RhcnRQb2ludFsxXV0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uZWxlbWVudCwgcG9pbnRzIH0gYXMgUGxhaXRHZW9tZXRyeTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0xpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGxldCBzb3VyY2UgPSB7IC4uLmVsZW1lbnQuc291cmNlIH07XG4gICAgICAgICAgICBsZXQgdGFyZ2V0ID0geyAuLi5lbGVtZW50LnRhcmdldCB9O1xuICAgICAgICAgICAgbGV0IHBvaW50cyA9IFsuLi5lbGVtZW50LnBvaW50c107XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5zb3VyY2UuYm91bmRJZCkge1xuICAgICAgICAgICAgICAgIHBvaW50c1swXSA9IGdldENvbm5lY3Rpb25Qb2ludChnZXRFbGVtZW50QnlJZDxQbGFpdEdlb21ldHJ5Pihib2FyZCwgZWxlbWVudC5zb3VyY2UuYm91bmRJZCkhLCBlbGVtZW50LnNvdXJjZS5jb25uZWN0aW9uISk7XG4gICAgICAgICAgICAgICAgaWYgKCFnZXRFbGVtZW50QnlJZChib2FyZCwgZWxlbWVudC5zb3VyY2UuYm91bmRJZCwgZWxlbWVudHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzb3VyY2UuYm91bmRJZDtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNvdXJjZS5jb25uZWN0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbGVtZW50LnRhcmdldC5ib3VuZElkKSB7XG4gICAgICAgICAgICAgICAgcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXSA9IGdldENvbm5lY3Rpb25Qb2ludChcbiAgICAgICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQ8UGxhaXRHZW9tZXRyeT4oYm9hcmQsIGVsZW1lbnQudGFyZ2V0LmJvdW5kSWQpISxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50YXJnZXQuY29ubmVjdGlvbiFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICghZ2V0RWxlbWVudEJ5SWQoYm9hcmQsIGVsZW1lbnQudGFyZ2V0LmJvdW5kSWQsIGVsZW1lbnRzKSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGFyZ2V0LmJvdW5kSWQ7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0YXJnZXQuY29ubmVjdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwb2ludHMgPSBwb2ludHMubWFwKHBvaW50ID0+IFtwb2ludFswXSAtIHN0YXJ0UG9pbnRbMF0sIHBvaW50WzFdIC0gc3RhcnRQb2ludFsxXV0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uZWxlbWVudCwgcG9pbnRzLCBzb3VyY2UsIHRhcmdldCB9IGFzIFBsYWl0TGluZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRDbGlwYm9hcmREYXRhID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogUGxhaXREcmF3RWxlbWVudFtdLCBzdGFydFBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IGxpbmVzID0gZWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNMaW5lKHZhbHVlKSkgYXMgUGxhaXRMaW5lW107XG4gICAgY29uc3QgZ2VvbWV0cmllcyA9IGVsZW1lbnRzLmZpbHRlcih2YWx1ZSA9PiBQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkodmFsdWUpIHx8IFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZSh2YWx1ZSkpIGFzIChcbiAgICAgICAgfCBQbGFpdEltYWdlXG4gICAgICAgIHwgUGxhaXRHZW9tZXRyeVxuICAgIClbXTtcbiAgICBjb25zdCB0YWJsZXMgPSBlbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc1RhYmxlKHZhbHVlKSkgYXMgUGxhaXRUYWJsZVtdO1xuXG4gICAgZ2VvbWV0cmllcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBzb3VyY2VMaW5lczogUGxhaXRMaW5lW10gPSBbXTtcbiAgICAgICAgY29uc3QgdGFyZ2V0TGluZXM6IFBsYWl0TGluZVtdID0gW107XG4gICAgICAgIGxpbmVzLmZvckVhY2gobGluZSA9PiB7XG4gICAgICAgICAgICBpZiAoUGxhaXRMaW5lLmlzQm91bmRFbGVtZW50T2ZTb3VyY2UobGluZSwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBzb3VyY2VMaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFBsYWl0TGluZS5pc0JvdW5kRWxlbWVudE9mVGFyZ2V0KGxpbmUsIGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0TGluZXMucHVzaChsaW5lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGVsZW1lbnQuaWQgPSBpZENyZWF0b3IoKTtcblxuICAgICAgICAvLyB1cGRhdGUgbGluZXNcbiAgICAgICAgc291cmNlTGluZXMuZm9yRWFjaChzb3VyY2VMaW5lID0+IChzb3VyY2VMaW5lLnNvdXJjZS5ib3VuZElkID0gZWxlbWVudC5pZCkpO1xuICAgICAgICB0YXJnZXRMaW5lcy5mb3JFYWNoKHRhcmdldExpbmUgPT4gKHRhcmdldExpbmUudGFyZ2V0LmJvdW5kSWQgPSBlbGVtZW50LmlkKSk7XG5cbiAgICAgICAgZWxlbWVudC5wb2ludHMgPSBlbGVtZW50LnBvaW50cy5tYXAocG9pbnQgPT4gW3N0YXJ0UG9pbnRbMF0gKyBwb2ludFswXSwgc3RhcnRQb2ludFsxXSArIHBvaW50WzFdXSkgYXMgW1BvaW50LCBQb2ludF07XG4gICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgZWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgIH0pO1xuICAgIGxpbmVzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGVsZW1lbnQuaWQgPSBpZENyZWF0b3IoKTtcbiAgICAgICAgZWxlbWVudC5wb2ludHMgPSBlbGVtZW50LnBvaW50cy5tYXAocG9pbnQgPT4gW3N0YXJ0UG9pbnRbMF0gKyBwb2ludFswXSwgc3RhcnRQb2ludFsxXSArIHBvaW50WzFdXSkgYXMgW1BvaW50LCBQb2ludF07XG4gICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgZWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgIH0pO1xuICAgIGluc2VydENsaXBib2FyZFRhYmxlRGF0YShib2FyZCwgdGFibGVzLCBzdGFydFBvaW50KTtcbiAgICBUcmFuc2Zvcm1zLmFkZFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50cyhib2FyZCwgZWxlbWVudHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydENsaXBib2FyZFRhYmxlRGF0YSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IFBsYWl0VGFibGVbXSwgc3RhcnRQb2ludDogUG9pbnQpID0+IHtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBlbGVtZW50LmlkID0gaWRDcmVhdG9yKCk7XG4gICAgICAgIHVwZGF0ZVJvd09yQ29sdW1uSWRzKGVsZW1lbnQsICdyb3cnKTtcbiAgICAgICAgdXBkYXRlUm93T3JDb2x1bW5JZHMoZWxlbWVudCwgJ2NvbHVtbicpO1xuICAgICAgICB1cGRhdGVDZWxsSWRzKGVsZW1lbnQuY2VsbHMpO1xuICAgICAgICBlbGVtZW50LnBvaW50cyA9IGVsZW1lbnQucG9pbnRzLm1hcChwb2ludCA9PiBbc3RhcnRQb2ludFswXSArIHBvaW50WzBdLCBzdGFydFBvaW50WzFdICsgcG9pbnRbMV1dKSBhcyBbUG9pbnQsIFBvaW50XTtcbiAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlKGJvYXJkLCBlbGVtZW50LCBbYm9hcmQuY2hpbGRyZW4ubGVuZ3RoXSk7XG4gICAgfSk7XG59O1xuIl19
66
+ export const updateBoundLinesId = (element, lines, newId) => {
67
+ const sourceLines = [];
68
+ const targetLines = [];
69
+ lines.forEach(line => {
70
+ if (PlaitLine.isBoundElementOfSource(line, element)) {
71
+ sourceLines.push(line);
72
+ }
73
+ if (PlaitLine.isBoundElementOfTarget(line, element)) {
74
+ targetLines.push(line);
75
+ }
76
+ });
77
+ // update lines
78
+ sourceLines.forEach(sourceLine => (sourceLine.source.boundId = newId));
79
+ targetLines.forEach(targetLine => (targetLine.target.boundId = newId));
80
+ };
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQTRCLEVBQUUsVUFBaUIsRUFBRSxFQUFFO0lBQ3JHLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMxQixJQUFJLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQW1CLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxNQUFNLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxJQUFJLE1BQU0sR0FBRyxF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LHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xELFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsZUFBZTtJQUNmLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgVHJhbnNmb3JtcywgZ2V0RWxlbWVudEJ5SWQsIGlkQ3JlYXRvciB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQsIFBsYWl0R2VvbWV0cnksIFBsYWl0TGluZSwgUGxhaXRTaGFwZUVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0SW1hZ2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ltYWdlJztcbmltcG9ydCB7IGdldENvbm5lY3Rpb25Qb2ludCB9IGZyb20gJy4vbGluZS9saW5lLWNvbW1vbic7XG5pbXBvcnQgeyBQbGFpdFRhYmxlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyB1cGRhdGVDZWxsSWRzLCB1cGRhdGVSb3dPckNvbHVtbklkcyB9IGZyb20gJy4vdGFibGUnO1xuXG5leHBvcnQgY29uc3QgYnVpbGRDbGlwYm9hcmREYXRhID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogUGxhaXREcmF3RWxlbWVudFtdLCBzdGFydFBvaW50OiBQb2ludCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzU2hhcGVFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBwb2ludHMgPSBlbGVtZW50LnBvaW50cy5tYXAocG9pbnQgPT4gW3BvaW50WzBdIC0gc3RhcnRQb2ludFswXSwgcG9pbnRbMV0gLSBzdGFydFBvaW50WzFdXSk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5lbGVtZW50LCBwb2ludHMgfSBhcyBQbGFpdEdlb21ldHJ5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzTGluZShlbGVtZW50KSkge1xuICAgICAgICAgICAgbGV0IHNvdXJjZSA9IHsgLi4uZWxlbWVudC5zb3VyY2UgfTtcbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSB7IC4uLmVsZW1lbnQudGFyZ2V0IH07XG4gICAgICAgICAgICBsZXQgcG9pbnRzID0gWy4uLmVsZW1lbnQucG9pbnRzXTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnNvdXJjZS5ib3VuZElkKSB7XG4gICAgICAgICAgICAgICAgcG9pbnRzWzBdID0gZ2V0Q29ubmVjdGlvblBvaW50KGdldEVsZW1lbnRCeUlkPFBsYWl0R2VvbWV0cnk+KGJvYXJkLCBlbGVtZW50LnNvdXJjZS5ib3VuZElkKSEsIGVsZW1lbnQuc291cmNlLmNvbm5lY3Rpb24hKTtcbiAgICAgICAgICAgICAgICBpZiAoIWdldEVsZW1lbnRCeUlkKGJvYXJkLCBlbGVtZW50LnNvdXJjZS5ib3VuZElkLCBlbGVtZW50cykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNvdXJjZS5ib3VuZElkO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgc291cmNlLmNvbm5lY3Rpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVsZW1lbnQudGFyZ2V0LmJvdW5kSWQpIHtcbiAgICAgICAgICAgICAgICBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdID0gZ2V0Q29ubmVjdGlvblBvaW50KFxuICAgICAgICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZDxQbGFpdEdlb21ldHJ5Pihib2FyZCwgZWxlbWVudC50YXJnZXQuYm91bmRJZCkhLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnRhcmdldC5jb25uZWN0aW9uIVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFnZXRFbGVtZW50QnlJZChib2FyZCwgZWxlbWVudC50YXJnZXQuYm91bmRJZCwgZWxlbWVudHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0YXJnZXQuYm91bmRJZDtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRhcmdldC5jb25uZWN0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBvaW50cyA9IHBvaW50cy5tYXAocG9pbnQgPT4gW3BvaW50WzBdIC0gc3RhcnRQb2ludFswXSwgcG9pbnRbMV0gLSBzdGFydFBvaW50WzFdXSk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5lbGVtZW50LCBwb2ludHMsIHNvdXJjZSwgdGFyZ2V0IH0gYXMgUGxhaXRMaW5lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydENsaXBib2FyZERhdGEgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdERyYXdFbGVtZW50W10sIHN0YXJ0UG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgbGluZXMgPSBlbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0xpbmUodmFsdWUpKSBhcyBQbGFpdExpbmVbXTtcbiAgICBjb25zdCBnZW9tZXRyaWVzID0gZWxlbWVudHMuZmlsdGVyKFxuICAgICAgICB2YWx1ZSA9PiAoUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KHZhbHVlKSAmJiAhUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5QnlUYWJsZSh2YWx1ZSkpIHx8IFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZSh2YWx1ZSlcbiAgICApIGFzIChQbGFpdEltYWdlIHwgUGxhaXRHZW9tZXRyeSlbXTtcbiAgICBjb25zdCB0YWJsZXMgPSBlbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0VsZW1lbnRCeVRhYmxlKHZhbHVlKSkgYXMgUGxhaXRUYWJsZVtdO1xuICAgIGdlb21ldHJpZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgbmV3SWQgPSBpZENyZWF0b3IoKTtcbiAgICAgICAgdXBkYXRlQm91bmRMaW5lc0lkKGVsZW1lbnQsIGxpbmVzLCBuZXdJZCk7XG4gICAgICAgIGVsZW1lbnQuaWQgPSBuZXdJZDtcbiAgICAgICAgZWxlbWVudC5wb2ludHMgPSBlbGVtZW50LnBvaW50cy5tYXAocG9pbnQgPT4gW3N0YXJ0UG9pbnRbMF0gKyBwb2ludFswXSwgc3RhcnRQb2ludFsxXSArIHBvaW50WzFdXSkgYXMgW1BvaW50LCBQb2ludF07XG4gICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgZWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgIH0pO1xuICAgIGluc2VydENsaXBib2FyZFRhYmxlRGF0YShib2FyZCwgdGFibGVzLCBzdGFydFBvaW50LCBsaW5lcyk7XG4gICAgbGluZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgZWxlbWVudC5pZCA9IGlkQ3JlYXRvcigpO1xuICAgICAgICBlbGVtZW50LnBvaW50cyA9IGVsZW1lbnQucG9pbnRzLm1hcChwb2ludCA9PiBbc3RhcnRQb2ludFswXSArIHBvaW50WzBdLCBzdGFydFBvaW50WzFdICsgcG9pbnRbMV1dKSBhcyBbUG9pbnQsIFBvaW50XTtcbiAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlKGJvYXJkLCBlbGVtZW50LCBbYm9hcmQuY2hpbGRyZW4ubGVuZ3RoXSk7XG4gICAgfSk7XG4gICAgVHJhbnNmb3Jtcy5hZGRTZWxlY3Rpb25XaXRoVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQsIGVsZW1lbnRzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRDbGlwYm9hcmRUYWJsZURhdGEgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdFRhYmxlW10sIHN0YXJ0UG9pbnQ6IFBvaW50LCBsaW5lczogUGxhaXRMaW5lW10pID0+IHtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBuZXdJZCA9IGlkQ3JlYXRvcigpO1xuICAgICAgICB1cGRhdGVCb3VuZExpbmVzSWQoZWxlbWVudCwgbGluZXMsIG5ld0lkKTtcbiAgICAgICAgZWxlbWVudC5pZCA9IG5ld0lkO1xuICAgICAgICB1cGRhdGVSb3dPckNvbHVtbklkcyhlbGVtZW50LCAncm93Jyk7XG4gICAgICAgIHVwZGF0ZVJvd09yQ29sdW1uSWRzKGVsZW1lbnQsICdjb2x1bW4nKTtcbiAgICAgICAgdXBkYXRlQ2VsbElkcyhlbGVtZW50LmNlbGxzKTtcbiAgICAgICAgZWxlbWVudC5wb2ludHMgPSBlbGVtZW50LnBvaW50cy5tYXAocG9pbnQgPT4gW3N0YXJ0UG9pbnRbMF0gKyBwb2ludFswXSwgc3RhcnRQb2ludFsxXSArIHBvaW50WzFdXSkgYXMgW1BvaW50LCBQb2ludF07XG4gICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgZWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUJvdW5kTGluZXNJZCA9IChlbGVtZW50OiBQbGFpdFNoYXBlRWxlbWVudCwgbGluZXM6IFBsYWl0TGluZVtdLCBuZXdJZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgc291cmNlTGluZXM6IFBsYWl0TGluZVtdID0gW107XG4gICAgY29uc3QgdGFyZ2V0TGluZXM6IFBsYWl0TGluZVtdID0gW107XG4gICAgbGluZXMuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgaWYgKFBsYWl0TGluZS5pc0JvdW5kRWxlbWVudE9mU291cmNlKGxpbmUsIGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBzb3VyY2VMaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChQbGFpdExpbmUuaXNCb3VuZEVsZW1lbnRPZlRhcmdldChsaW5lLCBlbGVtZW50KSkge1xuICAgICAgICAgICAgdGFyZ2V0TGluZXMucHVzaChsaW5lKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIHVwZGF0ZSBsaW5lc1xuICAgIHNvdXJjZUxpbmVzLmZvckVhY2goc291cmNlTGluZSA9PiAoc291cmNlTGluZS5zb3VyY2UuYm91bmRJZCA9IG5ld0lkKSk7XG4gICAgdGFyZ2V0TGluZXMuZm9yRWFjaCh0YXJnZXRMaW5lID0+ICh0YXJnZXRMaW5lLnRhcmdldC5ib3VuZElkID0gbmV3SWQpKTtcbn07XG4iXX0=