define("app/services/apiTokens",["angular","lodash","cjt/util/locale","cjt/io/uapi-request","cjt/io/batch-request","cjt/modules","cjt/io/api","cjt/io/uapi","cjt/services/APICatcher"],(function(e,t,n,i,a){"use strict";var r="cpanel.apiTokens.services.apiTokens",s="APITokensService",o=["APICatcher","$q","$log"],c=new Date;c=c.getTime()/1e3;var l=function(e,n,i,a,r){return this.id=e,this.new=!1,this.label=e,this.unrestricted=n,t.isBoolean(n)||(this.unrestricted=n&&"1"===n.toString()),this.features=i,this.createdOn=parseInt(a,10),this.expired=!1,this.expiresSoon=!1,this.hasExpiry=!1,r&&(this.hasExpiry=!0,this.expiresAt=parseInt(r,10),this.expiresAt<=c?this.expired=!0:this.expiresAt-c<86400&&(this.expiresSoon=!0)),this},u=function(r,s,o){var c=function(){};return c.prototype=Object.create(r),t.assign(c.prototype,{_featuresMetadata:null,_tokens:[],_promise:function(){return r.promise.apply(this,arguments)},_apiCall:function(e,t,n){var a=new i.Class;return a.initialize(e,t,n),a},_batchAPICall:function(e){return new a.Class(e)},_processAPITokenResult:function(e){var t=e.name,n=e.has_full_access,i=e.features,a=e.create_time,r=e.expires_at;return new l(t,n,i,a,r)},_processAPITokensResults:function(e){var t=e.data;return this._tokens=t.map(this._processAPITokenResult.bind(this)),this._tokens},_fetchTokens:function(){return this._apiCall("Tokens","list")},_deleteToken:function(e){return this._apiCall("Tokens","revoke",{name:e})},_processFeatureResult:function(e,t,n,i){return{label:n,id:t,installed:e&&"1"===e.toString(),badges:i}},_processFeaturesResults:function(i){var a=this,r=i.data;if(r){var s=[];e.forEach(r,(function(e,t){var i=t,r=[];if(a._featuresMetadata&&a._featuresMetadata[t]){var o=a._featuresMetadata[t];i=o.name,"1"===o.is_cpaddon.toString()&&r.push(n.maketext("[asis,cPAddon]")),"1"===o.is_plugin.toString()&&r.push(n.maketext("Plugin"))}s.push(a._processFeatureResult(e,t,i,r))}));var o=s.filter((function(e){return e.installed}));return t.sortBy(o,(function(e){return e.label}))}},_getFeatures:function(){return this._apiCall("Features","list_features")},_processFeatureMetadataResult:function(e){var t=e.data;this._featuresMetadata={},t&&t.forEach((function(e){this._featuresMetadata[e.id]=e}),this)},fetchTokens:function(){var e=this._fetchTokens();return this._promise(e).then(this._processAPITokensResults.bind(this))},getTokens:function(){return this._tokens},deleteTokens:function(e){var t=this,n=e.map(t._deleteToken.bind(t)).map(t._promise.bind(t));return s.all(n).then(t.fetchTokens.bind(t))},getFeatures:function(){var e=this,t=[this._getFeatures()];e._featuresMetadata||t.unshift(this._apiCall("Features","get_feature_metadata"));var n=e._batchAPICall(t);return e._promise(n).then((function(n){if(t.length>1){var i=n.data.shift();e._processFeatureMetadataResult.call(e,i)}return n.data.pop()})).then(e._processFeaturesResults.bind(e))},_processTokenCreationResults:function(e,t,n,i,a){var r=a.data,s=new l(e,t,n,(new Date).getTime()/1e3,i);return s.new=!0,this._tokens.push(s),r.token},createToken:function(e,t,n,i){var a;return a=t?this._apiCall("Tokens","create_full_access",{name:e,expires_at:i}):this._apiCall("Tokens","create_limited",{name:e,feature:n,expires_at:i}),this._promise(a).then(this._processTokenCreationResults.bind(this,e,t,n,i))},getTokenById:function(e){for(var t=this.getTokens(),n=0;n<t.length;n++)if(t[n].id===e)return t[n]},updateTokenRestrictions:function(e,t,n){var i,a=this;return i=t?this._apiCall("Tokens","set_full_access",{name:e}):this._apiCall("Tokens","set_features",{name:e,feature:n}),a._promise(i).then((function(){var i=a.getTokenById(e);i.unrestricted=t,i.features=n}))},renameToken:function(e,t){var n=this._apiCall("Tokens","rename",{name:e,new_name:t});return this._promise(n)}}),new c};return o.push(u),e.module(r,["cjt2.services.apicatcher"]).factory(s,o),{class:u,serviceName:s,namespace:r}})),define("app/directives/tableShowing",["angular","cjt/util/locale","cjt/core"],(function(e,t,n){"use strict";var i="directives/tableShowing.phtml",a="api_tokens/"+i,r=n.config.debug?n.buildFullPath(a):i,s="cpanel.apiTokens.tableShowing.directive",o=e.module(s,[]),c=function(e){e.getShowingText=function(){return t.maketext("[_1] - [_2] of [_3]",e.start,e.limit,e.total)}};return o.directive("tableShowing",(function(){return{templateUrl:r,restrict:"EA",scope:{start:"=",limit:"=",total:"="},transclude:!0,controller:["$scope",c]}})),{class:c,namespace:s,template:i}})),define("app/decorators/paginationDecorator",["angular","cjt/core","cjt/util/locale","uiBootstrap"],(function(e,t,n){"use strict";var i,a="cpanel.emailAccounts",r="decorators/pagination.phtml",s="email_accounts/"+r;try{i=e.module(a)}catch(t){i=e.module(a,["ui.bootstrap.pagination"])}return i.config(["$provide",function(e){e.decorator("uibPaginationDirective",["$delegate",function(e){var i=e[0],a=function(e,t){return n.maketext("Page [numf,_1] of [numf,_2]",e,t)};i.templateUrl=t.config.debug?t.buildFullPath(s):r;var o=i.link;return i.compile=function(){return function(e,t,i,r){var s=r[0];o.apply(this,arguments),e.parentId=i.id,e.ariaLabels={title:n.maketext("Pagination"),firstPage:n.maketext("Go to first page."),previousPage:n.maketext("Go to previous page."),nextPage:n.maketext("Go to next page."),lastPage:n.maketext("Go to last page.")},e.updateCurrentSelectedText=a;var c=s.render;s.render=function(){var t,i;c.apply(s),t=e.pages,i=e.parentId,t&&t.forEach((function(e){e.id=i+"_"+e.text})),function(e){e&&e.forEach((function(e){e.ariaLabel=n.maketext("Go to page “[_1]”.",e.text)}))}(e.pages)}}},e}])}]),{namespace:a,template:r}})),define("app/directives/itemLister",["angular","lodash","cjt/core","app/directives/tableShowing","app/decorators/paginationDecorator","ngSanitize","ngRoute","cjt/modules","cjt/directives/pageSizeButtonDirective","cjt/services/cpanel/componentSettingSaverService","cjt/directives/toggleSortDirective","cjt/directives/searchDirective","cjt/directives/pageSizeDirective","cjt/directives/indeterminateState","cjt/filters/startFromFilter","cjt/decorators/paginationDecorator"],(function(e,t,n,i,a){"use strict";var r=[i.namespace,a.namespace,"ngRoute","ngSanitize","cjt2.filters.startFrom"],s="cpanel.apiTokens.itemLister.directive",o="apiTokensItemLister",c=["$routeParams","$scope","$filter","$log","$window","componentSettingSaverService","ITEM_LISTER_CONSTANTS"],l=function(n,i,a,r,s,c,l){i.viewCallbacks=[],i.checkAll={indeterminate:!1,all:!1};var u={filter:a("filter"),orderBy:a("orderBy"),startFrom:a("startFrom"),limitTo:a("limitTo")};i._filter=function(e){return""!==i.filterValue?u.filter(e,i.filterValue,!1):e},i._sort=function(e){return""!==i.sort.sortDirection&&""!==i.sort.sortBy?u.orderBy(e,i.sort.sortBy,"asc"!==i.sort.sortDirection):e},i._paginate=function(e){if(i.totalItems>t.min(i.pageSizes)){var n=(i.currentPage-1)*i.pageSize,a=i.pageSize;e=u.startFrom(e,n),e=u.limitTo(e,a),i.showPager=!0,i.start=n+1,i.limit=n+e.length}else i.showPager=!1,0===e.length?i.start=0:i.start=1,i.limit=e.length;return e},i._updatedListerState=function(e){if(!i.loadingInitialState){var t={pageSize:i.pageSize,sort:{sortDirection:i.sort.sortDirection,sortBy:i.sort.sortBy}};c.set(o,t)}},i._itemInteracted=function(e,t){t.interactionID&&i._updatedListerState(t.interactionID)},this.registerViewCallback=function(e){i.viewCallbacks.push(e),e(i.filteredItems)},this.getHeaderItems=function(){return i.headerItems},this.deregisterViewCallback=function(e){for(var t=i.viewCallbacks.length-1;t>=0;t--)i.viewCallbacks[t]===e&&i.viewCallbacks.splice(t,1)},i.fetch=function(){var t=[];return i.items&&(t=i._filter(i.items)),i.totalItems=t.length,t=i._sort(t),t=i._paginate(t),i.filteredItems=t,i._updatedListerState(),e.forEach(i.viewCallbacks,(function(e){e(i.filteredItems)})),i.$emit(l.ITEM_LISTER_UPDATED_EVENT,{meta:{filterValue:i.filterValue},items:t}),i._updateSelectAllState(),t},i.focusSearch=function(){e.element(document).find("#"+i.parentID+"_search_input").focus(),s.scrollTop=0},i.tableConfigurationClicked=function(e){i.$emit(l.TABLE_ITEM_BUTTON_EVENT,{actionType:"tableConfigurationClicked",config:e})},i._updateSelectAllState=function(){i.selectedItems=i.filteredItems.filter((function(e){return e.selected})),i.selectedItems.length&&i.filteredItems.length&&i.selectedItems.length===i.filteredItems.length?i.checkAll.all=!0:i.checkAll.all=!1},i.getIndeterminateState=function(){return i.selectedItems.length&&i.filteredItems.length&&i.filteredItems.length!==i.selectedItems.length},i.toggleSelectAll=function(){i.selectedItems.length<i.filteredItems.length?(i.filteredItems.forEach((function(e){e.selected=!0})),i.$emit(l.ITEM_LISTER_SELECT_ALL,{items:i.filteredItems})):(i.filteredItems.forEach((function(e){e.selected=!1})),i.$emit(l.ITEM_LISTER_DESELECT_ALL,{items:i.filteredItems})),i._updateSelectAllState()},i.$on(l.TABLE_ITEM_BUTTON_EVENT,i._itemInteracted),i.$on(l.TABLE_ITEM_SELECTED,i._updateSelectAllState),i.$on(l.TABLE_ITEM_DESELECTED,i._updateSelectAllState),e.extend(i,{maxPages:5,totalItems:i.items.length,filteredItems:[],currentPage:1,pageSize:20,pageSizes:[20,100,500],start:0,limit:20,filterValue:"",sort:{sortDirection:"asc",sortBy:i.headerItems.length?i.headerItems[0].field:""}},{filterValue:n.q}),i._savedStateLoaded=function(t){e.extend(i,t,{filterValue:n.q})};var d=c.register(o);d&&(i.loadingInitialState=!0,d.then(i._savedStateLoaded,r.error).finally((function(){i.loadingInitialState=!1,i.fetch()}))),i.$on("$destroy",(function(){c.unregister(o)})),i.fetch(),i.$watch("items",i.fetch)},u="directives/itemLister.ptt",d="api_tokens/"+u,f=n.config.debug?n.buildFullPath(d):u,p=function(n,i,a){t.isUndefined(a.canSelectAll)||"0"===a.canSelectAll||(n.canSelectAll=!0),n.controlsBlock=null,n.contentBlock=null,n._attachControls=function(e){n.controlsBlock.append(e)},n._attachOthers=function(e){e.setAttribute("id",n.parentID+"_transcludePoint"),e.setAttribute("ng-if","filteredItems.length"),n.contentBlock.replaceWith(e)},n._attachTransclude=function(t){e.element(t).hasClass("lister-controls")?n._attachControls(t):n._attachOthers(t)},n._findTranscludes=function(){n.controlsBlock=i.find("#"+n.parentID+"_transcludedControls"),n.contentBlock=i.find("#"+n.parentID+"_transcludePoint");var t=i.find("div.transcluded"),a=t.children();e.forEach(a,n._attachTransclude,n),t.remove()},setTimeout(n._findTranscludes,2)};return e.module(s,r).directive("itemLister",["$window","$log","componentSettingSaverService"].concat((function(e,t,n){return{templateUrl:f,restrict:"EA",scope:{parentID:"@id",items:"=",headerItems:"=",tableConfigurations:"=",createRoute:"@"},transclude:!0,replace:!0,link:p,controller:c.concat(l)}}))),{class:l,namespace:s,link:p,template:u}})),define("app/filters/htmlSafeString",["angular","lodash"],(function(e,t){"use strict";var n="cpanel.apiTokens.htmlSafeString.filter",i=function(){return t.escape};return e.module(n,[]).filter("htmlSafeString",[].concat(i)),{class:i,namespace:n}})),define("app/directives/itemListerView",["angular","lodash","cjt/core","cjt/util/locale","app/filters/htmlSafeString"],(function(e,t,n,i,a){"use strict";var r="cpanel.apiTokens.itemListerView.directive",s=[a.namespace],o="directives/itemListerView.ptt",c="api_tokens/"+o,l=n.config.debug?n.buildFullPath(c):o,u=["$scope","$location","ITEM_LISTER_CONSTANTS"],d=function(e,t,n){e.toggleSelection=function(t){t.selected?e.$emit(n.TABLE_ITEM_SELECTED,{item:t}):e.$emit(n.TABLE_ITEM_DESELECTED,{item:t})},e.getCreationLabel=function(e){return i.local_datetime(e,"datetime_format_medium")},e.getExpirationLabel=function(e){return e?i.local_datetime(e,"datetime_format_medium"):""},e.getRestrictionLabel=function(e){return e?i.maketext("Unrestricted"):i.maketext("Limited")},e.getItems=function(){return e.items},e.manageToken=function(e){t.path("/manage").search("token",e.id)}},f=e.module(r,s);f.value("PAGE",PAGE);var p=function(e,t,n,i){e.items=[],e.headerItems=i.getHeaderItems(),e.updateView=function(t){e.items=t},i.registerViewCallback(e.updateView.bind(e)),e.$on("$destroy",(function(){i.deregisterViewCallback(e.updateView)}))};return f.directive("itemListerView",(function(){return{templateUrl:l,restrict:"EA",replace:!0,require:"^itemLister",link:p,controller:u.concat(d)}})),{class:d,namespace:r,link:p,template:o}})),define("app/validators/uniqueTokenName",["angular","cjt/util/locale","cjt/validator/validator-utils","app/services/apiTokens","cjt/validator/validateDirectiveFactory"],(function(e,t,n,i){"use strict";var a,r={_lastFetch:0,_processLoadedTokens:function(e){return a=null,e&&(a={},e.forEach((function(e){a[e.id]=e}))),a},_fetchTokens:function(){return a}},s={tokenNameIsUnique:function(e,i){var a=n.initializeValidationResult(),s=r._fetchTokens();return i&&e===i||(!s||e&&s[e])&&(a.isValid=!1,a.add("tokenNameIsUnique",t.maketext("This [asis,API] token name already exists on this account. Enter a different name."),"tokenNameIsUnique")),a},validate:function(e,t,n,i,a){var o=(new Date).getTime();if(r._fetchTokens()&&o-r._lastFetch<1e3){var c=s.tokenNameIsUnique(n,i,a);return t.resolve(c)}return r._lastFetch=o,e.fetchTokens().then((function(e){r._processLoadedTokens(e);var o=s.tokenNameIsUnique(n,i,a);return t.resolve(o)}))}};return e.module("cjt2.validate").run(["validatorFactory","$q",i.serviceName,function(e,t,n){var i={tokenNameIsUnique:s.validate.bind(s,n,t)};i.tokenNameIsUnique.async=!0,e.generate(i,t)}]),{methods:s,factoryMethods:r,name:"token-name-is-unique",description:"Validation to ensure the api Token is unique for this account.",version:1}})),define("app/views/create",["angular","lodash","cjt/util/locale","app/services/apiTokens","cjt/directives/copyField","cjt/directives/timePicker","cjt/directives/datePicker","app/validators/uniqueTokenName","cjt/modules","cjt/directives/actionButtonDirective","cjt/services/cpanel/componentSettingSaverService","cjt/directives/validationContainerDirective","cjt/directives/validationItemDirective","cjt/directives/toggleSwitchDirective","cjt/directives/searchDirective","cjt/directives/indeterminateState","cjt/services/alertService"],(function(e,t,n,i,a,r,s){"use strict";var o="createAPITokenView",c=n.maketext("Create API Token"),l="cpanel.apiTokens.views.create",u=["cjt2.directives.validationContainer","cjt2.directives.validationItem","cjt2.directives.toggleSwitch","cjt2.directives.search","cjt2.directives.indeterminateState",r.namespace,s.namespace,a.namespace],d=["$scope","$location","alertService",i.serviceName,"componentSettingSaverService","CAN_CREATE_LIMITED","apiTokens","features"],f="CreateTokenController",p=function(t,i,a,r,s,l,u,d){t.canCreateLimited=l,t.pageTitle=c,t.RTL=n.is_rtl(),t.showAllHelp=!1,t.selectedFeatures=[],t.ui={stayAfterCopy:!1},t.checkAll={all:!1},t.features=d,t.apiTokens=u,t.working={},t.datePickerOptions={},t.timePickerOptions={};var f=new Date;f.setHours(0),f.setMinutes(0),f.setSeconds(0,0);var p=new Date(f.getTime());p.setHours(23),p.setMinutes(59),p.setSeconds(59,999),p.setFullYear(p.getFullYear()+1),t.init=function(){s.register(o).then((function(e){e&&(t.showAllHelp=e.showAllHelp,t.ui.stayAfterCopy=e.stayAfterCopy)})),t.reset()},t.reset=function(e){t.datePickerOptions.minDate=f,t.timePickerOptions.min=f,t.working={name:"",unrestricted:!l,features:{},tokenExpires:!1,expiresAt:p},t.generatedToken=null,t.pageTitle=c,t.selectedFeatures=[],e&&e.$setPristine()},t._updateCSSS=function(){s.set(o,{showAllHelp:t.showAllHelp,stayAfterCopy:t.ui.stayAfterCopy})},t.toggleHelp=function(){t.showAllHelp=!t.showAllHelp,t._updateCSSS()},t._tokenCreated=function(e){var i;return t.generatedToken=e,t.pageTitle=n.maketext("Token Created Successfully"),t.apiTokens=r.getTokens(),i=t.working.unrestricted?n.maketext("You successfully created an [output,strong,unrestricted] [asis,API] token “[_1]”.",t.working.name):n.maketext("You successfully created a [output,strong,limited-access] [asis,API] token “[_1]”.",t.working.name),a.success(i),e},t.create=function(e){e.tokenExpires&&(e.expiresAt.setHours(23),e.expiresAt.setMinutes(59),e.expiresAt.setSeconds(59,999));var n=e.tokenExpires?Math.floor(e.expiresAt/1e3):null;return r.createToken(e.name,e.unrestricted,t.selectedFeatures,n).then(t._tokenCreated)},t.newTokenExpiresMessage=function(e){var t=n.datetime(e.expiresAt,"datetime_format_medium");return n.maketext("This [asis,API] token will expire on [_1][comment,Bareword is a date].",t)},t.toggleSelectAllFeatures=function(){t.selectedFeatures.length<t.features.length?t.features.forEach((function(e){t.working.features[e.id]=!0})):t.features.forEach((function(e){t.working.features[e.id]=!1})),t.updateSelectedFeatures()},t.getFeaturesIndeterminateState=function(){return t.selectedFeatures.length&&t.features.length&&t.features.length!==t.selectedFeatures.length},t.updateSelectedFeatures=function(){t.selectedFeatures=[],e.forEach(t.working.features,(function(e,n){e&&t.selectedFeatures.push(n)}))},t.backToListView=function(){i.path("/")},t.tokenCopied=function(e){t.ui.stayAfterCopy?t.reset(e):t.backToListView()},t.stayAfterCopyChanged=function(){t._updateCSSS()},t.dateValidator=function(e){t.working.tokenExpires&&t.working.expiresAt&&(t.working.expiresAt.setHours(23),t.working.expiresAt.setMinutes(59),t.working.expiresAt.setSeconds(59,999)),t.working.tokenExpires&&t.datePickerOptions.minDate>t.working.expiresAt&&(e.$invalid=!0,e.$valid=!1)},t.resetDate=function(){t.working.tokenExpires&&(t.working.expiresAt=p)},t.$on("$destroy",s.unregister.bind(s,o)),t.init()};e.module(l,u).controller(f,d.concat(p));var m={apiTokens:[i.serviceName,function(e){return e.fetchTokens()}],features:[i.serviceName,function(e){return e.getFeatures()}]};return{id:"createAPIToken",route:"/create",controller:f,class:p,templateUrl:"views/create.ptt",title:c,namespace:l,showResourcePanel:!0,resolve:m}})),define("app/views/list",["angular","lodash","cjt/util/locale","app/directives/itemLister","app/directives/itemListerView","app/services/apiTokens","app/views/create","cjt/modules","cjt/services/alertService","cjt/directives/actionButtonDirective"],(function(e,t,n,i,a,r,s){"use strict";var o=n.maketext("List API Tokens"),c="cpanel.apiTokens.views.list",l=[i.namespace,a.namespace,r.namespace],u=["$scope","$location",r.serviceName,"alertService","apiTokens","ITEM_LISTER_CONSTANTS"],d="ListController",f=function(e,i,a,r,o,c){e.init=function(){e._apiTokens=o,e._filteredItems=[],e.selectedItems=[],e.confirmingDelete=!1,e.deletingTokens=!1,e.tableHeaderItems=[{field:"label",label:n.maketext("Token Name"),sortable:!0},{field:"createdOn",label:n.maketext("Created"),hiddenOnMobile:!0,sortable:!0},{field:"expiresAt",label:n.maketext("Expires"),hiddenOnMobile:!0,sortable:!0},{field:"actions",label:"",sortable:!1}],["TABLE_ITEM_SELECTED","TABLE_ITEM_DESELECTED","ITEM_LISTER_SELECT_ALL","ITEM_LISTER_DESELECT_ALL"].forEach((function(t){e.$on(c[t],e._updatedSelected)})),e.$on(c.ITEM_LISTER_UPDATED_EVENT,(function(t,n){e._filteredItems=n.items,e._updatedSelected()}))},e._deleteTokenSuccess=function(t,a){e._apiTokens=a,r.success(n.maketext("The system successfully revoked the following [asis,API] [numerate,_1,token,tokens]: [list_and_quoted,_1]",t)),0===e._apiTokens.length&&i.path(s.route),e.confirmingDelete=!1,e.deletingTokens=!1},e._updatedSelected=function(){e.selectedItems=e._filteredItems.filter((function(e){return e.selected}))},e.deleteTokens=function(n){var i=[],r=[];return n.forEach((function(e){r.push(e.id),i.push(t.escape(e.label))})),e.deletingTokens=!0,a.deleteTokens(r).then(e._deleteTokenSuccess.bind(e,i))},e.showDeletionConfirmationMessage=function(){e.confirmingDelete=!0},e.hideDeletionConfirmationMessage=function(){e.confirmingDelete=!1},e.confirmDeleteButtonLabel=function(){return n.maketext("Revoke Selected [asis,API] [numerate,_1,Token,Tokens]",e.selectedItems.length)},e.getItems=function(){return e._apiTokens},e.getSelectedFeatureNames=function(){return e.selectedItems.map((function(e){return e.id}))},e.confirmDeleteMessage=function(){var i=e.getSelectedFeatureNames().map(t.escape);return n.maketext("Are you sure that you want to revoke the following [asis,API] [numerate,_1,token,tokens]: [list_and_quoted,_2]",i.length,i)},e.init()};return e.module(c,l).controller(d,u.concat(f)),{id:"listAPITokens",route:"/",controller:d,class:f,templateUrl:"views/list.ptt",title:o,namespace:c,showResourcePanel:!1,resolve:{apiTokens:[r.serviceName,"$location",function(e,t){return e.fetchTokens().then((function(e){return e.length?e:(t.path(s.route),!1)}))}]}}})),define("app/views/manage",["angular","lodash","cjt/util/locale","app/services/apiTokens","app/filters/htmlSafeString","app/validators/uniqueTokenName","cjt/modules","cjt/services/alertService","cjt/directives/actionButtonDirective","cjt/services/cpanel/componentSettingSaverService","cjt/directives/validationContainerDirective","cjt/directives/validationItemDirective","cjt/directives/toggleSwitchDirective","cjt/directives/searchDirective","cjt/directives/indeterminateState"],(function(e,t,n,i,a){"use strict";var r="manageAPITokenView",s=n.maketext("Manage [asis,API] Token"),o="cpanel.apiTokens.views.manage",c=["cjt2.directives.validationContainer","cjt2.directives.validationItem","cjt2.directives.toggleSwitch","cjt2.directives.search","cjt2.directives.indeterminateState",a.namespace],l=["$scope","$location","$routeParams","alertService",i.serviceName,"componentSettingSaverService","CAN_CREATE_LIMITED","apiTokens"],u="ManageTokenController",d=function(i,a,o,c,l,u,d,f){i.pageTitle=s,i.RTL=n.is_rtl(),i.showAllHelp=!1,i.ui={confirmingRevocation:!1},i.selectedFeatures=[],i.checkAll={all:!1},i.apiTokens=f,i.working={},i.expiringMessage=function(e){return i.current.expired?n.maketext("[output,strong,Danger]: This [asis,API] token expired on [datetime,_1,datetime_format_medium].",i.current.expiresAt):i.current.expiresSoon?n.maketext("[output,strong,Warning]: This [asis,API] token will expire on [datetime,_1,datetime_format_medium].",i.current.expiresAt):void 0},i.getExpirationLabel=function(e){return e?n.local_datetime(e,"datetime_format_medium"):""},i.init=function(){u.register(r).then((function(e){e&&(i.showAllHelp=e.showAllHelp,i.stayOnView=e.stayOnView)}));var e=o.token,t=l.getTokenById(e);t?(i.canEditFeatureRestrictions=!t.unrestricted||d,i.current=t,i.working={name:t.id,unrestricted:t.unrestricted,features:{}},t.features.forEach((function(e){i.working.features[e]=!0,i.selectedFeatures.push(e)})),i.current.unrestricted||l.getFeatures().then(i._featuresLoaded)):a.path("/")},i._updateCSSS=function(){u.set(r,{showAllHelp:i.showAllHelp})},i._featuresLoaded=function(e){i.features=e},i.toggleHelp=function(){i.showAllHelp=!i.showAllHelp,i._updateCSSS()},i._tokenRenamed=function(e,i){c.success(n.maketext("You have successfully renamed the API Token “[_1]” to “[_2]”.",t.escape(e),t.escape(i)))},i._renameToken=function(e,t){return l.renameToken(e,t).then(i._tokenRenamed.bind(i,e,t))},i._getFeatureById=function(e){for(var t=i.features,n=0;n<t.length;n++)if(t[n].id===e)return t[n]},i._tokenRestrictionUpdated=function(e,a,r){if(a)c.success({message:n.maketext("You have successfully set the [asis,API] token “[_1]” to unrestricted.",t.escape(e)),replace:!1});else{var s=r.map((function(e){return i._getFeatureById(e).label})).map(t.escape);c.success({message:n.maketext("The [asis,API] Token “[_1]” is now limited to the following features: [list_and_quoted,_2].",e,s),replace:!1})}},i.update=function(e){var t,n=i.current,a=e.unrestricted!==i.current.unrestricted||i.selectedFeatures.sort().join()!==i.current.features.sort().join();if(n.id!==e.name&&(t=i._renameToken(n.id,e.name),a||t.finally(i.backToListView)),a){var r=l.updateTokenRestrictions.bind(l,e.name,e.unrestricted,i.selectedFeatures),s=i._tokenRestrictionUpdated.bind(i,e.name,e.unrestricted,i.selectedFeatures);t?t.then(r).then(s):t=r().then(s),t.finally(i.backToListView)}return t},i.unrestrictedToggled=function(){i.working.unrestricted||i.features||l.getFeatures().then(i._featuresLoaded)},i.toggleSelectAllFeatures=function(){i.working.features=i.working.features||{},i.selectedFeatures.length<i.features.length?i.features.forEach((function(e){i.working.features[e.id]=!0})):i.features.forEach((function(e){i.working.features[e.id]=!1})),i.updateSelectedFeatures()},i.getFeaturesIndeterminateState=function(){return i.selectedFeatures.length&&i.features.length&&i.features.length!==i.selectedFeatures.length},i.updateSelectedFeatures=function(){i.selectedFeatures=[],e.forEach(i.working.features,(function(e,t){e&&i.selectedFeatures.push(t)}))},i.backToListView=function(){a.path("/")},i.showRevokeConfirm=function(){i.ui.confirmingRevocation=!0},i.hideRevokeConfirm=function(){i.ui.confirmingRevocation=!1},i._tokenRevoked=function(e){c.success(n.maketext("You have successfully revoked the following [asis,API] [numerate,_1,token,tokens]: “[_1]”",t.escape(e)))},i.revokeToken=function(e){return l.deleteTokens([e.id]).then(i._tokenRevoked.bind(i,e.id)).then(i.backToListView)},i.$on("$destroy",u.unregister.bind(u,r)),i.init()};e.module(o,c).controller(u,l.concat(d));var f={apiTokens:[i.serviceName,function(e){return e.fetchTokens()}]};return{id:"manageAPIToken",route:"/manage",controller:u,class:d,templateUrl:"views/manage.ptt",title:s,namespace:o,showResourcePanel:!0,resolve:f}})),define("app/index",["angular","cjt/core","cjt/util/locale","app/services/apiTokens","app/views/list","app/views/create","app/views/manage","app/filters/htmlSafeString","cjt/modules","cjt/directives/alertList","cjt/services/alertService","cjt/services/APICatcher","cjt/directives/loadingPanel","cjt/directives/breadcrumbs","ngRoute"],(function(e,t,n,i,a,r,s,o){"use strict";var c="cpanel.apiTokens";return function(){var l=[],u=["ngRoute","cjt2."+t.applicationName,i.namespace,o.namespace];[a,r,s].forEach((function(e){e.breadcrumb=e.breadcrumb?e.breadcrumb:{id:e.id,name:e.title,path:e.route,parentID:e.parentID},l.push(e),u.push(e.namespace)}));var d=e.module(c,u);return d.value("ITEM_LISTER_CONSTANTS",{TABLE_ITEM_BUTTON_EVENT:"TableItemActionButtonEmitted",TABLE_ITEM_SELECTED:"TableItemSelectedEmitted",TABLE_ITEM_DESELECTED:"TableItemDeselectedEmitted",ITEM_LISTER_UPDATED_EVENT:"ItemListerUpdatedEvent",ITEM_LISTER_SELECT_ALL:"ItemListerSelectAllEvent",ITEM_LISTER_DESELECT_ALL:"ItemListerDeselectAllEvent"}),d.value("CAN_CREATE_LIMITED",PAGE.canCreateLimited),d.controller("MainController",["$scope","$rootScope","alertService",function(e,t,i){e.showResourcePanel=!0,e.mainPanelClasses="",e.sidePanelClasses="",e.updatePanelClasses=function(){e.sidePanelClasses="col-sm-4 col-md-4 hidden-xs",e.sidePanelClasses+=" ",e.sidePanelClasses+=n.is_rtl()?"pull-left":"pull-right",e.mainPanelClasses=e.showResourcePanel?"col-xs-12 col-sm-8 col-md-8":"col-xs-12"},t.$on("$routeChangeStart",(function(){e.loading=!0,i.clear("danger")})),t.$on("$routeChangeSuccess",(function(t,n){if(e.loading=!1,n){var i=(a=n.$$route.originalPath,l.forEach((function(e,t){e.route===a&&(r=t)})),r);l[i]&&(e.currentTab=l[i],e.showResourcePanel=e.currentTab.showResourcePanel,e.activeTab=i,e.updatePanelClasses())}var a,r})),t.$on("$routeChangeError",(function(){e.loading=!1}))}]),require(["cjt/bootstrap"],(function(e){d.config(["$routeProvider","$animateProvider",function(e,t){t.classNameFilter(/^((?!no-animate).)*$/),l.forEach((function(t,n){e.when(t.route,t)})),e.otherwise({redirectTo:"/"})}]),e("#content",c)})),d}}));