| Current File : /home/omtekel/wiki/resources/lib/codex/codex-search.js |
"use strict";var ce=Object.defineProperty,me=Object.defineProperties;var he=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var te=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var ee=(e,n,o)=>n in e?ce(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,oe=(e,n)=>{for(var o in n||(n={}))te.call(n,o)&&ee(e,o,n[o]);if(U)for(var o of U(n))ne.call(n,o)&&ee(e,o,n[o]);return e},le=(e,n)=>me(e,he(n));var z=(e,n)=>{var o={};for(var l in e)te.call(e,l)&&n.indexOf(l)<0&&(o[l]=e[l]);if(e!=null&&U)for(var l of U(e))n.indexOf(l)<0&&ne.call(e,l)&&(o[l]=e[l]);return o};var Y=(e,n,o)=>new Promise((l,s)=>{var d=u=>{try{r(o.next(u))}catch(c){s(c)}},i=u=>{try{r(o.throw(u))}catch(c){s(c)}},r=u=>u.done?l(u.value):Promise.resolve(u.value).then(d,i);r((o=o.apply(e,n)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),pe='<path d="M12.43 14.34A5 5 0 0110 15a5 5 0 113.95-2L17 16.09V3a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h10a2 2 0 001.45-.63z"/><circle cx="10" cy="10" r="3"/>',fe='<path d="M10 0a10 10 0 1010 10A10 10 0 0010 0zm5.66 14.24-1.41 1.41L10 11.41l-4.24 4.25-1.42-1.42L8.59 10 4.34 5.76l1.42-1.42L10 8.59l4.24-4.24 1.41 1.41L11.41 10z"/>',ge='<path d="M19 3H1v14h18zM3 14l3.5-4.5 2.5 3L12.5 8l4.5 6z"/><path d="M19 5H1V3h18zm0 12H1v-2h18z"/>',ve='<path d="M12.2 13.6a7 7 0 111.4-1.4l5.4 5.4-1.4 1.4zM3 8a5 5 0 1010 0A5 5 0 003 8z"/>',ye=pe,be=fe,Ce=ge,ke=ve;function Se(e,n,o){if(typeof e=="string"||"path"in e)return e;if("shouldFlip"in e)return e.ltr;if("rtl"in e)return o==="rtl"?e.rtl:e.ltr;const l=n in e.langCodeMap?e.langCodeMap[n]:e.default;return typeof l=="string"||"path"in l?l:l.ltr}function we(e,n){if(typeof e=="string")return!1;if("langCodeMap"in e){const o=n in e.langCodeMap?e.langCodeMap[n]:e.default;if(typeof o=="string")return!1;e=o}if("shouldFlipExceptions"in e&&Array.isArray(e.shouldFlipExceptions)){const o=e.shouldFlipExceptions.indexOf(n);return o===void 0||o===-1}return"shouldFlip"in e?e.shouldFlip:!1}function $e(e){const n=t.ref(null);return t.onMounted(()=>{const o=window.getComputedStyle(e.value).direction;n.value=o==="ltr"||o==="rtl"?o:null}),n}function Ie(e){const n=t.ref("");return t.onMounted(()=>{let o=e.value;for(;o&&o.lang==="";)o=o.parentElement;n.value=o?o.lang:null}),n}function E(e){return n=>typeof n=="string"&&e.indexOf(n)!==-1}const P="cdx",Be=["default","progressive","destructive"],_e=["normal","primary","quiet"],xe=["medium","large"],Me=["x-small","small","medium"],Ve=["text","search","number","email","month","password","tel","url","week","date","datetime-local","time"],ae=["default","error"],Ee=120,Ne=500,K="cdx-menu-footer-item",Te=Symbol("CdxFieldInputId"),Ke=Symbol("CdxFieldDescriptionId"),Le=Symbol("CdxFieldStatus"),Re=Symbol("CdxDisabled"),De="".concat(P,"-no-invert"),Ae=E(Me),ze=t.defineComponent({name:"CdxIcon",props:{icon:{type:[String,Object],required:!0},iconLabel:{type:String,default:""},lang:{type:String,default:null},dir:{type:String,default:null},size:{type:String,default:"medium",validator:Ae}},setup(e){const n=t.ref(),o=$e(n),l=Ie(n),s=t.computed(()=>e.dir||o.value),d=t.computed(()=>e.lang||l.value),i=t.computed(()=>({"cdx-icon--flipped":s.value==="rtl"&&d.value!==null&&we(e.icon,d.value),["cdx-icon--".concat(e.size)]:!0})),r=t.computed(()=>Se(e.icon,d.value||"",s.value||"ltr")),u=t.computed(()=>typeof r.value=="string"?r.value:""),c=t.computed(()=>typeof r.value!="string"?r.value.path:"");return{rootElement:n,rootClasses:i,iconSvg:u,iconPath:c}}});const _=(e,n)=>{const o=e.__vccOpts||e;for(const[l,s]of n)o[l]=s;return o},Fe=["aria-hidden"],Oe={key:0},qe=["innerHTML"],He=["d"];function Ue(e,n,o,l,s,d){return t.openBlock(),t.createElementBlock("span",{ref:"rootElement",class:t.normalizeClass(["cdx-icon",e.rootClasses])},[(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"20",height:"20",viewBox:"0 0 20 20","aria-hidden":e.iconLabel?void 0:!0},[e.iconLabel?(t.openBlock(),t.createElementBlock("title",Oe,t.toDisplayString(e.iconLabel),1)):t.createCommentVNode("",!0),e.iconSvg?(t.openBlock(),t.createElementBlock("g",{key:1,innerHTML:e.iconSvg},null,8,qe)):(t.openBlock(),t.createElementBlock("path",{key:2,d:e.iconPath},null,8,He))],8,Fe))],2)}const Q=_(ze,[["render",Ue]]),Pe=t.defineComponent({name:"CdxThumbnail",components:{CdxIcon:Q},props:{thumbnail:{type:[Object,null],default:null},placeholderIcon:{type:[String,Object],default:Ce}},setup:e=>{const n=t.ref(!1),o=t.ref({}),l=s=>{const d=s.replace(/([\\"\n])/g,"\\$1"),i=new Image;i.onload=()=>{o.value={backgroundImage:'url("'.concat(d,'")')},n.value=!0},i.onerror=()=>{n.value=!1},i.src=d};return t.onMounted(()=>{var s;(s=e.thumbnail)!=null&&s.url&&l(e.thumbnail.url)}),{thumbnailStyle:o,thumbnailLoaded:n,NoInvertClass:De}}});const Qe={class:"cdx-thumbnail"},je={key:0,class:"cdx-thumbnail__placeholder"};function We(e,n,o,l,s,d){const i=t.resolveComponent("cdx-icon");return t.openBlock(),t.createElementBlock("span",Qe,[e.thumbnailLoaded?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",je,[t.createVNode(i,{icon:e.placeholderIcon,class:"cdx-thumbnail__placeholder__icon--vue"},null,8,["icon"])])),t.createVNode(t.Transition,{name:"cdx-thumbnail__image"},{default:t.withCtx(()=>[e.thumbnailLoaded?(t.openBlock(),t.createElementBlock("span",{key:0,style:t.normalizeStyle(e.thumbnailStyle),class:t.normalizeClass([e.NoInvertClass,"cdx-thumbnail__image"])},null,6)):t.createCommentVNode("",!0)]),_:1})])}const Ge=_(Pe,[["render",We]]);function Je(e){return e.replace(/([\\{}()|.?*+\-^$[\]])/g,"\\$1")}const Xe="[̀-ͯ҃-҉֑-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣ৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఄా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪾ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿⃐-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯-꙲ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꣿꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯]";function Ye(e,n){if(!e)return[n,"",""];const o=Je(e),l=new RegExp(o+Xe+"*","i").exec(n);if(!l||l.index===void 0)return[n,"",""];const s=l.index,d=s+l[0].length,i=n.slice(s,d),r=n.slice(0,s),u=n.slice(d,n.length);return[r,i,u]}const Ze=t.defineComponent({name:"CdxSearchResultTitle",props:{title:{type:String,required:!0},searchQuery:{type:String,default:""}},setup:e=>({titleChunks:t.computed(()=>Ye(e.searchQuery,String(e.title)))})});const et={class:"cdx-search-result-title"},tt={class:"cdx-search-result-title__match"};function nt(e,n,o,l,s,d){return t.openBlock(),t.createElementBlock("span",et,[t.createElementVNode("bdi",null,[t.createTextVNode(t.toDisplayString(e.titleChunks[0]),1),t.createElementVNode("span",tt,t.toDisplayString(e.titleChunks[1]),1),t.createTextVNode(t.toDisplayString(e.titleChunks[2]),1)])])}const ot=_(Ze,[["render",nt]]),lt=t.defineComponent({name:"CdxMenuItem",components:{CdxIcon:Q,CdxThumbnail:Ge,CdxSearchResultTitle:ot},props:{id:{type:String,required:!0},value:{type:[String,Number],required:!0},disabled:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},active:{type:Boolean,default:!1},highlighted:{type:Boolean,default:!1},label:{type:String,default:""},match:{type:String,default:""},supportingText:{type:String,default:""},url:{type:String,default:""},icon:{type:[String,Object],default:""},showThumbnail:{type:Boolean,default:!1},thumbnail:{type:[Object,null],default:null},description:{type:[String,null],default:""},searchQuery:{type:String,default:""},boldLabel:{type:Boolean,default:!1},hideDescriptionOverflow:{type:Boolean,default:!1},language:{type:Object,default:()=>({})}},emits:["change"],setup:(e,{emit:n})=>{const o=()=>{e.highlighted||n("change","highlighted",!0)},l=()=>{n("change","highlighted",!1)},s=p=>{p.button===0&&n("change","active",!0)},d=()=>{n("change","selected",!0)},i=t.computed(()=>e.searchQuery.length>0),r=t.computed(()=>({"cdx-menu-item--selected":e.selected,"cdx-menu-item--active":e.active&&e.highlighted,"cdx-menu-item--highlighted":e.highlighted,"cdx-menu-item--enabled":!e.disabled,"cdx-menu-item--disabled":e.disabled,"cdx-menu-item--highlight-query":i.value,"cdx-menu-item--bold-label":e.boldLabel,"cdx-menu-item--has-description":!!e.description,"cdx-menu-item--hide-description-overflow":e.hideDescriptionOverflow})),u=t.computed(()=>e.url?"a":"span"),c=t.computed(()=>e.label||String(e.value));return{onMouseMove:o,onMouseLeave:l,onMouseDown:s,onClick:d,highlightQuery:i,rootClasses:r,contentTag:u,title:c}}});const at=["id","aria-disabled","aria-selected"],it={class:"cdx-menu-item__text"},st=["lang"],rt=["lang"],ut=["lang"],dt=["lang"];function ct(e,n,o,l,s,d){const i=t.resolveComponent("cdx-thumbnail"),r=t.resolveComponent("cdx-icon"),u=t.resolveComponent("cdx-search-result-title");return t.openBlock(),t.createElementBlock("li",{id:e.id,role:"option",class:t.normalizeClass(["cdx-menu-item",e.rootClasses]),"aria-disabled":e.disabled,"aria-selected":e.selected,onMousemove:n[0]||(n[0]=(...c)=>e.onMouseMove&&e.onMouseMove(...c)),onMouseleave:n[1]||(n[1]=(...c)=>e.onMouseLeave&&e.onMouseLeave(...c)),onMousedown:n[2]||(n[2]=t.withModifiers((...c)=>e.onMouseDown&&e.onMouseDown(...c),["prevent"])),onClick:n[3]||(n[3]=(...c)=>e.onClick&&e.onClick(...c))},[t.renderSlot(e.$slots,"default",{},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.contentTag),{href:e.url?e.url:void 0,class:"cdx-menu-item__content"},{default:t.withCtx(()=>{var c,p,v,f,S,k;return[e.showThumbnail?(t.openBlock(),t.createBlock(i,{key:0,thumbnail:e.thumbnail,class:"cdx-menu-item__thumbnail"},null,8,["thumbnail"])):e.icon?(t.openBlock(),t.createBlock(r,{key:1,icon:e.icon,class:"cdx-menu-item__icon"},null,8,["icon"])):t.createCommentVNode("",!0),t.createElementVNode("span",it,[e.highlightQuery?(t.openBlock(),t.createBlock(u,{key:0,title:e.title,"search-query":e.searchQuery,lang:(c=e.language)==null?void 0:c.label},null,8,["title","search-query","lang"])):(t.openBlock(),t.createElementBlock("span",{key:1,class:"cdx-menu-item__text__label",lang:(p=e.language)==null?void 0:p.label},[t.createElementVNode("bdi",null,t.toDisplayString(e.title),1)],8,st)),e.match?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createTextVNode(t.toDisplayString(" ")+" "),e.highlightQuery?(t.openBlock(),t.createBlock(u,{key:0,title:e.match,"search-query":e.searchQuery,lang:(v=e.language)==null?void 0:v.match},null,8,["title","search-query","lang"])):(t.openBlock(),t.createElementBlock("span",{key:1,class:"cdx-menu-item__text__match",lang:(f=e.language)==null?void 0:f.match},[t.createElementVNode("bdi",null,t.toDisplayString(e.match),1)],8,rt))],64)):t.createCommentVNode("",!0),e.supportingText?(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[t.createTextVNode(t.toDisplayString(" ")+" "),t.createElementVNode("span",{class:"cdx-menu-item__text__supporting-text",lang:(S=e.language)==null?void 0:S.supportingText},[t.createElementVNode("bdi",null,t.toDisplayString(e.supportingText),1)],8,ut)],64)):t.createCommentVNode("",!0),e.description?(t.openBlock(),t.createElementBlock("span",{key:4,class:"cdx-menu-item__text__description",lang:(k=e.language)==null?void 0:k.description},[t.createElementVNode("bdi",null,t.toDisplayString(e.description),1)],8,dt)):t.createCommentVNode("",!0)])]}),_:1},8,["href"]))])],42,at)}const mt=_(lt,[["render",ct]]);function ie(e,n){if(e()){t.warn(n);return}const o=t.watch(e,l=>{l&&(t.warn(n),o())})}const ht=t.defineComponent({name:"CdxProgressBar",props:{inline:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e,{attrs:n}){ie(()=>!e.inline&&!n["aria-label"]&&!n["aria-hidden"],"CdxProgressBar: Progress bars require one of the following attribute, aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/demos/progressbar.html");const o=t.computed(()=>({"cdx-progress-bar--block":!e.inline,"cdx-progress-bar--inline":e.inline,"cdx-progress-bar--enabled":!e.disabled,"cdx-progress-bar--disabled":e.disabled})),l=t.computed(()=>e.inline?"true":void 0);return{rootClasses:o,computedAriaHidden:l}}});const pt=["aria-hidden","aria-disabled"],ft=t.createElementVNode("div",{class:"cdx-progress-bar__bar"},null,-1),gt=[ft];function vt(e,n,o,l,s,d){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-progress-bar",e.rootClasses]),role:"progressbar","aria-hidden":e.computedAriaHidden,"aria-disabled":e.disabled},gt,10,pt)}const yt=_(ht,[["render",vt]]);let Z=0;function se(e){const n=t.getCurrentInstance(),o=(n==null?void 0:n.props.id)||(n==null?void 0:n.attrs.id);return e?"".concat(P,"-").concat(e,"-").concat(Z++):o?"".concat(P,"-").concat(o,"-").concat(Z++):"".concat(P,"-").concat(Z++)}function bt(e,n){const o=t.ref(!1);let l=!1;if(typeof window!="object"||!("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype))return o;const s=new window.IntersectionObserver(d=>{const i=d[0];i&&(o.value=i.isIntersecting)},n);return t.onMounted(()=>{l=!0,e.value&&s.observe(e.value)}),t.onUnmounted(()=>{l=!1,s.disconnect()}),t.watch(e,d=>{l&&(s.disconnect(),o.value=!1,d&&s.observe(d))}),o}function j(e,n=t.computed(()=>({}))){const o=t.computed(()=>{const d=z(n.value,[]);return e.class&&e.class.split(" ").forEach(r=>{d[r]=!0}),d}),l=t.computed(()=>{if("style"in e)return e.style}),s=t.computed(()=>{const u=e,{class:d,style:i}=u;return z(u,["class","style"])});return{rootClasses:o,rootStyle:l,otherAttrs:s}}const Ct=t.defineComponent({name:"CdxMenu",components:{CdxMenuItem:mt,CdxProgressBar:yt},inheritAttrs:!1,props:{menuItems:{type:Array,required:!0},footer:{type:Object,default:null},selected:{type:[String,Number,null],required:!0},expanded:{type:Boolean,required:!0},showPending:{type:Boolean,default:!1},visibleItemLimit:{type:Number,default:null},showThumbnail:{type:Boolean,default:!1},boldLabel:{type:Boolean,default:!1},hideDescriptionOverflow:{type:Boolean,default:!1},searchQuery:{type:String,default:""},showNoResultsSlot:{type:Boolean,default:null}},emits:["update:selected","update:expanded","menu-item-click","menu-item-keyboard-navigation","load-more"],expose:["isExpanded","clearActive","getHighlightedMenuItem","getHighlightedViaKeyboard","delegateKeyNavigation"],setup(e,{emit:n,slots:o,attrs:l}){const s=t.computed(()=>(e.footer&&e.menuItems?[...e.menuItems,e.footer]:e.menuItems).map(m=>le(oe({},m),{id:se("menu-item")}))),d=t.computed(()=>o["no-results"]?e.showNoResultsSlot!==null?e.showNoResultsSlot:s.value.length===0:!1),i=t.ref(null),r=t.ref(!1),u=t.ref(null),c="additions removals";let p="",v=null;function f(){p="",v!==null&&(clearTimeout(v),v=null)}function S(){v!==null&&clearTimeout(v),v=setTimeout(f,1500)}function k(){return s.value.find(a=>a.value===e.selected)||null}function w(a,m){var g;if(!(m&&m.disabled))switch(a){case"selected":n("update:selected",(g=m==null?void 0:m.value)!=null?g:null),n("update:expanded",!1),u.value=null;break;case"highlighted":i.value=m||null,r.value=!1;break;case"highlightedViaKeyboard":i.value=m||null,r.value=!0;break;case"active":u.value=m||null;break}}const b=t.computed(()=>{if(i.value!==null)return s.value.findIndex(a=>a.value===i.value.value)});function L(a){a&&(w("highlightedViaKeyboard",a),n("menu-item-keyboard-navigation",a))}function R(a){var C;const m=T=>{for(let I=T-1;I>=0;I--)if(!s.value[I].disabled)return s.value[I]};a=a||s.value.length;const g=(C=m(a))!=null?C:m(s.value.length);L(g)}function D(a){const m=C=>s.value.find((T,I)=>!T.disabled&&I>C);a=a!=null?a:-1;const g=m(a)||m(-1);L(g)}function F(a){if(a.key==="Clear")return f(),!0;if(a.key==="Backspace")return p=p.slice(0,-1),S(),!0;if(a.key.length===1&&!a.metaKey&&!a.ctrlKey&&!a.altKey){e.expanded||n("update:expanded",!0),p+=a.key.toLowerCase();const m=p.length>1&&p.split("").every(I=>I===p[0]);let g=s.value,C=p;m&&b.value!==void 0&&(g=g.slice(b.value+1).concat(g.slice(0,b.value)),C=p[0]);const T=g.find(I=>!I.disabled&&String(I.label||I.value).toLowerCase().indexOf(C)===0);return T&&(w("highlightedViaKeyboard",T),M()),S(),!0}return!1}function O(a,{prevent:m=!0,characterNavigation:g=!1}={}){if(g){if(F(a))return!0;f()}function C(){m&&(a.preventDefault(),a.stopPropagation())}switch(a.key){case"Enter":case" ":return C(),e.expanded?(i.value&&r.value&&n("update:selected",i.value.value),n("update:expanded",!1)):n("update:expanded",!0),!0;case"Tab":return e.expanded&&(i.value&&r.value&&n("update:selected",i.value.value),n("update:expanded",!1)),!0;case"ArrowUp":return C(),e.expanded?(i.value===null&&w("highlightedViaKeyboard",k()),R(b.value)):n("update:expanded",!0),M(),!0;case"ArrowDown":return C(),e.expanded?(i.value===null&&w("highlightedViaKeyboard",k()),D(b.value)):n("update:expanded",!0),M(),!0;case"Home":return C(),e.expanded?(i.value===null&&w("highlightedViaKeyboard",k()),D()):n("update:expanded",!0),M(),!0;case"End":return C(),e.expanded?(i.value===null&&w("highlightedViaKeyboard",k()),R()):n("update:expanded",!0),M(),!0;case"Escape":return C(),n("update:expanded",!1),!0;default:return!1}}function y(){w("active",null)}const $=[],B=t.ref(void 0),x=bt(B,{threshold:.8});t.watch(x,a=>{a&&n("load-more")});function q(a,m){if(a){$[m]=a.$el;const g=e.visibleItemLimit;if(!g||e.menuItems.length<g)return;const C=Math.min(g,Math.max(2,Math.floor(.2*e.menuItems.length)));m===e.menuItems.length-C&&(B.value=a.$el)}}function M(){if(!e.visibleItemLimit||e.visibleItemLimit>e.menuItems.length||b.value===void 0)return;const a=b.value>=0?b.value:0;$[a].scrollIntoView({behavior:"smooth",block:"nearest"})}const V=t.ref(null),N=t.ref(null);function A(){if(N.value=null,!e.visibleItemLimit||$.length<=e.visibleItemLimit){V.value=null;return}const a=$[0],m=$[e.visibleItemLimit];if(V.value=H(a,m),e.footer){const g=$[$.length-1];N.value=g.scrollHeight}}function H(a,m){const g=a.getBoundingClientRect().top;return m.getBoundingClientRect().top-g+2}t.onMounted(()=>{document.addEventListener("mouseup",y)}),t.onUnmounted(()=>{document.removeEventListener("mouseup",y)}),t.watch(t.toRef(e,"expanded"),a=>Y(this,null,function*(){if(a){const m=k();m&&!i.value&&w("highlighted",m),yield t.nextTick(),A(),yield t.nextTick(),M()}else w("highlighted",null)})),t.watch(t.toRef(e,"menuItems"),a=>Y(this,null,function*(){a.length<$.length&&($.length=a.length),e.expanded&&(yield t.nextTick(),A(),yield t.nextTick(),M())}),{deep:!0});const W=t.computed(()=>({"max-height":V.value?"".concat(V.value,"px"):void 0,"overflow-y":V.value?"scroll":void 0,"margin-bottom":N.value?"".concat(N.value,"px"):void 0})),G=t.computed(()=>({"cdx-menu--has-footer":!!e.footer,"cdx-menu--has-sticky-footer":!!e.footer&&!!V.value})),{rootClasses:J,rootStyle:X,otherAttrs:h}=j(l,G);return{listBoxStyle:W,rootClasses:J,rootStyle:X,otherAttrs:h,assignTemplateRef:q,computedMenuItems:s,computedShowNoResultsSlot:d,highlightedMenuItem:i,highlightedViaKeyboard:r,activeMenuItem:u,handleMenuItemChange:w,handleKeyNavigation:O,ariaRelevant:c}},methods:{isExpanded(){return this.expanded},getHighlightedMenuItem(){return this.expanded?this.highlightedMenuItem:null},getHighlightedViaKeyboard(){return this.highlightedViaKeyboard},clearActive(){this.handleMenuItemChange("active",null)},delegateKeyNavigation(e,{prevent:n=!0,characterNavigation:o=!1}={}){return this.handleKeyNavigation(e,{prevent:n,characterNavigation:o})}}});const kt=["aria-live","aria-relevant"],St={key:0,class:"cdx-menu__pending cdx-menu-item"},wt={key:1,class:"cdx-menu__no-results cdx-menu-item"};function $t(e,n,o,l,s,d){const i=t.resolveComponent("cdx-menu-item"),r=t.resolveComponent("cdx-progress-bar");return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-menu",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createElementVNode("ul",t.mergeProps({class:"cdx-menu__listbox",role:"listbox",style:e.listBoxStyle,"aria-live":e.showPending?"polite":void 0,"aria-relevant":e.showPending?e.ariaRelevant:void 0},e.otherAttrs),[e.showPending&&e.computedMenuItems.length===0&&e.$slots.pending?(t.openBlock(),t.createElementBlock("li",St,[t.renderSlot(e.$slots,"pending")])):t.createCommentVNode("",!0),e.computedShowNoResultsSlot?(t.openBlock(),t.createElementBlock("li",wt,[t.renderSlot(e.$slots,"no-results")])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.computedMenuItems,(u,c)=>{var p,v;return t.openBlock(),t.createBlock(i,t.mergeProps({key:u.value,ref_for:!0,ref:f=>e.assignTemplateRef(f,c)},u,{selected:u.value===e.selected,active:u.value===((p=e.activeMenuItem)==null?void 0:p.value),highlighted:u.value===((v=e.highlightedMenuItem)==null?void 0:v.value),"show-thumbnail":e.showThumbnail,"bold-label":e.boldLabel,"hide-description-overflow":e.hideDescriptionOverflow,"search-query":e.searchQuery,onChange:(f,S)=>e.handleMenuItemChange(f,S?u:null),onClick:f=>e.$emit("menu-item-click",u)}),{default:t.withCtx(()=>{var f,S;return[t.renderSlot(e.$slots,"default",{menuItem:u,active:u.value===((f=e.activeMenuItem)==null?void 0:f.value)&&u.value===((S=e.highlightedMenuItem)==null?void 0:S.value)})]}),_:2},1040,["selected","active","highlighted","show-thumbnail","bold-label","hide-description-overflow","search-query","onChange","onClick"])}),128)),e.showPending?(t.openBlock(),t.createBlock(r,{key:2,class:"cdx-menu__progress-bar",inline:!0})):t.createCommentVNode("",!0)],16,kt)],6)),[[t.vShow,e.expanded]])}const It=_(Ct,[["render",$t]]);function re(e){const n=[];for(const o of e)typeof o.type=="string"||typeof o.type=="object"?n.push(o):o.type!==t.Comment&&(typeof o.children=="string"&&o.children.trim()!==""?n.push(o.children):Array.isArray(o.children)&&n.push(...re(o.children)));return n}function Bt(e,n){return typeof e.type=="object"&&"name"in e.type?n!==void 0?e.type.name===n:!0:!1}function _t(e,n){return typeof e.type=="string"?n!==void 0?e.type===n.toLowerCase():!0:!1}function xt(e){const n=typeof e=="function"?e():e;return n?re(n):[]}function Mt(e,n,o){const l=t.computed(()=>{const s=xt(e);if(s.length!==1)return!1;const d=s[0];return!!(typeof d=="object"&&(Bt(d,"CdxIcon")||_t(d,"svg")))});return ie(()=>l.value&&!n["aria-label"]&&!n["aria-hidden"],"".concat(o,": Icon-only buttons require one of the following attributes: aria-label or aria-hidden. See documentation at https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button")),l}const Vt=E(Be),Et=E(_e),Nt=E(xe),Tt=t.defineComponent({name:"CdxButton",props:{action:{type:String,default:"default",validator:Vt},weight:{type:String,default:"normal",validator:Et},size:{type:String,default:"medium",validator:Nt}},emits:["click"],setup(e,{emit:n,slots:o,attrs:l}){const s=Mt(o.default,l,"CdxButton"),d=t.ref(!1);return{rootClasses:t.computed(()=>({["cdx-button--action-".concat(e.action)]:!0,["cdx-button--weight-".concat(e.weight)]:!0,["cdx-button--size-".concat(e.size)]:!0,"cdx-button--framed":e.weight!=="quiet","cdx-button--icon-only":s.value,"cdx-button--is-active":d.value})),onClick:c=>{n("click",c)},setActive:c=>{d.value=c}}}});function Kt(e,n,o,l,s,d){return t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass(["cdx-button",e.rootClasses]),onClick:n[0]||(n[0]=(...i)=>e.onClick&&e.onClick(...i)),onKeydown:n[1]||(n[1]=t.withKeys(i=>e.setActive(!0),["space","enter"])),onKeyup:n[2]||(n[2]=t.withKeys(i=>e.setActive(!1),["space","enter"]))},[t.renderSlot(e.$slots,"default")],34)}const Lt=_(Tt,[["render",Kt]]);function ue(e,n,o){return t.computed({get:()=>e.value,set:l=>n(o||"update:modelValue",l)})}function Rt(e){const n=t.inject(Re,t.ref(!1));return t.computed(()=>n.value||e.value)}function de(e,n,o){const l=Rt(e),s=t.inject(Le,t.ref("default")),d=t.computed(()=>n!=null&&n.value&&n.value!=="default"?n.value:s.value),i=t.inject(Te,void 0),r=t.computed(()=>i&&i.value?i.value:o);return{computedDisabled:l,computedStatus:d,computedInputId:r}}const Dt=E(Ve),At=E(ae),zt=t.defineComponent({name:"CdxTextInput",components:{CdxIcon:Q},inheritAttrs:!1,expose:["focus","blur"],props:{modelValue:{type:[String,Number],default:""},inputType:{type:String,default:"text",validator:Dt},status:{type:String,default:"default",validator:At},disabled:{type:Boolean,default:!1},startIcon:{type:[String,Object],default:void 0},endIcon:{type:[String,Object],default:void 0},clearable:{type:Boolean,default:!1}},emits:["update:modelValue","keydown","input","change","focus","blur","clear"],setup(e,{emit:n,attrs:o}){const l=o.id,{computedDisabled:s,computedStatus:d,computedInputId:i}=de(t.toRef(e,"disabled"),t.toRef(e,"status"),l),r=t.inject(Ke,void 0),u=ue(t.toRef(e,"modelValue"),n),c=t.computed(()=>e.clearable&&!!u.value&&!s.value),p=t.computed(()=>({"cdx-text-input--has-start-icon":!!e.startIcon,"cdx-text-input--has-end-icon":!!e.endIcon,"cdx-text-input--clearable":c.value,["cdx-text-input--status-".concat(d.value)]:!0})),{rootClasses:v,rootStyle:f,otherAttrs:S}=j(o,p),k=t.computed(()=>{const B=S.value,{id:y}=B;return z(B,["id"])}),w=t.computed(()=>({"cdx-text-input__input--has-value":!!u.value}));return{computedInputId:i,descriptionId:r,wrappedModel:u,isClearable:c,rootClasses:v,rootStyle:f,otherAttrsMinusId:k,inputClasses:w,computedDisabled:s,onClear:y=>{u.value="",n("clear",y)},onInput:y=>{n("input",y)},onChange:y=>{n("change",y)},onKeydown:y=>{(y.key==="Home"||y.key==="End")&&!y.ctrlKey&&!y.metaKey||n("keydown",y)},onFocus:y=>{n("focus",y)},onBlur:y=>{n("blur",y)},cdxIconClear:be}},methods:{focus(){this.$refs.input.focus()},blur(){this.$refs.input.blur()}}});const Ft=["id","type","aria-describedby","disabled"];function Ot(e,n,o,l,s,d){const i=t.resolveComponent("cdx-icon");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-text-input",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.withDirectives(t.createElementVNode("input",t.mergeProps({id:e.computedInputId,ref:"input","onUpdate:modelValue":n[0]||(n[0]=r=>e.wrappedModel=r),class:["cdx-text-input__input",e.inputClasses]},e.otherAttrsMinusId,{type:e.inputType,"aria-describedby":e.descriptionId,disabled:e.computedDisabled,size:"1",onInput:n[1]||(n[1]=(...r)=>e.onInput&&e.onInput(...r)),onChange:n[2]||(n[2]=(...r)=>e.onChange&&e.onChange(...r)),onFocus:n[3]||(n[3]=(...r)=>e.onFocus&&e.onFocus(...r)),onBlur:n[4]||(n[4]=(...r)=>e.onBlur&&e.onBlur(...r)),onKeydown:n[5]||(n[5]=(...r)=>e.onKeydown&&e.onKeydown(...r))}),null,16,Ft),[[t.vModelDynamic,e.wrappedModel]]),e.startIcon?(t.openBlock(),t.createBlock(i,{key:0,icon:e.startIcon,class:"cdx-text-input__icon-vue cdx-text-input__start-icon"},null,8,["icon"])):t.createCommentVNode("",!0),e.endIcon?(t.openBlock(),t.createBlock(i,{key:1,icon:e.endIcon,class:"cdx-text-input__icon-vue cdx-text-input__end-icon"},null,8,["icon"])):t.createCommentVNode("",!0),e.isClearable?(t.openBlock(),t.createBlock(i,{key:2,icon:e.cdxIconClear,class:"cdx-text-input__icon-vue cdx-text-input__clear-icon",onMousedown:n[6]||(n[6]=t.withModifiers(()=>{},["prevent"])),onClick:e.onClear},null,8,["icon","onClick"])):t.createCommentVNode("",!0)],6)}const qt=_(zt,[["render",Ot]]),Ht=E(ae),Ut=t.defineComponent({name:"CdxSearchInput",components:{CdxButton:Lt,CdxTextInput:qt},inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},buttonLabel:{type:String,default:""},disabled:{type:Boolean,default:!1},status:{type:String,default:"default",validator:Ht}},emits:["update:modelValue","submit-click","input","change","focus","blur"],setup(e,{emit:n,attrs:o}){const l=ue(t.toRef(e,"modelValue"),n),{computedDisabled:s}=de(t.toRef(e,"disabled")),d=t.computed(()=>({"cdx-search-input--has-end-button":!!e.buttonLabel})),{rootClasses:i,rootStyle:r,otherAttrs:u}=j(o,d);return{wrappedModel:l,computedDisabled:s,rootClasses:i,rootStyle:r,otherAttrs:u,handleSubmit:()=>{n("submit-click",l.value)},searchIcon:ke}},methods:{focus(){this.$refs.textInput.focus()}}});const Pt={class:"cdx-search-input__input-wrapper"};function Qt(e,n,o,l,s,d){const i=t.resolveComponent("cdx-text-input"),r=t.resolveComponent("cdx-button");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-search-input",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createElementVNode("div",Pt,[t.createVNode(i,t.mergeProps({ref:"textInput",modelValue:e.wrappedModel,"onUpdate:modelValue":n[0]||(n[0]=u=>e.wrappedModel=u),class:"cdx-search-input__text-input","input-type":"search","start-icon":e.searchIcon,disabled:e.computedDisabled,status:e.status},e.otherAttrs,{onKeydown:t.withKeys(e.handleSubmit,["enter"]),onInput:n[1]||(n[1]=u=>e.$emit("input",u)),onChange:n[2]||(n[2]=u=>e.$emit("change",u)),onFocus:n[3]||(n[3]=u=>e.$emit("focus",u)),onBlur:n[4]||(n[4]=u=>e.$emit("blur",u))}),null,16,["modelValue","start-icon","disabled","status","onKeydown"]),t.renderSlot(e.$slots,"default")]),e.buttonLabel?(t.openBlock(),t.createBlock(r,{key:0,class:"cdx-search-input__end-button",disabled:e.computedDisabled,onClick:e.handleSubmit},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.buttonLabel),1)]),_:1},8,["disabled","onClick"])):t.createCommentVNode("",!0)],6)}const jt=_(Ut,[["render",Qt]]),Wt=t.defineComponent({name:"CdxTypeaheadSearch",components:{CdxIcon:Q,CdxMenu:It,CdxSearchInput:jt},inheritAttrs:!1,props:{id:{type:String,required:!0},formAction:{type:String,required:!0},searchResultsLabel:{type:String,required:!0},searchResults:{type:Array,required:!0},buttonLabel:{type:String,default:""},initialInputValue:{type:String,default:""},searchFooterUrl:{type:String,default:""},debounceInterval:{type:Number,default:Ee},highlightQuery:{type:Boolean,default:!1},showThumbnail:{type:Boolean,default:!1},autoExpandWidth:{type:Boolean,default:!1},visibleItemLimit:{type:Number,default:null}},emits:["input","search-result-click","submit","load-more"],setup(e,{attrs:n,emit:o,slots:l}){const s=t.ref(),d=t.ref(),i=se("typeahead-search-menu"),r=t.ref(!1),u=t.ref(!1),c=t.ref(!1),p=t.ref(!1),v=t.ref(e.initialInputValue),f=t.ref(""),S=t.computed(()=>{var h,a;return(a=(h=d.value)==null?void 0:h.getHighlightedMenuItem())==null?void 0:a.id}),k=t.ref(null),w=t.computed(()=>({"cdx-typeahead-search__menu-message--has-thumbnail":e.showThumbnail})),b=t.computed(()=>e.searchResults.find(h=>h.value===k.value)),L=t.computed(()=>e.searchFooterUrl?{value:K,url:e.searchFooterUrl}:void 0),R=t.computed(()=>({"cdx-typeahead-search--show-thumbnail":e.showThumbnail,"cdx-typeahead-search--expanded":r.value,"cdx-typeahead-search--auto-expand-width":e.showThumbnail&&e.autoExpandWidth})),{rootClasses:D,rootStyle:F,otherAttrs:O}=j(n,R);function y(h){return h}const $=t.computed(()=>({visibleItemLimit:e.visibleItemLimit,showThumbnail:e.showThumbnail,boldLabel:!0,hideDescriptionOverflow:!0}));let B,x;function q(h,a=!1){b.value&&b.value.label!==h&&b.value.value!==h&&(k.value=null),x!==void 0&&(clearTimeout(x),x=void 0),h===""?r.value=!1:(u.value=!0,l["search-results-pending"]&&(x=setTimeout(()=>{p.value&&(r.value=!0),c.value=!0},Ne))),B!==void 0&&(clearTimeout(B),B=void 0);const m=()=>{o("input",h)};a?m():B=setTimeout(()=>{m()},e.debounceInterval)}function M(h){if(h===K){k.value=null,v.value=f.value;return}k.value=h,h!==null&&(v.value=b.value?b.value.label||String(b.value.value):"")}function V(){p.value=!0,(f.value||c.value)&&(r.value=!0)}function N(){p.value=!1,r.value=!1}function A(h){const g=h,{id:a}=g,m=z(g,["id"]);if(m.value===K){o("search-result-click",{searchResult:null,index:e.searchResults.length,numberOfResults:e.searchResults.length});return}H(m)}function H(h){const a={searchResult:h,index:e.searchResults.findIndex(m=>m.value===h.value),numberOfResults:e.searchResults.length};o("search-result-click",a)}function W(h){if(h.value===K){v.value=f.value;return}v.value=h.value?h.label||String(h.value):""}function G(h){var a;r.value=!1,(a=d.value)==null||a.clearActive(),A(h)}function J(h){if(b.value)H(b.value),h.stopPropagation(),window.location.assign(b.value.url),h.preventDefault();else{const a={searchResult:null,index:-1,numberOfResults:e.searchResults.length};o("submit",a)}}function X(h){if(!d.value||!f.value||h.key===" ")return;const a=d.value.getHighlightedMenuItem(),m=d.value.getHighlightedViaKeyboard();switch(h.key){case"Enter":a&&(a.value===K&&m?window.location.assign(e.searchFooterUrl):d.value.delegateKeyNavigation(h,{prevent:!1})),r.value=!1;break;case"Tab":r.value=!1;break;default:d.value.delegateKeyNavigation(h);break}}return t.onMounted(()=>{e.initialInputValue&&q(e.initialInputValue,!0)}),t.watch(t.toRef(e,"searchResults"),()=>{f.value=v.value.trim(),p.value&&u.value&&f.value.length>0&&(r.value=!0),x!==void 0&&(clearTimeout(x),x=void 0),u.value=!1,c.value=!1}),{form:s,menu:d,menuId:i,highlightedId:S,selection:k,menuMessageClass:w,footer:L,asSearchResult:y,inputValue:v,searchQuery:f,expanded:r,showPending:c,rootClasses:D,rootStyle:F,otherAttrs:O,menuConfig:$,onUpdateInputValue:q,onUpdateMenuSelection:M,onFocus:V,onBlur:N,onSearchResultClick:A,onSearchResultKeyboardNavigation:W,onSearchFooterClick:G,onSubmit:J,onKeydown:X,MenuFooterValue:K,articleIcon:ye}},methods:{focus(){this.$refs.searchInput.focus()}}});const Gt=["id","action"],Jt={class:"cdx-typeahead-search__menu-message__text"},Xt={class:"cdx-typeahead-search__menu-message__text"},Yt=["href","onClickCapture"],Zt={class:"cdx-menu-item__text cdx-typeahead-search__search-footer__text"},en={class:"cdx-typeahead-search__search-footer__query"};function tn(e,n,o,l,s,d){const i=t.resolveComponent("cdx-icon"),r=t.resolveComponent("cdx-menu"),u=t.resolveComponent("cdx-search-input");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-typeahead-search",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createElementVNode("form",{id:e.id,ref:"form",class:"cdx-typeahead-search__form",action:e.formAction,onSubmit:n[4]||(n[4]=(...c)=>e.onSubmit&&e.onSubmit(...c))},[t.createVNode(u,t.mergeProps({ref:"searchInput",modelValue:e.inputValue,"onUpdate:modelValue":n[3]||(n[3]=c=>e.inputValue=c),"button-label":e.buttonLabel},e.otherAttrs,{class:"cdx-typeahead-search__input",name:"search",role:"combobox",autocomplete:"off","aria-autocomplete":"list","aria-controls":e.menuId,"aria-expanded":e.expanded,"aria-activedescendant":e.highlightedId,"onUpdate:modelValue":e.onUpdateInputValue,onFocus:e.onFocus,onBlur:e.onBlur,onKeydown:e.onKeydown}),{default:t.withCtx(()=>[t.createVNode(r,t.mergeProps({id:e.menuId,ref:"menu",expanded:e.expanded,"onUpdate:expanded":n[0]||(n[0]=c=>e.expanded=c),"show-pending":e.showPending,selected:e.selection,"menu-items":e.searchResults,footer:e.footer,"search-query":e.highlightQuery?e.searchQuery:"","show-no-results-slot":e.searchQuery.length>0&&e.searchResults.length===0&&e.$slots["search-no-results-text"]&&e.$slots["search-no-results-text"]().length>0},e.menuConfig,{"aria-label":e.searchResultsLabel,"onUpdate:selected":e.onUpdateMenuSelection,onMenuItemClick:n[1]||(n[1]=c=>e.onSearchResultClick(e.asSearchResult(c))),onMenuItemKeyboardNavigation:e.onSearchResultKeyboardNavigation,onLoadMore:n[2]||(n[2]=c=>e.$emit("load-more"))}),{pending:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["cdx-menu-item__content cdx-typeahead-search__menu-message",e.menuMessageClass])},[t.createElementVNode("span",Jt,[t.renderSlot(e.$slots,"search-results-pending")])],2)]),"no-results":t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["cdx-menu-item__content cdx-typeahead-search__menu-message",e.menuMessageClass])},[t.createElementVNode("span",Xt,[t.renderSlot(e.$slots,"search-no-results-text")])],2)]),default:t.withCtx(({menuItem:c,active:p})=>[c.value===e.MenuFooterValue?(t.openBlock(),t.createElementBlock("a",{key:0,class:t.normalizeClass(["cdx-menu-item__content cdx-typeahead-search__search-footer",{"cdx-typeahead-search__search-footer__active":p}]),href:e.asSearchResult(c).url,onClickCapture:t.withModifiers(v=>e.onSearchFooterClick(e.asSearchResult(c)),["stop"])},[t.createVNode(i,{class:"cdx-menu-item__thumbnail cdx-typeahead-search__search-footer__icon",icon:e.articleIcon},null,8,["icon"]),t.createElementVNode("span",Zt,[t.renderSlot(e.$slots,"search-footer-text",{searchQuery:e.searchQuery},()=>[t.createElementVNode("strong",en,t.toDisplayString(e.searchQuery),1)])])],42,Yt)):t.createCommentVNode("",!0)]),_:3},16,["id","expanded","show-pending","selected","menu-items","footer","search-query","show-no-results-slot","aria-label","onUpdate:selected","onMenuItemKeyboardNavigation"])]),_:3},16,["modelValue","button-label","aria-controls","aria-expanded","aria-activedescendant","onUpdate:modelValue","onFocus","onBlur","onKeydown"]),t.renderSlot(e.$slots,"default")],40,Gt)],6)}const nn=_(Wt,[["render",tn]]);exports.CdxTypeaheadSearch=nn;