Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/viewer/dist/ |
Upload File : |
this.BX=this.BX||{};this.BX.UI=this.BX.UI||{};(function(e,t,i){"use strict";let s=e=>e,n;const o=t.Reflection.namespace("BX.UI.Viewer.Item");const r=t.Reflection.namespace("BX.util");const a=t.Reflection.namespace("BX.Promise");const l=1.4;const h=.5;const c=3;const d=3;var u=babelHelpers.classPrivateFieldLooseKey("loadingLibraryPromise");var g=babelHelpers.classPrivateFieldLooseKey("pageNumber");var m=babelHelpers.classPrivateFieldLooseKey("loadingDocumentPromise");var p=babelHelpers.classPrivateFieldLooseKey("resetState");class f extends o{constructor(e){super(e);Object.defineProperty(this,p,{value:v});Object.defineProperty(this,g,{writable:true,value:1});Object.defineProperty(this,m,{writable:true,value:null});this.pdfPages={};this.scale=l;this.pdfRenderedPages={};this.lastRenderedPdfPage=0;this.extraActions=null;this.disableAnnotationLayer=true;e=e||{};this.scale=e.scale||l}setPropertiesByNode(e){super.setPropertiesByNode(e);this.disableAnnotationLayer=e.dataset.hasOwnProperty("disableAnnotationLayer")?true:this.disableAnnotationLayer}applyReloadOptions(e){this.controller.unsetCachedData(this.src)}listContainerModifiers(){const e=["ui-viewer-document"];if(this.controller.stretch){e.push("--stretch")}return e}setSrc(e){this.src=e;this._pdfSrc=null;return babelHelpers.classPrivateFieldLooseBase(this,p)[p]()}setPdfSource(e){this._pdfSrc=e;return babelHelpers.classPrivateFieldLooseBase(this,p)[p]()}loadLibrary(){if(babelHelpers.classPrivateFieldLooseBase(f,u)[u]!==null){return babelHelpers.classPrivateFieldLooseBase(f,u)[u]}babelHelpers.classPrivateFieldLooseBase(f,u)[u]=new Promise(((e,i)=>{t.Runtime.loadExtension("ui.pdfjs").then((()=>{if(!pdfjsLib.GlobalWorkerOptions.workerSrc){pdfjsLib.GlobalWorkerOptions.workerSrc="/bitrix/js/ui/pdfjs/pdf.worker.js"}babelHelpers.classPrivateFieldLooseBase(f,u)[u]=null;e()})).catch(i)}));return babelHelpers.classPrivateFieldLooseBase(f,u)[u]}loadData(){const e=new a;if(this._pdfSrc){this.loadLibrary().then((()=>{e.fulfill(this)}));return e}console.log("loadData pdf");const i=t.ajax.promise({url:t.Uri.addParam(this.src,{ts:"bxviewer"}),method:"GET",dataType:"json",headers:[{name:"BX-Viewer-src",value:this.src},{name:"BX-Viewer",value:"document"}]});i.then((i=>{if(!i||!i.data){this.isTransforming=false;e.reject({item:this,message:t.Loc.getMessage("JS_UI_VIEWER_ITEM_TRANSFORMATION_ERROR_1").replace("#DOWNLOAD_LINK#",this.getSrc()),type:"error"});return e}if(i.data.hasOwnProperty("pullTag")){if(!this.isTransforming){this.transformationPromise=e;this.registerTransformationHandler(i.data.pullTag)}this.isTransforming=true}if(i.data.data&&i.data.data.src){this.isTransforming=false;this._pdfSrc=i.data.data.src;this.loadLibrary().then((()=>{e.fulfill(this)}))}}));return e}render(){this.controller.showLoading();this.contentNode=t.Dom.create("div",{props:{className:"ui-viewer-item-document-content",tabIndex:2208}});t.Event.bind(this.contentNode,"scroll",t.Runtime.throttle(this.handleScrollDocument.bind(this),100));return this.contentNode}renderExtraActions(){if(this.extraActions===null){this.extraActions=t.Tag.render(n||(n=s` <div class="ui-viewer-extra-actions"> <div class="ui-viewer-action-btn" onclick="${0}" title="${0}" > <div class="ui-icon-set --zoom-out ui-viewer-action-btn-icon"></div> </div> <div class="ui-viewer-action-btn" onclick="${0}" title="${0}" > <div class="ui-icon-set --zoom-in ui-viewer-action-btn-icon"></div> </div> <div class="ui-viewer-action-btn" onclick="${0}" title="${0}" > <div class="ui-icon-set --print-1 ui-viewer-action-btn-icon"></div> </div> </div> `),this.zoomOut.bind(this),t.Text.encode(t.Loc.getMessage("JS_UI_VIEWER_SINGLE_DOCUMENT_SCALE_ZOOM_OUT")),this.zoomIn.bind(this),t.Text.encode(t.Loc.getMessage("JS_UI_VIEWER_SINGLE_DOCUMENT_SCALE_ZOOM_IN")),this.print.bind(this),t.Text.encode(t.Loc.getMessage("JS_UI_VIEWER_ITEM_ACTION_PRINT")))}return this.extraActions}zoomIn(){const e=Math.min(c,Math.max(h,this.scale*1.1));void this.updateScale(e).then((()=>{this.controller.adjustControlsSize(this.getContentWidth())}))}zoomOut(){const e=Math.min(c,Math.max(h,this.scale*.9));void this.updateScale(e).then((()=>{this.controller.adjustControlsSize(this.getContentWidth())}))}getFirstDocumentPageHeight(){if(this._height){return Promise.resolve(this._height)}return new Promise((e=>{this.getDocumentPage(this.pdfDocument,1).then((t=>{const i=t.getViewport(this.scale);this._height=i.height;e(this._height)}))}))}handleScrollDocument(e){this.getFirstDocumentPageHeight().then((e=>{const t=this.contentNode.scrollHeight-this.contentNode.scrollTop-this.contentNode.clientHeight;if(t<e*d&&this.pdfDocument.numPages>this.lastRenderedPdfPage){for(let e=this.lastRenderedPdfPage+1;e<=Math.min(this.pdfDocument.numPages,this.lastRenderedPdfPage+d);e++){this.renderDocumentPage(this.pdfDocument,e)}}this.setPageNumber(this.contentNode.scrollTop/e+1)}))}loadDocument(){if(this.pdfDocument){return Promise.resolve(this.pdfDocument)}if(babelHelpers.classPrivateFieldLooseBase(this,m)[m]){return babelHelpers.classPrivateFieldLooseBase(this,m)[m]}babelHelpers.classPrivateFieldLooseBase(this,m)[m]=new Promise((e=>{this.loadData().then((()=>{pdfjsLib.getDocument(this._pdfSrc).promise.then((t=>{this.pdfDocument=t;babelHelpers.classPrivateFieldLooseBase(this,m)[m]=null;e(this.pdfDocument)}))}))}));return babelHelpers.classPrivateFieldLooseBase(this,m)[m]}getDocumentPage(e,t){if(this.pdfPages[t]){return Promise.resolve(this.pdfPages[t])}return new Promise((i=>{e.getPage(t).then((e=>{this.pdfPages[t]=e;i(this.pdfPages[t])}))}))}renderDocumentPage(e,i){const s=this.pdfRenderedPages[i];if(s instanceof Promise){return s}else if(!!s){return Promise.resolve(s)}this.pdfRenderedPages[i]=new Promise((s=>{this.getDocumentPage(e,i).then((e=>{const n=this.createCanvasPage();const o=e.getViewport(this.scale);n.height=o.height;n.width=o.width;const r=e.render({canvasContext:n.getContext("2d"),viewport:o});if(!this.disableAnnotationLayer){r.then((function(){return e.getAnnotations()})).then((function(i){const s=t.Dom.create("div",{props:{className:"ui-viewer-pdf-annotation-layer"}});t.Dom.insertAfter(s,n);t.Dom.adjust(s,{style:{margin:"-"+n.offsetHeight+"px auto 0 auto",height:n.height+"px",width:n.width+"px"}});pdfjsLib.AnnotationLayer.render({viewport:o.clone({dontFlip:true}),linkService:pdfjsLib.SimpleLinkService,div:s,annotations:i,page:e})}))}r.then((function(){return e.getTextContent()})).then((function(e){const i=t.Dom.create("div",{props:{className:"ui-viewer-pdf-text-layer"}});t.Dom.insertAfter(i,n);t.Dom.adjust(i,{style:{margin:"-"+n.offsetHeight+"px auto 0 auto",height:n.height+"px",width:n.width+"px"}});pdfjsLib.renderTextLayer({textContent:e,container:i,viewport:o,textDivs:[]})}));this.lastRenderedPdfPage=Math.max(i,this.lastRenderedPdfPage);if(i===1){this.firstWidthDocumentPage=n.width}r.then((()=>{this.controller.hideLoading();this.pdfRenderedPages[i]=e;s(e,n)}))}))}));return this.pdfRenderedPages[i]}createCanvasPage(){const e=document.createElement("canvas");e.className="ui-viewer-document-page-canvas";this.contentNode.appendChild(e);return e}getContentWidth(){return new Promise((e=>{this.loadDocument().then((()=>{this.renderDocumentPage(this.pdfDocument,1).then((t=>{const i=t.getViewport(this.scale).width;const s=this.contentNode.offsetWidth-this.contentNode.clientWidth;e(i+s)}))}))}))}afterRender(){this.loadDocument().then((e=>{for(let i=1;i<=Math.min(e.numPages,d);i++){if(i===1){this._handleControls=this.controller.handleVisibleControls.bind(this.controller);this.controller.enableReadingMode(true);t.Runtime.throttle(t.Event.bind(window,"mousemove",this._handleControls),20)}this.renderDocumentPage(e,i)}}))}beforeHide(){this.pdfRenderedPages={};t.Event.unbind(window,"mousemove",this._handleControls);if(this.printer){this.hidePrintProgress();this.printer.destroy()}}updatePrintProgressMessage(e,i){const s=Math.round(e/i*100);this.controller.setTextOnLoading(t.Loc.getMessage("JS_UI_VIEWER_ITEM_PREPARING_TO_PRINT").replace("#PROGRESS#",s))}showPrintProgress(e,t){this.contentNode.style.opacity=.7;this.contentNode.style.filter="blur(2px)";this.controller.showLoading({zIndex:1});this.updatePrintProgressMessage(e,t)}hidePrintProgress(){this.contentNode.style.opacity=null;this.contentNode.style.filter=null;this.controller.hideLoading()}print(){if(!this.pdfDocument){console.warn("Where is pdf document to print?");return}this.showPrintProgress(0,this.pdfDocument.numPages);this.printer=new w({pdf:this.pdfDocument});this.printer.init().then((()=>{this.printer.prepare({onProgress:this.updatePrintProgressMessage.bind(this)}).then((()=>{this.hidePrintProgress();this.printer.performPrint()}))}))}handleKeyPress(e){if(!this.isLoaded){return false}if(["PageDown","PageUp","ArrowDown","ArrowUp"].includes(e.code)){BX.focus(this.contentNode);return false}if(e.code==="Equal"){e.preventDefault();e.stopPropagation();this.zoomIn();return true}if(e.code==="Minus"){e.preventDefault();e.stopPropagation();this.zoomOut();return true}return false}getScale(){return this.scale}setScale(e){this.scale=e;return this}updateScale(e){e=Number(e);if(this.scale===e){return Promise.resolve()}const i=e/this.scale;const s=(e,i,s)=>{const n=i[e.pageIndex];if(!n){return Promise.resolve()}return new Promise((i=>{const o=e.getViewport(this.scale);n.width=o.width;n.height=o.height;e.render({canvasContext:n.getContext("2d"),viewport:o}).then((()=>{const r=s[e.pageIndex];if(r){t.Dom.clean(r);t.Dom.adjust(r,{style:{margin:"-"+n.offsetHeight+"px auto 0 auto",height:o.height+"px",width:o.width+"px"}});e.getTextContent().then((e=>{pdfjsLib.renderTextLayer({textContent:e,container:r,viewport:o,textDivs:[]});i()}))}else{i()}}))}))};const n=[];this.scale=e;const o=Array.from(this.contentNode.querySelectorAll('canvas[class="ui-viewer-document-page-canvas"]'));const r=Array.from(this.contentNode.querySelectorAll('div[class="ui-viewer-pdf-text-layer"]'));Object.values(this.pdfRenderedPages).forEach((e=>{if(e instanceof Promise){n.push(new Promise((t=>{e.then((e=>{s(e,o,r).then(t)}))})))}else{n.push(s(e,o,r))}}));const a=this.contentNode.scrollTop*i;this.contentNode.scrollTo(this.contentNode.scrollLeft,a);return Promise.all(n)}getPagesNumber(){if(!this.pdfDocument){return null}return t.Text.toInteger(this.pdfDocument._pdfInfo.numPages)}scrollToPage(e){const t=this.setPageNumber(e)!==null;if(!t){return Promise.resolve()}return new Promise((t=>{const i=[];for(let t=1;t<e;t++){i.push(this.renderDocumentPage(this.pdfDocument,t))}Promise.all(i).then((e=>{let i=0;e.forEach((e=>{const t=e.getViewport(this.scale);i+=t.height+7}));this.contentNode.scrollTo(this.contentNode.scrollLeft,i);t()}))}))}getPageNumber(){return babelHelpers.classPrivateFieldLooseBase(this,g)[g]}setPageNumber(e){e=t.Text.toInteger(e);if(e<0){e=1}let s=this.getPagesNumber();if(!s){s=1}if(e>s){e=s}if(babelHelpers.classPrivateFieldLooseBase(this,g)[g]!==e){babelHelpers.classPrivateFieldLooseBase(this,g)[g]=e;i.EventEmitter.emit(this,"BX.UI.Viewer.Item.Document:updatePageNumber");return this}return null}}function v(){this.pdfRenderedPages={};this.lastRenderedPdfPage=null;this.pdfDocument=null;this.pdfPages={};this.setPageNumber(1);if(this.printer){this.hidePrintProgress();this.printer.destroy()}}Object.defineProperty(f,u,{writable:true,value:null});const P=1;class w{constructor(e){e=e||{};this.pdf=e.pdf;this.iframe=null;this.documentOverview={}}init(){if(this.documentOverview){return Promise.resolve(this.documentOverview)}return new Promise((e=>{this.pdf.getPage(1).then((t=>{const i=t.getViewport(P);this.documentOverview={width:i.width,height:i.height,rotation:i.rotation};e(this.documentOverview)}))}))}prepare(e){e=e||{};const i=this.pdf.numPages;let s=-1;const n=new a;let o=null;if(t.Type.isFunction(e.onProgress)){o=e.onProgress}this.frame=this.createIframe();const r=()=>{if(++s>=i){console.log("finish",this.frame.contentWindow.document);setTimeout((()=>{n.fulfill()}),1e3);return}this.renderPage(s+1).then((function(){if(o){o(s+1,i)}r()}))};r();return n}renderPage(e){return this.pdf.getPage(e).then((function(e){const t=document.createElement("canvas");const i=e.getViewport(1);const s=150;const n=s/72;t.width=Math.floor(i.width*n);t.height=Math.floor(i.height*n);const o=96/72;const r=Math.floor(i.width*o)+"px";const a=Math.floor(i.height*o)+"px";const l=t.getContext("2d");l.save();l.fillStyle="rgb(255, 255, 255)";l.fillRect(0,0,t.width,t.height);l.restore();const h={canvasContext:l,transform:[n,0,0,n,0,0],viewport:e.getViewport(1,i.rotation),intent:"print"};return e.render(h).promise.then((function(){return{scratchCanvas:t,width:r,height:a}}))})).then((e=>{const t=document.createElement("img");t.style.width=e.width;t.style.height=e.height;const i=e.scratchCanvas;if("toBlob"in i&&!this.disableCreateObjectURL){i.toBlob((function(e){t.src=URL.createObjectURL(e)}))}else{t.src=i.toDataURL()}const s=document.createElement("div");s.appendChild(t);this.frame.contentWindow.document.body.appendChild(s)}))}destroy(){if(this.frame){t.Dom.remove(this.frame)}}createIframe(){const e=document.createElement("iframe");e.src="about:blank";e.name="document-print-frame";e.style.display="none";document.body.appendChild(e);const t=e.contentWindow;const i=t.document;i.open();i.write("<html><head>");const s=this.getDocumentOverview();let n="<style>";n+="html, body { background: #fff !important; height: 100%; }";n+="@supports ((size:A4) and (size:1pt 1pt)) {"+"@page { size: "+s.width+"pt "+s.height+"pt;}"+"}";n+="#ad{ display:none;}";n+="#leftbar{ display:none;}";n+="</style>";i.write(n);i.write("</head><body>");i.write("</body></html>");i.close();return e}performPrint(){this.frame.contentWindow.focus();this.frame.contentWindow.print()}getDocumentOverview(){return this.documentOverview}}let b=e=>e,C,D,L,_,I,N,y,S,E;const x=t.Reflection.namespace("BX.UI.Viewer.InlineController");class T extends x{bindEvents(){if(!this.eventsAlreadyBinded&&this.getDocumentItem()){i.EventEmitter.subscribe(this.getDocumentItem(),"BX.UI.Viewer.Item.Document:updatePageNumber",(()=>{this.getListingControl().update(this.getDocumentItem().getPageNumber())}))}super.bindEvents()}getDocumentItem(){return this.items[0]}updateControls(){super.updateControls();this.updateListingControl()}getViewerContainer(){if(!this.layout.container){this.layout.inner=t.Tag.render(C||(C=b`<div class="ui-viewer__single-document--container ">${0}</div>`),this.getItemContainer());if(this.stretch){t.Dom.addClass(this.layout.inner,"--stretch")}this.layout.container=t.Tag.render(D||(D=b`<div class="">${0}${0}</div>`),this.layout.inner,this.getControlsContainer())}return this.layout.container}getControlsContainer(){if(!this.layout.controlsContainer){return t.Tag.render(L||(L=b`<div class="ui-viewer__single-document--controls"> ${0} ${0} </div>`),this.getListingControl().render(),this.getScaleControl().render())}return this.layout.controlsContainer}getListingControl(){if(!this.listingControl){this.listingControl=new O;this.listingControl.subscribe("pageUpdated",(()=>{var e;(e=this.getDocumentItem())==null?void 0:e.scrollToPage(this.listingControl.getCurrent())}));this.updateListingControl()}return this.listingControl}getScaleControl(){if(!this.scaleControl){this.scaleControl=new B;this.scaleControl.subscribe("scaleUpdated",(()=>{var e;(e=this.getDocumentItem())==null?void 0:e.updateScale(this.scaleControl.getScale())}))}return this.scaleControl}updateListingControl(){const e=this.getDocumentItem();if(e){e.loadDocument().then((()=>{this.listingControl.update(1,e.getPagesNumber())}))}}setScale(e){var t;(t=this.getDocumentItem())==null?void 0:t.setScale(e);this.getScaleControl().update(e);return this}setPdfSource(e){var t;(t=this.getDocumentItem())==null?void 0:t.setPdfSource(e);return this}print(){var e;(e=this.getDocumentItem())==null?void 0:e.print()}}class O extends i.EventEmitter{constructor(e=1,i=1){super();this.container=null;this.pagesContainer=null;this.setEventNamespace("BX.UI.Viewer.SingleDocumentController.ListingControl");this.pages=t.Text.toInteger(i);this.current=t.Text.toInteger(e);this.arrowClickHandler=this.handleArrowClick.bind(this)}update(e,i=null){e=t.Text.toInteger(e);i=t.Text.toInteger(i);if(i>=1){this.pages=i}if(e<1){e=1}if(e>this.pages){e=this.pages}if(e!==this.current){this.current=e;this.emit("pageUpdated",{page:this.current})}this.adjust()}adjust(){this.pagesContainer.innerHTML=this.renderPages()}getCurrent(){return this.current}render(){if(!this.container){this.pagesContainer=t.Tag.render(_||(_=b`<div class="ui-viewer__single-document--listing-info"> ${0} </div>`),this.renderPages());this.container=t.Tag.render(I||(I=b`<div class="ui-viewer__single-document--listing"> <div class="ui-viewer__single-document--listing--btn --prev" onclick="${0}"></div> ${0} <div class="ui-viewer__single-document--listing--btn --next" onclick="${0}"></div> </div>`),this.arrowClickHandler,this.pagesContainer,this.arrowClickHandler)}return this.container}renderPages(){return t.Loc.getMessage("JS_UI_VIEWER_SINGLE_DOCUMENT_LISTING_PAGES").replace("#CURRENT#",this.current).replace("#ALL#",this.pages)}handleArrowClick(e){if(e.target.classList.contains("--prev")){this.update(this.current-1)}if(e.target.classList.contains("--next")){this.update(this.current+1)}}}const R=.5;const M=3;class B extends i.EventEmitter{constructor(){super();this.scale=R;this.container=null;this.zoomInContainer=null;this.zoomOutContainer=null;this.zoomValueNode=null;this.scale=R;this.setEventNamespace("BX.UI.Viewer.SingleDocumentController.ScaleControl");this.scaleClickHandler=this.handleScaleClick.bind(this)}getScale(){return this.scale}setDefaultScale(){this.update(R)}adjust(){if(this.scale<=R){t.Dom.hide(this.getZoomOutContainer())}else{t.Dom.show(this.getZoomOutContainer())}if(this.scale>=M){t.Dom.hide(this.getZoomInContainer())}else{t.Dom.show(this.getZoomInContainer())}this.getZoomValueNode().innerText=Math.round(this.scale*100)}update(e){e=t.Text.toNumber(e);if(e<R){e=R}if(e>M){e=M}if(e!==this.scale){this.scale=e;this.emit("scaleUpdated");this.adjust()}}render(){if(!this.container){this.container=t.Tag.render(N||(N=b`<div class="ui-viewer__single-document--zoom"> ${0} ${0} ${0} </div>`),this.getZoomOutContainer(),this.getZoomValueNode(),this.getZoomInContainer());this.adjust()}return this.container}getZoomInContainer(){if(!this.zoomInContainer){this.zoomInContainer=t.Tag.render(y||(y=b`<div class="ui-viewer__single-document--zoom-control --zoom-in" onclick="${0}" > <!-- ${0}--> </div>`),this.scaleClickHandler,t.Loc.getMessage("JS_UI_VIEWER_SINGLE_DOCUMENT_SCALE_ZOOM_IN"))}return this.zoomInContainer}getZoomOutContainer(){if(!this.zoomOutContainer){this.zoomOutContainer=t.Tag.render(S||(S=b`<div class="ui-viewer__single-document--zoom-control --zoom-out" onclick="${0}" > <!-- ${0}--> </div>`),this.scaleClickHandler,t.Loc.getMessage("JS_UI_VIEWER_SINGLE_DOCUMENT_SCALE_ZOOM_OUT"))}return this.zoomOutContainer}getZoomValueNode(){if(!this.zoomValueNode){this.zoomValueNode=t.Tag.render(E||(E=b`<span class="ui-viewer__single-document--zoom-value">100</span>`))}return this.zoomValueNode}handleScaleClick(e){let t=this.scale;if(e.target.classList.contains("--zoom-in")){t=this.scale*1.1}if(e.target.classList.contains("--zoom-out")){t=this.scale*.9}this.update(t)}}e.Document=f;e.PrintService=w;e.SingleDocumentController=T})(this.BX.UI.Viewer=this.BX.UI.Viewer||{},BX,BX.Event); //# sourceMappingURL=viewer.bundle.map.js