@pie-element/hotspot 9.1.0 → 9.2.0-mui-update.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 (117) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/configure/CHANGELOG.md +66 -0
  3. package/configure/lib/DeleteWidget.js +31 -44
  4. package/configure/lib/DeleteWidget.js.map +1 -1
  5. package/configure/lib/__tests__/DeleteWidget.test.js +60 -0
  6. package/configure/lib/__tests__/hotspot-container.test.js +377 -0
  7. package/configure/lib/__tests__/hotspot-drawable.test.js +233 -0
  8. package/configure/lib/__tests__/index.test.js +211 -0
  9. package/configure/lib/__tests__/root.test.js +440 -0
  10. package/configure/lib/__tests__/utils.test.js +287 -0
  11. package/configure/lib/button.js +27 -46
  12. package/configure/lib/button.js.map +1 -1
  13. package/configure/lib/buttons/circle.js +21 -28
  14. package/configure/lib/buttons/circle.js.map +1 -1
  15. package/configure/lib/buttons/polygon.js +27 -34
  16. package/configure/lib/buttons/polygon.js.map +1 -1
  17. package/configure/lib/buttons/rectangle.js +27 -34
  18. package/configure/lib/buttons/rectangle.js.map +1 -1
  19. package/configure/lib/defaults.js +3 -4
  20. package/configure/lib/defaults.js.map +1 -1
  21. package/configure/lib/hotspot-circle.js +133 -199
  22. package/configure/lib/hotspot-circle.js.map +1 -1
  23. package/configure/lib/hotspot-container.js +251 -356
  24. package/configure/lib/hotspot-container.js.map +1 -1
  25. package/configure/lib/hotspot-drawable.js +361 -473
  26. package/configure/lib/hotspot-drawable.js.map +1 -1
  27. package/configure/lib/hotspot-palette.js +93 -140
  28. package/configure/lib/hotspot-palette.js.map +1 -1
  29. package/configure/lib/hotspot-polygon.js +213 -318
  30. package/configure/lib/hotspot-polygon.js.map +1 -1
  31. package/configure/lib/hotspot-rectangle.js +129 -193
  32. package/configure/lib/hotspot-rectangle.js.map +1 -1
  33. package/configure/lib/icons.js +1 -1
  34. package/configure/lib/icons.js.map +1 -1
  35. package/configure/lib/image-konva.js +47 -87
  36. package/configure/lib/image-konva.js.map +1 -1
  37. package/configure/lib/index.js +163 -223
  38. package/configure/lib/index.js.map +1 -1
  39. package/configure/lib/root.js +302 -394
  40. package/configure/lib/root.js.map +1 -1
  41. package/configure/lib/shapes/circle.js +70 -102
  42. package/configure/lib/shapes/circle.js.map +1 -1
  43. package/configure/lib/shapes/index.js +5 -13
  44. package/configure/lib/shapes/index.js.map +1 -1
  45. package/configure/lib/shapes/polygon.js +65 -97
  46. package/configure/lib/shapes/polygon.js.map +1 -1
  47. package/configure/lib/shapes/rectagle.js +70 -102
  48. package/configure/lib/shapes/rectagle.js.map +1 -1
  49. package/configure/lib/shapes/utils.js +3 -9
  50. package/configure/lib/shapes/utils.js.map +1 -1
  51. package/configure/lib/upload-control.js +26 -53
  52. package/configure/lib/upload-control.js.map +1 -1
  53. package/configure/lib/utils.js +85 -138
  54. package/configure/lib/utils.js.map +1 -1
  55. package/configure/package.json +11 -10
  56. package/configure/src/__tests__/index.test.js +11 -5
  57. package/configure/src/button.jsx +12 -20
  58. package/configure/src/hotspot-circle.jsx +5 -18
  59. package/configure/src/hotspot-container.jsx +82 -98
  60. package/configure/src/hotspot-drawable.jsx +43 -45
  61. package/configure/src/hotspot-palette.jsx +45 -37
  62. package/configure/src/hotspot-polygon.jsx +4 -20
  63. package/configure/src/hotspot-rectangle.jsx +4 -17
  64. package/configure/src/index.js +12 -2
  65. package/configure/src/root.jsx +85 -79
  66. package/configure/src/upload-control.jsx +6 -16
  67. package/controller/CHANGELOG.md +52 -0
  68. package/controller/lib/__tests__/index.test.js +586 -0
  69. package/controller/lib/__tests__/utils.test.js +8 -0
  70. package/controller/lib/defaults.js +3 -4
  71. package/controller/lib/defaults.js.map +1 -1
  72. package/controller/lib/index.js +152 -206
  73. package/controller/lib/index.js.map +1 -1
  74. package/controller/lib/utils.js +15 -35
  75. package/controller/lib/utils.js.map +1 -1
  76. package/controller/package.json +2 -2
  77. package/docs/demo/pie.manifest.json +11 -0
  78. package/lib/__tests__/container.test.js +221 -0
  79. package/lib/__tests__/index.test.js +113 -0
  80. package/lib/__tests__/polygon.test.js +245 -0
  81. package/lib/__tests__/rectangle.test.js +236 -0
  82. package/lib/__tests__/session-updater.test.js +69 -0
  83. package/lib/hotspot/circle.js +111 -170
  84. package/lib/hotspot/circle.js.map +1 -1
  85. package/lib/hotspot/container.js +175 -261
  86. package/lib/hotspot/container.js.map +1 -1
  87. package/lib/hotspot/icons.js +1 -1
  88. package/lib/hotspot/icons.js.map +1 -1
  89. package/lib/hotspot/image-konva-tooltip.js +66 -113
  90. package/lib/hotspot/image-konva-tooltip.js.map +1 -1
  91. package/lib/hotspot/index.js +136 -199
  92. package/lib/hotspot/index.js.map +1 -1
  93. package/lib/hotspot/polygon.js +151 -215
  94. package/lib/hotspot/polygon.js.map +1 -1
  95. package/lib/hotspot/rectangle.js +130 -186
  96. package/lib/hotspot/rectangle.js.map +1 -1
  97. package/lib/index.js +188 -257
  98. package/lib/index.js.map +1 -1
  99. package/lib/session-updater.js +13 -19
  100. package/lib/session-updater.js.map +1 -1
  101. package/package.json +14 -11
  102. package/src/hotspot/circle.jsx +2 -13
  103. package/src/hotspot/container.jsx +35 -50
  104. package/src/hotspot/index.jsx +16 -28
  105. package/src/hotspot/polygon.jsx +4 -13
  106. package/src/hotspot/rectangle.jsx +4 -13
  107. package/src/index.js +21 -12
  108. package/LICENSE.md +0 -5
  109. package/configure/node_modules/debug/CHANGELOG.md +0 -395
  110. package/configure/node_modules/debug/LICENSE +0 -19
  111. package/configure/node_modules/debug/README.md +0 -437
  112. package/configure/node_modules/debug/node.js +0 -1
  113. package/configure/node_modules/debug/package.json +0 -51
  114. package/configure/node_modules/debug/src/browser.js +0 -180
  115. package/configure/node_modules/debug/src/common.js +0 -249
  116. package/configure/node_modules/debug/src/index.js +0 -12
  117. package/configure/node_modules/debug/src/node.js +0 -177
