@plait/draw 0.60.0 → 0.61.1

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 (71) hide show
  1. package/constants/geometry.d.ts +40 -12
  2. package/constants/index.d.ts +1 -0
  3. package/constants/pointer.d.ts +2 -2
  4. package/constants/swimlane.d.ts +21 -0
  5. package/engines/uml/assembly.d.ts +2 -0
  6. package/engines/uml/component-box.d.ts +2 -0
  7. package/engines/uml/component.d.ts +2 -0
  8. package/engines/uml/provided-interface.d.ts +2 -0
  9. package/engines/uml/required-interface.d.ts +2 -0
  10. package/engines/uml/template.d.ts +2 -0
  11. package/esm2022/constants/geometry.mjs +29 -16
  12. package/esm2022/constants/index.mjs +2 -1
  13. package/esm2022/constants/pointer.mjs +3 -3
  14. package/esm2022/constants/swimlane.mjs +25 -0
  15. package/esm2022/engines/index.mjs +14 -2
  16. package/esm2022/engines/table/table.mjs +9 -3
  17. package/esm2022/engines/uml/assembly.mjs +56 -0
  18. package/esm2022/engines/uml/component-box.mjs +61 -0
  19. package/esm2022/engines/uml/component.mjs +72 -0
  20. package/esm2022/engines/uml/provided-interface.mjs +47 -0
  21. package/esm2022/engines/uml/required-interface.mjs +36 -0
  22. package/esm2022/engines/uml/template.mjs +47 -0
  23. package/esm2022/generators/table.generator.mjs +8 -4
  24. package/esm2022/image.component.mjs +2 -2
  25. package/esm2022/interfaces/geometry.mjs +7 -10
  26. package/esm2022/interfaces/index.mjs +18 -8
  27. package/esm2022/interfaces/swimlane.mjs +13 -0
  28. package/esm2022/interfaces/table.mjs +5 -1
  29. package/esm2022/plugins/with-draw-fragment.mjs +5 -2
  30. package/esm2022/plugins/with-draw.mjs +1 -1
  31. package/esm2022/plugins/with-swimlane-create.mjs +4 -4
  32. package/esm2022/plugins/with-swimlane.mjs +21 -2
  33. package/esm2022/plugins/with-table-resize.mjs +6 -5
  34. package/esm2022/plugins/with-table.mjs +28 -10
  35. package/esm2022/table.component.mjs +24 -5
  36. package/esm2022/transforms/geometry-text.mjs +1 -1
  37. package/esm2022/transforms/index.mjs +5 -3
  38. package/esm2022/transforms/swimlane.mjs +128 -36
  39. package/esm2022/utils/clipboard.mjs +27 -21
  40. package/esm2022/utils/common.mjs +5 -5
  41. package/esm2022/utils/hit.mjs +2 -2
  42. package/esm2022/utils/index.mjs +4 -1
  43. package/esm2022/utils/selected.mjs +3 -8
  44. package/esm2022/utils/style/stroke.mjs +2 -4
  45. package/esm2022/utils/swimlane.mjs +66 -77
  46. package/esm2022/utils/table-selected.mjs +26 -0
  47. package/esm2022/utils/table.mjs +26 -1
  48. package/esm2022/utils/uml.mjs +2 -2
  49. package/fesm2022/plait-draw.mjs +797 -246
  50. package/fesm2022/plait-draw.mjs.map +1 -1
  51. package/generators/table.generator.d.ts +2 -2
  52. package/interfaces/geometry.d.ts +14 -23
  53. package/interfaces/index.d.ts +11 -6
  54. package/interfaces/swimlane.d.ts +22 -0
  55. package/interfaces/table.d.ts +12 -3
  56. package/package.json +1 -1
  57. package/plugins/with-swimlane.d.ts +3 -2
  58. package/plugins/with-table-resize.d.ts +1 -1
  59. package/plugins/with-table.d.ts +1 -4
  60. package/transforms/index.d.ts +7 -5
  61. package/transforms/swimlane.d.ts +8 -5
  62. package/utils/clipboard.d.ts +4 -3
  63. package/utils/common.d.ts +4 -4
  64. package/utils/geometry.d.ts +15 -0
  65. package/utils/index.d.ts +3 -0
  66. package/utils/selected.d.ts +2 -4
  67. package/utils/shape.d.ts +1 -1
  68. package/utils/style/stroke.d.ts +3 -4
  69. package/utils/swimlane.d.ts +11 -26
  70. package/utils/table-selected.d.ts +9 -0
  71. package/utils/table.d.ts +9 -8
