UNPKG

unified-doc-util-mark

Version:
3 lines (2 loc) 2.99 kB
function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}var r=t(require("unified-doc-util-text-offsets")),e=t(require("unist-util-visit")),n=t(require("hastscript"));function a(){return(a=Object.assign||function(t){for(var r=1;r<arguments.length;r++){var e=arguments[r];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t}).apply(this,arguments)}function o(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}module.exports=function(t,i){if(void 0===i&&(i=[]),0===i.length)return t;var u=r(t),s=function(t){var r=new Set,e=!1;return t.forEach(function(t){var n=t.id,a=t.start,o=t.end;n&&r.add(n),a>o&&(e=!0)}),r.size!==t.length&&console.warn('Marks must contain unique "id" fields'),e&&console.warn('Marks should have "start" < "end"'),t.slice().sort(function(t,r){return t.start<r.start?-1:t.start>r.start||t.end<r.end?1:t.end>r.end?-1:0})}(i);return e(u,"text",function(t,r,i){if(!t.data||!t.data.textOffset)return e.CONTINUE;var u=function(t,r){for(var e,n=t.data.textOffset,i=n.start,u=n.end,s=[],d=function(t,r){var e;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(e=function(t,r){if(t){if("string"==typeof t)return o(t,void 0);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?o(t,void 0):void 0}}(t))){e&&(t=e);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(e=t[Symbol.iterator]()).next.bind(e)}(r);!(e=d()).done;){var f=e.value,c=f.start,l=f.end;if(c>=u)break;l<=i||s.push(a({},f,{start:Math.max(c,i),end:Math.min(l,u)}))}return s}(t,s);if(0===u.length)return e.CONTINUE;var d=new Set,f=function(t,r){return void 0===r&&(r=new Set),t.map(function(t){var e={type:"text",value:t.value};return t.marks.slice().reverse().forEach(function(t){var a=t.id,o=t.classNames,i=t.dataset,u=void 0===i?{}:i,s=t.style,d={};Object.keys(u).forEach(function(t){var r="data"+t[0].toUpperCase()+t.slice(1);d[r]=u[t]}),d.className=o,d.dataMarkId=a,d.style=s,r.has(a)||(d.id=a,r.add(a)),e=n("mark",d,e)}),e})}(function(t,r){var e=t.data.textOffset,n=e.start,a=e.end,o=new Set;o.add(n),o.add(a),r.forEach(function(t){o.add(t.start),o.add(t.end)});for(var i=Array.from(o).sort(function(t,r){return t-r}),u=[],s=0;s<i.length-1;s++)u.push([i[s],i[s+1]]);var d=[];return u.forEach(function(e){var a=e[0],o=e[1],i=a-n,u=o-n,s=t.value.slice(i,u);if(s&&i>=0&&u>i){var f={marks:r.filter(function(t){return t.end>a&&t.start<o||t.start<o&&t.end>a}),textOffset:[a,o],value:s};d.push(f)}}),d}(t,u),d),c=i.children,l=c.indexOf(t);return i.children=c.slice(0,l).concat(f).concat(c.slice(l+1)),e.CONTINUE}),u}; //# sourceMappingURL=index.js.map