diff --git a/_build/templates/default/sass/index.scss b/_build/templates/default/sass/index.scss index e77e4910478..92b6c7ba29d 100644 --- a/_build/templates/default/sass/index.scss +++ b/_build/templates/default/sass/index.scss @@ -1763,6 +1763,94 @@ iframe[classname="x-hidden"] { border: 0 !important; } +.info-list { + &.hide-list { + display: none; + } + .header { + color: scale-color($color: $coreFieldLabelColor, $lightness: 10%); + font: $fontMedium; + font-weight: 600; + &::before { + @include awesome-font; + content: fa-content($fa-var-unlock); + color: scale-color($color: $colorSplash, $saturation: -40%, $lightness: 25%); + display: inline-block; + margin: 0 .25rem; + } + span { + font-weight: normal; + } + } + ul { + margin-top: .5rem; + padding: .5rem; + border: 1px dashed $borderColor; + border-radius: $borderRadius; + li { + font: $fontMedium; + color: scale-color($color: $coreFieldLabelColor, $lightness: 15%); + padding: .15rem 0; + line-height: 1; + word-break: break-word; + } + } + @include grid-media($gtMobile) { + ul { + columns: 2; + column-gap: 2rem; + } + } + .x-window & { + margin-top: 1rem; + } + .x-grid3 & { + ul { + position: relative; + padding-left: 1rem; + background-color: #fcfbfb; + .x-grid3-row-alt & { + background-color: #f9faff; + } + &::before { + @include awesome-font; + content: fa-content($fa-var-unlock); + color: scale-color($color: $colorSplash, $saturation: -40%, $lightness: 25%); + position: absolute; + text-align: center; + font-size: 11px; + left: -7px; + top: -7px; + width: 14px; + height: 14px; + padding-top: 2px; + box-shadow: -1px 1px 3px #888; + border-radius: 100%; + background-color: #fff; + } + li { + font-style: italic; + } + } + @include grid-media($gtTabletP) { + ul { + columns: 3; + } + } + @include grid-media($gtTabletL) { + ul { + columns: 4; + } + } + @include grid-media($gtCinema) { + ul { + columns: 5; + } + } + } + +} + /* for selectability in ext grids */ .x-selectable, .x-selectable * { diff --git a/core/lexicon/en/access.inc.php b/core/lexicon/en/access.inc.php index 5d069a31908..a2e3e66911e 100644 --- a/core/lexicon/en/access.inc.php +++ b/core/lexicon/en/access.inc.php @@ -7,6 +7,7 @@ * @subpackage lexicon */ $_lang['access_category_management_msg'] = 'Manage User Group member access to Elements via Categories and optionally apply access policies.'; +$_lang['access_category_create'] = 'Add Category Access'; $_lang['access_category_err_ae'] = 'An ACL for that Category already exists!'; $_lang['access_category_err_nf'] = 'Category ACL not found.'; $_lang['access_category_err_ns'] = 'Category ACL not specified.'; @@ -15,6 +16,7 @@ $_lang['access_category_update'] = 'Edit Category Access'; $_lang['access_confirm_remove'] = 'Are you sure you want to delete this security access control record?'; $_lang['access_context_management_msg'] = 'Manage User Group member access to Contexts and optionally apply access policies.'; +$_lang['access_context_create'] = 'Add Context Access'; $_lang['access_context_err_ae'] = 'An ACL for that Context already exists!'; $_lang['access_context_err_nf'] = 'Context ACL not found.'; $_lang['access_context_err_ns'] = 'Context ACL not specified.'; @@ -28,6 +30,9 @@ $_lang['access_err_save'] = 'Error saving ACL!'; $_lang['access_grid_empty'] = 'No ACLs to display'; $_lang['access_grid_paginate'] = 'Displaying ACLs {0} - {1} of {2}'; +$_lang['access_namespace_create'] = 'Add Namespace Access'; +$_lang['access_namespace_remove'] = 'Delete Namespace Access'; +$_lang['access_namespace_update'] = 'Edit Namespace Access'; $_lang['access_permissions'] = 'Access Permissions'; $_lang['access_permissions_add_document_group'] = 'Create a new document group'; $_lang['access_permissions_add_user_group'] = 'Create a new user group'; @@ -53,12 +58,14 @@ $_lang['access_policy_grid_empty'] = 'No policies to display'; $_lang['access_policy_grid_paginate'] = 'Displaying policies {0} - {1} of {2}'; $_lang['access_resourcegroup_management_msg'] = 'Manage User Group member access to Resource Groups and optionally apply access policies.'; +$_lang['access_resourcegroup_create'] = 'Add Resource Group Access'; +$_lang['access_resourcegroup_remove'] = 'Delete Resource Group Access'; +$_lang['access_resourcegroup_update'] = 'Edit Resource Group Access'; $_lang['access_rgroup_err_ae'] = 'An ACL for that Resource Group already exists!'; $_lang['access_rgroup_err_nf'] = 'Resource Group ACL not found.'; $_lang['access_rgroup_err_ns'] = 'Resource Group ACL not specified.'; $_lang['access_rgroup_err_remove'] = 'An error occurred while trying to delete the Resource Group ACL.'; -$_lang['access_rgroup_remove'] = 'Delete Resource Group Access'; -$_lang['access_rgroup_update'] = 'Edit Resource Group Access'; +$_lang['access_source_create'] = 'Add Media Source Access'; $_lang['access_source_err_ae'] = 'An ACL for that Media Source already exists.'; $_lang['access_source_remove'] = 'Delete Media Source Access'; $_lang['access_source_update'] = 'Edit Media Source Access'; @@ -108,8 +115,7 @@ $_lang['roles_msg'] = 'A role is, by definition, a position or status one holds within a certain situation. They can be used to group Users into a position or status within a User Group. Roles in MODX also have what is called "Authority". This is a number value that can be any valid integer. Authority levels are "inheritable downward", in the sense that a Role with Authority 1 will inherit any and all Group Policies assigned to itself, and to any Roles with higher Authority level than 1.'; $_lang['source_add'] = 'Add Media Source'; $_lang['namespace_add'] = 'Add Namespace'; -$_lang['access_namespace_update'] = 'Edit Namespace Access'; -$_lang['access_namespace_remove'] = 'Delete Namespace Access'; + $_lang['filter_by_namespace'] = 'Filter by Namespace...'; $_lang['user_group_aw'] = 'Access Wizard'; @@ -135,6 +141,7 @@ $_lang['user_group_category_err_ae'] = 'User Group already has access to that Category.'; $_lang['user_group_category_policy_desc'] = 'The Policy to apply to this Context with Elements in the Category for this User Group. This will grant all Users in this User Group with the selected minimum Role all the Permissions in the Policy.'; $_lang['user_group_category_remove_confirm'] = 'Are you sure you want to delete this Category from this User Group?'; + $_lang['user_group_context_access'] = 'Contexts'; $_lang['user_group_context_access_msg'] = 'Set the Contexts this User Group can access.'; $_lang['user_group_context_authority_desc'] = 'The minimum Role that will have access to the Permissions in the selected Policy for this context. Roles with stronger Authority (lower numbers) will inherit this access as well. Most situations can leave this at "Member".'; @@ -142,6 +149,7 @@ $_lang['user_group_context_policy_desc'] = 'The Policy to apply to this Context for this User Group. This will grant all Users in this User Group with the selected minimum Role all the Permissions in the Policy.'; $_lang['user_group_context_err_ae'] = 'User Group already has access to that context.'; $_lang['user_group_context_remove_confirm'] = 'Are you sure you want to delete this Context from this User Group?'; + $_lang['user_group_resourcegroup_access'] = 'Resource Groups'; $_lang['user_group_resourcegroup_access_msg'] = 'Set the Resource Groups this User Group can access.'; $_lang['user_group_resourcegroup_authority_desc'] = 'The minimum Role that will have access to the Permissions in the selected Policy for this context. Roles with stronger Authority (lower numbers) will inherit this access as well. Most situations can leave this at "Member".'; @@ -150,6 +158,7 @@ $_lang['user_group_resourcegroup_policy_desc'] = 'The Policy to apply to this Context with Resources in the Resource Group for this User Group. This will grant all Users in this User Group with the selected minimum Role all the Permissions in the Policy.'; $_lang['user_group_resourcegroup_remove_confirm'] = 'Are you sure you want to delete this Resource Group from this User Group?'; $_lang['user_group_resourcegroup_resource_group_desc'] = 'The Resource Group to grant access to.'; + $_lang['user_group_source_access'] = 'Media Sources'; $_lang['user_group_source_access_msg'] = 'Set the Media Sources this User Group can access.'; $_lang['user_group_source_authority_desc'] = 'The minimum Role that will have access to the Permissions in the selected Policy. Roles with stronger Authority (lower numbers) will inherit this access as well. Most situations can leave this at "Member".'; @@ -158,5 +167,14 @@ $_lang['user_group_source_remove_confirm'] = 'Are you sure you want to delete this Media Source from this User Group?'; $_lang['user_group_source_source_desc'] = 'The Media Source to grant access to.'; $_lang['user_group_user_access_msg'] = 'Select which users you want in this User Group.'; + $_lang['user_group_namespace_access'] = 'Namespaces'; $_lang['user_group_namespace_access_desc'] = 'Set the Namespaces this User Group can access.'; + +$_lang['user_group_namespace_namespace_desc'] = 'The Namespace to grant access to.'; +$_lang['user_group_namespace_authority_desc'] = 'The minimum Role that will have access to the Permissions in the selected Policy. Roles with stronger Authority (lower numbers) will inherit this access as well. Most situations can leave this at "Member".'; +$_lang['user_group_namespace_policy_desc'] = 'The Policy to apply to this Namespace for this User Group. This will grant all Users in this User Group with the selected minimum Role all the Permissions in the Policy.'; + +// Renamed, deprecated as of 3.0.4, remove in 3.1.0 +$_lang['access_rgroup_remove'] = $lang['access_resourcegroup_remove']; +$_lang['access_rgroup_update'] = $lang['access_resourcegroup_update']; \ No newline at end of file diff --git a/core/lexicon/en/user.inc.php b/core/lexicon/en/user.inc.php index a9986fa182a..951418ac841 100644 --- a/core/lexicon/en/user.inc.php +++ b/core/lexicon/en/user.inc.php @@ -50,7 +50,6 @@ $_lang['role_remove_confirm'] = 'Are you sure you want to delete this role?'; $_lang['roles'] = 'Roles'; $_lang['rrg_drag'] = 'Drag resources into resource groups here.'; -$_lang['ugc_mutate'] = 'User Group Access to Context'; $_lang['ugc_grid_title'] = 'User Group Access to Contexts'; $_lang['ugc_remove'] = 'Delete User Group Access to this Context'; $_lang['ugrg_grid_title'] = 'User Group Access to Resource Groups'; @@ -196,3 +195,6 @@ $_lang['users'] = 'Users'; $_lang['user_createdon'] = 'Created On'; $_lang['user_createdon_desc'] = 'The date the user was created.'; + +// Renamed and/or deprecated as of 3.0.4; remove in 3.1.0 +$_lang['ugc_mutate'] = 'User Group Access to Context'; // now in access.inc.php, access_context_create \ No newline at end of file diff --git a/manager/assets/modext/modx.jsgrps-min.js b/manager/assets/modext/modx.jsgrps-min.js index 4352a189605..fa5d979dc33 100644 --- a/manager/assets/modext/modx.jsgrps-min.js +++ b/manager/assets/modext/modx.jsgrps-min.js @@ -36,7 +36,7 @@ Ext.ns("Ext.ux.form"),Ext.ux.form.FileUploadField=Ext.extend(Ext.form.TextField, * @license TBA (To be announced) * */ -Ext.ux.form.SuperBoxSelect=function(config){Ext.ux.form.SuperBoxSelect.superclass.constructor.call(this,config),this.addEvents("beforeadditem","additem","newitem","beforeremoveitem","removeitem","clear")},Ext.ux.form.SuperBoxSelect=Ext.extend(Ext.ux.form.SuperBoxSelect,Ext.form.ComboBox,{addNewDataOnBlur:!1,allowAddNewData:!1,allowQueryAll:!0,backspaceDeletesLastItem:!0,classField:null,clearBtnCls:"",clearLastQueryOnEscape:!1,clearOnEscape:!1,displayFieldTpl:null,extraItemCls:"",extraItemStyle:"",expandBtnCls:"",fixFocusOnTabSelect:!0,forceFormValue:!0,forceSameValueQuery:!1,itemDelimiterKey:Ext.EventObject.ENTER,navigateItemsWithTab:!0,pinList:!0,preventDuplicates:!0,queryFilterRe:"",queryValuesDelimiter:"|",queryValuesIndicator:"valuesqry",removeValuesFromStore:!0,renderFieldBtns:!0,stackItems:!1,styleField:null,supressClearValueRemoveEvents:!1,validationEvent:"blur",valueDelimiter:",",initComponent:function(){Ext.apply(this,{items:new Ext.util.MixedCollection(!1),usedRecords:new Ext.util.MixedCollection(!1),addedRecords:[],remoteLookup:[],hideTrigger:!0,grow:!1,resizable:!1,multiSelectMode:!1,preRenderValue:null,filteredQueryData:""}),this.queryFilterRe&&Ext.isString(this.queryFilterRe)&&(this.queryFilterRe=new RegExp(this.queryFilterRe)),this.transform&&this.doTransform(),this.forceFormValue&&this.items.on({add:this.manageNameAttribute,remove:this.manageNameAttribute,clear:this.manageNameAttribute,scope:this}),Ext.ux.form.SuperBoxSelect.superclass.initComponent.call(this),"remote"===this.mode&&this.store&&this.store.on("load",this.onStoreLoad,this)},onRender:function(ct,position){var h=this.hiddenName;this.hiddenName=null,Ext.ux.form.SuperBoxSelect.superclass.onRender.call(this,ct,position),this.hiddenName=h,this.manageNameAttribute();var extraClass=!0===this.stackItems?"x-superboxselect-stacked":"";this.renderFieldBtns&&(extraClass+=" x-superboxselect-display-btns"),this.el.removeClass("x-form-text").addClass("x-superboxselect-input-field"),this.wrapEl=this.el.wrap({tag:"ul"}),this.outerWrapEl=this.wrapEl.wrap({tag:"div",cls:"x-form-text x-superboxselect "+extraClass}),this.inputEl=this.el.wrap({tag:"li",cls:"x-superboxselect-input"}),this.renderFieldBtns&&this.setupFieldButtons().manageClearBtn(),this.setupFormInterception()},doTransform:function(){var s=Ext.getDom(this.transform),transformValues=[];if(!this.store){this.mode="local";for(var d=[],opts=s.options,i=0,len=opts.length;i0&&(this.collapse(),(it=this.items.get(0)).el.focus()),!0):e.getKey()===e.BACKSPACE?(e.stopEvent(),this.currentFocus?(toDestroy=this.currentFocus,this.on("expand",(function(){this.collapse()}),this,{single:!0}),idx=this.items.indexOfKey(toDestroy.key),this.clearCurrentFocus(),idx0?(this.el.removeClass(this.emptyClass),this.setRawValue(""),this):(this.rendered&&this.emptyText&&this.getRawValue().length<1&&(this.setRawValue(this.emptyText),this.el.addClass(this.emptyClass)),this)},removeAllItems:function(){return this.items.each((function(item){item.preDestroy(!0)}),this),this.manageClearBtn(),this},killItems:function(){return this.items.each((function(item){item.kill()}),this),this.resetStore(),this.items.clear(),this.manageClearBtn(),this},resetStore:function(){return this.store.clearFilter(),this.removeValuesFromStore?(this.usedRecords.each((function(rec){this.store.add(rec)}),this),this.usedRecords.clear(),this.store.remoteSort||this.store.sort(this.displayField,"ASC"),this):this},sortStore:function(){var ss=this.store.getSortState();return ss&&ss.field&&this.store.sort(ss.field,ss.direction),this},getCaption:function(dataObject){"string"==typeof this.displayFieldTpl&&(this.displayFieldTpl=new Ext.XTemplate(this.displayFieldTpl));var caption,recordData=dataObject instanceof Ext.data.Record?dataObject.data:dataObject;return this.displayFieldTpl?caption=this.displayFieldTpl.apply(recordData):this.displayField&&(caption=recordData[this.displayField]),caption},addRecord:function(record){var display=record.data[this.displayField],caption=this.getCaption(record),val=record.data[this.valueField],cls=this.classField?record.data[this.classField]:"",style=this.styleField?record.data[this.styleField]:"";this.removeValuesFromStore&&(this.usedRecords.add(val,record),this.store.remove(record)),this.addItemBox(val,display,caption,cls,style),this.fireEvent("additem",this,val,record)},createRecord:function(recordData){if(!this.recordConstructor){var recordFields=[{name:this.valueField},{name:this.displayField}];this.classField&&recordFields.push({name:this.classField}),this.styleField&&recordFields.push({name:this.styleField}),this.recordConstructor=Ext.data.Record.create(recordFields)}return new this.recordConstructor(recordData)},addItems:function(newItemObjects){Ext.isArray(newItemObjects)?Ext.each(newItemObjects,(function(item){this.addItem(item)}),this):this.addItem(newItemObjects)},addNewItem:function(newItemObject){this.addItem(newItemObject,!0)},addItem:function(newItemObject,forcedAdd){var val=newItemObject[this.valueField];if(this.disabled)return!1;if(!this.preventDuplicates||!this.hasValue(val)){var record=this.findRecord(this.valueField,val);if(record)this.addRecord(record);else if(this.allowAddNewData){if("remote"===this.mode)return this.remoteLookup.push(newItemObject),void this.doQuery(val,!1,!1,forcedAdd);var rec=this.createRecord(newItemObject);return this.store.add(rec),this.addRecord(rec),!0}}},addItemBox:function(itemVal,itemDisplay,itemCaption,itemClass,itemStyle){var hConfig,itemKey=Ext.id(null,"sbx-item"),box=new Ext.ux.form.SuperBoxSelectItem({owner:this,disabled:this.disabled,renderTo:this.wrapEl,cls:this.extraItemCls+" "+itemClass,style:function(s){var ret="";switch(typeof s){case"function":ret=s.call();break;case"object":for(var p in s)ret+=p+":"+s[p]+";";break;case"string":ret=s+";"}return ret}(this.extraItemStyle)+" "+itemStyle,caption:itemCaption,display:itemDisplay,value:itemVal,key:itemKey,listeners:{remove:function(item){if(!1===this.fireEvent("beforeremoveitem",this,item.value))return!1;this.items.removeKey(item.key),this.removeValuesFromStore&&this.usedRecords.containsKey(item.value)&&(this.store.add(this.usedRecords.get(item.value)),this.usedRecords.removeKey(item.value),this.sortStore(),this.view&&this.view.render()),this.preventMultipleRemoveEvents||this.fireEvent.defer(250,this,["removeitem",this,item.value,this.findInStore(item.value)])},destroy:function(){this.collapse(),this.autoSize().manageClearBtn().validateValue()},scope:this}});box.render(),hConfig={tag:"input",type:"hidden",value:itemVal,name:this.hiddenName||this.name},this.disabled&&Ext.apply(hConfig,{disabled:"disabled"}),box.hidden=this.el.insertSibling(hConfig,"before"),this.items.add(itemKey,box),this.applyEmptyText().autoSize().manageClearBtn().validateValue()},manageClearBtn:function(){if(!this.renderFieldBtns||!this.rendered)return this;var cls="x-superboxselect-btn-hide";return 0===this.items.getCount()?this.buttonClear.addClass(cls):this.buttonClear.removeClass(cls),this},findInStore:function(val){var index=this.store.find(this.valueField,val);return index>-1&&this.store.getAt(index)},getSelectedRecords:function(){var ret=[];if(this.removeValuesFromStore)ret=this.usedRecords.getRange();else{var vals=[];this.items.each((function(item){vals.push(item.value)})),Ext.each(vals,(function(val){ret.push(this.findInStore(val))}),this)}return ret},findSelectedItem:function(el){var ret;return this.items.each((function(item){if(item.el.dom===el)return ret=item,!1})),ret},findSelectedRecord:function(el){var ret,item=this.findSelectedItem(el);return item&&(ret=this.findSelectedRecordByValue(item.value)),ret},findSelectedRecordByValue:function(val){var ret;return this.removeValuesFromStore?this.usedRecords.each((function(rec){if(rec.get(this.valueField)==val)return ret=rec,!1}),this):ret=this.findInStore(val),ret},getValue:function(){var ret=[];return this.items.each((function(item){ret.push(item.value)})),ret.join(this.valueDelimiter)},getCount:function(){return this.items.getCount()},getValueEx:function(){var ret=[];return this.items.each((function(item){var newItem={};newItem[this.valueField]=item.value,newItem[this.displayField]=item.display,this.classField&&(newItem[this.classField]=item.cls||""),this.styleField&&(newItem[this.styleField]=item.style||""),ret.push(newItem)}),this),ret},initValue:function(){Ext.isObject(this.value)||Ext.isArray(this.value)?(this.setValueEx(this.value),this.originalValue=this.getValue()):Ext.ux.form.SuperBoxSelect.superclass.initValue.call(this),"remote"===this.mode&&(this.setOriginal=!0)},addValue:function(value){if(!Ext.isEmpty(value)){var values=value;if(Ext.isArray(value)||(values=(value=""+value).split(this.valueDelimiter)),Ext.each(values,(function(val){var record=this.findRecord(this.valueField,val);record?this.addRecord(record):"remote"===this.mode&&this.remoteLookup.push(val)}),this),"remote"===this.mode){var q=this.remoteLookup.join(this.queryValuesDelimiter);this.doQuery(q,!1,!0)}}},setValue:function(value){this.rendered?(this.removeAllItems().resetStore(),this.remoteLookup=[],this.addValue(value)):this.value=value},setValueEx:function(data){this.rendered?(this.removeAllItems().resetStore(),Ext.isArray(data)||(data=[data]),this.remoteLookup=[],this.allowAddNewData&&"remote"===this.mode?Ext.each(data,(function(d){var r=this.findRecord(this.valueField,d[this.valueField])||this.createRecord(d);this.addRecord(r)}),this):Ext.each(data,(function(item){this.addItem(item)}),this)):this.value=data},hasValue:function(val){var has=!1;return this.items.each((function(item){if(item.value==val)return has=!0,!1}),this),has},onSelect:function(record,index){if(!1!==this.fireEvent("beforeselect",this,record,index)){var val=record.data[this.valueField];if(this.preventDuplicates&&this.hasValue(val))return;this.setRawValue(""),this.lastSelectionText="",!1!==this.fireEvent("beforeadditem",this,val,record,this.filteredQueryData)&&this.addRecord(record),0!==this.store.getCount()&&this.multiSelectMode?this.restrictHeight():this.collapse()}},onDestroy:function(){this.items.purgeListeners(),this.killItems(),this.allowQueryAll&&Ext.destroy(this.buttonExpand),this.renderFieldBtns&&Ext.destroy(this.buttonClear,this.buttonWrap),Ext.destroy(this.inputEl,this.wrapEl,this.outerWrapEl),Ext.ux.form.SuperBoxSelect.superclass.onDestroy.call(this)},autoSize:function(){if(!this.rendered)return this;this.metrics||(this.metrics=Ext.util.TextMetrics.createInstance(this.el));var v=this.el.dom.value,d=document.createElement("div");""===v&&this.emptyText&&this.items.getCount()<1&&(v=this.emptyText),d.appendChild(document.createTextNode(v)),v=d.innerHTML,d=null,v+=" ";var w=Math.max(this.metrics.getWidth(v)+24,24);return void 0!==this._width&&(w=Math.min(this._width,w)),this.el.setWidth(w),Ext.isIE&&(this.el.dom.style.top="0"),this.fireEvent("autosize",this,w),this},shouldQuery:function(q){if(this.lastQuery){var m=q.match("^"+this.lastQuery);return!(m&&!this.store.getCount())||m[0]!==this.lastQuery}return!0},doQuery:function(q,forceAll,valuesQuery,forcedAdd){if(q=Ext.isEmpty(q)?"":q,this.queryFilterRe){this.filteredQueryData="";var m=q.match(this.queryFilterRe);if(m&&m.length&&(this.filteredQueryData=m[0]),!(q=q.replace(this.queryFilterRe,""))&&m)return}var qe={query:q,forceAll,combo:this,cancel:!1};if(!1===this.fireEvent("beforequery",qe)||qe.cancel)return!1;q=qe.query,(!0===(forceAll=qe.forceAll)||q.length>=this.minChars||valuesQuery&&!Ext.isEmpty(q))&&(forcedAdd||this.forceSameValueQuery||this.shouldQuery(q)?(this.lastQuery=q,"local"==this.mode?(this.selectedIndex=-1,forceAll?this.store.clearFilter():this.store.filter(this.displayField,q),this.onLoad()):(this.store.baseParams[this.queryParam]=q,this.store.baseParams[this.queryValuesIndicator]=valuesQuery,this.store.load({params:this.getParams(q)}),forcedAdd||this.expand())):(this.selectedIndex=-1,this.onLoad()))},onStoreLoad:function(store,records,options){var q=options.params[this.queryParam]||store.baseParams[this.queryParam]||"",isValuesQuery=options.params[this.queryValuesIndicator]||store.baseParams[this.queryValuesIndicator];if(this.removeValuesFromStore&&this.store.each((function(record){this.usedRecords.containsKey(record.get(this.valueField))&&this.store.remove(record)}),this),isValuesQuery){var params=q.split(this.queryValuesDelimiter);Ext.each(params,(function(p){this.remoteLookup.remove(p);var rec=this.findRecord(this.valueField,p);rec&&this.addRecord(rec)}),this),this.setOriginal&&(this.setOriginal=!1,this.originalValue=this.getValue())}""!==q&&this.allowAddNewData&&Ext.each(this.remoteLookup,(function(r){if("object"==typeof r&&r[this.valueField]===q){if(this.remoteLookup.remove(r),records.length&&records[0].get(this.valueField)===q)return void this.addRecord(records[0]);var rec=this.createRecord(r);return this.store.add(rec),this.addRecord(rec),this.addedRecords.push(rec),void function(){this.isExpanded()&&this.collapse()}.defer(10,this)}}),this);var toAdd=[];if(""===q)Ext.each(this.addedRecords,(function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||toAdd.push(rec)}),this);else{var re=new RegExp(Ext.escapeRe(q)+".*","i");Ext.each(this.addedRecords,(function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||re.test(rec.get(this.displayField))&&toAdd.push(rec)}),this)}this.store.add(toAdd),this.sortStore(),0===this.store.getCount()&&this.isExpanded()&&this.collapse()}}),Ext.reg("superboxselect",Ext.ux.form.SuperBoxSelect),Ext.ux.form.SuperBoxSelectItem=function(config){Ext.apply(this,config),Ext.ux.form.SuperBoxSelectItem.superclass.constructor.call(this)},Ext.ux.form.SuperBoxSelectItem=Ext.extend(Ext.ux.form.SuperBoxSelectItem,Ext.Component,{initComponent:function(){Ext.ux.form.SuperBoxSelectItem.superclass.initComponent.call(this)},onElClick:function(e){var o=this.owner;if(o.clearCurrentFocus().collapse(),o.navigateItemsWithTab)this.focus();else{o.el.dom.focus();(function(){this.onLnkFocus(),o.currentFocus=this}).defer(10,this)}},onLnkClick:function(e){e&&e.stopEvent(),this.preDestroy(),this.owner.navigateItemsWithTab||this.owner.el.focus()},onLnkFocus:function(){this.el.addClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.addClass("x-form-focus")},onLnkBlur:function(){this.el.removeClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.removeClass("x-form-focus")},enableElListeners:function(){this.el.on("click",this.onElClick,this,{stopEvent:!0}),this.el.addClassOnOver("x-superboxselect-item x-superboxselect-item-hover")},enableLnkListeners:function(){this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this})},enableAllListeners:function(){this.enableElListeners(),this.enableLnkListeners()},disableAllListeners:function(){this.el.removeAllListeners(),this.lnk.un("click",this.onLnkClick,this),this.lnk.un("focus",this.onLnkFocus,this),this.lnk.un("blur",this.onLnkBlur,this)},onRender:function(ct,position){Ext.ux.form.SuperBoxSelectItem.superclass.onRender.call(this,ct,position);var el=this.el;el&&el.remove(),this.el=el=ct.createChild({tag:"li"},ct.last()),el.addClass("x-superboxselect-item");var btnEl=this.owner.navigateItemsWithTab?"a":"span";this.key;Ext.apply(el,{focus:function(){var c=this.down(btnEl+".x-superboxselect-item-close");c&&c.focus()},preDestroy:function(){this.preDestroy()}.createDelegate(this)}),this.enableElListeners(),el.update(this.caption);var cfg={tag:btnEl,class:"x-superboxselect-item-close",tabIndex:this.owner.navigateItemsWithTab?"0":"-1"};"a"===btnEl&&(cfg.href="#"),this.lnk=el.createChild(cfg),this.disabled?this.disableAllListeners():this.enableLnkListeners(),this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this}),this.setupKeyMap()},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.lnk,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE,Ext.EventObject.SPACE],fn:this.preDestroy,scope:this},{key:[Ext.EventObject.RIGHT,Ext.EventObject.DOWN],fn:function(){this.moveFocus("right")},scope:this},{key:[Ext.EventObject.LEFT,Ext.EventObject.UP],fn:function(){this.moveFocus("left")},scope:this},{key:[Ext.EventObject.HOME],fn:function(){var l=this.owner.items.get(0).el.focus();l&&l.el.focus()},scope:this},{key:[Ext.EventObject.END],fn:function(){this.owner.el.focus()},scope:this},{key:Ext.EventObject.ENTER,fn:function(){}}]),this.keyMap.stopEvent=!0},moveFocus:function(dir){var el=this.el["left"==dir?"prev":"next"]()||this.owner.el;el.focus.defer(100,el)},preDestroy:function(supressEffect){if(!1!==this.fireEvent("remove",this)){var actionDestroy=function(){this.owner.navigateItemsWithTab&&this.moveFocus("right"),this.hidden.remove(),this.hidden=null,this.destroy()};return supressEffect?actionDestroy.call(this):this.el.hide({duration:.2,callback:actionDestroy,scope:this}),this}},kill:function(){this.hidden.remove(),this.hidden=null,this.purgeListeners(),this.destroy()},onDisable:function(){this.hidden&&this.hidden.dom.setAttribute("disabled","disabled"),this.keyMap.disable(),Ext.ux.form.SuperBoxSelectItem.superclass.onDisable.call(this)},onEnable:function(){this.hidden&&this.hidden.dom.removeAttribute("disabled"),this.keyMap.enable(),Ext.ux.form.SuperBoxSelectItem.superclass.onEnable.call(this)},onDestroy:function(){Ext.destroy(this.lnk,this.el),Ext.ux.form.SuperBoxSelectItem.superclass.onDestroy.call(this)}}),MODx.Component=function(config){config=config||{},MODx.Component.superclass.constructor.call(this,config),this.config=config,this._loadForm(),this.config.tabs&&this._loadTabs(),this._loadComponents(),this._loadActionButtons(),MODx.activePage=this},Ext.extend(MODx.Component,Ext.Component,{fields:{},form:null,action:!1,_loadForm:function(){if(!this.config.form)return!1;if(this.form=new Ext.form.BasicForm(Ext.get(this.config.form),{errorReader:MODx.util.JSONReader}),this.config.fields)for(var i in this.config.fields)if(this.config.fields.hasOwnProperty(i)){var f=this.config.fields[i];f.xtype&&(f=Ext.ComponentMgr.create(f)),this.fields[i]=f,this.form.add(f)}return this.form.render()},_loadActionButtons:function(){return!!this.config.buttons&&(this.ab=MODx.load({xtype:"modx-actionbuttons",form:this.form||null,formpanel:this.config.formpanel||null,actions:this.config.actions||null,items:this.config.buttons||[]}),this.ab)},_loadTabs:function(){if(!this.config.tabs)return!1;var o=this.config.tabOptions||{};return Ext.applyIf(o,{xtype:"modx-tabs",renderTo:this.config.tabs_div||"tabs_div",items:this.config.tabs}),MODx.load(o)},_loadComponents:function(){if(!this.config.components)return!1;for(var l=this.config.components.length,cp=Ext.getCmp("modx-content"),i=0;i","<-",""," "];if(-1!=ex.indexOf(el)||el.xtype&&"switch"==el.xtype)MODx.toolbar.ActionButtons.superclass.add.call(this,el);else{var id=el.id||Ext.id();if(Ext.applyIf(el,{xtype:"button",cls:el.icon?"x-btn-icon bmenu":"x-btn-text bmenu",scope:this,disabled:!!el.checkDirty,listeners:{},id}),el.button&&MODx.toolbar.ActionButtons.superclass.add.call(this,el),null===el.handler&&null===el.menu?el.handler=this.checkConfirm:el.confirm&&el.handler?el.handler=function(){Ext.Msg.confirm(_("warning"),el.confirm,(function(e){"yes"===e&&Ext.callback(el.handler,this)}),el.scope||this)}:el.handler||(el.handler=this.handleClick),el.javascript&&(el.listeners.click={fn:this.evalJS,scope:this}),"button"==el.xtype&&(el.listeners.render={fn:function(btn){el.checkDirty&&btn&&this.checkDirtyBtns.push(btn)},scope:this}),el.keys){el.keyMap=new Ext.KeyMap(Ext.get(document));for(var j=0;j{item&&item.validate&&!item.validate()&&(isv=!1)})),isv?(Ext.applyIf(o.params,{action:itm.process}),Ext.apply(f.baseParams,o.params),o.form.on("success",(function(r){if(o.form.clearDirty&&o.form.clearDirty(),MODx.msg.status({title:_("success"),message:r.result.message||_("save_successful"),dontHide:""!=r.result.message}),0!=itm.redirect){var redirect=this.redirect;"function"==typeof itm.redirect&&(redirect=itm.redirect),Ext.callback(redirect,this,[o,itm,r.result],1e3)}this.resetDirtyButtons(r.result)}),this),o.form.submit({headers:{"Powered-By":"MODx",modAuth:MODx.siteId}})):(o.form.fireEvent("failureSubmit"),Ext.Msg.alert(_("error"),_("correct_errors")))}else{var params=itm.params||{};Ext.applyIf(params,o.baseParams||{}),MODx.loadPage("?"+Ext.urlEncode(params))}return!1},resetDirtyButtons:function(r){for(var i=0;i0}},contextmenu:{fn:this._showContextMenu,scope:this}}),Ext.applyIf(config,{store:this.store,singleSelect:!0,overClass:"x-view-over",emptyText:'
'+_("file_err_filter")+"
",closeAction:"hide"}),MODx.DataView.superclass.constructor.call(this,config),this.config=config,this.cm=new Ext.menu.Menu},Ext.extend(MODx.DataView,Ext.DataView,{lookup:{},onLoadException:function(){this.getEl().update('
'+_("data_err_load")+"
")},_addContextMenuItem:function(items){for(var a=items,l=a.length,i=0;i ').compile()}),MODx.Button.superclass.constructor.call(this,config)},Ext.extend(MODx.Button,Ext.Button,{onRender:function(ct,position){this.template||(Ext.Button.buttonTemplate||(Ext.Button.buttonTemplate=new Ext.Template(' '),Ext.Button.buttonTemplate.compile()),this.template=Ext.Button.buttonTemplate);var btn,targs=this.getTemplateArgs();targs.iconCls=this.iconCls,btn=position?this.template.insertBefore(position,targs,!0):this.template.append(ct,targs,!0),this.btnEl=btn.child("i"),this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur}),this.initButtonEl(btn,this.btnEl),Ext.ButtonToggleMgr.register(this)}}),Ext.reg("modx-button",MODx.Button),MODx.SearchBar=function(config){config=config||{},Ext.applyIf(config,{renderTo:"modx-manager-search",listClass:"modx-manager-search-results",emptyText:_("search"),id:"modx-uberbar",maxHeight:this.getViewPortSize(),typeAhead:!0,listAlign:["tl-bl?",[-12,12]],triggerConfig:{tag:"button",id:"modx-uberbar-trigger",type:"submit","aria-label":"Go",cls:"x-form-trigger icon icon-large icon-search"},defaultAutoCreate:{tag:"input",type:"text",size:"24",tabindex:"0",hasfocus:!0,"aria-label":_("search")},hasfocus:!0,minChars:1,displayField:"name",valueField:"_action",width:380,itemSelector:".x-combo-list-item",tpl:new Ext.XTemplate('','
','','',"

{label:htmlEncode}

","
",'

{name:htmlEncode} – {description:htmlEncode}

',"
","
",{getClass:function(values){if(values.icon)return values.icon;if(values.class)switch(values.class){case"MODX\\Revolution\\modDocument":return"file";case"MODX\\Revolution\\modSymLink":return"files-o";case"MODX\\Revolution\\modWebLink":return"link";case"MODX\\Revolution\\modStaticResource":return"file-text-o"}switch(values.type){case"resources":return"file";case"chunks":return"th-large";case"templates":return"columns";case"snippets":return"code";case"tvs":return"list-alt";case"plugins":return"cogs";case"users":return"user";case"actions":return"mail-forward"}},getLabel:function(values){return values.label?values.label:_("search_resulttype_"+values.type)}}),store:new Ext.data.JsonStore({url:MODx.config.connector_url,baseParams:{action:"Search/Search"},root:"results",totalProperty:"total",fields:["name","_action","description","type","icon","label","class"],listeners:{beforeload:function(store,options){if(options.params._action)return!1}}}),listeners:{beforequery:{fn:function(){this.tpl.type=null}},focus:this.focusBar,blur:this.blurBar,afterrender:function(){document.getElementById("modx-manager-search").onclick=function(e){e.stopPropagation()}},scope:this}}),MODx.SearchBar.superclass.constructor.call(this,config),this.blur(),this.setKeyMap()},Ext.extend(MODx.SearchBar,Ext.form.ComboBox,{setKeyMap:function(){new Ext.KeyMap(document,{key:27,handler:function(){this.hideBar()},scope:this,stopEvent:!1})},initList:function(){if(!this.list){var cls="x-combo-list",listParent=Ext.getDom(this.getListParent()||Ext.getBody());this.list=new Ext.Layer({parentEl:listParent,shadow:this.shadow,cls:[cls,this.listClass].join(" "),constrain:!1,zindex:this.getZIndex(listParent)}),this.list.on("click",(function(e){e.stopPropagation()}));var lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setSize(lw,0),this.list.swallowEvent("mousewheel"),this.assetHeight=0,!1!==this.syncFont&&this.list.setStyle("font-size",this.el.getStyle("font-size")),this.title&&(this.header=this.list.createChild({cls:cls+"-hd",html:this.title}),this.assetHeight+=this.header.getHeight()),this.innerList=this.list.createChild({cls:cls+"-inner"}),this.mon(this.innerList,"mouseover",this.onViewOver,this),this.mon(this.innerList,"mousemove",this.onViewMove,this),this.innerList.setWidth(lw-this.list.getFrameWidth("lr")),this.pageSize&&(this.footer=this.list.createChild({cls:cls+"-ft"}),this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer}),this.assetHeight+=this.footer.getHeight()),this.tpl||(this.tpl='
{'+this.displayField+"}
"),this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:!0,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+cls+"-item",emptyText:this.listEmptyText,deferEmptyText:!1}),this.view.on("click",(function(view,index,node,vent){view.select(node),window.event||(window.event=vent),this.onViewClick()}),this),this.bindStore(this.store,!0),this.resizable&&(this.resizer=new Ext.Resizable(this.list,{pinned:!0,handles:"se"}),this.mon(this.resizer,"resize",(function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight,this.listWidth=w,this.innerList.setWidth(w-this.list.getFrameWidth("lr")),this.restrictHeight()}),this),this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px"))}},onTypeAhead:function(){},onSelect:function(record,index){var e=Ext.EventObject;e.stopPropagation(),e.preventDefault();var target="?a="+record.data._action;if(e.ctrlKey||e.metaKey||e.shiftKey)return window.open(target);MODx.loadPage(target)},hideBar:function(){},focusBar:function(){this.selectText()},blurBar:function(){},getViewPortSize:function(){var height=300;return void 0!==window.innerHeight&&(height=window.innerHeight),height-70}}),Ext.reg("modx-searchbar",MODx.SearchBar),Ext.namespace("MODx.panel"),MODx.Panel=function(config){config=config||{},Ext.applyIf(config,{cls:"modx-panel",title:""}),MODx.Panel.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.Panel,Ext.Panel),Ext.reg("modx-panel",MODx.Panel),MODx.FormPanel=function(config){config=config||{},Ext.applyIf(config,{autoHeight:!0,collapsible:!0,bodyStyle:"",layout:"anchor",border:!1,header:!1,method:"POST",cls:"modx-form",allowDrop:!0,errorReader:MODx.util.JSONReader,checkDirty:!0,useLoadingMask:!1,defaults:{collapsible:!1,autoHeight:!0,border:!1}}),config.items&&this.addChangeEvent(config.items),MODx.FormPanel.superclass.constructor.call(this,config),this.config=config,this.addEvents({setup:!0,fieldChange:!0,ready:!0,beforeSubmit:!0,success:!0,failure:!0,save:!0,actionNew:!0,actionContinue:!0,actionClose:!0,postReady:!0}),this.getForm().addEvents({success:!0,failure:!0}),this.dropTargets=[],this.on("ready",this.onReady),this.config.useLoadingMask&&this.on("render",(function(){this.mask=new Ext.LoadMask(this.getEl()),this.mask.show()})),this.fireEvent("setup",config)&&this.clearDirty(),this.focusFirstField()},Ext.extend(MODx.FormPanel,Ext.FormPanel,{isReady:!1,defaultValues:[],initialized:!1,isStatic:!1,errorHandlingTabs:[],errorHandlingIgnoreTabs:[],submit:function(o){var fm=this.getForm();return!(!fm.isValid()&&!o.bypassValidCheck)&&((o=o||{}).headers={"Powered-By":"MODx",modAuth:MODx.siteId},this.fireEvent("beforeSubmit",{form:fm,options:o,config:this.config})&&fm.submit({waitMsg:this.config.saveMsg||_("saving"),scope:this,headers:o.headers,clientValidation:!o.bypassValidCheck,failure:function(f,a){this.fireEvent("failure",{form:f,result:a.result,options:o,config:this.config})&&MODx.form.Handler.errorExt(a.result,f)},success:function(f,a){this.config.success&&Ext.callback(this.config.success,this.config.scope||this,[f,a]),this.fireEvent("success",{form:f,result:a.result,options:o,config:this.config}),this.clearDirty(),this.fireEvent("setup",this.config);var lastActiveEle=Ext.state.Manager.get("curFocus");if(lastActiveEle&&""!=lastActiveEle){Ext.state.Manager.clear("curFocus");var initFocus=document.getElementById(lastActiveEle);initFocus&&initFocus.focus()}}}),!0)},failure:function(o){if(this.warnUnsavedChanges=!0,-1!==this.getForm().baseParams.action.search(/\/create/i)){const btn=Ext.getCmp("modx-abtn-save");btn&&btn.enable()}this.fireEvent("failureSubmit")},focusFirstField:function(){if(this.getForm().items.getCount()>0){var fld=this.findFirstTextField();fld&&fld.focus(!1,200)}},findFirstTextField:function(i){i=i||0;var fld=this.getForm().items.itemAt(i);return!!fld&&((fld.isXType("combo")||fld.isXType("checkbox")||fld.isXType("radio")||fld.isXType("displayfield")||fld.isXType("statictextfield")||fld.isXType("hidden"))&&(i+=1,fld=this.findFirstTextField(i)),fld)},addChangeEvent:function(items){if(!items)return!1;"object"==typeof items&&items.items&&(items=items.items);for(var f=0;f{fieldKey=fieldKey.trim();const fieldCmpId=`modx-${formId}-${fieldKey}-file`,sourceKey=Ext.isEmpty(sharedSourceKey)?fieldKey:sharedSourceKey,sourceCmpId=`modx-${formId}-${sourceKey}-source`,fieldCmp=Ext.getCmp(fieldCmpId),sourceCmp=Ext.getCmp(sourceCmpId);fieldCmp&&sourceCmp&&(fieldCmp.config.source=sourceCmp.getValue())}))},destroy:function(){for(var i=0;i0&&keys.forEach((function(key){map.hasOwnProperty(key)&&"string"==typeof map[key].id?tabIds.push(map[key].id):"modx-panel-resource-tv"==key&&1==MODx.config.tvs_below_content&&tabIds.push(key)})),tabIds},showErroredTab:function(targetForms,tabsId){const mainTabs=Ext.getCmp(tabsId),searchTabs=this.getTabIdsFromKeys(mainTabs.items.map,targetForms);let component,mainTabName=null,mainTabIndex=null,erroredNode=null;mainTabs.items.length>mainTabs.initialConfig.items.length&&mainTabs.items.keys.forEach((function(key){mainTabs.items.map[key].hasOwnProperty("id")&&(this.errorHandlingIgnoreTabs.includes(mainTabs.items.map[key].id)||searchTabs.includes(mainTabs.items.map[key].id)||searchTabs.push(mainTabs.items.map[key].id))}),this);for(let i=0;i0&&erroredFlds[0].id},insertTagCopyUtility:function(cmp,elType){const helpTag=cmp.getEl().child(".example-replace-name"),elTag=cmp.getEl().child(".copy-this");let tagText,nameVal=cmp.previousSibling().getValue();helpTag&&(nameVal.length>0&&(helpTag.update(nameVal),tagText=elTag.dom.innerText),helpTag.on({click:function(){if(nameVal=cmp.previousSibling().getValue(),nameVal.length>0){tagText=elTag.dom.innerText;const tmp=document.createElement("textarea");if(tmp.value=tagText,document.body.appendChild(tmp),tmp.select(),document.execCommand("copy")){const feedback=document.createElement("span");feedback.className="element-panel feedback item-copied",feedback.textContent=_(elType+"_tag_copied"),elTag.insertSibling(feedback,"after"),setTimeout((function(){feedback.style.opacity=0,setTimeout((function(){feedback.remove()}),1200)}),10)}tmp.remove()}}}))},onChangeStaticSource:function(cmp,elType){const isStatic=Ext.getCmp(`modx-${elType}-static`).getValue(),staticFileField=Ext.getCmp(`modx-${elType}-static-file`),staticFile=staticFileField.getValue(),staticDir=staticFile.slice(0,staticFile.lastIndexOf("/")+1),staticFileFieldId=staticFileField.id,staticFileFieldContainer=Ext.getCmp(staticFileField.ownerCt.id),itemKey=staticFileFieldContainer.items.keys.indexOf(staticFileFieldId),previousSource=this.previousFileSource||0,currentSource=cmp.getValue(),currentRecord={static:isStatic,static_file:staticFile,source:currentSource,openTo:staticDir};let newStaticFile,changeFieldType=!1,updateFieldSource=!1;if("template"===elType)var newPreviewFileField,staticPreviewFileField=Ext.getCmp(`modx-${elType}-preview-file`),staticPreviewFile=staticPreviewFileField.getValue(),staticPreviewDir=staticPreviewFile.slice(0,staticPreviewFile.lastIndexOf("/")+1),staticPreviewFileFieldId=staticPreviewFileField.id,staticPreviewFileFieldContainer=Ext.getCmp(staticPreviewFileField.ownerCt.id),previewItemKey=staticPreviewFileFieldContainer.items.keys.indexOf(staticPreviewFileFieldId),currentPreviewRecord={static:isStatic,preview_file:staticPreviewFile,source:currentSource,openTo:staticPreviewDir};this.previousFileSource=currentSource,previousSource>0&&0==currentSource?(newStaticFile=this.getStaticFileField(elType,currentRecord,!1),"template"===elType&&(newPreviewFileField=this.getTemplatePreviewImageField(currentPreviewRecord,!1)),changeFieldType=!0):0==previousSource&¤tSource>0?(newStaticFile=this.getStaticFileField(elType,currentRecord),"template"===elType&&(newPreviewFileField=this.getTemplatePreviewImageField(currentPreviewRecord)),changeFieldType=!0,updateFieldSource=!0):updateFieldSource=!0,updateFieldSource&&(changeFieldType?(newStaticFile.source=currentSource,"template"===elType&&(newPreviewFileField.source=currentSource)):(staticFileField.config.source=currentSource,"template"===elType&&(staticPreviewFileField.config.source=currentSource))),changeFieldType&&(staticFileField.clearInvalid(),staticFileField.destroy(),staticFileFieldContainer.insert(itemKey,newStaticFile),"template"===elType&&(staticPreviewFileField.clearInvalid(),staticPreviewFileField.destroy(),staticPreviewFileFieldContainer.insert(previewItemKey,newPreviewFileField)),this.doLayout())},getStaticFileField:function(elType,record,loadBrowserField=!0){const sharedConfig={fieldLabel:_("static_file"),description:MODx.expandHelp?"":_("static_file_desc"),name:"static_file",id:`modx-${elType}-static-file`,maxLength:255,anchor:"100%",value:record.static_file||""};let finalConfig;return(0===record.source||!record.hasOwnProperty("source")&&Ext.isEmpty(MODx.config.default_media_source))&&(loadBrowserField=!1),finalConfig=loadBrowserField?Object.assign(sharedConfig,{xtype:"modx-combo-browser",browserEl:"modx-browser",triggerClass:"x-form-code-trigger",source:null!=record.source?record.source:MODx.config.default_media_source,openTo:record.openTo||""}):Object.assign(sharedConfig,{xtype:"textfield"}),record.static||(finalConfig.hidden=!0),finalConfig},getTemplatePreviewImageField:function(record,loadBrowserField=!0){const sharedConfig={fieldLabel:_("template_preview"),description:MODx.expandHelp?"":_("template_preview_description"),name:"preview_file",id:"modx-template-preview-file",allowedFileTypes:"jpg,jpeg,png,gif,bmp",maxLength:255,anchor:"100%",value:record.preview_file||""};let finalConfig;return(0===record.source||!record.hasOwnProperty("source")&&Ext.isEmpty(MODx.config.default_media_source))&&(loadBrowserField=!1),finalConfig=loadBrowserField?Object.assign(sharedConfig,{xtype:"modx-combo-browser",browserEl:"modx-browser",triggerClass:"x-form-image-trigger",source:null!=record.source?record.source:MODx.config.default_media_source,openTo:record.openTo||""}):Object.assign(sharedConfig,{xtype:"textfield"}),finalConfig},toggleFieldVisibility:function(ctrlId,containerId,fieldIds,ctrlValToShow,addSibling){const ctrlCmp=Ext.getCmp(ctrlId),containerCmp=Ext.getCmp(containerId);if(!ctrlCmp||void 0===ctrlCmp)return console.error(`toggleFieldVisibility: Could not get the control component with the id '${ctrlId}'`),!1;if(containerId&&(!containerCmp||void 0===containerCmp))return console.error(`toggleFieldVisibility: Could not get the container component with the id '${containerId}'`),!1;addSibling=!1!==addSibling,ctrlValToShow=!1!==ctrlValToShow;const showVal="combo-boolean"===ctrlCmp.xtype?ctrlCmp.getValue():ctrlCmp.checked,show=!1===ctrlValToShow?!showVal:showVal;show?(containerCmp.show(),containerCmp.doLayout()):containerCmp.hide(),fieldIds.forEach((field=>{const fieldCmp=Ext.getCmp(field),sibling=fieldCmp.nextSibling(),siblingIsHelp=sibling&&"label"===sibling.xtype;fieldCmp&&(show?(fieldCmp.show(),addSibling&&siblingIsHelp&&sibling.show()):(fieldCmp.hide(),addSibling&&siblingIsHelp&&sibling.hide()))}))},formatMainPanelTitle:function(formId,record,realtimeValue=null,returnBaseTitle=!1){let title="",baseTitle="";const modeCreate=!(record.hasOwnProperty("id")&&record.id>0),prefixSeparator=modeCreate&&!realtimeValue?"":": ",prefix=(modeCreate?_("create")+" ":_("edit")+" ")+_("resource"===formId?"document":formId)+prefixSeparator;if(!Ext.isEmpty(record)){const postfix=MODx.perm.tree_show_resource_ids&&!Ext.isEmpty(record.id)?` (${record.id})`:"";if("resource"===formId){const headerCmp=Ext.getCmp("modx-header-breadcrumbs");title=realtimeValue||record.pagetitle,baseTitle=this.encodeTitle(title,!1),title=void 0===title?prefix:this.encodeTitle(title)+postfix,headerCmp?headerCmp.updateHeader(title):Ext.getCmp("modx-resource-header").el.dom.innerText=title}else{const headerCmpId=`modx-${formId}-header`;realtimeValue?baseTitle=this.encodeTitle(realtimeValue):(title="template"===formId?record.templatename:record.name,baseTitle=this.encodeTitle(title)),title=void 0===title?prefix:prefix+baseTitle+postfix,Ext.getCmp(headerCmpId).getEl().update(title)}}if(returnBaseTitle)return baseTitle},encodeTitle:function(title,htmlEncode=!0){return title&&(title=htmlEncode?Ext.util.Format.htmlEncode(Ext.util.Format.stripTags(title)):Ext.util.Format.stripTags(title)),title},getElementProperties:function(properties){if(!Ext.isEmpty(properties)){const gridCmp=Ext.getCmp("modx-grid-element-properties");gridCmp&&(gridCmp.defaultProperties=properties,gridCmp.getStore().loadData(properties))}}}),Ext.reg("modx-formpanel",MODx.FormPanel),MODx.panel.Wizard=function(config){config=config||{},Ext.applyIf(config,{layout:"card",activeItem:0,resizable:!0,collapsible:!0,maximizable:!0,autoHeight:!0,width:750,firstPanel:"",lastPanel:"",defaults:{border:!1},modal:!0,txtFinish:_("finish"),txtNext:_("next"),txtBack:_("back"),bbar:[{id:"pi-btn-bck",itemId:"btn-back",text:config.txtBack||_("back"),handler:this.navHandler.createDelegate(this,[-1]),scope:this,disabled:!0},{id:"pi-btn-fwd",itemId:"btn-fwd",text:config.txtNext||_("next"),handler:this.navHandler.createDelegate(this,[1]),scope:this}]}),MODx.panel.Wizard.superclass.constructor.call(this,config),this.config=config,this.lastActiveItem=this.config.firstPanel,this._go()},Ext.extend(MODx.panel.Wizard,Ext.Panel,{windows:{},_go:function(){this.getBottomToolbar().items.item(1).setText(this.config.txtNext),this.proceed(this.config.firstPanel)},navHandler:function(dir){this.doLayout();var a=this.getLayout().activeItem;-1==dir?this.proceed(a.config.back||a.config.id):a.submit({scope:this,proceed:this.proceed})},proceed:function(id){this.doLayout(),this.getLayout().setActiveItem(id),id==this.config.firstPanel?(this.getBottomToolbar().items.item(0).setDisabled(!0),this.getBottomToolbar().items.item(1).setText(this.config.txtNext)):id==this.config.lastPanel?this.getBottomToolbar().items.item(1).setText(this.config.txtFinish):(this.getBottomToolbar().items.item(0).setDisabled(!1),this.getBottomToolbar().items.item(1).setText(this.config.txtNext))}}),Ext.reg("modx-panel-wizard",MODx.panel.Wizard),MODx.panel.WizardPanel=function(config){config=config||{},Ext.applyIf(config,{wizard:null,checkDirty:!1,bodyStyle:"padding: 3em 3em",hideMode:"offsets"}),MODx.panel.WizardPanel.superclass.constructor.call(this,config)},Ext.extend(MODx.panel.WizardPanel,MODx.FormPanel),Ext.reg("modx-wizard-panel",MODx.panel.WizardPanel),MODx.PanelSpacer={html:"
",border:!1},MODx.TemplatePanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,startingMarkup:'

{text}

',startingText:"Loading...",markup:null,plain:!0,border:!1}),MODx.TemplatePanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.TemplatePanel,Ext.Panel,{init:function(){this.defaultMarkup=new Ext.XTemplate(this.startingMarkup,{compiled:!0}),this.reset(),this.tpl=new Ext.XTemplate(this.markup,{compiled:!0})},reset:function(){this.body.hide(),this.defaultMarkup.overwrite(this.body,{text:this.startingText}),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout((function(){Ext.getCmp("modx-content").doLayout()}),500)},updateDetail:function(data){this.body.hide(),this.tpl.overwrite(this.body,data),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout((function(){Ext.getCmp("modx-content").doLayout()}),500)}}),Ext.reg("modx-template-panel",MODx.TemplatePanel),MODx.BreadcrumbsPanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,plain:!0,border:!1,desc:"This the description part of this panel",bdMarkup:"
    {text}

{text}

",root:{text:"Home",className:"first",root:!0,pnl:""},bodyCssClass:"breadcrumbs"}),MODx.BreadcrumbsPanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.BreadcrumbsPanel,Ext.Panel,{data:{trail:[]},init:function(){this.tpl=new Ext.XTemplate(this.bdMarkup,{compiled:!0}),this.reset(this.desc),this.body.on("click",this.onClick,this)},getResetText:function(srcInstance){if("object"!=typeof srcInstance||null==srcInstance)return srcInstance;var newInstance=srcInstance.constructor();for(var i in srcInstance)newInstance[i]=this.getResetText(srcInstance[i]);return newInstance.hasOwnProperty("pnl")&&delete newInstance.pnl,newInstance},updateDetail:function(data){(this.data=data,data.hasOwnProperty("trail"))&&data.trail.unshift(this.root);this._updatePanel(data)},getData:function(){return this.data},reset:function(msg){void 0===this.resetText&&(this.resetText=this.getResetText(this.root)),this.data={text:msg,trail:[this.resetText]},this._updatePanel(this.data)},onClick:function(e){for(var target=e.getTarget(),index=1,parent=target.parentElement;null!=(parent=parent.previousSibling);)index+=1;for(var remove=this.data.trail.length-index;remove>0;)this.data.trail.pop(),remove-=1;if(elm=target.className.split(" ")[0],""!=elm&&"controlBtn"==elm){var panel=target.className.split(" ")[1];if("install"==panel){var last=this.data.trail[this.data.trail.length-1];if(null!=last&&null!=last.rec)return this.data.trail.pop(),void Ext.getCmp("modx-package-grid").install(last.rec)}else Ext.getCmp(panel).activate()}},_updatePanel:function(data){this.body.hide(),this.tpl.overwrite(this.body,data),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout((function(){Ext.getCmp("modx-content").doLayout()}),500)}}),Ext.reg("modx-breadcrumbs-panel",MODx.BreadcrumbsPanel),Ext.override(Ext.TabPanel,{onStripMouseDown:function(e){if(0!==e.button)return;e.preventDefault();const t=this.findTargets(e);t.close?!1!==t.item.fireEvent("beforeclose",t.item)&&(t.item.fireEvent("close",t.item),this.remove(t.item)):t.item&&t.item!==this.activeTab&&(this.tabClicked=!0,this.setActiveTab(t.item))}}),MODx.Tabs=function(config={}){Ext.applyIf(config,{enableTabScroll:!0,layoutOnTabChange:!0,plain:!0,deferredRender:!0,hideMode:"offsets",defaults:{autoHeight:!0,hideMode:"offsets",border:!0,autoWidth:!0,bodyCssClass:"tab-panel-wrapper"},activeTab:0,tabClicked:!1,border:!1,autoScroll:!0,autoHeight:!0,cls:"modx-tabs"}),MODx.Tabs.superclass.constructor.call(this,config),this.config=config,this.on({afterrender:function(tabPanel){if(MODx.request&&Object.prototype.hasOwnProperty.call(MODx.request,"tab")){const tabId=parseInt(MODx.request.tab,10);"modx-leftbar-tabpanel"!==this.id&&this.setActiveTab(tabId)}tabPanel.on({beforetabchange:function(tabPanelCmp,newTab,currentTab){if(this.tabClicked&&newTab&¤tTab&&newTab.id!==currentTab.id){const resetVerticalTabPanelFilters="modx-vtabs"===currentTab.items?.items[0]?.xtype||"modx-vtabs"===currentTab.ownerCt?.xtype,changedBetweenVtabs="modx-vtabs"===newTab.ownerCt?.xtype&&"modx-vtabs"===currentTab.ownerCt?.xtype;if("modx-usergroup-permissions-panel"===newTab.itemId&&!this.stateful){const vTabPanel=newTab.items?.items[0];vTabPanel&&"modx-vtabs"===vTabPanel.xtype&&vTabPanel.setActiveTab(0)}this.clearFiltersBeforeChange(currentTab,resetVerticalTabPanelFilters,changedBetweenVtabs)}}})}})},Ext.extend(MODx.Tabs,Ext.TabPanel,{findGridObject:function(itemsSource){const grid=itemsSource.find((obj=>Object.entries(obj).find((([key,value])=>"xtype"===key&&value.includes("-grid-")))));if(grid)return grid;const nextItemsSource=itemsSource?.items;nextItemsSource&&this.findGridObject(nextItemsSource)},clearFiltersBeforeChange:function(tabObj,resetVtabFilters,changedVtabs){let itemsSource,gridObj=null;if(itemsSource=resetVtabFilters?changedVtabs?tabObj.items:tabObj.items.items[0].activeTab.items:tabObj.items,itemsSource.length>0&&(gridObj=this.findGridObject(itemsSource),!gridObj)){let customItemsSource=null;itemsSource?.map["modx-tree-panel-usergroup"]?customItemsSource=itemsSource.map["modx-tree-panel-usergroup"].items:itemsSource?.map["packages-breadcrumbs"]&&(customItemsSource=itemsSource.map["card-container"].items.map["modx-panel-packages"].items),customItemsSource&&(gridObj=this.findGridObject(customItemsSource))}if(gridObj){const toolbar=gridObj.getTopToolbar(),filterIds=[];toolbar&&toolbar.items.items.length>0&&toolbar.items.items.forEach((cmp=>{cmp.xtype&&(cmp.xtype.includes("combo")||"textfield"===cmp.xtype)&&cmp.itemId&&filterIds.push(cmp.itemId)})),filterIds.length>0&&gridObj.clearGridFilters(filterIds)}}}),Ext.reg("modx-tabs",MODx.Tabs),MODx.VerticalTabs=function(config={}){Ext.applyIf(config,{cls:"vertical-tabs-panel",headerCfg:{tag:"div",cls:"x-tab-panel-header vertical-tabs-header"},bwrapCfg:{tag:"div",cls:"x-tab-panel-bwrap vertical-tabs-bwrap"},defaults:{bodyCssClass:"vertical-tabs-body",autoScroll:!0,autoHeight:!0,autoWidth:!0,layout:"form"}}),MODx.VerticalTabs.superclass.constructor.call(this,config),this.config=config,this.on({afterrender:function(){if(MODx.request&&Object.prototype.hasOwnProperty.call(MODx.request,"vtab")){const tabId=parseInt(MODx.request.vtab,10);this.setActiveTab(tabId)}}})},Ext.extend(MODx.VerticalTabs,MODx.Tabs),Ext.reg("modx-vtabs",MODx.VerticalTabs),Ext.Window.prototype.floating={shadow:!1},Ext.override(Ext.Window,{animShow:function(){this.afterShow();var win=this;setTimeout((function(){win.el.hasClass("anim-ready")||(win.el.addClass("anim-ready"),setTimeout((function(){void 0!==win.mask&&(win.mask instanceof Ext.Element?win.mask.addClass("fade-in"):win.mask.el.addClass("fade-in")),win.el.addClass("zoom-in")}),250))}),300)},animHide:function(){this.afterHide()},onShow:function(){if(this.el.hasClass("x-window-dlg"))this.mask.addClass("fade-in"),this.el.applyStyles({opacity:1});else{this.addClass("anim-ready");var win=this;setTimeout((function(){void 0!==win.mask&&(win.mask instanceof Ext.Element?win.mask.addClass("fade-in"):win.mask.el.addClass("fade-in")),win.el.addClass("zoom-in")}),250)}},onHide:function(){if(this.el.hasClass("zoom-in")){this.el.removeClass("zoom-in"),void 0!==this.mask&&(this.mask instanceof Ext.Element?this.mask.removeClass("fade-in"):this.mask.el.removeClass("fade-in")),this.addClass("zoom-out");var win=this;setTimeout((function(){win.isDestroyed||(win.el.hide(),win.el.removeClass("zoom-out"),win.el.removeClass("anim-ready"))}),250)}else this.el.hasClass("x-window-dlg")&&(this.el.applyStyles({opacity:0}),void 0!==this.mask&&(this.mask instanceof Ext.Element?this.mask.removeClass("fade-in"):this.mask.el.removeClass("fade-in")))}}),MODx.Window=function(config){config=config||{},Ext.applyIf(config,{modal:!1,layout:"auto",closeAction:"hide",shadow:!0,resizable:!0,collapsible:!0,maximizable:!0,autoHeight:!1,autoScroll:!0,allowDrop:!0,width:400,constrain:!0,constrainHeader:!0,cls:"modx-window",buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){"close"!==config.closeAction?this.hide():this.close()}},{text:config.saveBtnText||_("save"),cls:"primary-button",scope:this,handler:this.submit}],record:{},keys:[{key:Ext.EventObject.ENTER,fn:function(keyCode,event){var elem=event.getTarget(),component=Ext.getCmp(elem.id);if(component instanceof Ext.form.TextArea)return component.append("\n");this.submit()},scope:this}]}),MODx.Window.superclass.constructor.call(this,config),this.options=config,this.config=config,this.addEvents({success:!0,failure:!0,beforeSubmit:!0}),this._loadForm(),this.on("show",(function(){this.config.blankValues&&this.fp.getForm().reset(),this.config.allowDrop&&this.loadDropZones(),this.syncSize(),this.focusFirstField()}),this),this.on("afterrender",(function(){this.originalHeight=this.el.getHeight(),this.toolsHeight=this.originalHeight-this.body.getHeight()+50,this.resizeWindow()})),Ext.EventManager.onWindowResize(this.resizeWindow,this)},Ext.extend(MODx.Window,Ext.Window,{_loadForm:function(){if(this.checkIfLoaded(this.config.record||null))return!1;var r=this.config.record;if(this.config.fields)for(var l=this.config.fields.length,i=0;i0){var fld=this.findFirstTextField();fld&&fld.focus(!1,200)}},findFirstTextField:function(i){i=i||0;var fld=this.fp.getForm().items.itemAt(i);return!!fld&&((fld.isXType("combo")||fld.isXType("checkbox")||fld.isXType("radio")||fld.isXType("displayfield")||fld.isXType("statictextfield")||fld.isXType("hidden"))&&(i+=1,fld=this.findFirstTextField(i)),fld)},submit:function(close){close=!1!==close;var f=this.fp.getForm();f.isValid()&&this.fireEvent("beforeSubmit",f.getValues())&&f.submit({waitMsg:this.config.waitMsg||_("saving"),submitEmptyText:!1!==this.config.submitEmptyText,scope:this,failure:function(frm,a){this.fireEvent("failure",{f:frm,a})&&MODx.form.Handler.errorExt(a.result,frm),this.doLayout()},success:function(frm,a){this.config.success&&Ext.callback(this.config.success,this.config.scope||this,[frm,a]),this.fireEvent("success",{f:frm,a}),close&&("close"!==this.config.closeAction?this.hide():this.close()),this.doLayout()}})},createForm:function(config){return Ext.applyIf(this.config,{formFrame:!0,border:!1,bodyBorder:!1,autoHeight:!0}),config=config||{},Ext.applyIf(config,{labelAlign:this.config.labelAlign||"top",labelWidth:this.config.labelWidth||100,labelSeparator:this.config.labelSeparator||"",frame:this.config.formFrame,border:this.config.border,bodyBorder:this.config.bodyBorder,autoHeight:this.config.autoHeight,anchor:"100% 100%",errorReader:MODx.util.JSONReader,defaults:this.config.formDefaults||{msgTarget:this.config.msgTarget||"under"},url:this.config.url,baseParams:this.config.baseParams||{},fileUpload:this.config.fileUpload||!1}),new Ext.FormPanel(config)},renderForm:function(){this.fp.on("destroy",(function(){Ext.EventManager.removeResizeListener(this.resizeWindow,this)}),this),this.add(this.fp)},checkIfLoaded:function(r){return r=r||{},!(!this.fp||!this.fp.getForm())&&(this.fp.getForm().reset(),this.fp.getForm().setValues(r),!0)},setValues:function(r){if(null===r)return!1;this.fp.getForm().setValues(r)},reset:function(){this.fp.getForm().reset()},hideField:function(f){f.disable(),f.hide();var d=f.getEl().up(".x-form-item");d&&d.setDisplayed(!1)},showField:function(f){f.enable(),f.show();var d=f.getEl().up(".x-form-item");d&&d.setDisplayed(!0)},loadDropZones:function(){if(this._dzLoaded)return!1;this.fp.getForm().items.each((function(fld){fld.isFormField&&(fld.isXType("textfield")||fld.isXType("textarea"))&&!fld.isXType("combo")&&new MODx.load({xtype:"modx-treedrop",target:fld,targetEl:fld.getEl().dom})})),this._dzLoaded=!0},resizeWindow:function(){var viewHeight=Ext.getBody().getViewSize().height,el=this.fp.getForm().el;viewHeight
{name:htmlEncode}',"
{description:htmlEncode}
")}),MODx.combo.UserGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.UserGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-usergroup",MODx.combo.UserGroup),MODx.combo.UserGroupRole=function(config){config=config||{},Ext.applyIf(config,{name:"role",hiddenName:"role",displayField:"name",valueField:"id",fields:["name","id"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetList"}}),MODx.combo.UserGroupRole.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.UserGroupRole,MODx.combo.ComboBox),Ext.reg("modx-combo-usergrouprole",MODx.combo.UserGroupRole),MODx.combo.EventGroup=function(config){config=config||{},Ext.applyIf(config,{name:"group",hiddenName:"group",displayField:"name",valueField:"name",fields:["name"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/Event/GroupList"},tpl:new Ext.XTemplate('
{name:htmlEncode}',"
")}),MODx.combo.EventGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.EventGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-eventgroup",MODx.combo.EventGroup),MODx.combo.ResourceGroup=function(config){config=config||{},Ext.applyIf(config,{name:"resourcegroup",hiddenName:"resourcegroup",displayField:"name",valueField:"id",fields:["name","id"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/ResourceGroup/GetList"}}),MODx.combo.ResourceGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ResourceGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-resourcegroup",MODx.combo.ResourceGroup),MODx.combo.Context=function(config){config=config||{},Ext.applyIf(config,{name:"context",hiddenName:"context",displayField:"key",valueField:"key",fields:["key","name"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Context/GetList",exclude:config.exclude||""},tpl:new Ext.XTemplate('
{name:htmlEncode} ({key:htmlEncode})
')}),MODx.combo.Context.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Context,MODx.combo.ComboBox),Ext.reg("modx-combo-context",MODx.combo.Context),MODx.combo.Policy=function(config){config=config||{},Ext.applyIf(config,{name:"policy",hiddenName:"policy",displayField:"name",valueField:"id",fields:["id","name","permissions"],allowBlank:!1,editable:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Access/Policy/GetList"}}),MODx.combo.Policy.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Policy,MODx.combo.ComboBox),Ext.reg("modx-combo-policy",MODx.combo.Policy),MODx.combo.Template=function(config){config=config||{},Ext.applyIf(config,{url:MODx.config.connector_url,baseParams:{action:"Element/Template/GetList",combo:!0},fields:["id","templatename","description","category_name","preview","time"],name:"template",hiddenName:"template",displayField:"templatename",valueField:"id",pageSize:20,allowBlank:!0,editable:!0,typeAhead:!0,tpl:new Ext.XTemplate('
{this.label:htmlEncode}
{templatename:htmlEncode}
{description:htmlEncode()}
',{group:null,label:null,getGroup:function(label,time){var group=time+"_"+label;return group===this.group||Ext.isEmpty(group)?null:(this.group=group,this.label=label)}})}),MODx.combo.Template.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Template,MODx.combo.ComboBox),Ext.reg("modx-combo-template",MODx.combo.Template),MODx.combo.Category=function(config){config=config||{},Ext.applyIf(config,{name:"category",hiddenName:"category",displayField:"name",valueField:"id",fields:["id","category","parent","name"],forceSelection:!0,typeAhead:!1,allowBlank:!0,editable:!1,enableKeyEvents:!0,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Element/Category/GetList",showNone:!0,limit:0}}),MODx.combo.Category.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Category,MODx.combo.ComboBox,{_onblur:function(t,e){var v=this.getRawValue();this.setRawValue(v),this.setValue(v,!0)}}),Ext.reg("modx-combo-category",MODx.combo.Category),MODx.combo.Language=function(config){config=config||{},Ext.applyIf(config,{name:"language",hiddenName:"language",displayField:"name",valueField:"name",fields:["name"],typeAhead:!0,minChars:1,editable:!0,allowBlank:!0,url:MODx.config.connector_url,baseParams:{action:"System/Language/GetList"}}),MODx.combo.Language.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Language,MODx.combo.ComboBox),Ext.reg("modx-combo-language",MODx.combo.Language),MODx.combo.Charset=function(config){config=config||{},Ext.applyIf(config,{name:"charset",hiddenName:"charset",displayField:"text",valueField:"value",fields:["value","text"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,url:MODx.config.connector_url,baseParams:{action:"System/Charset/GetList"}}),MODx.combo.Charset.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Charset,MODx.combo.ComboBox),Ext.reg("modx-combo-charset",MODx.combo.Charset),MODx.combo.RTE=function(config){config=config||{},Ext.applyIf(config,{name:"rte",hiddenName:"rte",displayField:"value",valueField:"value",fields:["value"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,url:MODx.config.connector_url,baseParams:{action:"System/Rte/GetList"}}),MODx.combo.RTE.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.RTE,MODx.combo.ComboBox),Ext.reg("modx-combo-rte",MODx.combo.RTE),MODx.combo.Role=function(config){config=config||{},Ext.applyIf(config,{name:"role",hiddenName:"role",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetList",addNone:!0}}),MODx.combo.Role.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Role,MODx.combo.ComboBox),Ext.reg("modx-combo-role",MODx.combo.Role),MODx.combo.ContentType=function(config){config=config||{},Ext.applyIf(config,{name:"content_type",hiddenName:"content_type",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/ContentType/GetList"}}),MODx.combo.ContentType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ContentType,MODx.combo.ComboBox),Ext.reg("modx-combo-content-type",MODx.combo.ContentType),MODx.combo.ContentDisposition=function(config){config=config||{},Ext.applyIf(config,{store:new Ext.data.SimpleStore({fields:["d","v"],data:[[_("inline"),0],[_("attachment"),1]]}),name:"content_dispo",hiddenName:"content_dispo",displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,pageSize:20,selectOnFocus:!1,preventRender:!0}),MODx.combo.ContentDisposition.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ContentDisposition,MODx.combo.ComboBox),Ext.reg("modx-combo-content-disposition",MODx.combo.ContentDisposition),MODx.combo.ClassDerivatives=function(config){config=config||{},Ext.applyIf(config,{name:"class",hiddenName:"class",url:MODx.config.connector_url,baseParams:{action:"System/Derivatives/GetList",class:"MODX\\Revolution\\modResource"},displayField:"name",valueField:"id",fields:["id","name"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20}),MODx.combo.ClassDerivatives.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ClassDerivatives,MODx.combo.ComboBox),Ext.reg("modx-combo-class-derivatives",MODx.combo.ClassDerivatives),MODx.combo.Namespace=function(config){config=config||{},Ext.applyIf(config,{name:"namespace",hiddenName:"namespace",typeAhead:!0,minChars:1,queryParam:"query",editable:!0,allowBlank:!0,preselectValue:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Workspace/PackageNamespace/GetList"},fields:["name"],displayField:"name",valueField:"name"}),MODx.combo.Namespace.superclass.constructor.call(this,config),!1!==config.preselectValue&&(this.store.on("load",this.preselectFirstValue,this,{single:!0}),this.store.load())},Ext.extend(MODx.combo.Namespace,MODx.combo.ComboBox,{preselectFirstValue:function(r){var item;if(""==this.config.preselectValue)item=r.getAt(0);else{var found=r.find("name",this.config.preselectValue);item=-1!=found?r.getAt(found):r.getAt(0)}item&&(this.setValue(item.data.name),this.fireEvent("select",this,item))}}),Ext.reg("modx-combo-namespace",MODx.combo.Namespace),MODx.combo.Browser=function(config){config=config||{},Ext.applyIf(config,{width:400,triggerAction:"all",triggerClass:"x-form-file-trigger",source:config.source||MODx.config.default_media_source}),MODx.combo.Browser.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.combo.Browser,Ext.form.TriggerField,{browser:null,onTriggerClick:function(btn){return!this.disabled&&(this.browser=MODx.load({xtype:"modx-browser",closeAction:"close",id:Ext.id(),multiple:!0,source:this.config.source||MODx.config.default_media_source,hideFiles:this.config.hideFiles||!1,rootVisible:this.config.rootVisible||!1,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web",openTo:this.config.openTo||"",rootId:this.config.rootId||"/",hideSourceCombo:this.config.hideSourceCombo||!1,listeners:{select:{fn:function(data){this.setValue(data.relativeUrl),this.fireEvent("select",data)},scope:this}}}),this.browser.show(btn),!0)},onDestroy:function(){MODx.combo.Browser.superclass.onDestroy.call(this)}}),Ext.reg("modx-combo-browser",MODx.combo.Browser),MODx.combo.Country=function(config){config=config||{},Ext.applyIf(config,{name:"country",hiddenName:"country",url:MODx.config.connector_url,baseParams:{action:"System/Country/GetList",combo:!0},displayField:"country",valueField:"iso",fields:["iso","country","value"],editable:!0,typeAhead:!0}),MODx.combo.Country.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Country,MODx.combo.ComboBox),Ext.reg("modx-combo-country",MODx.combo.Country),MODx.combo.Gender=function(config){config=config||{},Ext.applyIf(config,{store:new Ext.data.SimpleStore({fields:["d","v"],data:[["",0],[_("user_male"),1],[_("user_female"),2],[_("user_other"),3]]}),displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,selectOnFocus:!1}),MODx.combo.Gender.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Gender,Ext.form.ComboBox),Ext.reg("modx-combo-gender",MODx.combo.Gender),MODx.combo.PropertySet=function(config){config=config||{},Ext.applyIf(config,{name:"propertyset",hiddenName:"propertyset",url:MODx.config.connector_url,baseParams:{action:"Element/PropertySet/GetList"},displayField:"name",valueField:"id",fields:["id","name"],editable:!1,pageSize:20,width:300}),MODx.combo.PropertySet.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.PropertySet,MODx.combo.ComboBox),Ext.reg("modx-combo-property-set",MODx.combo.PropertySet),MODx.ChangeParentField=function(config){config=config||{},Ext.applyIf(config,{triggerAction:"all",editable:!1,readOnly:!1,formpanel:"modx-panel-resource",parentcmp:"modx-resource-parent-hidden",contextcmp:"modx-resource-context-key",currentid:MODx.request.id}),MODx.ChangeParentField.superclass.constructor.call(this,config),this.config=config,this.on("click",this.onTriggerClick,this),this.addEvents({end:!0}),this.on("end",this.end,this)},Ext.extend(MODx.ChangeParentField,Ext.form.TriggerField,{oldValue:!1,oldDisplayValue:!1,end:function(p){var t=Ext.getCmp("modx-resource-tree");t&&(p.d=p.d||p.v,t.removeListener("click",this.handleChangeParent,this),t.on("click",t._handleClick,t),t.disableHref=!1,MODx.debug("Setting parent to: "+p.v),Ext.getCmp(this.config.parentcmp).setValue(p.v),this.setValue(p.d),this.oldValue=!1,"modx-template-picker-parent-id"!==this.config.parentcmp&&Ext.getCmp(this.config.formpanel).fireEvent("fieldChange"))},onTriggerClick:function(){if(this.disabled)return!1;if(this.oldValue)return this.fireEvent("end",{v:this.oldValue,d:this.oldDisplayValue}),!1;if(MODx.debug("onTriggerClick"),!Ext.getCmp("modx-resource-tree")){MODx.debug("no tree found, trying to activate");var tp=Ext.getCmp("modx-leftbar-tabpanel");return tp?(tp.on("tabchange",(function(tbp,tab){"modx-resource-tree-ct"==tab.id&&this.disableTreeClick()}),this),tp.activate("modx-resource-tree-ct")):MODx.debug("no tabpanel"),!1}this.disableTreeClick()},disableTreeClick:function(){return MODx.debug("Disabling tree click"),t=Ext.getCmp("modx-resource-tree"),t?(this.oldDisplayValue=this.getValue(),this.oldValue=Ext.getCmp(this.config.parentcmp).getValue(),this.setValue(_("resource_parent_select_node")),t.expand(),t.removeListener("click",t._handleClick),t.on("click",this.handleChangeParent,this),t.disableHref=!0,!0):(MODx.debug("No tree found in disableTreeClick!"),!1)},handleChangeParent:function(node,e){var t=Ext.getCmp("modx-resource-tree");if(!t)return!1;t.disableHref=!0;var id=node.id.split("_");if((id=id[1])==this.config.currentid)return MODx.msg.alert("",_("resource_err_own_parent")),!1;var ctxf=Ext.getCmp(this.config.contextcmp);if(ctxf){var ctxv=ctxf.getValue();node.attributes&&node.attributes.ctx!=ctxv&&ctxf.setValue(node.attributes.ctx)}return this.fireEvent("end",{v:"modContext"!=node.attributes.type?id:node.attributes.pk,d:Ext.util.Format.stripTags(node.text)}),e.preventDefault(),e.stopEvent(),!0}}),Ext.reg("modx-field-parent-change",MODx.ChangeParentField),MODx.combo.TVWidget=function(config){config=config||{},Ext.applyIf(config,{name:"widget",hiddenName:"widget",displayField:"name",valueField:"value",fields:["value","name"],editable:!1,url:MODx.config.connector_url,baseParams:{action:"Element/TemplateVar/Renders/GetOutputs"},value:"default"}),MODx.combo.TVWidget.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.TVWidget,MODx.combo.ComboBox),Ext.reg("modx-combo-tv-widget",MODx.combo.TVWidget),MODx.combo.TVInputType=function(config){config=config||{},Ext.applyIf(config,{name:"type",hiddenName:"type",displayField:"name",valueField:"value",editable:!1,fields:["value","name"],url:MODx.config.connector_url,baseParams:{action:"Element/TemplateVar/Renders/GetInputs"},value:"text"}),MODx.combo.TVInputType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.TVInputType,MODx.combo.ComboBox),Ext.reg("modx-combo-tv-input-type",MODx.combo.TVInputType),MODx.combo.Dashboard=function(config){config=config||{},Ext.applyIf(config,{name:"dashboard",hiddenName:"dashboard",displayField:"name",valueField:"id",fields:["id","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/Dashboard/GetList"},tpl:new Ext.XTemplate('','
','

{name:htmlEncode}

','

{description:htmlEncode}

',"
")}),MODx.combo.Dashboard.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Dashboard,MODx.combo.ComboBox),Ext.reg("modx-combo-dashboard",MODx.combo.Dashboard),MODx.combo.MediaSource=function(config){config=config||{},Ext.applyIf(config,{name:"source",hiddenName:"source",displayField:"name",valueField:"id",fields:["id","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Source/GetList"},tpl:new Ext.XTemplate('','
','

{name:htmlEncode}

','

{description:htmlEncode}

',"
")}),MODx.combo.MediaSource.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.MediaSource,MODx.combo.ComboBox),Ext.reg("modx-combo-source",MODx.combo.MediaSource),MODx.combo.MediaSourceType=function(config){config=config||{},Ext.applyIf(config,{name:"class_key",hiddenName:"class_key",displayField:"name",valueField:"class",fields:["id","class","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Source/Type/GetList"},tpl:new Ext.XTemplate('','
','

{name:htmlEncode}

','

{description:htmlEncode}

',"
")}),MODx.combo.MediaSourceType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.MediaSourceType,MODx.combo.ComboBox),Ext.reg("modx-combo-source-type",MODx.combo.MediaSourceType),MODx.combo.Authority=function(config){config=config||{},Ext.applyIf(config,{name:"authority",hiddenName:"authority",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetAuthorityList",addNone:!0}}),MODx.combo.Authority.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Authority,MODx.combo.ComboBox),Ext.reg("modx-combo-authority",MODx.combo.Authority),MODx.combo.ManagerTheme=function(config){config=config||{},Ext.applyIf(config,{name:"theme",hiddenName:"theme",displayField:"theme",valueField:"theme",fields:["theme"],url:MODx.config.connector_url,baseParams:{action:"Workspace/Theme/GetList"},typeAhead:!1,editable:!1}),MODx.combo.ManagerTheme.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ManagerTheme,MODx.combo.ComboBox),Ext.reg("modx-combo-manager-theme",MODx.combo.ManagerTheme),MODx.combo.SettingKey=function(config){config=config||{},Ext.applyIf(config,{name:"key",hiddenName:"key",displayField:"key",valueField:"key",fields:["key"],url:MODx.config.connector_url,baseParams:{action:"System/Settings/GetList"},triggerAction:"all",editable:!0,forceSelection:!1,pageSize:20}),MODx.combo.SettingKey.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.SettingKey,MODx.combo.ComboBox),Ext.reg("modx-combo-setting-key",MODx.combo.SettingKey),MODx.combo.Visibility=function(config){config=config||{},Ext.applyIf(config,{name:"visibility",hiddenName:"visibility",store:new Ext.data.SimpleStore({fields:["d","v"],data:[[_("file_folder_visibility_public"),"public"],[_("file_folder_visibility_private"),"private"]]}),displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,selectOnFocus:!1,preventRender:!0,forceSelection:!0,enableKeyEvents:!0}),MODx.combo.Visibility.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Visibility,MODx.combo.ComboBox),Ext.reg("modx-combo-visibility",MODx.combo.Visibility),MODx.combo.Permission=function(config){config=config||{},Ext.applyIf(config,{name:"permission",hiddenName:"permission",displayField:"name",valueField:"name",fields:["name","description"],editable:!0,typeAhead:!1,forceSelection:!1,enableKeyEvents:!0,autoSelect:!1,pageSize:20,tpl:new Ext.XTemplate('
{name:htmlEncode}','

{description:htmlEncode}

'),url:MODx.config.connector_url,baseParams:{action:"Security/Access/Permission/GetList"}}),MODx.combo.Permission.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Permission,MODx.combo.ComboBox),Ext.reg("modx-combo-permission",MODx.combo.Permission),Ext.namespace("MODx.grid"),MODx.grid.Grid=function(config){if(config=config||{},this.config=config,this._loadStore(),this._loadColumnModel(),Ext.applyIf(config,{store:this.store,cm:this.cm,sm:new Ext.grid.RowSelectionModel({singleSelect:!0}),paging:!!config.bbar,loadMask:!0,autoHeight:!0,collapsible:!0,stripeRows:!0,header:!1,cls:"modx-grid",preventRender:!0,preventSaveRefresh:!0,showPerPage:!0,stateful:!1,showActionsColumn:!0,disableContextMenuAction:!1,menuConfig:{defaultAlign:"tl-b?",enableScrolling:!1},viewConfig:{forceFit:!0,enableRowBody:!0,autoFill:!0,showPreview:!0,scrollOffset:0,emptyText:config.emptyText||_("ext_emptymsg")},groupingConfig:{enableGroupingMenu:!0}}),config.paging){var pgItms=config.showPerPage?[_("per_page")+":",{xtype:"textfield",cls:"x-tbar-page-size",value:config.pageSize||parseInt(MODx.config.default_per_page)||20,listeners:{change:{fn:this.onChangePerPage,scope:this},render:{fn:function(cmp){new Ext.KeyMap(cmp.getEl(),{key:Ext.EventObject.ENTER,fn:this.blur,scope:cmp})},scope:this}}}]:[];if(config.pagingItems)for(var i=0;i 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'};Ext.applyIf(config.groupingConfig,groupingConfig),Ext.applyIf(config,{view:new Ext.grid.GroupingView(config.groupingConfig)})}if(config.tbar)for(var ix=0;ix1)return!1;return!0};config.columns&&Array.isArray(config.columns)&&(void 0===config.actionsColumnWidth&&isPercentage(config.columns)&&(defaultActionsColumnWidth=.1),config.columns.push({id:"modx-actions",width:config.actionsColumnWidth||defaultActionsColumnWidth,menuDisabled:!0,renderer:this.actionsColumnRenderer.bind(this)})),config.cm&&config.cm.columns&&Array.isArray(config.cm.columns)&&(void 0===config.actionsColumnWidth&&isPercentage(config.cm.columns)&&(defaultActionsColumnWidth=.1),config.cm.columns.push({id:"modx-actions",width:config.actionsColumnWidth||defaultActionsColumnWidth,menuDisabled:!0,renderer:this.actionsColumnRenderer.bind(this)}))}MODx.grid.Grid.superclass.constructor.call(this,config),this._loadMenu(config),this.addEvents("beforeRemoveRow","afterRemoveRow","afterAutoSave"),this.autosave&&this.on("afterAutoSave",this.onAfterAutoSave,this),config.preventRender||this.render(),this.on({render:{fn:function(){const topToolbar=this.getTopToolbar();topToolbar&&topToolbar.initialConfig.cls&&"has-nested-filters"==topToolbar.initialConfig.cls&&(this.hasNestedFilters=!0)},scope:this},rowcontextmenu:{fn:this._showMenu,scope:this}}),config.autosave&&this.on("afteredit",this.saveRecord,this),config.paging&&config.grouping&&this.getBottomToolbar().bind(this.store),config.paging||config.hasOwnProperty("pageSize")||(config.pageSize=0),this.getStore().load({params:{start:config.pageStart||0,limit:config.hasOwnProperty("pageSize")?config.pageSize:parseInt(MODx.config.default_per_page)||20}}),this.getStore().on("exception",this.onStoreException,this),this.config=config,this.on("click",this.onClickHandler,this)},Ext.extend(MODx.grid.Grid,Ext.grid.EditorGridPanel,{windows:{},onStoreException:function(dataProxy,type,action,options,response){const responseStatusCode=response.status||"Unknown",responseStatusText=Ext.isEmpty(response.statusText)?"":`(${response.statusText})`;let output="",msg="";if(Ext.isEmpty(response.responseText))output=200!==responseStatusCode?`
${responseStatusCode} ${responseStatusText}
`:"";else try{const responseText=Ext.decode(response.responseText);responseText&&responseText.message&&(output=responseText.message)}catch(e){output=response.responseText}output?MODx.config.debug>0?(output=MODx.util.safeHtml(output,"
","class,colspan,rowspan"),msg=_("error_grid_get_content_toscreen",{message:`
${output}
`})):(msg=_("error_grid_get_content_tolog"),output=Ext.util.Format.stripTags(output).replaceAll(">",">").replaceAll("<","<"),console.error(output)):msg=_("error_grid_get_content_no_msg"),this.getView().emptyText=`
${msg}
`,this.getView().refresh(!1)},saveRecord:function(e){e.record.data.menu=null;var p=this.config.saveParams||{};Ext.apply(e.record.data,p);var d=Ext.util.JSON.encode(e.record.data),url=this.config.saveUrl||this.config.url||this.config.connector;MODx.Ajax.request({url,params:{action:this.config.save_action||"updateFromGrid",data:d},listeners:{success:{fn:function(r){this.config.save_callback&&Ext.callback(this.config.save_callback,this.config.scope||this,[r]),e.record.commit(),this.config.preventSaveRefresh||this.refresh(),this.fireEvent("afterAutoSave",r)},scope:this},failure:{fn:function(r){e.record.reject(),this.fireEvent("afterAutoSave",r)},scope:this}}})},onAfterAutoSave:function(response){if(!response.success&&""===response.message){var msg="";response.data.length&&Ext.each(response.data,(function(data,index,list){msg+=(""!=msg?"
":"")+data.msg}),this),Ext.isEmpty(msg)&&(msg=this.autosaveErrorMsg||_("error")),MODx.msg.alert(_("error"),msg)}},onChangePerPage:function(tf,nv){if(Ext.isEmpty(nv))return!1;nv=parseInt(nv),this.getBottomToolbar().pageSize=nv,this.store.load({params:{start:0,limit:nv}})},loadWindow:function(btn,e,win,or){var r=this.menu.record;this.windows[win.xtype]&&!win.force||(Ext.applyIf(win,{record:win.blankValues?{}:r,grid:this,listeners:{success:{fn:win.success||this.refresh,scope:win.scope||this}}}),or&&Ext.apply(win,or),this.windows[win.xtype]=Ext.ComponentMgr.create(win)),this.windows[win.xtype].setValues&&!0!==win.blankValues&&null!=r&&this.windows[win.xtype].setValues(r),this.windows[win.xtype].show(e.target)},confirm:function(type,text){var p={action:type},k=this.config.primaryKey||"id";p[k]=this.menu.record[k],MODx.msg.confirm({title:_(type),text:_(text)||_("confirm_remove"),url:this.config.url,params:p,listeners:{success:{fn:this.refresh,scope:this}}})},remove:function(text,action){if(this.destroying)return MODx.grid.Grid.superclass.remove.apply(this,arguments);var r=this.menu.record;text=text||"confirm_remove";var p=this.config.saveParams||{};Ext.apply(p,{action:action||"remove"});var k=this.config.primaryKey||"id";p[k]=r[k],this.fireEvent("beforeRemoveRow",r)&&MODx.msg.confirm({title:_("warning"),text:_(text,r),url:this.config.url,params:p,listeners:{success:{fn:function(){this.removeActiveRow(r)},scope:this}}})},removeActiveRow:function(r){if(this.fireEvent("afterRemoveRow",r)){var rx=this.getSelectionModel().getSelected();this.getStore().remove(rx)}},_loadMenu:function(){this.menu=new Ext.menu.Menu(this.config.menuConfig)},_showMenu:function(g,ri,e){if(e.stopEvent(),e.preventDefault(),this.menu.record=this.getStore().getAt(ri).data,this.getSelectionModel().isSelected(ri)||this.getSelectionModel().selectRow(ri),this.menu.removeAll(),this.getMenu){var m=this.getMenu(g,ri,e);m&&m.length&&m.length>0&&this.addContextMenuItem(m)}(!m||m.length<=0)&&this.menu.record.menu&&this.addContextMenuItem(this.menu.record.menu),this.menu.items.length>0&&this.menu.showAt(e.xy)},_loadStore:function(){this.config.grouping?this.store=new Ext.data.GroupingStore({url:this.config.url,baseParams:this.config.baseParams||{action:this.config.action||"getList"},reader:new Ext.data.JsonReader({totalProperty:"total",root:"results",fields:this.config.fields}),sortInfo:{field:this.config.sortBy||"id",direction:this.config.sortDir||"ASC"},remoteSort:this.config.remoteSort||!1,remoteGroup:this.config.remoteGroup||!1,groupField:this.config.groupBy||"name",storeId:this.config.storeId||Ext.id(),autoDestroy:!0,listeners:{load:function(){const cmp=Ext.getCmp("modx-content");cmp&&cmp.doLayout()}}}):this.store=new Ext.data.JsonStore({url:this.config.url,baseParams:this.config.baseParams||{action:this.config.action||"getList"},fields:this.config.fields,root:"results",totalProperty:"total",remoteSort:this.config.remoteSort||!1,storeId:this.config.storeId||Ext.id(),autoDestroy:!0,listeners:{load:function(){const cmp=Ext.getCmp("modx-content");cmp&&cmp.doLayout()}}})},_loadColumnModel:function(){if(this.config.columns){for(var c=this.config.columns,i=0;i
',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,store){var actions=this.getActions.apply(this,[record,rowIndex,colIndex,store]);return!0!==this.config.disableContextMenuAction&&actions.push({text:_("context_menu"),action:"contextMenu",icon:"gear"}),this._getActionsColumnTpl().apply({actions})},renderLink:function(v,attr){var el=new Ext.Element(document.createElement("a"));for(var i in el.addClass("x-grid-link"),el.dom.title=_("edit"),attr)el.dom[i]=attr[i];return el.dom.innerHTML=Ext.util.Format.htmlEncode(v),el.dom.outerHTML},getLinkTemplate:function(controllerPath,displayValueIndex,options={}){Ext.applyIf(options,{linkParams:[],linkClass:"x-grid-link",linkTitle:_("edit"),linkTarget:"_blank"});let params="";return controllerPath=0===controllerPath.indexOf("?a=")?controllerPath:`?a=${controllerPath}`,options.linkParams.length>0&&(params=[],options.linkParams.forEach((param=>{params.push(`${param.key}={${param.valueIndex}}`)})),params=`&${params.join("&")}`),new Ext.Template(`{${displayValueIndex}:htmlEncode}`,{compiled:!0})},getActions:function(record,rowIndex,colIndex,store){return[]},onClickHandler:function(e){var target=e.getTarget();if(target.classList.contains("x-grid-action")&&target.dataset.action){var actionHandler="action"+target.dataset.action.charAt(0).toUpperCase()+target.dataset.action.slice(1);if(this[actionHandler]&&"function"==typeof this[actionHandler]||this[actionHandler=target.dataset.action]&&"function"==typeof this[actionHandler]){var record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record);this.menu.record=record.data,this[actionHandler](record,recordIndex,e)}}},actionContextMenu:function(record,recordIndex,e){this._showMenu(this,recordIndex,e)},makeUrl:function(){if(Array.isArray(this.config.urlFilters)&&this.config.urlFilters.length>0){var s=this.getStore(),p={a:MODx.request.a};MODx.request.id&&(p.id=MODx.request.id),MODx.request.key&&(p.key=MODx.request.key);for(var i=0;i0&&window.history.replaceState(this.getStore().baseParams,document.title,this.makeUrl())},findTabPanel:function(referenceCmp){if(!referenceCmp.hasOwnProperty("ownerCt"))return console.error("MODx.grid.Grid::findTabPanel: This component must have an ownerCt to find its tab panel."),!1;const container=referenceCmp.ownerCt;return container.hasOwnProperty("xtype")&&container.xtype.includes("tabs")?container:this.findTabPanel(container)},hasNestedFilters:!1,currentLanguage:MODx.config.cultureKey||"en",applyRequestFilter:function(tabPanelIndex,requestKey="policy",tabPanelType="vtab",setEmptyToString=!1){const emptyVal=setEmptyToString?"":null;return Object.prototype.hasOwnProperty.call(MODx.request,tabPanelType)&&parseInt(MODx.request[tabPanelType],10)===tabPanelIndex&&Object.prototype.hasOwnProperty.call(MODx.request,requestKey)?MODx.util.url.getParamValue(requestKey):emptyVal},applyGridFilter:function(cmp,param="query"){const filterValue=cmp.getValue(),store=this.getStore(),urlParams={},tabPanel=this.findTabPanel(this),bottomToolbar=this.getBottomToolbar();let parentTabItems,activeParentTabIdx,hasParentTabPanel=!1;if(Ext.isEmpty(filterValue)?MODx.request[param]?urlParams[param]=MODx.request[param]:MODx.util.url.clearParam(cmp):urlParams[param]=filterValue,"ns"==param?store.baseParams.namespace=filterValue:store.baseParams[param]=filterValue,tabPanel){if("modx-vtabs"==tabPanel.xtype){const parentTabPanel=this.findTabPanel(tabPanel);if(parentTabPanel){const activeParentTab=parentTabPanel.getActiveTab();hasParentTabPanel=!0,parentTabItems=parentTabPanel.items,activeParentTabIdx=parentTabItems.indexOf(activeParentTab)}}const activeTab=tabPanel.getActiveTab(),tabItems=tabPanel.items,activeTabIdx=tabItems.indexOf(activeTab);hasParentTabPanel?(tabItems.length>1&&(urlParams.vtab=activeTabIdx),parentTabItems.length>1&&(urlParams.tab=activeParentTabIdx)):tabItems.length>1&&(urlParams.tab=activeTabIdx)}store.load(),MODx.util.url.setParams(urlParams),bottomToolbar&&bottomToolbar.changePage(1)},clearGridFilters:function(items){const store=this.getStore(),bottomToolbar=this.getBottomToolbar();(Array.isArray(items)?items:items.split(",")).forEach((item=>{const itemData=item.replace(/\s+/g,"").split(":"),itemId=itemData[0],itemDefaultVal=2==itemData.length?itemData[1]:null,cmp=this.getFilterComponent(itemId),param=MODx.util.url.getParamNameFromCmp(cmp),isCombo=cmp?.xtype?.includes("combo");if(isCombo?""===itemDefaultVal?cmp.setValue(null):cmp.setValue(itemDefaultVal):cmp.setValue(""),!Ext.isEmpty(itemDefaultVal)){Object.keys(cmp.baseParams).forEach((param=>{switch(param){case"namespace":cmp.baseParams[param]="core";break;case"topic":cmp.baseParams[param]="default"}}))}isCombo&&"local"!==cmp.mode&&cmp.getStore().load(),store.baseParams[param]=itemDefaultVal})),store.load(),MODx.util.url.clearAllParams(),bottomToolbar&&bottomToolbar.changePage(1)},hasNestedFilters:!1,getFilterComponent:function(filterId){const topToolbar=this.getTopToolbar(),cmp=this.hasNestedFilters&&"filter-query"!==filterId?topToolbar.find("itemId",`${filterId}-container`)[0].getComponent(filterId):topToolbar.getComponent(filterId);if(void 0!==cmp)return cmp;console.error(`getFilterComponent: The filter component with itemId '${filterId}' could not be retrieved.`)},refreshFilterOptions:function(filterData=[],clearDependentParams=!0){filterData.length>0&&(filterData.forEach((data=>{const filter=this.getFilterComponent(data.filterId);if(filter){const store=filter.getStore();if(filter.setValue(""),store){if(data.hasOwnProperty("dependentParams")){(Array.isArray(data.dependentParams)?data.dependentParams:data.dependentParams.split(",")).forEach((param=>{clearDependentParams&&store.baseParams.hasOwnProperty(param)&&(store.baseParams[param]="")}))}store.load()}}})),this.refresh())},updateDependentFilter:function(filterId,paramKey,paramValue,clearValue=!1){const filter=this.getFilterComponent(filterId),filterStore=filter?filter.getStore():null;filterStore&&"string"==typeof paramKey&&(clearValue&&filter.setValue(""),filterStore.baseParams[paramKey]=paramValue,filterStore.load())},getQueryFilterField:function(filterSpec="filter-query",implementation="default"){let queryValue="";const filterSpecs=filterSpec.split(":"),filterId=filterSpecs[0].trim();return queryValue=2===filterSpecs.length?filterSpecs[1]:MODx.request.query?MODx.util.url.decodeParamValue(MODx.request.query):"",{xtype:"textfield",itemId:filterId,emptyText:_("search"),value:queryValue,cls:"filter-query",listeners:{change:{fn:function(cmp,newValue,oldValue){this.applyGridFilter(cmp);const usergroupTree=Ext.getCmp("modx-tree-usergroup");if("user-group-users"===implementation&&usergroupTree){const selectedNode=usergroupTree.getSelectionModel().getSelectedNode(),groupId=MODx.util.tree.getGroupIdFromNode(selectedNode);MODx.util.url.setParams({group:groupId})}},scope:this},afterrender:{fn:function(cmp){MODx.request.query&&this.applyGridFilter(cmp)},scope:this},render:{fn:function(cmp){new Ext.KeyMap(cmp.getEl(),{key:Ext.EventObject.ENTER,fn:this.blur,scope:cmp})},scope:this}}}},getClearFiltersButton:function(filters="filter-query",dependentFilterResets=null){if(Ext.isEmpty(filters))return console.error("MODx.grid.Grid::getClearFiltersButton: There was a problem creating the Clear Filter button because the supplied filters list is invalid."),{};const config={text:_("filter_clear"),itemId:"filter-clear",listeners:{click:{fn:function(cmp){if(cmp.dependentResets){cmp.dependentResets.split(",").forEach((reset=>{const[filterId,filterDataIndex]=reset.split(":").map((item=>item.trim()));this.updateDependentFilter(filterId,filterDataIndex,"",!0)}))}this.clearGridFilters(filters)},scope:this},mouseout:{fn:function(evt){this.removeClass("x-btn-focus")}}}};return dependentFilterResets&&(config.dependentResets=dependentFilterResets),config}}),MODx.grid.LocalGrid=function(config){if((config=config||{}).grouping&&Ext.applyIf(config,{view:new Ext.grid.GroupingView({forceFit:!0,scrollOffset:0,hideGroupedColumn:!!config.hideGroupedColumn,groupTextTpl:config.groupTextTpl||'{text} ({[values.rs.length]} {[values.rs.length > 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'})}),config.tbar)for(var i=0;i
',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,store){var actions=this.getActions.apply(this,arguments);return!0!==this.config.disableContextMenuAction&&actions.push({text:_("context_menu"),action:"contextMenu",icon:"gear"}),this._getActionsColumnTpl().apply({actions})},renderLink:function(v,attr){var el=new Ext.Element(document.createElement("a"));for(var i in el.addClass("x-grid-link"),el.dom.title=_("edit"),attr)el.dom[i]=attr[i];return el.dom.innerHTML=Ext.util.Format.htmlEncode(v),el.dom.outerHTML},getActions:function(value,metaData,record,rowIndex,colIndex,store){return[]},onClick:function(e){var target=e.getTarget();if(target.classList.contains("x-grid-action")&&target.dataset.action){var actionHandler="action"+target.dataset.action.charAt(0).toUpperCase()+target.dataset.action.slice(1);if(this[actionHandler]&&"function"==typeof this[actionHandler]||this[actionHandler=target.dataset.action]&&"function"==typeof this[actionHandler]){var record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record);this.menu.record=record.data,this[actionHandler](record,recordIndex,e)}}},actionContextMenu:function(record,recordIndex,e){this._showMenu(this,recordIndex,e)}}),Ext.reg("grid-local",MODx.grid.LocalGrid),Ext.reg("modx-grid-local",MODx.grid.LocalGrid), +Ext.ux.form.SuperBoxSelect=function(config){Ext.ux.form.SuperBoxSelect.superclass.constructor.call(this,config),this.addEvents("beforeadditem","additem","newitem","beforeremoveitem","removeitem","clear")},Ext.ux.form.SuperBoxSelect=Ext.extend(Ext.ux.form.SuperBoxSelect,Ext.form.ComboBox,{addNewDataOnBlur:!1,allowAddNewData:!1,allowQueryAll:!0,backspaceDeletesLastItem:!0,classField:null,clearBtnCls:"",clearLastQueryOnEscape:!1,clearOnEscape:!1,displayFieldTpl:null,extraItemCls:"",extraItemStyle:"",expandBtnCls:"",fixFocusOnTabSelect:!0,forceFormValue:!0,forceSameValueQuery:!1,itemDelimiterKey:Ext.EventObject.ENTER,navigateItemsWithTab:!0,pinList:!0,preventDuplicates:!0,queryFilterRe:"",queryValuesDelimiter:"|",queryValuesIndicator:"valuesqry",removeValuesFromStore:!0,renderFieldBtns:!0,stackItems:!1,styleField:null,supressClearValueRemoveEvents:!1,validationEvent:"blur",valueDelimiter:",",initComponent:function(){Ext.apply(this,{items:new Ext.util.MixedCollection(!1),usedRecords:new Ext.util.MixedCollection(!1),addedRecords:[],remoteLookup:[],hideTrigger:!0,grow:!1,resizable:!1,multiSelectMode:!1,preRenderValue:null,filteredQueryData:""}),this.queryFilterRe&&Ext.isString(this.queryFilterRe)&&(this.queryFilterRe=new RegExp(this.queryFilterRe)),this.transform&&this.doTransform(),this.forceFormValue&&this.items.on({add:this.manageNameAttribute,remove:this.manageNameAttribute,clear:this.manageNameAttribute,scope:this}),Ext.ux.form.SuperBoxSelect.superclass.initComponent.call(this),"remote"===this.mode&&this.store&&this.store.on("load",this.onStoreLoad,this)},onRender:function(ct,position){var h=this.hiddenName;this.hiddenName=null,Ext.ux.form.SuperBoxSelect.superclass.onRender.call(this,ct,position),this.hiddenName=h,this.manageNameAttribute();var extraClass=!0===this.stackItems?"x-superboxselect-stacked":"";this.renderFieldBtns&&(extraClass+=" x-superboxselect-display-btns"),this.el.removeClass("x-form-text").addClass("x-superboxselect-input-field"),this.wrapEl=this.el.wrap({tag:"ul"}),this.outerWrapEl=this.wrapEl.wrap({tag:"div",cls:"x-form-text x-superboxselect "+extraClass}),this.inputEl=this.el.wrap({tag:"li",cls:"x-superboxselect-input"}),this.renderFieldBtns&&this.setupFieldButtons().manageClearBtn(),this.setupFormInterception()},doTransform:function(){var s=Ext.getDom(this.transform),transformValues=[];if(!this.store){this.mode="local";for(var d=[],opts=s.options,i=0,len=opts.length;i0&&(this.collapse(),(it=this.items.get(0)).el.focus()),!0):e.getKey()===e.BACKSPACE?(e.stopEvent(),this.currentFocus?(toDestroy=this.currentFocus,this.on("expand",(function(){this.collapse()}),this,{single:!0}),idx=this.items.indexOfKey(toDestroy.key),this.clearCurrentFocus(),idx0?(this.el.removeClass(this.emptyClass),this.setRawValue(""),this):(this.rendered&&this.emptyText&&this.getRawValue().length<1&&(this.setRawValue(this.emptyText),this.el.addClass(this.emptyClass)),this)},removeAllItems:function(){return this.items.each((function(item){item.preDestroy(!0)}),this),this.manageClearBtn(),this},killItems:function(){return this.items.each((function(item){item.kill()}),this),this.resetStore(),this.items.clear(),this.manageClearBtn(),this},resetStore:function(){return this.store.clearFilter(),this.removeValuesFromStore?(this.usedRecords.each((function(rec){this.store.add(rec)}),this),this.usedRecords.clear(),this.store.remoteSort||this.store.sort(this.displayField,"ASC"),this):this},sortStore:function(){var ss=this.store.getSortState();return ss&&ss.field&&this.store.sort(ss.field,ss.direction),this},getCaption:function(dataObject){"string"==typeof this.displayFieldTpl&&(this.displayFieldTpl=new Ext.XTemplate(this.displayFieldTpl));var caption,recordData=dataObject instanceof Ext.data.Record?dataObject.data:dataObject;return this.displayFieldTpl?caption=this.displayFieldTpl.apply(recordData):this.displayField&&(caption=recordData[this.displayField]),caption},addRecord:function(record){var display=record.data[this.displayField],caption=this.getCaption(record),val=record.data[this.valueField],cls=this.classField?record.data[this.classField]:"",style=this.styleField?record.data[this.styleField]:"";this.removeValuesFromStore&&(this.usedRecords.add(val,record),this.store.remove(record)),this.addItemBox(val,display,caption,cls,style),this.fireEvent("additem",this,val,record)},createRecord:function(recordData){if(!this.recordConstructor){var recordFields=[{name:this.valueField},{name:this.displayField}];this.classField&&recordFields.push({name:this.classField}),this.styleField&&recordFields.push({name:this.styleField}),this.recordConstructor=Ext.data.Record.create(recordFields)}return new this.recordConstructor(recordData)},addItems:function(newItemObjects){Ext.isArray(newItemObjects)?Ext.each(newItemObjects,(function(item){this.addItem(item)}),this):this.addItem(newItemObjects)},addNewItem:function(newItemObject){this.addItem(newItemObject,!0)},addItem:function(newItemObject,forcedAdd){var val=newItemObject[this.valueField];if(this.disabled)return!1;if(!this.preventDuplicates||!this.hasValue(val)){var record=this.findRecord(this.valueField,val);if(record)this.addRecord(record);else if(this.allowAddNewData){if("remote"===this.mode)return this.remoteLookup.push(newItemObject),void this.doQuery(val,!1,!1,forcedAdd);var rec=this.createRecord(newItemObject);return this.store.add(rec),this.addRecord(rec),!0}}},addItemBox:function(itemVal,itemDisplay,itemCaption,itemClass,itemStyle){var hConfig,itemKey=Ext.id(null,"sbx-item"),box=new Ext.ux.form.SuperBoxSelectItem({owner:this,disabled:this.disabled,renderTo:this.wrapEl,cls:this.extraItemCls+" "+itemClass,style:function(s){var ret="";switch(typeof s){case"function":ret=s.call();break;case"object":for(var p in s)ret+=p+":"+s[p]+";";break;case"string":ret=s+";"}return ret}(this.extraItemStyle)+" "+itemStyle,caption:itemCaption,display:itemDisplay,value:itemVal,key:itemKey,listeners:{remove:function(item){if(!1===this.fireEvent("beforeremoveitem",this,item.value))return!1;this.items.removeKey(item.key),this.removeValuesFromStore&&this.usedRecords.containsKey(item.value)&&(this.store.add(this.usedRecords.get(item.value)),this.usedRecords.removeKey(item.value),this.sortStore(),this.view&&this.view.render()),this.preventMultipleRemoveEvents||this.fireEvent.defer(250,this,["removeitem",this,item.value,this.findInStore(item.value)])},destroy:function(){this.collapse(),this.autoSize().manageClearBtn().validateValue()},scope:this}});box.render(),hConfig={tag:"input",type:"hidden",value:itemVal,name:this.hiddenName||this.name},this.disabled&&Ext.apply(hConfig,{disabled:"disabled"}),box.hidden=this.el.insertSibling(hConfig,"before"),this.items.add(itemKey,box),this.applyEmptyText().autoSize().manageClearBtn().validateValue()},manageClearBtn:function(){if(!this.renderFieldBtns||!this.rendered)return this;var cls="x-superboxselect-btn-hide";return 0===this.items.getCount()?this.buttonClear.addClass(cls):this.buttonClear.removeClass(cls),this},findInStore:function(val){var index=this.store.find(this.valueField,val);return index>-1&&this.store.getAt(index)},getSelectedRecords:function(){var ret=[];if(this.removeValuesFromStore)ret=this.usedRecords.getRange();else{var vals=[];this.items.each((function(item){vals.push(item.value)})),Ext.each(vals,(function(val){ret.push(this.findInStore(val))}),this)}return ret},findSelectedItem:function(el){var ret;return this.items.each((function(item){if(item.el.dom===el)return ret=item,!1})),ret},findSelectedRecord:function(el){var ret,item=this.findSelectedItem(el);return item&&(ret=this.findSelectedRecordByValue(item.value)),ret},findSelectedRecordByValue:function(val){var ret;return this.removeValuesFromStore?this.usedRecords.each((function(rec){if(rec.get(this.valueField)==val)return ret=rec,!1}),this):ret=this.findInStore(val),ret},getValue:function(){var ret=[];return this.items.each((function(item){ret.push(item.value)})),ret.join(this.valueDelimiter)},getCount:function(){return this.items.getCount()},getValueEx:function(){var ret=[];return this.items.each((function(item){var newItem={};newItem[this.valueField]=item.value,newItem[this.displayField]=item.display,this.classField&&(newItem[this.classField]=item.cls||""),this.styleField&&(newItem[this.styleField]=item.style||""),ret.push(newItem)}),this),ret},initValue:function(){Ext.isObject(this.value)||Ext.isArray(this.value)?(this.setValueEx(this.value),this.originalValue=this.getValue()):Ext.ux.form.SuperBoxSelect.superclass.initValue.call(this),"remote"===this.mode&&(this.setOriginal=!0)},addValue:function(value){if(!Ext.isEmpty(value)){var values=value;if(Ext.isArray(value)||(values=(value=""+value).split(this.valueDelimiter)),Ext.each(values,(function(val){var record=this.findRecord(this.valueField,val);record?this.addRecord(record):"remote"===this.mode&&this.remoteLookup.push(val)}),this),"remote"===this.mode){var q=this.remoteLookup.join(this.queryValuesDelimiter);this.doQuery(q,!1,!0)}}},setValue:function(value){this.rendered?(this.removeAllItems().resetStore(),this.remoteLookup=[],this.addValue(value)):this.value=value},setValueEx:function(data){this.rendered?(this.removeAllItems().resetStore(),Ext.isArray(data)||(data=[data]),this.remoteLookup=[],this.allowAddNewData&&"remote"===this.mode?Ext.each(data,(function(d){var r=this.findRecord(this.valueField,d[this.valueField])||this.createRecord(d);this.addRecord(r)}),this):Ext.each(data,(function(item){this.addItem(item)}),this)):this.value=data},hasValue:function(val){var has=!1;return this.items.each((function(item){if(item.value==val)return has=!0,!1}),this),has},onSelect:function(record,index){if(!1!==this.fireEvent("beforeselect",this,record,index)){var val=record.data[this.valueField];if(this.preventDuplicates&&this.hasValue(val))return;this.setRawValue(""),this.lastSelectionText="",!1!==this.fireEvent("beforeadditem",this,val,record,this.filteredQueryData)&&this.addRecord(record),0!==this.store.getCount()&&this.multiSelectMode?this.restrictHeight():this.collapse()}},onDestroy:function(){this.items.purgeListeners(),this.killItems(),this.allowQueryAll&&Ext.destroy(this.buttonExpand),this.renderFieldBtns&&Ext.destroy(this.buttonClear,this.buttonWrap),Ext.destroy(this.inputEl,this.wrapEl,this.outerWrapEl),Ext.ux.form.SuperBoxSelect.superclass.onDestroy.call(this)},autoSize:function(){if(!this.rendered)return this;this.metrics||(this.metrics=Ext.util.TextMetrics.createInstance(this.el));var v=this.el.dom.value,d=document.createElement("div");""===v&&this.emptyText&&this.items.getCount()<1&&(v=this.emptyText),d.appendChild(document.createTextNode(v)),v=d.innerHTML,d=null,v+=" ";var w=Math.max(this.metrics.getWidth(v)+24,24);return void 0!==this._width&&(w=Math.min(this._width,w)),this.el.setWidth(w),Ext.isIE&&(this.el.dom.style.top="0"),this.fireEvent("autosize",this,w),this},shouldQuery:function(q){if(this.lastQuery){var m=q.match("^"+this.lastQuery);return!(m&&!this.store.getCount())||m[0]!==this.lastQuery}return!0},doQuery:function(q,forceAll,valuesQuery,forcedAdd){if(q=Ext.isEmpty(q)?"":q,this.queryFilterRe){this.filteredQueryData="";var m=q.match(this.queryFilterRe);if(m&&m.length&&(this.filteredQueryData=m[0]),!(q=q.replace(this.queryFilterRe,""))&&m)return}var qe={query:q,forceAll,combo:this,cancel:!1};if(!1===this.fireEvent("beforequery",qe)||qe.cancel)return!1;q=qe.query,(!0===(forceAll=qe.forceAll)||q.length>=this.minChars||valuesQuery&&!Ext.isEmpty(q))&&(forcedAdd||this.forceSameValueQuery||this.shouldQuery(q)?(this.lastQuery=q,"local"==this.mode?(this.selectedIndex=-1,forceAll?this.store.clearFilter():this.store.filter(this.displayField,q),this.onLoad()):(this.store.baseParams[this.queryParam]=q,this.store.baseParams[this.queryValuesIndicator]=valuesQuery,this.store.load({params:this.getParams(q)}),forcedAdd||this.expand())):(this.selectedIndex=-1,this.onLoad()))},onStoreLoad:function(store,records,options){var q=options.params[this.queryParam]||store.baseParams[this.queryParam]||"",isValuesQuery=options.params[this.queryValuesIndicator]||store.baseParams[this.queryValuesIndicator];if(this.removeValuesFromStore&&this.store.each((function(record){this.usedRecords.containsKey(record.get(this.valueField))&&this.store.remove(record)}),this),isValuesQuery){var params=q.split(this.queryValuesDelimiter);Ext.each(params,(function(p){this.remoteLookup.remove(p);var rec=this.findRecord(this.valueField,p);rec&&this.addRecord(rec)}),this),this.setOriginal&&(this.setOriginal=!1,this.originalValue=this.getValue())}""!==q&&this.allowAddNewData&&Ext.each(this.remoteLookup,(function(r){if("object"==typeof r&&r[this.valueField]===q){if(this.remoteLookup.remove(r),records.length&&records[0].get(this.valueField)===q)return void this.addRecord(records[0]);var rec=this.createRecord(r);return this.store.add(rec),this.addRecord(rec),this.addedRecords.push(rec),void function(){this.isExpanded()&&this.collapse()}.defer(10,this)}}),this);var toAdd=[];if(""===q)Ext.each(this.addedRecords,(function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||toAdd.push(rec)}),this);else{var re=new RegExp(Ext.escapeRe(q)+".*","i");Ext.each(this.addedRecords,(function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||re.test(rec.get(this.displayField))&&toAdd.push(rec)}),this)}this.store.add(toAdd),this.sortStore(),0===this.store.getCount()&&this.isExpanded()&&this.collapse()}}),Ext.reg("superboxselect",Ext.ux.form.SuperBoxSelect),Ext.ux.form.SuperBoxSelectItem=function(config){Ext.apply(this,config),Ext.ux.form.SuperBoxSelectItem.superclass.constructor.call(this)},Ext.ux.form.SuperBoxSelectItem=Ext.extend(Ext.ux.form.SuperBoxSelectItem,Ext.Component,{initComponent:function(){Ext.ux.form.SuperBoxSelectItem.superclass.initComponent.call(this)},onElClick:function(e){var o=this.owner;if(o.clearCurrentFocus().collapse(),o.navigateItemsWithTab)this.focus();else{o.el.dom.focus();(function(){this.onLnkFocus(),o.currentFocus=this}).defer(10,this)}},onLnkClick:function(e){e&&e.stopEvent(),this.preDestroy(),this.owner.navigateItemsWithTab||this.owner.el.focus()},onLnkFocus:function(){this.el.addClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.addClass("x-form-focus")},onLnkBlur:function(){this.el.removeClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.removeClass("x-form-focus")},enableElListeners:function(){this.el.on("click",this.onElClick,this,{stopEvent:!0}),this.el.addClassOnOver("x-superboxselect-item x-superboxselect-item-hover")},enableLnkListeners:function(){this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this})},enableAllListeners:function(){this.enableElListeners(),this.enableLnkListeners()},disableAllListeners:function(){this.el.removeAllListeners(),this.lnk.un("click",this.onLnkClick,this),this.lnk.un("focus",this.onLnkFocus,this),this.lnk.un("blur",this.onLnkBlur,this)},onRender:function(ct,position){Ext.ux.form.SuperBoxSelectItem.superclass.onRender.call(this,ct,position);var el=this.el;el&&el.remove(),this.el=el=ct.createChild({tag:"li"},ct.last()),el.addClass("x-superboxselect-item");var btnEl=this.owner.navigateItemsWithTab?"a":"span";this.key;Ext.apply(el,{focus:function(){var c=this.down(btnEl+".x-superboxselect-item-close");c&&c.focus()},preDestroy:function(){this.preDestroy()}.createDelegate(this)}),this.enableElListeners(),el.update(this.caption);var cfg={tag:btnEl,class:"x-superboxselect-item-close",tabIndex:this.owner.navigateItemsWithTab?"0":"-1"};"a"===btnEl&&(cfg.href="#"),this.lnk=el.createChild(cfg),this.disabled?this.disableAllListeners():this.enableLnkListeners(),this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this}),this.setupKeyMap()},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.lnk,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE,Ext.EventObject.SPACE],fn:this.preDestroy,scope:this},{key:[Ext.EventObject.RIGHT,Ext.EventObject.DOWN],fn:function(){this.moveFocus("right")},scope:this},{key:[Ext.EventObject.LEFT,Ext.EventObject.UP],fn:function(){this.moveFocus("left")},scope:this},{key:[Ext.EventObject.HOME],fn:function(){var l=this.owner.items.get(0).el.focus();l&&l.el.focus()},scope:this},{key:[Ext.EventObject.END],fn:function(){this.owner.el.focus()},scope:this},{key:Ext.EventObject.ENTER,fn:function(){}}]),this.keyMap.stopEvent=!0},moveFocus:function(dir){var el=this.el["left"==dir?"prev":"next"]()||this.owner.el;el.focus.defer(100,el)},preDestroy:function(supressEffect){if(!1!==this.fireEvent("remove",this)){var actionDestroy=function(){this.owner.navigateItemsWithTab&&this.moveFocus("right"),this.hidden.remove(),this.hidden=null,this.destroy()};return supressEffect?actionDestroy.call(this):this.el.hide({duration:.2,callback:actionDestroy,scope:this}),this}},kill:function(){this.hidden.remove(),this.hidden=null,this.purgeListeners(),this.destroy()},onDisable:function(){this.hidden&&this.hidden.dom.setAttribute("disabled","disabled"),this.keyMap.disable(),Ext.ux.form.SuperBoxSelectItem.superclass.onDisable.call(this)},onEnable:function(){this.hidden&&this.hidden.dom.removeAttribute("disabled"),this.keyMap.enable(),Ext.ux.form.SuperBoxSelectItem.superclass.onEnable.call(this)},onDestroy:function(){Ext.destroy(this.lnk,this.el),Ext.ux.form.SuperBoxSelectItem.superclass.onDestroy.call(this)}}),MODx.Component=function(config){config=config||{},MODx.Component.superclass.constructor.call(this,config),this.config=config,this._loadForm(),this.config.tabs&&this._loadTabs(),this._loadComponents(),this._loadActionButtons(),MODx.activePage=this},Ext.extend(MODx.Component,Ext.Component,{fields:{},form:null,action:!1,_loadForm:function(){if(!this.config.form)return!1;if(this.form=new Ext.form.BasicForm(Ext.get(this.config.form),{errorReader:MODx.util.JSONReader}),this.config.fields)for(var i in this.config.fields)if(this.config.fields.hasOwnProperty(i)){var f=this.config.fields[i];f.xtype&&(f=Ext.ComponentMgr.create(f)),this.fields[i]=f,this.form.add(f)}return this.form.render()},_loadActionButtons:function(){return!!this.config.buttons&&(this.ab=MODx.load({xtype:"modx-actionbuttons",form:this.form||null,formpanel:this.config.formpanel||null,actions:this.config.actions||null,items:this.config.buttons||[]}),this.ab)},_loadTabs:function(){if(!this.config.tabs)return!1;var o=this.config.tabOptions||{};return Ext.applyIf(o,{xtype:"modx-tabs",renderTo:this.config.tabs_div||"tabs_div",items:this.config.tabs}),MODx.load(o)},_loadComponents:function(){if(!this.config.components)return!1;for(var l=this.config.components.length,cp=Ext.getCmp("modx-content"),i=0;i","<-",""," "];if(-1!=ex.indexOf(el)||el.xtype&&"switch"==el.xtype)MODx.toolbar.ActionButtons.superclass.add.call(this,el);else{var id=el.id||Ext.id();if(Ext.applyIf(el,{xtype:"button",cls:el.icon?"x-btn-icon bmenu":"x-btn-text bmenu",scope:this,disabled:!!el.checkDirty,listeners:{},id}),el.button&&MODx.toolbar.ActionButtons.superclass.add.call(this,el),null===el.handler&&null===el.menu?el.handler=this.checkConfirm:el.confirm&&el.handler?el.handler=function(){Ext.Msg.confirm(_("warning"),el.confirm,(function(e){"yes"===e&&Ext.callback(el.handler,this)}),el.scope||this)}:el.handler||(el.handler=this.handleClick),el.javascript&&(el.listeners.click={fn:this.evalJS,scope:this}),"button"==el.xtype&&(el.listeners.render={fn:function(btn){el.checkDirty&&btn&&this.checkDirtyBtns.push(btn)},scope:this}),el.keys){el.keyMap=new Ext.KeyMap(Ext.get(document));for(var j=0;j{item&&item.validate&&!item.validate()&&(isv=!1)})),isv?(Ext.applyIf(o.params,{action:itm.process}),Ext.apply(f.baseParams,o.params),o.form.on("success",(function(r){if(o.form.clearDirty&&o.form.clearDirty(),MODx.msg.status({title:_("success"),message:r.result.message||_("save_successful"),dontHide:""!=r.result.message}),0!=itm.redirect){var redirect=this.redirect;"function"==typeof itm.redirect&&(redirect=itm.redirect),Ext.callback(redirect,this,[o,itm,r.result],1e3)}this.resetDirtyButtons(r.result)}),this),o.form.submit({headers:{"Powered-By":"MODx",modAuth:MODx.siteId}})):(o.form.fireEvent("failureSubmit"),Ext.Msg.alert(_("error"),_("correct_errors")))}else{var params=itm.params||{};Ext.applyIf(params,o.baseParams||{}),MODx.loadPage("?"+Ext.urlEncode(params))}return!1},resetDirtyButtons:function(r){for(var i=0;i0}},contextmenu:{fn:this._showContextMenu,scope:this}}),Ext.applyIf(config,{store:this.store,singleSelect:!0,overClass:"x-view-over",emptyText:'
'+_("file_err_filter")+"
",closeAction:"hide"}),MODx.DataView.superclass.constructor.call(this,config),this.config=config,this.cm=new Ext.menu.Menu},Ext.extend(MODx.DataView,Ext.DataView,{lookup:{},onLoadException:function(){this.getEl().update('
'+_("data_err_load")+"
")},_addContextMenuItem:function(items){for(var a=items,l=a.length,i=0;i ').compile()}),MODx.Button.superclass.constructor.call(this,config)},Ext.extend(MODx.Button,Ext.Button,{onRender:function(ct,position){this.template||(Ext.Button.buttonTemplate||(Ext.Button.buttonTemplate=new Ext.Template(' '),Ext.Button.buttonTemplate.compile()),this.template=Ext.Button.buttonTemplate);var btn,targs=this.getTemplateArgs();targs.iconCls=this.iconCls,btn=position?this.template.insertBefore(position,targs,!0):this.template.append(ct,targs,!0),this.btnEl=btn.child("i"),this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur}),this.initButtonEl(btn,this.btnEl),Ext.ButtonToggleMgr.register(this)}}),Ext.reg("modx-button",MODx.Button),MODx.SearchBar=function(config){config=config||{},Ext.applyIf(config,{renderTo:"modx-manager-search",listClass:"modx-manager-search-results",emptyText:_("search"),id:"modx-uberbar",maxHeight:this.getViewPortSize(),typeAhead:!0,listAlign:["tl-bl?",[-12,12]],triggerConfig:{tag:"button",id:"modx-uberbar-trigger",type:"submit","aria-label":"Go",cls:"x-form-trigger icon icon-large icon-search"},defaultAutoCreate:{tag:"input",type:"text",size:"24",tabindex:"0",hasfocus:!0,"aria-label":_("search")},hasfocus:!0,minChars:1,displayField:"name",valueField:"_action",width:380,itemSelector:".x-combo-list-item",tpl:new Ext.XTemplate('','
','','',"

{label:htmlEncode}

","
",'

{name:htmlEncode} – {description:htmlEncode}

',"
","
",{getClass:function(values){if(values.icon)return values.icon;if(values.class)switch(values.class){case"MODX\\Revolution\\modDocument":return"file";case"MODX\\Revolution\\modSymLink":return"files-o";case"MODX\\Revolution\\modWebLink":return"link";case"MODX\\Revolution\\modStaticResource":return"file-text-o"}switch(values.type){case"resources":return"file";case"chunks":return"th-large";case"templates":return"columns";case"snippets":return"code";case"tvs":return"list-alt";case"plugins":return"cogs";case"users":return"user";case"actions":return"mail-forward"}},getLabel:function(values){return values.label?values.label:_("search_resulttype_"+values.type)}}),store:new Ext.data.JsonStore({url:MODx.config.connector_url,baseParams:{action:"Search/Search"},root:"results",totalProperty:"total",fields:["name","_action","description","type","icon","label","class"],listeners:{beforeload:function(store,options){if(options.params._action)return!1}}}),listeners:{beforequery:{fn:function(){this.tpl.type=null}},focus:this.focusBar,blur:this.blurBar,afterrender:function(){document.getElementById("modx-manager-search").onclick=function(e){e.stopPropagation()}},scope:this}}),MODx.SearchBar.superclass.constructor.call(this,config),this.blur(),this.setKeyMap()},Ext.extend(MODx.SearchBar,Ext.form.ComboBox,{setKeyMap:function(){new Ext.KeyMap(document,{key:27,handler:function(){this.hideBar()},scope:this,stopEvent:!1})},initList:function(){if(!this.list){var cls="x-combo-list",listParent=Ext.getDom(this.getListParent()||Ext.getBody());this.list=new Ext.Layer({parentEl:listParent,shadow:this.shadow,cls:[cls,this.listClass].join(" "),constrain:!1,zindex:this.getZIndex(listParent)}),this.list.on("click",(function(e){e.stopPropagation()}));var lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setSize(lw,0),this.list.swallowEvent("mousewheel"),this.assetHeight=0,!1!==this.syncFont&&this.list.setStyle("font-size",this.el.getStyle("font-size")),this.title&&(this.header=this.list.createChild({cls:cls+"-hd",html:this.title}),this.assetHeight+=this.header.getHeight()),this.innerList=this.list.createChild({cls:cls+"-inner"}),this.mon(this.innerList,"mouseover",this.onViewOver,this),this.mon(this.innerList,"mousemove",this.onViewMove,this),this.innerList.setWidth(lw-this.list.getFrameWidth("lr")),this.pageSize&&(this.footer=this.list.createChild({cls:cls+"-ft"}),this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer}),this.assetHeight+=this.footer.getHeight()),this.tpl||(this.tpl='
{'+this.displayField+"}
"),this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:!0,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+cls+"-item",emptyText:this.listEmptyText,deferEmptyText:!1}),this.view.on("click",(function(view,index,node,vent){view.select(node),window.event||(window.event=vent),this.onViewClick()}),this),this.bindStore(this.store,!0),this.resizable&&(this.resizer=new Ext.Resizable(this.list,{pinned:!0,handles:"se"}),this.mon(this.resizer,"resize",(function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight,this.listWidth=w,this.innerList.setWidth(w-this.list.getFrameWidth("lr")),this.restrictHeight()}),this),this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px"))}},onTypeAhead:function(){},onSelect:function(record,index){var e=Ext.EventObject;e.stopPropagation(),e.preventDefault();var target="?a="+record.data._action;if(e.ctrlKey||e.metaKey||e.shiftKey)return window.open(target);MODx.loadPage(target)},hideBar:function(){},focusBar:function(){this.selectText()},blurBar:function(){},getViewPortSize:function(){var height=300;return void 0!==window.innerHeight&&(height=window.innerHeight),height-70}}),Ext.reg("modx-searchbar",MODx.SearchBar),Ext.namespace("MODx.panel"),MODx.Panel=function(config){config=config||{},Ext.applyIf(config,{cls:"modx-panel",title:""}),MODx.Panel.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.Panel,Ext.Panel),Ext.reg("modx-panel",MODx.Panel),MODx.FormPanel=function(config){config=config||{},Ext.applyIf(config,{autoHeight:!0,collapsible:!0,bodyStyle:"",layout:"anchor",border:!1,header:!1,method:"POST",cls:"modx-form",allowDrop:!0,errorReader:MODx.util.JSONReader,checkDirty:!0,useLoadingMask:!1,defaults:{collapsible:!1,autoHeight:!0,border:!1}}),config.items&&this.addChangeEvent(config.items),MODx.FormPanel.superclass.constructor.call(this,config),this.config=config,this.addEvents({setup:!0,fieldChange:!0,ready:!0,beforeSubmit:!0,success:!0,failure:!0,save:!0,actionNew:!0,actionContinue:!0,actionClose:!0,postReady:!0}),this.getForm().addEvents({success:!0,failure:!0}),this.dropTargets=[],this.on("ready",this.onReady),this.config.useLoadingMask&&this.on("render",(function(){this.mask=new Ext.LoadMask(this.getEl()),this.mask.show()})),this.fireEvent("setup",config)&&this.clearDirty(),this.focusFirstField()},Ext.extend(MODx.FormPanel,Ext.FormPanel,{isReady:!1,defaultValues:[],initialized:!1,isStatic:!1,errorHandlingTabs:[],errorHandlingIgnoreTabs:[],submit:function(o){var fm=this.getForm();return!(!fm.isValid()&&!o.bypassValidCheck)&&((o=o||{}).headers={"Powered-By":"MODx",modAuth:MODx.siteId},this.fireEvent("beforeSubmit",{form:fm,options:o,config:this.config})&&fm.submit({waitMsg:this.config.saveMsg||_("saving"),scope:this,headers:o.headers,clientValidation:!o.bypassValidCheck,failure:function(f,a){this.fireEvent("failure",{form:f,result:a.result,options:o,config:this.config})&&MODx.form.Handler.errorExt(a.result,f)},success:function(f,a){this.config.success&&Ext.callback(this.config.success,this.config.scope||this,[f,a]),this.fireEvent("success",{form:f,result:a.result,options:o,config:this.config}),this.clearDirty(),this.fireEvent("setup",this.config);var lastActiveEle=Ext.state.Manager.get("curFocus");if(lastActiveEle&&""!=lastActiveEle){Ext.state.Manager.clear("curFocus");var initFocus=document.getElementById(lastActiveEle);initFocus&&initFocus.focus()}}}),!0)},failure:function(o){if(this.warnUnsavedChanges=!0,-1!==this.getForm().baseParams.action.search(/\/create/i)){const btn=Ext.getCmp("modx-abtn-save");btn&&btn.enable()}this.fireEvent("failureSubmit")},focusFirstField:function(){if(this.getForm().items.getCount()>0){var fld=this.findFirstTextField();fld&&fld.focus(!1,200)}},findFirstTextField:function(i){i=i||0;var fld=this.getForm().items.itemAt(i);return!!fld&&((fld.isXType("combo")||fld.isXType("checkbox")||fld.isXType("radio")||fld.isXType("displayfield")||fld.isXType("statictextfield")||fld.isXType("hidden"))&&(i+=1,fld=this.findFirstTextField(i)),fld)},addChangeEvent:function(items){if(!items)return!1;"object"==typeof items&&items.items&&(items=items.items);for(var f=0;f{fieldKey=fieldKey.trim();const fieldCmpId=`modx-${formId}-${fieldKey}-file`,sourceKey=Ext.isEmpty(sharedSourceKey)?fieldKey:sharedSourceKey,sourceCmpId=`modx-${formId}-${sourceKey}-source`,fieldCmp=Ext.getCmp(fieldCmpId),sourceCmp=Ext.getCmp(sourceCmpId);fieldCmp&&sourceCmp&&(fieldCmp.config.source=sourceCmp.getValue())}))},destroy:function(){for(var i=0;i0&&keys.forEach((function(key){map.hasOwnProperty(key)&&"string"==typeof map[key].id?tabIds.push(map[key].id):"modx-panel-resource-tv"==key&&1==MODx.config.tvs_below_content&&tabIds.push(key)})),tabIds},showErroredTab:function(targetForms,tabsId){const mainTabs=Ext.getCmp(tabsId),searchTabs=this.getTabIdsFromKeys(mainTabs.items.map,targetForms);let component,mainTabName=null,mainTabIndex=null,erroredNode=null;mainTabs.items.length>mainTabs.initialConfig.items.length&&mainTabs.items.keys.forEach((function(key){mainTabs.items.map[key].hasOwnProperty("id")&&(this.errorHandlingIgnoreTabs.includes(mainTabs.items.map[key].id)||searchTabs.includes(mainTabs.items.map[key].id)||searchTabs.push(mainTabs.items.map[key].id))}),this);for(let i=0;i0&&erroredFlds[0].id},insertTagCopyUtility:function(cmp,elType){const helpTag=cmp.getEl().child(".example-replace-name"),elTag=cmp.getEl().child(".copy-this");let tagText,nameVal=cmp.previousSibling().getValue();helpTag&&(nameVal.length>0&&(helpTag.update(nameVal),tagText=elTag.dom.innerText),helpTag.on({click:function(){if(nameVal=cmp.previousSibling().getValue(),nameVal.length>0){tagText=elTag.dom.innerText;const tmp=document.createElement("textarea");if(tmp.value=tagText,document.body.appendChild(tmp),tmp.select(),document.execCommand("copy")){const feedback=document.createElement("span");feedback.className="element-panel feedback item-copied",feedback.textContent=_(elType+"_tag_copied"),elTag.insertSibling(feedback,"after"),setTimeout((function(){feedback.style.opacity=0,setTimeout((function(){feedback.remove()}),1200)}),10)}tmp.remove()}}}))},onChangeStaticSource:function(cmp,elType){const isStatic=Ext.getCmp(`modx-${elType}-static`).getValue(),staticFileField=Ext.getCmp(`modx-${elType}-static-file`),staticFile=staticFileField.getValue(),staticDir=staticFile.slice(0,staticFile.lastIndexOf("/")+1),staticFileFieldId=staticFileField.id,staticFileFieldContainer=Ext.getCmp(staticFileField.ownerCt.id),itemKey=staticFileFieldContainer.items.keys.indexOf(staticFileFieldId),previousSource=this.previousFileSource||0,currentSource=cmp.getValue(),currentRecord={static:isStatic,static_file:staticFile,source:currentSource,openTo:staticDir};let newStaticFile,changeFieldType=!1,updateFieldSource=!1;if("template"===elType)var newPreviewFileField,staticPreviewFileField=Ext.getCmp(`modx-${elType}-preview-file`),staticPreviewFile=staticPreviewFileField.getValue(),staticPreviewDir=staticPreviewFile.slice(0,staticPreviewFile.lastIndexOf("/")+1),staticPreviewFileFieldId=staticPreviewFileField.id,staticPreviewFileFieldContainer=Ext.getCmp(staticPreviewFileField.ownerCt.id),previewItemKey=staticPreviewFileFieldContainer.items.keys.indexOf(staticPreviewFileFieldId),currentPreviewRecord={static:isStatic,preview_file:staticPreviewFile,source:currentSource,openTo:staticPreviewDir};this.previousFileSource=currentSource,previousSource>0&&0==currentSource?(newStaticFile=this.getStaticFileField(elType,currentRecord,!1),"template"===elType&&(newPreviewFileField=this.getTemplatePreviewImageField(currentPreviewRecord,!1)),changeFieldType=!0):0==previousSource&¤tSource>0?(newStaticFile=this.getStaticFileField(elType,currentRecord),"template"===elType&&(newPreviewFileField=this.getTemplatePreviewImageField(currentPreviewRecord)),changeFieldType=!0,updateFieldSource=!0):updateFieldSource=!0,updateFieldSource&&(changeFieldType?(newStaticFile.source=currentSource,"template"===elType&&(newPreviewFileField.source=currentSource)):(staticFileField.config.source=currentSource,"template"===elType&&(staticPreviewFileField.config.source=currentSource))),changeFieldType&&(staticFileField.clearInvalid(),staticFileField.destroy(),staticFileFieldContainer.insert(itemKey,newStaticFile),"template"===elType&&(staticPreviewFileField.clearInvalid(),staticPreviewFileField.destroy(),staticPreviewFileFieldContainer.insert(previewItemKey,newPreviewFileField)),this.doLayout())},getStaticFileField:function(elType,record,loadBrowserField=!0){const sharedConfig={fieldLabel:_("static_file"),description:MODx.expandHelp?"":_("static_file_desc"),name:"static_file",id:`modx-${elType}-static-file`,maxLength:255,anchor:"100%",value:record.static_file||""};let finalConfig;return(0===record.source||!record.hasOwnProperty("source")&&Ext.isEmpty(MODx.config.default_media_source))&&(loadBrowserField=!1),finalConfig=loadBrowserField?Object.assign(sharedConfig,{xtype:"modx-combo-browser",browserEl:"modx-browser",triggerClass:"x-form-code-trigger",source:null!=record.source?record.source:MODx.config.default_media_source,openTo:record.openTo||""}):Object.assign(sharedConfig,{xtype:"textfield"}),record.static||(finalConfig.hidden=!0),finalConfig},getTemplatePreviewImageField:function(record,loadBrowserField=!0){const sharedConfig={fieldLabel:_("template_preview"),description:MODx.expandHelp?"":_("template_preview_description"),name:"preview_file",id:"modx-template-preview-file",allowedFileTypes:"jpg,jpeg,png,gif,bmp",maxLength:255,anchor:"100%",value:record.preview_file||""};let finalConfig;return(0===record.source||!record.hasOwnProperty("source")&&Ext.isEmpty(MODx.config.default_media_source))&&(loadBrowserField=!1),finalConfig=loadBrowserField?Object.assign(sharedConfig,{xtype:"modx-combo-browser",browserEl:"modx-browser",triggerClass:"x-form-image-trigger",source:null!=record.source?record.source:MODx.config.default_media_source,openTo:record.openTo||""}):Object.assign(sharedConfig,{xtype:"textfield"}),finalConfig},toggleFieldVisibility:function(ctrlId,containerId,fieldIds,ctrlValToShow,addSibling){const ctrlCmp=Ext.getCmp(ctrlId),containerCmp=Ext.getCmp(containerId);if(!ctrlCmp||void 0===ctrlCmp)return console.error(`toggleFieldVisibility: Could not get the control component with the id '${ctrlId}'`),!1;if(containerId&&(!containerCmp||void 0===containerCmp))return console.error(`toggleFieldVisibility: Could not get the container component with the id '${containerId}'`),!1;addSibling=!1!==addSibling,ctrlValToShow=!1!==ctrlValToShow;const showVal="combo-boolean"===ctrlCmp.xtype?ctrlCmp.getValue():ctrlCmp.checked,show=!1===ctrlValToShow?!showVal:showVal;show?(containerCmp.show(),containerCmp.doLayout()):containerCmp.hide(),fieldIds.forEach((field=>{const fieldCmp=Ext.getCmp(field),sibling=fieldCmp.nextSibling(),siblingIsHelp=sibling&&"label"===sibling.xtype;fieldCmp&&(show?(fieldCmp.show(),addSibling&&siblingIsHelp&&sibling.show()):(fieldCmp.hide(),addSibling&&siblingIsHelp&&sibling.hide()))}))},formatMainPanelTitle:function(formId,record,realtimeValue=null,returnBaseTitle=!1){let title="",baseTitle="";const modeCreate=!(record.hasOwnProperty("id")&&record.id>0),prefixSeparator=modeCreate&&!realtimeValue?"":": ",prefix=(modeCreate?_("create")+" ":_("edit")+" ")+_("resource"===formId?"document":formId)+prefixSeparator;if(!Ext.isEmpty(record)){const postfix=MODx.perm.tree_show_resource_ids&&!Ext.isEmpty(record.id)?` (${record.id})`:"";if("resource"===formId){const headerCmp=Ext.getCmp("modx-header-breadcrumbs");title=realtimeValue||record.pagetitle,baseTitle=this.encodeTitle(title,!1),title=void 0===title?prefix:this.encodeTitle(title)+postfix,headerCmp?headerCmp.updateHeader(title):Ext.getCmp("modx-resource-header").el.dom.innerText=title}else{const headerCmpId=`modx-${formId}-header`;realtimeValue?baseTitle=this.encodeTitle(realtimeValue):(title="template"===formId?record.templatename:record.name,baseTitle=this.encodeTitle(title)),title=void 0===title?prefix:prefix+baseTitle+postfix,Ext.getCmp(headerCmpId).getEl().update(title)}}if(returnBaseTitle)return baseTitle},encodeTitle:function(title,htmlEncode=!0){return title&&(title=htmlEncode?Ext.util.Format.htmlEncode(Ext.util.Format.stripTags(title)):Ext.util.Format.stripTags(title)),title},getElementProperties:function(properties){if(!Ext.isEmpty(properties)){const gridCmp=Ext.getCmp("modx-grid-element-properties");gridCmp&&(gridCmp.defaultProperties=properties,gridCmp.getStore().loadData(properties))}}}),Ext.reg("modx-formpanel",MODx.FormPanel),MODx.panel.Wizard=function(config){config=config||{},Ext.applyIf(config,{layout:"card",activeItem:0,resizable:!0,collapsible:!0,maximizable:!0,autoHeight:!0,width:750,firstPanel:"",lastPanel:"",defaults:{border:!1},modal:!0,txtFinish:_("finish"),txtNext:_("next"),txtBack:_("back"),bbar:[{id:"pi-btn-bck",itemId:"btn-back",text:config.txtBack||_("back"),handler:this.navHandler.createDelegate(this,[-1]),scope:this,disabled:!0},{id:"pi-btn-fwd",itemId:"btn-fwd",text:config.txtNext||_("next"),handler:this.navHandler.createDelegate(this,[1]),scope:this}]}),MODx.panel.Wizard.superclass.constructor.call(this,config),this.config=config,this.lastActiveItem=this.config.firstPanel,this._go()},Ext.extend(MODx.panel.Wizard,Ext.Panel,{windows:{},_go:function(){this.getBottomToolbar().items.item(1).setText(this.config.txtNext),this.proceed(this.config.firstPanel)},navHandler:function(dir){this.doLayout();var a=this.getLayout().activeItem;-1==dir?this.proceed(a.config.back||a.config.id):a.submit({scope:this,proceed:this.proceed})},proceed:function(id){this.doLayout(),this.getLayout().setActiveItem(id),id==this.config.firstPanel?(this.getBottomToolbar().items.item(0).setDisabled(!0),this.getBottomToolbar().items.item(1).setText(this.config.txtNext)):id==this.config.lastPanel?this.getBottomToolbar().items.item(1).setText(this.config.txtFinish):(this.getBottomToolbar().items.item(0).setDisabled(!1),this.getBottomToolbar().items.item(1).setText(this.config.txtNext))}}),Ext.reg("modx-panel-wizard",MODx.panel.Wizard),MODx.panel.WizardPanel=function(config){config=config||{},Ext.applyIf(config,{wizard:null,checkDirty:!1,bodyStyle:"padding: 3em 3em",hideMode:"offsets"}),MODx.panel.WizardPanel.superclass.constructor.call(this,config)},Ext.extend(MODx.panel.WizardPanel,MODx.FormPanel),Ext.reg("modx-wizard-panel",MODx.panel.WizardPanel),MODx.PanelSpacer={html:"
",border:!1},MODx.TemplatePanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,startingMarkup:'

{text}

',startingText:"Loading...",markup:null,plain:!0,border:!1}),MODx.TemplatePanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.TemplatePanel,Ext.Panel,{init:function(){this.defaultMarkup=new Ext.XTemplate(this.startingMarkup,{compiled:!0}),this.reset(),this.tpl=new Ext.XTemplate(this.markup,{compiled:!0})},reset:function(){this.body.hide(),this.defaultMarkup.overwrite(this.body,{text:this.startingText}),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout((function(){Ext.getCmp("modx-content").doLayout()}),500)},updateDetail:function(data){this.body.hide(),this.tpl.overwrite(this.body,data),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout((function(){Ext.getCmp("modx-content").doLayout()}),500)}}),Ext.reg("modx-template-panel",MODx.TemplatePanel),MODx.BreadcrumbsPanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,plain:!0,border:!1,desc:"This the description part of this panel",bdMarkup:"
    {text}

{text}

",root:{text:"Home",className:"first",root:!0,pnl:""},bodyCssClass:"breadcrumbs"}),MODx.BreadcrumbsPanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.BreadcrumbsPanel,Ext.Panel,{data:{trail:[]},init:function(){this.tpl=new Ext.XTemplate(this.bdMarkup,{compiled:!0}),this.reset(this.desc),this.body.on("click",this.onClick,this)},getResetText:function(srcInstance){if("object"!=typeof srcInstance||null==srcInstance)return srcInstance;var newInstance=srcInstance.constructor();for(var i in srcInstance)newInstance[i]=this.getResetText(srcInstance[i]);return newInstance.hasOwnProperty("pnl")&&delete newInstance.pnl,newInstance},updateDetail:function(data){(this.data=data,data.hasOwnProperty("trail"))&&data.trail.unshift(this.root);this._updatePanel(data)},getData:function(){return this.data},reset:function(msg){void 0===this.resetText&&(this.resetText=this.getResetText(this.root)),this.data={text:msg,trail:[this.resetText]},this._updatePanel(this.data)},onClick:function(e){for(var target=e.getTarget(),index=1,parent=target.parentElement;null!=(parent=parent.previousSibling);)index+=1;for(var remove=this.data.trail.length-index;remove>0;)this.data.trail.pop(),remove-=1;if(elm=target.className.split(" ")[0],""!=elm&&"controlBtn"==elm){var panel=target.className.split(" ")[1];if("install"==panel){var last=this.data.trail[this.data.trail.length-1];if(null!=last&&null!=last.rec)return this.data.trail.pop(),void Ext.getCmp("modx-package-grid").install(last.rec)}else Ext.getCmp(panel).activate()}},_updatePanel:function(data){this.body.hide(),this.tpl.overwrite(this.body,data),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout((function(){Ext.getCmp("modx-content").doLayout()}),500)}}),Ext.reg("modx-breadcrumbs-panel",MODx.BreadcrumbsPanel),Ext.override(Ext.TabPanel,{onStripMouseDown:function(e){if(0!==e.button)return;e.preventDefault();const t=this.findTargets(e);t.close?!1!==t.item.fireEvent("beforeclose",t.item)&&(t.item.fireEvent("close",t.item),this.remove(t.item)):t.item&&t.item!==this.activeTab&&(this.tabClicked=!0,this.setActiveTab(t.item))}}),MODx.Tabs=function(config={}){Ext.applyIf(config,{enableTabScroll:!0,layoutOnTabChange:!0,plain:!0,deferredRender:!0,hideMode:"offsets",defaults:{autoHeight:!0,hideMode:"offsets",border:!0,autoWidth:!0,bodyCssClass:"tab-panel-wrapper"},activeTab:0,tabClicked:!1,border:!1,autoScroll:!0,autoHeight:!0,cls:"modx-tabs"}),MODx.Tabs.superclass.constructor.call(this,config),this.config=config,this.on({afterrender:function(tabPanel){if(MODx.request&&Object.prototype.hasOwnProperty.call(MODx.request,"tab")){const tabId=parseInt(MODx.request.tab,10);"modx-leftbar-tabpanel"!==this.id&&this.setActiveTab(tabId)}tabPanel.on({beforetabchange:function(tabPanelCmp,newTab,currentTab){if(this.tabClicked&&newTab&¤tTab&&newTab.id!==currentTab.id){const resetVerticalTabPanelFilters="modx-vtabs"===currentTab.items?.items[0]?.xtype||"modx-vtabs"===currentTab.ownerCt?.xtype,changedBetweenVtabs="modx-vtabs"===newTab.ownerCt?.xtype&&"modx-vtabs"===currentTab.ownerCt?.xtype;if("modx-usergroup-permissions-panel"===newTab.itemId&&!this.stateful){const vTabPanel=newTab.items?.items[0];vTabPanel&&"modx-vtabs"===vTabPanel.xtype&&vTabPanel.setActiveTab(0)}this.clearFiltersBeforeChange(currentTab,resetVerticalTabPanelFilters,changedBetweenVtabs)}}})}})},Ext.extend(MODx.Tabs,Ext.TabPanel,{findGridObject:function(itemsSource){const grid=itemsSource.find((obj=>Object.entries(obj).find((([key,value])=>"xtype"===key&&value.includes("-grid-")))));if(grid)return grid;const nextItemsSource=itemsSource?.items;nextItemsSource&&this.findGridObject(nextItemsSource)},clearFiltersBeforeChange:function(tabObj,resetVtabFilters,changedVtabs){let itemsSource,gridObj=null;if(itemsSource=resetVtabFilters?changedVtabs?tabObj.items:tabObj.items.items[0].activeTab.items:tabObj.items,itemsSource.length>0&&(gridObj=this.findGridObject(itemsSource),!gridObj)){let customItemsSource=null;itemsSource?.map["modx-tree-panel-usergroup"]?customItemsSource=itemsSource.map["modx-tree-panel-usergroup"].items:itemsSource?.map["packages-breadcrumbs"]&&(customItemsSource=itemsSource.map["card-container"].items.map["modx-panel-packages"].items),customItemsSource&&(gridObj=this.findGridObject(customItemsSource))}if(gridObj){const toolbar=gridObj.getTopToolbar(),filterIds=[];toolbar&&toolbar.items.items.length>0&&toolbar.items.items.forEach((cmp=>{cmp.xtype&&(cmp.xtype.includes("combo")||"textfield"===cmp.xtype)&&cmp.itemId&&filterIds.push(cmp.itemId)})),filterIds.length>0&&gridObj.clearGridFilters(filterIds)}}}),Ext.reg("modx-tabs",MODx.Tabs),MODx.VerticalTabs=function(config={}){Ext.applyIf(config,{cls:"vertical-tabs-panel",headerCfg:{tag:"div",cls:"x-tab-panel-header vertical-tabs-header"},bwrapCfg:{tag:"div",cls:"x-tab-panel-bwrap vertical-tabs-bwrap"},defaults:{bodyCssClass:"vertical-tabs-body",autoScroll:!0,autoHeight:!0,autoWidth:!0,layout:"form"}}),MODx.VerticalTabs.superclass.constructor.call(this,config),this.config=config,this.on({afterrender:function(){if(MODx.request&&Object.prototype.hasOwnProperty.call(MODx.request,"vtab")){const tabId=parseInt(MODx.request.vtab,10);this.setActiveTab(tabId)}}})},Ext.extend(MODx.VerticalTabs,MODx.Tabs),Ext.reg("modx-vtabs",MODx.VerticalTabs),Ext.Window.prototype.floating={shadow:!1},Ext.override(Ext.Window,{animShow:function(){this.afterShow();var win=this;setTimeout((function(){win.el.hasClass("anim-ready")||(win.el.addClass("anim-ready"),setTimeout((function(){void 0!==win.mask&&(win.mask instanceof Ext.Element?win.mask.addClass("fade-in"):win.mask.el.addClass("fade-in")),win.el.addClass("zoom-in")}),250))}),300)},animHide:function(){this.afterHide()},onShow:function(){if(this.el.hasClass("x-window-dlg"))this.mask.addClass("fade-in"),this.el.applyStyles({opacity:1});else{this.addClass("anim-ready");var win=this;setTimeout((function(){void 0!==win.mask&&(win.mask instanceof Ext.Element?win.mask.addClass("fade-in"):win.mask.el.addClass("fade-in")),win.el.addClass("zoom-in")}),250)}},onHide:function(){if(this.el.hasClass("zoom-in")){this.el.removeClass("zoom-in"),void 0!==this.mask&&(this.mask instanceof Ext.Element?this.mask.removeClass("fade-in"):this.mask.el.removeClass("fade-in")),this.addClass("zoom-out");var win=this;setTimeout((function(){win.isDestroyed||(win.el.hide(),win.el.removeClass("zoom-out"),win.el.removeClass("anim-ready"))}),250)}else this.el.hasClass("x-window-dlg")&&(this.el.applyStyles({opacity:0}),void 0!==this.mask&&(this.mask instanceof Ext.Element?this.mask.removeClass("fade-in"):this.mask.el.removeClass("fade-in")))}}),MODx.Window=function(config){config=config||{},Ext.applyIf(config,{modal:!1,layout:"auto",closeAction:"hide",shadow:!0,resizable:!0,collapsible:!0,maximizable:!0,autoHeight:!1,autoScroll:!0,allowDrop:!0,width:400,constrain:!0,constrainHeader:!0,cls:"modx-window",buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){"close"!==config.closeAction?this.hide():this.close()}},{text:config.saveBtnText||_("save"),cls:"primary-button",scope:this,handler:this.submit}],record:{},keys:[{key:Ext.EventObject.ENTER,fn:function(keyCode,event){var elem=event.getTarget(),component=Ext.getCmp(elem.id);if(component instanceof Ext.form.TextArea)return component.append("\n");this.submit()},scope:this}]}),MODx.Window.superclass.constructor.call(this,config),this.options=config,this.config=config,this.addEvents({success:!0,failure:!0,beforeSubmit:!0,updateWindow:!1}),this._loadForm(),this.on("show",(function(){this.config.blankValues&&this.fp.getForm().reset(),this.config.allowDrop&&this.loadDropZones(),this.syncSize(),this.focusFirstField()}),this),this.on("afterrender",(function(){this.originalHeight=this.el.getHeight(),this.toolsHeight=this.originalHeight-this.body.getHeight()+50,this.resizeWindow()})),Ext.EventManager.onWindowResize(this.resizeWindow,this)},Ext.extend(MODx.Window,Ext.Window,{_loadForm:function(){if(this.checkIfLoaded(this.config.record||null))return!1;var r=this.config.record;if(this.config.fields)for(var l=this.config.fields.length,i=0;i0){var fld=this.findFirstTextField();fld&&fld.focus(!1,200)}},findFirstTextField:function(i){i=i||0;var fld=this.fp.getForm().items.itemAt(i);return!!fld&&((fld.isXType("combo")||fld.isXType("checkbox")||fld.isXType("radio")||fld.isXType("displayfield")||fld.isXType("statictextfield")||fld.isXType("hidden"))&&(i+=1,fld=this.findFirstTextField(i)),fld)},submit:function(close){close=!1!==close;var f=this.fp.getForm();f.isValid()&&this.fireEvent("beforeSubmit",f.getValues())&&f.submit({waitMsg:this.config.waitMsg||_("saving"),submitEmptyText:!1!==this.config.submitEmptyText,scope:this,failure:function(frm,a){this.fireEvent("failure",{f:frm,a})&&MODx.form.Handler.errorExt(a.result,frm),this.doLayout()},success:function(frm,a){this.config.success&&Ext.callback(this.config.success,this.config.scope||this,[frm,a]),this.fireEvent("success",{f:frm,a}),close&&("close"!==this.config.closeAction?this.hide():this.close()),this.doLayout()}})},createForm:function(config){return Ext.applyIf(this.config,{formFrame:!0,border:!1,bodyBorder:!1,autoHeight:!0}),config=config||{},Ext.applyIf(config,{labelAlign:this.config.labelAlign||"top",labelWidth:this.config.labelWidth||100,labelSeparator:this.config.labelSeparator||"",frame:this.config.formFrame,border:this.config.border,bodyBorder:this.config.bodyBorder,autoHeight:this.config.autoHeight,anchor:"100% 100%",errorReader:MODx.util.JSONReader,defaults:this.config.formDefaults||{msgTarget:this.config.msgTarget||"under"},url:this.config.url,baseParams:this.config.baseParams||{},fileUpload:this.config.fileUpload||!1}),new Ext.FormPanel(config)},renderForm:function(){this.fp.on("destroy",(function(){Ext.EventManager.removeResizeListener(this.resizeWindow,this)}),this),this.add(this.fp)},checkIfLoaded:function(r){return r=r||{},!(!this.fp||!this.fp.getForm())&&(this.fp.getForm().reset(),this.fp.getForm().setValues(r),!0)},setValues:function(r){if(null===r)return!1;this.fp.getForm().setValues(r)},reset:function(){this.fp.getForm().reset()},hideField:function(f){f.disable(),f.hide();var d=f.getEl().up(".x-form-item");d&&d.setDisplayed(!1)},showField:function(f){f.enable(),f.show();var d=f.getEl().up(".x-form-item");d&&d.setDisplayed(!0)},loadDropZones:function(){if(this._dzLoaded)return!1;this.fp.getForm().items.each((function(fld){fld.isFormField&&(fld.isXType("textfield")||fld.isXType("textarea"))&&!fld.isXType("combo")&&new MODx.load({xtype:"modx-treedrop",target:fld,targetEl:fld.getEl().dom})})),this._dzLoaded=!0},resizeWindow:function(){var viewHeight=Ext.getBody().getViewSize().height,el=this.fp.getForm().el;viewHeight
{name:htmlEncode}',"
{description:htmlEncode}
")}),MODx.combo.UserGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.UserGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-usergroup",MODx.combo.UserGroup),MODx.combo.UserGroupRole=function(config){config=config||{},Ext.applyIf(config,{name:"role",hiddenName:"role",displayField:"name",valueField:"id",fields:["name","id"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetList"}}),MODx.combo.UserGroupRole.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.UserGroupRole,MODx.combo.ComboBox),Ext.reg("modx-combo-usergrouprole",MODx.combo.UserGroupRole),MODx.combo.EventGroup=function(config){config=config||{},Ext.applyIf(config,{name:"group",hiddenName:"group",displayField:"name",valueField:"name",fields:["name"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/Event/GroupList"},tpl:new Ext.XTemplate('
{name:htmlEncode}',"
")}),MODx.combo.EventGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.EventGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-eventgroup",MODx.combo.EventGroup),MODx.combo.ResourceGroup=function(config){config=config||{},Ext.applyIf(config,{name:"resourcegroup",hiddenName:"resourcegroup",displayField:"name",valueField:"id",fields:["name","id"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/ResourceGroup/GetList"}}),MODx.combo.ResourceGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ResourceGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-resourcegroup",MODx.combo.ResourceGroup),MODx.combo.Context=function(config){config=config||{},Ext.applyIf(config,{name:"context",hiddenName:"context",displayField:"key",valueField:"key",fields:["key","name"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Context/GetList",exclude:config.exclude||""},tpl:new Ext.XTemplate('
{name:htmlEncode} ({key:htmlEncode})
')}),MODx.combo.Context.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Context,MODx.combo.ComboBox),Ext.reg("modx-combo-context",MODx.combo.Context),MODx.combo.Policy=function(config){config=config||{},Ext.applyIf(config,{name:"policy",hiddenName:"policy",displayField:"name",valueField:"id",fields:["id","name","permissions"],allowBlank:!1,editable:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Access/Policy/GetList"}}),MODx.combo.Policy.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Policy,MODx.combo.ComboBox),Ext.reg("modx-combo-policy",MODx.combo.Policy),MODx.combo.Template=function(config){config=config||{},Ext.applyIf(config,{url:MODx.config.connector_url,baseParams:{action:"Element/Template/GetList",combo:!0},fields:["id","templatename","description","category_name","preview","time"],name:"template",hiddenName:"template",displayField:"templatename",valueField:"id",pageSize:20,allowBlank:!0,editable:!0,typeAhead:!0,tpl:new Ext.XTemplate('
{this.label:htmlEncode}
{templatename:htmlEncode}
{description:htmlEncode()}
',{group:null,label:null,getGroup:function(label,time){var group=time+"_"+label;return group===this.group||Ext.isEmpty(group)?null:(this.group=group,this.label=label)}})}),MODx.combo.Template.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Template,MODx.combo.ComboBox),Ext.reg("modx-combo-template",MODx.combo.Template),MODx.combo.Category=function(config){config=config||{},Ext.applyIf(config,{name:"category",hiddenName:"category",displayField:"name",valueField:"id",fields:["id","category","parent","name"],forceSelection:!0,typeAhead:!1,allowBlank:!0,editable:!1,enableKeyEvents:!0,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Element/Category/GetList",showNone:!0,limit:0}}),MODx.combo.Category.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Category,MODx.combo.ComboBox,{_onblur:function(t,e){var v=this.getRawValue();this.setRawValue(v),this.setValue(v,!0)}}),Ext.reg("modx-combo-category",MODx.combo.Category),MODx.combo.Language=function(config){config=config||{},Ext.applyIf(config,{name:"language",hiddenName:"language",displayField:"name",valueField:"name",fields:["name"],typeAhead:!0,minChars:1,editable:!0,allowBlank:!0,url:MODx.config.connector_url,baseParams:{action:"System/Language/GetList"}}),MODx.combo.Language.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Language,MODx.combo.ComboBox),Ext.reg("modx-combo-language",MODx.combo.Language),MODx.combo.Charset=function(config){config=config||{},Ext.applyIf(config,{name:"charset",hiddenName:"charset",displayField:"text",valueField:"value",fields:["value","text"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,url:MODx.config.connector_url,baseParams:{action:"System/Charset/GetList"}}),MODx.combo.Charset.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Charset,MODx.combo.ComboBox),Ext.reg("modx-combo-charset",MODx.combo.Charset),MODx.combo.RTE=function(config){config=config||{},Ext.applyIf(config,{name:"rte",hiddenName:"rte",displayField:"value",valueField:"value",fields:["value"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,url:MODx.config.connector_url,baseParams:{action:"System/Rte/GetList"}}),MODx.combo.RTE.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.RTE,MODx.combo.ComboBox),Ext.reg("modx-combo-rte",MODx.combo.RTE),MODx.combo.Role=function(config){config=config||{},Ext.applyIf(config,{name:"role",hiddenName:"role",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetList",addNone:!0}}),MODx.combo.Role.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Role,MODx.combo.ComboBox),Ext.reg("modx-combo-role",MODx.combo.Role),MODx.combo.ContentType=function(config){config=config||{},Ext.applyIf(config,{name:"content_type",hiddenName:"content_type",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/ContentType/GetList"}}),MODx.combo.ContentType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ContentType,MODx.combo.ComboBox),Ext.reg("modx-combo-content-type",MODx.combo.ContentType),MODx.combo.ContentDisposition=function(config){config=config||{},Ext.applyIf(config,{store:new Ext.data.SimpleStore({fields:["d","v"],data:[[_("inline"),0],[_("attachment"),1]]}),name:"content_dispo",hiddenName:"content_dispo",displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,pageSize:20,selectOnFocus:!1,preventRender:!0}),MODx.combo.ContentDisposition.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ContentDisposition,MODx.combo.ComboBox),Ext.reg("modx-combo-content-disposition",MODx.combo.ContentDisposition),MODx.combo.ClassDerivatives=function(config){config=config||{},Ext.applyIf(config,{name:"class",hiddenName:"class",url:MODx.config.connector_url,baseParams:{action:"System/Derivatives/GetList",class:"MODX\\Revolution\\modResource"},displayField:"name",valueField:"id",fields:["id","name"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20}),MODx.combo.ClassDerivatives.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ClassDerivatives,MODx.combo.ComboBox),Ext.reg("modx-combo-class-derivatives",MODx.combo.ClassDerivatives),MODx.combo.Namespace=function(config){config=config||{},Ext.applyIf(config,{name:"namespace",hiddenName:"namespace",typeAhead:!0,minChars:1,queryParam:"query",editable:!0,allowBlank:!0,preselectValue:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Workspace/PackageNamespace/GetList"},fields:["name"],displayField:"name",valueField:"name"}),MODx.combo.Namespace.superclass.constructor.call(this,config),!1!==config.preselectValue&&(this.store.on("load",this.preselectFirstValue,this,{single:!0}),this.store.load())},Ext.extend(MODx.combo.Namespace,MODx.combo.ComboBox,{preselectFirstValue:function(r){var item;if(""==this.config.preselectValue)item=r.getAt(0);else{var found=r.find("name",this.config.preselectValue);item=-1!=found?r.getAt(found):r.getAt(0)}item&&(this.setValue(item.data.name),this.fireEvent("select",this,item))}}),Ext.reg("modx-combo-namespace",MODx.combo.Namespace),MODx.combo.Browser=function(config){config=config||{},Ext.applyIf(config,{width:400,triggerAction:"all",triggerClass:"x-form-file-trigger",source:config.source||MODx.config.default_media_source}),MODx.combo.Browser.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.combo.Browser,Ext.form.TriggerField,{browser:null,onTriggerClick:function(btn){return!this.disabled&&(this.browser=MODx.load({xtype:"modx-browser",closeAction:"close",id:Ext.id(),multiple:!0,source:this.config.source||MODx.config.default_media_source,hideFiles:this.config.hideFiles||!1,rootVisible:this.config.rootVisible||!1,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web",openTo:this.config.openTo||"",rootId:this.config.rootId||"/",hideSourceCombo:this.config.hideSourceCombo||!1,listeners:{select:{fn:function(data){this.setValue(data.relativeUrl),this.fireEvent("select",data)},scope:this}}}),this.browser.show(btn),!0)},onDestroy:function(){MODx.combo.Browser.superclass.onDestroy.call(this)}}),Ext.reg("modx-combo-browser",MODx.combo.Browser),MODx.combo.Country=function(config){config=config||{},Ext.applyIf(config,{name:"country",hiddenName:"country",url:MODx.config.connector_url,baseParams:{action:"System/Country/GetList",combo:!0},displayField:"country",valueField:"iso",fields:["iso","country","value"],editable:!0,typeAhead:!0}),MODx.combo.Country.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Country,MODx.combo.ComboBox),Ext.reg("modx-combo-country",MODx.combo.Country),MODx.combo.Gender=function(config){config=config||{},Ext.applyIf(config,{store:new Ext.data.SimpleStore({fields:["d","v"],data:[["",0],[_("user_male"),1],[_("user_female"),2],[_("user_other"),3]]}),displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,selectOnFocus:!1}),MODx.combo.Gender.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Gender,Ext.form.ComboBox),Ext.reg("modx-combo-gender",MODx.combo.Gender),MODx.combo.PropertySet=function(config){config=config||{},Ext.applyIf(config,{name:"propertyset",hiddenName:"propertyset",url:MODx.config.connector_url,baseParams:{action:"Element/PropertySet/GetList"},displayField:"name",valueField:"id",fields:["id","name"],editable:!1,pageSize:20,width:300}),MODx.combo.PropertySet.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.PropertySet,MODx.combo.ComboBox),Ext.reg("modx-combo-property-set",MODx.combo.PropertySet),MODx.ChangeParentField=function(config){config=config||{},Ext.applyIf(config,{triggerAction:"all",editable:!1,readOnly:!1,formpanel:"modx-panel-resource",parentcmp:"modx-resource-parent-hidden",contextcmp:"modx-resource-context-key",currentid:MODx.request.id}),MODx.ChangeParentField.superclass.constructor.call(this,config),this.config=config,this.on("click",this.onTriggerClick,this),this.addEvents({end:!0}),this.on("end",this.end,this)},Ext.extend(MODx.ChangeParentField,Ext.form.TriggerField,{oldValue:!1,oldDisplayValue:!1,end:function(p){var t=Ext.getCmp("modx-resource-tree");t&&(p.d=p.d||p.v,t.removeListener("click",this.handleChangeParent,this),t.on("click",t._handleClick,t),t.disableHref=!1,MODx.debug("Setting parent to: "+p.v),Ext.getCmp(this.config.parentcmp).setValue(p.v),this.setValue(p.d),this.oldValue=!1,"modx-template-picker-parent-id"!==this.config.parentcmp&&Ext.getCmp(this.config.formpanel).fireEvent("fieldChange"))},onTriggerClick:function(){if(this.disabled)return!1;if(this.oldValue)return this.fireEvent("end",{v:this.oldValue,d:this.oldDisplayValue}),!1;if(MODx.debug("onTriggerClick"),!Ext.getCmp("modx-resource-tree")){MODx.debug("no tree found, trying to activate");var tp=Ext.getCmp("modx-leftbar-tabpanel");return tp?(tp.on("tabchange",(function(tbp,tab){"modx-resource-tree-ct"==tab.id&&this.disableTreeClick()}),this),tp.activate("modx-resource-tree-ct")):MODx.debug("no tabpanel"),!1}this.disableTreeClick()},disableTreeClick:function(){return MODx.debug("Disabling tree click"),t=Ext.getCmp("modx-resource-tree"),t?(this.oldDisplayValue=this.getValue(),this.oldValue=Ext.getCmp(this.config.parentcmp).getValue(),this.setValue(_("resource_parent_select_node")),t.expand(),t.removeListener("click",t._handleClick),t.on("click",this.handleChangeParent,this),t.disableHref=!0,!0):(MODx.debug("No tree found in disableTreeClick!"),!1)},handleChangeParent:function(node,e){var t=Ext.getCmp("modx-resource-tree");if(!t)return!1;t.disableHref=!0;var id=node.id.split("_");if((id=id[1])==this.config.currentid)return MODx.msg.alert("",_("resource_err_own_parent")),!1;var ctxf=Ext.getCmp(this.config.contextcmp);if(ctxf){var ctxv=ctxf.getValue();node.attributes&&node.attributes.ctx!=ctxv&&ctxf.setValue(node.attributes.ctx)}return this.fireEvent("end",{v:"modContext"!=node.attributes.type?id:node.attributes.pk,d:Ext.util.Format.stripTags(node.text)}),e.preventDefault(),e.stopEvent(),!0}}),Ext.reg("modx-field-parent-change",MODx.ChangeParentField),MODx.combo.TVWidget=function(config){config=config||{},Ext.applyIf(config,{name:"widget",hiddenName:"widget",displayField:"name",valueField:"value",fields:["value","name"],editable:!1,url:MODx.config.connector_url,baseParams:{action:"Element/TemplateVar/Renders/GetOutputs"},value:"default"}),MODx.combo.TVWidget.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.TVWidget,MODx.combo.ComboBox),Ext.reg("modx-combo-tv-widget",MODx.combo.TVWidget),MODx.combo.TVInputType=function(config){config=config||{},Ext.applyIf(config,{name:"type",hiddenName:"type",displayField:"name",valueField:"value",editable:!1,fields:["value","name"],url:MODx.config.connector_url,baseParams:{action:"Element/TemplateVar/Renders/GetInputs"},value:"text"}),MODx.combo.TVInputType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.TVInputType,MODx.combo.ComboBox),Ext.reg("modx-combo-tv-input-type",MODx.combo.TVInputType),MODx.combo.Dashboard=function(config){config=config||{},Ext.applyIf(config,{name:"dashboard",hiddenName:"dashboard",displayField:"name",valueField:"id",fields:["id","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/Dashboard/GetList"},tpl:new Ext.XTemplate('','
','

{name:htmlEncode}

','

{description:htmlEncode}

',"
")}),MODx.combo.Dashboard.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Dashboard,MODx.combo.ComboBox),Ext.reg("modx-combo-dashboard",MODx.combo.Dashboard),MODx.combo.MediaSource=function(config){config=config||{},Ext.applyIf(config,{name:"source",hiddenName:"source",displayField:"name",valueField:"id",fields:["id","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Source/GetList"},tpl:new Ext.XTemplate('','
','

{name:htmlEncode}

','

{description:htmlEncode}

',"
")}),MODx.combo.MediaSource.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.MediaSource,MODx.combo.ComboBox),Ext.reg("modx-combo-source",MODx.combo.MediaSource),MODx.combo.MediaSourceType=function(config){config=config||{},Ext.applyIf(config,{name:"class_key",hiddenName:"class_key",displayField:"name",valueField:"class",fields:["id","class","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Source/Type/GetList"},tpl:new Ext.XTemplate('','
','

{name:htmlEncode}

','

{description:htmlEncode}

',"
")}),MODx.combo.MediaSourceType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.MediaSourceType,MODx.combo.ComboBox),Ext.reg("modx-combo-source-type",MODx.combo.MediaSourceType),MODx.combo.Authority=function(config){config=config||{},Ext.applyIf(config,{name:"authority",hiddenName:"authority",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetAuthorityList",addNone:!0}}),MODx.combo.Authority.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Authority,MODx.combo.ComboBox),Ext.reg("modx-combo-authority",MODx.combo.Authority),MODx.combo.ManagerTheme=function(config){config=config||{},Ext.applyIf(config,{name:"theme",hiddenName:"theme",displayField:"theme",valueField:"theme",fields:["theme"],url:MODx.config.connector_url,baseParams:{action:"Workspace/Theme/GetList"},typeAhead:!1,editable:!1}),MODx.combo.ManagerTheme.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ManagerTheme,MODx.combo.ComboBox),Ext.reg("modx-combo-manager-theme",MODx.combo.ManagerTheme),MODx.combo.SettingKey=function(config){config=config||{},Ext.applyIf(config,{name:"key",hiddenName:"key",displayField:"key",valueField:"key",fields:["key"],url:MODx.config.connector_url,baseParams:{action:"System/Settings/GetList"},triggerAction:"all",editable:!0,forceSelection:!1,pageSize:20}),MODx.combo.SettingKey.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.SettingKey,MODx.combo.ComboBox),Ext.reg("modx-combo-setting-key",MODx.combo.SettingKey),MODx.combo.Visibility=function(config){config=config||{},Ext.applyIf(config,{name:"visibility",hiddenName:"visibility",store:new Ext.data.SimpleStore({fields:["d","v"],data:[[_("file_folder_visibility_public"),"public"],[_("file_folder_visibility_private"),"private"]]}),displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,selectOnFocus:!1,preventRender:!0,forceSelection:!0,enableKeyEvents:!0}),MODx.combo.Visibility.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Visibility,MODx.combo.ComboBox),Ext.reg("modx-combo-visibility",MODx.combo.Visibility),MODx.combo.Permission=function(config){config=config||{},Ext.applyIf(config,{name:"permission",hiddenName:"permission",displayField:"name",valueField:"name",fields:["name","description"],editable:!0,typeAhead:!1,forceSelection:!1,enableKeyEvents:!0,autoSelect:!1,pageSize:20,tpl:new Ext.XTemplate('
{name:htmlEncode}','

{description:htmlEncode}

'),url:MODx.config.connector_url,baseParams:{action:"Security/Access/Permission/GetList"}}),MODx.combo.Permission.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Permission,MODx.combo.ComboBox),Ext.reg("modx-combo-permission",MODx.combo.Permission),Ext.namespace("MODx.grid"),MODx.grid.Grid=function(config){if(config=config||{},this.config=config,this._loadStore(),this._loadColumnModel(),Ext.applyIf(config,{store:this.store,cm:this.cm,sm:new Ext.grid.RowSelectionModel({singleSelect:!0}),paging:!!config.bbar,loadMask:!0,autoHeight:!0,collapsible:!0,stripeRows:!0,header:!1,cls:"modx-grid",preventRender:!0,preventSaveRefresh:!0,showPerPage:!0,stateful:!1,showActionsColumn:!0,disableContextMenuAction:!1,menuConfig:{defaultAlign:"tl-b?",enableScrolling:!1},viewConfig:{forceFit:!0,enableRowBody:!0,autoFill:!0,showPreview:!0,scrollOffset:0,emptyText:config.emptyText||_("ext_emptymsg")},groupingConfig:{enableGroupingMenu:!0}}),config.paging){var pgItms=config.showPerPage?[_("per_page")+":",{xtype:"textfield",cls:"x-tbar-page-size",value:config.pageSize||parseInt(MODx.config.default_per_page)||20,listeners:{change:{fn:this.onChangePerPage,scope:this},render:{fn:function(cmp){new Ext.KeyMap(cmp.getEl(),{key:Ext.EventObject.ENTER,fn:this.blur,scope:cmp})},scope:this}}}]:[];if(config.pagingItems)for(var i=0;i 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'};Ext.applyIf(config.groupingConfig,groupingConfig),Ext.applyIf(config,{view:new Ext.grid.GroupingView(config.groupingConfig)})}if(config.tbar)for(var ix=0;ix1)return!1;return!0};config.columns&&Array.isArray(config.columns)&&(void 0===config.actionsColumnWidth&&isPercentage(config.columns)&&(defaultActionsColumnWidth=.1),config.columns.push({id:"modx-actions",width:config.actionsColumnWidth||defaultActionsColumnWidth,menuDisabled:!0,renderer:this.actionsColumnRenderer.bind(this)})),config.cm&&config.cm.columns&&Array.isArray(config.cm.columns)&&(void 0===config.actionsColumnWidth&&isPercentage(config.cm.columns)&&(defaultActionsColumnWidth=.1),config.cm.columns.push({id:"modx-actions",width:config.actionsColumnWidth||defaultActionsColumnWidth,menuDisabled:!0,renderer:this.actionsColumnRenderer.bind(this)}))}MODx.grid.Grid.superclass.constructor.call(this,config),this._loadMenu(config),this.addEvents("beforeRemoveRow","afterRemoveRow","afterAutoSave"),this.autosave&&this.on("afterAutoSave",this.onAfterAutoSave,this),config.preventRender||this.render(),this.on({render:{fn:function(){const topToolbar=this.getTopToolbar();topToolbar&&topToolbar.initialConfig.cls&&"has-nested-filters"==topToolbar.initialConfig.cls&&(this.hasNestedFilters=!0)},scope:this},rowcontextmenu:{fn:this._showMenu,scope:this}}),config.autosave&&this.on("afteredit",this.saveRecord,this),config.paging&&config.grouping&&this.getBottomToolbar().bind(this.store),config.paging||config.hasOwnProperty("pageSize")||(config.pageSize=0),this.getStore().load({params:{start:config.pageStart||0,limit:config.hasOwnProperty("pageSize")?config.pageSize:parseInt(MODx.config.default_per_page)||20}}),this.getStore().on("exception",this.onStoreException,this),this.config=config,this.on("click",this.onClickHandler,this)},Ext.extend(MODx.grid.Grid,Ext.grid.EditorGridPanel,{windows:{},onStoreException:function(dataProxy,type,action,options,response){const responseStatusCode=response.status||"Unknown",responseStatusText=Ext.isEmpty(response.statusText)?"":`(${response.statusText})`;let output="",msg="";if(Ext.isEmpty(response.responseText))output=200!==responseStatusCode?`
${responseStatusCode} ${responseStatusText}
`:"";else try{const responseText=Ext.decode(response.responseText);responseText&&responseText.message&&(output=responseText.message)}catch(e){output=response.responseText}output?MODx.config.debug>0?(output=MODx.util.safeHtml(output,"
","class,colspan,rowspan"),msg=_("error_grid_get_content_toscreen",{message:`
${output}
`})):(msg=_("error_grid_get_content_tolog"),output=Ext.util.Format.stripTags(output).replaceAll(">",">").replaceAll("<","<"),console.error(output)):msg=_("error_grid_get_content_no_msg"),this.getView().emptyText=`
${msg}
`,this.getView().refresh(!1)},saveRecord:function(e){e.record.data.menu=null;var p=this.config.saveParams||{};Ext.apply(e.record.data,p);var d=Ext.util.JSON.encode(e.record.data),url=this.config.saveUrl||this.config.url||this.config.connector;MODx.Ajax.request({url,params:{action:this.config.save_action||"updateFromGrid",data:d},listeners:{success:{fn:function(r){this.config.save_callback&&Ext.callback(this.config.save_callback,this.config.scope||this,[r]),e.record.commit(),this.config.preventSaveRefresh||this.refresh(),this.fireEvent("afterAutoSave",r)},scope:this},failure:{fn:function(r){e.record.reject(),this.fireEvent("afterAutoSave",r)},scope:this}}})},onAfterAutoSave:function(response){if(!response.success&&""===response.message){var msg="";response.data.length&&Ext.each(response.data,(function(data,index,list){msg+=(""!=msg?"
":"")+data.msg}),this),Ext.isEmpty(msg)&&(msg=this.autosaveErrorMsg||_("error")),MODx.msg.alert(_("error"),msg)}},onChangePerPage:function(tf,nv){if(Ext.isEmpty(nv))return!1;nv=parseInt(nv),this.getBottomToolbar().pageSize=nv,this.store.load({params:{start:0,limit:nv}})},loadWindow:function(btn,e,win,or){var r=this.menu.record;this.windows[win.xtype]&&!win.force||(Ext.applyIf(win,{record:win.blankValues?{}:r,grid:this,listeners:{success:{fn:win.success||this.refresh,scope:win.scope||this}}}),or&&Ext.apply(win,or),this.windows[win.xtype]=Ext.ComponentMgr.create(win)),this.windows[win.xtype].setValues&&!0!==win.blankValues&&null!=r&&this.windows[win.xtype].setValues(r),this.windows[win.xtype].show(e.target)},confirm:function(type,text){var p={action:type},k=this.config.primaryKey||"id";p[k]=this.menu.record[k],MODx.msg.confirm({title:_(type),text:_(text)||_("confirm_remove"),url:this.config.url,params:p,listeners:{success:{fn:this.refresh,scope:this}}})},remove:function(text,action){if(this.destroying)return MODx.grid.Grid.superclass.remove.apply(this,arguments);var r=this.menu.record;text=text||"confirm_remove";var p=this.config.saveParams||{};Ext.apply(p,{action:action||"remove"});var k=this.config.primaryKey||"id";p[k]=r[k],this.fireEvent("beforeRemoveRow",r)&&MODx.msg.confirm({title:_("warning"),text:_(text,r),url:this.config.url,params:p,listeners:{success:{fn:function(){this.removeActiveRow(r)},scope:this}}})},removeActiveRow:function(r){if(this.fireEvent("afterRemoveRow",r)){var rx=this.getSelectionModel().getSelected();this.getStore().remove(rx)}},_loadMenu:function(){this.menu=new Ext.menu.Menu(this.config.menuConfig)},_showMenu:function(g,ri,e){if(e.stopEvent(),e.preventDefault(),this.menu.record=this.getStore().getAt(ri).data,this.getSelectionModel().isSelected(ri)||this.getSelectionModel().selectRow(ri),this.menu.removeAll(),this.getMenu){var m=this.getMenu(g,ri,e);m&&m.length&&m.length>0&&this.addContextMenuItem(m)}(!m||m.length<=0)&&this.menu.record.menu&&this.addContextMenuItem(this.menu.record.menu),this.menu.items.length>0&&this.menu.showAt(e.xy)},_loadStore:function(){this.config.grouping?this.store=new Ext.data.GroupingStore({url:this.config.url,baseParams:this.config.baseParams||{action:this.config.action||"getList"},reader:new Ext.data.JsonReader({totalProperty:"total",root:"results",fields:this.config.fields}),sortInfo:{field:this.config.sortBy||"id",direction:this.config.sortDir||"ASC"},remoteSort:this.config.remoteSort||!1,remoteGroup:this.config.remoteGroup||!1,groupField:this.config.groupBy||"name",storeId:this.config.storeId||Ext.id(),autoDestroy:!0,listeners:{load:function(){const cmp=Ext.getCmp("modx-content");cmp&&cmp.doLayout()}}}):this.store=new Ext.data.JsonStore({url:this.config.url,baseParams:this.config.baseParams||{action:this.config.action||"getList"},fields:this.config.fields,root:"results",totalProperty:"total",remoteSort:this.config.remoteSort||!1,storeId:this.config.storeId||Ext.id(),autoDestroy:!0,listeners:{load:function(){const cmp=Ext.getCmp("modx-content");cmp&&cmp.doLayout()}}})},_loadColumnModel:function(){if(this.config.columns){for(var c=this.config.columns,i=0;i
',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,store){var actions=this.getActions.apply(this,[record,rowIndex,colIndex,store]);return!0!==this.config.disableContextMenuAction&&actions.push({text:_("context_menu"),action:"contextMenu",icon:"gear"}),this._getActionsColumnTpl().apply({actions})},renderLink:function(v,attr){var el=new Ext.Element(document.createElement("a"));for(var i in el.addClass("x-grid-link"),el.dom.title=_("edit"),attr)el.dom[i]=attr[i];return el.dom.innerHTML=Ext.util.Format.htmlEncode(v),el.dom.outerHTML},getLinkTemplate:function(controllerPath,displayValueIndex,options={}){Ext.applyIf(options,{linkParams:[],linkClass:"x-grid-link",linkTitle:_("edit"),linkTarget:"_blank"});let params="";return controllerPath=0===controllerPath.indexOf("?a=")?controllerPath:`?a=${controllerPath}`,options.linkParams.length>0&&(params=[],options.linkParams.forEach((param=>{params.push(`${param.key}={${param.valueIndex}}`)})),params=`&${params.join("&")}`),new Ext.Template(`{${displayValueIndex}:htmlEncode}`,{compiled:!0})},getActions:function(record,rowIndex,colIndex,store){return[]},onClickHandler:function(e){var target=e.getTarget();if(target.classList.contains("x-grid-action")&&target.dataset.action){var actionHandler="action"+target.dataset.action.charAt(0).toUpperCase()+target.dataset.action.slice(1);if(this[actionHandler]&&"function"==typeof this[actionHandler]||this[actionHandler=target.dataset.action]&&"function"==typeof this[actionHandler]){var record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record);this.menu.record=record.data,this[actionHandler](record,recordIndex,e)}}},actionContextMenu:function(record,recordIndex,e){this._showMenu(this,recordIndex,e)},makeUrl:function(){if(Array.isArray(this.config.urlFilters)&&this.config.urlFilters.length>0){var s=this.getStore(),p={a:MODx.request.a};MODx.request.id&&(p.id=MODx.request.id),MODx.request.key&&(p.key=MODx.request.key);for(var i=0;i0&&window.history.replaceState(this.getStore().baseParams,document.title,this.makeUrl())},findTabPanel:function(referenceCmp){if(!referenceCmp.hasOwnProperty("ownerCt"))return console.error("MODx.grid.Grid::findTabPanel: This component must have an ownerCt to find its tab panel."),!1;const container=referenceCmp.ownerCt;return container.hasOwnProperty("xtype")&&container.xtype.includes("tabs")?container:this.findTabPanel(container)},hasNestedFilters:!1,currentLanguage:MODx.config.cultureKey||"en",applyRequestFilter:function(tabPanelIndex,requestKey="policy",tabPanelType="vtab",setEmptyToString=!1){const emptyVal=setEmptyToString?"":null;return Object.prototype.hasOwnProperty.call(MODx.request,tabPanelType)&&parseInt(MODx.request[tabPanelType],10)===tabPanelIndex&&Object.prototype.hasOwnProperty.call(MODx.request,requestKey)?MODx.util.url.getParamValue(requestKey):emptyVal},applyGridFilter:function(cmp,param="query"){const filterValue=cmp.getValue(),store=this.getStore(),urlParams={},tabPanel=this.findTabPanel(this),bottomToolbar=this.getBottomToolbar();let parentTabItems,activeParentTabIdx,hasParentTabPanel=!1;if(Ext.isEmpty(filterValue)?MODx.request[param]?urlParams[param]=MODx.request[param]:MODx.util.url.clearParam(cmp):urlParams[param]=filterValue,"ns"==param?store.baseParams.namespace=filterValue:store.baseParams[param]=filterValue,tabPanel){if("modx-vtabs"==tabPanel.xtype){const parentTabPanel=this.findTabPanel(tabPanel);if(parentTabPanel){const activeParentTab=parentTabPanel.getActiveTab();hasParentTabPanel=!0,parentTabItems=parentTabPanel.items,activeParentTabIdx=parentTabItems.indexOf(activeParentTab)}}const activeTab=tabPanel.getActiveTab(),tabItems=tabPanel.items,activeTabIdx=tabItems.indexOf(activeTab);hasParentTabPanel?(tabItems.length>1&&(urlParams.vtab=activeTabIdx),parentTabItems.length>1&&(urlParams.tab=activeParentTabIdx)):tabItems.length>1&&(urlParams.tab=activeTabIdx)}store.load(),MODx.util.url.setParams(urlParams),bottomToolbar&&bottomToolbar.changePage(1)},clearGridFilters:function(items){const store=this.getStore(),bottomToolbar=this.getBottomToolbar();(Array.isArray(items)?items:items.split(",")).forEach((item=>{const itemData=item.replace(/\s+/g,"").split(":"),itemId=itemData[0],itemDefaultVal=2==itemData.length?itemData[1]:null,cmp=this.getFilterComponent(itemId),param=MODx.util.url.getParamNameFromCmp(cmp),isCombo=cmp?.xtype?.includes("combo");if(isCombo?""===itemDefaultVal?cmp.setValue(null):cmp.setValue(itemDefaultVal):cmp.setValue(""),!Ext.isEmpty(itemDefaultVal)){Object.keys(cmp.baseParams).forEach((param=>{switch(param){case"namespace":cmp.baseParams[param]="core";break;case"topic":cmp.baseParams[param]="default"}}))}isCombo&&"local"!==cmp.mode&&cmp.getStore().load(),store.baseParams[param]=itemDefaultVal})),store.load(),MODx.util.url.clearAllParams(),bottomToolbar&&bottomToolbar.changePage(1)},hasNestedFilters:!1,getFilterComponent:function(filterId){const topToolbar=this.getTopToolbar(),cmp=this.hasNestedFilters&&"filter-query"!==filterId?topToolbar.find("itemId",`${filterId}-container`)[0].getComponent(filterId):topToolbar.getComponent(filterId);if(void 0!==cmp)return cmp;console.error(`getFilterComponent: The filter component with itemId '${filterId}' could not be retrieved.`)},refreshFilterOptions:function(filterData=[],clearDependentParams=!0){filterData.length>0&&(filterData.forEach((data=>{const filter=this.getFilterComponent(data.filterId);if(filter){const store=filter.getStore();if(filter.setValue(""),store){if(data.hasOwnProperty("dependentParams")){(Array.isArray(data.dependentParams)?data.dependentParams:data.dependentParams.split(",")).forEach((param=>{clearDependentParams&&store.baseParams.hasOwnProperty(param)&&(store.baseParams[param]="")}))}store.load()}}})),this.refresh())},updateDependentFilter:function(filterId,paramKey,paramValue,clearValue=!1){const filter=this.getFilterComponent(filterId),filterStore=filter?filter.getStore():null;filterStore&&"string"==typeof paramKey&&(clearValue&&filter.setValue(""),filterStore.baseParams[paramKey]=paramValue,filterStore.load())},getQueryFilterField:function(filterSpec="filter-query",implementation="default"){let queryValue="";const filterSpecs=filterSpec.split(":"),filterId=filterSpecs[0].trim();return queryValue=2===filterSpecs.length?filterSpecs[1]:MODx.request.query?MODx.util.url.decodeParamValue(MODx.request.query):"",{xtype:"textfield",itemId:filterId,emptyText:_("search"),value:queryValue,cls:"filter-query",listeners:{change:{fn:function(cmp,newValue,oldValue){this.applyGridFilter(cmp);const usergroupTree=Ext.getCmp("modx-tree-usergroup");if("user-group-users"===implementation&&usergroupTree){const selectedNode=usergroupTree.getSelectionModel().getSelectedNode(),groupId=MODx.util.tree.getGroupIdFromNode(selectedNode);MODx.util.url.setParams({group:groupId})}},scope:this},afterrender:{fn:function(cmp){MODx.request.query&&this.applyGridFilter(cmp)},scope:this},render:{fn:function(cmp){new Ext.KeyMap(cmp.getEl(),{key:Ext.EventObject.ENTER,fn:this.blur,scope:cmp})},scope:this}}}},getClearFiltersButton:function(filters="filter-query",dependentFilterResets=null){if(Ext.isEmpty(filters))return console.error("MODx.grid.Grid::getClearFiltersButton: There was a problem creating the Clear Filter button because the supplied filters list is invalid."),{};const config={text:_("filter_clear"),itemId:"filter-clear",listeners:{click:{fn:function(cmp){if(cmp.dependentResets){cmp.dependentResets.split(",").forEach((reset=>{const[filterId,filterDataIndex]=reset.split(":").map((item=>item.trim()));this.updateDependentFilter(filterId,filterDataIndex,"",!0)}))}this.clearGridFilters(filters)},scope:this},mouseout:{fn:function(evt){this.removeClass("x-btn-focus")}}}};return dependentFilterResets&&(config.dependentResets=dependentFilterResets),config}}),MODx.grid.LocalGrid=function(config){if((config=config||{}).grouping&&Ext.applyIf(config,{view:new Ext.grid.GroupingView({forceFit:!0,scrollOffset:0,hideGroupedColumn:!!config.hideGroupedColumn,groupTextTpl:config.groupTextTpl||'{text} ({[values.rs.length]} {[values.rs.length > 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'})}),config.tbar)for(var i=0;i
',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,store){var actions=this.getActions.apply(this,arguments);return!0!==this.config.disableContextMenuAction&&actions.push({text:_("context_menu"),action:"contextMenu",icon:"gear"}),this._getActionsColumnTpl().apply({actions})},renderLink:function(v,attr){var el=new Ext.Element(document.createElement("a"));for(var i in el.addClass("x-grid-link"),el.dom.title=_("edit"),attr)el.dom[i]=attr[i];return el.dom.innerHTML=Ext.util.Format.htmlEncode(v),el.dom.outerHTML},getActions:function(value,metaData,record,rowIndex,colIndex,store){return[]},onClick:function(e){var target=e.getTarget();if(target.classList.contains("x-grid-action")&&target.dataset.action){var actionHandler="action"+target.dataset.action.charAt(0).toUpperCase()+target.dataset.action.slice(1);if(this[actionHandler]&&"function"==typeof this[actionHandler]||this[actionHandler=target.dataset.action]&&"function"==typeof this[actionHandler]){var record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record);this.menu.record=record.data,this[actionHandler](record,recordIndex,e)}}},actionContextMenu:function(record,recordIndex,e){this._showMenu(this,recordIndex,e)}}),Ext.reg("grid-local",MODx.grid.LocalGrid),Ext.reg("modx-grid-local",MODx.grid.LocalGrid), /*! * Ext JS Library 3.4.0 * Copyright(c) 2006-2011 Sencha Inc. diff --git a/manager/assets/modext/widgets/core/modx.window.js b/manager/assets/modext/widgets/core/modx.window.js index 477c982c897..db98205d901 100644 --- a/manager/assets/modext/widgets/core/modx.window.js +++ b/manager/assets/modext/widgets/core/modx.window.js @@ -163,6 +163,7 @@ MODx.Window = function(config) { success: true ,failure: true ,beforeSubmit: true + ,updateWindow: false }); this._loadForm(); this.on('show',function() { diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.base.js b/manager/assets/modext/widgets/security/modx.grid.user.group.base.js new file mode 100644 index 00000000000..2ce9ea09af2 --- /dev/null +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.base.js @@ -0,0 +1,398 @@ +/** + * @class MODx.grid.UserGroupBase + * @extends MODx.grid.Grid + * @param {Object} config An object of configuration properties + + */ + +const ACL_TYPES_CONFIG = { + context: { + actions: { + remove: 'Security/Access/UserGroup/Context/Remove' + }, + policyGroups: 'Administrator,Context,Object' + }, + namespace: { + actions: { + remove: 'Security/Access/UserGroup/AccessNamespace/Remove' + }, + policyGroups: 'Namespace' + }, + source: { + actions: { + remove: 'Security/Access/UserGroup/Source/Remove' + }, + policyGroups: 'MediaSource' + }, + category: { + actions: { + remove: 'Security/Access/UserGroup/Category/Remove' + }, + policyGroups: 'Element,Object' + }, + resourcegroup: { + actions: { + remove: 'Security/Access/UserGroup/ResourceGroup/Remove' + }, + policyGroups: 'Resource,Object' + } +}; + +MODx.grid.UserGroupBase = function UserGroupBase(config = {}) { + Ext.applyIf(config, { + url: MODx.config.connector_url, + plugins: [this.rowExpander], + paging: true, + hideMode: 'offsets', + grouping: true, + groupBy: 'authority_name', + singleText: _('policy'), + pluralText: _('policies'), + sortBy: 'authority', + sortDir: 'ASC', + remoteSort: true + }); + + MODx.grid.UserGroupBase.superclass.constructor.call(this, config); + + this.addEvents('createAcl', 'updateAcl'); + + this.on({ + createAcl: function(response) { + if (response.a.response.status === 200) { + this.refreshFilterOptions(this.gridFilterData); + } + }, + updateAcl: function(response) { + if (response.a.response.status === 200) { + this.refreshFilterOptions(this.gridFilterData); + } + }, + afterRemoveRow: function() { + this.refreshFilterOptions(this.gridFilterData); + } + }); +}; +Ext.extend(MODx.grid.UserGroupBase, MODx.grid.Grid, { + windows: {}, + getColumns: function(columns) { + this.rowExpander = new Ext.grid.RowExpander({ + tpl: new Ext.XTemplate( + `
+
    + {[ values.permissions.split(',').map(item => '
  • ' + item.trim() + '
  • ').join('') ]} +
+
` + ), + lazyRender: false, + enableCaching: false + }); + return [this.rowExpander, ...columns]; + }, + getMenu: function() { + const record = this.getSelectionModel().getSelected(), + permissions = record.data.cls, + menu = [] + ; + if (this.getSelectionModel().getCount() > 1) { + // Currently not allowing bulk actions for this grid + } else { + if (permissions.indexOf('pedit') !== -1) { + menu.push({ + text: _(`access_${this.aclType}_update`), + handler: this.updateAcl + }); + } + if (permissions.indexOf('premove') !== -1) { + if (menu.length > 0) { + menu.push('-'); + } + menu.push({ + text: _(`access_${this.aclType}_remove`), + handler: this.remove.createDelegate(this, ['confirm_remove', ACL_TYPES_CONFIG[this.aclType].actions.remove]) + }); + } + } + + if (menu.length > 0) { + this.addContextMenuItem(menu); + } + }, + + /** + * @property {Function} createAcl Creates a new usergroup access entry for the given element (aclType, e.g., context) + * + * @param {Ext.Toolbar.Item} button Ext button component object (Add ...) + * @param {Ext.EventObject} e + * @returns {void} + */ + createAcl: function(button, e) { + const + record = { + principal: this.config.usergroup + }, + windowName = `create-${this.aclType}-acl` + ; + if (!this.windows[windowName]) { + this.windows[windowName] = MODx.load({ + xtype: `modx-window-user-group-${this.aclType}-create`, + record: record, + listeners: { + success: { + fn: response => { + this.refresh(); + this.fireEvent('createAcl', response); + }, + scope: this + } + } + }); + } + this.windows[windowName].setValues(record); + this.windows[windowName].show(e.target); + }, + + /** + * @property {Function} updateAcl Updates selected usergroup access entry for the given element (aclType, e.g., context) + * + * @param {Ext.Menu} menuItem Contextual menu item object (Edit ...) + * @param {Ext.EventObject} e + * @returns {void} + */ + updateAcl: function(menuItem, e) { + const + { record } = this.menu, + windowName = `update-${this.aclType}-acl` + ; + if (!this.windows[windowName]) { + this.windows[windowName] = MODx.load({ + xtype: `modx-window-user-group-${this.aclType}-update`, + record: record, + listeners: { + success: { + fn: response => { + this.refresh(); + this.fireEvent('updateAcl', response); + }, + scope: this + } + } + }); + this.windows[windowName].record = record; + } else { + this.windows[windowName].record = record; + this.windows[windowName].fireEvent('updateWindow', this.windows[windowName]); + } + this.windows[windowName].fp.items.items.filter(item => item.xtype.includes('modx-combo')).forEach((combo, i) => { + setTimeout(() => { + combo.getStore().load({ + callback: (records, options, success) => { + combo.setValue(record[combo.name]); + } + }); + }, i * 50); + }); + this.windows[windowName].fp.items.items.filter(item => item.xtype === 'hidden').forEach(field => { + field.setValue(record[field.name]); + }); + this.windows[windowName].show(e.target); + } +}); + +/** + * @class MODx.window.UserGroupAclBase + * @extends MODx.Window + * @param {Object} config An object of options + */ +MODx.window.UserGroupAclBase = function UserGroupAclBase(config = {}) { + Ext.applyIf(config, { + /* + Title lexicon key naming scheme: + access_{context|namespace|category|source|resourcegroup|...}_{create|update} + */ + title: _(`access_${this.aclType}_${config.saveMode}`), + url: MODx.config.connector_url, + forceLayout: true + }); + + MODx.window.UserGroupAclBase.superclass.constructor.call(this, config); + + this.on({ + show: { + fn: window => { + // Permissions list only relevant for update windows (during show event) + if (this.config.saveMode === 'update') { + this.getPermissionsList(window); + } + }, + scope: this + }, + updateWindow: { + fn: window => { + this.getPermissionsList(window); + } + } + }); +}; + +Ext.extend(MODx.window.UserGroupAclBase, MODx.Window, { + + /** + * @property {Function} getWindowFields Compile ACL type-specific and common fields into one array + * + * @param {Array} fields A set of Ext field config objects unique to this ACL type + * @param {Array} hiddenFields A set of Ext field config objects (for hidden fields) unique to this ACL type + * @returns {Array} Compiled array of configuration objects + */ + getWindowFields: function(fields = [], hiddenFields = []) { + const + contextDesc = _(`user_group_${this.aclType}_context_desc`), + authorityDesc = _(`user_group_${this.aclType}_authority_desc`), + policyDesc = _(`user_group_${this.aclType}_policy_desc`), + fieldsConfig = [ + { + xtype: 'hidden', + name: 'id' + }, { + xtype: 'hidden', + name: 'principal', + hiddenName: 'principal' + } + ]; + if (hiddenFields.length > 0) { + fieldsConfig.push(...hiddenFields); + } + if (['context', 'resourcegroup', 'category'].includes(this.aclType)) { + const + contextComboName = this.aclType === 'context' ? 'target' : 'context_key', + contextCombo = [{ + xtype: 'modx-combo-context', + fieldLabel: _('context'), + description: MODx.expandHelp ? '' : contextDesc, + id: `${this.idPrefix}-context`, + displayField: 'name', + name: contextComboName, + hiddenName: contextComboName, + editable: false, + allowBlank: false, + anchor: '100%' + }, { + xtype: 'box', + hidden: !MODx.expandHelp, + html: contextDesc, + cls: 'desc-under' + }] + ; + // Three of the ACL types use the context combo, but in different positions + if (this.aclType === 'context') { + fieldsConfig.push(...contextCombo); + } else { + fieldsConfig.push(...fields, ...contextCombo); + } + // Otherwise, push fields unique to the ACL type + } else if (fields.length > 0) { + fieldsConfig.push(...fields); + } + + // Add in all fields common to all ACL types + fieldsConfig.push({ + xtype: 'modx-combo-authority', + fieldLabel: _('minimum_role'), + description: MODx.expandHelp ? '' : authorityDesc, + id: `${this.idPrefix}-authority`, + name: 'authority', + displayField: 'name', + value: 0, + anchor: '100%' + }, { + xtype: 'box', + hidden: !MODx.expandHelp, + html: authorityDesc, + cls: 'desc-under' + }, { + xtype: 'modx-combo-policy', + fieldLabel: _('policy'), + description: MODx.expandHelp ? '' : policyDesc, + id: `${this.idPrefix}-policy`, + name: 'policy', + hiddenName: 'policy', + baseParams: { + action: 'Security/Access/Policy/GetList', + group: ACL_TYPES_CONFIG[this.aclType].policyGroups, + combo: true + }, + allowBlank: false, + anchor: '100%', + listeners: { + select: { + fn: function(cmp, record, index) { + this.getPermissionsList(this, record); + }, + scope: this + } + } + }, { + xtype: 'box', + hidden: !MODx.expandHelp, + html: policyDesc, + cls: 'desc-under' + }, { + xtype: 'container', + cls: 'info-list permissions hide-list', + itemId: `${this.idPrefix}-permissions`, + layout: 'form', + defaults: { + anchor: '100%', + xtype: 'box' + }, + items: [ + { + itemId: `${this.idPrefix}-permissions-list-label`, + cls: 'header', + autoEl: { + tag: 'strong' + } + }, + { + itemId: `${this.idPrefix}-permissions-list`, + cls: 'content' + } + ] + }); + return fieldsConfig; + }, + + /** + * @property {Function} getPermissionsList Parse the currently-selected/saved policy permissions and display them + * + * @param {Ext.Window} window The create or update window object that contains the permissions list being displayed/updated + * @param {Object} record An optional data object containing the current values with which to update the form and permissions list + * @returns {void} + */ + getPermissionsList: function(window, record = {}) { + const + permissions = record?.data?.permissions || window.record.permissions, + permissionsListContainer = window.fp?.getComponent(`${this.idPrefix}-permissions`), + permissionsListCmp = permissionsListContainer?.getComponent(`${this.idPrefix}-permissions-list`), + permissionsListLabelCmp = permissionsListContainer?.getComponent(`${this.idPrefix}-permissions-list-label`) + ; + if (permissions) { + const + permissionsArray = !Array.isArray(permissions) ? permissions.split(',') : permissions, + permissionsCount = permissionsArray.length, + permissionsList = permissionsArray.map(item => `
  • ${item.trim()}
  • `).join('') + ; + if (permissionsListLabelCmp) { + permissionsListLabelCmp.update(`${_('permissions_in_policy')} (${permissionsCount})`); + } + if (permissionsListCmp) { + permissionsListCmp.update(`
      ${permissionsList}
    `); + } + if (permissionsCount > 0) { + permissionsListContainer.removeClass('hide-list'); + } + } else { + permissionsListContainer.addClass('hide-list'); + } + } +}); diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.category.js b/manager/assets/modext/widgets/security/modx.grid.user.group.category.js index b0c8680fa7b..16da466e9a2 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.group.category.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.category.js @@ -1,25 +1,24 @@ /** * @class MODx.grid.UserGroupCategory - * @extends MODx.grid.Grid + * @extends MODx.grid.UserGroupBase * @param {Object} config An object of configuration properties * @xtype modx-grid-user-group-categories */ -MODx.grid.UserGroupCategory = function(config = {}) { - this.exp = new Ext.grid.RowExpander({ - tpl: new Ext.Template('

    {permissions}

    '), - lazyRender: false, - enableCaching: false - }); - Ext.applyIf(config,{ - id: 'modx-grid-user-group-categories' - ,url: MODx.config.connector_url - ,baseParams: { - action: 'Security/Access/UserGroup/Category/GetList' - ,usergroup: config.usergroup - ,category: MODx.request.category || null - ,policy: this.applyRequestFilter(2) - } - ,fields: [ +MODx.grid.UserGroupCategory = function UserGroupCategory(config = {}) { + this.gridFilterData = [ + { filterId: 'filter-policy-category', dependentParams: ['category'] }, + { filterId: 'filter-category', dependentParams: ['policy'] } + ]; + this.aclType = 'category'; + Ext.applyIf(config, { + id: 'modx-grid-user-group-categories', + baseParams: { + action: 'Security/Access/UserGroup/Category/GetList', + usergroup: config.usergroup, + category: MODx.request.category || null, + policy: this.applyRequestFilter(2) + }, + fields: [ 'id', 'target', 'name', @@ -31,71 +30,59 @@ MODx.grid.UserGroupCategory = function(config = {}) { 'context_key', 'permissions', 'cls' - ] - ,paging: true - ,hideMode: 'offsets' - ,grouping: true - ,groupBy: 'authority_name' - ,singleText: _('policy') - ,pluralText: _('policies') - ,sortBy: 'authority' - ,sortDir: 'ASC' - ,remoteSort: true - ,plugins: [this.exp] - ,columns: [ - this.exp, + ], + columns: this.getColumns([ { - header: _('category') - ,dataIndex: 'name' - ,width: 120 - ,sortable: true - },{ - header: _('minimum_role') - ,dataIndex: 'authority_name' - ,width: 100 - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/permission', 'authority_name') - },{ - header: _('policy') - ,dataIndex: 'policy_name' - ,width: 200 - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { - linkParams: [{ key: 'id', valueIndex: 'policy'}] + header: _('category'), + dataIndex: 'name', + width: 120, + sortable: true + }, { + header: _('minimum_role'), + dataIndex: 'authority_name', + width: 100, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/permission', 'authority_name') + }, { + header: _('policy'), + dataIndex: 'policy_name', + width: 200, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { + linkParams: [{ key: 'id', valueIndex: 'policy' }] }) - },{ - header: _('context') - ,dataIndex: 'context_key' - ,width: 150 - ,sortable: true - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('context/update', 'context_key', { - linkParams: [{ key: 'key', valueIndex: 'context_key'}] + }, { + header: _('context'), + dataIndex: 'context_key', + width: 150, + sortable: true, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('context/update', 'context_key', { + linkParams: [{ key: 'key', valueIndex: 'context_key' }] }) } - ] - ,tbar: [ + ]), + tbar: [ { - text: _('category_add') - ,cls: 'primary-button' - ,scope: this - ,handler: this.createAcl + text: _('category_add'), + cls: 'primary-button', + scope: this, + handler: this.createAcl }, '->', { - xtype: 'modx-combo-category' - ,itemId: 'filter-category' - ,emptyText: _('filter_by_category') - ,width: 200 - ,allowBlank: true - ,displayField: 'category' - ,value: MODx.request.category || null - ,baseParams: { + xtype: 'modx-combo-category', + itemId: 'filter-category', + emptyText: _('filter_by_category'), + width: 200, + allowBlank: true, + value: MODx.request.category || null, + baseParams: { action: 'Element/Category/GetList', isGridFilter: true, usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-policy-category', 'category', record.data.id); @@ -104,21 +91,21 @@ MODx.grid.UserGroupCategory = function(config = {}) { scope: this } } - },{ - xtype: 'modx-combo-policy' - ,itemId: 'filter-policy-category' - ,emptyText: _('filter_by_policy') - ,width: 180 - ,allowBlank: true - ,value: this.applyRequestFilter(2) - ,baseParams: { + }, { + xtype: 'modx-combo-policy', + itemId: 'filter-policy-category', + emptyText: _('filter_by_policy'), + width: 180, + allowBlank: true, + value: this.applyRequestFilter(2), + baseParams: { action: 'Security/Access/Policy/GetList', group: 'Element,Object', isGridFilter: true, targetGrid: 'MODx.grid.UserGroupCategory', usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-category', 'policy', record.data.id); @@ -134,249 +121,62 @@ MODx.grid.UserGroupCategory = function(config = {}) { ) ] }); - MODx.grid.UserGroupCategory.superclass.constructor.call(this,config); - this.addEvents('createAcl','updateAcl'); - - const gridFilterData = [ - { filterId: 'filter-policy-category', dependentParams: ['category'] }, - { filterId: 'filter-category', dependentParams: ['policy'] } - ]; - - this.on({ - createAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - updateAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - afterRemoveRow: function() { - this.refreshFilterOptions(gridFilterData); - } - }); + MODx.grid.UserGroupCategory.superclass.constructor.call(this, config); }; -Ext.extend(MODx.grid.UserGroupCategory,MODx.grid.Grid,{ - combos: {} - ,windows: {} - - ,getMenu: function() { - const record = this.getSelectionModel().getSelected(), - permissions = record.data.cls, - menu = [] - ; - - if (this.getSelectionModel().getCount() > 1) { - // Currently not allowing bulk actions for this grid - } else { - if (permissions.indexOf('pedit') != -1) { - menu.push({ - text: _('access_category_update'), - handler: this.updateAcl - }); - } - if (permissions.indexOf('premove') != -1) { - if (menu.length > 0) { - menu.push('-'); - } - menu.push({ - text: _('access_category_remove'), - handler: this.remove.createDelegate(this,['confirm_remove','Security/Access/UserGroup/Category/Remove']) - }); - } - } - - if (menu.length > 0) { - this.addContextMenuItem(menu); - } - } - - ,createAcl: function(itm,e) { - var r = { - principal: this.config.usergroup - }; - if (!this.windows.createAcl) { - this.windows.createAcl = MODx.load({ - xtype: 'modx-window-user-group-category-create' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('createAcl',r); - },scope:this} - } - }); - } - this.windows.createAcl.setValues(r); - this.windows.createAcl.show(e.target); - } - - ,updateAcl: function(itm,e) { - var r = this.menu.record; - - if (!this.windows.updateAcl) { - this.windows.updateAcl = MODx.load({ - xtype: 'modx-window-user-group-category-update' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('updateAcl',r); - },scope:this} - } - }); - } - this.windows.updateAcl.setValues(r); - this.windows.updateAcl.show(e.target); - } -}); -Ext.reg('modx-grid-user-group-category',MODx.grid.UserGroupCategory); +Ext.extend(MODx.grid.UserGroupCategory, MODx.grid.UserGroupBase); +Ext.reg('modx-grid-user-group-category', MODx.grid.UserGroupCategory); /** * @class MODx.window.CreateUGCat - * @extends MODx.Window - * @param {Object} config An object of options. + * @extends MODx.window.UserGroupAclBase + * @param {Object} config An object of options * @xtype modx-window-user-group-category-create */ -MODx.window.CreateUGCat = function(config = {}) { - this.ident = config.ident || 'cugcat'+Ext.id(); - Ext.applyIf(config,{ - title: _('category_add') - ,url: MODx.config.connector_url - ,action: 'Security/Access/UserGroup/Category/Create' - ,fields: [{ - xtype: 'hidden' - ,name: 'id' - },{ - xtype: 'hidden' - ,name: 'principal' - ,hiddenName: 'principal' - },{ - xtype: 'hidden' - ,name: 'principal_class' - ,value: 'MODX\\Revolution\\modUserGroup' - },{ - xtype: 'modx-combo-category' - ,fieldLabel: _('category') - ,description: MODx.expandHelp ? '' : _('user_group_category_category_desc') - ,id: 'modx-'+this.ident+'-category' - ,name: 'target' - ,hiddenName: 'target' - ,editable: false - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-category' - ,html: _('user_group_category_category_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-context' - ,fieldLabel: _('context') - ,description: MODx.expandHelp ? '' : _('user_group_category_context_desc') - ,id: 'modx-'+this.ident+'-context' - ,name: 'context_key' - ,hiddenName: 'context_key' - ,editable: false - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-context' - ,html: _('user_group_category_context_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-authority' - ,fieldLabel: _('minimum_role') - ,description: MODx.expandHelp ? '' : _('user_group_category_policy_desc') - ,id: 'modx-'+this.ident+'-authority' - ,name: 'authority' - ,value: 0 - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-authority' - ,html: _('user_group_category_authority_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-policy' - ,fieldLabel: _('policy') - ,description: MODx.expandHelp ? '' : _('user_group_category_policy_desc') - ,id: 'modx-'+this.ident+'-policy' - ,name: 'policy' - ,hiddenName: 'policy' - ,baseParams: { - action: 'Security/Access/Policy/GetList' - ,group: 'Element,Object' - ,combo: true - } - ,anchor: '100%' - ,listeners: { - 'select':{fn:this.onPolicySelect,scope:this} +MODx.window.CreateUGCat = function CreateUGCat(config = {}) { + this.aclType = 'category'; + this.windowId = config.ident || `${this.aclType}-access-create-${Ext.id()}`; + this.idPrefix = `modx-${this.windowId}`; + const categoryDesc = _('user_group_category_category_desc'); + Ext.applyIf(config, { + saveMode: 'create', + action: 'Security/Access/UserGroup/Category/Create', + fields: this.getWindowFields([ + { + xtype: 'modx-combo-category', + fieldLabel: _('category'), + description: MODx.expandHelp ? '' : categoryDesc, + id: `${this.idPrefix}-category`, + name: 'target', + hiddenName: 'target', + editable: false, + anchor: '100%' + }, { + xtype: 'box', + hidden: !MODx.expandHelp, + html: categoryDesc, + cls: 'desc-under' } - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-policy' - ,html: _('user_group_category_policy_desc') - ,cls: 'desc-under' - },{ - id: 'modx-'+this.ident+'-permissions-list-ct' - ,cls: 'modx-permissions-list' - ,defaults: {border: false} - ,autoHeight: true - ,hidden: true - ,anchor: '100%' - ,items: [{ - html: '

    '+_('permissions_in_policy')+'

    ' - ,id: 'modx-'+this.ident+'-permissions-list-header' - },{ - id: 'modx-'+this.ident+'-permissions-list' - ,cls: 'modx-permissions-list-textarea' - ,xtype: 'textarea' - ,name: 'permissions' - ,grow: false - ,anchor: '100%' - ,height: 100 - ,width: '97%' - ,readOnly: true - }] - }] + ]) }); - MODx.window.CreateUGCat.superclass.constructor.call(this,config); + MODx.window.CreateUGCat.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.CreateUGCat,MODx.Window,{ - onPolicySelect: function(cb,rec,idx) { - var s = cb.getStore(); - if (!s) return; - - var r = s.getAt(idx); - var lc = Ext.getCmp('modx-'+this.ident+'-permissions-list-ct'); - if (r && idx>0) { - lc.show(); - var pl = Ext.getCmp('modx-'+this.ident+'-permissions-list'); - var o = rec.data.permissions.join(', '); - pl.setValue(o); - } else { - lc.hide(); - } - this.doLayout(); - } -}); -Ext.reg('modx-window-user-group-category-create',MODx.window.CreateUGCat); +Ext.extend(MODx.window.CreateUGCat, MODx.window.UserGroupAclBase); +Ext.reg('modx-window-user-group-category-create', MODx.window.CreateUGCat); /** * @class MODx.window.UpdateUGCat * @extends MODx.window.CreateUGCat - * @param {Object} config An object of options. + * @param {Object} config An object of options * @xtype modx-window-user-group-category-update */ -MODx.window.UpdateUGCat = function(config = {}) { - this.ident = config.ident || 'updugcat'+Ext.id(); - Ext.applyIf(config,{ - title: _('access_category_update') - ,action: 'Security/Access/UserGroup/Category/Update' +MODx.window.UpdateUGCat = function UpdateUGCat(config = {}) { + this.aclType = 'category'; + this.windowId = config.ident || `${this.aclType}-access-update-${Ext.id()}`; + Ext.applyIf(config, { + saveMode: 'update', + action: 'Security/Access/UserGroup/Category/Update' }); - MODx.window.UpdateUGCat.superclass.constructor.call(this,config); + MODx.window.UpdateUGCat.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.UpdateUGCat,MODx.window.CreateUGCat); -Ext.reg('modx-window-user-group-category-update',MODx.window.UpdateUGCat); +Ext.extend(MODx.window.UpdateUGCat, MODx.window.CreateUGCat); +Ext.reg('modx-window-user-group-category-update', MODx.window.UpdateUGCat); diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.context.js b/manager/assets/modext/widgets/security/modx.grid.user.group.context.js index fe6398cf10d..bb61c2036a1 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.group.context.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.context.js @@ -1,26 +1,24 @@ /** * @class MODx.grid.UserGroupContext - * @extends MODx.grid.Grid + * @extends MODx.grid.UserGroupBase * @param {Object} config An object of configuration properties * @xtype modx-grid-user-group-contexts */ -MODx.grid.UserGroupContext = function(config) { - config = config || {}; - this.exp = new Ext.grid.RowExpander({ - tpl: new Ext.Template('

    {permissions}

    '), - lazyRender: false, - enableCaching: false - }); - Ext.applyIf(config,{ - id: 'modx-grid-user-group-contexts' - ,url: MODx.config.connector_url - ,baseParams: { - action: 'Security/Access/UserGroup/Context/GetList' - ,usergroup: config.usergroup - ,context: MODx.request.context || null - ,policy: this.applyRequestFilter(0) - } - ,fields: [ +MODx.grid.UserGroupContext = function UserGroupContext(config = {}) { + this.gridFilterData = [ + { filterId: 'filter-policy-context', dependentParams: ['context'] }, + { filterId: 'filter-context', dependentParams: ['policy'] } + ]; + this.aclType = 'context'; + Ext.applyIf(config, { + id: 'modx-grid-user-group-contexts', + baseParams: { + action: 'Security/Access/UserGroup/Context/GetList', + usergroup: config.usergroup, + context: MODx.request.context || null, + policy: this.applyRequestFilter(0) + }, + fields: [ 'id', 'target', 'principal', @@ -30,64 +28,56 @@ MODx.grid.UserGroupContext = function(config) { 'policy_name', 'permissions', 'cls' - ] - ,paging: true - ,hideMode: 'offsets' - ,grouping: true - ,groupBy: 'authority_name' - ,singleText: _('policy') - ,pluralText: _('policies') - ,sortBy: 'authority' - ,sortDir: 'ASC' - ,remoteSort: true - ,plugins: [this.exp] - ,columns: [ - this.exp, + ], + columns: this.getColumns([ { - header: _('context') - ,dataIndex: 'target' - ,sortable: true - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('context/update', 'target', { - linkParams: [{ key: 'key', valueIndex: 'target'}] + header: _('context'), + dataIndex: 'target', + width: 120, + sortable: true, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('context/update', 'target', { + linkParams: [{ key: 'key', valueIndex: 'target' }] }) - },{ - header: _('minimum_role') - ,dataIndex: 'authority_name' - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/permission', 'authority_name') - },{ - header: _('policy') - ,dataIndex: 'policy_name' - ,sortable: true - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { - linkParams: [{ key: 'id', valueIndex: 'policy'}] + }, { + header: _('minimum_role'), + dataIndex: 'authority_name', + width: 100, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/permission', 'authority_name') + }, { + header: _('policy'), + dataIndex: 'policy_name', + width: 200, + sortable: true, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { + linkParams: [{ key: 'id', valueIndex: 'policy' }] }) } - ] - ,tbar: [ + ]), + tbar: [ { - text: _('context_add') - ,cls: 'primary-button' - ,scope: this - ,handler: this.createAcl + text: _('context_add'), + cls: 'primary-button', + scope: this, + handler: this.createAcl }, '->', { - xtype: 'modx-combo-context' - ,itemId: 'filter-context' - ,emptyText: _('filter_by_context') - ,width: 180 - ,allowBlank: true - ,value: MODx.request.context || null - ,baseParams: { + xtype: 'modx-combo-context', + itemId: 'filter-context', + emptyText: _('filter_by_context'), + width: 180, + allowBlank: true, + value: MODx.request.context || null, + baseParams: { action: 'Context/GetList', isGridFilter: true, targetGrid: 'MODx.grid.UserGroupContext', usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-policy-context', 'context', record.data.key); @@ -96,21 +86,21 @@ MODx.grid.UserGroupContext = function(config) { scope: this } } - },{ - xtype: 'modx-combo-policy' - ,itemId: 'filter-policy-context' - ,emptyText: _('filter_by_policy') - ,width: 180 - ,allowBlank: true - ,value: this.applyRequestFilter(0) - ,baseParams: { + }, { + xtype: 'modx-combo-policy', + itemId: 'filter-policy-context', + emptyText: _('filter_by_policy'), + width: 180, + allowBlank: true, + value: this.applyRequestFilter(0), + baseParams: { action: 'Security/Access/Policy/GetList', group: 'Administrator,Context,Object', isGridFilter: true, targetGrid: 'MODx.grid.UserGroupContext', usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-context', 'policy', record.data.id); @@ -126,239 +116,46 @@ MODx.grid.UserGroupContext = function(config) { ) ] }); - MODx.grid.UserGroupContext.superclass.constructor.call(this,config); - this.addEvents('createAcl','updateAcl'); - - const gridFilterData = [ - { filterId: 'filter-policy-context', dependentParams: ['context'] }, - { filterId: 'filter-context', dependentParams: ['policy'] } - ]; - - this.on({ - createAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - updateAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - afterRemoveRow: function() { - this.refreshFilterOptions(gridFilterData); - } - }); -} -Ext.extend(MODx.grid.UserGroupContext,MODx.grid.Grid,{ - - combos: {} - ,windows: {} - - ,getMenu: function() { - const record = this.getSelectionModel().getSelected(), - permissions = record.data.cls, - menu = [] - ; - - if (this.getSelectionModel().getCount() > 1) { - // Currently not allowing bulk actions for this grid - } else { - if (permissions.indexOf('pedit') != -1) { - menu.push({ - text: _('access_context_update'), - handler: this.updateAcl - }); - } - if (permissions.indexOf('premove') != -1) { - if (menu.length > 0) { - menu.push('-'); - } - menu.push({ - text: _('access_context_remove'), - handler: this.remove.createDelegate(this,['confirm_remove','Security/Access/UserGroup/Context/Remove']) - }); - } - } - - if (menu.length > 0) { - this.addContextMenuItem(menu); - } - } - - ,createAcl: function(itm,e) { - var r = { - principal: this.config.usergroup - }; - if (!this.windows.createAcl) { - this.windows.createAcl = MODx.load({ - xtype: 'modx-window-user-group-context-create' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('createAcl',r); - },scope:this} - } - }); - } - this.windows.createAcl.setValues(r); - this.windows.createAcl.show(e.target); - } - - ,updateAcl: function(itm,e) { - var r = this.menu.record; - - if (!this.windows.updateAcl) { - this.windows.updateAcl = MODx.load({ - xtype: 'modx-window-user-group-context-update' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('updateAcl',r); - },scope:this} - } - }); - } - this.windows.updateAcl.setValues(r); - this.windows.updateAcl.show(e.target); - } - -}); -Ext.reg('modx-grid-user-group-context',MODx.grid.UserGroupContext); + MODx.grid.UserGroupContext.superclass.constructor.call(this, config); +}; +Ext.extend(MODx.grid.UserGroupContext, MODx.grid.UserGroupBase); +Ext.reg('modx-grid-user-group-context', MODx.grid.UserGroupContext); /** * @class MODx.window.CreateUGAccessContext - * @extends MODx.Window - * @param {Object} config An object of options. + * @extends MODx.window.UserGroupAclBase + * @param {Object} config An object of options * @xtype modx-window-user-group-context-create */ -MODx.window.CreateUGAccessContext = function(config) { - config = config || {}; - this.ident = config.ident || 'cugactx'+Ext.id(); - Ext.applyIf(config,{ - title: _('ugc_mutate') - ,url: MODx.config.connector_url - ,action: 'Security/Access/UserGroup/Context/Create' - ,fields: [{ - xtype: 'hidden' - ,name: 'id' - },{ - xtype: 'modx-combo-context' - ,fieldLabel: _('context') - ,description: MODx.expandHelp ? '' : _('user_group_context_context_desc') - ,id: 'modx-'+this.ident+'-context' - ,name: 'target' - ,hiddenName: 'target' - ,editable: false - ,allowBlank: false - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-context' - ,html: _('user_group_context_context_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-authority' - ,fieldLabel: _('minimum_role') - ,description: MODx.expandHelp ? '' : _('user_group_context_authority_desc') - ,id: 'modx-'+this.ident+'-authority' - ,name: 'authority' - ,value: 0 - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-authority' - ,html: _('user_group_context_authority_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-policy' - ,fieldLabel: _('policy') - ,description: MODx.expandHelp ? '' : _('user_group_context_policy_desc') - ,id: 'modx-'+this.ident+'-policy' - ,name: 'policy' - ,hiddenName: 'policy' - ,baseParams: { - action: 'Security/Access/Policy/GetList' - ,group: 'Administrator,Context,Object' - ,combo: true - } - ,allowBlank: false - ,anchor: '100%' - ,listeners: { - select: { - fn: this.onPolicySelect, - scope: this - } - } - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-policy' - ,html: _('user_group_context_policy_desc') - ,cls: 'desc-under' - },{ - xtype: 'hidden' - ,name: 'principal' - ,hiddenName: 'principal' - },{ - id: 'modx-'+this.ident+'-permissions-list-ct' - ,cls: 'modx-permissions-list' - ,defaults: {border: false} - ,autoHeight: true - ,hidden: true - ,anchor: '100%' - ,items: [{ - html: '

    '+_('permissions_in_policy')+'

    ' - ,id: 'modx-'+this.ident+'-permissions-list-header' - },{ - id: 'modx-'+this.ident+'-permissions-list' - ,cls: 'modx-permissions-list-textarea' - ,xtype: 'textarea' - ,grow: false - ,anchor: '100%' - ,height: 150 - ,width: '97%' - ,readOnly: true - }] - }] +MODx.window.CreateUGAccessContext = function CreateUGAccessContext(config = {}) { + this.aclType = 'context'; + this.windowId = config.ident || `${this.aclType}-access-create-${Ext.id()}`; + this.idPrefix = `modx-${this.windowId}`; + Ext.applyIf(config, { + saveMode: 'create', + action: 'Security/Access/UserGroup/Context/Create', + fields: this.getWindowFields() }); - MODx.window.CreateUGAccessContext.superclass.constructor.call(this,config); + MODx.window.CreateUGAccessContext.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.CreateUGAccessContext,MODx.Window,{ - onPolicySelect: function(cb,rec,idx) { - var s = cb.getStore(); - if (!s) return; - var r = s.getAt(idx); - var lc = Ext.getCmp('modx-'+this.ident+'-permissions-list-ct'); - if (r && idx>0) { - lc.show(); - var pl = Ext.getCmp('modx-'+this.ident+'-permissions-list'); - var o = rec.data.permissions.join(', '); - pl.setValue(o); - } else { - lc.hide(); - } - this.doLayout(); - } -}); -Ext.reg('modx-window-user-group-context-create',MODx.window.CreateUGAccessContext); +Ext.extend(MODx.window.CreateUGAccessContext, MODx.window.UserGroupAclBase); +Ext.reg('modx-window-user-group-context-create', MODx.window.CreateUGAccessContext); /** * @class MODx.window.UpdateUGAccessContext * @extends MODx.window.CreateUGAccessContext - * @param {Object} config An object of options. + * @param {Object} config An object of options * @xtype modx-window-user-group-context-update */ -MODx.window.UpdateUGAccessContext = function(config) { - config = config || {}; - this.ident = config.ident || 'uugactx'+Ext.id(); - Ext.applyIf(config,{ - title: _('ugc_mutate') - ,action: 'Security/Access/UserGroup/Context/Update' +MODx.window.UpdateUGAccessContext = function UpdateUGAccessContext(config = {}) { + this.aclType = 'context'; + this.windowId = config.ident || `${this.aclType}-access-update-${Ext.id()}`; + Ext.applyIf(config, { + saveMode: 'update', + action: 'Security/Access/UserGroup/Context/Update' }); - MODx.window.UpdateUGAccessContext.superclass.constructor.call(this,config); + MODx.window.UpdateUGAccessContext.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.UpdateUGAccessContext,MODx.window.CreateUGAccessContext); -Ext.reg('modx-window-user-group-context-update',MODx.window.UpdateUGAccessContext); +Ext.extend(MODx.window.UpdateUGAccessContext, MODx.window.CreateUGAccessContext); +Ext.reg('modx-window-user-group-context-update', MODx.window.UpdateUGAccessContext); diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.namespace.js b/manager/assets/modext/widgets/security/modx.grid.user.group.namespace.js index d2abd6d63da..aef92808e7d 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.group.namespace.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.namespace.js @@ -1,26 +1,24 @@ /** * @class MODx.grid.UserGroupNamespace - * @extends MODx.grid.Grid + * @extends MODx.grid.UserGroupBase * @param {Object} config An object of configuration properties * @xtype modx-grid-user-group-namespace */ -MODx.grid.UserGroupNamespace = function(config) { - config = config || {}; - this.exp = new Ext.grid.RowExpander({ - tpl: new Ext.Template('

    {permissions}

    '), - lazyRender: false, - enableCaching: false - }); - Ext.applyIf(config,{ - id: 'modx-grid-user-group-namespace' - ,url: MODx.config.connector_url - ,baseParams: { - action: 'Security/Access/UserGroup/AccessNamespace/GetList' - ,usergroup: config.usergroup - ,namespace: this.applyRequestFilter(4, 'ns') - ,policy: this.applyRequestFilter(4) - } - ,fields: [ +MODx.grid.UserGroupNamespace = function UserGroupNamespace(config = {}) { + this.gridFilterData = [ + { filterId: 'filter-policy-namespace', dependentParams: ['namespace'] }, + { filterId: 'filter-namespace', dependentParams: ['policy'] } + ]; + this.aclType = 'namespace'; + Ext.applyIf(config, { + id: 'modx-grid-user-group-namespace', + baseParams: { + action: 'Security/Access/UserGroup/AccessNamespace/GetList', + usergroup: config.usergroup, + namespace: this.applyRequestFilter(4, 'ns'), + policy: this.applyRequestFilter(4) + }, + fields: [ 'id', 'target', 'name', @@ -32,65 +30,54 @@ MODx.grid.UserGroupNamespace = function(config) { 'context_key', 'permissions', 'cls' - ] - ,paging: true - ,hideMode: 'offsets' - ,grouping: true - ,groupBy: 'authority_name' - ,singleText: _('policy') - ,pluralText: _('policies') - ,sortBy: 'authority' - ,sortDir: 'ASC' - ,remoteSort: true - ,plugins: [this.exp] - ,columns: [ - this.exp, + ], + columns: this.getColumns([ { - header: _('namespace') - ,dataIndex: 'name' - ,width: 120 - ,sortable: true - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('workspaces/namespace', 'name') - },{ - header: _('minimum_role') - ,dataIndex: 'authority_name' - ,width: 100 - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/permission', 'authority_name') - },{ - header: _('policy') - ,dataIndex: 'policy_name' - ,width: 200 - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { - linkParams: [{ key: 'id', valueIndex: 'policy'}] + header: _('namespace'), + dataIndex: 'name', + width: 120, + sortable: true, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('workspaces/namespace', 'name') + }, { + header: _('minimum_role'), + dataIndex: 'authority_name', + width: 100, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/permission', 'authority_name') + }, { + header: _('policy'), + dataIndex: 'policy_name', + width: 200, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { + linkParams: [{ key: 'id', valueIndex: 'policy' }] }) } - ] - ,tbar: [ + ]), + tbar: [ { - text: _('namespace_add') - ,cls: 'primary-button' - ,scope: this - ,handler: this.createAcl + text: _('namespace_add'), + cls: 'primary-button', + scope: this, + handler: this.createAcl }, '->', { - xtype: 'modx-combo-namespace' - ,itemId: 'filter-namespace' - ,emptyText: _('filter_by_namespace') - ,editable: false - ,width: 200 - ,allowBlank: true - ,value: this.applyRequestFilter(4, 'ns') - ,baseParams: { + xtype: 'modx-combo-namespace', + itemId: 'filter-namespace', + emptyText: _('filter_by_namespace'), + editable: false, + width: 200, + allowBlank: true, + value: this.applyRequestFilter(4, 'ns'), + baseParams: { action: 'Workspace/PackageNamespace/GetList', isGridFilter: true, targetGrid: 'MODx.grid.UserGroupNamespace', usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-policy-namespace', 'namespace', record.data.name); @@ -104,21 +91,21 @@ MODx.grid.UserGroupNamespace = function(config) { scope: this } } - },{ - xtype: 'modx-combo-policy' - ,itemId: 'filter-policy-namespace' - ,emptyText: _('filter_by_policy') - ,width: 180 - ,allowBlank: true - ,value: this.applyRequestFilter(4) - ,baseParams: { + }, { + xtype: 'modx-combo-policy', + itemId: 'filter-policy-namespace', + emptyText: _('filter_by_policy'), + width: 180, + allowBlank: true, + value: this.applyRequestFilter(4), + baseParams: { action: 'Security/Access/Policy/GetList', group: 'Namespace', isGridFilter: true, targetGrid: 'MODx.grid.UserGroupNamespace', usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-namespace', 'policy', record.data.id); @@ -134,241 +121,69 @@ MODx.grid.UserGroupNamespace = function(config) { ) ] }); - MODx.grid.UserGroupNamespace.superclass.constructor.call(this,config); - this.addEvents('createAcl','updateAcl'); - - const gridFilterData = [ - { filterId: 'filter-policy-namespace', dependentParams: ['namespace'] }, - { filterId: 'filter-namespace', dependentParams: ['policy'] } - ]; - - this.on({ - createAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - updateAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - afterRemoveRow: function() { - this.refreshFilterOptions(gridFilterData); - } - }); + MODx.grid.UserGroupNamespace.superclass.constructor.call(this, config); }; -Ext.extend(MODx.grid.UserGroupNamespace,MODx.grid.Grid,{ - combos: {} - ,windows: {} - - ,getMenu: function() { - const record = this.getSelectionModel().getSelected(), - permissions = record.data.cls, - menu = [] - ; - - if (this.getSelectionModel().getCount() > 1) { - // Currently not allowing bulk actions for this grid - } else { - if (permissions.indexOf('pedit') != -1) { - menu.push({ - text: _('access_namespace_update'), - handler: this.updateAcl - }); - } - if (permissions.indexOf('premove') != -1) { - if (menu.length > 0) { - menu.push('-'); - } - menu.push({ - text: _('access_namespace_remove'), - handler: this.remove.createDelegate(this,['confirm_remove','Security/Access/UserGroup/AccessNamespace/Remove']) - }); - } - } - - if (menu.length > 0) { - this.addContextMenuItem(menu); - } - } - - ,createAcl: function(itm,e) { - var r = { - principal: this.config.usergroup - }; - if (!this.windows.createAcl) { - this.windows.createAcl = MODx.load({ - xtype: 'modx-window-user-group-namespace-create' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('createAcl',r); - },scope:this} - } - }); - } - this.windows.createAcl.setValues(r); - this.windows.createAcl.show(e.target); - } - - ,updateAcl: function(itm,e) { - var r = this.menu.record; - - if (!this.windows.updateAcl) { - this.windows.updateAcl = MODx.load({ - xtype: 'modx-window-user-group-namespace-update' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('updateAcl',r); - },scope:this} - } - }); - } - this.windows.updateAcl.setValues(r); - this.windows.updateAcl.show(e.target); - } -}); -Ext.reg('modx-grid-user-group-namespace',MODx.grid.UserGroupNamespace); +Ext.extend(MODx.grid.UserGroupNamespace, MODx.grid.UserGroupBase); +Ext.reg('modx-grid-user-group-namespace', MODx.grid.UserGroupNamespace); /** * @class MODx.window.CreateUGNamespace - * @extends MODx.Window - * @param {Object} config An object of options. + * @extends MODx.window.UserGroupAclBase + * @param {Object} config An object of options * @xtype modx-window-user-group-namespace-create */ -MODx.window.CreateUGNamespace = function(config) { - config = config || {}; - this.ident = config.ident || 'cugnamespace'+Ext.id(); - Ext.applyIf(config,{ - title: _('namespace_add') - ,url: MODx.config.connector_url - ,action: 'Security/Access/UserGroup/AccessNamespace/Create' - ,fields: [{ - xtype: 'hidden' - ,name: 'id' - },{ - xtype: 'hidden' - ,name: 'principal' - ,hiddenName: 'principal' - },{ - xtype: 'hidden' - ,name: 'principal_class' - ,value: 'MODX\\Revolution\\modUserGroup' - },{ - xtype: 'hidden' - ,name: 'context_key' - ,hiddenName: 'context_key' - ,value: 'mgr' - },{ - xtype: 'modx-combo-namespace' - ,fieldLabel: _('namespace') - ,description: MODx.expandHelp ? '' : _('user_group_source_source_desc') - ,id: 'modx-'+this.ident+'-namespace' - ,name: 'target' - ,hiddenName: 'target' - ,editable: false - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-source' - ,html: _('user_group_source_source_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-authority' - ,fieldLabel: _('minimum_role') - ,description: MODx.expandHelp ? '' : _('user_group_source_authority_desc') - ,id: 'modx-'+this.ident+'-authority' - ,name: 'authority' - ,value: 0 - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-authority' - ,html: _('user_group_source_authority_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-policy' - ,fieldLabel: _('policy') - ,description: MODx.expandHelp ? '' : _('user_group_source_policy_desc') - ,id: 'modx-'+this.ident+'-policy' - ,name: 'policy' - ,hiddenName: 'policy' - ,baseParams: { - action: 'Security/Access/Policy/GetList' - ,group: 'Namespace' +MODx.window.CreateUGNamespace = function CreateUGNamespace(config = {}) { + this.aclType = 'namespace'; + this.windowId = config.ident || `${this.aclType}-access-create-${Ext.id()}`; + this.idPrefix = `modx-${this.windowId}`; + const namespaceDesc = _('user_group_namespace_namespace_desc'); + Ext.applyIf(config, { + saveMode: 'create', + action: 'Security/Access/UserGroup/AccessNamespace/Create', + fields: this.getWindowFields([ + { + xtype: 'modx-combo-namespace', + fieldLabel: _('namespace'), + description: MODx.expandHelp ? '' : namespaceDesc, + id: `${this.idPrefix}-namespace`, + name: 'target', + hiddenName: 'target', + editable: false, + anchor: '100%' + }, { + xtype: 'box', + hidden: !MODx.expandHelp, + html: namespaceDesc, + cls: 'desc-under' } - ,anchor: '100%' - ,listeners: { - 'select':{fn:this.onPolicySelect,scope:this} + ], [ + { + xtype: 'hidden', + name: 'context_key', + hiddenName: 'context_key', + value: 'mgr' } - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-policy' - ,html: _('user_group_source_policy_desc') - ,cls: 'desc-under' - },{ - id: 'modx-'+this.ident+'-permissions-list-ct' - ,cls: 'modx-permissions-list' - ,defaults: {border: false} - ,autoHeight: true - ,hidden: true - ,anchor: '100%' - ,items: [{ - html: '

    '+_('permissions_in_policy')+'

    ' - ,id: 'modx-'+this.ident+'-permissions-list-header' - },{ - id: 'modx-'+this.ident+'-permissions-list' - ,cls: 'modx-permissions-list-textarea' - ,xtype: 'textarea' - ,name: 'permissions' - ,grow: false - ,anchor: '100%' - ,height: 100 - ,width: '97%' - ,readOnly: true - }] - }] + ]) }); - MODx.window.CreateUGNamespace.superclass.constructor.call(this,config); + MODx.window.CreateUGNamespace.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.CreateUGNamespace,MODx.Window,{ - onPolicySelect: function(cb,rec,idx) { - var s = cb.getStore(); - if (!s) return; - - var r = s.getAt(idx); - var lc = Ext.getCmp('modx-'+this.ident+'-permissions-list-ct'); - if (r && idx>0) { - lc.show(); - var pl = Ext.getCmp('modx-'+this.ident+'-permissions-list'); - var o = rec.data.permissions.join(', '); - pl.setValue(o); - } else { - lc.hide(); - } - this.doLayout(); - } -}); -Ext.reg('modx-window-user-group-namespace-create',MODx.window.CreateUGNamespace); +Ext.extend(MODx.window.CreateUGNamespace, MODx.window.UserGroupAclBase); +Ext.reg('modx-window-user-group-namespace-create', MODx.window.CreateUGNamespace); /** * @class MODx.window.UpdateUGNamespace * @extends MODx.window.CreateUGNamespace - * @param {Object} config An object of options. + * @param {Object} config An object of options * @xtype modx-window-user-group-namespace-update */ -MODx.window.UpdateUGNamespace = function(config) { - config = config || {}; - this.ident = config.ident || 'updugsrc'+Ext.id(); - Ext.applyIf(config,{ - title: _('access_namespace_update') - ,action: 'Security/Access/UserGroup/AccessNamespace/Update' +MODx.window.UpdateUGNamespace = function UpdateUGNamespace(config = {}) { + this.aclType = 'namespace'; + this.windowId = config.ident || `${this.aclType}-access-update-${Ext.id()}`; + Ext.applyIf(config, { + saveMode: 'update', + action: 'Security/Access/UserGroup/AccessNamespace/Update' }); - MODx.window.UpdateUGNamespace.superclass.constructor.call(this,config); + MODx.window.UpdateUGNamespace.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.UpdateUGNamespace,MODx.window.CreateUGNamespace); -Ext.reg('modx-window-user-group-namespace-update',MODx.window.UpdateUGNamespace); +Ext.extend(MODx.window.UpdateUGNamespace, MODx.window.CreateUGNamespace); +Ext.reg('modx-window-user-group-namespace-update', MODx.window.UpdateUGNamespace); diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.resource.js b/manager/assets/modext/widgets/security/modx.grid.user.group.resource.js index 3802cba4ffa..f646caa198a 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.group.resource.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.resource.js @@ -1,103 +1,90 @@ /** * @class MODx.grid.UserGroupResourceGroup - * @extends MODx.grid.Grid + * @extends MODx.grid.UserGroupBase * @param {Object} config An object of configuration properties * @xtype modx-grid-user-group-resource-groups */ -MODx.grid.UserGroupResourceGroup = function(config) { - config = config || {}; - this.exp = new Ext.grid.RowExpander({ - tpl: new Ext.Template('

    {permissions}

    '), - lazyRender: false, - enableCaching: false - }); - Ext.applyIf(config,{ - id: 'modx-grid-user-group-resource-groups' - ,url: MODx.config.connector_url - ,baseParams: { - action: 'Security/Access/UserGroup/ResourceGroup/GetList' - ,usergroup: config.usergroup - ,resourceGroup: MODx.request.resourceGroup || null - ,policy: this.applyRequestFilter(1) - } - ,fields: [ +MODx.grid.UserGroupResourceGroup = function UserGroupResourceGroup(config = {}) { + this.gridFilterData = [ + { filterId: 'filter-policy-resourceGroup', dependentParams: ['resourceGroup'] }, + { filterId: 'filter-resourceGroup', dependentParams: ['policy'] } + ]; + this.aclType = 'resourcegroup'; + Ext.applyIf(config, { + id: 'modx-grid-user-group-resource-groups', + baseParams: { + action: 'Security/Access/UserGroup/ResourceGroup/GetList', + usergroup: config.usergroup, + resourceGroup: MODx.request.resourceGroup || null, + policy: this.applyRequestFilter(1) + }, + fields: [ 'id', - 'target', - 'name', - 'principal', - 'authority', - 'authority_name', - 'policy', - 'policy_name', - 'context_key', - 'permissions', - 'cls' - ] - ,paging: true - ,hideMode: 'offsets' - ,grouping: true - ,groupBy: 'authority_name' - ,singleText: _('policy') - ,pluralText: _('policies') - ,sortBy: 'authority' - ,sortDir: 'ASC' - ,remoteSort: true - ,plugins: [this.exp] - ,columns: [ - this.exp, + 'target', + 'name', + 'principal', + 'authority', + 'authority_name', + 'policy', + 'policy_name', + 'context_key', + 'permissions', + 'cls' + ], + columns: this.getColumns([ { - header: _('resource_group') - ,dataIndex: 'name' - ,width: 120 - ,sortable: true - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/resourcegroup', 'name') - },{ - header: _('minimum_role') - ,dataIndex: 'authority_name' - ,width: 100 - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/permission', 'authority_name') - },{ - header: _('policy') - ,dataIndex: 'policy_name' - ,width: 200 - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { - linkParams: [{ key: 'id', valueIndex: 'policy'}] + header: _('resource_group'), + dataIndex: 'name', + width: 120, + sortable: true, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/resourcegroup', 'name') + }, { + header: _('minimum_role'), + dataIndex: 'authority_name', + width: 100, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/permission', 'authority_name') + }, { + header: _('policy'), + dataIndex: 'policy_name', + width: 200, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { + linkParams: [{ key: 'id', valueIndex: 'policy' }] }) - },{ - header: _('context') - ,dataIndex: 'context_key' - ,width: 150 - ,sortable: true - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('context/update', 'context_key', { - linkParams: [{ key: 'key', valueIndex: 'context_key'}] + }, { + header: _('context'), + dataIndex: 'context_key', + width: 150, + sortable: true, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('context/update', 'context_key', { + linkParams: [{ key: 'key', valueIndex: 'context_key' }] }) } - ] - ,tbar: [ + ]), + tbar: [ { - text: _('resource_group_add') - ,cls:'primary-button' - ,scope: this - ,handler: this.createAcl + text: _('resource_group_add'), + cls: 'primary-button', + scope: this, + handler: this.createAcl }, '->', { - xtype: 'modx-combo-resourcegroup' - ,itemId: 'filter-resourceGroup' - ,emptyText: _('filter_by_resource_group') - ,width: 210 - ,allowBlank: true - ,value: MODx.request.resourceGroup || null - ,baseParams: { + xtype: 'modx-combo-resourcegroup', + itemId: 'filter-resourceGroup', + emptyText: _('filter_by_resource_group'), + width: 210, + allowBlank: true, + value: MODx.request.resourceGroup || null, + baseParams: { action: 'Security/ResourceGroup/GetList', isGridFilter: true, usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-policy-resourceGroup', 'resourceGroup', record.data.id); @@ -106,21 +93,21 @@ MODx.grid.UserGroupResourceGroup = function(config) { scope: this } } - },{ - xtype: 'modx-combo-policy' - ,itemId: 'filter-policy-resourceGroup' - ,emptyText: _('filter_by_policy') - ,width: 180 - ,allowBlank: true - ,value: this.applyRequestFilter(1) - ,baseParams: { + }, { + xtype: 'modx-combo-policy', + itemId: 'filter-policy-resourceGroup', + emptyText: _('filter_by_policy'), + width: 180, + allowBlank: true, + value: this.applyRequestFilter(1), + baseParams: { action: 'Security/Access/Policy/GetList', group: 'Resource,Object', isGridFilter: true, targetGrid: 'MODx.grid.UserGroupResourceGroup', usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-resourceGroup', 'policy', record.data.id); @@ -136,237 +123,48 @@ MODx.grid.UserGroupResourceGroup = function(config) { ) ] }); - MODx.grid.UserGroupResourceGroup.superclass.constructor.call(this,config); - this.addEvents('createAcl','updateAcl'); - - const gridFilterData = [ - { filterId: 'filter-policy-resourceGroup', dependentParams: ['resourceGroup'] }, - { filterId: 'filter-resourceGroup', dependentParams: ['policy'] } - ]; - - this.on({ - createAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - updateAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - afterRemoveRow: function() { - this.refreshFilterOptions(gridFilterData); - } - }); + MODx.grid.UserGroupResourceGroup.superclass.constructor.call(this, config); }; -Ext.extend(MODx.grid.UserGroupResourceGroup,MODx.grid.Grid,{ - - combos: {} - ,windows: {} - - ,getMenu: function() { - const record = this.getSelectionModel().getSelected(), - permissions = record.data.cls, - menu = [] - ; - - if (this.getSelectionModel().getCount() > 1) { - // Currently not allowing bulk actions for this grid - } else { - if (permissions.indexOf('pedit') != -1) { - menu.push({ - text: _('access_rgroup_update'), - handler: this.updateAcl - }); - } - if (permissions.indexOf('premove') != -1) { - if (menu.length > 0) { - menu.push('-'); - } - menu.push({ - text: _('access_rgroup_remove'), - handler: this.remove.createDelegate(this,['confirm_remove','Security/Access/UserGroup/ResourceGroup/Remove']) - }); - } - } - - if (menu.length > 0) { - this.addContextMenuItem(menu); - } - } - - ,createAcl: function(itm,e) { - var r = { - principal: this.config.usergroup - }; - if (!this.windows.createAcl) { - this.windows.createAcl = MODx.load({ - xtype: 'modx-window-user-group-resourcegroup-create' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('createAcl',r); - },scope:this} - } - }); - } - this.windows.createAcl.setValues(r); - this.windows.createAcl.show(e.target); - } - - ,updateAcl: function(itm,e) { - var r = this.menu.record; - - if (!this.windows.updateAcl) { - this.windows.updateAcl = MODx.load({ - xtype: 'modx-window-user-group-resourcegroup-update' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('updateAcl',r); - },scope:this} - } - }); - } - this.windows.updateAcl.setValues(r); - this.windows.updateAcl.show(e.target); - } - -}); -Ext.reg('modx-grid-user-group-resource-group',MODx.grid.UserGroupResourceGroup); +Ext.extend(MODx.grid.UserGroupResourceGroup, MODx.grid.UserGroupBase); +Ext.reg('modx-grid-user-group-resource-group', MODx.grid.UserGroupResourceGroup); /** * @class MODx.window.CreateUGRG - * @extends MODx.Window + * @extends MODx.window.UserGroupAclBase * @param {Object} config An object of options. * @xtype modx-window-user-group-resourcegroup-create */ -MODx.window.CreateUGRG = function(config) { - config = config || {}; - this.ident = config.ident || 'crgactx'+Ext.id(); - Ext.applyIf(config,{ - title: _('resource_group_add') - ,url: MODx.config.connector_url - ,action: 'Security/Access/UserGroup/ResourceGroup/Create' - ,fields: [{ - xtype: 'hidden' - ,name: 'id' - },{ - xtype: 'hidden' - ,name: 'principal' - ,hiddenName: 'principal' - },{ - xtype: 'hidden' - ,name: 'principal_class' - ,value: 'MODX\\Revolution\\modUserGroup' - },{ - xtype: 'modx-combo-resourcegroup' - ,fieldLabel: _('resource_group') - ,description: MODx.expandHelp ? '' : _('user_group_resourcegroup_resource_group_desc') - ,id: 'modx-'+this.ident+'-resource-group' - ,name: 'target' - ,hiddenName: 'target' - ,editable: false - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-resource-group' - ,html: _('user_group_resourcegroup_resource_group_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-context' - ,fieldLabel: _('context') - ,description: MODx.expandHelp ? '' : _('user_group_resourcegroup_context_desc') - ,id: 'modx-'+this.ident+'-context' - ,name: 'context_key' - ,hiddenName: 'context_key' - ,editable: false - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-context' - ,html: _('user_group_resourcegroup_context_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-authority' - ,fieldLabel: _('minimum_role') - ,description: MODx.expandHelp ? '' : _('user_group_resourcegroup_authority_desc') - ,id: 'modx-'+this.ident+'-authority' - ,name: 'authority' - ,value: 0 - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-authority' - ,html: _('user_group_resourcegroup_authority_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-policy' - ,fieldLabel: _('policy') - ,description: MODx.expandHelp ? '' : _('user_group_resourcegroup_policy_desc') - ,id: 'modx-'+this.ident+'-policy' - ,name: 'policy' - ,hiddenName: 'policy' - ,baseParams: { - action: 'Security/Access/Policy/GetList' - ,group: 'Resource,Object' - ,combo: true - } - ,anchor: '100%' - ,listeners: { - 'select':{fn:this.onPolicySelect,scope:this} +MODx.window.CreateUGRG = function CreateUGRG(config = {}) { + this.aclType = 'resourcegroup'; + this.windowId = config.ident || `${this.aclType}-access-create-${Ext.id()}`; + this.idPrefix = `modx-${this.windowId}`; + const resourceGroupDesc = _('user_group_resourcegroup_resource_group_desc'); + + Ext.applyIf(config, { + saveMode: 'create', + action: 'Security/Access/UserGroup/ResourceGroup/Create', + fields: this.getWindowFields([ + { + xtype: 'modx-combo-resourcegroup', + fieldLabel: _('resource_group'), + description: MODx.expandHelp ? '' : resourceGroupDesc, + id: `${this.idPrefix}-resource-group`, + name: 'target', + hiddenName: 'target', + editable: false, + anchor: '100%' + }, { + xtype: 'box', + hidden: !MODx.expandHelp, + html: resourceGroupDesc, + cls: 'desc-under' } - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-policy' - ,html: _('user_group_resourcegroup_policy_desc') - ,cls: 'desc-under' - },{ - id: 'modx-'+this.ident+'-permissions-list-ct' - ,cls: 'modx-permissions-list' - ,defaults: {border: false} - ,autoHeight: true - ,hidden: true - ,anchor: '100%' - ,items: [{ - html: '

    '+_('permissions_in_policy')+'

    ' - ,id: 'modx-'+this.ident+'-permissions-list-header' - },{ - id: 'modx-'+this.ident+'-permissions-list' - ,cls: 'modx-permissions-list-textarea' - ,xtype: 'textarea' - ,grow: false - ,anchor: '100%' - ,height: 100 - ,width: '97%' - ,readOnly: true - }] - }] + ]) }); - MODx.window.CreateUGRG.superclass.constructor.call(this,config); + MODx.window.CreateUGRG.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.CreateUGRG,MODx.Window,{ - onPolicySelect: function(cb,rec,idx) { - var s = cb.getStore(); - if (!s) return; - - var r = s.getAt(idx); - var lc = Ext.getCmp('modx-'+this.ident+'-permissions-list-ct'); - if (r && idx>0) { - lc.show(); - var pl = Ext.getCmp('modx-'+this.ident+'-permissions-list'); - var o = rec.data.permissions.join(', '); - pl.setValue(o); - } else { - lc.hide(); - } - this.doLayout(); - } -}); -Ext.reg('modx-window-user-group-resourcegroup-create',MODx.window.CreateUGRG); +Ext.extend(MODx.window.CreateUGRG, MODx.window.UserGroupAclBase); +Ext.reg('modx-window-user-group-resourcegroup-create', MODx.window.CreateUGRG); /** * @class MODx.window.UpdateUGRG @@ -374,14 +172,14 @@ Ext.reg('modx-window-user-group-resourcegroup-create',MODx.window.CreateUGRG); * @param {Object} config An object of options. * @xtype modx-window-user-group-resourcegroup-update */ -MODx.window.UpdateUGRG = function(config) { - config = config || {}; - this.ident = config.ident || 'ugrgactx'+Ext.id(); - Ext.applyIf(config,{ - title: _('access_rgroup_update') - ,action: 'Security/Access/UserGroup/ResourceGroup/Update' +MODx.window.UpdateUGRG = function UpdateUGRG(config = {}) { + this.aclType = 'resourcegroup'; + this.windowId = config.ident || `${this.aclType}-access-update-${Ext.id()}`; + Ext.applyIf(config, { + saveMode: 'update', + action: 'Security/Access/UserGroup/ResourceGroup/Update' }); - MODx.window.UpdateUGRG.superclass.constructor.call(this,config); + MODx.window.UpdateUGRG.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.UpdateUGRG,MODx.window.CreateUGRG); -Ext.reg('modx-window-user-group-resourcegroup-update',MODx.window.UpdateUGRG); +Ext.extend(MODx.window.UpdateUGRG, MODx.window.CreateUGRG); +Ext.reg('modx-window-user-group-resourcegroup-update', MODx.window.UpdateUGRG); diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.source.js b/manager/assets/modext/widgets/security/modx.grid.user.group.source.js index 75e4a4b91a9..c26983488e7 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.group.source.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.source.js @@ -1,96 +1,83 @@ /** * @class MODx.grid.UserGroupSource - * @extends MODx.grid.Grid + * @extends MODx.grid.UserGroupBase * @param {Object} config An object of configuration properties * @xtype modx-grid-user-group-sources */ -MODx.grid.UserGroupSource = function(config) { - config = config || {}; - this.exp = new Ext.grid.RowExpander({ - tpl: new Ext.Template('

    {permissions}

    '), - lazyRender: false, - enableCaching: false - }); - Ext.applyIf(config,{ - id: 'modx-grid-user-group-sources' - ,url: MODx.config.connector_url - ,baseParams: { - action: 'Security/Access/UserGroup/Source/GetList' - ,usergroup: config.usergroup - ,source: MODx.request.source || null - ,policy: this.applyRequestFilter(3) - } - ,fields: [ +MODx.grid.UserGroupSource = function UserGroupSource(config = {}) { + this.gridFilterData = [ + { filterId: 'filter-policy-source', dependentParams: ['source'] }, + { filterId: 'filter-source', dependentParams: ['policy'] } + ]; + this.aclType = 'source'; + Ext.applyIf(config, { + id: 'modx-grid-user-group-sources', + baseParams: { + action: 'Security/Access/UserGroup/Source/GetList', + usergroup: config.usergroup, + source: MODx.request.source || null, + policy: this.applyRequestFilter(3) + }, + fields: [ 'id', - 'target', - 'name', - 'principal', - 'authority', - 'authority_name', - 'policy', - 'policy_name', - 'context_key', - 'permissions', - 'cls' - ] - ,paging: true - ,hideMode: 'offsets' - ,grouping: true - ,groupBy: 'authority_name' - ,singleText: _('policy') - ,pluralText: _('policies') - ,sortBy: 'authority' - ,sortDir: 'ASC' - ,remoteSort: true - ,plugins: [this.exp] - ,columns: [ - this.exp, + 'target', + 'name', + 'principal', + 'authority', + 'authority_name', + 'policy', + 'policy_name', + 'context_key', + 'permissions', + 'cls' + ], + columns: this.getColumns([ { - header: _('source') - ,dataIndex: 'name' - ,width: 120 - ,sortable: true - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('source/update', 'name', { - linkParams: [{ key: 'id', valueIndex: 'target'}] + header: _('source'), + dataIndex: 'name', + width: 120, + sortable: true, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('source/update', 'name', { + linkParams: [{ key: 'id', valueIndex: 'target' }] }) - },{ - header: _('minimum_role') - ,dataIndex: 'authority_name' - ,width: 100 - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/permission', 'authority_name') - },{ - header: _('policy') - ,dataIndex: 'policy_name' - ,width: 200 - ,xtype: 'templatecolumn' - ,tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { - linkParams: [{ key: 'id', valueIndex: 'policy'}] + }, { + header: _('minimum_role'), + dataIndex: 'authority_name', + width: 100, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/permission', 'authority_name') + }, { + header: _('policy'), + dataIndex: 'policy_name', + width: 200, + xtype: 'templatecolumn', + tpl: this.getLinkTemplate('security/access/policy/update', 'policy_name', { + linkParams: [{ key: 'id', valueIndex: 'policy' }] }) } - ] - ,tbar: [ + ]), + tbar: [ { - text: _('source_add') - ,cls:'primary-button' - ,scope: this - ,handler: this.createAcl + text: _('source_add'), + cls: 'primary-button', + scope: this, + handler: this.createAcl }, '->', { - xtype: 'modx-combo-source' - ,itemId: 'filter-source' - ,emptyText: _('filter_by_source') - ,width: 200 - ,allowBlank: true - ,value: MODx.request.source || null - ,baseParams: { + xtype: 'modx-combo-source', + itemId: 'filter-source', + emptyText: _('filter_by_source'), + width: 200, + allowBlank: true, + value: MODx.request.source || null, + baseParams: { action: 'Source/GetList', isGridFilter: true, usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-policy-source', 'source', record.data.id); @@ -99,21 +86,21 @@ MODx.grid.UserGroupSource = function(config) { scope: this } } - },{ - xtype: 'modx-combo-policy' - ,itemId: 'filter-policy-source' - ,emptyText: _('filter_by_policy') - ,width: 180 - ,allowBlank: true - ,value: this.applyRequestFilter(3) - ,baseParams: { + }, { + xtype: 'modx-combo-policy', + itemId: 'filter-policy-source', + emptyText: _('filter_by_policy'), + width: 180, + allowBlank: true, + value: this.applyRequestFilter(3), + baseParams: { action: 'Security/Access/Policy/GetList', group: 'MediaSource', isGridFilter: true, targetGrid: 'MODx.grid.UserGroupSource', usergroup: config.usergroup - } - ,listeners: { + }, + listeners: { select: { fn: function(cmp, record, selectedIndex) { this.updateDependentFilter('filter-source', 'policy', record.data.id); @@ -129,241 +116,69 @@ MODx.grid.UserGroupSource = function(config) { ) ] }); - MODx.grid.UserGroupSource.superclass.constructor.call(this,config); - this.addEvents('createAcl','updateAcl'); - - const gridFilterData = [ - { filterId: 'filter-policy-source', dependentParams: ['source'] }, - { filterId: 'filter-source', dependentParams: ['policy'] } - ]; - - this.on({ - createAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - updateAcl: function() { - if (arguments[0].a.response.status == 200) { - this.refreshFilterOptions(gridFilterData); - } - }, - afterRemoveRow: function() { - this.refreshFilterOptions(gridFilterData); - } - }); + MODx.grid.UserGroupSource.superclass.constructor.call(this, config); }; -Ext.extend(MODx.grid.UserGroupSource,MODx.grid.Grid,{ - combos: {} - ,windows: {} - - ,getMenu: function() { - const record = this.getSelectionModel().getSelected(), - permissions = record.data.cls, - menu = [] - ; - - if (this.getSelectionModel().getCount() > 1) { - // Currently not allowing bulk actions for this grid - } else { - if (permissions.indexOf('pedit') != -1) { - menu.push({ - text: _('access_source_update'), - handler: this.updateAcl - }); - } - if (permissions.indexOf('premove') != -1) { - if (menu.length > 0) { - menu.push('-'); - } - menu.push({ - text: _('access_source_remove'), - handler: this.remove.createDelegate(this,['confirm_remove','Security/Access/UserGroup/Source/Remove']) - }); - } - } - - if (menu.length > 0) { - this.addContextMenuItem(menu); - } - } - - ,createAcl: function(itm,e) { - var r = { - principal: this.config.usergroup - }; - if (!this.windows.createAcl) { - this.windows.createAcl = MODx.load({ - xtype: 'modx-window-user-group-source-create' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('createAcl',r); - },scope:this} - } - }); - } - this.windows.createAcl.setValues(r); - this.windows.createAcl.show(e.target); - } - - ,updateAcl: function(itm,e) { - var r = this.menu.record; - - if (!this.windows.updateAcl) { - this.windows.updateAcl = MODx.load({ - xtype: 'modx-window-user-group-source-update' - ,record: r - ,listeners: { - 'success': {fn:function(r) { - this.refresh(); - this.fireEvent('updateAcl',r); - },scope:this} - } - }); - } - this.windows.updateAcl.setValues(r); - this.windows.updateAcl.show(e.target); - } -}); -Ext.reg('modx-grid-user-group-source',MODx.grid.UserGroupSource); +Ext.extend(MODx.grid.UserGroupSource, MODx.grid.UserGroupBase); +Ext.reg('modx-grid-user-group-source', MODx.grid.UserGroupSource); /** * @class MODx.window.CreateUGSource - * @extends MODx.Window - * @param {Object} config An object of options. + * @extends MODx.window.UserGroupAclBase + * @param {Object} config An object of options * @xtype modx-window-user-group-source-create */ -MODx.window.CreateUGSource = function(config) { - config = config || {}; - this.ident = config.ident || 'cugsrc'+Ext.id(); - Ext.applyIf(config,{ - title: _('source_add') - ,url: MODx.config.connector_url - ,action: 'Security/Access/UserGroup/Source/Create' - ,fields: [{ - xtype: 'hidden' - ,name: 'id' - },{ - xtype: 'hidden' - ,name: 'principal' - ,hiddenName: 'principal' - },{ - xtype: 'hidden' - ,name: 'principal_class' - ,value: 'MODX\\Revolution\\modUserGroup' - },{ - xtype: 'hidden' - ,name: 'context_key' - ,hiddenName: 'context_key' - ,value: 'mgr' - },{ - xtype: 'modx-combo-source' - ,fieldLabel: _('source') - ,description: MODx.expandHelp ? '' : _('user_group_source_source_desc') - ,id: 'modx-'+this.ident+'-source' - ,name: 'target' - ,hiddenName: 'target' - ,editable: false - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-source' - ,html: _('user_group_source_source_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-authority' - ,fieldLabel: _('minimum_role') - ,description: MODx.expandHelp ? '' : _('user_group_source_authority_desc') - ,id: 'modx-'+this.ident+'-authority' - ,name: 'authority' - ,value: 0 - ,anchor: '100%' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-authority' - ,html: _('user_group_source_authority_desc') - ,cls: 'desc-under' - },{ - xtype: 'modx-combo-policy' - ,fieldLabel: _('policy') - ,description: MODx.expandHelp ? '' : _('user_group_source_policy_desc') - ,id: 'modx-'+this.ident+'-policy' - ,name: 'policy' - ,hiddenName: 'policy' - ,baseParams: { - action: 'Security/Access/Policy/GetList' - ,group: 'MediaSource' +MODx.window.CreateUGSource = function CreateUGSource(config = {}) { + this.aclType = 'source'; + this.windowId = config.ident || `${this.aclType}-access-create-${Ext.id()}`; + this.idPrefix = `modx-${this.windowId}`; + const sourceDesc = _('user_group_source_source_desc'); + Ext.applyIf(config, { + saveMode: 'create', + action: 'Security/Access/UserGroup/Source/Create', + fields: this.getWindowFields([ + { + xtype: 'modx-combo-source', + fieldLabel: _('source'), + description: MODx.expandHelp ? '' : sourceDesc, + id: `${this.idPrefix}-source`, + name: 'target', + hiddenName: 'target', + editable: false, + anchor: '100%' + }, { + xtype: 'box', + hidden: !MODx.expandHelp, + html: sourceDesc, + cls: 'desc-under' } - ,anchor: '100%' - ,listeners: { - 'select':{fn:this.onPolicySelect,scope:this} + ], [ + { + xtype: 'hidden', + name: 'context_key', + hiddenName: 'context_key', + value: 'mgr' } - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-'+this.ident+'-policy' - ,html: _('user_group_source_policy_desc') - ,cls: 'desc-under' - },{ - id: 'modx-'+this.ident+'-permissions-list-ct' - ,cls: 'modx-permissions-list' - ,defaults: {border: false} - ,autoHeight: true - ,hidden: true - ,anchor: '100%' - ,items: [{ - html: '

    '+_('permissions_in_policy')+'

    ' - ,id: 'modx-'+this.ident+'-permissions-list-header' - },{ - id: 'modx-'+this.ident+'-permissions-list' - ,cls: 'modx-permissions-list-textarea' - ,xtype: 'textarea' - ,name: 'permissions' - ,grow: false - ,anchor: '100%' - ,height: 100 - ,width: '97%' - ,readOnly: true - }] - }] + ]) }); - MODx.window.CreateUGSource.superclass.constructor.call(this,config); + MODx.window.CreateUGSource.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.CreateUGSource,MODx.Window,{ - onPolicySelect: function(cb,rec,idx) { - var s = cb.getStore(); - if (!s) return; - - var r = s.getAt(idx); - var lc = Ext.getCmp('modx-'+this.ident+'-permissions-list-ct'); - if (r && idx>0) { - lc.show(); - var pl = Ext.getCmp('modx-'+this.ident+'-permissions-list'); - var o = rec.data.permissions.join(', '); - pl.setValue(o); - } else { - lc.hide(); - } - this.doLayout(); - } -}); -Ext.reg('modx-window-user-group-source-create',MODx.window.CreateUGSource); +Ext.extend(MODx.window.CreateUGSource, MODx.window.UserGroupAclBase); +Ext.reg('modx-window-user-group-source-create', MODx.window.CreateUGSource); /** * @class MODx.window.UpdateUGSource * @extends MODx.window.CreateUGSource - * @param {Object} config An object of options. + * @param {Object} config An object of options * @xtype modx-window-user-group-source-update */ -MODx.window.UpdateUGSource = function(config) { - config = config || {}; - this.ident = config.ident || 'updugsrc'+Ext.id(); - Ext.applyIf(config,{ - title: _('access_source_update') - ,action: 'Security/Access/UserGroup/Source/Update' +MODx.window.UpdateUGSource = function UpdateUGSource(config = {}) { + this.aclType = 'source'; + this.windowId = config.ident || `${this.aclType}-access-update-${Ext.id()}`; + Ext.applyIf(config, { + saveMode: 'update', + action: 'Security/Access/UserGroup/Source/Update' }); - MODx.window.UpdateUGSource.superclass.constructor.call(this,config); + MODx.window.UpdateUGSource.superclass.constructor.call(this, config); }; -Ext.extend(MODx.window.UpdateUGSource,MODx.window.CreateUGSource); -Ext.reg('modx-window-user-group-source-update',MODx.window.UpdateUGSource); +Ext.extend(MODx.window.UpdateUGSource, MODx.window.CreateUGSource); +Ext.reg('modx-window-user-group-source-update', MODx.window.UpdateUGSource); diff --git a/manager/controllers/default/security/usergroup/update.class.php b/manager/controllers/default/security/usergroup/update.class.php index 96797ba778f..24b4fb34fca 100644 --- a/manager/controllers/default/security/usergroup/update.class.php +++ b/manager/controllers/default/security/usergroup/update.class.php @@ -1,4 +1,5 @@ modx->hasPermission('usergroup_view'); } @@ -32,22 +35,24 @@ public function checkPermissions() { * Register custom CSS/JS for the page * @return void */ - public function loadCustomCssJs() { - $mgrUrl = $this->modx->getOption('manager_url',null,MODX_MANAGER_URL); - $this->addJavascript($mgrUrl.'assets/modext/widgets/core/modx.grid.settings.js'); - $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.user.group.settings.js'); - $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.user.group.context.js'); - $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.user.group.resource.js'); - $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.user.group.category.js'); - $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.user.group.source.js'); - $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.user.group.namespace.js'); - $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.panel.user.group.js'); - $this->addJavascript($mgrUrl.'assets/modext/sections/security/usergroup/update.js'); + public function loadCustomCssJs() + { + $mgrUrl = $this->modx->getOption('manager_url', null, MODX_MANAGER_URL); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/core/modx.grid.settings.js'); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/security/modx.grid.user.group.base.js'); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/security/modx.grid.user.group.settings.js'); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/security/modx.grid.user.group.context.js'); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/security/modx.grid.user.group.resource.js'); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/security/modx.grid.user.group.category.js'); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/security/modx.grid.user.group.source.js'); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/security/modx.grid.user.group.namespace.js'); + $this->addJavascript($mgrUrl . 'assets/modext/widgets/security/modx.panel.user.group.js'); + $this->addJavascript($mgrUrl . 'assets/modext/sections/security/usergroup/update.js'); $this->addHtml(''); @@ -58,12 +63,13 @@ public function loadCustomCssJs() { * @param array $scriptProperties * @return mixed */ - public function process(array $scriptProperties = []) { + public function process(array $scriptProperties = []) + { $placeholders = []; - if (empty($scriptProperties['id']) || strlen($scriptProperties['id']) !== strlen((integer)$scriptProperties['id'])) { + if (empty($scriptProperties['id']) || strlen($scriptProperties['id']) !== strlen((int)$scriptProperties['id'])) { $this->userGroup = $this->modx->newObject(modUserGroup::class); - $this->userGroup->set('id',0); - $this->userGroup->set('name',$this->modx->lexicon('anonymous')); + $this->userGroup->set('id', 0); + $this->userGroup->set('name', $this->modx->lexicon('anonymous')); } else { $this->userGroup = $this->modx->getObject(modUserGroup::class, ['id' => $scriptProperties['id']]); if (empty($this->userGroup)) { @@ -78,16 +84,18 @@ public function process(array $scriptProperties = []) { * * @return string */ - public function getPageTitle() { + public function getPageTitle() + { $ugName = $this->userGroup ? $this->userGroup->get('name') : $this->modx->lexicon('anonymous'); - return $this->modx->lexicon('user_group').': '.$ugName; + return $this->modx->lexicon('user_group') . ': ' . $ugName; } /** * Return the location of the template file * @return string */ - public function getTemplateFile() { + public function getTemplateFile() + { return ''; } @@ -95,7 +103,8 @@ public function getTemplateFile() { * Specify the language topics to load * @return array */ - public function getLanguageTopics() { + public function getLanguageTopics() + { return ['user','access','policy','context','setting']; } @@ -103,7 +112,8 @@ public function getLanguageTopics() { * Get the Help URL * @return string */ - public function getHelpUrl() { + public function getHelpUrl() + { return 'User+Groups'; } } diff --git a/manager/templates/default/css/index-min.css b/manager/templates/default/css/index-min.css index f4e760021aa..72948e9b5d7 100644 --- a/manager/templates/default/css/index-min.css +++ b/manager/templates/default/css/index-min.css @@ -57,5 +57,5 @@ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */@font-face{font-display:block;font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}.fab{font-family:Font Awesome\ 5 Brands}.icon.icon-glass:before{content:"\f000"}.icon.icon-meetup{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-star-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-star-o:before{content:"\f005"}.icon.icon-close:before,.icon.icon-remove:before{content:"\f00d"}.icon.icon-gear:before{content:"\f013"}.icon.icon-trash-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-trash-o:before{content:"\f2ed"}.icon.icon-file-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-o:before{content:"\f15b"}.icon.icon-clock-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-clock-o:before{content:"\f017"}.icon.icon-arrow-circle-o-down{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-arrow-circle-o-down:before{content:"\f358"}.icon.icon-arrow-circle-o-up{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-arrow-circle-o-up:before{content:"\f35b"}.icon.icon-play-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-play-circle-o:before{content:"\f144"}.icon.icon-repeat:before,.icon.icon-rotate-right:before{content:"\f01e"}.icon.icon-refresh:before{content:"\f021"}.icon.icon-list-alt{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-dedent:before{content:"\f03b"}.icon.icon-video-camera:before{content:"\f03d"}.icon.icon-picture-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-picture-o:before{content:"\f03e"}.icon.icon-photo{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-photo:before{content:"\f03e"}.icon.icon-image{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-image:before{content:"\f03e"}.icon.icon-pencil:before{content:"\f303"}.icon.icon-map-marker:before{content:"\f3c5"}.icon.icon-pencil-square-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-pencil-square-o:before{content:"\f044"}.icon.icon-share-square-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-share-square-o:before{content:"\f14d"}.icon.icon-check-square-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-check-square-o:before{content:"\f14a"}.icon.icon-arrows:before{content:"\f0b2"}.icon.icon-times-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-times-circle-o:before{content:"\f057"}.icon.icon-check-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-check-circle-o:before{content:"\f058"}.icon.icon-mail-forward:before{content:"\f064"}.icon.icon-expand:before{content:"\f424"}.icon.icon-compress:before{content:"\f422"}.icon.icon-eye,.icon.icon-eye-slash{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-warning:before{content:"\f071"}.icon.icon-calendar:before{content:"\f073"}.icon.icon-arrows-v:before{content:"\f338"}.icon.icon-arrows-h:before{content:"\f337"}.icon.icon-bar-chart{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-bar-chart:before{content:"\f080"}.icon.icon-bar-chart-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-bar-chart-o:before{content:"\f080"}.icon.icon-facebook-square,.icon.icon-twitter-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-gears:before{content:"\f085"}.icon.icon-thumbs-o-up{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-thumbs-o-up:before{content:"\f164"}.icon.icon-thumbs-o-down{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-thumbs-o-down:before{content:"\f165"}.icon.icon-heart-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-heart-o:before{content:"\f004"}.icon.icon-sign-out:before{content:"\f2f5"}.icon.icon-linkedin-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-linkedin-square:before{content:"\f08c"}.icon.icon-thumb-tack:before{content:"\f08d"}.icon.icon-external-link:before{content:"\f35d"}.icon.icon-sign-in:before{content:"\f2f6"}.icon.icon-github-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-lemon-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-lemon-o:before{content:"\f094"}.icon.icon-square-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-square-o:before{content:"\f0c8"}.icon.icon-bookmark-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-bookmark-o:before{content:"\f02e"}.icon.icon-facebook,.icon.icon-twitter{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-facebook:before{content:"\f39e"}.icon.icon-facebook-f{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-facebook-f:before{content:"\f39e"}.icon.icon-github{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-credit-card{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-feed:before{content:"\f09e"}.icon.icon-hdd-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hdd-o:before{content:"\f0a0"}.icon.icon-hand-o-right{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-o-right:before{content:"\f0a4"}.icon.icon-hand-o-left{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-o-left:before{content:"\f0a5"}.icon.icon-hand-o-up{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-o-up:before{content:"\f0a6"}.icon.icon-hand-o-down{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-o-down:before{content:"\f0a7"}.icon.icon-arrows-alt:before{content:"\f31e"}.icon.icon-group:before{content:"\f0c0"}.icon.icon-chain:before{content:"\f0c1"}.icon.icon-scissors:before{content:"\f0c4"}.icon.icon-files-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-files-o:before{content:"\f0c5"}.icon.icon-floppy-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-floppy-o:before{content:"\f0c7"}.icon.icon-navicon:before,.icon.icon-reorder:before{content:"\f0c9"}.icon.icon-google-plus,.icon.icon-google-plus-square,.icon.icon-pinterest,.icon.icon-pinterest-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-google-plus:before{content:"\f0d5"}.icon.icon-money{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-money:before{content:"\f3d1"}.icon.icon-unsorted:before{content:"\f0dc"}.icon.icon-sort-desc:before{content:"\f0dd"}.icon.icon-sort-asc:before{content:"\f0de"}.icon.icon-linkedin{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-linkedin:before{content:"\f0e1"}.icon.icon-rotate-left:before{content:"\f0e2"}.icon.icon-legal:before{content:"\f0e3"}.icon.icon-dashboard:before,.icon.icon-tachometer:before{content:"\f3fd"}.icon.icon-comment-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-comment-o:before{content:"\f075"}.icon.icon-comments-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-comments-o:before{content:"\f086"}.icon.icon-flash:before{content:"\f0e7"}.icon.icon-clipboard,.icon.icon-paste{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-paste:before{content:"\f328"}.icon.icon-lightbulb-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-lightbulb-o:before{content:"\f0eb"}.icon.icon-exchange:before{content:"\f362"}.icon.icon-cloud-download:before{content:"\f381"}.icon.icon-cloud-upload:before{content:"\f382"}.icon.icon-bell-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-bell-o:before{content:"\f0f3"}.icon.icon-cutlery:before{content:"\f2e7"}.icon.icon-file-text-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-text-o:before{content:"\f15c"}.icon.icon-building-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-building-o:before{content:"\f1ad"}.icon.icon-hospital-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hospital-o:before{content:"\f0f8"}.icon.icon-tablet:before{content:"\f3fa"}.icon.icon-mobile-phone:before,.icon.icon-mobile:before{content:"\f3cd"}.icon.icon-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-circle-o:before{content:"\f111"}.icon.icon-mail-reply:before{content:"\f3e5"}.icon.icon-github-alt{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-folder-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-folder-o:before{content:"\f07b"}.icon.icon-folder-open-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-folder-open-o:before{content:"\f07c"}.icon.icon-smile-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-smile-o:before{content:"\f118"}.icon.icon-frown-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-frown-o:before{content:"\f119"}.icon.icon-meh-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-meh-o:before{content:"\f11a"}.icon.icon-keyboard-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-keyboard-o:before{content:"\f11c"}.icon.icon-flag-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-flag-o:before{content:"\f024"}.icon.icon-mail-reply-all:before{content:"\f122"}.icon.icon-star-half-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-star-half-o:before{content:"\f089"}.icon.icon-star-half-empty{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-star-half-empty:before{content:"\f089"}.icon.icon-star-half-full{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-star-half-full:before{content:"\f089"}.icon.icon-code-fork:before{content:"\f126"}.icon.icon-chain-broken:before{content:"\f127"}.icon.icon-shield:before{content:"\f3ed"}.icon.icon-calendar-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-calendar-o:before{content:"\f133"}.icon.icon-css3,.icon.icon-html5,.icon.icon-maxcdn{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-ticket:before{content:"\f3ff"}.icon.icon-minus-square-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-minus-square-o:before{content:"\f146"}.icon.icon-level-up:before{content:"\f3bf"}.icon.icon-level-down:before{content:"\f3be"}.icon.icon-pencil-square:before{content:"\f14b"}.icon.icon-external-link-square:before{content:"\f360"}.icon.icon-compass{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-caret-square-o-down{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-caret-square-o-down:before{content:"\f150"}.icon.icon-toggle-down{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-toggle-down:before{content:"\f150"}.icon.icon-caret-square-o-up{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-caret-square-o-up:before{content:"\f151"}.icon.icon-toggle-up{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-toggle-up:before{content:"\f151"}.icon.icon-caret-square-o-right{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-caret-square-o-right:before{content:"\f152"}.icon.icon-toggle-right{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-toggle-right:before{content:"\f152"}.icon.icon-eur:before,.icon.icon-euro:before{content:"\f153"}.icon.icon-gbp:before{content:"\f154"}.icon.icon-dollar:before,.icon.icon-usd:before{content:"\f155"}.icon.icon-inr:before,.icon.icon-rupee:before{content:"\f156"}.icon.icon-cny:before,.icon.icon-jpy:before,.icon.icon-rmb:before,.icon.icon-yen:before{content:"\f157"}.icon.icon-rouble:before,.icon.icon-rub:before,.icon.icon-ruble:before{content:"\f158"}.icon.icon-krw:before,.icon.icon-won:before{content:"\f159"}.icon.icon-bitcoin,.icon.icon-btc{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-bitcoin:before{content:"\f15a"}.icon.icon-file-text:before{content:"\f15c"}.icon.icon-sort-alpha-asc:before{content:"\f15d"}.icon.icon-sort-alpha-desc:before{content:"\f881"}.icon.icon-sort-amount-asc:before{content:"\f160"}.icon.icon-sort-amount-desc:before{content:"\f884"}.icon.icon-sort-numeric-asc:before{content:"\f162"}.icon.icon-sort-numeric-desc:before{content:"\f886"}.icon.icon-xing,.icon.icon-xing-square,.icon.icon-youtube,.icon.icon-youtube-play,.icon.icon-youtube-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-youtube-play:before{content:"\f167"}.icon.icon-adn,.icon.icon-bitbucket,.icon.icon-bitbucket-square,.icon.icon-dropbox,.icon.icon-flickr,.icon.icon-instagram,.icon.icon-stack-overflow{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-bitbucket-square:before{content:"\f171"}.icon.icon-tumblr,.icon.icon-tumblr-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-long-arrow-down:before{content:"\f309"}.icon.icon-long-arrow-up:before{content:"\f30c"}.icon.icon-long-arrow-left:before{content:"\f30a"}.icon.icon-long-arrow-right:before{content:"\f30b"}.icon.icon-android,.icon.icon-apple,.icon.icon-dribbble,.icon.icon-foursquare,.icon.icon-gittip,.icon.icon-gratipay,.icon.icon-linux,.icon.icon-skype,.icon.icon-trello,.icon.icon-windows{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-gittip:before{content:"\f184"}.icon.icon-sun-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-sun-o:before{content:"\f185"}.icon.icon-moon-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-moon-o:before{content:"\f186"}.icon.icon-pagelines,.icon.icon-renren,.icon.icon-stack-exchange,.icon.icon-vk,.icon.icon-weibo{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-arrow-circle-o-right{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-arrow-circle-o-right:before{content:"\f35a"}.icon.icon-arrow-circle-o-left{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-arrow-circle-o-left:before{content:"\f359"}.icon.icon-caret-square-o-left{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-caret-square-o-left:before{content:"\f191"}.icon.icon-toggle-left{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-toggle-left:before{content:"\f191"}.icon.icon-dot-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-dot-circle-o:before{content:"\f192"}.icon.icon-vimeo-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-try:before,.icon.icon-turkish-lira:before{content:"\f195"}.icon.icon-plus-square-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-plus-square-o:before{content:"\f0fe"}.icon.icon-openid,.icon.icon-slack,.icon.icon-wordpress{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-bank:before,.icon.icon-institution:before{content:"\f19c"}.icon.icon-mortar-board:before{content:"\f19d"}.icon.icon-delicious,.icon.icon-digg,.icon.icon-drupal,.icon.icon-google,.icon.icon-joomla,.icon.icon-pied-piper-alt,.icon.icon-pied-piper-pp,.icon.icon-reddit,.icon.icon-reddit-square,.icon.icon-stumbleupon,.icon.icon-stumbleupon-circle,.icon.icon-yahoo{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-spoon:before{content:"\f2e5"}.icon.icon-behance,.icon.icon-behance-square,.icon.icon-steam,.icon.icon-steam-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-automobile:before{content:"\f1b9"}.icon.icon-envelope-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-envelope-o:before{content:"\f0e0"}.icon.icon-deviantart,.icon.icon-soundcloud,.icon.icon-spotify{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-file-pdf-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-pdf-o:before{content:"\f1c1"}.icon.icon-file-word-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-word-o:before{content:"\f1c2"}.icon.icon-file-excel-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-excel-o:before{content:"\f1c3"}.icon.icon-file-powerpoint-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-powerpoint-o:before{content:"\f1c4"}.icon.icon-file-image-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-image-o:before{content:"\f1c5"}.icon.icon-file-photo-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-photo-o:before{content:"\f1c5"}.icon.icon-file-picture-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-picture-o:before{content:"\f1c5"}.icon.icon-file-archive-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-archive-o:before{content:"\f1c6"}.icon.icon-file-zip-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-zip-o:before{content:"\f1c6"}.icon.icon-file-audio-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-audio-o:before{content:"\f1c7"}.icon.icon-file-sound-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-sound-o:before{content:"\f1c7"}.icon.icon-file-video-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-video-o:before{content:"\f1c8"}.icon.icon-file-movie-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-movie-o:before{content:"\f1c8"}.icon.icon-file-code-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-file-code-o:before{content:"\f1c9"}.icon.icon-codepen,.icon.icon-jsfiddle,.icon.icon-vine{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-life-bouy,.icon.icon-life-ring{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-life-bouy:before{content:"\f1cd"}.icon.icon-life-buoy{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-life-buoy:before{content:"\f1cd"}.icon.icon-life-saver{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-life-saver:before{content:"\f1cd"}.icon.icon-support{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-support:before{content:"\f1cd"}.icon.icon-circle-o-notch:before{content:"\f1ce"}.icon.icon-ra,.icon.icon-rebel{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-ra:before{content:"\f1d0"}.icon.icon-resistance{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-resistance:before{content:"\f1d0"}.icon.icon-empire,.icon.icon-ge{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-ge:before{content:"\f1d1"}.icon.icon-git,.icon.icon-git-square,.icon.icon-hacker-news,.icon.icon-y-combinator-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-y-combinator-square:before{content:"\f1d4"}.icon.icon-yc-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-yc-square:before{content:"\f1d4"}.icon.icon-qq,.icon.icon-tencent-weibo,.icon.icon-wechat,.icon.icon-weixin{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-wechat:before{content:"\f1d7"}.icon.icon-send:before{content:"\f1d8"}.icon.icon-paper-plane-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-paper-plane-o:before{content:"\f1d8"}.icon.icon-send-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-send-o:before{content:"\f1d8"}.icon.icon-circle-thin{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-circle-thin:before{content:"\f111"}.icon.icon-header:before{content:"\f1dc"}.icon.icon-sliders:before{content:"\f1de"}.icon.icon-futbol-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-futbol-o:before{content:"\f1e3"}.icon.icon-soccer-ball-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-soccer-ball-o:before{content:"\f1e3"}.icon.icon-slideshare,.icon.icon-twitch,.icon.icon-yelp{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-newspaper-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-newspaper-o:before{content:"\f1ea"}.icon.icon-cc-amex,.icon.icon-cc-discover,.icon.icon-cc-mastercard,.icon.icon-cc-paypal,.icon.icon-cc-stripe,.icon.icon-cc-visa,.icon.icon-google-wallet,.icon.icon-paypal{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-bell-slash-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-bell-slash-o:before{content:"\f1f6"}.icon.icon-trash:before{content:"\f2ed"}.icon.icon-copyright{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-eyedropper:before{content:"\f1fb"}.icon.icon-area-chart:before{content:"\f1fe"}.icon.icon-pie-chart:before{content:"\f200"}.icon.icon-line-chart:before{content:"\f201"}.icon.icon-angellist,.icon.icon-ioxhost,.icon.icon-lastfm,.icon.icon-lastfm-square{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-cc{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-cc:before{content:"\f20a"}.icon.icon-ils:before,.icon.icon-shekel:before,.icon.icon-sheqel:before{content:"\f20b"}.icon.icon-meanpath{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-meanpath:before{content:"\f2b4"}.icon.icon-buysellads,.icon.icon-connectdevelop,.icon.icon-dashcube,.icon.icon-forumbee,.icon.icon-leanpub,.icon.icon-sellsy,.icon.icon-shirtsinbulk,.icon.icon-simplybuilt,.icon.icon-skyatlas{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-diamond{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-diamond:before{content:"\f3a5"}.icon.icon-intersex:before{content:"\f224"}.icon.icon-facebook-official{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-facebook-official:before{content:"\f09a"}.icon.icon-pinterest-p,.icon.icon-whatsapp{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-hotel:before{content:"\f236"}.icon.icon-medium,.icon.icon-viacoin,.icon.icon-y-combinator,.icon.icon-yc{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-yc:before{content:"\f23b"}.icon.icon-expeditedssl,.icon.icon-opencart,.icon.icon-optin-monster{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-battery-4:before,.icon.icon-battery:before{content:"\f240"}.icon.icon-battery-3:before{content:"\f241"}.icon.icon-battery-2:before{content:"\f242"}.icon.icon-battery-1:before{content:"\f243"}.icon.icon-battery-0:before{content:"\f244"}.icon.icon-object-group,.icon.icon-object-ungroup,.icon.icon-sticky-note-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-sticky-note-o:before{content:"\f249"}.icon.icon-cc-diners-club,.icon.icon-cc-jcb{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-clone,.icon.icon-hourglass-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hourglass-o:before{content:"\f254"}.icon.icon-hourglass-1:before{content:"\f251"}.icon.icon-hourglass-2:before{content:"\f252"}.icon.icon-hourglass-3:before{content:"\f253"}.icon.icon-hand-rock-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-rock-o:before{content:"\f255"}.icon.icon-hand-grab-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-grab-o:before{content:"\f255"}.icon.icon-hand-paper-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-paper-o:before{content:"\f256"}.icon.icon-hand-stop-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-stop-o:before{content:"\f256"}.icon.icon-hand-scissors-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-scissors-o:before{content:"\f257"}.icon.icon-hand-lizard-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-lizard-o:before{content:"\f258"}.icon.icon-hand-spock-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-spock-o:before{content:"\f259"}.icon.icon-hand-pointer-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-pointer-o:before{content:"\f25a"}.icon.icon-hand-peace-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-hand-peace-o:before{content:"\f25b"}.icon.icon-registered{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-chrome,.icon.icon-creative-commons,.icon.icon-firefox,.icon.icon-get-pocket,.icon.icon-gg,.icon.icon-gg-circle,.icon.icon-internet-explorer,.icon.icon-odnoklassniki,.icon.icon-odnoklassniki-square,.icon.icon-opera,.icon.icon-safari,.icon.icon-tripadvisor,.icon.icon-wikipedia-w{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-television:before{content:"\f26c"}.icon.icon-500px,.icon.icon-amazon,.icon.icon-contao{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-calendar-plus-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-calendar-plus-o:before{content:"\f271"}.icon.icon-calendar-minus-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-calendar-minus-o:before{content:"\f272"}.icon.icon-calendar-times-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-calendar-times-o:before{content:"\f273"}.icon.icon-calendar-check-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-calendar-check-o:before{content:"\f274"}.icon.icon-map-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-map-o:before{content:"\f279"}.icon.icon-commenting:before{content:"\f4ad"}.icon.icon-commenting-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-commenting-o:before{content:"\f4ad"}.icon.icon-houzz,.icon.icon-vimeo{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-vimeo:before{content:"\f27d"}.icon.icon-black-tie,.icon.icon-edge,.icon.icon-fonticons,.icon.icon-reddit-alien{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-credit-card-alt:before{content:"\f09d"}.icon.icon-codiepie,.icon.icon-fort-awesome,.icon.icon-mixcloud,.icon.icon-modx,.icon.icon-product-hunt,.icon.icon-scribd,.icon.icon-usb{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-pause-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-pause-circle-o:before{content:"\f28b"}.icon.icon-stop-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-stop-circle-o:before{content:"\f28d"}.icon.icon-bluetooth,.icon.icon-bluetooth-b,.icon.icon-envira,.icon.icon-gitlab,.icon.icon-wheelchair-alt,.icon.icon-wpbeginner,.icon.icon-wpforms{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-wheelchair-alt:before{content:"\f368"}.icon.icon-question-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-question-circle-o:before{content:"\f059"}.icon.icon-volume-control-phone:before{content:"\f2a0"}.icon.icon-asl-interpreting:before{content:"\f2a3"}.icon.icon-deafness:before,.icon.icon-hard-of-hearing:before{content:"\f2a4"}.icon.icon-glide,.icon.icon-glide-g{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-signing:before{content:"\f2a7"}.icon.icon-first-order,.icon.icon-google-plus-official,.icon.icon-pied-piper,.icon.icon-snapchat,.icon.icon-snapchat-ghost,.icon.icon-snapchat-square,.icon.icon-themeisle,.icon.icon-viadeo,.icon.icon-viadeo-square,.icon.icon-yoast{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-google-plus-official:before{content:"\f2b3"}.icon.icon-google-plus-circle{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-google-plus-circle:before{content:"\f2b3"}.icon.icon-fa,.icon.icon-font-awesome{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-fa:before{content:"\f2b4"}.icon.icon-handshake-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-handshake-o:before{content:"\f2b5"}.icon.icon-envelope-open-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-envelope-open-o:before{content:"\f2b6"}.icon.icon-linode{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-address-book-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-address-book-o:before{content:"\f2b9"}.icon.icon-vcard:before{content:"\f2bb"}.icon.icon-address-card-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-address-card-o:before{content:"\f2bb"}.icon.icon-vcard-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-vcard-o:before{content:"\f2bb"}.icon.icon-user-circle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-user-circle-o:before{content:"\f2bd"}.icon.icon-user-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-user-o:before{content:"\f007"}.icon.icon-id-badge{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-drivers-license:before{content:"\f2c2"}.icon.icon-id-card-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-id-card-o:before{content:"\f2c2"}.icon.icon-drivers-license-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-drivers-license-o:before{content:"\f2c2"}.icon.icon-free-code-camp,.icon.icon-quora,.icon.icon-telegram{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-thermometer-4:before,.icon.icon-thermometer:before{content:"\f2c7"}.icon.icon-thermometer-3:before{content:"\f2c8"}.icon.icon-thermometer-2:before{content:"\f2c9"}.icon.icon-thermometer-1:before{content:"\f2ca"}.icon.icon-thermometer-0:before{content:"\f2cb"}.icon.icon-bathtub:before,.icon.icon-s15:before{content:"\f2cd"}.icon.icon-window-maximize,.icon.icon-window-restore{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-times-rectangle:before{content:"\f410"}.icon.icon-window-close-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-window-close-o:before{content:"\f410"}.icon.icon-times-rectangle-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-times-rectangle-o:before{content:"\f410"}.icon.icon-bandcamp,.icon.icon-eercast,.icon.icon-etsy,.icon.icon-grav,.icon.icon-imdb,.icon.icon-ravelry{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-eercast:before{content:"\f2da"}.icon.icon-snowflake-o{font-family:Font Awesome\ 5 Free;font-weight:400}.icon.icon-snowflake-o:before{content:"\f2dc"}.icon.icon-superpowers,.icon.icon-wpexplorer{font-family:Font Awesome\ 5 Brands;font-weight:400}.icon.icon-cab:before{content:"\f1ba"}#modx-navbar #modx-topnav{margin-left:auto;margin-right:auto;max-width:1200px}#modx-navbar #modx-topnav:after{clear:both;content:"";display:block}#modx-footer .modx-subnav li.sub:after,#modx-leftbar-header a:after,.actions button .x-btn-arrow:before,.actions button .x-btn-split:before,.crumb_wrapper .crumbs li.first:before,.desc-under .copy-this:hover:after,.desc-under .example-list ul li:before,.ext-mb-icon:before,.home-panel ol li:hover button:before,.icon,.icon-3gp:before,.icon-7z:before,.icon-aac:before,.icon-access:before,.icon-aif:before,.icon-aiff:before,.icon-as:before,.icon-avi:before,.icon-backup:before,.icon-bak:before,.icon-bat:before,.icon-bk:before,.icon-bmp:before,.icon-bz2:before,.icon-cal:before,.icon-cfm:before,.icon-coffeescript:before,.icon-css:before,.icon-csv:before,.icon-db:before,.icon-dmg:before,.icon-doc:before,.icon-docx:before,.icon-fla:before,.icon-flac:before,.icon-flv:before,.icon-folder:before,.icon-gif:before,.icon-gz:before,.icon-htaccess:before,.icon-htm:before,.icon-html:before,.icon-ical:before,.icon-ics:before,.icon-iso:before,.icon-jar:before,.icon-java:before,.icon-jpeg:before,.icon-jpg:before,.icon-js:before,.icon-json:before,.icon-less:before,.icon-lock,.icon-log:before,.icon-m4a:before,.icon-m4v:before,.icon-mov:before,.icon-mp3:before,.icon-mp4:before,.icon-mpeg:before,.icon-mpg:before,.icon-ogg:before,.icon-pdf:before,.icon-php:before,.icon-png:before,.icon-ppt:before,.icon-pptx:before,.icon-rar:before,.icon-rb:before,.icon-rss:before,.icon-scr:before,.icon-scss:before,.icon-sh:before,.icon-sql:before,.icon-styl:before,.icon-svg:before,.icon-swf:before,.icon-tar:before,.icon-tgz:before,.icon-tiff:before,.icon-txt:before,.icon-vcs:before,.icon-wav:before,.icon-wma:before,.icon-wmv:before,.icon-xls:before,.icon-xlsx:before,.icon-xml:before,.icon-zip:before,.inline-button .x-btn-arrow:before,.inline-button .x-btn-split:before,.locked-resource:before,.modx-browser-detail-thumb.preview:before,.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell:before,.modx-header-breadcrumbs ul li:after,.modx-manager-search-results .loading-indicator:before,.modx-status-msg:after,.modx-tv .resizable:after,.modx-tv .resizable:before,.parent-resource:before,.tree-context:before,.tree-new-category>em>button:before,.tree-new-chunk>em>button:before,.tree-new-plugin>em>button:before,.tree-new-resource>em>button:before,.tree-new-snippet>em>button:before,.tree-new-static-resource>em>button:before,.tree-new-symlink>em>button:before,.tree-new-template>em>button:before,.tree-new-tv>em>button:before,.tree-new-weblink>em>button:before,.tree-resource:before,.tree-static-resource:before,.tree-symlink:before,.tree-trash>em>button:before,.tree-weblink:before,.x-btn-icon.arrow_down button:before,.x-btn-icon.arrow_up button:before,.x-btn-icon.icon-file_manager button:before,.x-btn-icon.icon-file_upload button:before,.x-btn-icon.icon-folder button:before,.x-btn-icon.icon-page_white button:before,.x-btn-icon.refresh button:before,.x-btn .x-btn-arrow:before,.x-btn .x-btn-split:before,.x-date-left a:before,.x-date-mp-cancel .x-btn-arrow:before,.x-date-mp-cancel .x-btn-split:before,.x-date-mp-ok .x-btn-arrow:before,.x-date-mp-ok .x-btn-split:before,.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-mp-ybtn a.x-date-mp-prev:before,.x-date-right a:before,.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-form-check-wrap .x-fieldset-header-text:before,.x-form-check-wrap .x-form-cb-label:before,.x-form-field-wrap .x-form-trigger:before,.x-form-invalid-msg:before,.x-form-item .x-form-element .x-form-invalid-icon:before,.x-form-item label.x-form-item-label .modx-field-utils:before,.x-form-item label.x-form-item-label .modx-tv-reset:before,.x-form-trigger .x-btn-arrow:before,.x-form-trigger .x-btn-split:before,.x-grid3-check-col-on:before,.x-grid3-check-col:before,.x-grid3-hd-btn:before,.x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-checker:before,.x-grid3-row-collapsed .x-grid3-row-expander:before,.x-grid3-row-expanded .x-grid3-row-expander:before,.x-grid-group-collapsed .x-grid-group-hd div.x-grid-group-title:before,.x-grid-group-hd div.x-grid-group-title:before,.x-superboxselect-item .x-btn-arrow:before,.x-superboxselect-item .x-btn-split:before,.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:before,.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:before,.x-tab-scroller-left:before,.x-tab-scroller-right:before,.x-tbar-loading:before,.x-tbar-page-first:before,.x-tbar-page-last:before,.x-tbar-page-next:before,.x-tbar-page-prev:before,.x-tool:after,.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before,.x-tree-node-expanded .icon-folder:before,.x-tree-node-expanded .parent-resource:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;display:inline-block;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Brands;font-style:normal;font-variant:normal;font-weight:900}.crumb_wrapper .crumbs li.first:before,.x-btn-icon.arrow_down button:before,.x-btn-icon.arrow_up button:before,.x-btn-icon.refresh button:before,.x-tbar-loading:before,.x-tbar-page-first:before,.x-tbar-page-last:before,.x-tbar-page-next:before,.x-tbar-page-prev:before{bottom:0;color:inherit;font-size:14px;height:100%;left:0;line-height:100%;position:absolute;right:0;text-align:center;top:0;width:100%}#modx-tv-tabs .lt-ie8{*zoom:1}#modx-tv-tabs:after,#modx-tv-tabs:before{content:" ";display:table}#modx-tv-tabs:after{clear:both}.x-splitbar-proxy{background-color:#aaa}.x-color-palette a{border-color:#fff}.x-color-palette a.x-color-palette-sel,.x-color-palette a:hover{background-color:#ebebeb;border-color:#b4b4b4}.x-color-palette em{border-color:#aca899}.loading-indicator{background-image:url(../images/modx-theme/grid/loading.gif);font-size:11px}.x-spotlight{background-color:#ccc}.ext-ie7 .x-plain-body{position:relative}.x-statusbar .x-status-busy{background-image:url(../images/modx-theme/grid/loading.gif)}.x-statusbar .x-status-text-panel{border-color:#dfdfdf #fff #fff #dfdfdf}.x-resizable-handle-southeast{bottom:1px;right:1px}.x-resizable-over .x-resizable-handle-east,.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-west{background-image:url(../images/modx-theme/sizer/e-handle.gif)}.x-resizable-over .x-resizable-handle-north,.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-south{background-image:url(../images/modx-theme/sizer/s-handle.gif)}.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background-image:url(../images/modx-theme/sizer/se-handle.gif)}.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background-image:url(../images/modx-theme/sizer/nw-handle.gif)}.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background-image:url(../images/modx-theme/sizer/ne-handle.gif)}.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background-image:url(../images/modx-theme/sizer/sw-handle.gif)}.x-resizable-proxy{border-color:#575757}.x-resizable-overlay{background-color:#fff}.x-grid3{background-color:initial;background-image:none;border:1px solid #e4e9ee;border-radius:3px;overflow:hidden;padding:0}.x-grid-panel .x-panel-mc .x-panel-body{border:0}.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-grid3-row td,.x-grid3-summary-row td{border-left:1px solid #0000;padding-left:0}.x-grid3-hd-row td{border-left:1px solid #fff;border-right:none;text-align:initial}.x-grid3-hd-row td.x-grid3-cell-first,.x-grid3-row td.x-grid3-cell-first,.x-grid3-row td.x-grid3-summary-first{border-left:0}.x-grid3-hd-row td.x-grid3-cell-last,.x-grid3-row td.x-grid3-cell-last,.x-grid3-row td.x-grid3-summary-last{border-right:0}.x-grid-row-loading{background-color:#fff;background-image:url(../images/modx-theme/shared/loading-balls.gif)}.x-grid3-row{border-color:#fff #fff #efefef}.x-grid3-row.highlight-inserted{background-color:#dce0ea}.x-grid3-row-expanded .x-grid3-row-body{word-wrap:break-word;color:#888;margin:0 2px 0 -20px;padding:0 25px 15px}.x-grid3-row-expanded .x-grid3-row-body .desc{word-wrap:break-word}.x-grid3-row-alt{background-color:#f5f6f9}.x-panel-body-noheader .x-grid3-row{border-color:#0000}.x-panel-body-noheader .x-grid3-row-alt{border-bottom:1px solid #eaeaea;border-top:1px solid #eaeaea}.x-panel-body-noheader .x-grid3-row-alt .x-grid3-row-table{border-top:1px solid #0000}.x-grid3-row-over{background-color:#e0e8ef;background-image:none;border-bottom:1px solid #d1d9df}.x-grid3-resize-marker,.x-grid3-resize-proxy{background-color:#777}.x-grid3-header{background:#fff;border-bottom:1px solid #e4e9ee!important;padding:0}.x-panel-body-noheader .x-grid3-header{border:none}.x-grid3-header-offset{padding-left:0}.x-grid3-header .x-grid3-hd-row td{color:dimgray;font-weight:700;text-align:initial}.x-grid3-header-pop{border-left-color:#dfdfdf}.x-grid3-header-pop-inner{background-image:url(../images/modx-theme/grid/hd-pop.gif);border-left-color:#eee}td.sort-asc,td.sort-desc,td.x-grid3-hd-menu-open,td.x-grid3-hd-over{background:#fff;border-left-color:#fff}td.sort-asc .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner,td.x-grid3-hd-over .x-grid3-hd-inner{color:#696969}.sort-asc .x-grid3-sort-icon{background-image:url(../images/modx-theme/grid/sort_asc.gif)}.sort-desc .x-grid3-sort-icon{background-image:url(../images/modx-theme/grid/sort_desc.gif)}.x-panel-body-noheader .x-grid3-body{background-color:#fff}.x-grid3-cell-text,.x-grid3-hd-text{color:#515151}.x-grid3-split{background-image:url(../images/modx-theme/grid/grid-split.gif)}.x-grid3-hd-text{color:#464646}.x-dd-drag-proxy .x-grid3-hd-inner{background-color:#f2f2f2;background-image:url(../images/modx-theme/grid/grid3-hrow-over.gif);border-color:#c8c8c8}.col-move-top{background-image:url(../images/modx-theme/grid/col-move-top.gif)}.col-move-bottom{background-image:url(../images/modx-theme/grid/col-move-bottom.gif)}.x-grid3-row-selected{background-color:#f0f0f0;background-image:none;border-bottom:1px solid #e4e4e4!important;border-top:1px solid #e4e4e4!important;color:#565550}.x-grid3-row-last,.x-grid3-row-last .x-grid3-row-selected{border-bottom-color:#0000!important}.x-grid3-cell-selected{background-color:#e0eaef!important;color:#515151}.x-grid3-cell-selected span{color:#515151!important}.x-grid3-cell-selected .x-grid3-cell-text{color:#515151}.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker,.x-grid3-locked td.x-grid3-row-marker{background-color:#d7d9df!important;background-image:url(../images/modx-theme/grid/grid-hrow.gif)!important;border-right-color:#9c9c9c!important;border-top-color:#fff;color:#515151}.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div,.x-grid3-locked td.x-grid3-row-marker div{color:#464646!important}.x-grid3-dirty-cell{background-image:url(../images/modx-theme/grid/dirty.gif)}.x-grid3-bottombar,.x-grid3-topbar{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-grid3-bottombar .x-toolbar{border-top-color:#bcbcbc}.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background-image:url(../images/modx-theme/grid/grid3-special-col-bg.gif)!important;color:#515151!important}.x-grid3-hd-inner{font-weight:700;padding:10px}.ext-ie .x-grid3-hd-inner{width:auto}.x-grid3-cell-inner,.x-grid3-hd-inner{padding:10px}.x-props-grid .x-grid3-body .x-grid3-td-name{background-color:#fff!important;border-right-color:#eee}.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-asc.gif)}.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-desc.gif)}.xg-hmenu-lock .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-lock.gif)}.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-unlock.gif)}.x-grid3-hd-btn{background-color:#fff}.x-grid3-hd-btn:before{color:#77899f;content:"\f0d7";font-size:14px;font-style:normal;font-weight:900;left:0;position:absolute;right:0;text-align:center;top:14px}.x-grid3-hd-btn:hover{background-color:#fff}.x-grid3-body .x-grid3-td-expander{background-image:none;text-align:right}.x-grid3-row-collapsed .x-grid3-row-expander{height:27px;margin-top:10px}.x-grid3-row-collapsed .x-grid3-row-expander:before{color:#53595f;content:"\f0fe";font-size:14px;font-weight:400}.x-grid3-row-expanded .x-grid3-row-expander{height:27px;margin-top:10px}.x-grid3-row-expanded .x-grid3-row-expander:before{color:#53595f;content:"\f146";font-size:14px;font-weight:400}.x-grid3-body .x-grid3-td-checker{background-image:none;padding:10px 0 0}.x-grid3-hd-checker:not(.x-grid3-hd-inner),.x-grid3-row-checker{cursor:pointer}.x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-checker:before{color:#53595f;content:"\f0c8";display:inline-block;font-size:14px;font-weight:400;padding:3px 5px}.x-grid3-hd-checker-on .x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-hd-checker-on .x-grid3-row-checker:before,.x-grid3-row-selected .x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-selected .x-grid3-row-checker:before{content:"\f14a";font-weight:400}.x-grid3-body .x-grid3-td-numberer{background-color:#e5e5e5;border-bottom:1px solid #dadada;border-right:1px solid #dadada!important}.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{color:#444;padding-left:10px;padding-top:10px!important}.x-grid3-body .x-grid3-td-row-icon{background-image:url(../images/modx-theme/grid/grid3-special-col-bg.gif)}.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander,.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer{background-image:none}.x-grid3-check-col{cursor:pointer;margin-top:10px}.x-grid3-check-col:before{color:#53595f;content:"\f0c8";display:block;font-size:14px;font-weight:400;margin:0 auto;padding:3px 5px;text-align:left;width:14px}.x-grid3-check-col-on{cursor:pointer;margin-top:10px}.x-grid3-check-col-on:before{color:#53595f;content:"\f14a";display:block;font-size:14px;font-weight:400;margin:0 auto;padding:3px 5px;text-align:left;width:14px}.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1}.x-grid-group-hd{border-bottom-color:#53595f}.x-grid-group-hd div.x-grid-group-title{color:#53595f;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;font-weight:700;padding:10px 0}.x-grid-group-hd div.x-grid-group-title:before{content:"\f146";font-size:14px;font-style:normal;font-weight:400;padding:0 5px}.x-grid-group-collapsed .x-grid-group-hd div.x-grid-group-title:before{content:"\f0fe";font-style:normal;font-weight:400;padding:0 5px}.x-group-by-icon{background-image:url(../images/modx-theme/grid/group-by.gif)}.x-cols-icon{background-image:url(../images/modx-theme/grid/columns.gif)}.x-show-groups-icon{background-image:url(../images/modx-theme/grid/group-by.gif)}.x-grid-empty{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-align:center}.x-grid-with-col-lines .x-grid3-row td.x-grid3-cell{border-right-color:#ededed}.x-grid-with-col-lines .x-grid3-row{border-left:0;border-top:0}.x-grid-with-col-lines .x-grid3-row-selected{border-top-color:#e4e4e4}.x-dd-drag-ghost{background-color:#fff;border-color:#ddd #bbb #bbb #dfdfdf;color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-no.gif)}.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-yes.gif)}.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-add.gif)}.x-view-selector{background-color:#d8d8d8;border-color:#8d8d8d}.x-tip{background:#575757;border-radius:3px;max-width:400px;min-width:200px;padding:5px;width:auto!important}.x-tip .x-tip-close{background-image:url(../images/modx-theme/qtip/close.gif)}.x-tip .x-tip-bc,.x-tip .x-tip-bl,.x-tip .x-tip-br,.x-tip .x-tip-ml,.x-tip .x-tip-mr,.x-tip .x-tip-tc,.x-tip .x-tip-tl,.x-tip .x-tip-tr{background-image:none}.x-tip .x-tip-mc{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-tip .x-tip-ml{background-color:initial}.x-tip .x-tip-header-text{color:#f0f0f0;font:normal 13px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-tip .x-tip-body{color:#f0f0f0;font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:auto!important}.x-tip img{background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png);display:block;height:auto;max-width:100%;width:100%}.x-form-invalid-tip .x-tip-bc,.x-form-invalid-tip .x-tip-bl,.x-form-invalid-tip .x-tip-br,.x-form-invalid-tip .x-tip-ml,.x-form-invalid-tip .x-tip-mr,.x-form-invalid-tip .x-tip-tc,.x-form-invalid-tip .x-tip-tl,.x-form-invalid-tip .x-tip-tr{background-image:url(../images/modx-theme/form/error-tip-corners.gif)}.x-form-invalid-tip .x-tip-body{background-image:url(../images/modx-theme/form/exclamation.gif)}.x-tip-anchor{background-image:url(../images/modx-theme/qtip/tip-anchor-sprite.gif)}.x-menu{background-color:#fff;border:1px solid #e4e4e4;border-radius:3px;box-shadow:0 4px 6px #00000026}.x-menu-list{padding:0}.x-menu-list li{border:0;margin:0;padding:0}.x-menu-list li:first-child{margin-top:3px}.x-menu-list li:last-child{margin-bottom:3px}.x-menu-list li.x-menu-date-item{margin:0}.x-menu-list li a.x-menu-item{color:#515151;font-size:13px;padding:3px 21px 3px 27px}.x-menu-list li a.x-menu-item:hover{color:#515151}.x-menu-list li.x-menu-item-active{background-color:#f0f0f0}.x-menu-list li.x-menu-item-active a{color:#515151}.x-menu-floating{border-color:#c7c7c7}html[dir=rtl] .x-menu-floating{left:unset!important;right:0}.x-menu-nosep{background-image:none}.x-menu-list-item{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-menu-item-arrow{background-image:url(../images/modx-theme/menu/menu-parent.gif)}.x-menu-sep{background-color:#e4e4e4;border-bottom:none;margin:2px 0}.x-menu-item-active a.x-menu-item{border:0;margin:0}.x-menu-check-item .x-menu-item-icon{background-image:url(../images/modx-theme/menu/unchecked.gif)}.x-menu-item-checked .x-menu-item-icon{background-image:url(../images/modx-theme/menu/checked.gif)}.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background-image:url(../images/modx-theme/menu/group-checked.gif)}.x-menu-group-item .x-menu-item-icon{background-image:none}.x-menu-plain{background-color:#fff!important}.x-cycle-menu .x-menu-item-checked{background-color:#dfdfdf;border-color:#b9b9b9!important}.x-menu-scroller-top{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-menu-scroller-bottom{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-box-ml,.x-box-tl{background-color:#fafafa;background-image:none;color:#393939;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700}.x-box-mc p{font-weight:400;margin-bottom:5px}.x-box-tl{border-top:1px solid #dedede}.x-box-ml,.x-box-tl{background-color:#fafafacc}.x-box-bl,.x-box-ml,.x-box-tl{border-left:1px solid #dedede;border-right:1px solid #dedede}.x-box-bl{background-color:#e6e6e6cc;border-bottom:1px solid #dedede}.x-box-mc h3{font-size:14px;font-weight:700}.x-box-bc,.x-box-bl,.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr,.x-box-br,.x-box-mr{background-image:none}.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../images/modx-theme/box/tb-gray.gif)}.x-box-blue .x-box-mc{background-color:#d8d8d8}.x-box-blue .x-box-mc h3{color:#363636}.x-box-blue .x-box-ml{background-image:url(../images/modx-theme/box/l-gray.gif)}.x-box-blue .x-box-mr{background-image:url(../images/modx-theme/box/r-gray.gif)}#x-debug-browser .x-tree .x-tree-node a span{color:#333;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px}#x-debug-browser .x-tree a i{color:#cf1124;font-style:normal}#x-debug-browser .x-tree a em{color:#999}#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background-color:#d8d8d8}.x-panel-body,.x-panel-bwrap{overflow:visible}.x-panel-body{border:0;border-radius:3px}#modx-panel-packages-browser .x-panel-body{border-radius:0}.x-grid-panel .x-panel-body{background-color:#f5f5f5;border:0}.x-grid-panel .x-panel-body-noheader{background-color:initial;border:0;padding:0!important}.x-panel-tl .x-panel-header{color:#6a6a6a;font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700}.x-panel-tl .x-panel-icon{background-position:0 8px}.x-panel-tc{background-image:none}.x-panel-bl,.x-panel-br,.x-panel-tl,.x-panel-tr{background-image:none;border-bottom-color:#dfdfdf}.x-panel-bc{background-image:none}.x-panel-tc{background-color:#f5f5f5}.x-panel-tl{border:1px solid #e3e3e3;border-bottom:0 #e3e3e3}.x-panel-tl .x-panel-header{border-bottom:1px solid #e4e4e4;padding:10px 0}.x-panel-bc .x-panel-footer{padding-bottom:0}.x-panel-btns{background-color:initial;padding:15px 0 1px}.x-panel-btns td.x-toolbar-cell{padding:0}.x-panel-mc{background-color:#f5f5f5;border-bottom:1px solid #dfdfdf;border-top:1px solid #fafafa;padding:10px 5px}.x-panel-bl,.x-panel-ml,.x-panel-tl{background-color:#f5f5f5;padding-left:8px}.x-panel-ml,.x-panel-mr{background-image:none}.x-panel-bl{border:1px solid #e3e3e3;border-top:0 #e3e3e3;padding-bottom:8px}.x-panel-ml{border-left:1px solid #e3e3e3;border-right:1px solid #e3e3e3}.x-panel-mr{padding-right:8px}.x-panel-br,.x-panel-mr,.x-panel-tr{background-color:#f7f7f7}.x-tool{background:none;border-radius:50%;color:#515151;font-size:14px;margin:0 3px 0 0;position:relative;transition:all .3s}.x-tool,.x-tool:after{height:18px;width:18px}.x-tool:after{box-sizing:border-box;left:0;padding-top:2px;position:absolute;text-align:center;top:0;vertical-align:middle}.x-tool:hover{background:#234368;color:#fff}.x-tool.x-tool-toggle:after{content:"\f077";padding-top:2px}.x-tool.x-tool-toggle-over:after,.x-tool.x-tool-toggle:hover:after{content:"\f077"}.x-panel-collapsed .x-tool.x-tool-toggle-over:after,.x-panel-collapsed .x-tool.x-tool-toggle:after,.x-panel-collapsed .x-tool.x-tool-toggle:hover:after{content:"\f078";padding-top:3px}.x-tool.x-tool-close:after{content:"\f00d"}.x-tool.x-tool-minimize:after{content:"\f066"}.x-tool.x-tool-maximize:after{content:"\f065"}.x-tool.x-tool-restore:after{content:"\f066"}.x-tool.x-tool-gear:after{content:"\f013"}.x-tool.x-tool-pin:after{content:"\f111"}.x-tool.x-tool-pin-over:after,.x-tool.x-tool-pin:hover:after,.x-tool.x-tool-unpin:after{content:"\f192"}.x-tool.x-tool-unpin-over:after,.x-tool.x-tool-unpin:hover:after{content:"\f111"}.x-tool.x-tool-right:after{content:"\f054";padding-left:1px}.x-tool.x-tool-left:after{content:"\f053";padding-right:2px}.x-tool.x-tool-up:after{content:"\f077";padding-top:1px}.x-tool.x-tool-down:after{content:"\f078";padding-top:1px}.x-tool.x-tool-minus:after{content:"\f068"}.x-tool.x-tool-plus:after{content:"\f067"}.x-panel-dd-spacer{border-color:#dfdfdf}.x-panel-fbar div,.x-panel-fbar input,.x-panel-fbar label,.x-panel-fbar select,.x-panel-fbar span,.x-panel-fbar td{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-panel-header{border:1px solid silver;border-radius:3px 3px 0 0;font-size:14px;font-weight:700;margin-top:0;padding:10px 10px 8px}.x-portal-space{border-bottom:1px solid #afafaf;padding:0}.x-column-inner{overflow:visible}.x-column-inner>.x-column{margin-right:0;overflow:visible}.x-column-inner>.x-column:not(.x-hide-display)~.x-column{margin-left:15px;margin-right:0}.x-panel-nofooter .x-panel-bc{background-image:none;height:0}.x-panel-ghost{background-color:#dbdbdb}.x-panel-dd-spacer,.x-panel-ghost ul{border-color:#d0d0d0}.x-dlg-mask{background-color:#ccc}.x-html-editor-wrap{background-color:#fff;border-color:#bcbcbc}.x-panel-noborder .x-panel-header-noborder{border-bottom-color:#0000}.x-border-layout-ct{background-color:#fafafa}.x-accordion-hd{background-image:url(../images/modx-theme/panel/light-hd.gif);color:#222;font-weight:400}.x-layout-collapsed{background-color:#e4e4e4;border-color:#dfdfdf;width:7px!important}.x-layout-collapsed-over{background-color:#e6e6e6}.x-layout-split-west .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-left.gif)}.x-layout-split-east .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-right.gif)}.x-layout-split-north .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-layout-split-south .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-layout-cmini-west .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-right.gif)}.x-layout-cmini-east .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-left.gif)}.x-layout-cmini-north .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-layout-cmini-south .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-list-header{background-color:#f9f9f9;background-image:url(../images/modx-theme/grid/grid3-hrow.gif)}.x-list-header-inner div em{border-left-color:#dfdfdf}.x-list-body dt em,.x-list-header-inner div em{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-list-over{background-color:#eee}.x-list-selected{background-color:#e7e7e7}.x-list-resizer{border-left-color:#555;border-right-color:#555}.x-list-header-inner em.sort-asc,.x-list-header-inner em.sort-desc{background-image:url(../images/modx-theme/grid/sort-hd.gif);border-color:#dfdfdf}.x-slider-horz,.x-slider-horz .x-slider-end,.x-slider-horz .x-slider-inner{background-image:url(../images/modx-theme/slider/slider-bg.png)}.x-slider-horz .x-slider-thumb{background-image:url(../images/modx-theme/slider/slider-thumb.png)}.x-slider-vert,.x-slider-vert .x-slider-end,.x-slider-vert .x-slider-inner{background-image:url(../images/modx-theme/slider/slider-v-bg.png)}.x-slider-vert .x-slider-thumb{background-image:url(../images/modx-theme/slider/slider-v-thumb.png)}.x-portal .x-panel-tl .x-panel-header{background:none;font-size:14px;padding:8px 0}.x-portal .x-tool{margin-top:0}.x-portal .x-panel-body{font-weight:400;margin-bottom:5px;padding:0;text-transform:none}.x-portal-space{margin-bottom:5px}.x-grid3-body .x-grid3-td-checker{background-image:none!important}.modx-combo-desc{color:#515151;font-size:.9em;font-style:italic}.modx-combo-title{font-weight:700}.modx-grid-draggable .x-grid3-row{cursor:move}#modx-grid-deprecated-log .x-grid-group-hd div{height:auto}.actions button.primary-button,.primary-button.inline-button,.primary-button.x-btn,.primary-button.x-date-mp-cancel,.primary-button.x-date-mp-ok,.primary-button.x-form-trigger,.primary-button.x-superboxselect-item,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:first-child .x-btn,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:nth-child(2) .x-btn{background:#6cb24a;box-shadow:none;color:#fff;transition:background-color .2s ease-out}.actions button.x-btn-focus.primary-button:not(.x-btn-over),.x-btn-focus.primary-button.inline-button:not(.x-btn-over),.x-btn-focus.primary-button.x-btn:not(.x-btn-over),.x-btn-focus.primary-button.x-date-mp-cancel:not(.x-btn-over),.x-btn-focus.primary-button.x-date-mp-ok:not(.x-btn-over),.x-btn-focus.primary-button.x-form-trigger:not(.x-btn-over),.x-btn-focus.primary-button.x-superboxselect-item:not(.x-btn-over),.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:first-child .x-btn-focus.x-btn:not(.x-btn-over),.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:nth-child(2) .x-btn-focus.x-btn:not(.x-btn-over){background:#6cb24a;color:#fff}.actions button.primary-button:hover,.actions button.x-btn-over.primary-button,.primary-button.inline-button:hover,.primary-button.x-btn:hover,.primary-button.x-date-mp-cancel:hover,.primary-button.x-date-mp-ok:hover,.primary-button.x-form-trigger:hover,.primary-button.x-superboxselect-item:hover,.x-btn-over.primary-button.inline-button,.x-btn-over.primary-button.x-btn,.x-btn-over.primary-button.x-date-mp-cancel,.x-btn-over.primary-button.x-date-mp-ok,.x-btn-over.primary-button.x-form-trigger,.x-btn-over.primary-button.x-superboxselect-item,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:first-child .x-btn-over.x-btn,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:first-child .x-btn:hover,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:nth-child(2) .x-btn-over.x-btn,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:nth-child(2) .x-btn:hover{background:#528738;box-shadow:none;color:#fff}.actions button.primary-button:active,.actions button.x-btn-click.primary-button,.primary-button.inline-button:active,.primary-button.x-btn:active,.primary-button.x-date-mp-cancel:active,.primary-button.x-date-mp-ok:active,.primary-button.x-form-trigger:active,.primary-button.x-superboxselect-item:active,.x-btn-click.primary-button.inline-button,.x-btn-click.primary-button.x-btn,.x-btn-click.primary-button.x-date-mp-cancel,.x-btn-click.primary-button.x-date-mp-ok,.x-btn-click.primary-button.x-form-trigger,.x-btn-click.primary-button.x-superboxselect-item,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:first-child .x-btn-click.x-btn,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:first-child .x-btn:active,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:nth-child(2) .x-btn-click.x-btn,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:nth-child(2) .x-btn:active{background:#385c26;box-shadow:none;color:#fff}.actions button.x-item-disabled.primary-button,.x-item-disabled.primary-button.inline-button,.x-item-disabled.primary-button.x-btn,.x-item-disabled.primary-button.x-date-mp-cancel,.x-item-disabled.primary-button.x-date-mp-ok,.x-item-disabled.primary-button.x-form-trigger,.x-item-disabled.primary-button.x-superboxselect-item,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:first-child .x-item-disabled.x-btn,.x-window.x-window-plain .x-toolbar-left-row .x-toolbar-cell:nth-child(2) .x-item-disabled.x-btn{background:#6cb24a;box-shadow:none;color:#fff;filter:alpha(opacity=60);opacity:.6}.actions button,.inline-button,.x-btn,.x-date-mp-cancel,.x-date-mp-ok,.x-date-picker .x-btn,.x-form-trigger,.x-superboxselect-item{zoom:1;background-color:#fff;background-repeat:no-repeat;border:0;border-radius:3px;box-shadow:0 0 0 1px #e4e4e4;color:#515151;cursor:pointer;display:inline-block;*display:inline;line-height:1;padding:10px 15px;position:relative;text-decoration:none;transition:background-color .2s ease-out}.actions .ext-webkit button em,.ext-webkit .actions button em,.ext-webkit .inline-button em,.ext-webkit .x-btn em,.ext-webkit .x-date-mp-cancel em,.ext-webkit .x-date-mp-ok em,.ext-webkit .x-form-trigger em,.ext-webkit .x-superboxselect-item em{font-size:0}.actions button button,.inline-button button,.x-btn button,.x-date-mp-cancel button,.x-date-mp-ok button,.x-date-picker .x-btn button,.x-form-trigger button,.x-superboxselect-item button{background-repeat:no-repeat;color:inherit;cursor:pointer;font-size:13px;font-style:normal;height:16px;line-height:1;min-width:100%;padding:0}.actions .ext-ie8 button button,.ext-ie8 .actions button button,.ext-ie8 .inline-button button,.ext-ie8 .x-btn button,.ext-ie8 .x-date-mp-cancel button,.ext-ie8 .x-date-mp-ok button,.ext-ie8 .x-form-trigger button,.ext-ie8 .x-superboxselect-item button{padding-top:0}.actions button .x-btn-arrow,.actions button .x-btn-split,.inline-button .x-btn-arrow,.inline-button .x-btn-split,.x-btn .x-btn-arrow,.x-btn .x-btn-split,.x-date-mp-cancel .x-btn-arrow,.x-date-mp-cancel .x-btn-split,.x-date-mp-ok .x-btn-arrow,.x-date-mp-ok .x-btn-split,.x-date-picker .x-btn .x-btn-arrow,.x-date-picker .x-btn .x-btn-split,.x-form-trigger .x-btn-arrow,.x-form-trigger .x-btn-split,.x-superboxselect-item .x-btn-arrow,.x-superboxselect-item .x-btn-split{display:block;padding-right:20px;position:relative}.actions button .x-btn-arrow:before,.actions button .x-btn-split:before,.inline-button .x-btn-arrow:before,.inline-button .x-btn-split:before,.x-btn .x-btn-arrow:before,.x-btn .x-btn-split:before,.x-date-mp-cancel .x-btn-arrow:before,.x-date-mp-cancel .x-btn-split:before,.x-date-mp-ok .x-btn-arrow:before,.x-date-mp-ok .x-btn-split:before,.x-form-trigger .x-btn-arrow:before,.x-form-trigger .x-btn-split:before,.x-superboxselect-item .x-btn-arrow:before,.x-superboxselect-item .x-btn-split:before{color:inherit;content:"\f0d7";font-size:14px;margin-top:0;position:absolute;right:0;top:50%}.actions button .x-btn-arrow button,.actions button .x-btn-split button,.inline-button .x-btn-arrow button,.inline-button .x-btn-split button,.x-btn .x-btn-arrow button,.x-btn .x-btn-split button,.x-date-mp-cancel .x-btn-arrow button,.x-date-mp-cancel .x-btn-split button,.x-date-mp-ok .x-btn-arrow button,.x-date-mp-ok .x-btn-split button,.x-form-trigger .x-btn-arrow button,.x-form-trigger .x-btn-split button,.x-superboxselect-item .x-btn-arrow button,.x-superboxselect-item .x-btn-split button{border-right-color:inherit;border-right-style:solid;border-right-width:1px;padding-right:10px}.actions button.x-btn-focus:not(.x-btn-over),.x-btn-focus.inline-button:not(.x-btn-over),.x-btn-focus.x-btn:not(.x-btn-over),.x-btn-focus.x-date-mp-cancel:not(.x-btn-over),.x-btn-focus.x-date-mp-ok:not(.x-btn-over),.x-btn-focus.x-form-trigger:not(.x-btn-over),.x-btn-focus.x-superboxselect-item:not(.x-btn-over){background:#fff;color:#515151}.actions button.x-btn-click,.actions button.x-btn-over,.actions button:active,.actions button:hover,.inline-button:active,.inline-button:hover,.x-btn-click.inline-button,.x-btn-click.x-btn,.x-btn-click.x-date-mp-cancel,.x-btn-click.x-date-mp-ok,.x-btn-click.x-form-trigger,.x-btn-click.x-superboxselect-item,.x-btn-over.inline-button,.x-btn-over.x-btn,.x-btn-over.x-date-mp-cancel,.x-btn-over.x-date-mp-ok,.x-btn-over.x-form-trigger,.x-btn-over.x-superboxselect-item,.x-btn:active,.x-btn:hover,.x-date-mp-cancel:active,.x-date-mp-cancel:hover,.x-date-mp-ok:active,.x-date-mp-ok:hover,.x-form-trigger:active,.x-form-trigger:hover,.x-superboxselect-item:active,.x-superboxselect-item:hover{background-color:#e4e4e4;box-shadow:#dcdcdc;color:#515151}.actions button.x-btn-menu-active .x-btn-split:before,.x-btn-menu-active.inline-button .x-btn-split:before,.x-btn-menu-active.x-btn .x-btn-split:before,.x-btn-menu-active.x-date-mp-cancel .x-btn-split:before,.x-btn-menu-active.x-date-mp-ok .x-btn-split:before,.x-btn-menu-active.x-form-trigger .x-btn-split:before,.x-btn-menu-active.x-superboxselect-item .x-btn-split:before{content:"\f0d8"}.actions button.x-item-disabled,.x-item-disabled.inline-button,.x-item-disabled.x-btn,.x-item-disabled.x-date-mp-cancel,.x-item-disabled.x-date-mp-ok,.x-item-disabled.x-form-trigger,.x-item-disabled.x-superboxselect-item{background-color:#fff;box-shadow:0 0 0 1px #e4e4e4;color:#1e1e1e;filter:alpha(opacity=60);opacity:.6}button{margin:2px}.x-panel-btns .x-btn{margin:0 0 0 7px}.actions{bottom:8px;margin:0;overflow:visible;position:absolute}.actions li{float:left;line-height:.7;margin-right:2px}.actions button,.inline-button,.x-date-mp-cancel,.x-date-mp-ok,.x-date-picker .x-btn,.x-form-trigger,.x-superboxselect-item{box-shadow:0 0 0 1px #dcdcdc;box-sizing:initial;padding:5px}.actions button:active,.actions button:focus,.actions button:hover,.inline-button:active,.inline-button:focus,.inline-button:hover,.x-date-mp-cancel:active,.x-date-mp-cancel:focus,.x-date-mp-cancel:hover,.x-date-mp-ok:active,.x-date-mp-ok:focus,.x-date-mp-ok:hover,.x-date-picker .x-btn:active,.x-date-picker .x-btn:focus,.x-date-picker .x-btn:hover,.x-form-trigger:active,.x-form-trigger:focus,.x-form-trigger:hover,.x-superboxselect-item:active,.x-superboxselect-item:focus,.x-superboxselect-item:hover{box-shadow:#999}.actions button.yellow,.inline-button.yellow,.x-date-mp-cancel.yellow,.x-date-mp-ok.yellow,.x-date-picker .x-btn.yellow,.x-form-trigger.yellow,.x-superboxselect-item.yellow{background:#fce588;box-shadow:0 0 0 1px #fce588;color:#515151!important}.actions button.yellow:focus,.actions button.yellow:hover,.inline-button.yellow:focus,.inline-button.yellow:hover,.x-date-mp-cancel.yellow:focus,.x-date-mp-cancel.yellow:hover,.x-date-mp-ok.yellow:focus,.x-date-mp-ok.yellow:hover,.x-date-picker .x-btn.yellow:focus,.x-date-picker .x-btn.yellow:hover,.x-form-trigger.yellow:focus,.x-form-trigger.yellow:hover,.x-superboxselect-item.yellow:focus,.x-superboxselect-item.yellow:hover{background:#fbe06f;box-shadow:0 0 0 1px #fbe06f}.actions button.yellow:active,.inline-button.yellow:active,.x-date-mp-cancel.yellow:active,.x-date-mp-ok.yellow:active,.x-date-picker .x-btn.yellow:active,.x-form-trigger.yellow:active,.x-superboxselect-item.yellow:active{background:#fbda56;box-shadow:0 0 0 1px #fbda56}.actions button.orange,.inline-button.orange,.x-date-mp-cancel.orange,.x-date-mp-ok.orange,.x-date-picker .x-btn.orange,.x-form-trigger.orange,.x-superboxselect-item.orange{background:#f0b429;box-shadow:0 0 0 1px #f0b429;color:#fff!important}.actions button.orange:focus,.actions button.orange:hover,.inline-button.orange:focus,.inline-button.orange:hover,.x-date-mp-cancel.orange:focus,.x-date-mp-cancel.orange:hover,.x-date-mp-ok.orange:focus,.x-date-mp-ok.orange:hover,.x-date-picker .x-btn.orange:focus,.x-date-picker .x-btn.orange:hover,.x-form-trigger.orange:focus,.x-form-trigger.orange:hover,.x-superboxselect-item.orange:focus,.x-superboxselect-item.orange:hover{background:#eeac11;box-shadow:0 0 0 1px #eeac11}.actions button.orange:active,.inline-button.orange:active,.x-date-mp-cancel.orange:active,.x-date-mp-ok.orange:active,.x-date-picker .x-btn.orange:active,.x-form-trigger.orange:active,.x-superboxselect-item.orange:active{background:#d79b0f;box-shadow:0 0 0 1px #d79b0f}.actions button.red,.inline-button.red,.x-date-mp-cancel.red,.x-date-mp-ok.red,.x-date-picker .x-btn.red,.x-form-trigger.red,.x-superboxselect-item.red{background:#cf1124;box-shadow:0 0 0 1px #cf1124;color:#fff!important}.actions button.red:focus,.actions button.red:hover,.inline-button.red:focus,.inline-button.red:hover,.x-date-mp-cancel.red:focus,.x-date-mp-cancel.red:hover,.x-date-mp-ok.red:focus,.x-date-mp-ok.red:hover,.x-date-picker .x-btn.red:focus,.x-date-picker .x-btn.red:hover,.x-form-trigger.red:focus,.x-form-trigger.red:hover,.x-superboxselect-item.red:focus,.x-superboxselect-item.red:hover{background:#c11022;box-shadow:0 0 0 1px #c11022}.actions button.red:active,.inline-button.red:active,.x-date-mp-cancel.red:active,.x-date-mp-ok.red:active,.x-date-picker .x-btn.red:active,.x-form-trigger.red:active,.x-superboxselect-item.red:active{background:#b30f1f;box-shadow:0 0 0 1px #b30f1f}.actions button.green,.inline-button.green,.x-date-mp-cancel.green,.x-date-mp-ok.green,.x-date-picker .x-btn.green,.x-form-trigger.green,.x-superboxselect-item.green{background:#6cb24a;box-shadow:0 0 0 1px #6cb24a;color:#fff!important}.actions button.green:focus,.actions button.green:hover,.inline-button.green:focus,.inline-button.green:hover,.x-date-mp-cancel.green:focus,.x-date-mp-cancel.green:hover,.x-date-mp-ok.green:focus,.x-date-mp-ok.green:hover,.x-date-picker .x-btn.green:focus,.x-date-picker .x-btn.green:hover,.x-form-trigger.green:focus,.x-form-trigger.green:hover,.x-superboxselect-item.green:focus,.x-superboxselect-item.green:hover{background:#61a043;box-shadow:0 0 0 1px #61a043}.actions button.green:active,.inline-button.green:active,.x-date-mp-cancel.green:active,.x-date-mp-ok.green:active,.x-date-picker .x-btn.green:active,.x-form-trigger.green:active,.x-superboxselect-item.green:active{background:#568e3b;box-shadow:0 0 0 1px #568e3b}.actions button.blue,.inline-button.blue,.x-date-mp-cancel.blue,.x-date-mp-ok.blue,.x-date-picker .x-btn.blue,.x-form-trigger.blue,.x-superboxselect-item.blue{background:#4a90e2;box-shadow:0 0 0 1px #4a90e2;color:#fff!important}.actions button.blue:focus,.actions button.blue:hover,.inline-button.blue:focus,.inline-button.blue:hover,.x-date-mp-cancel.blue:focus,.x-date-mp-cancel.blue:hover,.x-date-mp-ok.blue:focus,.x-date-mp-ok.blue:hover,.x-date-picker .x-btn.blue:focus,.x-date-picker .x-btn.blue:hover,.x-form-trigger.blue:focus,.x-form-trigger.blue:hover,.x-superboxselect-item.blue:focus,.x-superboxselect-item.blue:hover{background:#3483de;box-shadow:0 0 0 1px #3483de}.actions button.blue:active,.inline-button.blue:active,.x-date-mp-cancel.blue:active,.x-date-mp-ok.blue:active,.x-date-picker .x-btn.blue:active,.x-form-trigger.blue:active,.x-superboxselect-item.blue:active{background:#2275d7;box-shadow:0 0 0 1px #2275d7}.x-toolbar .x-form-field-trigger-wrap{background:#fff;border:0;border-radius:3px;box-shadow:0 0 0 1px #e4e4e4;cursor:pointer;line-height:1}.x-toolbar .x-form-field-trigger-wrap .x-form-text{background:#fff;border:0;margin:0!important}.x-toolbar .x-form-field-trigger-wrap .x-form-trigger:before{margin-top:0}.x-toolbar .x-form-field-trigger-wrap.x-trigger-wrap-focus{box-shadow:0 0 0 1px #999}html[dir=rtl] .x-toolbar-left table{float:right}.x-toolbar .x-toolbar-left-row .x-btn,.x-toolbar .x-toolbar-left-row .x-form-field-trigger-wrap,.x-toolbar .x-toolbar-left-row .x-form-text{margin:0 3px}.x-toolbar .x-toolbar-left-row td .x-btn{display:block}.x-toolbar .x-toolbar-left-row .x-form-filter{border-radius:3px 0 0 3px;z-index:1}.x-toolbar .x-toolbar-left-row .x-form-filter:not(.x-form-empty-field){border-color:#000}.x-toolbar .x-toolbar-left-row .x-form-filter.x-form-focus{border-color:#999}.x-toolbar .x-toolbar-left-row .x-form-filter-clear{border-radius:0 3px 3px 0;margin-right:0}.x-toolbar .x-toolbar-right-row .x-btn,.x-toolbar .x-toolbar-right-row .x-form-field-trigger-wrap,.x-toolbar .x-toolbar-right-row .x-form-text{margin:0 3px}.x-toolbar .x-toolbar-right-row td .x-btn{display:block}.x-toolbar .x-toolbar-right-row .x-form-filter{border-radius:3px 0 0 3px;z-index:1}.x-toolbar .x-toolbar-right-row .x-form-filter:not(.x-form-empty-field){border-color:#000}.x-toolbar .x-toolbar-right-row .x-form-filter.x-form-focus{border-color:#999}.x-toolbar .x-toolbar-right-row .x-form-filter-clear{border-radius:0 3px 3px 0;margin-left:0}.x-toolbar .x-form-text{border-radius:3px;font-size:13px!important;padding:8px 13px}.x-toolbar.x-small-editor .x-form-text{padding-top:8px}.x-toolbar .xtb-sep{margin:0;width:0}.x-tree .x-toolbar .x-btn{padding:7px}.x-tree .x-toolbar .x-btn-icon{box-shadow:none;padding:7px}.x-tree .x-toolbar .x-btn-icon.x-btn-over{background:none;box-shadow:none;color:#234368}.x-tree .x-toolbar .x-btn-icon.x-btn-click{background:none;box-shadow:none;color:#1b3451}.x-tree .x-toolbar .x-btn-icon:before{content:none}.x-tree .x-toolbar .x-toolbar-left-row .x-form-field-wrap,.x-tree .x-toolbar .x-toolbar-right-row .x-form-field-wrap{margin-left:6px!important;margin-right:6px}#modx-action-buttons{background:#f1f1f1;border:0;border-radius:3px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;left:auto;padding:.5rem 1rem;position:fixed;right:0;top:0;z-index:12}#modx-action-buttons .x-toolbar-cell{padding:.25rem}#modx-action-buttons .x-btn{margin:0}#modx-action-buttons #modx-abtn-menu .x-btn-split{padding:0}#modx-action-buttons #modx-abtn-menu .x-btn-split:before{display:none}#modx-action-buttons #modx-abtn-menu .x-btn-split .x-btn-text{border:none;padding:0}#modx-action-buttons .x-toolbar-left{zoom:1;width:auto!important}@media screen and (max-width:960px){#modx-action-buttons{background:#0000;border-radius:0;bottom:auto;left:auto;max-width:100%;padding:0 15px;position:relative;right:auto;top:auto}#modx-action-buttons table table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets),#modx-action-buttons table table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody{display:block}#modx-action-buttons table table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr{display:flex;flex-wrap:wrap;margin-left:auto;margin-right:auto;max-width:1200px}#modx-action-buttons table table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr:after{clear:both;content:"";display:block}#modx-action-buttons table table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr td{display:inline-block;flex-grow:1;float:left;margin-bottom:1em;padding:0!important}#modx-action-buttons table table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr td .x-btn{margin-left:3px;margin-right:3px}#modx-panel-welcome #modx-action-buttons{display:none}#modx-action-buttons .x-toolbar-cell{margin:5px;width:auto}.tab-panel-wrapper .x-panel-tbar table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets),.tab-panel-wrapper .x-panel-tbar table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody{display:block}.tab-panel-wrapper .x-panel-tbar table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr{display:flex;flex-wrap:wrap;margin-left:auto;margin-right:auto;max-width:1200px}.tab-panel-wrapper .x-panel-tbar table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr:after{clear:both;content:"";display:block}.tab-panel-wrapper .x-panel-tbar table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr td{display:inline-block;flex-grow:1;float:left;margin-bottom:1em;padding:0!important}.tab-panel-wrapper .x-panel-tbar table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr td .x-btn{margin-left:3px;margin-right:3px}.tab-panel-wrapper .x-panel-tbar .x-toolbar-left input,.tab-panel-wrapper .x-panel-tbar .x-toolbar-right input{box-sizing:border-box;height:auto!important;margin-left:0;width:100%}html.ext-strict body #modx-container .x-small-editor .x-form-text{height:auto!important}#modx-grid-element-properties table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets),#modx-grid-element-properties table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody{display:block}#modx-grid-element-properties table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr{display:flex;flex-wrap:wrap;margin-left:auto;margin-right:auto;max-width:1200px}#modx-grid-element-properties table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr:after{clear:both;content:"";display:block}#modx-grid-element-properties table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr td{display:inline-block;flex-grow:1;float:left;margin-bottom:1em;padding:0!important}#modx-grid-element-properties table:not(#modx-tree-panel-usergroup table,#modx-grid-lexicon table,#modx-panel-property-sets) tbody tr td .x-btn{margin-left:3px;margin-right:3px}#modx-grid-element-properties .x-toolbar-left{margin-bottom:0}#modx-grid-element-properties .x-toolbar-cell>*{box-sizing:border-box;margin-left:auto;margin-right:auto;width:100%!important}}.x-btn-icon button{font-size:18px;height:18px;position:relative;width:18px}.x-btn-icon.arrow_up button{background:none!important;position:relative}.x-btn-icon.arrow_up button:before{bottom:auto;content:"\f3bf";top:1px}.x-btn-icon.arrow_down button{background:none!important;position:relative}.x-btn-icon.arrow_down button:before{bottom:auto;content:"\f3be";top:1px}.x-btn-icon.refresh button{background:none!important;position:relative}.x-btn-icon.refresh button:before{bottom:auto;content:"\f021";top:1px}.x-btn-icon.icon-folder button:before{content:"\f07b"}.x-btn-icon.icon-page_white button:before{content:"\f15c"}.x-btn-icon.icon-file_upload button:before{content:"\f35b"}.x-btn-icon.icon-file_manager button:before{content:"\f14d"}.x-btn-text-icon button{padding-left:20px!important}.x-html-editor-tb .x-btn{background-color:initial;background-image:none;border:0;box-shadow:none;margin:0}.x-html-editor-tb .x-btn-over{border:0}.x-btn-group{border:1px solid #dbe0e4;border-radius:3px;margin-right:2px;padding:0}.x-btn-group .x-btn{background-color:initial;background-image:none;border:1px solid #0000;box-shadow:0 0 1px #0000}.x-btn-group .x-btn button{color:#868b8f;height:auto!important}.x-btn-group .x-btn-over{background:#dfdfdf;background:#f0f0f0;border:1px solid #dbe0e4}.x-btn-group .x-btn-over button{color:#5b7a98}.x-btn-group .x-btn-click{background-color:#fff;background-image:none;box-shadow:inset 0 0 3px #aaa;margin:0 2px 0 0}.x-btn-group-bwrap{padding:1px 0 0}.x-btn-group-header{background-color:#dbe0e4;color:#73797f;text-shadow:0 1px 0 #fafafa}.x-btn-group-tl,.x-btn-group-tr{background-image:none;padding:0}.x-btn-group-bc,.x-btn-group-bl,.x-btn-group-br,.x-btn-group-ml,.x-btn-group-tc{background-image:none}.x-btn-group-ml{padding-left:1px}.x-btn-group-mr{background-image:none;padding-right:1px}.x-btn em.x-btn-arrow-bottom{background-image:url(../images/modx-theme/button/s-arrow-b-noline.gif)}.x-btn em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-b.gif)}.x-btn-click em.x-btn-split-bottom,.x-btn-menu-active em.x-btn-split-bottom,.x-btn-over em.x-btn-split-bottom,.x-btn-pressed em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-bo.gif)}.x-btn-group-notitle .x-btn-group-tc{background-image:url(../images/modx-theme/button/group-tb.gif)}#modx-leftbar .x-toolbar-ct .x-btn{background:#f1f1f1;border:none;box-shadow:none;color:#515151;display:inline-block;filter:alpha(opacity=100);height:30px;margin:0 3px;opacity:1;padding:0;position:relative;width:25px}#modx-leftbar .x-toolbar-ct .x-btn>em>button{font-size:18px;height:24px;left:2px;overflow:visible;position:absolute;text-shadow:none;top:4px}#modx-leftbar .x-toolbar-ct .x-btn.x-btn-click,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-focus,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-over,#modx-leftbar .x-toolbar-ct .x-btn:active,#modx-leftbar .x-toolbar-ct .x-btn:focus,#modx-leftbar .x-toolbar-ct .x-btn:hover{background:none;box-shadow:none;color:#234368}#modx-leftbar .x-toolbar-ct .x-btn.x-btn-click button,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-focus button,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-over button,#modx-leftbar .x-toolbar-ct .x-btn:active button,#modx-leftbar .x-toolbar-ct .x-btn:focus button,#modx-leftbar .x-toolbar-ct .x-btn:hover button{color:inherit}#modx-leftbar .x-toolbar-ct .x-btn span{vertical-align:middle}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn>em>button{font-size:20px}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn#emptifier .x-item-disabled{color:#919191!important;filter:alpha(opacity=60); /* !important prevents hover / active styles */opacity:.6}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn#emptifier .x-item-disabled button{color:inherit}.tree-new-resource>em>button:before{content:"\f15b"}.tree-new-weblink>em>button:before{content:"\f0c1"}.tree-new-symlink>em>button:before{content:"\f0c5";font-weight:400}.tree-new-static-resource>em>button:before{content:"\f15c";font-weight:400}.tree-trash>em>button:before{content:"\f2ed";font-weight:400}#modx-leftbar .x-toolbar-ct .x-btn .tree-new-symlink>em>button{left:2px;top:4px}#modx-leftbar .x-toolbar-ct .x-btn .tree-new-weblink>em>button{left:2px}.tree-new-template>em>button:before{content:"\f0db"}.tree-new-tv>em>button:before{content:"\f022";font-weight:400}.tree-new-chunk>em>button:before{content:"\f009";font-weight:900}.tree-new-snippet>em>button:before{content:"\f121"}.tree-new-plugin>em>button:before{content:"\f085"}.tree-new-category>em>button:before{content:"\f07b"}.modx-tv .resizable:hover:after,.modx-tv .resizable:hover:before{background-color:#99999940;color:#999}.modx-tv .resizable:after,.modx-tv .resizable:before{background-color:#99999926;color:#adadad;font-size:smaller;margin-right:.25%;pointer-events:none;position:absolute;right:0;text-align:center;width:15px;z-index:2}.modx-tv .resizable:before{bottom:12px;content:"\f106";height:7px;line-height:.9}.modx-tv .resizable:after{border-bottom-right-radius:3px;bottom:4px;content:"\f107";height:8px;line-height:.6}.modx-tv .resizable textarea{resize:vertical}.modx-tv .x-form-textarea:not(div){font-family:inherit}textarea{overflow:auto}.x-form-textarea,textarea.x-form-field{display:block;padding:5px}.modx-code-content,.x-form-textarea,textarea.x-form-field{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.modx-text-content,textarea[name=description],textarea[name=introtext]{font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-form-text,.x-form-textarea,textarea.x-form-field{background-color:#fff;background-image:none;border:1px solid #e4e4e4;border-radius:3px;max-width:100%;position:relative;transition:border-color .25s}.x-viewport .x-form-textarea .x-form-focus,.x-viewport .x-trigger-wrap-focus,.x-viewport input.x-form-focus,.x-viewport textarea.x-form-focus{border-color:#999}.x-viewport .x-trigger-wrap-open{border-radius:3px 3px 0 0}.x-form-invalid,textarea.x-form-invalid{border-color:#cf1124!important}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}#modx-input-props,#modx-widget-props{padding:15px 0 0}.x-form-item{display:block;margin:0;outline:0 none;position:relative}.x-form-item label.x-form-item-label{color:#515151;font-size:13px;font-weight:700;position:relative}.x-form-item label.x-form-item-label .modx-tv-label-title{display:inline-block}.x-form-item label.x-form-item-label .modx-tv-label-description{display:inline-block;font-style:italic;font-weight:400}.x-form-item label.x-form-item-label .modx-field-utils,.x-form-item label.x-form-item-label .modx-tv-reset{cursor:pointer;display:inline-block;filter:alpha(opacity=0);height:16px;opacity:0;padding:0 0 0 3px;position:relative;right:0;top:0;transition:all .25s;width:16px}.x-form-item label.x-form-item-label .modx-field-utils:before,.x-form-item label.x-form-item-label .modx-tv-reset:before{bottom:2px;box-sizing:border-box;color:#a8a8a8;content:"\f2ea";font-size:14px;height:16px;left:0;position:relative;text-align:center;vertical-align:middle;width:16px}.x-form-item label.x-form-item-label .modx-field-utils.modx-field-reset:before,.x-form-item label.x-form-item-label .modx-tv-reset.modx-field-reset:before{content:"\f2ea"}.x-form-item label.x-form-item-label .modx-field-utils.modx-field-reset:hover:before,.x-form-item label.x-form-item-label .modx-tv-reset.modx-field-reset:hover:before{color:#6cb24a}.x-form-item label.x-form-item-label .modx-field-utils.modx-field-clear:before,.x-form-item label.x-form-item-label .modx-tv-reset.modx-field-clear:before{content:"\f12d";font-size:15px;margin-bottom:4px}.x-form-item label.x-form-item-label .modx-field-utils.modx-field-clear:hover:before,.x-form-item label.x-form-item-label .modx-tv-reset.modx-field-clear:hover:before{color:#cf1124}.x-form-item label.x-form-item-label .modx-field-utils:hover:before,.x-form-item label.x-form-item-label .modx-tv-reset:hover:before{color:#6cb24a}.x-form-item label.x-form-item-label .modx-field-utils:active:before,.x-form-item label.x-form-item-label .modx-tv-reset:active:before{color:#1b3451}.x-form-item label.x-form-item-label:hover .modx-field-utils,.x-form-item label.x-form-item-label:hover .modx-tv-reset{filter:alpha(opacity=100);opacity:1}.x-form-item.modx-tv{padding:0!important}.x-form-item .modx-tv-inherited{color:#515151;display:inline-block;font-size:10px;font-style:italic;position:absolute;right:0;top:19px}.x-form-item .modx-tv-image-preview{margin-top:7px}.x-form-item .modx-tv-image-preview img{display:block;max-height:400px;max-width:400px}.x-form-item .modx-tag-list{list-style:none;margin:0;overflow:auto;padding:0}.x-form-item .modx-tag-list .modx-tag-opt{background-color:#e4e4e4;border-radius:0 3px 3px 0;cursor:pointer;display:inline-block;margin:4px 5px 0 10px;padding:1px 5px;position:relative}.x-form-item .modx-tag-list .modx-tag-opt:before{border-color:#0000 #e4e4e4 #0000 #0000;border-style:solid;border-width:10px 10px 10px 0;content:"";height:0;left:-10px;position:absolute;top:0;transform:rotate(1turn);width:0}.x-form-item .modx-tag-list .modx-tag-opt:after{background-color:#fff;border-radius:50%;content:"";height:4px;left:-4px;position:absolute;top:8px;width:4px}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked,.x-form-item .modx-tag-list .modx-tag-opt:hover{background-color:#234368;color:#fff;text-decoration:none}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:before,.x-form-item .modx-tag-list .modx-tag-opt:hover:before{border-color:#0000 #234368 #0000 #0000}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:hover,.x-form-item .modx-tag-list .modx-tag-opt:hover:hover{background-color:#1b3451}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:hover:before,.x-form-item .modx-tag-list .modx-tag-opt:hover:hover:before{border-color:#0000 #1b3451 #0000 #0000}.x-form-item .modx-tv-legacy-select{border:1px solid #e4e4e4;border-radius:3px;padding:5px;transition:all .25s}.x-form-item .modx-tv-legacy-select:focus{border:1px solid #1b3451}.x-form-item .modx-tv-legacy-select option[selected]{background-color:#e4e4e4}.x-form-label-left .x-form-item{padding:15px 0 0}.x-form-label-left .x-form-item:first-of-type{padding:0}.x-form-label-left .x-form-item label.x-form-item-label{display:inline-block;margin:0;padding:7px 0}.x-form-label-top .x-form-item{padding:0}.x-form-label-top .x-form-item label.x-form-item-label{display:inline-block;margin:15px 0 4px;padding:0}.x-window .x-form-item .x-form-item-label{padding:10px 0 4px}.x-form-item.x-hide-label{padding-top:10px!important}#modx-resource-content .x-form-item.x-hide-label{padding-top:0!important}.x-form-item.x-hide-label label.x-form-item-label{display:none}.x-form-item.disabled label{color:#a8a8a8}.x-form-item .x-form-element{font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:0}.x-form-item .x-form-element .x-form-invalid-icon{color:#cf1124}.x-form-item .x-form-element .x-form-invalid-icon:before{content:"\f071";left:3px;position:absolute}.x-form-item .x-column-inner>.x-column~.x-column{margin-left:5px}.x-form-item .x-column-inner>.x-column .x-form-field-wrap{width:auto!important}.x-form-item .container{margin:0}.x-form-item .x-btn{padding:7px 10px}.desc-under{color:#999;display:block;font-size:12px;font-style:italic;margin:.4em 0 0;transition:color .25s}.desc-under:hover{color:#4d4d4d}.desc-under.toggle-slider-above{margin:.3em 0;padding-left:3.9em}.desc-under .warning{color:#cf1124;overflow:hidden;padding:0}.desc-under .example-list ul{margin:.4em 0}.desc-under .example-list ul li{margin-bottom:.25em;padding-left:1.25em;position:relative}.desc-under .example-list ul li:before{color:#adadad;content:"\f101";left:.2em;position:absolute;top:0}.desc-under .copy-this,.desc-under .example-input{border-radius:2px;padding:0 .3em;transition:width 1s}.desc-under .example-input{background-color:#f6faf5;color:#6e935d}.desc-under .example-input:hover{background-color:#eff6ec;color:#578c3d;cursor:pointer}.desc-under .copy-this{background-color:#f1f6fc;color:#5e8bbf;position:relative}.desc-under .copy-this:hover{background-color:#e7f1fb;color:#1b5ca8;cursor:pointer}.desc-under .copy-this:hover:after{color:#6892c4;content:"\f0c5";cursor:default;margin-left:.5em;position:absolute}.desc-under .copy-this:hover:active,.desc-under .copy-this:hover:active:after{color:#515151}.desc-under .feedback{color:#1b5ca8;font-style:normal;margin-left:1.4rem}.desc-under .feedback.item-copied{opacity:1;transition:opacity 1.5s}.desc-under a{border-bottom:1px dotted #999;color:#999;text-decoration:none}.desc-under a:hover{color:#515151}.desc-under .deemphasize{font-style:normal}.fs-toggle{border-top:1px dashed #e4e4e4;margin-bottom:.5em;margin-top:2em;padding-top:1em}.x-fieldset{border:1px solid #e4e4e4;border-radius:3px!important; - /* !important ensures the border radius, also when the fieldset has a class that sets it to 0 */margin:15px 0 0;overflow:visible;padding:0;position:relative}.x-fieldset .x-fieldset-header{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;margin:0 0 0 10px;padding:0 5px 0 3px;position:relative}.x-fieldset .x-fieldset-header .x-fieldset-header-text{line-height:18px}.x-fieldset .x-fieldset-bwrap .x-fieldset-body{overflow-x:hidden!important;padding:0 10px 10px}.x-fieldset.form-row-wrapper .x-fieldset-bwrap .x-fieldset-body{padding:0 15px 15px}.x-fieldset#tv-input-opts-fs,.x-fieldset#tv-output-opts-fs{border:0;margin:0}.x-fieldset#tv-input-opts-fs .x-fieldset-bwrap .x-fieldset-body,.x-fieldset#tv-output-opts-fs .x-fieldset-bwrap .x-fieldset-body{padding:0}.x-fieldset#tv-input-opts-fs .x-fieldset .x-fieldset-bwrap .x-fieldset-body,.x-fieldset#tv-output-opts-fs .x-fieldset .x-fieldset-bwrap .x-fieldset-body{padding:0 15px 15px}.x-form-field{font:inherit}.x-form-field.x-form-composite{margin-bottom:0!important}.x-form-field.x-form-composite .x-btn{top:1px!important}.x-static-text-field{color:inherit;font-size:inherit}.x-static-text-field.x-form-focus{border-color:#e4e4e4!important}.x-form-text{line-height:20px;min-height:20px;padding:5px}.x-form-field-wrap{background:#fff;border:1px solid #e4e4e4;border-radius:3px;max-width:100%}.x-form-field-wrap .x-form-text:not(.x-form-invalid){border:0}.x-form-field-wrap .x-form-trigger{border:0;border-radius:0 2px 2px 0;box-shadow:none;height:100%!important;padding:0;position:absolute;right:0;top:0;width:30px}.x-form-field-wrap .x-form-trigger:before{box-sizing:border-box;content:"\f078";filter:alpha(opacity=60);font-size:14px;left:50%;opacity:.8;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);transition:opacity .25s;width:30px}.x-form-field-wrap .x-form-trigger.x-form-trigger-click:before,.x-form-field-wrap .x-form-trigger.x-form-trigger-over:before,.x-form-field-wrap .x-form-trigger:active:before,.x-form-field-wrap .x-form-trigger:hover:before{filter:alpha(opacity=100);opacity:1}.x-form-field-wrap .x-form-trigger.x-form-date-trigger:before{content:"\f133";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-time-trigger:before{content:"\f017";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-file-trigger:before{content:"\f15b";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-image-trigger:before{content:"\f1c5";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-code-trigger:before{content:"\f1c9";font-weight:400}.x-form-field-wrap.x-datetime-wrap{background:none;border:0}.x-form-field-wrap.x-datetime-wrap .ux-datetime-date,.x-form-field-wrap.x-datetime-wrap .ux-datetime-time{vertical-align:top}.x-form-field-wrap.x-datetime-wrap .ux-datetime-date .x-form-invalid-msg,.x-form-field-wrap.x-datetime-wrap .ux-datetime-time .x-form-invalid-msg{white-space:normal}.x-form-field-wrap.x-datetime-wrap .ux-datetime-date .x-form-trigger:before{content:"\f133"}.x-form-field-wrap.x-datetime-wrap .ux-datetime-time .x-form-trigger:before{content:"\f017"}.x-form-field-wrap.x-form-fileupload-wrap{overflow:visible;position:relative}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file{filter:alpha(opacity=0);min-height:20px;opacity:0;padding:5px;position:absolute;right:0;top:0;z-index:2}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file-btn{border-left:1px solid #e4e4e4;border-radius:0 3px 3px 0;box-shadow:none;line-height:0;padding:7px;position:absolute;right:0;top:0;z-index:1}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file-text{position:relative;z-index:3}.modx-tv-type-listbox-multiple .x-form-field-wrap{border-color:#fff}.modx-tv-type-listbox-multiple .x-form-field-wrap .x-form-text{border:1px solid #e4e4e4;margin:-1px}.modx-tv-type-listbox-multiple .x-form-field-wrap .x-form-text.x-form-focus{border-color:#999}#x-form-el-modx-user-photo .x-form-file-trigger:before{content:"\f1c5"}.x-fieldset-checkbox-toggle legend,.x-form-check-wrap{height:auto!important;line-height:18px}.x-form-label-left .x-fieldset-checkbox-toggle legend,.x-form-label-left .x-form-check-wrap{padding:7px 0}.x-form-label-top .x-fieldset-checkbox-toggle legend,.x-form-label-top .x-form-check-wrap{padding:0}.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label{padding-left:1.9em}.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label:before{color:#ccc}.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label:active:before,.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label:focus:before,.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label:hover:before,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label:active:before,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label:focus:before,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label:hover:before{color:#999}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text,.x-fieldset-checkbox-toggle legend .x-form-cb-label,.x-form-check-wrap .x-fieldset-header-text,.x-form-check-wrap .x-form-cb-label{color:#515151;cursor:pointer;display:inline-block;font-weight:400;margin:0;padding-left:1.9em;position:relative;top:0}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-fieldset-header-text,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-cb-label,.ext-ie8 .x-form-check-wrap .x-fieldset-header-text,.ext-ie8 .x-form-check-wrap .x-form-cb-label{padding-left:3px}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.ext-ie8 .x-form-check-wrap .x-fieldset-header-text:before,.ext-ie8 .x-form-check-wrap .x-form-cb-label:before{content:""}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-form-check-wrap .x-fieldset-header-text:before,.x-form-check-wrap .x-form-cb-label:before{box-sizing:border-box;content:"";font-size:18px;height:18px;left:0;padding-right:3px;position:absolute;text-align:center;top:0;vertical-align:middle;width:18px}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:focus:before,.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:hover:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:focus:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:hover:before,.x-form-check-wrap .x-fieldset-header-text:focus:before,.x-form-check-wrap .x-fieldset-header-text:hover:before,.x-form-check-wrap .x-form-cb-label:focus:before,.x-form-check-wrap .x-form-cb-label:hover:before{color:#234368}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:active:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:active:before,.x-form-check-wrap .x-fieldset-header-text:active:before,.x-form-check-wrap .x-form-cb-label:active:before{color:#1b3451}.x-fieldset-checkbox-toggle legend .x-form-checkbox,.x-fieldset-checkbox-toggle legend .x-form-radio,.x-fieldset-checkbox-toggle legend input[type=checkbox],.x-form-check-wrap .x-form-checkbox,.x-form-check-wrap .x-form-radio,.x-form-check-wrap input[type=checkbox]{cursor:pointer;height:18px;left:0;opacity:0;position:absolute;top:0;width:18px;z-index:1}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-checkbox,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-radio,.ext-ie8 .x-fieldset-checkbox-toggle legend input[type=checkbox],.ext-ie8 .x-form-check-wrap .x-form-checkbox,.ext-ie8 .x-form-check-wrap .x-form-radio,.ext-ie8 .x-form-check-wrap input[type=checkbox]{height:13px;left:auto;position:relative;top:auto;width:13px}.x-fieldset-checkbox-toggle legend .x-form-checkbox:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:hover+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:hover+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:hover+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:focus+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:focus+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:hover+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:hover+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:focus+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:focus+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:hover+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:hover+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:focus+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:focus+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:hover+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:hover+.x-form-cb-label:before{color:#234368}.x-fieldset-checkbox-toggle legend .x-form-checkbox:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:active+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:active+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:active+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:active+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:active+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:active+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:active+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:active+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:active+.x-form-cb-label:before{color:#1b3451}.x-fieldset-checkbox-toggle legend .x-form-checkbox+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]+.x-fieldset-header-text:before{content:"\f0c8";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-checkbox:checked+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:checked+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:checked+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:checked+.x-fieldset-header-text:before{content:"\f14a";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-radio+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio+.x-form-cb-label:before{content:"\f111";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-radio:checked+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:checked+.x-form-cb-label:before{content:"\f192";font-weight:400}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-chunk-tabs .x-fieldset legend [type=checkbox],#modx-chunk-tabs .x-form-check-wrap [type=checkbox],#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-plugin-tabs .x-fieldset legend [type=checkbox],#modx-plugin-tabs .x-form-check-wrap [type=checkbox],#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox],#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox],#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-snippet-tabs .x-fieldset legend [type=checkbox],#modx-snippet-tabs .x-form-check-wrap [type=checkbox],#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-template-tabs .x-fieldset legend [type=checkbox],#modx-template-tabs .x-form-check-wrap [type=checkbox],#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-tv-editor-tabs .x-fieldset legend [type=checkbox],#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox],#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox],#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]{left:-9999px;position:absolute}html[dir=rtl] #modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-chunk-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-chunk-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-plugin-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-plugin-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-snippet-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-snippet-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-template-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-template-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-tv-editor-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-tv-editor-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]{left:unset;right:-9999px}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label{box-sizing:border-box;cursor:pointer;line-height:1;margin-left:0;padding-left:3.6em;padding-top:.2em;position:relative}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before{content:"";font-size:inherit;position:absolute;transition:all .2s ease}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before{background:#e4e4e4;border-radius:1.2em;height:1.6em;left:0;top:0;width:3em;z-index:10}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after{background-color:#fff;border-radius:50%;height:1.3em;left:.1em;margin-top:-.65em;top:.8em;width:1.3em;z-index:11}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-template-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after{left:1.6em;top:.8em}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before{background-color:#6cb24a;border-color:#6cb24a}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before{background-color:#cf1124;border-color:#cf1124}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before{background-color:#f0b429;border-color:#f0b429}.switch-container{padding-top:1.6rem}.x-form-check-group,.x-form-radio-group{overflow:hidden;padding-bottom:.5em}.x-form-check-group .x-column .x-form-item:first-child,.x-form-radio-group .x-column .x-form-item:first-child{padding:4px 0 0}.x-form-check-group.aggregated-group,.x-form-radio-group.aggregated-group{padding-left:1em;padding-right:1em}.x-superboxselect{margin:0;outline:0;padding:0 5px 5px;position:relative;white-space:normal;width:auto!important}.ext-strict .x-toolbar .x-small-editor .x-superboxselect,.x-superboxselect{height:auto!important}.x-superboxselect ul{cursor:text;min-height:20px;overflow:visible;padding-right:61px;white-space:normal;width:auto!important}.x-toolbar .x-superboxselect ul{margin:-5px 0 0 -5px}.x-superboxselect ul li{margin:5px 5px 0 0;padding:0}.x-superboxselect ul li.x-superboxselect-item{cursor:default;font-size:12px;padding:4px 18px 4px 4px!important;position:relative}.x-superboxselect ul li.x-superboxselect-item.x-superboxselect-item-focus{background-color:#234368;box-shadow:0 0 0 1px #234368;color:#fff}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close{border:0;color:inherit;cursor:pointer;display:inline-block;filter:alpha(opacity=60);height:100%;opacity:.6;outline:0;padding:0;position:absolute;right:0;top:0;transition:opacity .25s;width:16px}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:before{box-sizing:border-box;color:inherit;content:"\f00d";font-size:14px;margin-top:-7px;position:absolute;right:0;text-align:center;top:50%;vertical-align:middle;width:16px}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:focus,.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:hover{filter:alpha(opacity=100);opacity:1}.x-superboxselect ul li.x-superboxselect-input{display:inline-block}.x-superboxselect ul li.x-superboxselect-input input{background:none;border:0;line-height:20px;outline:0}.x-superboxselect.x-superboxselect-stacked li{box-sizing:border-box;margin:5px 0 0;width:100%}.x-superboxselect .x-superboxselect-btns{height:100%;overflow:visible;position:absolute;right:0;top:0;width:61px}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-expand{border-radius:0;right:31px}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear{border-left:1px solid #e4e4e4}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:before{content:"\f00d"}.inline-form{border:0;padding:15px 15px 0}.inline-form label{color:#777;display:block;font-weight:700;margin-bottom:2px}.inline-form input[type=text],.inline-form textarea{background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;position:relative;width:97%}.inline-form input[type=text]{font-size:13px;height:20px!important;padding:5px}.modx-tv-description{color:#515151;font-size:10px;line-height:1.2;margin-top:2px!important}.modx-tv-reload-btn{float:right;position:absolute;right:19px;z-index:10}.modx-tv-reload-btn div{z-index:10}.modx-tv-th label{cursor:pointer}.modx-tv-th .tv-description{color:#515151;font-size:11px;font-weight:400}.x-editor .x-form-check-wrap{background-color:#fff}.x-grid-editor .x-form-field-wrap{background:#f6f2f7 url(../images/modx-theme/form/combo-bck.png) repeat-x scroll 0 100%}.x-grid-editor .x-form-field-wrap input{background-color:initial!important}.x-grid-editor .x-form-field-wrap img{background-color:#fff;background-image:url(../images/modx-theme/form/trigger.png)}.x-form-grow-sizer,.x-form-invalid-msg{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-form-invalid-msg{color:#cf1124;margin-top:2px;min-width:95%;position:relative}.x-form-invalid-msg:before{color:inherit;content:"\f071";left:3px;position:absolute;top:3px}.x-form-empty-field{color:#515151}.x-grid3 .x-small-editor .x-form-field-wrap,.x-grid3 .x-small-editor .x-form-text{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin-top:7px;padding:2px 5px}.x-grid3 .x-small-editor .x-form-field-wrap .x-form-text,.x-grid3 .x-small-editor .x-form-text .x-form-text{margin:0;padding:0}.x-grid3 .x-small-editor .x-form-field-wrap{overflow:hidden}.x-combo-list{border:0;border-radius:3px;overflow:visible}.x-combo-list .x-combo-list-inner{background-color:#fff;border:1px solid #999;border-radius:3px;margin-left:-1px;width:100%!important}.x-combo-list .x-combo-list-item{border:0!important;border-bottom:1px solid #e4e4e4!important;color:#515151;min-height:18.2px;padding:6px 8px}.x-combo-list .x-combo-list-item:last-child{border-bottom-color:#fff!important}.x-combo-list .x-combo-list-item.x-combo-selected{background-color:#e4e4e4;border:0!important;border-bottom:1px solid #e4e4e4!important;color:#1b3451}.x-combo-list .x-combo-list-item.x-combo-list-item-grouped{padding:6px 14px}.x-combo-list .x-combo-list-item .x-combo-list-title{display:block;font-weight:700;margin:0 0 5px}.x-combo-list .x-combo-list-group{border-bottom:1px solid #e4e4e4;color:#515151;font-weight:700;padding:6px 8px}.x-combo-list .x-toolbar{border:0;border-radius:0 0 3px 3px;box-shadow:0 0 0 1px #234368;margin-top:-1px;position:relative}.x-combo-list .x-toolbar .x-toolbar-ct{padding:5px 0 15px}.x-combo-list .x-toolbar .x-toolbar-left table{margin:0 auto}.x-combo-list .x-toolbar .x-toolbar-cell{display:inline-block}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn,.x-combo-list .x-toolbar .x-toolbar-cell .x-form-text{background:#0000;box-shadow:none;font-size:10px;line-height:16px;margin-right:2px;min-height:16px;padding:2px}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn{padding:1px;transition:color .25s}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-btn-over,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:focus,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:hover{color:#234368}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-btn-click,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:active{color:#1b3451}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-item-disabled{color:#515151;opacity:.4}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn button:before{left:0;line-height:20px;right:0;top:0}.x-combo-list .x-toolbar .x-toolbar-cell .x-form-text{background:#fbfbfb;width:23px}.x-combo-list .x-toolbar .xtb-text{font-size:10px;line-height:1;margin:0 auto;padding:0;text-align:center}.x-combo-list .x-toolbar .x-toolbar-cell:first-child .x-btn{margin-left:1px}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .xtb-text{display:none;left:0;position:absolute;right:0;top:2px}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .xtb-text{bottom:4px;display:inline-block;left:0;position:absolute;right:0;top:auto}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .x-btn{margin-right:0}.x-combo-list .x-toolbar .x-toolbar-cell:last-child{opacity:0;transition:opacity .25s}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn{bottom:2px;font-size:12px;line-height:1;margin:0;opacity:.4;padding:0;position:absolute;right:1px}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn:hover{opacity:1}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn button{height:16px;width:16px}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn button:before{font-size:12px}.x-combo-list .x-toolbar:hover .x-toolbar-cell:last-child{opacity:1}.x-combo-list .x-resizable-handle-southeast{bottom:1px;right:3px}.x-combo-list.modx-superboxselect .x-combo-list-inner{margin-left:0}.x-combo-list-hd{background-image:url(../images/modx-theme/layout/panel-title-light-bg.gif);border-bottom-color:#bcbcbc;color:#464646}.x-combo-list-small{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-date-mp,.x-date-picker{background-color:#fbfbfb}.x-date-mp .x-btn,.x-date-mp .x-date-mp-cancel,.x-date-mp .x-date-mp-ok,.x-date-picker .x-btn,.x-date-picker .x-date-mp-cancel,.x-date-picker .x-date-mp-ok{border:0;margin:0 0 0 7px;padding:5px 10px}.x-date-mp .x-btn:first-child,.x-date-mp .x-date-mp-cancel:first-child,.x-date-mp .x-date-mp-ok:first-child,.x-date-picker .x-btn:first-child,.x-date-picker .x-date-mp-cancel:first-child,.x-date-picker .x-date-mp-ok:first-child{margin:0}.x-date-mp .x-btn button,.x-date-mp .x-date-mp-cancel button,.x-date-mp .x-date-mp-ok button,.x-date-picker .x-btn button,.x-date-picker .x-date-mp-cancel button,.x-date-picker .x-date-mp-ok button{font-size:11px;font-style:normal;margin:0}.x-date-mp .x-date-mp-cancel,.x-date-mp .x-date-mp-ok,.x-date-picker .x-date-mp-cancel,.x-date-picker .x-date-mp-ok{height:16px}.x-date-middle{padding:5px 3px}.x-date-left a,.x-date-mp-ybtn a.x-date-mp-next,.x-date-mp-ybtn a.x-date-mp-prev,.x-date-right a{display:inline-block;filter:alpha(opacity=60);margin:0 auto;opacity:.6;position:relative;transition:opacity .25s}.x-date-left a:before,.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-mp-ybtn a.x-date-mp-prev:before,.x-date-right a:before{box-sizing:border-box;color:#234368;content:"";font-size:18px;height:18px;left:0;position:absolute;text-align:center;top:0;vertical-align:middle;width:18px}.x-date-left a:hover,.x-date-mp-ybtn a.x-date-mp-next:hover,.x-date-mp-ybtn a.x-date-mp-prev:hover,.x-date-right a:hover{filter:alpha(opacity=100);opacity:1}.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-right a:before{content:"\f0da";left:auto;right:0}.x-date-left a:before,.x-date-mp-ybtn a.x-date-mp-prev:before{content:"\f0d9"}.x-date-inner{margin:0 auto}.x-date-inner th{border-bottom-color:#e4e4e4;color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700}.x-date-inner td,.x-date-mp td{background-color:#fff;border:0;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:1px}.x-date-inner a,td.x-date-mp-month a,td.x-date-mp-year a{border-radius:3px;color:#999;font:inherit;font-weight:700}td.x-date-mp-month a,td.x-date-mp-year a{margin:0 3px}.x-date-inner .x-date-disabled a:hover,.x-date-inner .x-date-nextday a:hover,.x-date-inner .x-date-prevday a:hover,.x-date-inner a:hover,td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{background-color:#dcdcdc;color:#515151}.x-date-inner .x-date-disabled a{background-color:#e4e4e4;color:#999}.x-date-inner .x-date-active{color:#000}.x-date-inner .x-date-today a{border-color:#234368}.x-date-inner span{font-style:normal}.x-date-inner .x-date-active span,.x-date-inner .x-date-selected span{font-weight:700}.x-date-inner .x-date-selected a,td.x-date-mp-sel a{background-color:#234368;border-color:#fff;color:#fff}.x-date-inner .x-date-nextday a,.x-date-inner .x-date-prevday a{color:#dcdcdc}.x-date-bottom,.x-date-mp-btns{border-top:1px solid #e4e4e4;padding:5px}.x-date-bottom td,.x-date-mp-btns td{background-color:initial;border-top:1px solid #e4e4e4}td.x-date-mp-sep{border-right:1px solid #e4e4e4}.x-date-mmenu{background-color:#eee!important}.x-date-mmenu .x-menu-item{color:#000;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.radio-version .x-form-check-wrap .x-form-cb-label{display:block}.radio-version .x-form-check-wrap .x-form-cb-label .changelog{float:right}.x-form-template-picker .x-form-template-picker-search{padding:0!important}.x-form-template-picker .x-form-template-picker-templates .x-form-radio-group{background-color:#fff;border:1px solid #e4e4e4;border-radius:3px;height:194px;overflow:auto}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item{border-bottom:1px solid #e4e4e4}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category:last-child,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item:last-child{border-bottom:0}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-check-wrap .x-form-cb-label,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-check-wrap .x-form-cb-label{display:block}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-check-wrap .x-form-cb-label:before,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-check-wrap .x-form-cb-label:before{display:none}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-check-wrap .x-form-radio:checked+.x-form-cb-label,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-check-wrap:not(.x-item-disabled) .x-form-cb-label:hover,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-check-wrap .x-form-radio:checked+.x-form-cb-label,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-check-wrap:not(.x-item-disabled) .x-form-cb-label:hover{background-color:#e4e4e4;color:#1b3451}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item{padding:0!important}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-cb-label{padding:10px 14px}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category{padding:0!important}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-cb-label{font-weight:700!important;padding:10px 8px}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-item-disabled{filter:alpha(opacity=100);opacity:1;-moz-opacity:1}.x-form-template-preview{background-color:#fff;background:url(../images/tp-no-preview.png) no-repeat 50%;border:1px solid #e4e4e4;border-radius:3px;height:236px;overflow:hidden}.x-form-template-preview .x-panel-body,.x-form-template-preview .x-panel-bwrap{height:100%;position:relative}.x-form-template-preview .x-form-template-preview-image{height:100%;-o-object-fit:cover;object-fit:cover}.x-form-template-preview .x-form-template-preview-desc{background-color:#000c;bottom:0;color:#fff;left:0;padding:10px 20px;position:absolute;right:0}#modx-tv-tabs{width:100%}.x-tab-panel-noborder{border:1px solid #e2e3de;margin:20px 0;overflow:visible}.x-tab-panel-noborder .x-tab-panel-body-noborder{background-color:#fff;border-radius:3px}.x-tab-panel-footer,.x-tab-panel-header{border:0;position:relative}.x-tab-panel-header ul.x-tab-strip{background-color:initial!important;border:0;margin:0;position:relative;top:1px}.x-tab-panel-footer-plain .x-tab-strip-spacer,.x-tab-panel-header-plain .x-tab-strip-spacer{border:none;height:0}.x-tab-panel .x-tab-panel{padding-top:18px}.x-tab-panel .x-tab-panel.vertical-tabs-panel{padding-top:0}.x-tab-panel .x-tab-panel .x-tab-strip-wrap .x-tab-strip{background-color:#fbfbfb!important}.x-tab-panel-header,.x-tab-strip{padding-left:0}.x-tab-panel-bwrap{border-radius:3px;overflow:visible}.x-tab-panel-bwrap .x-tab-panel-bwrap{box-shadow:none}ul.x-tab-strip li{background-color:initial;border-top-left-radius:3px;border-top-right-radius:3px;color:#53595f;cursor:pointer;font:14px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:2.2;margin-left:0;padding:0 12px;position:relative;z-index:5}html[dir=rtl] ul.x-tab-strip li{float:right}ul.x-tab-strip li:hover{background-color:#e4e4e4;color:#000}ul.x-tab-strip li.x-tab-strip-active{background-color:#fff;color:#234368;cursor:default}.vertical-tabs-header ul.x-tab-strip li.x-tab-strip-active{border-radius:0}ul.x-tab-strip li.x-tab-strip-active:hover{background-color:#fff}ul.x-tab-strip li.x-tab-edge{height:0;visibility:hidden}.x-tab-panel,.x-tab-panel-header,.x-tab-strip-wrap{border:none;overflow:visible}.x-tab-strip-wrap{margin:0;overflow:hidden;padding:2px 0 0}.x-tab-strip-closable{padding-right:15px!important}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../images/modx-theme/tabs/tab-close.gif);right:2px}ul.x-tab-strip-top li:first-child{margin-left:0}ul.x-tab-strip-bottom{background-color:#f4f4f4;border-top-color:#dfdfdf}ul.x-tab-strip-bottom .x-tab-right{background-image:url(../images/modx-theme/tabs/tab-btm-inactive-right-bg.gif)}ul.x-tab-strip-bottom .x-tab-right .x-tab-right{background-image:url(../images/modx-theme/tabs/tab-btm-right-bg.gif)}ul.x-tab-strip-bottom .x-tab-right .x-tab-left{background-image:url(../images/modx-theme/tabs/tab-btm-left-bg.gif)}ul.x-tab-strip-bottom .x-tab-left{background-image:url(../images/modx-theme/tabs/tab-btm-inactive-left-bg.gif)}.x-tab-panel-body{background-color:#fff;border:0;overflow:visible}.x-tab-scroller-left,.x-tab-scroller-right{border:0}.x-tab-scroller-left:before,.x-tab-scroller-right:before{box-sizing:border-box;color:#515151;content:"";filter:alpha(opacity=100);font-size:28px;margin-top:-20px;opacity:1;position:absolute;right:0;text-align:center;top:50%;transition:opacity .25s;width:18px}.x-tab-scroller-left-over:before,.x-tab-scroller-right-over:before{color:#234368}.x-tab-scroller-left-disabled,.x-tab-scroller-right-disabled{cursor:default}.x-tab-scroller-left-disabled:before,.x-tab-scroller-right-disabled:before{color:#515151;filter:alpha(opacity=100);opacity:.4}.x-tab-scroller-left:before{content:"\f0d9"}.x-tab-scroller-right:before{content:"\f0da"}.x-tab-panel-bbar .x-toolbar,.x-tab-panel-tbar .x-toolbar{border-color:#dfdfdf}.x-tab-panel-body-noborder .x-panel-body-noheader:first-child{border-top:0}.x-tab-panel-bbar-noborder .x-toolbar{border-top-color:#0000}.x-tab-panel-tbar-noborder .x-toolbar{border-bottom-color:#0000}.vertical-tabs-panel{background-color:#fff;margin:0;overflow:hidden}.vertical-tabs-panel.wrapped{border:1px solid #e4e4e4}.vertical-tabs-panel .vertical-tabs-header{background:#fff!important;border-right:1px solid #e4e4e4!important;float:left;margin-bottom:-10000px;padding-bottom:10000px!important;width:168px!important}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header{width:80px!important}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap{background-color:initial;display:inline-block;line-height:0;margin:0;padding:0;width:auto!important}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip{border:0;display:inline-block;top:0;width:auto}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li{border-bottom:1px solid #e4e4e4;border-right:1px solid #e4e4e4;color:#515151;float:none;line-height:1;margin:0;overflow:hidden;padding:10px 15px;transition:background-color .25s,color .25s}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li{font-size:12px;padding:8px}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li:hover{background:#fff}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-strip-active{background:#fff;border-color:#234368 #fff #234368 #234368;box-shadow:none;color:#234368;width:168px}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-strip-active{width:80px!important}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-edge{height:0;visibility:hidden}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-edge .x-tab-strip-text{display:none}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li .x-tab-strip-text{line-height:1.4;padding:2px 0;white-space:pre-wrap}.vertical-tabs-panel .vertical-tabs-header h4{background:#fff;border-bottom:1px solid #e4e4e4;color:#53595f;font-size:16px;padding:15px 0 15px 15px}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-spacer{display:none}.vertical-tabs-panel .x-tab-panel-bwrap{box-shadow:none}.vertical-tabs-panel .x-tab-panel-bwrap .x-tab-panel-body{border-top:0;width:auto!important}.vertical-tabs-panel .x-tab-panel-bwrap .vertical-tabs-body{border:0;padding:15px 20px 15px 15px}.tvs-wrapper.below-content{border-radius:3px;margin:1rem}.tvs-wrapper.below-content .vertical-tabs-panel{border-radius:3px}@media screen and (max-width:960px){.tvs-wrapper.below-content{margin:0}}.window-vtabs .x-panel-mr{padding-right:0}.window-vtabs .vertical-tabs-panel{margin:0;width:100%!important}#modx-split-wrapper .x-border-layout-ct{background:#0000}#modx-leftbar-tabs-xcollapsed{display:none!important}#modx-leftbar{background-color:#fff;min-width:288px;z-index:0}@media screen and (min-width:961px){#modx-leftbar{max-width:50%}}#modx-leftbar .x-toolbar{border:0;padding:0!important}#modx-header{background:#234368;height:100%;max-width:70px;position:absolute;z-index:2}#modx-navbar{display:flex;flex-direction:column;font-weight:700;font:normal 13px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:100%;padding:0 5px;z-index:20}#modx-navbar .icon{color:#fff;font-size:20px;line-height:20px;vertical-align:middle}#modx-navbar a,#modx-navbar li{background:#0000;margin:0;padding:0;position:relative;text-align:center;width:100%}#modx-navbar a{color:#fff;cursor:pointer;display:block;font-size:10px;line-height:12px;text-decoration:none}#modx-navbar a .description{font-size:9px;opacity:.7}#modx-navbar a .description,#modx-navbar a .icon,#modx-navbar a .label{display:block;width:100%}#modx-navbar li a:hover{opacity:.7}#modx-navbar #modx-user-menu a #user-username,#modx-navbar #modx-user-menu a .description,#modx-navbar #modx-user-menu a .label{display:none}#modx-navbar #modx-leftbar-trigger a,#modx-navbar #modx-manager-search-icon a,#modx-navbar #modx-user-menu a{padding:12px 0}#modx-navbar #modx-topnav{list-style:none;margin:0;padding:0}#modx-navbar #modx-topnav .top:not(#modx-manager-search-icon){border-top:1px solid #ffffff1a}#modx-navbar #modx-topnav>li:not(#modx-home-dashboard):not(#modx-manager-search-icon):not(#modx-leftbar-trigger)>a{display:block;padding:12px 0;position:relative}#modx-navbar #modx-user-menu{margin-top:auto}#modx-navbar #modx-user-menu #user-avatar img{border-radius:20px;display:block;height:40px;margin:auto;width:40px}#modx-navbar #modx-user-menu #limenu-user a{display:flex;flex-direction:column;justify-content:center}#modx-navbar #modx-home-dashboard{border-radius:3px;height:40px;line-height:40px;padding:10px;width:40px}#modx-navbar #modx-site-info{font-size:10px}#modx-navbar #modx-site-info .full_appname,#modx-navbar #modx-site-info .site_name{color:#fff}#modx-navbar #modx-site-info>.info-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#modx-leftbar-trigger{transition:all .2s ease}#modx-leftbar-trigger .icon:before{content:"\f060"}#modx-leftbar-trigger.collapsed .icon:before{content:"\f061"!important}#modx-footer .modx-subnav{background:#fff;border:1px solid #ffffff1a;border-radius:3px;box-shadow:0 0 15px 0 #0003;box-sizing:border-box;display:block;list-style:none;opacity:0;position:absolute;transition:all .15s ease;visibility:hidden;z-index:10000}#modx-footer .modx-subnav li{background:#fff;border-radius:3px;display:block;margin:0;padding:0;position:relative}#modx-footer .modx-subnav li:not(:first-child){border-top:1px solid #e4e4e4}#modx-footer .modx-subnav li:hover:after{border-right-color:#e4e4e4}#modx-footer .modx-subnav li.sub:after{color:#999;content:"\f0da";font-size:14px;margin-top:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}#modx-footer .modx-subnav li a{background-color:#fff;border-radius:3px;color:#515151;cursor:pointer;display:block;font-weight:700;line-height:1.5;margin:0;padding:8px 15px;text-decoration:none;text-shadow:none;width:270px}#modx-footer .modx-subnav li a .icon{display:inline-block;font-size:18px;opacity:.07;padding-left:5px}#modx-footer .modx-subnav li a span{color:#999;display:block;float:none;font-size:12px;font-weight:400;line-height:1.3;margin-top:6px;width:100%}#modx-footer .modx-subnav li a:hover{background:#e4e4e4;border-bottom-color:#e4e4e4;border-top-color:#e4e4e4;color:#53595f}#modx-footer .modx-subnav li a:hover .description{color:#707070}#modx-footer .modx-subnav.active{opacity:1;visibility:visible}#modx-footer .modx-subnav .modx-subsubnav{background:#fff;border:1px solid #ffffff1a;border-radius:3px;box-shadow:0 0 15px 0 #0003;list-style:none;position:absolute;z-index:24}#modx-footer .modx-subnav .modx-subsubnav-arrow{border:8px solid #0000;border-right-color:#fff;content:" ";display:none;pointer-events:none;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:10010}#modx-footer .modx-subnav .modx-subsubnav.active+.modx-subsubnav-arrow{display:block}@media screen and (min-width:961px){#modx-footer .modx-subnav .modx-subsubnav{opacity:0;visibility:hidden}#modx-footer .modx-subnav .modx-subsubnav.active{opacity:1;visibility:visible}}#modx-footer .modx-subnav-arrow{border:12px solid #0000;border-right-color:#fff;content:" ";margin-top:-6px;pointer-events:none;position:absolute;right:100%}#modx-footer #language .modx-subsubnav{max-height:calc(100vh - 12px);overflow-x:hidden;overflow-y:auto}@media screen and (max-width:960px){#modx-header{height:auto!important;min-width:100%;position:relative}#modx-navbar{flex-direction:row;flex-wrap:wrap}#modx-navbar #modx-headnav{order:1;width:50%}#modx-navbar #modx-headnav a{line-height:normal!important}#modx-navbar #modx-headnav img{max-width:35px}#modx-navbar #modx-topnav{order:0;width:100%}#modx-navbar #modx-user-menu{flex-direction:row-reverse;flex-wrap:nowrap;margin-top:0;order:2;width:50%}#modx-navbar>ul{align-items:center;display:flex;flex-wrap:wrap;justify-content:center}#modx-navbar>ul>li{flex-basis:50px}#modx-navbar #modx-site-info{display:none}#modx-navbar #modx-home-dashboard{margin:0;padding:5px}#modx-leftbar-trigger .icon{padding:3px 4px}#modx-leftbar-trigger .icon:before{content:"\f062"}#modx-leftbar-trigger.collapsed .icon:before{content:"\f063"!important}#modx-footer .modx-subnav{min-width:300px}#modx-footer .modx-subnav .description{display:none}#modx-footer .modx-subnav li{border-radius:0}#modx-footer .modx-subnav li.sub:after{display:none}#modx-footer .modx-subnav li a{white-space:nowrap;width:auto}#modx-footer .modx-subnav .modx-subsubnav{box-shadow:none;display:block;left:auto;max-height:none!important;overflow-y:initial!important;position:static}#modx-footer .modx-subnav .modx-subsubnav li>a{margin-left:1rem}#modx-footer .modx-subnav-arrow{display:none}#modx-footer .modx-subnav{max-height:calc(100vh - 109px);overflow-x:hidden;overflow-y:auto}}@media (max-height:520px){#modx-footer .modx-subnav .description{display:none}}#modx-manager-search{background:#fff;border-radius:3px 3px 0 0;height:38px;min-width:100px;padding:10px 10px 5px}#modx-manager-search .x-form-text{background:none}#modx-manager-search .x-form-field-wrap{background-image:none;color:#565353;font-size:12px;outline:none!important}#modx-manager-search .x-form-field-wrap .x-form-text{color:#515151;font-weight:400;letter-spacing:0;text-shadow:none}#modx-manager-search .x-form-field-wrap .x-form-empty-field{color:#6a747a}#modx-manager-search .x-form-field-wrap .x-form-trigger{display:none}.modx-manager-search-results{background:#e4e4e4;border:1px solid #e4e4e4;border-radius:0 0 3px 3px;box-shadow:0 4px 10px 0 #0003;box-sizing:border-box;height:auto!important;position:relative;width:402px!important}.modx-manager-search-results .loading-indicator{background:none;color:#515151;font-size:14px;margin:10px 0;text-align:center}.modx-manager-search-results .loading-indicator:before{content:"\f110";margin-right:5px}.modx-manager-search-results .x-combo-list-inner{background:#fff;border:0;margin:0;overflow:auto;width:100%!important}@media screen and (max-width:960px){.modx-manager-search-results .x-combo-list-inner{height:auto!important;line-height:4em}.modx-manager-search-results .x-combo-list-inner .section>*{padding-bottom:.5em;padding-top:.5em}}.modx-manager-search-results .section{border-left:1px solid #ededed;font-size:12px;line-height:12px;margin-left:100px;position:relative;width:auto}.modx-manager-search-results .x-combo-list-item,.modx-manager-search-results h3{color:#515151;line-height:18px;margin:0;padding:4px 6px}.modx-manager-search-results h3{color:#53595f;font-size:11px;font-weight:400;left:-108px;line-height:11px;position:absolute;text-align:right;top:0;width:95px}.modx-manager-search-results a{color:inherit;cursor:pointer;display:inline-block;padding-left:20px;position:relative;text-decoration:none}.modx-manager-search-results i{color:#234368;left:0;position:absolute;top:4px}.modx-manager-search-results em{font-style:normal;opacity:.7}.modx-manager-search-results .x-combo-list-item{overflow:visible;white-space:normal}.modx-manager-search-results .x-combo-list-item a{display:block}.modx-manager-search-results .x-combo-list-item.x-combo-selected,.modx-manager-search-results .x-combo-list-item:hover{background-color:#e4e4e4;border:0;margin-left:0;z-index:10}.modx-manager-search-results .x-combo-list-item.x-combo-selected h3,.modx-manager-search-results .x-combo-list-item:hover h3{left:0}.modx-manager-search-results .x-combo-list-item.x-combo-selected p,.modx-manager-search-results .x-combo-list-item:hover p{border-left-color:#0000}.modx-manager-search-results .x-combo-list-item.x-combo-selected a,.modx-manager-search-results .x-combo-list-item:hover a{color:#515151}.modx-manager-search-results .icon-user{background-image:none!important}.breadcrumbs .panel-desc{margin-top:0}.crumb_wrapper{background:#fbfbfb;border-bottom:1px solid #e4e4e4;border-top:1px solid #e4e4e4;margin-top:15px}.crumb_wrapper .crumbs{height:34px;overflow:hidden}.crumb_wrapper .crumbs li{color:#53595f;float:left;font-size:12px;font-weight:400;line-height:12px;padding:0 0 0 20px;position:relative;z-index:1}.crumb_wrapper .crumbs li.first{padding:0}.crumb_wrapper .crumbs li.first:before{content:"\f015";display:inline-block;font-size:20px;left:0;line-height:34px;position:absolute;text-align:center;text-indent:0;top:0;z-index:2}#packages-breadcrumbs .crumb_wrapper .crumbs li.first:before{content:"\f1b2"}.crumb_wrapper .crumbs li.first:hover:before{color:#fff}.crumb_wrapper .crumbs li.first:hover{background-color:#515151}.crumb_wrapper .crumbs li.first .root{background-color:initial;box-sizing:initial;display:inline-block;line-height:12px;margin:0;padding:12px;text-indent:-999em;width:35px;z-index:3}.crumb_wrapper .crumbs li.first .root:before{display:none}.crumb_wrapper .crumbs li.first .root:hover{background-color:initial}.crumb_wrapper .crumbs li:hover button,.crumb_wrapper .crumbs li:hover span,.crumb_wrapper .crumbs li:hover span:after{background-color:#515151;color:#fff}.crumb_wrapper .crumbs li:hover button:after,.crumb_wrapper .crumbs li:hover span:after{border-color:#fbfbfb #fbfbfb #515151 #515151;border-style:solid;border-width:1px}.crumb_wrapper .crumbs li:hover button:before,.crumb_wrapper .crumbs li:hover span:before{background-color:#515151}.crumb_wrapper .crumbs li:hover+li button:before,.crumb_wrapper .crumbs li:hover+li span:before{border-left-color:#515151}.crumb_wrapper .crumbs li button{background-color:initial;border:0;color:#53595f;cursor:pointer;font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;line-height:1;text-decoration:none}.crumb_wrapper .crumbs li span{background-color:#fbfbfb}.crumb_wrapper .crumbs li button,.crumb_wrapper .crumbs li span{display:inline-block;margin:0 0 0 1px;padding:11px 13px 11px 15px;position:relative}.crumb_wrapper .crumbs li button:before,.crumb_wrapper .crumbs li span:before{background-color:initial;border-bottom:50px solid #0000;border-left:30px solid #fbfbfb;border-top:50px solid #0000;content:"";display:inline-block;height:0;left:-33px;margin-top:-50px;padding-right:3px;position:absolute;top:50%;transform:scale(.99999);width:0;z-index:-1}.crumb_wrapper .crumbs li button:after,.crumb_wrapper .crumbs li span:after{background-color:#fbfbfb;border:1px solid #dcdcdc;border-bottom:0;border-left:0;border-radius:3px;content:"";display:inline-block;height:34px;position:absolute;right:-22px;top:0;transform:scaleX(.6) rotate(45deg);width:34px;z-index:-1}.x-toolbar{background-color:#f7f7f7;background-image:none;border-color:#dfdfdf}.x-toolbar .x-toolbar-cell label,.x-toolbar .xtb-text{margin:0 5px 0 7px;padding:0}.x-toolbar .x-item-disabled{filter:alpha(opacity=60);opacity:.6}.x-toolbar td.x-toolbar-cell:first-of-type .xtb-text{margin-left:0}.x-toolbar div,.x-toolbar input,.x-toolbar label,.x-toolbar select,.x-toolbar span,.x-toolbar td{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:0}.x-toolbar .x-btn-group-header{line-height:1}.x-toolbar em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-b-noline.gif)}.x-toolbar .x-btn-click em.x-btn-split-bottom,.x-toolbar .x-btn-menu-active em.x-btn-split-bottom,.x-toolbar .x-btn-over em.x-btn-split-bottom,.x-toolbar .x-btn-pressed em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-bo.gif)}.ext-ie .x-toolbar-cell .x-form-field-wrap{height:30px}.x-tbar-page-first{background-image:url(../images/modx-theme/grid/page-first.png)!important}.x-tbar-loading{background-image:url(../images/modx-theme/grid/refresh.png)!important}.x-tbar-page-last{background:none!important;position:relative}.x-tbar-page-last:before{content:"\f04e";left:1px;right:auto;top:1px}.x-tbar-page-next{background:none!important;position:relative}.x-tbar-page-next:before{content:"\f0da";font-size:18px;left:1px;line-height:110%;right:auto}.x-tbar-page-prev{background:none!important;position:relative}.x-tbar-page-prev:before{content:"\f0d9";font-size:18px;left:auto;line-height:110%;right:1px}.x-tbar-loading{background:none!important;position:relative}.x-tbar-loading:before{bottom:auto;content:"\f01e";top:1px}.x-tbar-page-first{background:none!important;position:relative}.x-tbar-page-first:before{content:"\f04a";left:auto;right:1px;top:1px}.x-paging-info{color:#444}.x-toolbar-more-icon{background-image:url(../images/modx-theme/toolbar/more.gif)!important}.x-panel-bbar{padding-top:10px}.modx-browser-rte-buttons .x-panel-bbar{background-color:#fff;border-top:1px solid #fff;padding:5px}.modx-browser-rte-buttons .x-panel-bbar .x-toolbar-layout-ct{width:auto!important}.x-panel-bbar .x-toolbar{background-color:initial;border:0;overflow:hidden;padding:2px 0}.x-panel-bbar .x-toolbar .x-form-text{padding:5px 10px}.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-number,.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-size{width:32px}.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-number{margin-right:3px}.x-panel-bbar .x-toolbar .x-btn{margin-right:10px;padding:8px 13px}.modx-browser-rte .x-panel-bbar .x-toolbar .x-btn{margin-right:0;padding:10px 15px}.x-panel-bbar .x-toolbar .xtb-text{margin:0 3px 0 0}.x-panel-tbar{overflow:visible;padding-bottom:4px}.x-panel-tbar .x-toolbar{border:0;overflow:visible;padding:5px 0}.x-panel-tbar .x-toolbar td{vertical-align:bottom}.x-panel-tbar .x-toolbar input.filter-query{bottom:-1px;position:relative}.x-panel-mc .x-panel-tbar .x-toolbar{background-image:none;border:0;padding:15px 0 7px}.x-panel-tbar-noheader .x-toolbar{background-color:initial;background-image:none;border:0;padding:5px 0}.x-toolbar div,.x-toolbar input,.x-toolbar label,.x-toolbar select,.x-toolbar span,.x-toolbar td{border-radius:3px}.x-html-editor-tb .x-btn-text{background-image:url(../images/modx-theme/editor/tb-sprite.gif)}.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{background-color:initial;border-bottom-color:#0000}.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-top-color:#0000}#modx-leftbar .x-tab-panel-noborder{margin:0 8px}#modx-leftbar .x-tab-panel-bwrap{border-radius:0 0 3px 3px;position:relative;z-index:1}#modx-leftbar .x-tab-panel-bwrap .x-tab-panel-body-noborder{background:#f1f1f1;border-radius:0 0 3px 3px}@media screen and (max-width:960px){#modx-leftbar #modx-leftbar-tabpanel{margin:0 auto;padding:.5em;width:auto!important}#modx-leftbar{box-shadow:none;height:auto!important;left:auto!important;margin:0 auto 10px;position:relative!important;top:auto!important;width:100%!important}#modx-leftbar #modx-leftbar-header{display:none}#modx-leftbar .x-plain-body{height:auto!important;width:100%!important}}#modx-leftbar .x-panel-tbar{padding:0}#modx-leftbar .x-toolbar{padding:4px 5px 2px 0}#modx-leftbar .x-tree-root-ct{padding:6px}#modx-leftbar .x-tree .x-panel-body{background:#fff;border-radius:0}#modx-tree-usergroup .x-toolbar-left-row{display:flex;flex-wrap:wrap}#modx-resource-tree-tbar .x-toolbar-left .x-btn .tree-new-resource,#modx-tree-element .x-toolbar-left .x-btn .tree-new-template{margin-left:16px}#modx-split-wrapper #modx-leftbar-tabs-xcollapsed,#modx-split-wrapper .x-layout-split{margin-left:-70px}.x-layout-split{overflow:visible;width:8px;z-index:2}.x-layout-split:hover{background:#999}#modx-leftbar-tabs-xcollapsed .x-layout-mini{left:0}#modx-leftbar-tabs-xcollapsed .x-layout-mini:after{border-left:5px solid #515151;border-right:0}@media screen and (max-width:960px){#modx-leftbar-tabs-xcollapsed .x-layout-mini:after{border:none}}#modx-leftbar-tabs-xcollapsed .x-layout-mini:hover:after{border-left-color:#234368}.modx-tree{padding:0}#modx-file-tree .modx-tree:first-child{padding-top:4px}.x-tree-arrows .x-tree-elbow-end-minus,.x-tree-arrows .x-tree-elbow-end-plus,.x-tree-arrows .x-tree-elbow-minus,.x-tree-arrows .x-tree-elbow-plus{background:none}.x-tree-arrows .x-tree-elbow-end-minus:hover,.x-tree-arrows .x-tree-elbow-end-plus:hover,.x-tree-arrows .x-tree-elbow-minus:hover,.x-tree-arrows .x-tree-elbow-plus:hover{background:#d9d9d9;border-radius:50%}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before{background:#0000 0 0;content:"\f0da";display:inline-block;margin:0;padding-left:4px;padding-right:4px;text-align:center;width:10px}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-minus:before{content:"\f0d7"}.x-tree-node-el{background-position:5px;background-repeat:no-repeat;color:#515151;font:normal 14px/2.25 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:0 8px}.x-tree-node-el.is_folder{background:#0000}.x-tree-node-el .x-btn{box-shadow:none}.x-tree-node-el .icon{display:inline-block;font-size:1.15em;line-height:.75em;vertical-align:-15%;width:1em}.x-tree-node-el a span{padding-left:7px}.x-tree-node-el a span span{padding-left:0}.x-tree-node-el .icon-plus-circle,.x-tree-node-el .icon-refresh{font-size:1em;vertical-align:0}.unpublished,.unpublished a span,.unpublished a span i.icon,.unpublished a span i.icon-large,.unpublished i.icon,.unpublished i.icon-large{color:#b3b3b3!important;font-style:normal}.hidemenu,.hidemenu a span{color:#999;font-style:italic}.hidemenu a span i.icon,.hidemenu a span i.icon-large,.hidemenu i.icon,.hidemenu i.icon-large{color:#999;font-style:normal}.deleted{color:#af5a6280!important}.deleted i.icon,.deleted i.icon-large{color:#af5a6280!important;font-style:normal}.deleted a span{color:#af5a6280!important;text-decoration:line-through}.element-node-disabled a span{color:#aaa}.x-tree-node{background:#fff;color:#999;position:relative}.x-tree-node .element-node-disabled a span,.x-tree-node .element-node-disabled i.icon,.x-tree-node .x-tree-node-disabled a span,.x-tree-node .x-tree-node-disabled i.icon{color:#aaa}.element-node-locked a span{font-style:inherit}.modx-tree-node-tool-ct{bottom:0;line-height:1.8;position:absolute;right:6px;top:0}html[dir=rtl] .modx-tree-node-tool-ct{left:6px;right:unset}.modx-tree-node-tool-ct .x-btn:focus,.modx-tree-node-tool-ct .x-btn:hover{color:#6cb24a!important}#modx-gr-tree-resource .modx-tree-node-tool-ct,#modx-ih-resource-tree .modx-tree-node-tool-ct{display:none}.x-tree-node-el .modx-tree-node-btn-create{bottom:0;line-height:34px;opacity:0;overflow:hidden;position:absolute;right:6px;top:0;transition:opacity .4s ease-in}html[dir=rtl] .x-tree-node-el .modx-tree-node-btn-create{left:6px;right:unset}.x-tree-node-el .modx-tree-node-btn-create .x-btn{color:#515151;opacity:.4;transition:opacity .2s ease-in-out,color .2s ease-in-out}.x-tree-node-el .modx-tree-node-btn-create .x-btn:focus,.x-tree-node-el .modx-tree-node-btn-create .x-btn:hover{color:#6cb24a;opacity:1}#modx-gr-tree-resource .x-tree-node-el .modx-tree-node-btn-create,#modx-ih-resource-tree .x-tree-node-el .modx-tree-node-btn-create{display:none}.x-tree-node-el:focus .modx-tree-node-btn-create,.x-tree-node-el:hover .modx-tree-node-btn-create{opacity:1}.tree-pseudoroot-node.x-tree-node-el{background-color:#f1f1f1;font:500 14px/3 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:0 5px;position:relative}.tree-pseudoroot-node.x-tree-node-el>.icon,.tree-pseudoroot-node.x-tree-node-el a span{color:#53595f}.tree-pseudoroot-node.x-tree-node-el .modx-tree-node-tool-ct{filter:alpha(opacity=50);line-height:3;opacity:.5}.tree-pseudoroot-node.x-tree-node-el .modx-tree-node-tool-ct .x-btn{margin-left:2px}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-collapsed{border-bottom:1px solid #e4e4e4}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded,.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded>.icon,.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded span{color:#53595f}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-over{background-color:#e4e4e4;color:#53595f}.tree-pseudoroot-node.x-tree-node-el+.x-tree-node-ct,.tree-pseudoroot-node.x-tree-node-el+div>.x-tree-node-ct{background:#fbfbfb;overflow-x:auto}.tree-pseudoroot-node.x-tree-node-el+.x-tree-node-ct:empty,.tree-pseudoroot-node.x-tree-node-el+div>.x-tree-node-ct:empty{padding:0}.tree-pseudoroot-node.x-tree-node-el:hover .modx-tree-node-tool-ct{filter:alpha(opacity=100);opacity:1}.tree-pseudoroot-node.x-tree-node-el:hover .modx-tree-node-tool-ct .x-btn{color:inherit}.x-tree-elbow,.x-tree-elbow-end{display:inline-block}#modx-leftbar .icon,.x-tree-node .icon{background:none;border:0;display:inline-block;filter:alpha(opacity=80);margin:0;opacity:.8;padding:3px;text-align:center}#modx-leftbar .icon.icon-code:before,#modx-leftbar .icon.icon-cogs:before,#modx-leftbar .icon.icon-columns:before,#modx-leftbar .icon.icon-folder:before,#modx-leftbar .icon.icon-th-large:before,.x-tree-node .icon.icon-code:before,.x-tree-node .icon.icon-cogs:before,.x-tree-node .icon.icon-columns:before,.x-tree-node .icon.icon-folder:before,.x-tree-node .icon.icon-th-large:before{font-weight:900}#modx-leftbar .icon i,.x-tree-node .icon i{font-style:normal}#modx-leftbar .icon button,.x-tree-node .icon button{display:none}.x-tree-node-ct .x-tree-node .icon{left:-1px;position:relative;top:-1px}.x-dd-drag-ghost a,.x-dd-drag-ghost a span,.x-tree-node a,.x-tree-node a span{color:#515151}.x-tree-node div.x-tree-drag-insert-below{border-bottom:2px solid #a8c3e2!important}.x-tree-node div.x-tree-drag-insert-above{border-top:2px solid #a8c3e2!important}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #a8c3e2!important}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #a8c3e2!important}.x-tree-node .x-tree-drag-append a span,.x-tree-node .x-tree-node-over{background-color:#e4e4e4}.x-tree-node .x-tree-selected{background-color:#d6e7f8}.x-tree-node .x-tree-expanded{background-color:#e4e4e4;color:#234368}.x-tree-node .x-tree-expanded a,.x-tree-node .x-tree-expanded a span{color:#234368}.icon-rss:before{content:"\f09e"}.icon-cal:before,.icon-ical:before,.icon-ics:before,.icon-vcs:before{content:"\f133"}.icon-db:before,.icon-sql:before{content:"\f1c0"}.icon-7z:before,.icon-bz2:before,.icon-dmg:before,.icon-gz:before,.icon-iso:before,.icon-rar:before,.icon-tar:before,.icon-tgz:before,.icon-zip:before{content:"\f1c6"}.icon-backup:before,.icon-bak:before,.icon-bk:before{content:"\f1da"}.icon-bmp:before,.icon-gif:before,.icon-jpeg:before,.icon-jpg:before,.icon-png:before,.icon-svg:before,.icon-tiff:before{content:"\f1c5"}.icon-bat:before,.icon-scr:before,.icon-sh:before{content:"\f120"}.icon-log:before,.icon-txt:before{content:"\f15c"}.icon-aac:before,.icon-aif:before,.icon-aiff:before,.icon-flac:before,.icon-m4a:before,.icon-mp3:before,.icon-ogg:before,.icon-wav:before,.icon-wma:before{content:"\f1c7"}.icon-3gp:before,.icon-avi:before,.icon-fla:before,.icon-flv:before,.icon-m4v:before,.icon-mov:before,.icon-mp4:before,.icon-mpeg:before,.icon-mpg:before,.icon-swf:before,.icon-wmv:before{content:"\f1c8"}.icon-access:before,.icon-htaccess:before{content:"\f023"}.icon-as:before,.icon-cfm:before,.icon-jar:before,.icon-java:before,.icon-php:before,.icon-rb:before{content:"\f1c9"}.icon-doc:before,.icon-docx:before{content:"\f1c2"}.icon-csv:before,.icon-xls:before,.icon-xlsx:before{content:"\f1c3"}.icon-ppt:before,.icon-pptx:before{content:"\f1c4"}.icon-pdf:before{content:"\f1c1"}.icon-coffeescript:before,.icon-css:before,.icon-htm:before,.icon-html:before,.icon-js:before,.icon-json:before,.icon-less:before,.icon-scss:before,.icon-styl:before,.icon-xml:before{content:"\f1c9"}.icon-action{background-image:url(../images/restyle/icons/application_osx_terminal.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-action.x-tree-node-el{background-position:5px 5px!important}.icon-action:before{content:" "}.icon-namespace{background-image:url(../images/restyle/icons/computer.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-namespace.x-tree-node-el{background-position:5px 5px!important}.icon-namespace:before{content:" "}.icon-list-new{background-image:url(../images/restyle/icons/layout_add.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-list-new.x-tree-node-el{background-position:5px 5px!important}.icon-list-new:before{content:" "}.icon-mark-active{background-image:url(../images/restyle/icons/layout_edit.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-mark-active.x-tree-node-el{background-position:5px 5px!important}.icon-mark-active:before{content:" "}.icon-mark-complete{background-image:url(../images/restyle/icons/layout_header.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-mark-complete.x-tree-node-el{background-position:5px 5px!important}.icon-mark-complete:before{content:" "}.icon-package{background-image:url(../images/restyle/icons/package.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;padding-right:5px!important;vertical-align:middle}.icon-package.x-tree-node-el{background-position:5px 5px!important}.icon-package:before{content:" "}.icon-locked{background-image:url(../images/restyle/icons/lock_edit.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-locked.x-tree-node-el{background-position:5px 5px!important}.icon-locked:before{content:" "}.icon-lock{content:"\f023"}#modx-resource-tree-panel .x-accordion-hd{background-position:0 0}#modx-element-tree-panel .x-accordion-hd{background-position:0 -32px}#modx-file-tree-panel .x-accordion-hd{background-position:0 -64px}#modx-static-page-settings .x-accordion-hd{background-position:0 -96px}.x-tree-node-el .x-tree-node-icon{display:inline-block}.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/modx-theme/tree/loading.gif)!important}.x-tree-node-loading a span{color:#444;font-style:italic}.tree-context:before{content:"\f0ac"}.tree-resource:before{content:"\f15b"}.tree-static-resource:before{content:"\f15c"}.tree-weblink:before{content:"\f0c1"}.tree-symlink:before{content:"\f0c5"}.icon-folder:before,.parent-resource:before{content:"\f07b"}.x-tree-node-expanded .icon-folder:before,.x-tree-node-expanded .parent-resource:before{content:"\f07c"}.locked-resource:before{content:"\f023"!important}.ext-ie .x-tree-node-el input{height:15px;width:15px}.x-tree-root-ct{border-radius:0;overflow:hidden;padding:0!important}.x-tree-root-node{margin:0}.x-dd-drag-ghost a,.x-dd-drag-ghost a span,.x-tree-node,.x-tree-node a,.x-tree-node a span{color:#515151}.x-tree-node .x-tree-node-disabled a span{color:#d1d1d1}.x-tree-node div.x-tree-drag-insert-below{border-bottom-color:#686868}.x-tree-node div.x-tree-drag-insert-above{border-top-color:#686868}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom-color:#686868}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top-color:#686868}.x-tree-node .x-tree-drag-append a span{background-color:#dfdfdf;border-color:#e4e4e4}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-add.gif)}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-over.gif)}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-under.gif)}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-between.gif)}#modx-leftbar-header{align-items:center;box-sizing:border-box;color:#53595f;display:flex;height:57px;justify-content:left;padding:.67rem 1rem}#modx-leftbar-header img{max-height:100%;max-width:33%}#modx-leftbar-header a{color:#53595f;font:normal 25px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;text-decoration:none}#modx-leftbar-header a:focus,#modx-leftbar-header a:hover{color:#234368}#modx-leftbar-header a:after{content:"\f06e";font-size:14px;opacity:.5;padding:5px}#modx-leftbar-header img+a{padding-left:.67rem}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip-wrap{margin:0;padding:0}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip{display:flex;width:100%}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li{box-sizing:border-box;flex-grow:1;float:none;margin-left:0;text-align:center}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li#modx-leftbar-tabpanel__modx-trash-link{border-right:none}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li:hover{color:#234368}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active{background:#f1f1f1}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active:after{box-shadow:none}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active:before{background:#0000}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip .x-clear,#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip .x-tab-edge{display:none}#modx-leftbar-tabpanel__modx-trash-link .icon{opacity:.5}#modx-leftbar-tabpanel__modx-trash-link .icon:hover{color:#cf1124}#modx-leftbar-tabpanel__modx-trash-link.active .icon{opacity:1}.modx-browser-rte{background:#fff}.modx-browser-tree{background:#fff;border-radius:3px}.modx-browser-rte .modx-browser-tree,.x-window .modx-browser-tree{border-radius:0;border-right:1px solid #e4e4e4;box-shadow:none}.modx-browser-view-ct{background:#fff;border-radius:3px;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.modx-browser-rte .modx-browser-view-ct,.x-window .modx-browser-view-ct{border-radius:0;box-shadow:none}.modx-browser-thumb-wrap{cursor:pointer;float:left;margin:5px;overflow:hidden;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.modx-browser-thumb-wrap.x-view-over .modx-browser-placeholder{color:#515151}.modx-browser-thumb-wrap.x-view-over .modx-browser-thumb{border:1px dotted #515151}.modx-browser-thumb-wrap.x-view-selected .modx-browser-placeholder{color:#234368}.modx-browser-thumb-wrap.x-view-selected .modx-browser-thumb{border:1px solid #234368}.modx-browser-thumb{background:#fff;border:1px solid #e4e4e4;height:100px;line-height:100px;padding:5px;width:100px}.modx-browser-thumb img{background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png);max-width:100%;vertical-align:middle}.modx-browser-placeholder{color:#dcdcdc;font-size:14px}.details .modx-browser-placeholder{align-items:center;display:flex;font-size:24px;font-weight:700;height:100px;justify-content:center;overflow:hidden;width:100%}.modx-browser-list-item{padding:0 5px}.modx-browser-list-item>span{background-position:0!important;border-bottom:1px solid #e4e4e4;clear:both;display:block;min-height:16px;padding:5px 0 5px 20px;position:relative}.modx-browser-list-item>span:before{font-size:14px;left:2px;position:absolute}.modx-browser-list-item>span span{display:inline-block;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.modx-browser-list-item>span span.file-size,.modx-browser-list-item>span span.image-size{float:right;width:13%}.modx-browser-list-item.x-view-over>span{background:#fbfbfb}.modx-browser-list-item.x-view-selected>span{background:#fbfbfb;color:#234368}.modx-browser-view-ct .loading-indicator{background-position:0;background-repeat:no-repeat;font-size:11px;margin:10px;padding-left:20px}.modx-browser-pathbbar table,.modx-browser-pathbbar tbody,.modx-browser-pathbbar td,.modx-browser-pathbbar tr{display:block}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell{position:relative}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell:before{content:"\f328";filter:alpha(opacity=60);font-size:14px;left:0;opacity:.6;position:absolute;text-align:center;top:50%;width:30px}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row .modx-browser-filepath{background:#0000;border:0;border-radius:0;border-top:1px solid #e4e4e4;box-sizing:border-box;height:32px!important;margin:0!important;padding-left:30px;width:100%}.modx-browser-details-ct{background:#fff;border-radius:3px}.modx-browser-rte .modx-browser-details-ct,.x-window .modx-browser-details-ct{border-left:1px solid #e4e4e4;border-radius:0;box-shadow:none}.modx-browser-detail-thumb{color:#000;cursor:default;padding:5px;position:relative}.modx-browser-detail-thumb.preview{cursor:pointer}.modx-browser-detail-thumb.preview:before{content:"\f002";filter:alpha(opacity=0);font-size:56px;left:0;margin-top:-28px;opacity:0;position:absolute;text-align:center;text-shadow:0 0 10px #0003;top:50%;transition:opacity .25s;width:100%}.modx-browser-detail-thumb.preview:hover:before{filter:alpha(opacity=60);opacity:.6}.modx-browser-detail-thumb img{background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png);display:block;height:auto;margin:0 auto;max-width:100%;width:100%}.modx-browser-details-info{border-top:1px solid #e4e4e4;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:15px;text-align:left}.modx-browser-details-info b{color:#53595f;display:block;margin-bottom:2px}.modx-browser-details-info span{display:block;margin-bottom:10px}.modx-browser-fullview{text-align:center}.modx-browser-fullview img{background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png);display:block;height:auto;margin:0 auto;max-width:100%;width:100%}@media screen and (max-width:960px){.modx-browser{max-height:100%!important;overflow-y:scroll;top:15px!important}.modx-browser-panel{background-color:#fff!important;margin:15px 0!important;min-height:700px;width:100%!important}.modx-browser-tree,.modx-browser-view-ct{max-width:35%!important;width:35%!important}.modx-browser-details-ct,.modx-browser-tree,.modx-browser-view-ct{display:inline-block!important;float:left;left:0!important;padding:0 5px;position:relative!important}.modx-browser-details-ct{max-width:20%!important;width:20%!important}.modx-browser-details-ct *,.modx-browser-tree *,.modx-browser-view-ct *{font-size:12px!important}.modx-browser-details-ct input,.modx-browser-tree input,.modx-browser-view-ct input{padding:5px!important}.modx-browser-tree .x-toolbar-ct tbody tr td{display:table-cell}.modx-browser-view-ct .x-panel-body,.modx-browser-view-ct .x-panel-tbar,.modx-browser-view-ct .x-panel-tbar-noheader,.modx-browser-view-ct .x-panel-tbar .x-toolbar,.modx-browser .x-panel-tbar-noheader,.modx-browser .x-toolbar{width:100%!important}.modx-browser-view-ct .x-panel-tbar .x-toolbar-cell label{line-height:2.2}.modx-browser-thumb-wrap{margin:5px;padding:5px;width:24%}.modx-browser-thumb{height:25px;line-height:25px;max-width:100%;overflow:hidden;padding:0}.modx-browser-thumb img{max-width:100%}.modx-browser-placeholder{height:50px}.modx-browser-details-info{padding:5px}}.x-window{-webkit-backface-visibility:hidden;border-radius:3px;box-shadow:0 0 15px 0 #0003;filter:alpha(opacity=0);opacity:0;overflow:visible;transform:scale(1) translateZ(0);transition:opacity .25s ease-in-out,transform .25s ease-in-out}.x-window.anim-ready{transform:scale(.7) translateZ(0)}.x-window.zoom-in{filter:alpha(opacity=100);opacity:1;transform:scale(1) translateZ(0)}.x-window.zoom-out{filter:alpha(opacity=0);opacity:0;transform:scale(1.3) translateZ(0)}.ext-ie8 .x-window.x-window-dlg{filter:alpha(opacity=100)}.x-window .x-window-tl,.x-window .x-window-tr{padding:0}.x-window .x-window-tc{z-index:1}.x-window .x-window-tc .x-window-header{background-color:#f4f4f4;border-bottom:1px solid #f4f4f4;border-radius:3px 3px 0 0;color:#515151;font:normal 13px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;padding:8px;text-align:center}.x-window .x-window-tc .x-window-header-text{padding-left:24px}.x-window.x-panel-collapsed .x-window-tl{border-bottom:1px solid #dcdcdc}.x-window.x-panel-collapsed .x-window-header{border-radius:3px}.x-window .x-window-bwrap{overflow:visible}.x-window .x-window-bwrap .x-window-ml,.x-window .x-window-bwrap .x-window-mr{padding:0}.x-window .x-window-bwrap .x-window-mc{border:0;padding:0}.x-window .x-window-bwrap .x-window-mc .x-panel-bl,.x-window .x-window-bwrap .x-window-mc .x-panel-mc,.x-window .x-window-bwrap .x-window-mc .x-panel-ml,.x-window .x-window-bwrap .x-window-mc .x-panel-mr,.x-window .x-window-bwrap .x-window-mc .x-panel-tl{background:#0000;border:0;padding:0}.x-window .x-window-body{background-color:#fff!important;border:0;overflow-y:auto;padding:15px}.x-window.modx-window .x-window-body{padding-top:0}.x-window.modx-window.modx-alert .x-window-body,.x-window.modx-window.modx-confirm .x-window-body,.x-window.modx-window.modx-console .x-window-body,.x-window.modx-window .x-window-with-tabs .x-window-body{padding-top:15px}.x-window.modx-window .x-window-tc .x-window-header-text{padding-left:64px}.x-window .x-panel-bwrap{background:#fff;padding:0}.x-window .x-panel-bwrap .x-panel-bwrap{background:#0000;box-shadow:none;overflow:visible;padding:0}.x-window .x-window-with-tabs .x-window-body{background-color:#fbfbfb!important;overflow:visible}.x-window .x-window-with-tabs .x-panel-bwrap{background:#0000;box-shadow:none;overflow:visible;padding:0}.x-window form.x-panel-body:first-of-type{overflow:visible!important}.x-window .modx-tabs .x-tab-panel-header .x-tab-strip-wrap{padding-top:3px}.x-window .modx-tabs .x-tab-panel-header .x-tab-strip-wrap .x-tab-strip{border:0}.x-window .x-tab-panel-bwrap{background:#fff;box-shadow:0 4px 6px #00000026;padding:10px}.x-window .x-tab-panel-bwrap .x-tab-panel-body{overflow-y:auto}.x-window .x-tab-panel-bwrap .x-tab-panel-body .modx-panel .x-panel-bwrap,.x-window .x-window-bl,.x-window .x-window-br{padding:0}.x-window .x-window-bc .x-window-footer{background-color:#fff;border-radius:0 0 3px 3px;border-top:1px solid #fff;box-sizing:border-box;padding:5px 15px 15px;width:100%!important}.x-window.x-window-maximized{margin:0}.x-window.x-window-maximized .x-window-mc,.x-window.x-window-maximized .x-window-tc{padding:0}.x-window.modx-console .modx-console-text{background-color:#fff;border:none;font:12px SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;height:auto!important}.x-window.modx-console .debug{color:#515151}.x-window.modx-console .success{color:#6cb24a}.x-window.modx-console .warn{color:#4a90e2}.x-window.modx-console .error{color:#cf1124}.x-progress-wrap{border:1px solid #6cb24a;width:100%!important}.x-progress-wrap .x-progress-inner{background-color:#fdfefd}.x-progress-wrap .x-progress-bar{background-color:#6cb24a;border:0}.x-progress-wrap .x-progress-text{color:#fff;font-size:11px;font-weight:700}.x-progress-wrap .x-progress-text-back{color:#515151}.ext-el-mask{background-color:#fff;filter:alpha(opacity=0);opacity:0;transition:opacity .25s}.ext-el-mask.fade-in,.x-masked .ext-el-mask{filter:alpha(opacity=50);opacity:.5}.x-masked .ext-el-mask{z-index:9}.ext-mb-icon{display:inline-block;float:left;position:relative;width:40px!important}.ext-mb-icon:before{color:#4a90e2;content:"";font-size:32px;position:absolute;right:0;text-align:left;top:50%;transform:translateY(-50%);width:100%}.ext-mb-icon.ext-mb-info:before{color:#4a90e2;content:"\f05a"}.ext-mb-icon.ext-mb-question:before{color:#4a90e2;content:"\f059"}.ext-mb-icon.ext-mb-warning:before{color:#f0b429;content:"\f071"}.ext-mb-icon.ext-mb-error:before{color:#cf1124;content:"\f057"}.ext-mb-content{display:block;margin-left:0!important}.ext-el-mask-msg{background-color:#fff;border:1px solid #dcdcdc;border-radius:3px;box-shadow:0 4px 6px #00000026;padding:5px;z-index:10}.ext-el-mask-msg div{background-color:initial;border:0;color:#515151;cursor:default;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.ext-el-mask-msg .modx-lockmask div{color:#cf1124}.x-mask-loading div{background-image:url(../images/modx-theme/grid/loading.gif)}.dashboard{display:flex;flex-flow:row wrap;margin:-.5rem 0 0 -1rem!important;padding:0 15px}.dashboard .dashboard-button{background:#fff;border:1px solid #0000;border-radius:3px;display:inline-block;padding:5px 20px;text-decoration:none}.dashboard .dashboard-button-green{background:#6cb24a;border-color:#6cb24a;color:#fff}.dashboard .dashboard-button[disabled]{background-color:#e4e4e4}.dashboard .dashboard-button:not([disabled]):hover{border-color:#e4e4e4}.dashboard .dashboard-block{margin:1rem 0 0 1rem}.dashboard .dashboard-block:not(.headless){background-color:#fff;border-radius:3px}.dashboard .dashboard-block.headless .body{max-height:100%;overflow:visible;padding:0}.dashboard .dashboard-block.quarter{width:calc(25% - 1rem)}.dashboard .dashboard-block.one-third{width:calc(33.33332% - 1rem)}.dashboard .dashboard-block.half{width:calc(50% - 1rem)}.dashboard .dashboard-block.two-thirds{width:calc(66.66668% - 1rem)}.dashboard .dashboard-block.three-quarters{width:calc(75% - 1rem)}.dashboard .dashboard-block.full{width:calc(100% - 1rem)}.dashboard .dashboard-block.double{margin-top:2rem;min-height:250px;width:calc(100% - 1rem)}.dashboard .dashboard-block.double .body{height:100%;max-height:100%}.dashboard .dashboard-block.double .dashboard-buttons{height:100%}.dashboard .dashboard-block.double .dashboard-button{align-items:center}.dashboard .dashboard-block h4{color:#515151;font-size:13px;padding-bottom:2px}.dashboard .dashboard-block em{font-style:italic}.dashboard .dashboard-block strong{font-weight:700}.dashboard .dashboard-block ul{list-style:circle outside;padding:0 0 0 15px}.dashboard .dashboard-block img{max-width:100%}.dashboard .dashboard-block .draggable{cursor:move}.dashboard .dashboard-block .action-buttons{margin-left:auto;margin-right:10px}.dashboard .dashboard-block .action-buttons button{background:#0000;border:none;cursor:pointer;opacity:0}.dashboard .dashboard-block .action-buttons button.hidden{display:none}.dashboard .dashboard-block .body{color:#444;font-size:12px;height:auto;max-height:300px;overflow:auto;padding:10px;position:relative}.dashboard .dashboard-block .body .action-buttons{position:absolute;right:-5px;top:20px}.dashboard .dashboard-block .title-wrapper{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;flex-wrap:nowrap}.dashboard .dashboard-block .title-wrapper .title{zoom:1;background:#fff;border-radius:3px;color:#515151;flex-grow:1;font-size:12px;font-weight:700;margin:0;padding:15px 10px}.dashboard .dashboard-block .actions button{height:10px;width:10px}.dashboard .dashboard-block:hover .action-buttons button{opacity:1}.dashboard ul.configcheck{list-style-type:none;padding:0}.dashboard ul.configcheck li{background-color:#fbfbfb;margin-bottom:.5em;margin-top:.5em;padding:1em 1.618em}.dashboard ul.configcheck li h5{color:#cf1124}.dashboard ul.configcheck li p{color:#515151}.dashboard .news_article{border-bottom:1px solid #dfdfdf;overflow:hidden;padding:15px 0}.dashboard .news_article h2 a{text-decoration:none}.dashboard .news_article h2{font-size:18px}.dashboard .news_article .date_stamp{float:right;font-size:12px;font-style:italic}.dashboard .configcheck a,.dashboard .news_article a{text-decoration:underline}.dashboard .configcheck a:hover,.dashboard .news_article a:hover{text-decoration:none}.dashboard .table-wrapper{overflow:auto;width:100%}.dashboard .table-wrapper table{border:1px solid #ddd;border-radius:5px;width:100%}.dashboard .table-wrapper table th{border-bottom:2px solid #f0f0f0;font-weight:700;padding:10px;text-align:initial}.dashboard .table-wrapper table td{border-bottom:1px solid #f0f0f0;padding:10px;vertical-align:center;white-space:nowrap}.dashboard .table-wrapper table td .unpublished{color:#999;font-style:italic}.dashboard .table-wrapper table td .deleted{color:#af5a6280!important;text-decoration:line-through}.dashboard .table-wrapper table tr:last-child td,.dashboard .table-wrapper table tr:last-child td tr:last-child td{border:none}.dashboard .table-wrapper table tr:last-child td tr:last-child td:first-child{border-bottom-left-radius:10px}.dashboard .table-wrapper table tr:last-child td tr:last-child td:last-child{border-bottom-right-radius:10px}.dashboard .widget-footer{border-top:1px solid #f0f0f0;padding-top:10px}.dashboard .widget-footer a{display:block;font-size:14px;padding-bottom:5px;padding-top:5px;text-align:center;text-decoration:none}.dashboard .widget-actions a{border:1px solid #e4e4e4;border-radius:3px;display:inline-block;margin-left:5px;padding:3px 5px;text-decoration:none}.dashboard .widget-actions a:first-child{margin-left:0}.dashboard .widget-actions a:hover{background:#f0f0f0}.dashboard .widget-actions a .icon{display:inline-block;height:12px;text-align:center;width:12px}.dashboard .no-results{color:#999;padding:10px;text-align:center}.dashboard .user-with-avatar{align-items:center;display:flex}.dashboard .user-with-avatar .user-avatar{margin:0 10px}.dashboard .user-with-avatar .user-avatar img{border-radius:50%;width:35px}.dashboard .user-with-avatar .user-name{color:#234368;font-weight:500}.dashboard .user-with-avatar .user-group{color:#999}.dashboard .occurred-date,.dashboard .resource .title{color:#234368;font-weight:500}.dashboard .occurred-time{color:#999}#modx-news-feed-container img{max-width:100%}.dashboard-buttons{display:flex;flex-wrap:wrap;justify-content:center;margin:-1rem 0 0 -1rem;width:calc(100% + 1rem)}.dashboard-buttons .dashboard-button{align-items:center;background-color:#fff;border-radius:3px;color:#53595f;display:flex;flex:1;margin:1rem 0 0 1rem;padding:20px;text-decoration:none}.dashboard-buttons .dashboard-button:hover{color:#000}.dashboard-buttons .dashboard-button:hover .icon{opacity:.7}.dashboard-buttons .dashboard-button-icon{background:#6cb24a33;border:1px solid #6cb24a;border-radius:20px;padding:10px;text-align:center}.dashboard-buttons .dashboard-button-icon .icon{color:#6cb24a;display:block;font-size:16px;font-weight:700;height:16px;text-align:center;width:16px}.dashboard-buttons .dashboard-button-wrapper{padding:0 10px}.dashboard-buttons .dashboard-button-title{font-weight:700}::-webkit-scrollbar,::-webkit-scrollbar-thumb{background-color:initial;border:.25rem solid #0000;border-radius:.5rem;height:1rem;width:1rem}::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem #556c881a}::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 1rem #556c8833}::-webkit-resizer,::-webkit-scrollbar-corner{background-color:initial}.updates-widget .updates-title{color:#234368;font-weight:500}.updates-widget .updates-updateable{background:#4a90e2;border-radius:20px;color:#fff;display:inline-block;font-weight:700;padding:2px 8px}.updates-widget .updates-available,.updates-widget .updates-ok{border-radius:3px;color:#fff;font-size:10px;padding:3px 8px;text-transform:uppercase}.updates-widget .updates-ok{background:#6cb24a}.updates-widget .updates-available{background:#cf1124}#modx-panel-system-info .x-form-label-left .x-form-item{padding:0 5px}#modx-panel-system-info .x-form-label-left .x-form-item:nth-child(2n){background:#f0f0f0}#modx-panel-system-info .x-form-label-left .x-form-item .x-form-display-field{padding:7px 0}@media screen and (max-width:960px){.dashboard-buttons .dashboard-button{align-items:center;flex-direction:column;flex-wrap:wrap;text-align:center}.dashboard-buttons .dashboard-button-wrapper{margin-left:0;margin-top:5px}.dashboard .dashboard-block.half,.dashboard .dashboard-block.one-third,.dashboard .dashboard-block.quarter,.dashboard .dashboard-block.two-thirds{width:calc(100% - 1rem)}.dashboard-buttons{flex-wrap:wrap}.dashboard-buttons .dashboard-button{padding:10px}.dashboard-buttons .dashboard-button-wrapper{display:none}}.nobg .x-panel-body{background:#0000;padding-right:1.5em}#managerbuttons{margin-bottom:1em;overflow:hidden;width:100%}#managerbuttons ul:after,#managerbuttons ul:before{content:" ";display:table}#managerbuttons ul:after{clear:both}#managerbuttons ul{*zoom:1;margin:0;width:100%}#managerbuttons ul li{box-sizing:border-box;display:table;float:left;margin:0;padding:0 1%;position:relative;width:20%}#managerbuttons ul li:first-child{padding-left:0}#managerbuttons ul li:last-child{padding-right:0}#managerbuttons ul li a{background-color:#fff;border:1px solid #e4e4e4;border-radius:3px;box-shadow:0 1px 0 #e4e4e4;color:#53595f;display:table-cell;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;padding:12px;position:relative;text-align:center;text-decoration:none;vertical-align:middle}#managerbuttons ul li a span{display:block;line-height:1.4}#managerbuttons ul li a span.headline{font-size:12px}#managerbuttons ul li a span.subline{font-weight:400}#managerbuttons ul li a span.icon{display:block;margin:0 auto;padding:0 0 10px;width:auto}#managerbuttons ul li a:hover span.icon{color:#234368}#contactus,#helpBanner{background:#fff;border:1px solid #e4e4e4;box-shadow:0 1px 0 #e4e4e4;box-sizing:border-box;margin:.75em 0 1.75em;padding:18px;width:100%}#contactus h3,#helpBanner h3{margin:0 0 1em}#helpBanner{background-attachment:none;background-image:url(../images/modx-logo-color.svg),none;background-position:97%;background-repeat:no-repeat;background-size:200px;margin-top:1.5em;min-height:112px}#helpBanner #helpLogo{float:right;height:76px;margin-right:1em;width:200px}#contactus{box-sizing:border-box;float:left;width:60%}#contactus form{display:inline}#contactus input[type=email]{box-sizing:border-box;font-size:1.1em;margin-right:4px;padding:.4em;width:70%}#contactus input[type=submit]{border:0;cursor:pointer;font-size:1.1em;padding:6px 10px}#contactus p{color:#132539;margin:1em 0}#contactus form+p{margin:2em 0 0}#contactus a{color:#000;text-decoration:none}#contactus a:hover{text-decoration:underline}#contactus a:hover i{text-decoration:none}#contactus a i{margin:0 15px -6px 0}#mcsignup input.x-btn{padding:10px 15px}.icon.icon-2x{text-align:center;vertical-align:text-bottom;width:22px}#aboutMODX{background:#f0f0f0;box-sizing:border-box;float:left;margin:1em 0 0 2%;min-height:300px;padding:1em;width:38%}#aboutMODX p{line-height:1.6;margin:0 0 1em}#aboutMODX a{color:#234368;margin:-2px -4px;padding:2px 4px}#aboutMODX a:hover{background-color:#234368;color:#fff;text-decoration:none}.trashrow{background-color:#ccc!important}.x-btn-purge-all{color:#cf1124}.x-btn-purge-all:hover{background:#cf1124;box-shadow:0 0 0 1px #cf1124;color:#fff}.x-btn-restore-all{color:#6cb24a}.x-btn-restore-all:hover{background:#6cb24a;box-shadow:0 0 0 1px #6cb24a;color:#fff}#changelog-tab p{margin-bottom:.3rem}#changelog-tab h1{color:#595959}#changelog-tab h2{font-weight:700;margin-top:1rem}#changelog-tab ul{margin-bottom:1rem}#modx-package-browser-details-main p{color:#595959;margin-bottom:.3rem}#modx-package-browser-details-main h1,#modx-package-browser-details-main h2,#modx-package-browser-details-main h3,#modx-package-browser-details-main h4,#modx-package-browser-details-main h5,#modx-package-browser-details-main h6{color:#595959;font-weight:700}#modx-package-browser-details-main h1{font-size:1.2em}#modx-package-browser-details-main h2{font-size:1.15em}#modx-package-browser-details-main h3{font-size:1.1em}#modx-package-browser-details-main h4{font-size:1.05em}#modx-package-browser-details-main h5{font-size:1em}#modx-package-browser-details-main h6{font-size:.95em}#modx-package-browser-details-aside h4{text-align:center}#modx-package-browser-details-aside ul li{margin-bottom:.5em}body{-webkit-font-smoothing:antialiased;color:#000;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;scrollbar-color:#e1e3e6 #0000}body a{color:#234368}body a:hover{color:#162a42}h2,h3{color:#515151;font:normal 25px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0 0 8px -1px}h3{font:550 15px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}strong{font-weight:700}em{font-style:italic}hr{background-color:#e4e4e4;border:0;color:#e4e4e4;height:1px;margin:20px 0}.aleft{text-align:left}.aright{text-align:right}.right{float:right}.left{float:left}.clear{clear:left}.bold{font-weight:700}.installed{color:#515151}.not-installed{color:#999;font-style:italic}.yellow{color:#fce588!important}.orange{color:#f0b429!important}.error,.red{color:#cf1124!important}.green{color:#6cb24a!important}.blue{color:#4a90e2!important}.primary{color:#6cb24a!important}.centered{text-align:center}.wait{background:#0000 url(../images/style/wait.gif) no-repeat scroll center 55px;color:#53595f;font-size:15px;font-weight:700;padding:20px 10px 60px}.padding{background-color:#fff;padding:11px}.dashed{border-bottom:1px dashed #90b1b9}.x-form-text,textarea.x-form-field{border-color:#e4e4e4}#modx-content,#modx-leftbar{position:absolute;transition:left .2s ease}#modx-leftbar-tabpanel{transition:all .6s ease}#modx-content{left:370px;right:0;width:calc(100% - 370px)}.modx-form p{padding-bottom:10px}.x-layout-mini{left:2px}#modx-resource-content .x-panel-header{margin:0;padding:15px}#modx-resource-content .x-panel-bwrap{border:0}#modx-resource-content .modx-tv .modx-tv-label{clear:none;float:none;padding:15px 0 4px;position:static;width:auto}#modx-content-above .x-panel-bwrap,#modx-content-below .x-panel-bwrap{border:0}.x-tab-panel-header,.x-tab-panel-header .x-tab-strip li{box-sizing:border-box}@media screen and (max-width:960px){.x-viewport{overflow-y:auto}.x-viewport body{height:auto}}#modx-container{background:#f1f1f1;height:100%;width:100%}@media screen and (max-width:960px){#modx-container{height:auto}}@media screen and (max-width:1140px){#modx-page-settings-left,#modx-page-settings-right,#modx-resource-main-left,#modx-resource-main-right{box-sizing:border-box;margin:0 auto 15px;width:100%!important}#modx-page-settings-left .x-panel-body,#modx-page-settings-right .x-panel-body,#modx-resource-main-left .x-panel-body,#modx-resource-main-right .x-panel-body{height:auto!important;max-height:100%!important;max-width:100%!important;width:auto!important}}@media screen and (max-width:960px){#modx-chunk-form .main-wrapper,#modx-panel-plugin .main-wrapper,#modx-snippet-form .main-wrapper,#modx-template-form .main-wrapper,#modx-tv-tabs .main-wrapper{padding:0;width:100%!important}#modx-chunk-form .main-wrapper>.x-panel-bwrap,#modx-panel-plugin .main-wrapper>.x-panel-bwrap,#modx-snippet-form .main-wrapper>.x-panel-bwrap,#modx-template-form .main-wrapper>.x-panel-bwrap,#modx-tv-tabs .main-wrapper>.x-panel-bwrap{padding:1em}#modx-resource-main-right{margin:15px auto 0}.x-toolbar-ct,.x-toolbar-ct tbody,.x-toolbar-ct tbody tr{display:block}.x-toolbar-ct tbody tr td{display:block;width:100%}.x-toolbar-ct tbody tr td table{width:100%}.x-toolbar-ct tbody tr td table .x-form-field-wrap{margin-left:0!important;margin-right:0!important;width:100%!important}.x-toolbar-ct tbody tr td table .x-btn,.x-toolbar-ct tbody tr td table .x-form-text{box-sizing:border-box;margin-left:0!important;margin-right:0!important;width:100%!important}.x-column{float:none;margin-left:0!important;margin-right:0!important;width:100%!important}#modx-tree-panel-usergroup .main-wrapper{display:inline-block;float:left;max-width:100%;position:relative;width:100%!important}.x-window{left:.5em!important;max-width:100%!important;right:.5em!important;width:auto!important}.x-window .x-window-body{box-sizing:border-box!important;height:auto!important;width:100%!important}.x-window .x-form-field-wrap{width:auto!important}.x-window input{box-sizing:border-box;height:auto!important;width:100%!important}}#modx-template-form .main-wrapper input{max-width:100%!important}@media screen and (max-width:960px){.x-column-inner>.x-column~.x-column{margin-left:0}#modx-import-base-path,.x-form-item label.x-form-item-label[for=modx-import-allowed-extensions],.x-form-item label.x-form-item-label[for=modx-import-base-path],.x-form-item label.x-form-item-label[for=modx-import-element],.x-form-item label.x-form-item-label[for=modx-import-parent],.x-form-item label.x-form-item-label[for=modx-import-resource-class]{float:none;width:auto!important}}#modx-import-allowed-extensions,#modx-import-base-path,#modx-import-element,#modx-import-resource-class{box-sizing:border-box;height:auto;width:100%!important}@media screen and (max-width:960px){#x-form-el-modx-import-allowed-extensions,#x-form-el-modx-import-base-path,#x-form-el-modx-import-element,#x-form-el-modx-import-resource-class{padding-left:0!important;width:100%!important}}.x-panel.drag-n-drop{z-index:0}.x-panel.drag-n-drop:before{background:#0000 url(../images/restyle/dragndrop.svg) no-repeat 50%;background-size:50% 50%;bottom:0;content:" ";display:block;left:0;opacity:.1;position:absolute;right:0;top:0;z-index:-5}.x-panel.drag-n-drop>.x-panel-bwrap,.x-panel.drag-over .x-form-field{background:#0000}.x-panel.drag-over:after{background:#6cb24a;border:5px solid #6cb24a;bottom:0;content:"";display:block;left:0;opacity:.1;position:absolute;right:0;top:0}#modx-panel-packages.drag-n-drop:before{background:#0000 url(../images/restyle/dragndrop.svg) no-repeat top;background-size:50% 30%;z-index:0}.x-panel-header{background:none;border:none;font-size:16px;margin:0;padding:0 0 10px}#modx-resource-tabs .x-panel-header{border-bottom:1px solid #e4e4e4;color:#515151;display:flex;margin-bottom:5px}#modx-resource-tabs .x-panel-header .x-panel-header-text{flex:1;font-size:14px;order:0}#modx-resource-tabs .x-panel-header .x-tool.x-tool-toggle{margin-left:auto;order:1}#modx-resource-main-left .x-panel-header{border-bottom:0;position:absolute;right:15px;z-index:9}#modx-resource-main-left .x-panel-header .x-panel-header-text{display:none}#modx-resource-main-left .x-panel-animated .x-panel-header,#modx-resource-main-left .x-panel-collapsed .x-panel-header{padding-top:15px!important;position:relative;right:0;width:100%}#modx-resource-main-left .x-panel-animated .x-panel-header .x-panel-header-text,#modx-resource-main-left .x-panel-collapsed .x-panel-header .x-panel-header-text{display:block}#modx-resource-tabs .x-panel-collapsed .x-panel-header{border-color:#0000;margin-bottom:0;padding:0}.x-small-editor .x-form-field{font-size:12px!important}.x-small-editor .x-form-num-field{text-align:left}.grid-row-inactive{color:#999!important}a.x-grid-link{color:#234368;text-decoration:underline}a.x-grid-link:focus,a.x-grid-link:hover{text-decoration:none}.x-editable-column{cursor:pointer}.x-editable-column:focus,.x-editable-column:hover{color:#234368}.x-editable-column:focus>div:after,.x-editable-column:hover>div:after{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;color:#234368;content:"\f304";display:inline-block;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Brands;font-style:normal;font-variant:normal;font-weight:900;margin:0 .5em}.x-grid-buttons{text-align:center}.x-grid-buttons li{cursor:pointer;display:inline-block;font-size:1.1em;line-height:.7;margin-right:10px}.x-grid-buttons li:last-child{margin-right:0}.x-grid-empty .error-with-icon{color:#cf1124;font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.3;padding:1rem}.x-grid-empty .error-with-icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;content:"\f071";display:inline-block;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Brands;font-style:normal;font-variant:normal;font-weight:900;margin-right:.5rem}.x-grid-empty .error-with-icon *{color:#09121c;line-height:1.6;text-align:left}.x-grid-empty .error-with-icon .error-status-info{margin:.25rem 0;text-align:center}.x-grid-empty .error-with-icon code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;white-space:pre-line}.xdebug-error{border:none}.xdebug-error tbody td,.xdebug-error tbody th{border-color:#dcdcdc;border-style:solid none none!important;border-width:thin!important;padding:.1rem .25rem}.xdebug-error tbody th{color:#000!important;font-weight:700}.xdebug-error tbody th:first{border-top:none!important}.xdebug-error tbody th[colspan="5"]{border-color:#fff;border-width:thick!important;padding:.5rem 2rem;text-align:center!important}.xdebug-error tbody th[bgcolor^="#f57"]{background:#fdf0f1;font-weight:400}.xdebug-error tbody th[bgcolor^="#e9b"]{background:#234368;color:#fff!important}.xdebug-error tbody td{background-color:#fff}.xdebug-error tbody tr:nth-child(2n) td{background-color:#f0f0f0}.modx-page-header,.modx-page-header div{background-color:initial!important}#modx-panel-trash .modx-page-header,#modx-panel-trash .modx-page-header div,#modx-panel-welcome .modx-page-header,#modx-panel-welcome .modx-page-header div{margin:1rem!important}@media screen and (min-width:961px){#modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header{box-sizing:border-box;margin-top:1.25rem}html[dir=rtl] #modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header{margin-top:4rem}#modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header+div{margin:1rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel{margin:0}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{box-sizing:border-box;font-size:18px;font-weight:700;margin-top:1.25rem;padding:0 15px}html[dir=rtl] #modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{margin-top:4rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs+div{margin:1rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{width:100%!important}}#modx-content form.x-panel-body{background-color:initial!important}@media screen and (max-width:960px){#modx-content{left:auto!important;position:relative;top:auto!important;width:auto!important}}#modx-content .modx_error{margin:26px 0 0 15px;width:95%}#modx-content .modx_error h2{margin:0 0 14px}#modx-content .modx_error .error_container{background:#f99;border:2px solid #cf1124;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;padding:10px}#modx-content .modx_error .error_container ul{list-style:none;margin-left:0;margin-top:6px}#modx-content .modx_error .error_container ul li{margin-bottom:6px}#modx-content .modx_error .error_container ul li:last-child{margin-bottom:0}#modx-content .modx_error .error_container.multiple p:first-child{font-size:1.4em;font-weight:700}@media screen and (max-width:960px){#modx-content .x-panel-body{height:auto!important;max-height:100%!important;max-width:100%!important;width:auto!important}}#modx-mainpanel{height:100%;position:relative}.x-portal .x-panel-dd-spacer,.x-portlet{margin-bottom:10px}.x-portlet .x-panel-ml{padding-left:2px}.x-portlet .x-panel-mr{padding-right:2px}.x-portlet .x-panel-bl{padding-left:2px}.x-portlet .x-panel-br{padding-right:2px}.x-portlet .x-panel-body{background:#fff}.x-portlet .x-panel-mc{padding-top:2px}.x-portlet .x-panel-bc .x-panel-footer{padding-bottom:2px}.x-portlet .x-panel-nofooter .x-panel-bc{height:2px}.x-portal-space h2{border-bottom:1px solid #d4d4d4;margin:0 0 8px;padding:0 0 2px}.x-column-tree .x-panel-header{border-bottom-width:0;padding:3px 0 0}.x-column-tree .x-panel-header .x-panel-header-text{margin-left:3px}.x-column-tree .x-tree-node,.x-column-tree .x-tree-node-el{zoom:1}.x-column-tree .x-tree-selected{background:#d9e8fb}.x-column-tree .x-tree-node a{line-height:18px;vertical-align:middle}.x-column-tree .x-tree-node .x-tree-selected a span{background:#0000;color:#515151}.x-tree-col{zoom:1;float:left;overflow:hidden;padding:0 1px}.x-tree-col-text,.x-tree-hd-text{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden;padding:3px 3px 3px 5px;text-overflow:ellipsis;white-space:nowrap}.x-tree-headers{zoom:1;cursor:default;margin-top:3px}.x-tree-hd{border-left:1px solid #eee;border-right:1px solid #d0d0d0;float:left;overflow:hidden}.ux-row-action-cell .x-grid3-cell-inner{padding:1px 0 0}.ext-ie .ux-row-action-item{width:16px}.ext-ie .ux-row-action-text{width:auto}.ux-row-action-item span{background:#0000 url(../images/style/go-next.png) no-repeat scroll 1px 4px;display:inline!important;line-height:24px;margin:0 5px;padding:5px 5px 5px 22px;vertical-align:middle}.icon-uninstall span{background:url(../images/style/delete.png) no-repeat scroll 1px 4px #0000}.package-details span{background:url(../images/style/info.png) no-repeat scroll 1px 4px #0000}.package-download span{background:url(../images/style/download.png) no-repeat scroll 1px 4px #0000}.package-installed span{background:url(../images/style/accept.png) no-repeat scroll 1px 4px #0000}.ext-ie .ux-row-action-item span{width:auto}.x-grid-group-hd div{height:16px;position:relative}.ux-grow-action-item{background-position:0 50%!important;background-repeat:no-repeat;cursor:pointer;float:left;margin:0;min-width:16px;padding:0!important}.ext-ie .ux-grow-action-item{width:16px}.ux-action-right{float:right;margin:0 3px 0 2px;padding:0!important}.ux-grow-action-text{background:#0000 none!important;float:left;margin:0!important;padding:0!important}.ux-row-action-item:hover{background:#dfdfdf;background:linear-gradient(center bottom,#dfdfdf 0,#fff);border:1px solid #9caf78;color:#636f4c!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=$white,endColorstr=$alto,GradientType=0)}.ux-row-action-item:active{background-color:#fff;background-image:none;border-color:#cfcfcf silver #aaa;box-shadow:inset 0 0 3px #aaa;margin:2px 1px 0}.ux-row-action-item:active span{text-shadow:none}.ux-row-action-item{background:linear-gradient(center bottom,#dcdcdc 0,#fcfcfc);background:url(/manager/templates/default/images/modx-theme/form/button-bg.png) repeat-x scroll 0 bottom #dcdcdc;border-collapse:initial;border-color:#cacaca silver #aaa;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 0 1px #0003;color:#444;cursor:pointer;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#fcfcfc,endColorstr=#dcdcdc,GradientType=0);float:left;font-weight:700;margin:2px 1px 0;overflow:hidden;padding:3px;position:relative;text-shadow:0 1px 0 #fafafa}.x-tree-checkbox{background:url(../../../assets/ext3/resources/images/default/form/checkbox.gif) no-repeat 0 0;height:13px;margin:0 1px;vertical-align:middle;width:13px}.x-tree-checkbox-over .x-tree-checkbox{background-position:-13px 0}.x-tree-checkbox-down .x-tree-checkbox{background-position:-26px 0}.x-tree-node-disabled .x-tree-checkbox{background-position:-39px 0}.x-tree-node-checked{background-position:0 -13px}.x-tree-checkbox-over .x-tree-node-checked{background-position:-13px -13px}.x-tree-checkbox-down .x-tree-node-checked{background-position:-26px -13px}.x-tree-node-disabled .x-tree-node-checked{background-position:-39px -13px}.x-tree-node-grayed{background-position:0 -26px}.x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px -26px}.x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px -26px}.x-tree-node-disabled .x-tree-node-grayed{background-position:-39px -26px}.x-tree-branch-unchecked .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-node-grayed{background-position:0 0}.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px 0}.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px 0}.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-node-grayed{background-position:-39px 0}.x-tree-branch-checked .x-tree-checkbox,.x-tree-branch-checked .x-tree-node-checked,.x-tree-branch-checked .x-tree-node-grayed{background-position:0 -13px}.x-tree-branch-checked .x-tree-checkbox-over .x-tree-checkbox,.x-tree-branch-checked .x-tree-checkbox-over .x-tree-node-checked,.x-tree-branch-checked .x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px -13px}.x-tree-branch-checked .x-tree-checkbox-down .x-tree-checkbox,.x-tree-branch-checked .x-tree-checkbox-down .x-tree-node-checked,.x-tree-branch-checked .x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px -13px}.x-tree-branch-checked .x-tree-node-disabled .x-tree-checkbox,.x-tree-branch-checked .x-tree-node-disabled .x-tree-node-checked,.x-tree-branch-checked .x-tree-node-disabled .x-tree-node-grayed{background-position:-39px -13px}.x-rbtn button{background-color:initial;background-position:50%;background-repeat:no-repeat;border:0;cursor:pointer;font-size:1px;height:16px;line-height:1px;margin:0;-moz-outline:0 none;outline:0 none;padding:0;width:24px}.x-rbtn{table-layout:fixed}.x-rbtn td{background-image:url(../images/restyle/icons/rbtn.gif);background-repeat:no-repeat;border:0;height:21px;padding:0;vertical-align:middle;width:24px}.x-rbtn td.x-rbtn-first{background-position:0 0}.x-rbtn td.x-rbtn-item{background-position:0 -42px}.x-rbtn td.x-rbtn-last{background-position:right -21px}.x-rbtn td.x-rbtn-first-active{background-position:0 -63px}.x-rbtn td.x-rbtn-item-active{background-position:0 -105px}.x-rbtn td.x-rbtn-last-active{background-position:right -84px}.ux-up-item{background-color:#f0f0f0;background-image:url(../../../assets/modext/util/filetree/img/white_bg.png);background-repeat:no-repeat;cursor:default;height:17px;line-height:17px;margin-bottom:1px;position:relative}.ux-up-icon-file{float:left;height:16px;margin-right:4px;vertical-align:-3px;width:16px}.ux-up-indicator{background-color:#ff0;filter:alpha(opacity=40);height:17px;opacity:.4;position:absolute;width:40px}.ux-up-icon-state{cursor:pointer;float:right;margin-right:2px;width:16px;z-index:-1}.ux-up-icon-queued{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/page_white_get.png)}.ux-up-icon-uploading{background-image:url(../../../../ext2/resources/images/default/grid/wait.gif)}.ux-up-icon-done{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/accept.png)}.ux-up-icon-failed{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/error.png)}.ux-up-icon-stopped{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/stop.png)}.ux-up-text{float:left}.ux-ftm-nodename{color:#515151;cursor:default!important;font-weight:700}.ux-icon-combo-icon{background-position:0 50%;background-repeat:no-repeat;height:14px;width:18px}.ux-icon-combo-input{padding-left:25px}.x-form-field-wrap .ux-icon-combo-icon{left:5px;top:3px}.ux-icon-combo-item{background-position:3px 50%!important;background-repeat:no-repeat!important;padding-left:24px!important}.modx-status-msg{background:#6cb24a;border-radius:3px;bottom:20px;box-sizing:border-box;color:#fff;max-width:360px;padding:15px 15px 15px 65px;position:fixed;right:15px;width:25%;z-index:20000}@media screen and (max-width:960px){.modx-status-msg{max-width:100%}}.modx-status-msg:before{position:relative}.modx-status-msg:after{background:#fff;border-radius:50%;color:#6cb24a;content:"\f00c";display:inline-block;font-size:16px;height:38px;left:15px;line-height:36px;margin-right:13px;position:absolute;text-align:center;top:15px;vertical-align:middle;width:38px}.modx-status-msg h3,.modx-status-msg span{font-size:14px}.modx-status-msg h3{color:#fff;margin:0}.modx-status-msg .has-position-center-center{bottom:auto;left:0;margin-left:auto;margin-right:auto;right:0;top:50%;transform:translateY(-50%)}.modx-status-msg .has-position-center-top{bottom:auto;left:0;margin-left:auto;margin-right:auto;right:0;top:15px}.modx-status-msg .has-position-right-top{bottom:auto;left:auto;right:15px;top:15px}@media screen and (max-width:960px){.modx-status-msg,.modx-status-msg .has-position-center-center,.modx-status-msg .has-position-center-top,.modx-status-msg .has-position-right-top{border-radius:0;bottom:0;left:0;right:0;top:auto;width:100%}}iframe[classname=x-hidden]{visibility:hidden}html[dir=rtl] .x-hide-offsets,html[dir=rtl] .x-hiden{left:unset;right:-9999px}.ext-ux-uploaddialog-addbtn{background:url(../images/restyle/fileup/file-add.gif) no-repeat 0!important}.ext-ux-uploaddialog-removebtn{background:url(../images/restyle/fileup/file-remove.gif) no-repeat 0!important}.ext-ux-uploaddialog-resetbtn{background:url(../images/restyle/fileup/reset.gif) no-repeat 0!important}.ext-ux-uploaddialog-uploadstartbtn{background:url(../images/restyle/fileup/upload-start.gif) no-repeat 0!important}.ext-ux-uploaddialog-uploadstopbtn{background:url(../images/restyle/fileup/upload-stop.gif) no-repeat 0!important}.ext-ux-uploaddialog-indicator-stoped{background:url(../images/restyle/fileup/done.gif) no-repeat 50%;height:16px;width:16px}.ext-ux-uploaddialog-indicator-processing{background:url(../images/restyle/fileup/loading.gif) no-repeat 50%;height:16px;width:16px}.ext-ux-uploaddialog-state{background-position:50%;background-repeat:no-repeat;text-align:center}.ext-ux-uploaddialog-state-0{background-image:url(../images/restyle/fileup/uncheck.gif)}.ext-ux-uploaddialog-state-1{background-image:url(../images/restyle/fileup/check.gif)}.ext-ux-uploaddialog-state-2{background-image:url(../images/restyle/fileup/failed.gif)}.ext-ux-uploaddialog-state-3{background-image:url(../images/restyle/fileup/file-uploading.gif)}.tq-treegrid .tq-treegrid-col{border:none}.tq-treegrid .tq-treegrid-icons{float:left}.tq-treegrid .x-tree-node-el{line-height:13px;padding:1px 3px 1px 5px}.tq-treegrid .tq-treegrid-static .x-tree-ec-icon{display:none}.tq-treegrid .tq-treegrid-static .x-tree-node-el{cursor:default}.modx-tree-load-msg{color:#000;font-size:.9em;line-height:1;padding:3px;white-space:pre-line}#modx-grid-policy-permissions .x-grid3-cell-inner,#modx-grid-policy-permissions .x-grid3-hd-inner,#modx-grid-template-permissions .x-grid3-cell-inner,#modx-grid-template-permissions .x-grid3-hd-inner{white-space:normal}.container{margin:20px 15px}.container,.x-plain-body,.x-plain-bwrap{overflow:visible}.shadowbox,.x-form-label-left{border-radius:3px}.shadowbox .x-form-label-left,.x-form-label-left .x-form-label-left,.x-tab-panel-bwrap .shadowbox,.x-tab-panel-bwrap .x-form-label-left,.x-window .shadowbox,.x-window .x-form-label-left{border-radius:0;box-shadow:none}.panel-desc{border-bottom:1px solid #f0f0f0;border-radius:0;color:#53595f;line-height:1.5;padding:15px!important}.x-window .panel-desc{margin-bottom:15px;margin-top:0}.panel-desc .x-panel-bwrap{background-color:initial!important}.with-title .panel-desc{margin:0}.panel-desc p{padding:0}.main-wrapper{background-color:#fff;padding:15px}.with-title .main-wrapper{padding:0 15px 10px}.left-col{padding-right:15px}.right-col{padding-left:15px}.modx-page-header{color:#53595f;font:normal 20px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;order:1;padding:0 15px}@media screen and (max-width:960px){.modx-page-header{font-size:2em;text-align:center;width:100%}}.modx-header-breadcrumbs .breadcrumbs{align-items:baseline;display:flex;flex-wrap:wrap}.modx-header-breadcrumbs .breadcrumbs h2{color:#53595f;font:normal 20px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0!important;order:1;padding-left:0}@media screen and (max-width:960px){.modx-header-breadcrumbs .breadcrumbs h2{font-size:2em;text-align:center;width:100%}}.modx-header-breadcrumbs ul{align-items:center;display:flex;flex-wrap:wrap;order:0}.modx-header-breadcrumbs ul li{color:#53595f}.modx-header-breadcrumbs ul li,.modx-header-breadcrumbs ul li a{font:normal 18px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.modx-header-breadcrumbs ul li a{text-decoration:none}.modx-header-breadcrumbs ul li a.menu_hidden{font-style:italic}.modx-header-breadcrumbs ul li a.menu_hidden:hover{color:#162a42}.modx-header-breadcrumbs ul li a.not_published{color:#b3b3b3!important}.modx-header-breadcrumbs ul li a.not_published:hover{color:#162a42}.modx-header-breadcrumbs ul li a.deleted{color:#af5a6280!important;text-decoration:line-through}.modx-header-breadcrumbs ul li a.deleted:hover{color:#162a42}.modx-header-breadcrumbs ul li:after{color:#999;content:"\f054";font-size:12px;padding:0 10px}#modx-abtn-delete{color:#cf1124}#modx-abtn-undelete{color:#6cb24a}#modx-abtn-help{color:#234368}#modx-resource-tabs .x-tab-panel-bwrap{box-shadow:none}#modx-resource-tabs .x-tab-panel-body,#modx-resource-tabs .x-tab-panel-bwrap{overflow:visible!important}#modx-resource-settings{background:#f1f1f1}#modx-resource-settings #modx-resource-main-left{background:#fff;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px;padding:15px;position:relative}#modx-resource-settings .x-panel-collapsed{min-height:18px}#modx-resource-settings #modx-resource-main-right .modx-resource-panel{background:#fff;border-radius:3px;padding:15px}#modx-resource-settings #modx-resource-main-right .modx-resource-panel:not(:last-child){margin-bottom:15px}#modx-resource-settings .main-wrapper{background:#0000;padding:0}#modx-resource-settings .x-datetime-wrap table{width:100%}#modx-resource-settings .x-datetime-wrap table td{max-width:50%!important;width:50%!important}#modx-resource-settings .x-datetime-wrap table td input{width:calc(100% - 30px)}#modx-resource-settings .x-datetime-wrap table td:first-child{padding-right:5px!important}#modx-resource-settings .x-datetime-wrap table td:last-child{padding-left:5px!important}#modx-resource-settings .x-datetime-wrap table .x-form-field-trigger-wrap{width:100%!important}.tvs-wrapper{padding:0}#modx-resource-tvs-div{border-top-width:0;visibility:hidden}.modx-permissions-list{color:#777;font-size:12px}.modx-permissions-list-textarea{background-color:initial!important;border:0!important}.x-selectable,.x-selectable *{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important}#ux-lightbox{left:0;line-height:0;position:absolute;text-align:center;width:100%;z-index:15000}#ux-lightbox img{height:auto;width:auto}#ux-lightbox a img{border:none}#ux-lightbox-outerImageContainer{background-color:#fff;height:250px;margin:0 auto;position:relative;width:250px}#ux-lightbox-imageContainer{padding:10px}#ux-lightbox-loading{background:url(../images/style/loading.gif) no-repeat scroll center 15% #0000;height:25%;left:0;line-height:0;position:absolute;text-align:center;top:40%;width:100%}#ux-lightbox-hoverNav{height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}#ux-lightbox-hoverNav a{outline:medium none}#ux-lightbox-imageContainer>#ux-lightbox-hoverNav{left:0}#ux-lightbox-navNext,#ux-lightbox-navPrev{display:block;height:100%;width:49%}#ux-lightbox-navPrev{float:left;left:0}#ux-lightbox-navPrev:hover,#ux-lightbox-navPrev:visited:hover{background:#0000 url(images/lb-prev.png) no-repeat scroll left 33%}#ux-lightbox-navNext{float:right;right:0}#ux-lightbox-navNext:hover,#ux-lightbox-navNext:visited:hover{background:#0000 url(images/lb-next.png) no-repeat scroll right 33%}#ux-lightbox-outerDataContainer{margin:0 auto;width:100%}#ux-lightbox-dataContainer{background-color:#fff;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:10px;overflow:auto}#ux-lightbox-data{color:#666;padding:0 10px}#ux-lightbox-data #ux-lightbox-details{float:left;text-align:left;width:80%}#ux-lightbox-data #ux-lightbox-caption{font-weight:700}#ux-lightbox-data #ux-lightbox-imageNumber{clear:left;display:block;padding-bottom:1em}#ux-lightbox-data #ux-lightbox-navClose{background:#0000 url(../images/style/close.png) no-repeat scroll 0 0;float:right;height:16px;outline:medium none;padding-bottom:.7em;width:16px}#ux-lightbox-overlay,#ux-lightbox-shim{background-color:#515151;border:0;height:500px;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:14999}#ux-lightbox-shim{background-color:initial;z-index:89}.x-panel-body-noheader .x-grid3-row{position:relative}.x-grid3-col-main{padding:10px 5px 35px}.x-grid3-cell-inner .x-grid3-col-main h3{color:#555;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:20px;line-height:1;margin:0 0 5px}.package-installed{color:#515151;filter:alpha(opacity=50);opacity:.5}#modx-grid-package .green{text-align:center}#modx-grid-package .green a{color:#cf1124!important}#modx-grid-package .red{color:#6cb24a!important;text-align:center}.grid-with-buttons .x-grid3-row-expanded .x-grid3-row-body{margin:-45px 2px 0 -20px;padding:18px 25px 40px}.home-panel ol{border-top:1px solid #cacaca}.home-panel ol li{border-bottom:1px solid #e0e0e0}.home-panel ol li:first-child{border-top-color:0 none}.home-panel ol li:last-child{border-bottom:0}.home-panel ol li button{background-color:initial;border:0;color:#53595f;cursor:pointer;display:block;font-size:15px;font-weight:700;padding:12px 20px 12px 6px;position:relative;text-decoration:none}.home-panel ol li:hover button{color:#234368}.home-panel ol li:hover button:before{content:"\f002";filter:alpha(opacity=60);font-size:14px;margin-top:-7px;opacity:.6;position:absolute;right:0;text-align:center;top:50%;transition:opacity .25s;width:20px}.home-panel ol li .highlighted{color:#909090;float:right;font-size:10px;padding:13px 10px 0}.home-panel ol li button .ct{color:#aaa;margin-right:10px}.home-panel .one_half{overflow:hidden}.home-panel .desc-wrapper{margin-top:38px}.home-panel .text-wrapper{font-style:normal;max-height:none}.home-panel .provider_name{background-color:#9bb3bf;line-height:1.8}.home-panel .pnl_instructions{margin:20px 0}.home-panel .stats{clear:both;display:inline-block;margin-top:15px}.home-panel .stats p{color:#777;font-size:12px;font-style:italic;line-height:1.5}.pbr-provider-box{float:left;margin-top:10px;width:250px}.pbr-provider-home,.pbr-repository-view,.pbr-tag-view{padding:10px}.pbr-details-right{float:right!important;text-align:right!important}.pbr-thumb-downloaded{filter:alpha(opacity=50);opacity:.5}.one_half{float:left;margin-right:3%;position:relative;width:48%}.last{clear:right;margin-right:0!important}.package-readme{padding:8px 11px 0}#modx-package-browser-home{margin-top:5px;min-height:560px}.empty-text-wrapper{color:#888;font-weight:700;line-height:1.4;padding:12px}.aside-details{background-color:initial;border:1px solid #e4e4e4;border-radius:3px;margin-right:0}.aside-details .selected h5{color:#53595f;font-size:14px;margin:10px 0}.aside-details .selected img{border:1px solid #e4e4e4;border-radius:3px;height:80px;width:90px}.aside-details .item{margin-bottom:25px}.aside-details .item li,.aside-details .item p{color:#888;line-height:1.4}.aside-details .item a{color:#53595f;font-style:italic}.aside-details h4{color:#53595f;font-size:14px;margin:10px 0;text-transform:uppercase}.aside-details .aside-details h4{font-size:12px;margin-top:0}.aside-details .selected{border-bottom:1px solid #e4e4e4;color:#000;padding:15px;text-align:center}.aside-details .description,.aside-details .instructions{background-color:#fbfbfb}.aside-details .description,.aside-details .infos,.aside-details .instructions{color:#53595f;font-size:12px;line-height:1.2;padding:15px}.aside-details .infos ul li{font-size:12px}.aside-details .infos ul li .infoname{color:#999;font-weight:700;width:50%}.aside-details .infos ul li .infovalue{word-wrap:break-word;max-width:50%;padding:0 8px}.aside-details .infos ul li span{display:inline-block;padding:0}.thumb-wrapper{background-color:#f5f5f5;border:1px solid #ccc;border-radius:3px;cursor:pointer;float:left;margin:0 15px 15px 0;overflow:hidden;padding:0 0 12px;position:relative;width:250px}.thumb-wrapper,.thumb-wrapper *{box-sizing:border-box}.thumb-wrapper .thumb{background-color:#fff;border-bottom:1px solid #ccc;height:170px;margin:0 auto;position:relative;text-align:center;width:100%}.thumb-wrapper .thumb img{max-height:100%;max-width:100%}.thumb-wrapper .thumb .no-preview{color:#888;display:inline-block;font-size:9px;font-weight:700;padding:31px 15px;text-align:center;text-transform:uppercase}.thumb-wrapper span.downloaded,.thumb-wrapper span.featured{background-color:#6cb24a;color:#fff;font-weight:700;padding:5px 0;position:absolute;text-align:center;text-shadow:none;top:68px;width:100%}.thumb-wrapper span.featured{background-color:#234368;bottom:0;color:#fff;top:auto}.thumb-wrapper span{display:block;margin:0;overflow:hidden;text-align:left;text-overflow:ellipsis;text-shadow:0 1px 0 #fff;white-space:nowrap}.thumb-wrapper .name{color:#53595f;float:left;font-size:12px;font-weight:700;padding:12px 8px 12px 12px;width:55%}.thumb-wrapper .downloads{color:#999;float:right;font-size:9px;padding:8px 12px 8px 8px;text-align:right;text-transform:uppercase;width:45%}.thumb-wrapper .thumb-description{clear:both;font-size:12px;height:50px;overflow:hidden;padding:0 12px}.thumb-wrapper .thumb-footer{color:#999;font-size:9px;padding:8px 12px 0;text-align:center;text-transform:uppercase}.thumb-wrapper.selected{background-color:#fff;border-color:#234368;padding:0 0 12px}.thumb-wrapper.selected img{border:0}.pbr-thumb{background:#dfdfdf;padding:3px}.pbr-thumb,.pbr-thumb img{height:80px;width:100px}.x-grid3-hd-info-col,.x-grid3-hd-meta-col,.x-grid3-hd-text-col{text-align:center}.x-grid3-col-text-col{font-size:11px;text-align:center}.x-grid3-col-info-col,.x-grid3-col-meta-col{font-size:11px;font-weight:700;text-align:center}.x-grid3-col-meta-col{color:#53595f}.x-grid3-col-info-col{color:#6cb24a}.not-installed .x-grid3-col-info-col{color:#cf1124}.inline-button{-webkit-box-align:center;display:inline;margin:0 auto;padding:8px;text-align:center}.meta-wrapper{word-wrap:break-word;color:grey;max-height:400px;overflow:auto;padding:15px}.meta-wrapper ul{list-style:disc inside;padding-left:15px}.meta-wrapper h1{font-size:1.2em}.meta-wrapper h2{font-size:1.15em}.meta-wrapper h3{font-size:1.1em}.meta-wrapper h4{font-size:1.05em}.meta-wrapper h5{font-size:1em}.meta-wrapper h6{font-size:.95em}.window-no-padding .x-panel-mc,.window-no-padding .x-panel-ml,.window-no-padding .x-panel-mr{padding:0!important}.window-no-padding .x-tab-panel-noborder{margin:0!important}.upload-error{color:#cf1124}.upload-success{color:#6cb24a}.upload-status-text{white-space:normal}.upload-thumb{float:right}.auto-width{width:auto!important}.auto-height{height:auto!important}.x-datetime-inline-editor .x-datetime-wrap{margin-top:0!important} + /* !important ensures the border radius, also when the fieldset has a class that sets it to 0 */margin:15px 0 0;overflow:visible;padding:0;position:relative}.x-fieldset .x-fieldset-header{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;margin:0 0 0 10px;padding:0 5px 0 3px;position:relative}.x-fieldset .x-fieldset-header .x-fieldset-header-text{line-height:18px}.x-fieldset .x-fieldset-bwrap .x-fieldset-body{overflow-x:hidden!important;padding:0 10px 10px}.x-fieldset.form-row-wrapper .x-fieldset-bwrap .x-fieldset-body{padding:0 15px 15px}.x-fieldset#tv-input-opts-fs,.x-fieldset#tv-output-opts-fs{border:0;margin:0}.x-fieldset#tv-input-opts-fs .x-fieldset-bwrap .x-fieldset-body,.x-fieldset#tv-output-opts-fs .x-fieldset-bwrap .x-fieldset-body{padding:0}.x-fieldset#tv-input-opts-fs .x-fieldset .x-fieldset-bwrap .x-fieldset-body,.x-fieldset#tv-output-opts-fs .x-fieldset .x-fieldset-bwrap .x-fieldset-body{padding:0 15px 15px}.x-form-field{font:inherit}.x-form-field.x-form-composite{margin-bottom:0!important}.x-form-field.x-form-composite .x-btn{top:1px!important}.x-static-text-field{color:inherit;font-size:inherit}.x-static-text-field.x-form-focus{border-color:#e4e4e4!important}.x-form-text{line-height:20px;min-height:20px;padding:5px}.x-form-field-wrap{background:#fff;border:1px solid #e4e4e4;border-radius:3px;max-width:100%}.x-form-field-wrap .x-form-text:not(.x-form-invalid){border:0}.x-form-field-wrap .x-form-trigger{border:0;border-radius:0 2px 2px 0;box-shadow:none;height:100%!important;padding:0;position:absolute;right:0;top:0;width:30px}.x-form-field-wrap .x-form-trigger:before{box-sizing:border-box;content:"\f078";filter:alpha(opacity=60);font-size:14px;left:50%;opacity:.8;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);transition:opacity .25s;width:30px}.x-form-field-wrap .x-form-trigger.x-form-trigger-click:before,.x-form-field-wrap .x-form-trigger.x-form-trigger-over:before,.x-form-field-wrap .x-form-trigger:active:before,.x-form-field-wrap .x-form-trigger:hover:before{filter:alpha(opacity=100);opacity:1}.x-form-field-wrap .x-form-trigger.x-form-date-trigger:before{content:"\f133";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-time-trigger:before{content:"\f017";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-file-trigger:before{content:"\f15b";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-image-trigger:before{content:"\f1c5";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-code-trigger:before{content:"\f1c9";font-weight:400}.x-form-field-wrap.x-datetime-wrap{background:none;border:0}.x-form-field-wrap.x-datetime-wrap .ux-datetime-date,.x-form-field-wrap.x-datetime-wrap .ux-datetime-time{vertical-align:top}.x-form-field-wrap.x-datetime-wrap .ux-datetime-date .x-form-invalid-msg,.x-form-field-wrap.x-datetime-wrap .ux-datetime-time .x-form-invalid-msg{white-space:normal}.x-form-field-wrap.x-datetime-wrap .ux-datetime-date .x-form-trigger:before{content:"\f133"}.x-form-field-wrap.x-datetime-wrap .ux-datetime-time .x-form-trigger:before{content:"\f017"}.x-form-field-wrap.x-form-fileupload-wrap{overflow:visible;position:relative}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file{filter:alpha(opacity=0);min-height:20px;opacity:0;padding:5px;position:absolute;right:0;top:0;z-index:2}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file-btn{border-left:1px solid #e4e4e4;border-radius:0 3px 3px 0;box-shadow:none;line-height:0;padding:7px;position:absolute;right:0;top:0;z-index:1}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file-text{position:relative;z-index:3}.modx-tv-type-listbox-multiple .x-form-field-wrap{border-color:#fff}.modx-tv-type-listbox-multiple .x-form-field-wrap .x-form-text{border:1px solid #e4e4e4;margin:-1px}.modx-tv-type-listbox-multiple .x-form-field-wrap .x-form-text.x-form-focus{border-color:#999}#x-form-el-modx-user-photo .x-form-file-trigger:before{content:"\f1c5"}.x-fieldset-checkbox-toggle legend,.x-form-check-wrap{height:auto!important;line-height:18px}.x-form-label-left .x-fieldset-checkbox-toggle legend,.x-form-label-left .x-form-check-wrap{padding:7px 0}.x-form-label-top .x-fieldset-checkbox-toggle legend,.x-form-label-top .x-form-check-wrap{padding:0}.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label{padding-left:1.9em}.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label:before{color:#ccc}.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label:active:before,.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label:focus:before,.x-toolbar .x-toolbar-cell .x-fieldset-checkbox-toggle legend .x-form-cb-label:hover:before,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label:active:before,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label:focus:before,.x-toolbar .x-toolbar-cell .x-form-check-wrap .x-form-cb-label:hover:before{color:#999}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text,.x-fieldset-checkbox-toggle legend .x-form-cb-label,.x-form-check-wrap .x-fieldset-header-text,.x-form-check-wrap .x-form-cb-label{color:#515151;cursor:pointer;display:inline-block;font-weight:400;margin:0;padding-left:1.9em;position:relative;top:0}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-fieldset-header-text,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-cb-label,.ext-ie8 .x-form-check-wrap .x-fieldset-header-text,.ext-ie8 .x-form-check-wrap .x-form-cb-label{padding-left:3px}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.ext-ie8 .x-form-check-wrap .x-fieldset-header-text:before,.ext-ie8 .x-form-check-wrap .x-form-cb-label:before{content:""}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-form-check-wrap .x-fieldset-header-text:before,.x-form-check-wrap .x-form-cb-label:before{box-sizing:border-box;content:"";font-size:18px;height:18px;left:0;padding-right:3px;position:absolute;text-align:center;top:0;vertical-align:middle;width:18px}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:focus:before,.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:hover:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:focus:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:hover:before,.x-form-check-wrap .x-fieldset-header-text:focus:before,.x-form-check-wrap .x-fieldset-header-text:hover:before,.x-form-check-wrap .x-form-cb-label:focus:before,.x-form-check-wrap .x-form-cb-label:hover:before{color:#234368}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:active:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:active:before,.x-form-check-wrap .x-fieldset-header-text:active:before,.x-form-check-wrap .x-form-cb-label:active:before{color:#1b3451}.x-fieldset-checkbox-toggle legend .x-form-checkbox,.x-fieldset-checkbox-toggle legend .x-form-radio,.x-fieldset-checkbox-toggle legend input[type=checkbox],.x-form-check-wrap .x-form-checkbox,.x-form-check-wrap .x-form-radio,.x-form-check-wrap input[type=checkbox]{cursor:pointer;height:18px;left:0;opacity:0;position:absolute;top:0;width:18px;z-index:1}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-checkbox,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-radio,.ext-ie8 .x-fieldset-checkbox-toggle legend input[type=checkbox],.ext-ie8 .x-form-check-wrap .x-form-checkbox,.ext-ie8 .x-form-check-wrap .x-form-radio,.ext-ie8 .x-form-check-wrap input[type=checkbox]{height:13px;left:auto;position:relative;top:auto;width:13px}.x-fieldset-checkbox-toggle legend .x-form-checkbox:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:hover+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:hover+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:hover+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:focus+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:focus+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:hover+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:hover+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:focus+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:focus+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:hover+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:hover+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:focus+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:focus+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:hover+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:hover+.x-form-cb-label:before{color:#234368}.x-fieldset-checkbox-toggle legend .x-form-checkbox:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:active+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:active+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:active+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:active+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:active+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:active+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:active+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:active+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:active+.x-form-cb-label:before{color:#1b3451}.x-fieldset-checkbox-toggle legend .x-form-checkbox+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]+.x-fieldset-header-text:before{content:"\f0c8";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-checkbox:checked+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:checked+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:checked+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:checked+.x-fieldset-header-text:before{content:"\f14a";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-radio+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio+.x-form-cb-label:before{content:"\f111";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-radio:checked+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:checked+.x-form-cb-label:before{content:"\f192";font-weight:400}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-chunk-tabs .x-fieldset legend [type=checkbox],#modx-chunk-tabs .x-form-check-wrap [type=checkbox],#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-plugin-tabs .x-fieldset legend [type=checkbox],#modx-plugin-tabs .x-form-check-wrap [type=checkbox],#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox],#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox],#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-snippet-tabs .x-fieldset legend [type=checkbox],#modx-snippet-tabs .x-form-check-wrap [type=checkbox],#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-template-tabs .x-fieldset legend [type=checkbox],#modx-template-tabs .x-form-check-wrap [type=checkbox],#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-tv-editor-tabs .x-fieldset legend [type=checkbox],#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox],#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox],#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]{left:-9999px;position:absolute}html[dir=rtl] #modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-chunk-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-chunk-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-plugin-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-plugin-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-snippet-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-snippet-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-template-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-template-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-tv-editor-tabs .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-tv-editor-tabs .x-form-check-wrap [type=checkbox],html[dir=rtl] #modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox],html[dir=rtl] #modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox],html[dir=rtl] #modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]{left:unset;right:-9999px}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label{box-sizing:border-box;cursor:pointer;line-height:1;margin-left:0;padding-left:3.6em;padding-top:.2em;position:relative}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before{content:"";font-size:inherit;position:absolute;transition:all .2s ease}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before{background:#e4e4e4;border-radius:1.2em;height:1.6em;left:0;top:0;width:3em;z-index:10}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after{background-color:#fff;border-radius:50%;height:1.3em;left:.1em;margin-top:-.65em;top:.8em;width:1.3em;z-index:11}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-chunk-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-plugin-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-snippet-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-template-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-template-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-template-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after{left:1.6em;top:.8em}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before{background-color:#6cb24a;border-color:#6cb24a}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before{background-color:#cf1124;border-color:#cf1124}#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-chunk-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-plugin-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .display-switch .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-snippet-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-template-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-template-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-template-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-editor-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-tv-tabs .display-switch .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before{background-color:#f0b429;border-color:#f0b429}.switch-container{padding-top:1.6rem}.x-form-check-group,.x-form-radio-group{overflow:hidden;padding-bottom:.5em}.x-form-check-group .x-column .x-form-item:first-child,.x-form-radio-group .x-column .x-form-item:first-child{padding:4px 0 0}.x-form-check-group.aggregated-group,.x-form-radio-group.aggregated-group{padding-left:1em;padding-right:1em}.x-superboxselect{margin:0;outline:0;padding:0 5px 5px;position:relative;white-space:normal;width:auto!important}.ext-strict .x-toolbar .x-small-editor .x-superboxselect,.x-superboxselect{height:auto!important}.x-superboxselect ul{cursor:text;min-height:20px;overflow:visible;padding-right:61px;white-space:normal;width:auto!important}.x-toolbar .x-superboxselect ul{margin:-5px 0 0 -5px}.x-superboxselect ul li{margin:5px 5px 0 0;padding:0}.x-superboxselect ul li.x-superboxselect-item{cursor:default;font-size:12px;padding:4px 18px 4px 4px!important;position:relative}.x-superboxselect ul li.x-superboxselect-item.x-superboxselect-item-focus{background-color:#234368;box-shadow:0 0 0 1px #234368;color:#fff}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close{border:0;color:inherit;cursor:pointer;display:inline-block;filter:alpha(opacity=60);height:100%;opacity:.6;outline:0;padding:0;position:absolute;right:0;top:0;transition:opacity .25s;width:16px}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:before{box-sizing:border-box;color:inherit;content:"\f00d";font-size:14px;margin-top:-7px;position:absolute;right:0;text-align:center;top:50%;vertical-align:middle;width:16px}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:focus,.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:hover{filter:alpha(opacity=100);opacity:1}.x-superboxselect ul li.x-superboxselect-input{display:inline-block}.x-superboxselect ul li.x-superboxselect-input input{background:none;border:0;line-height:20px;outline:0}.x-superboxselect.x-superboxselect-stacked li{box-sizing:border-box;margin:5px 0 0;width:100%}.x-superboxselect .x-superboxselect-btns{height:100%;overflow:visible;position:absolute;right:0;top:0;width:61px}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-expand{border-radius:0;right:31px}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear{border-left:1px solid #e4e4e4}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:before{content:"\f00d"}.inline-form{border:0;padding:15px 15px 0}.inline-form label{color:#777;display:block;font-weight:700;margin-bottom:2px}.inline-form input[type=text],.inline-form textarea{background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;position:relative;width:97%}.inline-form input[type=text]{font-size:13px;height:20px!important;padding:5px}.modx-tv-description{color:#515151;font-size:10px;line-height:1.2;margin-top:2px!important}.modx-tv-reload-btn{float:right;position:absolute;right:19px;z-index:10}.modx-tv-reload-btn div{z-index:10}.modx-tv-th label{cursor:pointer}.modx-tv-th .tv-description{color:#515151;font-size:11px;font-weight:400}.x-editor .x-form-check-wrap{background-color:#fff}.x-grid-editor .x-form-field-wrap{background:#f6f2f7 url(../images/modx-theme/form/combo-bck.png) repeat-x scroll 0 100%}.x-grid-editor .x-form-field-wrap input{background-color:initial!important}.x-grid-editor .x-form-field-wrap img{background-color:#fff;background-image:url(../images/modx-theme/form/trigger.png)}.x-form-grow-sizer,.x-form-invalid-msg{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-form-invalid-msg{color:#cf1124;margin-top:2px;min-width:95%;position:relative}.x-form-invalid-msg:before{color:inherit;content:"\f071";left:3px;position:absolute;top:3px}.x-form-empty-field{color:#515151}.x-grid3 .x-small-editor .x-form-field-wrap,.x-grid3 .x-small-editor .x-form-text{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin-top:7px;padding:2px 5px}.x-grid3 .x-small-editor .x-form-field-wrap .x-form-text,.x-grid3 .x-small-editor .x-form-text .x-form-text{margin:0;padding:0}.x-grid3 .x-small-editor .x-form-field-wrap{overflow:hidden}.x-combo-list{border:0;border-radius:3px;overflow:visible}.x-combo-list .x-combo-list-inner{background-color:#fff;border:1px solid #999;border-radius:3px;margin-left:-1px;width:100%!important}.x-combo-list .x-combo-list-item{border:0!important;border-bottom:1px solid #e4e4e4!important;color:#515151;min-height:18.2px;padding:6px 8px}.x-combo-list .x-combo-list-item:last-child{border-bottom-color:#fff!important}.x-combo-list .x-combo-list-item.x-combo-selected{background-color:#e4e4e4;border:0!important;border-bottom:1px solid #e4e4e4!important;color:#1b3451}.x-combo-list .x-combo-list-item.x-combo-list-item-grouped{padding:6px 14px}.x-combo-list .x-combo-list-item .x-combo-list-title{display:block;font-weight:700;margin:0 0 5px}.x-combo-list .x-combo-list-group{border-bottom:1px solid #e4e4e4;color:#515151;font-weight:700;padding:6px 8px}.x-combo-list .x-toolbar{border:0;border-radius:0 0 3px 3px;box-shadow:0 0 0 1px #234368;margin-top:-1px;position:relative}.x-combo-list .x-toolbar .x-toolbar-ct{padding:5px 0 15px}.x-combo-list .x-toolbar .x-toolbar-left table{margin:0 auto}.x-combo-list .x-toolbar .x-toolbar-cell{display:inline-block}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn,.x-combo-list .x-toolbar .x-toolbar-cell .x-form-text{background:#0000;box-shadow:none;font-size:10px;line-height:16px;margin-right:2px;min-height:16px;padding:2px}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn{padding:1px;transition:color .25s}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-btn-over,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:focus,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:hover{color:#234368}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-btn-click,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:active{color:#1b3451}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-item-disabled{color:#515151;opacity:.4}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn button:before{left:0;line-height:20px;right:0;top:0}.x-combo-list .x-toolbar .x-toolbar-cell .x-form-text{background:#fbfbfb;width:23px}.x-combo-list .x-toolbar .xtb-text{font-size:10px;line-height:1;margin:0 auto;padding:0;text-align:center}.x-combo-list .x-toolbar .x-toolbar-cell:first-child .x-btn{margin-left:1px}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .xtb-text{display:none;left:0;position:absolute;right:0;top:2px}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .xtb-text{bottom:4px;display:inline-block;left:0;position:absolute;right:0;top:auto}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .x-btn{margin-right:0}.x-combo-list .x-toolbar .x-toolbar-cell:last-child{opacity:0;transition:opacity .25s}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn{bottom:2px;font-size:12px;line-height:1;margin:0;opacity:.4;padding:0;position:absolute;right:1px}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn:hover{opacity:1}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn button{height:16px;width:16px}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn button:before{font-size:12px}.x-combo-list .x-toolbar:hover .x-toolbar-cell:last-child{opacity:1}.x-combo-list .x-resizable-handle-southeast{bottom:1px;right:3px}.x-combo-list.modx-superboxselect .x-combo-list-inner{margin-left:0}.x-combo-list-hd{background-image:url(../images/modx-theme/layout/panel-title-light-bg.gif);border-bottom-color:#bcbcbc;color:#464646}.x-combo-list-small{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.x-date-mp,.x-date-picker{background-color:#fbfbfb}.x-date-mp .x-btn,.x-date-mp .x-date-mp-cancel,.x-date-mp .x-date-mp-ok,.x-date-picker .x-btn,.x-date-picker .x-date-mp-cancel,.x-date-picker .x-date-mp-ok{border:0;margin:0 0 0 7px;padding:5px 10px}.x-date-mp .x-btn:first-child,.x-date-mp .x-date-mp-cancel:first-child,.x-date-mp .x-date-mp-ok:first-child,.x-date-picker .x-btn:first-child,.x-date-picker .x-date-mp-cancel:first-child,.x-date-picker .x-date-mp-ok:first-child{margin:0}.x-date-mp .x-btn button,.x-date-mp .x-date-mp-cancel button,.x-date-mp .x-date-mp-ok button,.x-date-picker .x-btn button,.x-date-picker .x-date-mp-cancel button,.x-date-picker .x-date-mp-ok button{font-size:11px;font-style:normal;margin:0}.x-date-mp .x-date-mp-cancel,.x-date-mp .x-date-mp-ok,.x-date-picker .x-date-mp-cancel,.x-date-picker .x-date-mp-ok{height:16px}.x-date-middle{padding:5px 3px}.x-date-left a,.x-date-mp-ybtn a.x-date-mp-next,.x-date-mp-ybtn a.x-date-mp-prev,.x-date-right a{display:inline-block;filter:alpha(opacity=60);margin:0 auto;opacity:.6;position:relative;transition:opacity .25s}.x-date-left a:before,.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-mp-ybtn a.x-date-mp-prev:before,.x-date-right a:before{box-sizing:border-box;color:#234368;content:"";font-size:18px;height:18px;left:0;position:absolute;text-align:center;top:0;vertical-align:middle;width:18px}.x-date-left a:hover,.x-date-mp-ybtn a.x-date-mp-next:hover,.x-date-mp-ybtn a.x-date-mp-prev:hover,.x-date-right a:hover{filter:alpha(opacity=100);opacity:1}.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-right a:before{content:"\f0da";left:auto;right:0}.x-date-left a:before,.x-date-mp-ybtn a.x-date-mp-prev:before{content:"\f0d9"}.x-date-inner{margin:0 auto}.x-date-inner th{border-bottom-color:#e4e4e4;color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700}.x-date-inner td,.x-date-mp td{background-color:#fff;border:0;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:1px}.x-date-inner a,td.x-date-mp-month a,td.x-date-mp-year a{border-radius:3px;color:#999;font:inherit;font-weight:700}td.x-date-mp-month a,td.x-date-mp-year a{margin:0 3px}.x-date-inner .x-date-disabled a:hover,.x-date-inner .x-date-nextday a:hover,.x-date-inner .x-date-prevday a:hover,.x-date-inner a:hover,td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{background-color:#dcdcdc;color:#515151}.x-date-inner .x-date-disabled a{background-color:#e4e4e4;color:#999}.x-date-inner .x-date-active{color:#000}.x-date-inner .x-date-today a{border-color:#234368}.x-date-inner span{font-style:normal}.x-date-inner .x-date-active span,.x-date-inner .x-date-selected span{font-weight:700}.x-date-inner .x-date-selected a,td.x-date-mp-sel a{background-color:#234368;border-color:#fff;color:#fff}.x-date-inner .x-date-nextday a,.x-date-inner .x-date-prevday a{color:#dcdcdc}.x-date-bottom,.x-date-mp-btns{border-top:1px solid #e4e4e4;padding:5px}.x-date-bottom td,.x-date-mp-btns td{background-color:initial;border-top:1px solid #e4e4e4}td.x-date-mp-sep{border-right:1px solid #e4e4e4}.x-date-mmenu{background-color:#eee!important}.x-date-mmenu .x-menu-item{color:#000;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.radio-version .x-form-check-wrap .x-form-cb-label{display:block}.radio-version .x-form-check-wrap .x-form-cb-label .changelog{float:right}.x-form-template-picker .x-form-template-picker-search{padding:0!important}.x-form-template-picker .x-form-template-picker-templates .x-form-radio-group{background-color:#fff;border:1px solid #e4e4e4;border-radius:3px;height:194px;overflow:auto}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item{border-bottom:1px solid #e4e4e4}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category:last-child,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item:last-child{border-bottom:0}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-check-wrap .x-form-cb-label,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-check-wrap .x-form-cb-label{display:block}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-check-wrap .x-form-cb-label:before,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-check-wrap .x-form-cb-label:before{display:none}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-check-wrap .x-form-radio:checked+.x-form-cb-label,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-check-wrap:not(.x-item-disabled) .x-form-cb-label:hover,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-check-wrap .x-form-radio:checked+.x-form-cb-label,.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-check-wrap:not(.x-item-disabled) .x-form-cb-label:hover{background-color:#e4e4e4;color:#1b3451}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item{padding:0!important}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-item .x-form-cb-label{padding:10px 14px}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category{padding:0!important}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-form-cb-label{font-weight:700!important;padding:10px 8px}.x-form-template-picker .x-form-template-picker-templates .x-form-template-picker-category .x-item-disabled{filter:alpha(opacity=100);opacity:1;-moz-opacity:1}.x-form-template-preview{background-color:#fff;background:url(../images/tp-no-preview.png) no-repeat 50%;border:1px solid #e4e4e4;border-radius:3px;height:236px;overflow:hidden}.x-form-template-preview .x-panel-body,.x-form-template-preview .x-panel-bwrap{height:100%;position:relative}.x-form-template-preview .x-form-template-preview-image{height:100%;-o-object-fit:cover;object-fit:cover}.x-form-template-preview .x-form-template-preview-desc{background-color:#000c;bottom:0;color:#fff;left:0;padding:10px 20px;position:absolute;right:0}#modx-tv-tabs{width:100%}.x-tab-panel-noborder{border:1px solid #e2e3de;margin:20px 0;overflow:visible}.x-tab-panel-noborder .x-tab-panel-body-noborder{background-color:#fff;border-radius:3px}.x-tab-panel-footer,.x-tab-panel-header{border:0;position:relative}.x-tab-panel-header ul.x-tab-strip{background-color:initial!important;border:0;margin:0;position:relative;top:1px}.x-tab-panel-footer-plain .x-tab-strip-spacer,.x-tab-panel-header-plain .x-tab-strip-spacer{border:none;height:0}.x-tab-panel .x-tab-panel{padding-top:18px}.x-tab-panel .x-tab-panel.vertical-tabs-panel{padding-top:0}.x-tab-panel .x-tab-panel .x-tab-strip-wrap .x-tab-strip{background-color:#fbfbfb!important}.x-tab-panel-header,.x-tab-strip{padding-left:0}.x-tab-panel-bwrap{border-radius:3px;overflow:visible}.x-tab-panel-bwrap .x-tab-panel-bwrap{box-shadow:none}ul.x-tab-strip li{background-color:initial;border-top-left-radius:3px;border-top-right-radius:3px;color:#53595f;cursor:pointer;font:14px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:2.2;margin-left:0;padding:0 12px;position:relative;z-index:5}html[dir=rtl] ul.x-tab-strip li{float:right}ul.x-tab-strip li:hover{background-color:#e4e4e4;color:#000}ul.x-tab-strip li.x-tab-strip-active{background-color:#fff;color:#234368;cursor:default}.vertical-tabs-header ul.x-tab-strip li.x-tab-strip-active{border-radius:0}ul.x-tab-strip li.x-tab-strip-active:hover{background-color:#fff}ul.x-tab-strip li.x-tab-edge{height:0;visibility:hidden}.x-tab-panel,.x-tab-panel-header,.x-tab-strip-wrap{border:none;overflow:visible}.x-tab-strip-wrap{margin:0;overflow:hidden;padding:2px 0 0}.x-tab-strip-closable{padding-right:15px!important}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../images/modx-theme/tabs/tab-close.gif);right:2px}ul.x-tab-strip-top li:first-child{margin-left:0}ul.x-tab-strip-bottom{background-color:#f4f4f4;border-top-color:#dfdfdf}ul.x-tab-strip-bottom .x-tab-right{background-image:url(../images/modx-theme/tabs/tab-btm-inactive-right-bg.gif)}ul.x-tab-strip-bottom .x-tab-right .x-tab-right{background-image:url(../images/modx-theme/tabs/tab-btm-right-bg.gif)}ul.x-tab-strip-bottom .x-tab-right .x-tab-left{background-image:url(../images/modx-theme/tabs/tab-btm-left-bg.gif)}ul.x-tab-strip-bottom .x-tab-left{background-image:url(../images/modx-theme/tabs/tab-btm-inactive-left-bg.gif)}.x-tab-panel-body{background-color:#fff;border:0;overflow:visible}.x-tab-scroller-left,.x-tab-scroller-right{border:0}.x-tab-scroller-left:before,.x-tab-scroller-right:before{box-sizing:border-box;color:#515151;content:"";filter:alpha(opacity=100);font-size:28px;margin-top:-20px;opacity:1;position:absolute;right:0;text-align:center;top:50%;transition:opacity .25s;width:18px}.x-tab-scroller-left-over:before,.x-tab-scroller-right-over:before{color:#234368}.x-tab-scroller-left-disabled,.x-tab-scroller-right-disabled{cursor:default}.x-tab-scroller-left-disabled:before,.x-tab-scroller-right-disabled:before{color:#515151;filter:alpha(opacity=100);opacity:.4}.x-tab-scroller-left:before{content:"\f0d9"}.x-tab-scroller-right:before{content:"\f0da"}.x-tab-panel-bbar .x-toolbar,.x-tab-panel-tbar .x-toolbar{border-color:#dfdfdf}.x-tab-panel-body-noborder .x-panel-body-noheader:first-child{border-top:0}.x-tab-panel-bbar-noborder .x-toolbar{border-top-color:#0000}.x-tab-panel-tbar-noborder .x-toolbar{border-bottom-color:#0000}.vertical-tabs-panel{background-color:#fff;margin:0;overflow:hidden}.vertical-tabs-panel.wrapped{border:1px solid #e4e4e4}.vertical-tabs-panel .vertical-tabs-header{background:#fff!important;border-right:1px solid #e4e4e4!important;float:left;margin-bottom:-10000px;padding-bottom:10000px!important;width:168px!important}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header{width:80px!important}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap{background-color:initial;display:inline-block;line-height:0;margin:0;padding:0;width:auto!important}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip{border:0;display:inline-block;top:0;width:auto}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li{border-bottom:1px solid #e4e4e4;border-right:1px solid #e4e4e4;color:#515151;float:none;line-height:1;margin:0;overflow:hidden;padding:10px 15px;transition:background-color .25s,color .25s}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li{font-size:12px;padding:8px}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li:hover{background:#fff}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-strip-active{background:#fff;border-color:#234368 #fff #234368 #234368;box-shadow:none;color:#234368;width:168px}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-strip-active{width:80px!important}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-edge{height:0;visibility:hidden}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-edge .x-tab-strip-text{display:none}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li .x-tab-strip-text{line-height:1.4;padding:2px 0;white-space:pre-wrap}.vertical-tabs-panel .vertical-tabs-header h4{background:#fff;border-bottom:1px solid #e4e4e4;color:#53595f;font-size:16px;padding:15px 0 15px 15px}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-spacer{display:none}.vertical-tabs-panel .x-tab-panel-bwrap{box-shadow:none}.vertical-tabs-panel .x-tab-panel-bwrap .x-tab-panel-body{border-top:0;width:auto!important}.vertical-tabs-panel .x-tab-panel-bwrap .vertical-tabs-body{border:0;padding:15px 20px 15px 15px}.tvs-wrapper.below-content{border-radius:3px;margin:1rem}.tvs-wrapper.below-content .vertical-tabs-panel{border-radius:3px}@media screen and (max-width:960px){.tvs-wrapper.below-content{margin:0}}.window-vtabs .x-panel-mr{padding-right:0}.window-vtabs .vertical-tabs-panel{margin:0;width:100%!important}#modx-split-wrapper .x-border-layout-ct{background:#0000}#modx-leftbar-tabs-xcollapsed{display:none!important}#modx-leftbar{background-color:#fff;min-width:288px;z-index:0}@media screen and (min-width:961px){#modx-leftbar{max-width:50%}}#modx-leftbar .x-toolbar{border:0;padding:0!important}#modx-header{background:#234368;height:100%;max-width:70px;position:absolute;z-index:2}#modx-navbar{display:flex;flex-direction:column;font-weight:700;font:normal 13px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:100%;padding:0 5px;z-index:20}#modx-navbar .icon{color:#fff;font-size:20px;line-height:20px;vertical-align:middle}#modx-navbar a,#modx-navbar li{background:#0000;margin:0;padding:0;position:relative;text-align:center;width:100%}#modx-navbar a{color:#fff;cursor:pointer;display:block;font-size:10px;line-height:12px;text-decoration:none}#modx-navbar a .description{font-size:9px;opacity:.7}#modx-navbar a .description,#modx-navbar a .icon,#modx-navbar a .label{display:block;width:100%}#modx-navbar li a:hover{opacity:.7}#modx-navbar #modx-user-menu a #user-username,#modx-navbar #modx-user-menu a .description,#modx-navbar #modx-user-menu a .label{display:none}#modx-navbar #modx-leftbar-trigger a,#modx-navbar #modx-manager-search-icon a,#modx-navbar #modx-user-menu a{padding:12px 0}#modx-navbar #modx-topnav{list-style:none;margin:0;padding:0}#modx-navbar #modx-topnav .top:not(#modx-manager-search-icon){border-top:1px solid #ffffff1a}#modx-navbar #modx-topnav>li:not(#modx-home-dashboard):not(#modx-manager-search-icon):not(#modx-leftbar-trigger)>a{display:block;padding:12px 0;position:relative}#modx-navbar #modx-user-menu{margin-top:auto}#modx-navbar #modx-user-menu #user-avatar img{border-radius:20px;display:block;height:40px;margin:auto;width:40px}#modx-navbar #modx-user-menu #limenu-user a{display:flex;flex-direction:column;justify-content:center}#modx-navbar #modx-home-dashboard{border-radius:3px;height:40px;line-height:40px;padding:10px;width:40px}#modx-navbar #modx-site-info{font-size:10px}#modx-navbar #modx-site-info .full_appname,#modx-navbar #modx-site-info .site_name{color:#fff}#modx-navbar #modx-site-info>.info-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#modx-leftbar-trigger{transition:all .2s ease}#modx-leftbar-trigger .icon:before{content:"\f060"}#modx-leftbar-trigger.collapsed .icon:before{content:"\f061"!important}#modx-footer .modx-subnav{background:#fff;border:1px solid #ffffff1a;border-radius:3px;box-shadow:0 0 15px 0 #0003;box-sizing:border-box;display:block;list-style:none;opacity:0;position:absolute;transition:all .15s ease;visibility:hidden;z-index:10000}#modx-footer .modx-subnav li{background:#fff;border-radius:3px;display:block;margin:0;padding:0;position:relative}#modx-footer .modx-subnav li:not(:first-child){border-top:1px solid #e4e4e4}#modx-footer .modx-subnav li:hover:after{border-right-color:#e4e4e4}#modx-footer .modx-subnav li.sub:after{color:#999;content:"\f0da";font-size:14px;margin-top:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}#modx-footer .modx-subnav li a{background-color:#fff;border-radius:3px;color:#515151;cursor:pointer;display:block;font-weight:700;line-height:1.5;margin:0;padding:8px 15px;text-decoration:none;text-shadow:none;width:270px}#modx-footer .modx-subnav li a .icon{display:inline-block;font-size:18px;opacity:.07;padding-left:5px}#modx-footer .modx-subnav li a span{color:#999;display:block;float:none;font-size:12px;font-weight:400;line-height:1.3;margin-top:6px;width:100%}#modx-footer .modx-subnav li a:hover{background:#e4e4e4;border-bottom-color:#e4e4e4;border-top-color:#e4e4e4;color:#53595f}#modx-footer .modx-subnav li a:hover .description{color:#707070}#modx-footer .modx-subnav.active{opacity:1;visibility:visible}#modx-footer .modx-subnav .modx-subsubnav{background:#fff;border:1px solid #ffffff1a;border-radius:3px;box-shadow:0 0 15px 0 #0003;list-style:none;position:absolute;z-index:24}#modx-footer .modx-subnav .modx-subsubnav-arrow{border:8px solid #0000;border-right-color:#fff;content:" ";display:none;pointer-events:none;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:10010}#modx-footer .modx-subnav .modx-subsubnav.active+.modx-subsubnav-arrow{display:block}@media screen and (min-width:961px){#modx-footer .modx-subnav .modx-subsubnav{opacity:0;visibility:hidden}#modx-footer .modx-subnav .modx-subsubnav.active{opacity:1;visibility:visible}}#modx-footer .modx-subnav-arrow{border:12px solid #0000;border-right-color:#fff;content:" ";margin-top:-6px;pointer-events:none;position:absolute;right:100%}#modx-footer #language .modx-subsubnav{max-height:calc(100vh - 12px);overflow-x:hidden;overflow-y:auto}@media screen and (max-width:960px){#modx-header{height:auto!important;min-width:100%;position:relative}#modx-navbar{flex-direction:row;flex-wrap:wrap}#modx-navbar #modx-headnav{order:1;width:50%}#modx-navbar #modx-headnav a{line-height:normal!important}#modx-navbar #modx-headnav img{max-width:35px}#modx-navbar #modx-topnav{order:0;width:100%}#modx-navbar #modx-user-menu{flex-direction:row-reverse;flex-wrap:nowrap;margin-top:0;order:2;width:50%}#modx-navbar>ul{align-items:center;display:flex;flex-wrap:wrap;justify-content:center}#modx-navbar>ul>li{flex-basis:50px}#modx-navbar #modx-site-info{display:none}#modx-navbar #modx-home-dashboard{margin:0;padding:5px}#modx-leftbar-trigger .icon{padding:3px 4px}#modx-leftbar-trigger .icon:before{content:"\f062"}#modx-leftbar-trigger.collapsed .icon:before{content:"\f063"!important}#modx-footer .modx-subnav{min-width:300px}#modx-footer .modx-subnav .description{display:none}#modx-footer .modx-subnav li{border-radius:0}#modx-footer .modx-subnav li.sub:after{display:none}#modx-footer .modx-subnav li a{white-space:nowrap;width:auto}#modx-footer .modx-subnav .modx-subsubnav{box-shadow:none;display:block;left:auto;max-height:none!important;overflow-y:initial!important;position:static}#modx-footer .modx-subnav .modx-subsubnav li>a{margin-left:1rem}#modx-footer .modx-subnav-arrow{display:none}#modx-footer .modx-subnav{max-height:calc(100vh - 109px);overflow-x:hidden;overflow-y:auto}}@media (max-height:520px){#modx-footer .modx-subnav .description{display:none}}#modx-manager-search{background:#fff;border-radius:3px 3px 0 0;height:38px;min-width:100px;padding:10px 10px 5px}#modx-manager-search .x-form-text{background:none}#modx-manager-search .x-form-field-wrap{background-image:none;color:#565353;font-size:12px;outline:none!important}#modx-manager-search .x-form-field-wrap .x-form-text{color:#515151;font-weight:400;letter-spacing:0;text-shadow:none}#modx-manager-search .x-form-field-wrap .x-form-empty-field{color:#6a747a}#modx-manager-search .x-form-field-wrap .x-form-trigger{display:none}.modx-manager-search-results{background:#e4e4e4;border:1px solid #e4e4e4;border-radius:0 0 3px 3px;box-shadow:0 4px 10px 0 #0003;box-sizing:border-box;height:auto!important;position:relative;width:402px!important}.modx-manager-search-results .loading-indicator{background:none;color:#515151;font-size:14px;margin:10px 0;text-align:center}.modx-manager-search-results .loading-indicator:before{content:"\f110";margin-right:5px}.modx-manager-search-results .x-combo-list-inner{background:#fff;border:0;margin:0;overflow:auto;width:100%!important}@media screen and (max-width:960px){.modx-manager-search-results .x-combo-list-inner{height:auto!important;line-height:4em}.modx-manager-search-results .x-combo-list-inner .section>*{padding-bottom:.5em;padding-top:.5em}}.modx-manager-search-results .section{border-left:1px solid #ededed;font-size:12px;line-height:12px;margin-left:100px;position:relative;width:auto}.modx-manager-search-results .x-combo-list-item,.modx-manager-search-results h3{color:#515151;line-height:18px;margin:0;padding:4px 6px}.modx-manager-search-results h3{color:#53595f;font-size:11px;font-weight:400;left:-108px;line-height:11px;position:absolute;text-align:right;top:0;width:95px}.modx-manager-search-results a{color:inherit;cursor:pointer;display:inline-block;padding-left:20px;position:relative;text-decoration:none}.modx-manager-search-results i{color:#234368;left:0;position:absolute;top:4px}.modx-manager-search-results em{font-style:normal;opacity:.7}.modx-manager-search-results .x-combo-list-item{overflow:visible;white-space:normal}.modx-manager-search-results .x-combo-list-item a{display:block}.modx-manager-search-results .x-combo-list-item.x-combo-selected,.modx-manager-search-results .x-combo-list-item:hover{background-color:#e4e4e4;border:0;margin-left:0;z-index:10}.modx-manager-search-results .x-combo-list-item.x-combo-selected h3,.modx-manager-search-results .x-combo-list-item:hover h3{left:0}.modx-manager-search-results .x-combo-list-item.x-combo-selected p,.modx-manager-search-results .x-combo-list-item:hover p{border-left-color:#0000}.modx-manager-search-results .x-combo-list-item.x-combo-selected a,.modx-manager-search-results .x-combo-list-item:hover a{color:#515151}.modx-manager-search-results .icon-user{background-image:none!important}.breadcrumbs .panel-desc{margin-top:0}.crumb_wrapper{background:#fbfbfb;border-bottom:1px solid #e4e4e4;border-top:1px solid #e4e4e4;margin-top:15px}.crumb_wrapper .crumbs{height:34px;overflow:hidden}.crumb_wrapper .crumbs li{color:#53595f;float:left;font-size:12px;font-weight:400;line-height:12px;padding:0 0 0 20px;position:relative;z-index:1}.crumb_wrapper .crumbs li.first{padding:0}.crumb_wrapper .crumbs li.first:before{content:"\f015";display:inline-block;font-size:20px;left:0;line-height:34px;position:absolute;text-align:center;text-indent:0;top:0;z-index:2}#packages-breadcrumbs .crumb_wrapper .crumbs li.first:before{content:"\f1b2"}.crumb_wrapper .crumbs li.first:hover:before{color:#fff}.crumb_wrapper .crumbs li.first:hover{background-color:#515151}.crumb_wrapper .crumbs li.first .root{background-color:initial;box-sizing:initial;display:inline-block;line-height:12px;margin:0;padding:12px;text-indent:-999em;width:35px;z-index:3}.crumb_wrapper .crumbs li.first .root:before{display:none}.crumb_wrapper .crumbs li.first .root:hover{background-color:initial}.crumb_wrapper .crumbs li:hover button,.crumb_wrapper .crumbs li:hover span,.crumb_wrapper .crumbs li:hover span:after{background-color:#515151;color:#fff}.crumb_wrapper .crumbs li:hover button:after,.crumb_wrapper .crumbs li:hover span:after{border-color:#fbfbfb #fbfbfb #515151 #515151;border-style:solid;border-width:1px}.crumb_wrapper .crumbs li:hover button:before,.crumb_wrapper .crumbs li:hover span:before{background-color:#515151}.crumb_wrapper .crumbs li:hover+li button:before,.crumb_wrapper .crumbs li:hover+li span:before{border-left-color:#515151}.crumb_wrapper .crumbs li button{background-color:initial;border:0;color:#53595f;cursor:pointer;font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;line-height:1;text-decoration:none}.crumb_wrapper .crumbs li span{background-color:#fbfbfb}.crumb_wrapper .crumbs li button,.crumb_wrapper .crumbs li span{display:inline-block;margin:0 0 0 1px;padding:11px 13px 11px 15px;position:relative}.crumb_wrapper .crumbs li button:before,.crumb_wrapper .crumbs li span:before{background-color:initial;border-bottom:50px solid #0000;border-left:30px solid #fbfbfb;border-top:50px solid #0000;content:"";display:inline-block;height:0;left:-33px;margin-top:-50px;padding-right:3px;position:absolute;top:50%;transform:scale(.99999);width:0;z-index:-1}.crumb_wrapper .crumbs li button:after,.crumb_wrapper .crumbs li span:after{background-color:#fbfbfb;border:1px solid #dcdcdc;border-bottom:0;border-left:0;border-radius:3px;content:"";display:inline-block;height:34px;position:absolute;right:-22px;top:0;transform:scaleX(.6) rotate(45deg);width:34px;z-index:-1}.x-toolbar{background-color:#f7f7f7;background-image:none;border-color:#dfdfdf}.x-toolbar .x-toolbar-cell label,.x-toolbar .xtb-text{margin:0 5px 0 7px;padding:0}.x-toolbar .x-item-disabled{filter:alpha(opacity=60);opacity:.6}.x-toolbar td.x-toolbar-cell:first-of-type .xtb-text{margin-left:0}.x-toolbar div,.x-toolbar input,.x-toolbar label,.x-toolbar select,.x-toolbar span,.x-toolbar td{font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:0}.x-toolbar .x-btn-group-header{line-height:1}.x-toolbar em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-b-noline.gif)}.x-toolbar .x-btn-click em.x-btn-split-bottom,.x-toolbar .x-btn-menu-active em.x-btn-split-bottom,.x-toolbar .x-btn-over em.x-btn-split-bottom,.x-toolbar .x-btn-pressed em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-bo.gif)}.ext-ie .x-toolbar-cell .x-form-field-wrap{height:30px}.x-tbar-page-first{background-image:url(../images/modx-theme/grid/page-first.png)!important}.x-tbar-loading{background-image:url(../images/modx-theme/grid/refresh.png)!important}.x-tbar-page-last{background:none!important;position:relative}.x-tbar-page-last:before{content:"\f04e";left:1px;right:auto;top:1px}.x-tbar-page-next{background:none!important;position:relative}.x-tbar-page-next:before{content:"\f0da";font-size:18px;left:1px;line-height:110%;right:auto}.x-tbar-page-prev{background:none!important;position:relative}.x-tbar-page-prev:before{content:"\f0d9";font-size:18px;left:auto;line-height:110%;right:1px}.x-tbar-loading{background:none!important;position:relative}.x-tbar-loading:before{bottom:auto;content:"\f01e";top:1px}.x-tbar-page-first{background:none!important;position:relative}.x-tbar-page-first:before{content:"\f04a";left:auto;right:1px;top:1px}.x-paging-info{color:#444}.x-toolbar-more-icon{background-image:url(../images/modx-theme/toolbar/more.gif)!important}.x-panel-bbar{padding-top:10px}.modx-browser-rte-buttons .x-panel-bbar{background-color:#fff;border-top:1px solid #fff;padding:5px}.modx-browser-rte-buttons .x-panel-bbar .x-toolbar-layout-ct{width:auto!important}.x-panel-bbar .x-toolbar{background-color:initial;border:0;overflow:hidden;padding:2px 0}.x-panel-bbar .x-toolbar .x-form-text{padding:5px 10px}.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-number,.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-size{width:32px}.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-number{margin-right:3px}.x-panel-bbar .x-toolbar .x-btn{margin-right:10px;padding:8px 13px}.modx-browser-rte .x-panel-bbar .x-toolbar .x-btn{margin-right:0;padding:10px 15px}.x-panel-bbar .x-toolbar .xtb-text{margin:0 3px 0 0}.x-panel-tbar{overflow:visible;padding-bottom:4px}.x-panel-tbar .x-toolbar{border:0;overflow:visible;padding:5px 0}.x-panel-tbar .x-toolbar td{vertical-align:bottom}.x-panel-tbar .x-toolbar input.filter-query{bottom:-1px;position:relative}.x-panel-mc .x-panel-tbar .x-toolbar{background-image:none;border:0;padding:15px 0 7px}.x-panel-tbar-noheader .x-toolbar{background-color:initial;background-image:none;border:0;padding:5px 0}.x-toolbar div,.x-toolbar input,.x-toolbar label,.x-toolbar select,.x-toolbar span,.x-toolbar td{border-radius:3px}.x-html-editor-tb .x-btn-text{background-image:url(../images/modx-theme/editor/tb-sprite.gif)}.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{background-color:initial;border-bottom-color:#0000}.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-top-color:#0000}#modx-leftbar .x-tab-panel-noborder{margin:0 8px}#modx-leftbar .x-tab-panel-bwrap{border-radius:0 0 3px 3px;position:relative;z-index:1}#modx-leftbar .x-tab-panel-bwrap .x-tab-panel-body-noborder{background:#f1f1f1;border-radius:0 0 3px 3px}@media screen and (max-width:960px){#modx-leftbar #modx-leftbar-tabpanel{margin:0 auto;padding:.5em;width:auto!important}#modx-leftbar{box-shadow:none;height:auto!important;left:auto!important;margin:0 auto 10px;position:relative!important;top:auto!important;width:100%!important}#modx-leftbar #modx-leftbar-header{display:none}#modx-leftbar .x-plain-body{height:auto!important;width:100%!important}}#modx-leftbar .x-panel-tbar{padding:0}#modx-leftbar .x-toolbar{padding:4px 5px 2px 0}#modx-leftbar .x-tree-root-ct{padding:6px}#modx-leftbar .x-tree .x-panel-body{background:#fff;border-radius:0}#modx-tree-usergroup .x-toolbar-left-row{display:flex;flex-wrap:wrap}#modx-resource-tree-tbar .x-toolbar-left .x-btn .tree-new-resource,#modx-tree-element .x-toolbar-left .x-btn .tree-new-template{margin-left:16px}#modx-split-wrapper #modx-leftbar-tabs-xcollapsed,#modx-split-wrapper .x-layout-split{margin-left:-70px}.x-layout-split{overflow:visible;width:8px;z-index:2}.x-layout-split:hover{background:#999}#modx-leftbar-tabs-xcollapsed .x-layout-mini{left:0}#modx-leftbar-tabs-xcollapsed .x-layout-mini:after{border-left:5px solid #515151;border-right:0}@media screen and (max-width:960px){#modx-leftbar-tabs-xcollapsed .x-layout-mini:after{border:none}}#modx-leftbar-tabs-xcollapsed .x-layout-mini:hover:after{border-left-color:#234368}.modx-tree{padding:0}#modx-file-tree .modx-tree:first-child{padding-top:4px}.x-tree-arrows .x-tree-elbow-end-minus,.x-tree-arrows .x-tree-elbow-end-plus,.x-tree-arrows .x-tree-elbow-minus,.x-tree-arrows .x-tree-elbow-plus{background:none}.x-tree-arrows .x-tree-elbow-end-minus:hover,.x-tree-arrows .x-tree-elbow-end-plus:hover,.x-tree-arrows .x-tree-elbow-minus:hover,.x-tree-arrows .x-tree-elbow-plus:hover{background:#d9d9d9;border-radius:50%}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before{background:#0000 0 0;content:"\f0da";display:inline-block;margin:0;padding-left:4px;padding-right:4px;text-align:center;width:10px}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-minus:before{content:"\f0d7"}.x-tree-node-el{background-position:5px;background-repeat:no-repeat;color:#515151;font:normal 14px/2.25 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:0 8px}.x-tree-node-el.is_folder{background:#0000}.x-tree-node-el .x-btn{box-shadow:none}.x-tree-node-el .icon{display:inline-block;font-size:1.15em;line-height:.75em;vertical-align:-15%;width:1em}.x-tree-node-el a span{padding-left:7px}.x-tree-node-el a span span{padding-left:0}.x-tree-node-el .icon-plus-circle,.x-tree-node-el .icon-refresh{font-size:1em;vertical-align:0}.unpublished,.unpublished a span,.unpublished a span i.icon,.unpublished a span i.icon-large,.unpublished i.icon,.unpublished i.icon-large{color:#b3b3b3!important;font-style:normal}.hidemenu,.hidemenu a span{color:#999;font-style:italic}.hidemenu a span i.icon,.hidemenu a span i.icon-large,.hidemenu i.icon,.hidemenu i.icon-large{color:#999;font-style:normal}.deleted{color:#af5a6280!important}.deleted i.icon,.deleted i.icon-large{color:#af5a6280!important;font-style:normal}.deleted a span{color:#af5a6280!important;text-decoration:line-through}.element-node-disabled a span{color:#aaa}.x-tree-node{background:#fff;color:#999;position:relative}.x-tree-node .element-node-disabled a span,.x-tree-node .element-node-disabled i.icon,.x-tree-node .x-tree-node-disabled a span,.x-tree-node .x-tree-node-disabled i.icon{color:#aaa}.element-node-locked a span{font-style:inherit}.modx-tree-node-tool-ct{bottom:0;line-height:1.8;position:absolute;right:6px;top:0}html[dir=rtl] .modx-tree-node-tool-ct{left:6px;right:unset}.modx-tree-node-tool-ct .x-btn:focus,.modx-tree-node-tool-ct .x-btn:hover{color:#6cb24a!important}#modx-gr-tree-resource .modx-tree-node-tool-ct,#modx-ih-resource-tree .modx-tree-node-tool-ct{display:none}.x-tree-node-el .modx-tree-node-btn-create{bottom:0;line-height:34px;opacity:0;overflow:hidden;position:absolute;right:6px;top:0;transition:opacity .4s ease-in}html[dir=rtl] .x-tree-node-el .modx-tree-node-btn-create{left:6px;right:unset}.x-tree-node-el .modx-tree-node-btn-create .x-btn{color:#515151;opacity:.4;transition:opacity .2s ease-in-out,color .2s ease-in-out}.x-tree-node-el .modx-tree-node-btn-create .x-btn:focus,.x-tree-node-el .modx-tree-node-btn-create .x-btn:hover{color:#6cb24a;opacity:1}#modx-gr-tree-resource .x-tree-node-el .modx-tree-node-btn-create,#modx-ih-resource-tree .x-tree-node-el .modx-tree-node-btn-create{display:none}.x-tree-node-el:focus .modx-tree-node-btn-create,.x-tree-node-el:hover .modx-tree-node-btn-create{opacity:1}.tree-pseudoroot-node.x-tree-node-el{background-color:#f1f1f1;font:500 14px/3 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:0 5px;position:relative}.tree-pseudoroot-node.x-tree-node-el>.icon,.tree-pseudoroot-node.x-tree-node-el a span{color:#53595f}.tree-pseudoroot-node.x-tree-node-el .modx-tree-node-tool-ct{filter:alpha(opacity=50);line-height:3;opacity:.5}.tree-pseudoroot-node.x-tree-node-el .modx-tree-node-tool-ct .x-btn{margin-left:2px}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-collapsed{border-bottom:1px solid #e4e4e4}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded,.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded>.icon,.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded span{color:#53595f}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-over{background-color:#e4e4e4;color:#53595f}.tree-pseudoroot-node.x-tree-node-el+.x-tree-node-ct,.tree-pseudoroot-node.x-tree-node-el+div>.x-tree-node-ct{background:#fbfbfb;overflow-x:auto}.tree-pseudoroot-node.x-tree-node-el+.x-tree-node-ct:empty,.tree-pseudoroot-node.x-tree-node-el+div>.x-tree-node-ct:empty{padding:0}.tree-pseudoroot-node.x-tree-node-el:hover .modx-tree-node-tool-ct{filter:alpha(opacity=100);opacity:1}.tree-pseudoroot-node.x-tree-node-el:hover .modx-tree-node-tool-ct .x-btn{color:inherit}.x-tree-elbow,.x-tree-elbow-end{display:inline-block}#modx-leftbar .icon,.x-tree-node .icon{background:none;border:0;display:inline-block;filter:alpha(opacity=80);margin:0;opacity:.8;padding:3px;text-align:center}#modx-leftbar .icon.icon-code:before,#modx-leftbar .icon.icon-cogs:before,#modx-leftbar .icon.icon-columns:before,#modx-leftbar .icon.icon-folder:before,#modx-leftbar .icon.icon-th-large:before,.x-tree-node .icon.icon-code:before,.x-tree-node .icon.icon-cogs:before,.x-tree-node .icon.icon-columns:before,.x-tree-node .icon.icon-folder:before,.x-tree-node .icon.icon-th-large:before{font-weight:900}#modx-leftbar .icon i,.x-tree-node .icon i{font-style:normal}#modx-leftbar .icon button,.x-tree-node .icon button{display:none}.x-tree-node-ct .x-tree-node .icon{left:-1px;position:relative;top:-1px}.x-dd-drag-ghost a,.x-dd-drag-ghost a span,.x-tree-node a,.x-tree-node a span{color:#515151}.x-tree-node div.x-tree-drag-insert-below{border-bottom:2px solid #a8c3e2!important}.x-tree-node div.x-tree-drag-insert-above{border-top:2px solid #a8c3e2!important}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #a8c3e2!important}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #a8c3e2!important}.x-tree-node .x-tree-drag-append a span,.x-tree-node .x-tree-node-over{background-color:#e4e4e4}.x-tree-node .x-tree-selected{background-color:#d6e7f8}.x-tree-node .x-tree-expanded{background-color:#e4e4e4;color:#234368}.x-tree-node .x-tree-expanded a,.x-tree-node .x-tree-expanded a span{color:#234368}.icon-rss:before{content:"\f09e"}.icon-cal:before,.icon-ical:before,.icon-ics:before,.icon-vcs:before{content:"\f133"}.icon-db:before,.icon-sql:before{content:"\f1c0"}.icon-7z:before,.icon-bz2:before,.icon-dmg:before,.icon-gz:before,.icon-iso:before,.icon-rar:before,.icon-tar:before,.icon-tgz:before,.icon-zip:before{content:"\f1c6"}.icon-backup:before,.icon-bak:before,.icon-bk:before{content:"\f1da"}.icon-bmp:before,.icon-gif:before,.icon-jpeg:before,.icon-jpg:before,.icon-png:before,.icon-svg:before,.icon-tiff:before{content:"\f1c5"}.icon-bat:before,.icon-scr:before,.icon-sh:before{content:"\f120"}.icon-log:before,.icon-txt:before{content:"\f15c"}.icon-aac:before,.icon-aif:before,.icon-aiff:before,.icon-flac:before,.icon-m4a:before,.icon-mp3:before,.icon-ogg:before,.icon-wav:before,.icon-wma:before{content:"\f1c7"}.icon-3gp:before,.icon-avi:before,.icon-fla:before,.icon-flv:before,.icon-m4v:before,.icon-mov:before,.icon-mp4:before,.icon-mpeg:before,.icon-mpg:before,.icon-swf:before,.icon-wmv:before{content:"\f1c8"}.icon-access:before,.icon-htaccess:before{content:"\f023"}.icon-as:before,.icon-cfm:before,.icon-jar:before,.icon-java:before,.icon-php:before,.icon-rb:before{content:"\f1c9"}.icon-doc:before,.icon-docx:before{content:"\f1c2"}.icon-csv:before,.icon-xls:before,.icon-xlsx:before{content:"\f1c3"}.icon-ppt:before,.icon-pptx:before{content:"\f1c4"}.icon-pdf:before{content:"\f1c1"}.icon-coffeescript:before,.icon-css:before,.icon-htm:before,.icon-html:before,.icon-js:before,.icon-json:before,.icon-less:before,.icon-scss:before,.icon-styl:before,.icon-xml:before{content:"\f1c9"}.icon-action{background-image:url(../images/restyle/icons/application_osx_terminal.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-action.x-tree-node-el{background-position:5px 5px!important}.icon-action:before{content:" "}.icon-namespace{background-image:url(../images/restyle/icons/computer.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-namespace.x-tree-node-el{background-position:5px 5px!important}.icon-namespace:before{content:" "}.icon-list-new{background-image:url(../images/restyle/icons/layout_add.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-list-new.x-tree-node-el{background-position:5px 5px!important}.icon-list-new:before{content:" "}.icon-mark-active{background-image:url(../images/restyle/icons/layout_edit.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-mark-active.x-tree-node-el{background-position:5px 5px!important}.icon-mark-active:before{content:" "}.icon-mark-complete{background-image:url(../images/restyle/icons/layout_header.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-mark-complete.x-tree-node-el{background-position:5px 5px!important}.icon-mark-complete:before{content:" "}.icon-package{background-image:url(../images/restyle/icons/package.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;padding-right:5px!important;vertical-align:middle}.icon-package.x-tree-node-el{background-position:5px 5px!important}.icon-package:before{content:" "}.icon-locked{background-image:url(../images/restyle/icons/lock_edit.png)!important;background-position:50%!important;background-repeat:no-repeat!important;min-height:16px;min-width:16px;vertical-align:middle}.icon-locked.x-tree-node-el{background-position:5px 5px!important}.icon-locked:before{content:" "}.icon-lock{content:"\f023"}#modx-resource-tree-panel .x-accordion-hd{background-position:0 0}#modx-element-tree-panel .x-accordion-hd{background-position:0 -32px}#modx-file-tree-panel .x-accordion-hd{background-position:0 -64px}#modx-static-page-settings .x-accordion-hd{background-position:0 -96px}.x-tree-node-el .x-tree-node-icon{display:inline-block}.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/modx-theme/tree/loading.gif)!important}.x-tree-node-loading a span{color:#444;font-style:italic}.tree-context:before{content:"\f0ac"}.tree-resource:before{content:"\f15b"}.tree-static-resource:before{content:"\f15c"}.tree-weblink:before{content:"\f0c1"}.tree-symlink:before{content:"\f0c5"}.icon-folder:before,.parent-resource:before{content:"\f07b"}.x-tree-node-expanded .icon-folder:before,.x-tree-node-expanded .parent-resource:before{content:"\f07c"}.locked-resource:before{content:"\f023"!important}.ext-ie .x-tree-node-el input{height:15px;width:15px}.x-tree-root-ct{border-radius:0;overflow:hidden;padding:0!important}.x-tree-root-node{margin:0}.x-dd-drag-ghost a,.x-dd-drag-ghost a span,.x-tree-node,.x-tree-node a,.x-tree-node a span{color:#515151}.x-tree-node .x-tree-node-disabled a span{color:#d1d1d1}.x-tree-node div.x-tree-drag-insert-below{border-bottom-color:#686868}.x-tree-node div.x-tree-drag-insert-above{border-top-color:#686868}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom-color:#686868}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top-color:#686868}.x-tree-node .x-tree-drag-append a span{background-color:#dfdfdf;border-color:#e4e4e4}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-add.gif)}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-over.gif)}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-under.gif)}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-between.gif)}#modx-leftbar-header{align-items:center;box-sizing:border-box;color:#53595f;display:flex;height:57px;justify-content:left;padding:.67rem 1rem}#modx-leftbar-header img{max-height:100%;max-width:33%}#modx-leftbar-header a{color:#53595f;font:normal 25px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;text-decoration:none}#modx-leftbar-header a:focus,#modx-leftbar-header a:hover{color:#234368}#modx-leftbar-header a:after{content:"\f06e";font-size:14px;opacity:.5;padding:5px}#modx-leftbar-header img+a{padding-left:.67rem}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip-wrap{margin:0;padding:0}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip{display:flex;width:100%}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li{box-sizing:border-box;flex-grow:1;float:none;margin-left:0;text-align:center}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li#modx-leftbar-tabpanel__modx-trash-link{border-right:none}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li:hover{color:#234368}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active{background:#f1f1f1}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active:after{box-shadow:none}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active:before{background:#0000}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip .x-clear,#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip .x-tab-edge{display:none}#modx-leftbar-tabpanel__modx-trash-link .icon{opacity:.5}#modx-leftbar-tabpanel__modx-trash-link .icon:hover{color:#cf1124}#modx-leftbar-tabpanel__modx-trash-link.active .icon{opacity:1}.modx-browser-rte{background:#fff}.modx-browser-tree{background:#fff;border-radius:3px}.modx-browser-rte .modx-browser-tree,.x-window .modx-browser-tree{border-radius:0;border-right:1px solid #e4e4e4;box-shadow:none}.modx-browser-view-ct{background:#fff;border-radius:3px;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.modx-browser-rte .modx-browser-view-ct,.x-window .modx-browser-view-ct{border-radius:0;box-shadow:none}.modx-browser-thumb-wrap{cursor:pointer;float:left;margin:5px;overflow:hidden;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.modx-browser-thumb-wrap.x-view-over .modx-browser-placeholder{color:#515151}.modx-browser-thumb-wrap.x-view-over .modx-browser-thumb{border:1px dotted #515151}.modx-browser-thumb-wrap.x-view-selected .modx-browser-placeholder{color:#234368}.modx-browser-thumb-wrap.x-view-selected .modx-browser-thumb{border:1px solid #234368}.modx-browser-thumb{background:#fff;border:1px solid #e4e4e4;height:100px;line-height:100px;padding:5px;width:100px}.modx-browser-thumb img{background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png);max-width:100%;vertical-align:middle}.modx-browser-placeholder{color:#dcdcdc;font-size:14px}.details .modx-browser-placeholder{align-items:center;display:flex;font-size:24px;font-weight:700;height:100px;justify-content:center;overflow:hidden;width:100%}.modx-browser-list-item{padding:0 5px}.modx-browser-list-item>span{background-position:0!important;border-bottom:1px solid #e4e4e4;clear:both;display:block;min-height:16px;padding:5px 0 5px 20px;position:relative}.modx-browser-list-item>span:before{font-size:14px;left:2px;position:absolute}.modx-browser-list-item>span span{display:inline-block;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.modx-browser-list-item>span span.file-size,.modx-browser-list-item>span span.image-size{float:right;width:13%}.modx-browser-list-item.x-view-over>span{background:#fbfbfb}.modx-browser-list-item.x-view-selected>span{background:#fbfbfb;color:#234368}.modx-browser-view-ct .loading-indicator{background-position:0;background-repeat:no-repeat;font-size:11px;margin:10px;padding-left:20px}.modx-browser-pathbbar table,.modx-browser-pathbbar tbody,.modx-browser-pathbbar td,.modx-browser-pathbbar tr{display:block}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell{position:relative}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell:before{content:"\f328";filter:alpha(opacity=60);font-size:14px;left:0;opacity:.6;position:absolute;text-align:center;top:50%;width:30px}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row .modx-browser-filepath{background:#0000;border:0;border-radius:0;border-top:1px solid #e4e4e4;box-sizing:border-box;height:32px!important;margin:0!important;padding-left:30px;width:100%}.modx-browser-details-ct{background:#fff;border-radius:3px}.modx-browser-rte .modx-browser-details-ct,.x-window .modx-browser-details-ct{border-left:1px solid #e4e4e4;border-radius:0;box-shadow:none}.modx-browser-detail-thumb{color:#000;cursor:default;padding:5px;position:relative}.modx-browser-detail-thumb.preview{cursor:pointer}.modx-browser-detail-thumb.preview:before{content:"\f002";filter:alpha(opacity=0);font-size:56px;left:0;margin-top:-28px;opacity:0;position:absolute;text-align:center;text-shadow:0 0 10px #0003;top:50%;transition:opacity .25s;width:100%}.modx-browser-detail-thumb.preview:hover:before{filter:alpha(opacity=60);opacity:.6}.modx-browser-detail-thumb img{background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png);display:block;height:auto;margin:0 auto;max-width:100%;width:100%}.modx-browser-details-info{border-top:1px solid #e4e4e4;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:15px;text-align:left}.modx-browser-details-info b{color:#53595f;display:block;margin-bottom:2px}.modx-browser-details-info span{display:block;margin-bottom:10px}.modx-browser-fullview{text-align:center}.modx-browser-fullview img{background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png);display:block;height:auto;margin:0 auto;max-width:100%;width:100%}@media screen and (max-width:960px){.modx-browser{max-height:100%!important;overflow-y:scroll;top:15px!important}.modx-browser-panel{background-color:#fff!important;margin:15px 0!important;min-height:700px;width:100%!important}.modx-browser-tree,.modx-browser-view-ct{max-width:35%!important;width:35%!important}.modx-browser-details-ct,.modx-browser-tree,.modx-browser-view-ct{display:inline-block!important;float:left;left:0!important;padding:0 5px;position:relative!important}.modx-browser-details-ct{max-width:20%!important;width:20%!important}.modx-browser-details-ct *,.modx-browser-tree *,.modx-browser-view-ct *{font-size:12px!important}.modx-browser-details-ct input,.modx-browser-tree input,.modx-browser-view-ct input{padding:5px!important}.modx-browser-tree .x-toolbar-ct tbody tr td{display:table-cell}.modx-browser-view-ct .x-panel-body,.modx-browser-view-ct .x-panel-tbar,.modx-browser-view-ct .x-panel-tbar-noheader,.modx-browser-view-ct .x-panel-tbar .x-toolbar,.modx-browser .x-panel-tbar-noheader,.modx-browser .x-toolbar{width:100%!important}.modx-browser-view-ct .x-panel-tbar .x-toolbar-cell label{line-height:2.2}.modx-browser-thumb-wrap{margin:5px;padding:5px;width:24%}.modx-browser-thumb{height:25px;line-height:25px;max-width:100%;overflow:hidden;padding:0}.modx-browser-thumb img{max-width:100%}.modx-browser-placeholder{height:50px}.modx-browser-details-info{padding:5px}}.x-window{-webkit-backface-visibility:hidden;border-radius:3px;box-shadow:0 0 15px 0 #0003;filter:alpha(opacity=0);opacity:0;overflow:visible;transform:scale(1) translateZ(0);transition:opacity .25s ease-in-out,transform .25s ease-in-out}.x-window.anim-ready{transform:scale(.7) translateZ(0)}.x-window.zoom-in{filter:alpha(opacity=100);opacity:1;transform:scale(1) translateZ(0)}.x-window.zoom-out{filter:alpha(opacity=0);opacity:0;transform:scale(1.3) translateZ(0)}.ext-ie8 .x-window.x-window-dlg{filter:alpha(opacity=100)}.x-window .x-window-tl,.x-window .x-window-tr{padding:0}.x-window .x-window-tc{z-index:1}.x-window .x-window-tc .x-window-header{background-color:#f4f4f4;border-bottom:1px solid #f4f4f4;border-radius:3px 3px 0 0;color:#515151;font:normal 13px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;padding:8px;text-align:center}.x-window .x-window-tc .x-window-header-text{padding-left:24px}.x-window.x-panel-collapsed .x-window-tl{border-bottom:1px solid #dcdcdc}.x-window.x-panel-collapsed .x-window-header{border-radius:3px}.x-window .x-window-bwrap{overflow:visible}.x-window .x-window-bwrap .x-window-ml,.x-window .x-window-bwrap .x-window-mr{padding:0}.x-window .x-window-bwrap .x-window-mc{border:0;padding:0}.x-window .x-window-bwrap .x-window-mc .x-panel-bl,.x-window .x-window-bwrap .x-window-mc .x-panel-mc,.x-window .x-window-bwrap .x-window-mc .x-panel-ml,.x-window .x-window-bwrap .x-window-mc .x-panel-mr,.x-window .x-window-bwrap .x-window-mc .x-panel-tl{background:#0000;border:0;padding:0}.x-window .x-window-body{background-color:#fff!important;border:0;overflow-y:auto;padding:15px}.x-window.modx-window .x-window-body{padding-top:0}.x-window.modx-window.modx-alert .x-window-body,.x-window.modx-window.modx-confirm .x-window-body,.x-window.modx-window.modx-console .x-window-body,.x-window.modx-window .x-window-with-tabs .x-window-body{padding-top:15px}.x-window.modx-window .x-window-tc .x-window-header-text{padding-left:64px}.x-window .x-panel-bwrap{background:#fff;padding:0}.x-window .x-panel-bwrap .x-panel-bwrap{background:#0000;box-shadow:none;overflow:visible;padding:0}.x-window .x-window-with-tabs .x-window-body{background-color:#fbfbfb!important;overflow:visible}.x-window .x-window-with-tabs .x-panel-bwrap{background:#0000;box-shadow:none;overflow:visible;padding:0}.x-window form.x-panel-body:first-of-type{overflow:visible!important}.x-window .modx-tabs .x-tab-panel-header .x-tab-strip-wrap{padding-top:3px}.x-window .modx-tabs .x-tab-panel-header .x-tab-strip-wrap .x-tab-strip{border:0}.x-window .x-tab-panel-bwrap{background:#fff;box-shadow:0 4px 6px #00000026;padding:10px}.x-window .x-tab-panel-bwrap .x-tab-panel-body{overflow-y:auto}.x-window .x-tab-panel-bwrap .x-tab-panel-body .modx-panel .x-panel-bwrap,.x-window .x-window-bl,.x-window .x-window-br{padding:0}.x-window .x-window-bc .x-window-footer{background-color:#fff;border-radius:0 0 3px 3px;border-top:1px solid #fff;box-sizing:border-box;padding:5px 15px 15px;width:100%!important}.x-window.x-window-maximized{margin:0}.x-window.x-window-maximized .x-window-mc,.x-window.x-window-maximized .x-window-tc{padding:0}.x-window.modx-console .modx-console-text{background-color:#fff;border:none;font:12px SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;height:auto!important}.x-window.modx-console .debug{color:#515151}.x-window.modx-console .success{color:#6cb24a}.x-window.modx-console .warn{color:#4a90e2}.x-window.modx-console .error{color:#cf1124}.x-progress-wrap{border:1px solid #6cb24a;width:100%!important}.x-progress-wrap .x-progress-inner{background-color:#fdfefd}.x-progress-wrap .x-progress-bar{background-color:#6cb24a;border:0}.x-progress-wrap .x-progress-text{color:#fff;font-size:11px;font-weight:700}.x-progress-wrap .x-progress-text-back{color:#515151}.ext-el-mask{background-color:#fff;filter:alpha(opacity=0);opacity:0;transition:opacity .25s}.ext-el-mask.fade-in,.x-masked .ext-el-mask{filter:alpha(opacity=50);opacity:.5}.x-masked .ext-el-mask{z-index:9}.ext-mb-icon{display:inline-block;float:left;position:relative;width:40px!important}.ext-mb-icon:before{color:#4a90e2;content:"";font-size:32px;position:absolute;right:0;text-align:left;top:50%;transform:translateY(-50%);width:100%}.ext-mb-icon.ext-mb-info:before{color:#4a90e2;content:"\f05a"}.ext-mb-icon.ext-mb-question:before{color:#4a90e2;content:"\f059"}.ext-mb-icon.ext-mb-warning:before{color:#f0b429;content:"\f071"}.ext-mb-icon.ext-mb-error:before{color:#cf1124;content:"\f057"}.ext-mb-content{display:block;margin-left:0!important}.ext-el-mask-msg{background-color:#fff;border:1px solid #dcdcdc;border-radius:3px;box-shadow:0 4px 6px #00000026;padding:5px;z-index:10}.ext-el-mask-msg div{background-color:initial;border:0;color:#515151;cursor:default;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.ext-el-mask-msg .modx-lockmask div{color:#cf1124}.x-mask-loading div{background-image:url(../images/modx-theme/grid/loading.gif)}.dashboard{display:flex;flex-flow:row wrap;margin:-.5rem 0 0 -1rem!important;padding:0 15px}.dashboard .dashboard-button{background:#fff;border:1px solid #0000;border-radius:3px;display:inline-block;padding:5px 20px;text-decoration:none}.dashboard .dashboard-button-green{background:#6cb24a;border-color:#6cb24a;color:#fff}.dashboard .dashboard-button[disabled]{background-color:#e4e4e4}.dashboard .dashboard-button:not([disabled]):hover{border-color:#e4e4e4}.dashboard .dashboard-block{margin:1rem 0 0 1rem}.dashboard .dashboard-block:not(.headless){background-color:#fff;border-radius:3px}.dashboard .dashboard-block.headless .body{max-height:100%;overflow:visible;padding:0}.dashboard .dashboard-block.quarter{width:calc(25% - 1rem)}.dashboard .dashboard-block.one-third{width:calc(33.33332% - 1rem)}.dashboard .dashboard-block.half{width:calc(50% - 1rem)}.dashboard .dashboard-block.two-thirds{width:calc(66.66668% - 1rem)}.dashboard .dashboard-block.three-quarters{width:calc(75% - 1rem)}.dashboard .dashboard-block.full{width:calc(100% - 1rem)}.dashboard .dashboard-block.double{margin-top:2rem;min-height:250px;width:calc(100% - 1rem)}.dashboard .dashboard-block.double .body{height:100%;max-height:100%}.dashboard .dashboard-block.double .dashboard-buttons{height:100%}.dashboard .dashboard-block.double .dashboard-button{align-items:center}.dashboard .dashboard-block h4{color:#515151;font-size:13px;padding-bottom:2px}.dashboard .dashboard-block em{font-style:italic}.dashboard .dashboard-block strong{font-weight:700}.dashboard .dashboard-block ul{list-style:circle outside;padding:0 0 0 15px}.dashboard .dashboard-block img{max-width:100%}.dashboard .dashboard-block .draggable{cursor:move}.dashboard .dashboard-block .action-buttons{margin-left:auto;margin-right:10px}.dashboard .dashboard-block .action-buttons button{background:#0000;border:none;cursor:pointer;opacity:0}.dashboard .dashboard-block .action-buttons button.hidden{display:none}.dashboard .dashboard-block .body{color:#444;font-size:12px;height:auto;max-height:300px;overflow:auto;padding:10px;position:relative}.dashboard .dashboard-block .body .action-buttons{position:absolute;right:-5px;top:20px}.dashboard .dashboard-block .title-wrapper{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;flex-wrap:nowrap}.dashboard .dashboard-block .title-wrapper .title{zoom:1;background:#fff;border-radius:3px;color:#515151;flex-grow:1;font-size:12px;font-weight:700;margin:0;padding:15px 10px}.dashboard .dashboard-block .actions button{height:10px;width:10px}.dashboard .dashboard-block:hover .action-buttons button{opacity:1}.dashboard ul.configcheck{list-style-type:none;padding:0}.dashboard ul.configcheck li{background-color:#fbfbfb;margin-bottom:.5em;margin-top:.5em;padding:1em 1.618em}.dashboard ul.configcheck li h5{color:#cf1124}.dashboard ul.configcheck li p{color:#515151}.dashboard .news_article{border-bottom:1px solid #dfdfdf;overflow:hidden;padding:15px 0}.dashboard .news_article h2 a{text-decoration:none}.dashboard .news_article h2{font-size:18px}.dashboard .news_article .date_stamp{float:right;font-size:12px;font-style:italic}.dashboard .configcheck a,.dashboard .news_article a{text-decoration:underline}.dashboard .configcheck a:hover,.dashboard .news_article a:hover{text-decoration:none}.dashboard .table-wrapper{overflow:auto;width:100%}.dashboard .table-wrapper table{border:1px solid #ddd;border-radius:5px;width:100%}.dashboard .table-wrapper table th{border-bottom:2px solid #f0f0f0;font-weight:700;padding:10px;text-align:initial}.dashboard .table-wrapper table td{border-bottom:1px solid #f0f0f0;padding:10px;vertical-align:center;white-space:nowrap}.dashboard .table-wrapper table td .unpublished{color:#999;font-style:italic}.dashboard .table-wrapper table td .deleted{color:#af5a6280!important;text-decoration:line-through}.dashboard .table-wrapper table tr:last-child td,.dashboard .table-wrapper table tr:last-child td tr:last-child td{border:none}.dashboard .table-wrapper table tr:last-child td tr:last-child td:first-child{border-bottom-left-radius:10px}.dashboard .table-wrapper table tr:last-child td tr:last-child td:last-child{border-bottom-right-radius:10px}.dashboard .widget-footer{border-top:1px solid #f0f0f0;padding-top:10px}.dashboard .widget-footer a{display:block;font-size:14px;padding-bottom:5px;padding-top:5px;text-align:center;text-decoration:none}.dashboard .widget-actions a{border:1px solid #e4e4e4;border-radius:3px;display:inline-block;margin-left:5px;padding:3px 5px;text-decoration:none}.dashboard .widget-actions a:first-child{margin-left:0}.dashboard .widget-actions a:hover{background:#f0f0f0}.dashboard .widget-actions a .icon{display:inline-block;height:12px;text-align:center;width:12px}.dashboard .no-results{color:#999;padding:10px;text-align:center}.dashboard .user-with-avatar{align-items:center;display:flex}.dashboard .user-with-avatar .user-avatar{margin:0 10px}.dashboard .user-with-avatar .user-avatar img{border-radius:50%;width:35px}.dashboard .user-with-avatar .user-name{color:#234368;font-weight:500}.dashboard .user-with-avatar .user-group{color:#999}.dashboard .occurred-date,.dashboard .resource .title{color:#234368;font-weight:500}.dashboard .occurred-time{color:#999}#modx-news-feed-container img{max-width:100%}.dashboard-buttons{display:flex;flex-wrap:wrap;justify-content:center;margin:-1rem 0 0 -1rem;width:calc(100% + 1rem)}.dashboard-buttons .dashboard-button{align-items:center;background-color:#fff;border-radius:3px;color:#53595f;display:flex;flex:1;margin:1rem 0 0 1rem;padding:20px;text-decoration:none}.dashboard-buttons .dashboard-button:hover{color:#000}.dashboard-buttons .dashboard-button:hover .icon{opacity:.7}.dashboard-buttons .dashboard-button-icon{background:#6cb24a33;border:1px solid #6cb24a;border-radius:20px;padding:10px;text-align:center}.dashboard-buttons .dashboard-button-icon .icon{color:#6cb24a;display:block;font-size:16px;font-weight:700;height:16px;text-align:center;width:16px}.dashboard-buttons .dashboard-button-wrapper{padding:0 10px}.dashboard-buttons .dashboard-button-title{font-weight:700}::-webkit-scrollbar,::-webkit-scrollbar-thumb{background-color:initial;border:.25rem solid #0000;border-radius:.5rem;height:1rem;width:1rem}::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem #556c881a}::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 1rem #556c8833}::-webkit-resizer,::-webkit-scrollbar-corner{background-color:initial}.updates-widget .updates-title{color:#234368;font-weight:500}.updates-widget .updates-updateable{background:#4a90e2;border-radius:20px;color:#fff;display:inline-block;font-weight:700;padding:2px 8px}.updates-widget .updates-available,.updates-widget .updates-ok{border-radius:3px;color:#fff;font-size:10px;padding:3px 8px;text-transform:uppercase}.updates-widget .updates-ok{background:#6cb24a}.updates-widget .updates-available{background:#cf1124}#modx-panel-system-info .x-form-label-left .x-form-item{padding:0 5px}#modx-panel-system-info .x-form-label-left .x-form-item:nth-child(2n){background:#f0f0f0}#modx-panel-system-info .x-form-label-left .x-form-item .x-form-display-field{padding:7px 0}@media screen and (max-width:960px){.dashboard-buttons .dashboard-button{align-items:center;flex-direction:column;flex-wrap:wrap;text-align:center}.dashboard-buttons .dashboard-button-wrapper{margin-left:0;margin-top:5px}.dashboard .dashboard-block.half,.dashboard .dashboard-block.one-third,.dashboard .dashboard-block.quarter,.dashboard .dashboard-block.two-thirds{width:calc(100% - 1rem)}.dashboard-buttons{flex-wrap:wrap}.dashboard-buttons .dashboard-button{padding:10px}.dashboard-buttons .dashboard-button-wrapper{display:none}}.nobg .x-panel-body{background:#0000;padding-right:1.5em}#managerbuttons{margin-bottom:1em;overflow:hidden;width:100%}#managerbuttons ul:after,#managerbuttons ul:before{content:" ";display:table}#managerbuttons ul:after{clear:both}#managerbuttons ul{*zoom:1;margin:0;width:100%}#managerbuttons ul li{box-sizing:border-box;display:table;float:left;margin:0;padding:0 1%;position:relative;width:20%}#managerbuttons ul li:first-child{padding-left:0}#managerbuttons ul li:last-child{padding-right:0}#managerbuttons ul li a{background-color:#fff;border:1px solid #e4e4e4;border-radius:3px;box-shadow:0 1px 0 #e4e4e4;color:#53595f;display:table-cell;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;padding:12px;position:relative;text-align:center;text-decoration:none;vertical-align:middle}#managerbuttons ul li a span{display:block;line-height:1.4}#managerbuttons ul li a span.headline{font-size:12px}#managerbuttons ul li a span.subline{font-weight:400}#managerbuttons ul li a span.icon{display:block;margin:0 auto;padding:0 0 10px;width:auto}#managerbuttons ul li a:hover span.icon{color:#234368}#contactus,#helpBanner{background:#fff;border:1px solid #e4e4e4;box-shadow:0 1px 0 #e4e4e4;box-sizing:border-box;margin:.75em 0 1.75em;padding:18px;width:100%}#contactus h3,#helpBanner h3{margin:0 0 1em}#helpBanner{background-attachment:none;background-image:url(../images/modx-logo-color.svg),none;background-position:97%;background-repeat:no-repeat;background-size:200px;margin-top:1.5em;min-height:112px}#helpBanner #helpLogo{float:right;height:76px;margin-right:1em;width:200px}#contactus{box-sizing:border-box;float:left;width:60%}#contactus form{display:inline}#contactus input[type=email]{box-sizing:border-box;font-size:1.1em;margin-right:4px;padding:.4em;width:70%}#contactus input[type=submit]{border:0;cursor:pointer;font-size:1.1em;padding:6px 10px}#contactus p{color:#132539;margin:1em 0}#contactus form+p{margin:2em 0 0}#contactus a{color:#000;text-decoration:none}#contactus a:hover{text-decoration:underline}#contactus a:hover i{text-decoration:none}#contactus a i{margin:0 15px -6px 0}#mcsignup input.x-btn{padding:10px 15px}.icon.icon-2x{text-align:center;vertical-align:text-bottom;width:22px}#aboutMODX{background:#f0f0f0;box-sizing:border-box;float:left;margin:1em 0 0 2%;min-height:300px;padding:1em;width:38%}#aboutMODX p{line-height:1.6;margin:0 0 1em}#aboutMODX a{color:#234368;margin:-2px -4px;padding:2px 4px}#aboutMODX a:hover{background-color:#234368;color:#fff;text-decoration:none}.trashrow{background-color:#ccc!important}.x-btn-purge-all{color:#cf1124}.x-btn-purge-all:hover{background:#cf1124;box-shadow:0 0 0 1px #cf1124;color:#fff}.x-btn-restore-all{color:#6cb24a}.x-btn-restore-all:hover{background:#6cb24a;box-shadow:0 0 0 1px #6cb24a;color:#fff}#changelog-tab p{margin-bottom:.3rem}#changelog-tab h1{color:#595959}#changelog-tab h2{font-weight:700;margin-top:1rem}#changelog-tab ul{margin-bottom:1rem}#modx-package-browser-details-main p{color:#595959;margin-bottom:.3rem}#modx-package-browser-details-main h1,#modx-package-browser-details-main h2,#modx-package-browser-details-main h3,#modx-package-browser-details-main h4,#modx-package-browser-details-main h5,#modx-package-browser-details-main h6{color:#595959;font-weight:700}#modx-package-browser-details-main h1{font-size:1.2em}#modx-package-browser-details-main h2{font-size:1.15em}#modx-package-browser-details-main h3{font-size:1.1em}#modx-package-browser-details-main h4{font-size:1.05em}#modx-package-browser-details-main h5{font-size:1em}#modx-package-browser-details-main h6{font-size:.95em}#modx-package-browser-details-aside h4{text-align:center}#modx-package-browser-details-aside ul li{margin-bottom:.5em}body{-webkit-font-smoothing:antialiased;color:#000;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;scrollbar-color:#e1e3e6 #0000}body a{color:#234368}body a:hover{color:#162a42}h2,h3{color:#515151;font:normal 25px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0 0 8px -1px}h3{font:550 15px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}strong{font-weight:700}em{font-style:italic}hr{background-color:#e4e4e4;border:0;color:#e4e4e4;height:1px;margin:20px 0}.aleft{text-align:left}.aright{text-align:right}.right{float:right}.left{float:left}.clear{clear:left}.bold{font-weight:700}.installed{color:#515151}.not-installed{color:#999;font-style:italic}.yellow{color:#fce588!important}.orange{color:#f0b429!important}.error,.red{color:#cf1124!important}.green{color:#6cb24a!important}.blue{color:#4a90e2!important}.primary{color:#6cb24a!important}.centered{text-align:center}.wait{background:#0000 url(../images/style/wait.gif) no-repeat scroll center 55px;color:#53595f;font-size:15px;font-weight:700;padding:20px 10px 60px}.padding{background-color:#fff;padding:11px}.dashed{border-bottom:1px dashed #90b1b9}.x-form-text,textarea.x-form-field{border-color:#e4e4e4}#modx-content,#modx-leftbar{position:absolute;transition:left .2s ease}#modx-leftbar-tabpanel{transition:all .6s ease}#modx-content{left:370px;right:0;width:calc(100% - 370px)}.modx-form p{padding-bottom:10px}.x-layout-mini{left:2px}#modx-resource-content .x-panel-header{margin:0;padding:15px}#modx-resource-content .x-panel-bwrap{border:0}#modx-resource-content .modx-tv .modx-tv-label{clear:none;float:none;padding:15px 0 4px;position:static;width:auto}#modx-content-above .x-panel-bwrap,#modx-content-below .x-panel-bwrap{border:0}.x-tab-panel-header,.x-tab-panel-header .x-tab-strip li{box-sizing:border-box}@media screen and (max-width:960px){.x-viewport{overflow-y:auto}.x-viewport body{height:auto}}#modx-container{background:#f1f1f1;height:100%;width:100%}@media screen and (max-width:960px){#modx-container{height:auto}}@media screen and (max-width:1140px){#modx-page-settings-left,#modx-page-settings-right,#modx-resource-main-left,#modx-resource-main-right{box-sizing:border-box;margin:0 auto 15px;width:100%!important}#modx-page-settings-left .x-panel-body,#modx-page-settings-right .x-panel-body,#modx-resource-main-left .x-panel-body,#modx-resource-main-right .x-panel-body{height:auto!important;max-height:100%!important;max-width:100%!important;width:auto!important}}@media screen and (max-width:960px){#modx-chunk-form .main-wrapper,#modx-panel-plugin .main-wrapper,#modx-snippet-form .main-wrapper,#modx-template-form .main-wrapper,#modx-tv-tabs .main-wrapper{padding:0;width:100%!important}#modx-chunk-form .main-wrapper>.x-panel-bwrap,#modx-panel-plugin .main-wrapper>.x-panel-bwrap,#modx-snippet-form .main-wrapper>.x-panel-bwrap,#modx-template-form .main-wrapper>.x-panel-bwrap,#modx-tv-tabs .main-wrapper>.x-panel-bwrap{padding:1em}#modx-resource-main-right{margin:15px auto 0}.x-toolbar-ct,.x-toolbar-ct tbody,.x-toolbar-ct tbody tr{display:block}.x-toolbar-ct tbody tr td{display:block;width:100%}.x-toolbar-ct tbody tr td table{width:100%}.x-toolbar-ct tbody tr td table .x-form-field-wrap{margin-left:0!important;margin-right:0!important;width:100%!important}.x-toolbar-ct tbody tr td table .x-btn,.x-toolbar-ct tbody tr td table .x-form-text{box-sizing:border-box;margin-left:0!important;margin-right:0!important;width:100%!important}.x-column{float:none;margin-left:0!important;margin-right:0!important;width:100%!important}#modx-tree-panel-usergroup .main-wrapper{display:inline-block;float:left;max-width:100%;position:relative;width:100%!important}.x-window{left:.5em!important;max-width:100%!important;right:.5em!important;width:auto!important}.x-window .x-window-body{box-sizing:border-box!important;height:auto!important;width:100%!important}.x-window .x-form-field-wrap{width:auto!important}.x-window input{box-sizing:border-box;height:auto!important;width:100%!important}}#modx-template-form .main-wrapper input{max-width:100%!important}@media screen and (max-width:960px){.x-column-inner>.x-column~.x-column{margin-left:0}#modx-import-base-path,.x-form-item label.x-form-item-label[for=modx-import-allowed-extensions],.x-form-item label.x-form-item-label[for=modx-import-base-path],.x-form-item label.x-form-item-label[for=modx-import-element],.x-form-item label.x-form-item-label[for=modx-import-parent],.x-form-item label.x-form-item-label[for=modx-import-resource-class]{float:none;width:auto!important}}#modx-import-allowed-extensions,#modx-import-base-path,#modx-import-element,#modx-import-resource-class{box-sizing:border-box;height:auto;width:100%!important}@media screen and (max-width:960px){#x-form-el-modx-import-allowed-extensions,#x-form-el-modx-import-base-path,#x-form-el-modx-import-element,#x-form-el-modx-import-resource-class{padding-left:0!important;width:100%!important}}.x-panel.drag-n-drop{z-index:0}.x-panel.drag-n-drop:before{background:#0000 url(../images/restyle/dragndrop.svg) no-repeat 50%;background-size:50% 50%;bottom:0;content:" ";display:block;left:0;opacity:.1;position:absolute;right:0;top:0;z-index:-5}.x-panel.drag-n-drop>.x-panel-bwrap,.x-panel.drag-over .x-form-field{background:#0000}.x-panel.drag-over:after{background:#6cb24a;border:5px solid #6cb24a;bottom:0;content:"";display:block;left:0;opacity:.1;position:absolute;right:0;top:0}#modx-panel-packages.drag-n-drop:before{background:#0000 url(../images/restyle/dragndrop.svg) no-repeat top;background-size:50% 30%;z-index:0}.x-panel-header{background:none;border:none;font-size:16px;margin:0;padding:0 0 10px}#modx-resource-tabs .x-panel-header{border-bottom:1px solid #e4e4e4;color:#515151;display:flex;margin-bottom:5px}#modx-resource-tabs .x-panel-header .x-panel-header-text{flex:1;font-size:14px;order:0}#modx-resource-tabs .x-panel-header .x-tool.x-tool-toggle{margin-left:auto;order:1}#modx-resource-main-left .x-panel-header{border-bottom:0;position:absolute;right:15px;z-index:9}#modx-resource-main-left .x-panel-header .x-panel-header-text{display:none}#modx-resource-main-left .x-panel-animated .x-panel-header,#modx-resource-main-left .x-panel-collapsed .x-panel-header{padding-top:15px!important;position:relative;right:0;width:100%}#modx-resource-main-left .x-panel-animated .x-panel-header .x-panel-header-text,#modx-resource-main-left .x-panel-collapsed .x-panel-header .x-panel-header-text{display:block}#modx-resource-tabs .x-panel-collapsed .x-panel-header{border-color:#0000;margin-bottom:0;padding:0}.x-small-editor .x-form-field{font-size:12px!important}.x-small-editor .x-form-num-field{text-align:left}.grid-row-inactive{color:#999!important}a.x-grid-link{color:#234368;text-decoration:underline}a.x-grid-link:focus,a.x-grid-link:hover{text-decoration:none}.x-editable-column{cursor:pointer}.x-editable-column:focus,.x-editable-column:hover{color:#234368}.x-editable-column:focus>div:after,.x-editable-column:hover>div:after{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;color:#234368;content:"\f304";display:inline-block;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Brands;font-style:normal;font-variant:normal;font-weight:900;margin:0 .5em}.x-grid-buttons{text-align:center}.x-grid-buttons li{cursor:pointer;display:inline-block;font-size:1.1em;line-height:.7;margin-right:10px}.x-grid-buttons li:last-child{margin-right:0}.x-grid-empty .error-with-icon{color:#cf1124;font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.3;padding:1rem}.x-grid-empty .error-with-icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;content:"\f071";display:inline-block;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Brands;font-style:normal;font-variant:normal;font-weight:900;margin-right:.5rem}.x-grid-empty .error-with-icon *{color:#09121c;line-height:1.6;text-align:left}.x-grid-empty .error-with-icon .error-status-info{margin:.25rem 0;text-align:center}.x-grid-empty .error-with-icon code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;white-space:pre-line}.xdebug-error{border:none}.xdebug-error tbody td,.xdebug-error tbody th{border-color:#dcdcdc;border-style:solid none none!important;border-width:thin!important;padding:.1rem .25rem}.xdebug-error tbody th{color:#000!important;font-weight:700}.xdebug-error tbody th:first{border-top:none!important}.xdebug-error tbody th[colspan="5"]{border-color:#fff;border-width:thick!important;padding:.5rem 2rem;text-align:center!important}.xdebug-error tbody th[bgcolor^="#f57"]{background:#fdf0f1;font-weight:400}.xdebug-error tbody th[bgcolor^="#e9b"]{background:#234368;color:#fff!important}.xdebug-error tbody td{background-color:#fff}.xdebug-error tbody tr:nth-child(2n) td{background-color:#f0f0f0}.modx-page-header,.modx-page-header div{background-color:initial!important}#modx-panel-trash .modx-page-header,#modx-panel-trash .modx-page-header div,#modx-panel-welcome .modx-page-header,#modx-panel-welcome .modx-page-header div{margin:1rem!important}@media screen and (min-width:961px){#modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header{box-sizing:border-box;margin-top:1.25rem}html[dir=rtl] #modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header{margin-top:4rem}#modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header+div{margin:1rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel{margin:0}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{box-sizing:border-box;font-size:18px;font-weight:700;margin-top:1.25rem;padding:0 15px}html[dir=rtl] #modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{margin-top:4rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs+div{margin:1rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{width:100%!important}}#modx-content form.x-panel-body{background-color:initial!important}@media screen and (max-width:960px){#modx-content{left:auto!important;position:relative;top:auto!important;width:auto!important}}#modx-content .modx_error{margin:26px 0 0 15px;width:95%}#modx-content .modx_error h2{margin:0 0 14px}#modx-content .modx_error .error_container{background:#f99;border:2px solid #cf1124;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;padding:10px}#modx-content .modx_error .error_container ul{list-style:none;margin-left:0;margin-top:6px}#modx-content .modx_error .error_container ul li{margin-bottom:6px}#modx-content .modx_error .error_container ul li:last-child{margin-bottom:0}#modx-content .modx_error .error_container.multiple p:first-child{font-size:1.4em;font-weight:700}@media screen and (max-width:960px){#modx-content .x-panel-body{height:auto!important;max-height:100%!important;max-width:100%!important;width:auto!important}}#modx-mainpanel{height:100%;position:relative}.x-portal .x-panel-dd-spacer,.x-portlet{margin-bottom:10px}.x-portlet .x-panel-ml{padding-left:2px}.x-portlet .x-panel-mr{padding-right:2px}.x-portlet .x-panel-bl{padding-left:2px}.x-portlet .x-panel-br{padding-right:2px}.x-portlet .x-panel-body{background:#fff}.x-portlet .x-panel-mc{padding-top:2px}.x-portlet .x-panel-bc .x-panel-footer{padding-bottom:2px}.x-portlet .x-panel-nofooter .x-panel-bc{height:2px}.x-portal-space h2{border-bottom:1px solid #d4d4d4;margin:0 0 8px;padding:0 0 2px}.x-column-tree .x-panel-header{border-bottom-width:0;padding:3px 0 0}.x-column-tree .x-panel-header .x-panel-header-text{margin-left:3px}.x-column-tree .x-tree-node,.x-column-tree .x-tree-node-el{zoom:1}.x-column-tree .x-tree-selected{background:#d9e8fb}.x-column-tree .x-tree-node a{line-height:18px;vertical-align:middle}.x-column-tree .x-tree-node .x-tree-selected a span{background:#0000;color:#515151}.x-tree-col{zoom:1;float:left;overflow:hidden;padding:0 1px}.x-tree-col-text,.x-tree-hd-text{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden;padding:3px 3px 3px 5px;text-overflow:ellipsis;white-space:nowrap}.x-tree-headers{zoom:1;cursor:default;margin-top:3px}.x-tree-hd{border-left:1px solid #eee;border-right:1px solid #d0d0d0;float:left;overflow:hidden}.ux-row-action-cell .x-grid3-cell-inner{padding:1px 0 0}.ext-ie .ux-row-action-item{width:16px}.ext-ie .ux-row-action-text{width:auto}.ux-row-action-item span{background:#0000 url(../images/style/go-next.png) no-repeat scroll 1px 4px;display:inline!important;line-height:24px;margin:0 5px;padding:5px 5px 5px 22px;vertical-align:middle}.icon-uninstall span{background:url(../images/style/delete.png) no-repeat scroll 1px 4px #0000}.package-details span{background:url(../images/style/info.png) no-repeat scroll 1px 4px #0000}.package-download span{background:url(../images/style/download.png) no-repeat scroll 1px 4px #0000}.package-installed span{background:url(../images/style/accept.png) no-repeat scroll 1px 4px #0000}.ext-ie .ux-row-action-item span{width:auto}.x-grid-group-hd div{height:16px;position:relative}.ux-grow-action-item{background-position:0 50%!important;background-repeat:no-repeat;cursor:pointer;float:left;margin:0;min-width:16px;padding:0!important}.ext-ie .ux-grow-action-item{width:16px}.ux-action-right{float:right;margin:0 3px 0 2px;padding:0!important}.ux-grow-action-text{background:#0000 none!important;float:left;margin:0!important;padding:0!important}.ux-row-action-item:hover{background:#dfdfdf;background:linear-gradient(center bottom,#dfdfdf 0,#fff);border:1px solid #9caf78;color:#636f4c!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=$white,endColorstr=$alto,GradientType=0)}.ux-row-action-item:active{background-color:#fff;background-image:none;border-color:#cfcfcf silver #aaa;box-shadow:inset 0 0 3px #aaa;margin:2px 1px 0}.ux-row-action-item:active span{text-shadow:none}.ux-row-action-item{background:linear-gradient(center bottom,#dcdcdc 0,#fcfcfc);background:url(/manager/templates/default/images/modx-theme/form/button-bg.png) repeat-x scroll 0 bottom #dcdcdc;border-collapse:initial;border-color:#cacaca silver #aaa;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 0 1px #0003;color:#444;cursor:pointer;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#fcfcfc,endColorstr=#dcdcdc,GradientType=0);float:left;font-weight:700;margin:2px 1px 0;overflow:hidden;padding:3px;position:relative;text-shadow:0 1px 0 #fafafa}.x-tree-checkbox{background:url(../../../assets/ext3/resources/images/default/form/checkbox.gif) no-repeat 0 0;height:13px;margin:0 1px;vertical-align:middle;width:13px}.x-tree-checkbox-over .x-tree-checkbox{background-position:-13px 0}.x-tree-checkbox-down .x-tree-checkbox{background-position:-26px 0}.x-tree-node-disabled .x-tree-checkbox{background-position:-39px 0}.x-tree-node-checked{background-position:0 -13px}.x-tree-checkbox-over .x-tree-node-checked{background-position:-13px -13px}.x-tree-checkbox-down .x-tree-node-checked{background-position:-26px -13px}.x-tree-node-disabled .x-tree-node-checked{background-position:-39px -13px}.x-tree-node-grayed{background-position:0 -26px}.x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px -26px}.x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px -26px}.x-tree-node-disabled .x-tree-node-grayed{background-position:-39px -26px}.x-tree-branch-unchecked .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-node-grayed{background-position:0 0}.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px 0}.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px 0}.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-node-grayed{background-position:-39px 0}.x-tree-branch-checked .x-tree-checkbox,.x-tree-branch-checked .x-tree-node-checked,.x-tree-branch-checked .x-tree-node-grayed{background-position:0 -13px}.x-tree-branch-checked .x-tree-checkbox-over .x-tree-checkbox,.x-tree-branch-checked .x-tree-checkbox-over .x-tree-node-checked,.x-tree-branch-checked .x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px -13px}.x-tree-branch-checked .x-tree-checkbox-down .x-tree-checkbox,.x-tree-branch-checked .x-tree-checkbox-down .x-tree-node-checked,.x-tree-branch-checked .x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px -13px}.x-tree-branch-checked .x-tree-node-disabled .x-tree-checkbox,.x-tree-branch-checked .x-tree-node-disabled .x-tree-node-checked,.x-tree-branch-checked .x-tree-node-disabled .x-tree-node-grayed{background-position:-39px -13px}.x-rbtn button{background-color:initial;background-position:50%;background-repeat:no-repeat;border:0;cursor:pointer;font-size:1px;height:16px;line-height:1px;margin:0;-moz-outline:0 none;outline:0 none;padding:0;width:24px}.x-rbtn{table-layout:fixed}.x-rbtn td{background-image:url(../images/restyle/icons/rbtn.gif);background-repeat:no-repeat;border:0;height:21px;padding:0;vertical-align:middle;width:24px}.x-rbtn td.x-rbtn-first{background-position:0 0}.x-rbtn td.x-rbtn-item{background-position:0 -42px}.x-rbtn td.x-rbtn-last{background-position:right -21px}.x-rbtn td.x-rbtn-first-active{background-position:0 -63px}.x-rbtn td.x-rbtn-item-active{background-position:0 -105px}.x-rbtn td.x-rbtn-last-active{background-position:right -84px}.ux-up-item{background-color:#f0f0f0;background-image:url(../../../assets/modext/util/filetree/img/white_bg.png);background-repeat:no-repeat;cursor:default;height:17px;line-height:17px;margin-bottom:1px;position:relative}.ux-up-icon-file{float:left;height:16px;margin-right:4px;vertical-align:-3px;width:16px}.ux-up-indicator{background-color:#ff0;filter:alpha(opacity=40);height:17px;opacity:.4;position:absolute;width:40px}.ux-up-icon-state{cursor:pointer;float:right;margin-right:2px;width:16px;z-index:-1}.ux-up-icon-queued{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/page_white_get.png)}.ux-up-icon-uploading{background-image:url(../../../../ext2/resources/images/default/grid/wait.gif)}.ux-up-icon-done{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/accept.png)}.ux-up-icon-failed{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/error.png)}.ux-up-icon-stopped{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/stop.png)}.ux-up-text{float:left}.ux-ftm-nodename{color:#515151;cursor:default!important;font-weight:700}.ux-icon-combo-icon{background-position:0 50%;background-repeat:no-repeat;height:14px;width:18px}.ux-icon-combo-input{padding-left:25px}.x-form-field-wrap .ux-icon-combo-icon{left:5px;top:3px}.ux-icon-combo-item{background-position:3px 50%!important;background-repeat:no-repeat!important;padding-left:24px!important}.modx-status-msg{background:#6cb24a;border-radius:3px;bottom:20px;box-sizing:border-box;color:#fff;max-width:360px;padding:15px 15px 15px 65px;position:fixed;right:15px;width:25%;z-index:20000}@media screen and (max-width:960px){.modx-status-msg{max-width:100%}}.modx-status-msg:before{position:relative}.modx-status-msg:after{background:#fff;border-radius:50%;color:#6cb24a;content:"\f00c";display:inline-block;font-size:16px;height:38px;left:15px;line-height:36px;margin-right:13px;position:absolute;text-align:center;top:15px;vertical-align:middle;width:38px}.modx-status-msg h3,.modx-status-msg span{font-size:14px}.modx-status-msg h3{color:#fff;margin:0}.modx-status-msg .has-position-center-center{bottom:auto;left:0;margin-left:auto;margin-right:auto;right:0;top:50%;transform:translateY(-50%)}.modx-status-msg .has-position-center-top{bottom:auto;left:0;margin-left:auto;margin-right:auto;right:0;top:15px}.modx-status-msg .has-position-right-top{bottom:auto;left:auto;right:15px;top:15px}@media screen and (max-width:960px){.modx-status-msg,.modx-status-msg .has-position-center-center,.modx-status-msg .has-position-center-top,.modx-status-msg .has-position-right-top{border-radius:0;bottom:0;left:0;right:0;top:auto;width:100%}}iframe[classname=x-hidden]{visibility:hidden}html[dir=rtl] .x-hide-offsets,html[dir=rtl] .x-hiden{left:unset;right:-9999px}.ext-ux-uploaddialog-addbtn{background:url(../images/restyle/fileup/file-add.gif) no-repeat 0!important}.ext-ux-uploaddialog-removebtn{background:url(../images/restyle/fileup/file-remove.gif) no-repeat 0!important}.ext-ux-uploaddialog-resetbtn{background:url(../images/restyle/fileup/reset.gif) no-repeat 0!important}.ext-ux-uploaddialog-uploadstartbtn{background:url(../images/restyle/fileup/upload-start.gif) no-repeat 0!important}.ext-ux-uploaddialog-uploadstopbtn{background:url(../images/restyle/fileup/upload-stop.gif) no-repeat 0!important}.ext-ux-uploaddialog-indicator-stoped{background:url(../images/restyle/fileup/done.gif) no-repeat 50%;height:16px;width:16px}.ext-ux-uploaddialog-indicator-processing{background:url(../images/restyle/fileup/loading.gif) no-repeat 50%;height:16px;width:16px}.ext-ux-uploaddialog-state{background-position:50%;background-repeat:no-repeat;text-align:center}.ext-ux-uploaddialog-state-0{background-image:url(../images/restyle/fileup/uncheck.gif)}.ext-ux-uploaddialog-state-1{background-image:url(../images/restyle/fileup/check.gif)}.ext-ux-uploaddialog-state-2{background-image:url(../images/restyle/fileup/failed.gif)}.ext-ux-uploaddialog-state-3{background-image:url(../images/restyle/fileup/file-uploading.gif)}.tq-treegrid .tq-treegrid-col{border:none}.tq-treegrid .tq-treegrid-icons{float:left}.tq-treegrid .x-tree-node-el{line-height:13px;padding:1px 3px 1px 5px}.tq-treegrid .tq-treegrid-static .x-tree-ec-icon{display:none}.tq-treegrid .tq-treegrid-static .x-tree-node-el{cursor:default}.modx-tree-load-msg{color:#000;font-size:.9em;line-height:1;padding:3px;white-space:pre-line}#modx-grid-policy-permissions .x-grid3-cell-inner,#modx-grid-policy-permissions .x-grid3-hd-inner,#modx-grid-template-permissions .x-grid3-cell-inner,#modx-grid-template-permissions .x-grid3-hd-inner{white-space:normal}.container{margin:20px 15px}.container,.x-plain-body,.x-plain-bwrap{overflow:visible}.shadowbox,.x-form-label-left{border-radius:3px}.shadowbox .x-form-label-left,.x-form-label-left .x-form-label-left,.x-tab-panel-bwrap .shadowbox,.x-tab-panel-bwrap .x-form-label-left,.x-window .shadowbox,.x-window .x-form-label-left{border-radius:0;box-shadow:none}.panel-desc{border-bottom:1px solid #f0f0f0;border-radius:0;color:#53595f;line-height:1.5;padding:15px!important}.x-window .panel-desc{margin-bottom:15px;margin-top:0}.panel-desc .x-panel-bwrap{background-color:initial!important}.with-title .panel-desc{margin:0}.panel-desc p{padding:0}.main-wrapper{background-color:#fff;padding:15px}.with-title .main-wrapper{padding:0 15px 10px}.left-col{padding-right:15px}.right-col{padding-left:15px}.modx-page-header{color:#53595f;font:normal 20px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;order:1;padding:0 15px}@media screen and (max-width:960px){.modx-page-header{font-size:2em;text-align:center;width:100%}}.modx-header-breadcrumbs .breadcrumbs{align-items:baseline;display:flex;flex-wrap:wrap}.modx-header-breadcrumbs .breadcrumbs h2{color:#53595f;font:normal 20px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0!important;order:1;padding-left:0}@media screen and (max-width:960px){.modx-header-breadcrumbs .breadcrumbs h2{font-size:2em;text-align:center;width:100%}}.modx-header-breadcrumbs ul{align-items:center;display:flex;flex-wrap:wrap;order:0}.modx-header-breadcrumbs ul li{color:#53595f}.modx-header-breadcrumbs ul li,.modx-header-breadcrumbs ul li a{font:normal 18px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.modx-header-breadcrumbs ul li a{text-decoration:none}.modx-header-breadcrumbs ul li a.menu_hidden{font-style:italic}.modx-header-breadcrumbs ul li a.menu_hidden:hover{color:#162a42}.modx-header-breadcrumbs ul li a.not_published{color:#b3b3b3!important}.modx-header-breadcrumbs ul li a.not_published:hover{color:#162a42}.modx-header-breadcrumbs ul li a.deleted{color:#af5a6280!important;text-decoration:line-through}.modx-header-breadcrumbs ul li a.deleted:hover{color:#162a42}.modx-header-breadcrumbs ul li:after{color:#999;content:"\f054";font-size:12px;padding:0 10px}#modx-abtn-delete{color:#cf1124}#modx-abtn-undelete{color:#6cb24a}#modx-abtn-help{color:#234368}#modx-resource-tabs .x-tab-panel-bwrap{box-shadow:none}#modx-resource-tabs .x-tab-panel-body,#modx-resource-tabs .x-tab-panel-bwrap{overflow:visible!important}#modx-resource-settings{background:#f1f1f1}#modx-resource-settings #modx-resource-main-left{background:#fff;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px;padding:15px;position:relative}#modx-resource-settings .x-panel-collapsed{min-height:18px}#modx-resource-settings #modx-resource-main-right .modx-resource-panel{background:#fff;border-radius:3px;padding:15px}#modx-resource-settings #modx-resource-main-right .modx-resource-panel:not(:last-child){margin-bottom:15px}#modx-resource-settings .main-wrapper{background:#0000;padding:0}#modx-resource-settings .x-datetime-wrap table{width:100%}#modx-resource-settings .x-datetime-wrap table td{max-width:50%!important;width:50%!important}#modx-resource-settings .x-datetime-wrap table td input{width:calc(100% - 30px)}#modx-resource-settings .x-datetime-wrap table td:first-child{padding-right:5px!important}#modx-resource-settings .x-datetime-wrap table td:last-child{padding-left:5px!important}#modx-resource-settings .x-datetime-wrap table .x-form-field-trigger-wrap{width:100%!important}.tvs-wrapper{padding:0}#modx-resource-tvs-div{border-top-width:0;visibility:hidden}.modx-permissions-list{color:#777;font-size:12px}.modx-permissions-list-textarea{background-color:initial!important;border:0!important}.info-list.hide-list{display:none}.info-list .header{color:#626262;font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:600}.info-list .header:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;color:#517196;content:"\f09c";display:inline-block;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Brands;font-style:normal;font-variant:normal;font-weight:900;margin:0 .25rem}.info-list .header span{font-weight:400}.info-list ul{border:1px dashed #e4e4e4;border-radius:3px;margin-top:.5rem;padding:.5rem}.info-list ul li{color:#6b6b6b;font:normal 12px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1;padding:.15rem 0;word-break:break-word}@media screen and (min-width:641px){.info-list ul{-moz-columns:2;column-count:2;-moz-column-gap:2rem;column-gap:2rem}}.x-window .info-list{margin-top:1rem}.x-grid3 .info-list ul{background-color:#fcfbfb;padding-left:1rem;position:relative}.x-grid3-row-alt .x-grid3 .info-list ul{background-color:#f9faff}.x-grid3 .info-list ul:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;background-color:#fff;border-radius:100%;box-shadow:-1px 1px 3px #888;color:#517196;content:"\f09c";display:inline-block;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Brands;font-size:11px;font-style:normal;font-variant:normal;font-weight:900;height:14px;left:-7px;padding-top:2px;position:absolute;text-align:center;top:-7px;width:14px}.x-grid3 .info-list ul li{font-style:italic}@media screen and (min-width:769px){.x-grid3 .info-list ul{-moz-columns:3;column-count:3}}@media screen and (min-width:1141px){.x-grid3 .info-list ul{-moz-columns:4;column-count:4}}@media screen and (min-width:1401px){.x-grid3 .info-list ul{-moz-columns:5;column-count:5}}.x-selectable,.x-selectable *{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important}#ux-lightbox{left:0;line-height:0;position:absolute;text-align:center;width:100%;z-index:15000}#ux-lightbox img{height:auto;width:auto}#ux-lightbox a img{border:none}#ux-lightbox-outerImageContainer{background-color:#fff;height:250px;margin:0 auto;position:relative;width:250px}#ux-lightbox-imageContainer{padding:10px}#ux-lightbox-loading{background:url(../images/style/loading.gif) no-repeat scroll center 15% #0000;height:25%;left:0;line-height:0;position:absolute;text-align:center;top:40%;width:100%}#ux-lightbox-hoverNav{height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}#ux-lightbox-hoverNav a{outline:medium none}#ux-lightbox-imageContainer>#ux-lightbox-hoverNav{left:0}#ux-lightbox-navNext,#ux-lightbox-navPrev{display:block;height:100%;width:49%}#ux-lightbox-navPrev{float:left;left:0}#ux-lightbox-navPrev:hover,#ux-lightbox-navPrev:visited:hover{background:#0000 url(images/lb-prev.png) no-repeat scroll left 33%}#ux-lightbox-navNext{float:right;right:0}#ux-lightbox-navNext:hover,#ux-lightbox-navNext:visited:hover{background:#0000 url(images/lb-next.png) no-repeat scroll right 33%}#ux-lightbox-outerDataContainer{margin:0 auto;width:100%}#ux-lightbox-dataContainer{background-color:#fff;font:normal 11px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:10px;overflow:auto}#ux-lightbox-data{color:#666;padding:0 10px}#ux-lightbox-data #ux-lightbox-details{float:left;text-align:left;width:80%}#ux-lightbox-data #ux-lightbox-caption{font-weight:700}#ux-lightbox-data #ux-lightbox-imageNumber{clear:left;display:block;padding-bottom:1em}#ux-lightbox-data #ux-lightbox-navClose{background:#0000 url(../images/style/close.png) no-repeat scroll 0 0;float:right;height:16px;outline:medium none;padding-bottom:.7em;width:16px}#ux-lightbox-overlay,#ux-lightbox-shim{background-color:#515151;border:0;height:500px;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:14999}#ux-lightbox-shim{background-color:initial;z-index:89}.x-panel-body-noheader .x-grid3-row{position:relative}.x-grid3-col-main{padding:10px 5px 35px}.x-grid3-cell-inner .x-grid3-col-main h3{color:#555;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:20px;line-height:1;margin:0 0 5px}.package-installed{color:#515151;filter:alpha(opacity=50);opacity:.5}#modx-grid-package .green{text-align:center}#modx-grid-package .green a{color:#cf1124!important}#modx-grid-package .red{color:#6cb24a!important;text-align:center}.grid-with-buttons .x-grid3-row-expanded .x-grid3-row-body{margin:-45px 2px 0 -20px;padding:18px 25px 40px}.home-panel ol{border-top:1px solid #cacaca}.home-panel ol li{border-bottom:1px solid #e0e0e0}.home-panel ol li:first-child{border-top-color:0 none}.home-panel ol li:last-child{border-bottom:0}.home-panel ol li button{background-color:initial;border:0;color:#53595f;cursor:pointer;display:block;font-size:15px;font-weight:700;padding:12px 20px 12px 6px;position:relative;text-decoration:none}.home-panel ol li:hover button{color:#234368}.home-panel ol li:hover button:before{content:"\f002";filter:alpha(opacity=60);font-size:14px;margin-top:-7px;opacity:.6;position:absolute;right:0;text-align:center;top:50%;transition:opacity .25s;width:20px}.home-panel ol li .highlighted{color:#909090;float:right;font-size:10px;padding:13px 10px 0}.home-panel ol li button .ct{color:#aaa;margin-right:10px}.home-panel .one_half{overflow:hidden}.home-panel .desc-wrapper{margin-top:38px}.home-panel .text-wrapper{font-style:normal;max-height:none}.home-panel .provider_name{background-color:#9bb3bf;line-height:1.8}.home-panel .pnl_instructions{margin:20px 0}.home-panel .stats{clear:both;display:inline-block;margin-top:15px}.home-panel .stats p{color:#777;font-size:12px;font-style:italic;line-height:1.5}.pbr-provider-box{float:left;margin-top:10px;width:250px}.pbr-provider-home,.pbr-repository-view,.pbr-tag-view{padding:10px}.pbr-details-right{float:right!important;text-align:right!important}.pbr-thumb-downloaded{filter:alpha(opacity=50);opacity:.5}.one_half{float:left;margin-right:3%;position:relative;width:48%}.last{clear:right;margin-right:0!important}.package-readme{padding:8px 11px 0}#modx-package-browser-home{margin-top:5px;min-height:560px}.empty-text-wrapper{color:#888;font-weight:700;line-height:1.4;padding:12px}.aside-details{background-color:initial;border:1px solid #e4e4e4;border-radius:3px;margin-right:0}.aside-details .selected h5{color:#53595f;font-size:14px;margin:10px 0}.aside-details .selected img{border:1px solid #e4e4e4;border-radius:3px;height:80px;width:90px}.aside-details .item{margin-bottom:25px}.aside-details .item li,.aside-details .item p{color:#888;line-height:1.4}.aside-details .item a{color:#53595f;font-style:italic}.aside-details h4{color:#53595f;font-size:14px;margin:10px 0;text-transform:uppercase}.aside-details .aside-details h4{font-size:12px;margin-top:0}.aside-details .selected{border-bottom:1px solid #e4e4e4;color:#000;padding:15px;text-align:center}.aside-details .description,.aside-details .instructions{background-color:#fbfbfb}.aside-details .description,.aside-details .infos,.aside-details .instructions{color:#53595f;font-size:12px;line-height:1.2;padding:15px}.aside-details .infos ul li{font-size:12px}.aside-details .infos ul li .infoname{color:#999;font-weight:700;width:50%}.aside-details .infos ul li .infovalue{word-wrap:break-word;max-width:50%;padding:0 8px}.aside-details .infos ul li span{display:inline-block;padding:0}.thumb-wrapper{background-color:#f5f5f5;border:1px solid #ccc;border-radius:3px;cursor:pointer;float:left;margin:0 15px 15px 0;overflow:hidden;padding:0 0 12px;position:relative;width:250px}.thumb-wrapper,.thumb-wrapper *{box-sizing:border-box}.thumb-wrapper .thumb{background-color:#fff;border-bottom:1px solid #ccc;height:170px;margin:0 auto;position:relative;text-align:center;width:100%}.thumb-wrapper .thumb img{max-height:100%;max-width:100%}.thumb-wrapper .thumb .no-preview{color:#888;display:inline-block;font-size:9px;font-weight:700;padding:31px 15px;text-align:center;text-transform:uppercase}.thumb-wrapper span.downloaded,.thumb-wrapper span.featured{background-color:#6cb24a;color:#fff;font-weight:700;padding:5px 0;position:absolute;text-align:center;text-shadow:none;top:68px;width:100%}.thumb-wrapper span.featured{background-color:#234368;bottom:0;color:#fff;top:auto}.thumb-wrapper span{display:block;margin:0;overflow:hidden;text-align:left;text-overflow:ellipsis;text-shadow:0 1px 0 #fff;white-space:nowrap}.thumb-wrapper .name{color:#53595f;float:left;font-size:12px;font-weight:700;padding:12px 8px 12px 12px;width:55%}.thumb-wrapper .downloads{color:#999;float:right;font-size:9px;padding:8px 12px 8px 8px;text-align:right;text-transform:uppercase;width:45%}.thumb-wrapper .thumb-description{clear:both;font-size:12px;height:50px;overflow:hidden;padding:0 12px}.thumb-wrapper .thumb-footer{color:#999;font-size:9px;padding:8px 12px 0;text-align:center;text-transform:uppercase}.thumb-wrapper.selected{background-color:#fff;border-color:#234368;padding:0 0 12px}.thumb-wrapper.selected img{border:0}.pbr-thumb{background:#dfdfdf;padding:3px}.pbr-thumb,.pbr-thumb img{height:80px;width:100px}.x-grid3-hd-info-col,.x-grid3-hd-meta-col,.x-grid3-hd-text-col{text-align:center}.x-grid3-col-text-col{font-size:11px;text-align:center}.x-grid3-col-info-col,.x-grid3-col-meta-col{font-size:11px;font-weight:700;text-align:center}.x-grid3-col-meta-col{color:#53595f}.x-grid3-col-info-col{color:#6cb24a}.not-installed .x-grid3-col-info-col{color:#cf1124}.inline-button{-webkit-box-align:center;display:inline;margin:0 auto;padding:8px;text-align:center}.meta-wrapper{word-wrap:break-word;color:grey;max-height:400px;overflow:auto;padding:15px}.meta-wrapper ul{list-style:disc inside;padding-left:15px}.meta-wrapper h1{font-size:1.2em}.meta-wrapper h2{font-size:1.15em}.meta-wrapper h3{font-size:1.1em}.meta-wrapper h4{font-size:1.05em}.meta-wrapper h5{font-size:1em}.meta-wrapper h6{font-size:.95em}.window-no-padding .x-panel-mc,.window-no-padding .x-panel-ml,.window-no-padding .x-panel-mr{padding:0!important}.window-no-padding .x-tab-panel-noborder{margin:0!important}.upload-error{color:#cf1124}.upload-success{color:#6cb24a}.upload-status-text{white-space:normal}.upload-thumb{float:right}.auto-width{width:auto!important}.auto-height{height:auto!important}.x-datetime-inline-editor .x-datetime-wrap{margin-top:0!important} /*# sourceMappingURL=index-min.css.map */ \ No newline at end of file diff --git a/manager/templates/default/css/index.css b/manager/templates/default/css/index.css index 763e5e87447..acce6441cc2 100644 --- a/manager/templates/default/css/index.css +++ b/manager/templates/default/css/index.css @@ -27908,6 +27908,103 @@ html[dir=rtl] .x-hide-offsets { border: 0 !important; } +.info-list.hide-list { + display: none; +} +.info-list .header { + color: #626262; + font: normal 12px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-weight: 600; +} +.info-list .header::before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands"; + font-weight: 900; + content: "\f09c"; + color: #517196; + display: inline-block; + margin: 0 0.25rem; +} +.info-list .header span { + font-weight: normal; +} +.info-list ul { + margin-top: 0.5rem; + padding: 0.5rem; + border: 1px dashed #E4E4E4; + border-radius: 3px; +} +.info-list ul li { + font: normal 12px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + color: #6b6b6b; + padding: 0.15rem 0; + line-height: 1; + word-break: break-word; +} +@media screen and (min-width: 641px) { + .info-list ul { + columns: 2; + column-gap: 2rem; + } +} +.x-window .info-list { + margin-top: 1rem; +} +.x-grid3 .info-list ul { + position: relative; + padding-left: 1rem; + background-color: #fcfbfb; +} +.x-grid3-row-alt .x-grid3 .info-list ul { + background-color: #f9faff; +} +.x-grid3 .info-list ul::before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands"; + font-weight: 900; + content: "\f09c"; + color: #517196; + position: absolute; + text-align: center; + font-size: 11px; + left: -7px; + top: -7px; + width: 14px; + height: 14px; + padding-top: 2px; + box-shadow: -1px 1px 3px #888; + border-radius: 100%; + background-color: #fff; +} +.x-grid3 .info-list ul li { + font-style: italic; +} +@media screen and (min-width: 769px) { + .x-grid3 .info-list ul { + columns: 3; + } +} +@media screen and (min-width: 1141px) { + .x-grid3 .info-list ul { + columns: 4; + } +} +@media screen and (min-width: 1401px) { + .x-grid3 .info-list ul { + columns: 5; + } +} + /* for selectability in ext grids */ .x-selectable, .x-selectable * {