@kong-ui-public/forms 4.36.13-pr.4023.e9aee6bf5.0 → 4.36.13
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.
package/dist/forms.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(D,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("@kong-ui-public/i18n"),require("@kong/icons"),require("axios"),require("@kong/kongponents"),require("@kong-ui-public/misc-widgets"),require("@kong-ui-public/misc-widgets/dist/style.css"),require("@kong-ui-public/entities-shared")):typeof define=="function"&&define.amd?define(["exports","vue","@kong-ui-public/i18n","@kong/icons","axios","@kong/kongponents","@kong-ui-public/misc-widgets","@kong-ui-public/misc-widgets/dist/style.css","@kong-ui-public/entities-shared"],t):(D=typeof globalThis<"u"?globalThis:D||self,t(D["kong-ui-public-forms"]={},D.Vue,D["kong-ui-public-i18n"],D.KongIcons,D.axios,D.Kongponents,D["kong-ui-public-misc-widgets"],null,D["kong-ui-public-entities-shared"]))})(this,(function(D,t,Ee,me,dr,cr,Eo,Sg,pt){"use strict";function Co(e,n){for(var o=-1,r=e==null?0:e.length;++o<r&&n(e[o],o,e)!==!1;);return e}function mr(e){return function(n,o,r){for(var a=-1,i=Object(n),d=r(n),s=d.length;s--;){var u=d[++a];if(o(i[u],u,i)===!1)break}return n}}var ur=mr();function fr(e,n){for(var o=-1,r=Array(e);++o<e;)r[o]=n(o);return r}var So=typeof global=="object"&&global&&global.Object===Object&&global,pr=typeof self=="object"&&self&&self.Object===Object&&self,Te=So||pr||Function("return this")(),He=Te.Symbol,ko=Object.prototype,hr=ko.hasOwnProperty,gr=ko.toString,Ot=He?He.toStringTag:void 0;function yr(e){var n=hr.call(e,Ot),o=e[Ot];try{e[Ot]=void 0;var r=!0}catch{}var a=gr.call(e);return r&&(n?e[Ot]=o:delete e[Ot]),a}var br=Object.prototype,_r=br.toString;function Er(e){return _r.call(e)}var Cr="[object Null]",Sr="[object Undefined]",wo=He?He.toStringTag:void 0;function Ye(e){return e==null?e===void 0?Sr:Cr:wo&&wo in Object(e)?yr(e):Er(e)}function Ge(e){return e!=null&&typeof e=="object"}var kr="[object Arguments]";function To(e){return Ge(e)&&Ye(e)==kr}var Mo=Object.prototype,wr=Mo.hasOwnProperty,Tr=Mo.propertyIsEnumerable,Mr=To((function(){return arguments})())?To:function(e){return Ge(e)&&wr.call(e,"callee")&&!Tr.call(e,"callee")},We=Array.isArray;function Ar(){return!1}var Ao=typeof D=="object"&&D&&!D.nodeType&&D,No=Ao&&typeof module=="object"&&module&&!module.nodeType&&module,Nr=No&&No.exports===Ao,Io=Nr?Te.Buffer:void 0,Ir=Io?Io.isBuffer:void 0,Vo=Ir||Ar,Vr=9007199254740991,Or=/^(?:0|[1-9]\d*)$/;function Oo(e,n){var o=typeof e;return n=n??Vr,!!n&&(o=="number"||o!="symbol"&&Or.test(e))&&e>-1&&e%1==0&&e<n}var Br=9007199254740991;function Bo(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Br}var Fr="[object Arguments]",Rr="[object Array]",Dr="[object Boolean]",Ur="[object Date]",Lr="[object Error]",Pr="[object Function]",vr="[object Map]",xr="[object Number]",Kr="[object Object]",jr="[object RegExp]",zr="[object Set]",$r="[object String]",qr="[object WeakMap]",Hr="[object ArrayBuffer]",Yr="[object DataView]",Gr="[object Float32Array]",Wr="[object Float64Array]",Zr="[object Int8Array]",Xr="[object Int16Array]",Jr="[object Int32Array]",Qr="[object Uint8Array]",el="[object Uint8ClampedArray]",tl="[object Uint16Array]",nl="[object Uint32Array]",H={};H[Gr]=H[Wr]=H[Zr]=H[Xr]=H[Jr]=H[Qr]=H[el]=H[tl]=H[nl]=!0,H[Fr]=H[Rr]=H[Hr]=H[Dr]=H[Yr]=H[Ur]=H[Lr]=H[Pr]=H[vr]=H[xr]=H[Kr]=H[jr]=H[zr]=H[$r]=H[qr]=!1;function ol(e){return Ge(e)&&Bo(e.length)&&!!H[Ye(e)]}function En(e){return function(n){return e(n)}}var Fo=typeof D=="object"&&D&&!D.nodeType&&D,Bt=Fo&&typeof module=="object"&&module&&!module.nodeType&&module,il=Bt&&Bt.exports===Fo,Cn=il&&So.process,ht=(function(){try{var e=Bt&&Bt.require&&Bt.require("util").types;return e||Cn&&Cn.binding&&Cn.binding("util")}catch{}})(),Ro=ht&&ht.isTypedArray,al=Ro?En(Ro):ol,rl=Object.prototype,ll=rl.hasOwnProperty;function Do(e,n){var o=We(e),r=!o&&Mr(e),a=!o&&!r&&Vo(e),i=!o&&!r&&!a&&al(e),d=o||r||a||i,s=d?fr(e.length,String):[],u=s.length;for(var f in e)(n||ll.call(e,f))&&!(d&&(f=="length"||a&&(f=="offset"||f=="parent")||i&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||Oo(f,u)))&&s.push(f);return s}var sl=Object.prototype;function Sn(e){var n=e&&e.constructor,o=typeof n=="function"&&n.prototype||sl;return e===o}function Uo(e,n){return function(o){return e(n(o))}}var dl=Uo(Object.keys,Object),cl=Object.prototype,ml=cl.hasOwnProperty;function ul(e){if(!Sn(e))return dl(e);var n=[];for(var o in Object(e))ml.call(e,o)&&o!="constructor"&&n.push(o);return n}function Ce(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}var fl="[object AsyncFunction]",pl="[object Function]",hl="[object GeneratorFunction]",gl="[object Proxy]";function z(e){if(!Ce(e))return!1;var n=Ye(e);return n==pl||n==hl||n==fl||n==gl}function Wt(e){return e!=null&&Bo(e.length)&&!z(e)}function Zt(e){return Wt(e)?Do(e):ul(e)}function yl(e,n){return e&&ur(e,n,Zt)}function bl(e,n){return function(o,r){if(o==null)return o;if(!Wt(o))return e(o,r);for(var a=o.length,i=-1,d=Object(o);++i<a&&r(d[i],i,d)!==!1;);return o}}var _l=bl(yl);function kn(e){return e}function El(e){return typeof e=="function"?e:kn}function fe(e,n){var o=We(e)?Co:_l;return o(e,El(n))}var Cl="[object Symbol]";function Xt(e){return typeof e=="symbol"||Ge(e)&&Ye(e)==Cl}var Sl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kl=/^\w*$/;function wl(e,n){if(We(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Xt(e)?!0:kl.test(e)||!Sl.test(e)||n!=null&&e in Object(n)}var wn=Te["__core-js_shared__"],Lo=(function(){var e=/[^.]+$/.exec(wn&&wn.keys&&wn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Tl(e){return!!Lo&&Lo in e}var Ml=Function.prototype,Al=Ml.toString;function nt(e){if(e!=null){try{return Al.call(e)}catch{}try{return e+""}catch{}}return""}var Nl=/[\\^$.*+?()[\]{}|]/g,Il=/^\[object .+?Constructor\]$/,Vl=Function.prototype,Ol=Object.prototype,Bl=Vl.toString,Fl=Ol.hasOwnProperty,Rl=RegExp("^"+Bl.call(Fl).replace(Nl,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Dl(e){if(!Ce(e)||Tl(e))return!1;var n=z(e)?Rl:Il;return n.test(nt(e))}function Ul(e,n){return e?.[n]}function ot(e,n){var o=Ul(e,n);return Dl(o)?o:void 0}var Ft=ot(Object,"create");function Ll(){this.__data__=Ft?Ft(null):{},this.size=0}function Pl(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}var vl="__lodash_hash_undefined__",xl=Object.prototype,Kl=xl.hasOwnProperty;function jl(e){var n=this.__data__;if(Ft){var o=n[e];return o===vl?void 0:o}return Kl.call(n,e)?n[e]:void 0}var zl=Object.prototype,$l=zl.hasOwnProperty;function ql(e){var n=this.__data__;return Ft?n[e]!==void 0:$l.call(n,e)}var Hl="__lodash_hash_undefined__";function Yl(e,n){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=Ft&&n===void 0?Hl:n,this}function it(e){var n=-1,o=e==null?0:e.length;for(this.clear();++n<o;){var r=e[n];this.set(r[0],r[1])}}it.prototype.clear=Ll,it.prototype.delete=Pl,it.prototype.get=jl,it.prototype.has=ql,it.prototype.set=Yl;function Gl(){this.__data__=[],this.size=0}function Jt(e,n){return e===n||e!==e&&n!==n}function Qt(e,n){for(var o=e.length;o--;)if(Jt(e[o][0],n))return o;return-1}var Wl=Array.prototype,Zl=Wl.splice;function Xl(e){var n=this.__data__,o=Qt(n,e);if(o<0)return!1;var r=n.length-1;return o==r?n.pop():Zl.call(n,o,1),--this.size,!0}function Jl(e){var n=this.__data__,o=Qt(n,e);return o<0?void 0:n[o][1]}function Ql(e){return Qt(this.__data__,e)>-1}function es(e,n){var o=this.__data__,r=Qt(o,e);return r<0?(++this.size,o.push([e,n])):o[r][1]=n,this}function Pe(e){var n=-1,o=e==null?0:e.length;for(this.clear();++n<o;){var r=e[n];this.set(r[0],r[1])}}Pe.prototype.clear=Gl,Pe.prototype.delete=Xl,Pe.prototype.get=Jl,Pe.prototype.has=Ql,Pe.prototype.set=es;var Rt=ot(Te,"Map");function ts(){this.size=0,this.__data__={hash:new it,map:new(Rt||Pe),string:new it}}function ns(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function en(e,n){var o=e.__data__;return ns(n)?o[typeof n=="string"?"string":"hash"]:o.map}function os(e){var n=en(this,e).delete(e);return this.size-=n?1:0,n}function is(e){return en(this,e).get(e)}function as(e){return en(this,e).has(e)}function rs(e,n){var o=en(this,e),r=o.size;return o.set(e,n),this.size+=o.size==r?0:1,this}function ve(e){var n=-1,o=e==null?0:e.length;for(this.clear();++n<o;){var r=e[n];this.set(r[0],r[1])}}ve.prototype.clear=ts,ve.prototype.delete=os,ve.prototype.get=is,ve.prototype.has=as,ve.prototype.set=rs;var ls="Expected a function";function Tn(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new TypeError(ls);var o=function(){var r=arguments,a=n?n.apply(this,r):r[0],i=o.cache;if(i.has(a))return i.get(a);var d=e.apply(this,r);return o.cache=i.set(a,d)||i,d};return o.cache=new(Tn.Cache||ve),o}Tn.Cache=ve;var ss=500;function ds(e){var n=Tn(e,function(r){return o.size===ss&&o.clear(),r}),o=n.cache;return n}var cs=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ms=/\\(\\)?/g,us=ds(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(cs,function(o,r,a,i){n.push(a?i.replace(ms,"$1"):r||o)}),n});function fs(e,n){for(var o=-1,r=e==null?0:e.length,a=Array(r);++o<r;)a[o]=n(e[o],o,e);return a}var Po=He?He.prototype:void 0,vo=Po?Po.toString:void 0;function xo(e){if(typeof e=="string")return e;if(We(e))return fs(e,xo)+"";if(Xt(e))return vo?vo.call(e):"";var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function Ko(e){return e==null?"":xo(e)}function ps(e,n){return We(e)?e:wl(e,n)?[e]:us(Ko(e))}function hs(e){if(typeof e=="string"||Xt(e))return e;var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function gs(e,n){n=ps(n,e);for(var o=0,r=n.length;e!=null&&o<r;)e=e[hs(n[o++])];return o&&o==r?e:void 0}function j(e,n,o){var r=e==null?void 0:gs(e,n);return r===void 0?o:r}function te(e){return e==null}const Se="kong-ui-forms-api",tn="kong-ui-forms-config",jo="redis-partial-list-fetcher-key",ys="redis-partial-info",zo="redis-create-slideout",at="autofill",he="autofillSlot",Ve={CREATE_NOT_FROM_ENTITY:"CREATE_NOT_FROM_ENTITY",CREATE_FROM_ENTITY:"CREATE_FROM_ENTITY",UPDATE_ENTITY:"UPDATE_ENTITY",SET_REFERRAL_VALUE:"SET_REFERRAL_VALUE"},$o="—";function qo(e,n){(n==null||n>e.length)&&(n=e.length);for(var o=0,r=Array(n);o<n;o++)r[o]=e[o];return r}function bs(e){if(Array.isArray(e))return e}function _s(e,n){var o=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(o!=null){var r,a,i,d,s=[],u=!0,f=!1;try{if(i=(o=o.call(e)).next,n!==0)for(;!(u=(r=i.call(o)).done)&&(s.push(r.value),s.length!==n);u=!0);}catch(p){f=!0,a=p}finally{try{if(!u&&o.return!=null&&(d=o.return(),Object(d)!==d))return}finally{if(f)throw a}}return s}}function Es(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Cs(e,n){return bs(e)||_s(e,n)||Ss(e,n)||Es()}function Ss(e,n){if(e){if(typeof e=="string")return qo(e,n);var o={}.toString.call(e).slice(8,-1);return o==="Object"&&e.constructor&&(o=e.constructor.name),o==="Map"||o==="Set"?Array.from(e):o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?qo(e,n):void 0}}const Ho=Object.entries,Yo=Object.setPrototypeOf,ks=Object.isFrozen,Go=Object.getPrototypeOf,Wo=Object.getOwnPropertyDescriptor;let re=Object.freeze,le=Object.seal,gt=Object.create,Zo=typeof Reflect<"u"&&Reflect,Mn=Zo.apply,An=Zo.construct;re||(re=function(n){return n}),le||(le=function(n){return n}),Mn||(Mn=function(n,o){for(var r=arguments.length,a=new Array(r>2?r-2:0),i=2;i<r;i++)a[i-2]=arguments[i];return n.apply(o,a)}),An||(An=function(n){for(var o=arguments.length,r=new Array(o>1?o-1:0),a=1;a<o;a++)r[a-1]=arguments[a];return new n(...r)});const xe=W(Array.prototype.forEach),ws=W(Array.prototype.lastIndexOf),Xo=W(Array.prototype.pop),Dt=W(Array.prototype.push),Ts=W(Array.prototype.slice),Ms=W(Array.prototype.splice),yt=Array.isArray,Nn=ni(Set),In=W(Set.prototype.add),Ut=W(Set.prototype.has),rt=W(String.prototype.toLowerCase),Vn=W(String.prototype.toString),Jo=W(String.prototype.match),Lt=W(String.prototype.replace),Qo=W(String.prototype.indexOf),As=W(String.prototype.trim),Ns=W(Number.prototype.toString),Is=W(Boolean.prototype.toString),ei=typeof BigInt>"u"?null:W(BigInt.prototype.toString),ti=typeof Symbol>"u"?null:W(Symbol.prototype.toString),ge=W(Object.prototype.hasOwnProperty),Pt=W(Object.prototype.toString),se=W(RegExp.prototype.test),Ke=ni(TypeError);function W(e){return function(n){n instanceof RegExp&&(n.lastIndex=0);for(var o=arguments.length,r=new Array(o>1?o-1:0),a=1;a<o;a++)r[a-1]=arguments[a];return Mn(e,n,r)}}function ni(e){return function(){for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];return An(e,o)}}function K(e,n){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:rt;if(Yo&&Yo(e,null),!yt(n))return e;let r=n.length;for(;r--;){let a=n[r];if(typeof a=="string"){const i=o(a);i!==a&&(ks(n)||(n[r]=i),a=i)}e[a]=!0}return e}function Vs(e){for(let n=0;n<e.length;n++)ge(e,n)||(e[n]=null);return e}function ke(e){const n=gt(null);for(const r of Ho(e)){var o=Cs(r,2);const a=o[0],i=o[1];ge(e,a)&&(yt(i)?n[a]=Vs(i):i&&typeof i=="object"&&i.constructor===Object?n[a]=ke(i):n[a]=i)}return n}function Os(e){switch(typeof e){case"string":return e;case"number":return Ns(e);case"boolean":return Is(e);case"bigint":return ei?ei(e):"0";case"symbol":return ti?ti(e):"Symbol()";case"undefined":return Pt(e);case"function":case"object":{if(e===null)return Pt(e);const n=e,o=Me(n,"toString");if(typeof o=="function"){const r=o(n);return typeof r=="string"?r:Pt(r)}return Pt(e)}default:return Pt(e)}}function Me(e,n){for(;e!==null;){const r=Wo(e,n);if(r){if(r.get)return W(r.get);if(typeof r.value=="function")return W(r.value)}e=Go(e)}function o(){return null}return o}function Bs(e,n){for(;e!==null;){const o=Wo(e,n);if(o)return o.get?W(o.get):null;e=Go(e)}return null}function Fs(e){try{return se(e,""),!0}catch{return!1}}const oi=re(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),On=re(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Bn=re(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Rs=re(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Fn=re(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Ds=re(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),ii=re(["#text"]),ai=re(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),Rn=re(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),ri=re(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),nn=re(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Us=le(/{{[\w\W]*|^[\w\W]*}}/g),Ls=le(/<%[\w\W]*|^[\w\W]*%>/g),Ps=le(/\${[\w\W]*/g),vs=le(/^data-[\-\w.\u00B7-\uFFFF]+$/),xs=le(/^aria-[\-\w]+$/),li=le(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ks=le(/^(?:\w+script|data):/i),js=le(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),zs=le(/^html$/i),$s=le(/^[a-z][.\w]*(-[.\w]+)+$/i),Dn=le(/<[/\w!]/g),si=le(/<[/\w]/g),qs=le(/<\/no(script|embed|frames)/i),di=le(/\/>/i),ie={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Hs=re(K({},["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"])),Ys=function(){return typeof window>"u"?null:window},Gs=function(n,o){if(typeof n!="object"||typeof n.createPolicy!="function")return null;let r=null;const a="data-tt-policy-suffix";o&&o.hasAttribute(a)&&(r=o.getAttribute(a));const i="dompurify"+(r?"#"+r:"");try{return n.createPolicy(i,{createHTML(d){return d},createScriptURL(d){return d}})}catch{return console.warn("TrustedTypes policy "+i+" could not be created."),null}},ci=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ze=function(n,o,r,a){return ge(n,o)&&yt(n[o])?K(a.base?ke(a.base):{},n[o],a.transform):r},Un=function(n,o,r){const a=ge(n,o)?n[o]:void 0;return a&&typeof a=="object"?ke(a):r()};function mi(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ys();const n=S=>mi(S);if(n.version="3.4.17",n.removed=[],!e||!e.document||e.document.nodeType!==ie.document||!e.Element)return n.isSupported=!1,n;let o=e.document;const r=o,a=r.currentScript;e.DocumentFragment;const i=e.HTMLTemplateElement,d=e.Node,s=e.Element,u=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;const f=e.DOMParser,p=e.trustedTypes,m=s.prototype,g=Me(m,"cloneNode"),k=Me(m,"remove"),w=Me(m,"removeAttributeNode"),C=Me(m,"nextSibling"),O=Me(m,"childNodes"),N=Me(m,"parentNode"),U=Me(m,"shadowRoot"),B=Me(m,"attributes"),T=d&&d.prototype?Me(d.prototype,"nodeType"):null,b=d&&d.prototype?Me(d.prototype,"nodeName"):null,h=d&&d.prototype?Me(d.prototype,"ownerDocument"):null,A=function(l){return T?T(l):l.nodeType},$=function(l){return b?b(l):l.nodeName},V=Bs(m,"namespaceURI"),y=function(l){return V?V(l):l.namespaceURI};if(typeof i=="function"){const S=o.createElement("template");S.content&&S.content.ownerDocument&&(o=S.content.ownerDocument)}let M,L="",ce,ee=!1,Ie=0;const kt=function(){if(Ie>0)throw Ke('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},Fe=function(l){kt(),Ie++;try{return M.createHTML(l)}finally{Ie--}},$t=function(l){kt(),Ie++;try{return M.createScriptURL(l)}finally{Ie--}},Y=function(){return ee||(ce=Gs(p,a),ee=!0),ce},I=o,v=I.implementation,ue=I.createNodeIterator,$e=I.createDocumentFragment,Re=I.getElementsByTagName,Gh=r.importNode;let G=ci();n.isSupported=typeof Ho=="function"&&typeof N=="function"&&v&&v.createHTMLDocument!==void 0;const Wh=Us,Zh=Ls,Xh=Ps,Jh=vs,Qh=xs,eg=Ks,Ra=js,tg=$s;let Da=li,Z=null;const Xn=K({},[...oi,...On,...Bn,...Fn,...ii]);let X=null;const Jn=K({},[...ai,...Rn,...ri,...nn]);let De=Object.seal(gt(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),qt=null,Ua=null;const Qe=Object.seal(gt(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let La=!0,Qn=!0,Pa=!1,eo=!0,qe=!1,ct=!0,mt=!1,to=!1,mn=null,un=null,no=!1,wt=!1,fn=!1,pn=!1,va=!0,xa=!1;const Ka="user-content-";let oo=!0,io=!1,ut=null,Tt={},ft=null;const ja=K({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let za=null;const $a=K({},["audio","video","img","source","image","track"]);let qa=null;const Ha=K({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),hn="http://www.w3.org/1998/Math/MathML",gn="http://www.w3.org/2000/svg",Ue="http://www.w3.org/1999/xhtml";let Mt=Ue,ao=!1,ro=null;const ng=K({},[hn,gn,Ue],Vn),Ya=re(["mi","mo","mn","ms","mtext"]);let lo=K({},Ya);const Ga=re(["annotation-xml"]);let so=K({},Ga);const og=K({},["title","style","font","a","script"]);let Ht=null;const ig=["application/xhtml+xml","text/html"],ag="text/html";let oe=null,At=null;const rg=o.createElement("form"),Wa=function(l){return l instanceof RegExp||l instanceof Function},co=function(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(At&&At===l)return;(!l||typeof l!="object")&&(l={}),l=ke(l),Ht=ig.indexOf(l.PARSER_MEDIA_TYPE)===-1?ag:l.PARSER_MEDIA_TYPE,oe=Ht==="application/xhtml+xml"?Vn:rt,Z=Ze(l,"ALLOWED_TAGS",Xn,{transform:oe}),X=Ze(l,"ALLOWED_ATTR",Jn,{transform:oe}),ro=Ze(l,"ALLOWED_NAMESPACES",ng,{transform:Vn}),qa=Ze(l,"ADD_URI_SAFE_ATTR",Ha,{transform:oe,base:Ha}),za=Ze(l,"ADD_DATA_URI_TAGS",$a,{transform:oe,base:$a}),ft=Ze(l,"FORBID_CONTENTS",ja,{transform:oe}),qt=Ze(l,"FORBID_TAGS",ke({}),{transform:oe}),Ua=Ze(l,"FORBID_ATTR",ke({}),{transform:oe}),Tt=ge(l,"USE_PROFILES")?l.USE_PROFILES&&typeof l.USE_PROFILES=="object"?ke(l.USE_PROFILES):l.USE_PROFILES:!1,La=l.ALLOW_ARIA_ATTR!==!1,Qn=l.ALLOW_DATA_ATTR!==!1,Pa=l.ALLOW_UNKNOWN_PROTOCOLS||!1,eo=l.ALLOW_SELF_CLOSE_IN_ATTR!==!1,qe=l.SAFE_FOR_TEMPLATES||!1,ct=l.SAFE_FOR_XML!==!1,mt=l.WHOLE_DOCUMENT||!1,wt=l.RETURN_DOM||!1,fn=l.RETURN_DOM_FRAGMENT||!1,pn=l.RETURN_TRUSTED_TYPE||!1,no=l.FORCE_BODY||!1,va=l.SANITIZE_DOM!==!1,xa=l.SANITIZE_NAMED_PROPS||!1,oo=l.KEEP_CONTENT!==!1,io=l.IN_PLACE||!1,Da=Fs(l.ALLOWED_URI_REGEXP)?l.ALLOWED_URI_REGEXP:li,Mt=typeof l.NAMESPACE=="string"?l.NAMESPACE:Ue,lo=Un(l,"MATHML_TEXT_INTEGRATION_POINTS",()=>K({},Ya)),so=Un(l,"HTML_INTEGRATION_POINTS",()=>K({},Ga));const c=Un(l,"CUSTOM_ELEMENT_HANDLING",()=>gt(null));if(De=gt(null),ge(c,"tagNameCheck")&&Wa(c.tagNameCheck)&&(De.tagNameCheck=c.tagNameCheck),ge(c,"attributeNameCheck")&&Wa(c.attributeNameCheck)&&(De.attributeNameCheck=c.attributeNameCheck),ge(c,"allowCustomizedBuiltInElements")&&typeof c.allowCustomizedBuiltInElements=="boolean"&&(De.allowCustomizedBuiltInElements=c.allowCustomizedBuiltInElements),le(De),qe&&(Qn=!1),fn&&(wt=!0),Tt&&(Z=K({},ii),X=gt(null),Tt.html===!0&&(K(Z,oi),K(X,ai)),Tt.svg===!0&&(K(Z,On),K(X,Rn),K(X,nn)),Tt.svgFilters===!0&&(K(Z,Bn),K(X,Rn),K(X,nn)),Tt.mathMl===!0&&(K(Z,Fn),K(X,ri),K(X,nn))),Qe.tagCheck=null,Qe.attributeCheck=null,ge(l,"ADD_TAGS")&&(typeof l.ADD_TAGS=="function"?Qe.tagCheck=l.ADD_TAGS:yt(l.ADD_TAGS)&&(Z===Xn&&(Z=ke(Z)),K(Z,l.ADD_TAGS,oe))),ge(l,"ADD_ATTR")&&(typeof l.ADD_ATTR=="function"?Qe.attributeCheck=l.ADD_ATTR:yt(l.ADD_ATTR)&&(X===Jn&&(X=ke(X)),K(X,l.ADD_ATTR,oe))),ge(l,"ADD_FORBID_CONTENTS")&&yt(l.ADD_FORBID_CONTENTS)&&(ft===ja&&(ft=ke(ft)),K(ft,l.ADD_FORBID_CONTENTS,oe)),oo&&(Z["#text"]=!0),mt&&K(Z,["html","head","body"]),Z.table&&(K(Z,["tbody"]),delete qt.tbody),l.TRUSTED_TYPES_POLICY){if(typeof l.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ke('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof l.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ke('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const _=M;M=l.TRUSTED_TYPES_POLICY;try{L=Fe("")}catch(E){throw M=_,E}}else l.TRUSTED_TYPES_POLICY===null?(M=void 0,L=""):(M===void 0&&(M=Y()),M&&typeof L=="string"&&(L=Fe("")));re&&re(l),At=l},Za=K({},[...On,...Bn,...Rs]),Xa=K({},[...Fn,...Ds]),lg=function(l,c,_){return c.namespaceURI===Ue?l==="svg":c.namespaceURI===hn?l==="svg"&&(_==="annotation-xml"||lo[_]):!!Za[l]},sg=function(l,c,_){return c.namespaceURI===Ue?l==="math":c.namespaceURI===gn?l==="math"&&so[_]:!!Xa[l]},dg=function(l,c,_){return c.namespaceURI===gn&&!so[_]||c.namespaceURI===hn&&!lo[_]?!1:!Xa[l]&&(og[l]||!Za[l])},cg=function(l){const c=y(l),_=rt($(l)),E=N(l);let F,R;return E&&A(E)===ie.element?(F={namespaceURI:y(E)},R=rt($(E))):(F={namespaceURI:Mt},R="template"),ro[c]?c===gn?lg(_,F,R):c===hn?sg(_,F,R):c===Ue?dg(_,F,R):!!(Ht==="application/xhtml+xml"&&ro[c]):!1},et=function(l){Dt(n.removed,{element:l});try{N(l).removeChild(l)}catch{if(k(l),!N(l))throw Ke("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Ja=function(l,c,_){try{w(l,c)}catch{try{l.removeAttribute(_)}catch{}}},mo=function(l){fo(l);const c=O(l);c&&xe(Ts(c),E=>{try{k(E)}catch{}});const _=A(l)===ie.element?B(l):null;if(_)for(let E=_.length-1;E>=0;--E){const F=_[E],R=F&&F.name;typeof R=="string"&&Ja(l,F,R)}},Nt=function(l,c,_){if(!_)try{_=c.getAttributeNode(l)}catch{_=null}Dt(n.removed,{attribute:_||null,from:c});try{_?w(c,_):c.removeAttribute(l)}catch{try{c.removeAttribute(l)}catch{}}if(l==="is")if(wt||fn)try{et(c)}catch{}else try{c.setAttribute(l,"")}catch{}},Qa=function(l){const c=B(l);if(c)for(let _=c.length-1;_>=0;--_){const E=c[_],F=E&&E.name;typeof F!="string"||X[oe(F)]||Ja(l,E,F)}},uo=function(l,c){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const E=[l];for(;E.length>0;){const F=E.pop();if(c(F)===!1)continue;if(_&&A(F)===ie.element){const P=U(F);tt(P)&&E.push(P)}const R=O(F);if(R)for(let P=R.length-1;P>=0;--P)E.push(R[P])}},fo=function(l){uo(l,c=>{A(c)===ie.element&&Qa(c)})},po=function(l){const c=[];return uo(l,_=>{c.push(_)},!0),c},mg=function(l,c){const _=Nn();xe(po(l),E=>{A(E)===ie.element&&In(_,E)}),xe(c,E=>{A(E)===ie.element&&!Ut(_,E)&&Qa(E)})},er=function(l,c){let _=!1;return xe(n.removed,E=>{E.element&&(_=_||E.element===l,fo(E.element))}),mg(l,c),_},ug=8,fg=function(l,c){const _=ut;let E=null;const F=()=>(E||(E=Nn(),xe(c,R=>{In(E,R)})),E);for(let R=0;;R++){const P=po(l),ae=[l];let Le=!1;if(xe(P,pe=>{A(pe)===ie.documentFragment?Dt(ae,pe):!Le&&!Ut(_,pe)&&(Le=Ut(F(),pe))}),!Le)return;if(R>=ug)throw Ke("the tree kept changing during in-place sanitization; refusing to return it");xe(ae,(pe,be)=>{pg(pe,be>0,l,F())})}},pg=function(l,c,_,E){const F=ho(l);let R;for(;R=F.nextNode();)!Ut(E,R)||Ut(ut,R)||(c&&Be(G.uponSanitizeShadowNode,R,null),yo(R,_),bo(R,_),tt(R.content)&&Gt(R.content))},hg=function(l){ut&&In(ut,l)},tr=function(l,c){return ct?l==="patchsrc"?!0:l==="for"&&c!=="label"&&c!=="output":!1},gg=function(l){ct&&uo(l,c=>{const _=A(c);if(_===ie.processingInstruction||_===ie.comment&&se(si,c.data)){try{k(c)}catch{}return!1}if(_===ie.element){const E=c,F=oe($(c));try{E.hasAttribute&&E.hasAttribute("patchsrc")&&E.removeAttribute("patchsrc"),E.hasAttribute&&E.hasAttribute("for")&&tr("for",F)&&E.removeAttribute("for")}catch{}}return!0})},nr=function(l){let c=null,_=null;if(no)l="<remove></remove>"+l;else{const R=Jo(l,/^[\r\n\t ]+/);_=R&&R[0]}Ht==="application/xhtml+xml"&&Mt===Ue&&(l='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+l+"</body></html>");const E=M?Fe(l):l;if(Mt===Ue)try{c=new f().parseFromString(E,Ht)}catch{}if(!c||!c.documentElement){c=v.createDocument(Mt,"template",null);try{c.documentElement.innerHTML=ao?L:E}catch{}}const F=c.body||c.documentElement;return l&&_&&F.insertBefore(o.createTextNode(_),F.childNodes[0]||null),Mt===Ue?Re.call(c,mt?"html":"body")[0]:mt?c.documentElement:F},ho=function(l){const c=h?h(l):l.ownerDocument;return ue.call(c||l,l,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},yn=function(l){return l=Lt(l,Wh," "),l=Lt(l,Zh," "),l=Lt(l,Xh," "),l},go=function(l){var c;or(l);const _=(c=l.querySelectorAll)===null||c===void 0?void 0:c.call(l,"template");_&&xe(_,E=>{tt(E.content)&&go(E.content)})},or=function(l){l.normalize();const c=h?h(l):l.ownerDocument,_=ue.call(c||l,l,u.SHOW_TEXT|u.SHOW_COMMENT|u.SHOW_CDATA_SECTION|u.SHOW_PROCESSING_INSTRUCTION,null);let E=_.nextNode();for(;E;)E.data=yn(E.data),E=_.nextNode()},bn=function(l){const c=b?b(l):null;return typeof c!="string"||oe(c)!=="form"?!1:typeof l.nodeName!="string"||typeof l.textContent!="string"||typeof l.removeChild!="function"||l.attributes!==B(l)||typeof l.removeAttribute!="function"||typeof l.removeAttributeNode!="function"||typeof l.getAttributeNode!="function"||typeof l.setAttribute!="function"||typeof l.namespaceURI!="string"||typeof l.insertBefore!="function"||typeof l.hasChildNodes!="function"||l.nodeType!==T(l)||l.childNodes!==O(l)},tt=function(l){if(!T||typeof l!="object"||l===null)return!1;try{return T(l)===ie.documentFragment}catch{return!1}},Yt=function(l){if(!T||typeof l!="object"||l===null)return!1;try{return typeof T(l)=="number"}catch{return!1}};function Be(S,l,c){S.length!==0&&xe(S,_=>{_.call(n,l,c,At)})}const yg=function(l,c){return!!(ct&&l.hasChildNodes()&&!Yt(l.firstElementChild)&&se(Dn,l.textContent)&&se(Dn,l.innerHTML)||ct&&Hs[c]&&A(l)===ie.element&&y(l)===Ue&&(Yt(l.firstElementChild)||typeof l.textContent=="string"&&se(Dn,l.textContent))||l.nodeType===ie.processingInstruction||ct&&l.nodeType===ie.comment&&se(si,l.data))},_n=function(l,c){if(l instanceof RegExp)return se(l,c);if(l instanceof Function){for(var _=arguments.length,E=new Array(_>2?_-2:0),F=2;F<_;F++)E[F-2]=arguments[F];return!!l(c,...E)}return!1},bg=function(l,c,_){if(!qt[c]&&rr(c)&&_n(De.tagNameCheck,c))return!1;if(oo&&!ft[c]&&!ft[rt(c)]){const E=N(l),F=O(l);if(F&&E){const R=F.length;for(let P=R-1;P>=0;--P){const ae=l===_?g(F[P],!0):F[P];E.insertBefore(ae,C(l))}}}return et(l),!0},ir=function(l,c,_,E){return l.length===0?c:c===_||c===E?ke(c):c},It=function(l,c){return l===c||N(l)!==null?!1:(io&&fo(l),!0)},yo=function(l,c){if(hg(l),Be(G.beforeSanitizeElements,l,null),It(l,c))return!0;if(bn(l))return et(l),!0;const _=oe($(l));if(Z=ir(G.uponSanitizeElement,Z,Xn,mn),Be(G.uponSanitizeElement,l,{tagName:_,allowedTags:Z}),It(l,c))return!0;if(yg(l,_))return et(l),!0;if(qt[_]||!(Qe.tagCheck instanceof Function&&Qe.tagCheck(_))&&!Z[_]){const E=bg(l,_,c);return E===!1&&(Be(G.afterSanitizeElements,l,null),It(l,c))?!0:E}if(A(l)===ie.element&&!cg(l)||(_==="noscript"||_==="noembed"||_==="noframes")&&se(qs,l.innerHTML))return et(l),!0;if(qe&&l.nodeType===ie.text){const E=yn(l.textContent);l.textContent!==E&&(Dt(n.removed,{element:l.cloneNode()}),l.textContent=E)}return Be(G.afterSanitizeElements,l,null),It(l,c)},ar=function(l,c,_){if(Ua[c]||tr(c,l)||va&&(c==="id"||c==="name")&&(_ in o||_ in rg))return!1;const E=X[c]||Qe.attributeCheck instanceof Function&&Qe.attributeCheck(c,l);return Qn&&se(Jh,c)||La&&se(Qh,c)?!0:E?qa[c]||se(Da,Lt(_,Ra,""))||(c==="src"||c==="xlink:href"||c==="href")&&l!=="script"&&Qo(_,"data:")===0&&za[l]||Pa&&!se(eg,Lt(_,Ra,""))?!0:!_:rr(l)&&_n(De.tagNameCheck,l)&&_n(De.attributeNameCheck,c,l)||c==="is"&&De.allowCustomizedBuiltInElements&&_n(De.tagNameCheck,_)},_g=K({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),rr=function(l){return!_g[rt(l)]&&se(tg,l)},Eg=function(l,c,_,E){if(M&&typeof p=="object"&&typeof p.getAttributeType=="function"&&!_)switch(p.getAttributeType(l,c)){case"TrustedHTML":return Fe(E);case"TrustedScriptURL":return $t(E)}return E},Cg=function(l,c,_,E){try{return _?l.setAttributeNS(_,c,E):l.setAttribute(c,E),bn(l)?(et(l),!1):!0}catch{return Nt(c,l),!1}},lr=function(l,c){return ct&&se(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,c)?!0:rt(l)==="attributename"&&Jo(c,"href")!==null},bo=function(l,c){if(Be(G.beforeSanitizeAttributes,l,null),It(l,c))return;const _=l.attributes;if(!_||bn(l))return;X=ir(G.uponSanitizeAttribute,X,Jn,un);const E={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:X,forceKeepAttr:void 0};let F=_.length;const R=oe(l.nodeName);for(;F--;){const P=_[F],ae=P.name,Le=P.namespaceURI,pe=P.value,be=oe(ae),Vt=pe;let _e=ae==="value"?Vt:As(Vt),sr=!1;if(E.attrName=be,E.attrValue=_e,E.keepAttr=!0,E.forceKeepAttr=void 0,Be(G.uponSanitizeAttribute,l,E),_e=E.attrValue,xa&&(be==="id"||be==="name")&&Qo(_e,Ka)!==0&&(Nt(ae,l,P),_e=Ka+_e,sr=!0),lr(ae,_e)){Nt(ae,l,P);continue}if(!E.forceKeepAttr){if(!E.keepAttr){Nt(ae,l,P);continue}if(!eo&&se(di,_e)){Nt(ae,l,P);continue}if(qe&&(_e=yn(_e)),!ar(R,be,_e)){Nt(ae,l,P);continue}_e=Eg(R,be,Le,_e),_e!==Vt&&Cg(l,ae,Le,_e)&&sr&&Xo(n.removed)}}Be(G.afterSanitizeAttributes,l,null),It(l,c)},Gt=function(l){let c=null;const _=ho(l);for(Be(G.beforeSanitizeShadowDOM,l,null);c=_.nextNode();)if(Be(G.uponSanitizeShadowNode,c,null),yo(c,l),bo(c,l),tt(c.content)&&Gt(c.content),A(c)===ie.element){const E=U(c);tt(E)&&(_o(E),Gt(E))}qe&&or(l),Be(G.afterSanitizeShadowDOM,l,null)},_o=function(l){const c=[{node:l,shadow:null}];for(;c.length>0;){const _=c.pop();if(_.shadow){Gt(_.shadow);continue}const E=_.node,F=A(E)===ie.element,R=O(E);if(R)for(let P=R.length-1;P>=0;--P)c.push({node:R[P],shadow:null});if(F){const P=b?b(E):null;if(typeof P=="string"&&oe(P)==="template"){const ae=E.content;tt(ae)&&c.push({node:ae,shadow:null})}}if(F){const P=U(E);tt(P)&&c.push({node:null,shadow:P},{node:P,shadow:null})}}};return n.sanitize=function(S){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=null,_=null,E=null,F=null;if(ao=!S,ao&&(S="<!-->"),typeof S!="string"&&!Yt(S)&&(S=Os(S),typeof S!="string"))throw Ke("dirty is not a string, aborting");if(!n.isSupported)return S;to?(Z=mn,X=un):co(l),(G.uponSanitizeElement.length>0||G.uponSanitizeAttribute.length>0)&&(Z=ke(Z)),G.uponSanitizeAttribute.length>0&&(X=ke(X)),n.removed=[];const R=io&&typeof S!="string"&&Yt(S);let P=[];const ae=ut;if(R){gg(S);const be=$(S);if(typeof be=="string"){const Vt=oe(be);if(!Z[Vt]||qt[Vt])throw mo(S),Ke("root node is forbidden and cannot be sanitized in-place")}if(bn(S))throw mo(S),Ke("root node is clobbered and cannot be sanitized in-place");P=po(S),ut=Nn()}else if(Yt(S))c=nr("<!---->"),_=c.ownerDocument.importNode(S,!0),_.nodeType===ie.element&&_.nodeName==="BODY"||_.nodeName==="HTML"?c=_:c.appendChild(_),_o(c);else{if(!wt&&!qe&&!mt&&S.indexOf("<")===-1)return M&&pn?Fe(S):S;if(c=nr(S),!c)return wt?null:pn?L:""}c&&no&&et(c.firstChild);const Le=R?S:c;try{R&&_o(S);const be=ho(Le);for(;E=be.nextNode();)yo(E,Le),bo(E,Le),tt(E.content)&&Gt(E.content);R&&fg(S,P)}catch(be){throw R&&(mo(S),er(S,P)),be}finally{ut=ae}if(R){if(er(S,P))throw Ke("a node selected for removal could not be safely returned; refusing to sanitize in place");return qe&&go(S),S}if(wt){if(qe&&go(c),fn)for(F=$e.call(c.ownerDocument);c.firstChild;)F.appendChild(c.firstChild);else F=c;return(X.shadowroot||X.shadowrootmode)&&(F=Gh.call(r,F,!0)),F}let pe=mt?c.outerHTML:c.innerHTML;return mt&&Z["!doctype"]&&c.ownerDocument&&c.ownerDocument.doctype&&c.ownerDocument.doctype.name&&se(zs,c.ownerDocument.doctype.name)&&(pe="<!DOCTYPE "+c.ownerDocument.doctype.name+`>
|
|
3
|
-
`+pe),qe&&(pe=yn(pe)),M&&pn?Fe(pe):pe},n.setConfig=function(){let S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};co(S),to=!0,mn=Z,un=X},n.clearConfig=function(){At=null,to=!1,mn=null,un=null,M=ce,L=""},n.isValidAttribute=function(S,l,c){At||co({});const _=oe(S),E=oe(l);return typeof c=="string"&&(lr(l,c)||!eo&&se(di,c))?!1:ar(_,E,c)},n.addHook=function(S,l){typeof l=="function"&&ge(G,S)&&Dt(G[S],l)},n.removeHook=function(S,l){if(ge(G,S)){if(l!==void 0){const c=ws(G[S],l);return c===-1?void 0:Ms(G[S],c,1)[0]}return Xo(G[S])}},n.removeHooks=function(S){ge(G,S)&&(G[S]=[])},n.removeAllHooks=function(){G=ci()},n}var on=mi();function Ws(){this.__data__=new Pe,this.size=0}function Zs(e){var n=this.__data__,o=n.delete(e);return this.size=n.size,o}function Xs(e){return this.__data__.get(e)}function Js(e){return this.__data__.has(e)}var Qs=200;function ed(e,n){var o=this.__data__;if(o instanceof Pe){var r=o.__data__;if(!Rt||r.length<Qs-1)return r.push([e,n]),this.size=++o.size,this;o=this.__data__=new ve(r)}return o.set(e,n),this.size=o.size,this}function bt(e){var n=this.__data__=new Pe(e);this.size=n.size}bt.prototype.clear=Ws,bt.prototype.delete=Zs,bt.prototype.get=Xs,bt.prototype.has=Js,bt.prototype.set=ed;var an=(function(){try{var e=ot(Object,"defineProperty");return e({},"",{}),e}catch{}})();function ui(e,n,o){n=="__proto__"&&an?an(e,n,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[n]=o}var td=Object.prototype,nd=td.hasOwnProperty;function fi(e,n,o){var r=e[n];(!(nd.call(e,n)&&Jt(r,o))||o===void 0&&!(n in e))&&ui(e,n,o)}function rn(e,n,o,r){var a=!o;o||(o={});for(var i=-1,d=n.length;++i<d;){var s=n[i],u=void 0;u===void 0&&(u=e[s]),a?ui(o,s,u):fi(o,s,u)}return o}function od(e,n){return e&&rn(n,Zt(n),e)}function id(e){var n=[];if(e!=null)for(var o in Object(e))n.push(o);return n}var ad=Object.prototype,rd=ad.hasOwnProperty;function ld(e){if(!Ce(e))return id(e);var n=Sn(e),o=[];for(var r in e)r=="constructor"&&(n||!rd.call(e,r))||o.push(r);return o}function ln(e){return Wt(e)?Do(e,!0):ld(e)}function sd(e,n){return e&&rn(n,ln(n),e)}var pi=typeof D=="object"&&D&&!D.nodeType&&D,hi=pi&&typeof module=="object"&&module&&!module.nodeType&&module,dd=hi&&hi.exports===pi,gi=dd?Te.Buffer:void 0,yi=gi?gi.allocUnsafe:void 0;function cd(e,n){if(n)return e.slice();var o=e.length,r=yi?yi(o):new e.constructor(o);return e.copy(r),r}function md(e,n){var o=-1,r=e.length;for(n||(n=Array(r));++o<r;)n[o]=e[o];return n}function ud(e,n){for(var o=-1,r=e==null?0:e.length,a=0,i=[];++o<r;){var d=e[o];n(d,o,e)&&(i[a++]=d)}return i}function bi(){return[]}var fd=Object.prototype,pd=fd.propertyIsEnumerable,_i=Object.getOwnPropertySymbols,Ln=_i?function(e){return e==null?[]:(e=Object(e),ud(_i(e),function(n){return pd.call(e,n)}))}:bi;function hd(e,n){return rn(e,Ln(e),n)}function Ei(e,n){for(var o=-1,r=n.length,a=e.length;++o<r;)e[a+o]=n[o];return e}var Ci=Uo(Object.getPrototypeOf,Object),gd=Object.getOwnPropertySymbols,Si=gd?function(e){for(var n=[];e;)Ei(n,Ln(e)),e=Ci(e);return n}:bi;function yd(e,n){return rn(e,Si(e),n)}function ki(e,n,o){var r=n(e);return We(e)?r:Ei(r,o(e))}function bd(e){return ki(e,Zt,Ln)}function _d(e){return ki(e,ln,Si)}var Pn=ot(Te,"DataView"),vn=ot(Te,"Promise"),_t=ot(Te,"Set"),xn=ot(Te,"WeakMap"),wi="[object Map]",Ed="[object Object]",Ti="[object Promise]",Mi="[object Set]",Ai="[object WeakMap]",Ni="[object DataView]",Cd=nt(Pn),Sd=nt(Rt),kd=nt(vn),wd=nt(_t),Td=nt(xn),je=Ye;(Pn&&je(new Pn(new ArrayBuffer(1)))!=Ni||Rt&&je(new Rt)!=wi||vn&&je(vn.resolve())!=Ti||_t&&je(new _t)!=Mi||xn&&je(new xn)!=Ai)&&(je=function(e){var n=Ye(e),o=n==Ed?e.constructor:void 0,r=o?nt(o):"";if(r)switch(r){case Cd:return Ni;case Sd:return wi;case kd:return Ti;case wd:return Mi;case Td:return Ai}return n});var Md=Object.prototype,Ad=Md.hasOwnProperty;function Nd(e){var n=e.length,o=new e.constructor(n);return n&&typeof e[0]=="string"&&Ad.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var Ii=Te.Uint8Array;function Kn(e){var n=new e.constructor(e.byteLength);return new Ii(n).set(new Ii(e)),n}function Id(e,n){var o=n?Kn(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var Vd=/\w*$/;function Od(e){var n=new e.constructor(e.source,Vd.exec(e));return n.lastIndex=e.lastIndex,n}var Vi=He?He.prototype:void 0,Oi=Vi?Vi.valueOf:void 0;function Bd(e){return Oi?Object(Oi.call(e)):{}}function Fd(e,n){var o=n?Kn(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Rd="[object Boolean]",Dd="[object Date]",Ud="[object Map]",Ld="[object Number]",Pd="[object RegExp]",vd="[object Set]",xd="[object String]",Kd="[object Symbol]",jd="[object ArrayBuffer]",zd="[object DataView]",$d="[object Float32Array]",qd="[object Float64Array]",Hd="[object Int8Array]",Yd="[object Int16Array]",Gd="[object Int32Array]",Wd="[object Uint8Array]",Zd="[object Uint8ClampedArray]",Xd="[object Uint16Array]",Jd="[object Uint32Array]";function Qd(e,n,o){var r=e.constructor;switch(n){case jd:return Kn(e);case Rd:case Dd:return new r(+e);case zd:return Id(e,o);case $d:case qd:case Hd:case Yd:case Gd:case Wd:case Zd:case Xd:case Jd:return Fd(e,o);case Ud:return new r;case Ld:case xd:return new r(e);case Pd:return Od(e);case vd:return new r;case Kd:return Bd(e)}}var Bi=Object.create,ec=(function(){function e(){}return function(n){if(!Ce(n))return{};if(Bi)return Bi(n);e.prototype=n;var o=new e;return e.prototype=void 0,o}})();function tc(e){return typeof e.constructor=="function"&&!Sn(e)?ec(Ci(e)):{}}var nc="[object Map]";function oc(e){return Ge(e)&&je(e)==nc}var Fi=ht&&ht.isMap,ic=Fi?En(Fi):oc,ac="[object Set]";function rc(e){return Ge(e)&&je(e)==ac}var Ri=ht&&ht.isSet,lc=Ri?En(Ri):rc,sc=1,dc=2,cc=4,Di="[object Arguments]",mc="[object Array]",uc="[object Boolean]",fc="[object Date]",pc="[object Error]",Ui="[object Function]",hc="[object GeneratorFunction]",gc="[object Map]",yc="[object Number]",Li="[object Object]",bc="[object RegExp]",_c="[object Set]",Ec="[object String]",Cc="[object Symbol]",Sc="[object WeakMap]",kc="[object ArrayBuffer]",wc="[object DataView]",Tc="[object Float32Array]",Mc="[object Float64Array]",Ac="[object Int8Array]",Nc="[object Int16Array]",Ic="[object Int32Array]",Vc="[object Uint8Array]",Oc="[object Uint8ClampedArray]",Bc="[object Uint16Array]",Fc="[object Uint32Array]",q={};q[Di]=q[mc]=q[kc]=q[wc]=q[uc]=q[fc]=q[Tc]=q[Mc]=q[Ac]=q[Nc]=q[Ic]=q[gc]=q[yc]=q[Li]=q[bc]=q[_c]=q[Ec]=q[Cc]=q[Vc]=q[Oc]=q[Bc]=q[Fc]=!0,q[pc]=q[Ui]=q[Sc]=!1;function vt(e,n,o,r,a,i){var d,s=n&sc,u=n&dc,f=n&cc;if(d!==void 0)return d;if(!Ce(e))return e;var p=We(e);if(p){if(d=Nd(e),!s)return md(e,d)}else{var m=je(e),g=m==Ui||m==hc;if(Vo(e))return cd(e,s);if(m==Li||m==Di||g&&!a){if(d=u||g?{}:tc(e),!s)return u?yd(e,sd(d,e)):hd(e,od(d,e))}else{if(!q[m])return a?e:{};d=Qd(e,m,s)}}i||(i=new bt);var k=i.get(e);if(k)return k;i.set(e,d),lc(e)?e.forEach(function(O){d.add(vt(O,n,o,O,e,i))}):ic(e)&&e.forEach(function(O,N){d.set(N,vt(O,n,o,N,e,i))});var w=f?u?_d:bd:u?ln:Zt,C=p?void 0:w(e);return Co(C||e,function(O,N){C&&(N=O,O=e[N]),fi(d,N,vt(O,n,o,N,e,i))}),d}var Rc=1,Dc=4;function ze(e){return vt(e,Rc|Dc)}const jn=(e,n="")=>typeof e.id<"u"?n+e.id+"":n+(e.inputName||e.label||e.model||"").toString().trim().toLowerCase().replace(/ |_/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"").replace(/([^a-zA-Z0-9-]+)/g,""),Pi=(e="")=>e.toString().trim().replace(/ /g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"").replace(/([^a-zA-Z0-9-_/./:]+)/g,"");var Uc="[object String]";function lt(e){return typeof e=="string"||!We(e)&&Ge(e)&&Ye(e)==Uc}const vi={methods:{getFieldRowClasses(e){const n=this.fieldErrors(e).length>0,o={[j(this.options,"validationErrorClass","error")]:n,[j(this.options,"validationSuccessClass","valid")]:!n,disabled:this.fieldDisabled(e),readonly:this.fieldReadonly(e),featured:this.fieldFeatured(e),required:this.fieldRequired(e)};return Array.isArray(e.styleClasses)?fe(e.styleClasses,r=>o[r]=!0):lt(e.styleClasses)&&(o[e.styleClasses]=!0),te(e.type)||(o["field-"+e.type]=!0),o},fieldErrors(e){return this.errors.filter(o=>o.field.fieldName===e.fieldName).map(o=>o.error)},fieldDisabled(e){return z(e.disabled)?e.disabled.call(this,this.model,e,this):te(e.disabled)?!1:e.disabled},fieldReadonly(e){return z(e.readonly)?e.readonly.call(this,this.model,e,this):te(e.readonly)?!1:e.readonly},fieldFeatured(e){return z(e.featured)?e.featured.call(this,this.model,e,this):te(e.featured)?!1:e.featured},fieldRequired(e){return z(e.required)?e.required.call(this,this.model,e,this):te(e.required)?!1:e.required}}};var zn=function(){return Te.Date.now()},Lc=/\s/;function Pc(e){for(var n=e.length;n--&&Lc.test(e.charAt(n)););return n}var vc=/^\s+/;function xc(e){return e&&e.slice(0,Pc(e)+1).replace(vc,"")}var xi=NaN,Kc=/^[-+]0x[0-9a-f]+$/i,jc=/^0b[01]+$/i,zc=/^0o[0-7]+$/i,$c=parseInt;function $n(e){if(typeof e=="number")return e;if(Xt(e))return xi;if(Ce(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=Ce(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=xc(e);var o=jc.test(e);return o||zc.test(e)?$c(e.slice(2),o?2:8):Kc.test(e)?xi:+e}var qc="Expected a function",Hc=Math.max,Yc=Math.min;function Et(e,n,o){var r,a,i,d,s,u,f=0,p=!1,m=!1,g=!0;if(typeof e!="function")throw new TypeError(qc);n=$n(n)||0,Ce(o)&&(p=!!o.leading,m="maxWait"in o,i=m?Hc($n(o.maxWait)||0,n):i,g="trailing"in o?!!o.trailing:g);function k(h){var A=r,$=a;return r=a=void 0,f=h,d=e.apply($,A),d}function w(h){return f=h,s=setTimeout(N,n),p?k(h):d}function C(h){var A=h-u,$=h-f,V=n-A;return m?Yc(V,i-$):V}function O(h){var A=h-u,$=h-f;return u===void 0||A>=n||A<0||m&&$>=i}function N(){var h=zn();if(O(h))return U(h);s=setTimeout(N,C(h))}function U(h){return s=void 0,g&&r?k(h):(r=a=void 0,d)}function B(){s!==void 0&&clearTimeout(s),f=0,r=u=a=s=void 0}function T(){return s===void 0?d:U(zn())}function b(){var h=zn(),A=O(h);if(r=arguments,a=this,u=h,A){if(s===void 0)return w(u);if(m)return clearTimeout(s),s=setTimeout(N,n),k(u)}return s===void 0&&(s=setTimeout(N,n)),d}return b.cancel=B,b.flush=T,b}var Gc="__lodash_hash_undefined__";function Wc(e){return this.__data__.set(e,Gc),this}function Zc(e){return this.__data__.has(e)}function sn(e){var n=-1,o=e==null?0:e.length;for(this.__data__=new ve;++n<o;)this.add(e[n])}sn.prototype.add=sn.prototype.push=Wc,sn.prototype.has=Zc;function Xc(e,n,o,r){for(var a=e.length,i=o+-1;++i<a;)if(n(e[i],i,e))return i;return-1}function Jc(e){return e!==e}function Qc(e,n,o){for(var r=o-1,a=e.length;++r<a;)if(e[r]===n)return r;return-1}function em(e,n,o){return n===n?Qc(e,n,o):Xc(e,Jc,o)}function tm(e,n){var o=e==null?0:e.length;return!!o&&em(e,n,0)>-1}function nm(e,n){return e.has(n)}function om(){}function Ki(e){var n=-1,o=Array(e.size);return e.forEach(function(r){o[++n]=r}),o}var im=1/0,am=_t&&1/Ki(new _t([,-0]))[1]==im?function(e){return new _t(e)}:om,rm=200;function lm(e,n,o){var r=-1,a=tm,i=e.length,d=!0,s=[],u=s;if(i>=rm){var f=am(e);if(f)return Ki(f);d=!1,a=nm,u=new sn}else u=s;e:for(;++r<i;){var p=e[r],m=p;if(p=p!==0?p:0,d&&m===m){for(var g=u.length;g--;)if(u[g]===m)continue e;s.push(p)}else a(u,m,o)||(u!==s&&u.push(m),s.push(p))}return s}function ji(e){return e&&e.length?lm(e):[]}var sm=0;function zi(e){var n=++sm;return Ko(e)+n}var $i=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,Xe="\\d\\d?",Je="\\d\\d",dm="\\d{3}",cm="\\d{4}",xt="[^\\s]+",qi=/\[([^]*?)\]/gm;function Hi(e,n){for(var o=[],r=0,a=e.length;r<a;r++)o.push(e[r].substr(0,n));return o}var Yi=function(e){return function(n,o){var r=o[e].map(function(i){return i.toLowerCase()}),a=r.indexOf(n.toLowerCase());return a>-1?a:null}};function st(e){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];for(var r=0,a=n;r<a.length;r++){var i=a[r];for(var d in i)e[d]=i[d]}return e}var Gi=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Wi=["January","February","March","April","May","June","July","August","September","October","November","December"],mm=Hi(Wi,3),um=Hi(Gi,3),Zi={dayNamesShort:um,dayNames:Gi,monthNamesShort:mm,monthNames:Wi,amPm:["am","pm"],DoFn:function(e){return e+["th","st","nd","rd"][e%10>3?0:(e-e%10!==10?1:0)*e%10]}},dn=st({},Zi),fm=function(e){return dn=st(dn,e)},Xi=function(e){return e.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ye=function(e,n){for(n===void 0&&(n=2),e=String(e);e.length<n;)e="0"+e;return e},pm={D:function(e){return String(e.getDate())},DD:function(e){return ye(e.getDate())},Do:function(e,n){return n.DoFn(e.getDate())},d:function(e){return String(e.getDay())},dd:function(e){return ye(e.getDay())},ddd:function(e,n){return n.dayNamesShort[e.getDay()]},dddd:function(e,n){return n.dayNames[e.getDay()]},M:function(e){return String(e.getMonth()+1)},MM:function(e){return ye(e.getMonth()+1)},MMM:function(e,n){return n.monthNamesShort[e.getMonth()]},MMMM:function(e,n){return n.monthNames[e.getMonth()]},YY:function(e){return ye(String(e.getFullYear()),4).substr(2)},YYYY:function(e){return ye(e.getFullYear(),4)},h:function(e){return String(e.getHours()%12||12)},hh:function(e){return ye(e.getHours()%12||12)},H:function(e){return String(e.getHours())},HH:function(e){return ye(e.getHours())},m:function(e){return String(e.getMinutes())},mm:function(e){return ye(e.getMinutes())},s:function(e){return String(e.getSeconds())},ss:function(e){return ye(e.getSeconds())},S:function(e){return String(Math.round(e.getMilliseconds()/100))},SS:function(e){return ye(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return ye(e.getMilliseconds(),3)},a:function(e,n){return e.getHours()<12?n.amPm[0]:n.amPm[1]},A:function(e,n){return e.getHours()<12?n.amPm[0].toUpperCase():n.amPm[1].toUpperCase()},ZZ:function(e){var n=e.getTimezoneOffset();return(n>0?"-":"+")+ye(Math.floor(Math.abs(n)/60)*100+Math.abs(n)%60,4)},Z:function(e){var n=e.getTimezoneOffset();return(n>0?"-":"+")+ye(Math.floor(Math.abs(n)/60),2)+":"+ye(Math.abs(n)%60,2)}},Ji=function(e){return+e-1},Qi=[null,Xe],ea=[null,xt],ta=["isPm",xt,function(e,n){var o=e.toLowerCase();return o===n.amPm[0]?0:o===n.amPm[1]?1:null}],na=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(e){var n=(e+"").match(/([+-]|\d\d)/gi);if(n){var o=+n[1]*60+parseInt(n[2],10);return n[0]==="+"?o:-o}return 0}],hm={D:["day",Xe],DD:["day",Je],Do:["day",Xe+xt,function(e){return parseInt(e,10)}],M:["month",Xe,Ji],MM:["month",Je,Ji],YY:["year",Je,function(e){var n=new Date,o=+(""+n.getFullYear()).substr(0,2);return+(""+(+e>68?o-1:o)+e)}],h:["hour",Xe,void 0,"isPm"],hh:["hour",Je,void 0,"isPm"],H:["hour",Xe],HH:["hour",Je],m:["minute",Xe],mm:["minute",Je],s:["second",Xe],ss:["second",Je],YYYY:["year",cm],S:["millisecond","\\d",function(e){return+e*100}],SS:["millisecond",Je,function(e){return+e*10}],SSS:["millisecond",dm],d:Qi,dd:Qi,ddd:ea,dddd:ea,MMM:["month",xt,Yi("monthNamesShort")],MMMM:["month",xt,Yi("monthNames")],a:ta,A:ta,ZZ:na,Z:na},cn={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},gm=function(e){return st(cn,e)},ym=function(e,n,o){if(n===void 0&&(n=cn.default),o===void 0&&(o={}),typeof e=="number"&&(e=new Date(e)),Object.prototype.toString.call(e)!=="[object Date]"||isNaN(e.getTime()))throw new Error("Invalid Date pass to format");n=cn[n]||n;var r=[];n=n.replace(qi,function(i,d){return r.push(d),"@@@"});var a=st(st({},dn),o);return n=n.replace($i,function(i){return pm[i](e,a)}),n.replace(/@@@/g,function(){return r.shift()})};function bm(e,n,o){if(o===void 0&&(o={}),typeof n!="string")throw new Error("Invalid format in fecha parse");if(n=cn[n]||n,e.length>1e3)return null;var r=new Date,a={year:r.getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},i=[],d=[],s=n.replace(qi,function(T,b){return d.push(Xi(b)),"@@@"}),u={},f={};s=Xi(s).replace($i,function(T){var b=hm[T],h=b[0],A=b[1],$=b[3];if(u[h])throw new Error("Invalid format. "+h+" specified twice in format");return u[h]=!0,$&&(f[$]=!0),i.push(b),"("+A+")"}),Object.keys(f).forEach(function(T){if(!u[T])throw new Error("Invalid format. "+T+" is required in specified format")}),s=s.replace(/@@@/g,function(){return d.shift()});var p=e.match(new RegExp(s,"i"));if(!p)return null;for(var m=st(st({},dn),o),g=1;g<p.length;g++){var k=i[g-1],w=k[0],C=k[2],O=C?C(p[g],m):+p[g];if(O==null)return null;a[w]=O}a.isPm===1&&a.hour!=null&&+a.hour!=12?a.hour=+a.hour+12:a.isPm===0&&+a.hour==12&&(a.hour=0);var N;if(a.timezoneOffset==null){N=new Date(a.year,a.month,a.day,a.hour,a.minute,a.second,a.millisecond);for(var U=[["month","getMonth"],["day","getDate"],["hour","getHours"],["minute","getMinutes"],["second","getSeconds"]],g=0,B=U.length;g<B;g++)if(u[U[g][0]]&&a[U[g][0]]!==N[U[g][1]]())return null}else if(N=new Date(Date.UTC(a.year,a.month,a.day,a.hour,a.minute-a.timezoneOffset,a.second,a.millisecond)),a.month>11||a.month<0||a.day>31||a.day<1||a.hour>23||a.hour<0||a.minute>59||a.minute<0||a.second>59||a.second<0)return null;return N}var Ct={format:ym,parse:bm,defaultI18n:Zi,setGlobalDateI18n:fm,setGlobalDateMasks:gm};function _m(e,n,o){switch(o.length){case 0:return e.call(n);case 1:return e.call(n,o[0]);case 2:return e.call(n,o[0],o[1]);case 3:return e.call(n,o[0],o[1],o[2])}return e.apply(n,o)}var oa=Math.max;function Em(e,n,o){return n=oa(n===void 0?e.length-1:n,0),function(){for(var r=arguments,a=-1,i=oa(r.length-n,0),d=Array(i);++a<i;)d[a]=r[n+a];a=-1;for(var s=Array(n+1);++a<n;)s[a]=r[a];return s[n]=o(d),_m(e,this,s)}}function Cm(e){return function(){return e}}var Sm=an?function(e,n){return an(e,"toString",{configurable:!0,enumerable:!1,value:Cm(n),writable:!0})}:kn,km=800,wm=16,Tm=Date.now;function Mm(e){var n=0,o=0;return function(){var r=Tm(),a=wm-(r-o);if(o=r,a>0){if(++n>=km)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}var Am=Mm(Sm);function Nm(e,n){return Am(Em(e,n,kn),e+"")}function Im(e,n,o){if(!Ce(o))return!1;var r=typeof n;return(r=="number"?Wt(o)&&Oo(n,o.length):r=="string"&&n in o)?Jt(o[n],e):!1}var ia=Object.prototype,Vm=ia.hasOwnProperty,Om=Nm(function(e,n){e=Object(e);var o=-1,r=n.length,a=r>2?n[2]:void 0;for(a&&Im(n[0],n[1],a)&&(r=1);++o<r;)for(var i=n[o],d=ln(i),s=-1,u=d.length;++s<u;){var f=d[s],p=e[f];(p===void 0||Jt(p,ia[f])&&!Vm.call(e,f))&&(e[f]=i[f])}return e}),Bm=Te.isFinite;function aa(e){return typeof e=="number"&&Bm(e)}var ra=1/0,Fm=17976931348623157e292;function Rm(e){if(!e)return e===0?e:0;if(e=$n(e),e===ra||e===-ra){var n=e<0?-1:1;return n*Fm}return e===e?e:0}function Dm(e){var n=Rm(e),o=n%1;return n===n?o?n-o:n:0}function Um(e){return typeof e=="number"&&e==Dm(e)}var Lm="[object Number]";function qn(e){return typeof e=="number"||Ge(e)&&Ye(e)==Lm}const we={general:{packageName:"forms",disable_global_radio:"The plugin is set to 'Scoped' by default when configured under a {scope}. To configure a global plugin, navigate to the global plugin list page.",disable_source_scope_change:"Changing the {scope} is not allowed when configuring a plugin under it."},"post-function":{tags:{hint:"e.g. tag1, tag2, tag3",newElementButtonLabel:"+ Add"},enabled:{newElementButtonLabel:"+ Add"},selectionGroup:{newElementButtonLabel:"+ Add"},instance_name:{newElementButtonLabel:"+ Add"},name:{newElementButtonLabel:"+ Add"},"config-certificate":{help:"Array of stringified Lua code to be cached and run in sequence during the certificate phase.",newElementButtonLabel:"+ Add"},"config-access":{help:"Array of stringified Lua code to be cached and run in sequence during the access phase.",newElementButtonLabel:"+ Add"},"config-body_filter":{help:"Array of stringified Lua code to be cached and run in sequence during the body_filter phase.",newElementButtonLabel:"+ Add"},"config-header_filter":{help:"Array of stringified Lua code to be cached and run in sequence during the header_filter phase.",newElementButtonLabel:"+ Add"},"config-functions":{newElementButtonLabel:"+ Add"},"config-log":{newElementButtonLabel:"+ Add"},"config-rewrite":{newElementButtonLabel:"+ Add"},"config-ws_client_frame":{newElementButtonLabel:"+ Add"},"config-ws_close":{newElementButtonLabel:"+ Add"},"config-ws_handshake":{newElementButtonLabel:"+ Add"},"config-ws_upstream_frame":{newElementButtonLabel:"+ Add"}},"exit-transformer":{"config-functions":{newElementButtonLabel:"+ Add"}},rla:{view_advanced:"View advanced parameters",window_type:{label:"Rate Limit Window Type",help:"Sets the time window type to either <code>sliding</code> (default) or <code>fixed</code>.<br><ul><li>Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight.</li><li>Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window's counters.</li></ul>",options:{fixed:"Fixed",sliding:"Sliding"}},request_limits:{title:"Request Limits",subtitle:"Set one or more limits on the number of API requests allowed within a defined timeframe.",label:"Limit",label_index:"Limit {index}",request_number:"Request number",time_interval:"Time interval",interval_determiner:"Every",seconds:"Seconds"},start_with_a_use_case:"Start with a use case:",use_case_index:"Use case {index}",error_message:{label:"Error Message",code_placeholder:"Code Message",message_placeholder:"Error Message",help:"Set a custom error code and message to be returned when the rate limit is exceeded."},identifiers:{label:"Identifiers",options:{ip:"IP",credential:"Credential",consumer:"Consumer",service:"Service",header:"Header",path:"Path","consumer-group":"Consumer Group",route:"Route"}},redis:{title:"Configure your Redis",address_example:"e.g. localhost:6379"}},validators:{field_is_required:"This field is required",invalid_format:"Invalid format",number_too_small:"The number is too small. Minimum: {0}",number_too_large:"The number is too large. Maximum: {0}",invalid_number:"Invalid number",invalid_integer:"The value is not an integer",text_too_short:"The length of text is too short. Current: {0}, Minimum: {1}",text_too_long:"The length of text is too long. Current: {0}, Maximum: {1}",this_not_text:"This is not a text",this_not_array:"This is not an array",select_min_items:"Select minimum {0} items",select_max_items:"Select maximum {0} items",invalid_date:"Invalid date",date_is_early:"The date is too early. Current: {0}, Minimum: {1}",date_is_late:"The date is too late. Current: {0}, Maximum: {1}",invalid_email:"Invalid e-mail address",invalid_url:"Invalid URL",invalid_card:"Invalid card format",invalid_card_number:"Invalid card number",invalid_text_contain_number:"Invalid text - cannot contains numbers or special characters",invalid_tex_contain_spec:"Invalid text - cannot contains special characters"},redis:{title:"Redis Configuration",managed_ui:{title:"Redis",groups:{self_managed:"Self-managed Redis",konnect_managed:"Konnect-managed Redis"},shared_configuration:{label:"Use shared configuration",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.",badge:"Recommended",title:"Shared Redis Configuration",create_new_configuration:"New Redis",selector:{placeholder:"Filter Redis configurations..."}},dedicated_configuration:{label:"Use locally-scoped configuration",description:"Create and use a Redis configuration specifically for this plugin."}},shared_configuration:{label:"Use shared configuration",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.",title:"Shared Redis Configuration",error:"Fetching shared Redis configurations failed.",tooltip:"Only compatible {type} redis configurations will be listed here.",configuration_selector_label:"Select stored Redis configuration",configuration_selector_placeholder:"Pick Redis configuration",create_new_configuration:"New {type} shared configuration",empty_state:"No shared configurations",selector:{title:"Select a Redis configuration",placeholder:"Filter Configurations",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins."}},dedicated_configuration:{label:"Use dedicated configuration",description:"Create a Redis configuration exclusively for this plugin, with settings that won’t impact other plugins.",title:"Connection Settings"},config_card:{common_fields:{created_at_label:"Created at",updated_at_label:"Last Updated at",type_label:"Redis Type"}},custom_plugin:{alert:"Note: For custom plugins, we cannot determine the correct Redis configuration type. Please ensure you select the appropriate option manually.",tooltip:"To apply a shared redis configuration, the redis fields must defined as Kong plugins in plugin schema."}},fields:{auto_suggest:{error:{load_entity:"There was an error loading {entity}"},recently_created:"Recently created {entity}",items_count:"Currently showing {count} {count, plural, =1 {item} other {items}}, type to search",no_results:"No results",loading:"Loading..."}},vfg:{labels:{on:"On",off:"Off"}}},{t:ne}=Ee.createI18n("en-us",we),de={fieldIsRequired:ne("validators.field_is_required"),invalidFormat:ne("validators.invalid_format"),numberTooSmall:ne("validators.number_too_small"),numberTooBig:ne("validators.number_too_large"),invalidNumber:ne("validators.invalid_number"),invalidInteger:ne("validators.invalid_integer"),textTooSmall:ne("validators.text_too_short"),textTooBig:ne("validators.text_too_long"),thisNotText:ne("validators.this_not_text"),thisNotArray:ne("validators.this_not_array"),selectMinItems:ne("validators.select_min_items"),selectMaxItems:ne("validators.select_max_items"),invalidDate:ne("validators.invalid_date"),dateIsEarly:ne("validators.date_is_early"),dateIsLate:ne("validators.date_is_late"),invalidEmail:ne("validators.invalid_email"),invalidURL:ne("validators.invalid_url"),invalidCard:ne("validators.invalid_card"),invalidCardNumber:ne("validators.invalid_card_number"),invalidTextContainNumber:ne("validators.invalid_text_contain_number"),invalidTextContainSpec:ne("validators.invalid_tex_contain_spec")},J=(e,...n)=>{if(e&&n.length>0)for(let o=0;o<n.length;o++)e=e.replace("{"+(o-1)+"}",String(n[o]||""));return e},Ae=(e,n,o=de)=>te(e)||e===""?n?[J(o.fieldIsRequired)]:[]:null,dt={required:(e,n,o,r=de)=>Ae(e,n.required,r)||[],number:(e,n,o,r=de)=>{let a=Ae(e,n.required,r);return a!=null||(a=[],aa(e)?(!te(n.min)&&e<n.min,(r=de)&&a.push(J(r.numberTooSmall,n.min)),!te(n.max)&&e>n.max,(r=de)&&a.push(J(r.numberTooBig,n.max))):a.push(J(r.invalidNumber))),a},integer:(e,n,o,r=de)=>{let a=Ae(e,n.required,r);return a!=null||(a=[],a.concat(dt.number(e,n,o,r)),Um(e)||a.push(J(r.invalidInteger))),a},double:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(!qn(e)||isNaN(e)?[J(r.invalidNumber)]:[])},string:(e,n,o,r=de)=>{let a=Ae(e,n.required,r);return a!=null||(a=[],lt(e)?(!te(n.min)&&e.length<n.min&&a.push(J(r.textTooSmall,e.length,n.min)),!te(n.max)&&e.length>n.max&&a.push(J(r.textTooBig,e.length,n.max))):a.push(J(r.thisNotText))),a},array:(e,n,o,r=de)=>{if(n.required){if(!Array.isArray(e))return[J(r.thisNotArray)];if(e.length===0)return[J(r.fieldIsRequired)]}if(!te(e)){if(!te(n.min)&&e.length<n.min)return[J(r.selectMinItems,n.min)];if(!te(n.max)&&e.length>n.max)return[J(r.selectMaxItems,n.max)]}return[]},date:(e,n,o,r=de)=>{let a=Ae(e,n.required,r);if(a!=null)return a;a=[];const i=new Date(e);if(isNaN(i.getDate()))return[J(r.invalidDate)];if(!te(n.min)){const d=new Date(n.min);i.valueOf()<d.valueOf()&&a.push(J(r.dateIsEarly,Ct.format(i),Ct.format(d)))}if(!te(n.max)){const d=new Date(n.max);i.valueOf()>d.valueOf()&&a.push(J(r.dateIsLate,Ct.format(i),Ct.format(d)))}return a},regexp:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(!te(n.pattern)&&!new RegExp(n.pattern).test(e)?[J(r.invalidFormat)]:[])},email:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)?[]:[J(r.invalidEmail)])},url:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g.test(e)?[]:[J(r.invalidURL)])},creditCard:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);if(a!=null)return a;const i=/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,d=e.replace(/[^0-9]+/g,"");if(!i.test(d))return[J(r.invalidCard)];let s=0,u,f,p;for(let m=d.length-1;m>=0;m--)u=d.substring(m,m+1),f=parseInt(u,10),p?(f*=2,f>=10?s+=f%10+1:s+=f):s+=f,p=!p;return s%10===0&&d?[]:[J(r.invalidCardNumber)]},alpha:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(/^[a-zA-Z]*$/.test(e)?[]:[J(r.invalidTextContainNumber)])},alphaNumeric:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(/^[a-zA-Z0-9]*$/.test(e)?[]:[J(r.invalidTextContainSpec)])}};Object.keys(dt).forEach(e=>{const n=dt[e];z(n)&&(n.locale=o=>(r,a,i)=>n(r,a,i,Om(o,de)))});function la(e){return lt(e)?dt[e]!=null?dt[e]:(console.warn(`'${e}' is not a validator function!`),null):e}function Hn(e,n,o){let r=j(o.context,"schema.attributes",{});const a=n.value||"input";lt(a)&&(r=j(r,a)||r),fe(r,(i,d)=>{e.setAttribute(d,i)})}const Oe={name:"abstractField",props:["vfg","model","schema","formOptions","disabled"],emits:["validated","modelUpdated"],data(){return{errors:[],debouncedValidateFunc:null,debouncedFormatFunc:null}},directives:{attributes:{beforeMount:Hn,updated:Hn,componentUpdated:Hn}},computed:{value:{cache:!1,get(){let e;return z(j(this.schema,"get"))?e=this.schema.get(this.model):e=j(this.model,this.schema.model),this.formatValueToField(e)},set(e){const n=this.value;e=this.formatValueToModel(e),z(e)?e(e,n):this.updateModelValue(e,n)}}},methods:{validate(e){this.clearValidationErrors();const n=j(this.formOptions,"validateAsync",!1);let o=[];if(this.schema.validator&&this.schema.readonly!==!0&&this.disabled!==!0){const a=[];Array.isArray(this.schema.validator)?fe(this.schema.validator,i=>{a.push(la(i).bind(this))}):a.push(la(this.schema.validator).bind(this)),fe(a,i=>{if(n)o.push(i(this.value,this.schema,this.model));else{const d=i(this.value,this.schema,this.model);d&&z(d.then)?d.then(s=>{s&&(this.errors=this.errors.concat(s));const u=this.errors.length===0;this.$emit("validated",u,this.errors,this)}):d&&(o=o.concat(d))}})}const r=a=>{let i=[];fe(ji(a),s=>{Array.isArray(s)&&s.length>0?i=i.concat(s):lt(s)&&i.push(s)}),z(this.schema.onValidated)&&this.schema.onValidated.call(this,this.model,i,this.schema);const d=i.length===0;return e||this.$emit("validated",d,i,this),this.errors=i,i};return n?Promise.all(o).then(r):r(o)},debouncedValidate(){z(this.debouncedValidateFunc)||(this.debouncedValidateFunc=Et(this.validate.bind(this),j(this.schema,"validateDebounceTime",j(this.formOptions,"validateDebounceTime",500)))),this.debouncedValidateFunc()},updateModelValue(e,n){let o=!1;z(this.schema.set)?(this.schema.set(this.model,e),o=!0):this.schema.model&&(this.setModelValueByPath(this.schema.model,e),o=!0),o&&(this.$emit("modelUpdated",e,this.schema.model),z(this.schema.onChanged)&&this.schema.onChanged.call(this,this.model,e,n,this.schema),j(this.formOptions,"validateAfterChanged",!1)===!0&&(j(this.schema,"validateDebounceTime",j(this.formOptions,"validateDebounceTime",0))>0?this.debouncedValidate():this.validate()))},clearValidationErrors(){this.errors.splice(0)},setModelValueByPath(e,n){let o=e.replace(/\[(\w+)\]/g,".$1");o=o.replace(/^\./,"");let r=this.model;const a=o.split(".");let i=0;const d=a.length;for(;i<d;){const s=a[i];if(i<d-1)r[s]!==void 0||(r[s]={}),r=r[s];else{r[s]=n;return}++i}},getFieldID(e,n=!1){const o=j(this.formOptions,"fieldIdPrefix","");return jn(e,o)+(n?"-"+zi():"")},getLabelId(e){return`${this.getFieldID(e)}-label`},getFieldClasses(){return j(this.schema,"fieldClasses",[])},formatValueToField(e){return e},formatValueToModel(e){return e}}},Pm=Object.freeze(Object.defineProperty({__proto__:null,default:Oe},Symbol.toStringTag,{value:"Module"})),x=(e,n)=>{const o=e.__vccOpts||e;for(const[r,a]of n)o[r]=a;return o},vm={class:"advanced-field-dropdown-wrapper","data-testid":"advanced-field-dropdown-wrapper"},xm={class:"material-icons"},Km=x(Object.assign({mixins:[Oe],emits:["model-updated"],expose:["validate","clearValidationErrors","schema"],data(){return{isOpen:!1}},computed:{openClass(){return this.isOpen?"open":"closed"},fieldCount(){return this.schema.fields.length},titleText(){return`${this.isOpen?"Hide":"View"} ${this.fieldCount} Advanced Fields`}},methods:{handleOpen(){this.isOpen=!this.isOpen},updateModel(e,n){this.$emit("model-updated",e,n)}}},{__name:"FieldAdvanced",setup(e){return(n,o)=>(t.openBlock(),t.createElementBlock("div",vm,[t.createElementVNode("button",{class:"advanced-field-title",type:"button",onClick:o[0]||(o[0]=(...r)=>n.handleOpen&&n.handleOpen(...r))},[t.createElementVNode("i",xm,t.toDisplayString(n.isOpen?"keyboard_arrow_up":"keyboard_arrow_right"),1),t.createElementVNode("span",null,t.toDisplayString(n.titleText),1)]),t.createElementVNode("div",{class:t.normalizeClass(["advanced-field-dropdown",n.openClass])},[t.createVNode(Q,{model:n.model,options:{helpAsHtml:!0},schema:n.schema,onModelUpdated:n.updateModel},null,8,["model","schema","onModelUpdated"])],2)]))}}),[["__scopeId","data-v-e8f66c8a"]]),jm={class:"array-card-container"},sa=x(t.defineComponent({__name:"FieldArrayCardContainer",props:{model:{type:Object,default:()=>null},schema:{type:Object,default:()=>null},index:{type:Number,default:void 0}},emits:["remove-item"],setup(e){const n=e;return t.provide("vfg-array-item-index",n.index),(o,r)=>{const a=t.resolveComponent("KCard"),i=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",jm,[t.createVNode(a,{class:"card"},{default:t.withCtx(()=>[t.renderSlot(o.$slots,"default",{},void 0,!0)]),_:3}),t.createVNode(i,{appearance:"tertiary",class:"array-card-remove-button",onClick:r[0]||(r[0]=d=>o.$emit("remove-item"))},{default:t.withCtx(()=>[t.createVNode(t.unref(me.TrashIcon))]),_:1})])}}}),[["__scopeId","data-v-a8366ec5"]]),zm={class:"array-item-wrapper"},$m={class:"array-item"},qm={class:"array-item-after"},da=x(t.defineComponent({__name:"FieldArrayItem",props:{model:{type:String,default:""}},emits:["remove-item"],setup(e){return(n,o)=>{const r=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",zm,[t.createElementVNode("div",$m,[t.renderSlot(n.$slots,"default",{},void 0,!0),t.createVNode(r,{appearance:"tertiary",class:"delete",onClick:o[0]||(o[0]=a=>n.$emit("remove-item"))},{default:t.withCtx(()=>[t.createVNode(t.unref(me.TrashIcon))]),_:1})]),t.createElementVNode("div",qm,[t.renderSlot(n.$slots,"after",{},void 0,!0)])])}}}),[["__scopeId","data-v-e6b6837c"]]),Hm={class:"multi-item-wrapper"},ca=x(t.defineComponent({__name:"FieldArrayMultiItem",emits:["remove-item"],setup(e){return(n,o)=>{const r=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",Hm,[t.renderSlot(n.$slots,"default",{},void 0,!0),t.createVNode(r,{appearance:"danger",class:"delete",onClick:o[0]||(o[0]=a=>n.$emit("remove-item"))},{default:t.withCtx(()=>[...o[1]||(o[1]=[t.createTextVNode(" - Remove Field ",-1)])]),_:1}),o[2]||(o[2]=t.createElementVNode("hr",null,null,-1))])}}}),[["__scopeId","data-v-b4fcf731"]]);var Ym=4;function ma(e){return vt(e,Ym)}const Gm="#6c7489",ua="12px",Wm="16px",fa="20px",Zm=["data-testid","data-testlabel"],Xm={class:"item-label"},Jm={class:"autosuggest__results_message"},Qm=x(t.defineComponent({__name:"AutoSuggest",props:t.mergeModels({placeholder:{default:""},suggestions:{},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},emptyMessage:{default:""},domId:{},error:{default:null}},{id:{required:!0},idModifiers:{}}),emits:t.mergeModels(["change","query-change"],["update:id"]),setup(e){const{t:n}=Ee.createI18n("en-us",we),o=t.useModel(e,"id");return(r,a)=>{const i=t.resolveComponent("KSelect");return t.openBlock(),t.createBlock(i,{id:e.domId,ref:"suggestion",modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=d=>o.value=d),clearable:"",disabled:e.disabled,"enable-filtering":"",error:e.error!==null,"filter-function":()=>!0,help:e.error!==null?e.error:void 0,items:e.suggestions,loading:e.loading,placeholder:e.placeholder,width:"100%",onChange:a[1]||(a[1]=d=>r.$emit("change",d)),onQueryChange:a[2]||(a[2]=d=>r.$emit("query-change",d))},t.createSlots({"item-template":t.withCtx(({item:d})=>[t.renderSlot(r.$slots,"item",{item:d},()=>[t.createElementVNode("span",{class:"item-label","data-testid":d.id&&`${d.id}-0`,"data-testlabel":d.label},t.toDisplayString(d.label),9,Zm)],!0)]),"selected-item-template":t.withCtx(({item:d})=>[t.renderSlot(r.$slots,"selected-item",{item:d},()=>[t.createElementVNode("span",Xm,t.toDisplayString(d.label),1)],!0)]),empty:t.withCtx(()=>[t.createElementVNode("div",Jm,[t.createElementVNode("span",null,t.toDisplayString(e.emptyMessage||t.unref(n)("fields.auto_suggest.no_results")),1)])]),_:2},[r.$slots.before?{name:"before",fn:t.withCtx(()=>[t.renderSlot(r.$slots,"before",{},void 0,!0)]),key:"0"}:void 0]),1032,["id","modelValue","disabled","error","help","items","loading","placeholder"])}}}),[["__scopeId","data-v-1e9151dd"]]),eu="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",Yn=e=>e?e.length===36&&new RegExp(`^${eu}$`).test(e):!1,tu={class:"selected-entity-item"},nu={class:"selected-entity-label"},ou={class:"entity-suggestion-item"},iu={class:"entity-label"},au={class:"entity-id"},ru=500,lu=50,su=1e3,pa=x(t.defineComponent({__name:"FieldScopedEntitySelect",props:{transformItem:{type:Function},allowUuidSearch:{type:Boolean,default:!1},placeholder:{},fields:{default:()=>[]},selectedItem:{},selectedItemLoading:{type:Boolean},domId:{},id:{},entity:{},disabled:{type:Boolean},fieldDisabled:{type:Boolean},error:{},labelField:{default:"name"}},emits:["change"],setup(e){const n=t.inject(Se,void 0),o=async(y,M)=>{if(!n)return console.warn("[@kong-ui-public/forms] No API service provided"),[];const{data:L}=await n.getAllV2(e.entity,{name:y,size:su},M);return L.data},r=async y=>n?n.peek(e.entity,y):(console.warn("[@kong-ui-public/forms] No API service provided"),Promise.resolve({data:{data:[]}})),a=async y=>{if(!n)return console.warn("[@kong-ui-public/forms] No API service provided"),{id:y};const M=await n.getOne(e.entity,y,{validateStatus:L=>L>=200&&L<300||L===404});if(M.status===404)throw new Error(`Entity of type ${e.entity} with id ${y} not found`);return M.data},i=e.transformItem??(y=>({...y,label:y[e.labelField],value:y.id})),d=t.ref(""),s=t.ref(!1),u=t.ref(!1),f=t.ref(""),p=t.ref([]),m=t.ref([]),g=t.ref([]),{t:k}=Ee.createI18n("en-us",we),w=t.ref(null);let C=null;const O=async(y,M)=>{if(!e.fieldDisabled){clearTimeout(C),C=setTimeout(()=>{s.value=!0},1500);try{const L=await y();m.value=L,p.value=m.value.map(i)}catch(L){if(M?.aborted)return;if(p.value=[],dr.isAxiosError(L)&&L.status===404){console.warn("unable to search with UUID",f.value,"for entity type",e.entity);return}d.value=L.message}finally{clearTimeout(C),s.value=!1}}},N=Et(y=>{if(y=y||"",f.value=y,!y.trim()&&!u.value){p.value=A(g.value);return}w.value&&w.value.abort();const M=new AbortController;if(w.value=M,u.value){V(y);return}b(y,M)},ru,{leading:!0}),U=async(y,M)=>await o(y,M),B=async()=>{const{data:{data:y,next:M,offset:L}}=await r(lu);return(!M||!L)&&(u.value=!0),m.value=y,g.value=y.map(ce=>({...i(ce),group:k("fields.auto_suggest.recently_created",{entity:e.entity})})),y},T=async y=>[await a(y)],b=(y,M)=>{Yn(y)&&e.allowUuidSearch?O(async()=>await T(y)):O(async()=>await U(y,M.signal),M.signal)},h=y=>{let M=[];M=A(g.value),y?.trim()?p.value=M.filter(L=>e.fields.some(ce=>(L[ce]||"").includes(y))):p.value=M},A=y=>e.selectedItem?y.some(M=>M.value===e.selectedItem.value)?y:[e.selectedItem,...y]:y,$=y=>{p.value=g.value.filter(M=>M.id===y)},V=y=>{Yn(y)&&e.allowUuidSearch?$(y):h(y)};return t.onMounted(async()=>{await O(B);const y=t.watch(()=>e.selectedItem,M=>{M&&(p.value=A(g.value)),y()});p.value=A(g.value)}),(y,M)=>(t.openBlock(),t.createBlock(Qm,{id:e.id,disabled:e.fieldDisabled,"dom-id":e.domId,"empty-message":d.value,error:e.error,loading:e.selectedItemLoading||s.value,placeholder:e.placeholder,readonly:e.disabled,suggestions:p.value,onChange:M[0]||(M[0]=L=>y.$emit("change",L)),onQueryChange:t.unref(N)},{before:t.withCtx(()=>[t.renderSlot(y.$slots,"before",{},()=>[t.createVNode(t.unref(me.SearchIcon),{color:`var(--kui-color-text-neutral, ${t.unref(Gm)})`,size:`var(--kui-icon-size-40, ${t.unref(fa)})`},null,8,["color","size"])],!0)]),"selected-item":t.withCtx(({item:L})=>[t.renderSlot(y.$slots,"selected-item",{item:L},()=>[t.createElementVNode("span",tu,[t.createElementVNode("span",nu,t.toDisplayString(L.label??L.id),1)])],!0)]),item:t.withCtx(({item:L})=>[t.renderSlot(y.$slots,"item",{item:L},()=>[t.createElementVNode("div",ou,[t.createElementVNode("span",iu,t.toDisplayString(L.label??t.unref($o)),1),t.createElementVNode("span",au,t.toDisplayString(L.id),1)])],!0)]),_:3},8,["id","disabled","dom-id","empty-message","error","loading","placeholder","readonly","suggestions","onQueryChange"]))}}),[["__scopeId","data-v-d8027156"]]);function ha(e,n,o){return o?Ve.SET_REFERRAL_VALUE:e&&!n||!e&&n?Ve.UPDATE_ENTITY:e&&n?Ve.CREATE_FROM_ENTITY:Ve.CREATE_NOT_FROM_ENTITY}const du={components:{FieldScopedEntitySelect:pa},mixins:[Oe],inject:[Se],emits:["model-updated"],setup(){const{t:e}=Ee.createI18n("en-us",we);return{t:e}},data(){return{idValue:"",error:null,initialItem:null,selectedItem:null,loading:!1}},computed:{fieldState(){return ha(this.model[this.schema.model],this.associatedEntity||this.entityId,this.bypassSearch)},associatedEntity(){const e=this.$route;return e&&e.params[this.entity]},entity(){return this.schema.entity},bypassSearch(){const e=this.$route;return e&&e.query&&e.query.no_search},inputFields(){return this.schema?.inputValues?.fields||[]},allowUuidSearch(){return this.inputFields.includes("id")},inputFieldsWithoutId(){return this.inputFields.filter(e=>e!=="id")},initialValueSelected(){return this.idValue===this.initialItem?.id}},async created(){await this.$nextTick();let e,n;this.error=null;try{switch(this.fieldState){case Ve.UPDATE_ENTITY:if(!this[Se]){console.warn("[@kong-ui-public/forms] No API service provided");break}this.loading=!0,n=await this.getOne(this.model[this.schema.model]),e=this.getItem(this.schema.entityDataKey?n[this.schema.entityDataKey]:n),this.idValue=e.id;break;case Ve.CREATE_FROM_ENTITY:this.idValue=this.associatedEntity.id;break;case Ve.SET_REFERRAL_VALUE:this.idValue=this.value}e&&(this.initialItem=this.transformItem(e),this.selectedItem=this.initialItem)}catch(o){this.error=o.message||this.t("fields.auto_suggest.error.load_entity",{entity:this.schema.entity}),console.error("err!",o)}finally{this.loading=!1}},methods:{async getOne(e){if(!this[Se])return console.warn("[@kong-ui-public/forms] No API service provided"),{};const n=await this[Se].getOne(this.entity,e,{validateStatus:o=>o>=200&&o<300||o===404});if(n.status===404)throw new Error(`Entity of type ${this.entity} with id ${e} not found`);return n.data},transformItem(e){const n=this.schema?.labelField||"id";return{...e,label:n&&e?e[n]:"",value:e.id}},getItem(e){return e.data?e.data.length>0?e.data[0]:[]:e},updateModel(e){this.$emit("model-updated",e?.length?e:null,this.schema.model)},onSelected(e){this.error=null,this.idValue=e&&e.id,this.selectedItem=e,this.updateModel(this.getReturnValue(e||{}))},getReturnValue(e){const n=this.schema?.returnKey;return n?e[n]:e.id}}};function cu(e,n,o,r,a,i){const d=t.resolveComponent("FieldScopedEntitySelect");return t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.schema.disabled?"k-tooltip":"div"),{class:"field-wrap autosuggest","max-width":"300",text:e.schema.disabledTooltip},{default:t.withCtx(()=>[t.createVNode(d,{id:a.idValue,"allow-uuid-search":i.allowUuidSearch,disabled:a.loading,"dom-id":e.schema.model,entity:i.entity,error:a.error,"field-disabled":e.schema.disabled,fields:i.inputFieldsWithoutId,"initial-item-selected":i.initialValueSelected,"label-field":e.schema.labelField||"id",placeholder:a.loading?r.t("fields.auto_suggest.loading"):e.schema.placeholder,"selected-item":a.selectedItem,"selected-item-loading":a.loading,onChange:i.onSelected},null,8,["id","allow-uuid-search","disabled","dom-id","entity","error","field-disabled","fields","initial-item-selected","label-field","placeholder","selected-item","selected-item-loading","onChange"])]),_:1},8,["text"])}const ga=x(du,[["render",cu],["__scopeId","data-v-2e8d29f1"]]),Gn=50,mu={mixins:[Oe],inject:[Se],emits:["model-updated"],setup(){const{t:e}=Ee.createI18n("en-us",we);return{t:e}},data(){return{suggestions:[],idValue:"",message:"Type something to search",items:[],initialItems:[],loading:!1}},computed:{fieldState(){return ha(this.model[this.schema.model],this.associatedEntity||this.entityId,this.bypassSearch)},associatedEntity(){const e=this.$route;return e&&e.params[this.entity]},entity(){return this.schema.entity},scope(){return this.schema.label.toLowerCase()},bypassSearch(){const e=this.$route;return e&&e.query&&e.query.no_search}},async created(){await this.$nextTick();let e,n;switch(this.fieldState){case Ve.UPDATE_ENTITY:if(!this[Se]){console.warn("[@kong-ui-public/forms] No API service provided");break}n=(await this[Se].getOne(this.entity,this.model[this.schema.model])).data,e=this.getItem(this.schema.entityDataKey?n[this.schema.entityDataKey]:n),this.idValue=e.id;break;case Ve.CREATE_FROM_ENTITY:this.idValue=this.associatedEntity.id;break;case Ve.SET_REFERRAL_VALUE:this.idValue=this.value}try{e&&(this.initialItems=[{...e,label:this.getSuggestionLabel(e),value:e.id}]),this.items=this.initialItems}catch(o){this.message=`There was an error loading ${this.schema.entity}`,console.error("err!",o)}},methods:{onQueryChange(e){e.trim().length===0&&(this.items=[],this.message="Type something to search"),typeof this.performSearch!="function"&&(this.performSearch=Et(this.search,500)),this.performSearch(e)},async search(e){if(e.trim().length===0)return;this.loading=!0;const n=[],o=[],r=this.getInputFields(),a=new Set;Yn(e)&&r.includes("id")?o.push((async()=>{const i=await this.fetchExact(e);n.push({...i,label:this.getSuggestionLabel(i),value:i.id})})()):o.push(...r.filter(i=>i!=="id").map(async i=>{(await this.fetchSuggestions(e,i)).forEach(s=>{a.has(s.id)||(a.add(s.id),n.push({...s,label:this.getSuggestionLabel(s),value:s.id}))})})),await Promise.all(o),this.items=n,this.items.length===0&&(this.message="No results"),this.loading=!1},getItem(e){return e.data?e.data.length>0?e.data[0]:[]:e},async fetchUntilLimit(e){const n=[];let o=null;if(!this[Se])return console.warn("[@kong-ui-public/forms] No API service provided"),[];for(;n.length<Gn;){const r=await this[Se].getAll(this.entity,{size:Gn,offset:o,...e});if(n.push(...r.data.data),o=r.data.offset,!o)break}return n.slice(0,Gn)},async fetchSuggestions(e,n){return this.fetchUntilLimit({[n]:e})},async fetchExact(e){return this[Se]?(await this[Se].getOne(this.entity,e)).data:(console.warn("[@kong-ui-public/forms] No API service provided"),{})},getInputFields(){return this.schema?.inputValues?.fields||[]},getSuggestionLabel(e){const n=this.getInputFields();return n.length&&e?n.map(o=>e[o]).filter(Boolean).join(" - "):""},updateModel(e){this.$emit("model-updated",e?.length?e:null,this.schema.model)},onSelected(e){this.idValue=e&&e.id,this.updateModel(this.getReturnValue(e||{}))},getReturnValue(e){const n=this.schema?.returnKey;return n?e[n]:e.id}}},uu=["data-testid","data-testlabel"],fu=["data-testid"],pu={class:"autosuggest__results_message"};function hu(e,n,o,r,a,i){const d=t.resolveComponent("KSelect");return t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.schema.disabled?"k-tooltip":"div"),{class:"field-wrap autosuggest","max-width":"300",text:r.t("general.disable_source_scope_change",{scope:i.scope})},{default:t.withCtx(()=>[t.createVNode(d,{id:e.schema.model,ref:"suggestion",modelValue:a.idValue,"onUpdate:modelValue":n[0]||(n[0]=s=>a.idValue=s),clearable:"",disabled:e.schema.disabled,"enable-filtering":"","filter-function":()=>!0,items:a.items,loading:a.loading,placeholder:e.schema.placeholder,width:"100%",onChange:i.onSelected,onQueryChange:i.onQueryChange},{"item-template":t.withCtx(({item:s})=>[t.createElementVNode("span",{class:"first-part","data-testid":s.id&&`${s.id}-0`,"data-testlabel":s.label},t.toDisplayString(i.getSuggestionLabel(s).split(" - ")[0]),9,uu),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.getSuggestionLabel(s).split(" - ").slice(1),(u,f)=>(t.openBlock(),t.createElementBlock("span",{key:f,class:"field-span","data-testid":s.id&&`${s.id}-${f+1}`||f+1},t.toDisplayString(u),9,fu))),128))]),empty:t.withCtx(()=>[t.createElementVNode("div",pu,[t.createElementVNode("span",null,t.toDisplayString(a.message),1)])]),_:1},8,["id","modelValue","disabled","items","loading","placeholder","onChange","onQueryChange"])]),_:1},8,["text"])}const ya=x(mu,[["render",hu],["__scopeId","data-v-c99420db"]]);function gu(e){const n=t.ref([]),o=t.ref(null),r=C=>lt(C)?dt[C]!=null?dt[C]:(console.warn(`'${C}' is not a validator function!`),null):C,a=t.computed({get(){let C;return z(j(e.schema,"get"))?C=e.schema.get(e.model?.value):C=j(e.model?.value,e.schema.model),k(C)},set(C){const O=a;C=w(C),z(C)?C(C,O):s(C,O)}}),i=C=>{u();const O=j(e.formOptions,"validateAsync",!1);let N=[];if(e.schema.readonly!==!0&&e.disabled!==!0){const B=[],T=e.schema?.validator;T&&(Array.isArray(T)?fe(T,b=>{B.push(r(b))}):B.push(r(T))),z(e.externalValidator)&&B.push(e.externalValidator),fe(B,b=>{if(O)N.push(b(a.value,e.schema,e.model?.value));else{const h=b(a.value,e.schema,e.model?.value);h&&z(h.then)?h.then(A=>{A&&(n.value=n.value.concat(A));const $=n.value.length===0;e.emitValidated&&e.emitValidated({isValid:$,errors:n.value,field:e.schema})}):h&&(N=N.concat(h))}})}const U=B=>{let T=[];if(fe(ji(B),b=>{Array.isArray(b)&&b.length>0?T=T.concat(b):lt(b)&&T.push(b)}),z(e.schema?.onValidated)&&e.schema.onValidated(e.model?.value,T,e.schema),!C){const b=T.length===0;e.emitValidated&&e.emitValidated({isValid:b,errors:T,field:e.schema})}return B=T,T};return O?Promise.all(N).then(U):U(N)},d=()=>{z(o.value)?o.value():o.value=Et(i,j(e.schema,"validateDebounceTime",j(e.formOptions,"validateDebounceTime",500)))},s=(C,O)=>{let N=!1;z(e.schema.set)?(e.schema.set(e.model?.value,C),N=!0):e.schema.model&&(f(e.schema.model,C),N=!0),N&&(e.emitModelUpdated&&e.model?.value&&e.emitModelUpdated({value:C,model:e.schema.model}),z(e.schema.onChanged)&&e.schema.onChanged(e.model?.value,C,O,e.schema),j(e.formOptions,"validateAfterChanged",!1)===!0&&(j(e.schema,"validateDebounceTime",j(e.formOptions,"validateDebounceTime",0))>0?d():i()))},u=()=>{n.value.splice(0)},f=(C,O)=>{let N=C.replace(/\[(\w+)\]/g,".$1");N=N.replace(/^\./,"");let U=e.model?.value||{},B=0;const T=N.split("."),b=T.length;for(;B<b;){const h=T[B];if(B<b-1)U[h]!==void 0||(U[h]={}),U=U[h];else{U[h]=O;return}++B}},p=(C,O=!1)=>{const N=j(e.formOptions,"fieldIdPrefix","");return jn(C,N)+(O?"-"+zi():"")},m=C=>`${p(C)}-label`,g=()=>j(e.schema,"fieldClasses",[]),k=C=>e.formatValueToField&&typeof e.formatValueToField=="function"?e.formatValueToField(C):C,w=C=>e.formatValueToModel&&typeof e.formatValueToModel=="function"?e.formatValueToModel(C):C;return{value:a,clearValidationErrors:u,getFieldID:p,getLabelId:m,getFieldClasses:g,updateModelValue:s}}function yu(e){const n=[],o=r=>{const a=["cluster-cache","cluster_cache"];for(const i of a)if(r.model.includes(i))return!1;return new RegExp("(?<=-redis-).*").test(r.model)};return e.fields.forEach(r=>{o(r)&&n.push(r)}),{redis:{id:"_redis",fields:n,model:"__redis_partial",redisType:e._supported_redis_partial_type,redisPath:e._redis_partial_path},redisModels:n.map(r=>r.model)}}function bu(e,n){const o=new RegExp("(?<=config-redis-).*"),r=/Config\.Redis.*/;return n.filter(i=>{const d=i.model.match(o);return d&&!Object.keys(e).includes(d[0])}).map(i=>{const d=i.label.match(r);return{label:d?d[0]:i.label,key:i.model,value:"N/A",type:"text"}})}const Ne={useAbstractFields:gu,useRedisPartial:yu,useRedisNonStandardFields:bu},_u={class:"form-field-wrapper"},ba=x(t.defineComponent({__name:"FieldInput",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRefs(r),d=t.inject(he,void 0),{updateModelValue:s,getFieldID:u,clearValidationErrors:f,value:p}=Ne.useAbstractFields({model:i.model,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:B=>{a("modelUpdated",B.value,B.model)}});n({clearValidationErrors:f});const m=t.computed(()=>{const B=r.schema?.inputType.toLowerCase();if(B==="number"&&r.schema?.referenceable===!0)return"text";switch(B){case"string":return"text";case"datetime":return"datetime-local";default:return B||"text"}}),g={date:"YYYY-MM-DD",datetime:"YYYY-MM-DD HH:mm:ss","datetime-local":"YYYY-MM-DDTHH:mm:ss"},k=(B,T)=>{let b=B;const h=g[m.value]||"",A=Ct.parse(B,h);A&&(r.schema?.format?b=Ct.format(A,r.schema?.format):b=A.valueOf()),s(b,T)},w=(B,T)=>{qn(B)||(B=NaN),s(B,T)},C=B=>{let T=B;switch(r.schema.inputType){case"number":case"range":aa(parseFloat(B))&&(T=parseFloat(B));break}p.value=T,s(T,B)},O=B=>{p.value=B,s(B,B)},N=t.ref(null),U=()=>{z(N.value)&&N.value?.flush()};return t.onMounted(()=>{switch(m.value){case"number":case"range":N.value=Et((B,T)=>{w(B,T)},parseInt(j(r.schema,"debounceFormatTimeout",1e3)),{trailing:!0,leading:!1});break;case"date":case"datetime":case"datetime-local":N.value=Et((B,T)=>{k(B,T)},parseInt(j(r.schema,"debounceFormatTimeout",1e3)),{trailing:!0,leading:!1});break}}),t.onBeforeMount(()=>{m.value==="checkbox"?console.warn("The use of 'checkbox' inputType with 'input' type fields is deprecated. Use 'checkbox' type instead."):m.value==="radio"?console.warn("The use of 'radio' inputType with 'input' type fields is deprecated. Use 'radio' type instead."):m.value==="file"&&console.warn("The 'file' type in input field is deprecated. Use 'file' field instead.")}),(B,T)=>(t.openBlock(),t.createElementBlock("div",_u,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m.value==="password"?t.unref(Eo.SecretInput):t.unref(cr.KInput)),t.mergeProps(B.$attrs,{id:t.unref(u)(e.schema),autocomplete:e.schema.autocomplete,class:e.schema.fieldClasses,disabled:e.disabled||void 0,help:e.hint?e.hint:m.value==="color"||m.value==="range"?t.unref(p):void 0,max:e.schema.max,maxlength:e.schema.maxlength,min:e.schema.min,minlength:e.schema.minlength,"model-value":t.unref(p),name:e.schema.inputName,pattern:e.schema.pattern,placeholder:e.schema.placeholder,readonly:e.schema.readonly,required:e.schema.required,type:m.value==="password"?void 0:m.value,width:e.schema.width,onBlur:U,"onUpdate:modelValue":C}),null,16,["id","autocomplete","class","disabled","help","max","maxlength","min","minlength","model-value","name","pattern","placeholder","readonly","required","type","width"])),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(d)),{schema:e.schema,update:O,value:t.unref(p)},null,8,["schema","value"]))]))}}),[["__scopeId","data-v-179bb127"]]),Eu={name:"FieldMetric",components:{AddIcon:me.AddIcon,TrashIcon:me.TrashIcon},mixins:[Oe],emits:["remove-item"],data(){return{contentVisible:!1}}},Cu={key:0,class:"content"};function Su(e,n,o,r,a,i){const d=t.resolveComponent("AddIcon"),s=t.resolveComponent("TrashIcon"),u=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["field-dropdown",{active:a.contentVisible}])},[t.createElementVNode("div",{class:"title",onClick:n[0]||(n[0]=f=>a.contentVisible=!a.contentVisible)},[t.createTextVNode(t.toDisplayString(e.model.name?e.model.name:"New Item")+" ",1),t.createVNode(d,{class:"metric-add-icon"})]),t.createVNode(t.Transition,{name:"slide-fade"},{default:t.withCtx(()=>[a.contentVisible?(t.openBlock(),t.createElementBlock("div",Cu,[t.renderSlot(e.$slots,"default"),t.createVNode(u,{appearance:"tertiary",class:"metric-remove-button",onClick:n[1]||(n[1]=f=>e.$emit("remove-item"))},{default:t.withCtx(()=>[t.createVNode(s)]),_:1})])):t.createCommentVNode("",!0)]),_:3})],2)}const _a=x(Eu,[["render",Su]]),ku={class:"field-object-container"},wu={key:1},Tu=["id"],Mu={key:0},Au=["onUpdate:modelValue"],Nu={key:1},Iu=["onUpdate:modelValue"],Vu={key:2},Ou=["onUpdate:modelValue"],Bu=["onClick"],Ea=x(Object.assign({mixins:[Oe],emits:["modelUpdated"],expose:["validate","clearValidationErrors","schema"],data(){return{attributes:this.schema?this.schema.attributes:void 0,newKeyType:"string",newKeyName:"",keyTypes:{}}},created(){this.value||(this.value={})},mounted(){if(!this.value)return;const e=Object.keys(this.value),n={};for(let o=0;o<e.length;o++){const r=e[o];n[r]=typeof this.value[r]}this.keyTypes=n},methods:{removeElement(e){const n=this.value;delete n[e],this.value=JSON.parse(JSON.stringify(n));const o=this.keyTypes;delete o[e],this.keyTypes=JSON.parse(JSON.stringify(o))},addKey(){this.value[this.newKeyName]=void 0,this.value={...this.value},this.keyTypes[this.newKeyName]=this.newKeyType,this.keyTypes={...this.keyTypes},this.newKeyName=""},updateModel(e,n){this.$emit("modelUpdated",e,n)}}},{__name:"FieldObject",setup(e){return(n,o)=>{const r=t.resolveDirective("attributes");return t.withDirectives((t.openBlock(),t.createElementBlock("div",ku,[n.schema.schema?(t.openBlock(),t.createBlock(Q,{key:0,model:n.value,options:n.formOptions,schema:n.schema.schema,onModelUpdated:n.updateModel},null,8,["model","options","schema","onModelUpdated"])):(t.openBlock(),t.createElementBlock("div",wu,[t.createElementVNode("table",{id:n.getFieldID(n.schema),class:t.normalizeClass(n.schema.fieldClasses)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.value,(a,i)=>(t.openBlock(),t.createElementBlock("tr",{key:i},[t.createElementVNode("td",null,t.toDisplayString(i),1),n.keyTypes[i]==="string"?(t.openBlock(),t.createElementBlock("td",Mu,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":d=>n.value[i]=d,type:"text"},null,8,Au),[[t.vModelText,n.value[i]]])])):t.createCommentVNode("",!0),n.keyTypes[i]==="boolean"?(t.openBlock(),t.createElementBlock("td",Nu,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":d=>n.value[i]=d,type:"checkbox"},null,8,Iu),[[t.vModelCheckbox,n.value[i]]])])):t.createCommentVNode("",!0),n.keyTypes[i]==="number"?(t.openBlock(),t.createElementBlock("td",Vu,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":d=>n.value[i]=d,type:"number"},null,8,Ou),[[t.vModelText,n.value[i]]])])):t.createCommentVNode("",!0),t.createElementVNode("td",null,[t.createElementVNode("input",{type:"button",value:"x",onClick:d=>n.removeElement(i)},null,8,Bu)])]))),128))],10,Tu),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":o[0]||(o[0]=a=>n.newKeyType=a)},[...o[3]||(o[3]=[t.createElementVNode("option",{value:"string"}," String ",-1),t.createElementVNode("option",{value:"number"}," Number ",-1),t.createElementVNode("option",{value:"boolean"}," Boolean ",-1)])],512),[[t.vModelSelect,n.newKeyType]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":o[1]||(o[1]=a=>n.newKeyName=a),type:"text"},null,512),[[t.vModelText,n.newKeyName]]),t.createElementVNode("input",{type:"button",value:"Add key",onClick:o[2]||(o[2]=(...a)=>n.addKey&&n.addKey(...a))})]))])),[[r,n.attributes]])}}}),[["__scopeId","data-v-6eddb0ed"]]),Fu=["id"],Ru=["data-testid"],Du={class:"item-wrapper"},Uu={class:"index-wrapper"},Lu={key:0},Pu={key:1},vu=["onUpdate:modelValue","placeholder","type","onInput"],xu={key:0,class:"hint"},Ku={class:"input-item"},ju=["placeholder"],zu={key:0,class:"hint"},Ca=x(Object.assign({mixins:[Oe],inject:{autofillSlot:{from:he,default:void 0}},emits:["model-updated"],expose:["validate","clearValidationErrors","schema"],data(){return{newKeyName:""}},computed:{subSchema(){return this.schema.schema&&this.schema.schema.fields[0].schema},subFields(){return!this.subSchema&&this.schema.fields},hasObjectKeys(){return this.value&&Object.keys(this.value).length>0},transformedModel(){return this.subSchema&&this.subSchema.fields.length>=1&&this.subSchema.fields[0].type==="array"?new Proxy(this.model[this.schema.model],{get:(e,n)=>({[this.schema.model]:e[n]}),set:(e,n,o)=>e[n]=o[this.schema.model]}):this.model[this.schema.model]},valueInputType(){return["number","integer"].includes(this.schema.values?.type)?"number":"text"}},mounted(){this.value||(this.value={});let e=[];this.subSchema?e=this.subSchema.fields:this.subFields&&(e=this.schema.fields[0].schema),this.value=this.transformMapModelValuesToObject(this.model,e,this.schema.model)},methods:{removeElement(e){const n=this.value;delete n[e],this.value={...n}},transformMapModelValuesToObject(e,n,o){let r={};try{r=JSON.parse(JSON.stringify(e??{}))[o]??{}}catch{}return Object.keys(e).map(a=>{const i=a.indexOf(o+"-");if(i>-1&&Array.isArray(n))if(n.length>0){const s=a.split("-").filter(f=>n.find(p=>p.model===f)),u=a.split(`-${s}`)[0].split(`${o}-`)[1];s.length?r[u]={...r[u],[s]:e[a]}:r[a.substring(i+`${o}-`.length)]=e[a]}else r[a.substring(`${o}-`.length)]=e[a];else{const s=a.split("-").filter(f=>f===this.schema.model),u=a.split(`-${s}`)[0].split(`${o}-`)[1];u&&(r[u]=e[a])}return a}),r},addKey(){const e=this.subSchema&&Array.isArray(this.subSchema.fields)&&this.subSchema.fields.length===1&&this.subSchema.fields[0].type==="array",n=this.schema.values?.default??(this.valueInputType==="number"?0:""),o=this.subSchema?e?[""]:{}:n;this.value[this.newKeyName]=o,this.newKeyName=""},updateModel(e,n){this.$emit("model-updated",this.model[this.schema.model],n)}}},{__name:"FieldObjectAdvanced",setup(e){return(n,o)=>{const r=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",{id:n.getFieldID(n.schema),class:t.normalizeClass(["object-advanced-wrapper",n.schema.fieldClasses])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.value,(a,i)=>(t.openBlock(),t.createElementBlock("div",{key:i,"data-testid":`field-object-key-${i}`},[t.createElementVNode("div",null,[t.createElementVNode("div",Du,[t.createElementVNode("div",Uu,[t.createElementVNode("strong",null,t.toDisplayString(i),1),t.createElementVNode("div",null,[t.createVNode(r,{appearance:"tertiary",class:"delete",icon:"",type:"button",onClick:d=>n.removeElement(i)},{default:t.withCtx(()=>[t.createVNode(t.unref(me.TrashIcon))]),_:1},8,["onClick"])])]),o[1]||(o[1]=t.createElementVNode("hr",{class:"divider"},null,-1)),n.subSchema?(t.openBlock(),t.createElementBlock("div",Lu,[t.createVNode(Q,{model:n.transformedModel[i],options:{helpAsHtml:!0},schema:n.subSchema,onModelUpdated:n.updateModel},null,8,["model","schema","onModelUpdated"])])):(t.openBlock(),t.createElementBlock("div",Pu,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":d=>n.value[i]=d,class:"form-control",placeholder:n.schema.fields&&n.schema.fields[0].schema.placeholder,type:n.valueInputType,onInput:d=>n.updateModel(n.value[i],n.model[n.schema.model])},null,40,vu),[[t.vModelDynamic,n.value[i]]]),n.schema.fields&&n.schema.fields[0].schema.hint?(t.openBlock(),t.createElementBlock("p",xu,t.toDisplayString(n.schema.fields[0].schema.hint),1)):t.createCommentVNode("",!0),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(n.autofillSlot),{schema:n.schema.fields&&n.schema.fields[0].schema||n.schema.values,update:d=>n.value[i]=d,value:n.value[i]},null,8,["schema","update","value"]))])),o[2]||(o[2]=t.createElementVNode("hr",{class:"wide-divider"},null,-1))])])],8,Ru))),128)),t.createElementVNode("div",{class:t.normalizeClass(["input-wrapper",{indent:n.hasObjectKeys}])},[t.createElementVNode("div",Ku,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=a=>n.newKeyName=a),class:"form-control","data-testid":"keyname-input",placeholder:n.schema.placeholder,type:"text"},null,8,ju),[[t.vModelText,n.newKeyName]]),t.createVNode(r,{appearance:"tertiary","data-testid":"add-key",disabled:!n.newKeyName,onClick:n.addKey},{default:t.withCtx(()=>[t.createTextVNode(" + Add "+t.toDisplayString(n.schema.buttonLabel||n.schema.label),1)]),_:1},8,["disabled","onClick"])]),n.schema.hintText?(t.openBlock(),t.createElementBlock("p",zu,t.toDisplayString(n.schema.hintText),1)):t.createCommentVNode("",!0)],2)],10,Fu)}}}),[["__scopeId","data-v-0faeec4d"]]),$u={class:"radio-selection-group"},Sa=x(t.defineComponent({__name:"FieldRadio",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRefs(r),{updateModelValue:d,value:s,clearValidationErrors:u}=Ne.useAbstractFields({model:i.model,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:p=>{a("modelUpdated",p.value,p.model)}});n({clearValidationErrors:u});const f=p=>{let m=p;typeof p=="string"&&(m=p.split(","),r.schema.array||(m=m.toString())),d(m,p)};return(p,m)=>{const g=t.resolveComponent("KRadio");return t.openBlock(),t.createElementBlock("div",$u,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.schema.values,(k,w)=>(t.openBlock(),t.createBlock(g,{id:e.schema.name+"-"+w,key:k.value,modelValue:t.unref(s),"onUpdate:modelValue":m[0]||(m[0]=C=>t.isRef(s)?s.value=C:null),label:k.name,"label-attributes":{info:e.schema.help},name:e.schema.name,required:e.schema.required||void 0,"selected-value":k.value,onChange:f},null,8,["id","modelValue","label","label-attributes","name","required","selected-value"]))),128))])}}}),[["__scopeId","data-v-a070103e"]]),ka=t.defineComponent({__name:"FieldSelect",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.computed(()=>r.schema.selectOptions||{}),d=C=>te(C)?null:C,s=t.toRefs(r),{getFieldID:u,clearValidationErrors:f,value:p}=Ne.useAbstractFields({model:s.model,schema:r.schema,formOptions:r.formOptions,formatValueToField:d,emitModelUpdated:C=>{a("modelUpdated",C.value,C.model)}});n({clearValidationErrors:f});const m=t.computed(()=>{const C=r.schema.values;return g(typeof C=="function"?C.apply(this,[r.model,r.schema]):C)}),g=C=>{const O=[];return C.forEach(N=>{O.push({label:w(N),value:k(N),disabled:typeof N=="object"&&N.disabled||void 0,group:typeof N=="object"&&String(N.group||"").toUpperCase()||void 0})}),O},k=C=>{if(Ce(C)){if(i.value&&typeof i.value.value<"u")return C[i.value.value];if(typeof C.id<"u")return String(C.id);throw new Error("`id` is not defined. If you want to use another key name, add a `value` property under `selectOptions` in the schema. https://icebob.gitbooks.io/vueformgenerator/content/fields/select.html#select-field-with-object-items")}else return C},w=C=>{if(Ce(C)){if(i.value&&typeof i.value.name<"u")return C[i.value.name];if(typeof C.name<"u")return String(C.name);throw new Error("`name` is not defined. If you want to use another key name, add a `name` property under `selectOptions` in the schema. https://icebob.gitbooks.io/vueformgenerator/content/fields/select.html#select-field-with-object-items")}else return String(C)};return(C,O)=>{const N=t.resolveComponent("KSelect");return t.openBlock(),t.createBlock(N,{id:t.unref(u)(e.schema),modelValue:t.unref(p),"onUpdate:modelValue":O[0]||(O[0]=U=>t.isRef(p)?p.value=U:null),class:t.normalizeClass(e.schema.fieldClasses),clearable:!e.schema.required,disabled:e.disabled||void 0,items:m.value,"kpop-attributes":{"data-testid":`${t.unref(u)(e.schema)}-items`},"label-attributes":{info:e.schema.help},name:e.schema.inputName,placeholder:i.value.hideNoneSelectedText?void 0:i.value.noneSelectedText||"Nothing Selected",required:e.schema.required||void 0,width:"100%"},null,8,["id","modelValue","class","clearable","disabled","items","kpop-attributes","label-attributes","name","placeholder","required"])}}}),qu={class:"field-string-array"},wa=x(t.defineComponent({__name:"FieldStringArray",props:{formOptions:{},model:{},schema:{}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=o,{updateModelValue:a,getFieldID:i,getLabelId:d,clearValidationErrors:s,value:u}=Ne.useAbstractFields({model:t.toRef(()=>e.model),schema:e.schema,formOptions:e.formOptions,emitModelUpdated:k=>{r("modelUpdated",k.value,k.model)}});n({clearValidationErrors:s});const f=t.ref("");function p(k){return Array.isArray(k)?k.map(w=>String(w).trim()).filter(Boolean).join(", "):""}function m(k){return k?k.trim().split(",").map(w=>w.trim()).filter(Boolean):[]}function g(k){f.value=k;const w=m(k);a(w,u.value)}return t.watch(u,k=>{const w=k?p(k):"";p(m(f.value))!==w&&(f.value=w)},{immediate:!0}),(k,w)=>{const C=t.resolveComponent("KInput");return t.openBlock(),t.createElementBlock("div",qu,[t.createVNode(C,t.mergeProps(k.$attrs,{id:t.unref(i)(e.schema),"aria-labelledby":t.unref(d)(e.schema),class:e.schema.fieldClasses,help:"Use comma to separate values. eg: value1, value2","model-value":f.value,placeholder:e.schema.placeholder||"Comma separated values",type:"text","onUpdate:modelValue":g}),null,16,["id","aria-labelledby","class","model-value","placeholder"])])}}}),[["__scopeId","data-v-cf2eff67"]]),Hu={name:"FieldArray",components:{FieldArrayItem:da,FieldArrayMultiItem:ca,FieldSelect:ka,FieldMetric:_a,FieldObject:Ea,FieldObjectAdvanced:Ca,FieldAutoSuggest:ga,FieldAutoSuggestLegacy:ya,FieldRadio:Sa,FieldArrayCardContainer:sa,FieldInput:ba,FieldStringArray:wa,TrashIcon:me.TrashIcon},mixins:[Oe],inject:{autofillSlot:{from:he,default:void 0}},props:{newElementButtonLabel:{type:String,default:"New Item"},removeElementButtonLabel:{type:String,default:"x"}},emits:["refreshModel"],methods:{generateSchema(e,n,o){let r;return n&&(r=JSON.parse(JSON.stringify(n)),n.schema?.fields&&r.schema?.fields?.forEach?.((a,i)=>{const d=n.schema.fields[i];d&&Object.keys(d).forEach(s=>{typeof d[s]=="function"&&(a[s]=d[s])})}),r.schema?.fields?.map?.(a=>(a.id=`${a.id||a.model}-${o}`,a))),{...r,set(a,i){e[o]=i},get(){return e[o]}}},newElement(){let e=this.value,n;(!e||!e.push)&&(e=[]),this.schema.items&&this.schema.items.default&&(typeof this.schema.items.default=="function"?n=this.schema.items.default():n=this.schema.items.default),e.push(n),this.value=[...e]},removeElement(e){this.value=this.value.filter((n,o)=>o!==e)},getFieldComponent(e){return e.component?e.component:"field-"+e.type},modelUpdated(){this.$emit("refreshModel")},handleInput(e,n){let o=e;this.schema?.inputAttributes?.type==="number"&&qn(parseFloat(e))&&(o=parseFloat(e)),this.value=this.value.map((r,a)=>a===n?o:r)},isStringArrayItems(){const e=this.schema?.elements;return e?e.type==="array"&&e.elements?.type==="string":!1},generateStringArraySchema(e){return{model:String(e),id:`${this.schema.id||this.schema.model}-${e}`,placeholder:this.schema.placeholder,help:this.schema.help,fieldClasses:this.schema.inputAttributes?.class,get:()=>this.value[e]}},handleStringArrayUpdate(e,n){this.value=this.value.map((o,r)=>r===n?e:o),this.$emit("refreshModel")}}},Yu=["id"],Gu={key:0,class:"string-array-item"},Wu={key:2},Zu=["onUpdate:modelValue","aria-labelledby","type"],Xu=["onUpdate:modelValue","aria-labelledby"];function Ju(e,n,o,r,a,i){const d=t.resolveComponent("FieldStringArray"),s=t.resolveComponent("TrashIcon"),u=t.resolveComponent("KButton"),f=t.resolveComponent("KTextArea"),p=t.resolveComponent("KInput");return e.schema?(t.openBlock(),t.createElementBlock("div",{key:0,id:e.getFieldID(e.schema),class:t.normalizeClass(e.schema.fieldClasses)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.value,(m,g)=>(t.openBlock(),t.createElementBlock("div",{key:g,class:t.normalizeClass(e.schema.fieldItemsClasses)},[i.isStringArrayItems()?(t.openBlock(),t.createElementBlock("div",Gu,[t.createVNode(d,{"form-options":e.formOptions,model:e.value,schema:i.generateStringArraySchema(g),onModelUpdated:k=>i.handleStringArrayUpdate(k,g)},null,8,["form-options","model","schema","onModelUpdated"]),t.createVNode(u,{appearance:"tertiary",class:"string-array-remove-btn",icon:"",onClick:k=>i.removeElement(g)},{default:t.withCtx(()=>[t.createVNode(s,{decorative:""})]),_:1},8,["onClick"])])):e.schema.items&&e.schema.itemContainerComponent?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.schema.itemContainerComponent),{key:1,index:g,model:m,schema:i.generateSchema(e.value,e.schema.items,g),onRemoveItem:k=>i.removeElement(g)},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.getFieldComponent(e.schema.items)),{"form-options":e.formOptions,model:m,schema:i.generateSchema(e.value,e.schema.items,g),onModelUpdated:i.modelUpdated},null,40,["form-options","model","schema","onModelUpdated"]))]),_:2},1064,["index","model","schema","onRemoveItem"])):e.schema.items?(t.openBlock(),t.createElementBlock("span",Wu,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.getFieldComponent(e.schema.items)),{"form-options":e.formOptions,model:m,schema:i.generateSchema(e.value,e.schema.items,g),onModelUpdated:i.modelUpdated},null,40,["form-options","model","schema","onModelUpdated"]))])):e.schema.itemContainerComponent?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.schema.itemContainerComponent),{key:3,"data-testid":`${e.getFieldID(e.schema)}-item-${g}`,model:m,schema:i.generateSchema(e.value,e.schema.items,g),onRemoveItem:k=>i.removeElement(g)},{after:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{schema:e.schema,update:k=>e.value[g]=k,value:e.value[g]},null,8,["schema","update","value"]))]),default:t.withCtx(()=>[e.schema.inputAttributes&&e.schema.inputAttributes.type==="textarea"?(t.openBlock(),t.createBlock(f,t.mergeProps({key:0,ref_for:!0},e.schema.inputAttributes,{id:e.getFieldID(e.schema),modelValue:e.value[g],"onUpdate:modelValue":k=>e.value[g]=k,"aria-labelledby":e.getLabelId(e.schema),autosize:"","character-limit":e.schema.inputAttributes.max,class:e.schema.fieldClasses,maxlength:e.schema.max,minlength:e.schema.min,name:e.schema.inputName,placeholder:e.schema.placeholder,readonly:e.schema.readonly,required:e.schema.required,resizable:"",rows:e.schema.rows||3}),null,16,["id","modelValue","onUpdate:modelValue","aria-labelledby","character-limit","class","maxlength","minlength","name","placeholder","readonly","required","rows"])):!e.schema.inputAttributes||!e.schema.inputAttributes.type||e.schema.inputAttributes.type==="text"||e.schema.inputAttributes.type==="number"?(t.openBlock(),t.createBlock(p,t.mergeProps({key:1,"aria-labelledby":e.getLabelId(e.schema)},{ref_for:!0},e.schema.inputAttributes,{"model-value":e.value[g],type:e.schema.inputAttributes&&e.schema.inputAttributes.type||"text",onInput:k=>{i.handleInput(k,g)}}),null,16,["aria-labelledby","model-value","type","onInput"])):t.withDirectives((t.openBlock(),t.createElementBlock("input",t.mergeProps({key:2,"onUpdate:modelValue":k=>e.value[g]=k,"aria-labelledby":e.getLabelId(e.schema)},{ref_for:!0},e.schema.inputAttributes,{type:e.schema.inputAttributes?.type||"text"}),null,16,Zu)),[[t.vModelDynamic,e.value[g]]])]),_:2},1064,["data-testid","model","schema","onRemoveItem"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:4},[t.withDirectives(t.createElementVNode("input",t.mergeProps({ref_for:!0},e.schema.inputAttributes,{"onUpdate:modelValue":k=>e.value[g]=k,"aria-labelledby":e.getLabelId(e.schema),type:"text"}),null,16,Xu),[[t.vModelText,e.value[g]]]),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{schema:e.schema,update:k=>e.value[g]=k,value:e.value[g]},null,8,["schema","update","value"]))],64))],2))),128)),t.createVNode(u,{appearance:"tertiary",class:t.normalizeClass(e.schema.newElementButtonLabelClasses),"data-testid":`add-${e.getFieldID(e.schema)}`,type:"button",onClick:i.newElement},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.schema.newElementButtonLabel||o.newElementButtonLabel),1)]),_:1},8,["class","data-testid","onClick"])],10,Yu)):t.createCommentVNode("",!0)}const Qu=x(Hu,[["render",Ju],["__scopeId","data-v-64e1f575"]]),ef={class:"form-field-wrapper field-checkbox"},tf=["innerHTML"],nf=x(t.defineComponent({__name:"FieldCheckbox",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRefs(r),{getFieldID:d,value:s,clearValidationErrors:u}=Ne.useAbstractFields({model:i.model,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:m=>{a("modelUpdated",m.value,m.model)}}),f=t.computed(()=>r.schema.help?on.sanitize(r.schema.help.replace(/<\/?p>/g,"").trim()):""),p=t.computed(()=>{const m=r.schema.checkboxDescription;return typeof m=="function"?m(r.model)||void 0:m||void 0});return n({clearValidationErrors:u}),(m,g)=>{const k=t.resolveComponent("KCheckbox");return t.openBlock(),t.createElementBlock("div",ef,[t.createVNode(k,t.mergeProps(m.$attrs,{id:t.unref(d)(e.schema),modelValue:t.unref(s),"onUpdate:modelValue":g[0]||(g[0]=w=>t.isRef(s)?s.value=w:null),autocomplete:e.schema.autocomplete,class:e.schema.fieldClasses,description:p.value||void 0,disabled:e.disabled||void 0,help:e.hint?e.hint:void 0,label:e.schema.checkboxLabel||void 0,"label-attributes":e.schema.checkboxLabel&&e.schema.help?{tooltipAttributes:{maxWidth:"300"}}:void 0,name:e.schema.inputName,readonly:e.schema.readonly,required:e.schema.required,width:e.schema.width}),t.createSlots({_:2},[e.schema.checkboxLabel&&e.schema.help?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("span",{innerHTML:f.value},null,8,tf)]),key:"0"}:void 0]),1040,["id","modelValue","autocomplete","class","description","disabled","help","label","label-attributes","name","readonly","required","width"])])}}}),[["__scopeId","data-v-39c92a17"]]),of={class:"wrapper"},af=["disabled"],rf=["id","checked","disabled","onChange","name"],lf=["disabled"],sf={class:"info"},df={class:"dropList"},cf=["id","checked","disabled","onChange","name"];function mf(e,n,o,r,a,i){const d=t.resolveDirective("attributes");return t.withDirectives((t.openBlock(),t.createElementBlock("div",of,[e.schema.listBox?(t.openBlock(),t.createElementBlock("div",{key:0,class:"listbox form-control",disabled:e.disabled||null},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.items,s=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["list-row",{"is-checked":i.isItemChecked(s)}])},[t.createElementVNode("label",null,[t.withDirectives(t.createElementVNode("input",{id:e.getFieldID(e.schema,!0),type:"checkbox",checked:i.isItemChecked(s)||null,disabled:e.disabled||null,onChange:u=>i.onChanged(u,s),name:i.getInputName(s)},null,40,rf),[[d,"input"]]),t.createTextVNode(t.toDisplayString(i.getItemName(s)),1)])],2))),256))],8,af)):t.createCommentVNode("",!0),e.schema.listBox?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:1,class:"combobox form-control",disabled:e.disabled||null},[t.createElementVNode("div",{class:t.normalizeClass(["mainRow",{expanded:a.comboExpanded}]),onClick:n[0]||(n[0]=(...s)=>i.onExpandCombo&&i.onExpandCombo(...s))},[t.createElementVNode("div",sf,t.toDisplayString(i.selectedCount)+" selected",1),n[1]||(n[1]=t.createElementVNode("div",{class:"arrow"},null,-1))],2),t.createElementVNode("div",df,[a.comboExpanded?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(i.items,s=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["list-row",{"is-checked":i.isItemChecked(s)}])},[t.createElementVNode("label",null,[t.withDirectives(t.createElementVNode("input",{id:e.getFieldID(e.schema,!0),type:"checkbox",checked:i.isItemChecked(s)||null,disabled:e.disabled||null,onChange:u=>i.onChanged(u,s),name:i.getInputName(s)},null,40,cf),[[d,"input"]]),t.createTextVNode(t.toDisplayString(i.getItemName(s)),1)])],2))),256)):t.createCommentVNode("",!0)])],8,lf))])),[[d,"wrapper"]])}const uf=x({mixins:[Oe],data(){return{comboExpanded:!1}},computed:{items(){const e=this.schema.values;return typeof e=="function"?e.apply(this,[this.model,this.schema]):e},selectedCount(){return this.value?this.value.length:0}},methods:{getInputName(e){return this.schema&&this.schema.inputName&&this.schema.inputName.length>0?Pi(this.schema.inputName+"_"+this.getItemValue(e)):Pi(this.getItemValue(e))},getItemValue(e){if(Ce(e)){if(typeof this.schema.checklistOptions<"u"&&typeof this.schema.checklistOptions.value<"u")return e[this.schema.checklistOptions.value];if(typeof e.value<"u")return e.value;throw new Error("`value` is not defined. If you want to use another key name, add a `value` property under `checklistOptions` in the schema. https://icebob.gitbooks.io/vueformgenerator/content/fields/checklist.html#checklist-field-with-object-values")}else return e},getItemName(e){if(Ce(e)){if(typeof this.schema.checklistOptions<"u"&&typeof this.schema.checklistOptions.name<"u")return e[this.schema.checklistOptions.name];if(typeof e.name<"u")return e.name;throw new Error("`name` is not defined. If you want to use another key name, add a `name` property under `checklistOptions` in the schema. https://icebob.gitbooks.io/vueformgenerator/content/fields/checklist.html#checklist-field-with-object-values")}else return e},isItemChecked(e){return this.value&&this.value.indexOf(this.getItemValue(e))!==-1},onChanged(e,n){if((te(this.value)||!Array.isArray(this.value))&&(this.value=[]),e.target.checked){const o=ma(this.value);o.push(this.getItemValue(n)),this.value=o}else{const o=ma(this.value);o.splice(this.value.indexOf(this.getItemValue(n)),1),this.value=o}},onExpandCombo(){this.comboExpanded=!this.comboExpanded}}},[["render",mf]]),ff={name:"FieldKeyValuePairs",components:{TrashIcon:me.TrashIcon},mixins:[Oe],inject:{autofillSlot:{from:he,default:void 0}},data(){return{pairs:[]}},watch:{pairs:{handler(){this.updateValue()},deep:!0}},created(){this.value||(this.value={});const e=this.model?.[this.schema?.model]??{};Object.keys(e).forEach(n=>{this.pairs.push({key:n,value:e[n]})})},methods:{onInput(e,n,o){this.pairs[n][o]=e.target.value},updateValue(){this.value=this.pairs.reduce((e,{key:n,value:o})=>({...e,...n&&o?{[n]:o}:null}),{})},addPair(){this.pairs.push({key:"",value:""})},removePair(e){this.pairs.splice(e,1)}}},pf={class:"key-value-pairs-editor"},hf={class:"pair-item-cell"},gf=["data-testid","placeholder","value","onInput"],yf={class:"pair-item-cell"},bf=["data-testid","placeholder","value","onInput"];function _f(e,n,o,r,a,i){const d=t.resolveComponent("TrashIcon"),s=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",pf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.pairs,(u,f)=>(t.openBlock(),t.createElementBlock("div",{key:f,class:"pair-item"},[t.createElementVNode("div",hf,[t.createElementVNode("input",{class:"form-control","data-testid":`${e.getFieldID(e.schema)}-pair-key-${f}`,placeholder:e.schema.keyInputPlaceholder??"Key",type:"text",value:u.key,onInput:p=>{i.onInput(p,f,"key")}},null,40,gf),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{schema:e.schema,update:p=>i.onInput({target:{value:p}},f,"key"),value:u.key},null,8,["schema","update","value"]))]),t.createElementVNode("div",yf,[t.createElementVNode("input",{class:"form-control","data-testid":`${e.getFieldID(e.schema)}-pair-value-${f}`,placeholder:e.schema.valueInputPlaceholder??"Value",type:"text",value:u.value,onInput:p=>{i.onInput(p,f,"value")}},null,40,bf),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{schema:e.schema,update:p=>i.onInput({target:{value:p}},f,"value"),value:u.value},null,8,["schema","update","value"]))]),t.createVNode(s,{appearance:"tertiary","data-testid":`${e.getFieldID(e.schema)}-remove-pair-${f}`,onClick:()=>{i.removePair(f)}},{default:t.withCtx(()=>[t.createVNode(d)]),_:1},8,["data-testid","onClick"])]))),128)),t.createVNode(s,{appearance:"tertiary",class:t.normalizeClass(e.schema.newElementButtonLabelClasses),"data-testid":`${e.getFieldID(e.schema)}-add-pair`,type:"button",onClick:i.addPair},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.schema.newElementButtonLabel??"+ Add Pair"),1)]),_:1},8,["class","data-testid","onClick"])])}const Ef=x(ff,[["render",_f],["__scopeId","data-v-be99d00c"]]),Cf=x(t.defineComponent({__name:"FieldLabel",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0}},setup(e){const n=e,o=t.toRefs(n),{getFieldID:r,value:a}=Ne.useAbstractFields({model:o.model,schema:n.schema,formOptions:n.formOptions});return(i,d)=>{const s=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(["field-label",e.schema.fieldClasses])},[t.createVNode(s,{id:t.unref(r)(e.schema)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)),1)]),_:1},8,["id"])],2)}}}),[["__scopeId","data-v-e3423a11"]]),Sf=t.defineComponent({__name:"FieldMultiselect",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRef(r,"model"),{getLabelId:d,getFieldID:s,clearValidationErrors:u,value:f}=Ne.useAbstractFields({model:i,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:m=>{a("modelUpdated",m.value,m.model)}});n({clearValidationErrors:u});const p=t.computed(()=>r.schema.values?r.schema.values:r.schema.elements?.one_of?.length?r.schema.elements.one_of.map(m=>({label:String(m),value:String(m)})):[]);return(m,g)=>{const k=t.resolveComponent("KMultiselect");return t.openBlock(),t.createBlock(k,{id:t.unref(s)(e.schema),modelValue:t.unref(f),"onUpdate:modelValue":g[0]||(g[0]=w=>t.isRef(f)?f.value=w:null),"aria-labelledby":t.unref(d)(e.schema),class:t.normalizeClass(e.schema.fieldClasses),"data-testid":"field-multiselect",disabled:e.disabled||void 0,items:p.value,"kpop-attributes":{"data-testid":`${t.unref(s)(e.schema)}-items`},"label-attributes":{info:e.schema.help},name:e.schema.inputName,placeholder:e.schema.placeholder,required:e.schema.required||void 0,width:"100%"},null,8,["id","modelValue","aria-labelledby","class","disabled","items","kpop-attributes","label-attributes","name","placeholder","required"])}}}),kf={class:"selection-group"},wf={class:"form-group horizontal-radios"},Tf={class:"radio-group"},Mf=["disabled","value"],Af={class:"control-help"},Nf={key:0,class:"option-field"},If={class:"option-field-container"},Vf=x(Object.assign({mixins:[Oe],emits:["model-updated"],expose:["validate","clearValidationErrors","schema"],data(){return{checkedGroup:null,fieldModel:{...this.model},renderedTrack:[],fieldSchema:[],scope:"scope"}},watch:{checkedGroup:{handler(e,n){if(this.renderedTrack[e]=!0,n===null){this.fieldModel={...this.model};return}const o=this.schema.fields[e].fields,r=this.schema.fields[n].fields;r&&r.forEach(a=>this.updateModel("",a.model)),o&&o.forEach(a=>this.updateModel(this.fieldModel[a.model],a.model))}}},async created(){await this.$nextTick(),this.schema.fields.forEach((e,n)=>{this.renderedTrack.push(!1),e.fields&&e.fields.forEach(o=>{this.model[o.model]&&(this.checkedGroup=n,this.fieldSchema.push(o.model),this.scope=o.label?.toLowerCase())})}),this.checkedGroup===null&&(this.checkedGroup=0)},methods:{updateModel(e,n){this.$emit("model-updated",e,n)}}},{__name:"FieldSelectionGroup",setup(e){const{t:n}=Ee.createI18n("en-us",we);return(o,r)=>(t.openBlock(),t.createElementBlock("div",kf,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.$props.disabled?"k-tooltip":"div"),{"max-width":"300",text:t.unref(n)("general.disable_global_radio",{scope:o.scope})},{default:t.withCtx(()=>[t.createElementVNode("div",wf,[t.createElementVNode("div",Tf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.schema.fields,(a,i)=>(t.openBlock(),t.createElementBlock("div",{key:i,class:t.normalizeClass(["option-group",{"radio-disabled":o.$props.disabled}])},[t.createElementVNode("label",{class:t.normalizeClass(["k-label",`${a.label}-check`])},[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":r[0]||(r[0]=d=>o.checkedGroup=d),class:"k-input",disabled:o.$props.disabled,type:"radio",value:i},null,8,Mf),[[t.vModelRadio,o.checkedGroup]]),t.createTextVNode(" "+t.toDisplayString(a.label)+" ",1),t.createElementVNode("div",Af,t.toDisplayString(a.description),1)],2)],2))),128))])])]),_:1},8,["text"])),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.schema.fields,(a,i)=>(t.openBlock(),t.createElementBlock("div",{key:i,class:"option-group"},[o.renderedTrack[i]?t.withDirectives((t.openBlock(),t.createElementBlock("div",Nf,[t.createElementVNode("div",If,[t.createVNode(Q,{model:o.model,options:{helpAsHtml:!0},schema:{fields:a.fields},onModelUpdated:o.updateModel},null,8,["model","schema","onModelUpdated"])])],512)),[[t.vShow,a.fields&&o.checkedGroup===i]]):t.createCommentVNode("",!0)]))),128))]))}}),[["__scopeId","data-v-0b44571b"]]),Of={class:"form-field-wrapper"},Bf=t.defineComponent({__name:"FieldSwitch",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,{t:i}=Ee.createI18n("en-us",we),d=g=>g!=null&&r.schema.valueOn?g===r.schema.valueOn:g,s=g=>g!=null&&r.schema.valueOn?g?r.schema.valueOn:r.schema.valueOff:g,u=t.toRefs(r),{getFieldID:f,value:p,clearValidationErrors:m}=Ne.useAbstractFields({model:u.model,schema:r.schema,formOptions:r.formOptions,formatValueToField:d,formatValueToModel:s,emitModelUpdated:g=>{a("modelUpdated",g.value,g.model)}});return n({clearValidationErrors:m}),(g,k)=>{const w=t.resolveComponent("KInputSwitch");return t.openBlock(),t.createElementBlock("div",Of,[t.createVNode(w,{id:t.unref(f)(e.schema),modelValue:t.unref(p),"onUpdate:modelValue":k[0]||(k[0]=C=>t.isRef(p)?p.value=C:null),autocomplete:e.schema.autocomplete,class:t.normalizeClass(e.schema.fieldClasses),disabled:e.disabled||void 0,label:t.unref(p)?e.schema.textOn||t.unref(i)("vfg.labels.on"):e.schema.textOff||t.unref(i)("vfg.labels.off"),"label-attributes":{info:e.schema.help},name:e.schema.inputName,required:e.schema.required||void 0},null,8,["id","modelValue","autocomplete","class","disabled","label","label-attributes","name","required"])])}}}),Ff={class:"field-textarea"},Rf={name:"FormGroup",components:Object.freeze(Object.defineProperty({__proto__:null,FieldAdvanced:Km,FieldArray:Qu,FieldArrayCardContainer:sa,FieldArrayItem:da,FieldArrayMultiItem:ca,FieldAutoSuggest:ga,FieldAutoSuggestLegacy:ya,FieldCheckbox:nf,FieldChecklist:uf,FieldInput:ba,FieldKeyValuePairs:Ef,FieldLabel:Cf,FieldMetric:_a,FieldMultiselect:Sf,FieldObject:Ea,FieldObjectAdvanced:Ca,FieldRadio:Sa,FieldSelect:ka,FieldSelectionGroup:Vf,FieldStringArray:wa,FieldSwitch:Bf,FieldTextArea:x(t.defineComponent({__name:"FieldTextArea",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRefs(r),d=t.inject(he,void 0),{updateModelValue:s,getFieldID:u,clearValidationErrors:f,value:p}=Ne.useAbstractFields({model:i.model,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:g=>{a("modelUpdated",g.value,g.model)}});n({clearValidationErrors:f});const m=g=>{p.value=g,s(g,g)};return(g,k)=>{const w=t.resolveComponent("KTextArea");return t.openBlock(),t.createElementBlock("div",Ff,[t.createVNode(w,t.mergeProps(g.$attrs,{id:t.unref(u)(e.schema),modelValue:t.unref(p),"onUpdate:modelValue":k[0]||(k[0]=C=>t.isRef(p)?p.value=C:null),autosize:"","character-limit":e.schema.max??!1,class:e.schema.fieldClasses,disabled:e.disabled||void 0,help:e.hint||void 0,minlength:e.schema.min,name:e.schema.inputName,placeholder:e.schema.placeholder,readonly:e.schema.readonly,required:e.schema.required,resizable:"",rows:e.schema.rows||3}),null,16,["id","modelValue","character-limit","class","disabled","help","minlength","name","placeholder","readonly","required","rows"]),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(d)),{schema:e.schema,update:m,value:t.unref(p)},null,8,["schema","value"]))])}}}),[["__scopeId","data-v-609c18d6"]])},Symbol.toStringTag,{value:"Module"})),mixins:[vi],inject:{"vfg-array-item-index":{default:void 0}},props:{vfg:{type:Object,required:!0},model:{type:Object,default:()=>{}},options:{type:Object,default:()=>{}},field:{type:Object,required:!0},errors:{type:Array,default(){return[]}}},emits:["validated","modelUpdated","refreshModel"],data(){return{child:t.ref()}},computed:{schema(){if(!this.field?.schema||!Array.isArray(this.field.schema.fields))return this.field;const e=this["vfg-array-item-index"];return typeof e!="number"||Number.isNaN(e)?this.field:{...this.field,schema:{...this.field.schema,fields:this.field.schema.fields.map(n=>({...n,...n.id?{id:`${n.id}-${e}`}:void 0}))}}}},methods:{sanitize(e){return on.sanitize(e)},fieldTypeHasLabel(e){if(te(e.label))return!1;let n="";switch(e.type==="input"?n=e.inputType:n=e.type,n){case"button":case"submit":case"reset":return!1;default:return!0}},getFieldID(e){const n=j(this.options,"fieldIdPrefix","");return jn(e,n)},getTooltipId(e){return`${this.getFieldID(e)}-tooltip`},getFieldComponent(e){return e.component?e.component:"field-"+e.type},getButtonType(e){return j(e,"type","button")},onFieldValidated(e,n,o){this.$emit("validated",e,n,o)},buttonVisibility(e){return e.buttons&&e.buttons.length>0},buttonClickHandler(e,n,o){return e.onclick.call(this,this.model,n,o,this)},fieldHint(e){return z(e.hint)?e.hint.call(this,this.model,e,this):e.hint},fieldErrors(e){return this.errors.filter(n=>n.field.fieldName===e.fieldName).map(n=>n.error)},onRefreshModel(){this.$emit("refreshModel")},onModelUpdated(e,n){this.$emit("modelUpdated",e,n)},validate(e){return this.$refs.child.validate(e)},clearValidationErrors(){if(this.$refs.child)return this.$refs.child.clearValidationErrors()},formattedLabel(e){return e?e.replace(/^[cC]onfig\./,""):""}}},Df=["innerHTML"],Uf={class:"icon-wrapper"},Lf={key:0,class:"link-wrapper"},Pf={class:"field-wrap"},vf={key:0,class:"buttons"},xf=["type","onClick","textContent"],Kf={key:1,class:"hint"},jf={key:2,class:"errors help-block"};function zf(e,n,o,r,a,i){const d=t.resolveComponent("KExternalLink"),s=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["form-group",e.getFieldRowClasses(o.field)])},[i.fieldTypeHasLabel(o.field)?(t.openBlock(),t.createBlock(s,{key:0,"aria-describedby":o.field.help?i.getTooltipId(o.field):void 0,class:t.normalizeClass([o.field.labelClasses,"form-group-label"]),for:i.getFieldID(o.field),info:!o.options.helpAsHtml&&o.field.help?o.field.help:void 0,"tooltip-attributes":o.field.help?{maxWidth:"300",placement:"top",tooltipId:i.getTooltipId(o.field)}:void 0},t.createSlots({default:t.withCtx(()=>[t.createElementVNode("div",Uf,[t.createElementVNode("span",null,t.toDisplayString(i.formattedLabel(o.field.label)),1)]),o.field.link?(t.openBlock(),t.createElementBlock("div",Lf,[t.createVNode(d,{href:o.field.link},{default:t.withCtx(()=>[...n[0]||(n[0]=[t.createElementVNode("span",{class:"section-header"},"More info",-1)])]),_:1},8,["href"])])):t.createCommentVNode("",!0)]),_:2},[o.options.helpAsHtml&&o.field.help?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:i.sanitize(o.field.help)},null,8,Df)]),key:"0"}:void 0]),1032,["aria-describedby","class","for","info","tooltip-attributes"])):t.createCommentVNode("",!0),t.createElementVNode("div",Pf,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.getFieldComponent(o.field)),t.mergeProps(e.$attrs,{ref:"child",disabled:e.fieldDisabled(o.field)||null,"form-options":o.options,hint:o.field.hint&&o.field.type==="input"?i.fieldHint(o.field):void 0,model:o.model,schema:i.schema,vfg:o.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated}),null,16,["disabled","form-options","hint","model","schema","vfg","onModelUpdated","onRefreshModel","onValidated"])),i.buttonVisibility(o.field)?(t.openBlock(),t.createElementBlock("div",vf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.field.buttons,(u,f)=>(t.openBlock(),t.createElementBlock("button",{key:f,class:t.normalizeClass(u.classes),type:i.getButtonType(u),onClick:p=>i.buttonClickHandler(u,o.field,p),textContent:t.toDisplayString(u.label)},null,10,xf))),128))])):t.createCommentVNode("",!0)]),o.field.hint&&o.field.type!=="input"?(t.openBlock(),t.createElementBlock("div",Kf,t.toDisplayString(i.fieldHint(o.field)),1)):t.createCommentVNode("",!0),i.fieldErrors(o.field).length>0?(t.openBlock(),t.createElementBlock("div",jf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.fieldErrors(o.field),(u,f)=>(t.openBlock(),t.createElementBlock("span",{key:f},t.toDisplayString(u),1))),128))])):t.createCommentVNode("",!0)],2)}const Ta=x(Rf,[["render",zf],["__scopeId","data-v-87df5b50"]]);var Kt=(e=>(e.REDIS_CE="redis-ce",e.REDIS_EE="redis-ee",e))(Kt||{});const $f=e=>e.type===Kt.REDIS_CE?"Host/Port":e.config.sentinel_nodes?.length?"Sentinel":e.config.cluster_nodes?.length?"Cluster":"Host/Port",qf={[Kt.REDIS_CE]:"open source",[Kt.REDIS_EE]:"enterprise"},Ma=e=>qf[e]??"",St={KONNECT_MANAGED:"konnect-managed",SELF_MANAGED:"self-managed"},Hf="managed_cache.v0";function Yf(e){const o=(Array.isArray(e.tags)?e.tags:[]).filter(r=>typeof r=="string").map(r=>r.toLowerCase());return o.includes(St.KONNECT_MANAGED)||o.includes(Hf)?St.KONNECT_MANAGED:St.SELF_MANAGED}function Aa(e){return e.app==="konnect"&&e.isCloudGateway===!0}const Gf={class:"partial-config-card"},Wf={class:"config-card-row-label"},Zf={class:"label-text"},Xf=["data-testid"],Jf=["data-testid"],Qf={key:1},ep=["data-testid"],tp=["data-testid"],np=x(t.defineComponent({__name:"RedisConfigCard",props:{configFields:{type:Object,required:!0},pluginRedisFields:{type:Array,required:!0}},setup(e){const{t:n,formatUnixTimeStamp:o}=Ee.createI18n("en-us",we),r={id:{order:1},name:{order:1},type:{label:n("redis.config_card.common_fields.type_label"),hidden:!0,type:"hidden"},created_at:{label:n("redis.config_card.common_fields.created_at_label"),formatter:o,order:2},updated_at:{label:n("redis.config_card.common_fields.updated_at_label"),formatter:o,order:3}},a=e,i=m=>m!=null,d=(m,g)=>i(g)&&["password","sentinel_password"].includes(m)?"password":"text",{convertKeyToTitle:s}=pt.useStringHelpers(),u=t.computed(()=>Object.entries(a.configFields).map(([m,g])=>({key:m,label:r[m]?.label??s(m),value:r[m]?.formatter?r[m].formatter(g):g,type:r[m]?.type??d(m,g),order:r[m]?.order??100})).sort((m,g)=>m.order-g.order).filter(m=>m.type!=="hidden")),f=Ne.useRedisNonStandardFields(a.configFields,a.pluginRedisFields),p=t.computed(()=>u.value.concat(f));return(m,g)=>{const k=t.resolveComponent("KCopy");return t.openBlock(),t.createElementBlock("div",Gf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(p.value,({key:w,label:C,value:O,type:N})=>(t.openBlock(),t.createElementBlock("div",{key:w,class:"partial-config-card-row"},[t.createElementVNode("div",Wf,[t.createElementVNode("div",Zf,t.toDisplayString(C),1)]),t.createElementVNode("div",{class:"config-card-row-value","data-testid":`${w}-property-value`},[i(O)?(t.openBlock(),t.createElementBlock("div",Qf,[N==="password"?(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${w}-copy-password`},[t.createVNode(k,{format:"redacted",text:String(O)},null,8,["text"])],8,ep)):(t.openBlock(),t.createElementBlock("div",{key:1,"data-testid":`${w}-plain-text`},t.toDisplayString(O),9,tp))])):(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${w}-no-value`}," – ",8,Jf))],8,Xf)]))),128))])}}}),[["__scopeId","data-v-57f78095"]]),op={class:"redis-config-select","data-testid":"redis-config-select"},ip={class:"selected-redis-config"},ap=["data-testid"],rp={class:"select-item-name","data-testid":"selected-redis-config"},lp={class:"empty-redis-config","data-testid":"empty-redis-config"},sp={key:1,class:"redis-shared-config-error-message","data-testid":"redis-config-fetch-error"},dp="1000",Na=x(t.defineComponent({__name:"RedisConfigSelect",props:{defaultRedisConfigItem:{type:String,required:!1,default:""},updateRedisModel:{type:Function,required:!0},pluginRedisFields:{type:Array,required:!0},redisType:{type:String,default:"all"},isCustomPlugin:{type:Boolean,default:!1},isKonnectManagedRedisEnabled:{type:Boolean,default:!1}},emits:["showNewPartialModal"],setup(e,{emit:n}){const{t:o}=Ee.createI18n("en-us",we),r=n,a=t.inject(jo),i=t.inject(zo,null),d={konnect:{getOne:"/v2/control-planes/{controlPlaneId}/core-entities/{workspace}/partials/{id}",getAll:"/v2/control-planes/{controlPlaneId}/core-entities/{workspace}/partials"},kongManager:{getOne:"/{workspace}/partials/{id}",getAll:"/{workspace}/partials"}},s=e,u=t.ref(null),{getMessageFromError:f}=pt.useErrors(),p=t.inject(tn),m=t.computed(()=>!!i&&p.app==="konnect"&&p.isCloudGateway!==!0),g=t.computed(()=>s.redisType==="redis-ce"?"redis-ce":"redis-ee"),k=t.ref(!1),w=t.ref(),{debouncedQueryChange:C,loading:O,error:N,loadItems:U,results:B}=pt.useDebouncedFilter(p,d[p.app].getAll,dp,{fetchedItemsKey:"data",searchKeys:["id","name"]}),T=t.computed(()=>N.value?f(N.value):""),b=t.computed(()=>s.isCustomPlugin?o("redis.custom_plugin.tooltip"):o("redis.shared_configuration.tooltip",{type:Ma(s.redisType)})),h=t.computed(()=>s.isKonnectManagedRedisEnabled?o("redis.managed_ui.shared_configuration.title"):o("redis.shared_configuration.title")),A=t.computed(()=>s.isKonnectManagedRedisEnabled?o("redis.managed_ui.shared_configuration.selector.placeholder"):o("redis.shared_configuration.selector.placeholder")),$=t.computed(()=>s.isKonnectManagedRedisEnabled||m.value?o("redis.managed_ui.shared_configuration.create_new_configuration"):o("redis.shared_configuration.create_new_configuration",{type:Ma(s.redisType)})),V=t.computed(()=>T.value||o("redis.shared_configuration.error")),y=Y=>{let I=`${p.apiBaseUrl}${d[p.app].getOne}`;return p.app==="konnect"&&(I=I.replace(/{controlPlaneId}/gi,p?.controlPlaneId||"")),I=I.replace(/\/{workspace}/gi,p?.workspace?`/${p.workspace}`:"").replace(/{id}/gi,String(Y)),I},M=t.computed(()=>{const Y=(B.value||[]).map(I=>{const v=I,ue=s.isKonnectManagedRedisEnabled?Yf(v):void 0,$e=ue===St.KONNECT_MANAGED;return{...s.isKonnectManagedRedisEnabled&&ue?{source:ue}:{},label:I.id,name:I.name,value:I.id,type:I.type,tag:s.isKonnectManagedRedisEnabled&&$e?void 0:$f(v)}}).filter(I=>I.type==="redis-ce"||I.type==="redis-ee");return s.redisType!=="all"?Y.filter(I=>I.type===s.redisType):Y}),L=t.computed(()=>{const Y=M.value;if(!s.isKonnectManagedRedisEnabled)return Y;const I=Y.filter($e=>$e.source===St.KONNECT_MANAGED),v=Y.filter($e=>$e.source===St.SELF_MANAGED),ue=[];return I.length>0&&ue.push({label:o("redis.managed_ui.groups.konnect_managed"),items:I}),v.length>0&&ue.push({label:o("redis.managed_ui.groups.self_managed"),items:v}),ue}),{axiosInstance:ce}=pt.useAxios(p?.axiosRequestConfig),ee=async Y=>{if(!Y){u.value=null,s.updateRedisModel(void 0);return}s.updateRedisModel(Y);try{const I=await ce.get(y(Y));if(I.data.config){const v=Object.assign(I.data,I.data.config);delete v.config,u.value=v}}catch(I){console.error(I)}},Ie=()=>{if(!m.value){r("showNewPartialModal");return}w.value=s.defaultRedisConfigItem||void 0,ee(void 0),k.value=!0},kt=()=>{if(k.value=!1,w.value){const Y=w.value;w.value=void 0,ee(Y)}},Fe=async Y=>{w.value=void 0,k.value=!1,await U(),ee(Y.id)},$t=Y=>{i?.toast(Y)};return t.watch(()=>a?.value,async Y=>{Y&&await U()}),t.onBeforeMount(()=>{U(),s.defaultRedisConfigItem&&ee(s.defaultRedisConfigItem)}),(Y,I)=>{const v=t.resolveComponent("KLabel"),ue=t.resolveComponent("KBadge"),$e=t.resolveComponent("KSelect");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",op,[t.createVNode(v,{info:b.value,"tooltip-attributes":{maxWidth:"300",placement:"top"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(h.value),1)]),_:1},8,["info"]),I[1]||(I[1]=t.createElementVNode("div",{class:"shared-redis-config-title"},null,-1)),t.createVNode($e,{class:"redis-config-select-trigger","data-testid":"redis-config-select-trigger","enable-filtering":"","filter-function":()=>!0,items:L.value,loading:t.unref(O),"model-value":e.defaultRedisConfigItem,placeholder:A.value,onChange:I[0]||(I[0]=Re=>ee(Re?.value)),onQueryChange:t.unref(C)},t.createSlots({"selected-item-template":t.withCtx(({item:Re})=>[t.createElementVNode("div",ip,t.toDisplayString(Re.name),1)]),"item-template":t.withCtx(({item:Re})=>[t.createElementVNode("div",{class:"plugin-form-redis-configuration-dropdown-item","data-testid":`redis-configuration-dropdown-item-${Re.name}`},[t.createElementVNode("span",rp,t.toDisplayString(Re.name),1),Re.tag?(t.openBlock(),t.createBlock(ue,{key:0,appearance:"info",class:"select-item-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(Re.tag),1)]),_:2},1024)):t.createCommentVNode("",!0)],8,ap)]),empty:t.withCtx(()=>[t.createElementVNode("div",lp,t.toDisplayString(t.unref(o)("redis.shared_configuration.empty_state")),1)]),_:2},[t.unref(Aa)(t.unref(p))?void 0:{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("div",{class:"new-redis-config-area","data-testid":"new-redis-config-area",onClick:Ie},[t.createVNode(t.unref(me.AddIcon),{size:`var(--kui-icon-size-20, ${t.unref(ua)})`},null,8,["size"]),t.createElementVNode("span",null,t.toDisplayString($.value),1)])]),key:"0"}]),1032,["items","loading","model-value","placeholder","onQueryChange"])]),u.value?(t.openBlock(),t.createBlock(np,{key:0,"config-fields":u.value,"plugin-redis-fields":e.pluginRedisFields},null,8,["config-fields","plugin-redis-fields"])):t.createCommentVNode("",!0),T.value?(t.openBlock(),t.createElementBlock("p",sp,t.toDisplayString(V.value),1)):t.createCommentVNode("",!0),t.unref(i)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(i).component),{key:2,"partial-type":g.value,visible:k.value,onClose:kt,onCreated:Fe,onToast:$t},null,40,["partial-type","visible"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-e0c3bcd9"]]),cp={key:0},mp={class:"redis-config-radio-group","data-testid":"redis-config-radio-group"},up={key:0,class:"shared-redis-config"},fp={key:1,class:"dedicated-redis-config"},pp={class:"dedicated-redis-config-title"},hp={name:"VueFormGenerator",components:{formGroup:Ta,formRedis:x(t.defineComponent({__name:"FormRedis",props:{tag:{type:String,default:"fieldset",validator:function(e){return e.length>0}},model:{type:Object,default:()=>{}},options:{type:Object,required:!0},field:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default(){return[]}},redisPath:{type:String,default:void 0,required:!1},isEditing:{type:Boolean,default:!1},isKonnectManagedRedisEnabled:{type:Boolean,default:!1}},emits:["modelUpdated","partialToggled","showNewPartialModal","refreshModel","validated"],setup(e,{emit:n}){const o=e,r=n,{t:a}=Ee.createI18n("en-us",we),i=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.title"):a("redis.title")),d=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.shared_configuration.description"):a("redis.shared_configuration.description")),s=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.shared_configuration.label"):a("redis.shared_configuration.label")),u=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.dedicated_configuration.description"):a("redis.dedicated_configuration.description")),f=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.dedicated_configuration.label"):a("redis.dedicated_configuration.label")),p=t.computed(()=>o.field.pluginType==="custom"),m=t.ref(!o.isEditing),g=t.ref(),k=t.ref({}),w=t.ref(),C=T=>z(T.visible)?T.visible.call(this,o.model,T,this):te(T.visible)?!0:T.visible,O=async T=>{if(!T){g.value=void 0,w.value=void 0,r("modelUpdated",void 0,"partials");return}r("modelUpdated",[{id:T,path:o.redisPath}],"partials"),w.value=[{id:T,path:o.redisPath}],g.value=T},N=(T,b)=>{k.value={...k.value,[b]:T},r("modelUpdated",T,b)},U=()=>{r("refreshModel")},B=(T,b,h)=>{r("validated",T,b,h)};return t.watch(()=>m.value,T=>{T?w.value&&r("partialToggled","redis",{partials:w.value}):r("partialToggled","partials",k.value)}),t.onBeforeMount(()=>{if(o.model&&(k.value=o.field.fields.reduce((T,b)=>(Object.keys(o.model).includes(b.model)&&(T[b.model]=o.model[b.model]),T),{})),o?.model?.partials?.[0]?.id){const T=o.model.partials[0].id;m.value=!0,g.value=T}}),(T,b)=>{const h=t.resolveComponent("KAlert"),A=t.resolveComponent("KBadge"),$=t.resolveComponent("KRadio"),V=t.resolveComponent("KCard");return t.openBlock(),t.createElementBlock("div",null,[p.value?(t.openBlock(),t.createElementBlock("div",cp,[t.createVNode(h,{"data-testid":"custom-plugin-redis-config-note",message:t.unref(a)("redis.custom_plugin.alert")},null,8,["message"]),t.createVNode(Na,{"default-redis-config-item":g.value,"is-custom-plugin":"","is-konnect-managed-redis-enabled":e.isKonnectManagedRedisEnabled,"plugin-redis-fields":e.field.fields,"update-redis-model":O,onShowNewPartialModal:b[0]||(b[0]=y=>T.$emit("showNewPartialModal"))},null,8,["default-redis-config-item","is-konnect-managed-redis-enabled","plugin-redis-fields"])])):(t.openBlock(),t.createBlock(V,{key:1,class:"redis-config-card","data-testid":"redis-config-card",title:i.value},{default:t.withCtx(()=>[t.createElementVNode("div",mp,[t.createVNode($,{modelValue:m.value,"onUpdate:modelValue":b[1]||(b[1]=y=>m.value=y),card:"","card-orientation":"horizontal","data-testid":"shared-redis-config-radio",description:d.value,label:s.value,"selected-value":!0},{default:t.withCtx(()=>[e.isKonnectManagedRedisEnabled?(t.openBlock(),t.createBlock(A,{key:0,appearance:"success"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("redis.managed_ui.shared_configuration.badge")),1)]),_:1})):t.createCommentVNode("",!0)]),_:1},8,["modelValue","description","label"]),t.createVNode($,{modelValue:m.value,"onUpdate:modelValue":b[2]||(b[2]=y=>m.value=y),card:"","card-orientation":"horizontal","data-testid":"dedicated-redis-config-radio",description:u.value,label:f.value,"selected-value":!1},null,8,["modelValue","description","label"])]),m.value?(t.openBlock(),t.createElementBlock("div",up,[t.createVNode(Na,{"default-redis-config-item":g.value,"is-konnect-managed-redis-enabled":e.isKonnectManagedRedisEnabled,"plugin-redis-fields":e.field.fields,"redis-type":e.field.redisType,"update-redis-model":O,onShowNewPartialModal:b[3]||(b[3]=y=>T.$emit("showNewPartialModal"))},null,8,["default-redis-config-item","is-konnect-managed-redis-enabled","plugin-redis-fields","redis-type"])])):(t.openBlock(),t.createElementBlock("div",fp,[t.createElementVNode("div",pp,t.toDisplayString(t.unref(a)("redis.dedicated_configuration.title")),1),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.tag),null,{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.field.fields,y=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:y.model},[C(y)?(t.openBlock(),t.createBlock(Ta,{key:0,ref_for:!0,ref:"children",errors:e.errors,field:y,model:e.model,options:e.options,vfg:e.vfg,onModelUpdated:N,onRefreshModel:U,onValidated:B},null,8,["errors","field","model","options","vfg"])):t.createCommentVNode("",!0)],64))),128))]),_:1}))]))]),_:1},8,["title"]))])}}}),[["__scopeId","data-v-1b572a6a"]])},mixins:[vi],inject:{autofillSlot:{from:he,default:void 0}},provide(){return{...!this.autofillSlot&&{[he]:this.$slots?.[at]}}},props:{schema:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},options:{type:Object,default(){return{validateAfterLoad:!1,validateAfterChanged:!1,child:t.ref([]),fieldIdPrefix:"",validateAsync:!1,validationErrorClass:"error",validationSuccessClass:"",helpAsHtml:!1}}},multiple:{type:Boolean,default:!1},isNewModel:{type:Boolean,default:!1},tag:{type:String,default:"fieldset",validator:function(e){return e.length>0}},enableRedisPartial:{type:Boolean,default:!1},isKonnectManagedRedisEnabled:{type:Boolean,default:!1},isEditing:{type:Boolean,default:!1}},emits:["validated","modelUpdated","refreshModel","partialToggled","showNewPartialModal"],data(){return{vfg:this,errors:[],children:t.ref([]),collapseStates:{}}},computed:{fields(){const e=[];return this.schema&&this.schema.fields&&fe(this.schema.fields,n=>{(!this.multiple||n.multi===!0)&&e.push(n)}),e},groups(){const e=[];return this.schema&&this.schema.groups&&fe(this.schema.groups.slice(0),n=>{e.push(n)}),e}},watch:{model:{deep:!0,handler(e,n){n!==e&&e!=null&&this.$nextTick(()=>{this.options.validateAfterLoad===!0&&this.isNewModel!==!0?this.validate():this.clearValidationErrors()})}}},mounted(){this.$nextTick(()=>{this.model&&(this.options.validateAfterLoad===!0&&this.isNewModel!==!0?this.validate():this.clearValidationErrors())})},methods:{fieldVisible(e){return z(e.visible)?e.visible.call(this,this.model,e,this):te(e.visible)?!0:e.visible},onFieldValidated(e,n,o){this.errors=this.errors.filter(a=>a.field.fieldName!==o.schema.fieldName),!e&&n&&n.length>0&&fe(n,a=>{this.errors.push({field:o.schema,error:a})});const r=this.errors.length===0;this.$emit("validated",r,this.errors,this)},onRefreshModel(){this.$emit("refreshModel")},onModelUpdated(e,n){this.$emit("modelUpdated",e,n)},onPartialToggled(e,n){this.$emit("partialToggled",e,n)},validate(e=null){e===null&&(e=j(this.options,"validateAsync",!1)),this.clearValidationErrors();const n=[],o=[];fe(this.$refs.children,a=>{z(a.validate)&&(n.push(a.$refs.child),o.push(a.$refs.child.validate(!0)))});const r=a=>{const i=[];fe(a,(s,u)=>{Array.isArray(s)&&s.length>0&&fe(s,f=>{i.push({field:n[u].schema,error:f})})}),this.errors=i;const d=i.length===0;return this.$emit("validated",d,i,this),e?i:d};return e?Promise.all(o).then(r):r(o)},clearValidationErrors(){this.errors.splice(0),fe(this.$refs.children,e=>{e.clearValidationErrors()})}}},gp={key:0,class:"vue-form-generator"},yp={key:0};function bp(e,n,o,r,a,i){const d=t.resolveComponent("form-redis"),s=t.resolveComponent("form-group"),u=t.resolveComponent("KCollapse");return o.schema!=null?(t.openBlock(),t.createElementBlock("div",gp,[o.schema.fields?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.tag),{key:0},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.fields,f=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:f.model},[f.model==="__redis_partial"&&o.enableRedisPartial?(t.openBlock(),t.createBlock(d,{key:0,errors:a.errors,field:f,"is-editing":o.isEditing,"is-konnect-managed-redis-enabled":o.isKonnectManagedRedisEnabled,model:o.model,options:o.options,tag:o.tag,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onPartialToggled:i.onPartialToggled,onShowNewPartialModal:p=>e.$emit("showNewPartialModal",f.redisType),onValidated:i.onFieldValidated},null,8,["errors","field","is-editing","is-konnect-managed-redis-enabled","model","options","tag","vfg","onModelUpdated","onPartialToggled","onShowNewPartialModal","onValidated"])):i.fieldVisible(f)?(t.openBlock(),t.createBlock(s,{key:1,ref_for:!0,ref:"children",errors:a.errors,field:f,model:o.model,options:o.options,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated},null,8,["errors","field","model","options","vfg","onModelUpdated","onRefreshModel","onValidated"])):t.createCommentVNode("",!0)],64))),128))]),_:1})):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.groups,(f,p)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:`group-${p}`},[f.collapsible!==void 0&&f.collapsible!==!1?(t.openBlock(),t.createBlock(u,{key:0,class:"root-level-collapse","model-value":!1,title:f.collapsible.title},t.createSlots({default:t.withCtx(()=>[f.slots?.beforeContent?t.renderSlot(e.$slots,f.slots?.beforeContent,{},void 0,void 0,0):t.createCommentVNode("",!0),f.fields.length===0&&f.slots?.emptyState?t.renderSlot(e.$slots,f.slots?.emptyState,{},void 0,void 0,1):(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.tag),{key:2,class:t.normalizeClass(e.getFieldRowClasses(f))},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.fields,m=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:m.model},[i.fieldVisible(m)?(t.openBlock(),t.createBlock(s,{key:0,ref_for:!0,ref:"children",errors:a.errors,field:m,model:o.model,options:o.options,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated},null,8,["errors","field","model","options","vfg","onModelUpdated","onRefreshModel","onValidated"])):t.createCommentVNode("",!0)],64))),128))]),_:2},1032,["class"])),f.collapsible!==!0&&f.collapsible.nestedCollapsible&&f.collapsible.nestedCollapsible.fields.length>0?(t.openBlock(),t.createBlock(u,{key:3,class:"nested-collapse","model-value":a.collapseStates[`group-${p}-nested`]??!0,"trigger-alignment":"leading","trigger-label":a.collapseStates[`group-${p}-nested`]??!0?f.collapsible.nestedCollapsible.triggerLabel.expand:f.collapsible.nestedCollapsible.triggerLabel.collapse,"onUpdate:modelValue":m=>a.collapseStates[`group-${p}-nested`]=m},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.tag),{class:t.normalizeClass(e.getFieldRowClasses(f))},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.collapsible.nestedCollapsible.fields,m=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:m.model},[m.model==="__redis_partial"&&o.enableRedisPartial?(t.openBlock(),t.createBlock(d,{key:0,errors:a.errors,field:m,"is-editing":o.isEditing,"is-konnect-managed-redis-enabled":o.isKonnectManagedRedisEnabled,model:o.model,options:o.options,tag:o.tag,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onPartialToggled:i.onPartialToggled,onShowNewPartialModal:g=>e.$emit("showNewPartialModal",m.redisType),onValidated:i.onFieldValidated},null,8,["errors","field","is-editing","is-konnect-managed-redis-enabled","model","options","tag","vfg","onModelUpdated","onPartialToggled","onShowNewPartialModal","onValidated"])):i.fieldVisible(m)?(t.openBlock(),t.createBlock(s,{key:1,ref_for:!0,ref:"children",errors:a.errors,field:m,model:o.model,options:o.options,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated},null,8,["errors","field","model","options","vfg","onModelUpdated","onRefreshModel","onValidated"])):t.createCommentVNode("",!0)],64))),128))]),_:2},1032,["class"]))]),_:2},1032,["model-value","trigger-label","onUpdate:modelValue"])):t.createCommentVNode("",!0)]),_:2},[f.collapsible.description?{name:"visible-content",fn:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(f.collapsible.description),1)]),key:"0"}:void 0]),1032,["title"])):(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.tag),{key:1,class:t.normalizeClass(e.getFieldRowClasses(f))},{default:t.withCtx(()=>[f.legend?(t.openBlock(),t.createElementBlock("legend",yp,t.toDisplayString(f.legend),1)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.fields,m=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:m.model},[i.fieldVisible(m)?(t.openBlock(),t.createBlock(s,{key:0,ref_for:!0,ref:"children",errors:a.errors,field:m,model:o.model,options:o.options,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated},null,8,["errors","field","model","options","vfg","onModelUpdated","onRefreshModel","onValidated"])):t.createCommentVNode("",!0)],64))),128))]),_:2},1032,["class"]))],64))),128))])):t.createCommentVNode("",!0)}const Q=x(hp,[["render",bp]]),_p=[{label:"Kong Identity client",value:"kong-identity",description:"Match principals using a token claim, defaulting to the subject (sub) claim."},{label:"Custom claim",value:"custom-identity",description:"Match principals using a custom JWT claim."}],Ia=e=>e==null||e===""?!1:Array.isArray(e)?e.length>0:!0,Ep=e=>Ia(e["config-principals-principal_by"])?"custom-identity":"kong-identity",Cp={name:"PrincipalLookupSettings",props:{formModel:{type:Object,required:!0},onModelUpdated:{type:Function,required:!0},disabled:{type:Boolean,default:!1},showEnableToggle:{type:Boolean,default:!1},onEnabledChange:{type:Function,default:void 0},dataPlaneIncompatible:{type:Boolean,default:!1},showPrincipalsFields:{type:Boolean,default:!0},isEditing:{type:Boolean,default:!1}},data(){return{lookupMethodItems:_p,selectedLookupMethod:Ep(this.formModel)}},computed:{lookupEnabled(){return this.formModel["config-principals-enabled"]===!0},fieldsDisabled(){return this.disabled||!this.lookupEnabled},tokenClaimHelp(){const e="Use dot notation for nested claims (for example, workload.id); escape literal periods with \\ (for example, workload\\.id).";return this.selectedLookupMethod==="custom-identity"?`The token claim whose value is matched against the Custom identity name. Defaults to the subject (sub) claim, but you can specify a different claim if needed. ${e}`:`Defaults to the subject (sub) claim, but you can specify a different token claim if needed. ${e}`}},created(){!this.isEditing&&!Ia(this.formModel["config-principals-principal_claim"])&&this.updateField("config-principals-principal_claim",["sub"])},methods:{handleEnableToggle(e){this.onEnabledChange&&this.onEnabledChange(e)},getTokenClaimInputValue(){const e=this.formModel["config-principals-principal_claim"];return Array.isArray(e)&&e.length>0?e.map(n=>n.replace(/\./g,"\\.")).join("."):typeof e=="string"&&e?e:""},handleTokenClaimChange(e){const n=typeof e=="string"?e.trim():"";if(!n){this.updateField("config-principals-principal_claim",[]);return}const o=n.split(new RegExp("(?<!\\\\)\\.")).map(r=>r.replace(/\\\./g,".").trim()).filter(Boolean);this.updateField("config-principals-principal_claim",o)},handleMatchConsumerChange(e){this.updateField("config-principals-match_consumer",e),e||this.updateField("config-principals-match_consumer_groups",!1)},handleLookupMethodChange(e){this.selectedLookupMethod=e,e!=="custom-identity"&&(this.formModel["config-principals-principal_by"]=null,this.formModel["config-principals-principal_claim"]=null,this.onModelUpdated())},updateField(e,n){this.formModel[e]=n,this.onModelUpdated()}}},Sp={key:1,class:"principals-field-group"},kp={class:"principals-field-group"},wp={class:"lookup-method-item"},Tp={class:"lookup-method-item-label"},Mp={class:"lookup-method-item-description"},Ap={class:"principals-field-group"},Np={class:"principals-field-group"},Ip={class:"principals-field-group"};function Vp(e,n,o,r,a,i){const d=t.resolveComponent("KAlert"),s=t.resolveComponent("KLabel"),u=t.resolveComponent("KInputSwitch"),f=t.resolveComponent("KSelect"),p=t.resolveComponent("KInput"),m=t.resolveComponent("KRadio"),g=t.resolveComponent("KCheckbox"),k=t.resolveComponent("KCollapse");return t.openBlock(),t.createBlock(k,{class:"principals-advanced-settings","data-testid":"principals-advanced-settings","trigger-label":"Show additional settings"},{default:t.withCtx(()=>[o.showPrincipalsFields?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.renderSlot(e.$slots,"banner",{},void 0,!0),o.dataPlaneIncompatible?(t.openBlock(),t.createBlock(d,{key:0,appearance:"warning",class:"principals-dp-version-alert","data-testid":"oidc-principals-dp-version-alert",message:"We detected that one or more data plane nodes are running a version earlier than 3.15. If principal lookup is enabled, requests handled by those data plane nodes will fail.","show-icon":""})):t.createCommentVNode("",!0),o.showEnableToggle?(t.openBlock(),t.createElementBlock("div",Sp,[t.createVNode(u,{"data-testid":"use-principal-lookup",disabled:o.disabled,"model-value":i.lookupEnabled,"onUpdate:modelValue":i.handleEnableToggle},{label:t.withCtx(()=>[t.createVNode(s,{info:"Look up the authenticated principal in Kong Identity after token validation. Enable this when the validated token doesn’t contain all of the identity data required for authorization or activity logging.","tooltip-attributes":{maxWidth:"300"}},{default:t.withCtx(()=>[...n[6]||(n[6]=[t.createTextVNode(" Use principal lookup ",-1)])]),_:1})]),_:1},8,["disabled","model-value","onUpdate:modelValue"])])):t.createCommentVNode("",!0),t.createElementVNode("div",kp,[t.createVNode(f,{class:"principals-lookup-method-select","data-testid":"principals-lookup-method",disabled:i.fieldsDisabled,help:"Principal lookup queries Kong Identity for the principal that matches the identity in a verified access token. This enables principal-aware policies and integrations. Requires all data plane nodes to be running version 3.15 or later.",items:a.lookupMethodItems,label:"Principal lookup method","model-value":a.selectedLookupMethod,placeholder:"Select a lookup method","onUpdate:modelValue":i.handleLookupMethodChange},{"item-template":t.withCtx(({item:w})=>[t.createElementVNode("div",wp,[t.createElementVNode("div",Tp,t.toDisplayString(w.label),1),t.createElementVNode("div",Mp,t.toDisplayString(w.description),1)])]),_:1},8,["disabled","items","model-value","onUpdate:modelValue"]),a.selectedLookupMethod==="custom-identity"?(t.openBlock(),t.createBlock(p,{key:0,class:"principals-custom-identity-name-input","data-testid":"principals-custom-identity-name",disabled:i.fieldsDisabled,help:"Enter the custom identity name used to look up the principal. Kong matches the value from the token claim to a principal with the same custom identity name and value.",label:"Custom identity name","model-value":o.formModel["config-principals-principal_by"],placeholder:"e.g., Customer_ID","onUpdate:modelValue":n[0]||(n[0]=w=>i.updateField("config-principals-principal_by",w))},null,8,["disabled","model-value"])):t.createCommentVNode("",!0),t.createVNode(p,{class:"principals-token-claim-input","data-testid":"principals-token-claim",disabled:i.fieldsDisabled,help:i.tokenClaimHelp,label:"Token claim","model-value":i.getTokenClaimInputValue(),placeholder:"e.g., user.employee_id","onUpdate:modelValue":n[1]||(n[1]=w=>i.handleTokenClaimChange(w))},null,8,["disabled","help","model-value"])]),t.createElementVNode("div",Ap,[t.createVNode(s,null,{default:t.withCtx(()=>[...n[7]||(n[7]=[t.createTextVNode("If principal lookup fails",-1)])]),_:1}),t.createVNode(m,{"data-testid":"principals-error-on-miss-true",description:"Treat the request as unauthenticated if Kong Identity cannot resolve the principal.",disabled:i.fieldsDisabled,label:"Reject the request","model-value":o.formModel["config-principals-error_on_miss"],"selected-value":!0,onChange:n[2]||(n[2]=w=>i.updateField("config-principals-error_on_miss",!0))},null,8,["disabled","model-value"]),t.createVNode(m,{"data-testid":"principals-error-on-miss-false",description:"Allow the request to continue without resolving a principal.",disabled:i.fieldsDisabled,label:"Continue without a principal","model-value":o.formModel["config-principals-error_on_miss"],"selected-value":!1,onChange:n[3]||(n[3]=w=>i.updateField("config-principals-error_on_miss",!1))},null,8,["disabled","model-value"])]),t.createElementVNode("div",Np,[t.createVNode(g,{"data-testid":"principals-match-consumer",disabled:i.fieldsDisabled,"model-value":o.formModel["config-principals-match_consumer"],"onUpdate:modelValue":n[4]||(n[4]=w=>i.handleMatchConsumerChange(w))},{description:t.withCtx(()=>[...n[8]||(n[8]=[t.createTextVNode(" Use the consumer linked to the authenticated principal so existing consumer-based plugins and policies continue to work. ",-1),t.createElementVNode("a",{class:"principals-learn-more-link",href:"https://developer.konghq.com/identity/principals/",rel:"noopener noreferrer",target:"_blank"},"Learn how to link a consumer.",-1)])]),default:t.withCtx(()=>[n[9]||(n[9]=t.createTextVNode(" Use linked consumers ",-1))]),_:1},8,["disabled","model-value"])]),t.createElementVNode("div",Ip,[t.createVNode(g,{"data-testid":"principals-match-consumer-groups",disabled:i.fieldsDisabled||!o.formModel["config-principals-match_consumer"],"model-value":o.formModel["config-principals-match_consumer_groups"],"onUpdate:modelValue":n[5]||(n[5]=w=>i.updateField("config-principals-match_consumer_groups",w))},{description:t.withCtx(()=>[...n[10]||(n[10]=[t.createTextVNode(" Use consumer groups linked to the authenticated principal so existing consumer group policies and plugins continue to work. Consumer groups can be linked through principal metadata. ",-1),t.createElementVNode("a",{class:"principals-learn-more-link",href:"https://developer.konghq.com/identity/principals/",rel:"noopener noreferrer",target:"_blank"},"Learn how to link a consumer group.",-1)])]),default:t.withCtx(()=>[n[11]||(n[11]=t.createTextVNode(" Use linked consumer groups ",-1))]),_:1},8,["disabled","model-value"])])],64)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"default",{},void 0,!0)]),_:3})}const Op=x(Cp,[["render",Vp],["__scopeId","data-v-cbe39595"]]),jt="kong-identity",Va="external",Bp="/v1/auth-servers/_computed",Fp="identity.konghq",Rp=e=>typeof e=="string"&&e.includes(Fp),Wn={major:3,minor:15},Dp=e=>{const[n,o]=e.split(".").map(Number);return Number.isNaN(n)||Number.isNaN(o)?!1:n!==Wn.major?n<Wn.major:o<Wn.minor},Up=(e,n)=>n?Rp(e["config-issuer"])?jt:Va:jt,Lp={name:"OIDCPrincipals",components:{VueFormGenerator:Q,PrincipalLookupSettings:Op,SecretInput:Eo.SecretInput,AddIcon:me.AddIcon,BookIcon:me.BookIcon,CloseIcon:me.CloseIcon,KeyIcon:me.KeyIcon,WorldIcon:me.WorldIcon},inject:{formsConfig:{from:tn,default:()=>({})},autofillSlot:{from:he,default:void 0}},props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>({})},commonFieldsSchema:{type:Object,required:!0},onModelUpdated:{type:Function,required:!0},isEditing:{type:Boolean,default:!1}},emits:["mode-change","click:learn-more","click:create-entity"],data(){const e=Up(this.formModel,this.isEditing);return{MODE_KONG_IDENTITY:jt,MODE_EXTERNAL:Va,KUI_ICON_SIZE_20:ua,KUI_ICON_SIZE_30:Wm,KUI_ICON_SIZE_40:fa,selectedMode:e,kongIdentityServers:[],kongIdentityServersLoading:!1,clients:[],clientsLoading:!1,selectedServer:null,restoringServer:!1,leavePromptType:null}},computed:{issuerFieldsSchema(){const e=(this.commonFieldsSchema?.fields??[]).filter(n=>n.model==="config-issuer");return{...this.commonFieldsSchema,fields:e}},externalClientIdField(){return(this.commonFieldsSchema?.fields??[]).find(e=>e.model==="config-client_id")},externalClientSecretField(){return(this.commonFieldsSchema?.fields??[]).find(e=>e.model==="config-client_secret")},kongIdentityServerItems(){return this.kongIdentityServers.map(e=>({label:e.name,value:e.id}))},clientItems(){return this.clients.map(e=>({label:e.name,value:e.client_id||e.id}))},clientIdArray(){const e=this.formModel["config-client_id"];return Array.isArray(e)&&e.length>0?e:[null]},clientSecretArray(){const e=this.formModel["config-client_secret"];return Array.isArray(e)&&e.length>0?e:[null]},isRemoveClientDisabled(){return this.hasAuthServersAccess&&!this.selectedServer||this.clientIdArray.length<=1},isKonnect(){return this.formsConfig?.app==="konnect"},hasAuthServersAccess(){return this.formsConfig?.isKongIdentityAuthServersAvailable!==!1},canCreateAuthServer(){return this.formsConfig?.canCreateAuthServer!==!1},canCreateAuthServerClient(){return this.formsConfig?.canCreateAuthServerClient!==!1},hasIncompatibleDataPlane(){return(this.formsConfig?.dataPlaneVersions??[]).some(Dp)},principalsEnabled(){return this.formModel["config-principals-enabled"]===!0},principalsGuideVisible(){return this.isKonnect&&this.formsConfig?.principalsCreationGuideVisible===!0},principalsSkeletonVisible(){return this.isKonnect&&this.formsConfig?.principalsCreationGuideVisible===void 0}},watch:{"formsConfig.principalsDirectoryName":{immediate:!0,handler(e){this.isEditing||this.selectedMode!==jt||e==null||(this.formModel["config-principals-directory"]=e,this.onModelUpdated())}}},mounted(){this.isEditing||this.$nextTick(()=>this.$emit("mode-change",this.selectedMode)),this.fetchKongIdentityServers()},methods:{async fetchKongIdentityServers(){if(this.formsConfig?.isKongIdentityAuthServersAvailable!==!1)try{this.kongIdentityServersLoading=!0;const{axiosInstance:e}=pt.useAxios(this.formsConfig?.axiosRequestConfig),n=`${this.formsConfig.apiBaseUrl}${Bp}`,o=await e.get(n);this.kongIdentityServers=o.data?.data??[];const r=this.formModel["config-issuer"];if(r&&!this.selectedServer){const a=this.kongIdentityServers.find(i=>i.issuer===r)||null;a&&(this.restoringServer=!0,this.selectedServer=a,this.fetchClients(a.id))}}catch{this.kongIdentityServers=[]}finally{this.kongIdentityServersLoading=!1}},async fetchClients(e){try{this.clientsLoading=!0;const{axiosInstance:n}=pt.useAxios(this.formsConfig?.axiosRequestConfig),o=`${this.formsConfig.apiBaseUrl}/v1/auth-servers/${e}/clients`,r=await n.get(o);this.clients=r.data?.data??[]}catch{this.clients=[]}finally{this.clientsLoading=!1}},handleServerChange(e){if(this.restoringServer){this.restoringServer=!1;return}this.selectedServer=this.kongIdentityServers.find(n=>n.id===e)||null,this.selectedServer?.issuer&&this.updateField("config-issuer",this.selectedServer.issuer),this.updateField("config-client_id",[null]),this.updateField("config-client_secret",[null]),this.clients=[],this.clientsLoading=!!e,e&&this.fetchClients(e)},handleClientChange(e,n){const o=Array.isArray(this.formModel["config-client_id"])?[...this.formModel["config-client_id"]]:[];o[e]=n,this.updateField("config-client_id",o)},addClientRow(){const e=[...this.clientIdArray];e.push(null),this.updateField("config-client_id",e);const n=[...this.clientSecretArray];n.push(null),this.updateField("config-client_secret",n)},removeClientRow(e){if(this.clientIdArray.length<=1)return;const n=[...this.clientIdArray];n.splice(e,1),this.updateField("config-client_id",n);const o=[...this.clientSecretArray];o.splice(e,1),this.updateField("config-client_secret",o)},handleClientSecretChange(e,n){const o=Array.isArray(this.formModel["config-client_secret"])?[...this.formModel["config-client_secret"]]:[];o[e]=n,this.updateField("config-client_secret",o)},getClientItemsForRow(e){const n=this.clientIdArray;return this.clientItems.map(o=>({...o,disabled:n.some((r,a)=>a!==e&&r===o.value)}))},updateField(e,n){this.formModel[e]=n,this.onModelUpdated()},sanitize(e){return on.sanitize(e)},handleUsePrincipalLookupChange(e){this.updateField("config-principals-enabled",e)},handleLeaveConfirmed(){const e=this.leavePromptType;this.leavePromptType=null,e==="authServer"?this.$emit("click:create-entity",{type:"auth-server"}):e==="client"?this.$emit("click:create-entity",{type:"client",authServerId:this.selectedServer?.id}):e==="principal"&&this.$emit("click:create-entity",{type:"principal"})},handleModeChange(e){if(e===jt){this.formModel["config-client_id"]=null,this.formModel["config-client_secret"]=null,this.formModel["config-issuer"]=null,this.formModel["config-principals-enabled"]=!1,this.formModel["config-principals-error_on_miss"]=!0,this.formModel["config-principals-match_consumer"]=!0,this.formModel["config-principals-match_consumer_groups"]=!0;const n=this.formsConfig?.principalsDirectoryName;n!=null&&(this.formModel["config-principals-directory"]=n)}else this.formModel["config-principals-enabled"]=!1,this.formModel["config-principals-directory"]="default",this.formModel["config-principals-error_on_miss"]=!0,this.formModel["config-principals-match_consumer"]=!0,this.formModel["config-principals-match_consumer_groups"]=!0,this.formModel["config-client_id"]=null,this.formModel["config-client_secret"]=null,this.formModel["config-issuer"]=null,this.selectedServer=null,this.clients=[];this.onModelUpdated(),this.$emit("mode-change",e)}}},Pp={class:"oidc-principals-section","data-testid":"oidc-principals-section"},vp={class:"principals-description"},xp={class:"oidc-auth-mode-radio-group","data-testid":"oidc-auth-mode-radio-group"},Kp={class:"auth-mode-card-content"},jp={class:"auth-mode-card-content"},zp={key:1,class:"principals-create-guide","data-testid":"principals-create-guide"},$p={class:"principals-create-guide-actions"},qp={class:"principals-client-secret-wrapper"},Hp=["disabled","onClick"],Yp={class:"external-client-field"},Gp=["innerHTML"],Wp={class:"external-client-field"},Zp=["innerHTML"],Xp=["disabled","onClick"],Jp={key:1,class:"principals-create-guide","data-testid":"principals-create-guide"},Qp={class:"principals-create-guide-actions"};function eh(e,n,o,r,a,i){const d=t.resolveComponent("KExternalLink"),s=t.resolveComponent("KeyIcon"),u=t.resolveComponent("KRadio"),f=t.resolveComponent("WorldIcon"),p=t.resolveComponent("KSkeleton"),m=t.resolveComponent("AddIcon"),g=t.resolveComponent("KButton"),k=t.resolveComponent("BookIcon"),w=t.resolveComponent("KSelect"),C=t.resolveComponent("KInput"),O=t.resolveComponent("SecretInput"),N=t.resolveComponent("CloseIcon"),U=t.resolveComponent("PrincipalLookupSettings"),B=t.resolveComponent("VueFormGenerator"),T=t.resolveComponent("KPrompt");return t.openBlock(),t.createElementBlock("div",Pp,[n[28]||(n[28]=t.createElementVNode("div",{class:"principals-header"}," Who should manage authentication and credentials? ",-1)),t.createElementVNode("div",vp,[n[13]||(n[13]=t.createTextVNode(" Use External auth server to continue using your existing OAuth provider and authentication workflows. Use Kong Identity to adopt a newer principal-based model that centralizes and simplifies identity and authentication management. ",-1)),t.createVNode(d,{href:"https://developer.konghq.com/plugins/openid-connect/"},{default:t.withCtx(()=>[...n[12]||(n[12]=[t.createTextVNode(" Learn more. ",-1)])]),_:1})]),t.createElementVNode("div",xp,[t.createVNode(u,{modelValue:a.selectedMode,"onUpdate:modelValue":n[0]||(n[0]=b=>a.selectedMode=b),card:"","card-orientation":"horizontal","data-testid":"oidc-auth-mode-kong-identity","selected-value":a.MODE_KONG_IDENTITY,onChange:i.handleModeChange},{default:t.withCtx(()=>[t.createElementVNode("div",Kp,[t.createVNode(s,{size:`var(--kui-icon-size-40, ${a.KUI_ICON_SIZE_40})`},null,8,["size"]),n[14]||(n[14]=t.createElementVNode("div",{class:"auth-mode-card-label"}," Kong Identity ",-1)),n[15]||(n[15]=t.createElementVNode("div",{class:"auth-mode-card-description"}," Use Kong Identity to authenticate OpenID Connect tokens. If all data plane nodes are running version 3.15 or later, you can also map requests to Kong Identity principals for advanced policies and integrations. ",-1))])]),_:1},8,["modelValue","selected-value","onChange"]),t.createVNode(u,{modelValue:a.selectedMode,"onUpdate:modelValue":n[1]||(n[1]=b=>a.selectedMode=b),card:"","card-orientation":"horizontal","data-testid":"oidc-auth-mode-external","selected-value":a.MODE_EXTERNAL,onChange:i.handleModeChange},{default:t.withCtx(()=>[t.createElementVNode("div",jp,[t.createVNode(f,{size:`var(--kui-icon-size-40, ${a.KUI_ICON_SIZE_40})`},null,8,["size"]),n[16]||(n[16]=t.createElementVNode("div",{class:"auth-mode-card-label"}," External auth server ",-1)),n[17]||(n[17]=t.createElementVNode("div",{class:"auth-mode-card-description"}," Connect to your existing identity provider to manage authentication outside of Kong. ",-1))])]),_:1},8,["modelValue","selected-value","onChange"])]),i.principalsSkeletonVisible&&a.selectedMode===a.MODE_KONG_IDENTITY?(t.openBlock(),t.createBlock(p,{key:0,class:"principals-create-guide-skeleton","data-testid":"principals-create-guide-loading"})):i.principalsGuideVisible&&a.selectedMode===a.MODE_KONG_IDENTITY?(t.openBlock(),t.createElementBlock("div",zp,[n[20]||(n[20]=t.createElementVNode("div",{class:"principals-create-guide-title"}," Add principals ",-1)),n[21]||(n[21]=t.createElementVNode("div",{class:"principals-create-guide-description"}," Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products. ",-1)),t.createElementVNode("div",$p,[t.createVNode(g,{appearance:"primary","data-testid":"principals-create-principal",onClick:n[2]||(n[2]=b=>a.leavePromptType="principal")},{default:t.withCtx(()=>[t.createVNode(m,{decorative:""}),n[18]||(n[18]=t.createTextVNode(" Create principal ",-1))]),_:1}),t.createVNode(g,{appearance:"secondary","data-testid":"principals-learn-more",onClick:n[3]||(n[3]=b=>e.$emit("click:learn-more","kong-identity"))},{default:t.withCtx(()=>[t.createVNode(k,{decorative:""}),n[19]||(n[19]=t.createTextVNode(" Learn more ",-1))]),_:1})])])):t.createCommentVNode("",!0),a.selectedMode===a.MODE_KONG_IDENTITY?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[i.hasAuthServersAccess?(t.openBlock(),t.createBlock(w,{key:0,class:"principals-directory-select","data-testid":"principals-directory-select","enable-filtering":"",items:i.kongIdentityServerItems,label:"Authorization Server","label-attributes":{info:"The Kong Identity auth server that will act as the OpenID Connect provider for this plugin.",tooltipAttributes:{maxWidth:"300"}},loading:a.kongIdentityServersLoading,"model-value":a.selectedServer?.id,placeholder:"Select an Authorization Server",required:"","onUpdate:modelValue":i.handleServerChange},t.createSlots({_:2},[i.canCreateAuthServer?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("div",{class:"create-action","data-testid":"create-auth-server-action",onClick:n[4]||(n[4]=t.withModifiers(b=>a.leavePromptType="authServer",["stop"]))},[t.createVNode(m,{size:`var(--kui-icon-size-20, ${a.KUI_ICON_SIZE_20})`},null,8,["size"]),n[22]||(n[22]=t.createElementVNode("div",{class:"create-action-content"},[t.createElementVNode("span",null,"Create authorization server"),t.createElementVNode("div",{class:"create-action-hint"}," You'll need to return here after creating an authorization server. Your progress won't be saved. ")],-1))])]),key:"0"}:void 0]),1032,["items","loading","model-value","onUpdate:modelValue"])):(t.openBlock(),t.createBlock(C,{key:1,"data-testid":"kong-identity-issuer-input",help:"You don't have access to browse authorization servers. Enter the issuer URL of your Kong Identity authorization server directly.",label:"Authorization Server","label-attributes":{info:"The Kong Identity auth server that will act as the OpenID Connect provider for this plugin.",tooltipAttributes:{maxWidth:"300"}},"model-value":o.formModel["config-issuer"],placeholder:"e.g., https://your-auth-server.identity.konghq.com",required:"","onUpdate:modelValue":n[5]||(n[5]=b=>i.updateField("config-issuer",b))},null,8,["model-value"])),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.clientIdArray,(b,h)=>(t.openBlock(),t.createElementBlock("div",{key:h,class:t.normalizeClass(["client-row",{"client-row-with-label":h===0}])},[i.hasAuthServersAccess?(t.openBlock(),t.createBlock(w,{key:1,class:"principals-client-select","data-testid":"principals-client-select",disabled:!a.selectedServer,"enable-filtering":"",items:i.getClientItemsForRow(h),label:h===0?"Client":void 0,loading:a.clientsLoading,"model-value":b,placeholder:"Select a client","onUpdate:modelValue":A=>i.handleClientChange(h,A)},t.createSlots({_:2},[i.canCreateAuthServerClient?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("div",{class:"create-action","data-testid":"create-client-action",onClick:n[6]||(n[6]=t.withModifiers(A=>a.leavePromptType="client",["stop"]))},[t.createVNode(m,{size:`var(--kui-icon-size-20, ${a.KUI_ICON_SIZE_20})`},null,8,["size"]),n[23]||(n[23]=t.createElementVNode("div",{class:"create-action-content"},[t.createElementVNode("span",null,"Create client"),t.createElementVNode("div",{class:"create-action-hint"}," You'll need to return here after creating a client. Your progress won't be saved. ")],-1))])]),key:"0"}:void 0]),1032,["disabled","items","label","loading","model-value","onUpdate:modelValue"])):(t.openBlock(),t.createBlock(C,{key:0,class:"principals-client-select","data-testid":"principals-client-id-input",label:h===0?"Client":void 0,"model-value":b,placeholder:"e.g., kong-gateway-client","onUpdate:modelValue":A=>i.handleClientChange(h,A)},null,8,["label","model-value","onUpdate:modelValue"])),t.createElementVNode("div",qp,[t.createVNode(O,{class:"principals-client-secret","data-testid":"principals-client-secret",disabled:i.hasAuthServersAccess&&!a.selectedServer,label:h===0?"Client secret":void 0,"model-value":i.clientSecretArray[h],placeholder:"e.g., your-client-secret","onUpdate:modelValue":A=>i.handleClientSecretChange(h,A)},null,8,["disabled","label","model-value","onUpdate:modelValue"]),i.autofillSlot?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{key:0,schema:{model:"config-client_secret",referenceable:!0},update:A=>i.handleClientSecretChange(h,A),value:i.clientSecretArray[h]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("button",{"aria-label":"Remove client",class:"remove-client-btn","data-testid":"remove-client-action",disabled:i.isRemoveClientDisabled,type:"button",onClick:A=>i.removeClientRow(h)},[t.createVNode(N,{size:`var(--kui-icon-size-30, ${a.KUI_ICON_SIZE_30})`},null,8,["size"])],8,Hp)],2))),128)),t.createElementVNode("div",{class:t.normalizeClass(["add-client-inline",{"add-client-inline-disabled":i.hasAuthServersAccess&&!a.selectedServer}]),"data-testid":"add-client-action",onClick:n[7]||(n[7]=b=>i.hasAuthServersAccess&&!a.selectedServer?null:i.addClientRow())}," + Add client ",2),t.createVNode(U,{"data-plane-incompatible":i.hasIncompatibleDataPlane,"form-model":o.formModel,"is-editing":o.isEditing,"on-enabled-change":i.handleUsePrincipalLookupChange,"on-model-updated":o.onModelUpdated,"show-enable-toggle":""},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"advanced-fields",{},void 0,!0)]),_:3},8,["data-plane-incompatible","form-model","is-editing","on-enabled-change","on-model-updated"])],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.clientIdArray,(b,h)=>(t.openBlock(),t.createElementBlock("div",{key:h,class:t.normalizeClass(["client-row",{"client-row-with-label":h===0}])},[t.createElementVNode("div",Yp,[t.createVNode(C,{class:"external-client-input","data-testid":"external-client-id",label:h===0?"Client id":void 0,"label-attributes":{info:o.formOptions?.helpAsHtml?void 0:i.externalClientIdField?.help,tooltipAttributes:{maxWidth:"300"}},"model-value":i.clientIdArray[h],placeholder:"e.g., kong-gateway-client","onUpdate:modelValue":A=>i.handleClientChange(h,A)},t.createSlots({_:2},[o.formOptions?.helpAsHtml&&i.externalClientIdField?.help?{name:"label-tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:i.sanitize(i.externalClientIdField.help)},null,8,Gp)]),key:"0"}:void 0]),1032,["label","label-attributes","model-value","onUpdate:modelValue"]),i.autofillSlot?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{key:0,schema:{model:"config-client_id",referenceable:!0},update:A=>i.handleClientChange(h,A),value:i.clientIdArray[h]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("div",Wp,[t.createVNode(O,{class:"external-client-input","data-testid":"external-client-secret",label:h===0?"Client secret":void 0,"label-attributes":{info:o.formOptions?.helpAsHtml?void 0:i.externalClientSecretField?.help,tooltipAttributes:{maxWidth:"300"}},"model-value":i.clientSecretArray[h],placeholder:"e.g., your-client-secret","onUpdate:modelValue":A=>i.handleClientSecretChange(h,A)},t.createSlots({_:2},[o.formOptions?.helpAsHtml&&i.externalClientSecretField?.help?{name:"label-tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:i.sanitize(i.externalClientSecretField.help)},null,8,Zp)]),key:"0"}:void 0]),1032,["label","label-attributes","model-value","onUpdate:modelValue"]),i.autofillSlot?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{key:0,schema:{model:"config-client_secret",referenceable:!0},update:A=>i.handleClientSecretChange(h,A),value:i.clientSecretArray[h]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("button",{"aria-label":"Remove client",class:"remove-client-btn","data-testid":"remove-external-client-action",disabled:i.clientIdArray.length<=1,type:"button",onClick:A=>i.removeClientRow(h)},[t.createVNode(N,{size:`var(--kui-icon-size-30, ${a.KUI_ICON_SIZE_30})`},null,8,["size"])],8,Xp)],2))),128)),t.createElementVNode("div",{class:"add-client-inline","data-testid":"add-external-client-action",onClick:n[8]||(n[8]=b=>i.addClientRow())}," + Add client "),t.createVNode(B,{model:o.formModel,options:o.formOptions,schema:i.issuerFieldsSchema,onModelUpdated:o.onModelUpdated},null,8,["model","options","schema","onModelUpdated"]),t.createVNode(U,{"data-plane-incompatible":i.hasIncompatibleDataPlane,"form-model":o.formModel,"is-editing":o.isEditing,"on-enabled-change":i.handleUsePrincipalLookupChange,"on-model-updated":o.onModelUpdated,"show-enable-toggle":""},{banner:t.withCtx(()=>[i.isKonnect&&i.formsConfig?.principalsCreationGuideVisible===void 0?(t.openBlock(),t.createBlock(p,{key:0,class:"principals-create-guide-skeleton","data-testid":"principals-create-guide-loading"})):i.isKonnect&&i.formsConfig?.principalsCreationGuideVisible?(t.openBlock(),t.createElementBlock("div",Jp,[n[26]||(n[26]=t.createElementVNode("div",{class:"principals-create-guide-title"}," Add principals ",-1)),n[27]||(n[27]=t.createElementVNode("div",{class:"principals-create-guide-description"}," Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products. Requires data plane nodes to be running version 3.15 or later. ",-1)),t.createElementVNode("div",Qp,[t.createVNode(g,{appearance:"primary","data-testid":"principals-create-principal",onClick:n[9]||(n[9]=b=>a.leavePromptType="principal")},{default:t.withCtx(()=>[t.createVNode(m,{decorative:""}),n[24]||(n[24]=t.createTextVNode(" Create principal ",-1))]),_:1}),t.createVNode(g,{appearance:"secondary","data-testid":"principals-learn-more",onClick:n[10]||(n[10]=b=>e.$emit("click:learn-more","kong-identity"))},{default:t.withCtx(()=>[t.createVNode(k,{decorative:""}),n[25]||(n[25]=t.createTextVNode(" Learn more ",-1))]),_:1})])])):t.createCommentVNode("",!0)]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"advanced-fields",{},void 0,!0)]),_:3},8,["data-plane-incompatible","form-model","is-editing","on-enabled-change","on-model-updated"])],64)),t.createVNode(T,{"action-button-text":"Leave page",message:"Your unsaved changes will be lost if you continue.",title:"Leave this page?",visible:!!a.leavePromptType,onCancel:n[11]||(n[11]=b=>a.leavePromptType=null),onProceed:i.handleLeaveConfirmed},null,8,["visible","onProceed"])])}const th=x(Lp,[["render",eh],["__scopeId","data-v-7d8659bd"]]),nh={name:"OIDCAuthMethods",props:{authMethodItems:{type:Array,default:()=>[]},selectedAuthMethods:{type:Array,default:()=>[]},sessionManagement:{type:Boolean,default:!1},principalsMode:{type:String,default:null}},emits:["select","session-change"]},oh={class:"oidc-auth-methods"},ih={class:"session-management-section"},ah={class:"session-radio-group"};function rh(e,n,o,r,a,i){const d=t.resolveComponent("KLabel"),s=t.resolveComponent("KMultiselect"),u=t.resolveComponent("KRadio");return t.openBlock(),t.createElementBlock("div",oh,[t.createVNode(d,null,{default:t.withCtx(()=>[...n[3]||(n[3]=[t.createTextVNode("Authentication methods",-1)])]),_:1}),(t.openBlock(),t.createBlock(s,{key:o.principalsMode,class:"auth-methods-multiselect","data-testid":"auth-methods-multiselect",items:o.authMethodItems,"model-value":o.selectedAuthMethods,placeholder:"Select authentication methods","onUpdate:modelValue":n[0]||(n[0]=f=>e.$emit("select",f))},null,8,["items","model-value"])),n[5]||(n[5]=t.createElementVNode("p",{class:"auth-methods-hint"}," Configure which OAuth and OpenID Connect features are supported. ",-1)),t.createElementVNode("div",ih,[t.createVNode(d,null,{default:t.withCtx(()=>[...n[4]||(n[4]=[t.createTextVNode("Session management",-1)])]),_:1}),t.createElementVNode("div",ah,[t.createVNode(u,{"data-testid":"session-radio-use",description:"Issue a session cookie after successful authentication. Subsequent requests use the session instead of re-authenticating with the identity provider.",label:"Use sessions","model-value":o.sessionManagement,"selected-value":!0,onChange:n[1]||(n[1]=f=>e.$emit("session-change",!0))},null,8,["model-value"]),t.createVNode(u,{"data-testid":"session-radio-no-use",description:"Authenticate each request using the configured authentication flow.",label:"Do not use sessions","model-value":o.sessionManagement,"selected-value":!1,onChange:n[2]||(n[2]=f=>e.$emit("session-change",!1))},null,8,["model-value"])])])])}const lh=x(nh,[["render",rh],["__scopeId","data-v-8c1cdc7c"]]),zt={openIdConnectDocs:"https://developer.konghq.com/plugins/openid-connect/",openIdConnectJWKDocs:"https://developer.konghq.com/plugins/openid-connect/reference/#schema--config-client-jwk",openIdConnectClusterNodesDocs:"https://developer.konghq.com/plugins/openid-connect/reference/#schema--config-redis-cluster-nodes",openIdConfigurationDocs:"https://developer.konghq.com/plugins/openid-connect/reference/",openIdAuthorizationDocs:"https://developer.konghq.com/plugins/openid-connect/#authorization"},Oa=new Set(["config-client_id","config-client_secret","config-issuer"]),Ba=new Set(["config-principals-enabled","config-principals-directory","config-principals-principal_by","config-principals-principal_claim","config-principals-match_consumer","config-principals-match_consumer_groups","config-principals-error_on_miss"]),Fa=new Set(["config-scopes_claim","config-scopes_required","config-audience_claim","config-audience_required","config-roles_claim","config-roles_required","config-groups_claim","config-groups_required","config-authenticated_groups_claim"]),Zn=["bearer","client_credentials","introspection","userinfo"],sh="identity.konghq",dh=e=>typeof e=="string"&&e.includes(sh),ch={name:"OIDCForm",components:{VueFormGenerator:Q,OIDCPrincipals:th,OIDCAuthMethods:lh},provide(){return{[he]:this.$slots?.[at]}},inject:{formsConfig:{from:tn,default:()=>({})}},props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>{}},onModelUpdated:{type:Function,required:!0},onPartialToggled:{type:Function,required:!0},isEditing:{type:Boolean,required:!0},enableRedisPartial:{type:Boolean,required:!1},isKonnectManagedRedisEnabled:{type:Boolean,default:!1},identityPrincipalsUiEnabled:{type:Boolean,default:!1},showNewPartialModal:{type:Function,default:()=>{}}},emits:["click:create-entity","click:learn-more"],data(){return{init:!1,authMethods:[],sessionManagement:!1,principalsMode:null,globalFields:null,commonFieldsSchema:null,authFieldsSchema:null,openIdConnectLink:zt.openIdConnectDocs,openIdConnectJWKLink:zt.openIdConnectJWKDocs,openIdConnectClusterNodesLink:zt.openIdConnectClusterNodesDocs,openIdConfigurationDocs:zt.openIdConfigurationDocs,openIdAuthorizationDocs:zt.openIdAuthorizationDocs,advancedFieldsSchema:{fields:[]},advancedFields:null,tabs:[{hash:"#common",title:"Common"},{hash:"#authorization",title:"Authorization"},{hash:"#advanced",title:"Advanced"}]}},computed:{displayForm(){return this.formModel.id&&this.isEditing||!this.isEditing},hasPrincipalsFields(){return this.identityPrincipalsUiEnabled&&this.formSchema.fields?.some(e=>Ba.has(e.model))},isKonnect(){return this.formsConfig?.app==="konnect"},useNewAuthMethodsField(){return this.isKonnect},authMethodItems(){return((this.principalsMode!==null?this.principalsMode==="kong-identity":dh(this.formModel["config-issuer"]))?this.authMethods.filter(o=>Zn.includes(o.value)):this.authMethods).map(o=>({label:o.label,value:o.value}))},selectedAuthMethods(){return this.authMethods.filter(e=>e.prop).map(e=>e.value)}},watch:{formModel:{handler:function(){this.oidcSetup()}}},mounted(){this.oidcSetup()},methods:{oidcSetup(){if(!this.init){this.init=!0,this.globalFields={fields:this.formSchema.fields.filter(a=>!a.model.startsWith("config")&&a.model!=="tags")};const e=this.formSchema.fields.reduce((a,i)=>(a[i.model]=i,a),{});this.commonFieldsSchema={fields:Array.from(Oa).reduce((a,i)=>(e[i]&&a.push(e[i]),a),[])},this.authFieldsSchema={fields:Array.from(Fa).reduce((a,i)=>(e[i]&&a.push(e[i]),a),[])};const{redis:n,redisModels:o}=Ne.useRedisPartial(this.formSchema);this.advancedFieldsSchema={fields:this.formSchema.fields.filter(a=>a.model.startsWith("config")&&a.model!=="config-auth_methods"&&!Oa.has(a.model)&&!Fa.has(a.model)&&!Ba.has(a.model)&&(!this.enableRedisPartial||!o.includes(a.model))||a.model==="tags").reduce((a,i)=>{switch(i.model){case"config-client_jwk":{if(Array.isArray(i.items?.schema?.fields))for(const d of i.items.schema.fields)d.label=d.model;a.push({...i,link:this.openIdConnectJWKLink,newElementButtonLabel:"+ Add Client JWK",...Array.isArray(i.items?.schema?.fields)&&i.items.schema.fields.map(d=>({...d,label:d.model}))});break}case"config-token_exchange-subject_token_issuers":{if(Array.isArray(i.items?.schema?.fields)){const d=i.items.schema.fields,s=d.find(f=>f.model==="verify_signature"),u=d.find(f=>f.model==="jwks_uri");if(s&&(s.checkboxLabel=s.label,s.label=void 0,s.checkboxDescription=f=>f.verify_signature===!0?"JSON Web Keys are automatically fetched from the issuer's well-known endpoint. Enter a JWKS URI below to override this.":void 0),u&&(u.visible=f=>f.verify_signature===!0),s&&u){const f=d.indexOf(s),p=d.indexOf(u);p!==f+1&&(d.splice(p,1),d.splice(f+1,0,u))}}a.push(i);break}case"config-session_redis_cluster_nodes":{a.push({...i,link:this.openIdConnectClusterNodesLink,newElementButtonLabel:"+ Add Cluster Node"});break}default:a.push(i)}return a},[])},this.enableRedisPartial&&this.advancedFieldsSchema.fields.unshift(n),this.sessionManagement=this.formModel["config-auth_methods"].includes("session"),this.authMethods=[{label:"Authorization code flow",value:"authorization_code",hint:"authorization code flow",prop:this.formModel["config-auth_methods"].includes("authorization_code")},{label:"Bearer access token",value:"bearer",hint:"JWT access token verification",prop:this.formModel["config-auth_methods"].includes("bearer")},{label:"Client credentials grant",value:"client_credentials",hint:"OAuth client credentials grant",prop:this.formModel["config-auth_methods"].includes("client_credentials")},{label:"Passwords grant",value:"password",hint:"OAuth legacy password grant",prop:this.formModel["config-auth_methods"].includes("password")},{label:"Introspection",value:"introspection",hint:"OAuth introspection",prop:this.formModel["config-auth_methods"].includes("introspection")},{label:"UserInfo",value:"userinfo",hint:"OpenID Connect user info endpoint authentication",prop:this.formModel["config-auth_methods"].includes("userinfo")},{label:"Kong OAuth",value:"kong_oauth2",hint:"Kong OAuth plugin issued tokens verification",prop:this.formModel["config-auth_methods"].includes("kong_oauth2")},{label:"Refresh token",value:"refresh_token",hint:"OAuth refresh token grant",prop:this.formModel["config-auth_methods"].includes("refresh_token")}];for(const a of[this.commonFieldsSchema,this.authFieldsSchema,this.advancedFieldsSchema])for(const i of a.fields){const d=e[i.model]?.help;i.help===void 0&&typeof d=="string"&&(i.help=d)}const r=this.formModel["config-consumer_claim"];if(r!=null&&r!==""&&(!this.formModel["config-consumer_claims"]||this.formModel["config-consumer_claims"].length===0)){const a=Array.isArray(r)?r:[r];this.formModel["config-consumer_claims"]=[a],this.onModelUpdated()}}},getAuthMethodsValue(e,n){const o=[];for(let r=0;r<this.authMethods.length;r++)this.authMethods[r].prop&&this.authMethods[r].value!==e&&o.push(this.authMethods[r].value);return this.sessionManagement&&e&&o.push("session"),n&&(e?o.push(e):o.push("session")),o},handleUpdate(e,n){this.formModel["config-auth_methods"]=this.getAuthMethodsValue(n,e),this.onModelUpdated()},handleAuthMethodsSelect(e){for(const o of this.authMethods)o.prop=e.includes(o.value);const n=[...e];this.sessionManagement&&n.push("session"),this.formModel["config-auth_methods"]=n,this.onModelUpdated()},handleSessionChange(e){this.sessionManagement=e;const n=this.authMethods.filter(o=>o.prop).map(o=>o.value);e&&n.push("session"),this.formModel["config-auth_methods"]=n,this.onModelUpdated()},handlePrincipalsModeChange(e){if(this.principalsMode=e,e==="kong-identity"){this.isEditing||(this.sessionManagement=!0);for(const o of this.authMethods)o.prop=Zn.includes(o.value);const n=[...Zn];this.sessionManagement&&n.push("session"),this.formModel["config-auth_methods"]=n,this.onModelUpdated()}else{this.sessionManagement=!0;for(const o of this.authMethods)o.prop=!0;const n=this.authMethods.map(o=>o.value);n.push("session"),this.formModel["config-auth_methods"]=n,this.onModelUpdated()}}}},mh={class:"general-settings"},uh={class:"link-wrapper"},fh={class:"auth-method-container"},ph={class:"general-settings"},hh={class:"link-wrapper"},gh={class:"general-settings"},yh={class:"link-wrapper"};function bh(e,n,o,r,a,i){const d=t.resolveComponent("VueFormGenerator"),s=t.resolveComponent("KExternalLink"),u=t.resolveComponent("OIDCAuthMethods"),f=t.resolveComponent("OIDCPrincipals"),p=t.resolveComponent("KLabel"),m=t.resolveComponent("KCheckbox"),g=t.resolveComponent("KInputSwitch"),k=t.resolveComponent("KTabs");return t.openBlock(),t.createElementBlock("div",null,[o.formModel.id&&o.isEditing||!o.isEditing?(t.openBlock(),t.createBlock(d,{key:0,class:"global-fields",model:o.formModel,options:o.formOptions,schema:a.globalFields,onModelUpdated:o.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),t.createVNode(k,{tabs:a.tabs},{common:t.withCtx(()=>[t.createElementVNode("div",mh,[t.createElementVNode("div",uh,[t.createVNode(s,{href:a.openIdConfigurationDocs},{default:t.withCtx(()=>[...n[4]||(n[4]=[t.createElementVNode("span",{class:"section-header"},"Common Configuration Settings",-1)])]),_:1},8,["href"])]),n[6]||(n[6]=t.createElementVNode("div",{class:"description"}," Parameters for enabling the OpenID Connect plugin. Set these parameters before adding authorization, authentication, or other advanced configuration details. ",-1)),i.isKonnect&&i.hasPrincipalsFields?(t.openBlock(),t.createBlock(f,{key:0,"common-fields-schema":a.commonFieldsSchema,"form-model":o.formModel,"form-options":o.formOptions,"form-schema":o.formSchema,"is-editing":o.isEditing,"on-model-updated":o.onModelUpdated,"onClick:createEntity":n[0]||(n[0]=w=>e.$emit("click:create-entity",w)),"onClick:learnMore":n[1]||(n[1]=w=>e.$emit("click:learn-more",w)),onModeChange:i.handlePrincipalsModeChange},{"advanced-fields":t.withCtx(()=>[t.createVNode(u,{"auth-method-items":i.authMethodItems,"principals-mode":a.principalsMode,"selected-auth-methods":i.selectedAuthMethods,"session-management":a.sessionManagement,onSelect:i.handleAuthMethodsSelect,onSessionChange:i.handleSessionChange},null,8,["auth-method-items","principals-mode","selected-auth-methods","session-management","onSelect","onSessionChange"])]),_:1},8,["common-fields-schema","form-model","form-options","form-schema","is-editing","on-model-updated","onModeChange"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[i.displayForm?(t.openBlock(),t.createBlock(d,{key:0,model:o.formModel,options:o.formOptions,schema:a.commonFieldsSchema,onModelUpdated:o.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),i.useNewAuthMethodsField?(t.openBlock(),t.createBlock(u,{key:1,"auth-method-items":i.authMethodItems,"principals-mode":a.principalsMode,"selected-auth-methods":i.selectedAuthMethods,"session-management":a.sessionManagement,onSelect:i.handleAuthMethodsSelect,onSessionChange:i.handleSessionChange},null,8,["auth-method-items","principals-mode","selected-auth-methods","session-management","onSelect","onSessionChange"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createVNode(p,null,{default:t.withCtx(()=>[...n[5]||(n[5]=[t.createTextVNode("Auth methods",-1)])]),_:1}),t.createElementVNode("div",fh,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.authMethods,w=>(t.openBlock(),t.createElementBlock("div",{key:w.value,class:"auth-method"},[t.createVNode(m,{modelValue:w.prop,"onUpdate:modelValue":C=>w.prop=C,"data-testid":`auth-method-checkbox-${w.value}`,onChange:C=>i.handleUpdate(C,w.value)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(w.label),1)]),_:2},1032,["modelValue","onUpdate:modelValue","data-testid","onChange"])]))),128))]),t.createVNode(g,{modelValue:a.sessionManagement,"onUpdate:modelValue":n[2]||(n[2]=w=>a.sessionManagement=w),"data-testid":"session-management-switch",label:"Enable Session Management",onChange:i.handleUpdate},null,8,["modelValue","onChange"])],64))],64))])]),authorization:t.withCtx(()=>[t.createElementVNode("div",ph,[t.createElementVNode("div",hh,[t.createVNode(s,{href:a.openIdAuthorizationDocs},{default:t.withCtx(()=>[...n[7]||(n[7]=[t.createElementVNode("span",{class:"section-header"},"Authorization Configuration Settings",-1)])]),_:1},8,["href"])]),n[8]||(n[8]=t.createElementVNode("div",{class:"description"}," Parameters for setting up claims-based authorization. ",-1)),i.displayForm?(t.openBlock(),t.createBlock(d,{key:0,model:o.formModel,options:o.formOptions,schema:a.authFieldsSchema,onModelUpdated:o.onModelUpdated},{"autofill-provider":t.withCtx(w=>[t.renderSlot(e.$slots,"autofill-provider",t.normalizeProps(t.guardReactiveProps(w)),void 0,!0)]),_:3},8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)])]),advanced:t.withCtx(()=>[t.createElementVNode("div",gh,[t.createElementVNode("div",yh,[t.createVNode(s,{href:a.openIdConnectLink},{default:t.withCtx(()=>[...n[9]||(n[9]=[t.createElementVNode("span",{class:"section-header"},"Advanced Configuration Settings",-1)])]),_:1},8,["href"])]),n[10]||(n[10]=t.createElementVNode("div",{class:"description"}," Advanced parameters for manually configuring the OpenID Connect plugin. ",-1)),i.displayForm?(t.openBlock(),t.createBlock(d,{key:0,"enable-redis-partial":o.enableRedisPartial,"is-editing":o.isEditing,"is-konnect-managed-redis-enabled":o.isKonnectManagedRedisEnabled,model:o.formModel,options:o.formOptions,schema:a.advancedFieldsSchema,onModelUpdated:o.onModelUpdated,onPartialToggled:o.onPartialToggled,onShowNewPartialModal:n[3]||(n[3]=()=>o.showNewPartialModal(o.formSchema._supported_redis_partial_type))},null,8,["enable-redis-partial","is-editing","is-konnect-managed-redis-enabled","model","options","schema","onModelUpdated","onPartialToggled"])):t.createCommentVNode("",!0)])]),_:3},8,["tabs"])])}const _h=x(ch,[["render",bh],["__scopeId","data-v-e20914ca"]]),Eh=x(t.defineComponent({__name:"PostFunction",props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>{}},onModelUpdated:{type:Function,required:!0},isEditing:{type:Boolean,required:!0}},setup(e){t.provide(he,t.useSlots()?.[at]);const{t:n,te:o}=Ee.createI18n("en-us",we),r=e,a=t.computed(()=>r.formModel.id&&r.isEditing||!r.isEditing),i=t.computed(()=>{const d=r.formSchema;return d.fields.map(s=>{const u=`post-function.${s.model}`;return s.hint=o(`${u}.hint`)&&n(`${u}.hint`)||s.hint,s.help=o(`${u}.help`)&&n(`${u}.help`)||s.help,s.newElementButtonLabel=o(`${u}.newElementButtonLabel`)&&n(`${u}.newElementButtonLabel`)||s.newElementButtonLabel,s.model!=="tags"&&(s.valueType==="array"||s.type==="array")&&(s.type="array",s.valueArrayType="array",s.itemContainerComponent="FieldArrayItem",s.fieldClasses="post-function-array-item-container",s.fieldItemsClasses="post-function-array-item",s.inputAttributes={...s.inputAttributes,type:"textarea"}),s}),d});return(d,s)=>a.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:i.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-f54f37ae"]]),Ch=x(t.defineComponent({__name:"ExitTransformer",props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>{}},onModelUpdated:{type:Function,required:!0},isEditing:{type:Boolean,required:!0}},setup(e){t.provide(he,t.useSlots()?.[at]);const{t:n,te:o}=Ee.createI18n("en-us",we),r=e,a=t.computed(()=>r.formModel.id&&r.isEditing||!r.isEditing),i=t.computed(()=>{const d=r.formSchema;return d.fields.map(s=>{const u=`exit-transformer.${s.model}`;return s.hint=o(`${u}.hint`)&&n(`${u}.hint`)||s.hint,s.help=o(`${u}.help`)&&n(`${u}.help`)||s.help,s.newElementButtonLabel=o(`${u}.newElementButtonLabel`)&&n(`${u}.newElementButtonLabel`)||s.newElementButtonLabel,s.model!=="tags"&&(s.valueType==="array"||s.type==="array")&&(s.type="array",s.valueArrayType="array",s.itemContainerComponent="FieldArrayItem",s.fieldClasses="exit-transformer-array-item-container",s.fieldItemsClasses="exit-transformer-array-item",s.inputAttributes={...s.inputAttributes,type:"textarea"}),s}),d});return(d,s)=>a.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:i.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-0d5c541f"]]),Sh={fields:[{inputType:"text",label:"Config.Account Email",model:"config-account_email",required:!0,type:"input"},{inputType:"text",label:"Config.Account Key.Key Id",model:"config-account_key-key_id",required:!0,type:"input"},{type:"input",inputType:"text",valueType:"string",label:"Config.Account Key.Key Set",model:"config-account_key-key_set",order:0,disabled:!1},{type:"checkbox",default:!1,valueType:"boolean",label:"Config.Allow Any Domain",model:"config-allow_any_domain",order:0,disabled:!1}]},kh={fields:[{type:"input",default:"",inputType:"text",valueType:"string",model:"config-api_uri",label:"Config.Api Uri",order:0,disabled:!1},{type:"checkbox",default:!1,valueType:"boolean",model:"config-tos_accepted",label:"Config.Tos Accepted",order:0,disabled:!1}]},wh={fields:[{type:"input",default:"",inputType:"text",valueType:"string",model:"config-api_uri",label:"Config.Api Uri",order:0,disabled:!1},{type:"input",inputType:"text",valueType:"string",model:"config-eab_hmac_key",label:"Config.Eab Hmac Key",order:0,disabled:!1},{type:"input",inputType:"text",valueType:"string",model:"config-eab_kid",label:"Config.Eab Kid",order:0,disabled:!1}]},Th={class:"general-settings"},Mh={class:"sub-form"},Ah={class:"general-settings"},Nh={class:"sub-form"},Ih={class:"general-settings"},Vh=x(t.defineComponent({__name:"ACMEForm",props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>{}},onModelUpdated:{type:Function,required:!0},isEditing:{type:Boolean,required:!0}},setup(e){t.provide(he,t.useSlots()?.[at]);const n=e,o=t.ref("zeroSsl"),r=t.ref("shm"),a=t.computed(()=>{const b={};if(n.formSchema?.fields)for(const h of n.formSchema.fields)b[h.model]=h;return b}),i=t.computed(()=>{const b=ze(Sh);for(const h of b.fields){const A=a.value[h.model]?.help;h.help===void 0&&typeof A=="string"&&(h.help=A)}return b}),d=t.computed(()=>{const b=ze(kh);for(const h of b.fields){const A=a.value[h.model]?.help;h.help===void 0&&typeof A=="string"&&(h.help=A)}return b}),s=t.computed(()=>{const b=ze(wh);for(const h of b.fields){const A=a.value[h.model]?.help;h.help===void 0&&typeof A=="string"&&(h.help=A)}return b}),u=t.computed(()=>({fields:n.formSchema.fields.filter(b=>!b.model.startsWith("config")&&b.model!=="tags")})),f=t.computed(()=>({fields:i.value.fields.filter(h=>!d.value.fields.some(A=>A.model===h.model)&&!s.value.fields.some(A=>A.model===h.model))})),p=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage")&&!h.model.startsWith("config-storage_config-consul")&&!h.model.startsWith("config-storage_config-redis")&&!h.model.startsWith("config-storage_config-shm")&&!h.model.startsWith("config-storage_config-vault"))})),m=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage_config-consul"))})),g=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage_config-redis"))})),k=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage_config-shm"))})),w=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage_config-vault"))})),C=t.computed(()=>({fields:n.formSchema.fields.filter(b=>b.model.startsWith("config")&&!f.value.fields.filter(h=>h.model===b.model).length&&!p.value.fields.filter(h=>h.model===b.model).length||b.model==="tags")})),O=t.computed(()=>n.formModel.id&&n.isEditing||!n.isEditing),N=[{hash:"#general",title:"General"},{hash:"#storage",title:"Storage"},{hash:"#advanced",title:"Advanced"}],U=[{label:"Lets Encrypt",value:"letsEncrypt"},{label:"Zero SSL",value:"zeroSsl",selected:!0},{label:"Other",value:"other"}];t.onMounted(()=>{o.value==="zeroSsl"&&(n.formModel["config-api_uri"]="https://acme.zerossl.com/v2/DV90")});const B=b=>{o.value=b.value,(b.value==="zeroSsl"||b.value==="other")&&(b.value==="zeroSsl"?n.formModel["config-api_uri"]="https://acme.zerossl.com/v2/DV90":n.formModel["config-api_uri"]="https://acme.example.com/",n.formModel["config-tos_accepted"]=!1),b.value==="letsEncrypt"&&(n.formModel["config-api_uri"]="https://acme-v02.api.letsencrypt.org/directory",n.formModel["config-eab_hmac_key"]="",n.formModel["config-eab_kid"]=""),n.onModelUpdated()},T=(b,h)=>{h==="config-storage"&&(r.value=b),n.onModelUpdated()};return(b,h)=>{const A=t.resolveComponent("KSelect"),$=t.resolveComponent("KTabs");return t.openBlock(),t.createElementBlock("div",null,[e.formModel.id&&e.isEditing||!e.isEditing?(t.openBlock(),t.createBlock(Q,{key:0,class:"global-fields",model:e.formModel,options:e.formOptions,schema:u.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),t.createVNode($,{tabs:N},{general:t.withCtx(()=>[t.createElementVNode("div",Th,[h[0]||(h[0]=t.createElementVNode("div",{class:"header-wrapper"},[t.createElementVNode("span",{class:"section-header"},"General Configuration Settings")],-1)),h[1]||(h[1]=t.createElementVNode("div",{class:"description"}," Parameters for enabling the ACME plugin. ",-1)),O.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:f.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),h[2]||(h[2]=t.createElementVNode("hr",null,null,-1)),t.createVNode(A,{class:"issuer-select",items:U,label:"Issuer",onChange:B}),t.createElementVNode("div",Mh,[o.value==="letsEncrypt"?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:d.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),o.value==="zeroSsl"||o.value==="other"?(t.openBlock(),t.createBlock(Q,{key:1,model:e.formModel,options:e.formOptions,schema:s.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)])])]),storage:t.withCtx(()=>[t.createElementVNode("div",Ah,[h[3]||(h[3]=t.createElementVNode("div",{class:"header-wrapper"},[t.createElementVNode("span",{class:"section-header"},"Storage Configuration Settings")],-1)),h[4]||(h[4]=t.createElementVNode("div",{class:"description"}," Parameters for setting up storage. ",-1)),O.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:p.value,onModelUpdated:T},null,8,["model","options","schema"])):t.createCommentVNode("",!0),t.createElementVNode("div",Nh,[r.value==="consul"?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:m.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),r.value==="redis"?(t.openBlock(),t.createBlock(Q,{key:1,model:e.formModel,options:e.formOptions,schema:g.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),r.value==="shm"?(t.openBlock(),t.createBlock(Q,{key:2,model:e.formModel,options:e.formOptions,schema:k.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),r.value==="vault"?(t.openBlock(),t.createBlock(Q,{key:3,model:e.formModel,options:e.formOptions,schema:w.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)])])]),advanced:t.withCtx(()=>[t.createElementVNode("div",Ih,[h[5]||(h[5]=t.createElementVNode("div",{class:"header-wrapper"},[t.createElementVNode("span",{class:"section-header"},"Advanced Configuration Settings")],-1)),h[6]||(h[6]=t.createElementVNode("div",{class:"description"}," Advanced parameters for manually configuring the ACME plugin. ",-1)),O.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:C.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)])]),_:1})])}}}),[["__scopeId","data-v-07cecf5b"]]),Oh={class:"rla-form-basic-fields"},Bh={class:"rla-form-request-limits-subtitle"},Fh={class:"rla-form-request-limits-content"},Rh={class:"rla-form-window-type"},Dh=["innerHTML"],Uh={class:"rla-form-window-type-radios"},Lh={class:"rla-form-request-limits-items"},Ph={class:"rla-form-request-limits-row"},vh=["id"],xh={class:"rla-form-request-limits-actions"},Kh={key:0,class:"rla-form-request-limits-examples"},jh={class:"rla-form-request-limits-examples-badges"},zh=["innerHTML"],$h={id:"rla-form-error-legend",class:"rla-form-error-inputs"},qh=Object.freeze(Object.defineProperty({__proto__:null,ACMEForm:Vh,ExitTransformer:Ch,OIDCForm:_h,PostFunction:Eh,RLAForm:x(t.defineComponent({__name:"RLAForm",props:{formSchema:{},formModel:{},formOptions:{},onModelUpdated:{type:Function},onPartialToggled:{type:Function},showNewPartialModal:{type:Function},isEditing:{type:Boolean},enableRedisPartial:{type:Boolean},isKonnectManagedRedisEnabled:{type:Boolean}},setup(e){t.provide(he,t.useSlots()?.[at]);const n={fixed:[{label:"500 requests every hour",description:"A fixed limit of 500 requests per hour resetting sharply on the hour, ensuring no user can exceed this limit.",config:{limit:500,window_size:3600}},{label:"200 requests every 30 minutes",description:"Users are allowed 200 requests per 30 minutes, resetting exactly on the 30 minute mark with no carryover of unused limits.",config:{limit:200,window_size:1800}},{label:"500 requests every day",description:"A strict limit of 5000 requests per day resetting promptly at midnight, preventing any burst traffic or inconsistent user experiences.",config:{limit:500,window_size:86400}}],sliding:[{label:"100 requests every hour",description:"Maximum of 100 requests every rolling hour, continuously adjusting the count over the course of the hour. No hard limit or known reset.",config:{limit:100,window_size:3600}},{label:"300 requests every 30 minutes",description:"Each user can make up to 300 requests in any rolling 30 minute period, with older requests dropping off as new requests are made.",config:{limit:300,window_size:1800}},{label:"500 requests every hour",description:`Each user is allowed 500 requests per hour.
|
|
3
|
+
`+pe),qe&&(pe=yn(pe)),M&&pn?Fe(pe):pe},n.setConfig=function(){let S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};co(S),to=!0,mn=Z,un=X},n.clearConfig=function(){At=null,to=!1,mn=null,un=null,M=ce,L=""},n.isValidAttribute=function(S,l,c){At||co({});const _=oe(S),E=oe(l);return typeof c=="string"&&(lr(l,c)||!eo&&se(di,c))?!1:ar(_,E,c)},n.addHook=function(S,l){typeof l=="function"&&ge(G,S)&&Dt(G[S],l)},n.removeHook=function(S,l){if(ge(G,S)){if(l!==void 0){const c=ws(G[S],l);return c===-1?void 0:Ms(G[S],c,1)[0]}return Xo(G[S])}},n.removeHooks=function(S){ge(G,S)&&(G[S]=[])},n.removeAllHooks=function(){G=ci()},n}var on=mi();function Ws(){this.__data__=new Pe,this.size=0}function Zs(e){var n=this.__data__,o=n.delete(e);return this.size=n.size,o}function Xs(e){return this.__data__.get(e)}function Js(e){return this.__data__.has(e)}var Qs=200;function ed(e,n){var o=this.__data__;if(o instanceof Pe){var r=o.__data__;if(!Rt||r.length<Qs-1)return r.push([e,n]),this.size=++o.size,this;o=this.__data__=new ve(r)}return o.set(e,n),this.size=o.size,this}function bt(e){var n=this.__data__=new Pe(e);this.size=n.size}bt.prototype.clear=Ws,bt.prototype.delete=Zs,bt.prototype.get=Xs,bt.prototype.has=Js,bt.prototype.set=ed;var an=(function(){try{var e=ot(Object,"defineProperty");return e({},"",{}),e}catch{}})();function ui(e,n,o){n=="__proto__"&&an?an(e,n,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[n]=o}var td=Object.prototype,nd=td.hasOwnProperty;function fi(e,n,o){var r=e[n];(!(nd.call(e,n)&&Jt(r,o))||o===void 0&&!(n in e))&&ui(e,n,o)}function rn(e,n,o,r){var a=!o;o||(o={});for(var i=-1,d=n.length;++i<d;){var s=n[i],u=void 0;u===void 0&&(u=e[s]),a?ui(o,s,u):fi(o,s,u)}return o}function od(e,n){return e&&rn(n,Zt(n),e)}function id(e){var n=[];if(e!=null)for(var o in Object(e))n.push(o);return n}var ad=Object.prototype,rd=ad.hasOwnProperty;function ld(e){if(!Ce(e))return id(e);var n=Sn(e),o=[];for(var r in e)r=="constructor"&&(n||!rd.call(e,r))||o.push(r);return o}function ln(e){return Wt(e)?Do(e,!0):ld(e)}function sd(e,n){return e&&rn(n,ln(n),e)}var pi=typeof D=="object"&&D&&!D.nodeType&&D,hi=pi&&typeof module=="object"&&module&&!module.nodeType&&module,dd=hi&&hi.exports===pi,gi=dd?Te.Buffer:void 0,yi=gi?gi.allocUnsafe:void 0;function cd(e,n){if(n)return e.slice();var o=e.length,r=yi?yi(o):new e.constructor(o);return e.copy(r),r}function md(e,n){var o=-1,r=e.length;for(n||(n=Array(r));++o<r;)n[o]=e[o];return n}function ud(e,n){for(var o=-1,r=e==null?0:e.length,a=0,i=[];++o<r;){var d=e[o];n(d,o,e)&&(i[a++]=d)}return i}function bi(){return[]}var fd=Object.prototype,pd=fd.propertyIsEnumerable,_i=Object.getOwnPropertySymbols,Ln=_i?function(e){return e==null?[]:(e=Object(e),ud(_i(e),function(n){return pd.call(e,n)}))}:bi;function hd(e,n){return rn(e,Ln(e),n)}function Ei(e,n){for(var o=-1,r=n.length,a=e.length;++o<r;)e[a+o]=n[o];return e}var Ci=Uo(Object.getPrototypeOf,Object),gd=Object.getOwnPropertySymbols,Si=gd?function(e){for(var n=[];e;)Ei(n,Ln(e)),e=Ci(e);return n}:bi;function yd(e,n){return rn(e,Si(e),n)}function ki(e,n,o){var r=n(e);return We(e)?r:Ei(r,o(e))}function bd(e){return ki(e,Zt,Ln)}function _d(e){return ki(e,ln,Si)}var Pn=ot(Te,"DataView"),vn=ot(Te,"Promise"),_t=ot(Te,"Set"),xn=ot(Te,"WeakMap"),wi="[object Map]",Ed="[object Object]",Ti="[object Promise]",Mi="[object Set]",Ai="[object WeakMap]",Ni="[object DataView]",Cd=nt(Pn),Sd=nt(Rt),kd=nt(vn),wd=nt(_t),Td=nt(xn),je=Ye;(Pn&&je(new Pn(new ArrayBuffer(1)))!=Ni||Rt&&je(new Rt)!=wi||vn&&je(vn.resolve())!=Ti||_t&&je(new _t)!=Mi||xn&&je(new xn)!=Ai)&&(je=function(e){var n=Ye(e),o=n==Ed?e.constructor:void 0,r=o?nt(o):"";if(r)switch(r){case Cd:return Ni;case Sd:return wi;case kd:return Ti;case wd:return Mi;case Td:return Ai}return n});var Md=Object.prototype,Ad=Md.hasOwnProperty;function Nd(e){var n=e.length,o=new e.constructor(n);return n&&typeof e[0]=="string"&&Ad.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var Ii=Te.Uint8Array;function Kn(e){var n=new e.constructor(e.byteLength);return new Ii(n).set(new Ii(e)),n}function Id(e,n){var o=n?Kn(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var Vd=/\w*$/;function Od(e){var n=new e.constructor(e.source,Vd.exec(e));return n.lastIndex=e.lastIndex,n}var Vi=He?He.prototype:void 0,Oi=Vi?Vi.valueOf:void 0;function Bd(e){return Oi?Object(Oi.call(e)):{}}function Fd(e,n){var o=n?Kn(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Rd="[object Boolean]",Dd="[object Date]",Ud="[object Map]",Ld="[object Number]",Pd="[object RegExp]",vd="[object Set]",xd="[object String]",Kd="[object Symbol]",jd="[object ArrayBuffer]",zd="[object DataView]",$d="[object Float32Array]",qd="[object Float64Array]",Hd="[object Int8Array]",Yd="[object Int16Array]",Gd="[object Int32Array]",Wd="[object Uint8Array]",Zd="[object Uint8ClampedArray]",Xd="[object Uint16Array]",Jd="[object Uint32Array]";function Qd(e,n,o){var r=e.constructor;switch(n){case jd:return Kn(e);case Rd:case Dd:return new r(+e);case zd:return Id(e,o);case $d:case qd:case Hd:case Yd:case Gd:case Wd:case Zd:case Xd:case Jd:return Fd(e,o);case Ud:return new r;case Ld:case xd:return new r(e);case Pd:return Od(e);case vd:return new r;case Kd:return Bd(e)}}var Bi=Object.create,ec=(function(){function e(){}return function(n){if(!Ce(n))return{};if(Bi)return Bi(n);e.prototype=n;var o=new e;return e.prototype=void 0,o}})();function tc(e){return typeof e.constructor=="function"&&!Sn(e)?ec(Ci(e)):{}}var nc="[object Map]";function oc(e){return Ge(e)&&je(e)==nc}var Fi=ht&&ht.isMap,ic=Fi?En(Fi):oc,ac="[object Set]";function rc(e){return Ge(e)&&je(e)==ac}var Ri=ht&&ht.isSet,lc=Ri?En(Ri):rc,sc=1,dc=2,cc=4,Di="[object Arguments]",mc="[object Array]",uc="[object Boolean]",fc="[object Date]",pc="[object Error]",Ui="[object Function]",hc="[object GeneratorFunction]",gc="[object Map]",yc="[object Number]",Li="[object Object]",bc="[object RegExp]",_c="[object Set]",Ec="[object String]",Cc="[object Symbol]",Sc="[object WeakMap]",kc="[object ArrayBuffer]",wc="[object DataView]",Tc="[object Float32Array]",Mc="[object Float64Array]",Ac="[object Int8Array]",Nc="[object Int16Array]",Ic="[object Int32Array]",Vc="[object Uint8Array]",Oc="[object Uint8ClampedArray]",Bc="[object Uint16Array]",Fc="[object Uint32Array]",q={};q[Di]=q[mc]=q[kc]=q[wc]=q[uc]=q[fc]=q[Tc]=q[Mc]=q[Ac]=q[Nc]=q[Ic]=q[gc]=q[yc]=q[Li]=q[bc]=q[_c]=q[Ec]=q[Cc]=q[Vc]=q[Oc]=q[Bc]=q[Fc]=!0,q[pc]=q[Ui]=q[Sc]=!1;function vt(e,n,o,r,a,i){var d,s=n&sc,u=n&dc,f=n&cc;if(d!==void 0)return d;if(!Ce(e))return e;var p=We(e);if(p){if(d=Nd(e),!s)return md(e,d)}else{var m=je(e),g=m==Ui||m==hc;if(Vo(e))return cd(e,s);if(m==Li||m==Di||g&&!a){if(d=u||g?{}:tc(e),!s)return u?yd(e,sd(d,e)):hd(e,od(d,e))}else{if(!q[m])return a?e:{};d=Qd(e,m,s)}}i||(i=new bt);var k=i.get(e);if(k)return k;i.set(e,d),lc(e)?e.forEach(function(O){d.add(vt(O,n,o,O,e,i))}):ic(e)&&e.forEach(function(O,N){d.set(N,vt(O,n,o,N,e,i))});var w=f?u?_d:bd:u?ln:Zt,C=p?void 0:w(e);return Co(C||e,function(O,N){C&&(N=O,O=e[N]),fi(d,N,vt(O,n,o,N,e,i))}),d}var Rc=1,Dc=4;function ze(e){return vt(e,Rc|Dc)}const jn=(e,n="")=>typeof e.id<"u"?n+e.id+"":n+(e.inputName||e.label||e.model||"").toString().trim().toLowerCase().replace(/ |_/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"").replace(/([^a-zA-Z0-9-]+)/g,""),Pi=(e="")=>e.toString().trim().replace(/ /g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"").replace(/([^a-zA-Z0-9-_/./:]+)/g,"");var Uc="[object String]";function lt(e){return typeof e=="string"||!We(e)&&Ge(e)&&Ye(e)==Uc}const vi={methods:{getFieldRowClasses(e){const n=this.fieldErrors(e).length>0,o={[j(this.options,"validationErrorClass","error")]:n,[j(this.options,"validationSuccessClass","valid")]:!n,disabled:this.fieldDisabled(e),readonly:this.fieldReadonly(e),featured:this.fieldFeatured(e),required:this.fieldRequired(e)};return Array.isArray(e.styleClasses)?fe(e.styleClasses,r=>o[r]=!0):lt(e.styleClasses)&&(o[e.styleClasses]=!0),te(e.type)||(o["field-"+e.type]=!0),o},fieldErrors(e){return this.errors.filter(o=>o.field.fieldName===e.fieldName).map(o=>o.error)},fieldDisabled(e){return z(e.disabled)?e.disabled.call(this,this.model,e,this):te(e.disabled)?!1:e.disabled},fieldReadonly(e){return z(e.readonly)?e.readonly.call(this,this.model,e,this):te(e.readonly)?!1:e.readonly},fieldFeatured(e){return z(e.featured)?e.featured.call(this,this.model,e,this):te(e.featured)?!1:e.featured},fieldRequired(e){return z(e.required)?e.required.call(this,this.model,e,this):te(e.required)?!1:e.required}}};var zn=function(){return Te.Date.now()},Lc=/\s/;function Pc(e){for(var n=e.length;n--&&Lc.test(e.charAt(n)););return n}var vc=/^\s+/;function xc(e){return e&&e.slice(0,Pc(e)+1).replace(vc,"")}var xi=NaN,Kc=/^[-+]0x[0-9a-f]+$/i,jc=/^0b[01]+$/i,zc=/^0o[0-7]+$/i,$c=parseInt;function $n(e){if(typeof e=="number")return e;if(Xt(e))return xi;if(Ce(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=Ce(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=xc(e);var o=jc.test(e);return o||zc.test(e)?$c(e.slice(2),o?2:8):Kc.test(e)?xi:+e}var qc="Expected a function",Hc=Math.max,Yc=Math.min;function Et(e,n,o){var r,a,i,d,s,u,f=0,p=!1,m=!1,g=!0;if(typeof e!="function")throw new TypeError(qc);n=$n(n)||0,Ce(o)&&(p=!!o.leading,m="maxWait"in o,i=m?Hc($n(o.maxWait)||0,n):i,g="trailing"in o?!!o.trailing:g);function k(h){var A=r,$=a;return r=a=void 0,f=h,d=e.apply($,A),d}function w(h){return f=h,s=setTimeout(N,n),p?k(h):d}function C(h){var A=h-u,$=h-f,V=n-A;return m?Yc(V,i-$):V}function O(h){var A=h-u,$=h-f;return u===void 0||A>=n||A<0||m&&$>=i}function N(){var h=zn();if(O(h))return U(h);s=setTimeout(N,C(h))}function U(h){return s=void 0,g&&r?k(h):(r=a=void 0,d)}function B(){s!==void 0&&clearTimeout(s),f=0,r=u=a=s=void 0}function T(){return s===void 0?d:U(zn())}function b(){var h=zn(),A=O(h);if(r=arguments,a=this,u=h,A){if(s===void 0)return w(u);if(m)return clearTimeout(s),s=setTimeout(N,n),k(u)}return s===void 0&&(s=setTimeout(N,n)),d}return b.cancel=B,b.flush=T,b}var Gc="__lodash_hash_undefined__";function Wc(e){return this.__data__.set(e,Gc),this}function Zc(e){return this.__data__.has(e)}function sn(e){var n=-1,o=e==null?0:e.length;for(this.__data__=new ve;++n<o;)this.add(e[n])}sn.prototype.add=sn.prototype.push=Wc,sn.prototype.has=Zc;function Xc(e,n,o,r){for(var a=e.length,i=o+-1;++i<a;)if(n(e[i],i,e))return i;return-1}function Jc(e){return e!==e}function Qc(e,n,o){for(var r=o-1,a=e.length;++r<a;)if(e[r]===n)return r;return-1}function em(e,n,o){return n===n?Qc(e,n,o):Xc(e,Jc,o)}function tm(e,n){var o=e==null?0:e.length;return!!o&&em(e,n,0)>-1}function nm(e,n){return e.has(n)}function om(){}function Ki(e){var n=-1,o=Array(e.size);return e.forEach(function(r){o[++n]=r}),o}var im=1/0,am=_t&&1/Ki(new _t([,-0]))[1]==im?function(e){return new _t(e)}:om,rm=200;function lm(e,n,o){var r=-1,a=tm,i=e.length,d=!0,s=[],u=s;if(i>=rm){var f=am(e);if(f)return Ki(f);d=!1,a=nm,u=new sn}else u=s;e:for(;++r<i;){var p=e[r],m=p;if(p=p!==0?p:0,d&&m===m){for(var g=u.length;g--;)if(u[g]===m)continue e;s.push(p)}else a(u,m,o)||(u!==s&&u.push(m),s.push(p))}return s}function ji(e){return e&&e.length?lm(e):[]}var sm=0;function zi(e){var n=++sm;return Ko(e)+n}var $i=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,Xe="\\d\\d?",Je="\\d\\d",dm="\\d{3}",cm="\\d{4}",xt="[^\\s]+",qi=/\[([^]*?)\]/gm;function Hi(e,n){for(var o=[],r=0,a=e.length;r<a;r++)o.push(e[r].substr(0,n));return o}var Yi=function(e){return function(n,o){var r=o[e].map(function(i){return i.toLowerCase()}),a=r.indexOf(n.toLowerCase());return a>-1?a:null}};function st(e){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];for(var r=0,a=n;r<a.length;r++){var i=a[r];for(var d in i)e[d]=i[d]}return e}var Gi=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Wi=["January","February","March","April","May","June","July","August","September","October","November","December"],mm=Hi(Wi,3),um=Hi(Gi,3),Zi={dayNamesShort:um,dayNames:Gi,monthNamesShort:mm,monthNames:Wi,amPm:["am","pm"],DoFn:function(e){return e+["th","st","nd","rd"][e%10>3?0:(e-e%10!==10?1:0)*e%10]}},dn=st({},Zi),fm=function(e){return dn=st(dn,e)},Xi=function(e){return e.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ye=function(e,n){for(n===void 0&&(n=2),e=String(e);e.length<n;)e="0"+e;return e},pm={D:function(e){return String(e.getDate())},DD:function(e){return ye(e.getDate())},Do:function(e,n){return n.DoFn(e.getDate())},d:function(e){return String(e.getDay())},dd:function(e){return ye(e.getDay())},ddd:function(e,n){return n.dayNamesShort[e.getDay()]},dddd:function(e,n){return n.dayNames[e.getDay()]},M:function(e){return String(e.getMonth()+1)},MM:function(e){return ye(e.getMonth()+1)},MMM:function(e,n){return n.monthNamesShort[e.getMonth()]},MMMM:function(e,n){return n.monthNames[e.getMonth()]},YY:function(e){return ye(String(e.getFullYear()),4).substr(2)},YYYY:function(e){return ye(e.getFullYear(),4)},h:function(e){return String(e.getHours()%12||12)},hh:function(e){return ye(e.getHours()%12||12)},H:function(e){return String(e.getHours())},HH:function(e){return ye(e.getHours())},m:function(e){return String(e.getMinutes())},mm:function(e){return ye(e.getMinutes())},s:function(e){return String(e.getSeconds())},ss:function(e){return ye(e.getSeconds())},S:function(e){return String(Math.round(e.getMilliseconds()/100))},SS:function(e){return ye(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return ye(e.getMilliseconds(),3)},a:function(e,n){return e.getHours()<12?n.amPm[0]:n.amPm[1]},A:function(e,n){return e.getHours()<12?n.amPm[0].toUpperCase():n.amPm[1].toUpperCase()},ZZ:function(e){var n=e.getTimezoneOffset();return(n>0?"-":"+")+ye(Math.floor(Math.abs(n)/60)*100+Math.abs(n)%60,4)},Z:function(e){var n=e.getTimezoneOffset();return(n>0?"-":"+")+ye(Math.floor(Math.abs(n)/60),2)+":"+ye(Math.abs(n)%60,2)}},Ji=function(e){return+e-1},Qi=[null,Xe],ea=[null,xt],ta=["isPm",xt,function(e,n){var o=e.toLowerCase();return o===n.amPm[0]?0:o===n.amPm[1]?1:null}],na=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(e){var n=(e+"").match(/([+-]|\d\d)/gi);if(n){var o=+n[1]*60+parseInt(n[2],10);return n[0]==="+"?o:-o}return 0}],hm={D:["day",Xe],DD:["day",Je],Do:["day",Xe+xt,function(e){return parseInt(e,10)}],M:["month",Xe,Ji],MM:["month",Je,Ji],YY:["year",Je,function(e){var n=new Date,o=+(""+n.getFullYear()).substr(0,2);return+(""+(+e>68?o-1:o)+e)}],h:["hour",Xe,void 0,"isPm"],hh:["hour",Je,void 0,"isPm"],H:["hour",Xe],HH:["hour",Je],m:["minute",Xe],mm:["minute",Je],s:["second",Xe],ss:["second",Je],YYYY:["year",cm],S:["millisecond","\\d",function(e){return+e*100}],SS:["millisecond",Je,function(e){return+e*10}],SSS:["millisecond",dm],d:Qi,dd:Qi,ddd:ea,dddd:ea,MMM:["month",xt,Yi("monthNamesShort")],MMMM:["month",xt,Yi("monthNames")],a:ta,A:ta,ZZ:na,Z:na},cn={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},gm=function(e){return st(cn,e)},ym=function(e,n,o){if(n===void 0&&(n=cn.default),o===void 0&&(o={}),typeof e=="number"&&(e=new Date(e)),Object.prototype.toString.call(e)!=="[object Date]"||isNaN(e.getTime()))throw new Error("Invalid Date pass to format");n=cn[n]||n;var r=[];n=n.replace(qi,function(i,d){return r.push(d),"@@@"});var a=st(st({},dn),o);return n=n.replace($i,function(i){return pm[i](e,a)}),n.replace(/@@@/g,function(){return r.shift()})};function bm(e,n,o){if(o===void 0&&(o={}),typeof n!="string")throw new Error("Invalid format in fecha parse");if(n=cn[n]||n,e.length>1e3)return null;var r=new Date,a={year:r.getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},i=[],d=[],s=n.replace(qi,function(T,b){return d.push(Xi(b)),"@@@"}),u={},f={};s=Xi(s).replace($i,function(T){var b=hm[T],h=b[0],A=b[1],$=b[3];if(u[h])throw new Error("Invalid format. "+h+" specified twice in format");return u[h]=!0,$&&(f[$]=!0),i.push(b),"("+A+")"}),Object.keys(f).forEach(function(T){if(!u[T])throw new Error("Invalid format. "+T+" is required in specified format")}),s=s.replace(/@@@/g,function(){return d.shift()});var p=e.match(new RegExp(s,"i"));if(!p)return null;for(var m=st(st({},dn),o),g=1;g<p.length;g++){var k=i[g-1],w=k[0],C=k[2],O=C?C(p[g],m):+p[g];if(O==null)return null;a[w]=O}a.isPm===1&&a.hour!=null&&+a.hour!=12?a.hour=+a.hour+12:a.isPm===0&&+a.hour==12&&(a.hour=0);var N;if(a.timezoneOffset==null){N=new Date(a.year,a.month,a.day,a.hour,a.minute,a.second,a.millisecond);for(var U=[["month","getMonth"],["day","getDate"],["hour","getHours"],["minute","getMinutes"],["second","getSeconds"]],g=0,B=U.length;g<B;g++)if(u[U[g][0]]&&a[U[g][0]]!==N[U[g][1]]())return null}else if(N=new Date(Date.UTC(a.year,a.month,a.day,a.hour,a.minute-a.timezoneOffset,a.second,a.millisecond)),a.month>11||a.month<0||a.day>31||a.day<1||a.hour>23||a.hour<0||a.minute>59||a.minute<0||a.second>59||a.second<0)return null;return N}var Ct={format:ym,parse:bm,defaultI18n:Zi,setGlobalDateI18n:fm,setGlobalDateMasks:gm};function _m(e,n,o){switch(o.length){case 0:return e.call(n);case 1:return e.call(n,o[0]);case 2:return e.call(n,o[0],o[1]);case 3:return e.call(n,o[0],o[1],o[2])}return e.apply(n,o)}var oa=Math.max;function Em(e,n,o){return n=oa(n===void 0?e.length-1:n,0),function(){for(var r=arguments,a=-1,i=oa(r.length-n,0),d=Array(i);++a<i;)d[a]=r[n+a];a=-1;for(var s=Array(n+1);++a<n;)s[a]=r[a];return s[n]=o(d),_m(e,this,s)}}function Cm(e){return function(){return e}}var Sm=an?function(e,n){return an(e,"toString",{configurable:!0,enumerable:!1,value:Cm(n),writable:!0})}:kn,km=800,wm=16,Tm=Date.now;function Mm(e){var n=0,o=0;return function(){var r=Tm(),a=wm-(r-o);if(o=r,a>0){if(++n>=km)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}var Am=Mm(Sm);function Nm(e,n){return Am(Em(e,n,kn),e+"")}function Im(e,n,o){if(!Ce(o))return!1;var r=typeof n;return(r=="number"?Wt(o)&&Oo(n,o.length):r=="string"&&n in o)?Jt(o[n],e):!1}var ia=Object.prototype,Vm=ia.hasOwnProperty,Om=Nm(function(e,n){e=Object(e);var o=-1,r=n.length,a=r>2?n[2]:void 0;for(a&&Im(n[0],n[1],a)&&(r=1);++o<r;)for(var i=n[o],d=ln(i),s=-1,u=d.length;++s<u;){var f=d[s],p=e[f];(p===void 0||Jt(p,ia[f])&&!Vm.call(e,f))&&(e[f]=i[f])}return e}),Bm=Te.isFinite;function aa(e){return typeof e=="number"&&Bm(e)}var ra=1/0,Fm=17976931348623157e292;function Rm(e){if(!e)return e===0?e:0;if(e=$n(e),e===ra||e===-ra){var n=e<0?-1:1;return n*Fm}return e===e?e:0}function Dm(e){var n=Rm(e),o=n%1;return n===n?o?n-o:n:0}function Um(e){return typeof e=="number"&&e==Dm(e)}var Lm="[object Number]";function qn(e){return typeof e=="number"||Ge(e)&&Ye(e)==Lm}const we={general:{packageName:"forms",disable_global_radio:"The plugin is set to 'Scoped' by default when configured under a {scope}. To configure a global plugin, navigate to the global plugin list page.",disable_source_scope_change:"Changing the {scope} is not allowed when configuring a plugin under it."},"post-function":{tags:{hint:"e.g. tag1, tag2, tag3",newElementButtonLabel:"+ Add"},enabled:{newElementButtonLabel:"+ Add"},selectionGroup:{newElementButtonLabel:"+ Add"},instance_name:{newElementButtonLabel:"+ Add"},name:{newElementButtonLabel:"+ Add"},"config-certificate":{help:"Array of stringified Lua code to be cached and run in sequence during the certificate phase.",newElementButtonLabel:"+ Add"},"config-access":{help:"Array of stringified Lua code to be cached and run in sequence during the access phase.",newElementButtonLabel:"+ Add"},"config-body_filter":{help:"Array of stringified Lua code to be cached and run in sequence during the body_filter phase.",newElementButtonLabel:"+ Add"},"config-header_filter":{help:"Array of stringified Lua code to be cached and run in sequence during the header_filter phase.",newElementButtonLabel:"+ Add"},"config-functions":{newElementButtonLabel:"+ Add"},"config-log":{newElementButtonLabel:"+ Add"},"config-rewrite":{newElementButtonLabel:"+ Add"},"config-ws_client_frame":{newElementButtonLabel:"+ Add"},"config-ws_close":{newElementButtonLabel:"+ Add"},"config-ws_handshake":{newElementButtonLabel:"+ Add"},"config-ws_upstream_frame":{newElementButtonLabel:"+ Add"}},"exit-transformer":{"config-functions":{newElementButtonLabel:"+ Add"}},rla:{view_advanced:"View advanced parameters",window_type:{label:"Rate Limit Window Type",help:"Sets the time window type to either <code>sliding</code> (default) or <code>fixed</code>.<br><ul><li>Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight.</li><li>Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window's counters.</li></ul>",options:{fixed:"Fixed",sliding:"Sliding"}},request_limits:{title:"Request Limits",subtitle:"Set one or more limits on the number of API requests allowed within a defined timeframe.",label:"Limit",label_index:"Limit {index}",request_number:"Request number",time_interval:"Time interval",interval_determiner:"Every",seconds:"Seconds"},start_with_a_use_case:"Start with a use case:",use_case_index:"Use case {index}",error_message:{label:"Error Message",code_placeholder:"Code Message",message_placeholder:"Error Message",help:"Set a custom error code and message to be returned when the rate limit is exceeded."},identifiers:{label:"Identifiers",options:{ip:"IP",credential:"Credential",consumer:"Consumer",service:"Service",header:"Header",path:"Path","consumer-group":"Consumer Group",route:"Route"}},redis:{title:"Configure your Redis",address_example:"e.g. localhost:6379"}},validators:{field_is_required:"This field is required",invalid_format:"Invalid format",number_too_small:"The number is too small. Minimum: {0}",number_too_large:"The number is too large. Maximum: {0}",invalid_number:"Invalid number",invalid_integer:"The value is not an integer",text_too_short:"The length of text is too short. Current: {0}, Minimum: {1}",text_too_long:"The length of text is too long. Current: {0}, Maximum: {1}",this_not_text:"This is not a text",this_not_array:"This is not an array",select_min_items:"Select minimum {0} items",select_max_items:"Select maximum {0} items",invalid_date:"Invalid date",date_is_early:"The date is too early. Current: {0}, Minimum: {1}",date_is_late:"The date is too late. Current: {0}, Maximum: {1}",invalid_email:"Invalid e-mail address",invalid_url:"Invalid URL",invalid_card:"Invalid card format",invalid_card_number:"Invalid card number",invalid_text_contain_number:"Invalid text - cannot contains numbers or special characters",invalid_tex_contain_spec:"Invalid text - cannot contains special characters"},redis:{title:"Redis Configuration",managed_ui:{title:"Redis",groups:{self_managed:"Self-managed Redis",konnect_managed:"Konnect-managed Redis"},shared_configuration:{label:"Use shared configuration",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.",badge:"Recommended",title:"Shared Redis Configuration",create_new_configuration:"New Redis",selector:{placeholder:"Filter Redis configurations..."}},dedicated_configuration:{label:"Use locally-scoped configuration",description:"Create and use a Redis configuration specifically for this plugin."}},shared_configuration:{label:"Use shared configuration",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.",title:"Shared Redis Configuration",error:"Fetching shared Redis configurations failed.",tooltip:"Only compatible {type} redis configurations will be listed here.",configuration_selector_label:"Select stored Redis configuration",configuration_selector_placeholder:"Pick Redis configuration",create_new_configuration:"New {type} shared configuration",empty_state:"No shared configurations",selector:{title:"Select a Redis configuration",placeholder:"Filter Configurations",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins."}},dedicated_configuration:{label:"Use dedicated configuration",description:"Create a Redis configuration exclusively for this plugin, with settings that won’t impact other plugins.",title:"Connection Settings"},config_card:{common_fields:{created_at_label:"Created at",updated_at_label:"Last Updated at",type_label:"Redis Type"}},custom_plugin:{alert:"Note: For custom plugins, we cannot determine the correct Redis configuration type. Please ensure you select the appropriate option manually.",tooltip:"To apply a shared redis configuration, the redis fields must defined as Kong plugins in plugin schema."}},fields:{auto_suggest:{error:{load_entity:"There was an error loading {entity}"},recently_created:"Recently created {entity}",items_count:"Currently showing {count} {count, plural, =1 {item} other {items}}, type to search",no_results:"No results",loading:"Loading..."}},vfg:{labels:{on:"On",off:"Off"}}},{t:ne}=Ee.createI18n("en-us",we),de={fieldIsRequired:ne("validators.field_is_required"),invalidFormat:ne("validators.invalid_format"),numberTooSmall:ne("validators.number_too_small"),numberTooBig:ne("validators.number_too_large"),invalidNumber:ne("validators.invalid_number"),invalidInteger:ne("validators.invalid_integer"),textTooSmall:ne("validators.text_too_short"),textTooBig:ne("validators.text_too_long"),thisNotText:ne("validators.this_not_text"),thisNotArray:ne("validators.this_not_array"),selectMinItems:ne("validators.select_min_items"),selectMaxItems:ne("validators.select_max_items"),invalidDate:ne("validators.invalid_date"),dateIsEarly:ne("validators.date_is_early"),dateIsLate:ne("validators.date_is_late"),invalidEmail:ne("validators.invalid_email"),invalidURL:ne("validators.invalid_url"),invalidCard:ne("validators.invalid_card"),invalidCardNumber:ne("validators.invalid_card_number"),invalidTextContainNumber:ne("validators.invalid_text_contain_number"),invalidTextContainSpec:ne("validators.invalid_tex_contain_spec")},J=(e,...n)=>{if(e&&n.length>0)for(let o=0;o<n.length;o++)e=e.replace("{"+(o-1)+"}",String(n[o]||""));return e},Ae=(e,n,o=de)=>te(e)||e===""?n?[J(o.fieldIsRequired)]:[]:null,dt={required:(e,n,o,r=de)=>Ae(e,n.required,r)||[],number:(e,n,o,r=de)=>{let a=Ae(e,n.required,r);return a!=null||(a=[],aa(e)?(!te(n.min)&&e<n.min,(r=de)&&a.push(J(r.numberTooSmall,n.min)),!te(n.max)&&e>n.max,(r=de)&&a.push(J(r.numberTooBig,n.max))):a.push(J(r.invalidNumber))),a},integer:(e,n,o,r=de)=>{let a=Ae(e,n.required,r);return a!=null||(a=[],a.concat(dt.number(e,n,o,r)),Um(e)||a.push(J(r.invalidInteger))),a},double:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(!qn(e)||isNaN(e)?[J(r.invalidNumber)]:[])},string:(e,n,o,r=de)=>{let a=Ae(e,n.required,r);return a!=null||(a=[],lt(e)?(!te(n.min)&&e.length<n.min&&a.push(J(r.textTooSmall,e.length,n.min)),!te(n.max)&&e.length>n.max&&a.push(J(r.textTooBig,e.length,n.max))):a.push(J(r.thisNotText))),a},array:(e,n,o,r=de)=>{if(n.required){if(!Array.isArray(e))return[J(r.thisNotArray)];if(e.length===0)return[J(r.fieldIsRequired)]}if(!te(e)){if(!te(n.min)&&e.length<n.min)return[J(r.selectMinItems,n.min)];if(!te(n.max)&&e.length>n.max)return[J(r.selectMaxItems,n.max)]}return[]},date:(e,n,o,r=de)=>{let a=Ae(e,n.required,r);if(a!=null)return a;a=[];const i=new Date(e);if(isNaN(i.getDate()))return[J(r.invalidDate)];if(!te(n.min)){const d=new Date(n.min);i.valueOf()<d.valueOf()&&a.push(J(r.dateIsEarly,Ct.format(i),Ct.format(d)))}if(!te(n.max)){const d=new Date(n.max);i.valueOf()>d.valueOf()&&a.push(J(r.dateIsLate,Ct.format(i),Ct.format(d)))}return a},regexp:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(!te(n.pattern)&&!new RegExp(n.pattern).test(e)?[J(r.invalidFormat)]:[])},email:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)?[]:[J(r.invalidEmail)])},url:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g.test(e)?[]:[J(r.invalidURL)])},creditCard:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);if(a!=null)return a;const i=/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,d=e.replace(/[^0-9]+/g,"");if(!i.test(d))return[J(r.invalidCard)];let s=0,u,f,p;for(let m=d.length-1;m>=0;m--)u=d.substring(m,m+1),f=parseInt(u,10),p?(f*=2,f>=10?s+=f%10+1:s+=f):s+=f,p=!p;return s%10===0&&d?[]:[J(r.invalidCardNumber)]},alpha:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(/^[a-zA-Z]*$/.test(e)?[]:[J(r.invalidTextContainNumber)])},alphaNumeric:(e,n,o,r=de)=>{const a=Ae(e,n.required,r);return a??(/^[a-zA-Z0-9]*$/.test(e)?[]:[J(r.invalidTextContainSpec)])}};Object.keys(dt).forEach(e=>{const n=dt[e];z(n)&&(n.locale=o=>(r,a,i)=>n(r,a,i,Om(o,de)))});function la(e){return lt(e)?dt[e]!=null?dt[e]:(console.warn(`'${e}' is not a validator function!`),null):e}function Hn(e,n,o){let r=j(o.context,"schema.attributes",{});const a=n.value||"input";lt(a)&&(r=j(r,a)||r),fe(r,(i,d)=>{e.setAttribute(d,i)})}const Oe={name:"abstractField",props:["vfg","model","schema","formOptions","disabled"],emits:["validated","modelUpdated"],data(){return{errors:[],debouncedValidateFunc:null,debouncedFormatFunc:null}},directives:{attributes:{beforeMount:Hn,updated:Hn,componentUpdated:Hn}},computed:{value:{cache:!1,get(){let e;return z(j(this.schema,"get"))?e=this.schema.get(this.model):e=j(this.model,this.schema.model),this.formatValueToField(e)},set(e){const n=this.value;e=this.formatValueToModel(e),z(e)?e(e,n):this.updateModelValue(e,n)}}},methods:{validate(e){this.clearValidationErrors();const n=j(this.formOptions,"validateAsync",!1);let o=[];if(this.schema.validator&&this.schema.readonly!==!0&&this.disabled!==!0){const a=[];Array.isArray(this.schema.validator)?fe(this.schema.validator,i=>{a.push(la(i).bind(this))}):a.push(la(this.schema.validator).bind(this)),fe(a,i=>{if(n)o.push(i(this.value,this.schema,this.model));else{const d=i(this.value,this.schema,this.model);d&&z(d.then)?d.then(s=>{s&&(this.errors=this.errors.concat(s));const u=this.errors.length===0;this.$emit("validated",u,this.errors,this)}):d&&(o=o.concat(d))}})}const r=a=>{let i=[];fe(ji(a),s=>{Array.isArray(s)&&s.length>0?i=i.concat(s):lt(s)&&i.push(s)}),z(this.schema.onValidated)&&this.schema.onValidated.call(this,this.model,i,this.schema);const d=i.length===0;return e||this.$emit("validated",d,i,this),this.errors=i,i};return n?Promise.all(o).then(r):r(o)},debouncedValidate(){z(this.debouncedValidateFunc)||(this.debouncedValidateFunc=Et(this.validate.bind(this),j(this.schema,"validateDebounceTime",j(this.formOptions,"validateDebounceTime",500)))),this.debouncedValidateFunc()},updateModelValue(e,n){let o=!1;z(this.schema.set)?(this.schema.set(this.model,e),o=!0):this.schema.model&&(this.setModelValueByPath(this.schema.model,e),o=!0),o&&(this.$emit("modelUpdated",e,this.schema.model),z(this.schema.onChanged)&&this.schema.onChanged.call(this,this.model,e,n,this.schema),j(this.formOptions,"validateAfterChanged",!1)===!0&&(j(this.schema,"validateDebounceTime",j(this.formOptions,"validateDebounceTime",0))>0?this.debouncedValidate():this.validate()))},clearValidationErrors(){this.errors.splice(0)},setModelValueByPath(e,n){let o=e.replace(/\[(\w+)\]/g,".$1");o=o.replace(/^\./,"");let r=this.model;const a=o.split(".");let i=0;const d=a.length;for(;i<d;){const s=a[i];if(i<d-1)r[s]!==void 0||(r[s]={}),r=r[s];else{r[s]=n;return}++i}},getFieldID(e,n=!1){const o=j(this.formOptions,"fieldIdPrefix","");return jn(e,o)+(n?"-"+zi():"")},getLabelId(e){return`${this.getFieldID(e)}-label`},getFieldClasses(){return j(this.schema,"fieldClasses",[])},formatValueToField(e){return e},formatValueToModel(e){return e}}},Pm=Object.freeze(Object.defineProperty({__proto__:null,default:Oe},Symbol.toStringTag,{value:"Module"})),x=(e,n)=>{const o=e.__vccOpts||e;for(const[r,a]of n)o[r]=a;return o},vm={class:"advanced-field-dropdown-wrapper","data-testid":"advanced-field-dropdown-wrapper"},xm={class:"material-icons"},Km=x(Object.assign({mixins:[Oe],emits:["model-updated"],expose:["validate","clearValidationErrors","schema"],data(){return{isOpen:!1}},computed:{openClass(){return this.isOpen?"open":"closed"},fieldCount(){return this.schema.fields.length},titleText(){return`${this.isOpen?"Hide":"View"} ${this.fieldCount} Advanced Fields`}},methods:{handleOpen(){this.isOpen=!this.isOpen},updateModel(e,n){this.$emit("model-updated",e,n)}}},{__name:"FieldAdvanced",setup(e){return(n,o)=>(t.openBlock(),t.createElementBlock("div",vm,[t.createElementVNode("button",{class:"advanced-field-title",type:"button",onClick:o[0]||(o[0]=(...r)=>n.handleOpen&&n.handleOpen(...r))},[t.createElementVNode("i",xm,t.toDisplayString(n.isOpen?"keyboard_arrow_up":"keyboard_arrow_right"),1),t.createElementVNode("span",null,t.toDisplayString(n.titleText),1)]),t.createElementVNode("div",{class:t.normalizeClass(["advanced-field-dropdown",n.openClass])},[t.createVNode(Q,{model:n.model,options:{helpAsHtml:!0},schema:n.schema,onModelUpdated:n.updateModel},null,8,["model","schema","onModelUpdated"])],2)]))}}),[["__scopeId","data-v-e8f66c8a"]]),jm={class:"array-card-container"},sa=x(t.defineComponent({__name:"FieldArrayCardContainer",props:{model:{type:Object,default:()=>null},schema:{type:Object,default:()=>null},index:{type:Number,default:void 0}},emits:["remove-item"],setup(e){const n=e;return t.provide("vfg-array-item-index",n.index),(o,r)=>{const a=t.resolveComponent("KCard"),i=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",jm,[t.createVNode(a,{class:"card"},{default:t.withCtx(()=>[t.renderSlot(o.$slots,"default",{},void 0,!0)]),_:3}),t.createVNode(i,{appearance:"tertiary",class:"array-card-remove-button",onClick:r[0]||(r[0]=d=>o.$emit("remove-item"))},{default:t.withCtx(()=>[t.createVNode(t.unref(me.TrashIcon))]),_:1})])}}}),[["__scopeId","data-v-a8366ec5"]]),zm={class:"array-item-wrapper"},$m={class:"array-item"},qm={class:"array-item-after"},da=x(t.defineComponent({__name:"FieldArrayItem",props:{model:{type:String,default:""}},emits:["remove-item"],setup(e){return(n,o)=>{const r=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",zm,[t.createElementVNode("div",$m,[t.renderSlot(n.$slots,"default",{},void 0,!0),t.createVNode(r,{appearance:"tertiary",class:"delete",onClick:o[0]||(o[0]=a=>n.$emit("remove-item"))},{default:t.withCtx(()=>[t.createVNode(t.unref(me.TrashIcon))]),_:1})]),t.createElementVNode("div",qm,[t.renderSlot(n.$slots,"after",{},void 0,!0)])])}}}),[["__scopeId","data-v-e6b6837c"]]),Hm={class:"multi-item-wrapper"},ca=x(t.defineComponent({__name:"FieldArrayMultiItem",emits:["remove-item"],setup(e){return(n,o)=>{const r=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",Hm,[t.renderSlot(n.$slots,"default",{},void 0,!0),t.createVNode(r,{appearance:"danger",class:"delete",onClick:o[0]||(o[0]=a=>n.$emit("remove-item"))},{default:t.withCtx(()=>[...o[1]||(o[1]=[t.createTextVNode(" - Remove Field ",-1)])]),_:1}),o[2]||(o[2]=t.createElementVNode("hr",null,null,-1))])}}}),[["__scopeId","data-v-b4fcf731"]]);var Ym=4;function ma(e){return vt(e,Ym)}const Gm="#6c7489",ua="12px",Wm="16px",fa="20px",Zm=["data-testid","data-testlabel"],Xm={class:"item-label"},Jm={class:"autosuggest__results_message"},Qm=x(t.defineComponent({__name:"AutoSuggest",props:t.mergeModels({placeholder:{default:""},suggestions:{},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},emptyMessage:{default:""},domId:{},error:{default:null}},{id:{required:!0},idModifiers:{}}),emits:t.mergeModels(["change","query-change"],["update:id"]),setup(e){const{t:n}=Ee.createI18n("en-us",we),o=t.useModel(e,"id");return(r,a)=>{const i=t.resolveComponent("KSelect");return t.openBlock(),t.createBlock(i,{id:e.domId,ref:"suggestion",modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=d=>o.value=d),clearable:"",disabled:e.disabled,"enable-filtering":"",error:e.error!==null,"filter-function":()=>!0,help:e.error!==null?e.error:void 0,items:e.suggestions,loading:e.loading,placeholder:e.placeholder,width:"100%",onChange:a[1]||(a[1]=d=>r.$emit("change",d)),onQueryChange:a[2]||(a[2]=d=>r.$emit("query-change",d))},t.createSlots({"item-template":t.withCtx(({item:d})=>[t.renderSlot(r.$slots,"item",{item:d},()=>[t.createElementVNode("span",{class:"item-label","data-testid":d.id&&`${d.id}-0`,"data-testlabel":d.label},t.toDisplayString(d.label),9,Zm)],!0)]),"selected-item-template":t.withCtx(({item:d})=>[t.renderSlot(r.$slots,"selected-item",{item:d},()=>[t.createElementVNode("span",Xm,t.toDisplayString(d.label),1)],!0)]),empty:t.withCtx(()=>[t.createElementVNode("div",Jm,[t.createElementVNode("span",null,t.toDisplayString(e.emptyMessage||t.unref(n)("fields.auto_suggest.no_results")),1)])]),_:2},[r.$slots.before?{name:"before",fn:t.withCtx(()=>[t.renderSlot(r.$slots,"before",{},void 0,!0)]),key:"0"}:void 0]),1032,["id","modelValue","disabled","error","help","items","loading","placeholder"])}}}),[["__scopeId","data-v-1e9151dd"]]),eu="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",Yn=e=>e?e.length===36&&new RegExp(`^${eu}$`).test(e):!1,tu={class:"selected-entity-item"},nu={class:"selected-entity-label"},ou={class:"entity-suggestion-item"},iu={class:"entity-label"},au={class:"entity-id"},ru=500,lu=50,su=1e3,pa=x(t.defineComponent({__name:"FieldScopedEntitySelect",props:{transformItem:{type:Function},allowUuidSearch:{type:Boolean,default:!1},placeholder:{},fields:{default:()=>[]},selectedItem:{},selectedItemLoading:{type:Boolean},domId:{},id:{},entity:{},disabled:{type:Boolean},fieldDisabled:{type:Boolean},error:{},labelField:{default:"name"}},emits:["change"],setup(e){const n=t.inject(Se,void 0),o=async(y,M)=>{if(!n)return console.warn("[@kong-ui-public/forms] No API service provided"),[];const{data:L}=await n.getAllV2(e.entity,{name:y,size:su},M);return L.data},r=async y=>n?n.peek(e.entity,y):(console.warn("[@kong-ui-public/forms] No API service provided"),Promise.resolve({data:{data:[]}})),a=async y=>{if(!n)return console.warn("[@kong-ui-public/forms] No API service provided"),{id:y};const M=await n.getOne(e.entity,y,{validateStatus:L=>L>=200&&L<300||L===404});if(M.status===404)throw new Error(`Entity of type ${e.entity} with id ${y} not found`);return M.data},i=e.transformItem??(y=>({...y,label:y[e.labelField],value:y.id})),d=t.ref(""),s=t.ref(!1),u=t.ref(!1),f=t.ref(""),p=t.ref([]),m=t.ref([]),g=t.ref([]),{t:k}=Ee.createI18n("en-us",we),w=t.ref(null);let C=null;const O=async(y,M)=>{if(!e.fieldDisabled){clearTimeout(C),C=setTimeout(()=>{s.value=!0},1500);try{const L=await y();m.value=L,p.value=m.value.map(i)}catch(L){if(M?.aborted)return;if(p.value=[],dr.isAxiosError(L)&&L.status===404){console.warn("unable to search with UUID",f.value,"for entity type",e.entity);return}d.value=L.message}finally{clearTimeout(C),s.value=!1}}},N=Et(y=>{if(y=y||"",f.value=y,!y.trim()&&!u.value){p.value=A(g.value);return}w.value&&w.value.abort();const M=new AbortController;if(w.value=M,u.value){V(y);return}b(y,M)},ru,{leading:!0}),U=async(y,M)=>await o(y,M),B=async()=>{const{data:{data:y,next:M,offset:L}}=await r(lu);return(!M||!L)&&(u.value=!0),m.value=y,g.value=y.map(ce=>({...i(ce),group:k("fields.auto_suggest.recently_created",{entity:e.entity})})),y},T=async y=>[await a(y)],b=(y,M)=>{Yn(y)&&e.allowUuidSearch?O(async()=>await T(y)):O(async()=>await U(y,M.signal),M.signal)},h=y=>{let M=[];M=A(g.value),y?.trim()?p.value=M.filter(L=>e.fields.some(ce=>(L[ce]||"").includes(y))):p.value=M},A=y=>e.selectedItem?y.some(M=>M.value===e.selectedItem.value)?y:[e.selectedItem,...y]:y,$=y=>{p.value=g.value.filter(M=>M.id===y)},V=y=>{Yn(y)&&e.allowUuidSearch?$(y):h(y)};return t.onMounted(async()=>{await O(B);const y=t.watch(()=>e.selectedItem,M=>{M&&(p.value=A(g.value)),y()});p.value=A(g.value)}),(y,M)=>(t.openBlock(),t.createBlock(Qm,{id:e.id,disabled:e.fieldDisabled,"dom-id":e.domId,"empty-message":d.value,error:e.error,loading:e.selectedItemLoading||s.value,placeholder:e.placeholder,readonly:e.disabled,suggestions:p.value,onChange:M[0]||(M[0]=L=>y.$emit("change",L)),onQueryChange:t.unref(N)},{before:t.withCtx(()=>[t.renderSlot(y.$slots,"before",{},()=>[t.createVNode(t.unref(me.SearchIcon),{color:`var(--kui-color-text-neutral, ${t.unref(Gm)})`,size:`var(--kui-icon-size-40, ${t.unref(fa)})`},null,8,["color","size"])],!0)]),"selected-item":t.withCtx(({item:L})=>[t.renderSlot(y.$slots,"selected-item",{item:L},()=>[t.createElementVNode("span",tu,[t.createElementVNode("span",nu,t.toDisplayString(L.label??L.id),1)])],!0)]),item:t.withCtx(({item:L})=>[t.renderSlot(y.$slots,"item",{item:L},()=>[t.createElementVNode("div",ou,[t.createElementVNode("span",iu,t.toDisplayString(L.label??t.unref($o)),1),t.createElementVNode("span",au,t.toDisplayString(L.id),1)])],!0)]),_:3},8,["id","disabled","dom-id","empty-message","error","loading","placeholder","readonly","suggestions","onQueryChange"]))}}),[["__scopeId","data-v-d8027156"]]);function ha(e,n,o){return o?Ve.SET_REFERRAL_VALUE:e&&!n||!e&&n?Ve.UPDATE_ENTITY:e&&n?Ve.CREATE_FROM_ENTITY:Ve.CREATE_NOT_FROM_ENTITY}const du={components:{FieldScopedEntitySelect:pa},mixins:[Oe],inject:[Se],emits:["model-updated"],setup(){const{t:e}=Ee.createI18n("en-us",we);return{t:e}},data(){return{idValue:"",error:null,initialItem:null,selectedItem:null,loading:!1}},computed:{fieldState(){return ha(this.model[this.schema.model],this.associatedEntity||this.entityId,this.bypassSearch)},associatedEntity(){const e=this.$route;return e&&e.params[this.entity]},entity(){return this.schema.entity},bypassSearch(){const e=this.$route;return e&&e.query&&e.query.no_search},inputFields(){return this.schema?.inputValues?.fields||[]},allowUuidSearch(){return this.inputFields.includes("id")},inputFieldsWithoutId(){return this.inputFields.filter(e=>e!=="id")},initialValueSelected(){return this.idValue===this.initialItem?.id}},async created(){await this.$nextTick();let e,n;this.error=null;try{switch(this.fieldState){case Ve.UPDATE_ENTITY:if(!this[Se]){console.warn("[@kong-ui-public/forms] No API service provided");break}this.loading=!0,n=await this.getOne(this.model[this.schema.model]),e=this.getItem(this.schema.entityDataKey?n[this.schema.entityDataKey]:n),this.idValue=e.id;break;case Ve.CREATE_FROM_ENTITY:this.idValue=this.associatedEntity.id;break;case Ve.SET_REFERRAL_VALUE:this.idValue=this.value}e&&(this.initialItem=this.transformItem(e),this.selectedItem=this.initialItem)}catch(o){this.error=o.message||this.t("fields.auto_suggest.error.load_entity",{entity:this.schema.entity}),console.error("err!",o)}finally{this.loading=!1}},methods:{async getOne(e){if(!this[Se])return console.warn("[@kong-ui-public/forms] No API service provided"),{};const n=await this[Se].getOne(this.entity,e,{validateStatus:o=>o>=200&&o<300||o===404});if(n.status===404)throw new Error(`Entity of type ${this.entity} with id ${e} not found`);return n.data},transformItem(e){const n=this.schema?.labelField||"id";return{...e,label:n&&e?e[n]:"",value:e.id}},getItem(e){return e.data?e.data.length>0?e.data[0]:[]:e},updateModel(e){this.$emit("model-updated",e?.length?e:null,this.schema.model)},onSelected(e){this.error=null,this.idValue=e&&e.id,this.selectedItem=e,this.updateModel(this.getReturnValue(e||{}))},getReturnValue(e){const n=this.schema?.returnKey;return n?e[n]:e.id}}};function cu(e,n,o,r,a,i){const d=t.resolveComponent("FieldScopedEntitySelect");return t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.schema.disabled?"k-tooltip":"div"),{class:"field-wrap autosuggest","max-width":"300",text:e.schema.disabledTooltip},{default:t.withCtx(()=>[t.createVNode(d,{id:a.idValue,"allow-uuid-search":i.allowUuidSearch,disabled:a.loading,"dom-id":e.schema.model,entity:i.entity,error:a.error,"field-disabled":e.schema.disabled,fields:i.inputFieldsWithoutId,"initial-item-selected":i.initialValueSelected,"label-field":e.schema.labelField||"id",placeholder:a.loading?r.t("fields.auto_suggest.loading"):e.schema.placeholder,"selected-item":a.selectedItem,"selected-item-loading":a.loading,onChange:i.onSelected},null,8,["id","allow-uuid-search","disabled","dom-id","entity","error","field-disabled","fields","initial-item-selected","label-field","placeholder","selected-item","selected-item-loading","onChange"])]),_:1},8,["text"])}const ga=x(du,[["render",cu],["__scopeId","data-v-2e8d29f1"]]),Gn=50,mu={mixins:[Oe],inject:[Se],emits:["model-updated"],setup(){const{t:e}=Ee.createI18n("en-us",we);return{t:e}},data(){return{suggestions:[],idValue:"",message:"Type something to search",items:[],initialItems:[],loading:!1}},computed:{fieldState(){return ha(this.model[this.schema.model],this.associatedEntity||this.entityId,this.bypassSearch)},associatedEntity(){const e=this.$route;return e&&e.params[this.entity]},entity(){return this.schema.entity},scope(){return this.schema.label.toLowerCase()},bypassSearch(){const e=this.$route;return e&&e.query&&e.query.no_search}},async created(){await this.$nextTick();let e,n;switch(this.fieldState){case Ve.UPDATE_ENTITY:if(!this[Se]){console.warn("[@kong-ui-public/forms] No API service provided");break}n=(await this[Se].getOne(this.entity,this.model[this.schema.model])).data,e=this.getItem(this.schema.entityDataKey?n[this.schema.entityDataKey]:n),this.idValue=e.id;break;case Ve.CREATE_FROM_ENTITY:this.idValue=this.associatedEntity.id;break;case Ve.SET_REFERRAL_VALUE:this.idValue=this.value}try{e&&(this.initialItems=[{...e,label:this.getSuggestionLabel(e),value:e.id}]),this.items=this.initialItems}catch(o){this.message=`There was an error loading ${this.schema.entity}`,console.error("err!",o)}},methods:{onQueryChange(e){e.trim().length===0&&(this.items=[],this.message="Type something to search"),typeof this.performSearch!="function"&&(this.performSearch=Et(this.search,500)),this.performSearch(e)},async search(e){if(e.trim().length===0)return;this.loading=!0;const n=[],o=[],r=this.getInputFields(),a=new Set;Yn(e)&&r.includes("id")?o.push((async()=>{const i=await this.fetchExact(e);n.push({...i,label:this.getSuggestionLabel(i),value:i.id})})()):o.push(...r.filter(i=>i!=="id").map(async i=>{(await this.fetchSuggestions(e,i)).forEach(s=>{a.has(s.id)||(a.add(s.id),n.push({...s,label:this.getSuggestionLabel(s),value:s.id}))})})),await Promise.all(o),this.items=n,this.items.length===0&&(this.message="No results"),this.loading=!1},getItem(e){return e.data?e.data.length>0?e.data[0]:[]:e},async fetchUntilLimit(e){const n=[];let o=null;if(!this[Se])return console.warn("[@kong-ui-public/forms] No API service provided"),[];for(;n.length<Gn;){const r=await this[Se].getAll(this.entity,{size:Gn,offset:o,...e});if(n.push(...r.data.data),o=r.data.offset,!o)break}return n.slice(0,Gn)},async fetchSuggestions(e,n){return this.fetchUntilLimit({[n]:e})},async fetchExact(e){return this[Se]?(await this[Se].getOne(this.entity,e)).data:(console.warn("[@kong-ui-public/forms] No API service provided"),{})},getInputFields(){return this.schema?.inputValues?.fields||[]},getSuggestionLabel(e){const n=this.getInputFields();return n.length&&e?n.map(o=>e[o]).filter(Boolean).join(" - "):""},updateModel(e){this.$emit("model-updated",e?.length?e:null,this.schema.model)},onSelected(e){this.idValue=e&&e.id,this.updateModel(this.getReturnValue(e||{}))},getReturnValue(e){const n=this.schema?.returnKey;return n?e[n]:e.id}}},uu=["data-testid","data-testlabel"],fu=["data-testid"],pu={class:"autosuggest__results_message"};function hu(e,n,o,r,a,i){const d=t.resolveComponent("KSelect");return t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.schema.disabled?"k-tooltip":"div"),{class:"field-wrap autosuggest","max-width":"300",text:r.t("general.disable_source_scope_change",{scope:i.scope})},{default:t.withCtx(()=>[t.createVNode(d,{id:e.schema.model,ref:"suggestion",modelValue:a.idValue,"onUpdate:modelValue":n[0]||(n[0]=s=>a.idValue=s),clearable:"",disabled:e.schema.disabled,"enable-filtering":"","filter-function":()=>!0,items:a.items,loading:a.loading,placeholder:e.schema.placeholder,width:"100%",onChange:i.onSelected,onQueryChange:i.onQueryChange},{"item-template":t.withCtx(({item:s})=>[t.createElementVNode("span",{class:"first-part","data-testid":s.id&&`${s.id}-0`,"data-testlabel":s.label},t.toDisplayString(i.getSuggestionLabel(s).split(" - ")[0]),9,uu),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.getSuggestionLabel(s).split(" - ").slice(1),(u,f)=>(t.openBlock(),t.createElementBlock("span",{key:f,class:"field-span","data-testid":s.id&&`${s.id}-${f+1}`||f+1},t.toDisplayString(u),9,fu))),128))]),empty:t.withCtx(()=>[t.createElementVNode("div",pu,[t.createElementVNode("span",null,t.toDisplayString(a.message),1)])]),_:1},8,["id","modelValue","disabled","items","loading","placeholder","onChange","onQueryChange"])]),_:1},8,["text"])}const ya=x(mu,[["render",hu],["__scopeId","data-v-c99420db"]]);function gu(e){const n=t.ref([]),o=t.ref(null),r=C=>lt(C)?dt[C]!=null?dt[C]:(console.warn(`'${C}' is not a validator function!`),null):C,a=t.computed({get(){let C;return z(j(e.schema,"get"))?C=e.schema.get(e.model?.value):C=j(e.model?.value,e.schema.model),k(C)},set(C){const O=a;C=w(C),z(C)?C(C,O):s(C,O)}}),i=C=>{u();const O=j(e.formOptions,"validateAsync",!1);let N=[];if(e.schema.readonly!==!0&&e.disabled!==!0){const B=[],T=e.schema?.validator;T&&(Array.isArray(T)?fe(T,b=>{B.push(r(b))}):B.push(r(T))),z(e.externalValidator)&&B.push(e.externalValidator),fe(B,b=>{if(O)N.push(b(a.value,e.schema,e.model?.value));else{const h=b(a.value,e.schema,e.model?.value);h&&z(h.then)?h.then(A=>{A&&(n.value=n.value.concat(A));const $=n.value.length===0;e.emitValidated&&e.emitValidated({isValid:$,errors:n.value,field:e.schema})}):h&&(N=N.concat(h))}})}const U=B=>{let T=[];if(fe(ji(B),b=>{Array.isArray(b)&&b.length>0?T=T.concat(b):lt(b)&&T.push(b)}),z(e.schema?.onValidated)&&e.schema.onValidated(e.model?.value,T,e.schema),!C){const b=T.length===0;e.emitValidated&&e.emitValidated({isValid:b,errors:T,field:e.schema})}return B=T,T};return O?Promise.all(N).then(U):U(N)},d=()=>{z(o.value)?o.value():o.value=Et(i,j(e.schema,"validateDebounceTime",j(e.formOptions,"validateDebounceTime",500)))},s=(C,O)=>{let N=!1;z(e.schema.set)?(e.schema.set(e.model?.value,C),N=!0):e.schema.model&&(f(e.schema.model,C),N=!0),N&&(e.emitModelUpdated&&e.model?.value&&e.emitModelUpdated({value:C,model:e.schema.model}),z(e.schema.onChanged)&&e.schema.onChanged(e.model?.value,C,O,e.schema),j(e.formOptions,"validateAfterChanged",!1)===!0&&(j(e.schema,"validateDebounceTime",j(e.formOptions,"validateDebounceTime",0))>0?d():i()))},u=()=>{n.value.splice(0)},f=(C,O)=>{let N=C.replace(/\[(\w+)\]/g,".$1");N=N.replace(/^\./,"");let U=e.model?.value||{},B=0;const T=N.split("."),b=T.length;for(;B<b;){const h=T[B];if(B<b-1)U[h]!==void 0||(U[h]={}),U=U[h];else{U[h]=O;return}++B}},p=(C,O=!1)=>{const N=j(e.formOptions,"fieldIdPrefix","");return jn(C,N)+(O?"-"+zi():"")},m=C=>`${p(C)}-label`,g=()=>j(e.schema,"fieldClasses",[]),k=C=>e.formatValueToField&&typeof e.formatValueToField=="function"?e.formatValueToField(C):C,w=C=>e.formatValueToModel&&typeof e.formatValueToModel=="function"?e.formatValueToModel(C):C;return{value:a,clearValidationErrors:u,getFieldID:p,getLabelId:m,getFieldClasses:g,updateModelValue:s}}function yu(e){const n=[],o=r=>{const a=["cluster-cache","cluster_cache"];for(const i of a)if(r.model.includes(i))return!1;return new RegExp("(?<=-redis-).*").test(r.model)};return e.fields.forEach(r=>{o(r)&&n.push(r)}),{redis:{id:"_redis",fields:n,model:"__redis_partial",redisType:e._supported_redis_partial_type,redisPath:e._redis_partial_path},redisModels:n.map(r=>r.model)}}function bu(e,n){const o=new RegExp("(?<=config-redis-).*"),r=/Config\.Redis.*/;return n.filter(i=>{const d=i.model.match(o);return d&&!Object.keys(e).includes(d[0])}).map(i=>{const d=i.label.match(r);return{label:d?d[0]:i.label,key:i.model,value:"N/A",type:"text"}})}const Ne={useAbstractFields:gu,useRedisPartial:yu,useRedisNonStandardFields:bu},_u={class:"form-field-wrapper"},ba=x(t.defineComponent({__name:"FieldInput",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRefs(r),d=t.inject(he,void 0),{updateModelValue:s,getFieldID:u,clearValidationErrors:f,value:p}=Ne.useAbstractFields({model:i.model,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:B=>{a("modelUpdated",B.value,B.model)}});n({clearValidationErrors:f});const m=t.computed(()=>{const B=r.schema?.inputType.toLowerCase();if(B==="number"&&r.schema?.referenceable===!0)return"text";switch(B){case"string":return"text";case"datetime":return"datetime-local";default:return B||"text"}}),g={date:"YYYY-MM-DD",datetime:"YYYY-MM-DD HH:mm:ss","datetime-local":"YYYY-MM-DDTHH:mm:ss"},k=(B,T)=>{let b=B;const h=g[m.value]||"",A=Ct.parse(B,h);A&&(r.schema?.format?b=Ct.format(A,r.schema?.format):b=A.valueOf()),s(b,T)},w=(B,T)=>{qn(B)||(B=NaN),s(B,T)},C=B=>{let T=B;switch(r.schema.inputType){case"number":case"range":aa(parseFloat(B))&&(T=parseFloat(B));break}p.value=T,s(T,B)},O=B=>{p.value=B,s(B,B)},N=t.ref(null),U=()=>{z(N.value)&&N.value?.flush()};return t.onMounted(()=>{switch(m.value){case"number":case"range":N.value=Et((B,T)=>{w(B,T)},parseInt(j(r.schema,"debounceFormatTimeout",1e3)),{trailing:!0,leading:!1});break;case"date":case"datetime":case"datetime-local":N.value=Et((B,T)=>{k(B,T)},parseInt(j(r.schema,"debounceFormatTimeout",1e3)),{trailing:!0,leading:!1});break}}),t.onBeforeMount(()=>{m.value==="checkbox"?console.warn("The use of 'checkbox' inputType with 'input' type fields is deprecated. Use 'checkbox' type instead."):m.value==="radio"?console.warn("The use of 'radio' inputType with 'input' type fields is deprecated. Use 'radio' type instead."):m.value==="file"&&console.warn("The 'file' type in input field is deprecated. Use 'file' field instead.")}),(B,T)=>(t.openBlock(),t.createElementBlock("div",_u,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m.value==="password"?t.unref(Eo.SecretInput):t.unref(cr.KInput)),t.mergeProps(B.$attrs,{id:t.unref(u)(e.schema),autocomplete:e.schema.autocomplete,class:e.schema.fieldClasses,disabled:e.disabled||void 0,help:e.hint?e.hint:m.value==="color"||m.value==="range"?t.unref(p):void 0,max:e.schema.max,maxlength:e.schema.maxlength,min:e.schema.min,minlength:e.schema.minlength,"model-value":t.unref(p),name:e.schema.inputName,pattern:e.schema.pattern,placeholder:e.schema.placeholder,readonly:e.schema.readonly,required:e.schema.required,type:m.value==="password"?void 0:m.value,width:e.schema.width,onBlur:U,"onUpdate:modelValue":C}),null,16,["id","autocomplete","class","disabled","help","max","maxlength","min","minlength","model-value","name","pattern","placeholder","readonly","required","type","width"])),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(d)),{schema:e.schema,update:O,value:t.unref(p)},null,8,["schema","value"]))]))}}),[["__scopeId","data-v-179bb127"]]),Eu={name:"FieldMetric",components:{AddIcon:me.AddIcon,TrashIcon:me.TrashIcon},mixins:[Oe],emits:["remove-item"],data(){return{contentVisible:!1}}},Cu={key:0,class:"content"};function Su(e,n,o,r,a,i){const d=t.resolveComponent("AddIcon"),s=t.resolveComponent("TrashIcon"),u=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["field-dropdown",{active:a.contentVisible}])},[t.createElementVNode("div",{class:"title",onClick:n[0]||(n[0]=f=>a.contentVisible=!a.contentVisible)},[t.createTextVNode(t.toDisplayString(e.model.name?e.model.name:"New Item")+" ",1),t.createVNode(d,{class:"metric-add-icon"})]),t.createVNode(t.Transition,{name:"slide-fade"},{default:t.withCtx(()=>[a.contentVisible?(t.openBlock(),t.createElementBlock("div",Cu,[t.renderSlot(e.$slots,"default"),t.createVNode(u,{appearance:"tertiary",class:"metric-remove-button",onClick:n[1]||(n[1]=f=>e.$emit("remove-item"))},{default:t.withCtx(()=>[t.createVNode(s)]),_:1})])):t.createCommentVNode("",!0)]),_:3})],2)}const _a=x(Eu,[["render",Su]]),ku={class:"field-object-container"},wu={key:1},Tu=["id"],Mu={key:0},Au=["onUpdate:modelValue"],Nu={key:1},Iu=["onUpdate:modelValue"],Vu={key:2},Ou=["onUpdate:modelValue"],Bu=["onClick"],Ea=x(Object.assign({mixins:[Oe],emits:["modelUpdated"],expose:["validate","clearValidationErrors","schema"],data(){return{attributes:this.schema?this.schema.attributes:void 0,newKeyType:"string",newKeyName:"",keyTypes:{}}},created(){this.value||(this.value={})},mounted(){if(!this.value)return;const e=Object.keys(this.value),n={};for(let o=0;o<e.length;o++){const r=e[o];n[r]=typeof this.value[r]}this.keyTypes=n},methods:{removeElement(e){const n=this.value;delete n[e],this.value=JSON.parse(JSON.stringify(n));const o=this.keyTypes;delete o[e],this.keyTypes=JSON.parse(JSON.stringify(o))},addKey(){this.value[this.newKeyName]=void 0,this.value={...this.value},this.keyTypes[this.newKeyName]=this.newKeyType,this.keyTypes={...this.keyTypes},this.newKeyName=""},updateModel(e,n){this.$emit("modelUpdated",e,n)}}},{__name:"FieldObject",setup(e){return(n,o)=>{const r=t.resolveDirective("attributes");return t.withDirectives((t.openBlock(),t.createElementBlock("div",ku,[n.schema.schema?(t.openBlock(),t.createBlock(Q,{key:0,model:n.value,options:n.formOptions,schema:n.schema.schema,onModelUpdated:n.updateModel},null,8,["model","options","schema","onModelUpdated"])):(t.openBlock(),t.createElementBlock("div",wu,[t.createElementVNode("table",{id:n.getFieldID(n.schema),class:t.normalizeClass(n.schema.fieldClasses)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.value,(a,i)=>(t.openBlock(),t.createElementBlock("tr",{key:i},[t.createElementVNode("td",null,t.toDisplayString(i),1),n.keyTypes[i]==="string"?(t.openBlock(),t.createElementBlock("td",Mu,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":d=>n.value[i]=d,type:"text"},null,8,Au),[[t.vModelText,n.value[i]]])])):t.createCommentVNode("",!0),n.keyTypes[i]==="boolean"?(t.openBlock(),t.createElementBlock("td",Nu,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":d=>n.value[i]=d,type:"checkbox"},null,8,Iu),[[t.vModelCheckbox,n.value[i]]])])):t.createCommentVNode("",!0),n.keyTypes[i]==="number"?(t.openBlock(),t.createElementBlock("td",Vu,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":d=>n.value[i]=d,type:"number"},null,8,Ou),[[t.vModelText,n.value[i]]])])):t.createCommentVNode("",!0),t.createElementVNode("td",null,[t.createElementVNode("input",{type:"button",value:"x",onClick:d=>n.removeElement(i)},null,8,Bu)])]))),128))],10,Tu),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":o[0]||(o[0]=a=>n.newKeyType=a)},[...o[3]||(o[3]=[t.createElementVNode("option",{value:"string"}," String ",-1),t.createElementVNode("option",{value:"number"}," Number ",-1),t.createElementVNode("option",{value:"boolean"}," Boolean ",-1)])],512),[[t.vModelSelect,n.newKeyType]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":o[1]||(o[1]=a=>n.newKeyName=a),type:"text"},null,512),[[t.vModelText,n.newKeyName]]),t.createElementVNode("input",{type:"button",value:"Add key",onClick:o[2]||(o[2]=(...a)=>n.addKey&&n.addKey(...a))})]))])),[[r,n.attributes]])}}}),[["__scopeId","data-v-6eddb0ed"]]),Fu=["id"],Ru=["data-testid"],Du={class:"item-wrapper"},Uu={class:"index-wrapper"},Lu={key:0},Pu={key:1},vu=["onUpdate:modelValue","placeholder","type","onInput"],xu={key:0,class:"hint"},Ku={class:"input-item"},ju=["placeholder"],zu={key:0,class:"hint"},Ca=x(Object.assign({mixins:[Oe],inject:{autofillSlot:{from:he,default:void 0}},emits:["model-updated"],expose:["validate","clearValidationErrors","schema"],data(){return{newKeyName:""}},computed:{subSchema(){return this.schema.schema&&this.schema.schema.fields[0].schema},subFields(){return!this.subSchema&&this.schema.fields},hasObjectKeys(){return this.value&&Object.keys(this.value).length>0},transformedModel(){return this.subSchema&&this.subSchema.fields.length>=1&&this.subSchema.fields[0].type==="array"?new Proxy(this.model[this.schema.model],{get:(e,n)=>({[this.schema.model]:e[n]}),set:(e,n,o)=>e[n]=o[this.schema.model]}):this.model[this.schema.model]},valueInputType(){return["number","integer"].includes(this.schema.values?.type)?"number":"text"}},mounted(){this.value||(this.value={});let e=[];this.subSchema?e=this.subSchema.fields:this.subFields&&(e=this.schema.fields[0].schema),this.value=this.transformMapModelValuesToObject(this.model,e,this.schema.model)},methods:{removeElement(e){const n=this.value;delete n[e],this.value={...n}},transformMapModelValuesToObject(e,n,o){let r={};try{r=JSON.parse(JSON.stringify(e??{}))[o]??{}}catch{}return Object.keys(e).map(a=>{const i=a.indexOf(o+"-");if(i>-1&&Array.isArray(n))if(n.length>0){const s=a.split("-").filter(f=>n.find(p=>p.model===f)),u=a.split(`-${s}`)[0].split(`${o}-`)[1];s.length?r[u]={...r[u],[s]:e[a]}:r[a.substring(i+`${o}-`.length)]=e[a]}else r[a.substring(`${o}-`.length)]=e[a];else{const s=a.split("-").filter(f=>f===this.schema.model),u=a.split(`-${s}`)[0].split(`${o}-`)[1];u&&(r[u]=e[a])}return a}),r},addKey(){const e=this.subSchema&&Array.isArray(this.subSchema.fields)&&this.subSchema.fields.length===1&&this.subSchema.fields[0].type==="array",n=this.schema.values?.default??(this.valueInputType==="number"?0:""),o=this.subSchema?e?[""]:{}:n;this.value[this.newKeyName]=o,this.newKeyName=""},updateModel(e,n){this.$emit("model-updated",this.model[this.schema.model],n)}}},{__name:"FieldObjectAdvanced",setup(e){return(n,o)=>{const r=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",{id:n.getFieldID(n.schema),class:t.normalizeClass(["object-advanced-wrapper",n.schema.fieldClasses])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.value,(a,i)=>(t.openBlock(),t.createElementBlock("div",{key:i,"data-testid":`field-object-key-${i}`},[t.createElementVNode("div",null,[t.createElementVNode("div",Du,[t.createElementVNode("div",Uu,[t.createElementVNode("strong",null,t.toDisplayString(i),1),t.createElementVNode("div",null,[t.createVNode(r,{appearance:"tertiary",class:"delete",icon:"",type:"button",onClick:d=>n.removeElement(i)},{default:t.withCtx(()=>[t.createVNode(t.unref(me.TrashIcon))]),_:1},8,["onClick"])])]),o[1]||(o[1]=t.createElementVNode("hr",{class:"divider"},null,-1)),n.subSchema?(t.openBlock(),t.createElementBlock("div",Lu,[t.createVNode(Q,{model:n.transformedModel[i],options:{helpAsHtml:!0},schema:n.subSchema,onModelUpdated:n.updateModel},null,8,["model","schema","onModelUpdated"])])):(t.openBlock(),t.createElementBlock("div",Pu,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":d=>n.value[i]=d,class:"form-control",placeholder:n.schema.fields&&n.schema.fields[0].schema.placeholder,type:n.valueInputType,onInput:d=>n.updateModel(n.value[i],n.model[n.schema.model])},null,40,vu),[[t.vModelDynamic,n.value[i]]]),n.schema.fields&&n.schema.fields[0].schema.hint?(t.openBlock(),t.createElementBlock("p",xu,t.toDisplayString(n.schema.fields[0].schema.hint),1)):t.createCommentVNode("",!0),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(n.autofillSlot),{schema:n.schema.fields&&n.schema.fields[0].schema||n.schema.values,update:d=>n.value[i]=d,value:n.value[i]},null,8,["schema","update","value"]))])),o[2]||(o[2]=t.createElementVNode("hr",{class:"wide-divider"},null,-1))])])],8,Ru))),128)),t.createElementVNode("div",{class:t.normalizeClass(["input-wrapper",{indent:n.hasObjectKeys}])},[t.createElementVNode("div",Ku,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=a=>n.newKeyName=a),class:"form-control","data-testid":"keyname-input",placeholder:n.schema.placeholder,type:"text"},null,8,ju),[[t.vModelText,n.newKeyName]]),t.createVNode(r,{appearance:"tertiary","data-testid":"add-key",disabled:!n.newKeyName,onClick:n.addKey},{default:t.withCtx(()=>[t.createTextVNode(" + Add "+t.toDisplayString(n.schema.buttonLabel||n.schema.label),1)]),_:1},8,["disabled","onClick"])]),n.schema.hintText?(t.openBlock(),t.createElementBlock("p",zu,t.toDisplayString(n.schema.hintText),1)):t.createCommentVNode("",!0)],2)],10,Fu)}}}),[["__scopeId","data-v-0faeec4d"]]),$u={class:"radio-selection-group"},Sa=x(t.defineComponent({__name:"FieldRadio",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRefs(r),{updateModelValue:d,value:s,clearValidationErrors:u}=Ne.useAbstractFields({model:i.model,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:p=>{a("modelUpdated",p.value,p.model)}});n({clearValidationErrors:u});const f=p=>{let m=p;typeof p=="string"&&(m=p.split(","),r.schema.array||(m=m.toString())),d(m,p)};return(p,m)=>{const g=t.resolveComponent("KRadio");return t.openBlock(),t.createElementBlock("div",$u,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.schema.values,(k,w)=>(t.openBlock(),t.createBlock(g,{id:e.schema.name+"-"+w,key:k.value,modelValue:t.unref(s),"onUpdate:modelValue":m[0]||(m[0]=C=>t.isRef(s)?s.value=C:null),label:k.name,"label-attributes":{info:e.schema.help},name:e.schema.name,required:e.schema.required||void 0,"selected-value":k.value,onChange:f},null,8,["id","modelValue","label","label-attributes","name","required","selected-value"]))),128))])}}}),[["__scopeId","data-v-a070103e"]]),ka=t.defineComponent({__name:"FieldSelect",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.computed(()=>r.schema.selectOptions||{}),d=C=>te(C)?null:C,s=t.toRefs(r),{getFieldID:u,clearValidationErrors:f,value:p}=Ne.useAbstractFields({model:s.model,schema:r.schema,formOptions:r.formOptions,formatValueToField:d,emitModelUpdated:C=>{a("modelUpdated",C.value,C.model)}});n({clearValidationErrors:f});const m=t.computed(()=>{const C=r.schema.values;return g(typeof C=="function"?C.apply(this,[r.model,r.schema]):C)}),g=C=>{const O=[];return C.forEach(N=>{O.push({label:w(N),value:k(N),disabled:typeof N=="object"&&N.disabled||void 0,group:typeof N=="object"&&String(N.group||"").toUpperCase()||void 0})}),O},k=C=>{if(Ce(C)){if(i.value&&typeof i.value.value<"u")return C[i.value.value];if(typeof C.id<"u")return String(C.id);throw new Error("`id` is not defined. If you want to use another key name, add a `value` property under `selectOptions` in the schema. https://icebob.gitbooks.io/vueformgenerator/content/fields/select.html#select-field-with-object-items")}else return C},w=C=>{if(Ce(C)){if(i.value&&typeof i.value.name<"u")return C[i.value.name];if(typeof C.name<"u")return String(C.name);throw new Error("`name` is not defined. If you want to use another key name, add a `name` property under `selectOptions` in the schema. https://icebob.gitbooks.io/vueformgenerator/content/fields/select.html#select-field-with-object-items")}else return String(C)};return(C,O)=>{const N=t.resolveComponent("KSelect");return t.openBlock(),t.createBlock(N,{id:t.unref(u)(e.schema),modelValue:t.unref(p),"onUpdate:modelValue":O[0]||(O[0]=U=>t.isRef(p)?p.value=U:null),class:t.normalizeClass(e.schema.fieldClasses),clearable:!e.schema.required,disabled:e.disabled||void 0,items:m.value,"kpop-attributes":{"data-testid":`${t.unref(u)(e.schema)}-items`},"label-attributes":{info:e.schema.help},name:e.schema.inputName,placeholder:i.value.hideNoneSelectedText?void 0:i.value.noneSelectedText||"Nothing Selected",required:e.schema.required||void 0,width:"100%"},null,8,["id","modelValue","class","clearable","disabled","items","kpop-attributes","label-attributes","name","placeholder","required"])}}}),qu={class:"field-string-array"},wa=x(t.defineComponent({__name:"FieldStringArray",props:{formOptions:{},model:{},schema:{}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=o,{updateModelValue:a,getFieldID:i,getLabelId:d,clearValidationErrors:s,value:u}=Ne.useAbstractFields({model:t.toRef(()=>e.model),schema:e.schema,formOptions:e.formOptions,emitModelUpdated:k=>{r("modelUpdated",k.value,k.model)}});n({clearValidationErrors:s});const f=t.ref("");function p(k){return Array.isArray(k)?k.map(w=>String(w).trim()).filter(Boolean).join(", "):""}function m(k){return k?k.trim().split(",").map(w=>w.trim()).filter(Boolean):[]}function g(k){f.value=k;const w=m(k);a(w,u.value)}return t.watch(u,k=>{const w=k?p(k):"";p(m(f.value))!==w&&(f.value=w)},{immediate:!0}),(k,w)=>{const C=t.resolveComponent("KInput");return t.openBlock(),t.createElementBlock("div",qu,[t.createVNode(C,t.mergeProps(k.$attrs,{id:t.unref(i)(e.schema),"aria-labelledby":t.unref(d)(e.schema),class:e.schema.fieldClasses,help:"Use comma to separate values. eg: value1, value2","model-value":f.value,placeholder:e.schema.placeholder||"Comma separated values",type:"text","onUpdate:modelValue":g}),null,16,["id","aria-labelledby","class","model-value","placeholder"])])}}}),[["__scopeId","data-v-cf2eff67"]]),Hu={name:"FieldArray",components:{FieldArrayItem:da,FieldArrayMultiItem:ca,FieldSelect:ka,FieldMetric:_a,FieldObject:Ea,FieldObjectAdvanced:Ca,FieldAutoSuggest:ga,FieldAutoSuggestLegacy:ya,FieldRadio:Sa,FieldArrayCardContainer:sa,FieldInput:ba,FieldStringArray:wa,TrashIcon:me.TrashIcon},mixins:[Oe],inject:{autofillSlot:{from:he,default:void 0}},props:{newElementButtonLabel:{type:String,default:"New Item"},removeElementButtonLabel:{type:String,default:"x"}},emits:["refreshModel"],methods:{generateSchema(e,n,o){let r;return n&&(r=JSON.parse(JSON.stringify(n)),n.schema?.fields&&r.schema?.fields?.forEach?.((a,i)=>{const d=n.schema.fields[i];d&&Object.keys(d).forEach(s=>{typeof d[s]=="function"&&(a[s]=d[s])})}),r.schema?.fields?.map?.(a=>(a.id=`${a.id||a.model}-${o}`,a))),{...r,set(a,i){e[o]=i},get(){return e[o]}}},newElement(){let e=this.value,n;(!e||!e.push)&&(e=[]),this.schema.items&&this.schema.items.default&&(typeof this.schema.items.default=="function"?n=this.schema.items.default():n=this.schema.items.default),e.push(n),this.value=[...e]},removeElement(e){this.value=this.value.filter((n,o)=>o!==e)},getFieldComponent(e){return e.component?e.component:"field-"+e.type},modelUpdated(){this.$emit("refreshModel")},handleInput(e,n){let o=e;this.schema?.inputAttributes?.type==="number"&&qn(parseFloat(e))&&(o=parseFloat(e)),this.value=this.value.map((r,a)=>a===n?o:r)},isStringArrayItems(){const e=this.schema?.elements;return e?e.type==="array"&&e.elements?.type==="string":!1},generateStringArraySchema(e){return{model:String(e),id:`${this.schema.id||this.schema.model}-${e}`,placeholder:this.schema.placeholder,help:this.schema.help,fieldClasses:this.schema.inputAttributes?.class,get:()=>this.value[e]}},handleStringArrayUpdate(e,n){this.value=this.value.map((o,r)=>r===n?e:o),this.$emit("refreshModel")}}},Yu=["id"],Gu={key:0,class:"string-array-item"},Wu={key:2},Zu=["onUpdate:modelValue","aria-labelledby","type"],Xu=["onUpdate:modelValue","aria-labelledby"];function Ju(e,n,o,r,a,i){const d=t.resolveComponent("FieldStringArray"),s=t.resolveComponent("TrashIcon"),u=t.resolveComponent("KButton"),f=t.resolveComponent("KTextArea"),p=t.resolveComponent("KInput");return e.schema?(t.openBlock(),t.createElementBlock("div",{key:0,id:e.getFieldID(e.schema),class:t.normalizeClass(e.schema.fieldClasses)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.value,(m,g)=>(t.openBlock(),t.createElementBlock("div",{key:g,class:t.normalizeClass(e.schema.fieldItemsClasses)},[i.isStringArrayItems()?(t.openBlock(),t.createElementBlock("div",Gu,[t.createVNode(d,{"form-options":e.formOptions,model:e.value,schema:i.generateStringArraySchema(g),onModelUpdated:k=>i.handleStringArrayUpdate(k,g)},null,8,["form-options","model","schema","onModelUpdated"]),t.createVNode(u,{appearance:"tertiary",class:"string-array-remove-btn",icon:"",onClick:k=>i.removeElement(g)},{default:t.withCtx(()=>[t.createVNode(s,{decorative:""})]),_:1},8,["onClick"])])):e.schema.items&&e.schema.itemContainerComponent?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.schema.itemContainerComponent),{key:1,index:g,model:m,schema:i.generateSchema(e.value,e.schema.items,g),onRemoveItem:k=>i.removeElement(g)},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.getFieldComponent(e.schema.items)),{"form-options":e.formOptions,model:m,schema:i.generateSchema(e.value,e.schema.items,g),onModelUpdated:i.modelUpdated},null,40,["form-options","model","schema","onModelUpdated"]))]),_:2},1064,["index","model","schema","onRemoveItem"])):e.schema.items?(t.openBlock(),t.createElementBlock("span",Wu,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.getFieldComponent(e.schema.items)),{"form-options":e.formOptions,model:m,schema:i.generateSchema(e.value,e.schema.items,g),onModelUpdated:i.modelUpdated},null,40,["form-options","model","schema","onModelUpdated"]))])):e.schema.itemContainerComponent?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.schema.itemContainerComponent),{key:3,"data-testid":`${e.getFieldID(e.schema)}-item-${g}`,model:m,schema:i.generateSchema(e.value,e.schema.items,g),onRemoveItem:k=>i.removeElement(g)},{after:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{schema:e.schema,update:k=>e.value[g]=k,value:e.value[g]},null,8,["schema","update","value"]))]),default:t.withCtx(()=>[e.schema.inputAttributes&&e.schema.inputAttributes.type==="textarea"?(t.openBlock(),t.createBlock(f,t.mergeProps({key:0,ref_for:!0},e.schema.inputAttributes,{id:e.getFieldID(e.schema),modelValue:e.value[g],"onUpdate:modelValue":k=>e.value[g]=k,"aria-labelledby":e.getLabelId(e.schema),autosize:"","character-limit":e.schema.inputAttributes.max,class:e.schema.fieldClasses,maxlength:e.schema.max,minlength:e.schema.min,name:e.schema.inputName,placeholder:e.schema.placeholder,readonly:e.schema.readonly,required:e.schema.required,resizable:"",rows:e.schema.rows||3}),null,16,["id","modelValue","onUpdate:modelValue","aria-labelledby","character-limit","class","maxlength","minlength","name","placeholder","readonly","required","rows"])):!e.schema.inputAttributes||!e.schema.inputAttributes.type||e.schema.inputAttributes.type==="text"||e.schema.inputAttributes.type==="number"?(t.openBlock(),t.createBlock(p,t.mergeProps({key:1,"aria-labelledby":e.getLabelId(e.schema)},{ref_for:!0},e.schema.inputAttributes,{"model-value":e.value[g],type:e.schema.inputAttributes&&e.schema.inputAttributes.type||"text",onInput:k=>{i.handleInput(k,g)}}),null,16,["aria-labelledby","model-value","type","onInput"])):t.withDirectives((t.openBlock(),t.createElementBlock("input",t.mergeProps({key:2,"onUpdate:modelValue":k=>e.value[g]=k,"aria-labelledby":e.getLabelId(e.schema)},{ref_for:!0},e.schema.inputAttributes,{type:e.schema.inputAttributes?.type||"text"}),null,16,Zu)),[[t.vModelDynamic,e.value[g]]])]),_:2},1064,["data-testid","model","schema","onRemoveItem"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:4},[t.withDirectives(t.createElementVNode("input",t.mergeProps({ref_for:!0},e.schema.inputAttributes,{"onUpdate:modelValue":k=>e.value[g]=k,"aria-labelledby":e.getLabelId(e.schema),type:"text"}),null,16,Xu),[[t.vModelText,e.value[g]]]),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{schema:e.schema,update:k=>e.value[g]=k,value:e.value[g]},null,8,["schema","update","value"]))],64))],2))),128)),t.createVNode(u,{appearance:"tertiary",class:t.normalizeClass(e.schema.newElementButtonLabelClasses),"data-testid":`add-${e.getFieldID(e.schema)}`,type:"button",onClick:i.newElement},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.schema.newElementButtonLabel||o.newElementButtonLabel),1)]),_:1},8,["class","data-testid","onClick"])],10,Yu)):t.createCommentVNode("",!0)}const Qu=x(Hu,[["render",Ju],["__scopeId","data-v-64e1f575"]]),ef={class:"form-field-wrapper field-checkbox"},tf=["innerHTML"],nf=x(t.defineComponent({__name:"FieldCheckbox",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRefs(r),{getFieldID:d,value:s,clearValidationErrors:u}=Ne.useAbstractFields({model:i.model,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:m=>{a("modelUpdated",m.value,m.model)}}),f=t.computed(()=>r.schema.help?on.sanitize(r.schema.help.replace(/<\/?p>/g,"").trim()):""),p=t.computed(()=>{const m=r.schema.checkboxDescription;return typeof m=="function"?m(r.model)||void 0:m||void 0});return n({clearValidationErrors:u}),(m,g)=>{const k=t.resolveComponent("KCheckbox");return t.openBlock(),t.createElementBlock("div",ef,[t.createVNode(k,t.mergeProps(m.$attrs,{id:t.unref(d)(e.schema),modelValue:t.unref(s),"onUpdate:modelValue":g[0]||(g[0]=w=>t.isRef(s)?s.value=w:null),autocomplete:e.schema.autocomplete,class:e.schema.fieldClasses,description:p.value||void 0,disabled:e.disabled||void 0,help:e.hint?e.hint:void 0,label:e.schema.checkboxLabel||void 0,"label-attributes":e.schema.checkboxLabel&&e.schema.help?{tooltipAttributes:{maxWidth:"300"}}:void 0,name:e.schema.inputName,readonly:e.schema.readonly,required:e.schema.required,width:e.schema.width}),t.createSlots({_:2},[e.schema.checkboxLabel&&e.schema.help?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("span",{innerHTML:f.value},null,8,tf)]),key:"0"}:void 0]),1040,["id","modelValue","autocomplete","class","description","disabled","help","label","label-attributes","name","readonly","required","width"])])}}}),[["__scopeId","data-v-39c92a17"]]),of={class:"wrapper"},af=["disabled"],rf=["id","checked","disabled","onChange","name"],lf=["disabled"],sf={class:"info"},df={class:"dropList"},cf=["id","checked","disabled","onChange","name"];function mf(e,n,o,r,a,i){const d=t.resolveDirective("attributes");return t.withDirectives((t.openBlock(),t.createElementBlock("div",of,[e.schema.listBox?(t.openBlock(),t.createElementBlock("div",{key:0,class:"listbox form-control",disabled:e.disabled||null},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.items,s=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["list-row",{"is-checked":i.isItemChecked(s)}])},[t.createElementVNode("label",null,[t.withDirectives(t.createElementVNode("input",{id:e.getFieldID(e.schema,!0),type:"checkbox",checked:i.isItemChecked(s)||null,disabled:e.disabled||null,onChange:u=>i.onChanged(u,s),name:i.getInputName(s)},null,40,rf),[[d,"input"]]),t.createTextVNode(t.toDisplayString(i.getItemName(s)),1)])],2))),256))],8,af)):t.createCommentVNode("",!0),e.schema.listBox?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:1,class:"combobox form-control",disabled:e.disabled||null},[t.createElementVNode("div",{class:t.normalizeClass(["mainRow",{expanded:a.comboExpanded}]),onClick:n[0]||(n[0]=(...s)=>i.onExpandCombo&&i.onExpandCombo(...s))},[t.createElementVNode("div",sf,t.toDisplayString(i.selectedCount)+" selected",1),n[1]||(n[1]=t.createElementVNode("div",{class:"arrow"},null,-1))],2),t.createElementVNode("div",df,[a.comboExpanded?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(i.items,s=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["list-row",{"is-checked":i.isItemChecked(s)}])},[t.createElementVNode("label",null,[t.withDirectives(t.createElementVNode("input",{id:e.getFieldID(e.schema,!0),type:"checkbox",checked:i.isItemChecked(s)||null,disabled:e.disabled||null,onChange:u=>i.onChanged(u,s),name:i.getInputName(s)},null,40,cf),[[d,"input"]]),t.createTextVNode(t.toDisplayString(i.getItemName(s)),1)])],2))),256)):t.createCommentVNode("",!0)])],8,lf))])),[[d,"wrapper"]])}const uf=x({mixins:[Oe],data(){return{comboExpanded:!1}},computed:{items(){const e=this.schema.values;return typeof e=="function"?e.apply(this,[this.model,this.schema]):e},selectedCount(){return this.value?this.value.length:0}},methods:{getInputName(e){return this.schema&&this.schema.inputName&&this.schema.inputName.length>0?Pi(this.schema.inputName+"_"+this.getItemValue(e)):Pi(this.getItemValue(e))},getItemValue(e){if(Ce(e)){if(typeof this.schema.checklistOptions<"u"&&typeof this.schema.checklistOptions.value<"u")return e[this.schema.checklistOptions.value];if(typeof e.value<"u")return e.value;throw new Error("`value` is not defined. If you want to use another key name, add a `value` property under `checklistOptions` in the schema. https://icebob.gitbooks.io/vueformgenerator/content/fields/checklist.html#checklist-field-with-object-values")}else return e},getItemName(e){if(Ce(e)){if(typeof this.schema.checklistOptions<"u"&&typeof this.schema.checklistOptions.name<"u")return e[this.schema.checklistOptions.name];if(typeof e.name<"u")return e.name;throw new Error("`name` is not defined. If you want to use another key name, add a `name` property under `checklistOptions` in the schema. https://icebob.gitbooks.io/vueformgenerator/content/fields/checklist.html#checklist-field-with-object-values")}else return e},isItemChecked(e){return this.value&&this.value.indexOf(this.getItemValue(e))!==-1},onChanged(e,n){if((te(this.value)||!Array.isArray(this.value))&&(this.value=[]),e.target.checked){const o=ma(this.value);o.push(this.getItemValue(n)),this.value=o}else{const o=ma(this.value);o.splice(this.value.indexOf(this.getItemValue(n)),1),this.value=o}},onExpandCombo(){this.comboExpanded=!this.comboExpanded}}},[["render",mf]]),ff={name:"FieldKeyValuePairs",components:{TrashIcon:me.TrashIcon},mixins:[Oe],inject:{autofillSlot:{from:he,default:void 0}},data(){return{pairs:[]}},watch:{pairs:{handler(){this.updateValue()},deep:!0}},created(){this.value||(this.value={});const e=this.model?.[this.schema?.model]??{};Object.keys(e).forEach(n=>{this.pairs.push({key:n,value:e[n]})})},methods:{onInput(e,n,o){this.pairs[n][o]=e.target.value},updateValue(){this.value=this.pairs.reduce((e,{key:n,value:o})=>({...e,...n&&o?{[n]:o}:null}),{})},addPair(){this.pairs.push({key:"",value:""})},removePair(e){this.pairs.splice(e,1)}}},pf={class:"key-value-pairs-editor"},hf={class:"pair-item-cell"},gf=["data-testid","placeholder","value","onInput"],yf={class:"pair-item-cell"},bf=["data-testid","placeholder","value","onInput"];function _f(e,n,o,r,a,i){const d=t.resolveComponent("TrashIcon"),s=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",pf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.pairs,(u,f)=>(t.openBlock(),t.createElementBlock("div",{key:f,class:"pair-item"},[t.createElementVNode("div",hf,[t.createElementVNode("input",{class:"form-control","data-testid":`${e.getFieldID(e.schema)}-pair-key-${f}`,placeholder:e.schema.keyInputPlaceholder??"Key",type:"text",value:u.key,onInput:p=>{i.onInput(p,f,"key")}},null,40,gf),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{schema:e.schema,update:p=>i.onInput({target:{value:p}},f,"key"),value:u.key},null,8,["schema","update","value"]))]),t.createElementVNode("div",yf,[t.createElementVNode("input",{class:"form-control","data-testid":`${e.getFieldID(e.schema)}-pair-value-${f}`,placeholder:e.schema.valueInputPlaceholder??"Value",type:"text",value:u.value,onInput:p=>{i.onInput(p,f,"value")}},null,40,bf),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{schema:e.schema,update:p=>i.onInput({target:{value:p}},f,"value"),value:u.value},null,8,["schema","update","value"]))]),t.createVNode(s,{appearance:"tertiary","data-testid":`${e.getFieldID(e.schema)}-remove-pair-${f}`,onClick:()=>{i.removePair(f)}},{default:t.withCtx(()=>[t.createVNode(d)]),_:1},8,["data-testid","onClick"])]))),128)),t.createVNode(s,{appearance:"tertiary",class:t.normalizeClass(e.schema.newElementButtonLabelClasses),"data-testid":`${e.getFieldID(e.schema)}-add-pair`,type:"button",onClick:i.addPair},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.schema.newElementButtonLabel??"+ Add Pair"),1)]),_:1},8,["class","data-testid","onClick"])])}const Ef=x(ff,[["render",_f],["__scopeId","data-v-be99d00c"]]),Cf=x(t.defineComponent({__name:"FieldLabel",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0}},setup(e){const n=e,o=t.toRefs(n),{getFieldID:r,value:a}=Ne.useAbstractFields({model:o.model,schema:n.schema,formOptions:n.formOptions});return(i,d)=>{const s=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(["field-label",e.schema.fieldClasses])},[t.createVNode(s,{id:t.unref(r)(e.schema)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)),1)]),_:1},8,["id"])],2)}}}),[["__scopeId","data-v-e3423a11"]]),Sf=t.defineComponent({__name:"FieldMultiselect",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRef(r,"model"),{getLabelId:d,getFieldID:s,clearValidationErrors:u,value:f}=Ne.useAbstractFields({model:i,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:m=>{a("modelUpdated",m.value,m.model)}});n({clearValidationErrors:u});const p=t.computed(()=>r.schema.values?r.schema.values:r.schema.elements?.one_of?.length?r.schema.elements.one_of.map(m=>({label:String(m),value:String(m)})):[]);return(m,g)=>{const k=t.resolveComponent("KMultiselect");return t.openBlock(),t.createBlock(k,{id:t.unref(s)(e.schema),modelValue:t.unref(f),"onUpdate:modelValue":g[0]||(g[0]=w=>t.isRef(f)?f.value=w:null),"aria-labelledby":t.unref(d)(e.schema),class:t.normalizeClass(e.schema.fieldClasses),"data-testid":"field-multiselect",disabled:e.disabled||void 0,items:p.value,"kpop-attributes":{"data-testid":`${t.unref(s)(e.schema)}-items`},"label-attributes":{info:e.schema.help},name:e.schema.inputName,placeholder:e.schema.placeholder,required:e.schema.required||void 0,width:"100%"},null,8,["id","modelValue","aria-labelledby","class","disabled","items","kpop-attributes","label-attributes","name","placeholder","required"])}}}),kf={class:"selection-group"},wf={class:"form-group horizontal-radios"},Tf={class:"radio-group"},Mf=["disabled","value"],Af={class:"control-help"},Nf={key:0,class:"option-field"},If={class:"option-field-container"},Vf=x(Object.assign({mixins:[Oe],emits:["model-updated"],expose:["validate","clearValidationErrors","schema"],data(){return{checkedGroup:null,fieldModel:{...this.model},renderedTrack:[],fieldSchema:[],scope:"scope"}},watch:{checkedGroup:{handler(e,n){if(this.renderedTrack[e]=!0,n===null){this.fieldModel={...this.model};return}const o=this.schema.fields[e].fields,r=this.schema.fields[n].fields;r&&r.forEach(a=>this.updateModel("",a.model)),o&&o.forEach(a=>this.updateModel(this.fieldModel[a.model],a.model))}}},async created(){await this.$nextTick(),this.schema.fields.forEach((e,n)=>{this.renderedTrack.push(!1),e.fields&&e.fields.forEach(o=>{this.model[o.model]&&(this.checkedGroup=n,this.fieldSchema.push(o.model),this.scope=o.label?.toLowerCase())})}),this.checkedGroup===null&&(this.checkedGroup=0)},methods:{updateModel(e,n){this.$emit("model-updated",e,n)}}},{__name:"FieldSelectionGroup",setup(e){const{t:n}=Ee.createI18n("en-us",we);return(o,r)=>(t.openBlock(),t.createElementBlock("div",kf,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.$props.disabled?"k-tooltip":"div"),{"max-width":"300",text:t.unref(n)("general.disable_global_radio",{scope:o.scope})},{default:t.withCtx(()=>[t.createElementVNode("div",wf,[t.createElementVNode("div",Tf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.schema.fields,(a,i)=>(t.openBlock(),t.createElementBlock("div",{key:i,class:t.normalizeClass(["option-group",{"radio-disabled":o.$props.disabled}])},[t.createElementVNode("label",{class:t.normalizeClass(["k-label",`${a.label}-check`])},[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":r[0]||(r[0]=d=>o.checkedGroup=d),class:"k-input",disabled:o.$props.disabled,type:"radio",value:i},null,8,Mf),[[t.vModelRadio,o.checkedGroup]]),t.createTextVNode(" "+t.toDisplayString(a.label)+" ",1),t.createElementVNode("div",Af,t.toDisplayString(a.description),1)],2)],2))),128))])])]),_:1},8,["text"])),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.schema.fields,(a,i)=>(t.openBlock(),t.createElementBlock("div",{key:i,class:"option-group"},[o.renderedTrack[i]?t.withDirectives((t.openBlock(),t.createElementBlock("div",Nf,[t.createElementVNode("div",If,[t.createVNode(Q,{model:o.model,options:{helpAsHtml:!0},schema:{fields:a.fields},onModelUpdated:o.updateModel},null,8,["model","schema","onModelUpdated"])])],512)),[[t.vShow,a.fields&&o.checkedGroup===i]]):t.createCommentVNode("",!0)]))),128))]))}}),[["__scopeId","data-v-0b44571b"]]),Of={class:"form-field-wrapper"},Bf=t.defineComponent({__name:"FieldSwitch",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,{t:i}=Ee.createI18n("en-us",we),d=g=>g!=null&&r.schema.valueOn?g===r.schema.valueOn:g,s=g=>g!=null&&r.schema.valueOn?g?r.schema.valueOn:r.schema.valueOff:g,u=t.toRefs(r),{getFieldID:f,value:p,clearValidationErrors:m}=Ne.useAbstractFields({model:u.model,schema:r.schema,formOptions:r.formOptions,formatValueToField:d,formatValueToModel:s,emitModelUpdated:g=>{a("modelUpdated",g.value,g.model)}});return n({clearValidationErrors:m}),(g,k)=>{const w=t.resolveComponent("KInputSwitch");return t.openBlock(),t.createElementBlock("div",Of,[t.createVNode(w,{id:t.unref(f)(e.schema),modelValue:t.unref(p),"onUpdate:modelValue":k[0]||(k[0]=C=>t.isRef(p)?p.value=C:null),autocomplete:e.schema.autocomplete,class:t.normalizeClass(e.schema.fieldClasses),disabled:e.disabled||void 0,label:t.unref(p)?e.schema.textOn||t.unref(i)("vfg.labels.on"):e.schema.textOff||t.unref(i)("vfg.labels.off"),"label-attributes":{info:e.schema.help},name:e.schema.inputName,required:e.schema.required||void 0},null,8,["id","modelValue","autocomplete","class","disabled","label","label-attributes","name","required"])])}}}),Ff={class:"field-textarea"},Rf={name:"FormGroup",components:Object.freeze(Object.defineProperty({__proto__:null,FieldAdvanced:Km,FieldArray:Qu,FieldArrayCardContainer:sa,FieldArrayItem:da,FieldArrayMultiItem:ca,FieldAutoSuggest:ga,FieldAutoSuggestLegacy:ya,FieldCheckbox:nf,FieldChecklist:uf,FieldInput:ba,FieldKeyValuePairs:Ef,FieldLabel:Cf,FieldMetric:_a,FieldMultiselect:Sf,FieldObject:Ea,FieldObjectAdvanced:Ca,FieldRadio:Sa,FieldSelect:ka,FieldSelectionGroup:Vf,FieldStringArray:wa,FieldSwitch:Bf,FieldTextArea:x(t.defineComponent({__name:"FieldTextArea",props:{disabled:{type:Boolean,default:!1},formOptions:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},schema:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default:()=>[]},hint:{type:String,default:""}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,a=o,i=t.toRefs(r),d=t.inject(he,void 0),{updateModelValue:s,getFieldID:u,clearValidationErrors:f,value:p}=Ne.useAbstractFields({model:i.model,schema:r.schema,formOptions:r.formOptions,emitModelUpdated:g=>{a("modelUpdated",g.value,g.model)}});n({clearValidationErrors:f});const m=g=>{p.value=g,s(g,g)};return(g,k)=>{const w=t.resolveComponent("KTextArea");return t.openBlock(),t.createElementBlock("div",Ff,[t.createVNode(w,t.mergeProps(g.$attrs,{id:t.unref(u)(e.schema),modelValue:t.unref(p),"onUpdate:modelValue":k[0]||(k[0]=C=>t.isRef(p)?p.value=C:null),autosize:"","character-limit":e.schema.max??!1,class:e.schema.fieldClasses,disabled:e.disabled||void 0,help:e.hint||void 0,minlength:e.schema.min,name:e.schema.inputName,placeholder:e.schema.placeholder,readonly:e.schema.readonly,required:e.schema.required,resizable:"",rows:e.schema.rows||3}),null,16,["id","modelValue","character-limit","class","disabled","help","minlength","name","placeholder","readonly","required","rows"]),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(d)),{schema:e.schema,update:m,value:t.unref(p)},null,8,["schema","value"]))])}}}),[["__scopeId","data-v-609c18d6"]])},Symbol.toStringTag,{value:"Module"})),mixins:[vi],inject:{"vfg-array-item-index":{default:void 0}},props:{vfg:{type:Object,required:!0},model:{type:Object,default:()=>{}},options:{type:Object,default:()=>{}},field:{type:Object,required:!0},errors:{type:Array,default(){return[]}}},emits:["validated","modelUpdated","refreshModel"],data(){return{child:t.ref()}},computed:{schema(){if(!this.field?.schema||!Array.isArray(this.field.schema.fields))return this.field;const e=this["vfg-array-item-index"];return typeof e!="number"||Number.isNaN(e)?this.field:{...this.field,schema:{...this.field.schema,fields:this.field.schema.fields.map(n=>({...n,...n.id?{id:`${n.id}-${e}`}:void 0}))}}}},methods:{sanitize(e){return on.sanitize(e)},fieldTypeHasLabel(e){if(te(e.label))return!1;let n="";switch(e.type==="input"?n=e.inputType:n=e.type,n){case"button":case"submit":case"reset":return!1;default:return!0}},getFieldID(e){const n=j(this.options,"fieldIdPrefix","");return jn(e,n)},getTooltipId(e){return`${this.getFieldID(e)}-tooltip`},getFieldComponent(e){return e.component?e.component:"field-"+e.type},getButtonType(e){return j(e,"type","button")},onFieldValidated(e,n,o){this.$emit("validated",e,n,o)},buttonVisibility(e){return e.buttons&&e.buttons.length>0},buttonClickHandler(e,n,o){return e.onclick.call(this,this.model,n,o,this)},fieldHint(e){return z(e.hint)?e.hint.call(this,this.model,e,this):e.hint},fieldErrors(e){return this.errors.filter(n=>n.field.fieldName===e.fieldName).map(n=>n.error)},onRefreshModel(){this.$emit("refreshModel")},onModelUpdated(e,n){this.$emit("modelUpdated",e,n)},validate(e){return this.$refs.child.validate(e)},clearValidationErrors(){if(this.$refs.child)return this.$refs.child.clearValidationErrors()},formattedLabel(e){return e?e.replace(/^[cC]onfig\./,""):""}}},Df=["innerHTML"],Uf={class:"icon-wrapper"},Lf={key:0,class:"link-wrapper"},Pf={class:"field-wrap"},vf={key:0,class:"buttons"},xf=["type","onClick","textContent"],Kf={key:1,class:"hint"},jf={key:2,class:"errors help-block"};function zf(e,n,o,r,a,i){const d=t.resolveComponent("KExternalLink"),s=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["form-group",e.getFieldRowClasses(o.field)])},[i.fieldTypeHasLabel(o.field)?(t.openBlock(),t.createBlock(s,{key:0,"aria-describedby":o.field.help?i.getTooltipId(o.field):void 0,class:t.normalizeClass([o.field.labelClasses,"form-group-label"]),for:i.getFieldID(o.field),info:!o.options.helpAsHtml&&o.field.help?o.field.help:void 0,"tooltip-attributes":o.field.help?{maxWidth:"300",placement:"top",tooltipId:i.getTooltipId(o.field)}:void 0},t.createSlots({default:t.withCtx(()=>[t.createElementVNode("div",Uf,[t.createElementVNode("span",null,t.toDisplayString(i.formattedLabel(o.field.label)),1)]),o.field.link?(t.openBlock(),t.createElementBlock("div",Lf,[t.createVNode(d,{href:o.field.link},{default:t.withCtx(()=>[...n[0]||(n[0]=[t.createElementVNode("span",{class:"section-header"},"More info",-1)])]),_:1},8,["href"])])):t.createCommentVNode("",!0)]),_:2},[o.options.helpAsHtml&&o.field.help?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:i.sanitize(o.field.help)},null,8,Df)]),key:"0"}:void 0]),1032,["aria-describedby","class","for","info","tooltip-attributes"])):t.createCommentVNode("",!0),t.createElementVNode("div",Pf,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.getFieldComponent(o.field)),t.mergeProps(e.$attrs,{ref:"child",disabled:e.fieldDisabled(o.field)||null,"form-options":o.options,hint:o.field.hint&&o.field.type==="input"?i.fieldHint(o.field):void 0,model:o.model,schema:i.schema,vfg:o.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated}),null,16,["disabled","form-options","hint","model","schema","vfg","onModelUpdated","onRefreshModel","onValidated"])),i.buttonVisibility(o.field)?(t.openBlock(),t.createElementBlock("div",vf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.field.buttons,(u,f)=>(t.openBlock(),t.createElementBlock("button",{key:f,class:t.normalizeClass(u.classes),type:i.getButtonType(u),onClick:p=>i.buttonClickHandler(u,o.field,p),textContent:t.toDisplayString(u.label)},null,10,xf))),128))])):t.createCommentVNode("",!0)]),o.field.hint&&o.field.type!=="input"?(t.openBlock(),t.createElementBlock("div",Kf,t.toDisplayString(i.fieldHint(o.field)),1)):t.createCommentVNode("",!0),i.fieldErrors(o.field).length>0?(t.openBlock(),t.createElementBlock("div",jf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.fieldErrors(o.field),(u,f)=>(t.openBlock(),t.createElementBlock("span",{key:f},t.toDisplayString(u),1))),128))])):t.createCommentVNode("",!0)],2)}const Ta=x(Rf,[["render",zf],["__scopeId","data-v-87df5b50"]]);var Kt=(e=>(e.REDIS_CE="redis-ce",e.REDIS_EE="redis-ee",e))(Kt||{});const $f=e=>e.type===Kt.REDIS_CE?"Host/Port":e.config.sentinel_nodes?.length?"Sentinel":e.config.cluster_nodes?.length?"Cluster":"Host/Port",qf={[Kt.REDIS_CE]:"open source",[Kt.REDIS_EE]:"enterprise"},Ma=e=>qf[e]??"",St={KONNECT_MANAGED:"konnect-managed",SELF_MANAGED:"self-managed"},Hf="managed_cache.v0";function Yf(e){const o=(Array.isArray(e.tags)?e.tags:[]).filter(r=>typeof r=="string").map(r=>r.toLowerCase());return o.includes(St.KONNECT_MANAGED)||o.includes(Hf)?St.KONNECT_MANAGED:St.SELF_MANAGED}function Aa(e){return e.app==="konnect"&&e.isCloudGateway===!0}const Gf={class:"partial-config-card"},Wf={class:"config-card-row-label"},Zf={class:"label-text"},Xf=["data-testid"],Jf=["data-testid"],Qf={key:1},ep=["data-testid"],tp=["data-testid"],np=x(t.defineComponent({__name:"RedisConfigCard",props:{configFields:{type:Object,required:!0},pluginRedisFields:{type:Array,required:!0}},setup(e){const{t:n,formatUnixTimeStamp:o}=Ee.createI18n("en-us",we),r={id:{order:1},name:{order:1},type:{label:n("redis.config_card.common_fields.type_label"),hidden:!0,type:"hidden"},created_at:{label:n("redis.config_card.common_fields.created_at_label"),formatter:o,order:2},updated_at:{label:n("redis.config_card.common_fields.updated_at_label"),formatter:o,order:3}},a=e,i=m=>m!=null,d=(m,g)=>i(g)&&["password","sentinel_password"].includes(m)?"password":"text",{convertKeyToTitle:s}=pt.useStringHelpers(),u=t.computed(()=>Object.entries(a.configFields).map(([m,g])=>({key:m,label:r[m]?.label??s(m),value:r[m]?.formatter?r[m].formatter(g):g,type:r[m]?.type??d(m,g),order:r[m]?.order??100})).sort((m,g)=>m.order-g.order).filter(m=>m.type!=="hidden")),f=Ne.useRedisNonStandardFields(a.configFields,a.pluginRedisFields),p=t.computed(()=>u.value.concat(f));return(m,g)=>{const k=t.resolveComponent("KCopy");return t.openBlock(),t.createElementBlock("div",Gf,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(p.value,({key:w,label:C,value:O,type:N})=>(t.openBlock(),t.createElementBlock("div",{key:w,class:"partial-config-card-row"},[t.createElementVNode("div",Wf,[t.createElementVNode("div",Zf,t.toDisplayString(C),1)]),t.createElementVNode("div",{class:"config-card-row-value","data-testid":`${w}-property-value`},[i(O)?(t.openBlock(),t.createElementBlock("div",Qf,[N==="password"?(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${w}-copy-password`},[t.createVNode(k,{format:"redacted",text:String(O)},null,8,["text"])],8,ep)):(t.openBlock(),t.createElementBlock("div",{key:1,"data-testid":`${w}-plain-text`},t.toDisplayString(O),9,tp))])):(t.openBlock(),t.createElementBlock("div",{key:0,"data-testid":`${w}-no-value`}," – ",8,Jf))],8,Xf)]))),128))])}}}),[["__scopeId","data-v-57f78095"]]),op={class:"redis-config-select","data-testid":"redis-config-select"},ip={class:"selected-redis-config"},ap=["data-testid"],rp={class:"select-item-name","data-testid":"selected-redis-config"},lp={class:"empty-redis-config","data-testid":"empty-redis-config"},sp={key:1,class:"redis-shared-config-error-message","data-testid":"redis-config-fetch-error"},dp="1000",Na=x(t.defineComponent({__name:"RedisConfigSelect",props:{defaultRedisConfigItem:{type:String,required:!1,default:""},updateRedisModel:{type:Function,required:!0},pluginRedisFields:{type:Array,required:!0},redisType:{type:String,default:"all"},isCustomPlugin:{type:Boolean,default:!1},isKonnectManagedRedisEnabled:{type:Boolean,default:!1}},emits:["showNewPartialModal"],setup(e,{emit:n}){const{t:o}=Ee.createI18n("en-us",we),r=n,a=t.inject(jo),i=t.inject(zo,null),d={konnect:{getOne:"/v2/control-planes/{controlPlaneId}/core-entities/{workspace}/partials/{id}",getAll:"/v2/control-planes/{controlPlaneId}/core-entities/{workspace}/partials"},kongManager:{getOne:"/{workspace}/partials/{id}",getAll:"/{workspace}/partials"}},s=e,u=t.ref(null),{getMessageFromError:f}=pt.useErrors(),p=t.inject(tn),m=t.computed(()=>!!i&&p.app==="konnect"&&p.isCloudGateway!==!0),g=t.computed(()=>s.redisType==="redis-ce"?"redis-ce":"redis-ee"),k=t.ref(!1),w=t.ref(),{debouncedQueryChange:C,loading:O,error:N,loadItems:U,results:B}=pt.useDebouncedFilter(p,d[p.app].getAll,dp,{fetchedItemsKey:"data",searchKeys:["id","name"]}),T=t.computed(()=>N.value?f(N.value):""),b=t.computed(()=>s.isCustomPlugin?o("redis.custom_plugin.tooltip"):o("redis.shared_configuration.tooltip",{type:Ma(s.redisType)})),h=t.computed(()=>s.isKonnectManagedRedisEnabled?o("redis.managed_ui.shared_configuration.title"):o("redis.shared_configuration.title")),A=t.computed(()=>s.isKonnectManagedRedisEnabled?o("redis.managed_ui.shared_configuration.selector.placeholder"):o("redis.shared_configuration.selector.placeholder")),$=t.computed(()=>s.isKonnectManagedRedisEnabled||m.value?o("redis.managed_ui.shared_configuration.create_new_configuration"):o("redis.shared_configuration.create_new_configuration",{type:Ma(s.redisType)})),V=t.computed(()=>T.value||o("redis.shared_configuration.error")),y=Y=>{let I=`${p.apiBaseUrl}${d[p.app].getOne}`;return p.app==="konnect"&&(I=I.replace(/{controlPlaneId}/gi,p?.controlPlaneId||"")),I=I.replace(/\/{workspace}/gi,p?.workspace?`/${p.workspace}`:"").replace(/{id}/gi,String(Y)),I},M=t.computed(()=>{const Y=(B.value||[]).map(I=>{const v=I,ue=s.isKonnectManagedRedisEnabled?Yf(v):void 0,$e=ue===St.KONNECT_MANAGED;return{...s.isKonnectManagedRedisEnabled&&ue?{source:ue}:{},label:I.id,name:I.name,value:I.id,type:I.type,tag:s.isKonnectManagedRedisEnabled&&$e?void 0:$f(v)}}).filter(I=>I.type==="redis-ce"||I.type==="redis-ee");return s.redisType!=="all"?Y.filter(I=>I.type===s.redisType):Y}),L=t.computed(()=>{const Y=M.value;if(!s.isKonnectManagedRedisEnabled)return Y;const I=Y.filter($e=>$e.source===St.KONNECT_MANAGED),v=Y.filter($e=>$e.source===St.SELF_MANAGED),ue=[];return I.length>0&&ue.push({label:o("redis.managed_ui.groups.konnect_managed"),items:I}),v.length>0&&ue.push({label:o("redis.managed_ui.groups.self_managed"),items:v}),ue}),{axiosInstance:ce}=pt.useAxios(p?.axiosRequestConfig),ee=async Y=>{if(!Y){u.value=null,s.updateRedisModel(void 0);return}s.updateRedisModel(Y);try{const I=await ce.get(y(Y));if(I.data.config){const v=Object.assign(I.data,I.data.config);delete v.config,u.value=v}}catch(I){console.error(I)}},Ie=()=>{if(!m.value){r("showNewPartialModal");return}w.value=s.defaultRedisConfigItem||void 0,ee(void 0),k.value=!0},kt=()=>{if(k.value=!1,w.value){const Y=w.value;w.value=void 0,ee(Y)}},Fe=async Y=>{w.value=void 0,k.value=!1,await U(),ee(Y.id)},$t=Y=>{i?.toast(Y)};return t.watch(()=>a?.value,async Y=>{Y&&await U()}),t.onBeforeMount(()=>{U(),s.defaultRedisConfigItem&&ee(s.defaultRedisConfigItem)}),(Y,I)=>{const v=t.resolveComponent("KLabel"),ue=t.resolveComponent("KBadge"),$e=t.resolveComponent("KSelect");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",op,[t.createVNode(v,{info:b.value,"tooltip-attributes":{maxWidth:"300",placement:"top"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(h.value),1)]),_:1},8,["info"]),I[1]||(I[1]=t.createElementVNode("div",{class:"shared-redis-config-title"},null,-1)),t.createVNode($e,{class:"redis-config-select-trigger","data-testid":"redis-config-select-trigger","enable-filtering":"","filter-function":()=>!0,items:L.value,loading:t.unref(O),"model-value":e.defaultRedisConfigItem,placeholder:A.value,onChange:I[0]||(I[0]=Re=>ee(Re?.value)),onQueryChange:t.unref(C)},t.createSlots({"selected-item-template":t.withCtx(({item:Re})=>[t.createElementVNode("div",ip,t.toDisplayString(Re.name),1)]),"item-template":t.withCtx(({item:Re})=>[t.createElementVNode("div",{class:"plugin-form-redis-configuration-dropdown-item","data-testid":`redis-configuration-dropdown-item-${Re.name}`},[t.createElementVNode("span",rp,t.toDisplayString(Re.name),1),Re.tag?(t.openBlock(),t.createBlock(ue,{key:0,appearance:"info",class:"select-item-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(Re.tag),1)]),_:2},1024)):t.createCommentVNode("",!0)],8,ap)]),empty:t.withCtx(()=>[t.createElementVNode("div",lp,t.toDisplayString(t.unref(o)("redis.shared_configuration.empty_state")),1)]),_:2},[t.unref(Aa)(t.unref(p))?void 0:{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("div",{class:"new-redis-config-area","data-testid":"new-redis-config-area",onClick:Ie},[t.createVNode(t.unref(me.AddIcon),{size:`var(--kui-icon-size-20, ${t.unref(ua)})`},null,8,["size"]),t.createElementVNode("span",null,t.toDisplayString($.value),1)])]),key:"0"}]),1032,["items","loading","model-value","placeholder","onQueryChange"])]),u.value?(t.openBlock(),t.createBlock(np,{key:0,"config-fields":u.value,"plugin-redis-fields":e.pluginRedisFields},null,8,["config-fields","plugin-redis-fields"])):t.createCommentVNode("",!0),T.value?(t.openBlock(),t.createElementBlock("p",sp,t.toDisplayString(V.value),1)):t.createCommentVNode("",!0),t.unref(i)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(i).component),{key:2,"partial-type":g.value,visible:k.value,onClose:kt,onCreated:Fe,onToast:$t},null,40,["partial-type","visible"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-e0c3bcd9"]]),cp={key:0},mp={class:"redis-config-radio-group","data-testid":"redis-config-radio-group"},up={key:0,class:"shared-redis-config"},fp={key:1,class:"dedicated-redis-config"},pp={class:"dedicated-redis-config-title"},hp={name:"VueFormGenerator",components:{formGroup:Ta,formRedis:x(t.defineComponent({__name:"FormRedis",props:{tag:{type:String,default:"fieldset",validator:function(e){return e.length>0}},model:{type:Object,default:()=>{}},options:{type:Object,required:!0},field:{type:Object,required:!0},vfg:{type:Object,required:!0},errors:{type:Array,default(){return[]}},redisPath:{type:String,default:void 0,required:!1},isEditing:{type:Boolean,default:!1},isKonnectManagedRedisEnabled:{type:Boolean,default:!1}},emits:["modelUpdated","partialToggled","showNewPartialModal","refreshModel","validated"],setup(e,{emit:n}){const o=e,r=n,{t:a}=Ee.createI18n("en-us",we),i=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.title"):a("redis.title")),d=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.shared_configuration.description"):a("redis.shared_configuration.description")),s=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.shared_configuration.label"):a("redis.shared_configuration.label")),u=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.dedicated_configuration.description"):a("redis.dedicated_configuration.description")),f=t.computed(()=>o.isKonnectManagedRedisEnabled?a("redis.managed_ui.dedicated_configuration.label"):a("redis.dedicated_configuration.label")),p=t.computed(()=>o.field.pluginType==="custom"),m=t.ref(!o.isEditing),g=t.ref(),k=t.ref({}),w=t.ref(),C=T=>z(T.visible)?T.visible.call(this,o.model,T,this):te(T.visible)?!0:T.visible,O=async T=>{if(!T){g.value=void 0,w.value=void 0,r("modelUpdated",void 0,"partials");return}r("modelUpdated",[{id:T,path:o.redisPath}],"partials"),w.value=[{id:T,path:o.redisPath}],g.value=T},N=(T,b)=>{k.value={...k.value,[b]:T},r("modelUpdated",T,b)},U=()=>{r("refreshModel")},B=(T,b,h)=>{r("validated",T,b,h)};return t.watch(()=>m.value,T=>{T?w.value&&r("partialToggled","redis",{partials:w.value}):r("partialToggled","partials",k.value)}),t.onBeforeMount(()=>{if(o.model&&(k.value=o.field.fields.reduce((T,b)=>(Object.keys(o.model).includes(b.model)&&(T[b.model]=o.model[b.model]),T),{})),o?.model?.partials?.[0]?.id){const T=o.model.partials[0].id;m.value=!0,g.value=T}}),(T,b)=>{const h=t.resolveComponent("KAlert"),A=t.resolveComponent("KBadge"),$=t.resolveComponent("KRadio"),V=t.resolveComponent("KCard");return t.openBlock(),t.createElementBlock("div",null,[p.value?(t.openBlock(),t.createElementBlock("div",cp,[t.createVNode(h,{"data-testid":"custom-plugin-redis-config-note",message:t.unref(a)("redis.custom_plugin.alert")},null,8,["message"]),t.createVNode(Na,{"default-redis-config-item":g.value,"is-custom-plugin":"","is-konnect-managed-redis-enabled":e.isKonnectManagedRedisEnabled,"plugin-redis-fields":e.field.fields,"update-redis-model":O,onShowNewPartialModal:b[0]||(b[0]=y=>T.$emit("showNewPartialModal"))},null,8,["default-redis-config-item","is-konnect-managed-redis-enabled","plugin-redis-fields"])])):(t.openBlock(),t.createBlock(V,{key:1,class:"redis-config-card","data-testid":"redis-config-card",title:i.value},{default:t.withCtx(()=>[t.createElementVNode("div",mp,[t.createVNode($,{modelValue:m.value,"onUpdate:modelValue":b[1]||(b[1]=y=>m.value=y),card:"","card-orientation":"horizontal","data-testid":"shared-redis-config-radio",description:d.value,label:s.value,"selected-value":!0},{default:t.withCtx(()=>[e.isKonnectManagedRedisEnabled?(t.openBlock(),t.createBlock(A,{key:0,appearance:"success"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("redis.managed_ui.shared_configuration.badge")),1)]),_:1})):t.createCommentVNode("",!0)]),_:1},8,["modelValue","description","label"]),t.createVNode($,{modelValue:m.value,"onUpdate:modelValue":b[2]||(b[2]=y=>m.value=y),card:"","card-orientation":"horizontal","data-testid":"dedicated-redis-config-radio",description:u.value,label:f.value,"selected-value":!1},null,8,["modelValue","description","label"])]),m.value?(t.openBlock(),t.createElementBlock("div",up,[t.createVNode(Na,{"default-redis-config-item":g.value,"is-konnect-managed-redis-enabled":e.isKonnectManagedRedisEnabled,"plugin-redis-fields":e.field.fields,"redis-type":e.field.redisType,"update-redis-model":O,onShowNewPartialModal:b[3]||(b[3]=y=>T.$emit("showNewPartialModal"))},null,8,["default-redis-config-item","is-konnect-managed-redis-enabled","plugin-redis-fields","redis-type"])])):(t.openBlock(),t.createElementBlock("div",fp,[t.createElementVNode("div",pp,t.toDisplayString(t.unref(a)("redis.dedicated_configuration.title")),1),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.tag),null,{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.field.fields,y=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:y.model},[C(y)?(t.openBlock(),t.createBlock(Ta,{key:0,ref_for:!0,ref:"children",errors:e.errors,field:y,model:e.model,options:e.options,vfg:e.vfg,onModelUpdated:N,onRefreshModel:U,onValidated:B},null,8,["errors","field","model","options","vfg"])):t.createCommentVNode("",!0)],64))),128))]),_:1}))]))]),_:1},8,["title"]))])}}}),[["__scopeId","data-v-1b572a6a"]])},mixins:[vi],inject:{autofillSlot:{from:he,default:void 0}},provide(){return{...!this.autofillSlot&&{[he]:this.$slots?.[at]}}},props:{schema:{type:Object,default:()=>{}},model:{type:Object,default:()=>{}},options:{type:Object,default(){return{validateAfterLoad:!1,validateAfterChanged:!1,child:t.ref([]),fieldIdPrefix:"",validateAsync:!1,validationErrorClass:"error",validationSuccessClass:"",helpAsHtml:!1}}},multiple:{type:Boolean,default:!1},isNewModel:{type:Boolean,default:!1},tag:{type:String,default:"fieldset",validator:function(e){return e.length>0}},enableRedisPartial:{type:Boolean,default:!1},isKonnectManagedRedisEnabled:{type:Boolean,default:!1},isEditing:{type:Boolean,default:!1}},emits:["validated","modelUpdated","refreshModel","partialToggled","showNewPartialModal"],data(){return{vfg:this,errors:[],children:t.ref([]),collapseStates:{}}},computed:{fields(){const e=[];return this.schema&&this.schema.fields&&fe(this.schema.fields,n=>{(!this.multiple||n.multi===!0)&&e.push(n)}),e},groups(){const e=[];return this.schema&&this.schema.groups&&fe(this.schema.groups.slice(0),n=>{e.push(n)}),e}},watch:{model:{deep:!0,handler(e,n){n!==e&&e!=null&&this.$nextTick(()=>{this.options.validateAfterLoad===!0&&this.isNewModel!==!0?this.validate():this.clearValidationErrors()})}}},mounted(){this.$nextTick(()=>{this.model&&(this.options.validateAfterLoad===!0&&this.isNewModel!==!0?this.validate():this.clearValidationErrors())})},methods:{fieldVisible(e){return z(e.visible)?e.visible.call(this,this.model,e,this):te(e.visible)?!0:e.visible},onFieldValidated(e,n,o){this.errors=this.errors.filter(a=>a.field.fieldName!==o.schema.fieldName),!e&&n&&n.length>0&&fe(n,a=>{this.errors.push({field:o.schema,error:a})});const r=this.errors.length===0;this.$emit("validated",r,this.errors,this)},onRefreshModel(){this.$emit("refreshModel")},onModelUpdated(e,n){this.$emit("modelUpdated",e,n)},onPartialToggled(e,n){this.$emit("partialToggled",e,n)},validate(e=null){e===null&&(e=j(this.options,"validateAsync",!1)),this.clearValidationErrors();const n=[],o=[];fe(this.$refs.children,a=>{z(a.validate)&&(n.push(a.$refs.child),o.push(a.$refs.child.validate(!0)))});const r=a=>{const i=[];fe(a,(s,u)=>{Array.isArray(s)&&s.length>0&&fe(s,f=>{i.push({field:n[u].schema,error:f})})}),this.errors=i;const d=i.length===0;return this.$emit("validated",d,i,this),e?i:d};return e?Promise.all(o).then(r):r(o)},clearValidationErrors(){this.errors.splice(0),fe(this.$refs.children,e=>{e.clearValidationErrors()})}}},gp={key:0,class:"vue-form-generator"},yp={key:0};function bp(e,n,o,r,a,i){const d=t.resolveComponent("form-redis"),s=t.resolveComponent("form-group"),u=t.resolveComponent("KCollapse");return o.schema!=null?(t.openBlock(),t.createElementBlock("div",gp,[o.schema.fields?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.tag),{key:0},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.fields,f=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:f.model},[f.model==="__redis_partial"&&o.enableRedisPartial?(t.openBlock(),t.createBlock(d,{key:0,errors:a.errors,field:f,"is-editing":o.isEditing,"is-konnect-managed-redis-enabled":o.isKonnectManagedRedisEnabled,model:o.model,options:o.options,tag:o.tag,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onPartialToggled:i.onPartialToggled,onShowNewPartialModal:p=>e.$emit("showNewPartialModal",f.redisType),onValidated:i.onFieldValidated},null,8,["errors","field","is-editing","is-konnect-managed-redis-enabled","model","options","tag","vfg","onModelUpdated","onPartialToggled","onShowNewPartialModal","onValidated"])):i.fieldVisible(f)?(t.openBlock(),t.createBlock(s,{key:1,ref_for:!0,ref:"children",errors:a.errors,field:f,model:o.model,options:o.options,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated},null,8,["errors","field","model","options","vfg","onModelUpdated","onRefreshModel","onValidated"])):t.createCommentVNode("",!0)],64))),128))]),_:1})):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.groups,(f,p)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:`group-${p}`},[f.collapsible!==void 0&&f.collapsible!==!1?(t.openBlock(),t.createBlock(u,{key:0,class:"root-level-collapse","model-value":!1,title:f.collapsible.title},t.createSlots({default:t.withCtx(()=>[f.slots?.beforeContent?t.renderSlot(e.$slots,f.slots?.beforeContent,{},void 0,void 0,0):t.createCommentVNode("",!0),f.fields.length===0&&f.slots?.emptyState?t.renderSlot(e.$slots,f.slots?.emptyState,{},void 0,void 0,1):(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.tag),{key:2,class:t.normalizeClass(e.getFieldRowClasses(f))},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.fields,m=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:m.model},[i.fieldVisible(m)?(t.openBlock(),t.createBlock(s,{key:0,ref_for:!0,ref:"children",errors:a.errors,field:m,model:o.model,options:o.options,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated},null,8,["errors","field","model","options","vfg","onModelUpdated","onRefreshModel","onValidated"])):t.createCommentVNode("",!0)],64))),128))]),_:2},1032,["class"])),f.collapsible!==!0&&f.collapsible.nestedCollapsible&&f.collapsible.nestedCollapsible.fields.length>0?(t.openBlock(),t.createBlock(u,{key:3,class:"nested-collapse","model-value":a.collapseStates[`group-${p}-nested`]??!0,"trigger-alignment":"leading","trigger-label":a.collapseStates[`group-${p}-nested`]??!0?f.collapsible.nestedCollapsible.triggerLabel.expand:f.collapsible.nestedCollapsible.triggerLabel.collapse,"onUpdate:modelValue":m=>a.collapseStates[`group-${p}-nested`]=m},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.tag),{class:t.normalizeClass(e.getFieldRowClasses(f))},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.collapsible.nestedCollapsible.fields,m=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:m.model},[m.model==="__redis_partial"&&o.enableRedisPartial?(t.openBlock(),t.createBlock(d,{key:0,errors:a.errors,field:m,"is-editing":o.isEditing,"is-konnect-managed-redis-enabled":o.isKonnectManagedRedisEnabled,model:o.model,options:o.options,tag:o.tag,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onPartialToggled:i.onPartialToggled,onShowNewPartialModal:g=>e.$emit("showNewPartialModal",m.redisType),onValidated:i.onFieldValidated},null,8,["errors","field","is-editing","is-konnect-managed-redis-enabled","model","options","tag","vfg","onModelUpdated","onPartialToggled","onShowNewPartialModal","onValidated"])):i.fieldVisible(m)?(t.openBlock(),t.createBlock(s,{key:1,ref_for:!0,ref:"children",errors:a.errors,field:m,model:o.model,options:o.options,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated},null,8,["errors","field","model","options","vfg","onModelUpdated","onRefreshModel","onValidated"])):t.createCommentVNode("",!0)],64))),128))]),_:2},1032,["class"]))]),_:2},1032,["model-value","trigger-label","onUpdate:modelValue"])):t.createCommentVNode("",!0)]),_:2},[f.collapsible.description?{name:"visible-content",fn:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(f.collapsible.description),1)]),key:"0"}:void 0]),1032,["title"])):(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.tag),{key:1,class:t.normalizeClass(e.getFieldRowClasses(f))},{default:t.withCtx(()=>[f.legend?(t.openBlock(),t.createElementBlock("legend",yp,t.toDisplayString(f.legend),1)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.fields,m=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:m.model},[i.fieldVisible(m)?(t.openBlock(),t.createBlock(s,{key:0,ref_for:!0,ref:"children",errors:a.errors,field:m,model:o.model,options:o.options,vfg:a.vfg,onModelUpdated:i.onModelUpdated,onRefreshModel:i.onRefreshModel,onValidated:i.onFieldValidated},null,8,["errors","field","model","options","vfg","onModelUpdated","onRefreshModel","onValidated"])):t.createCommentVNode("",!0)],64))),128))]),_:2},1032,["class"]))],64))),128))])):t.createCommentVNode("",!0)}const Q=x(hp,[["render",bp]]),_p=[{label:"Kong Identity client",value:"kong-identity",description:"Match principals using a token claim, defaulting to the subject (sub) claim."},{label:"Custom claim",value:"custom-identity",description:"Match principals using a custom JWT claim."}],Ia=e=>e==null||e===""?!1:Array.isArray(e)?e.length>0:!0,Ep=e=>Ia(e["config-principals-principal_by"])?"custom-identity":"kong-identity",Cp={name:"PrincipalLookupSettings",props:{formModel:{type:Object,required:!0},onModelUpdated:{type:Function,required:!0},disabled:{type:Boolean,default:!1},showEnableToggle:{type:Boolean,default:!1},onEnabledChange:{type:Function,default:void 0},dataPlaneIncompatible:{type:Boolean,default:!1},showPrincipalsFields:{type:Boolean,default:!0},isEditing:{type:Boolean,default:!1}},data(){return{lookupMethodItems:_p,selectedLookupMethod:Ep(this.formModel)}},computed:{lookupEnabled(){return this.formModel["config-principals-enabled"]===!0},fieldsDisabled(){return this.disabled||!this.lookupEnabled},tokenClaimHelp(){const e="Use dot notation for nested claims (for example, workload.id); escape literal periods with \\ (for example, workload\\.id).";return this.selectedLookupMethod==="custom-identity"?`The token claim whose value is matched against the Custom identity name. Defaults to the subject (sub) claim, but you can specify a different claim if needed. ${e}`:`Defaults to the subject (sub) claim, but you can specify a different token claim if needed. ${e}`}},created(){!this.isEditing&&!Ia(this.formModel["config-principals-principal_claim"])&&this.updateField("config-principals-principal_claim",["sub"])},methods:{handleEnableToggle(e){this.onEnabledChange&&this.onEnabledChange(e)},getTokenClaimInputValue(){const e=this.formModel["config-principals-principal_claim"];return Array.isArray(e)&&e.length>0?e.map(n=>n.replace(/\./g,"\\.")).join("."):typeof e=="string"&&e?e:""},handleTokenClaimChange(e){const n=typeof e=="string"?e.trim():"";if(!n){this.updateField("config-principals-principal_claim",[]);return}const o=n.split(new RegExp("(?<!\\\\)\\.")).map(r=>r.replace(/\\\./g,".").trim()).filter(Boolean);this.updateField("config-principals-principal_claim",o)},handleMatchConsumerChange(e){this.updateField("config-principals-match_consumer",e),e||this.updateField("config-principals-match_consumer_groups",!1)},handleLookupMethodChange(e){this.selectedLookupMethod=e,e!=="custom-identity"&&(this.formModel["config-principals-principal_by"]=null,this.formModel["config-principals-principal_claim"]=null,this.onModelUpdated())},updateField(e,n){this.formModel[e]=n,this.onModelUpdated()}}},Sp={key:1,class:"principals-field-group"},kp={class:"principals-field-group"},wp={class:"lookup-method-item"},Tp={class:"lookup-method-item-label"},Mp={class:"lookup-method-item-description"},Ap={class:"principals-field-group"},Np={class:"principals-field-group"},Ip={class:"principals-field-group"};function Vp(e,n,o,r,a,i){const d=t.resolveComponent("KAlert"),s=t.resolveComponent("KLabel"),u=t.resolveComponent("KInputSwitch"),f=t.resolveComponent("KSelect"),p=t.resolveComponent("KInput"),m=t.resolveComponent("KRadio"),g=t.resolveComponent("KCheckbox"),k=t.resolveComponent("KCollapse");return t.openBlock(),t.createBlock(k,{class:"principals-advanced-settings","data-testid":"principals-advanced-settings","trigger-label":"Show additional settings"},{default:t.withCtx(()=>[o.showPrincipalsFields?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.renderSlot(e.$slots,"banner",{},void 0,!0),o.dataPlaneIncompatible?(t.openBlock(),t.createBlock(d,{key:0,appearance:"warning",class:"principals-dp-version-alert","data-testid":"oidc-principals-dp-version-alert",message:"We detected that one or more data plane nodes are running a version earlier than 3.15. If principal lookup is enabled, requests handled by those data plane nodes will fail.","show-icon":""})):t.createCommentVNode("",!0),o.showEnableToggle?(t.openBlock(),t.createElementBlock("div",Sp,[t.createVNode(u,{"data-testid":"use-principal-lookup",disabled:o.disabled,"model-value":i.lookupEnabled,"onUpdate:modelValue":i.handleEnableToggle},{label:t.withCtx(()=>[t.createVNode(s,{info:"Look up the authenticated principal in Kong Identity after token validation. Enable this when the validated token doesn’t contain all of the identity data required for authorization or activity logging.","tooltip-attributes":{maxWidth:"300"}},{default:t.withCtx(()=>[...n[6]||(n[6]=[t.createTextVNode(" Use principal lookup ",-1)])]),_:1})]),_:1},8,["disabled","model-value","onUpdate:modelValue"])])):t.createCommentVNode("",!0),t.createElementVNode("div",kp,[t.createVNode(f,{class:"principals-lookup-method-select","data-testid":"principals-lookup-method",disabled:i.fieldsDisabled,help:"Principal lookup queries Kong Identity for the principal that matches the identity in a verified access token. This enables principal-aware policies and integrations. Requires all data plane nodes to be running version 3.15 or later.",items:a.lookupMethodItems,label:"Principal lookup method","model-value":a.selectedLookupMethod,placeholder:"Select a lookup method","onUpdate:modelValue":i.handleLookupMethodChange},{"item-template":t.withCtx(({item:w})=>[t.createElementVNode("div",wp,[t.createElementVNode("div",Tp,t.toDisplayString(w.label),1),t.createElementVNode("div",Mp,t.toDisplayString(w.description),1)])]),_:1},8,["disabled","items","model-value","onUpdate:modelValue"]),a.selectedLookupMethod==="custom-identity"?(t.openBlock(),t.createBlock(p,{key:0,class:"principals-custom-identity-name-input","data-testid":"principals-custom-identity-name",disabled:i.fieldsDisabled,help:"Enter the custom identity name used to look up the principal. Kong matches the value from the token claim to a principal with the same custom identity name and value.",label:"Custom identity name","model-value":o.formModel["config-principals-principal_by"],placeholder:"e.g., Customer_ID","onUpdate:modelValue":n[0]||(n[0]=w=>i.updateField("config-principals-principal_by",w))},null,8,["disabled","model-value"])):t.createCommentVNode("",!0),t.createVNode(p,{class:"principals-token-claim-input","data-testid":"principals-token-claim",disabled:i.fieldsDisabled,help:i.tokenClaimHelp,label:"Token claim","model-value":i.getTokenClaimInputValue(),placeholder:"e.g., user.employee_id","onUpdate:modelValue":n[1]||(n[1]=w=>i.handleTokenClaimChange(w))},null,8,["disabled","help","model-value"])]),t.createElementVNode("div",Ap,[t.createVNode(s,null,{default:t.withCtx(()=>[...n[7]||(n[7]=[t.createTextVNode("If principal lookup fails",-1)])]),_:1}),t.createVNode(m,{"data-testid":"principals-error-on-miss-true",description:"Treat the request as unauthenticated if Kong Identity cannot resolve the principal.",disabled:i.fieldsDisabled,label:"Reject the request","model-value":o.formModel["config-principals-error_on_miss"],"selected-value":!0,onChange:n[2]||(n[2]=w=>i.updateField("config-principals-error_on_miss",!0))},null,8,["disabled","model-value"]),t.createVNode(m,{"data-testid":"principals-error-on-miss-false",description:"Allow the request to continue without resolving a principal.",disabled:i.fieldsDisabled,label:"Continue without a principal","model-value":o.formModel["config-principals-error_on_miss"],"selected-value":!1,onChange:n[3]||(n[3]=w=>i.updateField("config-principals-error_on_miss",!1))},null,8,["disabled","model-value"])]),t.createElementVNode("div",Np,[t.createVNode(g,{"data-testid":"principals-match-consumer",disabled:i.fieldsDisabled,"model-value":o.formModel["config-principals-match_consumer"],"onUpdate:modelValue":n[4]||(n[4]=w=>i.handleMatchConsumerChange(w))},{description:t.withCtx(()=>[...n[8]||(n[8]=[t.createTextVNode(" Use the consumer linked to the authenticated principal so existing consumer-based plugins and policies continue to work. ",-1),t.createElementVNode("a",{class:"principals-learn-more-link",href:"https://developer.konghq.com/identity/principals/",rel:"noopener noreferrer",target:"_blank"},"Learn how to link a consumer.",-1)])]),default:t.withCtx(()=>[n[9]||(n[9]=t.createTextVNode(" Use linked consumers ",-1))]),_:1},8,["disabled","model-value"])]),t.createElementVNode("div",Ip,[t.createVNode(g,{"data-testid":"principals-match-consumer-groups",disabled:i.fieldsDisabled||!o.formModel["config-principals-match_consumer"],"model-value":o.formModel["config-principals-match_consumer_groups"],"onUpdate:modelValue":n[5]||(n[5]=w=>i.updateField("config-principals-match_consumer_groups",w))},{description:t.withCtx(()=>[...n[10]||(n[10]=[t.createTextVNode(" Use consumer groups linked to the authenticated principal so existing consumer group policies and plugins continue to work. Consumer groups can be linked through principal metadata. ",-1),t.createElementVNode("a",{class:"principals-learn-more-link",href:"https://developer.konghq.com/identity/principals/",rel:"noopener noreferrer",target:"_blank"},"Learn how to link a consumer group.",-1)])]),default:t.withCtx(()=>[n[11]||(n[11]=t.createTextVNode(" Use linked consumer groups ",-1))]),_:1},8,["disabled","model-value"])])],64)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"default",{},void 0,!0)]),_:3})}const Op=x(Cp,[["render",Vp],["__scopeId","data-v-cbe39595"]]),jt="kong-identity",Va="external",Bp="/v1/auth-servers/_computed",Fp="identity.konghq",Rp=e=>typeof e=="string"&&e.includes(Fp),Wn={major:3,minor:15},Dp=e=>{const[n,o]=e.split(".").map(Number);return Number.isNaN(n)||Number.isNaN(o)?!1:n!==Wn.major?n<Wn.major:o<Wn.minor},Up=(e,n)=>n?Rp(e["config-issuer"])?jt:Va:jt,Lp={name:"OIDCPrincipals",components:{VueFormGenerator:Q,PrincipalLookupSettings:Op,SecretInput:Eo.SecretInput,AddIcon:me.AddIcon,BookIcon:me.BookIcon,CloseIcon:me.CloseIcon,KeyIcon:me.KeyIcon,WorldIcon:me.WorldIcon},inject:{formsConfig:{from:tn,default:()=>({})},autofillSlot:{from:he,default:void 0}},props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>({})},commonFieldsSchema:{type:Object,required:!0},onModelUpdated:{type:Function,required:!0},isEditing:{type:Boolean,default:!1}},emits:["mode-change","click:learn-more","click:create-entity"],data(){const e=Up(this.formModel,this.isEditing);return{MODE_KONG_IDENTITY:jt,MODE_EXTERNAL:Va,KUI_ICON_SIZE_20:ua,KUI_ICON_SIZE_30:Wm,KUI_ICON_SIZE_40:fa,selectedMode:e,kongIdentityServers:[],kongIdentityServersLoading:!1,clients:[],clientsLoading:!1,selectedServer:null,restoringServer:!1,leavePromptType:null}},computed:{issuerFieldsSchema(){const e=(this.commonFieldsSchema?.fields??[]).filter(n=>n.model==="config-issuer");return{...this.commonFieldsSchema,fields:e}},externalClientIdField(){return(this.commonFieldsSchema?.fields??[]).find(e=>e.model==="config-client_id")},externalClientSecretField(){return(this.commonFieldsSchema?.fields??[]).find(e=>e.model==="config-client_secret")},kongIdentityServerItems(){return this.kongIdentityServers.map(e=>({label:e.name,value:e.id}))},clientItems(){return this.clients.map(e=>({label:e.name,value:e.client_id||e.id}))},clientIdArray(){const e=this.formModel["config-client_id"];return Array.isArray(e)&&e.length>0?e:[null]},clientSecretArray(){const e=this.formModel["config-client_secret"];return Array.isArray(e)&&e.length>0?e:[null]},isRemoveClientDisabled(){return this.hasAuthServersAccess&&!this.selectedServer||this.clientIdArray.length<=1},isKonnect(){return this.formsConfig?.app==="konnect"},hasAuthServersAccess(){return this.formsConfig?.isKongIdentityAuthServersAvailable!==!1},canCreateAuthServer(){return this.formsConfig?.canCreateAuthServer!==!1},canCreateAuthServerClient(){return this.formsConfig?.canCreateAuthServerClient!==!1},hasIncompatibleDataPlane(){return(this.formsConfig?.dataPlaneVersions??[]).some(Dp)},principalsEnabled(){return this.formModel["config-principals-enabled"]===!0},principalsGuideVisible(){return this.isKonnect&&this.formsConfig?.principalsCreationGuideVisible===!0},principalsSkeletonVisible(){return this.isKonnect&&this.formsConfig?.principalsCreationGuideVisible===void 0}},watch:{"formsConfig.principalsDirectoryName":{immediate:!0,handler(e){this.isEditing||this.selectedMode!==jt||e==null||(this.formModel["config-principals-directory"]=e,this.onModelUpdated())}}},mounted(){this.isEditing||this.$nextTick(()=>this.$emit("mode-change",this.selectedMode)),this.fetchKongIdentityServers()},methods:{async fetchKongIdentityServers(){if(this.formsConfig?.isKongIdentityAuthServersAvailable!==!1)try{this.kongIdentityServersLoading=!0;const{axiosInstance:e}=pt.useAxios(this.formsConfig?.axiosRequestConfig),n=`${this.formsConfig.apiBaseUrl}${Bp}`,o=await e.get(n);this.kongIdentityServers=o.data?.data??[];const r=this.formModel["config-issuer"];if(r&&!this.selectedServer){const a=this.kongIdentityServers.find(i=>i.issuer===r)||null;a&&(this.restoringServer=!0,this.selectedServer=a,this.fetchClients(a.id))}}catch{this.kongIdentityServers=[]}finally{this.kongIdentityServersLoading=!1}},async fetchClients(e){try{this.clientsLoading=!0;const{axiosInstance:n}=pt.useAxios(this.formsConfig?.axiosRequestConfig),o=`${this.formsConfig.apiBaseUrl}/v1/auth-servers/${e}/clients`,r=await n.get(o);this.clients=r.data?.data??[]}catch{this.clients=[]}finally{this.clientsLoading=!1}},handleServerChange(e){if(this.restoringServer){this.restoringServer=!1;return}this.selectedServer=this.kongIdentityServers.find(n=>n.id===e)||null,this.selectedServer?.issuer&&this.updateField("config-issuer",this.selectedServer.issuer),this.updateField("config-client_id",[null]),this.updateField("config-client_secret",[null]),this.clients=[],this.clientsLoading=!!e,e&&this.fetchClients(e)},handleClientChange(e,n){const o=Array.isArray(this.formModel["config-client_id"])?[...this.formModel["config-client_id"]]:[];o[e]=n,this.updateField("config-client_id",o)},addClientRow(){const e=[...this.clientIdArray];e.push(null),this.updateField("config-client_id",e);const n=[...this.clientSecretArray];n.push(null),this.updateField("config-client_secret",n)},removeClientRow(e){if(this.clientIdArray.length<=1)return;const n=[...this.clientIdArray];n.splice(e,1),this.updateField("config-client_id",n);const o=[...this.clientSecretArray];o.splice(e,1),this.updateField("config-client_secret",o)},handleClientSecretChange(e,n){const o=Array.isArray(this.formModel["config-client_secret"])?[...this.formModel["config-client_secret"]]:[];o[e]=n,this.updateField("config-client_secret",o)},getClientItemsForRow(e){const n=this.clientIdArray;return this.clientItems.map(o=>({...o,disabled:n.some((r,a)=>a!==e&&r===o.value)}))},updateField(e,n){this.formModel[e]=n,this.onModelUpdated()},sanitize(e){return on.sanitize(e)},handleUsePrincipalLookupChange(e){this.updateField("config-principals-enabled",e)},handleLeaveConfirmed(){const e=this.leavePromptType;this.leavePromptType=null,e==="authServer"?this.$emit("click:create-entity",{type:"auth-server"}):e==="client"?this.$emit("click:create-entity",{type:"client",authServerId:this.selectedServer?.id}):e==="principal"&&this.$emit("click:create-entity",{type:"principal"})},handleModeChange(e){if(e===jt){this.formModel["config-client_id"]=null,this.formModel["config-client_secret"]=null,this.formModel["config-issuer"]=null,this.formModel["config-principals-enabled"]=!1,this.formModel["config-principals-error_on_miss"]=!0,this.formModel["config-principals-match_consumer"]=!0,this.formModel["config-principals-match_consumer_groups"]=!0;const n=this.formsConfig?.principalsDirectoryName;n!=null&&(this.formModel["config-principals-directory"]=n)}else this.formModel["config-principals-enabled"]=!1,this.formModel["config-principals-directory"]="default",this.formModel["config-principals-error_on_miss"]=!0,this.formModel["config-principals-match_consumer"]=!0,this.formModel["config-principals-match_consumer_groups"]=!0,this.formModel["config-client_id"]=null,this.formModel["config-client_secret"]=null,this.formModel["config-issuer"]=null,this.selectedServer=null,this.clients=[];this.onModelUpdated(),this.$emit("mode-change",e)}}},Pp={class:"oidc-principals-section","data-testid":"oidc-principals-section"},vp={class:"principals-description"},xp={class:"oidc-auth-mode-radio-group","data-testid":"oidc-auth-mode-radio-group"},Kp={class:"auth-mode-card-content"},jp={class:"auth-mode-card-content"},zp={key:1,class:"principals-create-guide","data-testid":"principals-create-guide"},$p={class:"principals-create-guide-actions"},qp={class:"principals-client-secret-wrapper"},Hp=["disabled","onClick"],Yp={class:"external-client-field"},Gp=["innerHTML"],Wp={class:"external-client-field"},Zp=["innerHTML"],Xp=["disabled","onClick"],Jp={key:1,class:"principals-create-guide","data-testid":"principals-create-guide"},Qp={class:"principals-create-guide-actions"};function eh(e,n,o,r,a,i){const d=t.resolveComponent("KExternalLink"),s=t.resolveComponent("KeyIcon"),u=t.resolveComponent("KRadio"),f=t.resolveComponent("WorldIcon"),p=t.resolveComponent("KSkeleton"),m=t.resolveComponent("AddIcon"),g=t.resolveComponent("KButton"),k=t.resolveComponent("BookIcon"),w=t.resolveComponent("KSelect"),C=t.resolveComponent("KInput"),O=t.resolveComponent("SecretInput"),N=t.resolveComponent("CloseIcon"),U=t.resolveComponent("PrincipalLookupSettings"),B=t.resolveComponent("VueFormGenerator"),T=t.resolveComponent("KPrompt");return t.openBlock(),t.createElementBlock("div",Pp,[n[28]||(n[28]=t.createElementVNode("div",{class:"principals-header"}," Who should manage authentication and credentials? ",-1)),t.createElementVNode("div",vp,[n[13]||(n[13]=t.createTextVNode(" Use External auth server to continue using your existing OAuth provider and authentication workflows. Use Kong Identity to adopt a newer principal-based model that centralizes and simplifies identity and authentication management. ",-1)),t.createVNode(d,{href:"https://developer.konghq.com/plugins/openid-connect/"},{default:t.withCtx(()=>[...n[12]||(n[12]=[t.createTextVNode(" Learn more. ",-1)])]),_:1})]),t.createElementVNode("div",xp,[t.createVNode(u,{modelValue:a.selectedMode,"onUpdate:modelValue":n[0]||(n[0]=b=>a.selectedMode=b),card:"","card-orientation":"horizontal","data-testid":"oidc-auth-mode-kong-identity","selected-value":a.MODE_KONG_IDENTITY,onChange:i.handleModeChange},{default:t.withCtx(()=>[t.createElementVNode("div",Kp,[t.createVNode(s,{size:`var(--kui-icon-size-40, ${a.KUI_ICON_SIZE_40})`},null,8,["size"]),n[14]||(n[14]=t.createElementVNode("div",{class:"auth-mode-card-label"}," Kong Identity ",-1)),n[15]||(n[15]=t.createElementVNode("div",{class:"auth-mode-card-description"}," Use Kong Identity to authenticate OpenID Connect tokens. If all data plane nodes are running version 3.15 or later, you can also map requests to Kong Identity principals for advanced policies and integrations. ",-1))])]),_:1},8,["modelValue","selected-value","onChange"]),t.createVNode(u,{modelValue:a.selectedMode,"onUpdate:modelValue":n[1]||(n[1]=b=>a.selectedMode=b),card:"","card-orientation":"horizontal","data-testid":"oidc-auth-mode-external","selected-value":a.MODE_EXTERNAL,onChange:i.handleModeChange},{default:t.withCtx(()=>[t.createElementVNode("div",jp,[t.createVNode(f,{size:`var(--kui-icon-size-40, ${a.KUI_ICON_SIZE_40})`},null,8,["size"]),n[16]||(n[16]=t.createElementVNode("div",{class:"auth-mode-card-label"}," External auth server ",-1)),n[17]||(n[17]=t.createElementVNode("div",{class:"auth-mode-card-description"}," Connect to your existing identity provider to manage authentication outside of Kong. ",-1))])]),_:1},8,["modelValue","selected-value","onChange"])]),i.principalsSkeletonVisible&&a.selectedMode===a.MODE_KONG_IDENTITY?(t.openBlock(),t.createBlock(p,{key:0,class:"principals-create-guide-skeleton","data-testid":"principals-create-guide-loading"})):i.principalsGuideVisible&&a.selectedMode===a.MODE_KONG_IDENTITY?(t.openBlock(),t.createElementBlock("div",zp,[n[20]||(n[20]=t.createElementVNode("div",{class:"principals-create-guide-title"}," Add principals ",-1)),n[21]||(n[21]=t.createElementVNode("div",{class:"principals-create-guide-description"}," Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products. ",-1)),t.createElementVNode("div",$p,[t.createVNode(g,{appearance:"primary","data-testid":"principals-create-principal",onClick:n[2]||(n[2]=b=>a.leavePromptType="principal")},{default:t.withCtx(()=>[t.createVNode(m,{decorative:""}),n[18]||(n[18]=t.createTextVNode(" Create principal ",-1))]),_:1}),t.createVNode(g,{appearance:"secondary","data-testid":"principals-learn-more",onClick:n[3]||(n[3]=b=>e.$emit("click:learn-more","kong-identity"))},{default:t.withCtx(()=>[t.createVNode(k,{decorative:""}),n[19]||(n[19]=t.createTextVNode(" Learn more ",-1))]),_:1})])])):t.createCommentVNode("",!0),a.selectedMode===a.MODE_KONG_IDENTITY?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[i.hasAuthServersAccess?(t.openBlock(),t.createBlock(w,{key:0,class:"principals-directory-select","data-testid":"principals-directory-select","enable-filtering":"",items:i.kongIdentityServerItems,label:"Authorization Server","label-attributes":{info:"The Kong Identity auth server that will act as the OpenID Connect provider for this plugin.",tooltipAttributes:{maxWidth:"300"}},loading:a.kongIdentityServersLoading,"model-value":a.selectedServer?.id,placeholder:"Select an Authorization Server",required:"","onUpdate:modelValue":i.handleServerChange},t.createSlots({_:2},[i.canCreateAuthServer?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("div",{class:"create-action","data-testid":"create-auth-server-action",onClick:n[4]||(n[4]=t.withModifiers(b=>a.leavePromptType="authServer",["stop"]))},[t.createVNode(m,{size:`var(--kui-icon-size-20, ${a.KUI_ICON_SIZE_20})`},null,8,["size"]),n[22]||(n[22]=t.createElementVNode("div",{class:"create-action-content"},[t.createElementVNode("span",null,"Create authorization server"),t.createElementVNode("div",{class:"create-action-hint"}," You'll need to return here after creating an authorization server. Your progress won't be saved. ")],-1))])]),key:"0"}:void 0]),1032,["items","loading","model-value","onUpdate:modelValue"])):(t.openBlock(),t.createBlock(C,{key:1,"data-testid":"kong-identity-issuer-input",help:"You don't have access to browse authorization servers. Enter the issuer URL of your Kong Identity authorization server directly.",label:"Authorization Server","label-attributes":{info:"The Kong Identity auth server that will act as the OpenID Connect provider for this plugin.",tooltipAttributes:{maxWidth:"300"}},"model-value":o.formModel["config-issuer"],placeholder:"e.g., https://your-auth-server.identity.konghq.com",required:"","onUpdate:modelValue":n[5]||(n[5]=b=>i.updateField("config-issuer",b))},null,8,["model-value"])),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.clientIdArray,(b,h)=>(t.openBlock(),t.createElementBlock("div",{key:h,class:t.normalizeClass(["client-row",{"client-row-with-label":h===0}])},[i.hasAuthServersAccess?(t.openBlock(),t.createBlock(w,{key:1,class:"principals-client-select","data-testid":"principals-client-select",disabled:!a.selectedServer,"enable-filtering":"",items:i.getClientItemsForRow(h),label:h===0?"Client":void 0,loading:a.clientsLoading,"model-value":b,placeholder:"Select a client","onUpdate:modelValue":A=>i.handleClientChange(h,A)},t.createSlots({_:2},[i.canCreateAuthServerClient?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("div",{class:"create-action","data-testid":"create-client-action",onClick:n[6]||(n[6]=t.withModifiers(A=>a.leavePromptType="client",["stop"]))},[t.createVNode(m,{size:`var(--kui-icon-size-20, ${a.KUI_ICON_SIZE_20})`},null,8,["size"]),n[23]||(n[23]=t.createElementVNode("div",{class:"create-action-content"},[t.createElementVNode("span",null,"Create client"),t.createElementVNode("div",{class:"create-action-hint"}," You'll need to return here after creating a client. Your progress won't be saved. ")],-1))])]),key:"0"}:void 0]),1032,["disabled","items","label","loading","model-value","onUpdate:modelValue"])):(t.openBlock(),t.createBlock(C,{key:0,class:"principals-client-select","data-testid":"principals-client-id-input",label:h===0?"Client":void 0,"model-value":b,placeholder:"e.g., kong-gateway-client","onUpdate:modelValue":A=>i.handleClientChange(h,A)},null,8,["label","model-value","onUpdate:modelValue"])),t.createElementVNode("div",qp,[t.createVNode(O,{class:"principals-client-secret","data-testid":"principals-client-secret",disabled:i.hasAuthServersAccess&&!a.selectedServer,label:h===0?"Client secret":void 0,"model-value":i.clientSecretArray[h],placeholder:"e.g., your-client-secret","onUpdate:modelValue":A=>i.handleClientSecretChange(h,A)},null,8,["disabled","label","model-value","onUpdate:modelValue"]),i.autofillSlot?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{key:0,schema:{model:"config-client_secret",referenceable:!0},update:A=>i.handleClientSecretChange(h,A),value:i.clientSecretArray[h]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("button",{"aria-label":"Remove client",class:"remove-client-btn","data-testid":"remove-client-action",disabled:i.isRemoveClientDisabled,type:"button",onClick:A=>i.removeClientRow(h)},[t.createVNode(N,{size:`var(--kui-icon-size-30, ${a.KUI_ICON_SIZE_30})`},null,8,["size"])],8,Hp)],2))),128)),t.createElementVNode("div",{class:t.normalizeClass(["add-client-inline",{"add-client-inline-disabled":i.hasAuthServersAccess&&!a.selectedServer}]),"data-testid":"add-client-action",onClick:n[7]||(n[7]=b=>i.hasAuthServersAccess&&!a.selectedServer?null:i.addClientRow())}," + Add client ",2),t.createVNode(U,{"data-plane-incompatible":i.hasIncompatibleDataPlane,"form-model":o.formModel,"is-editing":o.isEditing,"on-enabled-change":i.handleUsePrincipalLookupChange,"on-model-updated":o.onModelUpdated,"show-enable-toggle":""},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"advanced-fields",{},void 0,!0)]),_:3},8,["data-plane-incompatible","form-model","is-editing","on-enabled-change","on-model-updated"])],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.clientIdArray,(b,h)=>(t.openBlock(),t.createElementBlock("div",{key:h,class:t.normalizeClass(["client-row",{"client-row-with-label":h===0}])},[t.createElementVNode("div",Yp,[t.createVNode(C,{class:"external-client-input","data-testid":"external-client-id",label:h===0?"Client id":void 0,"label-attributes":{info:o.formOptions?.helpAsHtml?void 0:i.externalClientIdField?.help,tooltipAttributes:{maxWidth:"300"}},"model-value":i.clientIdArray[h],placeholder:"e.g., kong-gateway-client","onUpdate:modelValue":A=>i.handleClientChange(h,A)},t.createSlots({_:2},[o.formOptions?.helpAsHtml&&i.externalClientIdField?.help?{name:"label-tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:i.sanitize(i.externalClientIdField.help)},null,8,Gp)]),key:"0"}:void 0]),1032,["label","label-attributes","model-value","onUpdate:modelValue"]),i.autofillSlot?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{key:0,schema:{model:"config-client_id",referenceable:!0},update:A=>i.handleClientChange(h,A),value:i.clientIdArray[h]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("div",Wp,[t.createVNode(O,{class:"external-client-input","data-testid":"external-client-secret",label:h===0?"Client secret":void 0,"label-attributes":{info:o.formOptions?.helpAsHtml?void 0:i.externalClientSecretField?.help,tooltipAttributes:{maxWidth:"300"}},"model-value":i.clientSecretArray[h],placeholder:"e.g., your-client-secret","onUpdate:modelValue":A=>i.handleClientSecretChange(h,A)},t.createSlots({_:2},[o.formOptions?.helpAsHtml&&i.externalClientSecretField?.help?{name:"label-tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:i.sanitize(i.externalClientSecretField.help)},null,8,Zp)]),key:"0"}:void 0]),1032,["label","label-attributes","model-value","onUpdate:modelValue"]),i.autofillSlot?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.autofillSlot),{key:0,schema:{model:"config-client_secret",referenceable:!0},update:A=>i.handleClientSecretChange(h,A),value:i.clientSecretArray[h]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("button",{"aria-label":"Remove client",class:"remove-client-btn","data-testid":"remove-external-client-action",disabled:i.clientIdArray.length<=1,type:"button",onClick:A=>i.removeClientRow(h)},[t.createVNode(N,{size:`var(--kui-icon-size-30, ${a.KUI_ICON_SIZE_30})`},null,8,["size"])],8,Xp)],2))),128)),t.createElementVNode("div",{class:"add-client-inline","data-testid":"add-external-client-action",onClick:n[8]||(n[8]=b=>i.addClientRow())}," + Add client "),t.createVNode(B,{model:o.formModel,options:o.formOptions,schema:i.issuerFieldsSchema,onModelUpdated:o.onModelUpdated},null,8,["model","options","schema","onModelUpdated"]),t.createVNode(U,{"data-plane-incompatible":i.hasIncompatibleDataPlane,"form-model":o.formModel,"is-editing":o.isEditing,"on-enabled-change":i.handleUsePrincipalLookupChange,"on-model-updated":o.onModelUpdated,"show-enable-toggle":""},{banner:t.withCtx(()=>[i.isKonnect&&i.formsConfig?.principalsCreationGuideVisible===void 0?(t.openBlock(),t.createBlock(p,{key:0,class:"principals-create-guide-skeleton","data-testid":"principals-create-guide-loading"})):i.isKonnect&&i.formsConfig?.principalsCreationGuideVisible?(t.openBlock(),t.createElementBlock("div",Jp,[n[26]||(n[26]=t.createElementVNode("div",{class:"principals-create-guide-title"}," Add principals ",-1)),n[27]||(n[27]=t.createElementVNode("div",{class:"principals-create-guide-description"}," Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products. Requires data plane nodes to be running version 3.15 or later. ",-1)),t.createElementVNode("div",Qp,[t.createVNode(g,{appearance:"primary","data-testid":"principals-create-principal",onClick:n[9]||(n[9]=b=>a.leavePromptType="principal")},{default:t.withCtx(()=>[t.createVNode(m,{decorative:""}),n[24]||(n[24]=t.createTextVNode(" Create principal ",-1))]),_:1}),t.createVNode(g,{appearance:"secondary","data-testid":"principals-learn-more",onClick:n[10]||(n[10]=b=>e.$emit("click:learn-more","kong-identity"))},{default:t.withCtx(()=>[t.createVNode(k,{decorative:""}),n[25]||(n[25]=t.createTextVNode(" Learn more ",-1))]),_:1})])])):t.createCommentVNode("",!0)]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"advanced-fields",{},void 0,!0)]),_:3},8,["data-plane-incompatible","form-model","is-editing","on-enabled-change","on-model-updated"])],64)),t.createVNode(T,{"action-button-text":"Leave page",message:"Your unsaved changes will be lost if you continue.",title:"Leave this page?",visible:!!a.leavePromptType,onCancel:n[11]||(n[11]=b=>a.leavePromptType=null),onProceed:i.handleLeaveConfirmed},null,8,["visible","onProceed"])])}const th=x(Lp,[["render",eh],["__scopeId","data-v-7d8659bd"]]),nh={name:"OIDCAuthMethods",props:{authMethodItems:{type:Array,default:()=>[]},selectedAuthMethods:{type:Array,default:()=>[]},sessionManagement:{type:Boolean,default:!1},principalsMode:{type:String,default:null}},emits:["select","session-change"]},oh={class:"oidc-auth-methods"},ih={class:"session-management-section"},ah={class:"session-radio-group"};function rh(e,n,o,r,a,i){const d=t.resolveComponent("KLabel"),s=t.resolveComponent("KMultiselect"),u=t.resolveComponent("KRadio");return t.openBlock(),t.createElementBlock("div",oh,[t.createVNode(d,null,{default:t.withCtx(()=>[...n[3]||(n[3]=[t.createTextVNode("Authentication methods",-1)])]),_:1}),(t.openBlock(),t.createBlock(s,{key:o.principalsMode,class:"auth-methods-multiselect","data-testid":"auth-methods-multiselect",items:o.authMethodItems,"model-value":o.selectedAuthMethods,placeholder:"Select authentication methods","onUpdate:modelValue":n[0]||(n[0]=f=>e.$emit("select",f))},null,8,["items","model-value"])),n[5]||(n[5]=t.createElementVNode("p",{class:"auth-methods-hint"}," Configure which OAuth and OpenID Connect features are supported. ",-1)),t.createElementVNode("div",ih,[t.createVNode(d,null,{default:t.withCtx(()=>[...n[4]||(n[4]=[t.createTextVNode("Session management",-1)])]),_:1}),t.createElementVNode("div",ah,[t.createVNode(u,{"data-testid":"session-radio-use",description:"Issue a session cookie after successful authentication. Subsequent requests use the session instead of re-authenticating with the identity provider.",label:"Use sessions","model-value":o.sessionManagement,"selected-value":!0,onChange:n[1]||(n[1]=f=>e.$emit("session-change",!0))},null,8,["model-value"]),t.createVNode(u,{"data-testid":"session-radio-no-use",description:"Authenticate each request using the configured authentication flow.",label:"Do not use sessions","model-value":o.sessionManagement,"selected-value":!1,onChange:n[2]||(n[2]=f=>e.$emit("session-change",!1))},null,8,["model-value"])])])])}const lh=x(nh,[["render",rh],["__scopeId","data-v-8c1cdc7c"]]),zt={openIdConnectDocs:"https://developer.konghq.com/plugins/openid-connect/",openIdConnectJWKDocs:"https://developer.konghq.com/plugins/openid-connect/reference/#schema--config-client-jwk",openIdConnectClusterNodesDocs:"https://developer.konghq.com/plugins/openid-connect/reference/#schema--config-redis-cluster-nodes",openIdConfigurationDocs:"https://developer.konghq.com/plugins/openid-connect/reference/",openIdAuthorizationDocs:"https://developer.konghq.com/plugins/openid-connect/#authorization"},Oa=new Set(["config-client_id","config-client_secret","config-issuer"]),Ba=new Set(["config-principals-enabled","config-principals-directory","config-principals-principal_by","config-principals-principal_claim","config-principals-match_consumer","config-principals-match_consumer_groups","config-principals-error_on_miss"]),Fa=new Set(["config-scopes_claim","config-scopes_required","config-audience_claim","config-audience_required","config-roles_claim","config-roles_required","config-groups_claim","config-groups_required","config-authenticated_groups_claim"]),Zn=["bearer","client_credentials","introspection","userinfo"],sh="identity.konghq",dh=e=>typeof e=="string"&&e.includes(sh),ch={name:"OIDCForm",components:{VueFormGenerator:Q,OIDCPrincipals:th,OIDCAuthMethods:lh},provide(){return{[he]:this.$slots?.[at]}},inject:{formsConfig:{from:tn,default:()=>({})}},props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>{}},onModelUpdated:{type:Function,required:!0},onPartialToggled:{type:Function,required:!0},isEditing:{type:Boolean,required:!0},enableRedisPartial:{type:Boolean,required:!1},isKonnectManagedRedisEnabled:{type:Boolean,default:!1},identityPrincipalsUiEnabled:{type:Boolean,default:!1},showNewPartialModal:{type:Function,default:()=>{}}},emits:["click:create-entity","click:learn-more"],data(){return{init:!1,authMethods:[],sessionManagement:!1,principalsMode:null,globalFields:null,commonFieldsSchema:null,authFieldsSchema:null,openIdConnectLink:zt.openIdConnectDocs,openIdConnectJWKLink:zt.openIdConnectJWKDocs,openIdConnectClusterNodesLink:zt.openIdConnectClusterNodesDocs,openIdConfigurationDocs:zt.openIdConfigurationDocs,openIdAuthorizationDocs:zt.openIdAuthorizationDocs,advancedFieldsSchema:{fields:[]},advancedFields:null,tabs:[{hash:"#common",title:"Common"},{hash:"#authorization",title:"Authorization"},{hash:"#advanced",title:"Advanced"}]}},computed:{displayForm(){return this.formModel.id&&this.isEditing||!this.isEditing},hasPrincipalsFields(){return this.identityPrincipalsUiEnabled&&this.formSchema.fields?.some(e=>Ba.has(e.model))},isKonnect(){return this.formsConfig?.app==="konnect"},useNewAuthMethodsField(){return this.isKonnect},authMethodItems(){return((this.principalsMode!==null?this.principalsMode==="kong-identity":dh(this.formModel["config-issuer"]))?this.authMethods.filter(o=>Zn.includes(o.value)):this.authMethods).map(o=>({label:o.label,value:o.value}))},selectedAuthMethods(){return this.authMethods.filter(e=>e.prop).map(e=>e.value)}},watch:{formModel:{handler:function(){this.oidcSetup()}}},mounted(){this.oidcSetup()},methods:{oidcSetup(){if(!this.init){this.init=!0,this.globalFields={fields:this.formSchema.fields.filter(a=>!a.model.startsWith("config")&&a.model!=="tags")};const e=this.formSchema.fields.reduce((a,i)=>(a[i.model]=i,a),{});this.commonFieldsSchema={fields:Array.from(Oa).reduce((a,i)=>(e[i]&&a.push(e[i]),a),[])},this.authFieldsSchema={fields:Array.from(Fa).reduce((a,i)=>(e[i]&&a.push(e[i]),a),[])};const{redis:n,redisModels:o}=Ne.useRedisPartial(this.formSchema);this.advancedFieldsSchema={fields:this.formSchema.fields.filter(a=>a.model.startsWith("config")&&a.model!=="config-auth_methods"&&!Oa.has(a.model)&&!Fa.has(a.model)&&!Ba.has(a.model)&&(!this.enableRedisPartial||!o.includes(a.model))||a.model==="tags").reduce((a,i)=>{switch(i.model){case"config-client_jwk":{if(Array.isArray(i.items?.schema?.fields))for(const d of i.items.schema.fields)d.label=d.model;a.push({...i,link:this.openIdConnectJWKLink,newElementButtonLabel:"+ Add Client JWK",...Array.isArray(i.items?.schema?.fields)&&i.items.schema.fields.map(d=>({...d,label:d.model}))});break}case"config-token_exchange-subject_token_issuers":{if(Array.isArray(i.items?.schema?.fields)){const d=i.items.schema.fields,s=d.find(f=>f.model==="verify_signature"),u=d.find(f=>f.model==="jwks_uri");if(s&&(s.checkboxLabel=s.label,s.label=void 0,s.checkboxDescription=f=>f.verify_signature===!0?"JSON Web Keys are automatically fetched from the issuer's well-known endpoint. Enter a JWKS URI below to override this.":void 0),u&&(u.visible=f=>f.verify_signature===!0),s&&u){const f=d.indexOf(s),p=d.indexOf(u);p!==f+1&&(d.splice(p,1),d.splice(f+1,0,u))}}a.push(i);break}case"config-session_redis_cluster_nodes":{a.push({...i,link:this.openIdConnectClusterNodesLink,newElementButtonLabel:"+ Add Cluster Node"});break}default:a.push(i)}return a},[])},this.enableRedisPartial&&this.advancedFieldsSchema.fields.unshift(n),this.sessionManagement=this.formModel["config-auth_methods"].includes("session"),this.authMethods=[{label:"Authorization code flow",value:"authorization_code",hint:"authorization code flow",prop:this.formModel["config-auth_methods"].includes("authorization_code")},{label:"Bearer access token",value:"bearer",hint:"JWT access token verification",prop:this.formModel["config-auth_methods"].includes("bearer")},{label:"Client credentials grant",value:"client_credentials",hint:"OAuth client credentials grant",prop:this.formModel["config-auth_methods"].includes("client_credentials")},{label:"Passwords grant",value:"password",hint:"OAuth legacy password grant",prop:this.formModel["config-auth_methods"].includes("password")},{label:"Introspection",value:"introspection",hint:"OAuth introspection",prop:this.formModel["config-auth_methods"].includes("introspection")},{label:"UserInfo",value:"userinfo",hint:"OpenID Connect user info endpoint authentication",prop:this.formModel["config-auth_methods"].includes("userinfo")},{label:"Kong OAuth",value:"kong_oauth2",hint:"Kong OAuth plugin issued tokens verification",prop:this.formModel["config-auth_methods"].includes("kong_oauth2")},{label:"Refresh token",value:"refresh_token",hint:"OAuth refresh token grant",prop:this.formModel["config-auth_methods"].includes("refresh_token")}];for(const a of[this.commonFieldsSchema,this.authFieldsSchema,this.advancedFieldsSchema])for(const i of a.fields){const d=e[i.model]?.help;i.help===void 0&&typeof d=="string"&&(i.help=d)}const r=this.formModel["config-consumer_claim"];if(r!=null&&r!==""&&(!this.formModel["config-consumer_claims"]||this.formModel["config-consumer_claims"].length===0)){const a=Array.isArray(r)?r:[r];this.formModel["config-consumer_claims"]=[a],this.onModelUpdated()}}},getAuthMethodsValue(e,n){const o=[];for(let r=0;r<this.authMethods.length;r++)this.authMethods[r].prop&&this.authMethods[r].value!==e&&o.push(this.authMethods[r].value);return this.sessionManagement&&e&&o.push("session"),n&&(e?o.push(e):o.push("session")),o},handleUpdate(e,n){this.formModel["config-auth_methods"]=this.getAuthMethodsValue(n,e),this.onModelUpdated()},handleAuthMethodsSelect(e){for(const o of this.authMethods)o.prop=e.includes(o.value);const n=[...e];this.sessionManagement&&n.push("session"),this.formModel["config-auth_methods"]=n,this.onModelUpdated()},handleSessionChange(e){this.sessionManagement=e;const n=this.authMethods.filter(o=>o.prop).map(o=>o.value);e&&n.push("session"),this.formModel["config-auth_methods"]=n,this.onModelUpdated()},handlePrincipalsModeChange(e){if(this.principalsMode=e,e==="kong-identity"){this.isEditing||(this.sessionManagement=!0);for(const o of this.authMethods)o.prop=Zn.includes(o.value);const n=[...Zn];this.sessionManagement&&n.push("session"),this.formModel["config-auth_methods"]=n,this.onModelUpdated()}else{this.sessionManagement=!0;for(const o of this.authMethods)o.prop=!0;const n=this.authMethods.map(o=>o.value);n.push("session"),this.formModel["config-auth_methods"]=n,this.onModelUpdated()}}}},mh={class:"general-settings"},uh={class:"link-wrapper"},fh={class:"auth-method-container"},ph={class:"general-settings"},hh={class:"link-wrapper"},gh={class:"general-settings"},yh={class:"link-wrapper"};function bh(e,n,o,r,a,i){const d=t.resolveComponent("VueFormGenerator"),s=t.resolveComponent("KExternalLink"),u=t.resolveComponent("OIDCAuthMethods"),f=t.resolveComponent("OIDCPrincipals"),p=t.resolveComponent("KLabel"),m=t.resolveComponent("KCheckbox"),g=t.resolveComponent("KInputSwitch"),k=t.resolveComponent("KTabs");return t.openBlock(),t.createElementBlock("div",null,[o.formModel.id&&o.isEditing||!o.isEditing?(t.openBlock(),t.createBlock(d,{key:0,class:"global-fields",model:o.formModel,options:o.formOptions,schema:a.globalFields,onModelUpdated:o.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),t.createVNode(k,{tabs:a.tabs},{common:t.withCtx(()=>[t.createElementVNode("div",mh,[t.createElementVNode("div",uh,[t.createVNode(s,{href:a.openIdConfigurationDocs},{default:t.withCtx(()=>[...n[4]||(n[4]=[t.createElementVNode("span",{class:"section-header"},"Common Configuration Settings",-1)])]),_:1},8,["href"])]),n[6]||(n[6]=t.createElementVNode("div",{class:"description"}," Parameters for enabling the OpenID Connect plugin. Set these parameters before adding authorization, authentication, or other advanced configuration details. ",-1)),i.isKonnect&&i.hasPrincipalsFields?(t.openBlock(),t.createBlock(f,{key:0,"common-fields-schema":a.commonFieldsSchema,"form-model":o.formModel,"form-options":o.formOptions,"form-schema":o.formSchema,"is-editing":o.isEditing,"on-model-updated":o.onModelUpdated,"onClick:createEntity":n[0]||(n[0]=w=>e.$emit("click:create-entity",w)),"onClick:learnMore":n[1]||(n[1]=w=>e.$emit("click:learn-more",w)),onModeChange:i.handlePrincipalsModeChange},{"advanced-fields":t.withCtx(()=>[t.createVNode(u,{"auth-method-items":i.authMethodItems,"principals-mode":a.principalsMode,"selected-auth-methods":i.selectedAuthMethods,"session-management":a.sessionManagement,onSelect:i.handleAuthMethodsSelect,onSessionChange:i.handleSessionChange},null,8,["auth-method-items","principals-mode","selected-auth-methods","session-management","onSelect","onSessionChange"])]),_:1},8,["common-fields-schema","form-model","form-options","form-schema","is-editing","on-model-updated","onModeChange"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[i.displayForm?(t.openBlock(),t.createBlock(d,{key:0,model:o.formModel,options:o.formOptions,schema:a.commonFieldsSchema,onModelUpdated:o.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),i.useNewAuthMethodsField?(t.openBlock(),t.createBlock(u,{key:1,"auth-method-items":i.authMethodItems,"principals-mode":a.principalsMode,"selected-auth-methods":i.selectedAuthMethods,"session-management":a.sessionManagement,onSelect:i.handleAuthMethodsSelect,onSessionChange:i.handleSessionChange},null,8,["auth-method-items","principals-mode","selected-auth-methods","session-management","onSelect","onSessionChange"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createVNode(p,null,{default:t.withCtx(()=>[...n[5]||(n[5]=[t.createTextVNode("Auth methods",-1)])]),_:1}),t.createElementVNode("div",fh,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.authMethods,w=>(t.openBlock(),t.createElementBlock("div",{key:w.value,class:"auth-method"},[t.createVNode(m,{modelValue:w.prop,"onUpdate:modelValue":C=>w.prop=C,"data-testid":`auth-method-checkbox-${w.value}`,onChange:C=>i.handleUpdate(C,w.value)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(w.label),1)]),_:2},1032,["modelValue","onUpdate:modelValue","data-testid","onChange"])]))),128))]),t.createVNode(g,{modelValue:a.sessionManagement,"onUpdate:modelValue":n[2]||(n[2]=w=>a.sessionManagement=w),"data-testid":"session-management-switch",label:"Enable Session Management",onChange:i.handleUpdate},null,8,["modelValue","onChange"])],64))],64))])]),authorization:t.withCtx(()=>[t.createElementVNode("div",ph,[t.createElementVNode("div",hh,[t.createVNode(s,{href:a.openIdAuthorizationDocs},{default:t.withCtx(()=>[...n[7]||(n[7]=[t.createElementVNode("span",{class:"section-header"},"Authorization Configuration Settings",-1)])]),_:1},8,["href"])]),n[8]||(n[8]=t.createElementVNode("div",{class:"description"}," Parameters for setting up claims-based authorization. ",-1)),i.displayForm?(t.openBlock(),t.createBlock(d,{key:0,model:o.formModel,options:o.formOptions,schema:a.authFieldsSchema,onModelUpdated:o.onModelUpdated},{"autofill-provider":t.withCtx(w=>[t.renderSlot(e.$slots,"autofill-provider",t.normalizeProps(t.guardReactiveProps(w)),void 0,!0)]),_:3},8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)])]),advanced:t.withCtx(()=>[t.createElementVNode("div",gh,[t.createElementVNode("div",yh,[t.createVNode(s,{href:a.openIdConnectLink},{default:t.withCtx(()=>[...n[9]||(n[9]=[t.createElementVNode("span",{class:"section-header"},"Advanced Configuration Settings",-1)])]),_:1},8,["href"])]),n[10]||(n[10]=t.createElementVNode("div",{class:"description"}," Advanced parameters for manually configuring the OpenID Connect plugin. ",-1)),i.displayForm?(t.openBlock(),t.createBlock(d,{key:0,"enable-redis-partial":o.enableRedisPartial,"is-editing":o.isEditing,"is-konnect-managed-redis-enabled":o.isKonnectManagedRedisEnabled,model:o.formModel,options:o.formOptions,schema:a.advancedFieldsSchema,onModelUpdated:o.onModelUpdated,onPartialToggled:o.onPartialToggled,onShowNewPartialModal:n[3]||(n[3]=()=>o.showNewPartialModal(o.formSchema._supported_redis_partial_type))},null,8,["enable-redis-partial","is-editing","is-konnect-managed-redis-enabled","model","options","schema","onModelUpdated","onPartialToggled"])):t.createCommentVNode("",!0)])]),_:3},8,["tabs"])])}const _h=x(ch,[["render",bh],["__scopeId","data-v-2f7bae64"]]),Eh=x(t.defineComponent({__name:"PostFunction",props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>{}},onModelUpdated:{type:Function,required:!0},isEditing:{type:Boolean,required:!0}},setup(e){t.provide(he,t.useSlots()?.[at]);const{t:n,te:o}=Ee.createI18n("en-us",we),r=e,a=t.computed(()=>r.formModel.id&&r.isEditing||!r.isEditing),i=t.computed(()=>{const d=r.formSchema;return d.fields.map(s=>{const u=`post-function.${s.model}`;return s.hint=o(`${u}.hint`)&&n(`${u}.hint`)||s.hint,s.help=o(`${u}.help`)&&n(`${u}.help`)||s.help,s.newElementButtonLabel=o(`${u}.newElementButtonLabel`)&&n(`${u}.newElementButtonLabel`)||s.newElementButtonLabel,s.model!=="tags"&&(s.valueType==="array"||s.type==="array")&&(s.type="array",s.valueArrayType="array",s.itemContainerComponent="FieldArrayItem",s.fieldClasses="post-function-array-item-container",s.fieldItemsClasses="post-function-array-item",s.inputAttributes={...s.inputAttributes,type:"textarea"}),s}),d});return(d,s)=>a.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:i.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-f54f37ae"]]),Ch=x(t.defineComponent({__name:"ExitTransformer",props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>{}},onModelUpdated:{type:Function,required:!0},isEditing:{type:Boolean,required:!0}},setup(e){t.provide(he,t.useSlots()?.[at]);const{t:n,te:o}=Ee.createI18n("en-us",we),r=e,a=t.computed(()=>r.formModel.id&&r.isEditing||!r.isEditing),i=t.computed(()=>{const d=r.formSchema;return d.fields.map(s=>{const u=`exit-transformer.${s.model}`;return s.hint=o(`${u}.hint`)&&n(`${u}.hint`)||s.hint,s.help=o(`${u}.help`)&&n(`${u}.help`)||s.help,s.newElementButtonLabel=o(`${u}.newElementButtonLabel`)&&n(`${u}.newElementButtonLabel`)||s.newElementButtonLabel,s.model!=="tags"&&(s.valueType==="array"||s.type==="array")&&(s.type="array",s.valueArrayType="array",s.itemContainerComponent="FieldArrayItem",s.fieldClasses="exit-transformer-array-item-container",s.fieldItemsClasses="exit-transformer-array-item",s.inputAttributes={...s.inputAttributes,type:"textarea"}),s}),d});return(d,s)=>a.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:i.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-0d5c541f"]]),Sh={fields:[{inputType:"text",label:"Config.Account Email",model:"config-account_email",required:!0,type:"input"},{inputType:"text",label:"Config.Account Key.Key Id",model:"config-account_key-key_id",required:!0,type:"input"},{type:"input",inputType:"text",valueType:"string",label:"Config.Account Key.Key Set",model:"config-account_key-key_set",order:0,disabled:!1},{type:"checkbox",default:!1,valueType:"boolean",label:"Config.Allow Any Domain",model:"config-allow_any_domain",order:0,disabled:!1}]},kh={fields:[{type:"input",default:"",inputType:"text",valueType:"string",model:"config-api_uri",label:"Config.Api Uri",order:0,disabled:!1},{type:"checkbox",default:!1,valueType:"boolean",model:"config-tos_accepted",label:"Config.Tos Accepted",order:0,disabled:!1}]},wh={fields:[{type:"input",default:"",inputType:"text",valueType:"string",model:"config-api_uri",label:"Config.Api Uri",order:0,disabled:!1},{type:"input",inputType:"text",valueType:"string",model:"config-eab_hmac_key",label:"Config.Eab Hmac Key",order:0,disabled:!1},{type:"input",inputType:"text",valueType:"string",model:"config-eab_kid",label:"Config.Eab Kid",order:0,disabled:!1}]},Th={class:"general-settings"},Mh={class:"sub-form"},Ah={class:"general-settings"},Nh={class:"sub-form"},Ih={class:"general-settings"},Vh=x(t.defineComponent({__name:"ACMEForm",props:{formModel:{type:Object,required:!0},formSchema:{type:Object,required:!0},formOptions:{type:Object,default:()=>{}},onModelUpdated:{type:Function,required:!0},isEditing:{type:Boolean,required:!0}},setup(e){t.provide(he,t.useSlots()?.[at]);const n=e,o=t.ref("zeroSsl"),r=t.ref("shm"),a=t.computed(()=>{const b={};if(n.formSchema?.fields)for(const h of n.formSchema.fields)b[h.model]=h;return b}),i=t.computed(()=>{const b=ze(Sh);for(const h of b.fields){const A=a.value[h.model]?.help;h.help===void 0&&typeof A=="string"&&(h.help=A)}return b}),d=t.computed(()=>{const b=ze(kh);for(const h of b.fields){const A=a.value[h.model]?.help;h.help===void 0&&typeof A=="string"&&(h.help=A)}return b}),s=t.computed(()=>{const b=ze(wh);for(const h of b.fields){const A=a.value[h.model]?.help;h.help===void 0&&typeof A=="string"&&(h.help=A)}return b}),u=t.computed(()=>({fields:n.formSchema.fields.filter(b=>!b.model.startsWith("config")&&b.model!=="tags")})),f=t.computed(()=>({fields:i.value.fields.filter(h=>!d.value.fields.some(A=>A.model===h.model)&&!s.value.fields.some(A=>A.model===h.model))})),p=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage")&&!h.model.startsWith("config-storage_config-consul")&&!h.model.startsWith("config-storage_config-redis")&&!h.model.startsWith("config-storage_config-shm")&&!h.model.startsWith("config-storage_config-vault"))})),m=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage_config-consul"))})),g=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage_config-redis"))})),k=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage_config-shm"))})),w=t.computed(()=>({fields:n.formSchema.fields.filter(h=>h.model.startsWith("config-storage_config-vault"))})),C=t.computed(()=>({fields:n.formSchema.fields.filter(b=>b.model.startsWith("config")&&!f.value.fields.filter(h=>h.model===b.model).length&&!p.value.fields.filter(h=>h.model===b.model).length||b.model==="tags")})),O=t.computed(()=>n.formModel.id&&n.isEditing||!n.isEditing),N=[{hash:"#general",title:"General"},{hash:"#storage",title:"Storage"},{hash:"#advanced",title:"Advanced"}],U=[{label:"Lets Encrypt",value:"letsEncrypt"},{label:"Zero SSL",value:"zeroSsl",selected:!0},{label:"Other",value:"other"}];t.onMounted(()=>{o.value==="zeroSsl"&&(n.formModel["config-api_uri"]="https://acme.zerossl.com/v2/DV90")});const B=b=>{o.value=b.value,(b.value==="zeroSsl"||b.value==="other")&&(b.value==="zeroSsl"?n.formModel["config-api_uri"]="https://acme.zerossl.com/v2/DV90":n.formModel["config-api_uri"]="https://acme.example.com/",n.formModel["config-tos_accepted"]=!1),b.value==="letsEncrypt"&&(n.formModel["config-api_uri"]="https://acme-v02.api.letsencrypt.org/directory",n.formModel["config-eab_hmac_key"]="",n.formModel["config-eab_kid"]=""),n.onModelUpdated()},T=(b,h)=>{h==="config-storage"&&(r.value=b),n.onModelUpdated()};return(b,h)=>{const A=t.resolveComponent("KSelect"),$=t.resolveComponent("KTabs");return t.openBlock(),t.createElementBlock("div",null,[e.formModel.id&&e.isEditing||!e.isEditing?(t.openBlock(),t.createBlock(Q,{key:0,class:"global-fields",model:e.formModel,options:e.formOptions,schema:u.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),t.createVNode($,{tabs:N},{general:t.withCtx(()=>[t.createElementVNode("div",Th,[h[0]||(h[0]=t.createElementVNode("div",{class:"header-wrapper"},[t.createElementVNode("span",{class:"section-header"},"General Configuration Settings")],-1)),h[1]||(h[1]=t.createElementVNode("div",{class:"description"}," Parameters for enabling the ACME plugin. ",-1)),O.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:f.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),h[2]||(h[2]=t.createElementVNode("hr",null,null,-1)),t.createVNode(A,{class:"issuer-select",items:U,label:"Issuer",onChange:B}),t.createElementVNode("div",Mh,[o.value==="letsEncrypt"?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:d.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),o.value==="zeroSsl"||o.value==="other"?(t.openBlock(),t.createBlock(Q,{key:1,model:e.formModel,options:e.formOptions,schema:s.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)])])]),storage:t.withCtx(()=>[t.createElementVNode("div",Ah,[h[3]||(h[3]=t.createElementVNode("div",{class:"header-wrapper"},[t.createElementVNode("span",{class:"section-header"},"Storage Configuration Settings")],-1)),h[4]||(h[4]=t.createElementVNode("div",{class:"description"}," Parameters for setting up storage. ",-1)),O.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:p.value,onModelUpdated:T},null,8,["model","options","schema"])):t.createCommentVNode("",!0),t.createElementVNode("div",Nh,[r.value==="consul"?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:m.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),r.value==="redis"?(t.openBlock(),t.createBlock(Q,{key:1,model:e.formModel,options:e.formOptions,schema:g.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),r.value==="shm"?(t.openBlock(),t.createBlock(Q,{key:2,model:e.formModel,options:e.formOptions,schema:k.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0),r.value==="vault"?(t.openBlock(),t.createBlock(Q,{key:3,model:e.formModel,options:e.formOptions,schema:w.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)])])]),advanced:t.withCtx(()=>[t.createElementVNode("div",Ih,[h[5]||(h[5]=t.createElementVNode("div",{class:"header-wrapper"},[t.createElementVNode("span",{class:"section-header"},"Advanced Configuration Settings")],-1)),h[6]||(h[6]=t.createElementVNode("div",{class:"description"}," Advanced parameters for manually configuring the ACME plugin. ",-1)),O.value?(t.openBlock(),t.createBlock(Q,{key:0,model:e.formModel,options:e.formOptions,schema:C.value,onModelUpdated:e.onModelUpdated},null,8,["model","options","schema","onModelUpdated"])):t.createCommentVNode("",!0)])]),_:1})])}}}),[["__scopeId","data-v-07cecf5b"]]),Oh={class:"rla-form-basic-fields"},Bh={class:"rla-form-request-limits-subtitle"},Fh={class:"rla-form-request-limits-content"},Rh={class:"rla-form-window-type"},Dh=["innerHTML"],Uh={class:"rla-form-window-type-radios"},Lh={class:"rla-form-request-limits-items"},Ph={class:"rla-form-request-limits-row"},vh=["id"],xh={class:"rla-form-request-limits-actions"},Kh={key:0,class:"rla-form-request-limits-examples"},jh={class:"rla-form-request-limits-examples-badges"},zh=["innerHTML"],$h={id:"rla-form-error-legend",class:"rla-form-error-inputs"},qh=Object.freeze(Object.defineProperty({__proto__:null,ACMEForm:Vh,ExitTransformer:Ch,OIDCForm:_h,PostFunction:Eh,RLAForm:x(t.defineComponent({__name:"RLAForm",props:{formSchema:{},formModel:{},formOptions:{},onModelUpdated:{type:Function},onPartialToggled:{type:Function},showNewPartialModal:{type:Function},isEditing:{type:Boolean},enableRedisPartial:{type:Boolean},isKonnectManagedRedisEnabled:{type:Boolean}},setup(e){t.provide(he,t.useSlots()?.[at]);const n={fixed:[{label:"500 requests every hour",description:"A fixed limit of 500 requests per hour resetting sharply on the hour, ensuring no user can exceed this limit.",config:{limit:500,window_size:3600}},{label:"200 requests every 30 minutes",description:"Users are allowed 200 requests per 30 minutes, resetting exactly on the 30 minute mark with no carryover of unused limits.",config:{limit:200,window_size:1800}},{label:"500 requests every day",description:"A strict limit of 5000 requests per day resetting promptly at midnight, preventing any burst traffic or inconsistent user experiences.",config:{limit:500,window_size:86400}}],sliding:[{label:"100 requests every hour",description:"Maximum of 100 requests every rolling hour, continuously adjusting the count over the course of the hour. No hard limit or known reset.",config:{limit:100,window_size:3600}},{label:"300 requests every 30 minutes",description:"Each user can make up to 300 requests in any rolling 30 minute period, with older requests dropping off as new requests are made.",config:{limit:300,window_size:1800}},{label:"500 requests every hour",description:`Each user is allowed 500 requests per hour.
|
|
4
4
|
If the limit is exceeded and the user receives a 429 error, each additional request within the sliding window (hour)
|
|
5
5
|
will extend the wait time by about 12 minutes, continuously adjusting as new requests are made.`,config:{limit:500,window_size:3600}}]},o=new Set(["selectionGroup","enabled",...["identifier","limit","window_size","error_code","error_message"].map(V=>`config-${V}`)]),r=V=>V===void 0?!1:o.has(V),{t:a}=Ee.createI18n("en-us",we),i=e,d=t.computed(()=>{const V=i.formSchema?.fields?.find(M=>M.type==="selectionGroup"&&M.model==="selectionGroup");return{fields:[i.formSchema?.fields.find(M=>M.model==="enabled"),V].filter(Boolean)}}),s=t.computed(()=>{const V=i.formSchema?.fields?.filter(ee=>!r(ee.model))??[],y=[],M=[],L=[];let ce=!1;for(const ee of V){const Ie=ee.model;if(Ie!==void 0){if(Ie.startsWith("config-redis-")){(ee.model==="config-redis-cluster_addresses"||ee.model==="config-redis-sentinel_addresses")&&(ee.inputAttributes.help=a("rla.redis.address_example")),M.push(ee);continue}ce?L.push(ee):y.push(ee),ee.model==="config-strategy"&&(ce=!0)}}return{endsWithStrategy:{fields:y},redis:i.enableRedisPartial?{fields:[{fields:M,id:"_redis",model:"__redis_partial",redisType:i.formSchema._supported_redis_partial_type}]}:{fields:M},afterStrategy:{fields:L}}}),u=t.computed(()=>{const V=i.formModel["config-window_type"];return Object.prototype.hasOwnProperty.call(n,V)?n[V]:[]}),f=t.computed(()=>i.formSchema?.fields?.find(V=>V.model==="config-identifier")),p=t.computed(()=>(i.formSchema?.fields?.find(V=>V.model==="config-identifier")?.values??[]).map(V=>({label:a(`rla.identifiers.options.${V}`),value:V}))),m=t.ref(),g=t.ref(!0),k=t.computed(()=>i.formModel["config-window_type"]??i.formSchema?.fields?.find(V=>V.model==="config-window_type")?.default),w=t.computed(()=>{const V=i.formSchema?.fields?.find(y=>y.model==="config-window_type")?.default;return(i.formSchema?.fields?.find(y=>y.model==="config-window_type")?.values??[]).sort((y,M)=>y===V?-1:M===V?1:0)}),C=t.computed(()=>{const V=i.formModel["config-limit"]?.map((y,M)=>({limit:y,windowSize:i.formModel?.["config-window_size"]?.[M]}));return!Array.isArray(V)||V.length===0?[{limit:void 0,windowSize:void 0}]:V}),O=t.computed(()=>i.formModel?.["config-identifier"]??i.formSchema?.fields?.find(V=>V.model==="config-identifier")?.default),N=t.computed(()=>i.formModel?.["config-error_code"]??i.formSchema?.fields?.find(V=>V.model==="config-error_code")?.default),U=t.computed(()=>i.formModel?.["config-error_message"]??i.formSchema?.fields?.find(V=>V.model==="config-error_message")?.default),B=(V,y)=>{if(y===m.value){i.onModelUpdated([],"config-limit"),i.onModelUpdated([],"config-window_size"),t.nextTick(()=>{m.value=void 0});return}i.onModelUpdated([V.config.limit],"config-limit"),i.onModelUpdated([V.config.window_size],"config-window_size"),t.nextTick(()=>{m.value=y})},T=V=>{m.value!==void 0&&(m.value=void 0),V!==null&&i.onModelUpdated(V.toString(),"config-window_type")},b=(V,y)=>{m.value!==void 0&&(m.value=void 0);const M=ze(i.formModel?.["config-limit"]??[]);M[V]=y,i.onModelUpdated(M,"config-limit")},h=(V,y)=>{m.value!==void 0&&(m.value=void 0);const M=ze(i.formModel?.["config-window_size"]??[]);M[V]=y,i.onModelUpdated(M,"config-window_size")},A=V=>{m.value!==void 0&&(m.value=void 0);const y=ze(i.formModel?.["config-limit"]??[]),M=ze(i.formModel?.["config-window_size"]??[]);y.length===0&&y.push(void 0),M.length===0&&M.push(void 0),y.splice(V+1,0,void 0),M.splice(V+1,0,void 0),i.onModelUpdated(y,"config-limit"),i.onModelUpdated(M,"config-window_size")},$=V=>{if(C.value.length>1){m.value!==void 0&&(m.value=void 0);const y=ze(i.formModel?.["config-limit"]??[]),M=ze(i.formModel?.["config-window_size"]??[]);y.length===0&&y.push(void 0),M.length===0&&M.push(void 0),y.splice(V,1),M.splice(V,1),i.onModelUpdated(y,"config-limit"),i.onModelUpdated(M,"config-window_size")}};return t.watch(()=>i.formModel["config-strategy"],V=>{V!=="redis"&&i.formModel.partials&&i.onModelUpdated(void 0,"partials")}),(V,y)=>{const M=t.resolveComponent("KLabel"),L=t.resolveComponent("KRadio"),ce=t.resolveComponent("KInput"),ee=t.resolveComponent("KButton"),Ie=t.resolveComponent("KBadge"),kt=t.resolveComponent("KTooltip"),Fe=t.resolveComponent("KCard"),$t=t.resolveComponent("KSelect"),Y=t.resolveComponent("KCollapse");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",Oh,[t.createVNode(Q,{model:e.formModel,options:e.formOptions,schema:d.value,onModelUpdated:y[0]||(y[0]=(I,v)=>e.onModelUpdated(I,v))},null,8,["model","options","schema"]),t.createVNode(Fe,{class:"rla-form-request-limits"},{title:t.withCtx(()=>[t.createVNode(M,{class:"rla-form-request-limits-title",for:"rla-form-request-limits-legend",required:""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("rla.request_limits.title")),1)]),_:1}),t.createElementVNode("div",Bh,t.toDisplayString(t.unref(a)("rla.request_limits.subtitle")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",Fh,[t.createElementVNode("div",Rh,[t.createVNode(M,{class:"rla-form-window-type-label","tooltip-attributes":{maxWidth:"300",placement:"top"}},{tooltip:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:t.unref(a)("rla.window_type.help")},null,8,Dh)]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("rla.window_type.label"))+" ",1)]),_:1}),t.createElementVNode("div",Uh,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(w.value,I=>(t.openBlock(),t.createBlock(L,{key:`window-type-${I}`,"model-value":k.value,name:I,"selected-value":I,"onUpdate:modelValue":T},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)(`rla.window_type.options.${I}`)),1)]),_:2},1032,["model-value","name","selected-value"]))),128))])]),t.createElementVNode("div",Lh,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(C.value,(I,v)=>(t.openBlock(),t.createElementBlock("div",{key:v.toString()},[t.createVNode(M,{for:`rla-form-request-limits-item-${v}-legend`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("rla.request_limits.label_index",{index:v+1})),1)]),_:2},1032,["for"]),t.createElementVNode("div",Ph,[t.createElementVNode("legend",{id:`rla-form-request-limits-item-${v}-legend`,class:"rla-form-request-limits-inputs"},[t.createVNode(ce,{"model-value":I.limit&&I.limit.toString(),placeholder:t.unref(a)("rla.request_limits.request_number"),type:"number","onUpdate:modelValue":ue=>b(v,Number.parseInt(ue))},null,8,["model-value","placeholder","onUpdate:modelValue"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(a)("rla.request_limits.interval_determiner")),1),t.createVNode(ce,{"model-value":I.windowSize&&I.windowSize.toString(),placeholder:t.unref(a)("rla.request_limits.time_interval"),type:"number","onUpdate:modelValue":ue=>h(v,Number.parseInt(ue))},null,8,["model-value","placeholder","onUpdate:modelValue"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(a)("rla.request_limits.seconds")),1)],8,vh),t.createElementVNode("div",xh,[t.createVNode(ee,{appearance:"tertiary",disabled:C.value.length<=1,onClick:()=>$(v)},{default:t.withCtx(()=>[t.createVNode(t.unref(me.RemoveIcon))]),_:1},8,["disabled","onClick"]),t.createVNode(ee,{appearance:"tertiary",onClick:()=>A(v)},{default:t.withCtx(()=>[t.createVNode(t.unref(me.AddIcon))]),_:1},8,["onClick"])])])]))),128))]),u.value.length>0?(t.openBlock(),t.createElementBlock("div",Kh,[t.createElementVNode("div",null,t.toDisplayString(t.unref(a)("rla.start_with_a_use_case")),1),t.createElementVNode("div",jh,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(u.value,(I,v)=>(t.openBlock(),t.createBlock(kt,{key:`use-case-${v}`,"max-width":"300"},{content:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(I.description),1),y[10]||(y[10]=t.createElementVNode("br",null,null,-1)),t.createElementVNode("div",null,t.toDisplayString(t.unref(a)("rla.request_limits.label"))+": "+t.toDisplayString(I.config.limit),1),t.createElementVNode("div",null,t.toDisplayString(t.unref(a)("rla.request_limits.time_interval"))+": "+t.toDisplayString(I.config.window_size),1)]),default:t.withCtx(()=>[t.createVNode(Ie,{appearance:m.value===`${k.value}-${v}`?"info":"decorative",class:"rla-form-request-limits-examples-badge",onClick:()=>B(I,`${k.value}-${v}`)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(I.label),1)]),_:2},1032,["appearance","onClick"])]),_:2},1024))),128))])])):t.createCommentVNode("",!0)])]),_:1}),t.createVNode($t,{modelValue:O.value,"onUpdate:modelValue":y[1]||(y[1]=I=>O.value=I),class:"rla-form-identifiers",items:p.value,label:t.unref(a)("rla.identifiers.label"),"label-attributes":{tooltipAttributes:{maxWidth:"300",placement:"top"}},required:"",onSelected:y[2]||(y[2]=I=>i.onModelUpdated(I.value,"config-identifier"))},{"label-tooltip":t.withCtx(()=>[t.createElementVNode("div",{innerHTML:f.value?.help?t.unref(on).sanitize(f.value.help):void 0},null,8,zh)]),_:1},8,["modelValue","items","label"]),t.createElementVNode("div",null,[t.createVNode(M,{for:"rla-form-error-legend",info:t.unref(a)("rla.error_message.help"),required:"","tooltip-attributes":{maxWidth:"300",placement:"top"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("rla.error_message.label")),1)]),_:1},8,["info"]),t.createElementVNode("legend",$h,[t.createVNode(ce,{class:"input-error-code","model-value":N.value&&N.value.toString(),placeholder:t.unref(a)("rla.error_message.code_placeholder"),type:"number","onUpdate:modelValue":y[3]||(y[3]=I=>e.onModelUpdated(Number.parseInt(I),"config-error_code"))},null,8,["model-value","placeholder"]),y[11]||(y[11]=t.createElementVNode("div",null,":",-1)),t.createVNode(ce,{"model-value":U.value,placeholder:t.unref(a)("rla.error_message.message_placeholder"),"onUpdate:modelValue":y[4]||(y[4]=I=>e.onModelUpdated(I,"config-error_message"))},null,8,["model-value","placeholder"])])])]),t.createVNode(Y,{modelValue:g.value,"onUpdate:modelValue":y[9]||(y[9]=I=>g.value=I),"data-testid":"view-advanced","trigger-label":t.unref(a)("rla.view_advanced")},{default:t.withCtx(()=>[t.createVNode(Q,{model:e.formModel,options:e.formOptions,schema:s.value.endsWithStrategy,onModelUpdated:y[5]||(y[5]=(I,v)=>e.onModelUpdated(I,v))},null,8,["model","options","schema"]),e.formModel["config-strategy"]==="redis"?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.enableRedisPartial?"div":"KCard"),{key:0,class:"rla-form-redis-card",title:t.unref(a)("rla.redis.title")},{default:t.withCtx(()=>[t.createVNode(Q,{"enable-redis-partial":e.enableRedisPartial,"is-editing":e.isEditing,"is-konnect-managed-redis-enabled":e.isKonnectManagedRedisEnabled,model:e.formModel,options:e.formOptions,schema:s.value.redis,onModelUpdated:y[6]||(y[6]=(I,v)=>e.onModelUpdated(I,v)),onPartialToggled:e.onPartialToggled,onShowNewPartialModal:y[7]||(y[7]=()=>e.showNewPartialModal(e.formSchema._supported_redis_partial_type))},null,8,["enable-redis-partial","is-editing","is-konnect-managed-redis-enabled","model","options","schema","onPartialToggled"])]),_:1},8,["title"])):t.createCommentVNode("",!0),t.createVNode(Q,{class:t.normalizeClass({"rla-last-vfg":e.formModel["config-strategy"]!=="redis"}),model:e.formModel,options:e.formOptions,schema:s.value.afterStrategy,onModelUpdated:y[8]||(y[8]=(I,v)=>e.onModelUpdated(I,v))},null,8,["class","model","options","schema"])]),_:1},8,["modelValue","trigger-label"])],64)}}}),[["__scopeId","data-v-f3692286"]])},Symbol.toStringTag,{value:"Module"})),Hh=["array","metric","advanced","selectionGroup","object-advanced"],Yh=e=>({"openid-connect":"OIDCForm","post-function":"PostFunction","pre-function":"PostFunction","exit-transformer":"ExitTransformer","rate-limiting-advanced":"RLAForm"})[e];D.AUTOFILL_SLOT=he,D.AUTOFILL_SLOT_NAME=at,D.EMPTY_VALUE_PLACEHOLDER=$o,D.FIELD_STATES=Ve,D.FORMS_API_KEY=Se,D.FORMS_CONFIG=tn,D.FieldScopedEntitySelect=pa,D.PartialType=Kt,D.REDIS_CREATE_SLIDEOUT=zo,D.REDIS_PARTIAL_FETCHER_KEY=jo,D.REDIS_PARTIAL_INFO=ys,D.VueFormGenerator=Q,D.abstractField=Pm,D.composables=Ne,D.customFields=Hh,D.getSharedFormName=Yh,D.hideNewRedis=Aa,D.sharedForms=qh,Object.defineProperty(D,Symbol.toStringTag,{value:"Module"})}));
|