@kong-ui-public/entities-key-sets 2.4.4 → 2.4.5
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.
|
@@ -464,7 +464,7 @@ function Xt(e, t) {
|
|
|
464
464
|
const { page: l, pageSize: s, offset: c, sortColumnKey: d, sortColumnOrder: u, query: h } = i;
|
|
465
465
|
try {
|
|
466
466
|
let m = new URL(o.value.href);
|
|
467
|
-
return a.value && h ? (m.search = "", m = n.value.
|
|
467
|
+
return a.value && h ? (m.search = "", m = n.value.isExactMatch ? new URL(`${m.href}/${h}/`) : new URL(`${m.href}?filter[name][contains]=${h}`)) : (a.value || new URLSearchParams(h).forEach((w, b) => {
|
|
468
468
|
m.searchParams.append(b, w);
|
|
469
469
|
}), d && m.searchParams.append("sort_by", d), u === "desc" && m.searchParams.append("sort_desc", "1"), m.searchParams.append("size", String(s))), c && l !== 1 && m.searchParams.append("offset", String(c)), m.href;
|
|
470
470
|
} catch (m) {
|
|
@@ -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,Ee,he,We,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 Ve={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||{}),_e=(e=>(e.Edit="edit",e.Create="create",e))(_e||{}),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):We.create({withCredentials:!0,timeout:3e4,...e})}catch(n){return console.warn("getAxiosInstance:",n.message||n),We.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"}},En={message:"Are you sure you want to delete this {entityType}?",messageWithName:"Are you sure you want to delete this {entityType} {entityName}?"},Vn={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."}},_n={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:En,baseForm:Vn,baseTable:_n,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 vn(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 E(g)},200),c=t.ref(!1),d=t.ref(""),u=t.ref(""),p=t.ref([]),h=t.ref([]),y=t.ref(void 0),C=t.unref(n);let k=`${e.apiBaseUrl}${C}`;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:b}=Ge(),_=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]:[],p.value=h.value}catch{p.value=[],d.value=l("debouncedFilter.errors.fetch")}finally{c.value=!1}},x=t.ref(""),E=async g=>{var m,f,A;if(x.value!==g)if(x.value=g||"",y.value===void 0)try{if(c.value=!0,d.value="",u.value="",e.app==="konnect"){let V=k+"";g&&(V+=`/${g}`);const{data:S}=await o.get(`${V}?size=${r}`);a.fetchedItemsKey in S?p.value=S[a.fetchedItemsKey]:S!=null&&S.id?p.value=[S]:p.value=[]}else if(g){const V=[];b(g)&&a.searchKeys.includes("id")?V.push((async()=>{const{data:N}=await o.get(`${k}/${g}`);return[N[a.fetchedItemsKey]??N]})()):V.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(V),T=new Set;p.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),p.value.push(j))})})}else p.value=h.value}catch(V){((f=V==null?void 0:V.response)==null?void 0:f.status)===404?u.value=l("debouncedFilter.errors.invalid"):(p.value=[],d.value=l("debouncedFilter.errors.fetch"))}finally{c.value=!1}else c.value=!0,u.value="",g?(p.value=(A=y.value)==null?void 0:A.filter(V=>{var S;let T=!1;for(const N of a.searchKeys){const B=typeof V[N]=="string"?(S=V[N])==null?void 0:S.toLowerCase():V[N];B!=null&&B.includes(g.toLowerCase())&&(T=!0)}return T}),(!p.value||!p.value.length)&&(u.value=l("debouncedFilter.errors.invalid"))):p.value=y.value,c.value=!1};return{loading:c,error:d,validationError:u,results:p,allRecords:y,loadItems:_,debouncedQueryChange:s}}function qn(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 Kn(){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 Ln(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:d,sortColumnKey:u,sortColumnOrder:p,query:h}=i;try{let y=new URL(l.value.href);return o.value&&h?(y.search="",y=r.value.app==="konnect"?new URL(`${y.href}?filter[name][contains]=${h}`):new URL(`${y.href}/${h}/`)):(o.value||new URLSearchParams(h).forEach((C,k)=>{y.searchParams.append(k,C)}),u&&y.searchParams.append("sort_by",u),p==="desc"&&y.searchParams.append("sort_desc","1"),y.searchParams.append("size",String(c))),d&&s!==1&&y.searchParams.append("offset",String(d)),y.href}catch(y){return console.error("RouteList(fetcher)",y),a.value}}}function Dn(e,n,r="data"){const a=t.unref(n),{axiosInstance:o}=je({headers:e.requestHeaders}),l=Qe(e,a),i=t.ref({status:re.Idle});return{fetcher:async s=>{try{i.value={status:re.Loading};let c=l(s);c.includes("filter[name]")&&(c=`${c}&page[size]=${s.pageSize}&page[number]=${s.page}`);const{data:d}=await o.get(c),u=r&&r.replace(/[^\w-_]/gi,"");let p;d[u]&&Array.isArray(d[u])?p=d[u]:Array.isArray(d)?p=d:p=Object.keys(d).length?[d]:[];const h={data:p,total:p.length,...d.offset?{pagination:{offset:d.offset}}:null};return i.value={status:re.Idle,response:h},h}catch(c){const d={data:[],total:0};return s.query&&c.response.status===404?(i.value={status:re.NoResults,response:d,error:c},d):(i.value={status:re.Error,response:d,error:c},d)}},fetcherState:i}}function Un(){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},Rn=(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]=Rn(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 Yn(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 Wn(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 K={useAxios:je,useDebouncedFilter:vn,useDeleteUrlBuilder:qn,useErrors:Kn,useExternalLinkCreator:Ln,useFetcher:Dn,useFetchUrlBuilder:Qe,useHelpers:Ge,useStringHelpers:Un,useI18n:Oe,useGatewayFeatureSupported:Yn,useTruncationDetector:Wn},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}}=K.useI18n(),{convertKeyToTitle:a}=K.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,d)=>(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,p)=>(t.openBlock(),t.createBlock(st,{key:`${o.value}-property-${p}`,item:{key:u,label:t.unref(a)(u),value:i.value[u]}},null,8,["item"]))),128))]),_:1},8,["class"]))}}),W=(e,n)=>{const r=e.__vccOpts||e;for(const[a,o]of n)r[a]=o;return r},lt=W(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}}=K.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=W(Qn,[["__scopeId","data-v-c96811e5"]]),er=t.defineComponent({__name:"StatusBadge",props:{status:{type:Boolean,default:!1}},setup(e){const{i18n:{t:n}}=K.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(C=>({"07753575":u.value?"none":`solid ${t.unref(ar)} ${t.unref(nr)}`,"32d44ea8":d.value&&s.value?"block":"flex","5036b738":d.value&&s.value?"100%":r.slim?"50%":"25%","5038fd13":d.value&&s.value?"100%":r.slim?"50%":"75%"}));const r=e,a=n,o=t.useSlots(),{i18n:{t:l,formatUnixTimeStamp:i}}=K.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"])),d=t.computed(()=>r.item.type===M.Json||r.item.type===M.JsonArray),u=t.computed(()=>r.item.type===M.JsonArray),p=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:C=>{a("navigation-click",C)}}};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}=K.useTruncationDetector(h);return(C,k)=>{const b=t.resolveComponent("KLabel"),_=t.resolveComponent("KBadge"),x=t.resolveComponent("KCopy"),E=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(C.$slots,"label",{item:e.item},()=>[t.createVNode(b,{"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(C.$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(C.$slots,e.item.key,{rowValue:e.item.value},()=>[s.value?(t.openBlock(),t.createElementBlock("div",ur,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(p.value.tag),t.normalizeProps(t.guardReactiveProps(p.value.attrs)),{default:t.withCtx(()=>[p.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(_,{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),p.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(p.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)):p.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(_,{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),p.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(E,{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(p.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=W(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=>({"2d178975":`${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)=>{var i;const s=t.resolveComponent("KBadge"),c=t.resolveComponent("KCodeBlock");return t.openBlock(),t.createElementBlock("div",br,[n.fetcherUrl&&(i=n.config)!=null&&i.jsonYamlFormsEnabled?(t.openBlock(),t.createElementBlock("div",Cr,[t.createVNode(s,{appearance:n.requestMethod},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(n.requestMethod),1)]),_:1},8,["appearance"]),t.createVNode(c,{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(c,{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,Er=Sr,Vr=Br,_r=Nr,Tr=xr,q={isNothing:Ir,isObject:Ar,toArray:Er,repeat:Vr,isNegativeZero:_r,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,Ee,he,We,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 Ve={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||{}),_e=(e=>(e.Edit="edit",e.Create="create",e))(_e||{}),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):We.create({withCredentials:!0,timeout:3e4,...e})}catch(n){return console.warn("getAxiosInstance:",n.message||n),We.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"}},En={message:"Are you sure you want to delete this {entityType}?",messageWithName:"Are you sure you want to delete this {entityType} {entityName}?"},Vn={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."}},_n={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:En,baseForm:Vn,baseTable:_n,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 vn(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 E(g)},200),c=t.ref(!1),d=t.ref(""),u=t.ref(""),p=t.ref([]),h=t.ref([]),y=t.ref(void 0),C=t.unref(n);let k=`${e.apiBaseUrl}${C}`;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:b}=Ge(),_=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]:[],p.value=h.value}catch{p.value=[],d.value=l("debouncedFilter.errors.fetch")}finally{c.value=!1}},x=t.ref(""),E=async g=>{var m,f,A;if(x.value!==g)if(x.value=g||"",y.value===void 0)try{if(c.value=!0,d.value="",u.value="",e.app==="konnect"){let V=k+"";g&&(V+=`/${g}`);const{data:S}=await o.get(`${V}?size=${r}`);a.fetchedItemsKey in S?p.value=S[a.fetchedItemsKey]:S!=null&&S.id?p.value=[S]:p.value=[]}else if(g){const V=[];b(g)&&a.searchKeys.includes("id")?V.push((async()=>{const{data:N}=await o.get(`${k}/${g}`);return[N[a.fetchedItemsKey]??N]})()):V.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(V),T=new Set;p.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),p.value.push(j))})})}else p.value=h.value}catch(V){((f=V==null?void 0:V.response)==null?void 0:f.status)===404?u.value=l("debouncedFilter.errors.invalid"):(p.value=[],d.value=l("debouncedFilter.errors.fetch"))}finally{c.value=!1}else c.value=!0,u.value="",g?(p.value=(A=y.value)==null?void 0:A.filter(V=>{var S;let T=!1;for(const N of a.searchKeys){const B=typeof V[N]=="string"?(S=V[N])==null?void 0:S.toLowerCase():V[N];B!=null&&B.includes(g.toLowerCase())&&(T=!0)}return T}),(!p.value||!p.value.length)&&(u.value=l("debouncedFilter.errors.invalid"))):p.value=y.value,c.value=!1};return{loading:c,error:d,validationError:u,results:p,allRecords:y,loadItems:_,debouncedQueryChange:s}}function qn(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 Kn(){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 Ln(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:d,sortColumnKey:u,sortColumnOrder:p,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((C,k)=>{y.searchParams.append(k,C)}),u&&y.searchParams.append("sort_by",u),p==="desc"&&y.searchParams.append("sort_desc","1"),y.searchParams.append("size",String(c))),d&&s!==1&&y.searchParams.append("offset",String(d)),y.href}catch(y){return console.error("RouteList(fetcher)",y),a.value}}}function Dn(e,n,r="data"){const a=t.unref(n),{axiosInstance:o}=je({headers:e.requestHeaders}),l=Qe(e,a),i=t.ref({status:re.Idle});return{fetcher:async s=>{try{i.value={status:re.Loading};let c=l(s);c.includes("filter[name]")&&(c=`${c}&page[size]=${s.pageSize}&page[number]=${s.page}`);const{data:d}=await o.get(c),u=r&&r.replace(/[^\w-_]/gi,"");let p;d[u]&&Array.isArray(d[u])?p=d[u]:Array.isArray(d)?p=d:p=Object.keys(d).length?[d]:[];const h={data:p,total:p.length,...d.offset?{pagination:{offset:d.offset}}:null};return i.value={status:re.Idle,response:h},h}catch(c){const d={data:[],total:0};return s.query&&c.response.status===404?(i.value={status:re.NoResults,response:d,error:c},d):(i.value={status:re.Error,response:d,error:c},d)}},fetcherState:i}}function Un(){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},Rn=(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]=Rn(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 Yn(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 Wn(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 K={useAxios:je,useDebouncedFilter:vn,useDeleteUrlBuilder:qn,useErrors:Kn,useExternalLinkCreator:Ln,useFetcher:Dn,useFetchUrlBuilder:Qe,useHelpers:Ge,useStringHelpers:Un,useI18n:Oe,useGatewayFeatureSupported:Yn,useTruncationDetector:Wn},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}}=K.useI18n(),{convertKeyToTitle:a}=K.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,d)=>(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,p)=>(t.openBlock(),t.createBlock(st,{key:`${o.value}-property-${p}`,item:{key:u,label:t.unref(a)(u),value:i.value[u]}},null,8,["item"]))),128))]),_:1},8,["class"]))}}),W=(e,n)=>{const r=e.__vccOpts||e;for(const[a,o]of n)r[a]=o;return r},lt=W(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}}=K.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=W(Qn,[["__scopeId","data-v-c96811e5"]]),er=t.defineComponent({__name:"StatusBadge",props:{status:{type:Boolean,default:!1}},setup(e){const{i18n:{t:n}}=K.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(C=>({"07753575":u.value?"none":`solid ${t.unref(ar)} ${t.unref(nr)}`,"32d44ea8":d.value&&s.value?"block":"flex","5036b738":d.value&&s.value?"100%":r.slim?"50%":"25%","5038fd13":d.value&&s.value?"100%":r.slim?"50%":"75%"}));const r=e,a=n,o=t.useSlots(),{i18n:{t:l,formatUnixTimeStamp:i}}=K.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"])),d=t.computed(()=>r.item.type===M.Json||r.item.type===M.JsonArray),u=t.computed(()=>r.item.type===M.JsonArray),p=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:C=>{a("navigation-click",C)}}};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}=K.useTruncationDetector(h);return(C,k)=>{const b=t.resolveComponent("KLabel"),_=t.resolveComponent("KBadge"),x=t.resolveComponent("KCopy"),E=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(C.$slots,"label",{item:e.item},()=>[t.createVNode(b,{"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(C.$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(C.$slots,e.item.key,{rowValue:e.item.value},()=>[s.value?(t.openBlock(),t.createElementBlock("div",ur,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(p.value.tag),t.normalizeProps(t.guardReactiveProps(p.value.attrs)),{default:t.withCtx(()=>[p.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(_,{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),p.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(p.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)):p.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(_,{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),p.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(E,{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(p.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=W(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=>({"2d178975":`${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)=>{var i;const s=t.resolveComponent("KBadge"),c=t.resolveComponent("KCodeBlock");return t.openBlock(),t.createElementBlock("div",br,[n.fetcherUrl&&(i=n.config)!=null&&i.jsonYamlFormsEnabled?(t.openBlock(),t.createElementBlock("div",Cr,[t.createVNode(s,{appearance:n.requestMethod},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(n.requestMethod),1)]),_:1},8,["appearance"]),t.createVNode(c,{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(c,{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,Er=Sr,Vr=Br,_r=Nr,Tr=xr,q={isNothing:Ir,isObject:Ar,toArray:Er,repeat:Vr,isNegativeZero:_r,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 R=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 q.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,d,u=Math.min(e.line+n.linesAfter,o.length).toString().length,p=n.maxLength-(n.indent+u+3);for(c=1;c<=n.linesBefore&&!(i-c<0);c++)d=$e(e.buffer,a[i-c],o[i-c],e.position-(a[i]-a[i-c]),p),s=q.repeat(" ",n.indent)+Me((e.line-c+1).toString(),u)+" | "+d.str+`
|
|
4
4
|
`+s;for(d=$e(e.buffer,a[i],o[i],e.position,p),s+=q.repeat(" ",n.indent)+Me((e.line+1).toString(),u)+" | "+d.str+`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kong-ui-public/entities-key-sets",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.5",
|
|
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.10.
|
|
52
|
+
"@kong-ui-public/entities-shared": "^2.10.5"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"dev": "cross-env USE_SANDBOX=true vite",
|