Socket
Socket
Sign inDemoInstall

ment.io

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ment.io - npm Package Compare versions

Comparing version 0.9.14 to 0.9.15

2

bower.json
{
"name": "ment.io",
"version": "0.9.14",
"version": "0.9.15",
"homepage": "https://github.com/jeff-collins/ment.io",

@@ -5,0 +5,0 @@ "authors": [

@@ -967,2 +967,3 @@ 'use strict';

var sel = window.getSelection();
var prevRange = sel.getRangeAt(0);
range = document.createRange();

@@ -980,2 +981,4 @@

range.insertNode(markerEl);
sel.removeAllRanges();
sel.addRange(prevRange);
}

@@ -982,0 +985,0 @@

@@ -1,1 +0,1 @@

"use strict";angular.module("mentio",[]).directive("mentio",["mentioUtil","$compile","$log","$document","$timeout",function(e,t,n,i,r){return{restrict:"A",scope:{macros:"=mentioMacros",search:"&mentioSearch",select:"&mentioSelect",items:"=mentioItems",typedTerm:"=mentioTypedTerm",altId:"=mentioId",requireLeadingSpace:"=mentioRequireLeadingSpace",ngModel:"="},controller:["$scope","$timeout","$attrs",function(t,n,r){t.query=function(e,n){var i=t.triggerCharMap[e];i.showMenu(),i.search({term:n.trim()}),i.typedTerm=n.trim()},t.defaultSearch=function(e){var n=[];angular.forEach(t.items,function(t){t.label.toUpperCase().indexOf(e.term.toUpperCase())>=0&&n.push(t)}),t.localItems=n},t.bridgeSearch=function(e){var n=r.mentioSearch?t.search:t.defaultSearch;n({term:e})},t.defaultSelect=function(e){return t.defaultTriggerChar+e.item.label},t.bridgeSelect=function(e){var n=r.mentioSelect?t.select:t.defaultSelect;return n({item:e})},t.setTriggerText=function(e){t.syncTriggerText&&(t.typedTerm=e.trim())},t.replaceText=function(i){if(t.hideAll(),e.replaceTriggerText(t.targetElement,t.targetElementPath,t.targetElementSelectedOffset,t.triggerCharSet,i,t.requireLeadingSpace),t.setTriggerText(""),angular.element(t.targetElement).triggerHandler("change"),t.isContentEditable()){t.contentEditableMenuPasted=!0;var r=n(function(){t.contentEditableMenuPasted=!1},100);t.$on("$destroy",function(){n.cancel(r)})}},t.hideAll=function(){for(var e in t.triggerCharMap)t.triggerCharMap.hasOwnProperty(e)&&t.triggerCharMap[e].hideMenu()},t.getActiveMenuScope=function(){for(var e in t.triggerCharMap)if(t.triggerCharMap.hasOwnProperty(e)&&t.triggerCharMap[e].visible)return t.triggerCharMap[e];return null},t.selectActive=function(){for(var e in t.triggerCharMap)t.triggerCharMap.hasOwnProperty(e)&&t.triggerCharMap[e].visible&&t.triggerCharMap[e].selectActive()},t.isActive=function(){for(var e in t.triggerCharMap)if(t.triggerCharMap.hasOwnProperty(e)&&t.triggerCharMap[e].visible)return!0;return!1},t.isContentEditable=function(){return"INPUT"!==t.targetElement.nodeName&&"TEXTAREA"!==t.targetElement.nodeName},t.replaceMacro=function(i,r){r?e.replaceMacroText(t.targetElement,t.targetElementPath,t.targetElementSelectedOffset,t.macros,t.macros[i]):(t.replacingMacro=!0,t.timer=n(function(){e.replaceMacroText(t.targetElement,t.targetElementPath,t.targetElementSelectedOffset,t.macros,t.macros[i]),angular.element(t.targetElement).triggerHandler("change"),t.replacingMacro=!1},300),t.$on("$destroy",function(){n.cancel(t.timer)}))},t.addMenu=function(e){e.parentScope&&t.triggerCharMap.hasOwnProperty(e.triggerChar)||(t.triggerCharMap[e.triggerChar]=e,void 0===t.triggerCharSet&&(t.triggerCharSet=[]),t.triggerCharSet.push(e.triggerChar),e.setParent(t))},t.$on("menuCreated",function(e,n){(void 0!==r.id||void 0!==r.mentioId)&&(r.id===n.targetElement||void 0!==r.mentioId&&t.altId===n.targetElement)&&t.addMenu(n.scope)}),i.on("click",function(){t.isActive()&&t.$apply(function(){t.hideAll()})}),i.on("keydown keypress paste",function(e){var n=t.getActiveMenuScope();n&&((9===e.which||13===e.which)&&(e.preventDefault(),n.selectActive()),27===e.which&&(e.preventDefault(),n.$apply(function(){n.hideMenu()})),40===e.which&&(e.preventDefault(),n.$apply(function(){n.activateNextItem()})),38===e.which&&(e.preventDefault(),n.$apply(function(){n.activatePreviousItem()})),(37===e.which||39===e.which)&&e.preventDefault())})}],link:function(i,o,a){if(i.triggerCharMap={},i.targetElement=o,a.$set("autocomplete","off"),a.mentioItems){i.localItems=[],i.parentScope=i;var c=a.mentioSearch?' mentio-items="items"':' mentio-items="localItems"';i.defaultTriggerChar=a.mentioTriggerChar?i.$eval(a.mentioTriggerChar):"@";var l='<mentio-menu mentio-search="bridgeSearch(term)" mentio-select="bridgeSelect(item)"'+c;a.mentioTemplateUrl&&(l=l+' mentio-template-url="'+a.mentioTemplateUrl+'"'),l=l+" mentio-trigger-char=\"'"+i.defaultTriggerChar+'\'" mentio-parent-scope="parentScope"/>';var s=t(l),m=s(i);o.parent().append(m)}a.mentioTypedTerm&&(i.syncTriggerText=!0),i.$watch("ngModel",function(){if(void 0===i.triggerCharSet)return void n.error("Error, no mentio-items attribute was provided, and no separate mentio-menus were specified. Nothing to do.");if(i.contentEditableMenuPasted)return void(i.contentEditableMenuPasted=!1);i.replacingMacro&&(r.cancel(i.timer),i.replacingMacro=!1);var t=i.isActive(),o=i.isContentEditable(),a=e.getTriggerInfo(i.triggerCharSet,i.requireLeadingSpace,t);if(void 0!==a&&(!t||t&&(o&&a.mentionTriggerChar===i.currentMentionTriggerChar||!o&&a.mentionPosition===i.currentMentionPosition)))i.targetElement=a.mentionSelectedElement,i.targetElementPath=a.mentionSelectedPath,i.targetElementSelectedOffset=a.mentionSelectedOffset,i.setTriggerText(a.mentionText),i.currentMentionPosition=a.mentionPosition,i.currentMentionTriggerChar=a.mentionTriggerChar,i.query(a.mentionTriggerChar,a.mentionText);else{i.setTriggerText(""),i.hideAll();var c=e.getMacroMatch(i.macros);void 0!==c&&(i.targetElement=c.macroSelectedElement,i.targetElementPath=c.macroSelectedPath,i.targetElementSelectedOffset=c.macroSelectedOffset,i.replaceMacro(c.macroText,c.macroHasTrailingSpace))}})}}}]).directive("mentioMenu",["mentioUtil","$rootScope","$log","$window","$document",function(e,t,n,i,r){return{restrict:"E",scope:{search:"&mentioSearch",select:"&mentioSelect",items:"=mentioItems",triggerChar:"=mentioTriggerChar",forElem:"=mentioFor",parentScope:"=mentioParentScope"},templateUrl:function(e,t){return void 0!==t.mentioTemplateUrl?t.mentioTemplateUrl:"mentio-menu.tpl.html"},controller:["$scope",function(e){e.visible=!1,this.activate=e.activate=function(t){e.activeItem=t},this.isActive=e.isActive=function(t){return e.activeItem===t},this.selectItem=e.selectItem=function(t){var n=e.select({item:t});"function"==typeof n.then?n.then(e.parentMentio.replaceText):e.parentMentio.replaceText(n)},e.activateNextItem=function(){var t=e.items.indexOf(e.activeItem);this.activate(e.items[(t+1)%e.items.length])},e.activatePreviousItem=function(){var t=e.items.indexOf(e.activeItem);this.activate(e.items[0===t?e.items.length-1:t-1])},e.selectActive=function(){e.selectItem(e.activeItem)},e.isVisible=function(){return e.visible},e.showMenu=function(){e.visible||(e.requestVisiblePendingSearch=!0)},e.setParent=function(t){e.parentMentio=t,e.targetElement=t.targetElement}}],link:function(o,a){if(a[0].parentNode.removeChild(a[0]),r[0].body.appendChild(a[0]),o.menuElement=a,o.parentScope)o.parentScope.addMenu(o);else{if(!o.forElem)return void n.error("mentio-menu requires a target element in tbe mentio-for attribute");if(!o.triggerChar)return void n.error("mentio-menu requires a trigger char");t.$broadcast("menuCreated",{targetElement:o.forElem,scope:o})}angular.element(i).bind("resize",function(){if(o.isVisible()){var t=[];t.push(o.triggerChar),e.popUnderMention(t,a,o.requireLeadingSpace)}}),o.$watch("items",function(e){e&&e.length>0?(o.activate(e[0]),!o.visible&&o.requestVisiblePendingSearch&&(o.visible=!0,o.requestVisiblePendingSearch=!1)):o.hideMenu()}),o.$watch("isVisible()",function(t){if(t){var n=[];n.push(o.triggerChar),e.popUnderMention(n,a,o.requireLeadingSpace)}}),o.hideMenu=function(){o.visible=!1,a.css("display","none")}}}}]).directive("mentioMenuItem",function(){return{restrict:"A",scope:{item:"=mentioMenuItem"},require:"^mentioMenu",link:function(e,t,n,i){e.$watch(function(){return i.isActive(e.item)},function(e){e?t.addClass("active"):t.removeClass("active")}),t.bind("mouseenter",function(){e.$apply(function(){i.activate(e.item)})}),t.bind("click",function(t){t.preventDefault(),i.selectItem(e.item)})}}}).filter("unsafe",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]).filter("mentioHighlight",function(){function e(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,n,i){if(n){var r=i?'<span class="'+i+'">$&</span>':"<strong>$&</strong>";return(""+t).replace(new RegExp(e(n),"gi"),r)}return t}}),angular.module("mentio").factory("mentioUtil",["$window","$location","$anchorScroll","$timeout",function(e,t,n,i){function r(e,t,n){var r,c=h(e,n,!1);void 0!==c?(r=a()?S(document.activeElement,c.mentionPosition):v(c.mentionPosition),t.css({top:r.top+"px",left:r.left+"px",position:"absolute",zIndex:100,display:"block"}),i(function(){o(t)},0)):t.css({display:"none"})}function o(t){for(var n,i=20,r=100,o=t[0];void 0===n||0===n.height;)if(n=o.getBoundingClientRect(),0===n.height&&(o=o.childNodes[0],void 0===o||!o.getBoundingClientRect))return;var a=n.top,c=a+n.height;if(0>a)e.scrollTo(0,e.pageYOffset+n.top-i);else if(c>e.innerHeight){var l=e.pageYOffset+n.top-i;l-e.pageYOffset>r&&(l=e.pageYOffset+r);var s=e.pageYOffset-(e.innerHeight-c);s>l&&(s=l),e.scrollTo(0,s)}}function a(){var e=document.activeElement;if(null!==e){var t=e.nodeName,n=e.getAttribute("type");return"INPUT"===t&&"text"===n||"TEXTAREA"===t}return!1}function c(e,t,n){for(var i,r=e,o=0;o<t.length;o++){if(r=r.childNodes[t[o]],void 0===r)return;for(;r.length<n;)n-=r.length,r=r.nextSibling}if(document.selection&&document.selection.createRange)i=document.selection.createRange().duplicate(),i.select(r),i.selectStartOffset(n),i.selectEndOffset(n),i.collapse(!0),document.selection.removeAllRanges(),document.selection.addRange(i);else if(window.getSelection){var a=window.getSelection();i=document.createRange(),i.setStart(r,n),i.setEnd(r,n),i.collapse(!0);try{a.removeAllRanges()}catch(c){}a.addRange(i),e.focus()}}function l(e,t,n){var i,r;if(document.selection&&document.selection.createRange)i=document.selection.createRange().duplicate(),i.selectStartOffset(t),i.selectEndOffset(n),i.collapse(!1),i.deleteContents(),i.pasteHTML(e);else if(window.getSelection){r=window.getSelection(),i=document.createRange(),i.setStart(r.anchorNode,t),i.setEnd(r.anchorNode,n),i.deleteContents();var o=document.createElement("div");o.innerHTML=e;for(var a,c,l=document.createDocumentFragment();a=o.firstChild;)c=l.appendChild(a);i.insertNode(l),c&&(i=i.cloneRange(),i.setStartAfter(c),i.collapse(!0),r.removeAllRanges(),r.addRange(i))}}function s(e,t,n){var i=e.nodeName;"INPUT"===i||"TEXTAREA"===i?e!==document.activeElement&&e.focus():c(e,t,n)}function m(e,t,n,i,r){s(e,t,n);var o=u(i);if(o.macroHasTrailingSpace&&(o.macroText=o.macroText+" ",r+=" "),void 0!==o){var c=document.activeElement;if(a())if(document.selection){c.focus();var m=document.selection.createRange();m.selectStartOffset(o.macroPosition),m.selectEndOffset(o.macroPosition+o.macroText.length),m.text=r}else{var d=o.macroPosition,g=o.macroPosition+o.macroText.length;c.value=c.value.substring(0,d)+r+c.value.substring(g,c.value.length),c.selectionStart=d+r.length,c.selectionEnd=d+r.length}else l(r,o.macroPosition,o.macroPosition+o.macroText.length)}}function d(e,t,n,i,r,o){s(e,t,n);var c=h(i,o,!0);if(void 0!==c)if(a()){var m=document.activeElement;if(r+=" ",document.selection){m.focus();var d=document.selection.createRange();d.selectStartOffset(c.mentionPosition),d.selectEndOffset(c.mentionPosition+c.mentionText.length),d.text=r}else{var g=c.mentionPosition,u=c.mentionPosition+c.mentionText.length+1;m.value=m.value.substring(0,g)+r+m.value.substring(u,m.value.length),m.selectionStart=g+r.length,m.selectionEnd=g+r.length}}else r+=" ",l(r,c.mentionPosition,c.mentionPosition+c.mentionText.length+1)}function g(e){if(null===e.parentNode)return 0;for(var t=0;t<e.parentNode.childNodes.length;t++){var n=e.parentNode.childNodes[t];if(n===e)return t}}function u(e){var t,n,i=[];if(a())t=document.activeElement;else{var r=f();r&&(t=r.selected,i=r.path,n=r.offset)}var o=p();if(void 0!==o&&null!==o){var c,l=!1;if(o.length>0&&(" "===o.charAt(o.length-1)||" "===o.charAt(o.length-1))&&(l=!0,o=o.substring(0,o.length-1)),angular.forEach(e,function(e,r){var a=o.toUpperCase().lastIndexOf(r.toUpperCase());if(a>=0&&r.length+a===o.length){var s=a-1;(0===a||" "===o.charAt(s)||" "===o.charAt(s))&&(c={macroPosition:a,macroText:r,macroSelectedElement:t,macroSelectedPath:i,macroSelectedOffset:n,macroHasTrailingSpace:l})}}),c)return c}}function f(){var e,t=window.getSelection(),n=t.anchorNode,i=[];if(null!=n){for(var r,o=n.contentEditable;null!==n&&"true"!==o;)r=g(n),i.push(r),n=n.parentNode,null!==n&&(o=n.contentEditable);return i.reverse(),e=t.getRangeAt(0).startOffset,{selected:n,path:i,offset:e}}}function h(e,t,n){var i,r,o;if(a())i=document.activeElement;else{var c=f();c&&(i=c.selected,r=c.path,o=c.offset)}var l=p();if(void 0!==l&&null!==l){var s,m=-1;if(e.forEach(function(e){var t=l.lastIndexOf(e);t>m&&(m=t,s=e)}),m>=0&&(0===m||!t||/[\xA0\s]/g.test(l.substring(m-1,m)))){var d=l.substring(m+1,l.length);s=l.substring(m,m+1);var g=d.substring(0,1),u=d.length>0&&(" "===g||" "===g);if(!u&&(n||!/[\xA0\s]/g.test(d)))return{mentionPosition:m,mentionText:d,mentionSelectedElement:i,mentionSelectedPath:r,mentionSelectedOffset:o,mentionTriggerChar:s}}}}function p(){var e;if(a()){var t=document.activeElement;if(void 0!==document.selection){t.focus();var n=document.selection.createRange();e=n.text}else if(void 0!==t.selectionStart){var i=t.selectionStart;e=t.value.substring(0,i)}}else{var r=window.getSelection().anchorNode;if(null!=r){var o=r.textContent,c=window.getSelection().getRangeAt(0).startOffset;c>=0&&(e=o.substring(0,c))}}return e}function v(e){var t,n,i="",r="&#xfeff;",o="sel_"+(new Date).getTime()+"_"+Math.random().toString().substr(2);if(document.selection&&document.selection.createRange)n=document.selection.createRange().duplicate(),n.selectStartOffset(e),n.selectEndOffset(e),n.collapse(!1),n.pasteHTML('<span id="'+o+'" style="position: relative;">'+r+"</span>"),t=document.getElementById(o);else if(window.getSelection){var a=window.getSelection();n=document.createRange(),n.setStart(a.anchorNode,e),n.setEnd(a.anchorNode,e),n.collapse(!1),t=document.createElement("span"),t.id=o,t.appendChild(document.createTextNode(i)),n.insertNode(t)}var c=t,l={left:0,top:t.offsetHeight};do l.left+=c.offsetLeft,l.top+=c.offsetTop;while(c=c.offsetParent);return t.parentNode.removeChild(t),l}function S(e,t){var n=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing"],i=null!==window.mozInnerScreenX,r=document.createElement("div");r.id="input-textarea-caret-position-mirror-div",document.body.appendChild(r);var o=r.style,a=window.getComputedStyle?getComputedStyle(e):e.currentStyle;o.whiteSpace="pre-wrap","INPUT"!==e.nodeName&&(o.wordWrap="break-word"),o.position="absolute",o.visibility="hidden",n.forEach(function(e){o[e]=a[e]}),i?(o.width=parseInt(a.width)-2+"px",e.scrollHeight>parseInt(a.height)&&(o.overflowY="scroll")):o.overflow="hidden",r.textContent=e.value.substring(0,t),"INPUT"===e.nodeName&&(r.textContent=r.textContent.replace(/\s/g," "));var c=document.createElement("span");c.textContent=e.value.substring(t)||".",r.appendChild(c);var l={top:c.offsetTop+parseInt(a.borderTopWidth)+c.offsetHeight,left:c.offsetLeft+parseInt(a.borderLeftWidth)},s=e;do l.left+=s.offsetLeft,l.top+=s.offsetTop;while(s=s.offsetParent);return document.body.removeChild(r),l}return{popUnderMention:r,replaceMacroText:m,replaceTriggerText:d,getMacroMatch:u,getTriggerInfo:h,selectElement:c,getTextAreaOrInputUnderlinePosition:S,getTextPrecedingCurrentSelection:p,getContentEditableSelectedPath:f,getNodePositionInParent:g,getContentEditableCaretPosition:v,pasteHtml:l,resetSelection:s,scrollIntoView:o}}]),angular.module("mentio").run(["$templateCache",function(e){e.put("mentio-menu.tpl.html",'<style>\n.scrollable-menu {\n height: auto;\n max-height: 300px;\n overflow: auto;\n}\n\n.menu-highlighted {\n font-weight: bold;\n}\n</style>\n<ul class="dropdown-menu scrollable-menu" style="display:block">\n <li mentio-menu-item="item" ng-repeat="item in items track by $index">\n <a class="text-primary" ng-bind-html="item.label | mentioHighlight:typedTerm:\'menu-highlighted\' | unsafe"></a>\n </li>\n</ul>')}]);
"use strict";angular.module("mentio",[]).directive("mentio",["mentioUtil","$compile","$log","$document","$timeout",function(e,t,n,i,r){return{restrict:"A",scope:{macros:"=mentioMacros",search:"&mentioSearch",select:"&mentioSelect",items:"=mentioItems",typedTerm:"=mentioTypedTerm",altId:"=mentioId",requireLeadingSpace:"=mentioRequireLeadingSpace",ngModel:"="},controller:["$scope","$timeout","$attrs",function(t,n,r){t.query=function(e,n){var i=t.triggerCharMap[e];i.showMenu(),i.search({term:n.trim()}),i.typedTerm=n.trim()},t.defaultSearch=function(e){var n=[];angular.forEach(t.items,function(t){t.label.toUpperCase().indexOf(e.term.toUpperCase())>=0&&n.push(t)}),t.localItems=n},t.bridgeSearch=function(e){var n=r.mentioSearch?t.search:t.defaultSearch;n({term:e})},t.defaultSelect=function(e){return t.defaultTriggerChar+e.item.label},t.bridgeSelect=function(e){var n=r.mentioSelect?t.select:t.defaultSelect;return n({item:e})},t.setTriggerText=function(e){t.syncTriggerText&&(t.typedTerm=e.trim())},t.replaceText=function(i){if(t.hideAll(),e.replaceTriggerText(t.targetElement,t.targetElementPath,t.targetElementSelectedOffset,t.triggerCharSet,i,t.requireLeadingSpace),t.setTriggerText(""),angular.element(t.targetElement).triggerHandler("change"),t.isContentEditable()){t.contentEditableMenuPasted=!0;var r=n(function(){t.contentEditableMenuPasted=!1},100);t.$on("$destroy",function(){n.cancel(r)})}},t.hideAll=function(){for(var e in t.triggerCharMap)t.triggerCharMap.hasOwnProperty(e)&&t.triggerCharMap[e].hideMenu()},t.getActiveMenuScope=function(){for(var e in t.triggerCharMap)if(t.triggerCharMap.hasOwnProperty(e)&&t.triggerCharMap[e].visible)return t.triggerCharMap[e];return null},t.selectActive=function(){for(var e in t.triggerCharMap)t.triggerCharMap.hasOwnProperty(e)&&t.triggerCharMap[e].visible&&t.triggerCharMap[e].selectActive()},t.isActive=function(){for(var e in t.triggerCharMap)if(t.triggerCharMap.hasOwnProperty(e)&&t.triggerCharMap[e].visible)return!0;return!1},t.isContentEditable=function(){return"INPUT"!==t.targetElement.nodeName&&"TEXTAREA"!==t.targetElement.nodeName},t.replaceMacro=function(i,r){r?e.replaceMacroText(t.targetElement,t.targetElementPath,t.targetElementSelectedOffset,t.macros,t.macros[i]):(t.replacingMacro=!0,t.timer=n(function(){e.replaceMacroText(t.targetElement,t.targetElementPath,t.targetElementSelectedOffset,t.macros,t.macros[i]),angular.element(t.targetElement).triggerHandler("change"),t.replacingMacro=!1},300),t.$on("$destroy",function(){n.cancel(t.timer)}))},t.addMenu=function(e){e.parentScope&&t.triggerCharMap.hasOwnProperty(e.triggerChar)||(t.triggerCharMap[e.triggerChar]=e,void 0===t.triggerCharSet&&(t.triggerCharSet=[]),t.triggerCharSet.push(e.triggerChar),e.setParent(t))},t.$on("menuCreated",function(e,n){(void 0!==r.id||void 0!==r.mentioId)&&(r.id===n.targetElement||void 0!==r.mentioId&&t.altId===n.targetElement)&&t.addMenu(n.scope)}),i.on("click",function(){t.isActive()&&t.$apply(function(){t.hideAll()})}),i.on("keydown keypress paste",function(e){var n=t.getActiveMenuScope();n&&((9===e.which||13===e.which)&&(e.preventDefault(),n.selectActive()),27===e.which&&(e.preventDefault(),n.$apply(function(){n.hideMenu()})),40===e.which&&(e.preventDefault(),n.$apply(function(){n.activateNextItem()})),38===e.which&&(e.preventDefault(),n.$apply(function(){n.activatePreviousItem()})),(37===e.which||39===e.which)&&e.preventDefault())})}],link:function(i,o,a){if(i.triggerCharMap={},i.targetElement=o,a.$set("autocomplete","off"),a.mentioItems){i.localItems=[],i.parentScope=i;var c=a.mentioSearch?' mentio-items="items"':' mentio-items="localItems"';i.defaultTriggerChar=a.mentioTriggerChar?i.$eval(a.mentioTriggerChar):"@";var l='<mentio-menu mentio-search="bridgeSearch(term)" mentio-select="bridgeSelect(item)"'+c;a.mentioTemplateUrl&&(l=l+' mentio-template-url="'+a.mentioTemplateUrl+'"'),l=l+" mentio-trigger-char=\"'"+i.defaultTriggerChar+'\'" mentio-parent-scope="parentScope"/>';var s=t(l),m=s(i);o.parent().append(m)}a.mentioTypedTerm&&(i.syncTriggerText=!0),i.$watch("ngModel",function(){if(void 0===i.triggerCharSet)return void n.error("Error, no mentio-items attribute was provided, and no separate mentio-menus were specified. Nothing to do.");if(i.contentEditableMenuPasted)return void(i.contentEditableMenuPasted=!1);i.replacingMacro&&(r.cancel(i.timer),i.replacingMacro=!1);var t=i.isActive(),o=i.isContentEditable(),a=e.getTriggerInfo(i.triggerCharSet,i.requireLeadingSpace,t);if(void 0!==a&&(!t||t&&(o&&a.mentionTriggerChar===i.currentMentionTriggerChar||!o&&a.mentionPosition===i.currentMentionPosition)))i.targetElement=a.mentionSelectedElement,i.targetElementPath=a.mentionSelectedPath,i.targetElementSelectedOffset=a.mentionSelectedOffset,i.setTriggerText(a.mentionText),i.currentMentionPosition=a.mentionPosition,i.currentMentionTriggerChar=a.mentionTriggerChar,i.query(a.mentionTriggerChar,a.mentionText);else{i.setTriggerText(""),i.hideAll();var c=e.getMacroMatch(i.macros);void 0!==c&&(i.targetElement=c.macroSelectedElement,i.targetElementPath=c.macroSelectedPath,i.targetElementSelectedOffset=c.macroSelectedOffset,i.replaceMacro(c.macroText,c.macroHasTrailingSpace))}})}}}]).directive("mentioMenu",["mentioUtil","$rootScope","$log","$window","$document",function(e,t,n,i,r){return{restrict:"E",scope:{search:"&mentioSearch",select:"&mentioSelect",items:"=mentioItems",triggerChar:"=mentioTriggerChar",forElem:"=mentioFor",parentScope:"=mentioParentScope"},templateUrl:function(e,t){return void 0!==t.mentioTemplateUrl?t.mentioTemplateUrl:"mentio-menu.tpl.html"},controller:["$scope",function(e){e.visible=!1,this.activate=e.activate=function(t){e.activeItem=t},this.isActive=e.isActive=function(t){return e.activeItem===t},this.selectItem=e.selectItem=function(t){var n=e.select({item:t});"function"==typeof n.then?n.then(e.parentMentio.replaceText):e.parentMentio.replaceText(n)},e.activateNextItem=function(){var t=e.items.indexOf(e.activeItem);this.activate(e.items[(t+1)%e.items.length])},e.activatePreviousItem=function(){var t=e.items.indexOf(e.activeItem);this.activate(e.items[0===t?e.items.length-1:t-1])},e.selectActive=function(){e.selectItem(e.activeItem)},e.isVisible=function(){return e.visible},e.showMenu=function(){e.visible||(e.requestVisiblePendingSearch=!0)},e.setParent=function(t){e.parentMentio=t,e.targetElement=t.targetElement}}],link:function(o,a){if(a[0].parentNode.removeChild(a[0]),r[0].body.appendChild(a[0]),o.menuElement=a,o.parentScope)o.parentScope.addMenu(o);else{if(!o.forElem)return void n.error("mentio-menu requires a target element in tbe mentio-for attribute");if(!o.triggerChar)return void n.error("mentio-menu requires a trigger char");t.$broadcast("menuCreated",{targetElement:o.forElem,scope:o})}angular.element(i).bind("resize",function(){if(o.isVisible()){var t=[];t.push(o.triggerChar),e.popUnderMention(t,a,o.requireLeadingSpace)}}),o.$watch("items",function(e){e&&e.length>0?(o.activate(e[0]),!o.visible&&o.requestVisiblePendingSearch&&(o.visible=!0,o.requestVisiblePendingSearch=!1)):o.hideMenu()}),o.$watch("isVisible()",function(t){if(t){var n=[];n.push(o.triggerChar),e.popUnderMention(n,a,o.requireLeadingSpace)}}),o.hideMenu=function(){o.visible=!1,a.css("display","none")}}}}]).directive("mentioMenuItem",function(){return{restrict:"A",scope:{item:"=mentioMenuItem"},require:"^mentioMenu",link:function(e,t,n,i){e.$watch(function(){return i.isActive(e.item)},function(e){e?t.addClass("active"):t.removeClass("active")}),t.bind("mouseenter",function(){e.$apply(function(){i.activate(e.item)})}),t.bind("click",function(t){t.preventDefault(),i.selectItem(e.item)})}}}).filter("unsafe",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]).filter("mentioHighlight",function(){function e(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,n,i){if(n){var r=i?'<span class="'+i+'">$&</span>':"<strong>$&</strong>";return(""+t).replace(new RegExp(e(n),"gi"),r)}return t}}),angular.module("mentio").factory("mentioUtil",["$window","$location","$anchorScroll","$timeout",function(e,t,n,i){function r(e,t,n){var r,c=h(e,n,!1);void 0!==c?(r=a()?S(document.activeElement,c.mentionPosition):v(c.mentionPosition),t.css({top:r.top+"px",left:r.left+"px",position:"absolute",zIndex:100,display:"block"}),i(function(){o(t)},0)):t.css({display:"none"})}function o(t){for(var n,i=20,r=100,o=t[0];void 0===n||0===n.height;)if(n=o.getBoundingClientRect(),0===n.height&&(o=o.childNodes[0],void 0===o||!o.getBoundingClientRect))return;var a=n.top,c=a+n.height;if(0>a)e.scrollTo(0,e.pageYOffset+n.top-i);else if(c>e.innerHeight){var l=e.pageYOffset+n.top-i;l-e.pageYOffset>r&&(l=e.pageYOffset+r);var s=e.pageYOffset-(e.innerHeight-c);s>l&&(s=l),e.scrollTo(0,s)}}function a(){var e=document.activeElement;if(null!==e){var t=e.nodeName,n=e.getAttribute("type");return"INPUT"===t&&"text"===n||"TEXTAREA"===t}return!1}function c(e,t,n){for(var i,r=e,o=0;o<t.length;o++){if(r=r.childNodes[t[o]],void 0===r)return;for(;r.length<n;)n-=r.length,r=r.nextSibling}if(document.selection&&document.selection.createRange)i=document.selection.createRange().duplicate(),i.select(r),i.selectStartOffset(n),i.selectEndOffset(n),i.collapse(!0),document.selection.removeAllRanges(),document.selection.addRange(i);else if(window.getSelection){var a=window.getSelection();i=document.createRange(),i.setStart(r,n),i.setEnd(r,n),i.collapse(!0);try{a.removeAllRanges()}catch(c){}a.addRange(i),e.focus()}}function l(e,t,n){var i,r;if(document.selection&&document.selection.createRange)i=document.selection.createRange().duplicate(),i.selectStartOffset(t),i.selectEndOffset(n),i.collapse(!1),i.deleteContents(),i.pasteHTML(e);else if(window.getSelection){r=window.getSelection(),i=document.createRange(),i.setStart(r.anchorNode,t),i.setEnd(r.anchorNode,n),i.deleteContents();var o=document.createElement("div");o.innerHTML=e;for(var a,c,l=document.createDocumentFragment();a=o.firstChild;)c=l.appendChild(a);i.insertNode(l),c&&(i=i.cloneRange(),i.setStartAfter(c),i.collapse(!0),r.removeAllRanges(),r.addRange(i))}}function s(e,t,n){var i=e.nodeName;"INPUT"===i||"TEXTAREA"===i?e!==document.activeElement&&e.focus():c(e,t,n)}function m(e,t,n,i,r){s(e,t,n);var o=u(i);if(o.macroHasTrailingSpace&&(o.macroText=o.macroText+" ",r+=" "),void 0!==o){var c=document.activeElement;if(a())if(document.selection){c.focus();var m=document.selection.createRange();m.selectStartOffset(o.macroPosition),m.selectEndOffset(o.macroPosition+o.macroText.length),m.text=r}else{var d=o.macroPosition,g=o.macroPosition+o.macroText.length;c.value=c.value.substring(0,d)+r+c.value.substring(g,c.value.length),c.selectionStart=d+r.length,c.selectionEnd=d+r.length}else l(r,o.macroPosition,o.macroPosition+o.macroText.length)}}function d(e,t,n,i,r,o){s(e,t,n);var c=h(i,o,!0);if(void 0!==c)if(a()){var m=document.activeElement;if(r+=" ",document.selection){m.focus();var d=document.selection.createRange();d.selectStartOffset(c.mentionPosition),d.selectEndOffset(c.mentionPosition+c.mentionText.length),d.text=r}else{var g=c.mentionPosition,u=c.mentionPosition+c.mentionText.length+1;m.value=m.value.substring(0,g)+r+m.value.substring(u,m.value.length),m.selectionStart=g+r.length,m.selectionEnd=g+r.length}}else r+=" ",l(r,c.mentionPosition,c.mentionPosition+c.mentionText.length+1)}function g(e){if(null===e.parentNode)return 0;for(var t=0;t<e.parentNode.childNodes.length;t++){var n=e.parentNode.childNodes[t];if(n===e)return t}}function u(e){var t,n,i=[];if(a())t=document.activeElement;else{var r=f();r&&(t=r.selected,i=r.path,n=r.offset)}var o=p();if(void 0!==o&&null!==o){var c,l=!1;if(o.length>0&&(" "===o.charAt(o.length-1)||" "===o.charAt(o.length-1))&&(l=!0,o=o.substring(0,o.length-1)),angular.forEach(e,function(e,r){var a=o.toUpperCase().lastIndexOf(r.toUpperCase());if(a>=0&&r.length+a===o.length){var s=a-1;(0===a||" "===o.charAt(s)||" "===o.charAt(s))&&(c={macroPosition:a,macroText:r,macroSelectedElement:t,macroSelectedPath:i,macroSelectedOffset:n,macroHasTrailingSpace:l})}}),c)return c}}function f(){var e,t=window.getSelection(),n=t.anchorNode,i=[];if(null!=n){for(var r,o=n.contentEditable;null!==n&&"true"!==o;)r=g(n),i.push(r),n=n.parentNode,null!==n&&(o=n.contentEditable);return i.reverse(),e=t.getRangeAt(0).startOffset,{selected:n,path:i,offset:e}}}function h(e,t,n){var i,r,o;if(a())i=document.activeElement;else{var c=f();c&&(i=c.selected,r=c.path,o=c.offset)}var l=p();if(void 0!==l&&null!==l){var s,m=-1;if(e.forEach(function(e){var t=l.lastIndexOf(e);t>m&&(m=t,s=e)}),m>=0&&(0===m||!t||/[\xA0\s]/g.test(l.substring(m-1,m)))){var d=l.substring(m+1,l.length);s=l.substring(m,m+1);var g=d.substring(0,1),u=d.length>0&&(" "===g||" "===g);if(!u&&(n||!/[\xA0\s]/g.test(d)))return{mentionPosition:m,mentionText:d,mentionSelectedElement:i,mentionSelectedPath:r,mentionSelectedOffset:o,mentionTriggerChar:s}}}}function p(){var e;if(a()){var t=document.activeElement;if(void 0!==document.selection){t.focus();var n=document.selection.createRange();e=n.text}else if(void 0!==t.selectionStart){var i=t.selectionStart;e=t.value.substring(0,i)}}else{var r=window.getSelection().anchorNode;if(null!=r){var o=r.textContent,c=window.getSelection().getRangeAt(0).startOffset;c>=0&&(e=o.substring(0,c))}}return e}function v(e){var t,n,i="",r="&#xfeff;",o="sel_"+(new Date).getTime()+"_"+Math.random().toString().substr(2);if(document.selection&&document.selection.createRange)n=document.selection.createRange().duplicate(),n.selectStartOffset(e),n.selectEndOffset(e),n.collapse(!1),n.pasteHTML('<span id="'+o+'" style="position: relative;">'+r+"</span>"),t=document.getElementById(o);else if(window.getSelection){var a=window.getSelection(),c=a.getRangeAt(0);n=document.createRange(),n.setStart(a.anchorNode,e),n.setEnd(a.anchorNode,e),n.collapse(!1),t=document.createElement("span"),t.id=o,t.appendChild(document.createTextNode(i)),n.insertNode(t),a.removeAllRanges(),a.addRange(c)}var l=t,s={left:0,top:t.offsetHeight};do s.left+=l.offsetLeft,s.top+=l.offsetTop;while(l=l.offsetParent);return t.parentNode.removeChild(t),s}function S(e,t){var n=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing"],i=null!==window.mozInnerScreenX,r=document.createElement("div");r.id="input-textarea-caret-position-mirror-div",document.body.appendChild(r);var o=r.style,a=window.getComputedStyle?getComputedStyle(e):e.currentStyle;o.whiteSpace="pre-wrap","INPUT"!==e.nodeName&&(o.wordWrap="break-word"),o.position="absolute",o.visibility="hidden",n.forEach(function(e){o[e]=a[e]}),i?(o.width=parseInt(a.width)-2+"px",e.scrollHeight>parseInt(a.height)&&(o.overflowY="scroll")):o.overflow="hidden",r.textContent=e.value.substring(0,t),"INPUT"===e.nodeName&&(r.textContent=r.textContent.replace(/\s/g," "));var c=document.createElement("span");c.textContent=e.value.substring(t)||".",r.appendChild(c);var l={top:c.offsetTop+parseInt(a.borderTopWidth)+c.offsetHeight,left:c.offsetLeft+parseInt(a.borderLeftWidth)},s=e;do l.left+=s.offsetLeft,l.top+=s.offsetTop;while(s=s.offsetParent);return document.body.removeChild(r),l}return{popUnderMention:r,replaceMacroText:m,replaceTriggerText:d,getMacroMatch:u,getTriggerInfo:h,selectElement:c,getTextAreaOrInputUnderlinePosition:S,getTextPrecedingCurrentSelection:p,getContentEditableSelectedPath:f,getNodePositionInParent:g,getContentEditableCaretPosition:v,pasteHtml:l,resetSelection:s,scrollIntoView:o}}]),angular.module("mentio").run(["$templateCache",function(e){e.put("mentio-menu.tpl.html",'<style>\n.scrollable-menu {\n height: auto;\n max-height: 300px;\n overflow: auto;\n}\n\n.menu-highlighted {\n font-weight: bold;\n}\n</style>\n<ul class="dropdown-menu scrollable-menu" style="display:block">\n <li mentio-menu-item="item" ng-repeat="item in items track by $index">\n <a class="text-primary" ng-bind-html="item.label | mentioHighlight:typedTerm:\'menu-highlighted\' | unsafe"></a>\n </li>\n</ul>')}]);

@@ -89,11 +89,10 @@ 'use strict';

$scope.getProductTextRaw = function(item) {
var deferred = $q.defer();
/* the select() function can also return a Promise which ment.io will handle
propertly during replacement */
return new Promise(function(fulfill) {
// simulated async promise
$timeout(function() {
fulfill('#' + item.sku);
}, 500);
}
);
$timeout(function() {
deferred.resolve('#' + item.sku);
}, 500);
return deferred.promise;
};

@@ -100,0 +99,0 @@

{
"name": "ment.io",
"version": "0.9.14",
"version": "0.9.15",
"description": "Mentions for Angular",

@@ -5,0 +5,0 @@ "main": "index.html",

@@ -446,2 +446,3 @@ 'use strict';

var sel = window.getSelection();
var prevRange = sel.getRangeAt(0);
range = document.createRange();

@@ -459,2 +460,4 @@

range.insertNode(markerEl);
sel.removeAllRanges();
sel.addRange(prevRange);
}

@@ -461,0 +464,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc