define("app/services/features",["angular"],(function(e){"use strict";var t="cpanel.zoneEditor.services.features",r="FeaturesService";return{class:e.module(t,[]).factory(r,["defaultInfo",function(e){var t={dnssec:!1,mx:!1,simple:!1,advanced:!1,init:function(){t.dnssec=e.has_dnssec_feature,t.mx=e.has_mx_feature,t.simple=e.has_simple_feature,t.advanced=e.has_adv_feature}};return t.init(),t}]),serviceName:r,namespace:t}})),define("app/services/recordTypes",["angular","lodash","app/services/features","cjt/io/uapi-request","cjt/modules","cjt/io/api","cjt/io/uapi"],(function(e,t,r){"use strict";var a="cpanel.zoneEditor.services.recordTypes",i="RecordTypesService",n=[r.namespace],o=[r.serviceName,"$q","RECORD_TYPES"],s=function(e,r,a){var i=function(){};return t.assign(i.prototype,{_records:Object.keys(a).filter((function(t){return a[t].featureNeeded.some((function(t){return e[t]}))})).map((function(e){return t.assign(a[e],{type:e})})).sort((function(e,t){return e.priority-t.priority})),get:function(){return r.resolve(this._records)}}),new i};return o.push(s),e.module(a,n).factory(i,o),{class:s,serviceName:i,namespace:a}})),define("shared/js/zone_editor/models/dynamic_table",["lodash","cjt/util/locale"],(function(e,t){"use strict";var r=[10,20,50,100,500,1e3];if(!r.includes(100))throw"default not in page sizes";function a(){this.items=[],this.filteredList=this.items,this.selected=[],this.allDisplayedRowsSelected=!1,this.filterFunction=void 0,this.quickFilterFunction=void 0,this.meta={sortBy:"",sortDirection:"asc",maxPages:0,totalItems:this.items.length,pageNumber:1,pageSize:100,pageSizes:r,start:0,limit:0,filterValue:"",quickFilterValue:""}}function i(e){return!e.is_new||"0"===e.is_new}return a.PAGE_SIZES=r,a.DEFAULT_PAGE_SIZE=100,a.prototype.loadData=function(t){if(!e.isArray(t))throw"Developer Exception: loadData requires an array";this.items=t;for(var r=0,a=this.items.length;r<a;r++){if(!e.isObject(this.items[r]))throw"Developer Exception: loadData requires an array of objects";this.items[r]._id=r.toString(),this.items[r].selected&&this.selected.push(this.items[r]._id)}},a.prototype.setFilterFunction=function(t){if(!e.isFunction(t))throw"Developer Error: setFilterFunction requires a function";this.filterFunction=t},a.prototype.setQuickFilterFunction=function(t){if(!e.isFunction(t))throw"Developer Error: setQuickFilterFunction requires a function";this.quickFilterFunction=t},a.prototype.setSort=function(t,r){e.isUndefined(t)||(this.meta.sortBy=t),e.isUndefined(r)||(this.meta.sortDirection=r)},a.prototype.getMetadata=function(){return this.meta},a.prototype.getList=function(){return this.filteredList},a.prototype.getSelectedList=function(){return this.items.filter((function(e){return e.selected}))},a.prototype.areAllDisplayedRowsSelected=function(){return this.allDisplayedRowsSelected},a.prototype.getTotalRowsSelected=function(){return this.selected.length},a.prototype.selectAllDisplayed=function(t){if(t)for(var r=0,a=this.filteredList.length;r<a;r++){var i=this.filteredList[r];i.selected=!0,-1===this.selected.indexOf(i._id)&&this.selected.push(i._id)}else{var n=this.filteredList.map((function(e){return e.selected=!1,e._id}));this.selected=e.difference(this.selected,n)}this.allDisplayedRowsSelected=t},a.prototype.selectItem=function(t){if(!e.isUndefined(t))if(t.selected){if(-1!==this.selected.indexOf(t._id))return;this.selected.push(t._id),this.allDisplayedRowsSelected=this.filteredList.every((function(e){return e.selected}))}else this.selected=this.selected.filter((function(e){return e!==t._id})),this.allDisplayedRowsSelected=!1},a.prototype.clearAllSelections=function(){this.selected=[];for(var e=0,t=this.items.length;e<t;e++){this.items[e].selected=!1}this.allDisplayedRowsSelected=!1},a.prototype.clear=function(){this.items=[],this.selected=[],this.allDisplayedRowsSelected=!1,this.filteredList=this.populate()},a.prototype.populate=function(){var t=[],r=this;if(t=null!==this.meta.filterValue&&void 0!==this.meta.filterValue&&""!==this.meta.filterValue&&e.isFunction(this.filterFunction)?this.items.filter((function(e){return i(e)&&r.filterFunction(e,r.meta.filterValue)})):this.items.filter(i),null!==this.meta.quickFilterValue&&void 0!==this.meta.quickFilterValue&&""!==this.meta.quickFilterValue&&e.isFunction(this.quickFilterFunction)&&(t=t.filter((function(e){return r.quickFilterFunction(e,r.meta.quickFilterValue)}))),""!==this.meta.sortDirection&&""!==this.meta.sortBy&&(t=e.orderBy(t,[this.meta.sortBy],[this.meta.sortDirection])),this.meta.totalItems=t.length,this.meta.totalItems>e.min(this.meta.pageSizes)){var a=(this.meta.pageNumber-1)*this.meta.pageSize,n=this.meta.pageNumber*this.meta.pageSize;t=e.slice(t,a,n),this.meta.start=a+1,this.meta.limit=a+t.length}else 0===t.length?this.meta.start=0:this.meta.start=1,this.meta.limit=t.length;for(var o=0,s=0,c=t.length;s<c;s++){var d=t[s];-1!==this.selected.indexOf(d._id)?d.selected=!0:(d.selected=!1,o++)}return this.allDisplayedRowsSelected=t.length>0&&0===o,this.filteredList=this.items.filter((function(e){return!i(e)})).concat(t),this.filteredList},a.prototype.paginationMessage=function(){return t.maketext("Displaying [numf,_1] to [numf,_2] out of [quant,_3,item,items]",this.meta.start,this.meta.limit,this.meta.totalItems)},a})),define("shared/js/zone_editor/directives/convert_to_full_record_name",["angular"],(function(e){"use strict";var t="shared.zoneEditor.directives.convertToFullRecordName";return e.module(t,[]).directive("convertToFullRecordName",["Zones",function(e){return{restrict:"A",require:"ngModel",scope:{domain:"="},link:function(t,r,a,i){function n(r){var a=e.format_zone_name(t.domain,i.$viewValue);a!==i.$viewValue&&(i.$setViewValue(a,r),i.$render())}i&&(r.on("blur",(function(){n("blur")})),r.on("keydown",(function(e){13===e.keyCode&&n("keydown")})))}}}]),{namespace:t}})),define("shared/js/zone_editor/views/domain_selection",["angular","lodash","cjt/core","cjt/util/locale","shared/js/zone_editor/models/dynamic_table","app/services/features","uiBootstrap","cjt/directives/actionButtonDirective","cjt/directives/toggleSortDirective","cjt/directives/searchDirective","cjt/decorators/paginationDecorator","cjt/directives/pageSizeButtonDirective","cjt/directives/validationContainerDirective","cjt/directives/validationItemDirective","cjt/filters/qaSafeIDFilter","cjt/validator/ip-validators","cjt/validator/domain-validators","cjt/services/viewNavigationApi","cjt/services/cpanel/nvDataService","cjt/directives/alertList","cjt/services/alertService","shared/js/zone_editor/directives/convert_to_full_record_name"],(function(e,t,r,a,i,n){"use strict";var o="shared.zoneEditor.views.domainSelection",s=e.module(o,[]);return s.config(["$animateProvider",function(e){e.classNameFilter(/^((?!no-animate).)*$/)}]),s.controller("ListDomainsController",["$q","$location","$routeParams","Domains","Zones","$uibModal","viewNavigationApi",n.serviceName,"defaultInfo","nvDataService","alertService",function(e,r,n,o,s,c,d,l,u,m,p){var f=this;f.ui={},f.ui.is_loading=!1,f.domains=[],f.Features=l,f.modal={},f.modal.instance=null,f.modal.title="",f.modal.name_label=a.maketext("Name"),f.modal.cname_label="CNAME",f.modal.address_label=a.maketext("Address"),f.modal.exchanger_label=a.maketext("Destination"),f.modal.exchanger_placeholder=a.maketext("Fully qualified domain name"),f.modal.priority_label=a.maketext("Priority"),f.modal.priority_placeholder=a.maketext("Integer"),f.modal.create_a_record=a.maketext("Add an [asis,A] Record"),f.modal.create_cname_record=a.maketext("Add a [asis,CNAME] Record"),f.modal.create_mx_record=a.maketext("Add an [asis,MX] Record"),f.modal.cancel_label=a.maketext("Cancel"),f.modal.required_msg=a.maketext("This field is required."),f.loading_error=!1,f.loading_error_message="";var g=new i;function h(e){return void 0===e&&(e=!1),f.ui.is_loading=!0,o.fetch(e).then((function(e){f.nameserverCheck(e),g.loadData(f.domains),f.render()})).catch((function(e){f.loading_error=!0,f.loading_error_message=e})).finally((function(){f.ui.is_loading=!1}))}g.setSort("domain"),g.setFilterFunction((function(e,t){return-1!==e.domain.indexOf(t)})),f.meta=g.getMetadata(),f.filteredList=g.getList(),f.paginationMessage=g.paginationMessage,f.meta.pageSize=u.domains_per_page,f.render=function(){f.filteredList=g.populate()},f.sortList=function(){f.render()},f.selectPage=function(){f.render()},f.selectPageSize=function(){f.render(),u.domains_per_page!==f.meta.pageSize&&m.setObject({domains_per_page:f.meta.pageSize}).then((function(){u.domains_per_page=f.meta.pageSize})).catch((function(e){p.add({type:"danger",message:e,closeable:!0,replace:!1,group:"zoneEditor"})}))},f.searchList=function(){f.render()},f.refresh=function(){return h(!0)},f.aRecordModalController=function(e,r){var i=this;i.domain=r,i.modal_header=a.maketext("Add an [asis,A] Record for “[_1]”",r),i.name_label=f.modal.name_label,i.address_label=f.modal.address_label,i.submit_label=f.modal.create_a_record,i.cancel_label=f.modal.cancel_label,i.required_msg=f.modal.required_msg,i.zone_name_placeholder=s.format_zone_name(r,"example"),i.resource={dname:"",ttl:null,record_type:"A",line_index:null,data:[],is_new:!0,a_address:"",from_domain_list:!0},i.cancel=function(){e.dismiss("cancel")},i.save=function(){var r=[];return i.resource.data.push(i.resource.a_address),r.push(i.resource),s.saveRecords(i.domain,r).then((function(e){p.add({type:"success",message:a.maketext("You successfully added the following [asis,A] record for “[_1]”: [_2]",i.domain,t.escape(i.resource.dname)),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"})}),(function(e){p.add({type:"danger",message:e,closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){e.close({$value:i.resource})}))}},f.aRecordModalController.$inject=["$uibModalInstance","domain"],f.cnameRecordModalController=function(e,r){var i=this;i.domain=r,i.modal_header=a.maketext("Add a [asis,CNAME] Record for “[_1]”",r),i.name_label=f.modal.name_label,i.cname_label=f.modal.cname_label,i.submit_label=f.modal.create_cname_record,i.cancel_label=f.modal.cancel_label,i.required_msg=f.modal.required_msg,i.zone_name_placeholder=s.format_zone_name(r,"example"),i.resource={dname:"",ttl:null,record_type:"CNAME",line_index:null,data:[],is_new:!0,cname:"",from_domain_list:!0},i.cancel=function(){e.dismiss("cancel")},i.save=function(){var r=[];return i.resource.data.push(i.resource.cname),r.push(i.resource),s.saveRecords(i.domain,r).then((function(e){p.add({type:"success",message:a.maketext("You successfully added the following [asis,CNAME] record for “[_1]”: [_2]",i.domain,t.escape(i.resource.dname)),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"})}),(function(e){p.add({type:"danger",message:e,closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){e.close({$value:i.resource})}))}},f.cnameRecordModalController.$inject=["$uibModalInstance","domain"],f.mxRecordModalController=function(e,t){var r=this;r.domain=t,r.modal_header=a.maketext("Add an [asis,MX] Record for “[_1]”",t),r.name_label=f.modal.name_label,r.exchanger_label=f.modal.exchanger_label,r.exchanger_placeholder=f.modal.exchanger_placeholder,r.priority_label=f.modal.priority_label,r.priority_placeholder=f.modal.priority_placeholder,r.submit_label=f.modal.create_mx_record,r.cancel_label=f.modal.cancel_label,r.required_msg=f.modal.required_msg,r.resource={dname:r.domain,ttl:null,record_type:"MX",line_index:null,data:[],is_new:!0,exchange:"",priority:null,from_domain_list:!0},r.cancel=function(){e.dismiss("cancel")},r.save=function(){var t=[];return r.resource.data.push(parseInt(r.resource.priority,10)),r.resource.data.push(r.resource.exchange),t.push(r.resource),s.saveRecords(r.domain,t).then((function(e){p.add({type:"success",message:a.maketext("You successfully added the [asis,MX] record for “[_1]”.",r.domain),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"})}),(function(e){p.add({type:"danger",message:e,closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){e.close({$value:r.resource})}))}},f.mxRecordModalController.$inject=["$uibModalInstance","domain"],f.create_a_record=function(e){f.modal.instance=c.open({templateUrl:"views/a_record_form.html",controller:f.aRecordModalController,controllerAs:"ar",resolve:{domain:function(){return e.domain}}})},f.create_cname_record=function(e){f.modal.instance=c.open({templateUrl:"views/cname_record_form.html",controller:f.cnameRecordModalController,controllerAs:"cr",resolve:{domain:function(){return e.domain}}})},f.create_mx_record=function(e){f.modal.instance=c.open({templateUrl:"views/mx_record_form.html",controller:f.mxRecordModalController,controllerAs:"mxr",resolve:{domain:function(){return e.domain}}})},f.nameserverCheck=function(e){n.nameserver?(f.nameserverGrowl(),e.forEach((function(e){u.domains.includes(e.domain)&&f.domains.push(e)}))):f.domains=e},f.nameserverGrowl=function(){p.add({type:"info",message:a.maketext("To edit a domain’s nameserver, select Manage next to the appropriate domain."),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"})},f.goToView=function(e,t){d.loadView("/"+e+"/",{domain:t})},f.init=function(){h()},f.init()}]),{namespace:o}})),define("shared/js/zone_editor/models/dmarc_record",["lodash"],(function(e){"use strict";var t=/^[vV]\s*=\s*DMARC1\s*;\s*[pP]\s*=/,r=/^[a-z][a-z0-9+.-]*:[^,!;]+(?:![0-9]+[kmgt]?)?$/i,a=function(e){!/^[a-z][a-z0-9+.-]*:/i.test(e)&&/@[^\s@]{2,255}$/.test(e)&&(e="mailto:"+encodeURI(e).replace(/[\/?#&;=]/g,(function(e){return"%"+e.charCodeAt(0).toString(16)})));var t=/[,!;]/g;if(t.test(e)){var r="";e=(e=e.replace(/![0-9]+[kmgt]?$/i,(function(e){return r=e,""}))).replace(t,(function(e){return"%"+e.charCodeAt(0).toString(16)})),e+=r}return e},i=function(e){return null!=e&&("string"!=typeof e||e.length>0)};function n(){this.resetProperties()}n.prototype.resetProperties=function(){this.p="none",this.sp="none",this.adkim="r",this.aspf="r",this.pct=100,this.fo="0",this.rf="afrf",this.ri=86400,this.rua="",this.ruf=""},n.prototype.validators={p:{values:["none","quarantine","reject"],defValue:"none"},sp:{values:["none","quarantine","reject"]},adkim:{values:["r","s"],defValue:"r"},aspf:{values:["r","s"],defValue:"r"},rf:{multi:":",values:["afrf","iodef"],defValue:"afrf"},fo:{multi:":",values:["0","1","s","d"],defValue:"0"},pct:{pattern:/^[0-9]{1,2}$|^100$/,defValue:100},ri:{pattern:/^\d+$/,defValue:86400},rua:{multi:",",scrub:a,pattern:r,defValue:""},ruf:{multi:",",scrub:a,pattern:r,defValue:""}},n.prototype.isDMARC=function(e){return t.test(e)};var o=function(e,t,r){var a,i=[e];(t.multi&&(i=e.split(t.multi).map((function(e){return e.trim()}))),t.scrub&&(i=i.map(t.scrub)),r)&&(t.pattern?a=function(e){return t.pattern.test(e.toLowerCase())}:t.values&&(a=function(e){return t.values.indexOf(e.toLowerCase())>-1}),i=r(i,a));return i.join(t.multi)};return n.prototype.isValid=function(e,t){var r;return o(t,this.validators[e],(function(e,t){return r=e.every(t),e})),r},n.prototype.setValue=function(e,t,r){var a;r&&(a=function(e,t){return e.filter(t)});var i=o(t,this.validators[e],a);i.length?"number"==typeof this[e]?this[e]=parseInt(i,10):this[e]=i:"sp"===e?this.sp=this.p:this[e]=this.validators[e].defValue},n.prototype.fromTXT=function(t){if(this.resetProperties(),e.isArray(t)&&(t=t.join(";")),"string"==typeof t)for(var r=t.split(";"),a=0;a<r.length;a++){var i=r[a].split("="),n=i[0].trim().toLowerCase(),o=i.slice(1).join("=").trim();"v"!==n&&this.hasOwnProperty(n)&&this.setValue(n,o)}},n.prototype.toString=function(){var e="v=DMARC1;p="+this.p;return i(this.sp)&&(e+=";sp="+this.sp),i(this.adkim)&&(e+=";adkim="+this.adkim),i(this.aspf)&&(e+=";aspf="+this.aspf),i(this.pct)&&(e+=";pct="+this.pct),i(this.fo)&&(e+=";fo="+this.fo),i(this.rf)&&(e+=";rf="+this.rf),i(this.ri)&&(e+=";ri="+this.ri),i(this.rua)&&(this.setValue("rua",this.rua),e+=";rua="+this.rua),i(this.ruf)&&(this.setValue("ruf",this.ruf),e+=";ruf="+this.ruf),e},n})),define("shared/js/zone_editor/utils/dnssec",["lodash"],(function(e){"use strict";return{dsAlgorithms:[{algorithmId:1,algorithm:"1-RSAMD5"},{algorithmId:2,algorithm:"2-Diffie-Hellman"},{algorithmId:3,algorithm:"3-DSA/SHA-1"},{algorithmId:4,algorithm:"4-Elliptic Curve"},{algorithmId:5,algorithm:"5-RSA/SHA-1"},{algorithmId:7,algorithm:"7-RSASHA1-NSEC3-SHA1"},{algorithmId:8,algorithm:"8-RSA/SHA-256"},{algorithmId:10,algorithm:"10-RSA/SHA-512"},{algorithmId:13,algorithm:"13-ECDSA Curve P-256 with SHA-256"},{algorithmId:14,algorithm:"14-ECDSA Curve P-384 with SHA-384"},{algorithmId:252,algorithm:"252-Indirect"},{algorithmId:253,algorithm:"253-Private DNS"},{algorithmId:254,algorithm:"254-Private OID"}],dsDigTypes:[{digTypeId:1,digType:"1-SHA-1"},{digTypeId:2,digType:"2-SHA-256"},{digTypeId:4,digType:"4-SHA-384"}]}})),define("shared/js/zone_editor/utils/recordData",["lodash","shared/js/zone_editor/utils/dnssec"],(function(e,t){"use strict";var r={A:[{key:"a_address",default:""}],AAAA:[{key:"aaaa_address",default:""}],AFSDB:[{key:"subtype",default:null},{key:"hostname",default:""}],ALIAS:[{key:"alias",default:""}],CAA:[{key:"flag",default:0},{key:"tag",default:"issue"},{key:"value",default:""}],CNAME:[{key:"cname",default:""}],DNAME:[{key:"dname",default:""}],DS:[{key:"keytag",default:""},{key:"algorithm",default:t.dsAlgorithms[0].algorithm},{key:"digtype",default:t.dsDigTypes[0].digType},{key:"digest",default:""}],HINFO:[{key:"cpu",default:""},{key:"os",default:""}],LOC:[{key:"latitude",default:""},{key:"longitude",default:""},{key:"altitude",default:null},{key:"size",default:"1"},{key:"horiz_pre",default:"1000"},{key:"vert_pre",default:"10"}],MX:[{key:"priority",default:null},{key:"exchange",default:void 0}],NS:[{key:"nsdname",default:""}],NAPTR:[{key:"order",default:null},{key:"preference",default:null},{key:"flags",default:null},{key:"service",default:""},{key:"regexp",default:""},{key:"replacement",default:""}],PTR:[{key:"ptrdname",default:""}],RP:[{key:"mbox",default:""},{key:"txtdname",default:""}],SOA:[{key:"serial",default:""},{key:"mname",default:""},{key:"retry",default:null},{key:"refresh",default:null},{key:"expire",default:null},{key:"rname",default:""}],SRV:[{key:"priority",default:null},{key:"weight",default:null},{key:"port",default:null},{key:"target",default:""}],TXT:[{key:"txtdata",default:function(){return[]}}]};var a={};return Object.keys(r).forEach((function(e){var t=r[e].map((function(e){return e.key})),i=t.length;a[e]=function(e,r){for(var a=0;a<i;a++){var n=e[t[a]];if(null!=n&&-1!==n.toString().indexOf(r))return!0}return!1}})),a.TXT=function(e,t){return-1!==e.txtdata.join("").indexOf(t)},{createNewDefaultData:function(){var e={};return Object.values(r).forEach((function(t){t.forEach((function(t){var r,a=t.default;if("function"==typeof a)r=a();else{if(void 0===a)return;r=a}e[t.key]=r}))})),e},searchByType:a}})),define("shared/js/zone_editor/utils/recordSet",["lodash"],(function(e){"use strict";var t={CNAME:!0};function r(){this.records=[]}return Object.assign(r.prototype,{_ttlsAllMatch:!0,_ttl:null,add:function(e){e.ttl=parseInt(e.ttl,10),this.records.push(e),this._ttl?this._ttlsAllMatch=this._ttl===e.ttl:this._ttl=e.ttl},ttlsMismatch:function(){return!this._ttlsAllMatch},singletonExcess:function(){return!!t[this.records[0].record_type]&&this.records.length>1},ttls:function(){return e.uniq(this.records.map((function(e){return e.ttl})))},count:function(){return this.records.length},name:function(){return this.records[0].name},type:function(){return this.records[0].record_type}}),r})),define("shared/js/zone_editor/utils/recordSetIndex",["shared/js/zone_editor/utils/recordSet"],(function(e){"use strict";function t(){}return Object.assign(t.prototype,{query:function(t,r){var a=t+":"+r;return this[a]||(this[a]=new e),this[a]},sets:function(){return Object.values(this)}}),t})),define("shared/js/zone_editor/directives/base_validators",["angular","cjt/validator/length-validators"],(function(e,t){"use strict";var r={characterStringValidator:function(e){return t.methods.maxUTF8Length(e,255)}};return e.module("cjt2.validate").run(["validatorFactory",function(e){e.generate(r)}]),{methods:r,name:"baseValidators",description:"General DNS record validation library",version:1}})),define("shared/js/zone_editor/directives/dmarc_validators",["angular","cjt/util/locale","cjt/validator/validator-utils","shared/js/zone_editor/models/dmarc_record","cjt/validator/validateDirectiveFactory"],(function(e,t,r,a){"use strict";var i=new a,n={dmarcMailtoList:function(e,a){var n=r.initializeValidationResult();return n.isValid=i.isValid(a,e),n.isValid||n.add("dmarcMailtoList",t.maketext("The [asis,URI] list is invalid.")),n}};return e.module("cjt2.validate").run(["validatorFactory",function(e){e.generate(n)}]),{methods:n,name:"dmarcValidators",description:"Validation library for DMARC records.",version:2}})),define("shared/js/zone_editor/directives/caa_validators",["angular","cjt/util/locale","cjt/validator/validator-utils","cjt/validator/domain-validators","cjt/validator/email-validator","cjt/validator/validateDirectiveFactory"],(function(e,t,r,a,i){"use strict";var n=/^mailto:/,o={caaValue:function(e,o){return"iodef"===o?function(e){var o,s=r.initializeValidationResult();return s.isValid=!1,n.test(e)?(e=e.replace(n,""),o=i.methods.email(e)):o=a.methods.url(e),s.isValid=o.isValid,s.isValid||s.add("caaIodef",t.maketext("You must enter a valid [asis,mailto] or standard [asis,URL].")),s}(e):function(e){var i=r.initializeValidationResult();if(i.isValid=!1,";"===e)i.isValid=!0;else{var n=a.methods.zoneFqdn(e);i.isValid=n.isValid}return i.isValid||i.add("caaIssue",t.maketext("You must enter a valid zone name or a single semicolon.")),i}(e)}};return e.module("cjt2.validate").run(["validatorFactory",function(e){e.generate(o)}]),{methods:o,name:"caaValidators",description:"Validation library for CAA records.",version:1}})),define("shared/js/zone_editor/directives/ds_validators",["angular","cjt/util/locale","cjt/validator/validator-utils","cjt/validator/validateDirectiveFactory"],(function(e,t,r){"use strict";var a=/^[0-9a-f\s]+$/i,i={digestValidator:function(e){return function(e,a){var i=r.initializeValidationResult();return i.isValid=a.test(e),i.isValid||i.add("digest",t.maketext("The ‘Digest‘ must be represented by a sequence of case-insensitive hexadecimal digits. Whitespace is allowed.")),i}(e,a)}};return e.module("cjt2.validate").run(["validatorFactory",function(e){e.generate(i)}]),{methods:i,name:"digestValidators",description:"Validation library for DS records.",version:2}})),define("shared/js/zone_editor/directives/naptr_validators",["angular","lodash","cjt/util/locale","cjt/validator/validator-utils","cjt/validator/validateDirectiveFactory"],(function(e,t,r,a){"use strict";var i={serviceValidator:function(e){return function(e){var i=a.initializeValidationResult();if(""===e)return i.isValid=!0,i;var n,o,s=e.split("+");return s.length>0&&(n=s.shift(),o=s.length>0?s:null),/^[a-z]/i.test(n)?/^[a-z][:a-z0-9\-+]{0,31}$/i.test(n)?(o&&t.some(o,(function(e){if(""!==e)return!/^[:a-z0-9\-+]{1,32}$/i.test(e)}))&&(i.isValid=!1,i.add("naptrservice",r.maketext("Each “rs” value (the value after ‘+’ symbols) must contain only case insensitive letters a-z, digits 0-9, ‘-’s and ‘+’s. It must not exceed 32 characters."))),i):(i.isValid=!1,i.add("naptrservice",r.maketext("“Protocol”, the first part of the service field must contain only case insensitive letters a-z, digits 0-9, ‘-’s and ‘+’s. It must not exceed 32 characters.")),i):(i.isValid=!1,i.add("naptrservice",r.maketext("Service must start with a letter.")),i)}(e)},naptrRegexValidator:function(e){return function(e){var t=a.initializeValidationResult();if(""===e)return t;var i="[^0-9i]",n=new RegExp(i),o=e.charAt(0);if(!n.test(o))return t.isValid=!1,t.add("naptrRegex",r.maketext("You can not use a digit or the flag character ‘i’ as your delimiter.")),t;var s=new RegExp("^("+i+").*\\1(.*)\\1.*");return null===e.match(s)?(t.isValid=!1,t.add("naptrRegex",r.maketext("To separate regular and replacement expressions, you must enter the delimiter before, between, and after the expressions. For example, delim-char regex delim-char replacement delim-char.")),t):t}(e)}};return e.module("cjt2.validate").run(["validatorFactory",function(e){e.generate(i)}]),{methods:i,name:"naptrValidators",description:"Validation library for NAPTR records.",version:2}})),define("shared/js/zone_editor/views/manage",["angular","lodash","cjt/core","cjt/util/locale","shared/js/zone_editor/models/dynamic_table","shared/js/zone_editor/models/dmarc_record","shared/js/zone_editor/utils/dnssec","shared/js/zone_editor/utils/recordData","shared/js/zone_editor/utils/recordSetIndex","app/services/features","app/services/recordTypes","uiBootstrap","cjt/directives/multiFieldEditor","cjt/directives/actionButtonDirective","cjt/directives/toggleSortDirective","cjt/directives/searchDirective","cjt/directives/pageSizeButtonDirective","cjt/decorators/paginationDecorator","cjt/directives/validationContainerDirective","cjt/directives/validationItemDirective","cjt/filters/qaSafeIDFilter","cjt/validator/ip-validators","cjt/validator/domain-validators","cjt/validator/compare-validators","cjt/validator/datatype-validators","cjt/validator/email-validator","cjt/services/viewNavigationApi","cjt/services/cpanel/nvDataService","cjt/directives/quickFiltersDirective","cjt/directives/alertList","cjt/services/alertService","shared/js/zone_editor/directives/convert_to_full_record_name","shared/js/zone_editor/directives/base_validators","shared/js/zone_editor/directives/dmarc_validators","shared/js/zone_editor/directives/caa_validators","shared/js/zone_editor/directives/ds_validators","shared/js/zone_editor/directives/naptr_validators"],(function(e,t,r,a,i,n,o,s,c,d,l){"use strict";var u="shared.zoneEditor.views.manage",m=e.module(u,[]),p="record-set-error",f="zoneEditor";return m.controller("ManageZoneRecordsController",["$scope","$location","$routeParams","$timeout","Zones","viewNavigationApi","$uibModal",d.serviceName,l.serviceName,"defaultInfo","nvDataService","alertService",function(d,l,u,m,g,h,_,v,y,k,b,S){var z=this;function A(r,a){r&&"DMARC"===r.record_type?(r.name=g.format_zone_name(z.domain,"_dmarc."),r.is_dmarc=!0,r.record_type="TXT"):r&&r.txtdata?r.is_dmarc=a.isDMARC(r.txtdata[0]):r.is_dmarc=!1;var i,o,c=Object.assign(s.createNewDefaultData(),{_id:"",name:r.name||"",record_type:r.record_type,editing:"1"===r.is_new,is_new:r.is_new,viewTemplate:z.viewRecordTemplates(r.record_type),editTemplate:z.getRecordTemplate(r),ttl:r.ttl||z.default_ttl,line_index:null,is_dmarc:r.is_dmarc,isEditable:!0,p:"",sp:"",adkim:"",aspf:"",pct:"",fo:"",rf:"",ri:"",rua:"",ruf:"",record:""});if("0"===r.is_new){switch(r.record_type){case"A":c.a_address=g.trimTrailingDot(r.record)||"",c.record=g.trimTrailingDot(r.record)||"";break;case"AAAA":c.aaaa_address=g.trimTrailingDot(r.record),c.record=g.trimTrailingDot(r.record);break;case"AFSDB":c.subtype=r.subtype,c.hostname=r.hostname;break;case"ALIAS":c.alias=g.trimTrailingDot(r.record),c.record=g.trimTrailingDot(r.record);break;case"CAA":c.flag=r.flag,c.tag=r.tag,c.value=r.value;break;case"CNAME":c.cname=g.trimTrailingDot(r.record),c.record=g.trimTrailingDot(r.record);break;case"DNAME":c.dname=g.trimTrailingDot(r.record),c.record=g.trimTrailingDot(r.record);break;case"DS":c.keytag=r.keytag,c.algorithm=(i=parseInt(r.algorithm,10),(o=t.find(z.dsAlgorithms,["algorithmId",parseInt(i)]))?o.algorithm:""),c.digtype=function(e){var r=t.find(z.dsDigTypes,["digTypeId",parseInt(e)]);return r?r.digType:""}(parseInt(r.digtype,10)),c.digest=r.digest;break;case"HINFO":c.cpu=r.cpu,c.os=r.os;break;case"LOC":c.latitude=r.latitude.trim(),c.longitude=r.longitude.trim(),c.altitude=r.altitude,c.size=r.size,c.horiz_pre=r.horiz_pre,c.vert_pre=r.vert_pre;break;case"MX":c.priority=r.priority,c.exchange=r.exchange;break;case"NS":c.nsdname=g.trimTrailingDot(r.record),c.record=g.trimTrailingDot(r.record);break;case"NAPTR":c.order=parseInt(r.order,10),c.preference=parseInt(r.preference,10),c.flags=r.flags,c.service=r.service,c.regexp=r.regexp,c.replacement=r.replacement;break;case"PTR":c.ptrdname=g.trimTrailingDot(r.record),c.record=g.trimTrailingDot(r.record);break;case"RP":c.mbox=r.mbox,c.txtdname=r.txtdname;break;case"SRV":c.priority=parseInt(r.priority,10),c.weight=parseInt(r.weight,10),c.port=parseInt(r.port,10),c.target=r.target;break;case"SOA":c.serial=r.serial,c.mname=r.mname,c.retry=parseInt(r.retry,10),c.refresh=parseInt(r.refresh,10),c.expire=parseInt(r.expire,10),c.rname=r.rname;break;case"TXT":c.txtdata=r.txtdata,r.is_dmarc&&a.fromTXT(c.txtdata[0])}c.line_index=r.line_index}c.id_prefix=c.record_type.toLowerCase(),c.cache=e.copy(c),c.typeEditingLocked="SOA"===c.record_type||c.is_dmarc,c.getSetRName=z.getSetRName.bind(this,"rname"),c.getSetMBOX=z.getSetRName.bind(this,"mbox"),Object.assign(this,c,a,n.prototype)}z.is_loading=!1,z.zone_records=[],z.domain=u.domain,z.loading_error=!1,z.loading_error_message="",z.Features=v,z.generated_domains={},z.recordTypes=[],z.types=[],z.recordsInProgress=[],z.serial=null,z.isHostnameZone=PAGE.serverHostname===z.domain,z.showEmailRoutingLink=!!PAGE.showEmailRoutingLink,z.dsAlgorithms=o.dsAlgorithms,z.dsDigTypes=o.dsDigTypes,z.save_in_progress=!1,z.getSetRName=function(t,r){return e.isDefined(r)&&(this[t]=z.convertEmailToRName(r)),z.convertRNameToEmail(this[t])},z.convertRNameToEmail=function(e){var t=e;t=t.split(/\\\./g);for(var r=0;r<t.length;r++)if(-1!==t[r].indexOf(".")){t[r]=t[r].replace(".","@");break}return t=t.join(".")},z.convertEmailToRName=function(e){var t=e;return(t=t.split("@"))[0]=t[0].replace(/\./g,"\\."),t=t.join(".")},z.selectDMARCTab=function(e,t){"RAW"===t?(e.rawTabSelected=!0,z.updateTXTFromDMARCRecord(e)):(z.updateDMARCRecordFromTXT(e),e.rawTabSelected=!1)},z.updateDMARCRecordFromTXT=function(e){e.fromTXT(e.txtdata)},z.updateTXTFromDMARCRecord=function(e){e.txtdata=e.toString()},z.isActionBtnVisible=function(){return v.whmOnly||v.advanced},z.isFormEditing=function(){for(var e=0,t=z.filteredList.length;e<t;e++)if(z.filteredList[e].editing)return!0;return!1},z.viewRawZone=function(){h.loadView("/manage/copyzone",{domain:this.domain})};var x=new i;function j(e,r){var a=e.record_type;if("add"===r)t.includes(z.types,a)||(z.types=t.sortBy(t.concat(z.types,a)));else if("remove"===r){0===t.filter(z.zone_records,(function(t){if(t._id!==e._id&&t.record_type===a)return e})).length&&(z.types=t.sortBy(t.pull(z.types,a)))}w()}function w(){z.types.includes(z.meta.quickFilterValue)||(z.meta.quickFilterValue="")}function T(e,r){var i=this;i.record=r,i.cancel=function(){e.dismiss("cancel")},i.confirm=function(){var i=[r.line_index];return g.remove_zone_record(z.domain,i,z.serial).then((function(){"MX"===r.record_type&&r.name===z.domain+"."?S.add({type:"success",message:a.maketext("You successfully deleted the [_1] record.",t.escape(r.record_type)),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}):S.add({type:"success",message:a.maketext("You successfully deleted the [_1] record: [_2]",r.record_type,t.escape(r.name)),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}),j(r,"remove"),z.refresh()})).catch((function(e){S.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){e.close()}))}}function D(e){z.recordsInProgress=[],this.cancel=function(){e.dismiss("cancel")},this.confirm=function(){return g.reset_zone(z.domain).then((function(){S.add({type:"success",message:a.maketext("You successfully reset the zone for “[_1]”.",t.escape(z.domain)),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}),z.refresh()})).catch((function(e){S.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){e.close()}))}}function E(e){return e.map((function(e){var r,a={dname:e.name,ttl:e.ttl,record_type:e.record_type,line_index:e.line_index,data:[],is_new:"1"===e.is_new};switch(e.record_type){case"SOA":a.data.push(e.mname),a.data.push(e.rname),a.data.push(parseInt(e.serial,10)),a.data.push(parseInt(e.refresh)),a.data.push(parseInt(e.retry,10)),a.data.push(parseInt(e.expire,10)),a.data.push(parseInt(e.ttl,10));break;case"A":a.data.push(e.a_address);break;case"AAAA":a.data.push(e.aaaa_address);break;case"AFSDB":a.data.push(e.subtype),a.data.push(e.hostname);break;case"ALIAS":a.data.push(e.alias);break;case"CAA":a.data.push(e.flag),a.data.push(e.tag),a.data.push(e.value);break;case"CNAME":a.data.push(e.cname);break;case"DNAME":a.data.push(e.dname);break;case"DS":a.data.push(parseInt(e.keytag,10)),a.data.push((r=e.algorithm,t.find(z.dsAlgorithms,["algorithm",r]).algorithmId)),a.data.push(function(e){return t.find(z.dsDigTypes,["digType",e]).digTypeId}(e.digtype)),a.data.push(e.digest);break;case"HINFO":a.data.push(e.cpu),a.data.push(e.os);break;case"LOC":a.data.push(e.latitude),a.data.push(e.longitude),a.data.push(e.altitude+"m"),a.data.push(e.size+"m"),a.data.push(e.horiz_pre+"m"),a.data.push(e.vert_pre+"m");break;case"MX":a.data.push(parseInt(e.priority,10)),a.data.push(e.exchange);break;case"NS":a.data.push(e.nsdname);break;case"NAPTR":a.data.push(parseInt(e.order,10)),a.data.push(parseInt(e.preference,10)),a.data.push(e.flags),a.data.push(e.service),a.data.push(e.regexp),a.data.push(e.replacement);break;case"PTR":a.data.push(e.ptrdname);break;case"RP":a.data.push(e.mbox||"."),a.data.push(e.txtdname||".");break;case"SRV":a.data.push(parseInt(e.priority,10)),a.data.push(parseInt(e.weight,10)),a.data.push(parseInt(e.port,10)),a.data.push(e.target);break;case"TXT":e.is_dmarc?(e.rawTabSelected||z.updateTXTFromDMARCRecord(e),a.data.push(e.txtdata)):a.data=e.txtdata}return a}))}function R(){return z.is_loading=!0,g.fetch(z.domain).then((function(e){var r=e.parsedZoneData;z.default_ttl=e.defaultTTL,z.zone_records=[];for(var a=new n,i=0,o=r.length;i<o;i++){var s=r[i];v.simple&&!v.advanced&&"MX"!==s.record_type&&z.generated_domains[s.name]||((("A"===s.record_type||"CNAME"===s.record_type)&&z.Features.simple||"MX"===s.record_type&&z.Features.mx||"MX"!==s.record_type&&z.Features.advanced)&&(s.is_new="0",(s=new A(s,a)).editing=!1,z.zone_records.push(s)),"ALIAS"===s.record_type&&(PAGE.is_alias_available||(s.isEditable=!1,s.alias_unsupported=!0)))}!function(){if(!(z.types&&z.types.length>0)){var e=t.sortBy(t.uniq(t.map(z.zone_records,(function(e){return e.record_type}))));z.types=t.filter(e,(function(e){return z._featureAllowed(e)})),w()}}(),z.cancelRecordEdit(),z.recordsInProgress.forEach((function(e){if("1"===e.is_new)z.zone_records.push(e);else{var t=z.zone_records.filter((function(t){return t.line_index===e.line_index}));t=t[0];var r=z.zone_records.indexOf(t);z.zone_records.splice(r,1,e)}}));var c=z.zone_records.find((function(e){return"SOA"===e.record_type}));z.serial=c?c.serial:null})).catch((function(e){z.loading_error=!0,z.loading_error_message=t.escape(e)})).finally((function(){z.is_loading=!1,z.add_zr_form.$setPristine()}))}x.setFilterFunction((function(e,t){if(e.name){if(-1!==e.name.indexOf(t))return!0}else if("1"===e.is_new)return!0;return s.searchByType[e.record_type](e,t)})),x.setQuickFilterFunction((function(e,t){return e.record_type===t||"1"===e.is_new})),x.meta.pageSize=k.zones_per_page,z.meta=x.getMetadata(),z.filteredList=x.getList(),z.paginationMessage=x.paginationMessage,z.checkRecordSets=function(){var e=function(e){for(var t,r=new c,i=0;i<e.length;i++){var n=e[i];(t=r.query(n.name,n.record_type)).add(n)}for(var o=[],s=r.sets(),d=0;d<s.length;d++){if((t=s[d]).ttlsMismatch()){var l=t.name().replace(/\.$/,"");o.push(a.maketext("[_1]’s “[_2]” [numerate,_3,,records have] mismatched [asis,TTL] [numerate,_3,,values] ([list_and,_4]). Records of the same name and type must always have the same [asis,TTL] value.",l,t.type(),t.count(),t.ttls()))}t.singletonExcess()&&o.push(a.maketext("Only 1 “[_1]” record may exist per name. Rename or delete [_2]’s extra “[_1]” [numerate,_3,record,records].",t.type(),t.name(),t.count()-1))}return o}(this.zone_records);if(!e.length)return S.removeById(p,f),!0;var t=e.map((function(e){return"<p>"+e+"</p>"})).join("");return S.add({type:"danger",id:p,message:t,closeable:!0,replace:!0,group:f}),!1},z.render=function(){z.filteredList=x.populate()},z.sortList=function(){z.render()},z.selectPage=function(){z.render()},z.selectPageSize=function(){z.render(),k.zones_per_page!==x.meta.pageSize&&b.setObject({zones_per_page:x.meta.pageSize}).then((function(){k.zones_per_page=x.meta.pageSize})).catch((function(e){S.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})}))},z.searchList=function(){z.getFilteredResults()},z.getFilteredResults=function(){z.filteredList=x.populate()},z.dynamicPlaceholders={issue:a.maketext("Certificate Authority"),iodef:a.maketext("Mail Address for Notifications")},z.dynamicTooltips={issue:a.maketext("The certificate authority’s domain name."),iodef:a.maketext("The location to which the certificate authority will report exceptions. Either a [asis,mailto] or standard [asis,URL].")},z.valueTooltip=function(e){return"iodef"===z.filteredList[e].tag?z.dynamicTooltips.iodef:z.dynamicTooltips.issue},z.valuePlaceholder=function(e){return"iodef"===z.filteredList[e].tag?z.dynamicPlaceholders.iodef:z.dynamicPlaceholders.issue},T.$inject=["$uibModalInstance","record"],D.$inject=["$uibModalInstance"],z.emailRoutingConfigLink=function(){return v.whmOnly?r.protocol+"//"+r.domain+":"+r.port+r.securityToken+"/scripts/doeditmx?domainselect="+z.domain:location.origin+PAGE.securityToken+"/frontend/"+PAGE.theme+"/mail/email_routing.html"},z.copyTextToClipboard=function(){var e=document.createElement("textarea"),t=document.getElementById("zoneFileText").textContent;e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy")?S.add({type:"success",message:a.maketext("Successfully copied to the clipboard."),closeable:!0,autoClose:1e4,group:"zoneEditor"}):S.add({type:"danger",message:a.maketext("Copy failed."),closeable:!0,replace:!1,group:"zoneEditor"}),document.body.removeChild(e)},z.copy_zone_file=function(){z.copyMode=!0},z.returnToEditor=function(){z.copyMode=!1},z.createNewRecord=function(e){var t={record_type:e,editing:!0,is_new:"1"};e||""||(!v.mx||v.simple||v.advanced?t.record_type="A":t.record_type="MX");var r=new A(t,new n);z.zone_records.push(r)},z.cancelRecordEdit=function(e,t){if(e&&"0"===e.is_new){var r=e.cache;for(var a in r)a&&(e[a]=r[a]);e.cache=r,e.editing=!1}else e&&"1"===e.is_new?z.zone_records.splice(t,1):z.zone_records.forEach((function(e){e.editing=!1}))},z.getAddFormState=function(){return z.add_zr_form.$invalid?"invalid":"valid"},z.isEditingRecords=function(){for(var e=0,t=z.zone_records.length;e<t;e++)if(z.zone_records[e].editing)return!0;return!1},z.handleRowKeypress=function(e,t){if(t.editing&&13===e.keyCode){e.preventDefault(),e.stopPropagation();var r=document.getElementById("inline_add_record_button_"+t._id);m((function(){r.click()}),0)}},z.saveRecords=function(e){var t;if(z.add_zr_form.$invalid)if(e){var r=new RegExp("_"+e._id+"$"),a=[];for(var i in z.add_zr_form){if(i)r.test(i)&&a.push(z.add_zr_form[i])}var n=a.filter((function(e){return e.$invalid}));n.length?n.forEach((function(e){e.$setDirty()})):t=[e]}else for(var o in z.add_zr_form)z.add_zr_form[o]&&z.add_zr_form[o].$setDirty&&z.add_zr_form[o].$setDirty();else t=e?[e]:[];if(t&&this.checkRecordSets())return z._saveRecords.apply(z,t)},z._saveRecords=function(e){var r=[];z.recordsInProgress=[];var i=t.filter(z.zone_records,"editing");if(e){var n=i.indexOf(e);i.splice(n,1),z.recordsInProgress=i,r.push(e)}else r=i;r.forEach((function(e){e.is_new&&j(e,"add")}));var o=E(r);return z.save_in_progress=!0,g.saveRecords(z.domain,o,z.serial).then((function(){if(r.length>1)S.add({type:"success",message:a.maketext("You successfully saved [quant,_1,record,records] for “[_2]”.",r.length,t.escape(z.domain)),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"});else{var e=r[0];S.add({type:"success",message:a.maketext("You successfully saved the following [_1] record for “[_2]”: “[_3]”.",e.record_type,t.escape(z.domain),t.escape(g.trimTrailingDot(e.name))),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"})}return R()})).catch((function(e){S.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){z.save_in_progress=!1}))},z.field_has_error=function(e,t){return e&&t&&e[t]&&e[t].$invalid&&e[t].$dirty},d.$watchCollection("manage.zone_records",(function(r){z.zone_records=t.sortBy(r,[function(t){return t.cache=e.copy(t),"1"!==t.is_new}]),x.loadData(z.zone_records),z.filteredList=x.populate()})),z.edit_record=function(e){e.editing=!0},z.confirm_delete_record=function(e){z.cancelRecordEdit(),_.open({templateUrl:"confirm_delete.html",controller:T,controllerAs:"ctrl",resolve:{record:function(){return e}}})},z.confirm_reset_zone=function(){z.isFormEditing()||_.open({templateUrl:"confirm_reset_zone.html",controller:D,controllerAs:"ctrl"})},z.refresh=function(){if(!z.isFormEditing())return R()},z.updateRecordTemplate=function(e){e.editTemplate=z.getRecordTemplate(e)},z._findRecordTypeByType=function(e){for(var t=0;t<z.recordTypes.length;t++)if(z.recordTypes[t].type===e)return z.recordTypes[t];return null},z.viewRecordTemplates=function(e){var t="";return z.recordTypes.forEach((function(r){r.type===e&&(t=r.viewTemplate)})),t},z._featureAllowed=function(e){var t=!1;switch(e){case"A":case"CNAME":t=z.Features.simple||z.Features.advanced;break;case"MX":t=z.Features.mx;break;case"SRV":case"AAAA":case"ALIAS":case"CAA":case"TXT":t=z.Features.advanced;break;case"DNAME":case"HINFO":case"NS":case"RP":case"PTR":case"NAPTR":case"DS":case"AFSDB":case"SOA":case"LOC":t=z.Features.whmOnly}return t},z.filterRowRecordsDisplay=function(e){var t=["SOA","DMARC"];return PAGE.is_alias_available||t.push("ALIAS"),-1===t.indexOf(e.type)},z.filterAddRecordDisplay=function(e){var t=["SOA"];return PAGE.is_alias_available||t.push("ALIAS"),-1===t.indexOf(e.type)},z.getRecordTemplate=function(e){var t=e.record_type;e.is_dmarc&&(t="DMARC");var r=z._findRecordTypeByType(t);return r?r.template:""},z.init=function(){if(z.is_loading=!0,!v.whmOnly||v.whmOnly&&"/manage/"===l.path())return k.otherRecordsInterface&&(z.showOtherRecordTypeOption=!0,z.otherRecordTypeHref=k.otherRecordsInterface+"?domainselect="+z.domain),y.get().then((function(e){z.recordTypes=e})),g.fetch_generated_domains(z.domain,!0).then((function(e){return z.generated_domains=e,R()})).catch((function(e){z.loading_error=!0,z.loading_error_message=t.escape(e)}));v.whmOnly&&g.exportZoneFile(z.domain).then((function(e){z.copyable_zone_file=e.trim(),z.is_loading=!1}))},z.init()}]),{namespace:u}})),define("app/services/dnssec",["angular","lodash","cjt/util/locale","cjt/io/api","cjt/io/uapi-request","cjt/io/uapi","cjt/services/APIService","cjt/services/viewNavigationApi"],(function(e,t,r,a,i,n){"use strict";var o=e.module("cpanel.zoneEditor.services.dnssec",["cjt2.services.api"]),s=31536e3;return o.factory("DnsSecService",["$q","APIService","viewNavigationApi",function(a,n,o){var c=function(){};return c.prototype=new n,e.extend(c.prototype,{generate:function(e,t,r,n){var o=new i.Class;o.initialize("DNSSEC","enable_dnssec"),o.addArgument("domain",e),void 0!==t&&o.addArgument("algo_num",t);void 0!==r&&o.addArgument("key_setup",r);void 0!==n&&o.addArgument("active",n?1:0);return this.deferred(o).promise.then((function(t){return t.data&&t.data.failed?a.reject(t.data.failed[e]):t.data}))},fetch:function(e){var r=new i.Class;return r.initialize("DNSSEC","fetch_ds_records"),r.addArgument("domain",e),this.deferred(r).promise.then((function(r){return r.data[e].keys?t.chain(r.data[e].keys).orderBy(["key_type","active",function(e){return Number(e.key_tag)}],["asc","desc","asc"]).value():[]}))},activate:function(e,t){var r=new i.Class;return r.initialize("DNSSEC","activate_zone_key"),r.addArgument("domain",e),r.addArgument("key_id",t),this.deferred(r).promise.then((function(e){return e.data.error?a.reject(e.data.error):e.data}))},deactivate:function(e,t){var r=new i.Class;return r.initialize("DNSSEC","deactivate_zone_key"),r.addArgument("domain",e),r.addArgument("key_id",t),this.deferred(r).promise.then((function(e){return e.data.error?a.reject(e.data.error):e.data}))},remove:function(e,t){var r=new i.Class;return r.initialize("DNSSEC","remove_zone_key"),r.addArgument("domain",e),r.addArgument("key_id",t),this.deferred(r).promise.then((function(e){return e.data.error?a.reject(e.data.error):e.data}))},importKey:function(e,t,r){var n=new i.Class;return n.initialize("DNSSEC","import_zone_key"),n.addArgument("domain",e),n.addArgument("key_data",r),n.addArgument("key_type",t.toLocaleLowerCase("en-US")),this.deferred(n).promise.then((function(e){return e.data.error?a.reject(e.data.error):e.data}))},exportKey:function(e,t){var r=new i.Class;return r.initialize("DNSSEC","export_zone_key"),r.addArgument("domain",e),r.addArgument("key_id",t),this.deferred(r).promise.then((function(e){return e.data}))},exportPublicDnsKey:function(e,t){var r=new i.Class;return r.initialize("DNSSEC","export_zone_dnskey"),r.addArgument("domain",e),r.addArgument("key_id",t),this.deferred(r).promise.then((function(e){return 1!==e.data.success&&"1"!==e.data.success?a.reject(e.data.error):e.data}))},copyTextToClipboard:function(e){var t=document.createElement("textarea");if(t.value=e,document.body.appendChild(t),t.select(),!document.execCommand("copy"))throw r.maketext("Copy failed.");document.body.removeChild(t)},goToInnerView:function(e,t,r){var a="/dnssec/"+e,i={domain:t};r&&(i.keyid=r);return o.loadView(a,i)},getSuggestedKeyRotationDate:function(e,t){"string"==typeof e&&(e=Number(e));var r=e;"zsk"===t.toLowerCase()?r+=15768e3:r+=s;return r}}),new c}])})),define("shared/js/zone_editor/views/dnssec",["angular","lodash","cjt/util/locale","cjt/util/parse","app/services/features","cjt/directives/actionButtonDirective","cjt/directives/alertList","cjt/directives/alert","cjt/services/alertService","app/services/dnssec","uiBootstrap"],(function(e,t,r,a,i){"use strict";var n="shared.zoneEditor.views.dnssec";return e.module(n,[]).controller("DnsSecController",["$scope","$q","$routeParams","DnsSecService",i.serviceName,"alertService","$uibModal",function(e,i,n,o,s,c,d){var l=this;l.domain=n.domain,l.is_loading=!1,l.loading_error=!1,l.loading_error_message="",l.is_generating=!1,l.keys=[],l.isRTL=PAGE.isRTL;var u=Date.now()/1e3;function m(e,a){var i=this;i.key=a,i.cancel=function(){e.dismiss("cancel")},i.confirm=function(){return o.deactivate(l.domain,a.key_id).then((function(e){c.add({type:"success",message:r.maketext("Key “[_1]” successfully deactivated.",a.key_tag),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}),a.active=!1})).catch((function(e){c.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){e.close()}))}}function p(e,a){var i=this;i.key=a,i.cancel=function(){e.dismiss("cancel")},i.confirm=function(){return o.remove(l.domain,a.key_id).then((function(e){return c.add({type:"success",message:r.maketext("Key “[_1]” successfully deleted.",a.key_tag),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}),l.load()})).catch((function(e){c.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){e.close()}))}}function f(e){var t=this;t.cancel=function(){e.dismiss("cancel")},t.confirm=function(){return l.generate().finally((function(){e.close()}))},t.goToGenerate=function(){return e.dismiss("cancel"),l.goToInnerView("generate")}}m.$inject=["$uibModalInstance","key"],p.$inject=["$uibModalInstance","key"],f.$inject=["$uibModalInstance"],l.goToInnerView=function(e,t){return o.goToInnerView(e,l.domain,t)},l.expandKey=function(e,t){e.isExpanded=t},l.activate=function(e){return o.activate(l.domain,e.key_id).then((function(t){c.add({type:"success",message:r.maketext("Key “[_1]” successfully activated.",e.key_tag),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}),e.active=!0})).catch((function(e){c.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})}))},l.confirmDeactivateKey=function(e){d.open({templateUrl:"dnssec_confirm_deactivate.html",controller:m,controllerAs:"ctrl",resolve:{key:function(){return e}}})},l.confirmDeleteKey=function(e){d.open({templateUrl:"dnssec_confirm_delete.html",controller:p,controllerAs:"ctrl",resolve:{key:function(){return e}}})},l.launchGenerateModal=function(e){d.open({templateUrl:"quick_generate.html",controller:f,controllerAs:"ctrl"})},l.generate=function(){return l.is_generating=!0,o.generate(l.domain).then((function(e){return c.add({type:"success",message:r.maketext("Key generated successfully."),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}),l.goToInnerView("dsrecords",e.enabled[l.domain].new_key_id)})).catch((function(e){c.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){l.is_generating=!1}))},l.load=function(){return l.keys=[],l.is_loading=!0,o.fetch(l.domain).then((function(e){l.keys=e,function(e){for(var t=0,i=e.length;t<i;t++){var n=e[t];if(n.active=a.parsePerlBoolean(n.active),n.bits_msg=r.maketext("[quant,_1,bit,bits]",n.bits),n.isExpanded=!1,void 0!==n.created&&"0"!==n.created){var s=o.getSuggestedKeyRotationDate(n.created,n.key_type);n.should_rotate=s<u,n.created=r.local_datetime(n.created,"datetime_format_medium")}else n.created=r.maketext("Unknown")}}(l.keys)})).catch((function(e){c.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){l.is_loading=!1}))},l.init=function(){s.dnssec?l.load():(l.loading_error=!0,l.loading_error_message=r.maketext("This feature is not available to your account."))},l.init()}]),{namespace:n}})),define("shared/js/zone_editor/views/dnssec_generate",["angular","cjt/util/locale","lodash","app/services/features","cjt/directives/actionButtonDirective","cjt/directives/alertList","cjt/services/alertService","app/services/dnssec","uiBootstrap","cjt/services/cpanel/componentSettingSaverService"],(function(e,t,r,a){"use strict";var i="shared.zoneEditor.views.dnssecGenerate";return e.module(i,[]).controller("DnsSecGenerateController",["$scope","$routeParams","DnsSecService",a.serviceName,"alertService","defaultInfo","$document","componentSettingSaverService",function(e,a,i,n,o,s,c,d){var l=this;l.domain=a.domain,l.is_loading=!1,l.loading_error=!1,l.loading_error_message="",l.settings={};var u={showAllHelp:!0};l.isRTL=s.isRTL,l.details={setup:"classic",algorithm:8,active:!0},l.backToListView=function(){return i.goToInnerView("",l.domain)},l.goToDSRecords=function(e){return i.goToInnerView("dsrecords",l.domain,e)},l.toggleHelp=function(){l.settings.showAllHelp=!l.settings.showAllHelp,d.set("zone_editor_dnssec",l.settings)},l.isClassicSetup=function(){return"classic"===l.details.setup},l.onSetupSelect=function(e){"simple"===e.target.value&&(l.details.algorithm=13)},l.generate=function(e){return i.generate(l.domain,e.algorithm,e.setup,e.active).then((function(e){o.add({type:"success",message:t.maketext("Key generated successfully"),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}),l.goToDSRecords(e.enabled[l.domain].new_key_id)})).catch((function(e){o.add({type:"danger",message:r.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})}))},l.init=function(){c[0].body.scrollIntoView();var e=d.getCached("zone_editor_dnssec").cachedValue;r.merge(l.settings,u,e||{}),n.dnssec||(l.loading_error=!0,l.loading_error_message=t.maketext("This feature is not available to your account."))},l.init()}]),{namespace:i}})),define("shared/js/zone_editor/views/dnssec_ds_records",["angular","lodash","cjt/util/locale","cjt/util/parse","app/services/features","cjt/directives/actionButtonDirective","cjt/directives/alertList","cjt/services/alertService","app/services/dnssec","uiBootstrap"],(function(e,t,r,a,i){"use strict";var n="shared.zoneEditor.views.dnssecDSRecords";return e.module(n,[]).controller("DnsSecDSRecordsController",["$scope","$q","$routeParams","DnsSecService",i.serviceName,"alertService","defaultInfo",function(e,i,n,o,s,c,d){var l=this;l.domain=n.domain,l.keyId=n.keyid,l.is_loading=!1,l.loading_error=!1,l.loading_error_message="",l.keyContent={},l.isRTL=d.isRTL,l.goToInnerView=function(e,t){return o.goToInnerView(e,l.domain,t)},l.backToListView=function(){return l.goToInnerView("")},l.putOnClipboard=function(e){try{o.copyTextToClipboard(e),c.add({type:"success",message:r.maketext("Successfully copied to the clipboard."),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"})}catch(e){c.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})}},l.load=function(){return l.is_loading=!0,o.fetch(l.domain).then((function(e){var t;e.length&&(t=function(e,t){t=parseInt(t);for(var i=0,n=e.length;i<n;i++){var o=e[i];if(o.key_id===t)return{active:a.parsePerlBoolean(o.active),algoDesc:o.algo_desc,algoNum:o.algo_num,algoTag:o.algo_tag,flags:o.flags,keyTag:o.key_tag,keyId:o.key_id,bits:o.bits,bitsMsg:r.maketext("[quant,_1,bit,bits]",o.bits),created:void 0!==o.created&&"0"!==o.created?r.local_datetime(o.created,"datetime_format_medium"):r.maketext("Unknown"),digests:o.digests.map((function(e){return{algoDesc:e.algo_desc,algoNum:e.algo_num,digest:e.digest}}))}}}(e,l.keyId)),t||(l.loading_error=!0,l.loading_error_message=r.maketext("The [asis,DNSSEC] key you were trying to view does not exist.")),l.keyContent=t})).catch((function(e){c.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){l.is_loading=!1}))},l.init=function(){if(s.dnssec)return l.load();l.loading_error=!0,l.loading_error_message=r.maketext("This feature is not available to your account.")},l.init()}]),{namespace:n}})),define("shared/js/zone_editor/views/dnssec_import",["angular","lodash","cjt/util/locale","app/services/features","cjt/directives/actionButtonDirective","cjt/directives/alertList","cjt/services/alertService","cjt/directives/validationContainerDirective","cjt/directives/validationItemDirective","app/services/dnssec","uiBootstrap","cjt/services/cpanel/componentSettingSaverService"],(function(e,t,r,a){"use strict";var i="shared.zoneEditor.views.dnssecImport";return e.module(i,[]).controller("DnsSecImportController",["$scope","$routeParams","DnsSecService",a.serviceName,"alertService","defaultInfo","componentSettingSaverService",function(e,a,i,n,o,s,c){var d=this;d.domain=a.domain,d.keyId=a.keyid,d.loading_error=!1,d.loading_error_message="",d.settings={};var l={showAllHelp:!0};d.isRTL=s.isRTL,d.details={keyToImport:"",keyType:"KSK"},d.goToInnerView=function(e,t){return i.goToInnerView(e,d.domain,t)},d.backToListView=function(){return o.clear(void 0,"zoneEditor"),d.goToInnerView("")},d.goToDSRecords=function(e){return d.goToInnerView("dsrecords",e)},d.toggleHelp=function(){d.settings.showAllHelp=!d.settings.showAllHelp,c.set("zone_editor_dnssec",d.settings)},d.importKey=function(e){if(d.importForm.$submitted=!0,d.importForm.$valid&&!d.importForm.$pending)return i.importKey(d.domain,e.keyType,e.keyToImport).then((function(e){o.clear(void 0,"zoneEditor"),o.add({type:"success",message:r.maketext("Key imported successfully"),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"}),d.goToDSRecords(e.new_key_id)})).catch((function(e){o.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})}))},d.init=function(){var e=c.getCached("zone_editor_dnssec").cachedValue;t.merge(d.settings,l,e||{}),n.dnssec||(d.loading_error=!0,d.loading_error_message=r.maketext("This feature is not available to your account."))},d.init()}]),{namespace:i}})),define("shared/js/zone_editor/views/dnssec_export",["angular","lodash","cjt/util/locale","app/services/features","cjt/directives/actionButtonDirective","cjt/directives/alertList","cjt/services/alertService","cjt/directives/validationContainerDirective","cjt/directives/validationItemDirective","app/services/dnssec","uiBootstrap","cjt/services/cpanel/componentSettingSaverService"],(function(e,t,r,a){"use strict";var i="shared.zoneEditor.views.dnssecExport";return e.module(i,[]).controller("DnsSecExportController",["$scope","$routeParams","DnsSecService",a.serviceName,"alertService","defaultInfo","componentSettingSaverService",function(e,a,i,n,o,s,c){var d=this;d.domain=a.domain,d.keyId=a.keyid,d.is_loading=!1,d.loading_error=!1,d.loading_error_message="",d.isRTL=s.isRTL,d.backToListView=function(){return i.goToInnerView("",d.domain)},d.putOnClipboard=function(e){try{i.copyTextToClipboard(e),o.add({type:"success",message:r.maketext("Successfully copied to the clipboard."),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"})}catch(e){o.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})}},d.load=function(){return d.is_loading=!0,i.exportKey(d.domain,d.keyId).then((function(e){d.keyContent=e.key_content,d.keyTag=e.key_tag,d.keyType=e.key_type})).catch((function(e){o.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){d.is_loading=!1}))},d.init=function(){n.dnssec?d.load():(d.loading_error=!0,d.loading_error_message=r.maketext("This feature is not available to your account."))},d.init()}]),{namespace:i}})),define("shared/js/zone_editor/views/dnssec_dnskey",["angular","lodash","cjt/util/locale","app/services/features","cjt/directives/actionButtonDirective","cjt/directives/alertList","cjt/services/alertService","cjt/directives/validationContainerDirective","cjt/directives/validationItemDirective","app/services/dnssec","uiBootstrap","cjt/services/cpanel/componentSettingSaverService"],(function(e,t,r,a){"use strict";var i="shared.zoneEditor.views.dnssecDnskey";return e.module(i,[]).controller("DnsSecDnskeyController",["$scope","$routeParams","DnsSecService",a.serviceName,"alertService","defaultInfo","componentSettingSaverService",function(e,a,i,n,o,s,c){var d=this;d.domain=a.domain,d.keyId=a.keyid,d.is_loading=!1,d.loading_error=!1,d.loading_error_message="",d.isRTL=s.isRTL,d.backToListView=function(){return i.goToInnerView("",d.domain)},d.putOnClipboard=function(e){try{i.copyTextToClipboard(e),o.add({type:"success",message:r.maketext("Successfully copied to the clipboard."),closeable:!0,replace:!1,autoClose:1e4,group:"zoneEditor"})}catch(e){o.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})}},d.load=function(){return d.is_loading=!0,i.exportPublicDnsKey(d.domain,d.keyId).then((function(e){d.publicDNSKEY=e.dnskey})).catch((function(e){o.add({type:"danger",message:t.escape(e),closeable:!0,replace:!1,group:"zoneEditor"})})).finally((function(){d.is_loading=!1}))},d.init=function(){n.dnssec?d.load():(d.loading_error=!0,d.loading_error_message=r.maketext("This feature is not available to your account."))},d.init()}]),{namespace:i}})),define("app/services/zones",["angular","lodash","cjt/util/locale","cjt/io/api","cjt/io/api2-request","cjt/io/uapi-request","cjt/util/httpStatus","cjt/core","cjt/util/base64","cjt/io/api2","cjt/io/uapi"],(function(e,t,r,a,i,n,o,s,c){"use strict";return e.module("cpanel.zoneEditor.services.zones",[]).factory("Zones",["$q",function(d){var l={};function u(e,t){var r=new n.Class;r.initialize("DNS","mass_edit_zone"),r.addArgument("zone",e),r.addArgument("serial",l.zone_serial_number),t.forEach((function(t){"MX"===t.record_type&&t.dname===e&&(t.dname=t.dname+".")}));var a=t.filter((function(e){return e.is_new})),i=t.filter((function(e){return!e.is_new}));a.forEach((function(e){delete e.is_new})),i.forEach((function(e){delete e.is_new}));var o=a.map((function(e){return JSON.stringify(e)}));r.addArgument("add",o);var s=i.map((function(e){return JSON.stringify(e)}));return r.addArgument("edit",s),l.zoneDefaultTTL=null,l._promise(r).then((function(e){return(e=e.parsedResponse).status?e.status:d.reject(e)})).catch((function(e){return e.status?d.reject(l.request_failure_message(e.status)):d.reject(e.error)}))}return l.zones=[],l.zone_serial_number="",l.zoneDefaultTTL=null,l.generated_domains=[],l._promise=function(e){return d.when(a.promise(e.getRunArguments()))},l.saveRecords=function(e,t){return t[0].from_domain_list?l.fetch(e).then((function(){return t.forEach((function(e){e.ttl=parseInt(l.zoneDefaultTTL,10)})),u(e,t)})):u(e,t)},l.trimTrailingDot=function(e){return e=e.replace(/\.$/,"")},l.fetch=function(e){var t=new n.Class;return t.initialize("DNS","parse_zone"),t.addArgument("zone",e),l._promise(t).then((function(t){var r=t.parsedResponse;if(r.status){for(var a,i,n=[],o=0,s=r.data.length;o<s;o++)if("record"===(i=r.data[o]).type)if("A"===i.record_type||"AAAA"===i.record_type||"ALIAS"===i.record_type||"CAA"===i.record_type||"CNAME"===i.record_type||"MX"===i.record_type||"SRV"===i.record_type||"TXT"===i.record_type){switch(i.txtdata=[],i.name=c.decodeUTF8(i.dname_b64),i.name!==e+"."&&(i.name=i.name+"."+e+"."),i.id_prefix=i.record_type.toLowerCase(),i.data_b64.forEach((function(e){i.txtdata.push(c.decodeUTF8(e))})),i.record_type){case"MX":i.priority=i.txtdata[0],i.exchange=l.trimTrailingDot(i.txtdata[1]);break;case"SRV":i.priority=i.txtdata[0],i.weight=i.txtdata[1],i.port=i.txtdata[2],i.target=l.trimTrailingDot(i.txtdata[3]);break;case"CAA":i.flag=i.txtdata[0],i.tag=i.txtdata[1],i.value=i.txtdata[2];break;case"CNAME":i.record=l.trimTrailingDot(i.txtdata[0]);break;default:i.record=i.txtdata[0]}n.push(i)}else"SOA"===i.record_type&&(i.txtdata=[],i.data_b64.forEach((function(e){i.txtdata.push(c.decodeUTF8(e))})),l.zone_serial_number=i.txtdata[2]);else"control"===i.type&&(a=(a=(a=c.decodeUTF8(i.text_b64)).split(" "))[1],l.zoneDefaultTTL=parseInt(a,10));return{parsedZoneData:n,defaultTTL:a}}return d.reject(r)})).catch((function(e){return e.status?d.reject(l.request_failure_message(e.status)):d.reject(e.error)}))},l.remove_zone_record=function(e,t){return function(e,t,r){var a=new n.Class;return a.initialize("DNS","mass_edit_zone"),a.addArgument("zone",e),a.addArgument("serial",r),a.addArgument("remove",t),l._promise(a).then((function(e){return!!(e=e.parsedResponse).status||d.reject(e)})).catch((function(e){return e.status?d.reject(l.request_failure_message(e.status)):d.reject(e.error)}))}(e,t,l.zone_serial_number)},l.reset_zone=function(e){var t=new i.Class;return t.initialize("ZoneEdit","resetzone"),t.addArgument("domain",e),l._promise(t).then((function(e){return!!(e=e.parsedResponse).status||d.reject(e)})).catch((function(e){return e.status?d.reject(l.request_failure_message(e.status)):d.reject(e.error)}))},l.fetch_generated_domains=function(e,r){if(0===t.keys(l.generated_domains).length||r){var a=new i.Class;return a.initialize("ZoneEdit","fetch_cpanel_generated_domains"),a.addArgument("domain",e),l._promise(a).then((function(e){return e=e.parsedResponse,l.generated_domains=function(e,t){for(var r={},a=0,i=e.length;a<i;a++)e[a][t]&&e[a][t].length>0&&(r[e[a][t]]=!0);return r}(e.data,"domain"),l.generated_domains})).catch((function(e){return d.reject(l.request_failure_message(e.status))}))}return d.when(l.generated_domains)},l.format_zone_name=function(t,r){var a=r;if(!e.isDefined(a)||null===a||""===a)return"";if("."!==r.charAt(r.length-1)&&(a+="."),!e.isDefined(t)||null===t||""===t)return a;var i=t+".";return a.slice(-1*i.length).toLowerCase()!==i.toLowerCase()&&(a+=i),a},l.request_failure_message=function(e){var t=r.maketext("The API request failed with the following error: [_1] - [_2].",e,o.convertHttpStatusToReadable(e));return 401!==e&&403!==e||(t+=" "+r.maketext("Your session may have expired or you logged out of the system. [output,url,_1,Login] again to continue.",s.getLoginPath())),t},l}])})),define("app/services/page_data_service",["angular","shared/js/zone_editor/models/dynamic_table"],(function(e,t){"use strict";e.module("cpanel.zoneEditor").factory("pageDataService",[function(){return{prepareDefaultInfo:function(e){e.has_adv_feature=e.has_adv_feature||!1,e.has_simple_feature=e.has_simple_feature||!1,e.has_dnssec_feature=e.has_dnssec_feature||!1,e.has_mx_feature=e.has_mx_feature||!1,e.domains=e.domains||[];var r=t.PAGE_SIZES;return"number"!=typeof e.zones_per_page&&(e.zones_per_page=parseInt(e.zones_per_page,10)),e.zones_per_page&&-1!==r.indexOf(e.zones_per_page)||(e.zones_per_page=t.DEFAULT_PAGE_SIZE),"number"!=typeof e.domains_per_page&&(e.domains_per_page=parseInt(e.domains_per_page,10)),e.domains_per_page&&-1!==r.indexOf(e.domains_per_page)||(e.domains_per_page=t.DEFAULT_PAGE_SIZE),e.isRTL=e.isRTL||!1,e}}}])})),define("app/services/domains",["angular","jquery","cjt/util/locale","cjt/io/api","cjt/io/api2-request","cjt/io/api2","cjt/util/httpStatus","cjt/core"],(function(e,t,r,a,i,n,o,s){"use strict";return e.module("cpanel.zoneEditor").factory("Domains",["$q","defaultInfo",function(e,t){var n={domains:[],fetch:function(t){if(0===n.domains.length||t){var c=new i.Class;return c.initialize("DomainLookup","getbasedomains"),e.when(a.promise(c.getRunArguments())).then((function(t){return(t=t.parsedResponse).status?(n.domains=t.data,n.domains):e.reject(t.error)})).catch((function(t){var a=r.maketext("The API request failed with the following error: [_1] - [_2].",t.status,o.convertHttpStatusToReadable(t.status));return 401!==t.status&&403!==t.status||(a+=" "+r.maketext("Your session may have expired or you logged out of the system. [output,url,_1,Login] again to continue.",s.getLoginPath())),e.reject(a)}))}return e.when(n.domains)},init:function(){n.domains=t.domains}};return n.init(),n}])})),define("app/index",["angular","app/services/features","app/services/recordTypes","shared/js/zone_editor/views/domain_selection","shared/js/zone_editor/views/manage","shared/js/zone_editor/views/dnssec","shared/js/zone_editor/views/dnssec_generate","shared/js/zone_editor/views/dnssec_ds_records","shared/js/zone_editor/views/dnssec_import","shared/js/zone_editor/views/dnssec_export","shared/js/zone_editor/views/dnssec_dnskey","shared/js/zone_editor/directives/convert_to_full_record_name","cjt/core","shared/js/zone_editor/directives/base_validators","shared/js/zone_editor/directives/dmarc_validators","shared/js/zone_editor/directives/caa_validators","cjt/modules","ngRoute","uiBootstrap","app/services/dnssec","app/services/zones"],(function(e,t,r,a,i,n,o,s,c,d,l,u,m){"use strict";return function(){return e.module("cpanel.zoneEditor",["ngRoute","ui.bootstrap","cjt2.cpanel","cpanel.zoneEditor.services.dnssec","cpanel.zoneEditor.services.zones",r.namespace,t.namespace,a.namespace,i.namespace,n.namespace,o.namespace,s.namespace,c.namespace,d.namespace,l.namespace,u.namespace]),require(["cjt/bootstrap","cjt/util/locale","cjt/directives/breadcrumbs","cjt/services/alertService","cjt/directives/alert","cjt/directives/alertList","cjt/services/cpanel/componentSettingSaverService","app/services/page_data_service","app/services/domains","app/services/zones","app/services/dnssec","app/services/features"],(function(t,r){var a=e.module("cpanel.zoneEditor");a.value("RECORD_TYPES",PAGE.RECORD_TYPES),a.factory("defaultInfo",["pageDataService",function(e){return e.prepareDefaultInfo(PAGE)}]),a.config(["$routeProvider",function(e){e.when("/list",{controller:"ListDomainsController",controllerAs:"list",templateUrl:"views/domain_selection.ptt",breadcrumb:{id:"domains_list",name:r.maketext("Domains"),path:"/list"}}),e.when("/manage",{controller:"ManageZoneRecordsController",controllerAs:"manage",templateUrl:"views/manage.ptt",breadcrumb:{id:"manage",name:r.maketext("Manage Zone"),path:"/manage/",parentID:"domains_list"}}),e.when("/dnssec",{controller:"DnsSecController",controllerAs:"dnssec",templateUrl:"views/dnssec.ptt",breadcrumb:{id:"dnssec",name:"DNSSEC",path:"/dnssec/",parentID:"domains_list"}}),e.when("/dnssec/generate",{controller:"DnsSecGenerateController",controllerAs:"dnssec",templateUrl:"views/dnssec_generate.ptt",breadcrumb:{id:"dnssecGenerate",name:r.maketext("Generate"),path:"/dnssec/generate",parentID:"dnssec"}}),e.when("/dnssec/dsrecords",{controller:"DnsSecDSRecordsController",controllerAs:"dnssec",templateUrl:"views/dnssec_ds_records.ptt",breadcrumb:{id:"dnssecDSRecords",name:r.maketext("[asis,DS] Records"),path:"/dnssec/dsrecords",parentID:"dnssec"}}),e.when("/dnssec/import",{controller:"DnsSecImportController",controllerAs:"dnssec",templateUrl:"views/dnssec_import.ptt",breadcrumb:{id:"dnssecImport",name:r.maketext("Import"),path:"/dnssec/import",parentID:"dnssec"}}),e.when("/dnssec/export",{controller:"DnsSecExportController",controllerAs:"dnssec",templateUrl:"views/dnssec_export.ptt",breadcrumb:{id:"dnssecExport",name:r.maketext("Export"),path:"/dnssec/export",parentID:"dnssec"}}),e.when("/dnssec/dnskey",{controller:"DnsSecDnskeyController",controllerAs:"dnssec",templateUrl:"views/dnssec_dnskey.ptt",breadcrumb:{id:"dnssecDNSKEY",name:r.maketext("Public [asis,DNSKEY]"),path:"/dnssec/dnskey",parentID:"dnssec"}}),e.otherwise({redirectTo:"/list"})}]),a.run(["componentSettingSaverService",function(e){e.register("zone_editor_dnssec")}]),t("#content","cpanel.zoneEditor")}))}}));