@kong-ui-public/entities-consumer-groups 4.2.18-pr.2701.377d8f5a8.0 → 4.2.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/entities-consumer-groups.es.js +1035 -0
  2. package/dist/entities-consumer-groups.umd.js +1 -0
  3. package/dist/style.css +1 -0
  4. package/dist/types/components/AddToGroupModal.vue.d.ts +39 -0
  5. package/dist/types/components/AddToGroupModal.vue.d.ts.map +1 -0
  6. package/dist/types/components/ConsumerGroupConfigCard.vue.d.ts +62 -0
  7. package/dist/types/components/ConsumerGroupConfigCard.vue.d.ts.map +1 -0
  8. package/dist/types/components/ConsumerGroupForm.vue.d.ts +52 -0
  9. package/dist/types/components/ConsumerGroupForm.vue.d.ts.map +1 -0
  10. package/dist/types/components/ConsumerGroupList.vue.d.ts +110 -0
  11. package/dist/types/components/ConsumerGroupList.vue.d.ts.map +1 -0
  12. package/dist/types/composables/index.d.ts +6 -0
  13. package/dist/types/composables/index.d.ts.map +1 -0
  14. package/dist/types/composables/useI18n.d.ts +9 -0
  15. package/dist/types/composables/useI18n.d.ts.map +1 -0
  16. package/dist/types/consumer-groups-endpoints.d.ts +36 -0
  17. package/dist/types/consumer-groups-endpoints.d.ts.map +1 -0
  18. package/dist/types/index.d.ts +6 -0
  19. package/dist/types/index.d.ts.map +1 -0
  20. package/dist/types/types/consumer-group-config-card.d.ts +15 -0
  21. package/dist/types/types/consumer-group-config-card.d.ts.map +1 -0
  22. package/dist/types/types/consumer-group-form.d.ts +37 -0
  23. package/dist/types/types/consumer-group-form.d.ts.map +1 -0
  24. package/dist/types/types/consumer-group-list.d.ts +39 -0
  25. package/dist/types/types/consumer-group-list.d.ts.map +1 -0
  26. package/dist/types/types/index.d.ts +4 -0
  27. package/dist/types/types/index.d.ts.map +1 -0
  28. package/package.json +8 -8
