
META-INF.resources.bower_components.rangy.rangy-highlighter.min.js Maven / Gradle / Ivy
(function(b,a){if(typeof define=="function"&&define.amd){define(["./rangy-core"],b)}else{if(typeof module!="undefined"&&typeof exports=="object"){module.exports=b(require("rangy"))}else{b(a.rangy)}}})(function(a){a.createModule("Highlighter",["ClassApplier"],function(j,b){var m=j.dom;var i=m.arrayContains;var s=m.getBody;var l=j.util.createOptions;var n=j.util.forEach;var k=1;function p(u,t){return u.characterRange.start-t.characterRange.start}function g(t,u){return u?t.getElementById(u):s(t)}var d={};function o(t,u){this.type=t;this.converterCreator=u}o.prototype.create=function(){var t=this.converterCreator();t.type=this.type;return t};function q(t,u){d[t]=new o(t,u)}function c(u){var t=d[u];if(t instanceof o){return t.create()}else{throw new Error("Highlighter type '"+u+"' is not valid")}}j.registerHighlighterType=q;function e(u,t){this.start=u;this.end=t}e.prototype={intersects:function(t){return this.startt.start},isContiguousWith:function(t){return this.start==t.end||this.end==t.start},union:function(t){return new e(Math.min(this.start,t.start),Math.max(this.end,t.end))},intersection:function(t){return new e(Math.max(this.start,t.start),Math.min(this.end,t.end))},getComplements:function(u){var t=[];if(this.start>=u.start){if(this.end<=u.end){return[]}t.push(new e(u.end,this.end))}else{t.push(new e(this.start,Math.min(this.end,u.start)));if(this.end>u.end){t.push(new e(u.end,this.end))}}return t},toString:function(){return"[CharacterRange("+this.start+", "+this.end+")]"}};e.fromCharacterRange=function(t){return new e(t.start,t.end)};var r={rangeToCharacterRange:function(u,t){var v=u.getBookmark(t);return new e(v.start,v.end)},characterRangeToRange:function(v,w,t){var u=j.createRange(v);u.moveToBookmark({start:w.start,end:w.end,containerNode:t});return u},serializeSelection:function(y,u){var v=y.getAllRanges(),w=v.length;var z=[];var A=w==1&&y.isBackward();for(var x=0,t=v.length;x0},serialize:function(v){var u=this;var x=u.highlights;var t,z,w,y;x.sort(p);v=l(v,{serializeHighlightText:false,type:u.converter.type});t=v.type;w=(t!=u.converter.type);if(w){y=c(t)}z=["type:"+t];n(x,function(A){var C=A.characterRange;var D;if(w){D=A.getContainerElement();C=y.rangeToCharacterRange(u.converter.characterRangeToRange(u.doc,C,D),D)}var B=[C.start,C.end,A.id,A.classApplier.className,A.containerElementId];if(v.serializeHighlightText){B.push(A.getText())}z.push(B.join("$"))});return z.join("|")},deserialize:function(B){var v=B.split("|");var E=[];var t=v[0];var z;var u,A,G=false;if(t&&(z=/^type:(\w+)$/.exec(t))){u=z[1];if(u!=this.converter.type){A=c(u);G=true}v.shift()}else{throw new Error("Serialized highlights are invalid.")}var F,w,D,x,H;for(var C=v.length,y;C-->0;){y=v[C].split("$");D=new e(+y[0],+y[1]);x=y[4]||null;if(G){H=g(this.doc,x);D=this.converter.rangeToCharacterRange(A.characterRangeToRange(this.doc,D,H),H)}F=this.classAppliers[y[3]];if(!F){throw new Error("No class applier found for class '"+y[3]+"'")}w=new h(this.doc,D,F,this.converter,parseInt(y[2]),x);w.apply();E.push(w)}this.highlights=E}};j.Highlighter=f;j.createHighlighter=function(u,t){return new f(u,t)}});return a},this);
© 2015 - 2025 Weber Informatics LLC | Privacy Policy