diff --git a/CHANGELOG-WIP.md b/CHANGELOG-WIP.md
index a7e2e1c9d0b..877985d814a 100644
--- a/CHANGELOG-WIP.md
+++ b/CHANGELOG-WIP.md
@@ -9,6 +9,7 @@
### Accessibility
- Improved the accessibility of two-step verification setup. ([#15229](https://github.com/craftcms/cms/pull/15229))
+- The notification heading is no longer read to screen readers when no notifications are active. ([#15294](https://github.com/craftcms/cms/pull/15294))
### Administration
- Icon fields now have an “Include Pro icons” setting, which determines whether Font Awesome Pro icon should be selectable. ([#15242](https://github.com/craftcms/cms/issues/15242))
diff --git a/src/templates/_layouts/components/notifications.twig b/src/templates/_layouts/components/notifications.twig
index def22abd2f3..381b1de5a29 100644
--- a/src/templates/_layouts/components/notifications.twig
+++ b/src/templates/_layouts/components/notifications.twig
@@ -1,5 +1,5 @@
-
{{ 'Notifications'|t('app') }}
+
{{ 'Notifications'|t('app') }}
{% for type in ['notice', 'success', 'error'] %}
diff --git a/src/web/assets/cp/dist/cp.js b/src/web/assets/cp/dist/cp.js
index a3843ea2d65..9a3390d8eec 100644
--- a/src/web/assets/cp/dist/cp.js
+++ b/src/web/assets/cp/dist/cp.js
@@ -1,3 +1,3 @@
/*! For license information please see cp.js.LICENSE.txt */
-(function(){var __webpack_modules__={463:function(){Craft.Accordion=Garnish.Base.extend({$trigger:null,targetSelector:null,_$target:null,init:function(t){var e=this;this.$trigger=$(t),this.$trigger.data("accordion")&&(console.warn("Double-instantiating an accordion trigger on an element"),this.$trigger.data("accordion").destroy()),this.$trigger.data("accordion",this),this.targetSelector=this.$trigger.attr("aria-controls")?"#".concat(this.$trigger.attr("aria-controls")):null,this.targetSelector&&(this._$target=$(this.targetSelector)),this.addListener(this.$trigger,"click","onTriggerClick"),this.addListener(this.$trigger,"keypress",(function(t){var n=t.keyCode;n!==Garnish.SPACE_KEY&&n!==Garnish.RETURN_KEY||(t.preventDefault(),e.onTriggerClick())}))},onTriggerClick:function(){"true"===this.$trigger.attr("aria-expanded")?this.hideTarget(this._$target):this.showTarget(this._$target)},showTarget:function(t){var e=this;if(t&&t.length){this.showTarget._currentHeight=t.height(),t.removeClass("hidden"),this.$trigger.removeClass("collapsed").addClass("expanded").attr("aria-expanded","true");for(var n=0;n=this.settings.maxItems)){var e=$(t).appendTo(this.$tbody),n=e.find(".delete");this.settings.sortable&&this.sorter.addItems(e),this.$deleteBtns=this.$deleteBtns.add(n),this.addListener(n,"click","handleDeleteBtnClick"),this.totalItems++,this.updateUI()}},reorderItems:function(){var t=this;if(this.settings.sortable){for(var e=[],n=0;n=this.settings.maxItems?$(this.settings.newItemBtnSelector).addClass("hidden"):$(this.settings.newItemBtnSelector).removeClass("hidden"))}},{defaults:{tableSelector:null,noItemsSelector:null,newItemBtnSelector:null,idAttribute:"data-id",nameAttribute:"data-name",sortable:!1,allowDeleteAll:!0,minItems:0,maxItems:null,reorderAction:null,deleteAction:null,reorderSuccessMessage:Craft.t("app","New order saved."),reorderFailMessage:Craft.t("app","Couldn’t save new order."),confirmDeleteMessage:Craft.t("app","Are you sure you want to delete “{name}”?"),deleteSuccessMessage:Craft.t("app","“{name}” deleted."),deleteFailMessage:Craft.t("app","Couldn’t delete “{name}”."),onReorderItems:$.noop,onDeleteItem:$.noop}})},6872:function(){Craft.AssetImageEditor=Garnish.Modal.extend({$body:null,$footer:null,$imageTools:null,$buttons:null,$cancelBtn:null,$replaceBtn:null,$saveBtn:null,$focalPointBtn:null,$editorContainer:null,$straighten:null,$croppingCanvas:null,$spinner:null,$constraintContainer:null,$constraintRadioInputs:null,$customConstraints:null,canvas:null,image:null,viewport:null,focalPoint:null,grid:null,croppingCanvas:null,clipper:null,croppingRectangle:null,cropperHandles:null,cropperGrid:null,croppingShade:null,imageStraightenAngle:0,viewportRotation:0,originalWidth:0,originalHeight:0,imageVerticeCoords:null,zoomRatio:1,animationInProgress:!1,currentView:"",assetId:null,cacheBust:null,draggingCropper:!1,scalingCropper:!1,draggingFocal:!1,previousMouseX:0,previousMouseY:0,shiftKeyHeld:!1,editorHeight:0,editorWidth:0,cropperState:!1,scaleFactor:1,flipData:{},focalPointState:!1,maxImageSize:null,lastLoadedDimensions:null,imageIsLoading:!1,mouseMoveEvent:null,croppingConstraint:!1,constraintOrientation:"landscape",showingCustomConstraint:!1,saving:!1,renderImage:null,renderCropper:null,_queue:null,init:function(t,e){var n=this;this._queue=new Craft.Queue,this.cacheBust=Date.now(),this.setSettings(e,Craft.AssetImageEditor.defaults),null===this.settings.allowDegreeFractions&&(this.settings.allowDegreeFractions=Craft.isImagick),Garnish.prefersReducedMotion()&&(this.settings.animationDuration=1),this.assetId=t,this.flipData={x:0,y:0},this.$container=$('').appendTo(Garnish.$bod),this.$body=$('').appendTo(this.$container),this.$footer=$('').appendTo(this.$container),this.base(this.$container,this.settings),this.$buttons=$('').appendTo(this.$footer),this.$cancelBtn=$("",{type:"button",class:"btn cancel",text:Craft.t("app","Cancel")}).appendTo(this.$buttons),this.settings.allowSavingAsNew&&(this.$saveBtn=Craft.ui.createButton({class:"save copy",label:Craft.t("app","Save as a new asset"),spinner:!0}).appendTo(this.$buttons),this.addListener(this.$saveBtn,"activate",this.saveImage)),this.$replaceBtn=Craft.ui.createSubmitButton({class:"save replace",label:Craft.t("app","Save"),spinner:!0}).appendTo(this.$buttons),this.addListener(this.$replaceBtn,"activate",this.saveImage),this.addListener(this.$cancelBtn,"activate",this.hide),this.removeListener(this.$shade,"click"),this.maxImageSize=this.getMaxImageSize(),Craft.sendActionRequest("POST","assets/image-editor",{data:{assetId:t}}).then((function(t){return n.loadEditor(t.data)}))},getMaxImageSize:function(){var t=Garnish.$doc.get(0).documentElement.clientWidth,e=Garnish.$doc.get(0).documentElement.clientHeight;return Math.max(e,t)*(window.devicePixelRatio>1?2:1)},loadEditor:function(t){var e=this;t.html||Craft.cp.displayError(Craft.t("app","Could not load the image editor.")),this.$body.html(t.html),this.$tabs=$(".tabs li",this.$body),this.$viewsContainer=$(".views",this.$body),this.$views=$("> div",this.$viewsContainer),this.$imageTools=$(".image-container .image-tools",this.$body),this.$editorContainer=$(".image-container .image",this.$body),this.$constraintContainer=$(".constraint-group",this.$body),this.$constraintRadioInputs=$('[name="constraint"]',this.$constraintContainer),this.$focalPointBtn=$(".focal-point",this.$body),this.editorHeight=this.$editorContainer.innerHeight(),this.editorWidth=this.$editorContainer.innerWidth(),this._showSpinner(),this.updateSizeAndPosition(),$customConstraintWrapper=this.$constraintRadioInputs.filter('[value="custom"]').parent(),this.$customConstraints=$("",{class:"constraint custom hidden","data-constraint":"custom"}).append($("",{type:"text",class:"custom-constraint-w",size:3,value:1,"aria-label":Craft.t("app","Width unit")})).append($("",{class:"custom-constraint-spacer",text:"x","aria-hidden":"true"})).append($("",{type:"text",class:"custom-constraint-h",size:3,value:1,"aria-label":Craft.t("app","Height unit")})).appendTo($customConstraintWrapper),this.$constraintRadioInputs.filter((function(){var t=$(this).val();return/^\d*\.\d+$/.test(t)})).addClass("flip"),this.canvas=new fabric.StaticCanvas("image-canvas"),this.$croppingCanvas=$("#cropping-canvas",this.$editorContainer),this.$croppingCanvas.width(this.editorWidth),this.$croppingCanvas.height(this.editorHeight),this.canvas.enableRetinaScaling=!0,this.renderImage=function(){Garnish.requestAnimationFrame(e.canvas.renderAll.bind(e.canvas))};var n=Craft.getActionUrl("assets/edit-image",{assetId:this.assetId,size:this.maxImageSize,cacheBust:this.cacheBust});fabric.Image.fromURL(n,(function(n){e.image=n,e.image.set({originX:"center",originY:"center",left:e.editorWidth/2,top:e.editorHeight/2}),e.canvas.add(e.image),e.originalHeight=e.image.getHeight(),e.originalWidth=e.image.getWidth(),e.zoomRatio=1,e.lastLoadedDimensions=e.getScaledImageDimensions(),e._setFittedImageVerticeCoordinates(),e._repositionEditorElements();var i={imageDimensions:e.getScaledImageDimensions(),offsetX:0,offsetY:0},r=!1;if(t.focalPoint){var a=t.focalPoint,s=i.imageDimensions.width*a.x,o=i.imageDimensions.height*a.y;i.offsetX=s-i.imageDimensions.width/2,i.offsetY=o-i.imageDimensions.height/2,r=!0}e.storeFocalPointState(i),r&&e._createFocalPoint(),e._createViewport(),e.storeCropperState(),e._addControlListeners(),e.addListener(e.$croppingCanvas,"mousemove,touchmove",e._handleMouseMove),e.addListener(e.$croppingCanvas,"mousedown,touchstart",e._handleMouseDown),e.addListener(e.$croppingCanvas,"mouseup,touchend",e._handleMouseUp),e.addListener(e.$croppingCanvas,"mouseout,touchcancel",e._handleMouseOut),e._hideSpinner(),e.renderImage(),e.$tabs.first().trigger("click")}))},_reloadImage:function(){var t=this;if(!this.imageIsLoading){this.imageIsLoading=!0,this.maxImageSize=this.getMaxImageSize();var e=Craft.getActionUrl("assets/edit-image",{assetId:this.assetId,size:this.maxImageSize,cacheBust:this.cacheBust});this.image.setSrc(e,(function(e){t.originalHeight=e.getHeight(),t.originalWidth=e.getWidth(),t.lastLoadedDimensions={width:t.originalHeight,height:t.originalWidth},t.updateSizeAndPosition(),t.renderImage(),t.imageIsLoading=!1}))}},updateSizeAndPosition:function(){if(this.$container){var t=window.innerWidth,e=window.innerHeight;this.$container.css({width:t,"min-width":t,left:0,height:e,"min-height":e,top:0}),this.$body.css({height:e-(this.$footer.outerHeight()-1)}),t1.5||e.height/this.lastLoadedDimensions.height>1.5)&&this._reloadImage()},_repositionImage:function(t){this.image.set({left:this.image.left-(t.width-this.editorWidth)/2,top:this.image.top-(t.height-this.editorHeight)/2})},_createViewport:function(){this.viewport=new fabric.Rect({width:this.image.width,height:this.image.height,fill:"rgba(127,0,0,1)",originX:"center",originY:"center",globalCompositeOperation:"destination-in",left:this.image.left,top:this.image.top}),this.canvas.add(this.viewport),this.renderImage()},_createFocalPoint:function(){var t=this.focalPointState,e=this.getScaledImageDimensions().width/t.imageDimensions.width,n=t.offsetX*e*this.zoomRatio*this.scaleFactor,i=t.offsetY*e*this.zoomRatio*this.scaleFactor;n+=this.image.left,i+=this.image.top;var r=0,a=0;this.viewport&&0===t.offsetX&&0===t.offsetY&&("crop"!==this.currentView?(r=this.viewport.left-this.image.left,a=this.viewport.top-this.image.top):(r=this.clipper.left-this.image.left,a=this.clipper.top-this.image.top),n+=r,i+=a,t.offsetX+=r/(e*this.zoomRatio*this.scaleFactor),t.offsetY+=a/(e*this.zoomRatio*this.scaleFactor)),this.focalPoint=new fabric.Group([new fabric.Circle({radius:8,fill:"rgba(0,0,0,0.5)",strokeWidth:2,stroke:"rgba(255,255,255,0.8)",left:0,top:0,originX:"center",originY:"center"}),new fabric.Circle({radius:1,fill:"rgba(255,255,255,0)",strokeWidth:2,stroke:"rgba(255,255,255,0.8)",left:0,top:0,originX:"center",originY:"center"})],{originX:"center",originY:"center",left:n,top:i}),this.storeFocalPointState(t),this.canvas.add(this.focalPoint)},toggleFocalPoint:function(){this.focalPoint?(this.canvas.remove(this.focalPoint),this.focalPoint=null,this.$focalPointBtn.attr("aria-pressed","false")):(this._createFocalPoint(),this.$focalPointBtn.attr("aria-pressed","true")),this.renderImage()},_repositionViewport:function(){if(this.viewport){var t={left:this.editorWidth/2,top:this.editorHeight/2};if("crop"===this.currentView)t.width=this.editorWidth,t.height=this.editorHeight;else if(this.cropperState){var e=this.cropperState,n=this.getScaledImageDimensions().width/e.imageDimensions.width;t.width=e.width*n*this.zoomRatio,t.height=e.height*n*this.zoomRatio,this.image.set({left:this.editorWidth/2-e.offsetX*n,top:this.editorHeight/2-e.offsetY*n})}else $.extend(t,this.getScaledImageDimensions());this.viewport.set(t)}},_repositionFocalPoint:function(t){if(this.focalPoint){var e=this.focalPoint.left-this.editorWidth/2,n=this.focalPoint.top-this.editorHeight/2,i=this.image.width,r=this.getScaledImageDimensions().width*this.zoomRatio/i/this.scaleFactor;e-=(t.width-this.editorWidth)/2,n-=(t.height-this.editorHeight)/2,e*=r,n*=r,this.focalPoint.set({left:this.editorWidth/2+e,top:this.editorHeight/2+n})}},hasOrientationChanged:function(){return this.viewportRotation%180!=0},getScaledImageDimensions:function(){return void 0===this.getScaledImageDimensions._&&(this.getScaledImageDimensions._={}),this.getScaledImageDimensions._.imageRatio=this.originalHeight/this.originalWidth,this.getScaledImageDimensions._.editorRatio=this.editorHeight/this.editorWidth,this.getScaledImageDimensions._.dimensions={},this.getScaledImageDimensions._.imageRatio>this.getScaledImageDimensions._.editorRatio?(this.getScaledImageDimensions._.dimensions.height=Math.min(this.editorHeight,this.originalHeight),this.getScaledImageDimensions._.dimensions.width=Math.round(this.originalWidth/(this.originalHeight/this.getScaledImageDimensions._.dimensions.height))):(this.getScaledImageDimensions._.dimensions.width=Math.min(this.editorWidth,this.originalWidth),this.getScaledImageDimensions._.dimensions.height=Math.round(this.originalHeight*(this.getScaledImageDimensions._.dimensions.width/this.originalWidth))),this.getScaledImageDimensions._.dimensions},_zoomImage:function(){void 0===this._zoomImage._&&(this._zoomImage._={}),this._zoomImage._.imageDimensions=this.getScaledImageDimensions(),this.image.set({width:this._zoomImage._.imageDimensions.width*this.zoomRatio,height:this._zoomImage._.imageDimensions.height*this.zoomRatio})},_getPrevTab:function(){var t,e=this._getActiveTabIndex();if(!(e<0))return t=e>0?e-1:this.$tabs.length-1,this.$tabs.eq(t)},_getNextTab:function(){var t,e=this._getActiveTabIndex();if(!(e<0))return t=e0&&t.h>0&&(this.setCroppingConstraint(t.w/t.h),this.enforceCroppingConstraint())},_getCustomConstraint:function(){var t=parseFloat($(".custom-constraint-w").val()),e=parseFloat($(".custom-constraint-h").val());return{w:isNaN(t)?0:t,h:isNaN(e)?0:e}},_setCustomConstraint:function(t,e){$(".custom-constraint-w").val(parseFloat(t)),$(".custom-constraint-h").val(parseFloat(e))},_hideCustomConstraint:function(){this.showingCustomConstraint=!1,this.$customConstraints.addClass("hidden"),$(".orientation",this.$container).removeClass("hidden")},_showCustomConstraint:function(){this.showingCustomConstraint||(this.showingCustomConstraint=!0,this.$customConstraints.removeClass("hidden"),$(".orientation",this.$container).addClass("hidden"))},_handleTabClick:function(t){if(!this.animationInProgress){var e=$(t.currentTarget);this.activateTab(e)}},activateTab:function(t){var e=$(t).data("view");this.$tabs.removeClass("selected").attr({"aria-selected":"false",tabindex:"-1"}),$(t).addClass("selected").attr({"aria-selected":"true",tabindex:"0"}).trigger("focus"),this.showView(e)},showView:function(t){var e=this;this.currentView!==t&&(this.$views.addClass("hidden"),this.$views.filter('[data-view="'+t+'"]').removeClass("hidden"),"rotate"===t?this.enableSlider():this.disableSlider(),this.updateSizeAndPosition(),"crop"===this.currentView&&"crop"!==t?this._queue.push((function(){return new Promise((function(t,n){e.disableCropMode(),t()}))})):"crop"!==this.currentView&&"crop"===t&&this._queue.push((function(){return new Promise((function(t,n){e.enableCropMode(),t()}))})),this.currentView=t)},storeCropperState:function(t){void 0===this.storeCropperState._&&(this.storeCropperState._={}),t?this.cropperState=t:this.clipper?(this.storeCropperState._.zoomFactor=1/this.zoomRatio,this.cropperState={offsetX:(this.clipper.left-this.image.left)*this.storeCropperState._.zoomFactor,offsetY:(this.clipper.top-this.image.top)*this.storeCropperState._.zoomFactor,height:this.clipper.height*this.storeCropperState._.zoomFactor,width:this.clipper.width*this.storeCropperState._.zoomFactor,imageDimensions:this.getScaledImageDimensions()}):(this.storeCropperState._.dimensions=this.getScaledImageDimensions(),this.cropperState={offsetX:0,offsetY:0,height:this.storeCropperState._.dimensions.height,width:this.storeCropperState._.dimensions.width,imageDimensions:this.storeCropperState._.dimensions})},storeFocalPointState:function(t){void 0===this.storeFocalPointState._&&(this.storeFocalPointState._={}),t?this.focalPointState=t:this.focalPoint&&(this.storeFocalPointState._.zoomFactor=1/this.zoomRatio,this.focalPointState={offsetX:(this.focalPoint.left-this.image.left)*this.storeFocalPointState._.zoomFactor/this.scaleFactor,offsetY:(this.focalPoint.top-this.image.top)*this.storeFocalPointState._.zoomFactor/this.scaleFactor,imageDimensions:this.getScaledImageDimensions()})},rotateImage:function(t){var e=this;if(!this.animationInProgress){if(90!==t&&-90!==t)return!1;this.animationInProgress=!0,this.viewportRotation+=t,this.viewportRotation=parseInt((this.viewportRotation+360)%360,10);var n,i=this.image.angle+t,r=this.getScaledImageDimensions();n=this.hasOrientationChanged()?this.getZoomToCoverRatio({height:r.width,width:r.height}):this.getZoomToCoverRatio(r),this.zoomRatio>n&&(n=this.zoomRatio);var a={angle:90===t?"+=90":"-=90"},s={angle:i,width:r.width*n,height:r.height*n},o=1;this.scaleFactor<1?(o=1/this.scaleFactor,this.scaleFactor=1):(this.viewport.width>this.editorHeight?o=this.editorHeight/this.viewport.width:this.viewport.height>this.editorWidth&&(o=this.editorWidth/this.viewport.height),this.scaleFactor=o),o<1&&(s.width*=o,s.height*=o);var l=this.cropperState,c=l.offsetX,h=l.offsetY,u=t*(Math.PI/180),d=c*Math.cos(u)-h*Math.sin(u),f=c*Math.sin(u)+h*Math.cos(u),p=r.width/l.imageDimensions.width,g=d*p*this.zoomRatio*this.scaleFactor,m=f*p*this.zoomRatio*this.scaleFactor;s.left=this.editorWidth/2-g,s.top=this.editorHeight/2-m,l.offsetX=d,l.offsetY=f;var v=l.width;l.width=l.height,l.height=v,this.storeCropperState(l),this.focalPoint&&this.canvas.remove(this.focalPoint),this.viewport.animate(a,{duration:this.settings.animationDuration,onComplete:function(){var t=e.viewport.height*o;e.viewport.height=e.viewport.width*o,e.viewport.width=t,e.viewport.set({angle:0})}}),this.image.animate(s,{onChange:this.canvas.renderAll.bind(this.canvas),duration:this.settings.animationDuration,onComplete:function(){var n=parseFloat((e.image.angle+360)%360);e.image.set({angle:n}),e.animationInProgress=!1,e.focalPoint?(e._adjustFocalPointByAngle(t),e.straighten(e.straighteningInput),e.canvas.add(e.focalPoint)):e._resetFocalPointPosition()}})}},flipImage:function(t){var e=this;if(!this.animationInProgress){this.animationInProgress=!0,this.hasOrientationChanged()&&(t="y"===t?"x":"y"),this.focalPoint?this.canvas.remove(this.focalPoint):this._resetFocalPointPosition();var n={x:this.editorWidth/2,y:this.editorHeight/2};this.straighteningInput.setValue(-this.imageStraightenAngle),this.imageStraightenAngle=-this.imageStraightenAngle;var i,r,a={angle:this.viewportRotation+this.imageStraightenAngle},s=this.cropperState,o=this.focalPointState;"y"===t&&this.hasOrientationChanged()||"y"!==t&&!this.hasOrientationChanged()?(s.offsetX=-s.offsetX,o.offsetX=-o.offsetX,r=this.image.left-n.x,a.left=n.x-r):(s.offsetY=-s.offsetY,o.offsetY=-o.offsetY,i=this.image.top-n.y,a.top=n.y-i),"y"===t?(a.scaleY=-1*this.image.scaleY,this.flipData.y=1-this.flipData.y):(a.scaleX=-1*this.image.scaleX,this.flipData.x=1-this.flipData.x),this.storeCropperState(s),this.storeFocalPointState(o),this.image.animate(a,{onChange:this.canvas.renderAll.bind(this.canvas),duration:this.settings.animationDuration,onComplete:function(){e.animationInProgress=!1,e.focalPoint&&(e._adjustFocalPointByAngle(0),e.canvas.add(e.focalPoint))}})}},straighten:function(t){if(!this.animationInProgress){this.animationInProgress=!0;var e=this.image.angle;this.imageStraightenAngle=(this.settings.allowDegreeFractions?parseFloat(t.value):Math.round(parseFloat(t.value)))%360,this.image.set({angle:this.viewportRotation+this.imageStraightenAngle}),this.zoomRatio=this.getZoomToCoverRatio(this.getScaledImageDimensions())*this.scaleFactor,this._zoomImage(),this.cropperState&&this._adjustEditorElementsOnStraighten(e),this.renderImage(),this.animationInProgress=!1}},_adjustEditorElementsOnStraighten:function(t){var e,n,i,r,a,s=this.getScaledImageDimensions(),o=this.image.angle-t,l=this.cropperState,c=this.zoomRatio,h=1;do{var u=l.offsetX,d=l.offsetY,f=o*(Math.PI/180);i=u*Math.cos(f)-d*Math.sin(f),r=u*Math.sin(f)+d*Math.cos(f),e=i*c*(a=s.width/l.imageDimensions.width),n=r*c*a;var p=this.getImageVerticeCoords(c),g={width:this.viewport.width,height:this.viewport.height,left:this.editorWidth/2-this.viewport.width/2+e,top:this.editorHeight/2-this.viewport.height/2+n};c*=h=this._getZoomRatioToFitRectangle(g,p)}while(1!==h);this.image.set({left:this.editorWidth/2-e,top:this.editorHeight/2-n}),l.offsetX=i,l.offsetY=r,l.width=this.viewport.width/c/a,l.height=this.viewport.height/c/a,this.storeCropperState(l),this.zoomRatio=c,this.focalPoint?(this._adjustFocalPointByAngle(o),this._isCenterInside(this.focalPoint,this.viewport)?this.focalPoint.set({opacity:1}):this.focalPoint.set({opacity:0})):0!==o&&this._resetFocalPointPosition(),this._zoomImage()},_cleanupFocalPointAfterStraighten:function(){if(this.focalPoint&&!this._isCenterInside(this.focalPoint,this.viewport)){this.focalPoint.set({opacity:1});var t=this.focalPointState;t.offsetX=0,t.offsetY=0,this.storeFocalPointState(t),this.toggleFocalPoint()}},_resetFocalPointPosition:function(){var t=this.focalPointState;t.offsetX=0,t.offsetY=0,this.storeFocalPointState(t)},_isCenterInside:function(t,e){return t.left>e.left-e.width/2&&t.top>e.top-e.height/2&&t.leftthis.editorHeight||e.width>this.editorWidth){var i=this.editorHeight/e.height,r=this.editorWidth/e.width;n=Math.min(r,i)}return n},getCombinedZoomRatio:function(t){return this.getZoomToCoverRatio(t)/this.getZoomToFitRatio(t)},_showGrid:function(){if(!this.grid){var t,e={strokeWidth:1,stroke:"rgba(255,255,255,0.5)"},n=this.viewport.width,i=this.viewport.height,r=n/9,a=i/9,s=[new fabric.Rect({strokeWidth:2,stroke:"rgba(255,255,255,1)",originX:"center",originY:"center",width:n,height:i,left:n/2,top:i/2,fill:"rgba(255,255,255,0)"})];for(t=1;t<=8;t++)s.push(new fabric.Line([t*r,0,t*r,i],e));for(t=1;t<=8;t++)s.push(new fabric.Line([0,t*a,n,t*a],e));this.grid=new fabric.Group(s,{left:this.editorWidth/2,top:this.editorHeight/2,originX:"center",originY:"center",angle:this.viewport.angle}),this.canvas.add(this.grid),this.renderImage()}},_hideGrid:function(){this.canvas.remove(this.grid),this.grid=null,this.renderImage()},onFadeOut:function(){this.destroy()},show:function(){this.base(),Garnish.$bod.addClass("no-scroll")},hide:function(){this.removeAllListeners(),this.straighteningInput.removeAllListeners(),Garnish.$bod.removeClass("no-scroll"),this.base()},onSave:function(t){this.settings.onSave(t),this.trigger("save")},enableSlider:function(){this.$imageTools.removeClass("hidden")},disableSlider:function(){this.$imageTools.addClass("hidden")},enableCropMode:function(){var t=this,e=this.getScaledImageDimensions();this.zoomRatio=this.getZoomToFitRatio(e);var n={width:this.editorWidth,height:this.editorHeight},i={width:e.width*this.zoomRatio,height:e.height*this.zoomRatio,left:this.editorWidth/2,top:this.editorHeight/2};this._editorModeTransition((function(){t._setFittedImageVerticeCoordinates();var e=t.cropperState,n=t.getScaledImageDimensions(),i=n.width/e.imageDimensions.width,r={left:t.image.left+e.offsetX*i*t.zoomRatio,top:t.image.top+e.offsetY*i*t.zoomRatio,width:e.width*i*t.zoomRatio,height:e.height*i*t.zoomRatio};t._showCropper(r),t.focalPoint&&(i=n.width/t.focalPointState.imageDimensions.width,t.focalPoint.left=t.image.left+t.focalPointState.offsetX*i*t.zoomRatio,t.focalPoint.top=t.image.top+t.focalPointState.offsetY*i*t.zoomRatio,t.canvas.add(t.focalPoint))}),i,n)},disableCropMode:function(){var t=this,e={};this._hideCropper();var n=this.getScaledImageDimensions(),i=this.getZoomToCoverRatio(n)*this.scaleFactor,r=i/this.zoomRatio;this.zoomRatio=i;var a={width:n.width*this.zoomRatio,height:n.height*this.zoomRatio,left:this.editorWidth/2,top:this.editorHeight/2},s=(this.clipper.left-this.image.left)*r,o=(this.clipper.top-this.image.top)*r;a.left=this.editorWidth/2-s,a.top=this.editorHeight/2-o,e.height=this.clipper.height*r,e.width=this.clipper.width*r,(!this.focalPoint||this.focalPoint&&!this._isCenterInside(this.focalPoint,this.clipper))&&(this.focalPoint&&this.toggleFocalPoint(),this._resetFocalPointPosition()),this._editorModeTransition((function(){if(t.focalPoint){var e=t.getScaledImageDimensions().width/t.focalPointState.imageDimensions.width;t.focalPoint.left=t.image.left+t.focalPointState.offsetX*e*t.zoomRatio,t.focalPoint.top=t.image.top+t.focalPointState.offsetY*e*t.zoomRatio,t.canvas.add(t.focalPoint)}}),a,e)},_editorModeTransition:function(t,e,n){var i=this;this._queue.pause(),this.animationInProgress||(this.animationInProgress=!0,this.focalPoint&&(this.canvas.remove(this.focalPoint),this.renderImage()),this.image.animate(e,{onChange:this.canvas.renderAll.bind(this.canvas),duration:this.settings.animationDuration,onComplete:function(){t(),i.animationInProgress=!1,i.renderImage(),i._queue.resume()}}),this.viewport.animate(n,{duration:this.settings.animationDuration}))},_showSpinner:function(){this.$spinner||(this.$spinner=$('')),this.$spinner.appendTo(this.$container.find(".image"))},_hideSpinner:function(){this.$spinner.remove()},_showCropper:function(t){this._setupCropperLayer(t),this._redrawCropperElements(),this.renderCropper()},_hideCropper:function(){this.clipper&&(this.croppingCanvas.remove(this.clipper),this.croppingCanvas.remove(this.croppingShade),this.croppingCanvas.remove(this.cropperHandles),this.croppingCanvas.remove(this.cropperGrid),this.croppingCanvas.remove(this.croppingRectangle),this.croppingCanvas=null,this.renderCropper=null)},_setupCropperLayer:function(t){var e=this;this.croppingCanvas=new fabric.StaticCanvas("cropping-canvas",{backgroundColor:"rgba(0,0,0,0)",hoverCursor:"default",selection:!1}),this.croppingCanvas.setDimensions({width:this.editorWidth,height:this.editorHeight}),this.renderCropper=function(){return Garnish.requestAnimationFrame(e.croppingCanvas.renderAll.bind(e.croppingCanvas))},$("#cropping-canvas",this.$editorContainer).css({position:"absolute",top:0,left:0}),this.croppingShade=new fabric.Rect({left:this.editorWidth/2,top:this.editorHeight/2,originX:"center",originY:"center",width:this.editorWidth,height:this.editorHeight,fill:"rgba(0,0,0,0.7)"});var n=this.getScaledImageDimensions(),i=0===this.imageStraightenAngle?1:1.2*this.getCombinedZoomRatio(n),r=n.width/i,a=n.height/i;if(this.hasOrientationChanged()){var s=a;a=r,r=s}this.clipper=new fabric.Rect({left:this.editorWidth/2,top:this.editorHeight/2,originX:"center",originY:"center",width:r,height:a,stroke:"black",fill:"rgba(128,0,0,1)",strokeWidth:0}),t&&this.clipper.set(t),this.clipper.globalCompositeOperation="destination-out",this.croppingCanvas.add(this.croppingShade),this.croppingCanvas.add(this.clipper)},_redrawCropperElements:function(){void 0===this._redrawCropperElements._&&(this._redrawCropperElements._={}),this.cropperHandles&&(this.croppingCanvas.remove(this.cropperHandles),this.croppingCanvas.remove(this.cropperGrid),this.croppingCanvas.remove(this.croppingRectangle)),this._redrawCropperElements._.lineOptions={strokeWidth:4,stroke:"rgb(255,255,255)",fill:!1},this._redrawCropperElements._.gridOptions={strokeWidth:2,stroke:"rgba(255,255,255,0.5)"},this._redrawCropperElements._.pathGroup=[new fabric.Path("M 0,10 L 0,0 L 10,0",this._redrawCropperElements._.lineOptions),new fabric.Path("M "+(this.clipper.width-8)+",0 L "+(this.clipper.width+4)+",0 L "+(this.clipper.width+4)+",10",this._redrawCropperElements._.lineOptions),new fabric.Path("M "+(this.clipper.width+4)+","+(this.clipper.height-8)+" L"+(this.clipper.width+4)+","+(this.clipper.height+4)+" L "+(this.clipper.width-8)+","+(this.clipper.height+4),this._redrawCropperElements._.lineOptions),new fabric.Path("M 10,"+(this.clipper.height+4)+" L 0,"+(this.clipper.height+4)+" L 0,"+(this.clipper.height-8),this._redrawCropperElements._.lineOptions)],this.cropperHandles=new fabric.Group(this._redrawCropperElements._.pathGroup,{left:this.clipper.left,top:this.clipper.top,originX:"center",originY:"center"}),this.croppingRectangle=new fabric.Rect({left:this.clipper.left,top:this.clipper.top,width:this.clipper.width,height:this.clipper.height,fill:"rgba(0,0,0,0)",stroke:"rgba(255,255,255,0.8)",strokeWidth:2,originX:"center",originY:"center"}),this.cropperGrid=new fabric.Group([new fabric.Line([.33*this.clipper.width,0,.33*this.clipper.width,this.clipper.height],this._redrawCropperElements._.gridOptions),new fabric.Line([.66*this.clipper.width,0,.66*this.clipper.width,this.clipper.height],this._redrawCropperElements._.gridOptions),new fabric.Line([0,.33*this.clipper.height,this.clipper.width,.33*this.clipper.height],this._redrawCropperElements._.gridOptions),new fabric.Line([0,.66*this.clipper.height,this.clipper.width,.66*this.clipper.height],this._redrawCropperElements._.gridOptions)],{left:this.clipper.left,top:this.clipper.top,originX:"center",originY:"center"}),this._redrawCropperElements._.cropTextTop=this.croppingRectangle.top+this.clipper.height/2+12,this._redrawCropperElements._.cropTextBackgroundColor="rgba(0,0,0,0)",this._redrawCropperElements._.cropTextTop+12>this.editorHeight-2&&(this._redrawCropperElements._.cropTextTop-=24,this._redrawCropperElements._.cropTextBackgroundColor="rgba(0,0,0,0.5)"),this.croppingCanvas.add(this.cropperHandles),this.croppingCanvas.add(this.cropperGrid),this.croppingCanvas.add(this.croppingRectangle)},_repositionCropper:function(t){if(this.croppingCanvas){var e=this.clipper.left-this.croppingCanvas.width/2,n=this.clipper.top-this.croppingCanvas.height/2;this.croppingCanvas.setDimensions({width:this.editorWidth,height:this.editorHeight});var i=this._getBoundingRectangle(this.imageVerticeCoords).width/t.width;this.clipper.width=Math.round(this.clipper.width*i),this.clipper.height=Math.round(this.clipper.height*i),this.clipper.left=this.editorWidth/2+e*i,this.clipper.top=this.editorHeight/2+n*i,this.croppingShade.set({width:this.editorWidth,height:this.editorHeight,left:this.editorWidth/2,top:this.editorHeight/2}),this._redrawCropperElements(),this.renderCropper()}},_getBoundingRectangle:function(t){return{width:Math.max(t.a.x,t.b.x,t.c.x,t.d.x)-Math.min(t.a.x,t.b.x,t.c.x,t.d.x),height:Math.max(t.a.y,t.b.y,t.c.y,t.d.y)-Math.min(t.a.y,t.b.y,t.c.y,t.d.y)}},_handleMouseDown:function(t){var e=this.focalPoint&&this._isMouseOver(t,this.focalPoint),n=this.croppingCanvas&&this._isMouseOver(t,this.clipper),i=this.croppingCanvas&&this._cropperHandleHitTest(t);(i||n||e)&&(this.previousMouseX=t.pageX,this.previousMouseY=t.pageY,e?this.draggingFocal=!0:i?this.scalingCropper=i:n&&(this.draggingCropper=!0))},_handleMouseMove:function(t){null!==this.mouseMoveEvent&&Garnish.requestAnimationFrame(this._handleMouseMoveInternal.bind(this)),this.mouseMoveEvent=t},_handleMouseMoveInternal:function(){null!==this.mouseMoveEvent&&(this.focalPoint&&this.draggingFocal?(this._handleFocalDrag(this.mouseMoveEvent),this.storeFocalPointState(),this.renderImage()):this.draggingCropper||this.scalingCropper?(this.draggingCropper?this._handleCropperDrag(this.mouseMoveEvent):this._handleCropperResize(this.mouseMoveEvent),this._redrawCropperElements(),this.storeCropperState(),this.renderCropper()):this._setMouseCursor(this.mouseMoveEvent),this.previousMouseX=this.mouseMoveEvent.pageX,this.previousMouseY=this.mouseMoveEvent.pageY,this.mouseMoveEvent=null)},_handleMouseUp:function(){this.draggingCropper=!1,this.scalingCropper=!1,this.draggingFocal=!1},_handleMouseOut:function(t){this._handleMouseUp(t),this.mouseMoveEvent=t,this._handleMouseMoveInternal()},_handleCropperDrag:function(t){if(void 0===this._handleCropperDrag._&&(this._handleCropperDrag._={}),this._handleCropperDrag._.deltaX=t.pageX-this.previousMouseX,this._handleCropperDrag._.deltaY=t.pageY-this.previousMouseY,0===this._handleCropperDrag._.deltaX&&0===this._handleCropperDrag._.deltaY)return!1;if(this._handleCropperDrag._.rectangle={left:this.clipper.left-this.clipper.width/2,top:this.clipper.top-this.clipper.height/2,width:this.clipper.width,height:this.clipper.height},this._handleCropperDrag._.vertices=this._getRectangleVertices(this._handleCropperDrag._.rectangle,this._handleCropperDrag._.deltaX,this._handleCropperDrag._.deltaY),!this.arePointsInsideRectangle(this._handleCropperDrag._.vertices,this.imageVerticeCoords)){for(this._handleCropperDrag._.dxi=0,this._handleCropperDrag._.dyi=0,this._handleCropperDrag._.xStep=this._handleCropperDrag._.deltaX>0?-1:1,this._handleCropperDrag._.yStep=this._handleCropperDrag._.deltaY>0?-1:1,this._handleCropperDrag._.furthest=0,this._handleCropperDrag._.furthestDeltas={},this._handleCropperDrag._.dxi=Math.min(Math.abs(this._handleCropperDrag._.deltaX),10);this._handleCropperDrag._.dxi>=0;this._handleCropperDrag._.dxi--)for(this._handleCropperDrag._.dyi=Math.min(Math.abs(this._handleCropperDrag._.deltaY),10);this._handleCropperDrag._.dyi>=0;this._handleCropperDrag._.dyi--)this._handleCropperDrag._.vertices=this._getRectangleVertices(this._handleCropperDrag._.rectangle,this._handleCropperDrag._.dxi*(this._handleCropperDrag._.deltaX>0?1:-1),this._handleCropperDrag._.dyi*(this._handleCropperDrag._.deltaY>0?1:-1)),this.arePointsInsideRectangle(this._handleCropperDrag._.vertices,this.imageVerticeCoords)&&this._handleCropperDrag._.dxi+this._handleCropperDrag._.dyi>this._handleCropperDrag._.furthest&&(this._handleCropperDrag._.furthest=this._handleCropperDrag._.dxi+this._handleCropperDrag._.dyi,this._handleCropperDrag._.furthestDeltas={x:this._handleCropperDrag._.dxi*(this._handleCropperDrag._.deltaX>0?1:-1),y:this._handleCropperDrag._.dyi*(this._handleCropperDrag._.deltaY>0?1:-1)});if(0==this._handleCropperDrag._.furthest)return;this._handleCropperDrag._.deltaX=this._handleCropperDrag._.furthestDeltas.x,this._handleCropperDrag._.deltaY=this._handleCropperDrag._.furthestDeltas.y}this.clipper.set({left:this.clipper.left+this._handleCropperDrag._.deltaX,top:this.clipper.top+this._handleCropperDrag._.deltaY})},_handleFocalDrag:function(t){if(void 0===this._handleFocalDrag._&&(this._handleFocalDrag._={}),this.focalPoint){if(this._handleFocalDrag._.deltaX=t.pageX-this.previousMouseX,this._handleFocalDrag._.deltaY=t.pageY-this.previousMouseY,0===this._handleFocalDrag._.deltaX&&0===this._handleFocalDrag._.deltaY)return;if(this._handleFocalDrag._.newX=this.focalPoint.left+this._handleFocalDrag._.deltaX,this._handleFocalDrag._.newY=this.focalPoint.top+this._handleFocalDrag._.deltaY,"crop"===this.currentView){if(!this.arePointsInsideRectangle([{x:this._handleFocalDrag._.newX,y:this._handleFocalDrag._.newY}],this.imageVerticeCoords))return}else if(!(this.viewport.left-this.viewport.width/2-this._handleFocalDrag._.newX<0&&this.viewport.left+this.viewport.width/2-this._handleFocalDrag._.newX>0&&this.viewport.top-this.viewport.height/2-this._handleFocalDrag._.newY<0&&this.viewport.top+this.viewport.height/2-this._handleFocalDrag._.newY>0))return;this.focalPoint.set({left:this.focalPoint.left+this._handleFocalDrag._.deltaX,top:this.focalPoint.top+this._handleFocalDrag._.deltaY})}},setCroppingConstraint:function(t){switch(this.updateSizeAndPosition(),t){case"none":this.croppingConstraint=!1;break;case"original":this.croppingConstraint=this.originalWidth/this.originalHeight;break;case"current":this.croppingConstraint=this.clipper.width/this.clipper.height;break;case"custom":break;default:this.croppingConstraint=parseFloat(t)}},enforceCroppingConstraint:function(){var t=this;void 0===this.enforceCroppingConstraint._&&(this.enforceCroppingConstraint._={}),!this.animationInProgress&&this.croppingConstraint&&(this.animationInProgress=!0,this.enforceCroppingConstraint._.rectangle={left:this.clipper.left-this.clipper.width/2,top:this.clipper.top-this.clipper.height/2,width:this.clipper.width,height:this.clipper.height},this.clipper.width>this.clipper.height*this.croppingConstraint?(this.enforceCroppingConstraint._.previousHeight=this.enforceCroppingConstraint._.rectangle.height,this.enforceCroppingConstraint._.rectangle.height=this.clipper.width/this.croppingConstraint,this.enforceCroppingConstraint._.rectangle.top-=(this.enforceCroppingConstraint._.rectangle.height-this.enforceCroppingConstraint._.previousHeight)/2,this.arePointsInsideRectangle(this._getRectangleVertices(this.enforceCroppingConstraint._.rectangle),this.imageVerticeCoords)||(this.enforceCroppingConstraint._.rectangle.width=this.clipper.height*this.croppingConstraint,this.enforceCroppingConstraint._.rectangle.height=this.enforceCroppingConstraint._.rectangle.width/this.croppingConstraint)):(this.enforceCroppingConstraint._.previousWidth=this.enforceCroppingConstraint._.rectangle.width,this.enforceCroppingConstraint._.rectangle.width=this.clipper.height*this.croppingConstraint,this.enforceCroppingConstraint._.rectangle.left-=(this.enforceCroppingConstraint._.rectangle.width-this.enforceCroppingConstraint._.previousWidth)/2,this.arePointsInsideRectangle(this._getRectangleVertices(this.enforceCroppingConstraint._.rectangle),this.imageVerticeCoords)||(this.enforceCroppingConstraint._.rectangle.height=this.clipper.width/this.croppingConstraint,this.enforceCroppingConstraint._.rectangle.width=this.enforceCroppingConstraint._.rectangle.height*this.croppingConstraint)),this.enforceCroppingConstraint._.properties={height:this.enforceCroppingConstraint._.rectangle.height,width:this.enforceCroppingConstraint._.rectangle.width},this.clipper.animate(this.enforceCroppingConstraint._.properties,{onChange:function(){t._redrawCropperElements(),t.croppingCanvas.renderAll()},duration:this.settings.animationDuration,onComplete:function(){t._redrawCropperElements(),t.animationInProgress=!1,t.renderCropper(),t.storeCropperState()}}))},_handleCropperResize:function(t){void 0===this._handleCropperResize._&&(this._handleCropperResize._={}),this._handleCropperResize._.deltaX=t.pageX-this.previousMouseX,this._handleCropperResize._.deltaY=t.pageY-this.previousMouseY,"b"!==this.scalingCropper&&"t"!==this.scalingCropper||(this._handleCropperResize._.deltaX=0),"l"!==this.scalingCropper&&"r"!==this.scalingCropper||(this._handleCropperResize._.deltaY=0),0===this._handleCropperResize._.deltaX&&0===this._handleCropperResize._.deltaY||(this._handleCropperResize._.startingRectangle={left:this.clipper.left-this.clipper.width/2,top:this.clipper.top-this.clipper.height/2,width:this.clipper.width,height:this.clipper.height},this._handleCropperResize._.rectangle=this._calculateNewCropperSizeByDeltas(this._handleCropperResize._.startingRectangle,this._handleCropperResize._.deltaX,this._handleCropperResize._.deltaY,this.scalingCropper),this._handleCropperResize._.rectangle.height<30||this._handleCropperResize._.rectangle.width<30||this.arePointsInsideRectangle(this._getRectangleVertices(this._handleCropperResize._.rectangle),this.imageVerticeCoords)&&(this.clipper.set({top:this._handleCropperResize._.rectangle.top+this._handleCropperResize._.rectangle.height/2,left:this._handleCropperResize._.rectangle.left+this._handleCropperResize._.rectangle.width/2,width:this._handleCropperResize._.rectangle.width,height:this._handleCropperResize._.rectangle.height}),this._redrawCropperElements()))},_calculateNewCropperSizeByDeltas:function(t,e,n,i){if(void 0===this._calculateNewCropperSizeByDeltas._&&(this._calculateNewCropperSizeByDeltas._={}),this._calculateNewCropperSizeByDeltas._.topDelta=0,this._calculateNewCropperSizeByDeltas._.leftDelta=0,this._calculateNewCropperSizeByDeltas._.rectangle=t,this._calculateNewCropperSizeByDeltas._.deltaX=e,this._calculateNewCropperSizeByDeltas._.deltaY=n,this.croppingConstraint){switch(this._calculateNewCropperSizeByDeltas._.change=0,i){case"t":this._calculateNewCropperSizeByDeltas._.change=-this._calculateNewCropperSizeByDeltas._.deltaY;break;case"b":this._calculateNewCropperSizeByDeltas._.change=this._calculateNewCropperSizeByDeltas._.deltaY;break;case"r":this._calculateNewCropperSizeByDeltas._.change=this._calculateNewCropperSizeByDeltas._.deltaX;break;case"l":this._calculateNewCropperSizeByDeltas._.change=-this._calculateNewCropperSizeByDeltas._.deltaX;break;case"tr":this._calculateNewCropperSizeByDeltas._.change=Math.abs(this._calculateNewCropperSizeByDeltas._.deltaY)>Math.abs(this._calculateNewCropperSizeByDeltas._.deltaX)?-this._calculateNewCropperSizeByDeltas._.deltaY:this._calculateNewCropperSizeByDeltas._.deltaX;break;case"tl":this._calculateNewCropperSizeByDeltas._.change=Math.abs(this._calculateNewCropperSizeByDeltas._.deltaY)>Math.abs(this._calculateNewCropperSizeByDeltas._.deltaX)?-this._calculateNewCropperSizeByDeltas._.deltaY:-this._calculateNewCropperSizeByDeltas._.deltaX;break;case"br":this._calculateNewCropperSizeByDeltas._.change=Math.abs(this._calculateNewCropperSizeByDeltas._.deltaY)>Math.abs(this._calculateNewCropperSizeByDeltas._.deltaX)?this._calculateNewCropperSizeByDeltas._.deltaY:this._calculateNewCropperSizeByDeltas._.deltaX;break;case"bl":this._calculateNewCropperSizeByDeltas._.change=Math.abs(this._calculateNewCropperSizeByDeltas._.deltaY)>Math.abs(this._calculateNewCropperSizeByDeltas._.deltaX)?this._calculateNewCropperSizeByDeltas._.deltaY:-this._calculateNewCropperSizeByDeltas._.deltaX}switch(this.croppingConstraint>1?(this._calculateNewCropperSizeByDeltas._.deltaX=this._calculateNewCropperSizeByDeltas._.change,this._calculateNewCropperSizeByDeltas._.deltaY=this._calculateNewCropperSizeByDeltas._.deltaX/this.croppingConstraint):(this._calculateNewCropperSizeByDeltas._.deltaY=this._calculateNewCropperSizeByDeltas._.change,this._calculateNewCropperSizeByDeltas._.deltaX=this._calculateNewCropperSizeByDeltas._.deltaY*this.croppingConstraint),this._calculateNewCropperSizeByDeltas._.rectangle.height+=this._calculateNewCropperSizeByDeltas._.deltaY,this._calculateNewCropperSizeByDeltas._.rectangle.width+=this._calculateNewCropperSizeByDeltas._.deltaX,i){case"t":this._calculateNewCropperSizeByDeltas._.rectangle.top-=this._calculateNewCropperSizeByDeltas._.deltaY,this._calculateNewCropperSizeByDeltas._.rectangle.left-=this._calculateNewCropperSizeByDeltas._.deltaX/2;break;case"b":this._calculateNewCropperSizeByDeltas._.rectangle.left+=-this._calculateNewCropperSizeByDeltas._.deltaX/2;break;case"r":this._calculateNewCropperSizeByDeltas._.rectangle.top+=-this._calculateNewCropperSizeByDeltas._.deltaY/2;break;case"l":this._calculateNewCropperSizeByDeltas._.rectangle.top-=this._calculateNewCropperSizeByDeltas._.deltaY/2,this._calculateNewCropperSizeByDeltas._.rectangle.left-=this._calculateNewCropperSizeByDeltas._.deltaX;break;case"tr":this._calculateNewCropperSizeByDeltas._.rectangle.top-=this._calculateNewCropperSizeByDeltas._.deltaY;break;case"tl":this._calculateNewCropperSizeByDeltas._.rectangle.top-=this._calculateNewCropperSizeByDeltas._.deltaY,this._calculateNewCropperSizeByDeltas._.rectangle.left-=this._calculateNewCropperSizeByDeltas._.deltaX;break;case"bl":this._calculateNewCropperSizeByDeltas._.rectangle.left-=this._calculateNewCropperSizeByDeltas._.deltaX}}else!this.shiftKeyHeld||"tl"!==i&&"tr"!==i&&"bl"!==i&&"br"!==i||(this._calculateNewCropperSizeByDeltas._.ratio,Math.abs(e)>Math.abs(n)?(this._calculateNewCropperSizeByDeltas._.ratio=t.width/t.height,this._calculateNewCropperSizeByDeltas._.deltaY=this._calculateNewCropperSizeByDeltas._.deltaX/this._calculateNewCropperSizeByDeltas._.ratio,this._calculateNewCropperSizeByDeltas._.deltaY*="tr"===i||"bl"===i?-1:1):(this._calculateNewCropperSizeByDeltas._.ratio=t.width/t.height,this._calculateNewCropperSizeByDeltas._.deltaX=this._calculateNewCropperSizeByDeltas._.deltaY*this._calculateNewCropperSizeByDeltas._.ratio,this._calculateNewCropperSizeByDeltas._.deltaX*="tr"===i||"bl"===i?-1:1)),i.match(/t/)&&(this._calculateNewCropperSizeByDeltas._.rectangle.top+=this._calculateNewCropperSizeByDeltas._.deltaY,this._calculateNewCropperSizeByDeltas._.rectangle.height-=this._calculateNewCropperSizeByDeltas._.deltaY),i.match(/b/)&&(this._calculateNewCropperSizeByDeltas._.rectangle.height+=this._calculateNewCropperSizeByDeltas._.deltaY),i.match(/r/)&&(this._calculateNewCropperSizeByDeltas._.rectangle.width+=this._calculateNewCropperSizeByDeltas._.deltaX),i.match(/l/)&&(this._calculateNewCropperSizeByDeltas._.rectangle.left+=this._calculateNewCropperSizeByDeltas._.deltaX,this._calculateNewCropperSizeByDeltas._.rectangle.width-=this._calculateNewCropperSizeByDeltas._.deltaX);return this._calculateNewCropperSizeByDeltas._.rectangle.top=this._calculateNewCropperSizeByDeltas._.rectangle.top,this._calculateNewCropperSizeByDeltas._.rectangle.left=this._calculateNewCropperSizeByDeltas._.rectangle.left,this._calculateNewCropperSizeByDeltas._.rectangle.width=this._calculateNewCropperSizeByDeltas._.rectangle.width,this._calculateNewCropperSizeByDeltas._.rectangle.height=this._calculateNewCropperSizeByDeltas._.rectangle.height,this._calculateNewCropperSizeByDeltas._.rectangle},_setMouseCursor:function(t){void 0===this._setMouseCursor._&&(this._setMouseCursor._={}),Garnish.isMobileBrowser(!0)||(this._setMouseCursor._.cursor="default",this._setMouseCursor._.handle=this.croppingCanvas&&this._cropperHandleHitTest(t),this.focalPoint&&this._isMouseOver(t,this.focalPoint)?this._setMouseCursor._.cursor="pointer":this._setMouseCursor._.handle?"t"===this._setMouseCursor._.handle||"b"===this._setMouseCursor._.handle?this._setMouseCursor._.cursor="ns-resize":"l"===this._setMouseCursor._.handle||"r"===this._setMouseCursor._.handle?this._setMouseCursor._.cursor="ew-resize":"tl"===this._setMouseCursor._.handle||"br"===this._setMouseCursor._.handle?this._setMouseCursor._.cursor="nwse-resize":"bl"!==this._setMouseCursor._.handle&&"tr"!==this._setMouseCursor._.handle||(this._setMouseCursor._.cursor="nesw-resize"):this.croppingCanvas&&this._isMouseOver(t,this.clipper)&&(this._setMouseCursor._.cursor="move"),$(".body").css("cursor",this._setMouseCursor._.cursor))},_cropperHandleHitTest:function(t){if(void 0===this._cropperHandleHitTest._&&(this._cropperHandleHitTest._={}),this._cropperHandleHitTest._.parentOffset=this.$croppingCanvas.offset(),this._cropperHandleHitTest._.mouseX=t.pageX-this._cropperHandleHitTest._.parentOffset.left,this._cropperHandleHitTest._.mouseY=t.pageY-this._cropperHandleHitTest._.parentOffset.top,this._cropperHandleHitTest._.lb=this.clipper.left-this.clipper.width/2,this._cropperHandleHitTest._.rb=this._cropperHandleHitTest._.lb+this.clipper.width,this._cropperHandleHitTest._.tb=this.clipper.top-this.clipper.height/2,this._cropperHandleHitTest._.bb=this._cropperHandleHitTest._.tb+this.clipper.height,this._cropperHandleHitTest._.mouseXthis._cropperHandleHitTest._.lb-3){if(this._cropperHandleHitTest._.mouseYthis._cropperHandleHitTest._.tb-3)return"tl";if(this._cropperHandleHitTest._.mouseYthis._cropperHandleHitTest._.bb-10)return"bl"}if(this._cropperHandleHitTest._.mouseX>this._cropperHandleHitTest._.rb-13&&this._cropperHandleHitTest._.mouseXthis._cropperHandleHitTest._.tb-3)return"tr";if(this._cropperHandleHitTest._.mouseYthis._cropperHandleHitTest._.bb-10)return"br"}return this._cropperHandleHitTest._.mouseXthis._cropperHandleHitTest._.lb-3&&this._cropperHandleHitTest._.mouseYthis._cropperHandleHitTest._.tb+10?"l":this._cropperHandleHitTest._.mouseXthis._cropperHandleHitTest._.rb-5&&this._cropperHandleHitTest._.mouseYthis._cropperHandleHitTest._.tb+10?"r":this._cropperHandleHitTest._.mouseYthis._cropperHandleHitTest._.tb-2&&this._cropperHandleHitTest._.mouseX>this._cropperHandleHitTest._.lb+10&&this._cropperHandleHitTest._.mouseXthis._cropperHandleHitTest._.bb-4&&this._cropperHandleHitTest._.mouseX>this._cropperHandleHitTest._.lb+10&&this._cropperHandleHitTest._.mouseX=this._isMouseOver._.lb&&this._isMouseOver._.mouseX<=this._isMouseOver._.rb&&this._isMouseOver._.mouseY>=this._isMouseOver._.tb&&this._isMouseOver._.mouseY<=this._isMouseOver._.bb},_getRectangleVertices:function(t,e,n){return void 0===this._getRectangleVertices._&&(this._getRectangleVertices._={}),void 0===e&&(e=0),void 0===n&&(n=0),this._getRectangleVertices._.topLeft={x:t.left+e,y:t.top+n},this._getRectangleVertices._.topRight={x:this._getRectangleVertices._.topLeft.x+t.width,y:this._getRectangleVertices._.topLeft.y},this._getRectangleVertices._.bottomRight={x:this._getRectangleVertices._.topRight.x,y:this._getRectangleVertices._.topRight.y+t.height},this._getRectangleVertices._.bottomLeft={x:this._getRectangleVertices._.topLeft.x,y:this._getRectangleVertices._.bottomRight.y},[this._getRectangleVertices._.topLeft,this._getRectangleVertices._.topRight,this._getRectangleVertices._.bottomRight,this._getRectangleVertices._.bottomLeft]},_setFittedImageVerticeCoordinates:function(){this.imageVerticeCoords=this.getImageVerticeCoords("fit")},getImageVerticeCoords:function(t){var e,n=-1*((this.hasOrientationChanged()?90:0)+this.imageStraightenAngle)*(Math.PI/180),i=this.getScaledImageDimensions();e="number"==typeof t?t:"cover"===t?this.getZoomToCoverRatio(i):this.getZoomToFitRatio(i);var r=i.height*e,a=i.width*e,s=Math.cos(n)*r,o=Math.sin(n)*a,l=Math.cos(n)*a,c=Math.sin(n)*r,h=(this.editorHeight-(s+o))/2,u=(this.editorWidth-(c+l))/2;return{a:{x:u+l,y:h},b:{x:this.editorWidth-u,y:h+s},c:{x:u+c,y:this.editorHeight-h},d:{x:u,y:h+o}}},_debug:function(t){this.canvas.remove(this.debugger),this.debugger=t,this.canvas.add(this.debugger)},arePointsInsideRectangle:function(t,e){for(void 0===this.arePointsInsideRectangle._&&(this.arePointsInsideRectangle._={}),this.arePointsInsideRectangle._.ab=this._getVector(e.a,e.b),this.arePointsInsideRectangle._.bc=this._getVector(e.b,e.c),this.arePointsInsideRectangle._.scalarAbAb=this._getScalarProduct(this.arePointsInsideRectangle._.ab,this.arePointsInsideRectangle._.ab),this.arePointsInsideRectangle._.scalarBcBc=this._getScalarProduct(this.arePointsInsideRectangle._.bc,this.arePointsInsideRectangle._.bc),this.arePointsInsideRectangle._.i=0;this.arePointsInsideRectangle._.it.length)&&(e=t.length);for(var n=0,i=new Array(e);n=0;--r){var s=this.tryEntries[r],o=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var l=a.call(s,"catchLoc"),c=a.call(s,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),b}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;P(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:M(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),b}},i}function i(t,e,n,i,r,a,s){try{var o=t[a](s),l=o.value}catch(t){return void n(t)}o.done?e(l):Promise.resolve(l).then(i,r)}function r(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var s=t.apply(e,n);function o(t){i(s,r,a,o,l,"next",t)}function l(t){i(s,r,a,o,l,"throw",t)}o(void 0)}))}}function a(e,n,i){var r;return r=function(e,n){if("object"!=t(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var r=i.call(e,"string");if("object"!=t(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n),(n="symbol"==t(r)?r:String(r))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e}var s,o;Craft.AssetIndex=Craft.BaseElementIndex.extend({$includeSubfoldersContainer:null,$includeSubfoldersCheckbox:null,showingIncludeSubfoldersCheckbox:!1,$uploadButton:null,$uploadInput:null,$progressBar:null,uploader:null,promptHandler:null,progressBar:null,currentFolderId:null,$listedFolders:null,itemDrag:null,_uploadTotalFiles:0,_uploadFileProgress:{},_currentUploaderSettings:{},_includeSubfolders:null,init:function(t,e,n){var i=this;if(n=Object.assign({},Craft.AssetIndex.defaults,n),this.setSettings(n,Craft.BaseElementIndex.defaults),"index"===this.settings.context){var r=Craft.getQueryParams();void 0!==r.includeSubfolders&&(this._includeSubfolders=!!parseInt(r.includeSubfolders))}this.base(t,e,this.settings),"index"===this.settings.context?(this.itemDrag=new Garnish.DragDrop(a(a(a(a(a(a(a({activeDropTargetClass:"sel",minMouseDist:10,hideDraggee:!1,moveHelperToCursor:!0},"activeDropTargetClass","active-drop-target"),"handle",(function(t){return $(t).closest("tr,li")})),"filter",(function(){var t=i.itemDrag.$targetItem.closest("tr,li");return i.view.elementSelect.selectItem(t),i._findDraggableItems(i.view.getSelectedElements())})),"helper",(function(t,e){return $('').append(t).css({opacity:Math.max(.9-.05*e,0),width:"",height:""})})),"dropTargets",(function(){var t=$(i.$visibleSources.toArray().filter((function(t){return Garnish.hasAttr(t,"data-folder-id")&&Garnish.hasAttr(t,"data-can-move-peer-files-to")})));if(i.sourcePath.length<=1)t=t.not(i.$source);else for(var e=0;e li").find(".element:first");Garnish.hasAttr(n,"data-is-folder")&&n.find("a").trigger("activate")}})),this.base()},initForFiles:function(){this.promptHandler=new Craft.PromptHandler,this.progressBar=new Craft.ProgressBar(this.$main,!1)},createUploadInputs:function(){var t,e,n=this;null===(t=this.$uploadButton)||void 0===t||t.remove(),null===(e=this.$uploadInput)||void 0===e||e.remove(),this.$uploadButton=$("",{type:"button",class:"btn submit","data-icon":"upload",style:"position: relative; overflow: hidden;","aria-label":Craft.t("app","Upload files"),text:Craft.t("app","Upload files")}),this.addButton(this.$uploadButton),this.$uploadInput=$('').hide().insertBefore(this.$uploadButton),this.$uploadButton.on("click",(function(){n.$uploadButton.hasClass("disabled")||n.isIndexBusy||n.$uploadButton.parent().find("input[name=assets-upload]").trigger("click")}))},onSelectSource:function(){if(!this.settings.foldersOnly){this.currentFolderId=this.currentFolderId||this.$source.data("folder-id");var t=this.$source.data("fs-type");if(this.createUploadInputs(),this.currentFolderId&&Garnish.hasAttr(this.$source,"data-can-upload")){var e,n;null===(e=this.uploader)||void 0===e||e.destroy(),this.$uploadButton.removeClass("disabled");var i={fileInput:this.$uploadInput,dropZone:this.$container,events:{fileuploadstart:this._onUploadStart.bind(this),fileuploadprogressall:this._onUploadProgress.bind(this),fileuploaddone:this._onUploadSuccess.bind(this),fileuploadalways:this._onUploadAlways.bind(this),fileuploadfail:this._onUploadFailure.bind(this)}};null!==(n=this.settings)&&void 0!==n&&null!==(n=n.criteria)&&void 0!==n&&n.kind&&(i.allowedKinds=this.settings.criteria.kind),this._currentUploaderSettings=i,this.uploader=Craft.createUploader(t,this.$uploadButton,i),this.uploader.setParams({folderId:this.currentFolderId})}else this.$uploadButton.addClass("disabled")}this.base()},onSourcePathChange:function(){var t=this.sourcePath.length?this.sourcePath[this.sourcePath.length-1]:null;if(this.currentFolderId=null==t?void 0:t.folderId,!this.settings.foldersOnly&&this.currentFolderId){var e;null===(e=this.uploader)||void 0===e||e.setParams({folderId:this.currentFolderId});var n="index"===this.context&&!!t.canMoveSubItems;this.settings.selectable=this.settings.selectable||n,this.settings.multiSelect=this.settings.multiSelect||n}this.base()},startSearching:function(){if(!this.settings.hideSidebar&&this.sourcePath.length&&this.sourcePath[this.sourcePath.length-1].hasChildren){if(null===this.$includeSubfoldersContainer){var t="includeSubfolders-"+Math.floor(1e9*Math.random());this.$includeSubfoldersContainer=$('').insertAfter(this.$search);var e=$('').appendTo(this.$includeSubfoldersContainer);this.$includeSubfoldersCheckbox=$('').appendTo(e),$('').text(" "+Craft.t("app","Search in subfolders")).appendTo(e),this.addListener(this.$includeSubfoldersCheckbox,"change",(function(){this.setSelecetedSourceState("includeSubfolders",this.$includeSubfoldersCheckbox.prop("checked")),this.updateElements()}))}else this.$includeSubfoldersContainer.velocity("stop").removeClass("hidden");var n;null!==this._includeSubfolders?(n=this._includeSubfolders,this._includeSubfolders=null):n=this.getSelectedSourceState("includeSubfolders",!1),this.$includeSubfoldersCheckbox.prop("checked",n),this.$includeSubfoldersContainer.velocity({marginBottom:0,opacity:1},"fast"),this.showingIncludeSubfoldersCheckbox=!0}this.base()},stopSearching:function(){var t=this;this.showingIncludeSubfoldersCheckbox&&(this.$includeSubfoldersContainer.velocity("stop"),this.$includeSubfoldersContainer.velocity({marginBottom:-25,opacity:0},{duration:"fast",complete:function(){t.$includeSubfoldersContainer.addClass("hidden")}}),this.showingIncludeSubfoldersCheckbox=!1),this.base()},getViewSettings:function(){var t={};return"index"===this.settings.context&&(t.canSelectElement=function(){return!0}),t},getViewParams:function(){var t=Object.assign(this.base(),{showFolders:this.settings.showFolders&&!this.trashed,foldersOnly:this.settings.foldersOnly});return this.showingIncludeSubfoldersCheckbox&&this.$includeSubfoldersCheckbox.prop("checked")&&(t.criteria.includeSubfolders=!0),t},_onUploadStart:function(){this.setIndexBusy(),this._positionProgressBar(),this.progressBar.resetProgressBar(),this.progressBar.showProgressBar(),this.promptHandler.resetPrompts()},_onUploadProgress:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e=t instanceof CustomEvent?t.detail:e;var n=parseInt(100*Math.min(e.loaded/e.total,1),10);this.progressBar.setProgressPercentage(n)},_onUploadSuccess:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=t instanceof CustomEvent?t.detail:e.result;this.selectElementAfterUpdate(n.assetId),n.conflict&&(n.prompt={message:Craft.t("app",n.conflict,{file:n.filename}),choices:[{value:"keepBoth",title:Craft.t("app","Keep both")},{value:"replace",title:Craft.t("app","Replace it")}],modalSettings:{hideOnEsc:!1,hideOnShadeClick:!1}},this.promptHandler.addPrompt(n)),Craft.cp.runQueue()},_onUploadAlways:function(){this.uploader.isLastUpload()&&(this.progressBar.hideProgressBar(),this.setIndexAvailable(),this.promptHandler.getPromptCount()?this.promptHandler.showBatchPrompts(this._uploadFollowup.bind(this)):this._updateAfterUpload())},_onUploadFailure:function(t){var e,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=(t instanceof CustomEvent?t.detail:null==i||null===(e=i.jqXHR)||void 0===e?void 0:e.responseJSON)||{},a=r.message,s=r.filename,o=r.errors;s=s||(null==i||null===(n=i.files)||void 0===n?void 0:n[0].name);var l=o?Object.values(o).flat():[];a||(a=l.length?l.join("\n"):s?Craft.t("app","Upload failed for “{filename}”.",{filename:s}):Craft.t("app","Upload failed.")),Craft.cp.displayError(a)},_updateAfterUpload:function(){"index"!==this.settings.context&&(this.clearSearch(),this.setSelectedSortAttribute("dateCreated","desc")),this.updateElements()},_uploadFollowup:function(t){var e=this;this.setIndexBusy(),this.progressBar.resetProgressBar(),this.promptHandler.resetPrompts(),this.progressBar.setItemCount(t.length),this.progressBar.showProgressBar(),function t(n,i,r){var a={},s=null,o=e.uploader.settings,l=o.replaceAction,c=o.deleteAction,h=function(){i++,e.progressBar.incrementProcessedItemCount(1),e.progressBar.updateProgressBar(),i===n.length?r():t(n,i,r)},u=function(t){t.assetId&&e.selectElementAfterUpdate(t.assetId),h()};"replace"===n[i].choice?(s=l,a.sourceAssetId=n[i].assetId,n[i].conflictingAssetId?a.assetId=n[i].conflictingAssetId:a.targetFilename=n[i].filename):"cancel"===n[i].choice&&(s=c,a.assetId=n[i].assetId),s?Craft.sendActionRequest("POST",s,{data:a}).then((function(t){return u(t.data)})).catch((function(t){return function(t){Craft.cp.displayError(t.message),h()}(t.response.data)})):u({assetId:n[i].assetId})}(t,0,(function(){e.progressBar.hideProgressBar(),e.setIndexAvailable(),e._updateAfterUpload()}))},onUpdateElements:function(){var t=this;this._onUpdateElements(!1,this.view.getAllElements()),this.view.on("appendElements",(function(e){t._onUpdateElements(!0,e.newElements)})),this.base()},_onUpdateElements:function(t,e){var n=this;this.$listedFolders=e.find(".element[data-is-folder][data-folder-name]");for(var i=function(){var t=n.$listedFolders.eq(r),i=t.find(".label"),a=i.find(".label-link"),s=parseInt(t.data("folder-id")),o=t.data("folder-name"),l=Craft.t("app","{name} folder",{name:o});if(n.settings.disabledFolderIds.includes(s))return i.attr("aria-label",l),e.has(t).addClass("disabled"),1;var c=t.data("source-path");c&&(a.attr({href:Craft.getCpUrl(c[c.length-1].uri),role:"button","aria-label":l}),n.addListener(a,"activate",(function(t){n.sourcePath=c,n.clearSearch(!1),n.updateElements().then((function(){var t=n.$elements.find(":focusable:not(.selectallcontainer)")[0];t&&t.focus()}))})))},r=0;rr?r/2-6+i:t.height()/2-6,"index"!==this.settings.context&&(n=e+(t.height()/2-6)),this.progressBar.$progressBar.css({top:n})}},{defaults:{showFolders:!0,foldersOnly:!1,disabledFolderIds:[]}}),Craft.registerElementIndexClass("craft\\elements\\Asset",Craft.AssetIndex)},1016:function(){function t(t,n){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!i){if(Array.isArray(t)||(i=e(t))||n&&t&&"number"==typeof t.length){i&&(t=i);var r=0,a=function(){};return{s:a,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,o=!0,l=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return o=t.done,t},e:function(t){l=!0,s=t},f:function(){try{o||null==i.return||i.return()}finally{if(l)throw s}}}}function e(t,e){if(t){if("string"==typeof t)return n(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?n(t,e):void 0}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n=0;--r){var s=this.tryEntries[r],o=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var l=a.call(s,"catchLoc"),c=a.call(s,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),b}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;P(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:M(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=n),b}},i}function n(t,e,n,i,r,a,s){try{var o=t[a](s),l=o.value}catch(t){return void n(t)}o.done?e(l):Promise.resolve(l).then(i,r)}Craft.AssetSelectInput=Craft.BaseElementSelectInput.extend({$uploadBtn:null,uploader:null,progressBar:null,openPreviewTimeout:null,init:function(){this.base.apply(this,arguments),this.settings.canUpload&&this._attachUploader(),this.updateAddElementsBtn(),this.addListener(this.$elementsContainer,"keydown",this._onKeyDown.bind(this))},elementSelectSettings:function(){return Object.assign(this.base(),{makeFocusable:!0})},_onKeyDown:function(t){if(t.keyCode===Garnish.SPACE_KEY&&t.shiftKey)return this.openPreview(),t.stopPropagation(),!1},clearOpenPreviewTimeout:function(){this.openPreviewTimeout&&(clearTimeout(this.openPreviewTimeout),this.openPreviewTimeout=null)},openPreview:function(t){Craft.PreviewFileModal.openInstance?Craft.PreviewFileModal.openInstance.hide():(t||(t=this.$elements.filter(":focus").add(this.$elements.has(":focus"))),t.length&&Craft.PreviewFileModal.showForAsset(t,this.elementSelect))},_attachUploader:function(){var t=this;this.progressBar=new Craft.ProgressBar($('').appendTo(this.$container)),this.$addElementBtn&&(this.$uploadBtn=$("",{type:"button",class:"btn dashed","data-icon":"upload","aria-label":1==this.settings.limit?Craft.t("app","Upload a file"):Craft.t("app","Upload files"),"aria-describedby":this.settings.describedBy,text:1==this.settings.limit?Craft.t("app","Upload a file"):Craft.t("app","Upload files")}).insertAfter(this.$addElementBtn),this.$fileInput=$("",{type:"file",class:"hidden",multiple:1!=this.settings.limit}).insertAfter(this.$uploadBtn),Garnish.$win.trigger("resize"));var e={dropZone:this.$container,fileInput:this.$fileInput};void 0!==this.settings.criteria.kind&&(e.allowedKinds=this.settings.criteria.kind),e.canAddMoreFiles=this.canAddMoreFiles.bind(this),e.events={},e.events.fileuploadstart=this._onUploadStart.bind(this),e.events.fileuploadprogressall=this._onUploadProgress.bind(this),e.events.fileuploaddone=this._onUploadComplete.bind(this),e.events.fileuploadfail=this._onUploadFailure.bind(this),this.uploader=Craft.createUploader(this.settings.fsType,this.$container,e);var n={fieldId:this.settings.fieldId};this.settings.sourceElementId&&(n.elementId=this.settings.sourceElementId),this.settings.criteria.siteId&&(n.siteId=this.settings.criteria.siteId),this.uploader.setParams(n),this.$uploadBtn&&this.$uploadBtn.on("click",(function(e){t.$uploadBtn.next("input[type=file]").trigger("click")}))},enableAddElementsBtn:function(){this.$uploadBtn&&this.$uploadBtn.removeClass("hidden"),this.base()},disableAddElementsBtn:function(){this.$uploadBtn&&this.$uploadBtn.addClass("hidden"),this.base()},selectUploadedFile:function(t){if(this.canAddMoreElements()){var e=t.$element;e.appendTo(this.$elementsContainer);var n=-(e.outerWidth()+10);this.$addElementBtn.css("margin-"+Craft.left,n+"px");var i={};i["margin-"+Craft.left]=0,this.$addElementBtn.velocity(i,"fast"),this.addElements(e),delete this.modal}},_onUploadStart:function(){this.progressBar.$progressBar.css({top:Math.round(this.$container.outerHeight()/2)-6}),this.$container.addClass("uploading"),this.progressBar.resetProgressBar(),this.progressBar.showProgressBar()},_onUploadProgress:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e=t instanceof CustomEvent?t.detail:e;var n=parseInt(100*Math.min(e.loaded/e.total,1),10);this.progressBar.setProgressPercentage(n)},_onUploadComplete:function(t){var i=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=t instanceof CustomEvent?t.detail:r.result;Craft.sendActionRequest("POST","app/render-elements",{data:{elements:[{type:"craft\\elements\\Asset",id:a.assetId,siteId:this.settings.criteria.siteId,instances:[{context:"field",ui:["list","large"].includes(this.settings.viewMode)?"chip":"card",size:"large"===this.settings.viewMode?"large":"small"}]}]}}).then(function(){var t,r=(t=e().mark((function t(n){var r,s;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=n.data,s=Craft.getElementInfo(r.elements[a.assetId][0]),i.selectElements([s]),t.next=5,Craft.appendHeadHtml(r.headHtml);case 5:return t.next=7,Craft.appendBodyHtml(r.bodyHtml);case 7:i.uploader.isLastUpload()&&(i.progressBar.hideProgressBar(),i.$container.removeClass("uploading"),i.$container.trigger("change"));case 8:case"end":return t.stop()}}),t)})),function(){var e=this,i=arguments;return new Promise((function(r,a){var s=t.apply(e,i);function o(t){n(s,r,a,o,l,"next",t)}function l(t){n(s,r,a,o,l,"throw",t)}o(void 0)}))});return function(t){return r.apply(this,arguments)}}()).catch((function(t){if(!t||!t.response)throw Craft.cp.displayError(),t;Craft.cp.displayError(response.data.message)})),Craft.cp.runQueue()},_onUploadFailure:function(t){var e,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=(t instanceof CustomEvent?t.detail:null==i||null===(e=i.jqXHR)||void 0===e?void 0:e.responseJSON)||{},a=r.message,s=r.filename,o=r.errors;s=s||(null==i||null===(n=i.files)||void 0===n?void 0:n[0].name);var l=o?Object.values(o).flat():[];a||(a=l.length?l.join("\n"):s?Craft.t("app","Upload failed for “{filename}”.",{filename:s}):Craft.t("app","Upload failed.")),Craft.cp.displayError(a),this.progressBar.hideProgressBar(),this.$container.removeClass("uploading")},canAddMoreFiles:function(t){return!this.settings.limit||this.$elements.length+t').appendTo(this.$primaryButtons);this.$selectBtn.appendTo(e),this.$selectTransformBtn=$("",{type:"button",class:"btn menubtn disabled",text:Craft.t("app","Select transform")}).appendTo(e);for(var n=$('').insertAfter(this.$selectTransformBtn),i=$("
",{class:"".concat(h.class," ").concat(h.type,"-cell"),width:h.width}),Craft.inArray(h.type,Craft.EditableTable.textualColTypes)&&c.addClass("textual"),h.code&&c.addClass("code"),h.type){case"checkbox":$('').append(Craft.ui.createCheckbox({name:d,value:h.value||"1",checked:!!u})).appendTo(c);break;case"color":Craft.ui.createColorInput({name:d,value:"object"!==t(u)?u:null,small:!0}).appendTo(c);break;case"date":Craft.ui.createDateInput({name:d,value:u}).appendTo(c);break;case"lightswitch":Craft.ui.createLightswitch({name:d,value:h.value||"1",on:!!u,small:!0}).appendTo(c);break;case"select":Craft.ui.createSelect({name:d,options:h.options,value:u||function(){for(var t in h.options)if(h.options.hasOwnProperty(t)&&h.options[t].default)return void 0!==h.options[t].value?h.options[t].value:t;return null}(),class:"small"}).appendTo(c);break;case"time":Craft.ui.createTimeInput({name:d,value:u}).appendTo(c);break;case"email":case"url":Craft.ui.createTextInput({name:d,value:"object"!==t(u)?u:null,type:h.type,placeholder:h.placeholder||null}).appendTo(c);break;default:$("",{name:d,rows:h.rows||1,val:"object"!==t(u)?u:null,placeholder:h.placeholder}).appendTo(c)}}c.appendTo(o)}return a&&$("
",{class:"thin action"}).append($("",{class:"delete icon",title:Craft.t("app","Delete"),type:"button"})).appendTo(o),o}}),Craft.EditableTable.Row=Garnish.Base.extend({table:null,id:null,niceTexts:null,$tr:null,$tds:null,tds:null,$textareas:null,$deleteBtn:null,init:function(t,e){this.table=t,this.$tr=$(e),this.$tds=this.$tr.children(),this.tds=[],this.id=this.$tr.attr("data-id"),this.$tr.data("editable-table-row",this);var n=parseInt(this.id.substring(this.table.settings.rowIdPrefix.length));n>this.table.biggestId&&(this.table.biggestId=n),this.$textareas=$(),this.niceTexts=[];var i,r,a,s,o={},l=0;for(i in this.table.columns)if(this.table.columns.hasOwnProperty(i)){if(r=this.table.columns[i],a=this.tds[i]=this.$tds[l],Craft.inArray(r.type,Craft.EditableTable.textualColTypes)){$(".editable-table-preview",a).remove();var c=$("textarea",a);this.$textareas=this.$textareas.add(c),this.addListener(c,"focus","onTextareaFocus"),this.addListener(c,"mousedown","ignoreNextTextareaFocus"),this.niceTexts.push(new Garnish.NiceText(c,{onHeightChange:this.onTextareaHeightChange.bind(this)})),this.addListener(c,"keypress",{tdIndex:l,type:r.type},"handleKeypress"),this.addListener(c,"input",{type:r.type},"validateValue"),c.trigger("input"),"multiline"!==r.type&&this.addListener(c,"paste",{tdIndex:l,type:r.type},"handlePaste"),o[i]=c}else"checkbox"===r.type&&(s=$('input[type="checkbox"]',a),r.radioMode&&(void 0===this.table.radioCheckboxes[i]&&(this.table.radioCheckboxes[i]=[]),this.table.radioCheckboxes[i].push(s[0]),this.addListener(s,"change",{colId:i},"onRadioCheckboxChange")),r.toggle&&this.addListener(s,"change",{colId:i},(function(t){this.applyToggleCheckbox(t.data.colId)})));$(a).hasClass("disabled")||this.addListener(a,"click",{td:a},(function(t){t.target===t.data.td&&$(t.data.td).find("textarea,input,select,.lightswitch").focus()})),l++}for(i in this.onTextareaHeightChange(),this.table.columns)this.table.columns.hasOwnProperty(i)&&"checkbox"===(r=this.table.columns[i]).type&&r.toggle&&this.applyToggleCheckbox(i);for(i in this.table.columns)this.table.columns.hasOwnProperty(i)&&(!(r=this.table.columns[i]).autopopulate||void 0===o[r.autopopulate]||o[i].val()||o[r.autopopulate].val()||new Craft.HandleGenerator(o[i],o[r.autopopulate],{allowNonAlphaStart:!0}));var h=this.$tr.children().last().find(".delete");this.addListener(h,"click","deleteRow");var u=this.$tr.find("input,textarea,select,.lightswitch");this.addListener(u,"focus",(function(t){$(t.currentTarget).closest("td:not(.disabled)").addClass("focus")})),this.addListener(u,"blur",(function(t){$(t.currentTarget).closest("td").removeClass("focus")}))},onTextareaFocus:function(t){this.onTextareaHeightChange();var e=$(t.currentTarget);e.data("ignoreNextFocus")?e.data("ignoreNextFocus",!1):window.setTimeout((function(){Craft.selectFullValue(e)}),0)},onRadioCheckboxChange:function(t){if(t.currentTarget.checked)for(var e=0;et&&(t=this.niceTexts[e].height);this.$textareas.css("min-height",t);var n=this.$textareas.filter(":visible").first().parent().height();n>t&&this.$textareas.css("min-height",n)},deleteRow:function(){this.table.deleteRow(this)}},{numericKeyCodes:[9,8,37,38,39,40,45,91,46,190,48,49,50,51,52,53,54,55,56,57]})},8468:function(){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(){"use strict";e=function(){return i};var n,i={},r=Object.prototype,a=r.hasOwnProperty,s=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},l=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",h=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(n){u=function(t,e,n){return t[e]=n}}function d(t,e,n,i){var r=e&&e.prototype instanceof y?e:y,a=Object.create(r.prototype),o=new A(i||[]);return s(a,"_invoke",{value:E(t,n,o)}),a}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}i.wrap=d;var p="suspendedStart",g="suspendedYield",m="executing",v="completed",b={};function y(){}function C(){}function $(){}var w={};u(w,l,(function(){return this}));var _=Object.getPrototypeOf,S=_&&_(_(M([])));S&&S!==r&&a.call(S,l)&&(w=S);var x=$.prototype=y.prototype=Object.create(w);function T(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function I(e,n){function i(r,s,o,l){var c=f(e[r],e,s);if("throw"!==c.type){var h=c.arg,u=h.value;return u&&"object"==t(u)&&a.call(u,"__await")?n.resolve(u.__await).then((function(t){i("next",t,o,l)}),(function(t){i("throw",t,o,l)})):n.resolve(u).then((function(t){h.value=t,o(h)}),(function(t){return i("throw",t,o,l)}))}l(c.arg)}var r;s(this,"_invoke",{value:function(t,e){function a(){return new n((function(n,r){i(t,e,n,r)}))}return r=r?r.then(a,a):a()}})}function E(t,e,i){var r=p;return function(a,s){if(r===m)throw new Error("Generator is already running");if(r===v){if("throw"===a)throw s;return{value:n,done:!0}}for(i.method=a,i.arg=s;;){var o=i.delegate;if(o){var l=L(o,i);if(l){if(l===b)continue;return l}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if(r===p)throw r=v,i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);r=m;var c=f(t,e,i);if("normal"===c.type){if(r=i.done?v:g,c.arg===b)continue;return{value:c.arg,done:i.done}}"throw"===c.type&&(r=v,i.method="throw",i.arg=c.arg)}}}function L(t,e){var i=e.method,r=t.iterator[i];if(r===n)return e.delegate=null,"throw"===i&&t.iterator.return&&(e.method="return",e.arg=n,L(t,e),"throw"===e.method)||"return"!==i&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+i+"' method")),b;var a=f(r,t.iterator,e.arg);if("throw"===a.type)return e.method="throw",e.arg=a.arg,e.delegate=null,b;var s=a.arg;return s?s.done?(e[t.resultName]=s.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,b):s:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,b)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function A(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function M(e){if(e||""===e){var i=e[l];if(i)return i.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,s=function t(){for(;++r=0;--r){var s=this.tryEntries[r],o=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var l=a.call(s,"catchLoc"),c=a.call(s,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),b}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;P(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:M(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=n),b}},i}function n(t,e,n,i,r,a,s){try{var o=t[a](s),l=o.value}catch(t){return void n(t)}o.done?e(l):Promise.resolve(l).then(i,r)}function i(t){return function(){var e=this,i=arguments;return new Promise((function(r,a){var s=t.apply(e,i);function o(t){n(s,r,a,o,l,"next",t)}function l(t){n(s,r,a,o,l,"throw",t)}o(void 0)}))}}var r,a;Craft.ElementActionTrigger=Garnish.Base.extend({elementIndex:null,maxLevels:null,newChildUrl:null,$trigger:null,$selectedItems:null,triggerEnabled:!0,init:function(t){if(this.elementIndex=Craft.currentElementIndex,this.elementIndex.triggers.push(this),$.isPlainObject(t)||(t={}),void 0!==t.batch&&(t.bulk=t.batch,delete t.batch),Object.defineProperty(t,"batch",{get:function(){return this.bulk},set:function(t){this.bulk=t}}),this.setSettings(t,Craft.ElementActionTrigger.defaults),this.$trigger=$("#".concat(this.elementIndex.namespaceId(t.type),"-actiontrigger")).data("trigger",this),this.settings.activate){this.$trigger.data("custom-handler",!0);var e=this.$trigger.find("button,.btn");e.length||(e=this.$trigger),this.addListener(e,"activate","handleTriggerActivation")}this.updateTrigger(),this.elementIndex.on("selectionChange",this.updateTrigger.bind(this))},updateTrigger:function(){0!==this.elementIndex.getSelectedElements().length&&(this.validateSelection()?this.enableTrigger():this.disableTrigger())},validateSelection:function(){var t=this;return this.$selectedItems=this.elementIndex.getSelectedElements(),!(!this.settings.bulk&&this.$selectedItems.length>1)&&(!this.settings.requireId||!this.$selectedItems.is('[data-id=""]'))&&("function"!=typeof this.settings.validateSelection||this._call((function(){return t.settings.validateSelection(t.$selectedItems,t.elementIndex)})))},enableTrigger:function(){this.triggerEnabled||(this.$trigger.removeClass("disabled").removeAttr("aria-disabled"),this.triggerEnabled=!0)},disableTrigger:function(){this.triggerEnabled&&(this.$trigger.addClass("disabled").attr("aria-disabled","true"),this.triggerEnabled=!1)},handleTriggerActivation:function(){var t=this;this.triggerEnabled&&this._call((function(){return t.settings.activate(t.$selectedItems,t.elementIndex)}))},_call:function(t){var e=Craft.elementIndex;Craft.elementIndex=this.elementIndex;var n=t();return Craft.elementIndex=e,n}},{defaults:{type:null,bulk:!0,requireId:!0,validateSelection:null,beforeActivate:(a=i(e().mark((function t(n,i){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:case"end":return t.stop()}}),t)}))),function(t,e){return a.apply(this,arguments)}),activate:null,afterActivate:(r=i(e().mark((function t(n,i){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:case"end":return t.stop()}}),t)}))),function(t,e){return r.apply(this,arguments)})}})},5049:function(){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function n(t){for(var n=1;n=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw a}}}}function r(e,n,i){var r;return r=function(e,n){if("object"!=t(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var r=i.call(e,"string");if("object"!=t(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n),(n="symbol"==t(r)?r:String(r))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e}function a(){"use strict";a=function(){return n};var e,n={},i=Object.prototype,r=i.hasOwnProperty,s=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},l=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",h=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(e){u=function(t,e,n){return t[e]=n}}function d(t,e,n,i){var r=e&&e.prototype instanceof y?e:y,a=Object.create(r.prototype),o=new A(i||[]);return s(a,"_invoke",{value:E(t,n,o)}),a}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}n.wrap=d;var p="suspendedStart",g="suspendedYield",m="executing",v="completed",b={};function y(){}function C(){}function $(){}var w={};u(w,l,(function(){return this}));var _=Object.getPrototypeOf,S=_&&_(_(M([])));S&&S!==i&&r.call(S,l)&&(w=S);var x=$.prototype=y.prototype=Object.create(w);function T(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function I(e,n){function i(a,s,o,l){var c=f(e[a],e,s);if("throw"!==c.type){var h=c.arg,u=h.value;return u&&"object"==t(u)&&r.call(u,"__await")?n.resolve(u.__await).then((function(t){i("next",t,o,l)}),(function(t){i("throw",t,o,l)})):n.resolve(u).then((function(t){h.value=t,o(h)}),(function(t){return i("throw",t,o,l)}))}l(c.arg)}var a;s(this,"_invoke",{value:function(t,e){function r(){return new n((function(n,r){i(t,e,n,r)}))}return a=a?a.then(r,r):r()}})}function E(t,n,i){var r=p;return function(a,s){if(r===m)throw new Error("Generator is already running");if(r===v){if("throw"===a)throw s;return{value:e,done:!0}}for(i.method=a,i.arg=s;;){var o=i.delegate;if(o){var l=L(o,i);if(l){if(l===b)continue;return l}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if(r===p)throw r=v,i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);r=m;var c=f(t,n,i);if("normal"===c.type){if(r=i.done?v:g,c.arg===b)continue;return{value:c.arg,done:i.done}}"throw"===c.type&&(r=v,i.method="throw",i.arg=c.arg)}}}function L(t,n){var i=n.method,r=t.iterator[i];if(r===e)return n.delegate=null,"throw"===i&&t.iterator.return&&(n.method="return",n.arg=e,L(t,n),"throw"===n.method)||"return"!==i&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+i+"' method")),b;var a=f(r,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,b;var s=a.arg;return s?s.done?(n[t.resultName]=s.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,b):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,b)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function A(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function M(n){if(n||""===n){var i=n[l];if(i)return i.call(n);if("function"==typeof n.next)return n;if(!isNaN(n.length)){var a=-1,s=function t(){for(;++a=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var l=r.call(s,"catchLoc"),c=r.call(s,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),b}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;P(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:M(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),b}},n}function s(t,e,n,i,r,a,s){try{var o=t[a](s),l=o.value}catch(t){return void n(t)}o.done?e(l):Promise.resolve(l).then(i,r)}function o(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var a=t.apply(e,n);function o(t){s(a,i,r,o,l,"next",t)}function l(t){s(a,i,r,o,l,"throw",t)}o(void 0)}))}}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,r,a,s,o=[],l=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=a.call(n)).done)&&(o.push(i.value),o.length!==e);l=!0);}catch(t){c=!0,r=t}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(t,e)||c(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,e){if(t){if("string"==typeof t)return h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(t,e):void 0}}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n",{class:"revision-spinner spinner hidden",title:Craft.t("app","Saving")}).appendTo(g),this.$statusIcon=$("",{class:"revision-status ".concat(this.isFullPage?"invisible":"hidden")}).appendTo(g),this.$statusMessage=$("",{class:"revision-status-message visually-hidden","aria-live":"polite"}).appendTo(g),this.$expandSiteStatusesBtn=$(".expand-status-btn"),this.settings.canEditMultipleSites&&this.addListener(this.$expandSiteStatusesBtn,"click","expandSiteStatuses"),this.settings.previewTargets.length&&this.isFullPage){this.settings.enablePreview&&this.addListener(this.$previewBtn,"click","openPreview");var m=this.$container.find(".preview-btn-container");if(1===this.settings.previewTargets.length){var v=l(this.settings.previewTargets,1)[0];this.createPreviewLink(v).addClass("view-btn btn").attr("aria-label",Craft.t("app","View")).appendTo(m)}else this.createShareMenu(m)}if(this.settings.canSave){if("FORM"!==this.$container.prop("tagName"))throw"Element editors may only be used with forms.";this.isFullPage&&Craft.edition!==Craft.Solo&&(this.$activityContainer=this.$container.find(".activity-container"),this._checkActivity()),this.$container.data("serializer",(function(){return o.serializeForm(!0)})),this.$container.data("initialSerializedValue",this.serializeForm(!0)),Garnish.requestAnimationFrame((function(){o.$container.data("initialSerializedValue",o.serializeForm(!0))})),this.slideout||this.addListener(this.$container,"submit","handleSubmit"),this.settings.isProvisionalDraft?this.initForProvisionalDraft():this.settings.draftId&&!this.settings.isUnpublishedDraft?this.initForDraft():this.settings.canSaveCanonical||this.addListener(this.$container,"submit.saveShortcut",(function(t){t.saveShortcut&&(t.preventDefault(),o.saveDraft(),o.removeListener(o.$container,"submit.saveShortcut"))})),this.listenForChanges(),this.addListener(this.$statusIcon,"click",(function(){o.showStatusHud(o.$statusIcon)})),this.handleDismissibleTips(),this.isFullPage&&Craft.messageReceiver&&Craft.broadcaster.addEventListener("message",(function(t){if("saveDraft"===t.data.event&&t.data.canonicalId===o.settings.canonicalId&&(t.data.draftId===o.settings.draftId||t.data.isProvisionalDraft&&!o.settings.draftId)||"saveElement"===t.data.event&&t.data.id===o.settings.canonicalId&&!o.settings.draftId)(o.settings.reloadOnBroadcastSave||t.data.draftId!==o.settings.draftId)&&(Craft.setUrl(Craft.getUrl(document.location.href,{scrollY:window.scrollY})),window.location.reload());else if("deleteDraft"===t.data.event&&t.data.canonicalId===o.settings.canonicalId&&t.data.draftId===o.settings.draftId){var e=new URL(window.location.href);e.searchParams.delete("draftId"),e.href!==document.location.href?window.location.href=e:(Craft.setUrl(Craft.getUrl(document.location.href,{scrollY:window.scrollY})),window.location.reload())}})),this.activityTooltips={},this.isFullPage&&Craft.ui.setFocusOnErrorSummary(this.$container)}},_createQueue:function(){var t=this,e=new Craft.Queue;return e.on("beforeRun",(function(){t.showSpinner()})),e.on("afterRun",(function(){t.hideSpinner()})),e},get namespace(){return this.settings.namespace},namespaceInputName:function(t){return Craft.namespaceInputName(t,this.namespace)},namespaceId:function(t){return Craft.namespaceId(t,this.namespace)},get listeningForChanges(){return!!this.formObserver},get pauseLevel(){var t,e;return null!==(t=null===(e=this.formObserver)||void 0===e?void 0:e._pauseLevel)&&void 0!==t?t:0},listenForChanges:function(){var t=this;this.formObserver||(this.formObserver=new Craft.FormObserver(this.$container,(function(){t.checkForm()})))},stopListeningForChanges:function(){this.formObserver&&(this.formObserver.destroy(),this.formObserver=null)},pause:function(){var t;null===(t=this.formObserver)||void 0===t||t.pause()},resume:function(){var t;null===(t=this.formObserver)||void 0===t||t.resume()},initForProvisionalDraft:function(){var t,e=this,n=this.$container.find(".discard-changes-btn");if(!n.length){var i,r,a,s=null!==(i=this.settings.$noticeContainer)&&void 0!==i?i:this.isFullPage?Craft.cp.$noticeContainer:this.$container.find(".so-notice");this.isFullPage&&(r=$("#content").height(),a=Garnish.$win.scrollTop());var o=$("",{class:"draft-notice"}).append($("",{class:"draft-icon","aria-hidden":"true","data-icon":"edit"})).append($("",{text:Craft.t("app","Showing your unsaved changes.")})).appendTo(s);if(n=$("",{type:"button",class:"discard-changes-btn btn",text:Craft.t("app","Discard")}).appendTo(o),this.isFullPage){var l=$("#content").height()-r;if(Garnish.$win.scrollTop(a+l),Garnish.$win.scrollTop()===a){Craft.cp.$contentContainer.css("pointer-events","none"),$("#content-header").css("min-height","auto");var c=s.height();s.css({height:c-l,overflow:"hidden"}).velocity({height:c},"fast",(function(){$("#content-header").css("min-height",""),s.css({height:"",overflow:""}),setTimeout((function(){Craft.cp.$contentContainer.css("pointer-events","")}),300)}))}}}this.addListener(n,"keypress,keyup,change,focus,blur,click,mousedown,mouseup",(function(t){t.stopPropagation()})),this.addListener(n,"click",(function(){confirm(Craft.t("app","Are you sure you want to discard your changes?"))&&e.queue.unshift((function(){return new Promise((function(t,n){e.isFullPage?Craft.submitForm(e.$container,{action:"elements/delete-draft",redirect:e.settings.hashedCpEditUrl,params:{draftId:e.settings.draftId,provisional:1}}):Craft.sendActionRequest("POST","elements/delete-draft",{data:{elementId:e.settings.canonicalId,draftId:e.settings.draftId,provisional:1}}).then((function(t){var n;Craft.cp.displaySuccess(t.data.message),Craft.broadcaster.postMessage({event:"saveElement",id:e.settings.canonicalId}),null===(n=e.slideout)||void 0===n||n.close()})).catch(n)}))}))})),this.isFullPage||null===(t=this.slideout)||void 0===t||t.$cancelBtn.text(Craft.t("app","Close"))},initForDraft:function(){var t=this;this.createEditMetaAction(),this.settings.canSaveCanonical&&Garnish.uiLayerManager.registerShortcut({keyCode:Garnish.S_KEY,ctrl:!0,alt:!0},(function(){Craft.submitForm(t.$container,{action:"elements/apply-draft",redirect:t.settings.hashedCpEditUrl})}),0)},expandSiteStatuses:function(){var t=this;this.removeListener(this.$expandSiteStatusesBtn,"click"),this.$expandSiteStatusesBtn.velocity({opacity:0},"fast",(function(){t.$expandSiteStatusesBtn.remove()}));var e=this.$container.find(".enabled-for-site-".concat(this.settings.siteId,"-field"));if(this.$siteStatusPane=e.parent(),this.settings.revisionId)this._getOtherSupportedSites().forEach((function(e){return t._createSiteStatusField(e)}));else{e.addClass("nested");var n=Craft.ui.createLightswitchField({label:Craft.t("app","Enabled for all sites"),name:this.namespaceInputName("enabled")}).insertBefore(e);n.find("label").css("font-weight","bold"),this.$globalLightswitch=n.find(".lightswitch"),this.settings.revisionId||this._showField(n);var i=Object.values(this.settings.siteStatuses),r=i.includes(!0),a=i.includes(!1),s=r&&a?"-":r?"1":"",o=encodeURIComponent(this.namespaceInputName("enabledForSite[".concat(this.settings.siteId,"]")))+"="+(this.settings.enabledForSite?"1":"");this.$siteLightswitches=e.find(".lightswitch").on("change",this._updateGlobalStatus.bind(this)),this._getOtherSupportedSites().forEach((function(e){return t._createSiteStatusField(e)}));for(var l=encodeURIComponent(this.namespaceInputName("enabled"))+"=".concat(s),c=0;c",{text:Craft.t("app","Add a site..."),class:"visually-hidden",id:i}),a=Craft.ui.createSelect({options:[{label:Craft.t("app","Add a site…")}].concat((t=n.map((function(t){return{label:t.name,value:t.id}})),function(t){if(Array.isArray(t))return h(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||c(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())),labelledBy:i}).addClass("fullwidth");this.$additionalSiteField=Craft.ui.createField(a,{}).addClass("nested add").appendTo(this.$siteStatusPane),r.prependTo(this.$additionalSiteField);var s=a.find("select");s.on("change",(function(){var t=parseInt(s.val()),n=Craft.sites.find((function(e){return e.id===t}));if(n){var i=e.settings.additionalSites.find((function(t){return t.siteId==n.id}));e._createSiteStatusField(n,i.enabledByDefault),e._updateGlobalStatus(),s.val("").find('option[value="'.concat(t,'"]')).remove(),null===e.newSiteIds&&(e.newSiteIds=[]),e.siteIds.push(t),e.newSiteIds.push(t),1===s.find("option").length&&e._removeField(e.$additionalSiteField)}})),this._showField(this.$additionalSiteField)}},showStatusHud:function(t){var e;this.failed?(e='
'.concat(this._saveFailMessage(),"
"),this.httpError&&(e+='
'.concat(Craft.escapeHtml(this.httpError),"
")),400===this.httpStatus&&(e+='"))):e="
".concat(this._saveSuccessMessage(),"
");var n=new Garnish.HUD(t,e,{hudClass:"hud revision-status-hud",onHide:function(){n.destroy()}});n.$mainContainer.find(".refresh-btn").on("click",(function(){window.location.reload()}))},_saveSuccessMessage:function(){return this.settings.isProvisionalDraft||this.settings.isUnpublishedDraft?Craft.t("app","Your changes have been stored."):Craft.t("app","The draft has been saved.")},_saveFailMessage:function(){return this.settings.isProvisionalDraft||this.settings.isUnpublishedDraft?Craft.t("app","Your changes could not be stored."):Craft.t("app","The draft could not be saved.")},spinners:function(){return this.$spinner},showSpinner:function(){this.spinners().removeClass("hidden")},hideSpinner:function(){this.spinners().addClass("hidden")},statusIcons:function(){return this.$statusIcon},statusMessage:function(){return this.$statusMessage},createEditMetaAction:function(){if(this.isFullPage){var t=$("#action-menu").disclosureMenu().data("disclosureMenu"),e=t.getFirstDestructiveGroup(),n=t.addGroup(null,!0,e),i=t.addItem({type:"button",icon:"edit",label:Craft.t("app","Edit draft settings")},n);this.addListener(i,"click","showMetaModal")}},createPreviewLink:function(t,e){var n=this,i=$("",{href:this.getTokenizedPreviewUrl(t.url,null,!1),text:e||Craft.t("app","View"),target:"_blank",data:{targetUrl:t.url,targetLabel:t.label}});return this.addListener(i,"click",(function(){setTimeout((function(){n.activatePreviewToken()}),1)})),this.previewLinks.push(i),i},updatePreviewLinks:function(){var t=this;this.previewLinks.forEach((function(e){t.updatePreviewLinkHref(e),t.activatedPreviewToken&&t.removeListener(e,"click")}))},updatePreviewLinkHref:function(t){t.attr("href",this.getTokenizedPreviewUrl(t.data("targetUrl"),null,!1))},activatePreviewToken:function(){this.settings.isLive||(this.activatedPreviewToken=!0,this.updatePreviewLinks())},createShareMenu:function(t){var e=this,n=$("",{type:"button",class:"view-btn btn menubtn",text:Craft.t("app","View")}).appendTo(t),i=$("",{class:"menu"}).appendTo(t),r=$("
").appendTo(i);this.settings.previewTargets.forEach((function(t){$("").append(e.createPreviewLink(t,t.label)).appendTo(r)})),new Garnish.MenuBtn(n)},getPreviewTokenParams:function(){var t={elementType:this.settings.elementType,canonicalId:this.settings.canonicalId,siteId:this.settings.siteId,revisionId:this.settings.revisionId,previewToken:this.settings.previewToken};return this.settings.draftId&&!this.settings.isProvisionalDraft&&(t.draftId=this.settings.draftId),t},getPreviewToken:function(){var t=this;return this.previewTokenQueue.push((function(){return new Promise((function(e,n){t.activatedPreviewToken?e(t.settings.previewToken):Craft.sendActionRequest("POST","preview/create-token",{data:t.getPreviewTokenParams()}).then((function(){t.activatePreviewToken(),e(t.settings.previewToken)})).catch(n)}))}))},getTokenizedPreviewUrl:function(t,e,n){var i=this;void 0===n&&(n=!0);var r={};if(!e&&this.settings.isLive||(r[e||"x-craft-preview"]=Craft.randomString(10)),this.settings.siteToken&&(r[Craft.siteToken]=this.settings.siteToken),this.settings.isLive){var a=Craft.getUrl(t,r);return n?new Promise((function(t){t(a)})):a}if(!this.settings.previewToken)throw"Missing preview token";r[Craft.tokenParam]=this.settings.previewToken;var s=Craft.getUrl(t,r);if(this.activatedPreviewToken)return n?new Promise((function(t){t(s)})):s;if(n)return new Promise((function(t,e){i.getPreviewToken().then((function(){t(s)})).catch(e)}));var o=this.getPreviewTokenParams();return o.redirect=s,Craft.getActionUrl("preview/create-token",o)},getPreview:function(){var t,e,n,i=this;return this.preview&&!this.preview.isVisible&&(null===(t=this.preview.elementEditor)||void 0===t?void 0:t.settings.updatedTimestamp)!==this.settings.updatedTimestamp&&(this.preview.destroy(),delete this.preview),this.preview||(this.preview=new Craft.Preview({elementType:this.settings.elementType,elementId:this.settings.isProvisionalDraft?this.settings.canonicalId:this.settings.elementId,draftId:this.settings.isProvisionalDraft?null:this.settings.draftId,revisionId:this.settings.revisionId,siteId:this.settings.siteId,onBeforeLoad:(n=o(a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,i.checkForm(!1,!0);case 2:case"end":return t.stop()}}),t)}))),function(){return n.apply(this,arguments)})}),this.preview.on("open",(function(){e=i.settings.updatedTimestamp,i.pause()})),this.preview.on("close",o(a().mark((function t(){var n,r,s,o;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i.$previewBtn&&i.$previewBtn.focus(),i.settings.updatedTimestamp===e){t.next=4;break}return t.next=4,i.refreshContent();case 4:null!==(s=null!==(n=null===(r=i.preview.tabManager)||void 0===r?void 0:r.getSelectedTabIndex())&&void 0!==n?n:null)&&(null===(o=i.tabManager)||void 0===o||o.selectTab(s)),i.resume();case 7:case"end":return t.stop()}}),t)})))),this.preview.on("afterSaveDraft",(function(t){var e=t.response;i._handleSaveDraftResponse(e)}))),this.preview},openPreview:(d=o(a().mark((function t(){var e,n,i,r,s;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Garnish.hasAttr(this.$previewBtn,"aria-disabled")){t.next=2;break}return t.abrupt("return");case 2:return this.$previewBtn.attr("aria-disabled",!0),t.prev=3,i=this.getPreview(),t.next=7,i.open();case 7:null!==(r=null!==(e=null===(n=this.tabManager)||void 0===n?void 0:n.getSelectedTabIndex())&&void 0!==e?e:null)&&(null===(s=i.tabManager)||void 0===s||s.selectTab(r));case 9:return t.prev=9,this.$previewBtn.removeAttr("aria-disabled"),t.finish(9);case 12:case"end":return t.stop()}}),t,this,[[3,,9,12]])}))),function(){return d.apply(this,arguments)}),ensureIsDraftOrRevision:function(t){var e=this;return new Promise((function(n,i){if(e.settings.draftId||e.settings.revisionId)n();else{if(t&&e.serializeForm(!0)===e.$container.data("initialSerializedValue"))return void n();e.saveDraft().then(n).catch(i)}}))},setFormValue:function(t,e){var n=this;return o(a().mark((function i(){return a().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(!n.settings.revisionId){i.next=2;break}throw"Unable to set form values on a revision.";case 2:return i.next=4,n.checkForm();case 4:if(!n.$container.serialize().split("&").includes("".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e)))){i.next=7;break}return i.abrupt("return");case 7:if($("",{type:"hidden",name:t,value:e}).prependTo(n.$container),!n.settings.canCreateDrafts){i.next=11;break}return i.next=11,n.saveDraft();case 11:case"end":return i.stop()}}),i)})))()},markDeltaNameAsModified:function(t){var e=this;return o(a().mark((function n(){var i;return a().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if((i=e.$container.data("modified-delta-names")||[]).includes(t)){n.next=6;break}return i.push(t),e.$container.data("modified-delta-names",i),n.next=6,e.saveDraft();case 6:case"end":return n.stop()}}),n)})))()},serializeForm:function(t){var e=this.$container.serialize();if(t&&!this.settings.isUnpublishedDraft){var n=encodeURIComponent(this.namespaceInputName("action")),i=encodeURIComponent(this.namespaceInputName("redirect"));e=(e=e.replace(new RegExp("&".concat(Craft.escapeRegex(n),"=[^&]*")),"")).replace(new RegExp("&".concat(Craft.escapeRegex(i),"=[^&]*")),"")}return e.replace(/&elementindex-[^&]*/g,"")},checkForm:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return this.queue.push((function(){return new Promise((function(i,r){if(e.settings.revisionId)i();else if(void 0!==e.$container.data("initialSerializedValue")){var a=e.serializeForm(!0);t||a!==(e.lastSerializedValue||e.$container.data("initialSerializedValue"))?(null!=n?n:e.enableAutosave)&&e.settings.canCreateDrafts?e._saveDraftInternal(a).then(i).catch((function(t){console.warn("Couldn’t save draft:",t),r(t)})):e.updateFieldLayout(a).then(i).catch((function(t){console.warn("Couldn’t update field layout:",t),r(t)})):i()}else setTimeout((function(){e.checkForm(t).then(i).catch(r)}),500)}))}))},refreshContent:function(t){var e=this;return o(a().mark((function n(){var i;return a().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e.settings.visibleLayoutElements=[],(i=[e.serializeForm(!0)]).push($.param(r({},e.namespaceInputName("applyParams"),0))),t&&!$.isEmptyObject(t)&&i.push($.param(t)),n.next=6,e.updateFieldLayout(i.join("&"));case 6:case"end":return n.stop()}}),n)})))()},isPreviewActive:function(){return this.preview&&this.preview.isActive},saveDraft:function(t){var e=this;return this.queue.push((function(){return new Promise((function(n,i){e._saveDraftInternal(e.serializeForm(!0),t).then(n).catch(i)}))}))},_saveDraftInternal:function(t,e){var a=this;return new Promise((function(e,s){if(a.submittingForm)s("Form already being submitted.");else{a.lastSerializedValue=t,a.failed=!1,a.httpStatus=null,a.httpError=null,a.cancelToken=axios.CancelToken.source(),a.statusIcons().velocity("stop").css("opacity","").removeClass("hidden invisible checkmark-icon alert-icon fade-out").addClass("hidden"),a.statusMessage().empty(),a.$saveMetaBtn&&a.$saveMetaBtn.addClass("active");var o,c=l(Craft.findModifiedDeltaNames(a.$container.data("initialSerializedValue"),t,a.$container.data("delta-names"),a.$container.data("initial-delta-values"),a.$container.data("modified-delta-names"),!0),1)[0],h=a.prepareData(t,null,!0),u=$(),d=i(c);try{for(d.s();!(o=d.n()).done;){var f=o.value,p=u=u.add(a.$container.find('.field[data-base-input-name="'.concat($.escapeSelector(f),'"]')));u=u.add(p).add(p.parentsUntil(a.$container,".field"))}}catch(t){d.e(t)}finally{d.f()}h.push($.param(r({},a.namespaceInputName("visibleLayoutElements"),a.settings.visibleLayoutElements))),!a.settings.isProvisionalDraft&&a.settings.draftId||h.push("".concat(a.namespaceInputName("provisional"),"=1"));var g=a.$contentContainer.children("[data-layout-tab]:not(.hidden)").data("id");g&&h.push("".concat(a.namespaceInputName("selectedTab"),"=").concat(g)),Craft.sendActionRequest("POST","elements/save-draft",{cancelToken:a.cancelToken.token,headers:a._saveHeaders,data:h.join("&")}).then((function(i){var r;a._afterSaveDraft(),a._afterUpdateFieldLayout(t,g,i),a._handleSaveDraftResponse(i),$.isPlainObject(i.data.draftElementUids)&&(a.draftElementUids=n(n({},a.draftElementUids),i.data.draftElementUids));var s=i.data.modifiedAttributes.map((function(t){return t=a.namespaceInputName(t),['[name="'.concat(t,'"]'),'[name^="'.concat(t,'["]')]})).flat().join(",");u=u.add(a.$contentContainer.find(s).parentsUntil(a.$container,".flex-fields > .field")).add(null===(r=a.$sidebar)||void 0===r?void 0:r.find(s).closest(".field")).not(":has(> .status-badge)");for(var o=0;o",{class:"status-badge modified",title:Craft.t("app","This field has been modified.")}).append($("",{class:"visually-hidden",html:Craft.t("app","This field has been modified.")})));a.afterUpdate(t),a.trigger("afterSaveDraft",{response:i}),Craft.broadcaster&&Craft.broadcaster.postMessage({pageId:Craft.pageId,event:"saveDraft",canonicalId:a.settings.canonicalId,draftId:a.settings.draftId,isProvisionalDraft:a.settings.isProvisionalDraft}),e()})).catch((function(t){a._afterSaveDraft(),a.ignoreFailedRequest||(a.failed=!0,t&&t.response&&(a.httpStatus=t.response.status,a.httpError=t.response.data?t.response.data.message:null),a._showFailStatus(),s(t)),a.ignoreFailedRequest=!1}))}}))},_handleSaveDraftResponse:function(t){var e=this,i=!this.settings.draftId;i&&(this.settings.isProvisionalDraft=!0),this.isFullPage&&(t.data.title&&this.$container.find(".screen-title").text(t.data.title),t.data.docTitle&&(document.title=t.data.docTitle)),this.newSiteIds&&(this.newSiteIds.forEach((function(t){var n=e.settings.additionalSites.find((function(e){return e.siteId==t})),i=!n||void 0===n.enabledByDefault||n.enabledByDefault;Craft.cp.showSiteCrumbMenuItem(t),Craft.cp.setSiteCrumbMenuItemStatus(t,i?"enabled":"disabled")})),this.newSiteIds=null),this.settings.isProvisionalDraft?i&&(this.$container.find("input.action-input").attr("value","elements/apply-draft"),this.settings.elementId=t.data.elementId,this.settings.draftId=t.data.draftId,this.settings.isLive=!1,this.previewToken=null,this.initForProvisionalDraft()):(this.settings.draftName=t.data.draftName,this.isFullPage&&Craft.cp.updateContext(t.data.draftName,t.data.creator?Craft.t("app","Saved {timestamp} by {creator}",{timestamp:t.data.timestamp,creator:t.data.creator}):Craft.t("app","Saved {timestamp}",{timestamp:t.data.timestamp}))),t.data.previewTargets&&JSON.stringify(t.data.previewTargets)!==JSON.stringify(this.settings.previewTargets)&&this.updatePreviewTargets(t.data.previewTargets),i&&(this.updatePreviewLinks(),this.trigger("createProvisionalDraft")),this.$nameTextInput&&this.checkMetaValues(),$.isPlainObject(t.data.draftElementIds)&&(this.draftElementIds=n(n({},this.draftElementIds),t.data.draftElementIds)),this.settings.updatedTimestamp=t.data.updatedTimestamp,this.settings.canonicalUpdatedTimestamp=t.data.canonicalUpdatedTimestamp},_afterSaveDraft:function(){this.$saveMetaBtn&&this.$saveMetaBtn.removeClass("active")},_showFailStatus:function(){this.statusIcons().velocity("stop").css("opacity","").removeClass("hidden checkmark-icon").addClass("alert-icon"),this.setStatusMessage(this._saveFailMessage())},updateFieldLayout:function(t){var e=this;return new Promise((function(n,i){if(e.submittingForm)i("Form already being submitted.");else{e.lastSerializedValue=t,e.cancelToken=axios.CancelToken.source();var a=e.prepareData(t),s=r({},e.namespaceInputName("visibleLayoutElements"),e.settings.visibleLayoutElements);e.settings.isProvisionalDraft&&(s[e.namespaceInputName("provisional")]=1);var o=e.$contentContainer.children("[data-layout-tab]:not(.hidden)").data("id");o&&(s[e.namespaceInputName("selectedTab")]=o),a+="&".concat($.param(s)),Craft.sendActionRequest("POST","elements/update-field-layout",{cancelToken:e.cancelToken.token,headers:e._saveHeaders,data:a}).then((function(i){e._afterUpdateFieldLayout(t,o,i),n()})).catch((function(t){e._afterSaveDraft(),e.ignoreFailedRequest||(e.failed=!0,t&&t.response&&(e.httpStatus=t.response.status,e.httpError=t.response.data?t.response.data.message:null),e._showFailStatus(),i(t)),e.ignoreFailedRequest=!1}))}}))},prepareData:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=Craft.findDeltaData(this.$container.data("initialSerializedValue"),t,this.$container.data("delta-names"),e,this.$container.data("initial-delta-values"),this.$container.data("modified-delta-names"),!0);return this.settings.draftId&&(i.push("".concat(this.namespaceInputName("draftId"),"=").concat(this.settings.draftId)),this.settings.isProvisionalDraft&&i.push("".concat(this.namespaceInputName("provisional"),"=1"))),null!==this.settings.draftName&&i.push("".concat(this.namespaceInputName("draftName"),"=").concat(this.settings.draftName)),n?i:i.join("&")},get _saveHeaders(){var t={"content-type":"application/x-www-form-urlencoded"};return this.namespace&&(t["X-Craft-Namespace"]=this.namespace),t},getDraftElementId:function(t){return this.draftElementIds[t]||t},getDraftElementUid:function(t){return this.draftElementUids[t]||t},updatePreviewTargets:function(t){var e=this;t.forEach((function(t){var n=e.settings.previewTargets.find((function(e){return e.label===t.label}));n&&(n.url=t.url);var i=e.previewLinks.find((function(e){return e.data("targetLabel")===t.label}));i&&(i.data("targetUrl",t.url),e.updatePreviewLinkHref(i))}))},_afterUpdateFieldLayout:function(t,e,n){var r=this;return o(a().mark((function s(){var o,l,c,h,u,d,f,p,g,m,v,b,y,C,w,_,S,x,T,I;return a().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:l=r.serializeForm(!0)===t,c=r.$contentContainer.children("[data-layout-tab]:not(.hidden)").data("id"),h=$(),u={},d=!1,f=i(n.data.missingElements);try{for(f.s();!(p=f.n()).done;){g=p.value,(m=r.$contentContainer.children('[data-layout-tab="'.concat(g.uid,'"]'))).length||(m=$("",{id:r.namespaceId(g.id),class:"flex-fields","data-id":g.id,"data-layout-tab":g.uid}),g.id!==e&&m.addClass("hidden"),m.appendTo(r.$contentContainer)),h=h.add(m),v=i(g.elements);try{for(v.s();!(b=v.n()).done;)!1!==(y=b.value).html?(u[g.uid]||(u[g.uid]=[]),u[g.uid].push(y.uid),"string"==typeof y.html&&(C=m.children('[data-layout-element="'.concat(y.uid,'"]')),w=$(y.html),C.length?C.replaceWith(w):w.appendTo(m),Craft.initUiElements(w),d=!0)):(_=m.children('[data-layout-element="'.concat(y.uid,'"]'))).length&&Garnish.hasAttr(_,"data-layout-element-placeholder")||(S=$("",{class:"hidden","data-layout-element":y.uid,"data-layout-element-placeholder":""}),_.length?_.replaceWith(S):S.appendTo(m),d=!0)}catch(t){v.e(t)}finally{v.f()}}}catch(t){f.e(t)}finally{f.f()}return(x=r.$contentContainer.children("[data-layout-tab]").not(h).not('[data-layout-tab=""]')).length&&(x.remove(),d=!0),h.filter(":not(.hidden)").length||h.first().removeClass("hidden"),r.settings.visibleLayoutElements=u,(null!==(o=r.settings.updateTabs)&&void 0!==o?o:r.isFullPage?function(t){return Craft.cp.updateTabs(t)}:function(){})(n.data.tabs),e&&c&&e!==c&&(T=r.tabManager)&&((I=T.$tabs.filter('[data-id="'.concat(c,'"]'))).length?T.selectTab(I):T.selectTab(T.$tabs.first())),a.next=16,Craft.appendHeadHtml(n.data.headHtml);case 16:return a.next=18,Craft.appendBodyHtml(n.data.bodyHtml);case 18:d&&(n.data.initialDeltaValues&&Object.assign(r.$container.data("initial-delta-values"),n.data.initialDeltaValues),l&&(r.lastSerializedValue=r.serializeForm(!0))),r.handleDismissibleTips();case 20:case"end":return a.stop()}}),s)})))()},afterUpdate:function(t){this.$container.data("initialSerializedValue",t),this.$container.data("initial-delta-values",{});var e=this.statusIcons().velocity("stop").css("opacity","").removeClass("hidden").addClass("checkmark-icon");this.setStatusMessage(this._saveSuccessMessage()),this.settings.autosaveDrafts||e.velocity("stop").velocity({opacity:0},{delay:2e3,complete:function(){e.addClass("hidden")}}),this.trigger("update"),this.settings.isProvisionalDraft&&Craft.broadcaster&&Craft.broadcaster.postMessage({event:"saveElement",id:this.settings.canonicalId})},setStatusMessage:function(t){this.statusIcons().attr("title",t),this.statusMessage().empty().append($("",{class:"visually-hidden",text:t}))},showMetaModal:function(){var t=this;this.metaModal?this.metaModal.show():this.createMetaModal(),Garnish.isMobileBrowser(!0)||setTimeout((function(){t.$nameTextInput.trigger("focus")}),100)},createMetaModal:function(){var t=this,e=$("",{class:"modal fitted"}),n=$("",{class:"body"}).appendTo(e),i=$('
").appendTo(i),s=0;s").appendTo(a),$('').appendTo(n).text(e.data.tags[s].title).data("id",e.data.tags[s].id).addClass(e.data.tags[s].exclude?"disabled":"");e.data.exactMatch||(n=$("").appendTo(a),$('').appendTo(n).text(r.search)),a.find("button:not(.disabled):first").addClass("hover"),t.searchMenu=new Garnish.Menu(i,{attachToElement:t.$addTagInput,onOptionSelect:t.selectTag.bind(t)}),t.addListener(i,"mousedown",(function(){t._ignoreBlur=!0})),t.searchMenu.show()})).catch((function(e){e.response,t.searchMenu&&t.killSearchMenu(),t.$spinner.addClass("hidden")}))}else this.$spinner.addClass("hidden")},selectTag:function(t){var e=this,n=$(t);if(!n.hasClass("disabled")){var i=n.data("id"),r=n.text(),a=$("",{class:"chip element small removable","data-id":i,"data-site-id":this.settings.targetSiteId,"data-label":r,"data-editable":"1"}),s=$("").appendTo(this.$elementsContainer);a.appendTo(s);var o=$("",{class:"chip-content"}).appendTo(a),l=$("",{class:"label"}).appendTo(o),c=$("",{class:"label-link"}).appendTo(l);$("",{class:"title",text:r}).appendTo(c),$("",{class:"chip-actions"}).appendTo(o);var h=$("",{type:"hidden",name:this.settings.name+"[]",value:i}).appendTo(o);if(this.$elements=this.$elements.add(a),this.addElements(a),this.killSearchMenu(),this.$addTagInput.val(""),this.$addTagInput.trigger("focus"),!i){a.addClass("loading disabled");var u={groupId:this.settings.tagGroupId,title:r};Craft.sendActionRequest("POST","tags/create-tag",{data:u}).then((function(t){a.attr("data-id",t.data.id),h.val(t.data.id),a.removeClass("loading disabled")})).catch((function(t){t.response,e.removeElement(a),Craft.cp.displayError(Craft.t("app","A server error occurred."))}))}}},killSearchMenu:function(){this.searchMenu.hide(),this.searchMenu.destroy(),this.searchMenu=null}},{defaults:{tagGroupId:null}})},3958:function(){Craft.ThumbsElementIndexView=Craft.BaseElementIndexView.extend({getElementContainer:function(){return this.$container.children("ul")}})},3079:function(){Craft.Tooltip=Garnish.Base.extend({_$trigger:null,_message:null,hud:null,$p:null,hoverTimeout:null,triggerHit:!1,shownViaHover:!1,init:function(t,e){var n=this;this.$trigger=$(t),this.message=e,"BUTTON"!==this.$trigger[0].tagName&&"button"!==this.$trigger.attr("role")&&console.error("Toggletip buttons need to be