"use strict";(self.webpackChunkmysql_manager=self.webpackChunkmysql_manager||[]).push([[179],{205:(_,U,l)=>{var y=l(1481),e=l(6738),k=l(9241),d=l(1221);class C{constructor(n,t,a,i){this.name=n,this.users=t,this.size=a,this.formattedSize=i}}var f=l(2291),u=l(7709),I=l(5529),q=l(1086),Q=l(567),E=l(4850),S=l(1709);class F{constructor(n,t,a){this.username=n,this.password=t,this.privileges=a}}var h=l(269),M=l(8638);let R=(()=>{class s{constructor(t){this.http=t}createDatabase(t){if(null===t||""===t)throw new Error("The name field must be defined and not an empty string.");const a=new f.j({namespace:"Mysql",method:"create_database",arguments:[new u.h("name",t)]});return this.http.post(a)}createUser(t,a){if(null===t||""===t)throw new Error("The name field must be defined and not an empty string.");if(null===a||""===a)throw new Error("The password field must be defined and not an empty string.");const i=new f.j({namespace:"Mysql",method:"create_user",arguments:[new u.h("name",t),new u.h("password",a)]});return this.http.post(i)}updatePrivileges(t,a,i=[]){if(null===t||""===t)throw new Error("The database field must be defined and not an empty string.");if(null===a||""===a)throw new Error("The user field must be defined and not an empty string.");const r=new f.j({namespace:"Mysql",method:"set_privileges_on_database",arguments:[new u.h("database",t),new u.h("user",a),new u.h("privileges",i.join(","))]});return this.http.post(r)}fetchDatabases(){const t=new f.j({namespace:"Mysql",method:"list_databases",arguments:[]});return this.http.post(t)}}return s.\u0275fac=function(t){return new(t||s)(e.LFG(M.Tr))},s.\u0275prov=e.Yz7({token:s,factory:s.\u0275fac,providedIn:"root"}),s})();class w{constructor(n,t=!1){this.response=n,this.done=t}}let A=(()=>{class s{constructor(t,a,i){this.locale=a,this._http=i,this._cache={},this._databaseItems=[],this._api=t}get databaseItems(){return this._databaseItems}set databaseItems(t){this._databaseItems=t}get databaseCount(){return this.databaseItems.length}fetchDatabases(){return this._api.fetchDatabases().pipe((0,E.U)(t=>{if(t.hasErrors)throw t.errors;return null!==t.data&&(this.databaseItems=this._getDatabaseObjects(t.data)),t}))}deleteDatabase(t){if(null===t||""===t)throw new Error("The database name field must be defined and not an empty string.");const a=new f.j({namespace:"Mysql",method:"delete_database",arguments:[new u.h("name",t)]});return this._http.post(a)}renameDatabase(t,a){if(null===t||""===t)throw new Error(this.locale.maketext("The field \u201c[_1]\u201d, must be defined and not an empty string.","oldDatabaseName"));if(null===a||""===a)throw new Error(this.locale.maketext("The field \u201c[_1]\u201d, must be defined and not an empty string.","newDatabaseName"));const i=new f.j({namespace:"Mysql",method:"rename_database",arguments:[new u.h("oldname",t),new u.h("newname",a)]});return this._http.post(i)}createDatabase(t){const a=new I.xQ,i=!!(t.users&&t.users.length>0);return this._api.createDatabase(t.name).subscribe(r=>{if(r.success){if(a.next(new w(r,!i)),i){const p=[];t.users.forEach(g=>{const Ae=this._api.createUser(g.username,g.password).pipe((0,S.zg)(H=>(a.next(new w(H)),H.success?this._api.updatePrivileges(t.name,g.username,class B{static toApiFormat(n){return n?.map(t=>t.name)}}.toApiFormat(g.privileges)).pipe((0,S.zg)(Ze=>(a.next(new w(Ze)),(0,q.of)(1)))):(0,q.of)(1))));p.push(Ae)}),(0,Q.D)(p).subscribe(g=>{a.next(new w(null,!0))})}this.databaseItems.push(t)}else a.next(new w(r,!0))}),a}_formatRoundedNumber(t,a){return t.toFixed(a).replace(/\.00$/,"")}_formatDatabaseSize(t,a=2){let i="";return i=t<1024?this.locale.maketext("[quant,_1,byte,bytes]",t):this.locale.maketext(t<1048576?`${this._formatRoundedNumber(t/1024,a)} KB`:t<1073741824?`${this._formatRoundedNumber(t/1048576,a)} MB`:t<1099511627776?`${this._formatRoundedNumber(t/1073741824,a)} GB`:t<0x4000000000000?`${this._formatRoundedNumber(t/1099511627776,a)} TB`:t<0x1000000000000000?`${this._formatRoundedNumber(t/0x4000000000000,a)} PB`:t<11805916207174113e5?`${this._formatRoundedNumber(t/0x1000000000000000,a)} EB`:t<12089258196146292e8?`${this._formatRoundedNumber(t/11805916207174113e5,a)} ZB`:`${this._formatRoundedNumber(t/12089258196146292e8,a)} YB`),i}_getDatabaseObjects(t){return t.map(a=>{const i=a.users.map(r=>new F(r));return new C(a.database,i,a.disk_usage,this._formatDatabaseSize(a.disk_usage))})}}return s.\u0275fac=function(t){return new(t||s)(e.LFG(R),e.LFG(h.g),e.LFG(M.Tr))},s.\u0275prov=e.Yz7({token:s,factory:s.\u0275fac,providedIn:"root"}),s})();var D=l(7489);class Z{constructor(n){this._router=n}routeTo(n){this._router.navigate([n])}id(n=(0,D.uniqueId)()){return(0,D.lowerFirst)(this.constructor.name)+"-"+n}}var o=l(3063),m=(()=>{return(s=m||(m={})).asc="asc",s.desc="desc",m;var s})();let L=(()=>{class s{get nativeWindow(){return window}}return s.\u0275fac=function(t){return new(t||s)},s.\u0275prov=e.Yz7({token:s,factory:s.\u0275fac,providedIn:"root"}),s})(),x=(()=>{class s{constructor(t){this.winRef=t}property(t,a="PAGE"){return this.winRef.nativeWindow[a][t]}properties(t="PAGE"){return this.winRef.nativeWindow[t]}}return s.\u0275fac=function(t){return new(t||s)(e.LFG(L))},s.\u0275prov=e.Yz7({token:s,factory:s.\u0275fac,providedIn:"root"}),s})();var b=l(6895);function j(s,n){if(1&s&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&s){const t=e.oxw(2);e.xp6(1),e.Oqu(t.locale.maketext("Loading \u2026"))}}function P(s,n){if(1&s&&(e.TgZ(0,"div",2)(1,"div",3),e.YNc(2,j,2,1,"ng-template",null,4,e.W1O),e._UZ(4,"cp-loading-spinner",5),e.qZA()()),2&s){const t=e.MAs(3);e.xp6(4),e.Q6J("loadingTemplate",t)}}function O(s,n){if(1&s&&(e.TgZ(0,"div",2)(1,"div",3)(2,"cp-callout",6)(3,"pre",7),e._uU(4),e.qZA()()()()),2&s){const t=e.oxw();e.xp6(4),e.Oqu(t.loadFailureMessage)}}function G(s,n){if(1&s&&e._UZ(0,"i"),2&s){const t=e.oxw().$implicit,a=e.oxw(2);e.Tol(a.sortDirClass),e.uIk("title",t.title)}}function $(s,n){if(1&s){const t=e.EpF();e.TgZ(0,"th",23)(1,"a",24),e.NdJ("click",function(){const r=e.CHM(t).$implicit;return e.oxw(2).changeSort(r.key)}),e._UZ(2,"span",25),e._uU(3," \xa0 "),e.YNc(4,G,1,3,"i",26),e.qZA()()}if(2&s){const t=n.$implicit,a=e.oxw(2);e.Q6J("ngClass",t.cssClasses),e.xp6(2),e.Q6J("innerHtml",t.title,e.oJD),e.xp6(2),e.Q6J("ngIf",t.key===a.sortConfig.key)}}function W(s,n){if(1&s&&(e.ynx(0),e.TgZ(1,"li",29),e._uU(2),e.qZA(),e.BQk()),2&s){const t=n.$implicit,a=e.oxw().$implicit;e.xp6(1),e.hYB("id","user-",t.username,"-of-",a.model.name,""),e.xp6(1),e.hij(" ",t.username," ")}}function z(s,n){if(1&s){const t=e.EpF();e.TgZ(0,"tr",23)(1,"td",37)(2,"div",38)(3,"div",39)(4,"div",40)(5,"span",41),e._uU(6,"?"),e.qZA()(),e.TgZ(7,"div",40)(8,"div",42),e._UZ(9,"span",43)(10,"p",25),e.qZA(),e.TgZ(11,"div",42)(12,"cp-action-button",44),e.NdJ("click",function(){e.CHM(t);const i=e.oxw().$implicit;return e.oxw(3).performDeleteDatabase(i)}),e._UZ(13,"i",35),e._uU(14),e.qZA(),e.TgZ(15,"button",45),e.NdJ("click",function(){return e.CHM(t),e.oxw().$implicit.showDeletePrompt=!1}),e._uU(16),e.qZA()()()()()()()}if(2&s){const t=e.oxw().$implicit,a=e.oxw(3);e.Q6J("ngClass",a.rowStatus(t)),e.xp6(9),e.Q6J("innerHtml",a.locale.maketext("Are you sure about deleting \u201c[_1]\u201d?",t.model.name),e.oJD),e.xp6(1),e.Q6J("innerHtml",a.locale.maketext("This action will [output,strong,permanently] delete all the data. We recommended that you create a [output,url,_1,backup,target,blank] of the database before deleting.",a.backupAppUrl),e.oJD),e.xp6(2),e.MGl("id","btn-confirm-delete-database_",t.model.name,""),e.s9C("title",a.locale.maketext("Click here to delete the database.")),e.Q6J("buttonClass",t.deleteDatabaseButton.buttonClass)("buttonState",t.deleteDatabaseButton.buttonState),e.xp6(2),e.hij(" ",a.locale.maketext("Delete")," "),e.xp6(1),e.MGl("id","cancelDelete_",t.model.name,""),e.Q6J("disabled",t.deleteInProcess),e.xp6(1),e.hij(" ",a.locale.maketext("Cancel")," ")}}function X(s,n){if(1&s){const t=e.EpF();e.ynx(0),e.TgZ(1,"tr",28)(2,"td",29),e._uU(3),e.qZA(),e.TgZ(4,"td",30),e._uU(5),e.qZA(),e.TgZ(6,"td",30)(7,"ul"),e.YNc(8,W,3,3,"ng-container",27),e.qZA()(),e.TgZ(9,"td",31)(10,"button",32),e.NdJ("click",function(){const r=e.CHM(t).$implicit;return e.oxw(3).routeTo("/databases/"+r.model.name)}),e._UZ(11,"i",33),e._uU(12),e.qZA(),e.TgZ(13,"button",34),e.NdJ("click",function(){return e.CHM(t).$implicit.showDeletePrompt=!0}),e._UZ(14,"i",35),e._uU(15),e.qZA()()(),e.YNc(16,z,17,11,"tr",36),e.BQk()}if(2&s){const t=n.$implicit,a=e.oxw(3);e.xp6(1),e.MGl("id","row-",t.model.name,""),e.Q6J("ngClass",a.rowStatus(t)),e.xp6(1),e.MGl("id","name-",t.model.name,""),e.xp6(1),e.hij(" ",t.model.name," "),e.xp6(1),e.MGl("id","size-",t.model.name,""),e.xp6(1),e.hij(" ",t.model.formattedSize," "),e.xp6(1),e.MGl("id","users-",t.model.name,""),e.xp6(2),e.Q6J("ngForOf",t.model.users),e.xp6(2),e.MGl("id","manage-database-",t.model.name,""),e.xp6(2),e.hij(" ",a.locale.maketext("Manage")," "),e.xp6(1),e.MGl("id","btn-delete-",t.model.name,""),e.Q6J("disabled",t.showDeletePrompt),e.xp6(2),e.hij(" ",a.locale.maketext("Delete")," "),e.xp6(1),e.Q6J("ngIf",t.showDeletePrompt)}}function K(s,n){if(1&s&&(e.TgZ(0,"tbody"),e.YNc(1,X,17,14,"ng-container",27),e.qZA()),2&s){const t=e.oxw(2);e.xp6(1),e.Q6J("ngForOf",t.displayRows)}}function ee(s,n){if(1&s&&(e.TgZ(0,"tbody")(1,"tr",46)(2,"td"),e._uU(3),e.qZA()()()),2&s){const t=e.oxw(2);e.xp6(2),e.uIk("colspan",t.tableHeaders.length+1),e.xp6(1),e.hij(" ",t.locale.maketext("No databases exist.")," ")}}function te(s,n){if(1&s&&(e.TgZ(0,"tbody")(1,"tr",46)(2,"td"),e._uU(3),e.qZA()()()),2&s){const t=e.oxw(2);e.xp6(2),e.uIk("colspan",t.tableHeaders.length+1),e.xp6(1),e.hij(" ",t.locale.maketext("No results match your query.")," ")}}const ae=function(){return["/users/create"]};function se(s,n){if(1&s){const t=e.EpF();e.TgZ(0,"div",2)(1,"div",8)(2,"div",9)(3,"div",3)(4,"div",10)(5,"button",11),e.NdJ("click",function(){return e.CHM(t),e.oxw().routeTo("/databases/create")}),e._UZ(6,"i",12),e._uU(7),e.qZA()()()(),e.TgZ(8,"section",13)(9,"table",14)(10,"thead")(11,"tr"),e.YNc(12,$,5,3,"th",15),e._UZ(13,"th"),e.qZA()(),e.YNc(14,K,2,1,"tbody",16),e.YNc(15,ee,4,2,"tbody",16),e.YNc(16,te,4,2,"tbody",16),e.qZA()()(),e.TgZ(17,"div",17)(18,"section",18)(19,"h3",19),e._uU(20),e.qZA(),e.TgZ(21,"ul")(22,"li")(23,"a",20),e._UZ(24,"i",12),e._uU(25),e.qZA()(),e.TgZ(26,"li")(27,"a",21),e._UZ(28,"i",22),e._uU(29),e.qZA()()()()()()}if(2&s){const t=e.oxw();e.xp6(7),e.hij(" ",t.locale.maketext("Create Database")," "),e.xp6(5),e.Q6J("ngForOf",t.tableHeaders),e.xp6(2),e.Q6J("ngIf",t.showList),e.xp6(1),e.Q6J("ngIf",t.showWhenListIsEmpty),e.xp6(1),e.Q6J("ngIf",t.showWhenSearchIsEmpty),e.xp6(4),e.hij(" ",t.locale.maketext("I want to?")," "),e.xp6(3),e.s9C("title",t.locale.maketext("Go to the Create Database User interface.")),e.Q6J("routerLink",e.DdM(12,ae)),e.xp6(2),e.hij(" ",t.locale.maketext("Create Database User")," "),e.xp6(2),e.s9C("title",t.locale.maketext("Go to the phpMyAdmin interface.")),e.Q6J("href",t.phpMyAdminUrl,e.LSH),e.xp6(2),e.hij(" ",t.locale.maketext("Go to phpMyAdmin[comment,link title]")," ")}}class ie{constructor(n,t){this.id=n,this.model=t,this.showDeletePrompt=!1,this.deleteInProcess=!1,this.deleteDatabaseButton={buttonClass:"btn btn-sm btn-primary",buttonState:o.FP.enabled}}}let v=(()=>{class s extends Z{constructor(t,a,i,r,p){super(t),this.locale=a,this.prefetchService=i,this.databaseService=r,this.alertService=p,this.filteredRows=[],this.displayRows=[],this.phpMyAdminUrl="",this.backupAppUrl="",this.loadingData=!0,this.loadFailureMessage="",this.sortConfig={direction:m.asc,key:"model.name"},this.phpMyAdminUrl=i.property("php_my_admin_url"),this.backupAppUrl=i.property("backup_app_url")}get sortDirClass(){return this.sortConfig.direction===m.asc?"icon-arrow-up":"icon-arrow-down"}get showLoadingMessage(){return this.loadingData&&""===this.loadFailureMessage}get showFailureMessageOnLoad(){return!this.loadingData&&""!==this.loadFailureMessage}get showContent(){return!this.loadingData&&""===this.loadFailureMessage}get showWhenSearchIsEmpty(){return 0!==this.databaseService.databaseItems.length&&0===this.filteredRows.length}get showWhenListIsEmpty(){return 0===this.databaseService.databaseItems.length}get showList(){return this.filteredRows.length>0}get databaseCount(){return this.databaseService.databaseItems.length}rowStatus(t){if(t.showDeletePrompt)return"warning"}changeSort(t){this.sortConfig.key===t?this.sortConfig.direction=this.sortConfig.direction===m.asc?m.desc:m.asc:this.sortConfig.key=t,this.applyMetadata(this._sort(this.filteredRows))}applyMetadata(t){this.filteredRows=t,this.displayRows=this.filteredRows}loadDatabases(){this.databaseService.fetchDatabases().subscribe(t=>{if(t.success)if(this.databaseService.databaseCount<=0)this.routeTo("databases/create");else{const a=this.databaseService.databaseItems.map(i=>new ie(i.name,i));this.applyMetadata(a)}else t.hasErrors&&t.errors.length>0&&t.errors.forEach(a=>{this.alertService.error(a.message)})},t=>{this.loadFailureMessage=t,this.loadingData=!1},()=>{this.loadingData=!1})}performDeleteDatabase(t){t.deleteDatabaseButton.buttonState=o.FP.loading,t.deleteInProcess=!0,this.databaseService.deleteDatabase(t.model.name).subscribe({next:a=>{if(a.success){const i=this.locale.maketext("Deleted the \u201c[_1]\u201d database.",t.model.name);this.alertService.success(i),this.loadDatabases()}else a.hasErrors&&a.errors.forEach(i=>{this.alertService.error(i.message)})},complete:()=>{this._resetDeletePrompt(t)}})}ngOnInit(){this.tableHeaders=[{key:"model.name",title:this.locale.maketext("Database Name"),cssClasses:["name-column"]},{key:"model.size",title:this.locale.maketext("Size"),cssClasses:["hidden-xs"]},{key:"model.users",title:this.locale.maketext("Database Users"),cssClasses:["hidden-xs"]}],this.loadDatabases()}_sort(t){return D.orderBy(t,this.sortConfig.key,this.sortConfig.direction)}_resetDeletePrompt(t){t.showDeletePrompt=!1,t.deleteDatabaseButton.buttonState=o.FP.enabled,t.deleteInProcess=!1}}return s.\u0275fac=function(t){return new(t||s)(e.Y36(d.F0),e.Y36(h.g),e.Y36(x),e.Y36(A),e.Y36(o.c9))},s.\u0275cmp=e.Xpm({type:s,selectors:[["cp-mysql-manager-list-view"]],features:[e.qOj],decls:4,vars:3,consts:[["id","database-list"],["class","row",4,"ngIf"],[1,"row"],[1,"col-xs-12"],["loadingDataTemplate",""],["id","loadingDataLoader",3,"loadingTemplate"],["id","loadFailureMessage","calloutType","danger"],[1,"unlink-error-pre"],[1,"col-xs-12","col-sm-12","col-md-9"],[1,"row","action-bar"],[1,"pull-right","flip"],["id","create-database","type","button",1,"btn","btn-primary","btn-sm","action-button",3,"click"],["aria-hidden","true",1,"fas","fa-plus"],[1,"list-section"],["id","database-table",1,"table","table-striped","responsive-table","details-table"],[3,"ngClass",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"col-xs-12","col-sm-6","col-md-3"],[1,"widget","no-top-margin"],[1,"widget-title"],["href","#",3,"routerLink","title"],["target","_blank",3,"href","title"],["aria-hidden","true",1,"fas","fa-fw","fa-external-link-alt"],[3,"ngClass"],["href","javascript:void(0)",1,"sort-link",3,"click"],[3,"innerHtml"],[3,"class",4,"ngIf"],[4,"ngFor","ngForOf"],[3,"id","ngClass"],[3,"id"],[1,"hidden-xs",3,"id"],[1,"action-column"],["type","button",1,"btn","btn-outline-primary","btn-sm",3,"id","click"],["aria-hidden","true",1,"fas","fa-wrench"],[1,"btn","btn-outline-primary","btn-sm","pull-right","flip",3,"id","disabled","click"],["aria-hidden","true",1,"fas","fa-trash"],[3,"ngClass",4,"ngIf"],["colspan","4"],[1,"delete-warning"],[1,"display-table"],[1,"display-table-cell"],[1,"delete-question-mark"],[1,"box"],[1,"delete-message","wordbreak",3,"innerHtml"],[3,"id","buttonClass","buttonState","title","click"],["type","button",1,"btn","btn-link","btn-sm",3,"id","disabled","click"],[1,"info","empty-row"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,P,5,1,"div",1),e.YNc(2,O,5,1,"div",1),e.YNc(3,se,30,13,"div",1),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf",a.showLoadingMessage),e.xp6(1),e.Q6J("ngIf",a.showFailureMessageOnLoad),e.xp6(1),e.Q6J("ngIf",a.showContent))},directives:[b.O5,o.go,o.Oc,b.sg,b.mk,o.xV,d.yS],styles:[".action-bar[_ngcontent-%COMP%] .action-button[_ngcontent-%COMP%]{margin-left:5px;margin-right:5px}"]}),s})();class T{constructor(n,t,a){this.name=n,this.description=t,this.link=a}}var c=l(4006);const oe=[[["","form-field-label",""]],[["","form-field-control",""]],[["","form-field-validator",""]]],re=["[form-field-label]","[form-field-control]","[form-field-validator]"];let V=(()=>{class s{constructor(){this.showAllHelp=!1}ngOnInit(){this.id=`formField_${this.for}`,this.labelID=`${this.id}_formLabel`}}return s.\u0275fac=function(t){return new(t||s)},s.\u0275cmp=e.Xpm({type:s,selectors:[["cp-mysql-manager-form-field"]],inputs:{for:"for",label:"label",showAllHelp:"showAllHelp"},ngContentSelectors:re,decls:11,vars:5,consts:[[1,"form-group"],[1,"row"],[1,"col-xs-12"],[3,"id","for","labelText","showInfoBlock"]],template:function(t,a){1&t&&(e.F$t(oe),e.TgZ(0,"div",0)(1,"div",1)(2,"div",2)(3,"cp-form-label",3),e.Hsn(4),e.qZA()()(),e.TgZ(5,"div",1)(6,"div",2),e.Hsn(7,1),e.qZA()(),e.TgZ(8,"div",1)(9,"div",2),e.Hsn(10,2),e.qZA()()()),2&t&&(e.uIk("id",a.id),e.xp6(3),e.Q6J("id",a.labelID)("for",a.for)("labelText",a.label)("showInfoBlock",a.showAllHelp))},directives:[o._P],styles:[""]}),s})(),N=(()=>{class s{validate(t){return c.kI.required(t)?{required:{message:this.message}}:null}}return s.\u0275fac=function(t){return new(t||s)},s.\u0275dir=e.lG2({type:s,selectors:[["","cpMysqlManagerValidateRequire",""]],inputs:{message:["cpMysqlManagerValidateRequire","message"]},features:[e._Bn([{provide:c.Cf,useExisting:s,multi:!0}])]}),s})(),le=(()=>{class s{constructor(t,a){this.prefetchService=t,this.locale=a,this.databaseNameLengthLimit=64,this.anythingButPrintable7BitAscii=/[^\u0020-\u007e]/,this.mysqlDbNameWildcards=/(_|%|\\)/g,this.mysqlStartedAllowingFilesysCharacters=50116,this.mysqlStartedAllowingLongUserNames=1e5,this.prefix=t.property("db_prefix")}performMySqlDatabaseNameValidation(t){let a=null;return a={invalid:!1,message:"error"},a=this._verifyNameLengthLimit(t),null!==a||(a=this._verifyDatabaseNameIgnoreLength(t),null!==a)||(a=this._verifyDatabaseName(t)),a}_verifyNameLengthLimit(t){let a=null,i=this.databaseNameLengthLimit;this.prefix&&(i-=this.prefix.length+1);const r=unescape(encodeURIComponent(t)).length-i;return r>0&&(a={invalid:!0,message:this.locale.maketext("This value is too long by [quant,_1,character,characters]. The maximum length is [quant,_2,character,characters].",r,i)}),a}_verifyDatabaseNameIgnoreLength(t){return this.anythingButPrintable7BitAscii.test(t)?{invalid:!0,message:this.locale.maketext("This system allows only printable [asis,ASCII] characters in database names.")}:/[`'"]/.test(t)?{invalid:!0,message:this.locale.maketext("This system prohibits the following [numerate,_1,character,characters] in database names: [list_or,_2]",3,["'",'"',"`"])}:/\//.test(t)?{invalid:!0,message:this.locale.maketext("This system prohibits the slash ([_1]) character in database names.","/")}:null}_verifySpecialWildcardsInDatabaseNames(t){if(null===t)return null;const a=t.replace(this.mysqlDbNameWildcards,"\\$1").length;let i=this.databaseNameLengthLimit;this.prefix&&(i-=this.prefix.length+1);const r=a-i;return r>0?{invalid:!0,message:this.locale.maketext("This database name has too many wildcard-sensitive characters ([list_and_quoted,_1]). The system stores each of these as two characters internally, up to a limit of [quant,_2,character,characters]. This name would take up [quant,_3,character,characters] of internal storage, which is [numf,_4] too many.",["\\","_","%"],i,a,r)}:null}_convertVersionStringToNumber(t){return t.match(/mariadb/i)&&(t=t.replace(/^[^-]+-/,"")),parseInt(t.replace(/-.*/,"").split(/\./).map(a=>a.padStart(2,"0")).join(""),10)}_verifyDatabaseName(t){if(null!==t&&t.endsWith(" "))return{invalid:!0,message:this.locale.maketext("A [asis,MariaDB]/[asis,MySQL] database name cannot end with a space character.")};if(/\\/.test(t))return{invalid:!0,message:this.locale.maketext("This system prohibits the backslash ([_1]) character in [asis,MariaDB]/[asis,MySQL] database names.","\\")};const a=this._verifySpecialWildcardsInDatabaseNames(t);if(null!==a)return a;const i=this.prefetchService.property("mysql_server_version");return i&&this._convertVersionStringToNumber(i)<this.mysqlStartedAllowingFilesysCharacters&&/[\/\\.]/.test(t)?{invalid:!0,message:this.locale.maketext("This system\u2019s [asis,MySQL] version ([_1]) prohibits the character \u201c[_2]\u201d in database names. Ask your administrator to upgrade to a [asis,MariaDB] or to a newer [asis,MySQL] version.",i,".")}:null}}return s.\u0275fac=function(t){return new(t||s)(e.LFG(x),e.LFG(h.g))},s.\u0275prov=e.Yz7({token:s,factory:s.\u0275fac,providedIn:"root"}),s})(),J=(()=>{class s{constructor(t){this.mysqlHelper=t}validate(t){const a=this.databaseNameValidator(t);return a&&!a.valid?{databasename:{message:a.message}}:null}databaseNameValidator(t){return"mysql"===this.databaseType?this.mysqlHelper.performMySqlDatabaseNameValidation(t.value):null}}return s.\u0275fac=function(t){return new(t||s)(e.Y36(le))},s.\u0275dir=e.lG2({type:s,selectors:[["","cpMysqlManagerValidateDatabaseName",""]],inputs:{databaseType:["cpMysqlManagerValidateDatabaseName","databaseType"]},features:[e._Bn([{provide:c.Cf,useExisting:s,multi:!0}])]}),s})();const ce=["f"];function de(s,n){if(1&s){const t=e.EpF();e.TgZ(0,"div",37)(1,"div",1)(2,"div",38)(3,"cp-mysql-manager-form-field",11)(4,"div",12),e._uU(5),e.qZA(),e.TgZ(6,"div",13)(7,"div",14)(8,"span",15)(9,"span",16),e._uU(10),e.qZA()(),e.TgZ(11,"input",39),e.NdJ("input",function(){return e.CHM(t),e.oxw().usernameEdited()})("ngModelChange",function(i){return e.CHM(t),e.oxw().newDatabaseUsername=i}),e.qZA()()()()(),e.TgZ(12,"div",38)(13,"cp-mysql-manager-form-field",11)(14,"div",12),e._uU(15),e.qZA(),e.TgZ(16,"div",13)(17,"div",40),e._UZ(18,"div",9),e.TgZ(19,"span",41),e._uU(20,"SELECT, INSERT, UPDATE, DELETE"),e.qZA()()()()()()()}if(2&s){const t=e.oxw();e.xp6(3),e.Q6J("showAllHelp",t.showAllHelp)("for",t.id("user-name-label"))("label",t.locale.maketext("Database Username")),e.xp6(2),e.hij(" ",t.locale.maketext("When the system creates the database, it creates the database user with this name.")," "),e.xp6(3),e.s9C("title",t.prefix),e.xp6(2),e.hij(" ",t.prefix," "),e.xp6(1),e.s9C("placeholder",t.locale.maketext("Database username")),e.Q6J("id",t.id("txt-user-name"))("ngModel",t.newDatabaseUsername),e.xp6(2),e.Q6J("showAllHelp",t.showAllHelp)("for",t.id("db-privileges"))("label",t.locale.maketext("Default Privileges")),e.xp6(2),e.hij(" ",t.locale.maketext("When the system creates a database with a database user, it assigns these database privileges to the user.")," "),e.xp6(4),e.Q6J("id",t.id("privileges"))}}const pe=function(s,n){return{"fa-arrow-left":s,"fa-arrow-right":n}},ue=function(){return["/users/create"]},he=["f"];function be(s,n){if(1&s&&(e.TgZ(0,"div",3)(1,"div",4)(2,"cp-callout",5),e._UZ(3,"span",6),e.qZA()()()),2&s){const t=e.oxw();e.xp6(3),e.Q6J("innerHTML",t.databaseNotFoundMessage,e.oJD)}}function ge(s,n){if(1&s&&e._UZ(0,"span",10),2&s){const t=e.oxw(2);e.Q6J("innerHtml",t.locale.maketext("Loading database \u201c[_1]\u201d information \u2026",t.currentDatabaseName),e.oJD)}}function fe(s,n){if(1&s&&(e.TgZ(0,"div",7)(1,"div",4),e.YNc(2,ge,1,1,"ng-template",null,8,e.W1O),e._UZ(4,"cp-loading-spinner",9),e.qZA()()),2&s){const t=e.MAs(3);e.xp6(4),e.Q6J("loadingTemplate",t)}}const _e=function(s,n){return{"fa-arrow-left":s,"fa-arrow-right":n}},we=function(){return["/users/create"]};function xe(s,n){if(1&s){const t=e.EpF();e.TgZ(0,"section",11)(1,"form",null,12)(3,"div",13)(4,"div",14)(5,"div",15)(6,"div",16)(7,"div",17),e._uU(8),e.qZA(),e.TgZ(9,"div",18)(10,"button",19),e.NdJ("click",function(){return e.CHM(t),e.oxw().toggleHelp()}),e._uU(11),e._UZ(12,"i",20),e.qZA()(),e._UZ(13,"div",21),e.qZA(),e.TgZ(14,"div",22)(15,"cp-mysql-manager-form-field",23)(16,"div",24),e._uU(17),e.qZA(),e.TgZ(18,"div",25)(19,"div",26)(20,"span",27)(21,"span",28),e._uU(22),e._UZ(23,"input",29),e.qZA()(),e.TgZ(24,"input",30),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().databaseModel.name=i}),e.qZA()()(),e.TgZ(25,"div",31),e._UZ(26,"cp-validation-container",32),e.qZA()()(),e.TgZ(27,"div",33)(28,"cp-action-button",34),e.NdJ("click",function(){return e.CHM(t),e.oxw().updateDatabase()}),e._UZ(29,"i",35),e._uU(30),e.qZA(),e.TgZ(31,"button",36),e.NdJ("click",function(){return e.CHM(t),e.oxw().goBackClicked()}),e._UZ(32,"i",37),e._uU(33),e.qZA()()()(),e.TgZ(34,"div",38)(35,"section",39)(36,"h3",40),e._uU(37),e.qZA(),e.TgZ(38,"ul")(39,"li")(40,"a",41),e._UZ(41,"i",42),e._uU(42),e.qZA()()()()()()()()}if(2&s){const t=e.MAs(2),a=e.oxw();e.xp6(8),e.hij(" ",a.locale.maketext("Manage Database")," "),e.xp6(3),e.hij(" ",a.getToggleHelpLabel()," "),e.xp6(4),e.Q6J("for",a.id("txt-database-name"))("label",a.locale.maketext("Database Name"))("showAllHelp",a.showAllHelp),e.xp6(2),e.hij(" ",a.locale.maketext("Rename this database only if necessary.")," "),e.xp6(3),e.s9C("title",a.prefix),e.xp6(2),e.hij(" ",a.prefix," "),e.xp6(1),e.s9C("value",a.prefix),e.Q6J("id",a.id("database-name-prefix")),e.xp6(1),e.s9C("placeholder",a.locale.maketext("Database name[comment,label title]")),e.Q6J("id",a.id("txt-database-name"))("ngModel",a.databaseModel.name)("cpMysqlManagerValidateRequire",a.locale.maketext("A database name cannot be empty."))("cpMysqlManagerValidateDatabaseName","mysql"),e.xp6(2),e.Q6J("id",a.id("database-name-validation-container"))("control",t.controls.dbName),e.xp6(2),e.s9C("title",a.locale.maketext("Click here to update the database.")),e.Q6J("id",a.id("btn-update-database"))("buttonClass",a.updateActionButton.buttonClass)("buttonState",a.updateActionButton.buttonState),e.xp6(2),e.hij(" ",a.locale.maketext("Update")," "),e.xp6(1),e.s9C("title",a.locale.maketext("Go back to the list of databases.")),e.Q6J("id",a.id("go-back")),e.xp6(1),e.Q6J("ngClass",e.WLB(30,_e,!a.isRTL,a.isRTL)),e.xp6(1),e.hij(" ",a.locale.maketext("Go Back")," "),e.xp6(4),e.hij(" ",a.locale.maketext("I want to?")," "),e.xp6(3),e.s9C("title",a.locale.maketext("Go to the Create Database User interface.")),e.Q6J("routerLink",e.DdM(33,we)),e.xp6(2),e.hij(" ",a.locale.maketext("Create Database User")," ")}}const ve=[{path:"databases",component:v,data:{id:"databases",tab:"databases"}},{path:"databases/create",component:(()=>{class s extends Z{constructor(t,a,i,r,p){super(t),this.alertService=a,this.databaseService=i,this.prefetchService=r,this.locale=p,this.stayInView=!1,this.isRTL=!1,this._showCreateUserView=!1,this.createUserToggle={labelPosition:o.Gy.right,toggleState:o.Yg.toggleOn},this._newDatabaseUsername="",this._databaseUsernameEdited=!1,this._showAllHelp=!1,this.prefix=r.property("db_prefix"),this.isRTL=r.property("isRTL"),this.createActionButton={buttonClass:"btn-primary",buttonState:o.FP.enabled}}get showAllHelp(){return this._showAllHelp}set showAllHelp(t){this._showAllHelp=t}get databaseUsernameEdited(){return this._databaseUsernameEdited}set databaseUsernameEdited(t){this._databaseUsernameEdited=t}get newDatabaseUsername(){return this._newDatabaseUsername}set newDatabaseUsername(t){this._newDatabaseUsername=t}get showCreateUserView(){return this._showCreateUserView}set showCreateUserView(t){this._showCreateUserView=t}get createDatabaseForm(){return this._createDatabaseForm}set createDatabaseForm(t){this._createDatabaseForm=t}get createActionButton(){return this._createActionButton}set createActionButton(t){this._createActionButton=t}ngOnInit(){this.resetDatabaseForm()}ngAfterViewInit(){this.createDatabaseForm.resetForm()}getToggleHelpLabel(){return this.locale.maketext(this.showAllHelp?"Hide Help Text":"Show Help Text")}toggleHelp(){this.showAllHelp=!this.showAllHelp}goBackClicked(){this.routeTo("/databases")}resetDatabaseForm(){this.databaseModel=new C("",[]),this.createUserToggle.toggleState=o.Yg.toggleOff,this.showCreateUserView=!1,this.createDatabaseForm&&this.createDatabaseForm.resetForm()}autoFillDatabaseUsername(){this.newDatabaseUsername=this.databaseUsernameEdited?"":this.databaseModel.name+"user"}usernameEdited(){this.databaseUsernameEdited=""!==this.newDatabaseUsername}showCreateUserSection(){this.createUserToggle.toggleState=this.createUserToggle.toggleState===o.Yg.toggleOff?o.Yg.toggleOn:o.Yg.toggleOff,this.showCreateUserView=!this.showCreateUserView,this.newDatabaseUsername=this.createUserToggle.toggleState===o.Yg.toggleOff?"":this.newDatabaseUsername}submitForm(){if(this.createDatabaseForm.valid){const t=`${this.prefix}${this.databaseModel.name}`;let a;this.showCreateUserView&&this.newDatabaseUsername&&(a=[new F(`${this.prefix}${this.newDatabaseUsername}`,"test$1234#go",[new T("SELECT"),new T("INSERT"),new T("UPDATE"),new T("DELETE")])]);const i=new C(t,a);this.createDatabase(i)}}createDatabase(t){this.createActionButton.buttonState=o.FP.loading,this.databaseService.createDatabase(t).subscribe({next:a=>{a.done?(a.response&&!a.response.success?(console.error(a.response.errors.map(i=>i.message).join("\n")),a.response.errors.forEach(i=>{this.alertService.error(i.message)})):this.alertService.success(this.locale.maketext("The system successfully created the database and related resources.")),this.createActionButton.buttonState=o.FP.enabled,this.stayInView||this.routeTo("/databases"),this.resetDatabaseForm()):a.response.success||(console.error(a.response),a.response.errors.forEach(i=>{this.alertService.error(i.message)}))}})}}return s.\u0275fac=function(t){return new(t||s)(e.Y36(d.F0),e.Y36(o.c9),e.Y36(A),e.Y36(x),e.Y36(h.g))},s.\u0275cmp=e.Xpm({type:s,selectors:[["cp-mysql-manager-create-database-view"]],viewQuery:function(t,a){if(1&t&&e.Gf(ce,5),2&t){let i;e.iGM(i=e.CRH())&&(a._createDatabaseForm=i.first)}},features:[e.qOj],decls:50,vars:41,consts:[["f","ngForm"],[1,"row"],[1,"col-xs-12","col-md-9"],[1,"panel","panel-default"],[1,"panel-heading"],[1,"widget-title","pull-left","flip"],[1,"pull-right","flip"],["type","button","id","lnkshowHideHelp",1,"btn","btn-default","btn-xs",3,"click"],[1,"far","fa-question-circle","form-info-sign"],[1,"clearfix"],[1,"panel-body"],[3,"showAllHelp","for","label"],["form-field-label",""],["form-field-control",""],[1,"input-group"],[1,"input-group-addon",3,"title"],[1,"text-truncate","user-prefix-text"],["type","hidden","name","cpuserPrefix",3,"id","value"],["name","dbName","type","text","autocomplete","off",1,"form-control",3,"id","ngModel","placeholder","cpMysqlManagerValidateRequire","cpMysqlManagerValidateDatabaseName","ngModelChange","input"],["form-field-validator",""],[3,"id","control"],[1,"create-user-heading"],["id","toggleSwitchForCreateUser",3,"toggleState","labelPosition","toggleStatus"],["class","section-body",4,"ngIf"],[1,"panel-footer"],[1,"checkbox","create-database-checkbox"],["type","checkbox","name","checkToStay",3,"id","ngModel","ngModelChange"],[3,"innerHTML"],[1,"separator"],[3,"id","buttonClass","buttonState","title","click"],["aria-hidden","true",1,"fas","fa-plus"],["type","button",1,"btn","btn-link","pull-right","flip",3,"id","title","click"],["aria-hidden","true",1,"fas",3,"ngClass"],[1,"col-xs-12","col-md-3"],[1,"widget"],[1,"widget-title"],["href","#",3,"routerLink","title"],[1,"section-body"],[1,"col-xs-12","col-md-6"],["name","dbUsername","type","text","autocomplete","off",1,"form-control",3,"id","placeholder","ngModel","input","ngModelChange"],[1,"privilege-list"],[3,"id"]],template:function(t,a){if(1&t&&(e.TgZ(0,"form",null,0)(2,"div",1)(3,"div",2)(4,"div",3)(5,"div",4)(6,"div",5),e._uU(7),e.qZA(),e.TgZ(8,"div",6)(9,"button",7),e.NdJ("click",function(){return a.toggleHelp()}),e._uU(10),e._UZ(11,"i",8),e.qZA()(),e._UZ(12,"div",9),e.qZA(),e.TgZ(13,"div",10)(14,"cp-mysql-manager-form-field",11)(15,"div",12),e._uU(16),e.qZA(),e.TgZ(17,"div",13)(18,"div",14)(19,"span",15)(20,"span",16),e._uU(21),e._UZ(22,"input",17),e.qZA()(),e.TgZ(23,"input",18),e.NdJ("ngModelChange",function(r){return a.databaseModel.name=r})("input",function(){return a.autoFillDatabaseUsername()}),e.qZA()()(),e.TgZ(24,"div",19),e._UZ(25,"cp-validation-container",20),e.qZA()(),e.TgZ(26,"h4",21),e._uU(27),e.TgZ(28,"cp-toggle-switch",22),e.NdJ("toggleStatus",function(){return a.showCreateUserSection()}),e.qZA()(),e.YNc(29,de,21,14,"div",23),e.qZA(),e.TgZ(30,"div",24)(31,"div",25)(32,"label")(33,"input",26),e.NdJ("ngModelChange",function(r){return a.stayInView=r}),e.qZA(),e._UZ(34,"span",27),e.qZA()(),e._UZ(35,"hr",28),e.TgZ(36,"cp-action-button",29),e.NdJ("click",function(){return a.submitForm()}),e._UZ(37,"i",30),e._uU(38),e.qZA(),e.TgZ(39,"button",31),e.NdJ("click",function(){return a.goBackClicked()}),e._UZ(40,"i",32),e._uU(41),e.qZA()()()(),e.TgZ(42,"div",33)(43,"section",34)(44,"h3",35),e._uU(45),e.qZA(),e.TgZ(46,"ul")(47,"li")(48,"a",36),e._uU(49),e.qZA()()()()()()()),2&t){const i=e.MAs(1);e.xp6(7),e.hij(" ",a.locale.maketext("Create Database")," "),e.xp6(3),e.hij(" ",a.getToggleHelpLabel()," "),e.xp6(4),e.Q6J("showAllHelp",a.showAllHelp)("for",a.id("database-name"))("label",a.locale.maketext("Database Name")),e.xp6(2),e.hij(" ",a.locale.maketext("The system creates the database with this name.")," "),e.xp6(3),e.s9C("title",a.prefix),e.xp6(2),e.hij(" ",a.prefix," "),e.xp6(1),e.s9C("value",a.prefix),e.Q6J("id",a.id("database-name-prefix")),e.xp6(1),e.s9C("placeholder",a.locale.maketext("Database name")),e.Q6J("id",a.id("txt-database-name"))("ngModel",a.databaseModel.name)("cpMysqlManagerValidateRequire",a.locale.maketext("A database name cannot be empty."))("cpMysqlManagerValidateDatabaseName","mysql"),e.xp6(2),e.Q6J("id",a.id("database-name-validation-container"))("control",i.controls.dbName),e.xp6(2),e.hij(" ",a.locale.maketext("Create database user[comment,header title]")," "),e.xp6(1),e.Q6J("toggleState",a.createUserToggle.toggleState)("labelPosition",a.createUserToggle.labelPosition),e.xp6(1),e.Q6J("ngIf",a.showCreateUserView),e.xp6(4),e.Q6J("id",a.id("check-to-stay"))("ngModel",a.stayInView),e.xp6(1),e.Q6J("innerHTML",a.locale.maketext("Stay on this page after I click [output,em,Create]."),e.oJD),e.xp6(2),e.s9C("title",a.locale.maketext("Click here to create a new database.")),e.Q6J("id",a.id("btn-create-database"))("buttonClass",a.createActionButton.buttonClass)("buttonState",a.createActionButton.buttonState),e.xp6(2),e.hij(" ",a.locale.maketext("Create")," "),e.xp6(1),e.s9C("title",a.locale.maketext("Go back to the list of databases.")),e.Q6J("id",a.id("go-back")),e.xp6(1),e.Q6J("ngClass",e.WLB(37,pe,!a.isRTL,a.isRTL)),e.xp6(1),e.hij(" ",a.locale.maketext("Go Back")," "),e.xp6(4),e.hij(" ",a.locale.maketext("I want to?")," "),e.xp6(3),e.s9C("title",a.locale.maketext("Go to the Create Database User interface.")),e.Q6J("routerLink",e.DdM(40,ue)),e.xp6(1),e.hij(" ",a.locale.maketext("Create Database User")," ")}},directives:[c._Y,c.JL,c.F,V,c.Fj,c.JJ,c.On,N,J,o.fm,o.MF,b.O5,c.Wl,o.xV,b.mk,d.yS],styles:[".privilege-list[_ngcontent-%COMP%]{padding-top:8px}"]}),s})(),data:{id:"create_database",tab:"databases"}},{path:"databases/:database",component:(()=>{class s extends Z{constructor(t,a,i,r,p,g){super(t),this._activeRoute=a,this.alertService=i,this.databaseService=r,this.prefetchService=p,this.locale=g,this.databaseModel=new C(""),this.isRTL=!1,this.databaseNotFound=!1,this.loadingData=!1,this.prefix=p.property("db_prefix"),this.isRTL=p.property("isRTL"),this.updateActionButton={buttonClass:"btn-primary",buttonState:o.FP.enabled}}get manageDatabaseForm(){return this._manageDatabaseForm}ngOnInit(){this._paramSubscription=this._activeRoute.params.subscribe(t=>{this._currentDatabaseName=t.database,this.loadDatabases()})}ngOnDestroy(){this._paramSubscription.unsubscribe()}get showLoadingMessage(){return this.loadingData&&!this.databaseNotFound}get showContent(){return!this.loadingData&&!this.databaseNotFound}get showFailureMessageOnLoad(){return!this.loadingData&&this.databaseNotFound}get currentDatabaseName(){return this._currentDatabaseName}loadDatabases(){this.loadingData=!0,this.databaseService.fetchDatabases().subscribe(t=>{t.success?this.setupManageView(this.databaseService.databaseItems,this._currentDatabaseName):t.hasErrors&&t.errors.length>0&&t.errors.forEach(a=>{this.alertService.error(a.message)})},t=>{this.databaseNotFound=!0,this.databaseNotFoundMessage=this.locale.maketext("Error occurred while fetching databases."),this.loadingData=!1},()=>{this.loadingData=!1})}setupManageView(t,a){this.databaseModel=(0,D.find)(t,["name",a]),this.databaseModel?this.databaseModel.name=this.databaseModel.name.replace(new RegExp("^"+this.prefix),""):(this.databaseNotFound=!0,this.databaseNotFoundMessage=this.locale.maketext("Database \u201c[_1]\u201d does not exist. You may have arrived at this page by accident. Select a database to manage from [output,url,_2,list databases,_3,_4].",a,"#","[routerLink]","['/databases']"))}getToggleHelpLabel(){return this.locale.maketext(this.showAllHelp?"Hide Help Text":"Show Help Text")}toggleHelp(){this.showAllHelp=!this.showAllHelp}goBackClicked(){this.routeTo("/databases")}updateDatabase(){if(this.manageDatabaseForm.valid){const t=this.prefix+this.databaseModel.name;this.updateActionButton.buttonState=o.FP.loading,this.databaseService.renameDatabase(this._currentDatabaseName,t).subscribe({next:a=>{a.success?(this.alertService.success(this.locale.maketext("Renamed the \u201c[_1]\u201d database.",this.databaseModel.name)),this.routeTo(`databases/${t}`)):a.hasErrors&&a.errors.forEach(i=>{this.alertService.error(i.message)})},complete:()=>{this.updateActionButton.buttonState=o.FP.enabled}})}}}return s.\u0275fac=function(t){return new(t||s)(e.Y36(d.F0),e.Y36(d.gz),e.Y36(o.c9),e.Y36(A),e.Y36(x),e.Y36(h.g))},s.\u0275cmp=e.Xpm({type:s,selectors:[["cp-mysql-manager-database-view"]],viewQuery:function(t,a){if(1&t&&e.Gf(he,5),2&t){let i;e.iGM(i=e.CRH())&&(a._manageDatabaseForm=i.first)}},features:[e.qOj],decls:3,vars:3,consts:[["id","database-not-found","class","row",4,"ngIf"],["id","manage-view-loading","class","row",4,"ngIf"],["id","manage-database-view",4,"ngIf"],["id","database-not-found",1,"row"],[1,"col-xs-12"],["id","loadFailureMessage","calloutType","danger"],[1,"unlink-error-pre",3,"innerHTML"],["id","manage-view-loading",1,"row"],["loadingDataTemplate",""],["id","loadingDataLoader",3,"loadingTemplate"],[3,"innerHtml"],["id","manage-database-view"],["f","ngForm"],[1,"row"],[1,"col-xs-12","col-md-9"],[1,"panel","panel-default"],[1,"panel-heading"],[1,"widget-title","pull-left","flip"],[1,"pull-right","flip"],["type","button","id","lnkShowHideHelp",1,"btn","btn-default","btn-xs",3,"click"],[1,"far","fa-question-circle","form-info-sign"],[1,"clearfix"],[1,"panel-body"],[3,"for","label","showAllHelp"],["form-field-label",""],["form-field-control",""],[1,"input-group"],[1,"input-group-addon",3,"title"],[1,"text-truncate","user-prefix-text"],["type","hidden","name","cpuserPrefix",3,"id","value"],["name","dbName","type","text","autocomplete","off",1,"form-control",3,"id","ngModel","placeholder","cpMysqlManagerValidateRequire","cpMysqlManagerValidateDatabaseName","ngModelChange"],["form-field-validator",""],[3,"id","control"],[1,"panel-footer"],[3,"id","buttonClass","buttonState","title","click"],["aria-hidden","true",1,"fas","fa-pencil-alt"],["type","button",1,"btn","btn-link","pull-right","flip",3,"id","title","click"],["aria-hidden","true",1,"fas",3,"ngClass"],[1,"col-xs-12","col-md-3"],[1,"widget"],[1,"widget-title"],["href","#",3,"routerLink","title"],["aria-hidden","true",1,"fas","fa-plus"]],template:function(t,a){1&t&&(e.YNc(0,be,4,1,"div",0),e.YNc(1,fe,5,1,"div",1),e.YNc(2,xe,43,34,"section",2)),2&t&&(e.Q6J("ngIf",a.showFailureMessageOnLoad),e.xp6(1),e.Q6J("ngIf",a.showLoadingMessage),e.xp6(1),e.Q6J("ngIf",a.showContent))},directives:[b.O5,o.Oc,o.go,c._Y,c.JL,c.F,V,c.Fj,c.JJ,c.On,N,J,o.fm,o.xV,b.mk,d.yS],styles:[""]}),s})(),data:{id:"manage_database",tab:"databases"}},{path:"users",component:v,data:{id:"users",tab:"users"}},{path:"users/create",component:v,data:{id:"create_user",tab:"users"}},{path:"users/:user",component:v,data:{id:"edit_user",tab:"users"}},{path:"configuration",component:v,data:{id:"configuration",tab:"configuration"}},{path:"",redirectTo:"databases",pathMatch:"full"},{path:"**",redirectTo:"databases",pathMatch:"full"}];let ye=(()=>{class s{}return s.\u0275fac=function(t){return new(t||s)},s.\u0275mod=e.oAB({type:s}),s.\u0275inj=e.cJS({imports:[[d.Bz.forRoot(ve,{useHash:!0,enableTracing:!0,relativeLinkResolution:"legacy"})],d.Bz]}),s})(),Ce=(()=>{class s{constructor(t){this.locale=t}ngOnInit(){}}return s.\u0275fac=function(t){return new(t||s)(e.Y36(h.g))},s.\u0275cmp=e.Xpm({type:s,selectors:[["cp-mysql-manager-description"]],decls:1,vars:1,consts:[["id","descDatabaseManager",1,"description",3,"innerHTML"]],template:function(t,a){1&t&&e._UZ(0,"p",0),2&t&&e.Q6J("innerHTML",a.locale.maketext("MySQL\xae databases are required by many web applications, such as bulletin boards ([asis,phpBB\xae]), blogs ([asis,WordPress\xae]), and e-Commerce applications ([asis,WHMCS]). This interface allows you to create, manage, and delete MySQL\xae databases and database users. For more information, read the [output,url,_1,documentation,class,externalLink,target,_2,id,_3].","https://go.cpanel.net/MySql","_blank","lnkMySqlDocumentation"),e.oJD)},styles:[".description[_ngcontent-%COMP%]{max-width:1200px}"]}),s})(),De=(()=>{class s{constructor(t,a,i){this.router=t,this.route=a,this.locale=i,this.title="mysql-manager",this.activeTab="databases",t.events.subscribe(r=>{r instanceof d.m2&&(this.activeTab=a.root.firstChild.snapshot.data.tab)})}ngOnInit(){}routeTo(t,a){this.activeTab=a,this.router.navigate([t])}}return s.\u0275fac=function(t){return new(t||s)(e.Y36(d.F0),e.Y36(d.gz),e.Y36(h.g))},s.\u0275cmp=e.Xpm({type:s,selectors:[["cp-mysql-manager-root"]],decls:11,vars:6,consts:[["position","top-right"],[1,"row"],[1,"col-xs-12"],["segments",""],["id","databases",3,"active","heading","select"],["id","users",3,"active","heading","select"],["id","configuration",3,"active","heading","select"],[1,"body"]],template:function(t,a){1&t&&(e._UZ(0,"cp-mysql-manager-description")(1,"cp-alert-list",0),e.TgZ(2,"div",1)(3,"div",2)(4,"tabset",null,3)(6,"tab",4),e.NdJ("select",function(){return a.routeTo("/databases","databases")}),e.qZA(),e.TgZ(7,"tab",5),e.NdJ("select",function(){return a.routeTo("/users","users")}),e.qZA(),e.TgZ(8,"tab",6),e.NdJ("select",function(){return a.routeTo("/configuration","configuration")}),e.qZA()(),e.TgZ(9,"div",7),e._UZ(10,"router-outlet"),e.qZA()()()),2&t&&(e.xp6(6),e.s9C("heading",a.locale.maketext("Databases")),e.Q6J("active","databases"===a.activeTab),e.xp6(1),e.s9C("heading",a.locale.maketext("Database Users")),e.Q6J("active","users"===a.activeTab),e.xp6(1),e.s9C("heading",a.locale.maketext("Configuration")),e.Q6J("active","configuration"===a.activeTab))},directives:[Ce,o.hF,k.AH,k.wW,d.lC],styles:['.body[_ngcontent-%COMP%]{margin-top:20px}.externalLink[_ngcontent-%COMP%]:after{font-family:"Font Awesome 5 Free";font-weight:600;content:"\\f35d";display:inline-block;padding:0 3px;vertical-align:middle}']}),s})();var Te=l(348),ke=l(529);let Me=(()=>{class s{}return s.\u0275fac=function(t){return new(t||s)},s.\u0275mod=e.oAB({type:s,bootstrap:[De]}),s.\u0275inj=e.cJS({providers:[o.c9,L,x],imports:[[ye,o.nM,o.CQ,k.P4.forRoot(),y.b2,M.au,Te.m,c.u5,o.kM,o.zr,o.wL,o.Op,o.zf,o.df,ke.JF]]}),s})();(0,e.G48)(),y.q6().bootstrapModule(Me).catch(s=>console.error(s))}},_=>{_.O(0,[736],()=>_(_.s=205)),_.O()}]);