@@ -7,7 +7,7 @@ export const createUMLClassOrInterfaceGeometryElement = (board, shape, points) =
7
7
  const memorizedLatest = getMemorizedLatestByPointer(shape);
8
8
  const element = {
9
9
  id: idCreator(),
10
- type: 'table',
10
+ type: 'geometry',
11
11
  angle: 0,
12
12
  opacity: 1,
13
13
  points,
@@ -85,4 +85,4 @@ const buildTableCellsForGeometry = (board, rows, columns, shape) => {
85
85
  };
86
86
  });
87
87
  };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW1sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvdW1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQWtCLFVBQVUsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pELE9BQU8sRUFBd0IsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHcEcsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQXFCLEVBQUUsTUFBc0IsRUFBRSxFQUFFO0lBQ3pILE1BQU0sZUFBZSxHQUFHLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sT0FBTyxHQUFHO1FBQ1osRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRSxPQUFPO1FBQ2IsS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU07UUFDTixXQUFXLEVBQUUseUJBQXlCLENBQUMsV0FBVztRQUNsRCxHQUFJLGVBQWUsQ0FBQyxrQkFBMkM7S0FDbEUsQ0FBQztJQUNGLElBQUksSUFBdUMsQ0FBQztJQUM1QyxJQUFJLE9BQTBDLENBQUM7SUFDL0MsSUFBSSxLQUFLLEtBQUssVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksR0FBRztZQUNIO2dCQUNJLEVBQUUsRUFBRSxTQUFTLEVBQUU7Z0JBQ2YsTUFBTSxFQUFFLEVBQUU7YUFDYjtZQUNEO2dCQUNJLEVBQUUsRUFBRSxTQUFTLEVBQUU7YUFDbEI7WUFDRDtnQkFDSSxFQUFFLEVBQUUsU0FBUyxFQUFFO2FBQ2xCO1NBQ0osQ0FBQztRQUNGLE9BQU8sR0FBRztZQUNOO2dCQUNJLEVBQUUsRUFBRSxTQUFTLEVBQUU7YUFDbEI7U0FDSixDQUFDO0lBQ04sQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLEdBQUc7WUFDSDtnQkFDSSxFQUFFLEVBQUUsU0FBUyxFQUFFO2dCQUNmLE1BQU0sRUFBRSxFQUFFO2FBQ2I7WUFDRDtnQkFDSSxFQUFFLEVBQUUsU0FBUyxFQUFFO2FBQ2xCO1NBQ0osQ0FBQztRQUNGLE9BQU8sR0FBRztZQUNOO2dCQUNJLEVBQUUsRUFBRSxTQUFTLEVBQUU7YUFDbEI7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUNELE9BQVE7UUFDSixHQUFHLE9BQU87UUFDVixLQUFLO1FBQ0wsSUFBSTtRQUNKLE9BQU87UUFDUCxLQUFLLEVBQUUsMEJBQTBCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDO0tBQzlCLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRyxDQUMvQixLQUFpQixFQUNqQixJQUdHLEVBQ0gsT0FHRyxFQUNILEtBQXFCLEVBQ0wsRUFBRTtJQUNsQixNQUFNLGVBQWUsR0FBRywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDL0MsTUFBTSxZQUFZLEdBQUksMEJBQTBCLENBQUMsS0FBSyxDQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM3RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBMEIsRUFBRSxFQUFFO1FBQ2hFLE9BQU8sb0JBQW9CLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLElBQUksbUJBQW1CLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdEksQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELE1BQU0sV0FBVyxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzNDLE9BQU87WUFDSCxFQUFFLEVBQUUsU0FBUyxFQUFFO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtZQUNqQyxVQUFVLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUM5QixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFO29CQUNOO3dCQUNJLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSTtxQkFDakM7aUJBQ0o7Z0JBQ0QsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLO2FBQ25DO1NBQ0osQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIGlkQ3JlYXRvciB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IERlZmF1bHRUZXh0UHJvcGVydHksIERlZmF1bHRCYXNpY1NoYXBlUHJvcGVydHkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgR2VvbWV0cnlTaGFwZXMsIFVNTFN5bWJvbHMsIFBsYWl0Q29tbW9uR2VvbWV0cnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldE1lbW9yaXplZExhdGVzdEJ5UG9pbnRlciB9IGZyb20gJy4vbWVtb3JpemUnO1xuaW1wb3J0IHsgR2VvbWV0cnlTdHlsZU9wdGlvbnMsIGdldERlZmF1bHRHZW9tZXRyeVByb3BlcnR5LCBnZXRUZXh0U2hhcGVQcm9wZXJ0eSB9IGZyb20gJy4vZ2VvbWV0cnknO1xuaW1wb3J0IHsgUGxhaXRUYWJsZUNlbGwgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVVNTENsYXNzT3JJbnRlcmZhY2VHZW9tZXRyeUVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNoYXBlOiBHZW9tZXRyeVNoYXBlcywgcG9pbnRzOiBbUG9pbnQsIFBvaW50XSkgPT4ge1xuICAgIGNvbnN0IG1lbW9yaXplZExhdGVzdCA9IGdldE1lbW9yaXplZExhdGVzdEJ5UG9pbnRlcihzaGFwZSk7XG4gICAgY29uc3QgZWxlbWVudCA9IHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgICBhbmdsZTogMCxcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgcG9pbnRzLFxuICAgICAgICBzdHJva2VXaWR0aDogRGVmYXVsdEJhc2ljU2hhcGVQcm9wZXJ0eS5zdHJva2VXaWR0aCxcbiAgICAgICAgLi4uKG1lbW9yaXplZExhdGVzdC5nZW9tZXRyeVByb3BlcnRpZXMgYXMgR2VvbWV0cnlTdHlsZU9wdGlvbnMpXG4gICAgfTtcbiAgICBsZXQgcm93czogeyBpZDogc3RyaW5nOyBoZWlnaHQ/OiBudW1iZXIgfVtdO1xuICAgIGxldCBjb2x1bW5zOiB7IGlkOiBzdHJpbmc7IGhlaWdodD86IG51bWJlciB9W107XG4gICAgaWYgKHNoYXBlID09PSBVTUxTeW1ib2xzLmNsYXNzKSB7XG4gICAgICAgIHJvd3MgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICAgICAgICAgIGhlaWdodDogMzBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IGlkQ3JlYXRvcigpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBpZENyZWF0b3IoKVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgICBjb2x1bW5zID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBpZENyZWF0b3IoKVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJvd3MgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICAgICAgICAgIGhlaWdodDogNTBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IGlkQ3JlYXRvcigpXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIGNvbHVtbnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IGlkQ3JlYXRvcigpXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiAoe1xuICAgICAgICAuLi5lbGVtZW50LFxuICAgICAgICBzaGFwZSxcbiAgICAgICAgcm93cyxcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgY2VsbHM6IGJ1aWxkVGFibGVDZWxsc0Zvckdlb21ldHJ5KGJvYXJkLCByb3dzLCBjb2x1bW5zLCBzaGFwZSlcbiAgICB9IGFzIHVua25vd24pIGFzIFBsYWl0Q29tbW9uR2VvbWV0cnk7XG59O1xuXG5jb25zdCBidWlsZFRhYmxlQ2VsbHNGb3JHZW9tZXRyeSA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByb3dzOiB7XG4gICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgIGhlaWdodD86IG51bWJlcjtcbiAgICB9W10sXG4gICAgY29sdW1uczoge1xuICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgfVtdLFxuICAgIHNoYXBlOiBHZW9tZXRyeVNoYXBlc1xuKTogUGxhaXRUYWJsZUNlbGxbXSA9PiB7XG4gICAgY29uc3QgbWVtb3JpemVkTGF0ZXN0ID0gZ2V0TWVtb3JpemVkTGF0ZXN0QnlQb2ludGVyKHNoYXBlKTtcbiAgICBjb25zdCBjZWxsQ291bnQgPSByb3dzLmxlbmd0aCAqIGNvbHVtbnMubGVuZ3RoO1xuICAgIGNvbnN0IGRlZmF1bHRUZXh0cyA9IChnZXREZWZhdWx0R2VvbWV0cnlQcm9wZXJ0eShzaGFwZSkgYXMgYW55KT8udGV4dHMgfHwgW107XG4gICAgY29uc3QgdGVzdEhlaWdodHMgPSBkZWZhdWx0VGV4dHMubWFwKCh0ZXh0SXRlbTogeyB0ZXh0OiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICByZXR1cm4gZ2V0VGV4dFNoYXBlUHJvcGVydHkoYm9hcmQsIHRleHRJdGVtLnRleHQgfHwgRGVmYXVsdFRleHRQcm9wZXJ0eS50ZXh0LCBtZW1vcml6ZWRMYXRlc3QudGV4dFByb3BlcnRpZXNbJ2ZvbnQtc2l6ZSddKS5oZWlnaHQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBBcnJheShjZWxsQ291bnQpLmZpbGwoJycpLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qgcm93SW5kZXggPSBNYXRoLmZsb29yKGluZGV4IC8gY29sdW1ucy5sZW5ndGgpO1xuICAgICAgICBjb25zdCBjb2x1bW5JbmRleCA9IGluZGV4ICUgY29sdW1ucy5sZW5ndGg7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgICAgICByb3dJZDogcm93c1tyb3dJbmRleF0uaWQsXG4gICAgICAgICAgICBjb2x1bW5JZDogY29sdW1uc1tjb2x1bW5JbmRleF0uaWQsXG4gICAgICAgICAgICB0ZXh0SGVpZ2h0OiB0ZXN0SGVpZ2h0c1tpbmRleF0sXG4gICAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogZGVmYXVsdFRleHRzW2luZGV4XS50ZXh0XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGFsaWduOiBkZWZhdWx0VGV4dHNbaW5kZXhdLmFsaWduXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSk7XG59O1xuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW1sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvdW1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQWtCLFVBQVUsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pELE9BQU8sRUFBd0IsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHcEcsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQXFCLEVBQUUsTUFBc0IsRUFBRSxFQUFFO0lBQ3pILE1BQU0sZUFBZSxHQUFHLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sT0FBTyxHQUFHO1FBQ1osRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNO1FBQ04sV0FBVyxFQUFFLHlCQUF5QixDQUFDLFdBQVc7UUFDbEQsR0FBSSxlQUFlLENBQUMsa0JBQTJDO0tBQ2xFLENBQUM7SUFDRixJQUFJLElBQXVDLENBQUM7SUFDNUMsSUFBSSxPQUEwQyxDQUFDO0lBQy9DLElBQUksS0FBSyxLQUFLLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixJQUFJLEdBQUc7WUFDSDtnQkFDSSxFQUFFLEVBQUUsU0FBUyxFQUFFO2dCQUNmLE1BQU0sRUFBRSxFQUFFO2FBQ2I7WUFDRDtnQkFDSSxFQUFFLEVBQUUsU0FBUyxFQUFFO2FBQ2xCO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLFNBQVMsRUFBRTthQUNsQjtTQUNKLENBQUM7UUFDRixPQUFPLEdBQUc7WUFDTjtnQkFDSSxFQUFFLEVBQUUsU0FBUyxFQUFFO2FBQ2xCO1NBQ0osQ0FBQztJQUNOLENBQUM7U0FBTSxDQUFDO1FBQ0osSUFBSSxHQUFHO1lBQ0g7Z0JBQ0ksRUFBRSxFQUFFLFNBQVMsRUFBRTtnQkFDZixNQUFNLEVBQUUsRUFBRTthQUNiO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLFNBQVMsRUFBRTthQUNsQjtTQUNKLENBQUM7UUFDRixPQUFPLEdBQUc7WUFDTjtnQkFDSSxFQUFFLEVBQUUsU0FBUyxFQUFFO2FBQ2xCO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFRO1FBQ0osR0FBRyxPQUFPO1FBQ1YsS0FBSztRQUNMLElBQUk7UUFDSixPQUFPO1FBQ1AsS0FBSyxFQUFFLDBCQUEwQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQztLQUM5QixDQUFDO0FBQ3pDLENBQUMsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUcsQ0FDL0IsS0FBaUIsRUFDakIsSUFHRyxFQUNILE9BR0csRUFDSCxLQUFxQixFQUNMLEVBQUU7SUFDbEIsTUFBTSxlQUFlLEdBQUcsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9DLE1BQU0sWUFBWSxHQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDN0UsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQTBCLEVBQUUsRUFBRTtRQUNoRSxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3RJLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLFdBQVcsR0FBRyxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUMzQyxPQUFPO1lBQ0gsRUFBRSxFQUFFLFNBQVMsRUFBRTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRTtZQUN4QixRQUFRLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUU7WUFDakMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDOUIsSUFBSSxFQUFFO2dCQUNGLFFBQVEsRUFBRTtvQkFDTjt3QkFDSSxJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUk7cUJBQ2pDO2lCQUNKO2dCQUNELEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSzthQUNuQztTQUNKLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBpZENyZWF0b3IgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0VGV4dFByb3BlcnR5LCBEZWZhdWx0QmFzaWNTaGFwZVByb3BlcnR5IH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEdlb21ldHJ5U2hhcGVzLCBVTUxTeW1ib2xzLCBQbGFpdENvbW1vbkdlb21ldHJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRNZW1vcml6ZWRMYXRlc3RCeVBvaW50ZXIgfSBmcm9tICcuL21lbW9yaXplJztcbmltcG9ydCB7IEdlb21ldHJ5U3R5bGVPcHRpb25zLCBnZXREZWZhdWx0R2VvbWV0cnlQcm9wZXJ0eSwgZ2V0VGV4dFNoYXBlUHJvcGVydHkgfSBmcm9tICcuL2dlb21ldHJ5JztcbmltcG9ydCB7IFBsYWl0VGFibGVDZWxsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVVTUxDbGFzc09ySW50ZXJmYWNlR2VvbWV0cnlFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzaGFwZTogR2VvbWV0cnlTaGFwZXMsIHBvaW50czogW1BvaW50LCBQb2ludF0pID0+IHtcbiAgICBjb25zdCBtZW1vcml6ZWRMYXRlc3QgPSBnZXRNZW1vcml6ZWRMYXRlc3RCeVBvaW50ZXIoc2hhcGUpO1xuICAgIGNvbnN0IGVsZW1lbnQgPSB7XG4gICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgdHlwZTogJ2dlb21ldHJ5JyxcbiAgICAgICAgYW5nbGU6IDAsXG4gICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgIHBvaW50cyxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IERlZmF1bHRCYXNpY1NoYXBlUHJvcGVydHkuc3Ryb2tlV2lkdGgsXG4gICAgICAgIC4uLihtZW1vcml6ZWRMYXRlc3QuZ2VvbWV0cnlQcm9wZXJ0aWVzIGFzIEdlb21ldHJ5U3R5bGVPcHRpb25zKVxuICAgIH07XG4gICAgbGV0IHJvd3M6IHsgaWQ6IHN0cmluZzsgaGVpZ2h0PzogbnVtYmVyIH1bXTtcbiAgICBsZXQgY29sdW1uczogeyBpZDogc3RyaW5nOyBoZWlnaHQ/OiBudW1iZXIgfVtdO1xuICAgIGlmIChzaGFwZSA9PT0gVU1MU3ltYm9scy5jbGFzcykge1xuICAgICAgICByb3dzID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBpZENyZWF0b3IoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogaWRDcmVhdG9yKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgICAgY29sdW1ucyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogaWRDcmVhdG9yKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByb3dzID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBpZENyZWF0b3IoKVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgICBjb2x1bW5zID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBpZENyZWF0b3IoKVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gKHtcbiAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgc2hhcGUsXG4gICAgICAgIHJvd3MsXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIGNlbGxzOiBidWlsZFRhYmxlQ2VsbHNGb3JHZW9tZXRyeShib2FyZCwgcm93cywgY29sdW1ucywgc2hhcGUpXG4gICAgfSBhcyB1bmtub3duKSBhcyBQbGFpdENvbW1vbkdlb21ldHJ5O1xufTtcblxuY29uc3QgYnVpbGRUYWJsZUNlbGxzRm9yR2VvbWV0cnkgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgcm93czoge1xuICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgfVtdLFxuICAgIGNvbHVtbnM6IHtcbiAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIH1bXSxcbiAgICBzaGFwZTogR2VvbWV0cnlTaGFwZXNcbik6IFBsYWl0VGFibGVDZWxsW10gPT4ge1xuICAgIGNvbnN0IG1lbW9yaXplZExhdGVzdCA9IGdldE1lbW9yaXplZExhdGVzdEJ5UG9pbnRlcihzaGFwZSk7XG4gICAgY29uc3QgY2VsbENvdW50ID0gcm93cy5sZW5ndGggKiBjb2x1bW5zLmxlbmd0aDtcbiAgICBjb25zdCBkZWZhdWx0VGV4dHMgPSAoZ2V0RGVmYXVsdEdlb21ldHJ5UHJvcGVydHkoc2hhcGUpIGFzIGFueSk/LnRleHRzIHx8IFtdO1xuICAgIGNvbnN0IHRlc3RIZWlnaHRzID0gZGVmYXVsdFRleHRzLm1hcCgodGV4dEl0ZW06IHsgdGV4dDogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIGdldFRleHRTaGFwZVByb3BlcnR5KGJvYXJkLCB0ZXh0SXRlbS50ZXh0IHx8IERlZmF1bHRUZXh0UHJvcGVydHkudGV4dCwgbWVtb3JpemVkTGF0ZXN0LnRleHRQcm9wZXJ0aWVzWydmb250LXNpemUnXSkuaGVpZ2h0O1xuICAgIH0pO1xuICAgIHJldHVybiBuZXcgQXJyYXkoY2VsbENvdW50KS5maWxsKCcnKS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHJvd0luZGV4ID0gTWF0aC5mbG9vcihpbmRleCAvIGNvbHVtbnMubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSBpbmRleCAlIGNvbHVtbnMubGVuZ3RoO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICAgICAgcm93SWQ6IHJvd3Nbcm93SW5kZXhdLmlkLFxuICAgICAgICAgICAgY29sdW1uSWQ6IGNvbHVtbnNbY29sdW1uSW5kZXhdLmlkLFxuICAgICAgICAgICAgdGV4dEhlaWdodDogdGVzdEhlaWdodHNbaW5kZXhdLFxuICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGRlZmF1bHRUZXh0c1tpbmRleF0udGV4dFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBhbGlnbjogZGVmYXVsdFRleHRzW2luZGV4XS5hbGlnblxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0pO1xufTtcbiJdfQ==