1import{a as E,o as w}from"./chunk-s0wiiGIr.js";import{An as gy,C as GT,Cn as fh,Ct as V0,Dt as Vr,F as Hh,G as Lu,Hn as ku,Kt as ZI,M as HT,Or as sl,Qt as aT,Sn as fT,an as bh,cr as pT,dt as ST,g as EE,gn as eT,it as Pr,kt as WD,m as Dh,nr as nw,sr as ow,u as Cg,ur as ph,ut as Ri,vr as ql,vt as UD,w as Ge,zr as ul}from"./chunk-hDFLhPjY.js";import{Bn as xD,Bt as b5,C as ED,Lt as a5,O as Gy,_t as Uh,b as DE,k as H4,m as CE,mt as T5,p as C4,un as lI}from"./chunk-DvgwK5vQ.js";import{O as z,o as Bt,x as Vi}from"./main-N5A2UYE4.js";import{n as u}from"./chunk-CUE-5jAO.js";import{v as Ze}from"./chunk-C5uwmGBb.js";import{n as Tt}from"./chunk-Dpyf7UlJ.js";var gt=[`startKnob`];var bt=[`endKnob`];var vt=(a,i,t,n,e,o,s,c,r,l)=>({"--start-value":a,"--end-value":i,"--size":t,"--height":n,"--disabled-color":e,"--disabled-height":o,"--enabled-color":s,"--enabled-height":c,"--knob-size":r,"--knob-radius":l});var pt=(()=>{class a{constructor(t,n,e){this.gestureController=t,this.elementRef=n,this.changeDetector=e,this.min=0,this.max=this.min+1,this.value={lower:this.min,upper:this.max},this.step=1,this.direction=`horizontal`,this.disabledColor=`medium`,this.enabledColor=`primary`,this.knobSize=16,this.knobRadius=8,this.disabledLineHeight=2,this.enabledLineHeight=3,this.height=40,this.valueChange=new Ge}ngAfterViewInit(){this.startGesture||(this.startGesture=this.createGesture(this.startKnob.nativeElement,!0)),this.endGesture||(this.endGesture=this.createGesture(this.endKnob.nativeElement,!1))}ngOnDestroy(){this.startGesture?.destroy(),this.endGesture?.destroy()}createGesture(t,n){let e,o,s=r=>{if(e===void 0||o===void 0)return;let f=(this.direction===`horizontal`?r.deltaX:r.deltaY)*(this.max-this.min)/o,d=e+f;d=this.step*(d/this.step);let v;n?(d<this.min&&(d=this.min),d>this.value.upper&&(d=this.value.upper),this.value.lower!==d&&(v={lower:d,upper:this.value.upper})):(d>this.max&&(d=this.max),d<this.value.lower&&(d=this.value.lower),this.value.upper!==d&&(v={lower:this.value.lower,upper:d})),v&&(this.value=v,this.changeDetector.detectChanges(),this.valueChange.emit(w({},v)))},c=this.gestureController.create({el:t,gestureName:`knob`,direction:this.direction===`horizontal`?`x`:`y`,threshold:1,onStart:r=>{e=n?this.value.lower:this.value.upper,o=this.size||(this.direction===`horizontal`?this.elementRef.nativeElement.offsetWidth:this.elementRef.nativeElement.offsetHeight),s(r)},onMove:r=>{s(r)},onEnd:r=>{s(r),e=void 0}});return c.enable(),c}static{this.ɵfac=function(n){return new(n||a)(Vr(T5),Vr(Pr),Vr(V0))}}static{this.ɵcmp=ZI({type:a,selectors:[[`app-range`]],viewQuery:function(n,e){if(n&1&&bh(gt,5)(bt,5),n&2){let o;fT(o=pT())&&(e.startKnob=o.first),fT(o=pT())&&(e.endKnob=o.first)}},inputs:{min:`min`,max:`max`,value:`value`,step:`step`,size:`size`,direction:`direction`,disabledColor:`disabledColor`,enabledColor:`enabledColor`,knobSize:`knobSize`,knobRadius:`knobRadius`,disabledLineHeight:`disabledLineHeight`,enabledLineHeight:`enabledLineHeight`,height:`height`},outputs:{valueChange:`valueChange`},decls:7,vars:15,consts:[[`startKnob`,``],[`endKnob`,``],[3,`ngStyle`],[1,`disabled-line`],[1,`enabled-line`],[1,`start-knob`],[1,`end-knob`]],template:function(n,e){n&1&&(Ri(0,`div`,2),ph(1,`div`,3)(2,`div`,4)(3,`div`,5,0)(5,`div`,6,1),sl()),n&2&&(ST(GT(`range-container `,e.direction)),fh(`ngStyle`,ow(4,vt,[(e.value.lower-e.min)*100/(e.max-e.min)+`%`,(e.value.upper-e.min)*100/(e.max-e.min)+`%`,e.size?e.size+`px`:``,e.height+`px`,`var(--ion-color-`+e.disabledColor+`)`,e.disabledLineHeight+`px`,`var(--ion-color-`+e.enabledColor+`)`,e.enabledLineHeight+`px`,e.knobSize+`px`,e.knobRadius+`px`])))},dependencies:[Gy],styles:[`div.range-container[_ngcontent-%COMP%]{position:relative}div.range-container[_ngcontent-%COMP%] div.disabled-line[_ngcontent-%COMP%]{position:absolute;background-color:var(--%NS%disabled-color)}div.range-container[_ngcontent-%COMP%] div.enabled-line[_ngcontent-%COMP%]{position:absolute;background-color:var(--%NS%enabled-color)}div.range-container[_ngcontent-%COMP%] div.start-knob[_ngcontent-%COMP%], div.range-container[_ngcontent-%COMP%] div.end-knob[_ngcontent-%COMP%]{position:absolute;background-color:var(--%NS%enabled-color);width:var(--%NS%knob-size);height:var(--%NS%knob-size);border-radius:var(--%NS%knob-radius);cursor:grab}div.range-container.horizontal[_ngcontent-%COMP%]{width:var(--%NS%size);height:var(--%NS%height)}div.range-container.horizontal[_ngcontent-%COMP%] div.disabled-line[_ngcontent-%COMP%]{top:calc(50% - var(--%NS%disabled-height) / 2);height:var(--%NS%disabled-height);left:0;right:0;width:100%}div.range-container.horizontal[_ngcontent-%COMP%] div.enabled-line[_ngcontent-%COMP%]{top:calc(50% - var(--%NS%enabled-height) / 2);height:var(--%NS%enabled-height);left:var(--%NS%start-value);right:var(--%NS%end-value);width:calc(var(--%NS%end-value) - var(--%NS%start-value))}div.range-container.horizontal[_ngcontent-%COMP%] div.start-knob[_ngcontent-%COMP%]{top:calc(50% - var(--%NS%knob-size) / 2);left:calc(var(--%NS%start-value) - var(--%NS%knob-size) / 2)}div.range-container.horizontal[_ngcontent-%COMP%] div.end-knob[_ngcontent-%COMP%]{top:calc(50% - var(--%NS%knob-size) / 2);left:calc(var(--%NS%end-value) - var(--%NS%knob-size) / 2)}div.range-container.vertical[_ngcontent-%COMP%]{height:var(--%NS%size);width:var(--%NS%height)}div.range-container.vertical[_ngcontent-%COMP%] div.disabled-line[_ngcontent-%COMP%]{left:calc(50% - var(--%NS%disabled-height) / 2);width:var(--%NS%disabled-height);top:0;bottom:0;height:100%}div.range-container.vertical[_ngcontent-%COMP%] div.enabled-line[_ngcontent-%COMP%]{left:calc(50% - var(--%NS%enabled-height) / 2);width:var(--%NS%enabled-height);top:var(--%NS%start-value);bottom:var(--%NS%end-value);height:calc(var(--%NS%end-value) - var(--%NS%start-value))}div.range-container.vertical[_ngcontent-%COMP%] div.start-knob[_ngcontent-%COMP%]{left:calc(50% - var(--%NS%knob-size) / 2);top:calc(var(--%NS%start-value) - var(--%NS%knob-size) / 2)}div.range-container.vertical[_ngcontent-%COMP%] div.end-knob[_ngcontent-%COMP%]{left:calc(50% - var(--%NS%knob-size) / 2);top:calc(var(--%NS%end-value) - var(--%NS%knob-size) / 2)}div.range-container[_ngcontent-%COMP%], div.disabled-line[_ngcontent-%COMP%], div.enabled-line[_ngcontent-%COMP%], div.start-knob[_ngcontent-%COMP%], div.end-knob[_ngcontent-%COMP%]{draggable:false;user-drag:none;-webkit-user-drag:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}`],changeDetection:1})}}return a})();var ft=[`photoEditorArea`];var Ct=[`photoEditorCanvas`];var yt=(a,i,t)=>({top:a,left:i,height:t});var _t=(a,i,t)=>({top:a,left:i,width:t});function wt(a,i){if(a&1&&(Ri(0,`ion-header`)(1,`ion-toolbar`,10)(2,`ion-title`),ph(3,`ion-icon`,11),Ri(4,`ion-label`),HT(5),sl()()()()),a&2){let t=aT();EE(5),Hh(t.i18n.texts.pages.photo_editor.title)}}function xt(a,i){if(a&1){let t=eT();Ri(0,`app-range`,12),Dh(`valueChange`,function(e){ku(t);
1return Lu(aT().setLeftToolValue(e))}),sl()}if(a&2){let t=i;fh(`min`,t.min)(`max`,t.max)(`step`,1)(`value`,t.value)(`size`,t.size)(`direction`,`vertical`)(`enabledColor`,`secondary`)}}function It(a,i){if(a&1){let t=eT();Ri(0,`app-range`,12),Dh(`valueChange`,function(e){ku(t);return Lu(aT().setBottomToolValue(e))}),sl()}if(a&2){let t=i;fh(`min`,t.min)(`max`,t.max)(`step`,1)(`value`,t.value)(`size`,t.size)(`direction`,`horizontal`)(`enabledColor`,`secondary`)}}function St(a,i){if(a&1){let t=eT();Ri(0,`ion-footer`)(1,`ion-toolbar`,13)(2,`ion-buttons`,14)(3,`ion-button`,15),Dh(`click`,function(){ku(t);return Lu(aT().close(!0))}),ph(4,`ion-icon`,16),Ri(5,`ion-label`),HT(6),sl()(),Ri(7,`ion-button`,17),Dh(`click`,function(){ku(t);return Lu(aT().close(!1))}),HT(8),sl()()()()}if(a&2){let t=aT();EE(3),fh(`disabled`,!t.blob||t.historyBack.length===0),EE(3),Hh(t.i18n.texts.buttons.save),EE(2),ul(` `,t.i18n.texts.buttons.close,` `)}}function Jt(a,i){return E(this,null,function*(){let t=yield a.get(Uh).create({component:Mt,componentProps:{initialBlob:()=>a.get(Ze).getFile$(i)},cssClass:`large-modal`});t.onDidDismiss().then(n=>{n.data&&a.get(Ze).updateFile(i,n.data)}),yield t.present()})}var Mt=(()=>{class a{constructor(t,n,e,o,s){this.i18n=t,this.preferences=n,this.changeDetector=e,this.modalController=o,this.browser=s,this.embedded=!1,this.rounded=!1,this.blobChange=new Ge,this.smallWidth=!1,this.applying=!1,this.toolbarItems=[new u().setIcon(`rotate-clockwise`).setI18nLabel(`pages.photo_editor.rotate_clockwise`).setDisabled(()=>this.applying).setAction(()=>this.rotate(!0)),new u().setIcon(`rotate-counterclockwise`).setI18nLabel(`pages.photo_editor.rotate_counterclockwise`).setDisabled(()=>this.applying).setAction(()=>this.rotate(!1)),new u().setIcon(`crop`).setI18nLabel(`pages.photo_editor.crop`).setDisabled(()=>this.applying).setAction(()=>this.startCrop()),new u().setIcon(`blur`).setI18nLabel(`pages.photo_editor.blur`).setDisabled(()=>this.applying).setAction(()=>this.startBlur()),new u,new u().setIcon(`undo`).setI18nLabel(`buttons.undo`).setDisabled(()=>this.historyBack.length===0||this.applying).setAction(()=>this.undo()),new u().setIcon(`redo`).setI18nLabel(`buttons.redo`).setDisabled(()=>this.historyForward.length===0||this.applying).setAction(()=>this.redo())],this.toolbarItemsShown=this.toolbarItems,this.isInit=!1,this.historyBack=[],this.historyForward=[],this.urlCreator=globalThis.URL||globalThis.webkitURL,this.canvasArea={x:50,y:10,width:1,height:1},this.smallWidth=s.width<450,this.subscription=s.resize$.subscribe(c=>{this.smallWidth=c.width<450,this.photoImage&&(this.drawImage(),this.tool?.refresh(),this.changeDetector.detectChanges())})}ngOnInit(){this.isInit=!0,typeof this.initialBlob==`function`?this.initialBlob().pipe(ql()).subscribe(t=>this.pushHistory(t)):this.pushHistory(this.initialBlob)}ngOnChanges(t){this.isInit&&t.initialBlob&&(typeof this.initialBlob==`function`?this.initialBlob():Cg(this.initialBlob)).pipe(ql()).subscribe(e=>{this.blob=void 0,this.blobUrl&&this.urlCreator.revokeObjectURL(this.blobUrl),this.blobUrl=void 0,this.historyBack=[],this.historyForward=[],this.pushHistory(e)})}ngOnDestroy(){this.subscription?.unsubscribe()}refresh(){this.toolbarItemsShown=this.tool?.toolbarItems?[...this.tool.toolbarItems]:[...this.toolbarItems],this.changeDetector.detectChanges()}pushHistory(t){this.historyForward=[],this.blob&&this.historyBack.push(this.blob),this.updateFromBlob(t),this.blobChange.emit({blob:t,changed:this.historyBack.length>0})}undo(){if(this.historyBack.length===0)return;let t=this.historyBack.splice(-1,1)[0];this.historyForward.push(this.blob),this.updateFromBlob(t),this.blobChange.emit({blob:t,changed:this.historyBack.length>0})}redo(){if(this.historyForward.length===0)return;let t=this.historyForward.splice(-1,1)[0];this.historyBack.push(this.blob),this.updateFromBlob(t),this.blobChange.emit({blob:t,changed:this.historyBack.length>0})}updateFromBlob(t){this.applying=!0,this.blobUrl&&this.urlCreator.revokeObjectURL(this.blobUrl),this.blob=t,this.blobUrl=this.urlCreator.createObjectURL(this.blob);let n=document.createElement(`IMG`);n.onload=()=>
1{if(this.blob!==t)return;this.photoImage=n;let e=()=>{this.photoEditorArea.nativeElement.offsetWidth===0?setTimeout(()=>e(),10):(this.drawImage(),this.applying=!1,this.refresh())};e()},n.src=this.blobUrl,this.refresh()}drawImage(t=!1){let n=this.photoImage,e=n.naturalWidth,o=n.naturalHeight,s=this.photoEditorArea.nativeElement.offsetWidth-60,c=this.photoEditorArea.nativeElement.offsetHeight-60,r=Math.min(s>=e?1:s/e,c>=o?1:c/o),l=this.photoEditorCanvas.nativeElement;this.canvasArea={x:s/2-e*r/2+50,y:10,width:e*r,height:o*r},l.width=this.canvasArea.width,l.height=this.canvasArea.height,l.style.left=this.canvasArea.x+`px`,l.style.top=this.canvasArea.y+`px`;let f=l.getContext(`2d`);if(f.drawImage(n,0,0,e,o,0,0,e*r,o*r),this.rounded&&!t){let d=Math.min(l.width,l.height),v=l.width-d,F=l.height-d;A.renderRounded(f,v/2,l.width-v/2,F/2,l.height-F/2,l.width,l.height)}return{canvas:l,ratio:r,ctx:f}}rotate(t){let n=this.photoImage,e=document.createElement(`CANVAS`);e.width=n.height,e.height=n.width;let o=e.getContext(`2d`);o.translate(e.width/2,e.height/2),o.rotate((t?90:-90)*Math.PI/180),o.drawImage(n,-n.naturalWidth/2,-n.naturalHeight/2),this.applyTransform(e).then(()=>{this.applying=!1,this.refresh()})}applyTransform(t){return this.applying=!0,this.refresh(),new Promise(n=>{t.toBlob(e=>{e&&this.pushHistory(e),n(null)},`image/jpeg`,this.preferences.preferences.photoMaxQuality/100)})}getBottomToolRange(){if(this.tool&&this.tool.x1!==void 0){let t=this.tool;return{value:{lower:t.x1,upper:t.x2},min:t.minX,max:t.maxX,size:this.photoEditorCanvas.nativeElement.width}}}setBottomToolValue(t){let n=t,e=this.tool;e.x1=n.lower,e.x2=n.upper,this.tool.refresh(),this.refresh()}getLeftToolRange(){if(this.tool&&this.tool.x1!==void 0){let t=this.tool;return{value:{lower:t.y1,upper:t.y2},min:t.minY,max:t.maxY,size:this.photoEditorCanvas.nativeElement.height}}}setLeftToolValue(t){let n=t,e=this.tool;e.y1=n.lower,e.y2=n.upper,this.tool.refresh(),this.refresh()}startCrop(){this.tool=new A(this,0,0,this.photoImage.naturalWidth-1,this.photoImage.naturalHeight-1,0,this.photoImage.naturalWidth-1,0,this.photoImage.naturalHeight-1),this.tool.refresh(),this.refresh()}startBlur(){this.tool=new W(this,0,0,this.photoImage.naturalWidth-1,this.photoImage.naturalHeight-1,0,this.photoImage.naturalWidth-1,0,this.photoImage.naturalHeight-1),this.tool.refresh(),this.refresh()}getBlurValue(){return this.tool?.name===`blur`?this.tool.blur:1}setBlurValue(t){!t||this.tool?.name!==`blur`||(this.tool.blur=t,this.tool.refresh())}cancelTool(){this.tool=void 0,this.drawImage(),this.refresh()}close(t){t&&this.blob&&this.historyBack.length>0?this.modalController.dismiss(this.blob):this.modalController.dismiss()}static{this.ɵfac=function(n){return new(n||a)(Vr(Bt),Vr(Vi),Vr(V0),Vr(Uh),Vr(z))}}static{this.ɵcmp=ZI({type:a,selectors:[[`app-photo-editor`]],viewQuery:function(n,e){if(n&1&&bh(ft,5)(Ct,5),n&2){let o;fT(o=pT())&&(e.photoEditorArea=o.first),fT(o=pT())&&(e.photoEditorCanvas=o.first)}},inputs:{initialBlob:`initialBlob`,embedded:`embedded`,rounded:`rounded`},outputs:{blobChange:`blobChange`},features:[gy],decls:14,vars:22,consts:[[`photoEditorArea`,``],[`photoEditorCanvas`,``],[1,`modal-content`],[3,`items`,`itemMaxWidth`,`itemMinWidth`,`align`],[1,`blur-control`],[3,`ionInput`,`min`,`max`,`value`,`step`],[1,`photo-editor-area`],[1,`left-tool`,3,`ngStyle`],[3,`min`,`max`,`step`,`value`,`size`,`direction`,`enabledColor`],[1,`bottom-tool`,3,`ngStyle`],[`color`,`primary`],[`name`,`photos`,2,`margin-right`,`10px`],[3,`valueChange`,`min`,`max`,`step`,`value`,`size`,`direction`,`enabledColor`],[`color`,`footer`],[`slot`,`end`],[`color`,`success`,3,`click`,`disabled`],[`name`,`save`,`slot`,`start`],[3,`click`]],template:function(n,e){if(n&1&&(UD(0,wt,6,1,`ion-header`),Ri(1,`div`,2)(2,`app-toolbar`,3)(3,`div`,4)(4,`ion-range`,5),Dh(`ionInput`,function(s){return e.setBlurValue(s.detail.value)}),sl()()(),Ri(5,`div`,6,0),ph(7,`canvas`,null,1),Ri(9,`div`,7),UD(10,xt,1,7,`app-range`,8),sl(),Ri(11,`div`,9),UD(12,It,1,7,`app-range`,8),sl()()(),UD(13,St,9,3,`ion-footer`)),n&2){let o,s;WD(e.embedded?-1:0),EE(2),fh(`items`,e.toolbarItemsShown)(`itemMaxWidth`,e.smallWidth?60:void 0)(`itemMinWidth`,45)(`align`,`center`),EE(2),fh(`min`,1)(`max`,20)(`value`,e.getBlurValue())(`step`,1),EE(5),fh(`ngStyle`,nw(14,yt,e.canvasArea.y+`px`,e.canvasArea.x-50+`px`,e.canvasArea.height+`px`)),EE(),WD((o=e.getLeftToolRange())?10:-1,o),EE(),fh(`ngStyle`,nw(18,_t,e.canvasArea.y+e.canvasArea.height+`px`,e.canvasArea.x+`px`,e.canvasArea.width+`px`)),EE(),WD((s=e.getBottomToolRange())?12:-1,s),EE(),WD(e.embedded?-1:13)}},dependencies:[DE,xD,CE,lI,C4,a5,b5,ED,H4,Tt,pt,Gy],styles:[`div.modal-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}div.modal-content[_ngcontent-%COMP%] app-toolbar[_ngcontent-%COMP%]{flex:none;background-color:var(--%NS%ion-toolbar-background)}
1div.modal-content[_ngcontent-%COMP%] div.photo-editor-area[_ngcontent-%COMP%]{flex:1 1 100%;overflow:hidden;position:relative}div.modal-content[_ngcontent-%COMP%] div.photo-editor-area[_ngcontent-%COMP%] div.left-tool[_ngcontent-%COMP%], div.modal-content[_ngcontent-%COMP%] div.photo-editor-area[_ngcontent-%COMP%] div.bottom-tool[_ngcontent-%COMP%], div.modal-content[_ngcontent-%COMP%] div.photo-editor-area[_ngcontent-%COMP%] canvas[_ngcontent-%COMP%]{position:absolute}div.modal-content[_ngcontent-%COMP%] div.photo-editor-area[_ngcontent-%COMP%] div.left-tool[_ngcontent-%COMP%]{width:50px}div.modal-content[_ngcontent-%COMP%] div.photo-editor-area[_ngcontent-%COMP%] div.bottom-tool[_ngcontent-%COMP%]{height:50px}div.blur-control[_ngcontent-%COMP%]{min-width:100px;max-width:100px}`],changeDetection:1})}}return a})();var A=class a{constructor(i,t,n,e,o,s,c,r,l){this.component=i,this.x1=t,this.y1=n,this.x2=e,this.y2=o,this.minX=s,this.maxX=c,this.minY=r,this.maxY=l,this.name=`crop`,this.toolbarItems=[new u().setSectionTitle(!0).setIcon(`crop`).setI18nLabel(`pages.photo_editor.crop`).setTextColor(`medium`),new u,new u().setIcon(`checkmark`).setI18nLabel(`buttons.apply`).setTextColor(`success`).setAction(()=>this.apply()),new u().setIcon(`cross`).setI18nLabel(`buttons.cancel`).setAction(()=>this.component.cancelTool())]}refresh(){let i=this.component.drawImage(!0);if(this.component.rounded){let t=this.x2-this.x1+1,n=this.y2-this.y1+1,e=Math.min(t,n),o=(t-e)/2,s=(n-e)/2;a.renderRounded(i.ctx,(this.x1+o)*i.ratio,(this.x2-o)*i.ratio,(this.y1+s)*i.ratio,(this.y2-s)*i.ratio,(this.maxX-this.minX+1)*i.ratio,(this.maxY-this.minY+1)*i.ratio)}i.ctx.save(),i.ctx.fillStyle=`rgba(0,0,0,0.4)`,this.y1>0&&i.ctx.fillRect(0,0,i.canvas.width,this.y1*i.ratio),this.y2<this.maxY&&i.ctx.fillRect(0,this.y2*i.ratio+1,i.canvas.width,(this.maxY-this.y2)*i.ratio),this.x1>0&&i.ctx.fillRect(0,this.y1*i.ratio,this.x1*i.ratio,(this.y2-this.y1)*i.ratio+1),this.x2<this.maxX&&i.ctx.fillRect(this.x2*i.ratio+1,this.y1*i.ratio,i.canvas.width-this.x2*i.ratio,(this.y2-this.y1)*i.ratio+1),i.ctx.restore()}apply(){let i=this.component.photoImage,t=document.createElement(`CANVAS`);t.width=this.x2-this.x1,t.height=this.y2-this.y1,t.getContext(`2d`).drawImage(i,this.x1,this.y1,this.x2-this.x1,this.y2-this.y1,0,0,this.x2-this.x1,this.y2-this.y1),this.component.applyTransform(t).then(()=>this.component.cancelTool())}static renderRounded(i,t,n,e,o,s,c){i.save(),i.beginPath(),i.rect(0,0,s,c),i.arc(t+(n-t)/2,e+(o-e)/2,(n-t)/2,0,Math.PI*2,!0),i.clip(),i.fillStyle=`rgba(0,0,0,0.5)`,i.fillRect(0,0,s,c),i.restore()}};var W=class{constructor(i,t,n,e,o,s,c,r,l,f=3){this.component=i,this.x1=t,this.y1=n,this.x2=e,this.y2=o,this.minX=s,this.maxX=c,this.minY=r,this.maxY=l,this.blur=f,this.name=`blur`,this.toolbarItems=[new u().setSectionTitle(!0).setIcon(`blur`).setI18nLabel(`pages.photo_editor.blur`).setTextColor(`medium`),new u,new u().setCustomContentSelector(`.blur-control`),new u,new u().setIcon(`checkmark`).setI18nLabel(`buttons.apply`).setTextColor(`success`).setAction(()=>this.apply()),new u().setIcon(`cross`).setI18nLabel(`buttons.cancel`).setAction(()=>this.component.cancelTool())]}refresh(){let i=this.component.drawImage();i.ctx.save(),i.ctx.filter=`blur(`+this.blur+`px)`,i.ctx.drawImage(this.component.photoImage,this.x1,this.y1,this.x2-this.x1+1,this.y2-this.y1+1,this.x1*i.ratio-this.blur,this.y1*i.ratio-this.blur,(this.x2-this.x1+1)*i.ratio+this.blur*2,(this.y2-this.y1+1)*i.ratio+this.blur*2),i.ctx.restore()}apply(){let i=this.component.photoImage,t=document.createElement(`CANVAS`);t.width=i.naturalWidth,t.height=i.naturalHeight;let n=t.getContext(`2d`);n.drawImage(i,0,0,i.naturalWidth,i.naturalHeight),n.filter=`blur(`+this.blur+`px)`,n.drawImage(i,this.x1,this.y1,this.x2-this.x1+1,this.y2-this.y1+1,this.x1-this.blur,this.y1-this.blur,this.x2-this.x1+1+this.blur*2,this.y2-this.y1+1+this.blur*2),this.component.applyTransform(t).then(()=>this.component.cancelTool())}};export{Mt as n,Jt as t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.