package/CHANGELOG.md CHANGED
@@ -3,6 +3,72 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [9.3.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot@9.3.2...@pie-element/hotspot@9.3.3) (2025-11-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * bump libs PD-5274, PD-5211, PD-5248 ([7610b25](https://github.com/pie-framework/pie-elements/commit/7610b25423956b6492f33322513b3430051fca77))
12
+
13
+
14
+
15
+
16
+
17
+ ## [9.3.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot@9.3.1...@pie-element/hotspot@9.3.2) (2025-10-22)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * bump libs PD-5265 ([184a978](https://github.com/pie-framework/pie-elements/commit/184a978f57a2a84dc6ba87c1eba0b92d5cdd9eae))
23
+
24
+
25
+
26
+
27
+
28
+ ## [9.3.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot@9.2.1...@pie-element/hotspot@9.3.1) (2025-10-16)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * bump pie-lib versions and pslb module versions ([393d39f](https://github.com/pie-framework/pie-elements/commit/393d39fb850ad055568f4d20464213e9043f208f))
34
+
35
+
36
+
37
+
38
+
39
+ # [9.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot@9.2.0...@pie-element/hotspot@9.3.0) (2025-10-15)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * bump libs ([2616ab2](https://github.com/pie-framework/pie-elements/commit/2616ab24f776f4df02302f5855c381ee52527665))
45
+
46
+
47
+
48
+
49
+
50
+ ## [9.2.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot@9.2.0...@pie-element/hotspot@9.2.1) (2025-10-14)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * bump libs ([2616ab2](https://github.com/pie-framework/pie-elements/commit/2616ab24f776f4df02302f5855c381ee52527665))
56
+
57
+
58
+
59
+
60
+
61
+ # [9.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot@9.0.0...@pie-element/hotspot@9.2.0) (2025-10-10)
62
+
63
+
64
+ ### Features
65
+
66
+ * update libs PD-5208, PD-5211, PD-5199, PD-5218, PD-5217 ([da327fa](https://github.com/pie-framework/pie-elements/commit/da327fa501f6e9eff1c0b30b5ef092426a91f78b))
67
+
68
+
69
+
70
+
71
+
6
72
  # [9.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot@8.0.0...@pie-element/hotspot@9.1.0) (2025-10-07)
7
73
 
8
74
  **Note:** Version bump only for package @pie-element/hotspot
@@ -3,6 +3,72 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [8.3.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot-configure@8.3.2...@pie-element/hotspot-configure@8.3.3) (2025-11-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * bump libs PD-5274, PD-5211, PD-5248 ([7610b25](https://github.com/pie-framework/pie-elements/commit/7610b25423956b6492f33322513b3430051fca77))
12
+
13
+
14
+
15
+
16
+
17
+ ## [8.3.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot-configure@8.3.1...@pie-element/hotspot-configure@8.3.2) (2025-10-22)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * bump libs PD-5265 ([184a978](https://github.com/pie-framework/pie-elements/commit/184a978f57a2a84dc6ba87c1eba0b92d5cdd9eae))
23
+
24
+
25
+
26
+
27
+
28
+ ## [8.3.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot-configure@8.2.1...@pie-element/hotspot-configure@8.3.1) (2025-10-16)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * bump pie-lib versions and pslb module versions ([393d39f](https://github.com/pie-framework/pie-elements/commit/393d39fb850ad055568f4d20464213e9043f208f))
34
+
35
+
36
+
37
+
38
+
39
+ # [8.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot-configure@8.2.0...@pie-element/hotspot-configure@8.3.0) (2025-10-15)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * bump libs ([2616ab2](https://github.com/pie-framework/pie-elements/commit/2616ab24f776f4df02302f5855c381ee52527665))
45
+
46
+
47
+
48
+
49
+
50
+ ## [8.2.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot-configure@8.2.0...@pie-element/hotspot-configure@8.2.1) (2025-10-14)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * bump libs ([2616ab2](https://github.com/pie-framework/pie-elements/commit/2616ab24f776f4df02302f5855c381ee52527665))
56
+
57
+
58
+
59
+
60
+
61
+ # [8.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot-configure@8.0.1...@pie-element/hotspot-configure@8.2.0) (2025-10-10)
62
+
63
+
64
+ ### Features
65
+
66
+ * update libs PD-5208, PD-5211, PD-5199, PD-5218, PD-5217 ([da327fa](https://github.com/pie-framework/pie-elements/commit/da327fa501f6e9eff1c0b30b5ef092426a91f78b))
67
+
68
+
69
+
70
+
71
+
6
72
  # [8.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/hotspot-configure@8.0.0...@pie-element/hotspot-configure@8.1.0) (2025-10-07)
7
73
 
8
74
  **Note:** Version bump only for package @pie-element/hotspot-configure
@@ -1,44 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = void 0;
9
-
7
+ exports.default = void 0;
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
10
  var _reactKonva = require("react-konva");
15
-
16
11
  var _icons = require("./icons");
17
-
18
12
  var _imageKonva = _interopRequireDefault(require("./image-konva"));
19
-
20
13
  var _utils = require("./utils");
21
-
22
- var DeleteWidget = function DeleteWidget(_ref) {
23
- var height = _ref.height,
24
- id = _ref.id,
25
- width = _ref.width,
26
- x = _ref.x,
27
- y = _ref.y,
28
- points = _ref.points,
29
- isCircle = _ref.isCircle,
30
- radius = _ref.radius,
31
- handleWidgetClick = _ref.handleWidgetClick;
32
- var positionX, positionY;
33
- var offset = 20;
34
-
14
+ const DeleteWidget = ({
15
+ height,
16
+ id,
17
+ width,
18
+ x,
19
+ y,
20
+ points,
21
+ isCircle,
22
+ radius,
23
+ handleWidgetClick
24
+ }) => {
25
+ let positionX, positionY;
26
+ const offset = 20;
35
27
  if (isCircle) {
36
28
  // For circles, position the delete icon above the circle
37
29
  positionX = x + radius - offset;
38
30
  positionY = y;
39
31
  } else if (points) {
40
32
  // For polygons, compute position based on points
41
- var calculated = (0, _utils.calculate)(points);
33
+ const calculated = (0, _utils.calculate)(points);
42
34
  positionX = calculated.x;
43
35
  positionY = calculated.y;
44
36
  } else {
@@ -46,32 +38,27 @@ var DeleteWidget = function DeleteWidget(_ref) {
46
38
  positionX = x + width - offset;
47
39
  positionY = y + height - offset;
48
40
  }
49
-
50
- return /*#__PURE__*/_react["default"].createElement(_reactKonva.Group, {
51
- onClick: function onClick() {
52
- return handleWidgetClick(id);
53
- }
54
- }, /*#__PURE__*/_react["default"].createElement(_imageKonva["default"], {
41
+ return /*#__PURE__*/_react.default.createElement(_reactKonva.Group, {
42
+ onClick: () => handleWidgetClick(id)
43
+ }, /*#__PURE__*/_react.default.createElement(_imageKonva.default, {
55
44
  x: positionX,
56
45
  y: positionY,
57
46
  src: _icons.faDelete
58
47
  }));
59
48
  };
60
-
61
49
  DeleteWidget.propTypes = {
62
- id: _propTypes["default"].string.isRequired,
63
- height: _propTypes["default"].number,
64
- width: _propTypes["default"].number,
65
- x: _propTypes["default"].number.isRequired,
66
- y: _propTypes["default"].number.isRequired,
67
- handleWidgetClick: _propTypes["default"].func.isRequired,
68
- radius: _propTypes["default"].number,
69
- isCircle: _propTypes["default"].bool,
70
- points: _propTypes["default"].arrayOf(_propTypes["default"].shape({
71
- x: _propTypes["default"].number,
72
- y: _propTypes["default"].number
50
+ id: _propTypes.default.string.isRequired,
51
+ height: _propTypes.default.number,
52
+ width: _propTypes.default.number,
53
+ x: _propTypes.default.number.isRequired,
54
+ y: _propTypes.default.number.isRequired,
55
+ handleWidgetClick: _propTypes.default.func.isRequired,
56
+ radius: _propTypes.default.number,
57
+ isCircle: _propTypes.default.bool,
58
+ points: _propTypes.default.arrayOf(_propTypes.default.shape({
59
+ x: _propTypes.default.number,
60
+ y: _propTypes.default.number
73
61
  }))
74
62
  };
75
- var _default = DeleteWidget;
76
- exports["default"] = _default;
77
- //# sourceMappingURL=DeleteWidget.js.map
63
+ var _default = exports.default = DeleteWidget;
64
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfcmVhY3RLb252YSIsIl9pY29ucyIsIl9pbWFnZUtvbnZhIiwiX3V0aWxzIiwiRGVsZXRlV2lkZ2V0IiwiaGVpZ2h0IiwiaWQiLCJ3aWR0aCIsIngiLCJ5IiwicG9pbnRzIiwiaXNDaXJjbGUiLCJyYWRpdXMiLCJoYW5kbGVXaWRnZXRDbGljayIsInBvc2l0aW9uWCIsInBvc2l0aW9uWSIsIm9mZnNldCIsImNhbGN1bGF0ZWQiLCJjYWxjdWxhdGUiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIkdyb3VwIiwib25DbGljayIsInNyYyIsImZhRGVsZXRlIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm51bWJlciIsImZ1bmMiLCJib29sIiwiYXJyYXlPZiIsInNoYXBlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL0RlbGV0ZVdpZGdldC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ3JlYWN0LWtvbnZhJztcbmltcG9ydCB7IGZhRGVsZXRlIH0gZnJvbSAnLi9pY29ucyc7XG5pbXBvcnQgSW1hZ2VDb21wb25lbnQgZnJvbSAnLi9pbWFnZS1rb252YSc7XG5pbXBvcnQgeyBjYWxjdWxhdGUgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgRGVsZXRlV2lkZ2V0ID0gKHsgaGVpZ2h0LCBpZCwgd2lkdGgsIHgsIHksIHBvaW50cywgaXNDaXJjbGUsIHJhZGl1cywgaGFuZGxlV2lkZ2V0Q2xpY2sgfSkgPT4ge1xuICBsZXQgcG9zaXRpb25YLCBwb3NpdGlvblk7XG4gIGNvbnN0IG9mZnNldCA9IDIwO1xuXG4gIGlmIChpc0NpcmNsZSkge1xuICAgIC8vIEZvciBjaXJjbGVzLCBwb3NpdGlvbiB0aGUgZGVsZXRlIGljb24gYWJvdmUgdGhlIGNpcmNsZVxuICAgIHBvc2l0aW9uWCA9IHggKyByYWRpdXMgLSBvZmZzZXQ7XG4gICAgcG9zaXRpb25ZID0geTtcbiAgfSBlbHNlIGlmIChwb2ludHMpIHtcbiAgICAvLyBGb3IgcG9seWdvbnMsIGNvbXB1dGUgcG9zaXRpb24gYmFzZWQgb24gcG9pbnRzXG4gICAgY29uc3QgY2FsY3VsYXRlZCA9IGNhbGN1bGF0ZShwb2ludHMpO1xuICAgIHBvc2l0aW9uWCA9IGNhbGN1bGF0ZWQueDtcbiAgICBwb3NpdGlvblkgPSBjYWxjdWxhdGVkLnk7XG4gIH0gZWxzZSB7XG4gICAgLy8gRm9yIHJlY3RhbmdsZXNcbiAgICBwb3NpdGlvblggPSB4ICsgd2lkdGggLSBvZmZzZXQ7XG4gICAgcG9zaXRpb25ZID0geSArIGhlaWdodCAtIG9mZnNldDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEdyb3VwIG9uQ2xpY2s9eygpID0+IGhhbmRsZVdpZGdldENsaWNrKGlkKX0+XG4gICAgICA8SW1hZ2VDb21wb25lbnQgeD17cG9zaXRpb25YfSB5PXtwb3NpdGlvbll9IHNyYz17ZmFEZWxldGV9IC8+XG4gICAgPC9Hcm91cD5cbiAgKTtcbn07XG5cbkRlbGV0ZVdpZGdldC5wcm9wVHlwZXMgPSB7XG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGhlaWdodDogUHJvcFR5cGVzLm51bWJlcixcbiAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIHg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgeTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBoYW5kbGVXaWRnZXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgcmFkaXVzOiBQcm9wVHlwZXMubnVtYmVyLFxuICBpc0NpcmNsZTogUHJvcFR5cGVzLmJvb2wsXG4gIHBvaW50czogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICB5OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIH0pLFxuICApLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGVsZXRlV2lkZ2V0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBRUEsTUFBTU0sWUFBWSxHQUFHQSxDQUFDO0VBQUVDLE1BQU07RUFBRUMsRUFBRTtFQUFFQyxLQUFLO0VBQUVDLENBQUM7RUFBRUMsQ0FBQztFQUFFQyxNQUFNO0VBQUVDLFFBQVE7RUFBRUMsTUFBTTtFQUFFQztBQUFrQixDQUFDLEtBQUs7RUFDakcsSUFBSUMsU0FBUyxFQUFFQyxTQUFTO0VBQ3hCLE1BQU1DLE1BQU0sR0FBRyxFQUFFO0VBRWpCLElBQUlMLFFBQVEsRUFBRTtJQUNaO0lBQ0FHLFNBQVMsR0FBR04sQ0FBQyxHQUFHSSxNQUFNLEdBQUdJLE1BQU07SUFDL0JELFNBQVMsR0FBR04sQ0FBQztFQUNmLENBQUMsTUFBTSxJQUFJQyxNQUFNLEVBQUU7SUFDakI7SUFDQSxNQUFNTyxVQUFVLEdBQUcsSUFBQUMsZ0JBQVMsRUFBQ1IsTUFBTSxDQUFDO0lBQ3BDSSxTQUFTLEdBQUdHLFVBQVUsQ0FBQ1QsQ0FBQztJQUN4Qk8sU0FBUyxHQUFHRSxVQUFVLENBQUNSLENBQUM7RUFDMUIsQ0FBQyxNQUFNO0lBQ0w7SUFDQUssU0FBUyxHQUFHTixDQUFDLEdBQUdELEtBQUssR0FBR1MsTUFBTTtJQUM5QkQsU0FBUyxHQUFHTixDQUFDLEdBQUdKLE1BQU0sR0FBR1csTUFBTTtFQUNqQztFQUVBLG9CQUNFcEIsTUFBQSxDQUFBdUIsT0FBQSxDQUFBQyxhQUFBLENBQUNwQixXQUFBLENBQUFxQixLQUFLO0lBQUNDLE9BQU8sRUFBRUEsQ0FBQSxLQUFNVCxpQkFBaUIsQ0FBQ1AsRUFBRTtFQUFFLGdCQUMxQ1YsTUFBQSxDQUFBdUIsT0FBQSxDQUFBQyxhQUFBLENBQUNsQixXQUFBLENBQUFpQixPQUFjO0lBQUNYLENBQUMsRUFBRU0sU0FBVTtJQUFDTCxDQUFDLEVBQUVNLFNBQVU7SUFBQ1EsR0FBRyxFQUFFQztFQUFTLENBQUUsQ0FDdkQsQ0FBQztBQUVaLENBQUM7QUFFRHBCLFlBQVksQ0FBQ3FCLFNBQVMsR0FBRztFQUN2Qm5CLEVBQUUsRUFBRW9CLGtCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtFQUMvQnZCLE1BQU0sRUFBRXFCLGtCQUFTLENBQUNHLE1BQU07RUFDeEJ0QixLQUFLLEVBQUVtQixrQkFBUyxDQUFDRyxNQUFNO0VBQ3ZCckIsQ0FBQyxFQUFFa0Isa0JBQVMsQ0FBQ0csTUFBTSxDQUFDRCxVQUFVO0VBQzlCbkIsQ0FBQyxFQUFFaUIsa0JBQVMsQ0FBQ0csTUFBTSxDQUFDRCxVQUFVO0VBQzlCZixpQkFBaUIsRUFBRWEsa0JBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQzVDaEIsTUFBTSxFQUFFYyxrQkFBUyxDQUFDRyxNQUFNO0VBQ3hCbEIsUUFBUSxFQUFFZSxrQkFBUyxDQUFDSyxJQUFJO0VBQ3hCckIsTUFBTSxFQUFFZ0Isa0JBQVMsQ0FBQ00sT0FBTyxDQUN2Qk4sa0JBQVMsQ0FBQ08sS0FBSyxDQUFDO0lBQ2R6QixDQUFDLEVBQUVrQixrQkFBUyxDQUFDRyxNQUFNO0lBQ25CcEIsQ0FBQyxFQUFFaUIsa0JBQVMsQ0FBQ0c7RUFDZixDQUFDLENBQ0g7QUFDRixDQUFDO0FBQUMsSUFBQUssUUFBQSxHQUFBQyxPQUFBLENBQUFoQixPQUFBLEdBRWFmLFlBQVkiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/DeleteWidget.jsx"],"names":["DeleteWidget","height","id","width","x","y","points","isCircle","radius","handleWidgetClick","positionX","positionY","offset","calculated","faDelete","propTypes","PropTypes","string","isRequired","number","func","bool","arrayOf","shape"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAA8E;AAAA,MAA3EC,MAA2E,QAA3EA,MAA2E;AAAA,MAAnEC,EAAmE,QAAnEA,EAAmE;AAAA,MAA/DC,KAA+D,QAA/DA,KAA+D;AAAA,MAAxDC,CAAwD,QAAxDA,CAAwD;AAAA,MAArDC,CAAqD,QAArDA,CAAqD;AAAA,MAAlDC,MAAkD,QAAlDA,MAAkD;AAAA,MAA1CC,QAA0C,QAA1CA,QAA0C;AAAA,MAAhCC,MAAgC,QAAhCA,MAAgC;AAAA,MAAxBC,iBAAwB,QAAxBA,iBAAwB;AACjG,MAAIC,SAAJ,EAAeC,SAAf;AACA,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIL,QAAJ,EAAc;AACZ;AACAG,IAAAA,SAAS,GAAGN,CAAC,GAAGI,MAAJ,GAAaI,MAAzB;AACAD,IAAAA,SAAS,GAAGN,CAAZ;AACD,GAJD,MAIO,IAAIC,MAAJ,EAAY;AACjB;AACA,QAAMO,UAAU,GAAG,sBAAUP,MAAV,CAAnB;AACAI,IAAAA,SAAS,GAAGG,UAAU,CAACT,CAAvB;AACAO,IAAAA,SAAS,GAAGE,UAAU,CAACR,CAAvB;AACD,GALM,MAKA;AACL;AACAK,IAAAA,SAAS,GAAGN,CAAC,GAAGD,KAAJ,GAAYS,MAAxB;AACAD,IAAAA,SAAS,GAAGN,CAAC,GAAGJ,MAAJ,GAAaW,MAAzB;AACD;;AAED,sBACE,gCAAC,iBAAD;AAAO,IAAA,OAAO,EAAE;AAAA,aAAMH,iBAAiB,CAACP,EAAD,CAAvB;AAAA;AAAhB,kBACE,gCAAC,sBAAD;AAAgB,IAAA,CAAC,EAAEQ,SAAnB;AAA8B,IAAA,CAAC,EAAEC,SAAjC;AAA4C,IAAA,GAAG,EAAEG;AAAjD,IADF,CADF;AAKD,CAxBD;;AA0BAd,YAAY,CAACe,SAAb,GAAyB;AACvBb,EAAAA,EAAE,EAAEc,sBAAUC,MAAV,CAAiBC,UADE;AAEvBjB,EAAAA,MAAM,EAAEe,sBAAUG,MAFK;AAGvBhB,EAAAA,KAAK,EAAEa,sBAAUG,MAHM;AAIvBf,EAAAA,CAAC,EAAEY,sBAAUG,MAAV,CAAiBD,UAJG;AAKvBb,EAAAA,CAAC,EAAEW,sBAAUG,MAAV,CAAiBD,UALG;AAMvBT,EAAAA,iBAAiB,EAAEO,sBAAUI,IAAV,CAAeF,UANX;AAOvBV,EAAAA,MAAM,EAAEQ,sBAAUG,MAPK;AAQvBZ,EAAAA,QAAQ,EAAES,sBAAUK,IARG;AASvBf,EAAAA,MAAM,EAAEU,sBAAUM,OAAV,CACNN,sBAAUO,KAAV,CAAgB;AACdnB,IAAAA,CAAC,EAAEY,sBAAUG,MADC;AAEdd,IAAAA,CAAC,EAAEW,sBAAUG;AAFC,GAAhB,CADM;AATe,CAAzB;eAiBenB,Y","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Group } from 'react-konva';\nimport { faDelete } from './icons';\nimport ImageComponent from './image-konva';\nimport { calculate } from './utils';\n\nconst DeleteWidget = ({ height, id, width, x, y, points, isCircle, radius, handleWidgetClick }) => {\n let positionX, positionY;\n const offset = 20;\n\n if (isCircle) {\n // For circles, position the delete icon above the circle\n positionX = x + radius - offset;\n positionY = y;\n } else if (points) {\n // For polygons, compute position based on points\n const calculated = calculate(points);\n positionX = calculated.x;\n positionY = calculated.y;\n } else {\n // For rectangles\n positionX = x + width - offset;\n positionY = y + height - offset;\n }\n\n return (\n <Group onClick={() => handleWidgetClick(id)}>\n <ImageComponent x={positionX} y={positionY} src={faDelete} />\n </Group>\n );\n};\n\nDeleteWidget.propTypes = {\n id: PropTypes.string.isRequired,\n height: PropTypes.number,\n width: PropTypes.number,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n handleWidgetClick: PropTypes.func.isRequired,\n radius: PropTypes.number,\n isCircle: PropTypes.bool,\n points: PropTypes.arrayOf(\n PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n ),\n};\n\nexport default DeleteWidget;\n"],"file":"DeleteWidget.js"}
1
+ {"version":3,"file":"DeleteWidget.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactKonva","_icons","_imageKonva","_utils","DeleteWidget","height","id","width","x","y","points","isCircle","radius","handleWidgetClick","positionX","positionY","offset","calculated","calculate","default","createElement","Group","onClick","src","faDelete","propTypes","PropTypes","string","isRequired","number","func","bool","arrayOf","shape","_default","exports"],"sources":["../src/DeleteWidget.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Group } from 'react-konva';\nimport { faDelete } from './icons';\nimport ImageComponent from './image-konva';\nimport { calculate } from './utils';\n\nconst DeleteWidget = ({ height, id, width, x, y, points, isCircle, radius, handleWidgetClick }) => {\n let positionX, positionY;\n const offset = 20;\n\n if (isCircle) {\n // For circles, position the delete icon above the circle\n positionX = x + radius - offset;\n positionY = y;\n } else if (points) {\n // For polygons, compute position based on points\n const calculated = calculate(points);\n positionX = calculated.x;\n positionY = calculated.y;\n } else {\n // For rectangles\n positionX = x + width - offset;\n positionY = y + height - offset;\n }\n\n return (\n <Group onClick={() => handleWidgetClick(id)}>\n <ImageComponent x={positionX} y={positionY} src={faDelete} />\n </Group>\n );\n};\n\nDeleteWidget.propTypes = {\n id: PropTypes.string.isRequired,\n height: PropTypes.number,\n width: PropTypes.number,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n handleWidgetClick: PropTypes.func.isRequired,\n radius: PropTypes.number,\n isCircle: PropTypes.bool,\n points: PropTypes.arrayOf(\n PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n ),\n};\n\nexport default DeleteWidget;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAEA,MAAMM,YAAY,GAAGA,CAAC;EAAEC,MAAM;EAAEC,EAAE;EAAEC,KAAK;EAAEC,CAAC;EAAEC,CAAC;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,MAAM;EAAEC;AAAkB,CAAC,KAAK;EACjG,IAAIC,SAAS,EAAEC,SAAS;EACxB,MAAMC,MAAM,GAAG,EAAE;EAEjB,IAAIL,QAAQ,EAAE;IACZ;IACAG,SAAS,GAAGN,CAAC,GAAGI,MAAM,GAAGI,MAAM;IAC/BD,SAAS,GAAGN,CAAC;EACf,CAAC,MAAM,IAAIC,MAAM,EAAE;IACjB;IACA,MAAMO,UAAU,GAAG,IAAAC,gBAAS,EAACR,MAAM,CAAC;IACpCI,SAAS,GAAGG,UAAU,CAACT,CAAC;IACxBO,SAAS,GAAGE,UAAU,CAACR,CAAC;EAC1B,CAAC,MAAM;IACL;IACAK,SAAS,GAAGN,CAAC,GAAGD,KAAK,GAAGS,MAAM;IAC9BD,SAAS,GAAGN,CAAC,GAAGJ,MAAM,GAAGW,MAAM;EACjC;EAEA,oBACEpB,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACpB,WAAA,CAAAqB,KAAK;IAACC,OAAO,EAAEA,CAAA,KAAMT,iBAAiB,CAACP,EAAE;EAAE,gBAC1CV,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAAClB,WAAA,CAAAiB,OAAc;IAACX,CAAC,EAAEM,SAAU;IAACL,CAAC,EAAEM,SAAU;IAACQ,GAAG,EAAEC;EAAS,CAAE,CACvD,CAAC;AAEZ,CAAC;AAEDpB,YAAY,CAACqB,SAAS,GAAG;EACvBnB,EAAE,EAAEoB,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC/BvB,MAAM,EAAEqB,kBAAS,CAACG,MAAM;EACxBtB,KAAK,EAAEmB,kBAAS,CAACG,MAAM;EACvBrB,CAAC,EAAEkB,kBAAS,CAACG,MAAM,CAACD,UAAU;EAC9BnB,CAAC,EAAEiB,kBAAS,CAACG,MAAM,CAACD,UAAU;EAC9Bf,iBAAiB,EAAEa,kBAAS,CAACI,IAAI,CAACF,UAAU;EAC5ChB,MAAM,EAAEc,kBAAS,CAACG,MAAM;EACxBlB,QAAQ,EAAEe,kBAAS,CAACK,IAAI;EACxBrB,MAAM,EAAEgB,kBAAS,CAACM,OAAO,CACvBN,kBAAS,CAACO,KAAK,CAAC;IACdzB,CAAC,EAAEkB,kBAAS,CAACG,MAAM;IACnBpB,CAAC,EAAEiB,kBAAS,CAACG;EACf,CAAC,CACH;AACF,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAhB,OAAA,GAEaf,YAAY","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _enzyme = require("enzyme");
6
+ var _DeleteWidget = _interopRequireDefault(require("../DeleteWidget"));
7
+ var _imageKonva = _interopRequireDefault(require("../image-konva"));
8
+ // Adjust the import path as needed
9
+
10
+ describe('DeleteWidget', () => {
11
+ it('computes positionX and positionY correctly without points', () => {
12
+ const mockHandleWidgetClick = jest.fn();
13
+ const props = {
14
+ id: 'someId',
15
+ x: 5,
16
+ y: 10,
17
+ width: 30,
18
+ height: 40,
19
+ outlineColor: 'blue',
20
+ handleWidgetClick: mockHandleWidgetClick
21
+ };
22
+ const wrapper = (0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_DeleteWidget.default, props));
23
+
24
+ // Assert that the computed positionX and positionY match the expected values
25
+ expect(wrapper.find(_imageKonva.default).prop('x')).toEqual(15);
26
+ expect(wrapper.find(_imageKonva.default).prop('y')).toEqual(30);
27
+
28
+ // Simulate a click event on the Group element
29
+ wrapper.find('Group').simulate('click');
30
+
31
+ // Assert that the handleWidgetClick function is called with the correct arguments
32
+ expect(mockHandleWidgetClick).toHaveBeenCalledWith('someId');
33
+ });
34
+ it('computes positionX and positionY correctly with points', () => {
35
+ const props = {
36
+ id: 'someId',
37
+ x: 5,
38
+ y: 10,
39
+ points: [{
40
+ "y": 151,
41
+ "x": 141
42
+ }, {
43
+ "y": 289,
44
+ "x": 205
45
+ }, {
46
+ "x": 269,
47
+ "y": 151
48
+ }],
49
+ width: 30,
50
+ height: 40,
51
+ outlineColor: 'blue'
52
+ };
53
+ const wrapper = (0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_DeleteWidget.default, props));
54
+
55
+ // Assert that the computed positionX and positionY match the expected values
56
+ expect(wrapper.find(_imageKonva.default).prop('x')).toEqual(239);
57
+ expect(wrapper.find(_imageKonva.default).prop('y')).toEqual(194);
58
+ });
59
+ });
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9lbnp5bWUiLCJfRGVsZXRlV2lkZ2V0IiwiX2ltYWdlS29udmEiLCJkZXNjcmliZSIsIml0IiwibW9ja0hhbmRsZVdpZGdldENsaWNrIiwiamVzdCIsImZuIiwicHJvcHMiLCJpZCIsIngiLCJ5Iiwid2lkdGgiLCJoZWlnaHQiLCJvdXRsaW5lQ29sb3IiLCJoYW5kbGVXaWRnZXRDbGljayIsIndyYXBwZXIiLCJzaGFsbG93IiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJleHBlY3QiLCJmaW5kIiwiSW1hZ2VDb21wb25lbnQiLCJwcm9wIiwidG9FcXVhbCIsInNpbXVsYXRlIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJwb2ludHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL0RlbGV0ZVdpZGdldC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBEZWxldGVXaWRnZXQgZnJvbSAnLi4vRGVsZXRlV2lkZ2V0JzsgLy8gQWRqdXN0IHRoZSBpbXBvcnQgcGF0aCBhcyBuZWVkZWRcbmltcG9ydCBJbWFnZUNvbXBvbmVudCBmcm9tICcuLi9pbWFnZS1rb252YSc7XG5cbmRlc2NyaWJlKCdEZWxldGVXaWRnZXQnLCAoKSA9PiB7XG4gICAgaXQoJ2NvbXB1dGVzIHBvc2l0aW9uWCBhbmQgcG9zaXRpb25ZIGNvcnJlY3RseSB3aXRob3V0IHBvaW50cycsICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9ja0hhbmRsZVdpZGdldENsaWNrID0gamVzdC5mbigpO1xuXG4gICAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICAgICAgaWQ6ICdzb21lSWQnLFxuICAgICAgICAgICAgeDogNSxcbiAgICAgICAgICAgIHk6IDEwLFxuICAgICAgICAgICAgd2lkdGg6IDMwLFxuICAgICAgICAgICAgaGVpZ2h0OiA0MCxcbiAgICAgICAgICAgIG91dGxpbmVDb2xvcjogJ2JsdWUnLFxuICAgICAgICAgICAgaGFuZGxlV2lkZ2V0Q2xpY2s6IG1vY2tIYW5kbGVXaWRnZXRDbGljayxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2hhbGxvdyg8RGVsZXRlV2lkZ2V0IHsuLi5wcm9wc30gLz4pO1xuXG4gICAgICAgIC8vIEFzc2VydCB0aGF0IHRoZSBjb21wdXRlZCBwb3NpdGlvblggYW5kIHBvc2l0aW9uWSBtYXRjaCB0aGUgZXhwZWN0ZWQgdmFsdWVzXG4gICAgICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoSW1hZ2VDb21wb25lbnQpLnByb3AoJ3gnKSkudG9FcXVhbCgxNSk7XG4gICAgICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoSW1hZ2VDb21wb25lbnQpLnByb3AoJ3knKSkudG9FcXVhbCgzMCk7XG5cbiAgICAgICAgLy8gU2ltdWxhdGUgYSBjbGljayBldmVudCBvbiB0aGUgR3JvdXAgZWxlbWVudFxuICAgICAgICB3cmFwcGVyLmZpbmQoJ0dyb3VwJykuc2ltdWxhdGUoJ2NsaWNrJyk7XG5cbiAgICAgICAgLy8gQXNzZXJ0IHRoYXQgdGhlIGhhbmRsZVdpZGdldENsaWNrIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHRoZSBjb3JyZWN0IGFyZ3VtZW50c1xuICAgICAgICBleHBlY3QobW9ja0hhbmRsZVdpZGdldENsaWNrKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnc29tZUlkJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnY29tcHV0ZXMgcG9zaXRpb25YIGFuZCBwb3NpdGlvblkgY29ycmVjdGx5IHdpdGggcG9pbnRzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICAgIGlkOiAnc29tZUlkJyxcbiAgICAgICAgICAgIHg6IDUsXG4gICAgICAgICAgICB5OiAxMCxcbiAgICAgICAgICAgIHBvaW50czogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ5XCI6IDE1MSxcbiAgICAgICAgICAgICAgICAgICAgXCJ4XCI6IDE0MVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInlcIjogMjg5LFxuICAgICAgICAgICAgICAgICAgICBcInhcIjogMjA1XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwieFwiOiAyNjksXG4gICAgICAgICAgICAgICAgICAgIFwieVwiOiAxNTFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgd2lkdGg6IDMwLFxuICAgICAgICAgICAgaGVpZ2h0OiA0MCxcbiAgICAgICAgICAgIG91dGxpbmVDb2xvcjogJ2JsdWUnLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzaGFsbG93KDxEZWxldGVXaWRnZXQgey4uLnByb3BzfSAvPik7XG5cbiAgICAgICAgLy8gQXNzZXJ0IHRoYXQgdGhlIGNvbXB1dGVkIHBvc2l0aW9uWCBhbmQgcG9zaXRpb25ZIG1hdGNoIHRoZSBleHBlY3RlZCB2YWx1ZXNcbiAgICAgICAgZXhwZWN0KHdyYXBwZXIuZmluZChJbWFnZUNvbXBvbmVudCkucHJvcCgneCcpKS50b0VxdWFsKDIzOSk7XG4gICAgICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoSW1hZ2VDb21wb25lbnQpLnByb3AoJ3knKSkudG9FcXVhbCgxOTQpO1xuXG4gICAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsYUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRDRDOztBQUc1Q0ksUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNO0VBQzNCQyxFQUFFLENBQUMsMkRBQTJELEVBQUUsTUFBTTtJQUNsRSxNQUFNQyxxQkFBcUIsR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztJQUV2QyxNQUFNQyxLQUFLLEdBQUc7TUFDVkMsRUFBRSxFQUFFLFFBQVE7TUFDWkMsQ0FBQyxFQUFFLENBQUM7TUFDSkMsQ0FBQyxFQUFFLEVBQUU7TUFDTEMsS0FBSyxFQUFFLEVBQUU7TUFDVEMsTUFBTSxFQUFFLEVBQUU7TUFDVkMsWUFBWSxFQUFFLE1BQU07TUFDcEJDLGlCQUFpQixFQUFFVjtJQUN2QixDQUFDO0lBRUQsTUFBTVcsT0FBTyxHQUFHLElBQUFDLGVBQU8sZUFBQ3BCLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDbEIsYUFBQSxDQUFBaUIsT0FBWSxFQUFLVixLQUFRLENBQUMsQ0FBQzs7SUFFcEQ7SUFDQVksTUFBTSxDQUFDSixPQUFPLENBQUNLLElBQUksQ0FBQ0MsbUJBQWMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUMxREosTUFBTSxDQUFDSixPQUFPLENBQUNLLElBQUksQ0FBQ0MsbUJBQWMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7SUFFMUQ7SUFDQVIsT0FBTyxDQUFDSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUNJLFFBQVEsQ0FBQyxPQUFPLENBQUM7O0lBRXZDO0lBQ0FMLE1BQU0sQ0FBQ2YscUJBQXFCLENBQUMsQ0FBQ3FCLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztFQUNoRSxDQUFDLENBQUM7RUFFRnRCLEVBQUUsQ0FBQyx3REFBd0QsRUFBRSxNQUFNO0lBQy9ELE1BQU1JLEtBQUssR0FBRztNQUNWQyxFQUFFLEVBQUUsUUFBUTtNQUNaQyxDQUFDLEVBQUUsQ0FBQztNQUNKQyxDQUFDLEVBQUUsRUFBRTtNQUNMZ0IsTUFBTSxFQUFFLENBQ0o7UUFDSSxHQUFHLEVBQUUsR0FBRztRQUNSLEdBQUcsRUFBRTtNQUNULENBQUMsRUFDRDtRQUNJLEdBQUcsRUFBRSxHQUFHO1FBQ1IsR0FBRyxFQUFFO01BQ1QsQ0FBQyxFQUNEO1FBQ0ksR0FBRyxFQUFFLEdBQUc7UUFDUixHQUFHLEVBQUU7TUFDVCxDQUFDLENBQ0o7TUFDRGYsS0FBSyxFQUFFLEVBQUU7TUFDVEMsTUFBTSxFQUFFLEVBQUU7TUFDVkMsWUFBWSxFQUFFO0lBQ2xCLENBQUM7SUFFRCxNQUFNRSxPQUFPLEdBQUcsSUFBQUMsZUFBTyxlQUFDcEIsTUFBQSxDQUFBcUIsT0FBQSxDQUFBQyxhQUFBLENBQUNsQixhQUFBLENBQUFpQixPQUFZLEVBQUtWLEtBQVEsQ0FBQyxDQUFDOztJQUVwRDtJQUNBWSxNQUFNLENBQUNKLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDQyxtQkFBYyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzNESixNQUFNLENBQUNKLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDQyxtQkFBYyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsR0FBRyxDQUFDO0VBRS9ELENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==