@vitrosoftware/common-ui-ts 1.1.226 → 1.1.227

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 (50) hide show
  1. package/css/std/controls/alert/alert.css +47 -10
  2. package/css/std/controls/bim-viewer/bim-viewer-index.css +0 -4
  3. package/css/std/controls/bim-viewer/style.css +0 -4
  4. package/css/std/controls/dialog/dialog-content.css +0 -3
  5. package/css/std/controls/dialog/dialog-footer.css +0 -2
  6. package/css/std/controls/dxf-viewer/common.css +0 -4
  7. package/css/std/controls/dxf-viewer/dxf-viewer-index.css +0 -4
  8. package/css/std/controls/field-iterator/field-iterator.css +0 -6
  9. package/css/std/controls/file/file.css +4 -5
  10. package/css/std/controls/file/img/file-button-context.svg +6 -0
  11. package/css/std/controls/filter/filter.css +1 -1
  12. package/css/std/controls/lookup-picker/lookup-picker.css +19 -41
  13. package/css/std/controls/pdf-viewer/custom.css +0 -4
  14. package/css/std/controls/pdf-viewer/pdf-viewer-index.css +0 -69
  15. package/css/std/controls/pdf-viewer/pdf-viewer.css +0 -65
  16. package/css/std/controls/select/select.css +1 -25
  17. package/css/std/controls/tab-group/tab-group.css +3 -6
  18. package/css/std/controls/table-view/treegrid-cell.css +0 -1
  19. package/css/std/controls/table-view/treegrid-context-menu.css +0 -19
  20. package/css/std/controls/video-viewer/video-viewer.css +1 -1
  21. package/dist/index.css +77 -100
  22. package/dist/index.js +1161 -1507
  23. package/dist/index.js.map +1 -1
  24. package/dist/src/constants/Factory.d.ts +0 -1
  25. package/dist/src/controls/Alert/Alert.d.ts +4 -0
  26. package/dist/src/controls/Dialog/Dialog.d.ts +0 -2
  27. package/dist/src/controls/Dialog/DialogContent.d.ts +0 -1
  28. package/dist/src/controls/LookupPicker/RightButtonGroup.d.ts +2 -2
  29. package/dist/src/controls/PdfViewer/services/PdfViewerService.d.ts +0 -2
  30. package/dist/src/controls/ScrollBar/ScrollBar.d.ts +2 -3
  31. package/dist/src/controls/Search/Search.d.ts +2 -3
  32. package/dist/src/controls/TabGroup/Tab.d.ts +3 -3
  33. package/dist/src/controls/TabGroup/TabGroup.d.ts +1 -0
  34. package/dist/src/controls/TabGroup/TabGroupComponent.d.ts +1 -0
  35. package/dist/src/controls/TabGroup/models/Tab.d.ts +1 -2
  36. package/dist/src/controls/TableView/TableView.d.ts +0 -2
  37. package/dist/src/controls/TableView/TableViewConstants.d.ts +2 -7
  38. package/dist/src/controls/TableView/models/TableViewMenuItem.d.ts +0 -2
  39. package/dist/src/controls/TableView/services/TableViewService.d.ts +0 -3
  40. package/dist/src/controls/TableView/services/impl/TableViewServiceImpl.d.ts +1 -5
  41. package/dist/src/controls/View/View.d.ts +1 -1
  42. package/dist/src/models/Item.d.ts +1 -0
  43. package/dist/src/models/ItemId.d.ts +0 -2
  44. package/dist/src/services/ItemSelectDialogService.d.ts +1 -1
  45. package/dist/src/services.d.ts +0 -3
  46. package/lib/dxf-viewer/OrbitControls.js +2 -6
  47. package/package.json +1 -1
  48. package/src/controls/BimViewer/js/bim-viewer.js +3 -3
  49. package/src/controls/DxfViewer/js/dxf-viewer.js +33 -67
  50. package/src/controls/PdfViewer/js/pdf-viewer.js +4 -748
@@ -21208,7 +21208,7 @@ const defaultOptions = {
21208
21208
  kind: OptionKind.WORKER
21209
21209
  },
21210
21210
  workerSrc: {
21211
- value: "resource/pdfViewer/js/pdf.worker.js?version=1.1.226",
21211
+ value: "resource/pdfViewer/js/pdf.worker.js?version=1.1.227",
21212
21212
  kind: OptionKind.WORKER
21213
21213
  }
21214
21214
  };
@@ -35538,7 +35538,6 @@ function initZoomPageEvent() {
35538
35538
  if(e.pageNumber == getCurrentPage()) {
35539
35539
  $(document).trigger('needZoom');
35540
35540
  }
35541
- reloadMarkupEditOutlineSettings(e.pageNumber, true);
35542
35541
  });
35543
35542
  // PDFViewerApplication.eventBus.on('pagechange', function(e) {
35544
35543
  // console.log('pagechange', e);
@@ -37443,7 +37442,7 @@ function initContextMenuCanvas() {
37443
37442
  }
37444
37443
  },
