@kong-ui-public/entities-upstreams-targets 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.
|
@@ -374,7 +374,7 @@ function Pl(e, a) {
|
|
|
374
374
|
const { page: c, pageSize: o, offset: d, sortColumnKey: h, sortColumnOrder: p, query: m } = s;
|
|
375
375
|
try {
|
|
376
376
|
let n = new URL(i.value.href);
|
|
377
|
-
return r.value && m ? (n.search = "", n = t.value.
|
|
377
|
+
return r.value && m ? (n.search = "", n = t.value.isExactMatch ? new URL(`${n.href}/${m}/`) : new URL(`${n.href}?filter[name][contains]=${m}`)) : (r.value || new URLSearchParams(m).forEach((F, w) => {
|
|
378
378
|
n.searchParams.append(w, F);
|
|
379
379
|
}), h && n.searchParams.append("sort_by", h), p === "desc" && n.searchParams.append("sort_desc", "1"), n.searchParams.append("size", String(o))), d && c !== 1 && n.searchParams.append("offset", String(d)), n.href;
|
|
380
380
|
} catch (n) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(ae,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("axios"),require("@kong-ui-public/i18n"),require("@kong/kongponents"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","axios","@kong-ui-public/i18n","@kong/kongponents","vue-router"],t):(ae=typeof globalThis<"u"?globalThis:ae||self,t(ae["kong-ui-entities-upstreams-targets"]={},ae.Vue,ae.axios,ae["kong-ui-public-i18n"],ae.Kongponents,ae.VueRouter))})(this,function(ae,t,wt,Oe,ul,Qe){"use strict";var Ye=(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))(Ye||{}),oe=(e=>(e.Edit="edit",e.Create="create",e))(oe||{}),pe=(e=>(e[e.Loading=0]="Loading",e[e.Idle=1]="Idle",e[e.NoResults=2]="NoResults",e[e.Error=3]="Error",e))(pe||{}),P=(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))(P||{}),J=(e=>(e.Basic="basic",e.Advanced="advanced",e.Plugin="plugin",e))(J||{});function fl(){return{getAxiosInstance:(e={})=>{try{const r=t.inject("get-axios-instance",void 0);return typeof r=="function"?r(e):wt.create({withCredentials:!0,timeout:3e4,...e})}catch(r){return console.warn("getAxiosInstance:",r.message||r),wt.create({withCredentials:!0,timeout:3e4,...e})}},getTraceIdFromError:e=>{var r;return((r=e==null?void 0:e.response)==null?void 0:r.headers["x-datadog-trace-id"])||""}}}function ml(){return{debounce:(e,r)=>{let a;return(...l)=>{clearTimeout(a),a=window==null?void 0:window.setTimeout(()=>{e(...l)},r)}}}}const Ze="khcp-user-table-preferences",gl={pageSize:30,sortColumnKey:void 0,sortColumnOrder:void 0};function yl(){const e=a=>{if(typeof a=="string")try{return JSON.parse(a)}catch(l){console.error("useTablePreferences(tryParseJson)",l);return}},r=()=>{const a=e(localStorage.getItem(Ze));return!a||!Object.keys(a).length?new Map:new Map(Object.entries(a))};return{setTablePreferences:(a,l)=>{try{const n=r();n.set(a,l),localStorage.setItem(Ze,JSON.stringify(Object.fromEntries(n.entries())))}catch(n){console.error("useTablePreferences(setTablePreferences)",n)}},getTablePreferences:a=>{const l=r();return(l==null?void 0:l.get(a))||void 0||gl},deleteAllTablePreferences:()=>{localStorage.removeItem(Ze)}}}function Ge(e={}){const{getAxiosInstance:r}=fl();return{axiosInstance:r(e)}}const kl={actions:{copyId:"Copy ID",copied_id:'Copied "{id}" to the clipboard',copyToClipboard:"Copied successfully!",copyToClipboardFailed:"Failed to copy to the clipboard"}},bl={message:"Are you sure you want to delete this {entityType}?",messageWithName:"Are you sure you want to delete this {entityType} {entityName}?"},Cl={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."}},wl={emptyState:{noSearchResultsTitle:"No results found",noSearchResultsMessage:"Please adjust the criteria and try again.",noSearchResultsCtaText:"Clear"}},Sl={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"}},_l={filterButtonText:"Filter",fieldLabel:"Filter by:",inputPlaceholder:"Enter a value",selectPlaceholder:"Select an item",applyButtonText:"Apply",clearButtonText:"Clear",clearAllButtonText:"Clear all filters"},xl={errors:{fetch:"Could not fetch available items",invalid:"Please select a valid value"}},Nl={unexpected:"An unexpected error has occurred",dataKeyUndefined:'The data key "{dataKey}" does not exist in the response.'},Vl={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"}},Il={global:kl,deleteModal:bl,baseForm:Cl,baseTable:wl,baseConfigCard:Sl,filter:_l,debouncedFilter:xl,errors:Nl,toggleModal:Vl};function Xe(){const e=Oe.createI18n("en-us",Il);return{i18n:e,i18nT:Oe.i18nTComponent(e)}}function St(){const e=(a,l)=>(l==null?void 0:l[a])??void 0,r=(a,l)=>{if(a.length!==l.length)return!1;const n=new Set([...a,...l]);for(const i of n){const o=a.filter(c=>c===i).length,d=l.filter(c=>c===i).length;if(o!==d)return!1}return!0};return{getPropValue:e,objectsAreEqual:(a,l,n)=>{if(n){if(Object.keys(a).length===Object.keys(l).length)for(const i in a)if(Array.isArray(a[i])&&Array.isArray(l[i])){if(r(a[i],l[i]))continue;return!1}else{if(a[i]===l[i])continue;return!1}else return!1;return!0}try{return JSON.stringify(a)===JSON.stringify(l)}catch{return!1}},sortAlpha:a=>(l,n)=>{let i=l[a]===void 0||l[a]===null?"":l[a],o=n[a]===void 0||n[a]===null?"":n[a];return Array.isArray(l[a])&&(i=l[a][0]),Array.isArray(n[a])&&(o=n[a][0]),i.localeCompare(o)},isValidUuid:a=>a?/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/.test(a):!1}}function Bl(e,r,a,l={fetchedItemsKey:"data",searchKeys:["id"]}){a||(a="100");const{axiosInstance:n}=Ge({headers:e.requestHeaders}),{i18n:{t:i}}=Xe(),{debounce:o}=ml(),d=o(async _=>{await F(_)},200),c=t.ref(!1),h=t.ref(""),p=t.ref(""),u=t.ref([]),f=t.ref([]),s=t.ref(void 0),V=t.unref(r);let C=`${e.apiBaseUrl}${V}`;e.app==="konnect"?C=C.replace(/{controlPlaneId}/gi,(e==null?void 0:e.controlPlaneId)||""):e.app==="kongManager"&&(C=C.replace(/\/{workspace}/gi,e!=null&&e.workspace?`/${e.workspace}`:""));const{isValidUuid:g}=St(),B=async()=>{try{c.value=!0;const{data:_}=await n.get(`${C}?size=${a}`);_!=null&&_.next||(s.value=l.fetchedItemsKey in _?_[l.fetchedItemsKey]:[]),f.value=l.fetchedItemsKey in _?_[l.fetchedItemsKey]:[],u.value=f.value}catch{u.value=[],h.value=i("debouncedFilter.errors.fetch")}finally{c.value=!1}},A=t.ref(""),F=async _=>{var w,m,N;if(A.value!==_)if(A.value=_||"",s.value===void 0)try{if(c.value=!0,h.value="",p.value="",e.app==="konnect"){let I=C+"";_&&(I+=`/${_}`);const{data:x}=await n.get(`${I}?size=${a}`);l.fetchedItemsKey in x?u.value=x[l.fetchedItemsKey]:x!=null&&x.id?u.value=[x]:u.value=[]}else if(_){const I=[];g(_)&&l.searchKeys.includes("id")?I.push((async()=>{const{data:S}=await n.get(`${C}/${_}`);return[S[l.fetchedItemsKey]??S]})()):I.push(...l.searchKeys.filter(S=>S!=="id").map(async S=>{const{data:T}=await n.get(`${C}?${S}=${_}`);return T[l.fetchedItemsKey]}));const x=await Promise.all(I),E=new Set;u.value=[],(w=x==null?void 0:x.forEach)==null||w.call(x,S=>{var T;(T=S==null?void 0:S.forEach)==null||T.call(S,q=>{E.has(q.id)||(E.add(q.id),u.value.push(q))})})}else u.value=f.value}catch(I){((m=I==null?void 0:I.response)==null?void 0:m.status)===404?p.value=i("debouncedFilter.errors.invalid"):(u.value=[],h.value=i("debouncedFilter.errors.fetch"))}finally{c.value=!1}else c.value=!0,p.value="",_?(u.value=(N=s.value)==null?void 0:N.filter(I=>{var x;let E=!1;for(const S of l.searchKeys){const T=typeof I[S]=="string"?(x=I[S])==null?void 0:x.toLowerCase():I[S];T!=null&&T.includes(_.toLowerCase())&&(E=!0)}return E}),(!u.value||!u.value.length)&&(p.value=i("debouncedFilter.errors.invalid"))):u.value=s.value,c.value=!1};return{loading:c,error:h,validationError:p,results:u,allRecords:s,loadItems:B,debouncedQueryChange:d}}function Tl(e,r){const a=t.unref(r),l=t.computed(()=>e.apiBaseUrl.startsWith("/")?new URL(`${window.location.origin}${a}`):new URL(a));return l.value.search="",n=>`${l.value.href}/${n}`}function Al(){const{i18n:{t:e}}=Xe();return{getMessageFromError:r=>{var a,l,n,i;if(!r)return e("errors.unexpected");if(((a=r==null?void 0:r.response)==null?void 0:a.status)===401)return console.warn("getMessageFromError: User auth token is expired or missing, returning empty message."),"";if((l=r==null?void 0:r.response)!=null&&l.data){if(r.response.data.detail)return r.response.data.detail;if((n=r.response.data.details)!=null&&n.length)return r.response.data.details.map(o=>{let d=e("errors.unexpected");return o.messages&&typeof o.messages=="object"&&o.messages.length&&(d=o.messages.join(", ")),o.field?`${o.field} - ${d}`:d}).join("; ");if(r.response.data.message){const{message:o}=r.response.data;return Array.isArray(o)?(i=o[0])!=null&&i.constraints?Object.values(o[0].constraints)[0]:o[0]:o}if(typeof r.response.data=="string")return r.response.data;if(typeof r.response.data=="object")return Object.keys(r.response.data).map(o=>`${o} ${r.response.data[o]}`).join(", ")}return r.message||e("errors.unexpected")}}}function El(e){const r=window.location.origin,a=r.endsWith("/")?r:`${r}/`;try{const l=e.join("/"),n=`${a}${l}`,i=e.some(o=>o.trim()==="");if(/^(https:\/\/(www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(:[0-9]+)?(\/[^\/]+)*)$|^(https|http):\/\/localhost(:[0-9]+)?(\/[^\/]+)*$/.test(n)&&!i&&new URL(n))return`${a}${l}`;throw new Error("Invalid url")}catch(l){return console.warn("Failed to build valid URL:",l),""}}function _t(e,r){const a=t.ref(t.unref(e)),l=t.ref(t.unref(r)),n=t.computed(()=>!!(a.value.app==="konnect"||a.value.isExactMatch)),i=t.computed(()=>l.value.startsWith("/")?new URL(`${window.location.origin}${l.value}`):new URL(l.value));return o=>{const{page:d,pageSize:c,offset:h,sortColumnKey:p,sortColumnOrder:u,query:f}=o;try{let s=new URL(i.value.href);return n.value&&f?(s.search="",s=a.value.app==="konnect"?new URL(`${s.href}?filter[name][contains]=${f}`):new URL(`${s.href}/${f}/`)):(n.value||new URLSearchParams(f).forEach((V,C)=>{s.searchParams.append(C,V)}),p&&s.searchParams.append("sort_by",p),u==="desc"&&s.searchParams.append("sort_desc","1"),s.searchParams.append("size",String(c))),h&&d!==1&&s.searchParams.append("offset",String(h)),s.href}catch(s){return console.error("RouteList(fetcher)",s),l.value}}}function Hl(e,r,a="data"){const l=t.unref(r),{axiosInstance:n}=Ge({headers:e.requestHeaders}),i=_t(e,l),o=t.ref({status:pe.Idle});return{fetcher:async d=>{try{o.value={status:pe.Loading};let c=i(d);c.includes("filter[name]")&&(c=`${c}&page[size]=${d.pageSize}&page[number]=${d.page}`);const{data:h}=await n.get(c),p=a&&a.replace(/[^\w-_]/gi,"");let u;h[p]&&Array.isArray(h[p])?u=h[p]:Array.isArray(h)?u=h:u=Object.keys(h).length?[h]:[];const f={data:u,total:u.length,...h.offset?{pagination:{offset:h.offset}}:null};return o.value={status:pe.Idle,response:f},f}catch(c){const h={data:[],total:0};return d.query&&c.response.status===404?(o.value={status:pe.NoResults,response:h,error:c},h):(o.value={status:pe.Error,response:h,error:c},h)}},fetcherState:o}}function vl(){const e=(a,l="_")=>a?a.split(l).map(n=>n.toLowerCase()==="id"?n.toUpperCase():n.charAt(0).toUpperCase()+n.substring(1)).join(" "):"",r=/(?:^|[\s-:'"])\w/g;return{capitalize:a=>a?a.replace(r,l=>l.toUpperCase()):"",convertKeyToTitle:e}}const xt=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,Nt=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const r=e.match(xt);if(!r)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return r.shift(),r},Vt=e=>e==="*"||e==="x"||e==="X",It=e=>{const r=parseInt(e,10);return isNaN(r)?e:r},Fl=(e,r)=>typeof e!=typeof r?[String(e),String(r)]:[e,r],ql=(e,r)=>{if(Vt(e)||Vt(r))return 0;const[a,l]=Fl(It(e),It(r));return a>l?1:a<l?-1:0},Bt=(e,r)=>{for(let a=0;a<Math.max(e.length,r.length);a++){const l=ql(e[a]||"0",r[a]||"0");if(l!==0)return l}return 0},Ol=(e,r)=>{const a=Nt(e),l=Nt(r),n=a.pop(),i=l.pop(),o=Bt(a,l);return o!==0?o:n&&i?Bt(n.split("."),i.split(".")):n||i?n?-1:1:0},Tt=(e,r,a)=>{Ul(a);const l=Ol(e,r);return At[a].includes(l)},At={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},Et=Object.keys(At),Ul=e=>{if(typeof e!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof e}`);if(Et.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${Et.join("|")}`)},$l=e=>typeof e=="string"&&/^[v\d]/.test(e)&&xt.test(e);function Dl(e){const{gatewayInfo:r,supportedRange:a}=e;if(!r)return!0;const{edition:l,version:n}=r;if(!$l(n))return console.error("Invalid version"),!1;const i=a[l];if(!i)return!1;const[o,d]=i;return!(o&&Tt(n,o,"<")||d&&Tt(n,d,">"))}function Ml(e){const r=t.ref(0),a=t.ref(0),l=t.ref(!1);return t.watch(e,n=>{n&&!l.value&&(r.value=n.offsetWidth,a.value=n.scrollWidth,l.value=!0)}),{isTruncated:t.computed(()=>r.value<a.value)}}const Z={useAxios:Ge,useDebouncedFilter:Bl,useDeleteUrlBuilder:Tl,useErrors:Al,useExternalLinkCreator:El,useFetcher:Hl,useFetchUrlBuilder:_t,useHelpers:St,useStringHelpers:vl,useI18n:Xe,useGatewayFeatureSupported:Dl,useTruncationDetector:Ml},jl={key:0,class:"config-card-fieldset-title"},Kl=t.defineComponent({__name:"JsonCardItem",props:{item:{type:Object,required:!0},index:{type:Number,default:-1},isArrayItem:{type:Boolean,default:!1}},setup(e){const r=e,{i18n:{t:a}}=Z.useI18n(),{convertKeyToTitle:l}=Z.useStringHelpers(),n=t.computed(()=>r.item.key??"json-array-item"),i=t.computed(()=>r.item.value??r.item),o=t.computed(()=>{const c=JSON.parse(JSON.stringify(i.value));return r.isArrayItem&&delete c.name,c}),d=t.computed(()=>{var c;return r.isArrayItem?(c=i.value)!=null&&c.name?l(i.value.name,"_"):a("baseConfigCard.general.entryTitle",{index:r.index}):""});return(c,h)=>(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",jl,[t.createElementVNode("b",null,t.toDisplayString(d.value),1)])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Object.keys(o.value),(p,u)=>(t.openBlock(),t.createBlock(vt,{key:`${n.value}-property-${u}`,item:{key:p,label:t.unref(l)(p),value:o.value[p]}},null,8,["item"]))),128))]),_:1},8,["class"]))}}),ne=(e,r)=>{const a=e.__vccOpts||e;for(const[l,n]of r)a[l]=n;return a},Ht=ne(Kl,[["__scopeId","data-v-68ca83ec"]]),Pl=t.defineComponent({__name:"InternalLinkItem",props:{item:{type:Object,required:!0}},emits:["navigation-click"],setup(e){const{i18n:{t:r}}=Z.useI18n();return(a,l)=>{const n=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(n,{appearance:"tertiary",class:"navigation-button",onClick:l[0]||(l[0]=i=>a.$emit("navigation-click",e.item))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.value||t.unref(r)("baseConfigCard.commonFields.link")),1)]),_:1})])}}}),Ll=ne(Pl,[["__scopeId","data-v-c96811e5"]]),Rl=t.defineComponent({__name:"StatusBadge",props:{status:{type:Boolean,default:!1}},setup(e){const{i18n:{t:r}}=Z.useI18n();return(a,l)=>{const n=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(n,{appearance:e.status?"success":"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.status?t.unref(r)("baseConfigCard.statusBadge.enabledLabel"):t.unref(r)("baseConfigCard.statusBadge.disabledLabel")),1)]),_:1},8,["appearance"])}}}),zl="#0044f4",Jl="#e0e4ea",Wl="#3a3f51",Ql="#afb7c5",Yl="1px",Zl="20px",Gl={class:"config-card-details-row"},Xl=["data-testid"],en=["data-testid"],tn=["data-testid"],an=["data-testid"],rn={key:1},ln=["data-testid"],nn=["data-testid"],on=["data-testid"],sn=["data-testid"],cn={name:"ConfigCardItem",components:{JsonCardItem:Ht,StatusBadge:Rl,InternalLinkItem:Ll}},dn=t.defineComponent({...cn,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:r}){t.useCssVars(V=>({"07753575":p.value?"none":`solid ${t.unref(Yl)} ${t.unref(Jl)}`,"32d44ea8":h.value&&d.value?"block":"flex","5036b738":h.value&&d.value?"100%":a.slim?"50%":"25%","5038fd13":h.value&&d.value?"100%":a.slim?"50%":"75%"}));const a=e,l=r,n=t.useSlots(),{i18n:{t:i,formatUnixTimeStamp:o}}=Z.useI18n(),d=t.computed(()=>a.item.value!==void 0&&a.item.value!==null&&a.item.value!==""),c=t.computed(()=>!!(a.item.tooltip||n["label-tooltip"])),h=t.computed(()=>a.item.type===P.Json||a.item.type===P.JsonArray),p=t.computed(()=>a.item.type===P.JsonArray),u=t.computed(()=>{switch(a.item.type){case P.ID:return{tag:"KCopy",attrs:{"data-testid":`${a.item.key}-copy-uuid`,"copy-tooltip":i("baseConfigCard.copy.tooltip",{label:a.item.label}),text:a.item.value}};case P.IdArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{"copy-tooltip":i("baseConfigCard.copy.tooltip",{label:a.item.label})}};case P.Redacted:return{tag:"KCopy",attrs:{"data-testid":`${a.item.key}-copy-uuid-redacted`,format:"redacted","copy-tooltip":i("baseConfigCard.copy.tooltip",{label:a.item.label}),text:a.item.value}};case P.RedactedArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{format:"redacted","copy-tooltip":i("baseConfigCard.copy.tooltip",{label:a.item.label})}};case P.Date:return{tag:"div",attrs:{"data-testid":`${a.item.key}-date`},text:o(a.item.value)};case P.BadgeStatus:return{tag:"StatusBadge",attrs:{"data-testid":`${a.item.key}-badge-status`,status:a.item.value}};case P.BadgeTag:return{tag:"div",additionalComponent:"KBadge"};case P.BadgeMethod:return{tag:"div",additionalComponent:"KMethodBadge"};case P.LinkInternal:return{tag:"InternalLinkItem",attrs:{"data-testid":`${a.item.key}-internal-link`,item:a.item,onNavigationClick:V=>{l("navigation-click",V)}}};case P.LinkExternal:return{tag:"KExternalLink",attrs:{"data-testid":`${a.item.key}-external-link`,href:a.item.value},text:a.item.value};case P.Json:return{tag:"JsonCardItem",attrs:{"data-testid":`${a.item.key}-json-content`,item:a.item}};case P.JsonArray:return{tag:"div",additionalComponent:"JsonCardItem",attrs:{"data-testid":`${a.item.key}-json-array-content`,item:a.item}};default:return{tag:"div",attrs:{"data-testid":`${a.item.key}-plain-text`},text:a.item.value}}}),f=t.ref(),{isTruncated:s}=Z.useTruncationDetector(f);return(V,C)=>{const g=t.resolveComponent("KLabel"),B=t.resolveComponent("KBadge"),A=t.resolveComponent("KCopy"),F=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",Gl,[t.createElementVNode("div",{class:"config-card-details-label","data-testid":`${e.item.key}-label`},[t.renderSlot(V.$slots,"label",{item:e.item},()=>[t.createVNode(g,{"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(V.$slots,"label-tooltip",{},()=>[t.createTextVNode(t.toDisplayString(e.item.tooltip),1)],!0)],8,en)]),key:"0"}:void 0]),1024)],!0)],8,Xl),t.createElementVNode("div",{class:"config-card-details-value","data-testid":`${e.item.key}-property-value`},[t.renderSlot(V.$slots,e.item.key,{rowValue:e.item.value},()=>[d.value?(t.openBlock(),t.createElementBlock("div",rn,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(u.value.tag),t.normalizeProps(t.guardReactiveProps(u.value.attrs)),{default:t.withCtx(()=>[u.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,(_,w)=>(t.openBlock(),t.createBlock(B,{key:`${e.item.key}-badge-tag-${w}`,class:"config-badge","data-testid":`${e.item.key}-badge-tag-${w}`,tooltip:_,"truncation-tooltip":""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(_),1)]),_:2},1032,["data-testid","tooltip"]))),128))],8,ln)):t.createCommentVNode("",!0),u.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,(_,w)=>(t.openBlock(),t.createBlock(A,t.mergeProps(u.value.childAttrs,{key:`${e.item.key}-copy-uuid-${w}`,"data-testid":`${e.item.key}-copy-uuid-${w}`,text:_}),null,16,["data-testid","text"]))),128))],8,nn)):u.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,(_,w)=>(t.openBlock(),t.createBlock(B,{key:`${e.item.key}-badge-method-${w}`,appearance:Object.values(t.unref(ul.BadgeMethodAppearances)).includes(_.toLowerCase())?_.toLowerCase():"custom",class:"config-badge","data-testid":`${e.item.key}-badge-method-${w}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(_),1)]),_:2},1032,["appearance","data-testid"]))),128))],8,on)):t.createCommentVNode("",!0),u.value.additionalComponent==="JsonCardItem"?(t.openBlock(),t.createElementBlock("div",{key:3,"data-testid":`${a.item.key}-json-array-content`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(_,w)=>(t.openBlock(),t.createBlock(Ht,{key:`json-array-item-${w}`,index:w,"is-array-item":"",item:_},null,8,["index","item"]))),128))],8,sn)):(t.openBlock(),t.createBlock(F,{key:4,text:t.unref(s)?e.item.value:""},{default:t.withCtx(()=>[t.createElementVNode("span",{ref_key:"textContent",ref:f,class:t.normalizeClass(["attrs-data-text",{truncated:e.truncated}])},t.toDisplayString(u.value.text),3)]),_:1},8,["text"]))]),_:1},16))])):(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-no-value`}," – ",8,an))],!0)],8,tn)])}}}),vt=ne(dn,[["__scopeId","data-v-d056663c"]]),hn={class:"json-config"},pn={key:0,class:"json-endpoint"},Ft=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(n=>({"2d178975":`${l.value}ch`}));const r=e,a=t.computed(()=>r.jsonRecord),l=t.computed(()=>{var n;if(!r.fetcherUrl)return 0;const i=(n=r.fetcherUrl)==null?void 0:n.split("/");return i.length<2?0:41+(r.requestMethod==="post"?i[i.length-1]:i[i.length-2]).length});return(n,i)=>{var o;const d=t.resolveComponent("KBadge"),c=t.resolveComponent("KCodeBlock");return t.openBlock(),t.createElementBlock("div",hn,[r.fetcherUrl&&(o=r.config)!=null&&o.jsonYamlFormsEnabled?(t.openBlock(),t.createElementBlock("div",pn,[t.createVNode(d,{appearance:r.requestMethod},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(r.requestMethod),1)]),_:1},8,["appearance"]),t.createVNode(c,{id:"json-endpoint-codeblock",code:r.fetcherUrl,"is-single-line":"",language:"json",theme:"dark"},null,8,["code"])])):t.createCommentVNode("",!0),r.jsonRecord?(t.openBlock(),t.createBlock(c,{key:1,id:"json-codeblock",class:t.normalizeClass({"json-content":r.fetcherUrl}),code:JSON.stringify(a.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 qt(e){return typeof e>"u"||e===null}function un(e){return typeof e=="object"&&e!==null}function fn(e){return Array.isArray(e)?e:qt(e)?[]:[e]}function mn(e,r){var a,l,n,i;if(r)for(i=Object.keys(r),a=0,l=i.length;a<l;a+=1)n=i[a],e[n]=r[n];return e}function gn(e,r){var a="",l;for(l=0;l<r;l+=1)a+=e;return a}function yn(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var kn=qt,bn=un,Cn=fn,wn=gn,Sn=yn,_n=mn,Q={isNothing:kn,isObject:bn,toArray:Cn,repeat:wn,isNegativeZero:Sn,extend:_n};function Ot(e,r){var a="",l=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(a+='in "'+e.mark.name+'" '),a+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!r&&e.mark.snippet&&(a+=`
|
|
1
|
+
(function(ae,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("axios"),require("@kong-ui-public/i18n"),require("@kong/kongponents"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","axios","@kong-ui-public/i18n","@kong/kongponents","vue-router"],t):(ae=typeof globalThis<"u"?globalThis:ae||self,t(ae["kong-ui-entities-upstreams-targets"]={},ae.Vue,ae.axios,ae["kong-ui-public-i18n"],ae.Kongponents,ae.VueRouter))})(this,function(ae,t,wt,Oe,ul,Qe){"use strict";var Ye=(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))(Ye||{}),oe=(e=>(e.Edit="edit",e.Create="create",e))(oe||{}),pe=(e=>(e[e.Loading=0]="Loading",e[e.Idle=1]="Idle",e[e.NoResults=2]="NoResults",e[e.Error=3]="Error",e))(pe||{}),P=(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))(P||{}),J=(e=>(e.Basic="basic",e.Advanced="advanced",e.Plugin="plugin",e))(J||{});function fl(){return{getAxiosInstance:(e={})=>{try{const r=t.inject("get-axios-instance",void 0);return typeof r=="function"?r(e):wt.create({withCredentials:!0,timeout:3e4,...e})}catch(r){return console.warn("getAxiosInstance:",r.message||r),wt.create({withCredentials:!0,timeout:3e4,...e})}},getTraceIdFromError:e=>{var r;return((r=e==null?void 0:e.response)==null?void 0:r.headers["x-datadog-trace-id"])||""}}}function ml(){return{debounce:(e,r)=>{let a;return(...l)=>{clearTimeout(a),a=window==null?void 0:window.setTimeout(()=>{e(...l)},r)}}}}const Ze="khcp-user-table-preferences",gl={pageSize:30,sortColumnKey:void 0,sortColumnOrder:void 0};function yl(){const e=a=>{if(typeof a=="string")try{return JSON.parse(a)}catch(l){console.error("useTablePreferences(tryParseJson)",l);return}},r=()=>{const a=e(localStorage.getItem(Ze));return!a||!Object.keys(a).length?new Map:new Map(Object.entries(a))};return{setTablePreferences:(a,l)=>{try{const n=r();n.set(a,l),localStorage.setItem(Ze,JSON.stringify(Object.fromEntries(n.entries())))}catch(n){console.error("useTablePreferences(setTablePreferences)",n)}},getTablePreferences:a=>{const l=r();return(l==null?void 0:l.get(a))||void 0||gl},deleteAllTablePreferences:()=>{localStorage.removeItem(Ze)}}}function Ge(e={}){const{getAxiosInstance:r}=fl();return{axiosInstance:r(e)}}const kl={actions:{copyId:"Copy ID",copied_id:'Copied "{id}" to the clipboard',copyToClipboard:"Copied successfully!",copyToClipboardFailed:"Failed to copy to the clipboard"}},bl={message:"Are you sure you want to delete this {entityType}?",messageWithName:"Are you sure you want to delete this {entityType} {entityName}?"},Cl={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."}},wl={emptyState:{noSearchResultsTitle:"No results found",noSearchResultsMessage:"Please adjust the criteria and try again.",noSearchResultsCtaText:"Clear"}},Sl={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"}},_l={filterButtonText:"Filter",fieldLabel:"Filter by:",inputPlaceholder:"Enter a value",selectPlaceholder:"Select an item",applyButtonText:"Apply",clearButtonText:"Clear",clearAllButtonText:"Clear all filters"},xl={errors:{fetch:"Could not fetch available items",invalid:"Please select a valid value"}},Nl={unexpected:"An unexpected error has occurred",dataKeyUndefined:'The data key "{dataKey}" does not exist in the response.'},Vl={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"}},Il={global:kl,deleteModal:bl,baseForm:Cl,baseTable:wl,baseConfigCard:Sl,filter:_l,debouncedFilter:xl,errors:Nl,toggleModal:Vl};function Xe(){const e=Oe.createI18n("en-us",Il);return{i18n:e,i18nT:Oe.i18nTComponent(e)}}function St(){const e=(a,l)=>(l==null?void 0:l[a])??void 0,r=(a,l)=>{if(a.length!==l.length)return!1;const n=new Set([...a,...l]);for(const i of n){const o=a.filter(c=>c===i).length,d=l.filter(c=>c===i).length;if(o!==d)return!1}return!0};return{getPropValue:e,objectsAreEqual:(a,l,n)=>{if(n){if(Object.keys(a).length===Object.keys(l).length)for(const i in a)if(Array.isArray(a[i])&&Array.isArray(l[i])){if(r(a[i],l[i]))continue;return!1}else{if(a[i]===l[i])continue;return!1}else return!1;return!0}try{return JSON.stringify(a)===JSON.stringify(l)}catch{return!1}},sortAlpha:a=>(l,n)=>{let i=l[a]===void 0||l[a]===null?"":l[a],o=n[a]===void 0||n[a]===null?"":n[a];return Array.isArray(l[a])&&(i=l[a][0]),Array.isArray(n[a])&&(o=n[a][0]),i.localeCompare(o)},isValidUuid:a=>a?/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/.test(a):!1}}function Bl(e,r,a,l={fetchedItemsKey:"data",searchKeys:["id"]}){a||(a="100");const{axiosInstance:n}=Ge({headers:e.requestHeaders}),{i18n:{t:i}}=Xe(),{debounce:o}=ml(),d=o(async _=>{await F(_)},200),c=t.ref(!1),h=t.ref(""),p=t.ref(""),u=t.ref([]),f=t.ref([]),s=t.ref(void 0),V=t.unref(r);let C=`${e.apiBaseUrl}${V}`;e.app==="konnect"?C=C.replace(/{controlPlaneId}/gi,(e==null?void 0:e.controlPlaneId)||""):e.app==="kongManager"&&(C=C.replace(/\/{workspace}/gi,e!=null&&e.workspace?`/${e.workspace}`:""));const{isValidUuid:g}=St(),B=async()=>{try{c.value=!0;const{data:_}=await n.get(`${C}?size=${a}`);_!=null&&_.next||(s.value=l.fetchedItemsKey in _?_[l.fetchedItemsKey]:[]),f.value=l.fetchedItemsKey in _?_[l.fetchedItemsKey]:[],u.value=f.value}catch{u.value=[],h.value=i("debouncedFilter.errors.fetch")}finally{c.value=!1}},A=t.ref(""),F=async _=>{var w,m,N;if(A.value!==_)if(A.value=_||"",s.value===void 0)try{if(c.value=!0,h.value="",p.value="",e.app==="konnect"){let I=C+"";_&&(I+=`/${_}`);const{data:x}=await n.get(`${I}?size=${a}`);l.fetchedItemsKey in x?u.value=x[l.fetchedItemsKey]:x!=null&&x.id?u.value=[x]:u.value=[]}else if(_){const I=[];g(_)&&l.searchKeys.includes("id")?I.push((async()=>{const{data:S}=await n.get(`${C}/${_}`);return[S[l.fetchedItemsKey]??S]})()):I.push(...l.searchKeys.filter(S=>S!=="id").map(async S=>{const{data:T}=await n.get(`${C}?${S}=${_}`);return T[l.fetchedItemsKey]}));const x=await Promise.all(I),E=new Set;u.value=[],(w=x==null?void 0:x.forEach)==null||w.call(x,S=>{var T;(T=S==null?void 0:S.forEach)==null||T.call(S,q=>{E.has(q.id)||(E.add(q.id),u.value.push(q))})})}else u.value=f.value}catch(I){((m=I==null?void 0:I.response)==null?void 0:m.status)===404?p.value=i("debouncedFilter.errors.invalid"):(u.value=[],h.value=i("debouncedFilter.errors.fetch"))}finally{c.value=!1}else c.value=!0,p.value="",_?(u.value=(N=s.value)==null?void 0:N.filter(I=>{var x;let E=!1;for(const S of l.searchKeys){const T=typeof I[S]=="string"?(x=I[S])==null?void 0:x.toLowerCase():I[S];T!=null&&T.includes(_.toLowerCase())&&(E=!0)}return E}),(!u.value||!u.value.length)&&(p.value=i("debouncedFilter.errors.invalid"))):u.value=s.value,c.value=!1};return{loading:c,error:h,validationError:p,results:u,allRecords:s,loadItems:B,debouncedQueryChange:d}}function Tl(e,r){const a=t.unref(r),l=t.computed(()=>e.apiBaseUrl.startsWith("/")?new URL(`${window.location.origin}${a}`):new URL(a));return l.value.search="",n=>`${l.value.href}/${n}`}function Al(){const{i18n:{t:e}}=Xe();return{getMessageFromError:r=>{var a,l,n,i;if(!r)return e("errors.unexpected");if(((a=r==null?void 0:r.response)==null?void 0:a.status)===401)return console.warn("getMessageFromError: User auth token is expired or missing, returning empty message."),"";if((l=r==null?void 0:r.response)!=null&&l.data){if(r.response.data.detail)return r.response.data.detail;if((n=r.response.data.details)!=null&&n.length)return r.response.data.details.map(o=>{let d=e("errors.unexpected");return o.messages&&typeof o.messages=="object"&&o.messages.length&&(d=o.messages.join(", ")),o.field?`${o.field} - ${d}`:d}).join("; ");if(r.response.data.message){const{message:o}=r.response.data;return Array.isArray(o)?(i=o[0])!=null&&i.constraints?Object.values(o[0].constraints)[0]:o[0]:o}if(typeof r.response.data=="string")return r.response.data;if(typeof r.response.data=="object")return Object.keys(r.response.data).map(o=>`${o} ${r.response.data[o]}`).join(", ")}return r.message||e("errors.unexpected")}}}function El(e){const r=window.location.origin,a=r.endsWith("/")?r:`${r}/`;try{const l=e.join("/"),n=`${a}${l}`,i=e.some(o=>o.trim()==="");if(/^(https:\/\/(www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(:[0-9]+)?(\/[^\/]+)*)$|^(https|http):\/\/localhost(:[0-9]+)?(\/[^\/]+)*$/.test(n)&&!i&&new URL(n))return`${a}${l}`;throw new Error("Invalid url")}catch(l){return console.warn("Failed to build valid URL:",l),""}}function _t(e,r){const a=t.ref(t.unref(e)),l=t.ref(t.unref(r)),n=t.computed(()=>!!(a.value.app==="konnect"||a.value.isExactMatch)),i=t.computed(()=>l.value.startsWith("/")?new URL(`${window.location.origin}${l.value}`):new URL(l.value));return o=>{const{page:d,pageSize:c,offset:h,sortColumnKey:p,sortColumnOrder:u,query:f}=o;try{let s=new URL(i.value.href);return n.value&&f?(s.search="",s=a.value.isExactMatch?new URL(`${s.href}/${f}/`):new URL(`${s.href}?filter[name][contains]=${f}`)):(n.value||new URLSearchParams(f).forEach((V,C)=>{s.searchParams.append(C,V)}),p&&s.searchParams.append("sort_by",p),u==="desc"&&s.searchParams.append("sort_desc","1"),s.searchParams.append("size",String(c))),h&&d!==1&&s.searchParams.append("offset",String(h)),s.href}catch(s){return console.error("RouteList(fetcher)",s),l.value}}}function Hl(e,r,a="data"){const l=t.unref(r),{axiosInstance:n}=Ge({headers:e.requestHeaders}),i=_t(e,l),o=t.ref({status:pe.Idle});return{fetcher:async d=>{try{o.value={status:pe.Loading};let c=i(d);c.includes("filter[name]")&&(c=`${c}&page[size]=${d.pageSize}&page[number]=${d.page}`);const{data:h}=await n.get(c),p=a&&a.replace(/[^\w-_]/gi,"");let u;h[p]&&Array.isArray(h[p])?u=h[p]:Array.isArray(h)?u=h:u=Object.keys(h).length?[h]:[];const f={data:u,total:u.length,...h.offset?{pagination:{offset:h.offset}}:null};return o.value={status:pe.Idle,response:f},f}catch(c){const h={data:[],total:0};return d.query&&c.response.status===404?(o.value={status:pe.NoResults,response:h,error:c},h):(o.value={status:pe.Error,response:h,error:c},h)}},fetcherState:o}}function vl(){const e=(a,l="_")=>a?a.split(l).map(n=>n.toLowerCase()==="id"?n.toUpperCase():n.charAt(0).toUpperCase()+n.substring(1)).join(" "):"",r=/(?:^|[\s-:'"])\w/g;return{capitalize:a=>a?a.replace(r,l=>l.toUpperCase()):"",convertKeyToTitle:e}}const xt=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,Nt=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const r=e.match(xt);if(!r)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return r.shift(),r},Vt=e=>e==="*"||e==="x"||e==="X",It=e=>{const r=parseInt(e,10);return isNaN(r)?e:r},Fl=(e,r)=>typeof e!=typeof r?[String(e),String(r)]:[e,r],ql=(e,r)=>{if(Vt(e)||Vt(r))return 0;const[a,l]=Fl(It(e),It(r));return a>l?1:a<l?-1:0},Bt=(e,r)=>{for(let a=0;a<Math.max(e.length,r.length);a++){const l=ql(e[a]||"0",r[a]||"0");if(l!==0)return l}return 0},Ol=(e,r)=>{const a=Nt(e),l=Nt(r),n=a.pop(),i=l.pop(),o=Bt(a,l);return o!==0?o:n&&i?Bt(n.split("."),i.split(".")):n||i?n?-1:1:0},Tt=(e,r,a)=>{Ul(a);const l=Ol(e,r);return At[a].includes(l)},At={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},Et=Object.keys(At),Ul=e=>{if(typeof e!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof e}`);if(Et.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${Et.join("|")}`)},$l=e=>typeof e=="string"&&/^[v\d]/.test(e)&&xt.test(e);function Dl(e){const{gatewayInfo:r,supportedRange:a}=e;if(!r)return!0;const{edition:l,version:n}=r;if(!$l(n))return console.error("Invalid version"),!1;const i=a[l];if(!i)return!1;const[o,d]=i;return!(o&&Tt(n,o,"<")||d&&Tt(n,d,">"))}function Ml(e){const r=t.ref(0),a=t.ref(0),l=t.ref(!1);return t.watch(e,n=>{n&&!l.value&&(r.value=n.offsetWidth,a.value=n.scrollWidth,l.value=!0)}),{isTruncated:t.computed(()=>r.value<a.value)}}const Z={useAxios:Ge,useDebouncedFilter:Bl,useDeleteUrlBuilder:Tl,useErrors:Al,useExternalLinkCreator:El,useFetcher:Hl,useFetchUrlBuilder:_t,useHelpers:St,useStringHelpers:vl,useI18n:Xe,useGatewayFeatureSupported:Dl,useTruncationDetector:Ml},jl={key:0,class:"config-card-fieldset-title"},Kl=t.defineComponent({__name:"JsonCardItem",props:{item:{type:Object,required:!0},index:{type:Number,default:-1},isArrayItem:{type:Boolean,default:!1}},setup(e){const r=e,{i18n:{t:a}}=Z.useI18n(),{convertKeyToTitle:l}=Z.useStringHelpers(),n=t.computed(()=>r.item.key??"json-array-item"),i=t.computed(()=>r.item.value??r.item),o=t.computed(()=>{const c=JSON.parse(JSON.stringify(i.value));return r.isArrayItem&&delete c.name,c}),d=t.computed(()=>{var c;return r.isArrayItem?(c=i.value)!=null&&c.name?l(i.value.name,"_"):a("baseConfigCard.general.entryTitle",{index:r.index}):""});return(c,h)=>(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",jl,[t.createElementVNode("b",null,t.toDisplayString(d.value),1)])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Object.keys(o.value),(p,u)=>(t.openBlock(),t.createBlock(vt,{key:`${n.value}-property-${u}`,item:{key:p,label:t.unref(l)(p),value:o.value[p]}},null,8,["item"]))),128))]),_:1},8,["class"]))}}),ne=(e,r)=>{const a=e.__vccOpts||e;for(const[l,n]of r)a[l]=n;return a},Ht=ne(Kl,[["__scopeId","data-v-68ca83ec"]]),Pl=t.defineComponent({__name:"InternalLinkItem",props:{item:{type:Object,required:!0}},emits:["navigation-click"],setup(e){const{i18n:{t:r}}=Z.useI18n();return(a,l)=>{const n=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(n,{appearance:"tertiary",class:"navigation-button",onClick:l[0]||(l[0]=i=>a.$emit("navigation-click",e.item))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.item.value||t.unref(r)("baseConfigCard.commonFields.link")),1)]),_:1})])}}}),Ll=ne(Pl,[["__scopeId","data-v-c96811e5"]]),Rl=t.defineComponent({__name:"StatusBadge",props:{status:{type:Boolean,default:!1}},setup(e){const{i18n:{t:r}}=Z.useI18n();return(a,l)=>{const n=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(n,{appearance:e.status?"success":"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.status?t.unref(r)("baseConfigCard.statusBadge.enabledLabel"):t.unref(r)("baseConfigCard.statusBadge.disabledLabel")),1)]),_:1},8,["appearance"])}}}),zl="#0044f4",Jl="#e0e4ea",Wl="#3a3f51",Ql="#afb7c5",Yl="1px",Zl="20px",Gl={class:"config-card-details-row"},Xl=["data-testid"],en=["data-testid"],tn=["data-testid"],an=["data-testid"],rn={key:1},ln=["data-testid"],nn=["data-testid"],on=["data-testid"],sn=["data-testid"],cn={name:"ConfigCardItem",components:{JsonCardItem:Ht,StatusBadge:Rl,InternalLinkItem:Ll}},dn=t.defineComponent({...cn,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:r}){t.useCssVars(V=>({"07753575":p.value?"none":`solid ${t.unref(Yl)} ${t.unref(Jl)}`,"32d44ea8":h.value&&d.value?"block":"flex","5036b738":h.value&&d.value?"100%":a.slim?"50%":"25%","5038fd13":h.value&&d.value?"100%":a.slim?"50%":"75%"}));const a=e,l=r,n=t.useSlots(),{i18n:{t:i,formatUnixTimeStamp:o}}=Z.useI18n(),d=t.computed(()=>a.item.value!==void 0&&a.item.value!==null&&a.item.value!==""),c=t.computed(()=>!!(a.item.tooltip||n["label-tooltip"])),h=t.computed(()=>a.item.type===P.Json||a.item.type===P.JsonArray),p=t.computed(()=>a.item.type===P.JsonArray),u=t.computed(()=>{switch(a.item.type){case P.ID:return{tag:"KCopy",attrs:{"data-testid":`${a.item.key}-copy-uuid`,"copy-tooltip":i("baseConfigCard.copy.tooltip",{label:a.item.label}),text:a.item.value}};case P.IdArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{"copy-tooltip":i("baseConfigCard.copy.tooltip",{label:a.item.label})}};case P.Redacted:return{tag:"KCopy",attrs:{"data-testid":`${a.item.key}-copy-uuid-redacted`,format:"redacted","copy-tooltip":i("baseConfigCard.copy.tooltip",{label:a.item.label}),text:a.item.value}};case P.RedactedArray:return{tag:"div",additionalComponent:"KCopy",childAttrs:{format:"redacted","copy-tooltip":i("baseConfigCard.copy.tooltip",{label:a.item.label})}};case P.Date:return{tag:"div",attrs:{"data-testid":`${a.item.key}-date`},text:o(a.item.value)};case P.BadgeStatus:return{tag:"StatusBadge",attrs:{"data-testid":`${a.item.key}-badge-status`,status:a.item.value}};case P.BadgeTag:return{tag:"div",additionalComponent:"KBadge"};case P.BadgeMethod:return{tag:"div",additionalComponent:"KMethodBadge"};case P.LinkInternal:return{tag:"InternalLinkItem",attrs:{"data-testid":`${a.item.key}-internal-link`,item:a.item,onNavigationClick:V=>{l("navigation-click",V)}}};case P.LinkExternal:return{tag:"KExternalLink",attrs:{"data-testid":`${a.item.key}-external-link`,href:a.item.value},text:a.item.value};case P.Json:return{tag:"JsonCardItem",attrs:{"data-testid":`${a.item.key}-json-content`,item:a.item}};case P.JsonArray:return{tag:"div",additionalComponent:"JsonCardItem",attrs:{"data-testid":`${a.item.key}-json-array-content`,item:a.item}};default:return{tag:"div",attrs:{"data-testid":`${a.item.key}-plain-text`},text:a.item.value}}}),f=t.ref(),{isTruncated:s}=Z.useTruncationDetector(f);return(V,C)=>{const g=t.resolveComponent("KLabel"),B=t.resolveComponent("KBadge"),A=t.resolveComponent("KCopy"),F=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",Gl,[t.createElementVNode("div",{class:"config-card-details-label","data-testid":`${e.item.key}-label`},[t.renderSlot(V.$slots,"label",{item:e.item},()=>[t.createVNode(g,{"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(V.$slots,"label-tooltip",{},()=>[t.createTextVNode(t.toDisplayString(e.item.tooltip),1)],!0)],8,en)]),key:"0"}:void 0]),1024)],!0)],8,Xl),t.createElementVNode("div",{class:"config-card-details-value","data-testid":`${e.item.key}-property-value`},[t.renderSlot(V.$slots,e.item.key,{rowValue:e.item.value},()=>[d.value?(t.openBlock(),t.createElementBlock("div",rn,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(u.value.tag),t.normalizeProps(t.guardReactiveProps(u.value.attrs)),{default:t.withCtx(()=>[u.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,(_,w)=>(t.openBlock(),t.createBlock(B,{key:`${e.item.key}-badge-tag-${w}`,class:"config-badge","data-testid":`${e.item.key}-badge-tag-${w}`,tooltip:_,"truncation-tooltip":""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(_),1)]),_:2},1032,["data-testid","tooltip"]))),128))],8,ln)):t.createCommentVNode("",!0),u.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,(_,w)=>(t.openBlock(),t.createBlock(A,t.mergeProps(u.value.childAttrs,{key:`${e.item.key}-copy-uuid-${w}`,"data-testid":`${e.item.key}-copy-uuid-${w}`,text:_}),null,16,["data-testid","text"]))),128))],8,nn)):u.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,(_,w)=>(t.openBlock(),t.createBlock(B,{key:`${e.item.key}-badge-method-${w}`,appearance:Object.values(t.unref(ul.BadgeMethodAppearances)).includes(_.toLowerCase())?_.toLowerCase():"custom",class:"config-badge","data-testid":`${e.item.key}-badge-method-${w}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(_),1)]),_:2},1032,["appearance","data-testid"]))),128))],8,on)):t.createCommentVNode("",!0),u.value.additionalComponent==="JsonCardItem"?(t.openBlock(),t.createElementBlock("div",{key:3,"data-testid":`${a.item.key}-json-array-content`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.item.value,(_,w)=>(t.openBlock(),t.createBlock(Ht,{key:`json-array-item-${w}`,index:w,"is-array-item":"",item:_},null,8,["index","item"]))),128))],8,sn)):(t.openBlock(),t.createBlock(F,{key:4,text:t.unref(s)?e.item.value:""},{default:t.withCtx(()=>[t.createElementVNode("span",{ref_key:"textContent",ref:f,class:t.normalizeClass(["attrs-data-text",{truncated:e.truncated}])},t.toDisplayString(u.value.text),3)]),_:1},8,["text"]))]),_:1},16))])):(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${e.item.key}-no-value`}," – ",8,an))],!0)],8,tn)])}}}),vt=ne(dn,[["__scopeId","data-v-d056663c"]]),hn={class:"json-config"},pn={key:0,class:"json-endpoint"},Ft=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(n=>({"2d178975":`${l.value}ch`}));const r=e,a=t.computed(()=>r.jsonRecord),l=t.computed(()=>{var n;if(!r.fetcherUrl)return 0;const i=(n=r.fetcherUrl)==null?void 0:n.split("/");return i.length<2?0:41+(r.requestMethod==="post"?i[i.length-1]:i[i.length-2]).length});return(n,i)=>{var o;const d=t.resolveComponent("KBadge"),c=t.resolveComponent("KCodeBlock");return t.openBlock(),t.createElementBlock("div",hn,[r.fetcherUrl&&(o=r.config)!=null&&o.jsonYamlFormsEnabled?(t.openBlock(),t.createElementBlock("div",pn,[t.createVNode(d,{appearance:r.requestMethod},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(r.requestMethod),1)]),_:1},8,["appearance"]),t.createVNode(c,{id:"json-endpoint-codeblock",code:r.fetcherUrl,"is-single-line":"",language:"json",theme:"dark"},null,8,["code"])])):t.createCommentVNode("",!0),r.jsonRecord?(t.openBlock(),t.createBlock(c,{key:1,id:"json-codeblock",class:t.normalizeClass({"json-content":r.fetcherUrl}),code:JSON.stringify(a.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 qt(e){return typeof e>"u"||e===null}function un(e){return typeof e=="object"&&e!==null}function fn(e){return Array.isArray(e)?e:qt(e)?[]:[e]}function mn(e,r){var a,l,n,i;if(r)for(i=Object.keys(r),a=0,l=i.length;a<l;a+=1)n=i[a],e[n]=r[n];return e}function gn(e,r){var a="",l;for(l=0;l<r;l+=1)a+=e;return a}function yn(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var kn=qt,bn=un,Cn=fn,wn=gn,Sn=yn,_n=mn,Q={isNothing:kn,isObject:bn,toArray:Cn,repeat:wn,isNegativeZero:Sn,extend:_n};function Ot(e,r){var a="",l=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(a+='in "'+e.mark.name+'" '),a+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!r&&e.mark.snippet&&(a+=`
|
|
2
2
|
|
|
3
3
|
`+e.mark.snippet),l+" "+a):l}function Te(e,r){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=r,this.message=Ot(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Te.prototype=Object.create(Error.prototype),Te.prototype.constructor=Te,Te.prototype.toString=function(e){return this.name+": "+Ot(this,e)};var re=Te;function et(e,r,a,l,n){var i="",o="",d=Math.floor(n/2)-1;return l-r>d&&(i=" ... ",r=l-d+i.length),a-l>d&&(o=" ...",a=l+d-o.length),{str:i+e.slice(r,a).replace(/\t/g,"→")+o,pos:l-r+i.length}}function tt(e,r){return Q.repeat(" ",r-e.length)+e}function xn(e,r){if(r=Object.create(r||null),!e.buffer)return null;r.maxLength||(r.maxLength=79),typeof r.indent!="number"&&(r.indent=1),typeof r.linesBefore!="number"&&(r.linesBefore=3),typeof r.linesAfter!="number"&&(r.linesAfter=2);for(var a=/\r?\n|\r|\0/g,l=[0],n=[],i,o=-1;i=a.exec(e.buffer);)n.push(i.index),l.push(i.index+i[0].length),e.position<=i.index&&o<0&&(o=l.length-2);o<0&&(o=l.length-1);var d="",c,h,p=Math.min(e.line+r.linesAfter,n.length).toString().length,u=r.maxLength-(r.indent+p+3);for(c=1;c<=r.linesBefore&&!(o-c<0);c++)h=et(e.buffer,l[o-c],n[o-c],e.position-(l[o]-l[o-c]),u),d=Q.repeat(" ",r.indent)+tt((e.line-c+1).toString(),p)+" | "+h.str+`
|
|
4
4
|
`+d;for(h=et(e.buffer,l[o],n[o],e.position,u),d+=Q.repeat(" ",r.indent)+tt((e.line+1).toString(),p)+" | "+h.str+`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kong-ui-public/entities-upstreams-targets",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/entities-upstreams-targets.umd.js",
|
|
6
6
|
"module": "./dist/entities-upstreams-targets.es.js",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"errorLimit": "900KB"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@kong-ui-public/entities-shared": "^2.10.
|
|
53
|
+
"@kong-ui-public/entities-shared": "^2.10.5"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"dev": "cross-env USE_SANDBOX=true vite",
|