@bixi/label
Version:
1 lines • 1.57 MB
JavaScript
!function e(t,r,n){function i(a,s){if(!r[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[a]={exports:{}};t[a][0].call(l.exports,(function(e){return i(t[a][1][e]||e)}),l,l.exports,e,t,r,n)}return r[a].exports}for(var o="function"==typeof require&&require,a=0;a<n.length;a++)i(n[a]);return i}({1:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Adapter=void 0;var n=e("jquery"),i=e("lodash"),o=e("./model"),a=e("./event_bus"),s=e("./logger"),u=e("./interface"),c=e("./utils"),l=s.Logger.getInstance(),h=function(){function e(){var e=this;this.model=o.Model.getInstance(),this.eventBus=a.EventBus.getInstance(),this.eventBus.loadContents$.subscribe((function(t){if(i.startsWith(e.model.engineMode,"text")){var r=i.map(t,(function(t){return e.genPageCharUrl(t)}));e.loadPageChars(r)}}))}return e.getInstance=function(){return this.instance||(this.instance=new e),this.instance},e.prototype.reflectEngineMode=function(e){var t=u.EEngineMode.text_full;switch(e){case u.ECEngineMode.preview:t=u.EEngineMode.nonText_preview;break;case u.ECEngineMode.noCopying:t=u.EEngineMode.text_nonCopy;break;case u.ECEngineMode.readonly:t=u.EEngineMode.nonText_nonSelectable}return t},e.prototype.ready=function(e,t){var r=this;if(this.basePageCharUrl=t,i.keys(this.model.outline).length&&this.model.articleContent.length)return Promise.resolve(!0);if(!e)return l.error("初始化资源信息失败!",e),Promise.resolve(!0);var n="_info.json".length,o=e.slice(0,-n)+".txt";return new Promise((function(t){Promise.all([r.initOutlineInfo(e),r.initArticleContent(o)]).then((function(e){return t(!0)}))}))},e.prototype.loadAllPagesContent=function(){var e=this,t=c.generatePageNumbers(this.model.pagesCount),r=i.map(t,(function(t){return e.genPageCharUrl(t)}));return new Promise((function(t){e.loadPageChars(r).then((function(){return t(!0)})).catch((function(){return t(!1)}))}))},e.prototype.initArticleContent=function(e){var t=this;return this.model.articleContent.length?Promise.resolve(!0):new Promise((function(r){n.get(e).then((function(e){t.model.articleContent=e,r(!0)})).catch((function(){return r(!0)}))}))},e.prototype.initOutlineInfo=function(e){var t=this;return i.keys(this.model.outline).length?Promise.resolve(!0):new Promise((function(r){n.get(e).then((function(e){t.model.outline=e,r(!0)})).catch((function(){return r(!0)}))}))},e.prototype.genPageCharUrl=function(e){var t=this.model.pagesCount;if(!(!this.basePageCharUrl||e<1||e>t)){var r=".json".length+1;return""+this.basePageCharUrl.slice(0,-r)+e+".json"}},e.prototype.loadPageChars=function(e){if((e=i.filter(e,(function(e){return!!e}))).length)return Promise.all(i.map(e,(function(e){return n.get(e)}))).then((function(e){i.get(window,"ProxyApiService2").updatePagesContent(e)}))},e}();r.Adapter=h},{"./event_bus":5,"./interface":9,"./logger":20,"./model":21,"./utils":51,jquery:465,lodash:466}],2:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ClipBoard=void 0;var n=e("./dom"),i=e("./logger"),o=e("clipboard"),a=i.Logger.getInstance(),s=function(){function e(){this.prop="data-clipboard-text",o.isSupported()?(this.target=n.jDom.clipboardAnchor,this.clipboard=new o(".clipboard-anchor")):a.error("当前环境不支持复制功能!")}return e.prototype.copy=function(e){this.target&&(this.target.attr(this.prop,e),this.target.trigger("click"))},e.prototype.clearText=function(){this.target&&(this.target.attr(this.prop,""),this.target.trigger("click"))},e.prototype.destroy=function(){this.clipboard&&this.clipboard.destroy()},e}();r.ClipBoard=s},{"./dom":3,"./logger":20,clipboard:120}],3:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.jDom=void 0;var n=e("jquery"),i={window:n(window),viewBox:n("#viewBox"),viewer:n("#viewer"),drawPanel:n("#drawPanel"),loadingBox:n("#loadingBox"),fileSize:n("#fileSize"),progress:n("#progress"),finished:n("#finished"),clipboardAnchor:n("#clipboardAnchor")};r.jDom=i},{jquery:465}],4:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.DownloadManager=void 0;var n=e("lodash"),i=e("uuid"),o=e("file-saver"),a=e("./dom"),s=e("./model"),u=e("./event_handler"),c=function(){function e(){var e=this;this.eventHandler=new u.EventHandler,this.eventHandler.registerEvent(a.jDom.window,"keydown",(function(t){var r=t.keyCode,i=t.ctrlKey?1:t.altKey?2:t.shiftKey?4:t.metaKey?8:0;83===r&&n.includes([1,8],i)&&(t.preventDefault(),e.download(s.Model.getInstance().pdfUrl))}))}return e.prototype.download=function(e,t){if(e){t||(t=i.v4()+".pdf");n.endsWith(t,".pdf")||(t+=".pdf"),o.saveAs(e,t)}},e}();r.DownloadManager=c},{"./dom":3,"./event_handler":6,"./model":21,"file-saver":459,lodash:466,uuid:646}],5:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.EventBus=void 0;var n=e("rxjs/Subject"),i=function(){function e(){this.appReady$=new n.Subject,this.mouseEvent$=new n.Subject,this.pageRendered$=new n.Subject,this.destroyPage$=new n.Subject,this.loadingProgress$=new n.Subject,this.loadContents$=new n.Subject,this.lockTable$=new n.Subject,this.resizeTbl$=new n.Subject,this.hideTable$=new n.Subject,this.eventControl$=new n.Subject,this.addLongLine$=new n.Subject,this.addShortLine$=new n.Subject,this.lockTableLine$=new n.Subject,this.resizeCell$=new n.Subject,this.removeLine$=new n.Subject,this.selectedCells$=new n.Subject,this.mergeCells$=new n.Subject,this.splitCells$=new n.Subject,this.clearMergeTableSign$=new n.Subject,this.enableLabeling$=new n.Subject,this.pageCharsLoaded$=new n.Subject}return e.getInstance=function(){return this.instance||(this.instance=new e),this.instance},e.prototype.destroy=function(){this.appReady$.complete(),this.mouseEvent$.complete(),this.pageRendered$.complete(),this.destroyPage$.complete(),this.loadingProgress$.complete(),this.loadContents$.complete(),this.lockTable$.complete(),this.resizeTbl$.complete(),this.hideTable$.complete(),this.eventControl$.complete(),this.addLongLine$.complete(),this.addShortLine$.complete(),this.lockTableLine$.complete(),this.resizeCell$.complete(),this.removeLine$.complete(),this.selectedCells$.complete(),this.mergeCells$.complete(),this.splitCells$.complete(),this.clearMergeTableSign$.complete(),this.enableLabeling$.complete(),this.pageCharsLoaded$.complete()},e}();r.EventBus=i},{"rxjs/Subject":510}],6:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.EventHandler=void 0;var n=e("lodash"),i=e("./logger").Logger.getInstance(),o=function(){function e(){}return e.prototype.registerEvent=function(e,t,r,i){return e&&e.length?(i=i&&n.keys(i).length?i:{},e.off(t).on(t,i,r),this):this},e.prototype.unRegister=function(e,t){return e&&e.length?(e.off(t),this):this},Object.defineProperty(e.prototype,"isSupportMessage",{get:function(){return window.parent&&window.parent.postMessage},enumerable:!1,configurable:!0}),e.prototype.postMessage=function(e,t){if(void 0===t&&(t="*"),!this.isSupportMessage)return i.error("系统不支持postMessage事件");window.parent.postMessage(e,t)},e}();r.EventHandler=o},{"./logger":20,lodash:466}],7:[function(e,t,r){"use strict";var n=this&&this.__spreadArrays||function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),i=0;for(t=0;t<r;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)n[i]=o[a];return n};Object.defineProperty(r,"__esModule",{value:!0}),r.fabricExtends=void 0;var i=e("fabric"),o=e("lodash"),a=e("./shape_style"),s=e("./logger").Logger.getInstance();r.fabricExtends=function(){var e=i.fabric.Canvas.prototype,t=i.fabric.Rect.prototype,r=i.fabric.Path.prototype,u=i.fabric.Line.prototype,c=["tableId","pathId","pageNumber"],l=function(e,t){var r;try{var n=e.getObjects();o.forEach(n,(function(n){var i=n,o=i.belongTo;r=i.pageNumber,o===t&&e.remove(n)}))}catch(e){var i=t===a.BELONG_TO.label?"清除第"+r+"页标注数据失败!":"清除第"+r+"页表格数据失败!";s.error(i,e)}};o.has(e,"getItemByUuid")||Object.defineProperty(e,"getItemByUuid",{get:function(){var e=this;return function(t,r){void 0===r&&(r="uuid");var n=e.getObjects();if(o.isArray(n))return o.filter(n,(function(e){return o.get(e,r)===t}))}}}),o.has(e,"clearLabels")||Object.defineProperty(e,"clearLabels",{get:function(){var e=this;return function(){return l(e,a.BELONG_TO.label)}}}),o.has(e,"clearTables")||Object.defineProperty(e,"clearTables",{get:function(){var e=this;return function(){return l(e,a.BELONG_TO.table)}}}),o.has(t,"toTblJson")||Object.defineProperty(t,"toTblJson",{get:function(){var e=this;return function(){return e.toJSON(n(c))}}}),o.has(r,"toLineJson")||Object.defineProperty(r,"toLineJson",{get:function(){var e=this;return function(){return e.toJSON(n(c,["lineType"]))}}}),o.has(u,"toLineJson")||Object.defineProperty(u,"toLineJson",{get:function(){var e=this;return function(){return e.toJSON(n(c,["lineType"]))}}})}},{"./logger":20,"./shape_style":30,fabric:458,lodash:466}],8:[function(e,t,r){"use strict";var n=this&&this.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r},i=this&&this.__spreadArrays||function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),i=0;for(t=0;t<r;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)n[i]=o[a];return n};Object.defineProperty(r,"__esModule",{value:!0}),r.Viewer=void 0;var o=e("./interface"),a=e("./utils"),s=e("./model"),u=e("./event_handler"),c=e("./utils"),l=e("./dom"),h=e("./layer"),f=e("lodash"),d=e("./loader"),p=e("./rendering_queue"),v=e("./event_bus"),g=e("./label-manager/utils"),b=e("./mouse_event"),m=e("./table-manager/table_parser"),y=e("./adapter").Adapter.getInstance(),_=function(){function e(){var e=this;this.TIMEOUT=300,this.handleResize=function(t){void 0===t&&(t=1);var r=l.jDom.viewBox,n=e.model.pagesViewport[1].scale;e.model.clear(),e.rQueue.clear(),e.layer.render();var i=e.model.pagesViewport[1],s=i.scale,u=i.width;r.scrollTop(e.model.scrollState.lastY*s/n*t),window.requestAnimationFrame((function(){e.rQueue.renderHighestPriority();var t=(u*e.model.ZOOM-r.width())/2;r.scrollLeft(t)})),e.eventHandler.postMessage(a.formatPostMsg(o.MessageType.resize,{resize:!0}))},this.model=s.Model.getInstance(),this.layer=h.Layer.getInstance(),this.eventHandler=new u.EventHandler,this.eventBus=v.EventBus.getInstance(),this.rQueue=p.RenderingQueue.getInstance(),this.loader=new d.Loader,this.mouseEvent=new b.MouseEvent,this.model.scrollState=a.watchScroll(l.jDom.viewBox[0],this.scrollUpdate.bind(this)),this.bindEvent()}return e.prototype.initialize=function(e){var t=this;if(this.rQueue.clear(),this.updateFileSize(e.pdfSize),this.showLoading(),this.model.patch(e),f.startsWith(this.model.engineMode,"text")||this.model.engineMode===o.EEngineMode.nonText_nonSelectable)Promise.all([this.loader.loadDocInstance(e.pdfUrl),y.ready(e.pdfInfoUrl,e.pdfCharsUrl)]).then((function(){t.readyHandler(e)}));else{if(this.model.engineMode===o.EEngineMode.nonText_preview){e.labelMode,e.labels,e.tables;var r=n(e,["labelMode","labels","tables"]);e=f.cloneDeep(r)}this.loader.loadDocInstance(e.pdfUrl).then((function(){return t.readyHandler(e)}))}},e.prototype.readyHandler=function(e){this.layer.render(),this.mouseEvent.enable(),this.loader.loadDocContents(),this.model.labels=g.parseOriLabels(f.cloneDeep(e.labels)),this.model.initTables((new m.TableParser).parseOriTables(f.cloneDeep(e.tables))),this.rQueue.renderHighestPriority(c.generatePageNumbers(this.model.PRE_LOAD_NUM)),this.hideLoading()},e.prototype.showLoading=function(){l.jDom.loadingBox.removeClass("hidden")},e.prototype.hideLoading=function(){l.jDom.loadingBox.addClass("hidden")},e.prototype.bindEvent=function(){l.jDom.window.off("resize").on("resize",f.debounce(this.handleResize.bind(this.handleResize,this.model.ZOOM),this.TIMEOUT)),this.eventBus.loadingProgress$.subscribe((function(e){var t=f.get(e,"progress"),r=f.get(e,"total");l.jDom.progress.css("width",t),l.jDom.finished.text(t),l.jDom.fileSize.text(r)}))},e.prototype.scrollUpdate=function(){var e=this.model.scrollState,t=e.lastY,r=e.down;this.eventHandler.postMessage(a.formatPostMsg(o.MessageType.docScrolling,{state:{lastY:t,down:r}})),this.eventBus.clearMergeTableSign$.next(),this.updateView()},e.prototype.updateView=function(){var e=c.getVisiblePages(this.model.scrollState.lastY);0!==e.length&&(this.loader.loadDocContents(e),this.emitPageNumber(e),this.rQueue.renderHighestPriority(e))},e.prototype.emitPageNumber=function(e){var t=(e=e.sort((function(e,t){return e-t})))[0];if(e.length>1){var r=i(e),n=r.pop();t=2*(c.getPageOffsetTop(n)-this.model.scrollState.lastY)<this.model.CONTAINER_HEIGHT?n:r.pop()}this.eventHandler.postMessage(a.formatPostMsg(o.MessageType.paginationChange,{pageNumber:t}))},e.prototype.updateFileSize=function(e){var t=f.toNumber(e)||0;t&&l.jDom.fileSize.text((t/1024/1024).toFixed(2)+"M")},e}();r.Viewer=_},{"./adapter":1,"./dom":3,"./event_bus":5,"./event_handler":6,"./interface":9,"./label-manager/utils":16,"./layer":17,"./loader":18,"./model":21,"./mouse_event":22,"./rendering_queue":26,"./table-manager/table_parser":48,"./utils":51,lodash:466}],9:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ETableActionType=r.ECellStrategy=r.ELineType=r.EDirection=r.MessageType=r.ETableEditMode=r.ILocateMode=r.ERenderType=r.ECEngineMode=r.EEngineMode=r.ELabelMode=r.ERenderingState=void 0,function(e){e[e.INITIAL=0]="INITIAL",e[e.RUNNING=1]="RUNNING",e[e.PAUSED=2]="PAUSED",e[e.FINISHED=3]="FINISHED"}(r.ERenderingState||(r.ERenderingState={})),function(e){e.textSlip="textSlip",e.textFrame="textFrame",e.non="non"}(r.ELabelMode||(r.ELabelMode={})),function(e){e.text_full="text.full",e.text_nonCopy="text.nonCopy",e.text_nonSelectable="text.label.nonSelectable",e.nonText_preview="nonText.preview",e.nonText_renderAble="nonText.renderAble",e.nonText_nonSelectable="nonText.label.nonSelectable"}(r.EEngineMode||(r.EEngineMode={})),function(e){e.full="full",e.readonly="readonly",e.preview="preview",e.noCopying="no_copying"}(r.ECEngineMode||(r.ECEngineMode={})),function(e){e.text="text",e.area="area"}(r.ERenderType||(r.ERenderType={})),function(e){e.TOP="top",e.PAGE="page",e.MIDDLE="middle"}(r.ILocateMode||(r.ILocateMode={})),function(e){e.addTbl="tableAddTbl",e.delTbl="tableDelTbl",e.resizeTbl="tableResizeTbl",e.splitHTbl="tableHSplitTbl",e.splitVTbl="tableVSplitTbl",e.addSLine="tableAddLine",e.addHLine="tableAddHLine",e.addVLine="tableAddVLine",e.delLine="tableDelLine",e.delSLine="tableDelCellLine",e.resizeCell="tableResizeCell",e.selectTblCells="tableSelectCells",e.mergeCell="tableMergeCell",e.splitCell="tableSplitCell",e.showTbl="tableShowTable",e.hideTbl="tableHideTable",e.selectTbls="tableSelectTables",e.mergeTbls="tableMergeTables",e.splitTbls="tableSplitTables",e.non="tableNon"}(r.ETableEditMode||(r.ETableEditMode={})),r.MessageType={startLabel:"START_LABELING",hoverInLabel:"HOVER_IN_LABEL",hoverOutLabel:"HOVER_OUT_LABEL",deleteLabels:"DELETE_LABELS",paginationChange:"PAGINATION_CHANGE",selectLabels:"CLICK_LABELS",unSelectLabels:"CLICK_OUTSIDE",appReady:"READY",searchResult:"SEARCH_RESULT",docScrolling:"PDF_SCROLLING",loadContents:"LOAD_CONTENTS",pdfLoadFailed:"PDF_LOAD_FAILED",mergeTables:"MERGE_TABLES",splitTable:"SPLIT_TABLE",resize:"resize",operationRecords:"TABLE_OPERATION_RECORDS"},function(e){e.ltr="ltr",e.rtl="rtl",e.ttb="ttb",e.btt="btt"}(r.EDirection||(r.EDirection={})),function(e){e.H="horizontal",e.V="vertical"}(r.ELineType||(r.ELineType={})),function(e){e.merge="merge",e.split="split"}(r.ECellStrategy||(r.ECellStrategy={})),function(e){e.INSERT="insert",e.DELETE="delete",e.UPDATE="update"}(r.ETableActionType||(r.ETableActionType={}))},{}],10:[function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};Object.defineProperty(r,"__esModule",{value:!0}),r.CharSelection=void 0;var i=e("fabric"),o=e("uuid"),a=e("lodash"),s=e("../event_handler"),u=e("../utils"),c=e("../interface"),l=e("../model"),h=e("./utils"),f=e("../event_bus"),d=e("../clipboard"),p=function(){function e(){this.areaPoint=[],this.tempSelection=[],this.TIMEOUT=10,this.LINE_HEIGHT=16,this.model=l.Model.getInstance(),this.eventBus=f.EventBus.getInstance(),this.eventHandler=new s.EventHandler,this.clipBoard=new d.ClipBoard}return e.prototype.enableLabeling=function(e){var t=this;this.disableLabeling(),e&&(this.labelEventRef=this.eventBus.mouseEvent$.asObservable().subscribe((function(e){t.mouseEventHandler(e)})))},e.prototype.disableLabeling=function(){this.labelEventRef&&this.labelEventRef.unsubscribe()},e.prototype.isValidLabeling=function(){var e=this.areaPoint,t=e[0],r=e[1],n=e[2],i=e[3];return!(Math.abs(t-n)<3||Math.abs(r-i)<3)},e.prototype.mouseEventHandler=function(e){var t=this,r=this.model.scrollState.lastY;switch(e.type){case"mousedown":this.clearTempBufferSelection(),this.areaPoint=[e.clientX,e.clientY+r];break;case"mousemove":if(!this.areaPoint.length||1!==e.buttons)return void(this.areaPoint=[]);this.areaPoint[2]=e.clientX,this.areaPoint[3]=e.clientY+r,this.timer||clearTimeout(this.timer),this.timer=setTimeout((function(){if(t.clearTempBufferSelection(),t.isValidLabeling()){var e=t.calcSelectionRects();e&&a.flatten(a.values(e)).length&&t.simulateMouseSelection(e)}}),this.TIMEOUT);break;case"mouseup":if(4!==this.areaPoint.length)return void(this.areaPoint=[]);this.handleSelection({left:e.clientX,top:e.clientY}),this.areaPoint=[]}},e.prototype.clearTempBufferSelection=function(){a.forEach(this.tempSelection,(function(e){return e[0].remove(e[1])})),this.tempSelection=[]},e.prototype.clearClipBoardText=function(){this.clipBoard.clearText()},e.prototype.simulateMouseSelection=function(e){var t=this;if(this.model.labelMode!==c.ELabelMode.textFrame){var r=a.keys(e);a.forEach(r,(function(r){var o=a.toNumber(r),s=e[o],c=u.getFabricCanvas(o);c&&a.forEach(s,(function(e){var r=new i.fabric.Rect(n(n({},e),t.model.selectionStyle));c.add(r),t.tempSelection.push([c,r])}))}))}},e.prototype.repeatSelection=function(e){var t=this;this.timer||clearTimeout(this.timer),this.timer=setTimeout((function(){t.clearTempBufferSelection(),t.simulateMouseSelection(e)}),this.TIMEOUT)},e.prototype.handleSelection=function(e){var t=this.calcSelectionRects();if(this.repeatSelection(t),a.startsWith(this.model.engineMode,"text")&&this.model.engineMode!==c.EEngineMode.text_nonCopy){var r=this.unionSelection(t);this.clipBoard.copy(a.get(r,"word")||"")}this.model.labelMode===c.ELabelMode.textSlip&&this.executeLabeling(t,e)},e.prototype.executeLabeling=function(e,t){if(e){var r=this.unionSelection(e);r&&this.eventHandler.postMessage(u.formatPostMsg(c.MessageType.startLabel,{data:[r],position:t}))}},e.prototype.unionSelection=function(e){var t=a.flatten(a.values(e)),r=a.union(a.map(t,(function(e){return e.pageNumber})).sort((function(e,t){return e-t}))),i=a.map(t,(function(e){return e.word})).join("");if(t.length)return n(n({},t[0]),{word:i,linkedPageNumbers:r,uuid:o.v4()})},e.prototype.calcSelectionRects=function(){var e,t=u.getPageOffset(this.areaPoint[0],this.areaPoint[1]),r=t.pageNumber,n=t.left,i=t.top,o=u.getPageOffset(this.areaPoint[2],this.areaPoint[3]),a=o.pageNumber,s=o.left,c=o.top;if(r&&a){var l=[],f=-1,d=-1;if(r===a){l=[r];var p=[n,i,s,c];c<i&&(p=[s,c,n,i]),f=(e=this.getMatchedCharIndex(r,p))[0],d=e[1]}else{l=[r,a].sort((function(e,t){return e-t}));var v=this.model.pagesViewport[r].height*this.model.ZOOM;if(r<a){var g=[n,i,s,v],b=[n,0,s,c];f=this.getMatchedCharIndex(r,g)[0],d=this.getMatchedCharIndex(a,b)[1]}else{g=[s,0,n,i],b=[s,c,n,v];d=this.getMatchedCharIndex(r,g)[1],f=this.getMatchedCharIndex(a,b)[0]}}if(-1!==f&&-1!==d)return h.calcPagesSelectionRects(l,f,d)}},e.prototype.getMatchedCharIndex=function(e,t){var r=this,n=this.model.ZOOM,i=this.model.getPageScale(e)*n,o=a.map(t,(function(e){return e/i})),s=o[0],u=o[1],c=o[2],l=o[3],h=this.model.pagesTextCharsViewInfo[e],f=[],d=[],p=[],v=this.getFirstMatchCharLineHeight([s,u],h)||this.LINE_HEIGHT,g=this.model.pagesViewport[e].width/n;if(Math.abs(u-l)>v){var b=(u+l)/2;d=[s,u,g,b],p=[0,b,c,l]}return a.forEach(h,(function(e,t){var n=r.isInArea(d,e.viewport),i=r.isInArea(p,e.viewport),o=!d.length&&r.isInArea([s,u,c,l],e.viewport);(n||i||o)&&f.push(t)})),[a.min(f),a.max(f)]},e.prototype.getFirstMatchCharLineHeight=function(e,t){var r=this,n=e[0],i=e[1],o=[n,i,n+30,i+30],s=a.filter(t,(function(e){return r.isInArea(o,e.viewport)}))[0];return s?s.viewport[3]:0},e.prototype.isInArea=function(e,t){if(4!==(e=a.filter(e,(function(e){return!isNaN(e)}))).length)return!1;var r=e[0],n=e[1],i=e[2],o=e[3],s=t[0],u=t[1],c=t[2],l=t[3],h=s+c/3,f=u+l/3,d=s+2*c/3,p=u+2*l/3;return(h>r&&d<i||h>r&&h<i&&d>i||h<r&&d>r&&d<i||h<r&&d>i)&&(f>n&&p<o||f>n&&f<o&&p>o||f<n&&p>n&&p<o||f<n&&p>o)},e}();r.CharSelection=p},{"../clipboard":2,"../event_bus":5,"../event_handler":6,"../interface":9,"../model":21,"../utils":51,"./utils":16,fabric:458,lodash:466,uuid:646}],11:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.FabricEvent=void 0;var n=e("../model"),i=e("../event_handler"),o=e("../interface"),a=e("./select_label"),s=e("./utils"),u=e("lodash"),c=e("../utils"),l=function(){function e(){this.model=n.Model.getInstance(),this.eventHandler=new i.EventHandler,this.selectLabel=a.SelectLabel.getInstance()}return e.prototype.bindEvent=function(e){var t=this;e&&(e.off(),e.on("mousedown",(function(e){t.filter((function(){return t.selectLabel.clickLabels(e)}))})),e.on("mouseover",(function(e){t.filter((function(){var r=e.target,n=t.selectLabel.getMatchedLabels(e),i=t.selectLabel.calcClientRect(r.getBoundingRect(),r.pageNumber);t.eventHandler.postMessage(c.formatPostMsg(o.MessageType.hoverInLabel,{data:s.unionLabels(n),position:i}))}))})),e.on("mouseout",(function(e){t.filter((function(){var r=e.target;if(r){var n=r.pageNumber,i=t.selectLabel.calcClientRect(r.getBoundingRect(),n);t.eventHandler.postMessage(c.formatPostMsg(o.MessageType.hoverOutLabel,{data:[],position:i}))}}))})))},e.prototype.filter=function(e){u.includes([o.EEngineMode.text_nonSelectable,o.EEngineMode.nonText_nonSelectable],this.model.engineMode)||e()},e}();r.FabricEvent=l},{"../event_handler":6,"../interface":9,"../model":21,"../utils":51,"./select_label":15,"./utils":16,lodash:466}],12:[function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};Object.defineProperty(r,"__esModule",{value:!0}),r.LabelManager=void 0;var i=e("../interface"),o=e("./rect_selection"),a=e("./char_selection"),s=e("./utils"),u=e("../model"),c=e("../utils"),l=e("lodash"),h=e("../event_bus"),f=e("./location"),d=e("./select_label"),p=function(){function e(){var e=this;this.model=u.Model.getInstance(),this.rectSelection=new o.RectSelection,this.charSelection=new a.CharSelection,this.eventBus=h.EventBus.getInstance(),this.location=new f.Location,this.selectLabel=d.SelectLabel.getInstance(),this.eventBus.appReady$.subscribe((function(){e.updateLabelMode(e.model.labelMode)})),this.eventBus.pageRendered$.subscribe((function(t){e.renderLabels([t])})),this.eventBus.enableLabeling$.subscribe((function(t){t?e.updateLabelMode(i.ELabelMode.textSlip):e.updateLabelMode(i.ELabelMode.non)}))}return e.prototype.updateEngineMode=function(e){switch(this.model.engineMode=e,e){case i.EEngineMode.text_nonSelectable:case i.EEngineMode.nonText_nonSelectable:this.selectLabel.clearSelectedLabels();break;case i.EEngineMode.text_nonCopy:this.charSelection.clearClipBoardText()}},e.prototype.updateLabelMode=function(e){this.rectSelection.clearTempRect(),this.model.labelMode=e||i.ELabelMode.non,c.updateCanvasCursor(e===i.ELabelMode.textSlip?"text":"default");var t=!1,r=!1;switch(this.model.labelMode){case i.ELabelMode.textSlip:t=!0,r=!1;break;case i.ELabelMode.textFrame:t=!1,r=!0}this.charSelection.enableLabeling(t),this.rectSelection.enableLabeling(r)},e.prototype.setLabels=function(e){this.charSelection.clearTempBufferSelection(),this.rectSelection.clearTempRect();var t=l.cloneDeep(this.model.labels),r=l.differenceBy(e,t,(function(e){return""+e.uuid})),n=l.differenceBy(t,e,(function(e){return""+e.uuid}));this.model.labels=s.parseOriLabels(e),this.renderNewLabels(s.parseOriLabels(r)),this.deleteLabels(n)},e.prototype.forceRender=function(e){var t=l.isArray(e)?e:[e];l.forEach(t,(function(e){var t=c.getFabricCanvas(e);t&&t.clearLabels()})),this.renderLabels(t)},e.prototype.renderLabels=function(e){var t=this,r=l.filter(this.model.labels,(function(t){return l.includes(e,t.pageNumber)}));if(r&&r.length){var n=s.parseToRenderAbleLabels(r);n=l.map(l.cloneDeep(n),(function(e){var r=l.find(t.selectLabel.selectedLabels,(function(t){return t.uuid===e.uuid}));if(r){var n=r.fill,i=r.stroke;e.fill=n||e.fill,e.stroke=i||e.stroke}return e})),s.drawRects(n)}},e.prototype.locateLabel=function(e){this.location.locateLabel(e)},e.prototype.locateText=function(e){this.location.locateText(e)},e.prototype.getSelectedLabels=function(){return l.filter(s.unionLabels(this.selectLabel.selectedLabels),(function(e){return!!e.selected}))},e.prototype.resetLabelsStyle=function(e){var t=l.filter(this.model.labels,(function(t){return l.some(e,(function(e){return e.uuid===t.uuid}))})),r=l.map(t,(function(t){var r=l.filter(e,(function(e){return e.uuid===t.uuid}))[0];return n(n({},t),r)})),i=l.groupBy(r,"pageNumber"),o=function(e){var t=l.toNumber(e),r=c.getFabricCanvas(t);if(!r)return"continue";l.forEach(i[e],(function(e){var t=r.getItemByUuid(e.uuid,"uuid");l.forEach(t,(function(t){return t.set(n({},e))}))})),r.renderAll()};for(var a in i)o(a)},e.prototype.resetSelectedLabels=function(e){this.selectLabel.resetSelectedLabels(e)},e.prototype.deleteLabels=function(e){var t=this;l.forEach(e,(function(e){t.model.labels=l.filter(t.model.labels,(function(t){return t.uuid!==e.uuid}));var r=c.getFabricCanvas(l.toNumber(e.pageNumber));if(r){var n=r.getItemByUuid(e.uuid,"uuid");l.forEach(n,(function(e){return r.remove(e)}))}}))},e.prototype.renderNewLabels=function(e){if(e.length){var t=s.parseToRenderAbleLabels(e);s.drawRects(t)}},e}();r.LabelManager=p},{"../event_bus":5,"../interface":9,"../model":21,"../utils":51,"./char_selection":10,"./location":13,"./rect_selection":14,"./select_label":15,"./utils":16,lodash:466}],13:[function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};Object.defineProperty(r,"__esModule",{value:!0}),r.Location=void 0;var i=e("uuid"),o=e("../interface"),a=e("../dom"),s=e("../utils"),u=e("lodash"),c=e("../model"),l=e("./utils"),h=e("../event_bus"),f=e("../logger").Logger.getInstance(),d=function(){function e(){this.tempLabelId=i.v4(),this.controlTimeout=50,this.firstTimeout=300,this.secondTimeout=600,this.model=c.Model.getInstance(),this.eventBus=h.EventBus.getInstance()}return e.prototype.visiblePage=function(e,t,r){var n=this;switch(t){case o.ILocateMode.PAGE:r.offsetTop=void 0,this.triggerLocatingPage(e);break;case o.ILocateMode.MIDDLE:this.triggerLocatingPage(e),r.offsetTop=a.jDom.window.outerHeight()/2;break;default:this.triggerLocatingPage(e),r.offsetTop=void 0===r.offsetTop?0:r.offsetTop}return new Promise((function(t){u.delay((function(){if(!n.getUnRenderedPages().length)return t(!0);n.loadPage(e).then((function(){return t(!0)}))}),60)}))},e.prototype.triggerLocatingPage=function(e){var t=s.getVisiblePages();u.includes(t,e)||s.scrollToPage(e)},e.prototype.locateLabel=function(e){var t=this;this.tempLocateLabels=e,this.destroyRenderedLabels();var r=e.uuid,n=e.offsetTop,i=!u.has(e,"isHighlight")||e.isHighlight;this.activeLabelId=r;var a=e.mode;if(a=void 0===a?a:o.ILocateMode.TOP,!r)return f.error("uuid 不能为空!");var c=u.filter(this.model.labels,(function(e){return u.get(e,"uuid")===r}));if(!c.length)return f.warn("未找到匹配的高亮标注!");c=u.sortBy(c,"pageNumber");var l={offsetTop:n};this.visiblePage(c[0].pageNumber,a,l).then((function(){var e=t.getRenderedLabels(c)[0],r=e.pageNumber,i=e.index,o=e.top;(!s.isVisible(e)||n>0)&&t.scrollToAnchor({pageNumber:r,index:i,offsetTop:30,top:o})})).then(u.debounce((function(){var e=t.getRenderedLabels(c);t.highlightLabel(e,l.offsetTop,i)}),100))},e.prototype.locateText=function(e){var t=this;this.tempLabelId=e.uuid||this.tempLabelId,e.uuid=this.tempLabelId,e.word=e.word||"";var r=e.index,i=e.mode,o=e.offsetTop;if(!s.findPageByIndex(r))return f.error("下标"+r+" 超出文档范围: "+this.model.articleContent.length);var a={offsetTop:o},c=l.parseOriLabels([n({},e)]);if(!c||!c.length)return f.error("下标: "+r+"和文本: "+e.word+" 超出文档范围: "+this.model.articleContent.length);var h=!u.has(e,"isHighlight")||e.isHighlight;c=u.sortBy(c,"pageNumber"),this.visiblePage(c[0].pageNumber,i,a).then((function(){t.destroyRenderedLabels(),l.drawRects(l.parseToRenderAbleLabels(c));var e=t.getRenderedLabels(c);t.highlightLabel(e,a.offsetTop,h,!0)}))},e.prototype.getRenderedLabels=function(e){var t=[];return u.forEach(e,(function(e){var r=e.pageNumber,n=e.uuid,i=s.getFabricCanvas(r);if(i){var o=i.getItemByUuid(n,"uuid");t.push.apply(t,u.filter(o,(function(e){return!!e})))}})),t},e.prototype.highlightLabel=function(e,t,r,n){var i=this;if(void 0===r&&(r=!0),void 0===n&&(n=!1),e&&e.length){var o=e[0],a=o.pageNumber,u=o.index,c=o.top;(!s.isVisible(o)||t>0)&&this.scrollToAnchor({pageNumber:a,index:u,offsetTop:t,top:c}),this.clearActiveTimer(),this.animateLabels(this.activeLabels,"common",n),r&&(this.activeLabels=e,this.controlTimerId=setTimeout((function(){i.animateLabels(e,"active",n),i.clearTimer("firstTimerId"),i.firstTimerId=setTimeout((function(){i.animateLabels(e,"common",n)}),i.firstTimeout),i.clearTimer("secondTimerId"),i.secondTimerId=setTimeout((function(){i.animateLabels(e,"active",n)}),i.secondTimeout)}),this.controlTimeout))}},e.prototype.scrollToAnchor=function(e){var t,r=e.pageNumber,n=e.index,i=e.offsetTop,o=e.top,a=this.model.outline[r],u=this.model.pagesTextCharsViewInfo[r];if(u){var c=u[n-a.basePageIndex];if(!c)return f.warn("未找到匹配的高亮字符!");t=c.viewport}else{t=[0,o/(this.model.getPageScale(r)*this.model.ZOOM)]}void 0!==i&&s.scrollIntoView({pageNumber:r,viewport:t},{top:-i||0})},e.prototype.loadPage=function(e){var t=this;return new Promise((function(r){if(t.model.engineMode.startsWith("text")&&!t.model.pagesTextCharsViewInfo[e])return t.eventBus.pageCharsLoaded$.subscribe((function(t){u.includes(t,e)&&r(!0)}));var n=t.getUnRenderedPages();if(!n.length)return r(!0);var i=t.eventBus.pageRendered$.asObservable().subscribe((function(e){(n=u.filter(n,(function(t){return e!==t}))).length||(r(!0),i.unsubscribe(),i=null)}))}))},e.prototype.getUnRenderedPages=function(){var e=this;return u.filter(s.getVisiblePages(),(function(t){var r=e.model.getPage(t-1);return!(r&&r.isRendered())})).filter((function(e){return!!e}))},e.prototype.animateLabels=function(e,t,r){var n=this;void 0===r&&(r=!1);var i=u.groupBy(e,"pageNumber");for(var o in i){var a=s.getFabricCanvas(u.toNumber(o));if(!a)return;u.forEach(i[o],(function(e){if("common"===t)e.set({fill:"transparent"});else{var i=r?e:u.find(n.model.labels,(function(t){return t.uuid===u.get(e,"uuid")})),o=l.getActiveLabelStyle(i),a=o.fill,s=o.stroke;if(n.tempLocateLabels&&!r){var c=n.tempLocateLabels,h=c.fill,f=c.stroke;a=h||a,s=f||s}e.set({fill:a,stroke:s})}})),a.renderAll()}},e.prototype.clearActiveTimer=function(){this.clearTimer("secondTimerId"),this.clearTimer("firstTimerId"),this.clearTimer("controlTimerId")},e.prototype.destroyRenderedLabels=function(){var e=this,t=u.groupBy(this.activeLabels,"pageNumber"),r=function(r){var n=s.getFabricCanvas(u.toNumber(r));if(!n)return"continue";var i=u.filter(t[r],(function(t){return t.uuid===e.tempLabelId}));u.forEach(i,(function(e){n.remove(e)}))};for(var n in t)r(n)},e.prototype.clearTimer=function(e){this[e]&&(clearTimeout(this[e]),this[e]=null)},e}();r.Location=d},{"../dom":3,"../event_bus":5,"../interface":9,"../logger":20,"../model":21,"../utils":51,"./utils":16,lodash:466,uuid:646}],14:[function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},i=this&&this.__spreadArrays||function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),i=0;for(t=0;t<r;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)n[i]=o[a];return n};Object.defineProperty(r,"__esModule",{value:!0}),r.RectSelection=void 0;var o=e("jquery"),a=e("uuid"),s=e("lodash"),u=e("../utils"),c=e("../event_bus"),l=e("../event_handler"),h=e("../interface"),f=e("../model"),d=e("./utils"),p=e("../dom"),v=function(){function e(){this.areaPoint=[],this.model=f.Model.getInstance(),this.jViewer=p.jDom.viewer,this.eventBus=c.EventBus.getInstance(),this.eventHandler=new l.EventHandler}return e.prototype.enableLabeling=function(e){var t=this;this.disableLabeling(),e&&(this.labelEventRef=this.eventBus.mouseEvent$.asObservable().subscribe((function(e){t.mouseEventHandler(e)})))},e.prototype.disableLabeling=function(){this.labelEventRef&&this.labelEventRef.unsubscribe()},e.prototype.mouseEventHandler=function(e){if(this.model.labelMode===h.ELabelMode.textFrame){var t=this.jViewer.get(0).getBoundingClientRect().left,r=this.model.scrollState.lastY,n=[e.clientX,e.clientY+r];switch(e.type){case"mousedown":this.setTempRect(),this.areaPoint=i(n),this.jTempRect.animate({left:n[0]-t,top:n[1]},0);break;case"mousemove":if(!this.areaPoint.length||1!==e.buttons)return void(this.areaPoint=[]);this.jTempRect.show(),this.areaPoint[2]=n[0],this.areaPoint[3]=n[1],this.jTempRect.animate({width:this.areaPoint[2]-this.areaPoint[0],height:this.areaPoint[3]-this.areaPoint[1],opacity:.5},0);break;case"mouseup":if(4!==this.areaPoint.length||this.areaPoint[0]>=this.areaPoint[2]||this.areaPoint[1]>=this.areaPoint[3])return this.areaPoint=[],void this.clearTempRect();this.executeLabeling({left:e.clientX,top:e.clientY}),this.areaPoint=[]}}},e.prototype.clearTempRect=function(){this.jViewer.find("#tempRect").remove()},e.prototype.setTempRect=function(){this.clearTempRect(),this.jTempRect=o('<div id="tempRect" class="temp-rect"></div>'),this.jTempRect.hide(),this.jViewer.append(this.jTempRect)},e.prototype.executeLabeling=function(e){var t=this.calcSelectionRects();if(t&&t.length){var r=this.unionLabels(t);this.eventHandler.postMessage(u.formatPostMsg(h.MessageType.startLabel,{data:r,position:e}))}},e.prototype.calcSelectionRects=function(){var e=u.getPageOffset(this.areaPoint[0],this.areaPoint[1]),t=e.pageNumber,r=e.left,n=e.top,i=u.getPageOffset(this.areaPoint[2],this.areaPoint[3]),o=i.pageNumber,a=i.left,c=i.top;if(t&&o){var l=this.model.ZOOM,h=[],f=new Array(o-t+1).fill(t).map((function(e,t){return e+t}));if(1===f.length)h.push({pageNumber:t,rect:[r,n,a,c]});else{var d=this.model.pagesViewport,p=d[t].height*l;h.push.apply(h,[{pageNumber:t,rect:[r,n,a,p]},{pageNumber:o,rect:[r,0,a,c]}]),s.forEach(f.slice(1,-1),(function(e){var t=d[e];h.push({pageNumber:e,rect:[r,0,a,t.height*l]})}))}if(h.length)return this.getMatchedRects(h)}},e.prototype.getMatchedRects=function(e){var t=this,r=this.model.pagesTextCharsViewInfo,i=this.model.outline,o=[];return s.forEach(e,(function(e){var u=e.pageNumber;if(t.model.isDataReady(u)){var c=t.model.getPageScale(u)*t.model.ZOOM,l=s.map(e.rect,(function(e){return e/c})),h=i[u].basePageIndex,f=s.filter(r[u],(function(e,r){if(s.includes(t.model.ignores[u],r+h))return!1;var n=t.getPointCenter(e.viewport),i=n[0],o=n[1];return i>l[0]&&o>l[1]&&i<l[2]&&o<l[3]})),p=t.parseCharToRect(f,h),v=s.map(d.groupCharsToRects(p),(function(e){return n(n({},e),{uuid:a.v4(),pageNumber:u})}));o.push.apply(o,v)}})),o},e.prototype.getPointCenter=function(e){var t=e[0],r=e[1];return[t+e[2]/2,r+e[3]/2]},e.prototype.parseCharToRect=function(e,t){return s.map(e,(function(e){var r=e.viewport,n=r[0],i=r[1],o=r[2],a=r[3],s=e.id,u=e.word;return{left:n,top:i,width:o,height:a,index:t+s-1,word:u}}))},e.prototype.unionLabels=function(e){e=s.sortBy(e,"index"),s.forEach(e,(function(e,t,r){if(0!==t){var n=r[t-1];n.index+n.word.length===e.index&&(e.uuid=n.uuid)}}));var t=s.groupBy(e,"uuid"),r=[];for(var i in t){var o=t[i],a=s.union(s.map(o,(function(e){return e.pageNumber}))).sort((function(e,t){return e-t})),u=s.map(o,(function(e){return e.word})).join("");r.push(n(n({},o[0]),{linkedPageNumbers:a,word:u}))}return r},e}();r.RectSelection=v},{"../dom":3,"../event_bus":5,"../event_handler":6,"../interface":9,"../model":21,"../utils":51,"./utils":16,jquery:465,lodash:466,uuid:646}],15:[function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};Object.defineProperty(r,"__esModule",{value:!0}),r.SelectLabel=void 0;var i=e("jquery"),o=e("../model"),a=e("../interface"),s=e("../utils"),u=e("lodash"),c=e("../event_handler"),l=e("./utils"),h=function(){function e(){this.selectedLabels=[],this.model=o.Model.getInstance(),this.eventHandler=new c.EventHandler}return e.getInstance=function(){return this.instance||(this.instance=new e),this.instance},e.prototype.clickLabels=function(e){var t=e.e,r=t.altKey,n=t.ctrlKey,i=t.metaKey,o=t.shiftKey,u=t.which,c=this.getMatchedLabels(e);this.eventHandler.postMessage(s.formatPostMsg(a.MessageType.selectLabels,{data:l.unionLabels(c),position:this.getMaxPosition(c)||{left:t.clientX,top:t.clientY},metadata:{altKey:r,ctrlKey:n,metaKey:i,shiftKey:o,which:u}}))},e.prototype.getMatchedLabels=function(e){var t=e.target,r=e.e,n=t.pageNumber,i=s.getFabricCanvas(n);if(i){var o=u.filter(i.getObjects(),(function(t){return i.containsPoint(r,t,e.pointer)})).map((function(e){return u.get(e,"uuid")}));return u.filter(this.model.labels,(function(e){return u.includes(o,e.uuid)}))}},e.prototype.clearSelectedLabels=function(){this.setLabelsTransparent(),this.selectedLabels=[]},e.prototype.calcClientRect=function(e,t){var r=this.model.ZOOM,n=e.left*r,o=e.top*r,a=e.width*r,s=e.height*r,u=["position:absolute;opacity:0.01","left:"+n+"px","top:"+o+"px","width:"+a+"px","height:"+s+"px"].join(";"),c=i('<div style="'+u+'"></div>');i("[data-page-number="+t+"]").append(c);var l=c.get(0).getBoundingClientRect();return c.remove(),{left:l.x,top:l.y,width:a,height:s}},e.prototype.resetSelectedLabels=function(e){if(this.setLabelsTransparent(),e&&e.length){var t=u.filter(this.model.labels,(function(t){return u.some(e,(function(e){return e.uuid===t.uuid}))}));this.selectedLabels=u.map(t,(function(t){var r=u.find(e,(function(e){return e.uuid===t.uuid}));return n(n(n({},t),r),{selected:!0})})),this.resetLabelsStyle()}},e.prototype.setLabelsTransparent=function(){this.selectedLabels=u.map(this.selectedLabels,(function(e){return n(n({},e),{fill:"transparent"})})),this.resetLabelsStyle()},e.prototype.resetLabelsStyle=function(){var e=u.groupBy(this.selectedLabels,"pageNumber"),t=function(t){var r=u.toNumber(t),n=s.getFabricCanvas(r);if(!n)return"continue";u.forEach(e[t],(function(e){var t=n.getItemByUuid(e.uuid,"uuid");if(t&&t.length){var r=e.fill,i=e.stroke;u.forEach(t,(function(e){return e.set({fill:r,stroke:i})}))}})),n.renderAll()};for(var r in e)t(r)},e.prototype.getMaxPosition=function(e){var t=l.parseToRenderAbleLabels(e),r=u.maxBy(t,(function(e){return Math.floor(e.left+e.width)}));if(r){var n=r.left,i=r.top,o=r.width,a=r.height,s=r.pageNumber,c=this.model.ZOOM||1;return this.calcClientRect({left:n/c,top:i/c,width:o/c,height:a/c},s)}},e}();r.SelectLabel=h},{"../event_handler":6,"../interface":9,"../model":21,"../utils":51,"./utils":16,jquery:465,lodash:466}],16:[function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};Object.defineProperty(r,"__esModule",{value:!0}),r.getActiveLabelStyle=r.parseToRenderAbleLabels=r.parseOriLabels=r.drawRects=r.buildGroupedRect=r.groupCharsToRects=r.getPageMatchedRects=r.calcPagesSelectionRects=r.unionLabels=void 0;var i=e("fabric"),o=e("color"),a=e("lodash"),s=e("../interface"),u=e("../utils"),c=e("../model"),l=e("./fabric_event"),h=e("../logger").Logger.getInstance(),f=c.Model.getInstance(),d=new l.FabricEvent,p=function(e,t,r){var n=e.shift(),i=e.pop(),o={};if(!i){var s=v(n,t,r);return o[n]=g(s),o}var u=i!==n?new Array(i-n-1).fill(n+1).map((function(e,t){return e+t})):[];u&&a.forEach(u,(function(e){var t=f.outline[e].pageCharsCount,r=v(e,0,t);o[e]=g(r)}));var c=f.outline[n].pageCharsCount,l=v(n,t,c);o[n]=g(l);var h=v(i,0,r);return o[i]=g(h),o};r.calcPagesSelectionRects=p;var v=function(e,t,r){if(f.isDataReady(e)){var n=f.outline[e].basePageIndex+t,i=f.pagesTextCharsViewInfo[e].slice(t,r+1);return i=a.filter(i,(function(t,r){return!a.includes(f.ignores[e],n+r)})),a.map(i,(function(t,r){var i=t.viewport;return{left:i[0],top:i[1],width:i[2],height:i[3],word:t.word,index:n+r,pageNumber:e}})).filter((function(e){return!!e}))}};r.getPageMatchedRects=v;var g=function(e){if(!e||!e.length)return[];var t=a.cloneDeep(a.groupBy(e,(function(e){return Math.floor(e.top/6)}))),r={},n=function(e){var n,i=a.toNumber(e),o=a.keys(r).map((function(e){return a.toNumber(e)})),s=a.find(o,(function(e){return Math.abs(e-i)<f.SAME_LINE_MAX_OFFSET}));s?(n=r[s]).push.apply(n,t[e]):r[i]=t[e]};for(var i in t)n(i);return a.flatten(a.map(r,(function(e){return b(e,e[0],e.slice(-1)[0])})))};r.groupCharsToRects=g;var b=function(e,t,r){var n=a.minBy(e,(function(e){return e.top})),i=a.maxBy(e,(function(e){return e.top+e.height})),o=a.map(e,(function(e){return a.get(e,"word","")})).join(""),s=f.getPageScale(t.pageNumber)*f.ZOOM;return{left:t.left*s,top:n.top*s,width:(r.left-t.left+r.width)*s,height:(i.top-n.top+i.height)*s,index:t.index,word:o,pageNumber:t.pageNumber}};r.buildGroupedRect=b;r.drawRects=function(e){var t=f.pagesView,r=a.groupBy(e,"pageNumber"),o=function(e){var o=a.toNumber(e),s=t[o-1];if(!s||!s.isRendered())return"continue";var c=u.getFabricCanvas(o);if(!c)return"continue";a.forEach(r[e],(function(e){var t=new i.fabric.Rect(n(n({},f.labelStyle),e));c.add(t),d.bindEvent(t)}))};for(var s in r)o(s)};var m=function(e,t,r,n){var i=a.cloneDeep(e);if(t>f.pagesCount)return h.error("标注数据非法,下标加文本长度超过文档总长度!",e);var o=f.outline[t],s=o.basePageIndex,u=o.pageCharsCount;i.index=s,i.word=r.slice(0,u),i.pageNumber=t,i.word=r,n.push(i),r.length>u&&m(i,t+1,r.slice(u),n)};r.parseOriLabels=function(e){var t=[],r=f.outline;return a.forEach(e,(function(e){var n=[],i=e.index,o=e.word,c=e.type,l=a.toNumber(e.pageNumber)||u.findPageByIndex(i);if(e.pageNumber=l,c===s.ERenderType.area)return t.push(e);if(!l)return h.error("标注数据下标不合法!",e);var f=a.cloneDeep(e),d=r[l],p=d.basePageIndex,v=d.pageCharsCount;if(f.type=f.type||s.ERenderType.text,n.push(f),i+o.length>p+v){var g=p+v-i;m(f,l+1,o.slice(g),n)}var b=a.union(n.map((function(e){return a.toNumber(e.pageNumber)})).sort((function(e,t){return e-t})));n=a.map(n,(function(e){return a.assign(e,{linkedPageNumbers:b})})),t.push.apply(t,n)})),t};r.parseToRenderAbleLabels=function(e){var t=[];return e&&e.length?(a.forEach(e,(function(e){var r=e.index,i=e.word,o=e.pageNumber;if(e.type===s.ERenderType.area){var u=y(e);return t.push(u)}if(f.isDataReady(o))if(i.length){var c=r-f.outline[o].basePageIndex,l=c+i.length-1,h=a.flatten(a.values(p([o],c,l)));t.push.apply(t,a.map(h,(function(t){return n(n({},e),t)})))}else{var d=_(e);t.push(d)}})),t):t};var y=function(e){var t=a.toNumber(e.pageNumber)||u.findPageByIndex(e.index);if(t){var r=f.getPageScale(t)*f.ZOOM,i=e.left,o=e.top,s=e.width,c=e.height;if(i&&o&&s&&c)return n(n({},e),{left:i*r,top:o*r,width:s*r,height:c*r});h.error("标注数据不合法",e)}},_=function(e){var t=e.index,r=e.pageNumber,i=e.direction,o=t-f.outline[r].basePageIndex,s=f.pagesTextCharsViewInfo[r][o],u=f.getPageScale(r)*f.ZOOM,c=a.map(s.viewport,(function(e){return e*u})),l=c[0],h=c[1],d=c[2],p=c[3],v="left"===i?-f.EMPTY_LABEL_SIZE:"right"===i?d:0,g=Math.max(p,15);return a.assign(n(n({},e),{left:l+v,top:h,width:f.EMPTY_LABEL_SIZE,height:g}))};r.getActiveLabelStyle=function(e){var t=e.stroke,r=e.word?.3:1,n="transparent";try{n="rgba("+o(t).color.join(",")+","+r+")"}catch(e){}return{fill:n,stroke:t}};r.unionLabels=function(e){var t=a.groupBy(e,"uuid"),r=[];for(var i in t){var o=a.map(t[i],(function(e){return e.word})).join("");r.push(n(n({},t[i][0]),{word:o}))}return r}},{"../interface":9,"../logger":20,"../model":21,"../utils":51,"./fabric_event":11,color:126,fabric:458,lodash:466}],17:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Layer=void 0;var n=e("./dom"),i=e("./model"),o=e("./utils"),a=e("lodash"),s=e("./page"),u=e("./logger").Logger.getInstance(),c=function(){function e(){this.model=i.Model.getInstance(),this.container=n.jDom.viewer}return e.getInstance=function(){return this.instance||(this.instance=new e),this.instance},e.prototype.render=function(){this.clear(),this.initPageViewport(),this.initPageLayer()},e.prototype.initPageViewport=function(){this.model.CONTAINER_HEIGHT=n.jDom.viewBox.height();var e=n.jDom.viewBox.get(0),t=e.getBoundingClientRect(),r={width:t.width-2*this.model.SCROLL_BAR_PADDING,height:t.height,left:t.left,top:t.top};this.container.css({width:r.width*this.model.ZOOM}),this.model.SCROLL_BAR_WIDTH=e.offsetWidth-e.clientWidth;var i=o.generatePageNumbers(this.model.pagesCount),s=this.model.outline,c=this.model.pagesViewport;a.forEach(i,(function(e){var t=a.get(s,e);if(!a.get(t,"width"))return u.error("第"+e+"页文档摘要信息错误: ",t);var n=r.width/t.width;c[e]={pageNumber:e,width:r.width,height:t.height*r.width/t.width,left:r.left,top:r.top,scale:n}}))},e.prototype.initPageLayer=function(){this.container.append(this.generatePagesLayer());var e=o.generatePageNumbers(this.model.pagesCount);this.model.pagesView=a.map(e,(function(e){return new s.Page(e)}))},e.prototype.generatePagesLayer=function(){var e=this,t=document.createDocumentFragment(),r=o.generatePageNumbers(this.model.pagesCount),n=this.model.pagesViewport;return a.forEach(r,(function(r){var i=a.get(n,r);if(!a.get(i,"width"))return u.error("第"+r+"页视口信息获取失败: ",i);var o=document.createElement("div");o.style.width=i.width*e.model.ZOOM+"px",o.style.height=i.height*e.model.ZOOM+"px",o.setAttribute("data-page-number",""+r),o.classList.add("page"),t.appendChild(o)})),t},e.prototype.clear=function(){a.forEach(this.model.pagesView,(function(e){return e.destroy()})),this.model.pagesViewport={},this.container.empty()},e}();r.Layer=c},{"./dom":3,"./logger":20,"./model":21,"./page":23,"./utils":51,lodash:466}],18:[function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},i=this&&this.__spreadArrays||function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),i=0;for(t=0;t<r;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)n[i]=o[a];return n};Object.defineProperty(r,"__esModule",{value:!0}),r.Loader=void 0;var o=e("./model"),a=e("./utils"),s=e("./event_handler"),u=e("./interface"),c=e("./event_bus"),l=e("lodash"),h=e("./logger"),f=e("./pdf/pdf"),d=h.Logger.getInstance();f.workerSrc="./pdf/pdf.worker.js",f.GlobalWorkerOptions.workerSrc="./pdf/pdf.worker.js";var p=function(){function e(){this.requestBuffer=[],this.model=o.Model.getInstance(),this.eventBus=c.EventBus.getInstance(),this.eventHandler=new s.EventHandler}return e.prototype.loadDocContents=function(e){var t=this;return this.model.engineMode===u.EEngineMode.nonText_preview||(e=e||a.generatePageNumbers(this.model.PRE_LOAD_NUM),(e=l.filter(e,(function(e){return!l.includes(t.requestBuffer,e)}))).length&&(this.requestBuffer=l.union(i(this.requestBuffer,e)),this.eventBus.loadContents$.next(e))),Promise.resolve(!0)},e.prototype.loadDocInstance=function(e){var t=this;return this.model.pdfUrl=e,new Promise((function(e,r){var n=f.getDocument({url:t.model.pdfUrl,cMapUrl:"./pdf/cmaps/",cMapPacked:!0,verbosity:-1});n.onProgress=function(e){var r=e.loaded,n=e.total,i=100*Math.min(r/n,1);t.eventBus.loadingProgress$.next({progress:i.toFixed(2)+"%",total:(n/1024/1024).toFixed(2)+"M"})},n.promise.then((function(r){return t.model.pdfDoc=r,t.model.pagesCount=r.numPages,l.keys(t.model.outline).length?e(!0):l.startsWith(t.model.engineMode,"nonText")?t.initDocOutline(e):void e(!0)}),(function(e){t.eventHandler.postMessage(a.formatPostMsg(u.MessageType.pdfLoadFailed,{msg:e})),d.error("pdf文档加载失败:"+t.model.pdfUrl,e),r(!1)}))}))},e.prototype.initDocOutline=function(e){var t=this;this.model.pdfDoc.getPage(1).then((function(r){t.model.outline&&l.keys(t.model.outline).length||(t.model.outline=t.genDocOutline(r)),e(!0)}))},e.prototype.genDocOutline=function(e){for(var t={},r=this.model.pagesCount,i=e.getViewport({scale:1}),o={num:1,scale:i.scale,rotation:i.rotation,offsetX:i.offsetX,offsetY:i.offsetY,width:l.get(i,"width"),height:l.get(i,"height"),basePageIndex:0,pageCharsCount:0},a=1;a<=r;a++)t[a]=n(n({},o),{num:a});return t},e}();r.Loader=p},{"./event_bus":5,"./event_handler":6,"./interface":9,"./logger":20,"./model":21,"./pdf/pdf":24,"./utils":5