").appendTo(i),a=0;a'+t[a].name+"").appendTo(s);var n=new Garnish.MenuBtn(this.$selectTransformBtn,{onOptionSelect:this.onSelectTransform.bind(this)});n.disable(),this.$selectTransformBtn.data("menuButton",n)}},onSelectionChange:function(t){var e=this.elementIndex.getSelectedElements(),i=!1;if(e.length&&this.settings.transforms.length){i=!0;for(var s=0;s'),i=$('').appendTo(e),s=$('').appendTo(i),a=$("",{type:"button",class:"btn",text:Craft.t("app","Log out now")}).appendTo(s),n=$("",{type:"submit",class:"btn submit",text:Craft.t("app","Keep me logged in")}).appendTo(s);this.$logoutWarningPara=$("").prependTo(i),this.logoutWarningModal=new Garnish.Modal(e,{autoShow:!1,closeOtherModals:!1,hideOnEsc:!1,hideOnShadeClick:!1,shadeClass:"modal-shade dark logoutwarningmodalshade",onFadeIn:function(){Garnish.isMobileBrowser(!0)||setTimeout((function(){n.trigger("focus")}),100)}}),this.addListener(a,"activate","logout"),this.addListener(e,"submit","renewSession")}t?this.logoutWarningModal.quickShow():this.logoutWarningModal.show(),this.updateLogoutWarningMessage(),this.decrementLogoutWarningInterval=setInterval(this.decrementLogoutWarning.bind(this),1e3)},updateLogoutWarningMessage:function(){this.$logoutWarningPara.text(Craft.t("app","Your session will expire in {time}.",{time:Craft.secondsToHumanTimeDuration(this.remainingSessionTime)})),this.logoutWarningModal.updateSizeAndPosition()},decrementLogoutWarning:function(){this.remainingSessionTime>0&&(this.remainingSessionTime--,this.updateLogoutWarningMessage()),0===this.remainingSessionTime&&clearInterval(this.decrementLogoutWarningInterval)},hideLogoutWarningModal:function(t){this.showingLogoutWarningModal=!1,this.logoutWarningModal&&(t?this.logoutWarningModal.quickHide():this.logoutWarningModal.hide(),this.decrementLogoutWarningInterval&&clearInterval(this.decrementLogoutWarningInterval))},showLoginModal:function(){var t,e=this;if(this.showingLogoutWarningModal?(this.hideLogoutWarningModal(!0),t=!0):t=!1,this.showingLoginModal=!0,!this.loginModal){var i=$(''),s=$('
'+Craft.t("app","Your session has ended.")+"
"+Craft.t("app","Enter your password to log back in.")+"
").appendTo(i),a=$('
').appendTo(s),n=$('').appendTo(a),r=$('').appendTo(n),o=$("").appendTo(n),l=$('').appendTo(r);this.$passwordInput=$('').appendTo(l),this.$passwordSpinner=$('').appendTo(a),this.$loginBtn=$("",{type:"submit",class:"btn submit disabled",text:Craft.t("app","Login")}).appendTo(o),this.$loginErrorPara=$('').appendTo(s),this.loginModal=new Garnish.Modal(i,{autoShow:!1,closeOtherModals:!1,hideOnEsc:!1,hideOnShadeClick:!1,shadeClass:"modal-shade dark loginmodalshade",onFadeIn:function(){Garnish.isMobileBrowser(!0)||setTimeout((function(){e.$passwordInput.trigger("focus")}),100)},onFadeOut:function(){e.$passwordInput.val("")}}),new Craft.PasswordInput(this.$passwordInput,{onToggleInput:function(t){e.$passwordInput=t}}),this.addListener(this.$passwordInput,"input","validatePassword"),this.addListener(i,"submit","login")}t?this.loginModal.quickShow():this.loginModal.show()},hideLoginModal:function(t){this.showingLoginModal=!1,this.loginModal&&(t?this.loginModal.quickHide():this.loginModal.hide())},logout:function(){$.get({url:Craft.getActionUrl("users/logout"),dataType:"json",success:function(){Craft.redirectTo("")}})},renewSession:function(t){t&&t.preventDefault(),this.hideLogoutWarningModal(),this.checkRemainingSessionTime(!0)},validatePassword:function(){return this.$passwordInput.val().length>=6?(this.$loginBtn.removeClass("disabled"),!0):(this.$loginBtn.addClass("disabled"),!1)},login:function(t){t&&t.preventDefault(),this.validatePassword()&&(this.$passwordSpinner.removeClass("hidden"),this.clearLoginError(),void 0!==Craft.csrfTokenValue?(this.submitLoginIfLoggedOut=!0,this.checkRemainingSessionTime()):this.submitLogin())},submitLogin:function(){var t=this,e={loginName:Craft.username,password:this.$passwordInput.val()};Craft.postActionRequest("users/login",e,(function(e,i){t.$passwordSpinner.addClass("hidden"),"success"===i?e.success?(t.hideLoginModal(),t.checkRemainingSessionTime()):(t.showLoginError(e.error),Garnish.shake(t.loginModal.$container),Garnish.isMobileBrowser(!0)||t.$passwordInput.trigger("focus")):t.showLoginError()}))},showLoginError:function(t){null==t&&(t=Craft.t("app","A server error occurred.")),this.$loginErrorPara.text(t),this.loginModal.updateSizeAndPosition()},clearLoginError:function(){this.showLoginError("")}},{checkInterval:60,minSafeSessionTime:120})},1504:function(){function t(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}Craft.BaseElementEditor=Garnish.Base.extend({$element:null,elementId:null,siteId:null,deltaNames:null,initialData:null,$header:null,$toolbar:null,$tabContainer:null,$editLink:null,$sidebarBtn:null,$loadSpinner:null,$body:null,$fieldsContainer:null,$sidebar:null,$footer:null,$siteSelectContainer:null,$siteSelect:null,$siteSpinner:null,$cancelBtn:null,$saveBtn:null,$saveSpinner:null,slideout:null,tabManager:null,showingSidebar:!1,cancelToken:null,ignoreFailedRequest:!1,initialDeltaValues:null,init:function(t,e){var i=this;void 0===e&&$.isPlainObject(t)&&(e=t,t=null),this.$element=$(t),this.setSettings(e,Craft.BaseElementEditor.defaults),this.$header=$("",{class:"pane-header"}),this.$toolbar=$("",{class:"ee-toolbar"}).appendTo(this.$header),this.$tabContainer=$("",{class:"pane-tabs"}).appendTo(this.$toolbar),this.$loadSpinner=$("",{class:"spinner",title:Craft.t("app","Loading"),"aria-label":Craft.t("app","Loading")}).appendTo(this.$toolbar),this.$editLink=$("",{target:"_blank",class:"btn hidden",title:Craft.t("app","Open the full edit page in a new tab"),"aria-label":Craft.t("app","Open the full edit page in a new tab"),"data-icon":"external"}).appendTo(this.$toolbar),this.$sidebarBtn=$("",{type:"button",class:"btn hidden sidebar-btn",title:Craft.t("app","Show sidebar"),"aria-label":Craft.t("app","Show sidebar"),"data-icon":"sidebar-".concat(Garnish.ltr?"right":"left")}).appendTo(this.$toolbar),this.addListener(this.$sidebarBtn,"click",(function(t){t.preventDefault(),i.showingSidebar?i.hideSidebar():i.showSidebar()})),this.$body=$("",{class:"ee-body"}),this.$fieldsContainer=$("",{class:"fields"}).appendTo(this.$body),this.$sidebar=$("",{class:"ee-sidebar hidden"}).appendTo(this.$body),Craft.trapFocusWithin(this.$sidebar),this.$footer=$("",{class:"ee-footer hidden"});var s=$("",{class:"ee-site-select"}).appendTo(this.$footer);this.$siteSelectContainer=$("",{class:"select hidden"}).appendTo(s),this.$siteSelect=$("").appendTo(this.$siteSelectContainer),this.$siteSpinner=$("",{class:"spinner hidden"}).appendTo(s),this.$cancelBtn=$("",{type:"button",class:"btn",text:Craft.t("app","Cancel")}).appendTo(this.$footer),this.$saveBtn=$("",{type:"submit",class:"btn submit",text:Craft.t("app","Save")}).appendTo(this.$footer),this.$saveSpinner=$("",{class:"spinner hidden"}).appendTo(this.$footer);var a=this.$header.add(this.$body).add(this.$footer);this.slideout=new Craft.Slideout(a,{containerElement:"form",containerAttributes:{action:"",method:"post",novalidate:"",class:"element-editor"},closeOnEsc:!1,closeOnShadeClick:!1}),this.slideout.$container.data("elementEditor",this),this.slideout.on("beforeClose",(function(){i.hideSidebar()})),this.slideout.on("close",(function(){i.trigger("closeSlideout"),i.destroy()})),Garnish.uiLayerManager.registerShortcut({keyCode:Garnish.S_KEY,ctrl:!0},(function(){i.saveElement()})),Garnish.uiLayerManager.registerShortcut(Garnish.ESC_KEY,(function(){i.maybeCloseSlideout()})),this.addListener(this.$cancelBtn,"click",(function(){i.maybeCloseSlideout()})),this.addListener(this.slideout.$shade,"click",(function(){i.maybeCloseSlideout()})),this.addListener(this.slideout.$container,"click",(function(t){var e=$(event.target);!i.showingSidebar||e.closest(i.$sidebarBtn).length||e.closest(i.$sidebar).length||i.hideSidebar()})),this.addListener(this.slideout.$container,"submit",(function(t){t.preventDefault(),i.saveElement()})),this.addListener(this.$siteSelect,"change","switchSite"),this.load().then((function(){i.onShowHud(),i.onCreateForm(i.$body)}))},setElementAttribute:function(t,e){this.settings.attributes||(this.settings.attributes={}),null===e?delete this.settings.attributes[t]:this.settings.attributes[t]=e},getBaseData:function(){var t=$.extend({},this.settings.params);return this.settings.siteId?t.siteId=this.settings.siteId:this.$element&&this.$element.data("site-id")&&(t.siteId=this.$element.data("site-id")),this.settings.elementId?t.elementId=this.settings.elementId:this.$element&&this.$element.data("id")&&(t.elementId=this.$element.data("id")),this.settings.elementType&&(t.elementType=this.settings.elementType),this.settings.attributes&&(t.attributes=this.settings.attributes),this.settings.prevalidate&&(t.prevalidate=1),t},load:function(t,e){var i=this;return new Promise((function(s,a){i.trigger("beforeLoad"),i.trigger("beginLoading"),i.showLoadSpinner(),i.onBeginLoading(),i.cancelToken&&(i.ignoreFailedRequest=!0,i.cancelToken.cancel()),i.cancelToken=axios.CancelToken.source(),Craft.sendActionRequest("POST","elements/get-editor-html",{cancelToken:i.cancelToken.token,data:$.extend(i.getBaseData(),t||{},{includeSites:Craft.isMultiSite&&i.settings.showSiteSwitcher})}).then((function(t){i.hideLoadSpinner(),i.trigger("load"),i.trigger("endLoading"),i.onEndLoading(),i.cancelToken=null,null===i.initialDeltaValues&&(i.initialDeltaValues=t.data.initialDeltaValues),i.updateForm(t.data,e),i.cancelToken=null,s()})).catch((function(t){i.hideLoadSpinner(),i.onEndLoading(),i.cancelToken=null,i.ignoreFailedRequest||(Craft.cp.displayError(),a(t)),i.ignoreFailedRequest=!1}))}))},showHeader:function(){this.$header.removeClass("hidden")},hideHeader:function(){this.$header.addClass("hidden")},showLoadSpinner:function(){this.showHeader(),this.$loadSpinner.removeClass("hidden")},hideLoadSpinner:function(){this.$loadSpinner.addClass("hidden")},switchSite:function(){var t=this;if(!this.isDirty()||confirm(Craft.t("app","Switching sites will lose unsaved changes. Are you sure you want to switch sites?"))){var e=this.$siteSelect.val();e!=this.siteId&&(this.$siteSpinner.removeClass("hidden"),this.load({siteId:e}).then((function(){t.$siteSpinner.addClass("hidden")})).catch((function(){t.$siteSpinner.addClass("hidden"),t.$siteSelect.val(t.siteId)})))}else this.$siteSelect.val(this.siteId)},updateForm:function(t,e){var i=this;this.tabManager&&(this.$tabContainer.html(""),this.tabManager.destroy(),this.tabManager=null),e=!1!==e,this.siteId=t.siteId,this.$fieldsContainer.html(t.fieldHtml);var s=!1;if(t.sites&&t.sites.length>1){s=!0,this.$siteSelectContainer.removeClass("hidden"),this.$siteSelect.html("");for(var a=0;a",{value:n.id,text:n.name}).appendTo(this.$siteSelect);n.id==t.siteId&&r.attr("selected","selected")}}else this.$siteSelectContainer.addClass("hidden");t.tabHtml&&(s=!0,this.$tabContainer.replaceWith(this.$tabContainer=$(t.tabHtml)),this.tabManager=new Craft.Tabs(this.$tabContainer),this.tabManager.on("deselectTab",(function(t){$(t.$tab.attr("href")).addClass("hidden")})),this.tabManager.on("selectTab",(function(t){$(t.$tab.attr("href")).removeClass("hidden"),Garnish.$win.trigger("resize"),i.$body.trigger("scroll")}))),t.editUrl?(s=!0,this.$editLink.removeClass("hidden").attr("href",t.editUrl)):this.$editLink&&this.$editLink.addClass("hidden"),t.sidebarHtml?(s=!0,this.$sidebarBtn.removeClass("hidden"),this.$sidebar.html(t.sidebarHtml),Craft.initUiElements(this.$sidebar),(new Craft.ElementThumbLoader).load($(this.$sidebar)),this.$sidebar.find("a").each((function(){this.hostname.length&&void 0===$(this).attr("target")&&$(this).attr("target","_blank")}))):this.$sidebarBtn&&(this.$sidebarBtn.addClass("hidden"),this.$sidebar.addClass("hidden")),s?this.showHeader():this.hideHeader(),this.$footer.removeClass("hidden"),e&&(this.deltaNames=t.deltaNames),Garnish.requestAnimationFrame((function(){Craft.appendHeadHtml(t.headHtml),Craft.appendFootHtml(t.footHtml),Craft.initUiElements(i.$fieldsContainer),e&&(i.initialData=i.slideout.$container.serialize()),Garnish.isMobileBrowser()||Craft.setFocusWithin(i.$fieldsContainer),i.trigger("updateForm")}))},showSidebar:function(){var t=this;this.showingSidebar||(this.$body.scrollTop(0).addClass("no-scroll"),this.$sidebar.off("transitionend.element-editor").css(this._closedSidebarStyles()).removeClass("hidden"),this.$sidebar[0].offsetWidth,this.$sidebar.css(this._openedSidebarStyles()),Garnish.isMobileBrowser()||this.$sidebar.one("transitionend.element-editor",(function(){Craft.setFocusWithin(t.$sidebar)})),this.$sidebarBtn.addClass("active").attr({title:Craft.t("app","Hide sidebar"),"aria-label":Craft.t("app","Hide sidebar")}),Garnish.$win.trigger("resize"),this.$sidebar.trigger("scroll"),Garnish.uiLayerManager.addLayer(this.$sidebar),Garnish.uiLayerManager.registerShortcut(Garnish.ESC_KEY,(function(){t.hideSidebar()})),this.showingSidebar=!0)},hideSidebar:function(){var t=this;this.showingSidebar&&(this.$body.removeClass("no-scroll"),this.$sidebar.off("transitionend.element-editor").css(this._closedSidebarStyles()).one("transitionend.element-editor",(function(){t.$sidebar.addClass("hidden")})),this.$sidebarBtn.removeClass("active").attr({title:Craft.t("app","Show sidebar"),"aria-label":Craft.t("app","Show sidebar")}),Garnish.uiLayerManager.removeLayer(),this.showingSidebar=!1)},_openedSidebarStyles:function(){return t({},Garnish.ltr?"right":"left","0")},_closedSidebarStyles:function(){return t({},Garnish.ltr?"right":"left","-350px")},saveElement:function(){var t=this,e=this.settings.validators;if($.isArray(e))for(var i=0;it.length)&&(e=t.length);for(var i=0,s=new Array(e);i .clear"),this.$sidebar=this.$container.find(".sidebar:first"),this.$customizeSourcesBtn=this.$sidebar.find(".customize-sources"),this.$elements=this.$container.find(".elements:first"),this.$countSpinner=this.$container.find("#count-spinner"),this.$countContainer=this.$container.find("#count-container"),this.$exportBtn=this.$container.find("#export-btn"),this.settings.hideSidebar&&(this.$sidebar.hide(),$(".body, .content",this.$container).removeClass("has-sidebar")),this.initSources()){if(this.$customizeSourcesBtn.length&&this.addListener(this.$customizeSourcesBtn,"click","createCustomizeSourcesModal"),this.$statusMenuBtn.length&&(this.statusMenu=this.$statusMenuBtn.menubtn().data("menubtn").menu,this.statusMenu.on("optionselect",this._handleStatusChange.bind(this))),this.$siteMenuBtn.length){this.siteMenu=this.$siteMenuBtn.menubtn().data("menubtn").menu;var a=this.siteMenu.$options.filter(".sel:first");if(a.length||(a=this.siteMenu.$options.first()),a.length?this._setSite(a.data("site-id")):this.settings.criteria={id:"0"},this.siteMenu.on("optionselect",this._handleSiteChange.bind(this)),this.siteId){var n=this.settings.defaultSiteId||Craft.cp.getSiteId();if(n&&n!=this.siteId){var r=this.siteMenu.$options.filter('[data-site-id="'+n+'"]:first');r.length&&r.trigger("click")}}}else this.settings.criteria&&this.settings.criteria.siteId&&"*"!==this.settings.criteria.siteId?this._setSite(this.settings.criteria.siteId):this._setSite(Craft.siteId);this.settings.criteria&&this.settings.criteria.siteId&&delete this.settings.criteria.siteId,this.addListener(this.$search,"input",(function(){!s.searching&&s.$search.val()?s.startSearching():s.searching&&!s.$search.val()&&s.stopSearching(),s.searchTimeout&&clearTimeout(s.searchTimeout),s.searchTimeout=setTimeout(s.updateElementsIfSearchTextChanged.bind(s),500)})),this.addListener(this.$search,"keypress",(function(t){t.keyCode===Garnish.RETURN_KEY&&(t.preventDefault(),s.searchTimeout&&clearTimeout(s.searchTimeout),s.updateElementsIfSearchTextChanged())})),this.addListener(this.$clearSearchBtn,"click",(function(){s.clearSearch(!0),Garnish.isMobileBrowser(!0)||s.$search.trigger("focus")})),Garnish.isMobileBrowser(!0)||this.$search.trigger("focus"),this.$sortMenuBtn.length&&(this.sortMenu=this.$sortMenuBtn.menubtn().data("menubtn").menu,this.$sortAttributesList=this.sortMenu.$container.children(".sort-attributes"),this.$sortDirectionsList=this.sortMenu.$container.children(".sort-directions"),this.sortMenu.on("optionselect",this._handleSortChange.bind(this))),this.addListener(this.$exportBtn,"click","_showExportHud"),this.initialized=!0,this.afterInit(),this.selectDefaultSource(),this.setPage(Craft.pageNum),this.updateElements(!0)}},afterInit:function(){this.onAfterInit()},_createCancelToken:function(){return this._cancelToken=axios.CancelToken.source(),this._cancelToken.token},_cancelRequests:function(){var t=this;this._cancelToken&&(this._ignoreFailedRequest=!0,this._cancelToken.cancel(),Garnish.requestAnimationFrame((function(){t._ignoreFailedRequest=!1})))},getSourceContainer:function(){return this.$sidebar.find("nav > ul")},get $sources(){if(this.sourceSelect)return this.sourceSelect.$items},getSite:function(){var t=this;if(this.siteId)return Craft.sites.find((function(e){return e.id==t.siteId}))},initSources:function(){var t=this._getSourcesInList(this.getSourceContainer());if(0===t.length)return!1;this.sourceSelect||(this.sourceSelect=new Garnish.Select(this.$sidebar.find("nav"),{multi:!1,allowEmpty:!1,vertical:!0,onSelectionChange:this._handleSourceSelectionChange.bind(this)})),this.sourcesByKey={};for(var e=0;e'+Craft.t("app","Score")+""),this.sortMenu.addOptions(this.$scoreSortAttribute.children())),this.$scoreSortAttribute.prependTo(this.$sortAttributesList),this.searching=!0,this._updateStructureSortOption(),this.setSortAttribute("score")},clearSearch:function(t){this.searching&&(this.$search.val(""),this.searchTimeout&&clearTimeout(this.searchTimeout),this.stopSearching(),t?this.updateElementsIfSearchTextChanged():this.searchText=null)},stopSearching:function(){this.$clearSearchBtn.addClass("hidden"),this.$scoreSortAttribute.detach(),this.searching=!1,this._updateStructureSortOption()},setInstanceState:function(t,e){"object"===i(t)?$.extend(this.instanceState,t):this.instanceState[t]=e,this.storeInstanceState()},storeInstanceState:function(){this.settings.storageKey&&Craft.setLocalStorage(this.settings.storageKey,this.instanceState)},getSourceState:function(t,e,i){return void 0===this.sourceStates[t]&&(this.sourceStates[t]={}),void 0===e?this.sourceStates[t]:void 0!==this.sourceStates[t][e]?this.sourceStates[t][e]:void 0!==i?i:null},getSelectedSourceState:function(t,e){return this.getSourceState(this.instanceState.selectedSource,t,e)},setSelecetedSourceState:function(t,e){var s=this.getSelectedSourceState();"object"===i(t)?$.extend(s,t):s[t]=e,this.sourceStates[this.instanceState.selectedSource]=s,Craft.setLocalStorage(this.sourceStatesStorageKey,this.sourceStates)},storeSortAttributeAndDirection:function(){var e=this.getSelectedSortAttribute();if("score"!==e){var i=[];if(e){var s=[e],a=this.getSelectedSourceState("order");a&&a!==e&&(i.push([a,this.getSelectedSourceState("sort")]),s.push(a));for(var n=this.getSelectedSourceState("orderHistory",[]),r=0;r ul > li").children("a").data("sort-options");if(e)for(var i=0;i",{"data-extra":!0}).append($("",{text:e[i][0],"data-attr":e[i][1]})).appendTo(this.$sortAttributesList);this.sortMenu.addOptions(s.children())}if(Garnish.hasAttr(this.$source,"data-has-structure")?(this.$structureSortAttribute||(this.$structureSortAttribute=$('
'+Craft.t("app","What do you want to do with their content?")+'
").appendTo(a),r=$('').appendTo(n),o=$("",{type:"button",class:"btn",text:Craft.t("app","Cancel")}).appendTo(r);if(e.contentSummary.length)for(var l=0;l",{text:e.contentSummary[l]}));else n.find("ul").remove();if(this.$deleteActionRadios=n.find("input[type=radio]"),this.$deleteSubmitBtn=$("",{type:"submit",class:"btn submit disabled",text:this._submitBtnLabel(!1)}).appendTo(r),this.$deleteSpinner=$('').appendTo(r),Garnish.isArray(this.userId)){s=["and"];for(var h=0;ht.length)&&(e=t.length);for(var i=0,s=new Array(e);i0||!this.enableAutosave||!this.settings.saveDraftAction||(this.listeningForChanges=!0,this.addListener(Garnish.$bod,"keypress,keyup,change,focus,blur,click,mousedown,mouseup",(function(t){$(t.target).is(this.statusIcons())||(clearTimeout(this.timeout),["keypress","keyup","change"].includes(t.type)?this.timeout=setTimeout(this.checkForm.bind(this),500):this.checkForm())})))},stopListeningForChanges:function(){this.listeningForChanges&&(this.removeListener(Garnish.$bod,"keypress,keyup,change,focus,blur,click,mousedown,mouseup"),clearTimeout(this.timeout),this.listeningForChanges=!1)},pause:function(){this.pauseLevel++,this.stopListeningForChanges()},resume:function(){if(0===this.pauseLevel)throw"Craft.DraftEditor::resume() should only be called after pause().";this.pauseLevel--,0===this.pauseLevel&&this.enableAutosave&&(this.checkForm(),this.listenForChanges())},initForProvisionalDraft:function(){var t=this,e=$("#discard-changes");e.length||(e=this.$revisionBtn.data("menubtn")?this.$revisionBtn.data("menubtn").menu.$container.find("#discard-changes"):null),e&&e.length&&this.addListener(e,"click",(function(){confirm(Craft.t("app","Are you sure you want to discard your changes?"))&&Craft.submitForm(Craft.cp.$primaryForm,{action:t.settings.deleteDraftAction,redirect:t.settings.hashedCpEditUrl,params:{draftId:t.settings.draftId,provisional:t.settings.isProvisionalDraft}})}))},initForDraft:function(){var t=this;this.createEditMetaBtn(),this.settings.canUpdateSource&&Garnish.uiLayerManager.registerShortcut({keyCode:Garnish.S_KEY,ctrl:!0,alt:!0},(function(){Craft.submitForm(Craft.cp.$primaryForm,{action:t.settings.publishDraftAction,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=$("#enabledForSite-".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 i=Craft.ui.createLightswitchField({id:"enabled",label:Craft.t("app","Enabled"),name:"enabled"}).insertBefore(e);i.find("label").css("font-weight","bold"),this.$globalLightswitch=i.find(".lightswitch"),this.settings.revisionId||this._showField(i);var s=Object.values(this.settings.siteStatuses),a=s.includes(!0),n=s.includes(!1),r=a&&n?"-":a?"1":"",o=encodeURIComponent("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="enabled=".concat(r),h=0;h".concat(this._saveSuccessMessage(),""):(e='
'.concat(this._saveFailMessage(),"
"),this.errors.length&&(e+='
'+this.errors.map((function(t){return"
".concat(Craft.escapeHtml(t),"
")})).join("")+"
"),this.httpError&&(e+='
'.concat(Craft.escapeHtml(this.httpError),"
")),400===this.httpStatus&&(e+='")));var i=new Garnish.HUD(t,e,{hudClass:"hud revision-status-hud",onHide:function(){i.destroy()}});i.$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.preview?this.$spinner.add(this.preview.$spinner):this.$spinner},statusIcons:function(){return this.preview?this.$statusIcon.add(this.preview.$statusIcon):this.$statusIcon},statusMessage:function(){return this.preview?this.$statusMessage.add(this.preview.$statusMessage):this.$statusMessage},createEditMetaBtn:function(){var t=$("#context-btngroup");this.$editMetaBtn=$("",{type:"button",class:"btn edit icon",title:Craft.t("app","Edit draft settings")}).appendTo(t),t.find(".btngroup-btn-last").removeClass("btngroup-btn-last"),this.addListener(this.$editMetaBtn,"click","showMetaHud")},createPreviewLink:function(t,e){var i=this,s=$("",{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(s,"click",(function(){setTimeout((function(){i.activatePreviewToken()}),1)})),this.previewLinks.push(s),s},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;$("",{id:"share-btn",type:"button",class:"btn menubtn",text:Craft.t("app","View")}).appendTo(t);var i=$("",{class:"menu"}).appendTo(t),s=$("
").appendTo(i);this.settings.previewTargets.forEach((function(t){$("").append(e.createPreviewLink(t,t.label)).appendTo(s)}))},getPreviewTokenParams:function(){var t={elementType:this.settings.elementType,sourceId:this.settings.sourceId,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 new Promise((function(e,i){t.activatedPreviewToken?e(t.settings.previewToken):t.activatingPreviewToken?t.previewTokenQueue.push(e):(t.activatingPreviewToken=!0,Craft.sendActionRequest("POST","preview/create-token",{data:t.getPreviewTokenParams()}).then((function(){for(t.activatingPreviewToken=!1,t.activatePreviewToken(),e(t.settings.previewToken);t.previewTokenQueue.length;)t.previewTokenQueue.shift()(t.settings.previewToken)})).catch(i))}))},getTokenizedPreviewUrl:function(t,e,i){var s=this;void 0===i&&(i=!0);var a={};if(!e&&this.settings.isLive||(a[e||"x-craft-preview"]=Craft.randomString(10)),this.settings.siteToken&&(a[Craft.siteToken]=this.settings.siteToken),this.settings.isLive){var n=Craft.getUrl(t,a);return i?new Promise((function(t){t(n)})):n}if(!this.settings.previewToken)throw"Missing preview token";a[Craft.tokenParam]=this.settings.previewToken;var r=Craft.getUrl(t,a);if(this.activatedPreviewToken)return i?new Promise((function(t){t(r)})):r;if(i)return new Promise((function(t,e){s.getPreviewToken().then((function(){t(r)})).catch(e)}));var o=this.getPreviewTokenParams();return o.redirect=encodeURIComponent(r),Craft.getActionUrl("preview/create-token",o)},getPreview:function(){var t=this;return this.preview||(this.preview=new Craft.Preview(this),this.enableAutosave||(this.preview.on("open",(function(){t.enableAutosave=!0,t.listenForChanges()})),this.preview.on("close",(function(){t.enableAutosave=!1,t.stopListeningForChanges();var e=t.statusIcons();e.hasClass("checkmark-icon")&&e.addClass("hidden")}))),this.preview.on("close",(function(){t.scrollY&&(window.scrollTo(0,t.scrollY),t.scrollY=null)}))),this.preview},openPreview:function(){var t=this;return new Promise((function(e,i){t.openingPreview=!0,t.ensureIsDraftOrRevision(!0).then((function(){t.scrollY=window.scrollY,t.getPreview().open(),t.openingPreview=!1,e()})).catch(i)}))},ensureIsDraftOrRevision:function(t){var e=this;return new Promise((function(i,s){if(e.settings.draftId||e.settings.revisionId)i();else{if(t&&e.serializeForm(!0)===Craft.cp.$primaryForm.data("initialSerializedValue"))return void i();e.createDraft().then(i).catch(s)}}))},serializeForm:function(t){var e=Craft.cp.$primaryForm.serialize();return this.isPreviewActive()&&(e=e.replace("__PREVIEW_FIELDS__=1",this.preview.$editor.serialize())),t&&!this.settings.isUnpublishedDraft&&(e=(e=e.replace(/&action=[^&]*/,"")).replace(/&redirect=[^&]*/,"")),e},checkForm:function(t){if(!(this.settings.revisionId||this.pauseLevel>0)&&this.enableAutosave&&this.settings.saveDraftAction){clearTimeout(this.timeout),this.timeout=null;var e=this.serializeForm(!0);if(t||e!==(this.lastSerializedValue||Craft.cp.$primaryForm.data("initialSerializedValue"))){var i=(!this.settings.draftId||this.settings.isProvisionalDraft)&&!this.settings.revisionId;this.saveDraft(e,i).catch((function(t){console.warn("Couldn’t save draft:",t)}))}}},isPreviewActive:function(){return this.preview&&this.preview.isActive},createDraft:function(){var t=this;return new Promise((function(e,i){t.saveDraft(t.serializeForm(!0)).then(e).catch(i)}))},saveDraft:function(t){var e=this;return new Promise((function(i,s){if(e.submittingForm)s("Form already being submitted.");else if(e.saving)e.queue.push((function(){e.checkForm()}));else{e.lastSerializedValue=t,e.saving=!0,e.errors=null,e.httpStatus=null,e.httpError=null,e.cancelToken=axios.CancelToken.source(),e.spinners().removeClass("hidden"),e.statusIcons().velocity("stop").css("opacity","").removeClass("invisible checkmark-icon alert-icon fade-out").addClass("hidden"),e.statusMessage().empty(),e.$saveMetaBtn&&e.$saveMetaBtn.addClass("active");var a=[],n=e.prepareData(t,e.settings.isUnpublishedDraft?void 0:function(t,e){e.length&&a.push(decodeURIComponent(e[0].split("=")[0]))});!e.settings.isProvisionalDraft&&e.settings.draftId||(n+="&provisional=1"),Craft.sendActionRequest("POST",e.settings.saveDraftAction,{cancelToken:e.cancelToken.token,headers:{"content-type":"application/x-www-form-urlencoded"},data:n}).then((function(n){e._afterSaveRequest(),n.data.errors&&(e.errors=n.data.errors,e._showFailStatus(),s(n.data.errors));var r=!e.settings.draftId;r&&(e.settings.isProvisionalDraft=!0,e.createdProvisionalDraft=!0),n.data.title&&$("#header h1").text(n.data.title),n.data.docTitle&&(document.title=n.data.docTitle),e.settings.isProvisionalDraft?r&&e.$revisionLabel.append($("",{text:" — ".concat(Craft.t("app","Edited"))})):(e.$revisionLabel.text(n.data.draftName),e.settings.draftName=n.data.draftName);var o=e.$revisionBtn.data("menubtn")?e.$revisionBtn.data("menubtn").menu:null;for(var l in e.newSiteIds&&(o||(e.$revisionBtn.removeClass("disabled").addClass("menubtn"),new Garnish.MenuBtn(e.$revisionBtn),(o=e.$revisionBtn.data("menubtn").menu).$container.removeClass("hidden")),e.newSiteIds.forEach((function(t){var i=o.$options.filter("[data-site-id=".concat(t,"]")),s=e.settings.addlSites.find((function(e){return e.siteId==t}));s&&void 0!==s.enabledByDefault&&!s.enabledByDefault||i.find(".status").removeClass("disabled").addClass("enabled"),i.parent().removeClass("hidden").closest(".site-group").removeClass("hidden")})),o.$container.find(".revision-hr").removeClass("hidden"),e.newSiteIds=null),e.settings.isProvisionalDraft?r&&($("#action").attr("value",e.settings.publishDraftAction),e.settings.draftId=n.data.draftId,e.settings.isLive=!1,e.previewToken=null,o&&o.$container.find("#current-revision").append($("",{class:"edited-desc"}).append($("",{text:Craft.t("app","Showing your unsaved changes.")})).append($("",{id:"discard-changes",class:"btn",text:Craft.t("app","Discard changes")}))),e.initForProvisionalDraft()):o&&(o.$options.filter(".sel").find(".draft-name").text(n.data.draftName),o.$options.filter(".sel").find(".draft-meta").text(n.data.creator?Craft.t("app","Saved {timestamp} by {creator}",{timestamp:n.data.timestamp,creator:n.data.creator}):Craft.t("app","Saved {timestamp}",{timestamp:n.data.timestamp}))),n.data.previewTargets&&JSON.stringify(n.data.previewTargets)!==JSON.stringify(e.settings.previewTargets)&&e.updatePreviewTargets(n.data.previewTargets),r&&(e.updatePreviewLinks(),e.trigger("createProvisionalDraft")),e.$nameTextInput&&e.checkMetaValues(),n.data.duplicatedElements)l!=e.settings.sourceId&&n.data.duplicatedElements.hasOwnProperty(l)&&(e.duplicatedElements[l]=n.data.duplicatedElements[l]);for(var h=n.data.modifiedAttributes.map((function(t){return'[name="'.concat(t,'"],[name^="').concat(t,'["]')})).concat(a.map((function(t){return'[name="'.concat(t,'"]')}))),d=$(h.join(",")).parents().filter(".field:not(:has(> .status-badge))"),c=0;c",{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.")})));e.afterUpdate(t),e.bc&&e.bc.postMessage({event:"saveDraft",canonicalId:e.settings.sourceId,draftId:e.settings.draftId,isProvisionalDraft:e.settings.isProvisionalDraft}),i()})).catch((function(t){e._afterSaveRequest(),e.ignoreFailedRequest||(e.errors=[],t&&t.response&&(e.httpStatus=t.response.status,e.httpError=t.response.data?t.response.data.error:null),e._showFailStatus(),s(t)),e.ignoreFailedRequest=!1}))}}))},_afterSaveRequest:function(){this.spinners().addClass("hidden"),this.$saveMetaBtn&&this.$saveMetaBtn.removeClass("active"),this.saving=!1},_showFailStatus:function(){this.statusIcons().velocity("stop").css("opacity","").removeClass("hidden checkmark-icon").addClass("alert-icon"),this.setStatusMessage(this._saveFailMessage())},prepareData:function(t,e){return t=Craft.findDeltaData(Craft.cp.$primaryForm.data("initialSerializedValue"),t,Craft.deltaNames,e),t=this.swapDuplicatedElementIds(t),this.settings.draftId&&(t+="&draftId=".concat(this.settings.draftId),this.settings.isProvisionalDraft&&(t+="&provisional=1")),null!==this.settings.draftName&&(t+="&draftName=".concat(this.settings.draftName)),t},swapDuplicatedElementIds:function(t){var e=this,i=Object.keys(this.duplicatedElements).join("|");if(""===i)return t;for(var s=encodeURIComponent("["),a=encodeURIComponent("]");t!==(t=t.replace(new RegExp("(&fields".concat(s,"[^=]+").concat(a).concat(s,")(").concat(i,")(").concat(a,")"),"g"),(function(t,i,s,a){return i+e.duplicatedElements[s]+a})).replace(new RegExp("&(fields".concat(s,"[^=]+)=(").concat(i,")\\b"),"g"),(function(t,i,n){return i.match(new RegExp("".concat(s,"(enabled|sordOrder|type|typeId)").concat(a,"$")))?t:"&".concat(i,"=").concat(e.duplicatedElements[n])}))););return t},updatePreviewTargets:function(t){var e=this;t.forEach((function(t){var i=e.settings.previewTargets.find((function(e){return e.label===t.label}));i&&(i.url=t.url);var s=e.previewLinks.find((function(e){return e.data("targetLabel")===t.label}));s&&(s.data("targetUrl",t.url),e.updatePreviewLinkHref(s))}))},afterUpdate:function(t){Craft.cp.$primaryForm.data("initialSerializedValue",t),Craft.initialDeltaValues={};var e=this.statusIcons().velocity("stop").css("opacity","").removeClass("hidden").addClass("checkmark-icon");this.setStatusMessage(this._saveSuccessMessage()),Craft.autosaveDrafts||e.velocity("stop").velocity({opacity:0},{delay:2e3,complete:function(){e.addClass("hidden")}}),this.trigger("update"),this.nextInQueue()},setStatusMessage:function(t){this.statusIcons().attr("title",t),this.statusMessage().empty().append($("",{class:"visually-hidden",text:t}))},nextInQueue:function(){this.queue.length&&this.queue.shift()()},showMetaHud:function(){this.metaHud?this.metaHud.show():(this.createMetaHud(),this.onMetaHudShow()),Garnish.isMobileBrowser(!0)||this.$nameTextInput.trigger("focus")},createMetaHud:function(){var t=$(""),e=$('
").appendTo(t),i=$('').appendTo(e);this.$nameTextInput=$('').appendTo(i).val(this.settings.draftName);var s=$('').appendTo(t);$('').appendTo(s),this.$saveMetaBtn=$("",{type:"submit",class:"btn submit disabled",text:Craft.t("app","Save")}).appendTo(s),this.metaHud=new Garnish.HUD(this.$editMetaBtn,t,{onSubmit:this.saveMeta.bind(this)}),this.addListener(this.$nameTextInput,"input","checkMetaValues"),this.metaHud.on("show",this.onMetaHudShow.bind(this)),this.metaHud.on("hide",this.onMetaHudHide.bind(this)),this.metaHud.on("escape",this.onMetaHudEscape.bind(this))},onMetaHudShow:function(){this.$editMetaBtn.addClass("active")},onMetaHudHide:function(){this.$editMetaBtn.removeClass("active")},onMetaHudEscape:function(){this.$nameTextInput.val(this.settings.draftName)},checkMetaValues:function(){return this.$nameTextInput.val()&&this.$nameTextInput.val()!==this.settings.draftName?(this.$saveMetaBtn.removeClass("disabled"),!0):(this.$saveMetaBtn.addClass("disabled"),!1)},shakeMetaHud:function(){Garnish.shake(this.metaHud.$hud)},saveMeta:function(){this.checkMetaValues()?(this.settings.draftName=this.$nameTextInput.val(),this.metaHud.hide(),this.checkForm(!0)):this.shakeMetaHud()},handleFormSubmit:function(t){if(t.preventDefault(),!this.submittingForm)if(!this.settings.draftId||this.settings.isUnpublishedDraft||this.settings.isProvisionalDraft||void 0!==t.autosave&&!t.autosave||!(t.saveShortcut||t.customTrigger&&t.customTrigger.data("action")===this.settings.saveDraftAction)||!this.enableAutosave){Craft.cp.$confirmUnloadForms=Craft.cp.$confirmUnloadForms.not(Craft.cp.$primaryForm),this.cancelToken&&(this.ignoreFailedRequest=!0,this.cancelToken.cancel());var e=this.prepareData(this.serializeForm(!1)),i=Craft.createForm(e);i.appendTo(Garnish.$bod),i.submit(),this.submittingForm=!0}else this.checkForm(!0)}},{defaults:{elementType:null,sourceId:null,siteId:null,isUnpublishedDraft:!1,enabled:!1,enabledForSite:!1,isLive:!1,isProvisionalDraft:!1,siteStatuses:null,addlSites:[],cpEditUrl:null,draftId:null,revisionId:null,draftName:null,canEditMultipleSites:!1,canUpdateSource:!1,saveDraftAction:null,deleteDraftAction:null,publishDraftAction:null,hashedCpEditUrl:null,hashedAddAnotherRedirectUrl:null,enablePreview:!1,previewTargets:[],previewToken:null,siteToken:null}})},2318:function(){Craft.DynamicGenerator=Craft.BaseInputGenerator.extend({callback:$.noop,init:function(t,e,i){this.callback=i,this.base(t,e)},generateTargetValue:function(t){return this.callback(t)}})},4755:function(){Craft.EditableTable=Garnish.Base.extend({initialized:!1,id:null,baseName:null,columns:null,sorter:null,biggestId:-1,$table:null,$tbody:null,$addRowBtn:null,$tableParent:null,$statusMessage:null,rowCount:0,hasMaxRows:!1,hasMinRows:!1,radioCheckboxes:null,init:function(t,e,i,s){var a=this;if(this.id=t,this.baseName=e,this.columns=i,this.setSettings(s,Craft.EditableTable.defaults),this.radioCheckboxes={},this.$table=$("#"+t),this.$tbody=this.$table.children("tbody"),this.$tableParent=this.$table.parent(),this.$statusMessage=this.$tableParent.find("[data-status-message]"),this.rowCount=this.$tbody.find("tr").length,this.$table.data("editable-table")&&(console.warn("Double-instantiating an editable table on an element"),this.$table.data("editable-table").destroy()),this.$table.data("editable-table",this),this.sorter=new Craft.DataTableSorter(this.$table,{helperClass:"editabletablesorthelper",copyDraggeeInputValuesToHelper:!0,onSortChange:function(){a.updateAllRows()}}),this.isVisible()?this.initialize():setTimeout(this.initializeIfVisible.bind(this),500),this.settings.minRows&&this.rowCount0},initialize:function(){if(this.initialized)return!1;this.initialized=!0,this.removeListener(Garnish.$win,"resize");for(var t=this.$tbody.children(),e=0;ei.width()&&i.css("overflow-x","auto"),this.$addRowBtn=this.$table.next(".add"),this.updateAddRowButton(),this.addListener(this.$addRowBtn,"activate","addRow"),!0},initializeIfVisible:function(){this.removeListener(Garnish.$win,"resize"),this.isVisible()?this.initialize():this.addListener(Garnish.$win,"resize","initializeIfVisible")},updateAddRowButton:function(){this.canAddRow()?(this.$addRowBtn.css("opacity","1"),this.$addRowBtn.css("pointer-events","auto"),this.$addRowBtn.attr("aria-disabled","false")):(this.$addRowBtn.css("opacity","0.2"),this.$addRowBtn.css("pointer-events","none"),this.$addRowBtn.attr("aria-disabled","true"))},updateAllRows:function(){if(!this.settings.staticRows)for(var t=this.$table.find("> tbody > tr"),e=0;ethis.settings.minRows},deleteRow:function(t){this.canDeleteRow()?(this.sorter.removeItems(t.$tr),t.$tr.remove(),this.rowCount--,this.updateAllRows(),this.updateAddRowButton(),0===this.rowCount&&this.$table.addClass("hidden"),this.settings.onDeleteRow(t.$tr),t.destroy()):this.updateStatusMessage()},canAddRow:function(){return!this.settings.staticRows&&(!this.settings.maxRows||this.rowCount",{"data-id":t});for(var n in e)if(e.hasOwnProperty(n)){var r,o=e[n],l=void 0!==s[n]?s[n]:"";if("heading"===o.type)r=$("
",{class:"".concat(o.class," ").concat(o.type,"-cell"),width:o.width}),Craft.inArray(o.type,Craft.EditableTable.textualColTypes)&&r.addClass("textual"),o.code&&r.addClass("code"),o.type){case"checkbox":$('').append(Craft.ui.createCheckbox({name:h,value:o.value||"1",checked:!!l})).appendTo(r);break;case"color":Craft.ui.createColorInput({name:h,value:l,small:!0}).appendTo(r);break;case"date":Craft.ui.createDateInput({name:h,value:l}).appendTo(r);break;case"lightswitch":Craft.ui.createLightswitch({name:h,value:o.value||"1",on:!!l,small:!0}).appendTo(r);break;case"select":Craft.ui.createSelect({name:h,options:o.options,value:l||function(){for(var t in o.options)if(o.options.hasOwnProperty(t)&&o.options[t].default)return void 0!==o.options[t].value?o.options[t].value:t;return null}(),class:"small"}).appendTo(r);break;case"time":Craft.ui.createTimeInput({name:h,value:l}).appendTo(r);break;case"email":case"url":Craft.ui.createTextInput({name:h,value:l,type:o.type,placeholder:o.placeholder||null}).appendTo(r);break;default:$("",{name:h,rows:o.rows||1,val:l,placeholder:o.placeholder}).appendTo(r)}}r.appendTo(a)}return $("
").append($("").append($("",{"data-action":"moveLeft",text:Craft.t("app","Move to the left")}))).append($("").append($("",{"data-action":"moveRight",text:Craft.t("app","Move to the right")}))));var i=new Garnish.MenuBtn(e,{onOptionSelect:this.onTabOptionSelect.bind(this)});i.menu.on("show",(function(){t.prev(".fld-tab").length?i.menu.$container.find("[data-action=moveLeft]").removeClass("disabled"):i.menu.$container.find("[data-action=moveLeft]").addClass("disabled"),t.next(".fld-tab").length?i.menu.$container.find("[data-action=moveRight]").removeClass("disabled"):i.menu.$container.find("[data-action=moveRight]").addClass("disabled")}))}for(var s=t.children(".fld-tabcontent").children(),a=0;a\n
');return t&&this.addErrorsToList(e,t),e},addErrorsToList:function(t,e){for(var i=0;i").text(e[i]).appendTo(t)},addErrorsToField:function(t,e){if(e){t.addClass("has-errors"),t.children(".input").addClass("errors");var i=t.children("ul.errors");i.length||(i=this.createErrorList().appendTo(t)),this.addErrorsToList(i,e)}},clearErrorsFromField:function(t){t.removeClass("has-errors"),t.children(".input").removeClass("errors"),t.children("ul.errors").remove()},getAutofocusValue:function(t){return t&&!Garnish.isMobileBrowser(!0)?"autofocus":null},getDisabledValue:function(t){return t?"disabled":null}}},1752:function(){Craft.Uploader=Garnish.Base.extend({uploader:null,allowedKinds:null,$element:null,settings:null,_rejectedFiles:{},_extensionList:null,_totalFileCounter:0,_validFileCounter:0,init:function(t,e){this._rejectedFiles={size:[],type:[],limit:[]},this.$element=t,this.allowedKinds=null,this._extensionList=null,this._totalFileCounter=0,this._validFileCounter=0;var i=(e=$.extend({},Craft.Uploader.defaults,e)).events;for(var s in delete e.events,e.allowedKinds&&e.allowedKinds.length&&("string"==typeof e.allowedKinds&&(e.allowedKinds=[e.allowedKinds]),this.allowedKinds=e.allowedKinds,delete e.allowedKinds),e.autoUpload=!1,this.uploader=this.$element.fileupload(e),i)i.hasOwnProperty(s)&&this.uploader.on(s,i[s]);this.settings=e,this.uploader.on("fileuploadadd",this.onFileAdd.bind(this))},setParams:function(t){void 0!==Craft.csrfTokenName&&void 0!==Craft.csrfTokenValue&&(t[Craft.csrfTokenName]=Craft.csrfTokenValue),this.uploader.fileupload("option",{formData:t})},getInProgress:function(){return this.uploader.fileupload("active")},isLastUpload:function(){return this.getInProgress()<2},onFileAdd:function(t,e){var i=this;t.stopPropagation();var s=!1;return this.allowedKinds&&(this._extensionList||this._createExtensionList(),s=!0),e.process().done((function(){var t=e.files[0],a=!0;if(s){var n=t.name.match(/\.([a-z0-4_]+)$/i)[1];-1===$.inArray(n.toLowerCase(),i._extensionList)&&(a=!1,i._rejectedFiles.type.push("“"+t.name+"”"))}t.size>i.settings.maxFileSize&&(i._rejectedFiles.size.push("“"+t.name+"”"),a=!1),a&&"function"==typeof i.settings.canAddMoreFiles&&!i.settings.canAddMoreFiles(i._validFileCounter)&&(i._rejectedFiles.limit.push("“"+t.name+"”"),a=!1),a&&(i._validFileCounter++,e.submit()),++i._totalFileCounter===e.originalFiles.length&&(i._totalFileCounter=0,i._validFileCounter=0,i.processErrorMessages())})),!0},processErrorMessages:function(){var t;this._rejectedFiles.type.length&&(t=1===this._rejectedFiles.type.length?"The file {files} could not be uploaded. The allowed file kinds are: {kinds}.":"The files {files} could not be uploaded. The allowed file kinds are: {kinds}.",t=Craft.t("app",t,{files:this._rejectedFiles.type.join(", "),kinds:this.allowedKinds.join(", ")}),this._rejectedFiles.type=[],alert(t)),this._rejectedFiles.size.length&&(t=1===this._rejectedFiles.size.length?"The file {files} could not be uploaded, because it exceeds the maximum upload size of {size}.":"The files {files} could not be uploaded, because they exceeded the maximum upload size of {size}.",t=Craft.t("app",t,{files:this._rejectedFiles.size.join(", "),size:this.humanFileSize(Craft.maxUploadSize)}),this._rejectedFiles.size=[],alert(t)),this._rejectedFiles.limit.length&&(t=1===this._rejectedFiles.limit.length?"The file {files} could not be uploaded, because the field limit has been reached.":"The files {files} could not be uploaded, because the field limit has been reached.",t=Craft.t("app",t,{files:this._rejectedFiles.limit.join(", ")}),this._rejectedFiles.limit=[],alert(t))},humanFileSize:function(t){var e=1024;if(t=e);return t.toFixed(1)+" "+["kB","MB","GB","TB","PB","EB","ZB","YB"][i]},_createExtensionList:function(){this._extensionList=[];for(var t=0;t/g","")).toLowerCase(),t=(t=(t=Craft.asciiString(t)).replace(/^[^a-z]+/,"")).replace(/[^a-z0-9]+$/,"");var e=Craft.filterArray(t.split(/[^a-z0-9]+/)).join(Craft.slugWordSeparator);return e&&this.settings.suffix&&(e+=this.settings.suffix),e}})},8654:function(){Craft.UserIndex=Craft.BaseElementIndex.extend({init:function(t,e,i){this.on("selectSource",this.updateUrl.bind(this)),this.base(t,e,i)},getDefaultSourceKey:function(){if("index"===this.settings.context&&"undefined"!=typeof defaultSourceSlug)for(var t=0;ti.parts.length&&(s.parts.length=i.parts.length)}else{var r=[];for(a=0;a=this.settings.maxItems)){var e=$(t).appendTo(this.$tbody),i=e.find(".delete");this.settings.sortable&&this.sorter.addItems(e),this.$deleteBtns=this.$deleteBtns.add(i),this.addListener(i,"click","handleDeleteBtnClick"),this.totalItems++,this.updateUI()}},reorderItems:function(){var t=this;if(this.settings.sortable){for(var e=[],i=0;i=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}})},76:function(){Craft.AssetEditor=Craft.BaseElementEditor.extend({$filenameInput:null,originalBasename:null,originalExtension:null,reloadIndex:!1,init:function(t,e){var i=this;this.on("updateForm",(function(){i.addListener(i.$sidebar.find(".preview-thumb-container .edit-btn"),"click","showImageEditor"),i.addListener(i.$sidebar.find(".preview-thumb-container .preview-btn"),"click","showImagePreview"),i.$filenameInput=i.$sidebar.find(".filename"),i.addListener(i.$filenameInput,"focus","selectFilename")})),this.on("closeSlideout",(function(){i.reloadIndex&&(i.settings.elementIndex?i.settings.elementIndex.updateElements():i.settings.input&&i.settings.input.refreshThumbnail(i.$element.data("id")))})),this.base(t,e),this.settings.validators.push((function(){return i.validateExtension()}))},showImageEditor:function(){var t=this;new Craft.AssetImageEditor(this.$element.data("id"),{onSave:function(){t.reloadIndex=!0,t.load()}})},showImagePreview:function(){var t={};this.$element.data("image-width")&&(t.startingWidth=this.$element.data("image-width"),t.startingHeight=this.$element.data("image-height")),new Craft.PreviewFileModal(this.$element.data("id"),null,t)},selectFilename:function(){var t=this;if(void 0!==this.$filenameInput[0].selectionStart){var e=this._parseFilename(),i=e.basename,s=e.extension;null===this.originalBasename&&(this.originalBasename=i,this.originalExtension=s),this.$filenameInput[0].selectionStart=0,this.$filenameInput[0].selectionEnd=i.length,this.$filenameInput.one("mouseup.keepselection",(function(t){t.preventDefault()})),setTimeout((function(){t.$filenameInput.off("mouseup.keepselection")}),500)}},validateExtension:function(){if(null===this.originalBasename)return!0;var t=this._parseFilename(),e=t.basename,i=t.extension;return i===this.originalExtension||(i?confirm(Craft.t("app","Are you sure you want to change the extension from “.{oldExt}” to “.{newExt}”?",{oldExt:this.originalExtension,newExt:i})):this.originalFilename!==e?(this.$filenameInput.val("".concat(Craft.rtrim(e,"."),".").concat(this.originalExtension)),!0):confirm(Craft.t("app","Are you sure you want to remove the extension “.{ext}”?",{ext:this.originalExtension})))},_parseFilename:function(){var t=this.$filenameInput.val().split("."),e=t.length>1?t.pop():null;return{basename:t.join("."),extension:e}}}),Craft.registerElementEditorClass("craft\\elements\\Asset",Craft.AssetEditor)},6872:function(){Craft.AssetImageEditor=Garnish.Modal.extend({$body:null,$footer:null,$imageTools:null,$buttons:null,$cancelBtn:null,$replaceBtn:null,$saveBtn:null,$editorContainer:null,$straighten:null,$croppingCanvas:null,$spinnerCanvas: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,spinnerInterval:null,maxImageSize:null,lastLoadedDimensions:null,imageIsLoading:!1,mouseMoveEvent:null,croppingConstraint:!1,constraintOrientation:"landscape",showingCustomConstraint:!1,renderImage:null,renderCropper:null,init:function(t,e){this.cacheBust=Date.now(),this.setSettings(e,Craft.AssetImageEditor.defaults),null===this.settings.allowDegreeFractions&&(this.settings.allowDegreeFractions=Craft.isImagick),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.$replaceBtn=$("",{type:"button",class:"btn submit save replace",text:Craft.t("app","Save")}).appendTo(this.$buttons),this.settings.allowSavingAsNew&&(this.$saveBtn=$("",{type:"button",class:"btn submit save copy",text:Craft.t("app","Save as a new asset")}).appendTo(this.$buttons),this.addListener(this.$saveBtn,"activate",this.saveImage)),this.addListener(this.$replaceBtn,"activate",this.saveImage),this.addListener(this.$cancelBtn,"activate",this.hide),this.removeListener(this.$shade,"click"),this.maxImageSize=this.getMaxImageSize(),Craft.postActionRequest("assets/image-editor",{assetId:t},this.loadEditor.bind(this))},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||alert(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.editorHeight=this.$editorContainer.innerHeight(),this.editorWidth=this.$editorContainer.innerWidth(),this._showSpinner(),this.updateSizeAndPosition(),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 i=Craft.getActionUrl("assets/edit-image",{assetId:this.assetId,size:this.maxImageSize,cacheBust:this.cacheBust});fabric.Image.fromURL(i,(function(i){e.image=i,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 s={imageDimensions:e.getScaledImageDimensions(),offsetX:0,offsetY:0},a=!1;if(t.focalPoint){var n=t.focalPoint,r=s.imageDimensions.width*n.x,o=s.imageDimensions.height*n.y;s.offsetX=r-s.imageDimensions.width/2,s.offsetY=o-s.imageDimensions.height/2,a=!0}e.storeFocalPointState(s),a&&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-62}),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,i=t.offsetX*e*this.zoomRatio*this.scaleFactor,s=t.offsetY*e*this.zoomRatio*this.scaleFactor;i+=this.image.left,s+=this.image.top;var a=0,n=0;this.viewport&&0===t.offsetX&&0===t.offsetY&&("crop"!==this.currentView?(a=this.viewport.left-this.image.left,n=this.viewport.top-this.image.top):(a=this.clipper.left-this.image.left,n=this.clipper.top-this.image.top),i+=a,s+=n,t.offsetX+=a/(e*this.zoomRatio*this.scaleFactor),t.offsetY+=n/(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:i,top:s}),this.storeFocalPointState(t),this.canvas.add(this.focalPoint)},toggleFocalPoint:function(){this.focalPoint?(this.canvas.remove(this.focalPoint),this.focalPoint=null):this._createFocalPoint(),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,i=this.getScaledImageDimensions().width/e.imageDimensions.width;t.width=e.width*i*this.zoomRatio,t.height=e.height*i*this.zoomRatio,this.image.set({left:this.editorWidth/2-e.offsetX*i,top:this.editorHeight/2-e.offsetY*i})}else $.extend(t,this.getScaledImageDimensions());this.viewport.set(t)}},_repositionFocalPoint:function(t){if(this.focalPoint){var e=this.focalPoint.left-this.editorWidth/2,i=this.focalPoint.top-this.editorHeight/2,s=this.image.width,a=this.getScaledImageDimensions().width*this.zoomRatio/s/this.scaleFactor;e-=(t.width-this.editorWidth)/2,i-=(t.height-this.editorHeight)/2,e*=a,i*=a,this.focalPoint.set({left:this.editorWidth/2+e,top:this.editorHeight/2+i})}},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})},_addControlListeners:function(){var t=this;this.addListener(this.$tabs,"click",this._handleTabClick),this.addListener($(".focal-point"),"click",this.toggleFocalPoint),this.addListener($(".rotate-left"),"click",(function(){this.rotateImage(-90)})),this.addListener($(".rotate-right"),"click",(function(){this.rotateImage(90)})),this.addListener($(".flip-vertical"),"click",(function(){this.flipImage("y")})),this.addListener($(".flip-horizontal"),"click",(function(){this.flipImage("x")})),this.straighteningInput=new Craft.SlideRuleInput("slide-rule",{onStart:function(){t._showGrid()},onChange:function(e){t.straighten(e)},onEnd:function(){t._hideGrid(),t._cleanupFocalPointAfterStraighten()}}),this.addListener(Garnish.$doc,"keydown",(function(t){t.keyCode===Garnish.SHIFT_KEY&&(this.shiftKeyHeld=!0)})),this.addListener(Garnish.$doc,"keyup",(function(t){t.keyCode===Garnish.SHIFT_KEY&&(this.shiftKeyHeld=!1)})),this.addListener($(".constraint-buttons .constraint",this.$container),"click",this._handleConstraintClick),this.addListener($(".orientation input",this.$container),"click",this._handleOrientationClick),this.addListener($(".constraint-buttons .custom-input input",this.$container),"keyup",this._applyCustomConstraint)},_handleConstraintClick:function(t){var e=$(t.currentTarget).data("constraint"),i=$(t.currentTarget);if(i.siblings().removeClass("active"),i.addClass("active"),"custom"==e)return this._showCustomConstraint(),void this._applyCustomConstraint();this._hideCustomConstraint(),this.setCroppingConstraint(e),this.enforceCroppingConstraint()},_handleOrientationClick:function(t){if(t.currentTarget.value!==this.constraintOrientation){this.constraintOrientation=t.currentTarget.value;for(var e=$(".constraint.flip",this.$container),i=0;i0&&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,$(".constraint.custom .custom-input",this.$container).addClass("hidden"),$(".constraint.custom .custom-label",this.$container).removeClass("hidden"),$(".orientation",this.$container).removeClass("hidden")},_showCustomConstraint:function(){this.showingCustomConstraint||(this.showingCustomConstraint=!0,$(".constraint.custom .custom-input",this.$container).removeClass("hidden"),$(".constraint.custom .custom-label",this.$container).addClass("hidden"),$(".orientation",this.$container).addClass("hidden"))},_handleTabClick:function(t){if(!this.animationInProgress){var e=$(t.currentTarget),i=e.data("view");this.$tabs.removeClass("selected"),e.addClass("selected"),this.showView(i)}},showView:function(t){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.disableCropMode():"crop"!==this.currentView&&"crop"===t&&this.enableCropMode(),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 i,s=this.image.angle+t,a=this.getScaledImageDimensions();i=this.hasOrientationChanged()?this.getZoomToCoverRatio({height:a.width,width:a.height}):this.getZoomToCoverRatio(a),this.zoomRatio>i&&(i=this.zoomRatio);var n={angle:90===t?"+=90":"-=90"},r={angle:s,width:a.width*i,height:a.height*i},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&&(r.width*=o,r.height*=o);var l=this.cropperState,h=l.offsetX,d=l.offsetY,c=t*(Math.PI/180),u=h*Math.cos(c)-d*Math.sin(c),p=h*Math.sin(c)+d*Math.cos(c),g=a.width/l.imageDimensions.width,f=u*g*this.zoomRatio*this.scaleFactor,m=p*g*this.zoomRatio*this.scaleFactor;r.left=this.editorWidth/2-f,r.top=this.editorHeight/2-m,l.offsetX=u,l.offsetY=p;var v=l.width;l.width=l.height,l.height=v,this.storeCropperState(l),this.focalPoint&&this.canvas.remove(this.focalPoint),this.viewport.animate(n,{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(r,{onChange:this.canvas.renderAll.bind(this.canvas),duration:this.settings.animationDuration,onComplete:function(){var i=parseFloat((e.image.angle+360)%360);e.image.set({angle:i}),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 i={x:this.editorWidth/2,y:this.editorHeight/2};this.straighteningInput.setValue(-this.imageStraightenAngle),this.imageStraightenAngle=-this.imageStraightenAngle;var s,a,n={angle:this.viewportRotation+this.imageStraightenAngle},r=this.cropperState,o=this.focalPointState;"y"===t&&this.hasOrientationChanged()||"y"!==t&&!this.hasOrientationChanged()?(r.offsetX=-r.offsetX,o.offsetX=-o.offsetX,a=this.image.left-i.x,n.left=i.x-a):(r.offsetY=-r.offsetY,o.offsetY=-o.offsetY,s=this.image.top-i.y,n.top=i.y-s),"y"===t?(n.scaleY=-1*this.image.scaleY,this.flipData.y=1-this.flipData.y):(n.scaleX=-1*this.image.scaleX,this.flipData.x=1-this.flipData.x),this.storeCropperState(r),this.storeFocalPointState(o),this.image.animate(n,{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,i,s,a,n,r=this.getScaledImageDimensions(),o=this.image.angle-t,l=this.cropperState,h=this.zoomRatio,d=1;do{var c=l.offsetX,u=l.offsetY,p=o*(Math.PI/180);s=c*Math.cos(p)-u*Math.sin(p),a=c*Math.sin(p)+u*Math.cos(p),e=s*h*(n=r.width/l.imageDimensions.width),i=a*h*n;var g=this.getImageVerticeCoords(h),f={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+i};h*=d=this._getZoomRatioToFitRectangle(f,g)}while(1!==d);this.image.set({left:this.editorWidth/2-e,top:this.editorHeight/2-i}),l.offsetX=s,l.offsetY=a,l.width=this.viewport.width/h/n,l.height=this.viewport.height/h/n,this.storeCropperState(l),this.zoomRatio=h,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.left
").appendTo(i),a=0;a'+t[a].name+"").appendTo(s);var n=new Garnish.MenuBtn(this.$selectTransformBtn,{onOptionSelect:this.onSelectTransform.bind(this)});n.disable(),this.$selectTransformBtn.data("menuButton",n)}},onSelectionChange:function(t){var e=this.elementIndex.getSelectedElements(),i=!1;if(e.length&&this.settings.transforms.length){i=!0;for(var s=0;s'),i=$('').appendTo(e),s=$('').appendTo(i),a=$("",{type:"button",class:"btn",text:Craft.t("app","Log out now")}).appendTo(s),n=$("",{type:"submit",class:"btn submit",text:Craft.t("app","Keep me logged in")}).appendTo(s);this.$logoutWarningPara=$("").prependTo(i),this.logoutWarningModal=new Garnish.Modal(e,{autoShow:!1,closeOtherModals:!1,hideOnEsc:!1,hideOnShadeClick:!1,shadeClass:"modal-shade dark logoutwarningmodalshade",onFadeIn:function(){Garnish.isMobileBrowser(!0)||setTimeout((function(){n.trigger("focus")}),100)}}),this.addListener(a,"activate","logout"),this.addListener(e,"submit","renewSession")}t?this.logoutWarningModal.quickShow():this.logoutWarningModal.show(),this.updateLogoutWarningMessage(),this.decrementLogoutWarningInterval=setInterval(this.decrementLogoutWarning.bind(this),1e3)},updateLogoutWarningMessage:function(){this.$logoutWarningPara.text(Craft.t("app","Your session will expire in {time}.",{time:Craft.secondsToHumanTimeDuration(this.remainingSessionTime)})),this.logoutWarningModal.updateSizeAndPosition()},decrementLogoutWarning:function(){this.remainingSessionTime>0&&(this.remainingSessionTime--,this.updateLogoutWarningMessage()),0===this.remainingSessionTime&&clearInterval(this.decrementLogoutWarningInterval)},hideLogoutWarningModal:function(t){this.showingLogoutWarningModal=!1,this.logoutWarningModal&&(t?this.logoutWarningModal.quickHide():this.logoutWarningModal.hide(),this.decrementLogoutWarningInterval&&clearInterval(this.decrementLogoutWarningInterval))},showLoginModal:function(){var t,e=this;if(this.showingLogoutWarningModal?(this.hideLogoutWarningModal(!0),t=!0):t=!1,this.showingLoginModal=!0,!this.loginModal){var i=$(''),s=$('
'+Craft.t("app","Your session has ended.")+"
"+Craft.t("app","Enter your password to log back in.")+"
").appendTo(i),a=$('
').appendTo(s),n=$('').appendTo(a),r=$('').appendTo(n),o=$("").appendTo(n),l=$('').appendTo(r);this.$passwordInput=$('').appendTo(l),this.$passwordSpinner=$('').appendTo(a),this.$loginBtn=$("",{type:"submit",class:"btn submit disabled",text:Craft.t("app","Login")}).appendTo(o),this.$loginErrorPara=$('').appendTo(s),this.loginModal=new Garnish.Modal(i,{autoShow:!1,closeOtherModals:!1,hideOnEsc:!1,hideOnShadeClick:!1,shadeClass:"modal-shade dark loginmodalshade",onFadeIn:function(){Garnish.isMobileBrowser(!0)||setTimeout((function(){e.$passwordInput.trigger("focus")}),100)},onFadeOut:function(){e.$passwordInput.val("")}}),new Craft.PasswordInput(this.$passwordInput,{onToggleInput:function(t){e.$passwordInput=t}}),this.addListener(this.$passwordInput,"input","validatePassword"),this.addListener(i,"submit","login")}t?this.loginModal.quickShow():this.loginModal.show()},hideLoginModal:function(t){this.showingLoginModal=!1,this.loginModal&&(t?this.loginModal.quickHide():this.loginModal.hide())},logout:function(){$.get({url:Craft.getActionUrl("users/logout"),dataType:"json",success:function(){Craft.redirectTo("")}})},renewSession:function(t){t&&t.preventDefault(),this.hideLogoutWarningModal(),this.checkRemainingSessionTime(!0)},validatePassword:function(){return this.$passwordInput.val().length>=6?(this.$loginBtn.removeClass("disabled"),!0):(this.$loginBtn.addClass("disabled"),!1)},login:function(t){t&&t.preventDefault(),this.validatePassword()&&(this.$passwordSpinner.removeClass("hidden"),this.clearLoginError(),void 0!==Craft.csrfTokenValue?(this.submitLoginIfLoggedOut=!0,this.checkRemainingSessionTime()):this.submitLogin())},submitLogin:function(){var t=this,e={loginName:Craft.username,password:this.$passwordInput.val()};Craft.postActionRequest("users/login",e,(function(e,i){t.$passwordSpinner.addClass("hidden"),"success"===i?e.success?(t.hideLoginModal(),t.checkRemainingSessionTime()):(t.showLoginError(e.error),Garnish.shake(t.loginModal.$container),Garnish.isMobileBrowser(!0)||t.$passwordInput.trigger("focus")):t.showLoginError()}))},showLoginError:function(t){null==t&&(t=Craft.t("app","A server error occurred.")),this.$loginErrorPara.text(t),this.loginModal.updateSizeAndPosition()},clearLoginError:function(){this.showLoginError("")}},{checkInterval:60,minSafeSessionTime:120})},1504:function(){function t(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}Craft.BaseElementEditor=Garnish.Base.extend({$element:null,elementId:null,siteId:null,deltaNames:null,initialData:null,$header:null,$toolbar:null,$tabContainer:null,$editLink:null,$sidebarBtn:null,$loadSpinner:null,$body:null,$fieldsContainer:null,$sidebar:null,$footer:null,$siteSelectContainer:null,$siteSelect:null,$siteSpinner:null,$cancelBtn:null,$saveBtn:null,$saveSpinner:null,slideout:null,tabManager:null,showingSidebar:!1,cancelToken:null,ignoreFailedRequest:!1,initialDeltaValues:null,init:function(t,e){var i=this;void 0===e&&$.isPlainObject(t)&&(e=t,t=null),this.$element=$(t),this.setSettings(e,Craft.BaseElementEditor.defaults),this.$header=$("",{class:"pane-header"}),this.$toolbar=$("",{class:"ee-toolbar"}).appendTo(this.$header),this.$tabContainer=$("",{class:"pane-tabs"}).appendTo(this.$toolbar),this.$loadSpinner=$("",{class:"spinner",title:Craft.t("app","Loading"),"aria-label":Craft.t("app","Loading")}).appendTo(this.$toolbar),this.$editLink=$("",{target:"_blank",class:"btn hidden",title:Craft.t("app","Open the full edit page in a new tab"),"aria-label":Craft.t("app","Open the full edit page in a new tab"),"data-icon":"external"}).appendTo(this.$toolbar),this.$sidebarBtn=$("",{type:"button",class:"btn hidden sidebar-btn",title:Craft.t("app","Show sidebar"),"aria-label":Craft.t("app","Show sidebar"),"data-icon":"sidebar-".concat(Garnish.ltr?"right":"left")}).appendTo(this.$toolbar),this.addListener(this.$sidebarBtn,"click",(function(t){t.preventDefault(),i.showingSidebar?i.hideSidebar():i.showSidebar()})),this.$body=$("",{class:"ee-body"}),this.$fieldsContainer=$("",{class:"fields"}).appendTo(this.$body),this.$sidebar=$("",{class:"ee-sidebar hidden"}).appendTo(this.$body),Craft.trapFocusWithin(this.$sidebar),this.$footer=$("",{class:"ee-footer hidden"});var s=$("",{class:"ee-site-select"}).appendTo(this.$footer);this.$siteSelectContainer=$("",{class:"select hidden"}).appendTo(s),this.$siteSelect=$("").appendTo(this.$siteSelectContainer),this.$siteSpinner=$("",{class:"spinner hidden"}).appendTo(s),this.$cancelBtn=$("",{type:"button",class:"btn",text:Craft.t("app","Cancel")}).appendTo(this.$footer),this.$saveBtn=$("",{type:"submit",class:"btn submit",text:Craft.t("app","Save")}).appendTo(this.$footer),this.$saveSpinner=$("",{class:"spinner hidden"}).appendTo(this.$footer);var a=this.$header.add(this.$body).add(this.$footer);this.slideout=new Craft.Slideout(a,{containerElement:"form",containerAttributes:{action:"",method:"post",novalidate:"",class:"element-editor"},closeOnEsc:!1,closeOnShadeClick:!1}),this.slideout.$container.data("elementEditor",this),this.slideout.on("beforeClose",(function(){i.hideSidebar()})),this.slideout.on("close",(function(){i.trigger("closeSlideout"),i.destroy()})),Garnish.uiLayerManager.registerShortcut({keyCode:Garnish.S_KEY,ctrl:!0},(function(){i.saveElement()})),Garnish.uiLayerManager.registerShortcut(Garnish.ESC_KEY,(function(){i.maybeCloseSlideout()})),this.addListener(this.$cancelBtn,"click",(function(){i.maybeCloseSlideout()})),this.addListener(this.slideout.$shade,"click",(function(){i.maybeCloseSlideout()})),this.addListener(this.slideout.$container,"click",(function(t){var e=$(event.target);!i.showingSidebar||e.closest(i.$sidebarBtn).length||e.closest(i.$sidebar).length||i.hideSidebar()})),this.addListener(this.slideout.$container,"submit",(function(t){t.preventDefault(),i.saveElement()})),this.addListener(this.$siteSelect,"change","switchSite"),this.load().then((function(){i.onShowHud(),i.onCreateForm(i.$body)}))},setElementAttribute:function(t,e){this.settings.attributes||(this.settings.attributes={}),null===e?delete this.settings.attributes[t]:this.settings.attributes[t]=e},getBaseData:function(){var t=$.extend({},this.settings.params);return this.settings.siteId?t.siteId=this.settings.siteId:this.$element&&this.$element.data("site-id")&&(t.siteId=this.$element.data("site-id")),this.settings.elementId?t.elementId=this.settings.elementId:this.$element&&this.$element.data("id")&&(t.elementId=this.$element.data("id")),this.settings.elementType&&(t.elementType=this.settings.elementType),this.settings.attributes&&(t.attributes=this.settings.attributes),this.settings.prevalidate&&(t.prevalidate=1),t},load:function(t,e){var i=this;return new Promise((function(s,a){i.trigger("beforeLoad"),i.trigger("beginLoading"),i.showLoadSpinner(),i.onBeginLoading(),i.cancelToken&&(i.ignoreFailedRequest=!0,i.cancelToken.cancel()),i.cancelToken=axios.CancelToken.source(),Craft.sendActionRequest("POST","elements/get-editor-html",{cancelToken:i.cancelToken.token,data:$.extend(i.getBaseData(),t||{},{includeSites:Craft.isMultiSite&&i.settings.showSiteSwitcher})}).then((function(t){i.hideLoadSpinner(),i.trigger("load"),i.trigger("endLoading"),i.onEndLoading(),i.cancelToken=null,null===i.initialDeltaValues&&(i.initialDeltaValues=t.data.initialDeltaValues),i.updateForm(t.data,e),i.cancelToken=null,s()})).catch((function(t){i.hideLoadSpinner(),i.onEndLoading(),i.cancelToken=null,i.ignoreFailedRequest||(Craft.cp.displayError(),a(t)),i.ignoreFailedRequest=!1}))}))},showHeader:function(){this.$header.removeClass("hidden")},hideHeader:function(){this.$header.addClass("hidden")},showLoadSpinner:function(){this.showHeader(),this.$loadSpinner.removeClass("hidden")},hideLoadSpinner:function(){this.$loadSpinner.addClass("hidden")},switchSite:function(){var t=this;if(!this.isDirty()||confirm(Craft.t("app","Switching sites will lose unsaved changes. Are you sure you want to switch sites?"))){var e=this.$siteSelect.val();e!=this.siteId&&(this.$siteSpinner.removeClass("hidden"),this.load({siteId:e}).then((function(){t.$siteSpinner.addClass("hidden")})).catch((function(){t.$siteSpinner.addClass("hidden"),t.$siteSelect.val(t.siteId)})))}else this.$siteSelect.val(this.siteId)},updateForm:function(t,e){var i=this;this.tabManager&&(this.$tabContainer.html(""),this.tabManager.destroy(),this.tabManager=null),e=!1!==e,this.siteId=t.siteId,this.$fieldsContainer.html(t.fieldHtml);var s=!1;if(t.sites&&t.sites.length>1){s=!0,this.$siteSelectContainer.removeClass("hidden"),this.$siteSelect.html("");for(var a=0;a",{value:n.id,text:n.name}).appendTo(this.$siteSelect);n.id==t.siteId&&r.attr("selected","selected")}}else this.$siteSelectContainer.addClass("hidden");t.tabHtml&&(s=!0,this.$tabContainer.replaceWith(this.$tabContainer=$(t.tabHtml)),this.tabManager=new Craft.Tabs(this.$tabContainer),this.tabManager.on("deselectTab",(function(t){$(t.$tab.attr("href")).addClass("hidden")})),this.tabManager.on("selectTab",(function(t){$(t.$tab.attr("href")).removeClass("hidden"),Garnish.$win.trigger("resize"),i.$body.trigger("scroll")}))),t.editUrl?(s=!0,this.$editLink.removeClass("hidden").attr("href",t.editUrl)):this.$editLink&&this.$editLink.addClass("hidden"),t.sidebarHtml?(s=!0,this.$sidebarBtn.removeClass("hidden"),this.$sidebar.html(t.sidebarHtml),Craft.initUiElements(this.$sidebar),(new Craft.ElementThumbLoader).load($(this.$sidebar)),this.$sidebar.find("a").each((function(){this.hostname.length&&void 0===$(this).attr("target")&&$(this).attr("target","_blank")}))):this.$sidebarBtn&&(this.$sidebarBtn.addClass("hidden"),this.$sidebar.addClass("hidden")),s?this.showHeader():this.hideHeader(),this.$footer.removeClass("hidden"),e&&(this.deltaNames=t.deltaNames),Garnish.requestAnimationFrame((function(){Craft.appendHeadHtml(t.headHtml),Craft.appendFootHtml(t.footHtml),Craft.initUiElements(i.$fieldsContainer),e&&(i.initialData=i.slideout.$container.serialize()),Garnish.isMobileBrowser()||Craft.setFocusWithin(i.$fieldsContainer),i.trigger("updateForm")}))},showSidebar:function(){var t=this;this.showingSidebar||(this.$body.scrollTop(0).addClass("no-scroll"),this.$sidebar.off("transitionend.element-editor").css(this._closedSidebarStyles()).removeClass("hidden"),this.$sidebar[0].offsetWidth,this.$sidebar.css(this._openedSidebarStyles()),Garnish.isMobileBrowser()||this.$sidebar.one("transitionend.element-editor",(function(){Craft.setFocusWithin(t.$sidebar)})),this.$sidebarBtn.addClass("active").attr({title:Craft.t("app","Hide sidebar"),"aria-label":Craft.t("app","Hide sidebar")}),Garnish.$win.trigger("resize"),this.$sidebar.trigger("scroll"),Garnish.uiLayerManager.addLayer(this.$sidebar),Garnish.uiLayerManager.registerShortcut(Garnish.ESC_KEY,(function(){t.hideSidebar()})),this.showingSidebar=!0)},hideSidebar:function(){var t=this;this.showingSidebar&&(this.$body.removeClass("no-scroll"),this.$sidebar.off("transitionend.element-editor").css(this._closedSidebarStyles()).one("transitionend.element-editor",(function(){t.$sidebar.addClass("hidden")})),this.$sidebarBtn.removeClass("active").attr({title:Craft.t("app","Show sidebar"),"aria-label":Craft.t("app","Show sidebar")}),Garnish.uiLayerManager.removeLayer(),this.showingSidebar=!1)},_openedSidebarStyles:function(){return t({},Garnish.ltr?"right":"left","0")},_closedSidebarStyles:function(){return t({},Garnish.ltr?"right":"left","-350px")},saveElement:function(){var t=this,e=this.settings.validators;if($.isArray(e))for(var i=0;it.length)&&(e=t.length);for(var i=0,s=new Array(e);i .clear"),this.$sidebar=this.$container.find(".sidebar:first"),this.$customizeSourcesBtn=this.$sidebar.find(".customize-sources"),this.$elements=this.$container.find(".elements:first"),this.$countSpinner=this.$container.find("#count-spinner"),this.$countContainer=this.$container.find("#count-container"),this.$exportBtn=this.$container.find("#export-btn"),this.settings.hideSidebar&&(this.$sidebar.hide(),$(".body, .content",this.$container).removeClass("has-sidebar")),this.initSources()){if(this.$customizeSourcesBtn.length&&this.addListener(this.$customizeSourcesBtn,"click","createCustomizeSourcesModal"),this.$statusMenuBtn.length&&(this.statusMenu=this.$statusMenuBtn.menubtn().data("menubtn").menu,this.statusMenu.on("optionselect",this._handleStatusChange.bind(this))),this.$siteMenuBtn.length){this.siteMenu=this.$siteMenuBtn.menubtn().data("menubtn").menu;var a=this.siteMenu.$options.filter(".sel:first");if(a.length||(a=this.siteMenu.$options.first()),a.length?this._setSite(a.data("site-id")):this.settings.criteria={id:"0"},this.siteMenu.on("optionselect",this._handleSiteChange.bind(this)),this.siteId){var n=this.settings.defaultSiteId||Craft.cp.getSiteId();if(n&&n!=this.siteId){var r=this.siteMenu.$options.filter('[data-site-id="'+n+'"]:first');r.length&&r.trigger("click")}}}else this.settings.criteria&&this.settings.criteria.siteId&&"*"!==this.settings.criteria.siteId?this._setSite(this.settings.criteria.siteId):this._setSite(Craft.siteId);this.settings.criteria&&this.settings.criteria.siteId&&delete this.settings.criteria.siteId,this.addListener(this.$search,"input",(function(){!s.searching&&s.$search.val()?s.startSearching():s.searching&&!s.$search.val()&&s.stopSearching(),s.searchTimeout&&clearTimeout(s.searchTimeout),s.searchTimeout=setTimeout(s.updateElementsIfSearchTextChanged.bind(s),500)})),this.addListener(this.$search,"keypress",(function(t){t.keyCode===Garnish.RETURN_KEY&&(t.preventDefault(),s.searchTimeout&&clearTimeout(s.searchTimeout),s.updateElementsIfSearchTextChanged())})),this.addListener(this.$clearSearchBtn,"click",(function(){s.clearSearch(!0),Garnish.isMobileBrowser(!0)||s.$search.trigger("focus")})),Garnish.isMobileBrowser(!0)||this.$search.trigger("focus"),this.$sortMenuBtn.length&&(this.sortMenu=this.$sortMenuBtn.menubtn().data("menubtn").menu,this.$sortAttributesList=this.sortMenu.$container.children(".sort-attributes"),this.$sortDirectionsList=this.sortMenu.$container.children(".sort-directions"),this.sortMenu.on("optionselect",this._handleSortChange.bind(this))),this.addListener(this.$exportBtn,"click","_showExportHud"),this.initialized=!0,this.afterInit(),this.selectDefaultSource(),this.setPage(Craft.pageNum),this.updateElements(!0)}},afterInit:function(){this.onAfterInit()},_createCancelToken:function(){return this._cancelToken=axios.CancelToken.source(),this._cancelToken.token},_cancelRequests:function(){var t=this;this._cancelToken&&(this._ignoreFailedRequest=!0,this._cancelToken.cancel(),Garnish.requestAnimationFrame((function(){t._ignoreFailedRequest=!1})))},getSourceContainer:function(){return this.$sidebar.find("nav > ul")},get $sources(){if(this.sourceSelect)return this.sourceSelect.$items},getSite:function(){var t=this;if(this.siteId)return Craft.sites.find((function(e){return e.id==t.siteId}))},initSources:function(){var t=this._getSourcesInList(this.getSourceContainer());if(0===t.length)return!1;this.sourceSelect||(this.sourceSelect=new Garnish.Select(this.$sidebar.find("nav"),{multi:!1,allowEmpty:!1,vertical:!0,onSelectionChange:this._handleSourceSelectionChange.bind(this)})),this.sourcesByKey={};for(var e=0;e'+Craft.t("app","Score")+""),this.sortMenu.addOptions(this.$scoreSortAttribute.children())),this.$scoreSortAttribute.prependTo(this.$sortAttributesList),this.searching=!0,this._updateStructureSortOption(),this.setSortAttribute("score")},clearSearch:function(t){this.searching&&(this.$search.val(""),this.searchTimeout&&clearTimeout(this.searchTimeout),this.stopSearching(),t?this.updateElementsIfSearchTextChanged():this.searchText=null)},stopSearching:function(){this.$clearSearchBtn.addClass("hidden"),this.$scoreSortAttribute.detach(),this.searching=!1,this._updateStructureSortOption()},setInstanceState:function(t,e){"object"===i(t)?$.extend(this.instanceState,t):this.instanceState[t]=e,this.storeInstanceState()},storeInstanceState:function(){this.settings.storageKey&&Craft.setLocalStorage(this.settings.storageKey,this.instanceState)},getSourceState:function(t,e,i){return void 0===this.sourceStates[t]&&(this.sourceStates[t]={}),void 0===e?this.sourceStates[t]:void 0!==this.sourceStates[t][e]?this.sourceStates[t][e]:void 0!==i?i:null},getSelectedSourceState:function(t,e){return this.getSourceState(this.instanceState.selectedSource,t,e)},setSelecetedSourceState:function(t,e){var s=this.getSelectedSourceState();"object"===i(t)?$.extend(s,t):s[t]=e,this.sourceStates[this.instanceState.selectedSource]=s,Craft.setLocalStorage(this.sourceStatesStorageKey,this.sourceStates)},storeSortAttributeAndDirection:function(){var e=this.getSelectedSortAttribute();if("score"!==e){var i=[];if(e){var s=[e],a=this.getSelectedSourceState("order");a&&a!==e&&(i.push([a,this.getSelectedSourceState("sort")]),s.push(a));for(var n=this.getSelectedSourceState("orderHistory",[]),r=0;r ul > li").children("a").data("sort-options");if(e)for(var i=0;i",{"data-extra":!0}).append($("",{text:e[i][0],"data-attr":e[i][1]})).appendTo(this.$sortAttributesList);this.sortMenu.addOptions(s.children())}if(Garnish.hasAttr(this.$source,"data-has-structure")?(this.$structureSortAttribute||(this.$structureSortAttribute=$('
'+Craft.t("app","What do you want to do with their content?")+'
").appendTo(a),r=$('').appendTo(n),o=$("",{type:"button",class:"btn",text:Craft.t("app","Cancel")}).appendTo(r);if(e.contentSummary.length)for(var l=0;l",{text:e.contentSummary[l]}));else n.find("ul").remove();if(this.$deleteActionRadios=n.find("input[type=radio]"),this.$deleteSubmitBtn=$("",{type:"submit",class:"btn submit disabled",text:this._submitBtnLabel(!1)}).appendTo(r),this.$deleteSpinner=$('').appendTo(r),Garnish.isArray(this.userId)){s=["and"];for(var h=0;ht.length)&&(e=t.length);for(var i=0,s=new Array(e);i0||!this.enableAutosave||!this.settings.saveDraftAction||(this.listeningForChanges=!0,this.addListener(Garnish.$bod,"keypress,keyup,change,focus,blur,click,mousedown,mouseup",(function(t){$(t.target).is(this.statusIcons())||(clearTimeout(this.timeout),["keypress","keyup","change"].includes(t.type)?this.timeout=setTimeout(this.checkForm.bind(this),500):this.checkForm())})))},stopListeningForChanges:function(){this.listeningForChanges&&(this.removeListener(Garnish.$bod,"keypress,keyup,change,focus,blur,click,mousedown,mouseup"),clearTimeout(this.timeout),this.listeningForChanges=!1)},pause:function(){this.pauseLevel++,this.stopListeningForChanges()},resume:function(){if(0===this.pauseLevel)throw"Craft.DraftEditor::resume() should only be called after pause().";this.pauseLevel--,0===this.pauseLevel&&this.enableAutosave&&(this.checkForm(),this.listenForChanges())},initForProvisionalDraft:function(){var t=this,e=$("#discard-changes");e.length||(e=this.$revisionBtn.data("menubtn")?this.$revisionBtn.data("menubtn").menu.$container.find("#discard-changes"):null),e&&e.length&&this.addListener(e,"click",(function(){confirm(Craft.t("app","Are you sure you want to discard your changes?"))&&Craft.submitForm(Craft.cp.$primaryForm,{action:t.settings.deleteDraftAction,redirect:t.settings.hashedCpEditUrl,params:{draftId:t.settings.draftId,provisional:t.settings.isProvisionalDraft}})}))},initForDraft:function(){var t=this;this.createEditMetaBtn(),this.settings.canUpdateSource&&Garnish.uiLayerManager.registerShortcut({keyCode:Garnish.S_KEY,ctrl:!0,alt:!0},(function(){Craft.submitForm(Craft.cp.$primaryForm,{action:t.settings.publishDraftAction,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=$("#enabledForSite-".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 i=Craft.ui.createLightswitchField({id:"enabled",label:Craft.t("app","Enabled"),name:"enabled"}).insertBefore(e);i.find("label").css("font-weight","bold"),this.$globalLightswitch=i.find(".lightswitch"),this.settings.revisionId||this._showField(i);var s=Object.values(this.settings.siteStatuses),a=s.includes(!0),n=s.includes(!1),r=a&&n?"-":a?"1":"",o=encodeURIComponent("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="enabled=".concat(r),h=0;h".concat(this._saveSuccessMessage(),""):(e='
'.concat(this._saveFailMessage(),"
"),this.errors.length&&(e+='
'+this.errors.map((function(t){return"
".concat(Craft.escapeHtml(t),"
")})).join("")+"
"),this.httpError&&(e+='
'.concat(Craft.escapeHtml(this.httpError),"
")),400===this.httpStatus&&(e+='")));var i=new Garnish.HUD(t,e,{hudClass:"hud revision-status-hud",onHide:function(){i.destroy()}});i.$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.preview?this.$spinner.add(this.preview.$spinner):this.$spinner},statusIcons:function(){return this.preview?this.$statusIcon.add(this.preview.$statusIcon):this.$statusIcon},statusMessage:function(){return this.preview?this.$statusMessage.add(this.preview.$statusMessage):this.$statusMessage},createEditMetaBtn:function(){var t=$("#context-btngroup");this.$editMetaBtn=$("",{type:"button",class:"btn edit icon",title:Craft.t("app","Edit draft settings")}).appendTo(t),t.find(".btngroup-btn-last").removeClass("btngroup-btn-last"),this.addListener(this.$editMetaBtn,"click","showMetaHud")},createPreviewLink:function(t,e){var i=this,s=$("",{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(s,"click",(function(){setTimeout((function(){i.activatePreviewToken()}),1)})),this.previewLinks.push(s),s},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;$("",{id:"share-btn",type:"button",class:"btn menubtn",text:Craft.t("app","View")}).appendTo(t);var i=$("",{class:"menu"}).appendTo(t),s=$("
").appendTo(i);this.settings.previewTargets.forEach((function(t){$("").append(e.createPreviewLink(t,t.label)).appendTo(s)}))},getPreviewTokenParams:function(){var t={elementType:this.settings.elementType,sourceId:this.settings.sourceId,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 new Promise((function(e,i){t.activatedPreviewToken?e(t.settings.previewToken):t.activatingPreviewToken?t.previewTokenQueue.push(e):(t.activatingPreviewToken=!0,Craft.sendActionRequest("POST","preview/create-token",{data:t.getPreviewTokenParams()}).then((function(){for(t.activatingPreviewToken=!1,t.activatePreviewToken(),e(t.settings.previewToken);t.previewTokenQueue.length;)t.previewTokenQueue.shift()(t.settings.previewToken)})).catch(i))}))},getTokenizedPreviewUrl:function(t,e,i){var s=this;void 0===i&&(i=!0);var a={};if(!e&&this.settings.isLive||(a[e||"x-craft-preview"]=Craft.randomString(10)),this.settings.siteToken&&(a[Craft.siteToken]=this.settings.siteToken),this.settings.isLive){var n=Craft.getUrl(t,a);return i?new Promise((function(t){t(n)})):n}if(!this.settings.previewToken)throw"Missing preview token";a[Craft.tokenParam]=this.settings.previewToken;var r=Craft.getUrl(t,a);if(this.activatedPreviewToken)return i?new Promise((function(t){t(r)})):r;if(i)return new Promise((function(t,e){s.getPreviewToken().then((function(){t(r)})).catch(e)}));var o=this.getPreviewTokenParams();return o.redirect=encodeURIComponent(r),Craft.getActionUrl("preview/create-token",o)},getPreview:function(){var t=this;return this.preview||(this.preview=new Craft.Preview(this),this.enableAutosave||(this.preview.on("open",(function(){t.enableAutosave=!0,t.listenForChanges()})),this.preview.on("close",(function(){t.enableAutosave=!1,t.stopListeningForChanges();var e=t.statusIcons();e.hasClass("checkmark-icon")&&e.addClass("hidden")}))),this.preview.on("close",(function(){t.scrollY&&(window.scrollTo(0,t.scrollY),t.scrollY=null)}))),this.preview},openPreview:function(){var t=this;return new Promise((function(e,i){t.openingPreview=!0,t.ensureIsDraftOrRevision(!0).then((function(){t.scrollY=window.scrollY,t.getPreview().open(),t.openingPreview=!1,e()})).catch(i)}))},ensureIsDraftOrRevision:function(t){var e=this;return new Promise((function(i,s){if(e.settings.draftId||e.settings.revisionId)i();else{if(t&&e.serializeForm(!0)===Craft.cp.$primaryForm.data("initialSerializedValue"))return void i();e.createDraft().then(i).catch(s)}}))},serializeForm:function(t){var e=Craft.cp.$primaryForm.serialize();return this.isPreviewActive()&&(e=e.replace("__PREVIEW_FIELDS__=1",this.preview.$editor.serialize())),t&&!this.settings.isUnpublishedDraft&&(e=(e=e.replace(/&action=[^&]*/,"")).replace(/&redirect=[^&]*/,"")),e},checkForm:function(t){if(!(this.settings.revisionId||this.pauseLevel>0)&&this.enableAutosave&&this.settings.saveDraftAction){clearTimeout(this.timeout),this.timeout=null;var e=this.serializeForm(!0);if(t||e!==(this.lastSerializedValue||Craft.cp.$primaryForm.data("initialSerializedValue"))){var i=(!this.settings.draftId||this.settings.isProvisionalDraft)&&!this.settings.revisionId;this.saveDraft(e,i).catch((function(t){console.warn("Couldn’t save draft:",t)}))}}},isPreviewActive:function(){return this.preview&&this.preview.isActive},createDraft:function(){var t=this;return new Promise((function(e,i){t.saveDraft(t.serializeForm(!0)).then(e).catch(i)}))},saveDraft:function(t){var e=this;return new Promise((function(i,s){if(e.submittingForm)s("Form already being submitted.");else if(e.saving)e.queue.push((function(){e.checkForm()}));else{e.lastSerializedValue=t,e.saving=!0,e.errors=null,e.httpStatus=null,e.httpError=null,e.cancelToken=axios.CancelToken.source(),e.spinners().removeClass("hidden"),e.statusIcons().velocity("stop").css("opacity","").removeClass("invisible checkmark-icon alert-icon fade-out").addClass("hidden"),e.statusMessage().empty(),e.$saveMetaBtn&&e.$saveMetaBtn.addClass("active");var a=[],n=e.prepareData(t,e.settings.isUnpublishedDraft?void 0:function(t,e){e.length&&a.push(decodeURIComponent(e[0].split("=")[0]))});!e.settings.isProvisionalDraft&&e.settings.draftId||(n+="&provisional=1"),Craft.sendActionRequest("POST",e.settings.saveDraftAction,{cancelToken:e.cancelToken.token,headers:{"content-type":"application/x-www-form-urlencoded"},data:n}).then((function(n){e._afterSaveRequest(),n.data.errors&&(e.errors=n.data.errors,e._showFailStatus(),s(n.data.errors));var r=!e.settings.draftId;r&&(e.settings.isProvisionalDraft=!0,e.createdProvisionalDraft=!0),n.data.title&&$("#header h1").text(n.data.title),n.data.docTitle&&(document.title=n.data.docTitle),e.settings.isProvisionalDraft?r&&e.$revisionLabel.append($("",{text:" — ".concat(Craft.t("app","Edited"))})):(e.$revisionLabel.text(n.data.draftName),e.settings.draftName=n.data.draftName);var o=e.$revisionBtn.data("menubtn")?e.$revisionBtn.data("menubtn").menu:null;for(var l in e.newSiteIds&&(o||(e.$revisionBtn.removeClass("disabled").addClass("menubtn"),new Garnish.MenuBtn(e.$revisionBtn),(o=e.$revisionBtn.data("menubtn").menu).$container.removeClass("hidden")),e.newSiteIds.forEach((function(t){var i=o.$options.filter("[data-site-id=".concat(t,"]")),s=e.settings.addlSites.find((function(e){return e.siteId==t}));s&&void 0!==s.enabledByDefault&&!s.enabledByDefault||i.find(".status").removeClass("disabled").addClass("enabled"),i.parent().removeClass("hidden").closest(".site-group").removeClass("hidden")})),o.$container.find(".revision-hr").removeClass("hidden"),e.newSiteIds=null),e.settings.isProvisionalDraft?r&&($("#action").attr("value",e.settings.publishDraftAction),e.settings.draftId=n.data.draftId,e.settings.isLive=!1,e.previewToken=null,o&&o.$container.find("#current-revision").append($("",{class:"edited-desc"}).append($("",{text:Craft.t("app","Showing your unsaved changes.")})).append($("",{id:"discard-changes",class:"btn",text:Craft.t("app","Discard changes")}))),e.initForProvisionalDraft()):o&&(o.$options.filter(".sel").find(".draft-name").text(n.data.draftName),o.$options.filter(".sel").find(".draft-meta").text(n.data.creator?Craft.t("app","Saved {timestamp} by {creator}",{timestamp:n.data.timestamp,creator:n.data.creator}):Craft.t("app","Saved {timestamp}",{timestamp:n.data.timestamp}))),n.data.previewTargets&&JSON.stringify(n.data.previewTargets)!==JSON.stringify(e.settings.previewTargets)&&e.updatePreviewTargets(n.data.previewTargets),r&&(e.updatePreviewLinks(),e.trigger("createProvisionalDraft")),e.$nameTextInput&&e.checkMetaValues(),n.data.duplicatedElements)l!=e.settings.sourceId&&n.data.duplicatedElements.hasOwnProperty(l)&&(e.duplicatedElements[l]=n.data.duplicatedElements[l]);for(var h=n.data.modifiedAttributes.map((function(t){return'[name="'.concat(t,'"],[name^="').concat(t,'["]')})).concat(a.map((function(t){return'[name="'.concat(t,'"]')}))),d=$(h.join(",")).parents().filter(".field:not(:has(> .status-badge))"),c=0;c",{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.")})));e.afterUpdate(t),e.bc&&e.bc.postMessage({event:"saveDraft",canonicalId:e.settings.sourceId,draftId:e.settings.draftId,isProvisionalDraft:e.settings.isProvisionalDraft}),i()})).catch((function(t){e._afterSaveRequest(),e.ignoreFailedRequest||(e.errors=[],t&&t.response&&(e.httpStatus=t.response.status,e.httpError=t.response.data?t.response.data.error:null),e._showFailStatus(),s(t)),e.ignoreFailedRequest=!1}))}}))},_afterSaveRequest:function(){this.spinners().addClass("hidden"),this.$saveMetaBtn&&this.$saveMetaBtn.removeClass("active"),this.saving=!1},_showFailStatus:function(){this.statusIcons().velocity("stop").css("opacity","").removeClass("hidden checkmark-icon").addClass("alert-icon"),this.setStatusMessage(this._saveFailMessage())},prepareData:function(t,e){return t=Craft.findDeltaData(Craft.cp.$primaryForm.data("initialSerializedValue"),t,Craft.deltaNames,e),t=this.swapDuplicatedElementIds(t),this.settings.draftId&&(t+="&draftId=".concat(this.settings.draftId),this.settings.isProvisionalDraft&&(t+="&provisional=1")),null!==this.settings.draftName&&(t+="&draftName=".concat(this.settings.draftName)),t},swapDuplicatedElementIds:function(t){var e=this,i=Object.keys(this.duplicatedElements).join("|");if(""===i)return t;for(var s=encodeURIComponent("["),a=encodeURIComponent("]");t!==(t=t.replace(new RegExp("(&fields".concat(s,"[^=]+").concat(a).concat(s,")(").concat(i,")(").concat(a,")"),"g"),(function(t,i,s,a){return i+e.duplicatedElements[s]+a})).replace(new RegExp("&(fields".concat(s,"[^=]+)=(").concat(i,")\\b"),"g"),(function(t,i,n){return i.match(new RegExp("".concat(s,"(enabled|sordOrder|type|typeId)").concat(a,"$")))?t:"&".concat(i,"=").concat(e.duplicatedElements[n])}))););return t},updatePreviewTargets:function(t){var e=this;t.forEach((function(t){var i=e.settings.previewTargets.find((function(e){return e.label===t.label}));i&&(i.url=t.url);var s=e.previewLinks.find((function(e){return e.data("targetLabel")===t.label}));s&&(s.data("targetUrl",t.url),e.updatePreviewLinkHref(s))}))},afterUpdate:function(t){Craft.cp.$primaryForm.data("initialSerializedValue",t),Craft.initialDeltaValues={};var e=this.statusIcons().velocity("stop").css("opacity","").removeClass("hidden").addClass("checkmark-icon");this.setStatusMessage(this._saveSuccessMessage()),Craft.autosaveDrafts||e.velocity("stop").velocity({opacity:0},{delay:2e3,complete:function(){e.addClass("hidden")}}),this.trigger("update"),this.nextInQueue()},setStatusMessage:function(t){this.statusIcons().attr("title",t),this.statusMessage().empty().append($("",{class:"visually-hidden",text:t}))},nextInQueue:function(){this.queue.length&&this.queue.shift()()},showMetaHud:function(){this.metaHud?this.metaHud.show():(this.createMetaHud(),this.onMetaHudShow()),Garnish.isMobileBrowser(!0)||this.$nameTextInput.trigger("focus")},createMetaHud:function(){var t=$(""),e=$('
").appendTo(t),i=$('').appendTo(e);this.$nameTextInput=$('').appendTo(i).val(this.settings.draftName);var s=$('').appendTo(t);$('').appendTo(s),this.$saveMetaBtn=$("",{type:"submit",class:"btn submit disabled",text:Craft.t("app","Save")}).appendTo(s),this.metaHud=new Garnish.HUD(this.$editMetaBtn,t,{onSubmit:this.saveMeta.bind(this)}),this.addListener(this.$nameTextInput,"input","checkMetaValues"),this.metaHud.on("show",this.onMetaHudShow.bind(this)),this.metaHud.on("hide",this.onMetaHudHide.bind(this)),this.metaHud.on("escape",this.onMetaHudEscape.bind(this))},onMetaHudShow:function(){this.$editMetaBtn.addClass("active")},onMetaHudHide:function(){this.$editMetaBtn.removeClass("active")},onMetaHudEscape:function(){this.$nameTextInput.val(this.settings.draftName)},checkMetaValues:function(){return this.$nameTextInput.val()&&this.$nameTextInput.val()!==this.settings.draftName?(this.$saveMetaBtn.removeClass("disabled"),!0):(this.$saveMetaBtn.addClass("disabled"),!1)},shakeMetaHud:function(){Garnish.shake(this.metaHud.$hud)},saveMeta:function(){this.checkMetaValues()?(this.settings.draftName=this.$nameTextInput.val(),this.metaHud.hide(),this.checkForm(!0)):this.shakeMetaHud()},handleFormSubmit:function(t){if(t.preventDefault(),!this.submittingForm)if(!this.settings.draftId||this.settings.isUnpublishedDraft||this.settings.isProvisionalDraft||void 0!==t.autosave&&!t.autosave||!(t.saveShortcut||t.customTrigger&&t.customTrigger.data("action")===this.settings.saveDraftAction)||!this.enableAutosave){Craft.cp.$confirmUnloadForms=Craft.cp.$confirmUnloadForms.not(Craft.cp.$primaryForm),this.cancelToken&&(this.ignoreFailedRequest=!0,this.cancelToken.cancel());var e=this.prepareData(this.serializeForm(!1)),i=Craft.createForm(e);i.appendTo(Garnish.$bod),i.submit(),this.submittingForm=!0}else this.checkForm(!0)}},{defaults:{elementType:null,sourceId:null,siteId:null,isUnpublishedDraft:!1,enabled:!1,enabledForSite:!1,isLive:!1,isProvisionalDraft:!1,siteStatuses:null,addlSites:[],cpEditUrl:null,draftId:null,revisionId:null,draftName:null,canEditMultipleSites:!1,canUpdateSource:!1,saveDraftAction:null,deleteDraftAction:null,publishDraftAction:null,hashedCpEditUrl:null,hashedAddAnotherRedirectUrl:null,enablePreview:!1,previewTargets:[],previewToken:null,siteToken:null}})},2318:function(){Craft.DynamicGenerator=Craft.BaseInputGenerator.extend({callback:$.noop,init:function(t,e,i){this.callback=i,this.base(t,e)},generateTargetValue:function(t){return this.callback(t)}})},4755:function(){Craft.EditableTable=Garnish.Base.extend({initialized:!1,id:null,baseName:null,columns:null,sorter:null,biggestId:-1,$table:null,$tbody:null,$addRowBtn:null,$tableParent:null,$statusMessage:null,rowCount:0,hasMaxRows:!1,hasMinRows:!1,radioCheckboxes:null,init:function(t,e,i,s){var a=this;if(this.id=t,this.baseName=e,this.columns=i,this.setSettings(s,Craft.EditableTable.defaults),this.radioCheckboxes={},this.$table=$("#"+t),this.$tbody=this.$table.children("tbody"),this.$tableParent=this.$table.parent(),this.$statusMessage=this.$tableParent.find("[data-status-message]"),this.rowCount=this.$tbody.find("tr").length,this.$table.data("editable-table")&&(console.warn("Double-instantiating an editable table on an element"),this.$table.data("editable-table").destroy()),this.$table.data("editable-table",this),this.sorter=new Craft.DataTableSorter(this.$table,{helperClass:"editabletablesorthelper",copyDraggeeInputValuesToHelper:!0,onSortChange:function(){a.updateAllRows()}}),this.isVisible()?this.initialize():setTimeout(this.initializeIfVisible.bind(this),500),this.settings.minRows&&this.rowCount0},initialize:function(){if(this.initialized)return!1;this.initialized=!0,this.removeListener(Garnish.$win,"resize");for(var t=this.$tbody.children(),e=0;ei.width()&&i.css("overflow-x","auto"),this.$addRowBtn=this.$table.next(".add"),this.updateAddRowButton(),this.addListener(this.$addRowBtn,"activate","addRow"),!0},initializeIfVisible:function(){this.removeListener(Garnish.$win,"resize"),this.isVisible()?this.initialize():this.addListener(Garnish.$win,"resize","initializeIfVisible")},updateAddRowButton:function(){this.canAddRow()?(this.$addRowBtn.css("opacity","1"),this.$addRowBtn.css("pointer-events","auto"),this.$addRowBtn.attr("aria-disabled","false")):(this.$addRowBtn.css("opacity","0.2"),this.$addRowBtn.css("pointer-events","none"),this.$addRowBtn.attr("aria-disabled","true"))},updateAllRows:function(){if(!this.settings.staticRows)for(var t=this.$table.find("> tbody > tr"),e=0;ethis.settings.minRows},deleteRow:function(t){this.canDeleteRow()?(this.sorter.removeItems(t.$tr),t.$tr.remove(),this.rowCount--,this.updateAllRows(),this.updateAddRowButton(),0===this.rowCount&&this.$table.addClass("hidden"),this.settings.onDeleteRow(t.$tr),t.destroy()):this.updateStatusMessage()},canAddRow:function(){return!this.settings.staticRows&&(!this.settings.maxRows||this.rowCount",{"data-id":t});for(var n in e)if(e.hasOwnProperty(n)){var r,o=e[n],l=void 0!==s[n]?s[n]:"";if("heading"===o.type)r=$("
",{class:"".concat(o.class," ").concat(o.type,"-cell"),width:o.width}),Craft.inArray(o.type,Craft.EditableTable.textualColTypes)&&r.addClass("textual"),o.code&&r.addClass("code"),o.type){case"checkbox":$('').append(Craft.ui.createCheckbox({name:h,value:o.value||"1",checked:!!l})).appendTo(r);break;case"color":Craft.ui.createColorInput({name:h,value:l,small:!0}).appendTo(r);break;case"date":Craft.ui.createDateInput({name:h,value:l}).appendTo(r);break;case"lightswitch":Craft.ui.createLightswitch({name:h,value:o.value||"1",on:!!l,small:!0}).appendTo(r);break;case"select":Craft.ui.createSelect({name:h,options:o.options,value:l||function(){for(var t in o.options)if(o.options.hasOwnProperty(t)&&o.options[t].default)return void 0!==o.options[t].value?o.options[t].value:t;return null}(),class:"small"}).appendTo(r);break;case"time":Craft.ui.createTimeInput({name:h,value:l}).appendTo(r);break;case"email":case"url":Craft.ui.createTextInput({name:h,value:l,type:o.type,placeholder:o.placeholder||null}).appendTo(r);break;default:$("",{name:h,rows:o.rows||1,val:l,placeholder:o.placeholder}).appendTo(r)}}r.appendTo(a)}return $("
").append($("").append($("",{"data-action":"moveLeft",text:Craft.t("app","Move to the left")}))).append($("").append($("",{"data-action":"moveRight",text:Craft.t("app","Move to the right")}))));var i=new Garnish.MenuBtn(e,{onOptionSelect:this.onTabOptionSelect.bind(this)});i.menu.on("show",(function(){t.prev(".fld-tab").length?i.menu.$container.find("[data-action=moveLeft]").removeClass("disabled"):i.menu.$container.find("[data-action=moveLeft]").addClass("disabled"),t.next(".fld-tab").length?i.menu.$container.find("[data-action=moveRight]").removeClass("disabled"):i.menu.$container.find("[data-action=moveRight]").addClass("disabled")}))}for(var s=t.children(".fld-tabcontent").children(),a=0;a\n