@@ -0,0 +1 @@
1
+ (function(N,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("@kong/icons"),require("@kong-ui-public/i18n"),require("@kong-ui-public/entities-shared")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","@kong/icons","@kong-ui-public/i18n","@kong-ui-public/entities-shared"],e):(N=typeof globalThis<"u"?globalThis:N||self,e(N["kong-ui-public-entities-consumer-groups"]={},N.Vue,N.VueRouter,N.KongIcons,N["kong-ui-public-i18n"],N["kong-ui-public-entities-shared"]))})(this,function(N,e,pe,Y,fe,m){"use strict";const Ce={consumer_groups:{list:{table_headers:{name:"Name",consumers_count:"Consumers",tags:"Tags",id:"ID"},empty_state:{title:"Configure a New Consumer Group",description:"Use consumer groups to manage custom rate limiting configuration for subsets of consumers.",title_for_consumer:"Add to a consumer group"},empty_state_v2:{title:"Configure your first consumer group",group:"Consumer groups created in gateways within this group will automatically appear here.",description:"Organize consumers into groups to easily apply policies like rate limiting and authentication across the entire group.",learn_more:"Learn more"},toolbar_actions:{new_consumer_group:"New consumer group"}},title:"Consumer Groups",search:{placeholder:"Filter by exact name or ID"},actions:{add_to_group:"Add to consumer group",create:"New consumer group",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",delete:"Delete",exit:"Exit",view:"View Details"},delete:{title:"Delete a Consumer Group",description:"Deleting this group will remove all its plugins and rate limit configuration. This action cannot be reversed."},consumers:{add:{title:"Add To Consumer Groups",ctaText:"Add this consumer to consumer groups",consumer_groups_label:"Consumer Groups",consumer_group_placeholder:"Add to consumer groups",footer:"Search by exact name or ID to find consumer groups not included in the list"},exit:{title:"Exit from a Consumer Group",confirmation:"Are you sure you want to remove consumer {consumer} from consumer group {consumerGroup}?",confirmationNoUsername:"Are you sure you want this consumer to exit from consumer group {consumerGroup}?",description:"Exiting from the group could change the rate limit policy applied to this consumer."}},errors:{general:"Consumer Groups could not be retrieved",delete:"The consumer group could not be deleted at this time.",copy:"Failed to copy to clipboard",add:"The consumer could not be added to some groups at this time.",already_added:"The consumer is already in this consumer group",add_consumer:"An unexpected error occurred while adding consumers. Please try again.",remove_consumer:"An unexpected error occurred while removing consumers. Please try again."},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard"},form:{general_info:{title:"General Information",description:"General information will help identify and manage this consumer group."},consumers:{title:"Consumers",description:"Add or remove consumers from this group"},fields:{name:{label:"Name",placeholder:"Enter a unique name for this consumer group "},tags:{label:"Tags",placeholder:"Enter a list of tags separated by comma",help:"e.g. tag1, tag2, tag3",tooltip:"An optional set of strings for grouping and filtering, separated by commas."},consumers:{label:"Consumers",placeholder:"Select one or more consumers"}}}}};function ke(){const o=fe.createI18n("en-us",Ce);return{i18n:o,i18nT:fe.i18nTComponent(o)}}const se={useI18n:ke},A="/v2/control-planes/{controlPlaneId}/core-entities",P="/{workspace}",q={list:{konnect:{all:`${A}/consumer_groups`,forModal:`${A}/consumer_groups`,forConsumer:`${A}/consumers/{consumerId}/consumer_groups`,oneForConsumer:`${A}/consumers/{consumerId}/consumer_groups/{consumerGroupId}`},kongManager:{all:`${P}/consumer_groups?counter=true`,forModal:`${P}/consumer_groups`,forConsumer:`${P}/consumers/{consumerId}/consumer_groups`,oneForConsumer:`${P}/consumers/{consumerId}/consumer_groups/{consumerGroupId}`}},form:{konnect:{consumersList:`${A}/consumers`,create:`${A}/consumer_groups`,edit:`${A}/consumer_groups/{id}`,addConsumer:`${A}/consumer_groups/{id}/consumers`,removeConsumer:`${A}/consumer_groups/{id}/consumers/{consumerId}`,getConsumers:`${A}/consumer_groups/{id}/consumers`},kongManager:{consumersList:`${P}/consumers`,create:`${P}/consumer_groups`,edit:`${P}/consumer_groups/{id}`,addConsumer:`${P}/consumer_groups/{id}/consumers`,removeConsumer:`${P}/consumer_groups/{id}/consumers/{consumerId}`,getConsumers:`${P}/consumer_groups/{id}/consumers`}}},be={class:"add-to-group-form-container"},we={class:"add-to-group-cta-text"},Ve={key:0,class:"kong-ui-entity-add-to-groups-error"},xe={key:0},Ie=e.defineComponent({__name:"AddToGroupModal",props:{config:{type:Object,required:!0,validator:o=>!(!o||!["konnect","kongManager"].includes(o==null?void 0:o.app)||!o.consumerId)},visible:{type:Boolean,required:!0,default:!1}},emits:["cancel","add:success","add:partial-success","error"],setup(o,{emit:R}){var T;const{i18n:{t:a}}=se.useI18n(),r=o,g=R,{axiosInstance:i}=m.useAxios((T=r.config)==null?void 0:T.axiosRequestConfig),s=e.ref([]),{debouncedQueryChange:V,loading:Z,allRecords:S,error:v,loadItems:ee,results:Q}=m.useDebouncedFilter(r.config,q.list[r.config.app].forModal,"",{fetchedItemsKey:"data",searchKeys:["name","id"]}),B=e.computed(()=>v.value?a("consumer_groups.errors.general"):""),G=e.ref(0),H=e.computed(()=>S.value===void 0),J=e.computed(()=>Q.value.map(p=>({label:p.name,value:p.id,selected:s.value.includes(p.id),data:p}))),W=p=>{var f;const b=H.value?Q.value.find(k=>k.id===p):(f=S.value)==null?void 0:f.find(k=>k.id===p);return b?b.name:p},oe=()=>{x.value="",w.value=[],M.value=[],g("cancel")},w=e.ref([]),O=e.ref(!1),x=e.ref(""),te=async()=>{if(!s.value.length){x.value="",M.value=[],g("cancel");return}O.value=!0,x.value="",w.value=[],M.value=[];try{const p=s.value.map(k=>U(k)),b=await Promise.allSettled(p);let f=!0;b.forEach(k=>{k.status!=="fulfilled"&&(f=!1)}),f?(w.value=[],M.value=[],g("add:success",s.value),s.value=[]):(w.value.length&&g("add:partial-success",w.value),s.value=[],z(b))}catch{x.value=a("consumer_groups.errors.add"),g("error",x.value)}finally{O.value=!1}},re=e.computed(()=>{var b,f,k,F;let p=`${r.config.apiBaseUrl}${q.list[r.config.app].forConsumer}`;return r.config.app==="konnect"?p=p.replace(/{controlPlaneId}/gi,((b=r.config)==null?void 0:b.controlPlaneId)||"").replace(/{consumerId}/gi,((f=r.config)==null?void 0:f.consumerId)||""):r.config.app==="kongManager"&&(p=p.replace(/\/{workspace}/gi,(k=r.config)!=null&&k.workspace?`/${r.config.workspace}`:"").replace(/{consumerId}/gi,((F=r.config)==null?void 0:F.consumerId)||"")),p}),U=async p=>{const b={group:p};try{const f=await i.post(re.value,b);return w.value.push(p),f}catch(f){let k=`${W(p)} - ${f.message}`;return f.response.status===409&&(k=`${W(p)} - ${a("consumer_groups.errors.already_added")}`),Promise.reject(Error(k))}},M=e.ref([]),z=p=>{M.value=p.map(b=>{var f;return(f=b.reason)==null?void 0:f.message}).filter(Boolean)};return e.watch(J,()=>{G.value++},{immediate:!0,deep:!0}),e.watch(()=>r.visible,()=>{r.visible&&ee()},{immediate:!0}),(p,b)=>{const f=e.resolveComponent("KMultiselect"),k=e.resolveComponent("KAlert"),F=e.resolveComponent("KPrompt");return e.openBlock(),e.createBlock(F,{"action-button-disabled":O.value,class:"kong-ui-entities-add-to-groups-modal","data-testid":"add-to-group-modal",title:e.unref(a)("consumer_groups.consumers.add.title"),visible:o.visible,onCancel:oe,onProceed:te},{default:e.withCtx(()=>[e.createElementVNode("div",be,[e.createElementVNode("p",we,e.toDisplayString(e.unref(a)("consumer_groups.consumers.add.ctaText")),1),e.createVNode(f,{modelValue:s.value,"onUpdate:modelValue":b[0]||(b[0]=$=>s.value=$),autosuggest:"","data-testid":"add-to-groups-multiselect","dropdown-footer-text":H.value?e.unref(a)("consumer_groups.consumers.add.footer"):void 0,items:J.value,label:e.unref(a)("consumer_groups.consumers.add.consumer_groups_label"),loading:e.unref(Z),placeholder:e.unref(a)("consumer_groups.consumers.add.consumer_group_placeholder"),readonly:O.value,required:"",width:"100%",onQueryChange:e.unref(V)},null,8,["modelValue","dropdown-footer-text","items","label","loading","placeholder","readonly","onQueryChange"]),x.value||B.value||M.value.length?(e.openBlock(),e.createElementBlock("div",Ve,[e.createVNode(k,{appearance:"danger"},{default:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(e.unref(a)("consumer_groups.errors.add")),1),M.value.length?(e.openBlock(),e.createElementBlock("ul",xe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,($,j)=>(e.openBlock(),e.createElementBlock("li",{key:j},e.toDisplayString($),1))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",null,e.toDisplayString(x.value||B.value),1)]),_:1})])):e.createCommentVNode("",!0)])]),_:1},8,["action-button-disabled","title","visible"])}}}),ue=(o,R)=>{const a=o.__vccOpts||o;for(const[r,g]of R)a[r]=g;return a},Ee=ue(Ie,[["__scopeId","data-v-4a6bfc7b"]]),Ne={class:"kong-ui-entities-consumer-groups-list"},$e={class:"button-row"},Be=ue(e.defineComponent({__name:"ConsumerGroupList",props:{config:{type:Object,required:!0,validator:o=>!(!o||!["konnect","kongManager"].includes(o==null?void 0:o.app)||!o.createRoute||!o.getViewRoute||!o.getEditRoute||o.app==="kongManager"&&!o.isExactMatch&&!o.filterSchema)},cacheIdentifier:{type:String,default:""},canCreate:{type:Function,required:!1,default:async()=>!0},canDelete:{type:Function,required:!1,default:async()=>!0},canEdit:{type:Function,required:!1,default:async()=>!0},canRetrieve:{type:Function,required:!1,default:async()=>!0},useActionOutside:{type:Boolean,default:!1}},emits:["error","click:learn-more","copy:success","copy:error","delete:success","add:success","remove:success"],setup(o,{emit:R}){var he;const a=R,r=o,{i18nT:g,i18n:{t:i}}=se.useI18n(),s=pe.useRouter(),{axiosInstance:V}=m.useAxios((he=r.config)==null?void 0:he.axiosRequestConfig),Z=e.computed(()=>r.config.app!=="kongManager"||!!r.config.disableSorting),S={name:{label:i("consumer_groups.list.table_headers.name"),searchable:!0,sortable:!0,hidable:!1}};r.config.app==="kongManager"&&(S.consumers_count={label:i("consumer_groups.list.table_headers.consumers_count"),searchable:!1,sortable:!1}),S.tags={label:i("consumer_groups.list.table_headers.tags"),sortable:!1};const v=S,ee=n=>({"data-testid":n.username??n.custom_id??n.id}),Q=()=>{r.config.consumerId?l():s.push(r.config.createRoute)},B=e.computed(()=>{var d,h,E,D;let n=`${r.config.apiBaseUrl}${q.list[r.config.app][w.value?"forConsumer":"all"]}`;return r.config.app==="konnect"?n=n.replace(/{controlPlaneId}/gi,((d=r.config)==null?void 0:d.controlPlaneId)||"").replace(/{consumerId}/gi,((h=r.config)==null?void 0:h.consumerId)||""):r.config.app==="kongManager"&&(n=n.replace(/\/{workspace}/gi,(E=r.config)!=null&&E.workspace?`/${r.config.workspace}`:"").replace(/{consumerId}/gi,((D=r.config)==null?void 0:D.consumerId)||"")),n}),G=e.ref(""),H=e.computed(()=>{const n=r.config.app==="konnect"||r.config.isExactMatch;return n?{isExactMatch:n,fields:{username:S.name,id:{label:i("consumer_groups.list.table_headers.id")}},placeholder:i("consumer_groups.search.placeholder")}:{isExactMatch:n,fields:{name:S.name},schema:r.config.filterSchema}}),{hasRecords:J,handleStateChange:W}=m.useTableState(G),oe=e.computed(()=>J.value&&r.config.app==="konnect"),w=e.computed(()=>!!r.config.consumerId),O=e.computed(()=>w.value?"kong-ui-entities-consumer-groups-list-in-consumer-page":"kong-ui-entities-consumer-groups-list"),x=e.computed(()=>r.config.app==="konnect"&&G.value?"consumer_group":w.value&&!r.config.paginatedEndpoint?"consumer_groups":void 0),{fetcher:te,fetcherState:re,fetcherCacheKey:U}=m.useFetcher(e.computed(()=>({...r.config,cacheIdentifier:r.cacheIdentifier})),B,x),M=()=>{G.value=""},z=()=>{U.value++},T=e.ref(null),p=async(n,d)=>{const h=n.id;if(!await d(h)){a("copy:error",{entity:n,field:"id",message:i("consumer_groups.errors.copy")});return}a("copy:success",{entity:n,field:"id",message:i("consumer_groups.copy.success",{val:h})})},b=async(n,d)=>{const h=JSON.stringify(n);if(!await d(h)){a("copy:error",{entity:n,message:i("consumer_groups.errors.copy")});return}a("copy:success",{entity:n,message:i("consumer_groups.copy.success_brief")})},f=async n=>{var h;await((h=r.canRetrieve)==null?void 0:h.call(r,n))&&s.push(r.config.getViewRoute(n.id))},k=n=>({label:i("consumer_groups.actions.view"),to:r.config.getViewRoute(n)}),F=n=>({label:i("consumer_groups.actions.edit"),to:r.config.getEditRoute(n)}),$=e.ref(void 0),j=e.ref(!1),X=e.ref(!1),ne=e.ref(""),ae=m.useDeleteUrlBuilder(r.config,B.value),ce=n=>{$.value=n,j.value=!0},t=()=>{j.value=!1},c=async()=>{var n,d,h;if((n=$.value)!=null&&n.id){X.value=!0;try{await V.delete(ae($.value.id)),X.value=!1,j.value=!1,U.value++,a("delete:success",$.value)}catch(E){ne.value=((h=(d=E.response)==null?void 0:d.data)==null?void 0:h.message)||E.message||i("consumer_groups.errors.delete"),a("error",E)}finally{X.value=!1}}},C=e.ref(!1),l=()=>{C.value=!0},u=()=>{C.value=!1},I=(n,d)=>{d||u(),U.value++,a("add:success",n)},K=()=>{w.value&&l()},_=e.ref(void 0),L=e.ref(!1),ie=e.ref(""),Fe=n=>{_.value=n,L.value=!0},ge=()=>{L.value=!1,_.value=void 0},Ke=e.computed(()=>{var d,h,E,D;let n=`${r.config.apiBaseUrl}${q.list[r.config.app].oneForConsumer}`;return r.config.app==="konnect"?n=n.replace(/{controlPlaneId}/gi,((d=r.config)==null?void 0:d.controlPlaneId)||"").replace(/{consumerId}/gi,((h=r.config)==null?void 0:h.consumerId)||""):r.config.app==="kongManager"&&(n=n.replace(/\/{workspace}/gi,(E=r.config)!=null&&E.workspace?`/${r.config.workspace}`:"").replace(/{consumerId}/gi,((D=r.config)==null?void 0:D.consumerId)||"")),n}),ye=e.ref(!1),Re=async()=>{if(_.value){ye.value=!0;try{const n=Ke.value.replace(/{consumerGroupId}/gi,_.value.id);await V.delete(n),a("remove:success",_.value),ge(),U.value++}catch(n){ie.value=n.message||i("consumer_groups.errors.delete"),a("error",n)}finally{ye.value=!1}}};e.watch(re,n=>{var d,h,E;if(n.status===m.FetcherStatus.Error){T.value={title:i("consumer_groups.errors.general")},(E=(h=(d=n.error)==null?void 0:d.response)==null?void 0:h.data)!=null&&E.message&&(T.value.message=n.error.response.data.message),a("error",n.error);return}T.value=null});const de=e.ref({ctaPath:w.value?void 0:r.config.createRoute,ctaText:void 0,message:`${i("consumer_groups.list.empty_state.description")}${r.config.additionMessageForEmptyState?` ${r.config.additionMessageForEmptyState}`:""}`,title:i("consumer_groups.title")}),me=e.ref(!1);return e.onBeforeMount(async()=>{me.value=await r.canCreate(),me.value&&(de.value.title=w.value?i("consumer_groups.list.empty_state.title_for_consumer"):i("consumer_groups.list.empty_state.title"),de.value.ctaText=w.value?i("consumer_groups.actions.add_to_group"):i("consumer_groups.actions.create"))}),(n,d)=>{const h=e.resolveComponent("KButton"),E=e.resolveComponent("KEmptyState"),D=e.resolveComponent("KDropdownItem"),_e=e.resolveComponent("KClipboardProvider"),Ue=e.resolveComponent("KPrompt");return e.openBlock(),e.createElementBlock("div",Ne,[e.createVNode(e.unref(m.EntityBaseTable),{"cache-identifier":o.cacheIdentifier,"disable-pagination":w.value&&!o.config.paginatedEndpoint,"disable-sorting":Z.value,"empty-state-options":de.value,"enable-entity-actions":"","error-message":T.value,fetcher:e.unref(te),"fetcher-cache-key":e.unref(U),"pagination-type":"offset","preferences-storage-key":O.value,query:G.value,"row-attributes":ee,"table-headers":e.unref(v),onClearSearchInput:M,"onClick:row":d[3]||(d[3]=y=>f(y)),onEmptyStateCtaClicked:K,onSort:z,onState:e.unref(W)},e.createSlots({"toolbar-filter":e.withCtx(()=>[w.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(m.EntityFilter),{key:0,modelValue:G.value,"onUpdate:modelValue":d[0]||(d[0]=y=>G.value=y),config:H.value},null,8,["modelValue","config"]))]),"toolbar-button":e.withCtx(()=>[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!o.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[e.createElementVNode("div",$e,[oe.value?(e.openBlock(),e.createBlock(h,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"consumer-groups-learn-more-button",icon:"",onClick:d[1]||(d[1]=y=>n.$emit("click:learn-more"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Y.BookIcon),{decorative:""})]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(m.PermissionsWrapper),{"auth-function":()=>o.canCreate()},{default:e.withCtx(()=>[e.createVNode(h,{appearance:"primary","data-testid":"toolbar-add-consumer-group",size:o.useActionOutside?"medium":"large",onClick:Q},{default:e.withCtx(()=>[e.createVNode(e.unref(Y.AddIcon)),e.createTextVNode(" "+e.toDisplayString(o.config.consumerId?e.unref(i)("consumer_groups.actions.add_to_group"):e.unref(i)("consumer_groups.list.toolbar_actions.new_consumer_group")),1)]),_:1},8,["size"])]),_:1},8,["auth-function"])])],8,["disabled"]))]),name:e.withCtx(({rowValue:y})=>[e.createElementVNode("b",null,e.toDisplayString(y??"-"),1)]),consumers_count:e.withCtx(({rowValue:y})=>[e.createTextVNode(e.toDisplayString(y??"-"),1)]),tags:e.withCtx(({rowValue:y})=>[e.createVNode(e.unref(m.TableTags),{tags:y},null,8,["tags"])]),actions:e.withCtx(({row:y})=>[e.createVNode(_e,null,{default:e.withCtx(({copyToClipboard:le})=>[e.createVNode(D,{"data-testid":"action-entity-copy-id",onClick:qe=>p(y,le)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(i)("consumer_groups.actions.copy_id")),1)]),_:1},8,["onClick"])]),_:2},1024),e.createVNode(_e,null,{default:e.withCtx(({copyToClipboard:le})=>[e.createVNode(D,{"data-testid":"action-entity-copy-json",onClick:qe=>b(y,le)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(i)("consumer_groups.actions.copy_json")),1)]),_:1},8,["onClick"])]),_:2},1024),e.createVNode(e.unref(m.PermissionsWrapper),{"auth-function":()=>o.canRetrieve(y)},{default:e.withCtx(()=>[e.createVNode(D,{"data-testid":"action-entity-view","has-divider":"",item:k(y.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(m.PermissionsWrapper),{"auth-function":()=>o.canEdit(y)},{default:e.withCtx(()=>[e.createVNode(D,{"data-testid":"action-entity-edit",item:F(y.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(m.PermissionsWrapper),{"auth-function":()=>o.canDelete(y)},{default:e.withCtx(()=>[e.createVNode(D,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:()=>o.config.consumerId?Fe(y):ce(y)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.config.consumerId?e.unref(i)("consumer_groups.actions.exit"):e.unref(i)("consumer_groups.actions.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!G.value&&o.config.app==="konnect"?{name:"empty-state",fn:e.withCtx(()=>{var y;return[e.createVNode(E,{"data-testid":"consumer-groups-entity-empty-state","icon-background":"",message:e.unref(i)("consumer_groups.list.empty_state_v2.description"),title:e.unref(i)("consumer_groups.list.empty_state_v2.title")},e.createSlots({icon:e.withCtx(()=>[e.createVNode(e.unref(Y.TeamIcon),{decorative:""})]),action:e.withCtx(()=>[me.value?(e.openBlock(),e.createBlock(h,{key:0,"data-testid":"entity-create-button",onClick:Q},{default:e.withCtx(()=>[e.createVNode(e.unref(Y.AddIcon),{decorative:""}),e.createTextVNode(" "+e.toDisplayString(e.unref(i)("consumer_groups.list.toolbar_actions.new_consumer_group")),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(h,{appearance:"secondary","data-testid":"entity-learn-more-button",onClick:d[2]||(d[2]=le=>n.$emit("click:learn-more"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Y.BookIcon),{decorative:""}),e.createTextVNode(" "+e.toDisplayString(e.unref(i)("consumer_groups.list.empty_state_v2.learn_more")),1)]),_:1})]),_:2},[(y=o.config)!=null&&y.isControlPlaneGroup?{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(i)("consumer_groups.list.empty_state_v2.group")),1)]),key:"0"}:void 0]),1032,["message","title"])]}),key:"0"}:void 0]),1032,["cache-identifier","disable-pagination","disable-sorting","empty-state-options","error-message","fetcher","fetcher-cache-key","preferences-storage-key","query","table-headers","onState"]),e.createVNode(e.unref(m.EntityDeleteModal),{"action-pending":X.value,"data-testid":"delete-consumer-group-modal",description:e.unref(i)("consumer_groups.delete.description"),"entity-name":$.value&&($.value.name||$.value.id),"entity-type":e.unref(m.EntityTypes).ConsumerGroup,error:ne.value,title:e.unref(i)("consumer_groups.delete.title"),visible:j.value,onCancel:t,onProceed:c},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"]),o.config.consumerId?(e.openBlock(),e.createBlock(Ee,{key:0,config:o.config,"data-testid":"add-to-group-modal",visible:C.value,"onAdd:partialSuccess":d[4]||(d[4]=y=>I(y,!0)),"onAdd:success":d[5]||(d[5]=y=>I(y)),onCancel:u},null,8,["config","visible"])):e.createCommentVNode("",!0),o.config.consumerId&&_.value?(e.openBlock(),e.createBlock(Ue,{key:1,"action-button-appearance":"danger","data-testid":"exit-group-modal",title:e.unref(i)("consumer_groups.consumers.exit.title"),visible:L.value,onCancel:ge,onProceed:Re},{default:e.withCtx(()=>[e.createVNode(e.unref(g),{class:"exit-modal-message",keypath:o.config.consumerUsername?"consumer_groups.consumers.exit.confirmation":"consumer_groups.consumers.exit.confirmationNoUsername",tag:"p"},e.createSlots({consumerGroup:e.withCtx(()=>[e.createElementVNode("strong",null,e.toDisplayString(_.value.name||_.value.id),1)]),_:2},[o.config.consumerUsername?{name:"consumer",fn:e.withCtx(()=>[e.createElementVNode("strong",null,e.toDisplayString(o.config.consumerUsername),1)]),key:"0"}:void 0]),1032,["keypath"]),e.createElementVNode("p",null,e.toDisplayString(e.unref(i)("consumer_groups.consumers.exit.description")),1)]),_:1},8,["title","visible"])):e.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-8d52618f"]]),Me={class:"kong-ui-entities-consumer-group-form"},Te={class:"select-item-container"},Ge={class:"select-item-label"},De={key:0,class:"select-item-description"},Ae=ue(e.defineComponent({__name:"ConsumerGroupForm",props:{config:{type:Object,required:!0,validator:o=>!(!o||!["konnect","kongManager"].includes(o==null?void 0:o.app)||(o==null?void 0:o.app)==="konnect"&&!(o!=null&&o.controlPlaneId)||(o==null?void 0:o.app)==="kongManager"&&typeof(o==null?void 0:o.workspace)!="string"||!(o!=null&&o.cancelRoute))},consumerGroupId:{type:String,required:!1,default:""},hideConsumers:{type:Boolean,default:!1}},emits:["update","error","loading"],setup(o,{emit:R}){var ne,ae,ce;const a=o,r=R,{i18n:{t:g}}=se.useI18n(),i=pe.useRouter(),s=e.reactive({fields:{name:"",tags:"",consumers:[]},errorMessage:"",readonly:!1}),V=e.reactive({name:"",tags:"",consumers:[]}),{debouncedQueryChange:Z,loading:S,error:v,loadItems:ee,results:Q}=m.useDebouncedFilter(a.config,(ae=q.form[(ne=a.config)==null?void 0:ne.app])==null?void 0:ae.consumersList,"",{fetchedItemsKey:"data",searchKeys:["username","custom_id","id"]}),{axiosInstance:B}=m.useAxios((ce=a.config)==null?void 0:ce.axiosRequestConfig),{getMessageFromError:G}=m.useErrors(),H=m.useValidators(),J=e.computed(()=>Q.value.map(t=>({label:t.username||t.custom_id,value:t.id,selected:s.fields.consumers.includes(t.id),data:t}))),W=e.computed(()=>{var t,c;return(c=q.form[(t=a.config)==null?void 0:t.app])==null?void 0:c.edit}),oe=e.computed(()=>a.consumerGroupId?m.EntityBaseFormType.Edit:m.EntityBaseFormType.Create),w=e.computed(()=>!!s.fields.name&&!z.value),O=e.computed(()=>JSON.stringify(s.fields)!==JSON.stringify(V)),x=(t,c="",C="")=>{var u,I,K,_,L,ie;let l=`${(u=a.config)==null?void 0:u.apiBaseUrl}${q.form[(I=a.config)==null?void 0:I.app][t]}`;return((K=a.config)==null?void 0:K.app)==="konnect"?l=l.replace(/{controlPlaneId}/gi,((_=a.config)==null?void 0:_.controlPlaneId)||""):((L=a.config)==null?void 0:L.app)==="kongManager"&&(l=l.replace(/\/{workspace}/gi,(ie=a.config)!=null&&ie.workspace?`/${a.config.workspace}`:"")),l=l.replace(/{id}/gi,c||a.consumerGroupId),(t==="addConsumer"||t==="removeConsumer")&&(l=l.replace(/{consumerId}/gi,C)),l},te=()=>{var t;i.push(((t=a.config)==null?void 0:t.cancelRoute)||{name:"consumer-group-list"})},re=t=>{r("error",t)},U=t=>{r("loading",t)},M=async t=>{var C,l,u,I,K;s.fields.name=((C=t==null?void 0:t.item)==null?void 0:C.name)||((l=t==null?void 0:t.consumer_group)==null?void 0:l.name)||(t==null?void 0:t.name)||"";const c=((u=t==null?void 0:t.item)==null?void 0:u.tags)||(t==null?void 0:t.consumer_group.tags)||(t==null?void 0:t.tags)||[];if(s.fields.tags=(c==null?void 0:c.join(", "))||"","consumers"in t)s.fields.consumers=((I=t==null?void 0:t.consumers)==null?void 0:I.map(_=>_.id))||[];else try{const{data:_}=await B.get(x("getConsumers"));s.fields.consumers="consumers"in _?(K=_==null?void 0:_.consumers)==null?void 0:K.map(L=>L.id):[]}catch(_){f(_)}Object.assign(V,s.fields)},z=e.computed(()=>H.utf8Name(s.fields.name)),T=e.computed(()=>{var t,c;return{name:s.fields.name,tags:(c=(t=s.fields.tags.split(","))==null?void 0:t.map(C=>String(C||"").trim()))==null?void 0:c.filter(C=>C!=="")}}),p=async(t,c="")=>await B.post(x("addConsumer",c,t),{consumer:t}),b=async(t,c="")=>await B.delete(x("removeConsumer",c,t)),f=t=>{s.errorMessage=G(t),r("error",t)},k=(t=a.consumerGroupId)=>{Object.assign(V,s.fields),r("update",{...s.fields,id:t})},F=(t,c,C=a.consumerGroupId)=>{const l=t==null?void 0:t.find(u=>u.status!=="fulfilled");l?f({code:l.status,message:c}):k(C)},$=async()=>{let t="";try{const{data:c}=await B.post(x("create"),T.value);t="item"in c?c.item.id:c.id}catch(c){f(c)}if(s.fields.consumers.length>0&&t)try{const c=s.fields.consumers.map(l=>p(l,t)),C=await Promise.allSettled(c);F(C,g("consumer_groups.errors.add_consumer"),t)}catch(c){f(c)}else s.fields.consumers.length===0&&t&&k(t)},j=async()=>{var C;try{((C=a.config)==null?void 0:C.app)==="konnect"?await B.put(x("edit"),T.value):await B.patch(x("edit"),T.value)}catch(l){f(l)}const t=s.fields.consumers.filter(l=>!V.consumers.includes(l)),c=V.consumers.filter(l=>!s.fields.consumers.includes(l));if(c.length===0&&t.length===0)k();else{if(c.length>0)try{const l=c.map(I=>b(I)),u=await Promise.allSettled(l);F(u,g("consumer_groups.errors.remove_consumer"))}catch(l){f(l)}if(t.length>0)try{const l=t.map(I=>p(I)),u=await Promise.allSettled(l);F(u,g("consumer_groups.errors.add_consumer"))}catch(l){f(l)}}},X=async()=>{try{s.readonly=!0,oe.value===m.EntityBaseFormType.Create?await $():await j()}finally{s.readonly=!1}};return e.onBeforeMount(async()=>{a.hideConsumers||await ee()}),(t,c)=>{const C=e.resolveComponent("KInput"),l=e.resolveComponent("KMultiselect");return e.openBlock(),e.createElementBlock("div",Me,[e.createVNode(e.unref(m.EntityBaseForm),{"can-submit":w.value&&O.value,config:o.config,"edit-id":o.consumerGroupId,"entity-type":e.unref(m.SupportedEntityType).ConsumerGroup,"error-message":s.errorMessage||e.unref(v)||z.value,"fetch-url":W.value,"form-fields":T.value,"is-readonly":s.readonly,onCancel:te,"onFetch:error":c[3]||(c[3]=u=>re(u)),"onFetch:success":M,onLoading:c[4]||(c[4]=u=>U(u)),onSubmit:X},{default:e.withCtx(()=>[e.createVNode(e.unref(m.EntityFormSection),{description:e.unref(g)("consumer_groups.form.general_info.description"),title:e.unref(g)("consumer_groups.form.general_info.title")},{default:e.withCtx(()=>[e.createVNode(C,{modelValue:s.fields.name,"onUpdate:modelValue":c[0]||(c[0]=u=>s.fields.name=u),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"consumer-group-form-name",label:e.unref(g)("consumer_groups.form.fields.name.label"),placeholder:e.unref(g)("consumer_groups.form.fields.name.placeholder"),required:"",type:"text"},null,8,["modelValue","label","placeholder"]),e.createVNode(C,{modelValue:s.fields.tags,"onUpdate:modelValue":c[1]||(c[1]=u=>s.fields.tags=u),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"consumer-group-form-tags",help:e.unref(g)("consumer_groups.form.fields.tags.help"),label:e.unref(g)("consumer_groups.form.fields.tags.label"),"label-attributes":{info:e.unref(g)("consumer_groups.form.fields.tags.tooltip"),tooltipAttributes:{maxWidth:"400"}},placeholder:e.unref(g)("consumer_groups.form.fields.tags.placeholder"),type:"text"},null,8,["modelValue","help","label","label-attributes","placeholder"])]),_:1},8,["description","title"]),o.hideConsumers?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(m.EntityFormSection),{key:0,description:e.unref(g)("consumer_groups.form.consumers.description"),"has-divider":"",title:e.unref(g)("consumer_groups.form.consumers.title")},{default:e.withCtx(()=>[e.createVNode(l,{modelValue:s.fields.consumers,"onUpdate:modelValue":c[2]||(c[2]=u=>s.fields.consumers=u),appearance:"select",autosuggest:"",items:J.value,label:e.unref(g)("consumer_groups.form.fields.consumers.label"),loading:e.unref(S),placeholder:e.unref(g)("consumer_groups.form.fields.consumers.placeholder"),width:"auto",onQueryChange:e.unref(Z)},{"item-template":e.withCtx(({item:u})=>{var I,K,_;return[e.createElementVNode("div",Te,[e.createElementVNode("div",Ge,e.toDisplayString(u.label),1),(I=u==null?void 0:u.data)!=null&&I.username&&((K=u==null?void 0:u.data)!=null&&K.custom_id)?(e.openBlock(),e.createElementBlock("div",De,e.toDisplayString((_=u==null?void 0:u.data)==null?void 0:_.custom_id),1)):e.createCommentVNode("",!0)])]}),_:1},8,["modelValue","items","label","loading","placeholder","onQueryChange"])]),_:1},8,["description","title"]))]),_:1},8,["can-submit","config","edit-id","entity-type","error-message","fetch-url","form-fields","is-readonly"])])}}}),[["__scopeId","data-v-0487fbd2"]]),Pe={class:"kong-ui-consumer-group-entity-config-card"},Se=e.defineComponent({__name:"ConsumerGroupConfigCard",props:{config:{type:Object,required:!0,validator:o=>!(!o||!["konnect","kongManager"].includes(o==null?void 0:o.app)||o.app==="konnect"&&!o.controlPlaneId||o.app==="kongManager"&&typeof o.workspace!="string"||!o.entityId)},configCardDoc:{type:String,default:"",required:!1},hideTitle:{type:Boolean,default:!1}},emits:["loading","fetch:error","fetch:success"],setup(o){const R=o,{i18n:{t:a}}=se.useI18n(),r=e.computed(()=>q.form[R.config.app].edit),g=e.ref({id:{},name:{},created_at:{},updated_at:{},tags:{tooltip:a("consumer_groups.form.fields.tags.tooltip")}});return(i,s)=>(e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(e.unref(m.EntityBaseConfigCard),{config:o.config,"config-card-doc":o.configCardDoc,"config-schema":g.value,"data-key":"consumer_group","entity-type":e.unref(m.SupportedEntityType).ConsumerGroup,"fetch-url":r.value,"hide-title":o.hideTitle,"onFetch:error":s[0]||(s[0]=V=>i.$emit("fetch:error",V)),"onFetch:success":s[1]||(s[1]=V=>i.$emit("fetch:success",V)),onLoading:s[2]||(s[2]=V=>i.$emit("loading",V))},null,8,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title"])]))}});N.ConsumerGroupConfigCard=Se,N.ConsumerGroupForm=Ae,N.ConsumerGroupList=Be,Object.defineProperty(N,Symbol.toStringTag,{value:"Module"})});
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ .config-card-fieldset[data-v-dc1e39a1]{border:solid 1px #e0e4ea;border-radius:4px;margin-bottom:8px;margin-top:4px}.config-card-fieldset-title[data-v-dc1e39a1]{font-size:14px;padding:0 8px;width:auto}fieldset.config-card-fieldset .config-card-details-row{width:unset}.config-card-json-item .config-card-details-row,fieldset.config-card-fieldset .config-card-details-row{margin:0 16px}.config-card-json-item .config-card-details-row:last-of-type,fieldset.config-card-fieldset .config-card-details-row:last-of-type{border-bottom:none}[data-v-2feb8c2e] .k-button.navigation-button{font-size:14px;font-weight:400}.config-card-details-row[data-v-66d61bea]{align-items:center;border-bottom:var(--v70f369b3);box-sizing:border-box;display:var(--v67c2fae6);padding:16px 16px 16px 0;width:100%}.config-card-details-row .config-card-details-label[data-v-66d61bea]{box-sizing:border-box;padding-right:16px;width:var(--v847b138c)}.config-card-details-row .config-card-details-label label[data-v-66d61bea]{color:#3a3f51;display:inline-flex;max-width:100%}.config-card-details-row .config-card-details-label label .label-content[data-v-66d61bea]{line-height:initial;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card-details-row .config-card-details-label label .k-popover[data-v-66d61bea]{min-width:0}.config-card-details-row .config-card-details-value[data-v-66d61bea]{box-sizing:border-box;width:var(--v847687d6)}.config-card-details-row .config-card-details-value .truncated[data-v-66d61bea]{display:inline-block;line-height:initial;max-width:20ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card-details-row .config-card-details-value span.attrs-data-text[data-v-66d61bea]{overflow-wrap:anywhere}.config-card-details-row .config-card-details-value .copy-uuid-array[data-v-66d61bea] .k-copy:not(:last-of-type){margin-bottom:8px}.config-card-details-row .config-card-details-value .method-badge-array[data-v-66d61bea]{display:flex;flex-wrap:wrap;row-gap:10px}.config-card-details-row .config-badge[data-v-66d61bea]{margin-right:4px}.config-card-details-row[data-v-66d61bea] .k-label{margin-bottom:0}.config-card-details-row[data-v-66d61bea] .k-label .kong-icon-infoFilled{display:flex}.config-card-details-row[data-v-66d61bea] .config-card-details-row{width:auto}.json-content.k-code-block{border-top-left-radius:0;border-top-right-radius:0}.json-endpoint{align-items:baseline;background-color:#000933;border-bottom:1px solid rgba(255,255,255,.2);border-top-left-radius:8px;border-top-right-radius:8px;display:flex;padding:8px 0 8px 12px}.json-endpoint .k-code-block{flex:auto;z-index:2}.json-endpoint .k-code-block .code-block-content{padding-bottom:0;padding-top:0}.json-endpoint .k-code-block .code-block-secondary-actions{margin-top:0!important}.json-endpoint code{direction:rtl;max-width:var(--eca0976a);overflow:hidden!important;text-align:left;text-overflow:ellipsis;white-space:nowrap}.config-card-prop-section-title[data-v-a7689049]{color:#000933;font-size:16px;font-weight:600;margin-bottom:16px;margin-top:48px}.kong-ui-entity-base-config-card .config-card-actions[data-v-f2b42324]{align-items:center;display:flex}.kong-ui-entity-base-config-card .config-card-actions .config-format-select-label[data-v-f2b42324]{margin-bottom:0;margin-right:8px}.kong-ui-entity-base-config-card .config-card-prop-section-title[data-v-f2b42324]{color:#000933;font-size:16px;font-weight:600;margin-bottom:16px;margin-top:48px}.kong-ui-entity-base-config-card[data-v-f2b42324] .config-card-details-row:last-of-type{border-bottom:none}.kong-ui-entity-base-config-card .book-icon[data-v-f2b42324]{margin-left:8px;padding:0}.kong-ui-entity-base-form[data-v-10f3d6b0]{box-sizing:border-box;max-width:1536px;width:100%}.kong-ui-entity-base-form[data-v-10f3d6b0] .k-slideout-title{color:#000933!important;font-size:24px!important;font-weight:700!important;line-height:32px!important;margin-bottom:16px!important}.kong-ui-entity-base-form[data-v-10f3d6b0] .k-card.content-card{padding:0 16px!important}.kong-ui-entity-base-form[data-v-10f3d6b0] .tab-item>div.tab-link.has-panels{color:#6c7489!important;font-size:14px!important;font-weight:700!important;line-height:24px!important}.kong-ui-entity-base-form[data-v-10f3d6b0] .tab-item.active>div.tab-link.has-panels{color:#000933!important;font-weight:600!important}.form-actions[data-v-10f3d6b0]{align-items:center;display:flex;justify-content:flex-end;margin-top:24px}.form-actions[data-v-10f3d6b0] .k-button:last-of-type,.form-actions[data-v-10f3d6b0] .k-button:nth-last-of-type(2){margin-inline-start:16px}.form-actions-reverted[data-v-10f3d6b0]{direction:rtl}.content-wrapper[data-v-a3a65cac] .k-tooltip{word-break:break-all}.kong-ui-entity-base-table .toolbar-container[data-v-44153100]{align-items:center;display:flex;width:100%}.kong-ui-entity-base-table .toolbar-button-container[data-v-44153100]{margin-left:auto}.kong-ui-entity-base-table .hidden[data-v-44153100]{display:none}.kong-ui-entity-base-table :deep(.k-table){table-layout:fixed}.kong-ui-entity-delete-modal .message[data-v-4361d622],.kong-ui-entity-delete-modal .description[data-v-4361d622]{line-height:24px;margin:0}.kong-ui-entity-delete-modal .message strong[data-v-4361d622]{font-weight:600}.kong-ui-entity-delete-modal .description[data-v-4361d622]{margin-top:32px}.kong-ui-entity-delete-error[data-v-4361d622]{margin-bottom:16px}.kong-ui-entity-filter-input[data-v-084f7978]{width:100%}.kong-ui-entity-filter-clear[data-v-084f7978]{cursor:pointer}.kong-ui-entity-filter[data-v-084f7978]{display:flex;position:relative}.kong-ui-entity-filter[data-v-084f7978] .menu-content{flex-direction:column}.kong-ui-entity-filter[data-v-084f7978] .k-menu-item-divider hr{margin:12px 0}.kong-ui-entity-filter-backdrop[data-v-084f7978]{bottom:0;left:0;position:fixed;right:0;top:0;z-index:1050}.kong-ui-entity-filter-menu[data-v-084f7978]{background-color:#fff;border:1px solid #afb7c5;border-radius:4px;box-shadow:0 4px 20px #e0e4ea;left:0;margin-top:16px;padding:8px 0 12px;position:absolute;top:100%;width:300px;z-index:1060}.kong-ui-entity-filter-menu-item[data-v-084f7978]{border-bottom:1px solid #e0e4ea;color:#6c7489;font-size:12px;font-weight:400;line-height:16px;list-style:none;margin:0 20px;padding:16px 0;position:relative;white-space:nowrap}.menu-item-title[data-v-084f7978]{align-items:center;cursor:pointer;display:flex;line-height:24px}.menu-item-title.expanded[data-v-084f7978]{color:#232633}.menu-item-expand-icon[data-v-084f7978]{margin-left:auto}.menu-item-expand-icon.expanded[data-v-084f7978]{transform:rotate(180deg)}.menu-item-indicator[data-v-084f7978]{background-color:#0044f4;border-radius:50%;height:4px;margin-left:4px;width:4px}.menu-item-body[data-v-084f7978]{align-items:center;display:flex;justify-content:space-between;margin-top:16px}.menu-item-body[data-v-084f7978] .input{padding-bottom:4px!important;padding-top:4px!important}.menu-item-body[data-v-084f7978] .k-input{width:100%}.menu-item-body[data-v-084f7978] .k-select-input .input{font-size:12px}.menu-item-body[data-v-084f7978] .k-select-input .input::placeholder{color:#00000073!important;font-size:12px}.menu-item-label[data-v-084f7978]{margin-bottom:0;margin-right:12px}.menu-item-buttons[data-v-084f7978]{display:flex;justify-content:space-between;margin:10px 0 6px}.filter-clear-button-container[data-v-084f7978]{padding:12px 20px 0}fieldset[data-v-b1f74200]{margin:0;min-width:0;padding:0}.kong-ui-entity-form-section[data-v-b1f74200]{border:0}.kong-ui-entity-form-section .form-section-wrapper[data-v-b1f74200]{column-gap:16px;display:flex;flex-direction:column;padding-bottom:64px;row-gap:12px;width:100%}@media (min-width: 1024px){.kong-ui-entity-form-section .form-section-wrapper[data-v-b1f74200]{flex-direction:row}}.kong-ui-entity-form-section .form-section-wrapper .form-section-info[data-v-b1f74200]{flex:1}@media (min-width: 1024px){.kong-ui-entity-form-section .form-section-wrapper .form-section-info[data-v-b1f74200]{max-width:350px}.kong-ui-entity-form-section .form-section-wrapper .form-section-info.sticky[data-v-b1f74200]{height:fit-content;margin-bottom:16px;position:sticky;top:16px}}.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-title[data-v-b1f74200]{color:#000933;font-size:16px;font-weight:700;line-height:20px;margin-bottom:8px;margin-top:0}.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-description[data-v-b1f74200],.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-description p[data-v-b1f74200],.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-description[data-v-b1f74200] p{color:#000933;font-size:14px;font-weight:400;line-height:20px;margin:0}.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-footer[data-v-b1f74200]{margin-top:32px}.kong-ui-entity-form-section .form-section-wrapper .form-section-content[data-v-b1f74200]{flex:1}.kong-ui-entity-form-section .form-section-wrapper .form-section-content[data-v-b1f74200]>*:not(:first-child){margin-top:24px}.kong-ui-entity-form-section.has-divider .form-section-wrapper[data-v-b1f74200]{border-bottom:1px solid #e0e4ea}.ff-form-section .header[data-v-cb6d2e95]{align-items:flex-start;display:flex;gap:8px}.ff-form-section .step[data-v-cb6d2e95]{align-items:center;background:#fff;border:1px solid #afb7c5;border-radius:100px;display:flex;flex:0 0 auto;height:32px;justify-content:center;padding:4px;width:32px}.ff-form-section .header-content[data-v-cb6d2e95]{align-items:flex-start;display:flex;flex:1 1 auto;flex-direction:column;gap:8px;padding-top:4px}.ff-form-section .header-title[data-v-cb6d2e95]{color:#000933;font-size:18px;font-weight:700;line-height:24px;margin:0}.ff-form-section .header-description[data-v-cb6d2e95]{color:#52596e;font-size:14px;line-height:20px;margin:0}.ff-form-section .header-extra[data-v-cb6d2e95]{align-items:center;display:flex;flex:0 0 auto;gap:8px;justify-content:flex-end}.ff-form-section .content[data-v-cb6d2e95]{background:#f9fafb;border:1px solid #e0e4ea;border-radius:6px;display:flex;flex-direction:column;gap:20px;margin-left:16px;margin-top:20px;padding:20px 24px}.kong-ui-public-entity-link[data-v-96efdfa5]{align-items:center;display:flex}.kong-ui-public-entity-link .deleted-entity[data-v-96efdfa5]{font-style:italic}.kong-ui-public-entity-link .entity-link[data-v-96efdfa5]{display:flex;flex:1}.kong-ui-public-entity-link .entity-link[data-v-96efdfa5] .external-link-icon{color:#0044f4;margin-left:4px;padding:2px}.kong-ui-public-entity-link .entity-link-label[data-v-96efdfa5]{display:inline-block;font-weight:400;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kong-ui-public-entity-link .copy-uuid-tooltip[data-v-96efdfa5]{align-items:center;cursor:pointer;display:flex}.kong-ui-public-entity-link .copy-uuid-tooltip .entity-link-copy-id[data-v-96efdfa5]{margin-left:2px}.kong-ui-public-entity-empty-state[data-v-645aae54]{align-items:center;background-color:#fff;box-sizing:border-box;display:flex;flex-direction:column;font-family:Inter,Roboto,Helvetica,sans-serif;gap:24px;padding:64px 0;width:100%}@media (min-width: 640px){.kong-ui-public-entity-empty-state[data-v-645aae54]{padding:64px 96px}}.kong-ui-public-entity-empty-state .empty-state-image[data-v-645aae54]{margin-bottom:8px}.kong-ui-public-entity-empty-state .entity-empty-state-content[data-v-645aae54]{align-items:center;display:flex;flex-direction:column;gap:8px;text-align:center;width:100%}.kong-ui-public-entity-empty-state .entity-empty-state-content .entity-empty-state-title h1[data-v-645aae54]{align-items:center;color:#000933;display:flex;font-size:24px;font-weight:700;gap:8px;line-height:32px;margin:0}.kong-ui-public-entity-empty-state .entity-empty-state-content .entity-empty-state-title h1.secondary[data-v-645aae54]{font-size:18px}.kong-ui-public-entity-empty-state .entity-empty-state-description[data-v-645aae54],.kong-ui-public-entity-empty-state .entity-empty-state-pricing[data-v-645aae54]{color:#52596e;font-size:14px;font-weight:400;line-height:20px;max-width:640px}.kong-ui-public-entity-empty-state .entity-empty-state-description p[data-v-645aae54],.kong-ui-public-entity-empty-state .entity-empty-state-pricing p[data-v-645aae54]{margin:0}.kong-ui-public-entity-empty-state .entity-empty-state-pricing[data-v-645aae54]{margin-top:16px}.kong-ui-public-entity-empty-state .entity-empty-state-message[data-v-645aae54]{color:#52596e}.kong-ui-public-entity-empty-state .entity-empty-state-action[data-v-645aae54]{align-items:center;display:flex;gap:12px}.kong-ui-public-entity-empty-state .entity-empty-state-card-container[data-v-645aae54]{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-around;margin-top:8px;width:312px}@media (min-width: 640px){.kong-ui-public-entity-empty-state .entity-empty-state-card-container[data-v-645aae54]{width:640px}}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card[data-v-645aae54]{background-color:#f9fafb;border:1px solid #e0e4ea;border-radius:6px;color:#afb7c5;gap:8px;height:160px;padding:20px;width:312px}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card .feature-icon[data-v-645aae54]{color:#3a3f51;display:flex;margin-bottom:12px}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card .feature-icon[data-v-645aae54] .kui-icon{height:20px!important;width:20px!important}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card[data-v-645aae54] .card-title{font-size:14px;font-weight:600}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card[data-v-645aae54] .card-content{-webkit-box-orient:vertical;color:#6c7489;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.kong-ui-public-entity-empty-state .entity-empty-state-bottom-container[data-v-645aae54]{border-top:1px solid #e0e4ea;display:flex;flex-direction:column;gap:16px;padding-top:48px;width:100%}@media (min-width: 640px){.kong-ui-public-entity-empty-state .entity-empty-state-bottom-container[data-v-645aae54]{width:640px}}.kong-ui-entities-add-to-groups-modal .add-to-group-cta-text[data-v-4a6bfc7b]{margin-top:0}.kong-ui-entities-add-to-groups-modal .add-to-group-form-container[data-v-4a6bfc7b]{margin-bottom:20px}.kong-ui-entities-add-to-groups-modal .add-to-group-form-container .kong-ui-entity-add-to-groups-error[data-v-4a6bfc7b]{margin-top:16px}.button-row[data-v-8d52618f]{align-items:center;display:flex;gap:12px}.kong-ui-entities-consumer-groups-list[data-v-8d52618f]{width:100%}.kong-ui-entities-consumer-groups-list .kong-ui-entity-filter-input[data-v-8d52618f]{margin-right:12px}.kong-ui-entities-consumer-groups-list .exit-modal-message[data-v-8d52618f]{margin-top:0}.kong-ui-entities-consumer-group-form[data-v-0487fbd2]{width:100%}@media screen and (min-width: 1280px){.kong-ui-entities-consumer-group-form[data-v-0487fbd2] .form-section-wrapper{column-gap:64px}}.kong-ui-entities-consumer-group-form .select-item-container .select-item-label[data-v-0487fbd2]{font-weight:600}.kong-ui-entities-consumer-group-form .select-item-container .select-item-description[data-v-0487fbd2]{color:#6c7489;font-size:12px}
@@ -0,0 +1,39 @@
1
+ import type { PropType } from 'vue';
2
+ import type { KongManagerConsumerGroupListConfig, KonnectConsumerGroupListConfig } from '../types';
3
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
5
+ config: {
6
+ type: PropType<KonnectConsumerGroupListConfig | KongManagerConsumerGroupListConfig>;
7
+ required: true;
8
+ validator: (config: KonnectConsumerGroupListConfig | KongManagerConsumerGroupListConfig) => boolean;
9
+ };
10
+ visible: {
11
+ type: BooleanConstructor;
12
+ required: true;
13
+ default: boolean;
14
+ };
15
+ }>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
16
+ cancel: () => any;
17
+ "add:success": (consumers: string[]) => any;
18
+ "add:partial-success": (consumers: string[]) => any;
19
+ error: (msg: string) => any;
20
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
21
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
22
+ config: {
23
+ type: PropType<KonnectConsumerGroupListConfig | KongManagerConsumerGroupListConfig>;
24
+ required: true;
25
+ validator: (config: KonnectConsumerGroupListConfig | KongManagerConsumerGroupListConfig) => boolean;
26
+ };
27
+ visible: {
28
+ type: BooleanConstructor;
29
+ required: true;
30
+ default: boolean;
31
+ };
32
+ }>> & Readonly<{
33
+ onCancel?: (() => any) | undefined;
34
+ "onAdd:success"?: ((consumers: string[]) => any) | undefined;
35
+ "onAdd:partial-success"?: ((consumers: string[]) => any) | undefined;
36
+ onError?: ((msg: string) => any) | undefined;
37
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
38
+ export default _default;
39
+ //# sourceMappingURL=AddToGroupModal.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddToGroupModal.vue.d.ts","sourceRoot":"","sources":["../../../src/components/AddToGroupModal.vue"],"names":[],"mappings":"AAqRA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,KAAK,EACV,kCAAkC,EAClC,8BAA8B,EAC/B,MAAM,UAAU,CAAA;;IAuZf,oHAAoH;;cAElG,QAAQ,CAAC,8BAA8B,GAAG,kCAAkC,CAAC;;4BAEzE,8BAA8B,GAAG,kCAAkC,KAAG,OAAO;;;;;;;;;;;;;IAJnG,oHAAoH;;cAElG,QAAQ,CAAC,8BAA8B,GAAG,kCAAkC,CAAC;;4BAEzE,8BAA8B,GAAG,kCAAkC,KAAG,OAAO;;;;;;;;;;;;;AATrG,wBAqBG"}
@@ -0,0 +1,62 @@
1
+ import type { PropType } from 'vue';
2
+ import type { AxiosError } from 'axios';
3
+ import type { KongManagerConsumerGroupEntityConfig, KonnectConsumerGroupEntityConfig } from '../types';
4
+ import '@kong-ui-public/entities-shared/dist/style.css';
5
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
7
+ config: {
8
+ type: PropType<KonnectConsumerGroupEntityConfig | KongManagerConsumerGroupEntityConfig>;
9
+ required: true;
10
+ validator: (config: KonnectConsumerGroupEntityConfig | KongManagerConsumerGroupEntityConfig) => boolean;
11
+ };
12
+ /**
13
+ * External link for documentation that determines visibility of Documentation button
14
+ */
15
+ configCardDoc: {
16
+ type: StringConstructor;
17
+ default: string;
18
+ required: false;
19
+ };
20
+ /**
21
+ * Control visibility of card title content
22
+ */
23
+ hideTitle: {
24
+ type: BooleanConstructor;
25
+ default: boolean;
26
+ };
27
+ }>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
28
+ loading: (isLoading: boolean) => any;
29
+ "fetch:success": (data: Record<string, any>) => any;
30
+ "fetch:error": (error: AxiosError<unknown, any>) => any;
31
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
32
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
33
+ config: {
34
+ type: PropType<KonnectConsumerGroupEntityConfig | KongManagerConsumerGroupEntityConfig>;
35
+ required: true;
36
+ validator: (config: KonnectConsumerGroupEntityConfig | KongManagerConsumerGroupEntityConfig) => boolean;
37
+ };
38
+ /**
39
+ * External link for documentation that determines visibility of Documentation button
40
+ */
41
+ configCardDoc: {
42
+ type: StringConstructor;
43
+ default: string;
44
+ required: false;
45
+ };
46
+ /**
47
+ * Control visibility of card title content
48
+ */
49
+ hideTitle: {
50
+ type: BooleanConstructor;
51
+ default: boolean;
52
+ };
53
+ }>> & Readonly<{
54
+ onLoading?: ((isLoading: boolean) => any) | undefined;
55
+ "onFetch:success"?: ((data: Record<string, any>) => any) | undefined;
56
+ "onFetch:error"?: ((error: AxiosError<unknown, any>) => any) | undefined;
57
+ }>, {
58
+ configCardDoc: string;
59
+ hideTitle: boolean;
60
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
61
+ export default _default;
62
+ //# sourceMappingURL=ConsumerGroupConfigCard.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsumerGroupConfigCard.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ConsumerGroupConfigCard.vue"],"names":[],"mappings":"AA+EA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,KAAK,EAAE,oCAAoC,EAAE,gCAAgC,EAAoC,MAAM,UAAU,CAAA;AAIxI,OAAO,gDAAgD,CAAA;;IAqKrD,oHAAoH;;cAElG,QAAQ,CAAC,gCAAgC,GAAG,oCAAoC,CAAC;;4BAE7E,gCAAgC,GAAG,oCAAoC,KAAG,OAAO;;IAQvG;;OAEG;;;;;;IAMH;;OAEG;;;;;;;;;;IAtBH,oHAAoH;;cAElG,QAAQ,CAAC,gCAAgC,GAAG,oCAAoC,CAAC;;4BAE7E,gCAAgC,GAAG,oCAAoC,KAAG,OAAO;;IAQvG;;OAEG;;;;;;IAMH;;OAEG;;;;;;;;;;;;;AA3BL,wBAiCG"}
@@ -0,0 +1,52 @@
1
+ import '@kong-ui-public/entities-shared/dist/style.css';
2
+ import type { PropType } from 'vue';
3
+ import type { KongManagerConsumerGroupFormConfig, KonnectConsumerGroupFormConfig, ConsumerGroupData } from '../types';
4
+ import type { AxiosError } from 'axios';
5
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
7
+ config: {
8
+ type: PropType<KonnectConsumerGroupFormConfig | KongManagerConsumerGroupFormConfig>;
9
+ required: true;
10
+ validator: (config: KonnectConsumerGroupFormConfig | KongManagerConsumerGroupFormConfig) => boolean;
11
+ };
12
+ /** If a valid consumerGroupId is provided, it will put the form in Edit mode instead of Create */
13
+ consumerGroupId: {
14
+ type: StringConstructor;
15
+ required: false;
16
+ default: string;
17
+ };
18
+ hideConsumers: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
22
+ }>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
23
+ error: (error: AxiosError<unknown, any>) => any;
24
+ loading: (isLoading: boolean) => any;
25
+ update: (data: ConsumerGroupData) => any;
26
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
28
+ config: {
29
+ type: PropType<KonnectConsumerGroupFormConfig | KongManagerConsumerGroupFormConfig>;
30
+ required: true;
31
+ validator: (config: KonnectConsumerGroupFormConfig | KongManagerConsumerGroupFormConfig) => boolean;
32
+ };
33
+ /** If a valid consumerGroupId is provided, it will put the form in Edit mode instead of Create */
34
+ consumerGroupId: {
35
+ type: StringConstructor;
36
+ required: false;
37
+ default: string;
38
+ };
39
+ hideConsumers: {
40
+ type: BooleanConstructor;
41
+ default: boolean;
42
+ };
43
+ }>> & Readonly<{
44
+ onError?: ((error: AxiosError<unknown, any>) => any) | undefined;
45
+ onLoading?: ((isLoading: boolean) => any) | undefined;
46
+ onUpdate?: ((data: ConsumerGroupData) => any) | undefined;
47
+ }>, {
48
+ consumerGroupId: string;
49
+ hideConsumers: boolean;
50
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
51
+ export default _default;
52
+ //# sourceMappingURL=ConsumerGroupForm.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsumerGroupForm.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ConsumerGroupForm.vue"],"names":[],"mappings":"AAwZA,OAAO,gDAAgD,CAAA;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,KAAK,EAMV,kCAAkC,EAClC,8BAA8B,EAAE,iBAAiB,EAClD,MAAM,UAAU,CAAA;AAIjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;;IA6jBrC,oHAAoH;;cAElG,QAAQ,CAAC,8BAA8B,GAAG,kCAAkC,CAAC;;4BAEzE,8BAA8B,GAAG,kCAAkC,KAAG,OAAO;;IAQnG,kGAAkG;;;;;;;;;;;;;;;IAZlG,oHAAoH;;cAElG,QAAQ,CAAC,8BAA8B,GAAG,kCAAkC,CAAC;;4BAEzE,8BAA8B,GAAG,kCAAkC,KAAG,OAAO;;IAQnG,kGAAkG;;;;;;;;;;;;;;;;;;AAjBpG,wBA4BG"}
@@ -0,0 +1,110 @@
1
+ import type { PropType } from 'vue';
2
+ import type { AxiosError } from 'axios';
3
+ import type { KongManagerConsumerGroupListConfig, KonnectConsumerGroupListConfig, EntityRow, CopyEventPayload } from '../types';
4
+ import '@kong-ui-public/entities-shared/dist/style.css';
5
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
7
+ config: {
8
+ type: PropType<KonnectConsumerGroupListConfig | KongManagerConsumerGroupListConfig>;
9
+ required: true;
10
+ validator: (config: KonnectConsumerGroupListConfig | KongManagerConsumerGroupListConfig) => boolean;
11
+ };
12
+ cacheIdentifier: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can create a new entity */
17
+ canCreate: {
18
+ type: PropType<() => boolean | Promise<boolean>>;
19
+ required: false;
20
+ default: () => Promise<boolean>;
21
+ };
22
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can delete a given entity */
23
+ canDelete: {
24
+ type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
25
+ required: false;
26
+ default: () => Promise<boolean>;
27
+ };
28
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can edit a given entity */
29
+ canEdit: {
30
+ type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
31
+ required: false;
32
+ default: () => Promise<boolean>;
33
+ };
34
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can retrieve (view details) a given entity */
35
+ canRetrieve: {
36
+ type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
37
+ required: false;
38
+ default: () => Promise<boolean>;
39
+ };
40
+ /** default to false, setting to true will teleport the toolbar button to the destination in the consuming app */
41
+ useActionOutside: {
42
+ type: BooleanConstructor;
43
+ default: boolean;
44
+ };
45
+ }>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
46
+ "add:success": (consumers: string[]) => any;
47
+ error: (error: AxiosError<unknown, any>) => any;
48
+ "click:learn-more": () => any;
49
+ "copy:success": (payload: CopyEventPayload) => any;
50
+ "copy:error": (payload: CopyEventPayload) => any;
51
+ "delete:success": (consumerGroup: EntityRow) => any;
52
+ "remove:success": (consumer: EntityRow) => any;
53
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
54
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
55
+ config: {
56
+ type: PropType<KonnectConsumerGroupListConfig | KongManagerConsumerGroupListConfig>;
57
+ required: true;
58
+ validator: (config: KonnectConsumerGroupListConfig | KongManagerConsumerGroupListConfig) => boolean;
59
+ };
60
+ cacheIdentifier: {
61
+ type: StringConstructor;
62
+ default: string;
63
+ };
64
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can create a new entity */
65
+ canCreate: {
66
+ type: PropType<() => boolean | Promise<boolean>>;
67
+ required: false;
68
+ default: () => Promise<boolean>;
69
+ };
70
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can delete a given entity */
71
+ canDelete: {
72
+ type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
73
+ required: false;
74
+ default: () => Promise<boolean>;
75
+ };
76
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can edit a given entity */
77
+ canEdit: {
78
+ type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
79
+ required: false;
80
+ default: () => Promise<boolean>;
81
+ };
82
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can retrieve (view details) a given entity */
83
+ canRetrieve: {
84
+ type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
85
+ required: false;
86
+ default: () => Promise<boolean>;
87
+ };
88
+ /** default to false, setting to true will teleport the toolbar button to the destination in the consuming app */
89
+ useActionOutside: {
90
+ type: BooleanConstructor;
91
+ default: boolean;
92
+ };
93
+ }>> & Readonly<{
94
+ "onAdd:success"?: ((consumers: string[]) => any) | undefined;
95
+ onError?: ((error: AxiosError<unknown, any>) => any) | undefined;
96
+ "onClick:learn-more"?: (() => any) | undefined;
97
+ "onCopy:success"?: ((payload: CopyEventPayload) => any) | undefined;
98
+ "onCopy:error"?: ((payload: CopyEventPayload) => any) | undefined;
99
+ "onDelete:success"?: ((consumerGroup: EntityRow) => any) | undefined;
100
+ "onRemove:success"?: ((consumer: EntityRow) => any) | undefined;
101
+ }>, {
102
+ cacheIdentifier: string;
103
+ canCreate: () => boolean | Promise<boolean>;
104
+ canDelete: (row: EntityRow) => boolean | Promise<boolean>;
105
+ canEdit: (row: EntityRow) => boolean | Promise<boolean>;
106
+ canRetrieve: (row: EntityRow) => boolean | Promise<boolean>;
107
+ useActionOutside: boolean;
108
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
109
+ export default _default;
110
+ //# sourceMappingURL=ConsumerGroupList.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsumerGroupList.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ConsumerGroupList.vue"],"names":[],"mappings":"AAwrBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAkBvC,OAAO,KAAK,EACV,kCAAkC,EAClC,8BAA8B,EAC9B,SAAS,EACT,gBAAgB,EACjB,MAAM,UAAU,CAAA;AAQjB,OAAO,gDAAgD,CAAA;;IA0wCrD,oHAAoH;;cAElG,QAAQ,CAAC,8BAA8B,GAAG,kCAAkC,CAAC;;4BAEzE,8BAA8B,GAAG,kCAAkC,KAAG,OAAO;;;;;;IAYnG,yHAAyH;;cAErG,QAAQ,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI9D,2HAA2H;;cAEvG,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,yHAAyH;;cAErG,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,4IAA4I;;cAExH,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,iHAAiH;;;;;;;;;;;;;;IAxCjH,oHAAoH;;cAElG,QAAQ,CAAC,8BAA8B,GAAG,kCAAkC,CAAC;;4BAEzE,8BAA8B,GAAG,kCAAkC,KAAG,OAAO;;;;;;IAYnG,yHAAyH;;cAErG,QAAQ,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI9D,2HAA2H;;cAEvG,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,yHAAyH;;cAErG,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,4IAA4I;;cAExH,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,iHAAiH;;;;;;;;;;;;;;;qBAtB9E,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;qBAM1B,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;mBAMxC,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;uBAMxC,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;;;AAzC7E,wBAmDG"}
@@ -0,0 +1,6 @@
1
+ import useI18n from './useI18n';
2
+ declare const _default: {
3
+ useI18n: typeof useI18n;
4
+ };
5
+ export default _default;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/composables/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAA;;;;AAG/B,wBAEC"}
@@ -0,0 +1,9 @@
1
+ import { createI18n, i18nTComponent } from '@kong-ui-public/i18n';
2
+ import english from '../locales/en.json';
3
+ interface UseI18nReturn {
4
+ i18n: ReturnType<typeof createI18n<typeof english>>;
5
+ i18nT: ReturnType<typeof i18nTComponent<typeof english>>;
6
+ }
7
+ export default function useI18n(): UseI18nReturn;
8
+ export {};
9
+ //# sourceMappingURL=useI18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../../src/composables/useI18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,OAAO,MAAM,oBAAoB,CAAA;AAExC,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,CAAA;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,IAAI,aAAa,CAO/C"}
@@ -0,0 +1,36 @@
1
+ declare const _default: {
2
+ list: {
3
+ konnect: {
4
+ all: string;
5
+ forModal: string;
6
+ forConsumer: string;
7
+ oneForConsumer: string;
8
+ };
9
+ kongManager: {
10
+ all: string;
11
+ forModal: string;
12
+ forConsumer: string;
13
+ oneForConsumer: string;
14
+ };
15
+ };
16
+ form: {
17
+ konnect: {
18
+ consumersList: string;
19
+ create: string;
20
+ edit: string;
21
+ addConsumer: string;
22
+ removeConsumer: string;
23
+ getConsumers: string;
24
+ };
25
+ kongManager: {
26
+ consumersList: string;
27
+ create: string;
28
+ edit: string;
29
+ addConsumer: string;
30
+ removeConsumer: string;
31
+ getConsumers: string;
32
+ };
33
+ };
34
+ };
35
+ export default _default;
36
+ //# sourceMappingURL=consumer-groups-endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-groups-endpoints.d.ts","sourceRoot":"","sources":["../../src/consumer-groups-endpoints.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,wBAiCC"}
@@ -0,0 +1,6 @@
1
+ import ConsumerGroupList from './components/ConsumerGroupList.vue';
2
+ import ConsumerGroupForm from './components/ConsumerGroupForm.vue';
3
+ import ConsumerGroupConfigCard from './components/ConsumerGroupConfigCard.vue';
4
+ export { ConsumerGroupList, ConsumerGroupForm, ConsumerGroupConfigCard };
5
+ export * from './types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,oCAAoC,CAAA;AAClE,OAAO,iBAAiB,MAAM,oCAAoC,CAAA;AAClE,OAAO,uBAAuB,MAAM,0CAA0C,CAAA;AAE9E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,CAAA;AAExE,cAAc,SAAS,CAAA"}
@@ -0,0 +1,15 @@
1
+ import type { KonnectBaseEntityConfig, KongManagerBaseEntityConfig, ConfigurationSchemaItem } from '@kong-ui-public/entities-shared';
2
+ /** Konnect ConsumerGroup entity config */
3
+ export interface KonnectConsumerGroupEntityConfig extends KonnectBaseEntityConfig {
4
+ }
5
+ /** Kong Manager ConsumerGroup entity config */
6
+ export interface KongManagerConsumerGroupEntityConfig extends KongManagerBaseEntityConfig {
7
+ }
8
+ export interface ConsumerGroupConfigurationSchema {
9
+ id: ConfigurationSchemaItem;
10
+ name: ConfigurationSchemaItem;
11
+ updated_at: ConfigurationSchemaItem;
12
+ created_at: ConfigurationSchemaItem;
13
+ tags: ConfigurationSchemaItem;
14
+ }
15
+ //# sourceMappingURL=consumer-group-config-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-group-config-card.d.ts","sourceRoot":"","sources":["../../../src/types/consumer-group-config-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAEpI,0CAA0C;AAC1C,MAAM,WAAW,gCAAiC,SAAQ,uBAAuB;CAAG;AAEpF,+CAA+C;AAC/C,MAAM,WAAW,oCAAqC,SAAQ,2BAA2B;CAAG;AAE5F,MAAM,WAAW,gCAAgC;IAE/C,EAAE,EAAE,uBAAuB,CAAA;IAC3B,IAAI,EAAE,uBAAuB,CAAA;IAC7B,UAAU,EAAE,uBAAuB,CAAA;IACnC,UAAU,EAAE,uBAAuB,CAAA;IACnC,IAAI,EAAE,uBAAuB,CAAA;CAC9B"}
@@ -0,0 +1,37 @@
1
+ import type { RouteLocationRaw } from 'vue-router';
2
+ import type { BaseFormConfig, KongManagerBaseFormConfig, KonnectBaseFormConfig } from '@kong-ui-public/entities-shared';
3
+ export interface BaseConsumerGroupFormConfig extends Omit<BaseFormConfig, 'cancelRoute'> {
4
+ /** Route to return to if canceling create/edit a Consumer form */
5
+ cancelRoute: RouteLocationRaw;
6
+ }
7
+ /** Konnect Consumer form config */
8
+ export interface KonnectConsumerGroupFormConfig extends Omit<KonnectBaseFormConfig, 'cancelRoute'>, BaseConsumerGroupFormConfig {
9
+ }
10
+ /** Kong Manager Consumer form config */
11
+ export interface KongManagerConsumerGroupFormConfig extends Omit<KongManagerBaseFormConfig, 'cancelRoute'>, BaseConsumerGroupFormConfig {
12
+ }
13
+ export interface ConsumerGroupFields {
14
+ name: string;
15
+ tags: string;
16
+ consumers: string[];
17
+ }
18
+ export interface ConsumerGroupPayload extends Omit<ConsumerGroupFields, 'consumers' | 'tags'> {
19
+ tags: string[];
20
+ }
21
+ export interface ConsumerGroupData extends ConsumerGroupFields {
22
+ id: string;
23
+ }
24
+ export interface ConsumerGroupState {
25
+ fields: ConsumerGroupFields;
26
+ errorMessage: string;
27
+ readonly: boolean;
28
+ }
29
+ export interface Consumer {
30
+ created_at: number;
31
+ id: string;
32
+ tags: string[];
33
+ updated_at: number;
34
+ username: string;
35
+ }
36
+ export type ConsumerGroupActions = 'getConsumers' | 'create' | 'edit' | 'addConsumer' | 'removeConsumer';
37
+ //# sourceMappingURL=consumer-group-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-group-form.d.ts","sourceRoot":"","sources":["../../../src/types/consumer-group-form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAEvH,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC;IACtF,kEAAkE;IAClE,WAAW,EAAE,gBAAgB,CAAA;CAC9B;AAED,mCAAmC;AACnC,MAAM,WAAW,8BAA+B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,EAAE,2BAA2B;CAAG;AAElI,wCAAwC;AACxC,MAAM,WAAW,kCAAmC,SAAQ,IAAI,CAAC,yBAAyB,EAAE,aAAa,CAAC,EAAE,2BAA2B;CAAG;AAE1I,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3F,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AACD,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,gBAAgB,CAAA"}
@@ -0,0 +1,39 @@
1
+ import type { RouteLocationRaw } from 'vue-router';
2
+ import type { FilterSchema, KongManagerBaseTableConfig, KonnectBaseTableConfig } from '@kong-ui-public/entities-shared';
3
+ export interface BaseConsumerGroupListConfig {
4
+ /** Current consumer id if the ConsumerGroupList in nested in the groups tab on a consumer detail page */
5
+ consumerId?: string;
6
+ /** Current consumer username if the ConsumerGroupList in nested in the groups tab on a consumer detail page */
7
+ consumerUsername?: string;
8
+ /** Route for creating a consumer group */
9
+ createRoute: RouteLocationRaw;
10
+ /** A boolean to indicate if the paginated endpoint is used when consumerId is provided */
11
+ paginatedEndpoint?: boolean;
12
+ /** A function that returns the route for viewing a consumer group */
13
+ getViewRoute: (id: string) => RouteLocationRaw;
14
+ /** A function that returns the route for editing a consumer group */
15
+ getEditRoute: (id: string) => RouteLocationRaw;
16
+ }
17
+ /** Konnect route list config */
18
+ export interface KonnectConsumerGroupListConfig extends KonnectBaseTableConfig, BaseConsumerGroupListConfig {
19
+ }
20
+ /** Kong Manager route list config */
21
+ export interface KongManagerConsumerGroupListConfig extends KongManagerBaseTableConfig, BaseConsumerGroupListConfig {
22
+ /** FilterSchema for fuzzy match */
23
+ filterSchema?: FilterSchema;
24
+ }
25
+ export interface EntityRow extends Record<string, any> {
26
+ id: string;
27
+ name: string;
28
+ consumers: number;
29
+ }
30
+ /** Copy field event payload */
31
+ export interface CopyEventPayload {
32
+ /** The entity row */
33
+ entity: EntityRow;
34
+ /** The field being copied. If omitted, the entity JSON is being copied. */
35
+ field?: string;
36
+ /** The toaster message */
37
+ message: string;
38
+ }
39
+ //# sourceMappingURL=consumer-group-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-group-list.d.ts","sourceRoot":"","sources":["../../../src/types/consumer-group-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,iCAAiC,CAAA;AAExC,MAAM,WAAW,2BAA2B;IAC1C,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+GAA+G;IAC/G,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,0CAA0C;IAC1C,WAAW,EAAE,gBAAgB,CAAA;IAC7B,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,qEAAqE;IACrE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,gBAAgB,CAAA;IAC9C,qEAAqE;IACrE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,gBAAgB,CAAA;CAC/C;AAED,gCAAgC;AAChC,MAAM,WAAW,8BAA+B,SAAQ,sBAAsB,EAAE,2BAA2B;CAAG;AAE9G,qCAAqC;AACrC,MAAM,WAAW,kCACf,SAAQ,0BAA0B,EAClC,2BAA2B;IAC3B,mCAAmC;IACnC,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED,MAAM,WAAW,SAAU,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,MAAM,EAAE,SAAS,CAAA;IACjB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB"}
@@ -0,0 +1,4 @@
1
+ export * from './consumer-group-list';
2
+ export * from './consumer-group-form';
3
+ export * from './consumer-group-config-card';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAGA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA"}