// ******* Annotation MANAGER ******** // $axure.internal(function($ax) { var NOTE_SIZE = 10; var _annotationManager = $ax.annotation = {}; var _updateLinkLocations = $ax.annotation.updateLinkLocations = function(elementId) { var textId = $ax.GetTextPanelId(elementId); if(!textId) return; var rotation = $ax.getObjectFromElementId(elementId).style.rotation; //we have to do this because webkit reports the post-transform position but when you set positions it's pre-transform if(WEBKIT && rotation) { //we can dynamiclly rotate a widget now, show need to remember the transform rather than just remove it //here jquery.css will return 'none' if element is display none var oldShapeTransform = document.getElementById(elementId).style['-webkit-transform']; var oldTextTransform = document.getElementById(textId).style['-webkit-transform']; $('#' + elementId).css('-webkit-transform', 'scale(1)'); $('#' + textId).css('-webkit-transform', 'scale(1)'); } $('#' + textId).find('div[id$="_ann"]').each(function(index, value) { var elementId = value.id.replace('_ann', ''); var $link = $('#' + elementId); var annPos = $link.position(); annPos.left += $link.width(); //var annPos = $(value).position(); var left = annPos.left;// - NOTE_SIZE; var top = annPos.top - 5; $(value).css('left', left).css('top', top); }); //undo the transform reset if(WEBKIT && rotation) { $('#' + elementId).css('-webkit-transform', oldShapeTransform || ''); $('#' + textId).css('-webkit-transform', oldTextTransform || ''); } }; var _toggleAnnotationDialog = function (elementId, event) { let win = $(window); let scrollY = win.scrollTop(); let scrollX = win.scrollLeft(); let x = event.pageX - scrollX; let y = event.pageY - scrollY; let frameElement = window.frameElement; let parent = window.parent; //ann dialog is relative to mainFrame, exclude the mainFrame location so the notes shows up correctly in device mode while(frameElement && frameElement.name !== 'mainFrame') { let rect = frameElement.getBoundingClientRect(); x += rect.x; y += rect.y; if(!parent) break; frameElement = parent.frameElement; parent = parent.parent; } let messageData = { id: elementId, x: x, y: y } if (!$axure.utils.isInPlayer()) messageData.page = $ax.pageData.notesData; $ax.messageCenter.postMessage('toggleAnnDialog', messageData); } $ax.annotation.initialize = function () { _createFootnotes($ax('*'), true); } var _createFootnotes = $ax.annotation.createFootnotes = function(query, create) { if(!$ax.document.configuration.showAnnotations) return; var widgetNotes = $ax.pageData.notesData.widgetNotes; if (widgetNotes) { var ownerToFns = $ax.pageData.notesData.ownerToFns; if(!$.isEmptyObject(ownerToFns)) { query.each(function(dObj, elementId) { var fns = ownerToFns[dObj.id]; if (fns !== undefined) { var elementIdQuery = $('#' + elementId); if (dObj.type == 'hyperlink') { var parentId = $ax.GetParentIdFromLink(elementId); if (create) { elementIdQuery.after("