37445
37444
  build: function ($triggerElement, e) {
37446
- if ($('.svgsketch-wrap').hasClass('measures') || (e?.target && $(e?.target)?.hasClass('pdf-note'))) {
37445
+ if ($('.svgsketch-wrap').hasClass('measures')) {
37447
37446
  return false;
37448
37447
  } else {
37449
37448
  return {
@@ -38668,9 +38667,9 @@ function initItemChangedEventListener() {
38668
38667
  window.addEventListener(EVENT_ITEM_CHANGED, onItemChanged);
38669
38668
  }
38670
38669
 
38671
- function onItemChanged(e) {
38670
+ function onItemChanged() {
38672
38671
  const width = $('.vitro-issue-detail').width();
38673
- if (width && $('.vitro-issue-detail').is(':visible')) {
38672
+ if (width) {
38674
38673
  setContainerInset(width);
38675
38674
  }
38676
38675
  if (!$('.vitro-issue-detail').resizable('instance')) {
@@ -38776,749 +38775,6 @@ function isScaleModeRelative() {
38776
38775
  const currentScaleMode = PDFViewerApplication.pdfViewer._currentScaleValue;
38777
38776
  return currentScaleMode == 'page-width' || currentScaleMode == 'page-fit' || currentScaleMode == 'auto';
38778
38777
  }
38779
- const MARKUP_RESIZER_ID_PREFIX = 'markupResizer';
38780
- const CSS_CLASS_MARKUP_RESIZER = 'vitro-markup-resizer';
38781
- const CSS_CLASS_PDF_NOTE = 'pdf-note';
38782
- const CSS_CLASS_PAGE = 'page';
38783
- const MARKUP_EDIT_OUTLINE_ID = 'markupEditOutline';
38784
- let isMarkupEdit;
38785
- let isMarkupMove;
38786
- let isMarkupResize;
38787
- let markupResizeCoordinates = {}; // {start: {mouseX, mouseY}, end: {mouseX, mouseY}, type: tl|tc|tr|...}
38788
- let markupMoveCoordinates = {}; // {start: {mouseX, mouseY}, end: {mouseX, mouseY}}
38789
- let markupUnderEditingSettings = {};
38790
- let markupEditOutlineSettings = {};
38791
-
38792
-
38793
- function onMarkupEditStart(e) {
38794
- setPdfViewerCursorToolMode();
38795
- if (isMarkupEdit) {
38796
- endMarkupEdit();
38797
- }
38798
- isMarkupEdit = true;
38799
- createMarkupEditOutline(e);
38800
- bindMouseUpEventHandler();
38801
- bindOnMarkupEditEndHandler();
38802
- }
38803
-
38804
- function onMarkupEditOutlineMouseDown(e) {
38805
- e.stopPropagation();
38806
- e.preventDefault();
38807
-
38808
- isMarkupMove = true;
38809
- markupMoveCoordinates.start = { x: e.clientX, y: e.clientY };
38810
- bindOnMouseMoveEventHandler();
38811
- }
38812
-
38813
- function onMarkupEditOutlineMouseUp(e) {
38814
- markupMoveCoordinates.end = { x: e.clientX, y: e.clientY };
38815
- unbindOnMouseMoveEventHandler()
38816
- onMarkupMoveEnd();
38817
- }
38818
-
38819
- function onMouseMove(e) {
38820
- if (isMarkupEdit && isMarkupMove) {
38821
- onMarkupMove(e.clientX, e.clientY);
38822
- }
38823
- if (isMarkupEdit && isMarkupResize) {
38824
- onMarkupResize(e.clientX, e.clientY);
38825
- }
38826
- }
38827
-
38828
- function onMarkupMove(mouseX, mouseY) {
38829
- const x = markupEditOutlineSettings.position.x - markupMoveCoordinates.start.x + mouseX;
38830
- const y = markupEditOutlineSettings.position.y - markupMoveCoordinates.start.y + mouseY;
38831
- setMarkupOutlinePosition($('#' + MARKUP_EDIT_OUTLINE_ID), x, y);
38832
- }
38833
-
38834
- function onMarkupMoveEnd() {
38835
- isMarkupMove = false;
38836
- markupMoveCoordinates = {};
38837
- setMarkupEditOutlinePositionNew();
38838
- if (markupEditOutlineSettings.isSimple) {
38839
- refreshMarkupSimple();
38840
- setMarkupSimpleUnderEditingSettingsNew();
38841
- } else {
38842
- setMarkupUnderEditingSettingsNew(false);
38843
- refreshMarkup();
38844
- }
38845
- updateMarkupInContextIssueList();
38846
- }
38847
-
38848
- function refreshMarkupSimple() {
38849
- let labelPosition = { ...markupEditOutlineSettings.position };
38850
- const rotation = getPdfPagesRotation();
38851
- if (rotation == 90) {
38852
- labelPosition.x = labelPosition.x + $('#markupEditOutline').height() + 1;
38853
- }
38854
- if (rotation == 180) {
38855
- labelPosition.x = labelPosition.x + $('#markupEditOutline').width() + 1;
38856
- labelPosition.y = labelPosition.y + $('#markupEditOutline').height() + 1;
38857
- }
38858
- if (rotation == 270) {
38859
- labelPosition.y = labelPosition.y + $('#markupEditOutline').width() + 1;
38860
- }
38861
- $('.pdf-note#' + markupUnderEditingSettings.issueId).css('left', labelPosition.x)
38862
- .css('top', labelPosition.y);
38863
- }
38864
-
38865
- function refreshMarkup() {
38866
- const markupSvgData = { ...markupUnderEditingSettings.markup.svg };
38867
- if (!$('#' + markupSvgData.id)?.length) {
38868
- markupSvgData.id = markupUnderEditingSettings.issueId;
38869
- }
38870
- loadSvgShape(markupSvgData);
38871
- refreshMarkupLabel(markupSvgData);
38872
- }
38873
-
38874
- function refreshMarkupLabel(markupSvgData) {
38875
- const rotation = getPdfPagesRotation();
38876
- const scale = getPdfCanvasScale();
38877
- const labelPosition = getMarkupLabelPositionBySvgType(markupSvgData, markupUnderEditingSettings.markup.position);
38878
- const labelPositionScaled = { x: labelPosition.x * scale, y: labelPosition.y * scale };
38879
- let labelPositionWithRotation = { ...labelPositionScaled };
38880
- if (rotation > 0) {
38881
- const data = {
38882
- position: { ...labelPositionScaled },
38883
- pageNr: markupUnderEditingSettings.markup.pageNr
38884
- };
38885
- labelPositionWithRotation = getNoteLabelPositionWithRotation(data, rotation);
38886
- }
38887
- const markupLabelElm = $('#' + markupUnderEditingSettings.issueId);
38888
- markupLabelElm.css('left', labelPositionWithRotation.x).css('top', labelPositionWithRotation.y);
38889
- }
38890
-
38891
- function updateMarkupInContextIssueList() {
38892
- const issueIndex = context.issueList.findIndex(item => item.id === markupUnderEditingSettings.issueId);
38893
- context.issueList[issueIndex].markup = JSON.stringify(markupUnderEditingSettings.markup);
38894
- }
38895
-
38896
- function setMarkupEditOutlinePositionNew() {
38897
- const markupEditOutlinePosition = $('#' + MARKUP_EDIT_OUTLINE_ID).position();
38898
- markupEditOutlineSettings.position.x = markupEditOutlinePosition?.left;
38899
- markupEditOutlineSettings.position.y = markupEditOutlinePosition?.top;
38900
- }
38901
-
38902
- function getMarkupEditOutlineSettingsNormalized() {
38903
- const svgsketchElm = $('#svgsketch-' + markupUnderEditingSettings.markup.pageNr);
38904
- const svgsketchWidth = svgsketchElm.width();
38905
- const svgsketchHeight = svgsketchElm.height();
38906
- const scale = getPdfCanvasScale();
38907
- const rotation = getPdfPagesRotation();
38908
-
38909
- if (rotation === 90) {
38910
- return getMarkupEditOutlineSettingsNormalizedRotation90Deg(scale, svgsketchWidth);
38911
- } else if (rotation === 180) {
38912
- return getMarkupEditOutlineSettingsNormalizedRotation180Deg(scale, svgsketchWidth, svgsketchHeight);
38913
- } else if (rotation === 270) {
38914
- return getMarkupEditOutlineSettingsNormalizedRotation270Deg(scale, svgsketchHeight);
38915
- } else {
38916
- return getMarkupEditOutlineSettingsNormalizedRotation0Deg(scale);
38917
- }
38918
- }
38919
-
38920
- function getMarkupEditOutlineSettingsNormalizedRotation0Deg(scale) {
38921
- const settings = {
38922
- position: {
38923
- x: markupEditOutlineSettings.position.x / scale,
38924
- y: markupEditOutlineSettings.position.y / scale
38925
- },
38926
- width: markupEditOutlineSettings.width / scale,
38927
- height: markupEditOutlineSettings.height / scale
38928
- };
38929
- return settings;
38930
- }
38931
-
38932
- function getMarkupEditOutlineSettingsNormalizedRotation90Deg(scale, svgsketchWidth) {
38933
- const settings = {
38934
- position: {
38935
- x: markupEditOutlineSettings.position.y / scale,
38936
- y: (svgsketchWidth - markupEditOutlineSettings.width - markupEditOutlineSettings.position.x) / scale
38937
- },
38938
- width: markupEditOutlineSettings.height / scale,
38939
- height: markupEditOutlineSettings.width / scale
38940
- };
38941
- return settings;
38942
- }
38943
-
38944
- function getMarkupEditOutlineSettingsNormalizedRotation180Deg(scale, svgsketchWidth, svgsketchHeight) {
38945
- const settings = {
38946
- position: {
38947
- x: (svgsketchWidth - markupEditOutlineSettings.width - markupEditOutlineSettings.position.x) / scale,
38948
- y: (svgsketchHeight - markupEditOutlineSettings.height - markupEditOutlineSettings.position.y) / scale
38949
- },
38950
- width: markupEditOutlineSettings.width / scale,
38951
- height: markupEditOutlineSettings.height / scale
38952
- };
38953
- return settings;
38954
- }
38955
-
38956
- function getMarkupEditOutlineSettingsNormalizedRotation270Deg(scale, svgsketchHeight) {
38957
- const settings = {
38958
- position: {
38959
- x: (svgsketchHeight - markupEditOutlineSettings.height - markupEditOutlineSettings.position.y) / scale,
38960
- y: markupEditOutlineSettings.position.x / scale
38961
- },
38962
- width: markupEditOutlineSettings.height / scale,
38963
- height: markupEditOutlineSettings.width / scale
38964
- };
38965
- return settings;
38966
- }
38967
-
38968
- function getMarkupLabelPosition(svgData) {
38969
- var topFix = 15;
38970
- var leftFix = 20;
38971
-
38972
- var relX = svgData.position.x - leftFix;
38973
- var relY = svgData.position.y - topFix;
38974
-
38975
- var position = {
38976
- x: relX,
38977
- y: relY
38978
- };
38979
-
38980
- return position;
38981
- }
38982
-
38983
- function getMarkupLabelPositionBySvgType(svgData, labelPosition) {
38984
- let markupLabelPosition = { ...labelPosition };
38985
- if (svgData.type == 'ellipse' || svgData.type == 'polygon') {
38986
- markupLabelPosition.y = labelPosition.y + svgData.height / 2;
38987
- } else if (svgData.type == 'line' || svgData.type == 'arrow' || svgData.type == 'msr_line') {
38988
- if (svgData.direction == 'bltr') {
38989
- markupLabelPosition.y = labelPosition.y + svgData.height;
38990
- } else if (svgData.direction == 'trbl') {
38991
- markupLabelPosition.x = labelPosition.x + svgData.width;
38992
- } else if (svgData.direction == 'brtl') {
38993
- markupLabelPosition.x = labelPosition.x + svgData.width;
38994
- markupLabelPosition.y = labelPosition.y + svgData.height;
38995
- }
38996
- }
38997
- return markupLabelPosition;
38998
- }
38999
-
39000
- function setMarkupUnderEditingSettingsNew(isSetSize) {
39001
- const markupEditOutlineSettingsNormalized = getMarkupEditOutlineSettingsNormalized();
39002
- if (isSetSize) {
39003
- markupUnderEditingSettings.markup.svg.width = markupEditOutlineSettingsNormalized.width;
39004
- markupUnderEditingSettings.markup.svg.height = markupEditOutlineSettingsNormalized.height;
39005
- }
39006
- markupUnderEditingSettings.markup.svg.position.x = markupEditOutlineSettingsNormalized.position.x;
39007
- markupUnderEditingSettings.markup.svg.position.y = markupEditOutlineSettingsNormalized.position.y;
39008
- const labelPosition = getMarkupLabelPosition(markupUnderEditingSettings.markup.svg);
39009
- markupUnderEditingSettings.markup.position = labelPosition;
39010
- }
39011
-
39012
- function setMarkupSimpleUnderEditingSettingsNew() {
39013
- let position = {};
39014
-
39015
- const scale = getPdfCanvasScale();
39016
- const rotation = getPdfPagesRotation();
39017
-
39018
- const labelElm = $('#' + markupUnderEditingSettings.issueId);
39019
- const labelPos = labelElm.position();
39020
- const labelElmWidth = labelElm.outerWidth();
39021
- const labelElmHeight = labelElm.outerHeight();
39022
- const page = $('.' + CSS_CLASS_PAGE + '[data-page-number="' + markupUnderEditingSettings.markup.pageNr + '"]');
39023
- const pageW = page.width();
39024
- const pageH = page.height();
39025
-
39026
-
39027
- if (rotation == 90) {
39028
- position.x = labelPos.top / scale;
39029
- position.y = pageW/scale - (labelPos.left / scale + labelElmHeight);
39030
- } else if (rotation == 180) {
39031
- position.x = pageW / scale - (labelPos.left / scale + labelElmWidth);
39032
- position.y = pageH / scale - (labelPos.top / scale + labelElmHeight);
39033
- } else if (rotation == 270) {
39034
- position.x = pageH / scale - (labelPos.top / scale + labelElmWidth);
39035
- position.y = labelPos.left / scale;
39036
- } else {
39037
- position.x = labelPos.left / scale;
39038
- position.y = labelPos.top / scale;
39039
- }
39040
-
39041
- markupUnderEditingSettings.markup.position.x = position.x;
39042
- markupUnderEditingSettings.markup.position.y = position.y;
39043
- }
39044
-
39045
- function onMarkupResizerMouseDown(e) {
39046
- isMarkupMove = false;
39047
- e.stopPropagation();
39048
- e.preventDefault();
39049
-
39050
- isMarkupResize = true;
39051
- markupResizeCoordinates.start = { x: e.clientX, y: e.clientY };
39052
- markupResizeCoordinates.type = getMarkupResizeType(e);
39053
- bindOnMouseMoveEventHandler();
39054
- }
39055
-
39056
- function getMarkupResizeType(e) {
39057
- return e?.target?.id?.replace(MARKUP_RESIZER_ID_PREFIX, '')?.toLowerCase();
39058
- }
39059
-
39060
- function bindOnMouseMoveEventHandler() {
39061
- window.addEventListener('mousemove', onMouseMove);
39062
- }
39063
-
39064
- function unbindOnMouseMoveEventHandler() {
39065
- window.removeEventListener('mousemove', onMouseMove);
39066
- }
39067
-
39068
- function onMarkupResize(mouseX, mouseY) {
39069
- let settings;
39070
- const outlineElm = $('#' + MARKUP_EDIT_OUTLINE_ID);
39071
- const outlineHeight = markupEditOutlineSettings.height;
39072
- const outlineWidth = markupEditOutlineSettings.width;
39073
- const deltaY = mouseY - markupResizeCoordinates.start.y;
39074
- const deltaX = mouseX - markupResizeCoordinates.start.x;
39075
-
39076
- if (markupResizeCoordinates.type === 'tl') {
39077
- settings = getMarkupEditOutlineSettingsOnResizeTL(outlineWidth, outlineHeight, mouseX, mouseY, deltaX, deltaY);
39078
- }
39079
- if (markupResizeCoordinates.type === 'tc') {
39080
- settings = getMarkupEditOutlineSettingsOnResizeTC(outlineWidth, outlineHeight, mouseY, deltaY);
39081
- }
39082
- if (markupResizeCoordinates.type === 'tr') {
39083
- settings = getMarkupEditOutlineSettingsOnResizeTR(outlineWidth, outlineHeight, mouseX, mouseY, deltaX, deltaY);
39084
- }
39085
- if (markupResizeCoordinates.type === 'cl') {
39086
- settings = getMarkupEditOutlineSettingsOnResizeCL(outlineWidth, outlineHeight, mouseX, deltaX);
39087
- }
39088
- if (markupResizeCoordinates.type === 'cr') {
39089
- settings = getMarkupEditOutlineSettingsOnResizeCR(outlineWidth, outlineHeight, mouseX, deltaX);
39090
- }
39091
- if (markupResizeCoordinates.type === 'bl') {
39092
- settings = getMarkupEditOutlineSettingsOnResizeBL(outlineWidth, outlineHeight, mouseX, mouseY, deltaX, deltaY);
39093
- }
39094
- if (markupResizeCoordinates.type === 'bc') {
39095
- settings = getMarkupEditOutlineSettingsOnResizeBC(outlineWidth, outlineHeight, mouseY, deltaY);
39096
- }
39097
- if (markupResizeCoordinates.type === 'br') {
39098
- settings = getMarkupEditOutlineSettingsOnResizeBR(outlineWidth, outlineHeight, mouseX, mouseY, deltaX, deltaY);
39099
- }
39100
-
39101
- if (settings) {
39102
- setMarkupOutlinePosition(outlineElm, settings.position.x, settings.position.y);
39103
- setMarkupOutlineSize(outlineElm, settings.width, settings.height);
39104
- }
39105
- }
39106
-
39107
- function getMarkupEditOutlineSettingsOnResizeTL(outlineWidth, outlineHeight, mouseX, mouseY, deltaX, deltaY) {
39108
- const settings = {
39109
- position: {
39110
- x: (markupEditOutlineSettings.position.x + deltaX) <= (markupEditOutlineSettings.position.x + outlineWidth) ? (markupEditOutlineSettings.position.x + deltaX) : (markupEditOutlineSettings.position.x + outlineWidth),
39111
- y: (markupEditOutlineSettings.position.y + deltaY) <= (markupEditOutlineSettings.position.y + outlineHeight) ? (markupEditOutlineSettings.position.y + deltaY) : (markupEditOutlineSettings.position.y + outlineHeight)
39112
- },
39113
- width: Math.abs(outlineWidth - deltaX),
39114
- height: Math.abs(outlineHeight - deltaY)
39115
- };
39116
- return settings;
39117
- }
39118
-
39119
- function getMarkupEditOutlineSettingsOnResizeTC(outlineWidth, outlineHeight, mouseY, deltaY) {
39120
- const settings = {
39121
- position: {
39122
- x: markupEditOutlineSettings.position.x,
39123
- y: (markupEditOutlineSettings.position.y + deltaY) <= (markupEditOutlineSettings.position.y + outlineHeight) ? (markupEditOutlineSettings.position.y + deltaY) : (markupEditOutlineSettings.position.y + outlineHeight)
39124
- },
39125
- width: outlineWidth,
39126
- height: Math.abs(outlineHeight - deltaY)
39127
- };
39128
- return settings;
39129
- }
39130
-
39131
- function getMarkupEditOutlineSettingsOnResizeTR(outlineWidth, outlineHeight, mouseX, mouseY, deltaX, deltaY) {
39132
- const settings = {
39133
- position: {
39134
- x: (deltaX < 0 && Math.abs(deltaX) > outlineWidth) ? (markupEditOutlineSettings.position.x - Math.abs(deltaX) + outlineWidth) : markupEditOutlineSettings.position.x,
39135
- y: (markupEditOutlineSettings.position.y + deltaY) <= (markupEditOutlineSettings.position.y + outlineHeight) ? (markupEditOutlineSettings.position.y + deltaY) : (markupEditOutlineSettings.position.y + outlineHeight)
39136
- },
39137
- width: Math.abs(outlineWidth + deltaX),
39138
- height: Math.abs(outlineHeight - deltaY)
39139
- };
39140
- return settings;
39141
- }
39142
-
39143
- function getMarkupEditOutlineSettingsOnResizeCL(outlineWidth, outlineHeight, mouseX, deltaX) {
39144
- const settings = {
39145
- position: {
39146
- x: (markupEditOutlineSettings.position.x + deltaX) <= (markupEditOutlineSettings.position.x + outlineWidth) ? (markupEditOutlineSettings.position.x + deltaX) : (markupEditOutlineSettings.position.x + outlineWidth),
39147
- y: markupEditOutlineSettings.position.y,
39148
- },
39149
- width: Math.abs(outlineWidth - deltaX),
39150
- height: outlineHeight
39151
- };
39152
- return settings;
39153
- }
39154
-
39155
- function getMarkupEditOutlineSettingsOnResizeCR(outlineWidth, outlineHeight, mouseX, deltaX) {
39156
- const settings = {
39157
- position: {
39158
- x: (deltaX < 0 && Math.abs(deltaX) > outlineWidth) ? (markupEditOutlineSettings.position.x - Math.abs(deltaX) + outlineWidth) : markupEditOutlineSettings.position.x,
39159
- y: markupEditOutlineSettings.position.y,
39160
- },
39161
- width: Math.abs(outlineWidth + deltaX),
39162
- height: outlineHeight
39163
- };
39164
- return settings;
39165
- }
39166
-
39167
- function getMarkupEditOutlineSettingsOnResizeBL(outlineWidth, outlineHeight, mouseX, mouseY, deltaX, deltaY) {
39168
- const settings = {
39169
- position: {
39170
- x: (markupEditOutlineSettings.position.x + deltaX) <= (markupEditOutlineSettings.position.x + outlineWidth) ? (markupEditOutlineSettings.position.x + deltaX) : (markupEditOutlineSettings.position.x + outlineWidth),
39171
- y: (deltaY < 0 && Math.abs(deltaY) > outlineHeight) ? (markupEditOutlineSettings.position.y - Math.abs(deltaY) + outlineHeight) : markupEditOutlineSettings.position.y
39172
- },
39173
- width: Math.abs(outlineWidth - deltaX),
39174
- height: Math.abs(outlineHeight + deltaY)
39175
- };
39176
- return settings;
39177
- }
39178
-
39179
- function getMarkupEditOutlineSettingsOnResizeBC(outlineWidth, outlineHeight, mouseY, deltaY) {
39180
- const settings = {
39181
- position: {
39182
- x: markupEditOutlineSettings.position.x,
39183
- y: (deltaY < 0 && Math.abs(deltaY) > outlineHeight) ? (markupEditOutlineSettings.position.y - Math.abs(deltaY) + outlineHeight) : markupEditOutlineSettings.position.y
39184
- },
39185
- width: outlineWidth,
39186
- height: Math.abs(outlineHeight + deltaY)
39187
- };
39188
- return settings;
39189
- }
39190
-
39191
- function getMarkupEditOutlineSettingsOnResizeBR(outlineWidth, outlineHeight, mouseX, mouseY, deltaX, deltaY) {
39192
- const settings = {
39193
- position: {
39194
- x: (deltaX < 0 && Math.abs(deltaX) > outlineWidth) ? (markupEditOutlineSettings.position.x - Math.abs(deltaX) + outlineWidth) : markupEditOutlineSettings.position.x,
39195
- y: (deltaY < 0 && Math.abs(deltaY) > outlineHeight) ? (markupEditOutlineSettings.position.y - Math.abs(deltaY) + outlineHeight) : markupEditOutlineSettings.position.y
39196
- },
39197
- width: Math.abs(outlineWidth + deltaX),
39198
- height: Math.abs(outlineHeight + deltaY)
39199
- };
39200
- return settings;
39201
- }
39202
-
39203
- function onMarkupResizerMouseUp(e) {
39204
- markupResizeCoordinates.end = { x: e.clientX, y: e.clientY };
39205
- unbindOnMouseMoveEventHandler();
39206
- onMarkupResizeEnd();
39207
- }
39208
-
39209
- function onMarkupResizeEnd() {
39210
- isMarkupResize = false;
39211
- markupResizeCoordinates = {};
39212
- setMarkupEditOutlineSettingsNew();
39213
- setMarkupUnderEditingSettingsNew(true);
39214
- updateMarkupInContextIssueList();
39215
- refreshMarkup();
39216
- }
39217
-
39218
- function setMarkupEditOutlineSettingsNew() {
39219
- const markupEditOutlineElm = $('#' + MARKUP_EDIT_OUTLINE_ID);
39220
- const markupEditOutlinePosition = markupEditOutlineElm.position();
39221
- markupEditOutlineSettings.position.x = markupEditOutlinePosition?.left;
39222
- markupEditOutlineSettings.position.y = markupEditOutlinePosition?.top;
39223
- markupEditOutlineSettings.width = markupEditOutlineElm.width();
39224
- markupEditOutlineSettings.height = markupEditOutlineElm.height();
39225
- }
39226
-
39227
- function bindOnMarkupEditEndHandler() {
39228
- window.addEventListener('keydown', onMarkupEditEnd);
39229
- }
39230
-
39231
- function unbindOnMarkupEditEndHandler() {
39232
- window.removeEventListener('keydown', onMarkupEditEnd);
39233
- }
39234
-
39235
- function onMarkupEditEnd(e) {
39236
- if (e.key === 'Escape' && isMarkupEdit) {
39237
- endMarkupEdit();
39238
- }
39239
- }
39240
-
39241
- function endMarkupEdit() {
39242
- isMarkupEdit = false;
39243
- saveMarkup();
39244
- removeMarkupEditOutline();
39245
- unbindOnMarkupEditEndHandler();
39246
- }
39247
-
39248
- function saveMarkup() {
39249
- if (markupUnderEditingSettings.issueId) {
39250
- const issueIndex = context.issueList.findIndex(item => item.id === markupUnderEditingSettings.issueId);
39251
- if (context.issueList[issueIndex]) {
39252
- const changedFieldValueMap = new Map();
39253
- changedFieldValueMap.set('markup', { ...markupUnderEditingSettings.markup });
39254
- markupEditOutlineSettings = {};
39255
- markupUnderEditingSettings = {};
39256
- context.onIssueTileChange(context.issueList[issueIndex].item, changedFieldValueMap);
39257
- }
39258
- }
39259
- }
39260
-
39261
- function removeMarkupEditOutline() {
39262
- document.getElementById(MARKUP_EDIT_OUTLINE_ID)?.remove();
39263
- }
39264
-
39265
- function createMarkupEditOutline(e) {
39266
- if (e?.target) {
39267
- removeMarkupEditOutline();
39268
- const page = $(e.target).closest('.' + CSS_CLASS_PAGE);
39269
- const markupSettings = getMarkupSettings(e.target);
39270
- doCreateMarkupEditOutline(page, markupSettings);
39271
- }
39272
- }
39273
-
39274
- function reloadMarkupEditOutlineSettings(page, isEventPageRendered) {
39275
- if (markupUnderEditingSettings?.markup?.pageNr && page === markupUnderEditingSettings.markup.pageNr) {
39276
- if (markupUnderEditingSettings.isSimple) {
39277
- doCreateMarkupEditOutline($('.' + CSS_CLASS_PAGE + '[data-page-number="' + page + '"]'), markupUnderEditingSettings);
39278
- } else {
39279
- let svgsketch = getSvgSketchElmByPageNr(markupUnderEditingSettings.markup.pageNr);
39280
- if (isEventPageRendered && !(svgsketch?.length)) {
39281
- const interval = setInterval(() => {
39282
- svgsketch = getSvgSketchElmByPageNr(markupUnderEditingSettings.markup.pageNr);
39283
- if (svgsketch?.length) {
39284
- clearInterval(interval);
39285
- doCreateMarkupEditOutline($('.' + CSS_CLASS_PAGE + '[data-page-number="' + page + '"]'), markupUnderEditingSettings);
39286
- }
39287
- }, 50);
39288
- } else {
39289
- doCreateMarkupEditOutline($('.' + CSS_CLASS_PAGE + '[data-page-number="' + page + '"]'), markupUnderEditingSettings);
39290
- }
39291
- }
39292
- }
39293
- }
39294
-
39295
- function doCreateMarkupEditOutline(page, markupSettings) {
39296
- const outline = $('<div id="' + MARKUP_EDIT_OUTLINE_ID + '"></div>');
39297
- const isMarkupSipmle = markupSettings.markup.svg ? false : true;
39298
- if (!isMarkupSipmle) {
39299
- addResizerToMarkupEditOutline(outline);
39300
- }
39301
- bindMarkupEditOutlineMouseDownHandler(outline);
39302
- const outlineSettings = getMarkupEditOutlineSettings(markupSettings, isMarkupSipmle);
39303
- markupEditOutlineSettings = outlineSettings;
39304
- if (isMarkupSipmle) {
39305
- markupEditOutlineSettings.isSimple = true;
39306
- }
39307
- setMarkupOutlineEditStyles(outline, outlineSettings);
39308
- page.append(outline);
39309
- }
39310
-
39311
- function setMarkupOutlineEditStyles(outlineElm, outlineSettings) {
39312
- setMarkupOutlinePosition(outlineElm, outlineSettings.position.x, outlineSettings.position.y);
39313
- setMarkupOutlineSize(outlineElm, outlineSettings.width, outlineSettings.height);
39314
- if (markupEditOutlineSettings.isSimple) {
39315
- const rotation = getPdfPagesRotation();
39316
- outlineElm.css('transform-origin', 'top left').css('transform', 'rotate(' + rotation + 'deg)');
39317
- }
39318
- }
39319
-
39320
- function setMarkupOutlinePosition(outlineElm, x, y) {
39321
- outlineElm.css('top', y + 'px');
39322
- outlineElm.css('left', x + 'px');
39323
- }
39324
-
39325
- function setMarkupOutlineSize(outlineElm, width, height) {
39326
- outlineElm.width(width);
39327
- outlineElm.height(height);
39328
- }
39329
-
39330
- function getMarkupEditOutlineSettings(markupSettings, isMarkupSimple) {
39331
- const rotation = getPdfPagesRotation();
39332
- const scale = getPdfCanvasScale();
39333
- const size = getMarkupEditOutlineSize(markupSettings, rotation, scale, isMarkupSimple);
39334
-
39335
- const settings = {
39336
- position: getMarkupEditOutlinePosition(markupSettings, rotation, scale, isMarkupSimple),
39337
- width: size.width,
39338
- height: size.height
39339
- };
39340
-
39341
- return settings;
39342
- }
39343
-
39344
- function getMarkupEditOutlineSize(markupSettings, rotation, scale, isMarkupSimple) {
39345
- if (isMarkupSimple) {
39346
- return getMarkupSimpleEditOutlineSize(markupSettings, scale);
39347
- } else {
39348
- if (rotation === 0 || rotation === 180) {
39349
- return {
39350
- width: markupSettings.markup.svg.width * scale,
39351
- height: markupSettings.markup.svg.height * scale
39352
- };
39353
- }
39354
- if (rotation === 90 || rotation === 270) {
39355
- return {
39356
- width: markupSettings.markup.svg.height * scale,
39357
- height: markupSettings.markup.svg.width * scale
39358
- };
39359
- }
39360
- }
39361
- }
39362
-
39363
- function getMarkupSimpleEditOutlineSize(markupSettings, scale) {
39364
- const elm = $('.pdf-note#' + markupSettings.issueId);
39365
- return {
39366
- width: (elm.outerWidth() * scale + 1),
39367
- height: (elm.outerHeight() * scale + 1)
39368
- };
39369
- }
39370
-
39371
- function getSvgSketchElmByPageNr(pageNr) {
39372
- return svgsketchElm = $('#svgsketch-' + pageNr);
39373
- }
39374
-
39375
- function getMarkupEditOutlinePosition(markupSettings, rotation, scale, isMarkupSimple) {
39376
- if (isMarkupSimple) {
39377
- return getMarkupSimpleEditOutlinePosition(markupSettings, scale, rotation);
39378
- } else {
39379
- const svgsketchElm = getSvgSketchElmByPageNr(markupSettings.markup.pageNr);
39380
- const svgsketchWidth = svgsketchElm.width();
39381
- const svgsketchHeight = svgsketchElm.height();
39382
- if (rotation === 90) {
39383
- return getMarkupEditOutlinePositionRotation90Deg(markupSettings, scale, svgsketchWidth);
39384
- } else if (rotation === 180) {
39385
- return getMarkupEditOutlinePositionRotation180Deg(markupSettings, scale, svgsketchWidth, svgsketchHeight);
39386
- } else if (rotation === 270) {
39387
- return getMarkupEditOutlinePositionRotation270Deg(markupSettings, scale, svgsketchHeight);
39388
- } else {
39389
- return getMarkupEditOutlinePositionRotation0Deg(markupSettings, scale);
39390
- }
39391
- }
39392
- }
39393
-
39394
- function getMarkupSimpleEditOutlinePosition(markupSettings, scale, rotation) {
39395
- const data = {
39396
- position: {
39397
- x: markupSettings.markup.position.x * scale,
39398
- y: markupSettings.markup.position.y * scale,
39399
- },
39400
- pageNr: markupSettings.markup.pageNr
39401
- };
39402
- const positionWithRotation = rotation > 0 ? getNoteLabelPositionWithRotation(data, rotation) : data.position;
39403
- return positionWithRotation;
39404
- }
39405
-
39406
- function getMarkupEditOutlinePositionRotation0Deg(markupSettings, scale) {
39407
- const position = {
39408
- x: markupSettings.markup.svg.position.x * scale,
39409
- y: markupSettings.markup.svg.position.y * scale
39410
- };
39411
- return position;
39412
- }
39413
-
39414
- function getMarkupEditOutlinePositionRotation90Deg(markupSettings, scale, svgsketchWidth) {
39415
- const position = {
39416
- x: svgsketchWidth - (markupSettings.markup.svg.position.y + markupSettings.markup.svg.height) * scale,
39417
- y: markupSettings.markup.svg.position.x * scale
39418
- };
39419
- return position;
39420
- }
39421
-
39422
- function getMarkupEditOutlinePositionRotation180Deg(markupSettings, scale, svgsketchWidth, svgsketchHeight) {
39423
- const position = {
39424
- x: svgsketchWidth - (markupSettings.markup.svg.position.x + markupSettings.markup.svg.width) * scale,
39425
- y: svgsketchHeight - (markupSettings.markup.svg.position.y + markupSettings.markup.svg.height) * scale
39426
- };
39427
- return position;
39428
- }
39429
-
39430
- function getMarkupEditOutlinePositionRotation270Deg(markupSettings, scale, svgsketchHeight) {
39431
- const position = {
39432
- x: markupSettings.markup.svg.position.y * scale,
39433
- y: svgsketchHeight - (markupSettings.markup.svg.position.x + markupSettings.markup.svg.width) * scale
39434
- };
39435
- return position;
39436
- }
39437
-
39438
- function getMarkupSettings(target) {
39439
- const issue = context.issueList.find(item => item.id === target.id);
39440
- if (issue) {
39441
- const markup = issue?.markup ? JSON.parse(issue?.markup) : undefined;
39442
- markupUnderEditingSettings = { issueId: issue.id, markup: markup }
39443
- }
39444
- return markupUnderEditingSettings;
39445
- }
39446
-
39447
- function bindMarkupEditOutlineMouseDownHandler(outline) {
39448
- outline.on('mousedown', onMarkupEditOutlineMouseDown);
39449
- }
39450
-
39451
- function bindMouseUpEventHandler() {
39452
- window.addEventListener('mouseup', onMouseUpEventHandler);
39453
- }
39454
-
39455
- function unbindMouseUpEventHandler() {
39456
- window.removeEventListener('mouseup', onMouseUpEventHandler);
39457
- }
39458
-
39459
- function onMouseUpEventHandler(e) {
39460
- if (isMarkupEdit && isMarkupMove) {
39461
- onMarkupEditOutlineMouseUp(e);
39462
- }
39463
- if (isMarkupEdit && isMarkupResize) {
39464
- onMarkupResizerMouseUp(e);
39465
- }
39466
- }
39467
-
39468
- function addResizerToMarkupEditOutline(outlineElm) {
39469
- const resizerIdSuffixList = ['TL', 'TC', 'TR', 'CL', 'CR', 'BL', 'BC', 'BR'];
39470
- resizerIdSuffixList.forEach(function (suffix) {
39471
- const resizer = $('<div id="' + MARKUP_RESIZER_ID_PREFIX + suffix + '" class="' + CSS_CLASS_MARKUP_RESIZER + ' ' + CSS_CLASS_MARKUP_RESIZER + '-' + suffix.toLowerCase() + '" />');
39472
- resizer.on('mousedown', onMarkupResizerMouseDown);
39473
- outlineElm.append(resizer);
39474
- });
39475
- }
39476
-
39477
- function initMarkupEditContextMenu() {
39478
- const selector = '.' + CSS_CLASS_PDF_NOTE;
39479
- $.contextMenu({
39480
- selector: selector,
39481
- trigger: 'right',
39482
- build: function ($triggerElement, e) {
39483
- return {
39484
- callback: function (key, options) { },
39485
- items: getMarkupEditContextMenuItemList($triggerElement, e)
39486
- }
39487
- }
39488
- });
39489
- }
39490
-
39491
- function getMarkupEditContextMenuItemList($triggerElement, e) {
39492
- const menuItems = {
39493
- "editMarkup": {
39494
- name: context.createLocale('app.viewer.pdf.contextMenu.edit'),
39495
- callback: function (key, options) {
39496
- onMarkupEditStart(e);
39497
- }
39498
- },
39499
- "sep1": "---------",
39500
- "quit": {
39501
- name: context.createLocale('app.viewer.pdf.contextMenu.cancel'),
39502
- icon: function () {
39503
- return 'context-menu-icon context-menu-icon-quit';
39504
- },
39505
- }
39506
- };
39507
- return menuItems;
39508
- }
39509
-
39510
- function setPdfViewerCursorToolMode() {
39511
- const btnCursorTool = $('#cursorSelectTool');
39512
- const btnDrawAnnotation = $('#btnDrawAnnotation');
39513
- if (btnDrawAnnotation.hasClass('toggled')) {
39514
- btnDrawAnnotation.click();
39515
- }
39516
- if (!btnCursorTool.hasClass('toggled')) {
39517
- btnCursorTool.click();
39518
- }
39519
- }
39520
-
39521
- initMarkupEditContextMenu();
39522
38778
  $(document).ready(function() {
39523
38779
  context.openFile();
39524
38780