You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: playground/web-annotations.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -99,3 +99,5 @@
99
99
- [Skip the Delete confirmation popup dialog for annotations](https://www.nutrient.io/playground?p=eyJ2IjoxLCJqcyI6Ii8vVGl0bGU6IFNraXAgdGhlIERlbGV0ZSBjb25maXJtYXRpb24gcG9wLXVwIGRpYWxvZyBmb3IgQW5ub3RhdGlvbnNcblBTUERGS2l0LmxvYWQoe1xuICAuLi5iYXNlT3B0aW9ucyxcbiAgdGhlbWU6IFBTUERGS2l0LlRoZW1lLkRBUkssXG59KS50aGVuKChpbnN0YW5jZSkgPT4ge1xuICAvLyBTa2lwIGFubm90YXRpb24gZGVsZXRlIGNvbmZpcm1hdGlvbiBwb3B1cFxuICBpbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKFwiYW5ub3RhdGlvbnMud2lsbENoYW5nZVwiLCAoZXZlbnQpID0%252BIHtcbiAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgZGVsZXRlIHN0YXJ0IGFjdGlvblxuICAgIGlmIChldmVudC5yZWFzb24gPT09IFBTUERGS2l0LkFubm90YXRpb25zV2lsbENoYW5nZVJlYXNvbi5ERUxFVEVfU1RBUlQpIHtcbiAgICAgIC8vIERlbGV0ZSB0aGUgYW5ub3RhdGlvbiBpbW1lZGlhdGVseVxuICAgICAgaW5zdGFuY2UuZGVsZXRlKGV2ZW50LmFubm90YXRpb25zLmdldCgwKSk7XG4gICAgICAvLyBDbGljayB0aGUgY2FuY2VsIGJ1dHRvbiB0byBwcmV2ZW50IHRoZSBkaWFsb2cgZnJvbSBzaG93aW5nXG4gICAgICBpbnN0YW5jZS5jb250ZW50RG9jdW1lbnRcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoXCIuUFNQREZLaXQtQ29uZmlybS1EaWFsb2ctQnV0dG9uLUNhbmNlbFwiKVxuICAgICAgICAuY2xpY2soKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iLCJjc3MiOiIvKiBBZGQgeW91ciBDU1MgaGVyZSAqL1xuIiwic2V0dGluZ3MiOnsiZmlsZU5hbWUiOiJiYXNpYy5wZGYifX0%253D)
100
100
- This hook listens for the annotation deletion start event and immediately deletes the targeted annotation. It then clicks the dialog’s Cancel button to suppress the confirmation UI. The result is a seamless delete action with no popup interrupting the workflow
101
101
102
+
- [Keep annotations fixed when rotating page](https://www.nutrient.io/demo/sandbox?p=eyJqcyI6Ik51dHJpZW50Vmlld2VyLmxvYWQoe1xuICAuLi5iYXNlT3B0aW9ucyxcbiAgaW5zdGFudEpTT046IEpTT04ucGFyc2UoXG4gICAgYHtcImFubm90YXRpb25zXCI6W3tcImJib3hcIjpbNDYuODM4LDMwLjQsMzE4LjQsMjQwXSxcImNyZWF0ZWRBdFwiOlwiMjAyNi0wMy0xM1QxMzoxMjo1MlpcIixcImNyZWF0b3JOYW1lXCI6XCJrZW5AYXdzLm5ldFwiLFwiaWRcIjpcIjAxS0tLTjg0OVFIRlg5Q0pWU1hBRDZQR0dDXCIsXCJuYW1lXCI6XCIwMUtLS044NDlRSEZYOUNKVlNYQUQ2UEdHQ1wiLFwib3BhY2l0eVwiOjEsXCJwYWdlSW5kZXhcIjowLFwic3Ryb2tlQ29sb3JcIjpcIiNGRjAwMDBcIixcInN0cm9rZVdpZHRoXCI6NSxcInR5cGVcIjpcInBzcGRma2l0L3NoYXBlL2VsbGlwc2VcIixcInVwZGF0ZWRBdFwiOlwiMjAyNi0wMy0xM1QxMzoxMjo1N1pcIixcInZcIjoyfV0sXCJmb3JtYXRcIjpcImh0dHBzOi8vcHNwZGZraXQuY29tL2luc3RhbnQtanNvbi92MVwifWBcbiAgKSxcbn0pLnRoZW4oYXN5bmMgKGluc3RhbmNlKSA9PiB7XG4gIC8vIFdpZGdldCBhbm5vdGF0aW9ucyAoZm9ybSBmaWVsZHMpIGhhdmUgYWRkaXRpb25hbEFjdGlvbnMgbGlrZSBvblBvaW50ZXJEb3duXG4gIC8vIHdoaWNoIHRoZSBTREsgcmVqZWN0cyBvbiB1cGRhdGUg4oCUIGV4Y2x1ZGUgdGhlbSBmcm9tIGNhY2hlL3Jlc3RvcmVcbiAgY29uc3QgRVhDTFVERURfVFlQRVMgPSBbXG4gICAgTnV0cmllbnRWaWV3ZXIuQW5ub3RhdGlvbnMuV2lkZ2V0QW5ub3RhdGlvbixcbiAgICBOdXRyaWVudFZpZXdlci5Bbm5vdGF0aW9ucy5MaW5rQW5ub3RhdGlvbixcbiAgXTtcblxuICBmdW5jdGlvbiBpc0NhY2hlYWJsZShhbm5vdGF0aW9uKSB7XG4gICAgcmV0dXJuICFFWENMVURFRF9UWVBFUy5zb21lKChUeXBlKSA9PiBhbm5vdGF0aW9uIGluc3RhbmNlb2YgVHlwZSk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBjYWNoZUFubm90YXRpb25Qb3NpdGlvbnMocGFnZUluZGV4ZXMpIHtcbiAgICBjb25zdCBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgICBmb3IgKGNvbnN0IHBhZ2VJbmRleCBvZiBwYWdlSW5kZXhlcykge1xuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBhd2FpdCBpbnN0YW5jZS5nZXRBbm5vdGF0aW9ucyhwYWdlSW5kZXgpO1xuICAgICAgYW5ub3RhdGlvbnMuZmlsdGVyKGlzQ2FjaGVhYmxlKS5mb3JFYWNoKChhbm5vdGF0aW9uKSA9PiB7XG4gICAgICAgIGNhY2hlLnNldChhbm5vdGF0aW9uLmlkLCB7XG4gICAgICAgICAgYm91bmRpbmdCb3g6IGFubm90YXRpb24uYm91bmRpbmdCb3gsXG4gICAgICAgICAgcGFnZUluZGV4OiBhbm5vdGF0aW9uLnBhZ2VJbmRleCxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlO1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcmVzdG9yZUFubm90YXRpb25Qb3NpdGlvbnMoY2FjaGUpIHtcbiAgICBmb3IgKGNvbnN0IFtpZCwgeyBib3VuZGluZ0JveCwgcGFnZUluZGV4IH1dIG9mIGNhY2hlLmVudHJpZXMoKSkge1xuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBhd2FpdCBpbnN0YW5jZS5nZXRBbm5vdGF0aW9ucyhwYWdlSW5kZXgpO1xuICAgICAgY29uc3QgYW5ub3RhdGlvbiA9IGFubm90YXRpb25zLmZpbmQoKGEpID0%2BIGEuaWQgPT09IGlkKTtcbiAgICAgIGlmIChhbm5vdGF0aW9uKSB7XG4gICAgICAgIGF3YWl0IGluc3RhbmNlLnVwZGF0ZShhbm5vdGF0aW9uLnNldChcImJvdW5kaW5nQm94XCIsIGJvdW5kaW5nQm94KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcm90YXRlUGFnZXNXaXRob3V0TW92aW5nQW5ub3RhdGlvbnMocGFnZUluZGV4ZXMsIHJvdGF0ZUJ5KSB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNoZUFubm90YXRpb25Qb3NpdGlvbnMocGFnZUluZGV4ZXMpO1xuICAgIGF3YWl0IGluc3RhbmNlLmFwcGx5T3BlcmF0aW9ucyhbXG4gICAgICB7IHR5cGU6IFwicm90YXRlUGFnZXNcIiwgcGFnZUluZGV4ZXMsIHJvdGF0ZUJ5IH0sXG4gICAgXSk7XG4gICAgYXdhaXQgcmVzdG9yZUFubm90YXRpb25Qb3NpdGlvbnMoY2FjaGUpO1xuICB9XG5cbiAgYXdhaXQgcm90YXRlUGFnZXNXaXRob3V0TW92aW5nQW5ub3RhdGlvbnMoWzBdLCA5MCk7XG59KTtcbiIsImNzcyI6Ii8qIEFkZCB5b3VyIENTUyBoZXJlICovXG4iLCJzZXR0aW5ncyI6eyJmaWxlTmFtZSI6ImJhc2ljLnBkZiIsInVzZUR5bmFtaWNGb250cyI6dHJ1ZSwiY3VzdG9tRm9udEZpbGVOYW1lcyI6W119LCJ2IjoxfQ%3D%3D)
103
+
- Demonstrates how to prevent annotations from moving when a page is rotated via `applyOperations`. The workaround caches each annotation's `boundingBox` before the rotation and restores it afterward, since `rotatePages` currently transforms annotation coordinates as an intended behaviour.
0 commit comments