UNPKG

unified-doc-util-mark

Version:
3 lines (2 loc) 2.92 kB
import t from"unified-doc-util-text-offsets";import r from"unist-util-visit";import e from"hastscript";function n(){return(n=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 a(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}export default function(o,i){if(void 0===i&&(i=[]),0===i.length)return o;var s=t(o),u=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 r(s,"text",function(t,o,i){if(!t.data||!t.data.textOffset)return r.CONTINUE;var s=function(t,r){for(var e,o=t.data.textOffset,i=o.start,s=o.end,u=[],f=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 a(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)?a(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=f()).done;){var d=e.value,c=d.start,l=d.end;if(c>=s)break;l<=i||u.push(n({},d,{start:Math.max(c,i),end:Math.min(l,s)}))}return u}(t,u);if(0===s.length)return r.CONTINUE;var f=new Set,d=function(t,r){return void 0===r&&(r=new Set),t.map(function(t){var n={type:"text",value:t.value};return t.marks.slice().reverse().forEach(function(t){var a=t.id,o=t.classNames,i=t.dataset,s=void 0===i?{}:i,u=t.style,f={};Object.keys(s).forEach(function(t){var r="data"+t[0].toUpperCase()+t.slice(1);f[r]=s[t]}),f.className=o,f.dataMarkId=a,f.style=u,r.has(a)||(f.id=a,r.add(a)),n=e("mark",f,n)}),n})}(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}),s=[],u=0;u<i.length-1;u++)s.push([i[u],i[u+1]]);var f=[];return s.forEach(function(e){var a=e[0],o=e[1],i=a-n,s=o-n,u=t.value.slice(i,s);if(u&&i>=0&&s>i){var d={marks:r.filter(function(t){return t.end>a&&t.start<o||t.start<o&&t.end>a}),textOffset:[a,o],value:u};f.push(d)}}),f}(t,s),f),c=i.children,l=c.indexOf(t);return i.children=c.slice(0,l).concat(d).concat(c.slice(l+1)),r.CONTINUE}),s} //# sourceMappingURL=index.module.js.map