@kong-ui-public/entities-key-sets 2.5.1 → 2.5.2
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.
|
@@ -333,7 +333,7 @@ function Sa(e, t, n, r = {
|
|
|
333
333
|
fetchedItemsKey: "data",
|
|
334
334
|
searchKeys: ["id"]
|
|
335
335
|
}) {
|
|
336
|
-
n || (n = "
|
|
336
|
+
n || (n = "1000");
|
|
337
337
|
const { axiosInstance: a } = ft({
|
|
338
338
|
headers: e.requestHeaders
|
|
339
339
|
}), { i18n: { t: o } } = gt(), { debounce: i } = ua(), l = i(async (g) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(z,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("vue-router"),require("@kong-ui-public/i18n"),require("axios"),require("@kong/kongponents")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","@kong-ui-public/i18n","axios","@kong/kongponents"],t):(z=typeof globalThis<"u"?globalThis:z||self,t(z["kong-ui-public-entities-key-sets"]={},z.Vue,z.VueRouter,z["kong-ui-public-i18n"],z.axios,z.Kongponents))})(this,function(z,t,_e,he,Ye,Cn){"use strict";const wn={keySets:{title:"Key Sets",list:{toolbar_actions:{new_key_set:"New Key Set"},table_headers:{name:"Name",id:"ID",tags:"Tags"},empty_state:{title:"Configure a New Key Set",description:"A Key Set object holds a collection of asymmetric key objects. This entity allows to logically group keys by their purpose."}},actions:{create:"New Key Set",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",delete:"Delete",clear:"Clear",view:"View Details"},search:{placeholder:"Filter by exact name or ID"},delete:{title:"Delete a Key Set",description:"Deleting this key set will also delete keys associated. This action cannot be reversed so make sure to check the key set usage before deleting."},errors:{general:"Key sets could not be retrieved",delete:"The key set could not be deleted at this time.",copy:"Failed to copy to clipboard"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard"},form:{sections:{general:{title:"General Information",description:"General information will help identify and manage this key set."}},fields:{name:{label:"Name",placeholder:"Enter a unique name for this key set"},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."}}}}};function Sn(){const e=he.createI18n("en-us",wn);return{i18n:e,i18nT:he.i18nTComponent(e)}}const Ee={useI18n:Sn},ke={list:{konnect:"/api/runtime_groups/{controlPlaneId}/key-sets",kongManager:"/{workspace}/key-sets"},form:{konnect:{create:"/api/runtime_groups/{controlPlaneId}/key-sets",edit:"/api/runtime_groups/{controlPlaneId}/key-sets/{id}"},kongManager:{create:"/{workspace}/key-sets",edit:"/{workspace}/key-sets/{id}"}}};var Ze=(e=>(e.GatewayService="service",e.Route="route",e.Consumer="consumer",e.ConsumerGroup="consumer group",e.Plugin="plugin",e.Upstream="upstream",e.Certificate="certificate",e.CACertificate="ca certificate",e.SNI="SNI",e.Key="key",e.KeySet="key set",e.Vault="vault",e.Application="application",e.Developer="developer",e.acls="ACL Credential",e["basic-auth"]="Basic Auth Credential",e["key-auth"]="Key Auth Credential",e["key-auth-enc"]="Key Auth Encrypted Credential",e.oauth2="OAuth 2.0 Credential",e["hmac-auth"]="HMAC Credential",e.jwt="JWT Credential",e.Target="target",e.Policy="policy",e))(Ze||{}),Ve=(e=>(e.Edit="edit",e.Create="create",e))(Ve||{}),re=(e=>(e[e.Loading=0]="Loading",e[e.Idle=1]="Idle",e[e.NoResults=2]="NoResults",e[e.Error=3]="Error",e))(re||{}),M=(e=>(e.ID="id",e.IdArray="id-array",e.Text="plain-text",e.Date="date",e.Redacted="redacted",e.RedactedArray="redacted-array",e.Json="json",e.JsonArray="json-array",e.BadgeTag="badge-tag",e.BadgeStatus="badge-status",e.BadgeMethod="badge-method",e.LinkInternal="link-internal",e.LinkExternal="link-external",e))(M||{}),H=(e=>(e.Basic="basic",e.Advanced="advanced",e.Plugin="plugin",e))(H||{});function xn(){return{getAxiosInstance:(e={})=>{try{const n=t.inject("get-axios-instance",void 0);return typeof n=="function"?n(e):Ye.create({withCredentials:!0,timeout:3e4,...e})}catch(n){return console.warn("getAxiosInstance:",n.message||n),Ye.create({withCredentials:!0,timeout:3e4,...e})}},getTraceIdFromError:e=>{var n;return((n=e==null?void 0:e.response)==null?void 0:n.headers["x-datadog-trace-id"])||""}}}function Bn(){return{debounce:(e,n)=>{let r;return(...a)=>{clearTimeout(r),r=window==null?void 0:window.setTimeout(()=>{e(...a)},n)}}}}const Te="khcp-user-table-preferences",Nn={pageSize:30,sortColumnKey:void 0,sortColumnOrder:void 0};function In(){const e=r=>{if(typeof r=="string")try{return JSON.parse(r)}catch(a){console.error("useTablePreferences(tryParseJson)",a);return}},n=()=>{const r=e(localStorage.getItem(Te));return!r||!Object.keys(r).length?new Map:new Map(Object.entries(r))};return{setTablePreferences:(r,a)=>{try{const o=n();o.set(r,a),localStorage.setItem(Te,JSON.stringify(Object.fromEntries(o.entries())))}catch(o){console.error("useTablePreferences(setTablePreferences)",o)}},getTablePreferences:r=>{const a=n();return(a==null?void 0:a.get(r))||void 0||Nn},deleteAllTablePreferences:()=>{localStorage.removeItem(Te)}}}function je(e={}){const{getAxiosInstance:n}=xn();return{axiosInstance:n(e)}}const An={actions:{copyId:"Copy ID",copied_id:'Copied "{id}" to the clipboard',copyToClipboard:"Copied successfully!",copyToClipboardFailed:"Failed to copy to the clipboard"}},_n={message:"Are you sure you want to delete this {entityType}?",messageWithName:"Are you sure you want to delete this {entityType} {entityName}?"},En={actions:{viewConfiguration:"View Configuration",save:"Save",cancel:"Cancel",back:"Back"},configuration:{title:"Configuration",message:"Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML or JSON. This allows for straightforward importing into APIOps tools like decK with YAML, or Insomnia and cURL with JSON.",yaml:"YAML",json:"JSON"},errors:{edit:"The entity could not be edited at this time."}},Vn={emptyState:{noSearchResultsTitle:"No results found",noSearchResultsMessage:"Please adjust the criteria and try again.",noSearchResultsCtaText:"Clear"}},Tn={title:"Configuration",actions:{copy:"Copy JSON"},sections:{advanced:"Advanced",plugin:"Plugin Specific Configuration"},commonFields:{id_label:"ID",name_label:"Name",enabled_label:"Enabled",enabled_tooltip:"Enabled is FTW",updated_at_label:"Last Updated",created_at_label:"Created",tags_label:"Tags",link:"Link"},statusBadge:{enabledLabel:"Enabled",disabledLabel:"Disabled"},copy:{tooltip:"Copy {label}",success:"Copied!"},errors:{load:"The entity configuration data could not be loaded at this time.",copy:"Failed to copy to clipboard"},general:{entryTitle:"Entry {index}",structuredFormat:"Structured"}},jn={filterButtonText:"Filter",fieldLabel:"Filter by:",inputPlaceholder:"Enter a value",selectPlaceholder:"Select an item",applyButtonText:"Apply",clearButtonText:"Clear",clearAllButtonText:"Clear all filters"},On={errors:{fetch:"Could not fetch available items",invalid:"Please select a valid value"}},$n={unexpected:"An unexpected error has occurred",dataKeyUndefined:'The data key "{dataKey}" does not exist in the response.'},Mn={enable:{title:"Enable {entityType}",message:"Are you sure you want to enable the {entityType} {entityName}?",confirmText:"Yes, enable"},disable:{title:"Disable {entityType}",message:"Are you sure you want to disable the {entityType} {entityName}?",confirmText:"Yes, disable"}},Fn={global:An,deleteModal:_n,baseForm:En,baseTable:Vn,baseConfigCard:Tn,filter:jn,debouncedFilter:On,errors:$n,toggleModal:Mn};function Oe(){const e=he.createI18n("en-us",Fn);return{i18n:e,i18nT:he.i18nTComponent(e)}}function Ge(){const e=(r,a)=>(a==null?void 0:a[r])??void 0,n=(r,a)=>{if(r.length!==a.length)return!1;const o=new Set([...r,...a]);for(const l of o){const i=r.filter(c=>c===l).length,s=a.filter(c=>c===l).length;if(i!==s)return!1}return!0};return{getPropValue:e,objectsAreEqual:(r,a,o)=>{if(o){if(Object.keys(r).length===Object.keys(a).length)for(const l in r)if(Array.isArray(r[l])&&Array.isArray(a[l])){if(n(r[l],a[l]))continue;return!1}else{if(r[l]===a[l])continue;return!1}else return!1;return!0}try{return JSON.stringify(r)===JSON.stringify(a)}catch{return!1}},sortAlpha:r=>(a,o)=>{let l=a[r]===void 0||a[r]===null?"":a[r],i=o[r]===void 0||o[r]===null?"":o[r];return Array.isArray(a[r])&&(l=a[r][0]),Array.isArray(o[r])&&(i=o[r][0]),l.localeCompare(i)},isValidUuid:r=>r?/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/.test(r):!1}}function qn(e,n,r,a={fetchedItemsKey:"data",searchKeys:["id"]}){r||(r="100");const{axiosInstance:o}=je({headers:e.requestHeaders}),{i18n:{t:l}}=Oe(),{debounce:i}=Bn(),s=i(async g=>{await _(g)},200),c=t.ref(!1),p=t.ref(""),u=t.ref(""),d=t.ref([]),h=t.ref([]),y=t.ref(void 0),b=t.unref(n);let k=`${e.apiBaseUrl}${b}`;e.app==="konnect"?k=k.replace(/{controlPlaneId}/gi,(e==null?void 0:e.controlPlaneId)||""):e.app==="kongManager"&&(k=k.replace(/\/{workspace}/gi,e!=null&&e.workspace?`/${e.workspace}`:""));const{isValidUuid:C}=Ge(),V=async()=>{try{c.value=!0;const{data:g}=await o.get(`${k}?size=${r}`);g!=null&&g.next||(y.value=a.fetchedItemsKey in g?g[a.fetchedItemsKey]:[]),h.value=a.fetchedItemsKey in g?g[a.fetchedItemsKey]:[],d.value=h.value}catch{d.value=[],p.value=l("debouncedFilter.errors.fetch")}finally{c.value=!1}},x=t.ref(""),_=async g=>{var m,f,A;if(x.value!==g)if(x.value=g||"",y.value===void 0)try{if(c.value=!0,p.value="",u.value="",e.app==="konnect"){let E=k+"";g&&(E+=`/${g}`);const{data:S}=await o.get(`${E}?size=${r}`);a.fetchedItemsKey in S?d.value=S[a.fetchedItemsKey]:S!=null&&S.id?d.value=[S]:d.value=[]}else if(g){const E=[];C(g)&&a.searchKeys.includes("id")?E.push((async()=>{const{data:N}=await o.get(`${k}/${g}`);return[N[a.fetchedItemsKey]??N]})()):E.push(...a.searchKeys.filter(N=>N!=="id").map(async N=>{const{data:B}=await o.get(`${k}?${N}=${g}`);return B[a.fetchedItemsKey]}));const S=await Promise.all(E),T=new Set;d.value=[],(m=S==null?void 0:S.forEach)==null||m.call(S,N=>{var B;(B=N==null?void 0:N.forEach)==null||B.call(N,j=>{T.has(j.id)||(T.add(j.id),d.value.push(j))})})}else d.value=h.value}catch(E){((f=E==null?void 0:E.response)==null?void 0:f.status)===404?u.value=l("debouncedFilter.errors.invalid"):(d.value=[],p.value=l("debouncedFilter.errors.fetch"))}finally{c.value=!1}else c.value=!0,u.value="",g?(d.value=(A=y.value)==null?void 0:A.filter(E=>{var S;let T=!1;for(const N of a.searchKeys){const B=typeof E[N]=="string"?(S=E[N])==null?void 0:S.toLowerCase():E[N];B!=null&&B.includes(g.toLowerCase())&&(T=!0)}return T}),(!d.value||!d.value.length)&&(u.value=l("debouncedFilter.errors.invalid"))):d.value=y.value,c.value=!1};return{loading:c,error:p,validationError:u,results:d,allRecords:y,loadItems:V,debouncedQueryChange:s}}function Kn(e,n){const r=t.unref(n),a=t.computed(()=>e.apiBaseUrl.startsWith("/")?new URL(`${window.location.origin}${r}`):new URL(r));return a.value.search="",o=>`${a.value.href}/${o}`}function Ln(){const{i18n:{t:e}}=Oe();return{getMessageFromError:n=>{var r,a,o,l;if(!n)return e("errors.unexpected");if(((r=n==null?void 0:n.response)==null?void 0:r.status)===401)return console.warn("getMessageFromError: User auth token is expired or missing, returning empty message."),"";if((a=n==null?void 0:n.response)!=null&&a.data){if(n.response.data.detail)return n.response.data.detail;if((o=n.response.data.details)!=null&&o.length)return n.response.data.details.map(i=>{let s=e("errors.unexpected");return i.messages&&typeof i.messages=="object"&&i.messages.length&&(s=i.messages.join(", ")),i.field?`${i.field} - ${s}`:s}).join("; ");if(n.response.data.message){const{message:i}=n.response.data;return Array.isArray(i)?(l=i[0])!=null&&l.constraints?Object.values(i[0].constraints)[0]:i[0]:i}if(typeof n.response.data=="string")return n.response.data;if(typeof n.response.data=="object")return Object.keys(n.response.data).map(i=>`${i} ${n.response.data[i]}`).join(", ")}return n.message||e("errors.unexpected")}}}function Dn(e){const n=window.location.origin,r=n.endsWith("/")?n:`${n}/`;try{const a=e.join("/"),o=`${r}${a}`,l=e.some(i=>i.trim()==="");if(/^(https:\/\/(www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(:[0-9]+)?(\/[^\/]+)*)$|^(https|http):\/\/localhost(:[0-9]+)?(\/[^\/]+)*$/.test(o)&&!l&&new URL(o))return`${r}${a}`;throw new Error("Invalid url")}catch(a){return console.warn("Failed to build valid URL:",a),""}}function Qe(e,n){const r=t.ref(t.unref(e)),a=t.ref(t.unref(n)),o=t.computed(()=>!!(r.value.app==="konnect"||r.value.isExactMatch)),l=t.computed(()=>a.value.startsWith("/")?new URL(`${window.location.origin}${a.value}`):new URL(a.value));return i=>{const{page:s,pageSize:c,offset:p,sortColumnKey:u,sortColumnOrder:d,query:h}=i;try{let y=new URL(l.value.href);return o.value&&h?(y.search="",y=r.value.isExactMatch?new URL(`${y.href}/${h}/`):new URL(`${y.href}?filter[name][contains]=${h}`)):(o.value||new URLSearchParams(h).forEach((b,k)=>{y.searchParams.append(k,b)}),u&&y.searchParams.append("sort_by",u),d==="desc"&&y.searchParams.append("sort_desc","1"),y.searchParams.append("size",String(c))),p&&s!==1&&y.searchParams.append("offset",String(p)),y.href}catch(y){return console.error("RouteList(fetcher)",y),a.value}}}function vn(e,n,r="data"){var a;const o=t.unref(n),{axiosInstance:l}=je({...e.axiosRequestConfig,headers:{...(a=e.axiosRequestConfig)==null?void 0:a.headers,...e.requestHeaders}}),i=Qe(e,o),s=t.ref({status:re.Idle});return{fetcher:async c=>{var p;try{s.value={status:re.Loading};let u=i(c);u.includes("filter[name]")&&(u=`${u}&page[size]=${c.pageSize}&page[number]=${c.page}`);const d=await l.get(u);if(d.status>=400)throw d;const h=d.data,y=r&&r.replace(/[^\w-_]/gi,"");let b;h[y]&&Array.isArray(h[y])?b=h[y]:Array.isArray(h)?b=h:b=Object.keys(h).length?[h]:[];const k={data:b,total:b.length,...h.offset?{pagination:{offset:h.offset}}:null};return s.value={status:re.Idle,response:k},k}catch(u){const d={data:[],total:0};return c.query&&(((p=u.response)==null?void 0:p.status)===404||u.status===404)?(s.value={status:re.NoResults,response:d,error:u.response?u:{response:u}},d):(s.value={status:re.Error,response:d,error:u.response?u:{response:u}},d)}},fetcherState:s}}function Rn(){const e=(r,a="_")=>r?r.split(a).map(o=>o.toLowerCase()==="id"?o.toUpperCase():o.charAt(0).toUpperCase()+o.substring(1)).join(" "):"",n=/(?:^|[\s-:'"])\w/g;return{capitalize:r=>r?r.replace(n,a=>a.toUpperCase()):"",convertKeyToTitle:e}}const Xe=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,et=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const n=e.match(Xe);if(!n)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return n.shift(),n},tt=e=>e==="*"||e==="x"||e==="X",nt=e=>{const n=parseInt(e,10);return isNaN(n)?e:n},Un=(e,n)=>typeof e!=typeof n?[String(e),String(n)]:[e,n],Pn=(e,n)=>{if(tt(e)||tt(n))return 0;const[r,a]=Un(nt(e),nt(n));return r>a?1:r<a?-1:0},rt=(e,n)=>{for(let r=0;r<Math.max(e.length,n.length);r++){const a=Pn(e[r]||"0",n[r]||"0");if(a!==0)return a}return 0},zn=(e,n)=>{const r=et(e),a=et(n),o=r.pop(),l=a.pop(),i=rt(r,a);return i!==0?i:o&&l?rt(o.split("."),l.split(".")):o||l?o?-1:1:0},ot=(e,n,r)=>{Hn(r);const a=zn(e,n);return at[r].includes(a)},at={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},it=Object.keys(at),Hn=e=>{if(typeof e!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof e}`);if(it.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${it.join("|")}`)},Jn=e=>typeof e=="string"&&/^[v\d]/.test(e)&&Xe.test(e);function Wn(e){const{gatewayInfo:n,supportedRange:r}=e;if(!n)return!0;const{edition:a,version:o}=n;if(!Jn(o))return console.error("Invalid version"),!1;const l=r[a];if(!l)return!1;const[i,s]=l;return!(i&&ot(o,i,"<")||s&&ot(o,s,">"))}function Yn(e){const n=t.ref(0),r=t.ref(0),a=t.ref(!1);return t.watch(e,o=>{o&&!a.value&&(n.value=o.offsetWidth,r.value=o.scrollWidth,a.value=!0)}),{isTruncated:t.computed(()=>n.value<r.value)}}const L={useAxios:je,useDebouncedFilter:qn,useDeleteUrlBuilder:Kn,useErrors:Ln,useExternalLinkCreator:Dn,useFetcher:vn,useFetchUrlBuilder:Qe,useHelpers:Ge,useStringHelpers:Rn,useI18n:Oe,useGatewayFeatureSupported:Wn,useTruncationDetector:Yn},Zn={key:0,class:"config-card-fieldset-title"},Gn=t.defineComponent({__name:"JsonCardItem",props:{item:{type:Object,required:!0},index:{type:Number,default:-1},isArrayItem:{type:Boolean,default:!1}},setup(e){const n=e,{i18n:{t:r}}=L.useI18n(),{convertKeyToTitle:a}=L.useStringHelpers(),o=t.computed(()=>n.item.key??"json-array-item"),l=t.computed(()=>n.item.value??n.item),i=t.computed(()=>{const c=JSON.parse(JSON.stringify(l.value));return n.isArrayItem&&delete c.name,c}),s=t.computed(()=>{var c;return n.isArrayItem?(c=l.value)!=null&&c.name?a(l.value.name,"_"):r("baseConfigCard.general.entryTitle",{index:n.index}):""});return(c,p)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.isArrayItem?"fieldset":"div"),{class:t.normalizeClass(e.isArrayItem?"config-card-fieldset":"config-card-json-item")},{default:t.withCtx(()=>[e.isArrayItem?(t.openBlock(),t.createElementBlock("legend",Zn,[t.createElementVNode("b",null,t.toDisplayString(s.value),1)])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Object.keys(i.value),(u,d)=>(t.openBlock(),t.createBlock(st,{key:`${o.value}-property-${d}`,item:{key:u,label:t.unref(a)(u),value:i.value[u]}},null,8,["item"]))),128))]),_:1},8,["class"]))}}),Y=(e,n)=>{const r=e.__vccOpts||e;for(const[a,o]of n)r[a]=o;return r},lt=Y(Gn,[["__scopeId","data-v-68ca83ec"]]),Qn=t.defineComponent({__name:"InternalLinkItem",props:{item:{type:Object,required:!0}},emits:["navigation-click"],setup(e){const{i18n:{t:n}}=L.useI18n();return(r,a)=>{const o=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(o,{appearance:"tertiary",class:"navigation-button",onClick:a[0]||(a[0]=l=>r.$emit("navigation-click",e.item))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.value||t.unref(n)("baseConfigCard.commonFields.link")),1)]),_:1})])}}}),Xn=Y(Qn,[["__scopeId","data-v-c96811e5"]]),er=t.defineComponent({__name:"StatusBadge",props:{status:{type:Boolean,default:!1}},setup(e){const{i18n:{t:n}}=L.useI18n();return(r,a)=>{const o=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(o,{appearance:e.status?"success":"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.status?t.unref(n)("baseConfigCard.statusBadge.enabledLabel"):t.unref(n)("baseConfigCard.statusBadge.disabledLabel")),1)]),_:1},8,["appearance"])}}}),tr="#0044f4",nr="#e0e4ea",rr="#3a3f51",or="#afb7c5",ar="1px",ir="20px",lr={class:"config-card-details-row"},sr=["data-testid"],cr=["data-testid"],dr=["data-testid"],pr=["data-testid"],ur={key:1},fr=["data-testid"],mr=["data-testid"],gr=["data-testid"],yr=["data-testid"],hr={name:"ConfigCardItem",components:{JsonCardItem:lt,StatusBadge:er,InternalLinkItem:Xn}},kr=t.defineComponent({...hr,props:{item:{type:Object,required:!0},slim:{type:Boolean,required:!1,default:!1},truncated:{type:Boolean,required:!1,default:!1}},emits:["navigation-click"],setup(e,{emit:n}){t.useCssVars(b=>({"07753575":u.value?"none":`solid ${t.unref(ar)} ${t.unref(nr)}`,"32d44ea8":p.value&&s.value?"block":"flex","5036b738":p.value&&s.value?"100%":r.slim?"50%":"25%","5038fd13":p.value&&s.value?"100%":r.slim?"50%":"75%"}));const r=e,a=n,o=t.useSlots(),{i18n:{t:l,formatUnixTimeStamp:i}}=L.useI18n(),s=t.computed(()=>r.item.value!==void 0&&r.item.value!==null&&r.item.value!==""),c=t.computed(()=>!!(r.item.tooltip||o["label-tooltip"])),p=t.computed(()=>r.item.type===M.Json||r.item.type===M.JsonArray),u=t.computed(()=>r.item.type===M.JsonArray),d=t.computed(()=>{switch(r.item.type){case M.ID:return{tag:"KCopy",attrs:{"data-testid":`${r.item.key}-copy-uuid`,"copy-tooltip":l("baseConfigCard.copy.tooltip",{label:r.item.label}),text:r.item.value}};case M.IdArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{"copy-tooltip":l("baseConfigCard.copy.tooltip",{label:r.item.label})}};case M.Redacted:return{tag:"KCopy",attrs:{"data-testid":`${r.item.key}-copy-uuid-redacted`,format:"redacted","copy-tooltip":l("baseConfigCard.copy.tooltip",{label:r.item.label}),text:r.item.value}};case M.RedactedArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{format:"redacted","copy-tooltip":l("baseConfigCard.copy.tooltip",{label:r.item.label})}};case M.Date:return{tag:"div",attrs:{"data-testid":`${r.item.key}-date`},text:i(r.item.value)};case M.BadgeStatus:return{tag:"StatusBadge",attrs:{"data-testid":`${r.item.key}-badge-status`,status:r.item.value}};case M.BadgeTag:return{tag:"div",additionalComponent:"KBadge"};case M.BadgeMethod:return{tag:"div",additionalComponent:"KMethodBadge"};case M.LinkInternal:return{tag:"InternalLinkItem",attrs:{"data-testid":`${r.item.key}-internal-link`,item:r.item,onNavigationClick:b=>{a("navigation-click",b)}}};case M.LinkExternal:return{tag:"KExternalLink",attrs:{"data-testid":`${r.item.key}-external-link`,href:r.item.value},text:r.item.value};case M.Json:return{tag:"JsonCardItem",attrs:{"data-testid":`${r.item.key}-json-content`,item:r.item}};case M.JsonArray:return{tag:"div",additionalComponent:"JsonCardItem",attrs:{"data-testid":`${r.item.key}-json-array-content`,item:r.item}};default:return{tag:"div",attrs:{"data-testid":`${r.item.key}-plain-text`},text:r.item.value}}}),h=t.ref(),{isTruncated:y}=L.useTruncationDetector(h);return(b,k)=>{const C=t.resolveComponent("KLabel"),V=t.resolveComponent("KBadge"),x=t.resolveComponent("KCopy"),_=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",lr,[t.createElementVNode("div",{class:"config-card-details-label","data-testid":`${e.item.key}-label`},[t.renderSlot(b.$slots,"label",{item:e.item},()=>[t.createVNode(C,{"tooltip-attributes":{maxWidth:"500px"}},t.createSlots({default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.label)+" ",1)]),_:2},[c.value?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{"data-testid":`${e.item.key}-label-tooltip`},[t.renderSlot(b.$slots,"label-tooltip",{},()=>[t.createTextVNode(t.toDisplayString(e.item.tooltip),1)],!0)],8,cr)]),key:"0"}:void 0]),1024)],!0)],8,sr),t.createElementVNode("div",{class:"config-card-details-value","data-testid":`${e.item.key}-property-value`},[t.renderSlot(b.$slots,e.item.key,{rowValue:e.item.value},()=>[s.value?(t.openBlock(),t.createElementBlock("div",ur,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(d.value.tag),t.normalizeProps(t.guardReactiveProps(d.value.attrs)),{default:t.withCtx(()=>[d.value.additionalComponent==="KBadge"?(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-badge-tags`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(g,m)=>(t.openBlock(),t.createBlock(V,{key:`${e.item.key}-badge-tag-${m}`,class:"config-badge","data-testid":`${e.item.key}-badge-tag-${m}`,tooltip:g,"truncation-tooltip":""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(g),1)]),_:2},1032,["data-testid","tooltip"]))),128))],8,fr)):t.createCommentVNode("",!0),d.value.additionalComponent==="KCopy"?(t.openBlock(),t.createElementBlock("div",{key:1,class:"copy-uuid-array","data-testid":`${e.item.key}-copy-uuid-array`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(g,m)=>(t.openBlock(),t.createBlock(x,t.mergeProps(d.value.childAttrs,{key:`${e.item.key}-copy-uuid-${m}`,"data-testid":`${e.item.key}-copy-uuid-${m}`,text:g}),null,16,["data-testid","text"]))),128))],8,mr)):d.value.additionalComponent==="KMethodBadge"?(t.openBlock(),t.createElementBlock("div",{key:2,class:"method-badge-array","data-testid":`${e.item.key}-badge-methods`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(g,m)=>(t.openBlock(),t.createBlock(V,{key:`${e.item.key}-badge-method-${m}`,appearance:Object.values(t.unref(Cn.BadgeMethodAppearances)).includes(g.toLowerCase())?g.toLowerCase():"custom",class:"config-badge","data-testid":`${e.item.key}-badge-method-${m}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(g),1)]),_:2},1032,["appearance","data-testid"]))),128))],8,gr)):t.createCommentVNode("",!0),d.value.additionalComponent==="JsonCardItem"?(t.openBlock(),t.createElementBlock("div",{key:3,"data-testid":`${r.item.key}-json-array-content`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(g,m)=>(t.openBlock(),t.createBlock(lt,{key:`json-array-item-${m}`,index:m,"is-array-item":"",item:g},null,8,["index","item"]))),128))],8,yr)):(t.openBlock(),t.createBlock(_,{key:4,text:t.unref(y)?e.item.value:""},{default:t.withCtx(()=>[t.createElementVNode("span",{ref_key:"textContent",ref:h,class:t.normalizeClass(["attrs-data-text",{truncated:e.truncated}])},t.toDisplayString(d.value.text),3)]),_:1},8,["text"]))]),_:1},16))])):(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-no-value`}," – ",8,pr))],!0)],8,dr)])}}}),st=Y(kr,[["__scopeId","data-v-d056663c"]]),br={class:"json-config"},Cr={key:0,class:"json-endpoint"},ct=t.defineComponent({__name:"JsonCodeBlock",props:{config:{type:Object,required:!1,default:()=>({})},fetcherUrl:{type:String,required:!1,default:""},jsonRecord:{type:Object,required:!0},requestMethod:{type:String,required:!1,default:""}},setup(e){t.useCssVars(o=>({"954d3eca":`${a.value}ch`}));const n=e,r=t.computed(()=>n.jsonRecord),a=t.computed(()=>{var o;if(!n.fetcherUrl)return 0;const l=(o=n.fetcherUrl)==null?void 0:o.split("/");return l.length<2?0:41+(n.requestMethod==="post"?l[l.length-1]:l[l.length-2]).length});return(o,l)=>{const i=t.resolveComponent("KBadge"),s=t.resolveComponent("KCodeBlock");return t.openBlock(),t.createElementBlock("div",br,[n.fetcherUrl?(t.openBlock(),t.createElementBlock("div",Cr,[t.createVNode(i,{appearance:n.requestMethod},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(n.requestMethod),1)]),_:1},8,["appearance"]),t.createVNode(s,{id:"json-endpoint-codeblock",code:n.fetcherUrl,"is-single-line":"",language:"json",theme:"dark"},null,8,["code"])])):t.createCommentVNode("",!0),n.jsonRecord?(t.openBlock(),t.createBlock(s,{key:1,id:"json-codeblock",class:t.normalizeClass({"json-content":n.fetcherUrl}),code:JSON.stringify(r.value,null,2),language:"json",theme:"dark"},null,8,["class","code"])):t.createCommentVNode("",!0)])}}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function dt(e){return typeof e>"u"||e===null}function wr(e){return typeof e=="object"&&e!==null}function Sr(e){return Array.isArray(e)?e:dt(e)?[]:[e]}function xr(e,n){var r,a,o,l;if(n)for(l=Object.keys(n),r=0,a=l.length;r<a;r+=1)o=l[r],e[o]=n[o];return e}function Br(e,n){var r="",a;for(a=0;a<n;a+=1)r+=e;return r}function Nr(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var Ir=dt,Ar=wr,_r=Sr,Er=Br,Vr=Nr,Tr=xr,K={isNothing:Ir,isObject:Ar,toArray:_r,repeat:Er,isNegativeZero:Vr,extend:Tr};function pt(e,n){var r="",a=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(r+='in "'+e.mark.name+'" '),r+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!n&&e.mark.snippet&&(r+=`
|
|
1
|
+
(function(z,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("vue-router"),require("@kong-ui-public/i18n"),require("axios"),require("@kong/kongponents")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","@kong-ui-public/i18n","axios","@kong/kongponents"],t):(z=typeof globalThis<"u"?globalThis:z||self,t(z["kong-ui-public-entities-key-sets"]={},z.Vue,z.VueRouter,z["kong-ui-public-i18n"],z.axios,z.Kongponents))})(this,function(z,t,_e,he,Ye,Cn){"use strict";const wn={keySets:{title:"Key Sets",list:{toolbar_actions:{new_key_set:"New Key Set"},table_headers:{name:"Name",id:"ID",tags:"Tags"},empty_state:{title:"Configure a New Key Set",description:"A Key Set object holds a collection of asymmetric key objects. This entity allows to logically group keys by their purpose."}},actions:{create:"New Key Set",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",delete:"Delete",clear:"Clear",view:"View Details"},search:{placeholder:"Filter by exact name or ID"},delete:{title:"Delete a Key Set",description:"Deleting this key set will also delete keys associated. This action cannot be reversed so make sure to check the key set usage before deleting."},errors:{general:"Key sets could not be retrieved",delete:"The key set could not be deleted at this time.",copy:"Failed to copy to clipboard"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard"},form:{sections:{general:{title:"General Information",description:"General information will help identify and manage this key set."}},fields:{name:{label:"Name",placeholder:"Enter a unique name for this key set"},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."}}}}};function Sn(){const e=he.createI18n("en-us",wn);return{i18n:e,i18nT:he.i18nTComponent(e)}}const Ee={useI18n:Sn},ke={list:{konnect:"/api/runtime_groups/{controlPlaneId}/key-sets",kongManager:"/{workspace}/key-sets"},form:{konnect:{create:"/api/runtime_groups/{controlPlaneId}/key-sets",edit:"/api/runtime_groups/{controlPlaneId}/key-sets/{id}"},kongManager:{create:"/{workspace}/key-sets",edit:"/{workspace}/key-sets/{id}"}}};var Ze=(e=>(e.GatewayService="service",e.Route="route",e.Consumer="consumer",e.ConsumerGroup="consumer group",e.Plugin="plugin",e.Upstream="upstream",e.Certificate="certificate",e.CACertificate="ca certificate",e.SNI="SNI",e.Key="key",e.KeySet="key set",e.Vault="vault",e.Application="application",e.Developer="developer",e.acls="ACL Credential",e["basic-auth"]="Basic Auth Credential",e["key-auth"]="Key Auth Credential",e["key-auth-enc"]="Key Auth Encrypted Credential",e.oauth2="OAuth 2.0 Credential",e["hmac-auth"]="HMAC Credential",e.jwt="JWT Credential",e.Target="target",e.Policy="policy",e))(Ze||{}),Ve=(e=>(e.Edit="edit",e.Create="create",e))(Ve||{}),re=(e=>(e[e.Loading=0]="Loading",e[e.Idle=1]="Idle",e[e.NoResults=2]="NoResults",e[e.Error=3]="Error",e))(re||{}),M=(e=>(e.ID="id",e.IdArray="id-array",e.Text="plain-text",e.Date="date",e.Redacted="redacted",e.RedactedArray="redacted-array",e.Json="json",e.JsonArray="json-array",e.BadgeTag="badge-tag",e.BadgeStatus="badge-status",e.BadgeMethod="badge-method",e.LinkInternal="link-internal",e.LinkExternal="link-external",e))(M||{}),H=(e=>(e.Basic="basic",e.Advanced="advanced",e.Plugin="plugin",e))(H||{});function xn(){return{getAxiosInstance:(e={})=>{try{const n=t.inject("get-axios-instance",void 0);return typeof n=="function"?n(e):Ye.create({withCredentials:!0,timeout:3e4,...e})}catch(n){return console.warn("getAxiosInstance:",n.message||n),Ye.create({withCredentials:!0,timeout:3e4,...e})}},getTraceIdFromError:e=>{var n;return((n=e==null?void 0:e.response)==null?void 0:n.headers["x-datadog-trace-id"])||""}}}function Bn(){return{debounce:(e,n)=>{let r;return(...a)=>{clearTimeout(r),r=window==null?void 0:window.setTimeout(()=>{e(...a)},n)}}}}const Te="khcp-user-table-preferences",Nn={pageSize:30,sortColumnKey:void 0,sortColumnOrder:void 0};function In(){const e=r=>{if(typeof r=="string")try{return JSON.parse(r)}catch(a){console.error("useTablePreferences(tryParseJson)",a);return}},n=()=>{const r=e(localStorage.getItem(Te));return!r||!Object.keys(r).length?new Map:new Map(Object.entries(r))};return{setTablePreferences:(r,a)=>{try{const o=n();o.set(r,a),localStorage.setItem(Te,JSON.stringify(Object.fromEntries(o.entries())))}catch(o){console.error("useTablePreferences(setTablePreferences)",o)}},getTablePreferences:r=>{const a=n();return(a==null?void 0:a.get(r))||void 0||Nn},deleteAllTablePreferences:()=>{localStorage.removeItem(Te)}}}function je(e={}){const{getAxiosInstance:n}=xn();return{axiosInstance:n(e)}}const An={actions:{copyId:"Copy ID",copied_id:'Copied "{id}" to the clipboard',copyToClipboard:"Copied successfully!",copyToClipboardFailed:"Failed to copy to the clipboard"}},_n={message:"Are you sure you want to delete this {entityType}?",messageWithName:"Are you sure you want to delete this {entityType} {entityName}?"},En={actions:{viewConfiguration:"View Configuration",save:"Save",cancel:"Cancel",back:"Back"},configuration:{title:"Configuration",message:"Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML or JSON. This allows for straightforward importing into APIOps tools like decK with YAML, or Insomnia and cURL with JSON.",yaml:"YAML",json:"JSON"},errors:{edit:"The entity could not be edited at this time."}},Vn={emptyState:{noSearchResultsTitle:"No results found",noSearchResultsMessage:"Please adjust the criteria and try again.",noSearchResultsCtaText:"Clear"}},Tn={title:"Configuration",actions:{copy:"Copy JSON"},sections:{advanced:"Advanced",plugin:"Plugin Specific Configuration"},commonFields:{id_label:"ID",name_label:"Name",enabled_label:"Enabled",enabled_tooltip:"Enabled is FTW",updated_at_label:"Last Updated",created_at_label:"Created",tags_label:"Tags",link:"Link"},statusBadge:{enabledLabel:"Enabled",disabledLabel:"Disabled"},copy:{tooltip:"Copy {label}",success:"Copied!"},errors:{load:"The entity configuration data could not be loaded at this time.",copy:"Failed to copy to clipboard"},general:{entryTitle:"Entry {index}",structuredFormat:"Structured"}},jn={filterButtonText:"Filter",fieldLabel:"Filter by:",inputPlaceholder:"Enter a value",selectPlaceholder:"Select an item",applyButtonText:"Apply",clearButtonText:"Clear",clearAllButtonText:"Clear all filters"},On={errors:{fetch:"Could not fetch available items",invalid:"Please select a valid value"}},$n={unexpected:"An unexpected error has occurred",dataKeyUndefined:'The data key "{dataKey}" does not exist in the response.'},Mn={enable:{title:"Enable {entityType}",message:"Are you sure you want to enable the {entityType} {entityName}?",confirmText:"Yes, enable"},disable:{title:"Disable {entityType}",message:"Are you sure you want to disable the {entityType} {entityName}?",confirmText:"Yes, disable"}},Fn={global:An,deleteModal:_n,baseForm:En,baseTable:Vn,baseConfigCard:Tn,filter:jn,debouncedFilter:On,errors:$n,toggleModal:Mn};function Oe(){const e=he.createI18n("en-us",Fn);return{i18n:e,i18nT:he.i18nTComponent(e)}}function Ge(){const e=(r,a)=>(a==null?void 0:a[r])??void 0,n=(r,a)=>{if(r.length!==a.length)return!1;const o=new Set([...r,...a]);for(const l of o){const i=r.filter(c=>c===l).length,s=a.filter(c=>c===l).length;if(i!==s)return!1}return!0};return{getPropValue:e,objectsAreEqual:(r,a,o)=>{if(o){if(Object.keys(r).length===Object.keys(a).length)for(const l in r)if(Array.isArray(r[l])&&Array.isArray(a[l])){if(n(r[l],a[l]))continue;return!1}else{if(r[l]===a[l])continue;return!1}else return!1;return!0}try{return JSON.stringify(r)===JSON.stringify(a)}catch{return!1}},sortAlpha:r=>(a,o)=>{let l=a[r]===void 0||a[r]===null?"":a[r],i=o[r]===void 0||o[r]===null?"":o[r];return Array.isArray(a[r])&&(l=a[r][0]),Array.isArray(o[r])&&(i=o[r][0]),l.localeCompare(i)},isValidUuid:r=>r?/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/.test(r):!1}}function qn(e,n,r,a={fetchedItemsKey:"data",searchKeys:["id"]}){r||(r="1000");const{axiosInstance:o}=je({headers:e.requestHeaders}),{i18n:{t:l}}=Oe(),{debounce:i}=Bn(),s=i(async g=>{await _(g)},200),c=t.ref(!1),p=t.ref(""),u=t.ref(""),d=t.ref([]),h=t.ref([]),y=t.ref(void 0),b=t.unref(n);let k=`${e.apiBaseUrl}${b}`;e.app==="konnect"?k=k.replace(/{controlPlaneId}/gi,(e==null?void 0:e.controlPlaneId)||""):e.app==="kongManager"&&(k=k.replace(/\/{workspace}/gi,e!=null&&e.workspace?`/${e.workspace}`:""));const{isValidUuid:C}=Ge(),V=async()=>{try{c.value=!0;const{data:g}=await o.get(`${k}?size=${r}`);g!=null&&g.next||(y.value=a.fetchedItemsKey in g?g[a.fetchedItemsKey]:[]),h.value=a.fetchedItemsKey in g?g[a.fetchedItemsKey]:[],d.value=h.value}catch{d.value=[],p.value=l("debouncedFilter.errors.fetch")}finally{c.value=!1}},x=t.ref(""),_=async g=>{var m,f,A;if(x.value!==g)if(x.value=g||"",y.value===void 0)try{if(c.value=!0,p.value="",u.value="",e.app==="konnect"){let E=k+"";g&&(E+=`/${g}`);const{data:S}=await o.get(`${E}?size=${r}`);a.fetchedItemsKey in S?d.value=S[a.fetchedItemsKey]:S!=null&&S.id?d.value=[S]:d.value=[]}else if(g){const E=[];C(g)&&a.searchKeys.includes("id")?E.push((async()=>{const{data:N}=await o.get(`${k}/${g}`);return[N[a.fetchedItemsKey]??N]})()):E.push(...a.searchKeys.filter(N=>N!=="id").map(async N=>{const{data:B}=await o.get(`${k}?${N}=${g}`);return B[a.fetchedItemsKey]}));const S=await Promise.all(E),T=new Set;d.value=[],(m=S==null?void 0:S.forEach)==null||m.call(S,N=>{var B;(B=N==null?void 0:N.forEach)==null||B.call(N,j=>{T.has(j.id)||(T.add(j.id),d.value.push(j))})})}else d.value=h.value}catch(E){((f=E==null?void 0:E.response)==null?void 0:f.status)===404?u.value=l("debouncedFilter.errors.invalid"):(d.value=[],p.value=l("debouncedFilter.errors.fetch"))}finally{c.value=!1}else c.value=!0,u.value="",g?(d.value=(A=y.value)==null?void 0:A.filter(E=>{var S;let T=!1;for(const N of a.searchKeys){const B=typeof E[N]=="string"?(S=E[N])==null?void 0:S.toLowerCase():E[N];B!=null&&B.includes(g.toLowerCase())&&(T=!0)}return T}),(!d.value||!d.value.length)&&(u.value=l("debouncedFilter.errors.invalid"))):d.value=y.value,c.value=!1};return{loading:c,error:p,validationError:u,results:d,allRecords:y,loadItems:V,debouncedQueryChange:s}}function Kn(e,n){const r=t.unref(n),a=t.computed(()=>e.apiBaseUrl.startsWith("/")?new URL(`${window.location.origin}${r}`):new URL(r));return a.value.search="",o=>`${a.value.href}/${o}`}function Ln(){const{i18n:{t:e}}=Oe();return{getMessageFromError:n=>{var r,a,o,l;if(!n)return e("errors.unexpected");if(((r=n==null?void 0:n.response)==null?void 0:r.status)===401)return console.warn("getMessageFromError: User auth token is expired or missing, returning empty message."),"";if((a=n==null?void 0:n.response)!=null&&a.data){if(n.response.data.detail)return n.response.data.detail;if((o=n.response.data.details)!=null&&o.length)return n.response.data.details.map(i=>{let s=e("errors.unexpected");return i.messages&&typeof i.messages=="object"&&i.messages.length&&(s=i.messages.join(", ")),i.field?`${i.field} - ${s}`:s}).join("; ");if(n.response.data.message){const{message:i}=n.response.data;return Array.isArray(i)?(l=i[0])!=null&&l.constraints?Object.values(i[0].constraints)[0]:i[0]:i}if(typeof n.response.data=="string")return n.response.data;if(typeof n.response.data=="object")return Object.keys(n.response.data).map(i=>`${i} ${n.response.data[i]}`).join(", ")}return n.message||e("errors.unexpected")}}}function Dn(e){const n=window.location.origin,r=n.endsWith("/")?n:`${n}/`;try{const a=e.join("/"),o=`${r}${a}`,l=e.some(i=>i.trim()==="");if(/^(https:\/\/(www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(:[0-9]+)?(\/[^\/]+)*)$|^(https|http):\/\/localhost(:[0-9]+)?(\/[^\/]+)*$/.test(o)&&!l&&new URL(o))return`${r}${a}`;throw new Error("Invalid url")}catch(a){return console.warn("Failed to build valid URL:",a),""}}function Qe(e,n){const r=t.ref(t.unref(e)),a=t.ref(t.unref(n)),o=t.computed(()=>!!(r.value.app==="konnect"||r.value.isExactMatch)),l=t.computed(()=>a.value.startsWith("/")?new URL(`${window.location.origin}${a.value}`):new URL(a.value));return i=>{const{page:s,pageSize:c,offset:p,sortColumnKey:u,sortColumnOrder:d,query:h}=i;try{let y=new URL(l.value.href);return o.value&&h?(y.search="",y=r.value.isExactMatch?new URL(`${y.href}/${h}/`):new URL(`${y.href}?filter[name][contains]=${h}`)):(o.value||new URLSearchParams(h).forEach((b,k)=>{y.searchParams.append(k,b)}),u&&y.searchParams.append("sort_by",u),d==="desc"&&y.searchParams.append("sort_desc","1"),y.searchParams.append("size",String(c))),p&&s!==1&&y.searchParams.append("offset",String(p)),y.href}catch(y){return console.error("RouteList(fetcher)",y),a.value}}}function vn(e,n,r="data"){var a;const o=t.unref(n),{axiosInstance:l}=je({...e.axiosRequestConfig,headers:{...(a=e.axiosRequestConfig)==null?void 0:a.headers,...e.requestHeaders}}),i=Qe(e,o),s=t.ref({status:re.Idle});return{fetcher:async c=>{var p;try{s.value={status:re.Loading};let u=i(c);u.includes("filter[name]")&&(u=`${u}&page[size]=${c.pageSize}&page[number]=${c.page}`);const d=await l.get(u);if(d.status>=400)throw d;const h=d.data,y=r&&r.replace(/[^\w-_]/gi,"");let b;h[y]&&Array.isArray(h[y])?b=h[y]:Array.isArray(h)?b=h:b=Object.keys(h).length?[h]:[];const k={data:b,total:b.length,...h.offset?{pagination:{offset:h.offset}}:null};return s.value={status:re.Idle,response:k},k}catch(u){const d={data:[],total:0};return c.query&&(((p=u.response)==null?void 0:p.status)===404||u.status===404)?(s.value={status:re.NoResults,response:d,error:u.response?u:{response:u}},d):(s.value={status:re.Error,response:d,error:u.response?u:{response:u}},d)}},fetcherState:s}}function Rn(){const e=(r,a="_")=>r?r.split(a).map(o=>o.toLowerCase()==="id"?o.toUpperCase():o.charAt(0).toUpperCase()+o.substring(1)).join(" "):"",n=/(?:^|[\s-:'"])\w/g;return{capitalize:r=>r?r.replace(n,a=>a.toUpperCase()):"",convertKeyToTitle:e}}const Xe=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,et=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const n=e.match(Xe);if(!n)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return n.shift(),n},tt=e=>e==="*"||e==="x"||e==="X",nt=e=>{const n=parseInt(e,10);return isNaN(n)?e:n},Un=(e,n)=>typeof e!=typeof n?[String(e),String(n)]:[e,n],Pn=(e,n)=>{if(tt(e)||tt(n))return 0;const[r,a]=Un(nt(e),nt(n));return r>a?1:r<a?-1:0},rt=(e,n)=>{for(let r=0;r<Math.max(e.length,n.length);r++){const a=Pn(e[r]||"0",n[r]||"0");if(a!==0)return a}return 0},zn=(e,n)=>{const r=et(e),a=et(n),o=r.pop(),l=a.pop(),i=rt(r,a);return i!==0?i:o&&l?rt(o.split("."),l.split(".")):o||l?o?-1:1:0},ot=(e,n,r)=>{Hn(r);const a=zn(e,n);return at[r].includes(a)},at={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},it=Object.keys(at),Hn=e=>{if(typeof e!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof e}`);if(it.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${it.join("|")}`)},Jn=e=>typeof e=="string"&&/^[v\d]/.test(e)&&Xe.test(e);function Wn(e){const{gatewayInfo:n,supportedRange:r}=e;if(!n)return!0;const{edition:a,version:o}=n;if(!Jn(o))return console.error("Invalid version"),!1;const l=r[a];if(!l)return!1;const[i,s]=l;return!(i&&ot(o,i,"<")||s&&ot(o,s,">"))}function Yn(e){const n=t.ref(0),r=t.ref(0),a=t.ref(!1);return t.watch(e,o=>{o&&!a.value&&(n.value=o.offsetWidth,r.value=o.scrollWidth,a.value=!0)}),{isTruncated:t.computed(()=>n.value<r.value)}}const L={useAxios:je,useDebouncedFilter:qn,useDeleteUrlBuilder:Kn,useErrors:Ln,useExternalLinkCreator:Dn,useFetcher:vn,useFetchUrlBuilder:Qe,useHelpers:Ge,useStringHelpers:Rn,useI18n:Oe,useGatewayFeatureSupported:Wn,useTruncationDetector:Yn},Zn={key:0,class:"config-card-fieldset-title"},Gn=t.defineComponent({__name:"JsonCardItem",props:{item:{type:Object,required:!0},index:{type:Number,default:-1},isArrayItem:{type:Boolean,default:!1}},setup(e){const n=e,{i18n:{t:r}}=L.useI18n(),{convertKeyToTitle:a}=L.useStringHelpers(),o=t.computed(()=>n.item.key??"json-array-item"),l=t.computed(()=>n.item.value??n.item),i=t.computed(()=>{const c=JSON.parse(JSON.stringify(l.value));return n.isArrayItem&&delete c.name,c}),s=t.computed(()=>{var c;return n.isArrayItem?(c=l.value)!=null&&c.name?a(l.value.name,"_"):r("baseConfigCard.general.entryTitle",{index:n.index}):""});return(c,p)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.isArrayItem?"fieldset":"div"),{class:t.normalizeClass(e.isArrayItem?"config-card-fieldset":"config-card-json-item")},{default:t.withCtx(()=>[e.isArrayItem?(t.openBlock(),t.createElementBlock("legend",Zn,[t.createElementVNode("b",null,t.toDisplayString(s.value),1)])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Object.keys(i.value),(u,d)=>(t.openBlock(),t.createBlock(st,{key:`${o.value}-property-${d}`,item:{key:u,label:t.unref(a)(u),value:i.value[u]}},null,8,["item"]))),128))]),_:1},8,["class"]))}}),Y=(e,n)=>{const r=e.__vccOpts||e;for(const[a,o]of n)r[a]=o;return r},lt=Y(Gn,[["__scopeId","data-v-68ca83ec"]]),Qn=t.defineComponent({__name:"InternalLinkItem",props:{item:{type:Object,required:!0}},emits:["navigation-click"],setup(e){const{i18n:{t:n}}=L.useI18n();return(r,a)=>{const o=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(o,{appearance:"tertiary",class:"navigation-button",onClick:a[0]||(a[0]=l=>r.$emit("navigation-click",e.item))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.value||t.unref(n)("baseConfigCard.commonFields.link")),1)]),_:1})])}}}),Xn=Y(Qn,[["__scopeId","data-v-c96811e5"]]),er=t.defineComponent({__name:"StatusBadge",props:{status:{type:Boolean,default:!1}},setup(e){const{i18n:{t:n}}=L.useI18n();return(r,a)=>{const o=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(o,{appearance:e.status?"success":"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.status?t.unref(n)("baseConfigCard.statusBadge.enabledLabel"):t.unref(n)("baseConfigCard.statusBadge.disabledLabel")),1)]),_:1},8,["appearance"])}}}),tr="#0044f4",nr="#e0e4ea",rr="#3a3f51",or="#afb7c5",ar="1px",ir="20px",lr={class:"config-card-details-row"},sr=["data-testid"],cr=["data-testid"],dr=["data-testid"],pr=["data-testid"],ur={key:1},fr=["data-testid"],mr=["data-testid"],gr=["data-testid"],yr=["data-testid"],hr={name:"ConfigCardItem",components:{JsonCardItem:lt,StatusBadge:er,InternalLinkItem:Xn}},kr=t.defineComponent({...hr,props:{item:{type:Object,required:!0},slim:{type:Boolean,required:!1,default:!1},truncated:{type:Boolean,required:!1,default:!1}},emits:["navigation-click"],setup(e,{emit:n}){t.useCssVars(b=>({"07753575":u.value?"none":`solid ${t.unref(ar)} ${t.unref(nr)}`,"32d44ea8":p.value&&s.value?"block":"flex","5036b738":p.value&&s.value?"100%":r.slim?"50%":"25%","5038fd13":p.value&&s.value?"100%":r.slim?"50%":"75%"}));const r=e,a=n,o=t.useSlots(),{i18n:{t:l,formatUnixTimeStamp:i}}=L.useI18n(),s=t.computed(()=>r.item.value!==void 0&&r.item.value!==null&&r.item.value!==""),c=t.computed(()=>!!(r.item.tooltip||o["label-tooltip"])),p=t.computed(()=>r.item.type===M.Json||r.item.type===M.JsonArray),u=t.computed(()=>r.item.type===M.JsonArray),d=t.computed(()=>{switch(r.item.type){case M.ID:return{tag:"KCopy",attrs:{"data-testid":`${r.item.key}-copy-uuid`,"copy-tooltip":l("baseConfigCard.copy.tooltip",{label:r.item.label}),text:r.item.value}};case M.IdArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{"copy-tooltip":l("baseConfigCard.copy.tooltip",{label:r.item.label})}};case M.Redacted:return{tag:"KCopy",attrs:{"data-testid":`${r.item.key}-copy-uuid-redacted`,format:"redacted","copy-tooltip":l("baseConfigCard.copy.tooltip",{label:r.item.label}),text:r.item.value}};case M.RedactedArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{format:"redacted","copy-tooltip":l("baseConfigCard.copy.tooltip",{label:r.item.label})}};case M.Date:return{tag:"div",attrs:{"data-testid":`${r.item.key}-date`},text:i(r.item.value)};case M.BadgeStatus:return{tag:"StatusBadge",attrs:{"data-testid":`${r.item.key}-badge-status`,status:r.item.value}};case M.BadgeTag:return{tag:"div",additionalComponent:"KBadge"};case M.BadgeMethod:return{tag:"div",additionalComponent:"KMethodBadge"};case M.LinkInternal:return{tag:"InternalLinkItem",attrs:{"data-testid":`${r.item.key}-internal-link`,item:r.item,onNavigationClick:b=>{a("navigation-click",b)}}};case M.LinkExternal:return{tag:"KExternalLink",attrs:{"data-testid":`${r.item.key}-external-link`,href:r.item.value},text:r.item.value};case M.Json:return{tag:"JsonCardItem",attrs:{"data-testid":`${r.item.key}-json-content`,item:r.item}};case M.JsonArray:return{tag:"div",additionalComponent:"JsonCardItem",attrs:{"data-testid":`${r.item.key}-json-array-content`,item:r.item}};default:return{tag:"div",attrs:{"data-testid":`${r.item.key}-plain-text`},text:r.item.value}}}),h=t.ref(),{isTruncated:y}=L.useTruncationDetector(h);return(b,k)=>{const C=t.resolveComponent("KLabel"),V=t.resolveComponent("KBadge"),x=t.resolveComponent("KCopy"),_=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",lr,[t.createElementVNode("div",{class:"config-card-details-label","data-testid":`${e.item.key}-label`},[t.renderSlot(b.$slots,"label",{item:e.item},()=>[t.createVNode(C,{"tooltip-attributes":{maxWidth:"500px"}},t.createSlots({default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.label)+" ",1)]),_:2},[c.value?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{"data-testid":`${e.item.key}-label-tooltip`},[t.renderSlot(b.$slots,"label-tooltip",{},()=>[t.createTextVNode(t.toDisplayString(e.item.tooltip),1)],!0)],8,cr)]),key:"0"}:void 0]),1024)],!0)],8,sr),t.createElementVNode("div",{class:"config-card-details-value","data-testid":`${e.item.key}-property-value`},[t.renderSlot(b.$slots,e.item.key,{rowValue:e.item.value},()=>[s.value?(t.openBlock(),t.createElementBlock("div",ur,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(d.value.tag),t.normalizeProps(t.guardReactiveProps(d.value.attrs)),{default:t.withCtx(()=>[d.value.additionalComponent==="KBadge"?(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-badge-tags`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(g,m)=>(t.openBlock(),t.createBlock(V,{key:`${e.item.key}-badge-tag-${m}`,class:"config-badge","data-testid":`${e.item.key}-badge-tag-${m}`,tooltip:g,"truncation-tooltip":""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(g),1)]),_:2},1032,["data-testid","tooltip"]))),128))],8,fr)):t.createCommentVNode("",!0),d.value.additionalComponent==="KCopy"?(t.openBlock(),t.createElementBlock("div",{key:1,class:"copy-uuid-array","data-testid":`${e.item.key}-copy-uuid-array`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(g,m)=>(t.openBlock(),t.createBlock(x,t.mergeProps(d.value.childAttrs,{key:`${e.item.key}-copy-uuid-${m}`,"data-testid":`${e.item.key}-copy-uuid-${m}`,text:g}),null,16,["data-testid","text"]))),128))],8,mr)):d.value.additionalComponent==="KMethodBadge"?(t.openBlock(),t.createElementBlock("div",{key:2,class:"method-badge-array","data-testid":`${e.item.key}-badge-methods`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(g,m)=>(t.openBlock(),t.createBlock(V,{key:`${e.item.key}-badge-method-${m}`,appearance:Object.values(t.unref(Cn.BadgeMethodAppearances)).includes(g.toLowerCase())?g.toLowerCase():"custom",class:"config-badge","data-testid":`${e.item.key}-badge-method-${m}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(g),1)]),_:2},1032,["appearance","data-testid"]))),128))],8,gr)):t.createCommentVNode("",!0),d.value.additionalComponent==="JsonCardItem"?(t.openBlock(),t.createElementBlock("div",{key:3,"data-testid":`${r.item.key}-json-array-content`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(g,m)=>(t.openBlock(),t.createBlock(lt,{key:`json-array-item-${m}`,index:m,"is-array-item":"",item:g},null,8,["index","item"]))),128))],8,yr)):(t.openBlock(),t.createBlock(_,{key:4,text:t.unref(y)?e.item.value:""},{default:t.withCtx(()=>[t.createElementVNode("span",{ref_key:"textContent",ref:h,class:t.normalizeClass(["attrs-data-text",{truncated:e.truncated}])},t.toDisplayString(d.value.text),3)]),_:1},8,["text"]))]),_:1},16))])):(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-no-value`}," – ",8,pr))],!0)],8,dr)])}}}),st=Y(kr,[["__scopeId","data-v-d056663c"]]),br={class:"json-config"},Cr={key:0,class:"json-endpoint"},ct=t.defineComponent({__name:"JsonCodeBlock",props:{config:{type:Object,required:!1,default:()=>({})},fetcherUrl:{type:String,required:!1,default:""},jsonRecord:{type:Object,required:!0},requestMethod:{type:String,required:!1,default:""}},setup(e){t.useCssVars(o=>({"954d3eca":`${a.value}ch`}));const n=e,r=t.computed(()=>n.jsonRecord),a=t.computed(()=>{var o;if(!n.fetcherUrl)return 0;const l=(o=n.fetcherUrl)==null?void 0:o.split("/");return l.length<2?0:41+(n.requestMethod==="post"?l[l.length-1]:l[l.length-2]).length});return(o,l)=>{const i=t.resolveComponent("KBadge"),s=t.resolveComponent("KCodeBlock");return t.openBlock(),t.createElementBlock("div",br,[n.fetcherUrl?(t.openBlock(),t.createElementBlock("div",Cr,[t.createVNode(i,{appearance:n.requestMethod},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(n.requestMethod),1)]),_:1},8,["appearance"]),t.createVNode(s,{id:"json-endpoint-codeblock",code:n.fetcherUrl,"is-single-line":"",language:"json",theme:"dark"},null,8,["code"])])):t.createCommentVNode("",!0),n.jsonRecord?(t.openBlock(),t.createBlock(s,{key:1,id:"json-codeblock",class:t.normalizeClass({"json-content":n.fetcherUrl}),code:JSON.stringify(r.value,null,2),language:"json",theme:"dark"},null,8,["class","code"])):t.createCommentVNode("",!0)])}}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function dt(e){return typeof e>"u"||e===null}function wr(e){return typeof e=="object"&&e!==null}function Sr(e){return Array.isArray(e)?e:dt(e)?[]:[e]}function xr(e,n){var r,a,o,l;if(n)for(l=Object.keys(n),r=0,a=l.length;r<a;r+=1)o=l[r],e[o]=n[o];return e}function Br(e,n){var r="",a;for(a=0;a<n;a+=1)r+=e;return r}function Nr(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var Ir=dt,Ar=wr,_r=Sr,Er=Br,Vr=Nr,Tr=xr,K={isNothing:Ir,isObject:Ar,toArray:_r,repeat:Er,isNegativeZero:Vr,extend:Tr};function pt(e,n){var r="",a=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(r+='in "'+e.mark.name+'" '),r+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!n&&e.mark.snippet&&(r+=`
|
|
2
2
|
|
|
3
3
|
`+e.mark.snippet),a+" "+r):a}function pe(e,n){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=n,this.message=pt(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}pe.prototype=Object.create(Error.prototype),pe.prototype.constructor=pe,pe.prototype.toString=function(e){return this.name+": "+pt(this,e)};var U=pe;function $e(e,n,r,a,o){var l="",i="",s=Math.floor(o/2)-1;return a-n>s&&(l=" ... ",n=a-s+l.length),r-a>s&&(i=" ...",r=a+s-i.length),{str:l+e.slice(n,r).replace(/\t/g,"→")+i,pos:a-n+l.length}}function Me(e,n){return K.repeat(" ",n-e.length)+e}function jr(e,n){if(n=Object.create(n||null),!e.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var r=/\r?\n|\r|\0/g,a=[0],o=[],l,i=-1;l=r.exec(e.buffer);)o.push(l.index),a.push(l.index+l[0].length),e.position<=l.index&&i<0&&(i=a.length-2);i<0&&(i=a.length-1);var s="",c,p,u=Math.min(e.line+n.linesAfter,o.length).toString().length,d=n.maxLength-(n.indent+u+3);for(c=1;c<=n.linesBefore&&!(i-c<0);c++)p=$e(e.buffer,a[i-c],o[i-c],e.position-(a[i]-a[i-c]),d),s=K.repeat(" ",n.indent)+Me((e.line-c+1).toString(),u)+" | "+p.str+`
|
|
4
4
|
`+s;for(p=$e(e.buffer,a[i],o[i],e.position,d),s+=K.repeat(" ",n.indent)+Me((e.line+1).toString(),u)+" | "+p.str+`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kong-ui-public/entities-key-sets",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/entities-key-sets.umd.js",
|
|
6
6
|
"module": "./dist/entities-key-sets.es.js",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"errorLimit": "500KB"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@kong-ui-public/entities-shared": "^2.12.
|
|
52
|
+
"@kong-ui-public/entities-shared": "^2.12.1"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"dev": "cross-env USE_SANDBOX=true vite",
|