varmory 1.0.7 → 1.0.9
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/README.md +1 -1
- package/dist/varmory.mjs +14 -14
- package/dist/varmory.umd.js +8 -8
- package/package.json +2 -1
package/dist/varmory.umd.js
CHANGED
|
@@ -235,7 +235,7 @@ Drop in an interactive browser for the Quasar components you use and any custom
|
|
|
235
235
|
- [Component Showcase](https://varmory-dec8b20a1b83.herokuapp.com/)
|
|
236
236
|
- [MCP Server](https://varmory-dec8b20a1b83.herokuapp.com/#docs/MCP)
|
|
237
237
|
|
|
238
|
-
> See [**themed_varmory**](https://github.com/jeka-kiselyov/themed_varmory) for a reference example of using varmory as a base to build your own themed component library — swappable themes, a theme store, custom components, and an extended
|
|
238
|
+
> See [**themed_varmory**](https://github.com/jeka-kiselyov/themed_varmory) for a reference example of using varmory as a base to build your own themed component library — swappable themes, a theme store, custom components, and an MCP server with an extended set of components and API definitions.
|
|
239
239
|
|
|
240
240
|
## Installation
|
|
241
241
|
|
|
@@ -394,7 +394,7 @@ CSS HELPERS:
|
|
|
394
394
|
<QIcon name="favorite" color="negative" />
|
|
395
395
|
|
|
396
396
|
<!-- In a button -->
|
|
397
|
-
<QBtn icon="send" label="Send" />`,data(){return{search:"",category:"all",allCategories:FL}},computed:{filtered(){let o=xo;if(this.category!=="all"&&(o=o.filter(t=>t[1]===this.category)),this.search){const t=this.search.toLowerCase().replace(/\s+/g,"_");o=o.filter(a=>a[0].includes(t))}return o}},watch:{search(o){o&&(this.category="all")}},methods:{onCopy(o){this.showcaseCopy(o[0],o[0])}}},PL={class:"iconShowcase"},$L={class:"iconControls"},RL={class:"iconStats"},ML={class:"iconGrid non-selectable"},UL=["onClick"],HL={class:"iconLabel text-truncate"};function GL(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QInput"),c=e.resolveComponent("QTab"),m=e.resolveComponent("QTabs");return e.openBlock(),e.createElementBlock("div",PL,[e.createElementVNode("div",$L,[e.createVNode(i,{modelValue:n.search,"onUpdate:modelValue":t[1]||(t[1]=d=>n.search=d),dense:"",outlined:"",placeholder:"Filter icons...",color:"accent",class:"iconSearch"},e.createSlots({prepend:e.withCtx(()=>[e.createVNode(r,{name:"search",size:"16px"})]),_:2},[n.search?{name:"append",fn:e.withCtx(()=>[e.createVNode(r,{name:"close",size:"14px",class:"cursor-pointer",onClick:t[0]||(t[0]=d=>n.search="")})]),key:"0"}:void 0]),1032,["modelValue"]),e.createVNode(m,{modelValue:n.category,"onUpdate:modelValue":t[2]||(t[2]=d=>n.category=d),dense:"","active-color":"accent","indicator-color":"accent",align:"left","narrow-indicator":"","no-caps":"",class:"iconTabs"},{default:e.withCtx(()=>[e.createVNode(c,{name:"all",label:"All"}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.allCategories,d=>(e.openBlock(),e.createBlock(c,{key:d,name:d,label:d},null,8,["name","label"]))),128))]),_:1},8,["modelValue"])]),e.createElementVNode("div",RL,e.toDisplayString(s.filtered.length)+" icons ",1),e.createElementVNode("div",ML,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.filtered,d=>(e.openBlock(),e.createElementBlock("div",{key:d[0],class:"iconCell",onClick:u=>s.onCopy(d)},[e.createVNode(r,{name:d[0],size:"36px"},null,8,["name"]),e.createElementVNode("span",HL,e.toDisplayString(d[0]),1)],8,UL))),128))])])}const WL=Object.freeze(Object.defineProperty({__proto__:null,default:j(zL,[["render",GL],["__scopeId","data-v-a00fef0a"]])},Symbol.toStringTag,{value:"Module"})),JL={mixins:["components/btn/use-btn"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/button"},props:{round:{type:"Boolean",desc:"Makes a circle shaped button",category:"style"},percentage:{type:"Number",desc:"Percentage (0.0 < x < 100.0); To be used along 'loading' prop; Display a progress bar on the background",category:"behavior"},"dark-percentage":{type:"Boolean",desc:"Progress bar on the background should have dark color; To be used along with 'percentage' and 'loading' props",category:"behavior"}},slots:{default:{desc:"Use for custom content, instead of relying on 'icon' and 'label' props"},loading:{desc:"Override the default QSpinner when in 'loading' state"}},methods:{click:{desc:"Emulate click on QBtn",params:{evt:{extends:"evt"}},returns:null}},events:{click:{desc:"Emitted when the component is clicked",params:{evt:{extends:"evt",desc:"JS event object; If you are using route navigation ('to'/'replace' props) and you want to cancel navigation then call evt.preventDefault() synchronously in your event handler"},go:{type:"Function",desc:"Available ONLY if you are using route navigation ('to'/'replace' props); When you need to control the time at which the component should trigger the route navigation then call evt.preventDefault() synchronously and then call this function at your convenience; Useful if you have async work to be done before the actual route navigation or if you want to redirect somewhere else",required:!1,addedIn:"v2.9",params:{opts:{type:"Object",desc:"Optional options",required:!1,definition:{to:{type:["String","Object"],desc:"Equivalent to Vue Router <router-link> 'to' property; Specify it explicitly otherwise it will be set with same value as component's 'to' prop",required:!1,examples:["'/home/dashboard'","{ name: 'my-route-name' }"]},replace:{type:"Boolean",desc:"Equivalent to Vue Router <router-link> 'replace' property; Specify it explicitly otherwise it will be set with same value as component's 'replace' prop",required:!1},returnRouterError:{type:"Boolean",desc:"Return the router error, if any; Otherwise the returned Promise will always fulfill",required:!1}}}},returns:{type:"Promise<any>",desc:"Returns the router's navigation promise"}}}},touchstart:{internal:!0},keydown:{internal:!0},keyup:{internal:!0},mousedown:{internal:!0}}},YL={name:"ShowcaseQuasarBtn",components:{QBtn:V.QBtn},label:"Quasar Btn",icon:"smart_button",apiJson:JL,importName:"QBtn",importFrom:"quasar"},ZL={class:"jShowcase_row jShowcase_column"},KL={class:"jShowcase_group"},XL={class:"jShowcase_items"},eO={class:"jShowcase_group"},tO={class:"jShowcase_items"},oO={class:"jShowcase_group"},nO={class:"jShowcase_items"},aO={class:"jShowcase_group"},rO={class:"jShowcase_items"},sO={class:"jShowcase_group"},iO={class:"jShowcase_items"},lO={class:"jShowcase_group"},cO={class:"jShowcase_items"},dO={class:"jShowcase_group"},pO={class:"jShowcase_items"};function mO(o,t,a,l,n,s){const r=e.resolveComponent("QBtn");return e.openBlock(),e.createElementBlock("div",ZL,[e.createElementVNode("div",KL,[t[0]||(t[0]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",XL,[e.createVNode(r,{color:"primary",label:"Default"}),e.createVNode(r,{flat:"",color:"primary",label:"Flat"}),e.createVNode(r,{outline:"",color:"primary",label:"Outline"}),e.createVNode(r,{unelevated:"",color:"primary",label:"Unelevated"}),e.createVNode(r,{push:"",color:"primary",label:"Push"}),e.createVNode(r,{glossy:"",color:"primary",label:"Glossy"})])]),e.createElementVNode("div",eO,[t[1]||(t[1]=e.createElementVNode("span",{class:"jShowcase_title"},"Custom Variants",-1)),e.createElementVNode("div",tO,[e.createVNode(r,{class:"ghost",label:"Ghost",icon:"settings"})])]),e.createElementVNode("div",oO,[t[2]||(t[2]=e.createElementVNode("span",{class:"jShowcase_title"},"Shapes",-1)),e.createElementVNode("div",nO,[e.createVNode(r,{color:"accent",label:"Rounded",rounded:""}),e.createVNode(r,{color:"accent",label:"Square",square:""}),e.createVNode(r,{color:"accent",icon:"star",round:""}),e.createVNode(r,{color:"accent",icon:"rocket_launch",label:"FAB",fab:""}),e.createVNode(r,{color:"accent",icon:"add","fab-mini":""})])]),e.createElementVNode("div",aO,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Icons",-1)),e.createElementVNode("div",rO,[e.createVNode(r,{color:"secondary",icon:"flight_takeoff",label:"Launch"}),e.createVNode(r,{color:"secondary",label:"Deploy","icon-right":"send"}),e.createVNode(r,{color:"secondary",icon:"shield",label:"Shield","icon-right":"chevron_right"}),e.createVNode(r,{outline:"",color:"secondary",icon:"settings",round:""})])]),e.createElementVNode("div",sO,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"Colors",-1)),e.createElementVNode("div",iO,[e.createVNode(r,{color:"primary",label:"Primary"}),e.createVNode(r,{color:"secondary",label:"Secondary"}),e.createVNode(r,{color:"accent",label:"Accent"}),e.createVNode(r,{color:"positive",label:"Positive"}),e.createVNode(r,{color:"negative",label:"Negative"}),e.createVNode(r,{color:"info",label:"Info"}),e.createVNode(r,{color:"warning",label:"Warning"})])]),e.createElementVNode("div",lO,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Sizes",-1)),e.createElementVNode("div",cO,[e.createVNode(r,{color:"primary",label:"xs",size:"xs"}),e.createVNode(r,{color:"primary",label:"sm",size:"sm"}),e.createVNode(r,{color:"primary",label:"md",size:"md"}),e.createVNode(r,{color:"primary",label:"lg",size:"lg"}),e.createVNode(r,{color:"primary",label:"xl",size:"xl"})])]),e.createElementVNode("div",dO,[t[6]||(t[6]=e.createElementVNode("span",{class:"jShowcase_title"},"States",-1)),e.createElementVNode("div",pO,[e.createVNode(r,{color:"info",label:"Loading",loading:""}),e.createVNode(r,{color:"negative",label:"Disabled",disable:""}),e.createVNode(r,{color:"accent",label:"Dense",dense:""}),e.createVNode(r,{color:"secondary",icon:"bolt",label:"Stacked",stack:""}),e.createVNode(r,{color:"primary",label:"No caps","no-caps":""})])])])}const uO=Object.freeze(Object.defineProperty({__proto__:null,default:j(YL,[["render",mO]])},Symbol.toStringTag,{value:"Module"})),hO={mixins:["components/btn/use-btn","composables/private.use-model-toggle/use-model-toggle","composables/private.use-transition/use-transition"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/button-dropdown"},props:{"model-value":{type:"Boolean",__delete:["default"]},split:{type:"Boolean",desc:"Split dropdown icon into its own button",category:"content|behavior"},"dropdown-icon":{extends:"icon"},"disable-main-btn":{type:"Boolean",desc:"Disable main button (useful along with 'split' prop)",category:"behavior"},"disable-dropdown":{type:"Boolean",desc:"Disables dropdown (dropdown button if using along 'split' prop)",category:"behavior"},"no-icon-animation":{type:"Boolean",desc:"Disables the rotation of the dropdown icon when state is toggled",category:"style"},"content-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Style definitions to be attributed to the menu",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"content-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Class definitions to be attributed to the menu",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},cover:{type:"Boolean",desc:"Allows the menu to cover the button. When used, the 'menu-self' prop is no longer effective",category:"position"},persistent:{type:"Boolean",desc:"Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key; Also, an app route change won't dismiss it",category:"behavior"},"no-esc-dismiss":{type:"Boolean",desc:"User cannot dismiss the popup by hitting ESC key; No need to set it if 'persistent' prop is also set",category:"behavior",addedIn:"v2.18"},"no-route-dismiss":{type:"Boolean",desc:"Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set",category:"behavior"},"auto-close":{type:"Boolean",desc:"Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap",category:"behavior"},"no-refocus":{type:"Boolean",desc:"(Accessibility) When the dropdown gets hidden, do not refocus on the DOM element that previously had focus",category:"behavior",addedIn:"v2.18"},"no-focus":{type:"Boolean",desc:"(Accessibility) When the dropdown gets shown, do not switch focus on it",category:"behavior",addedIn:"v2.18"},"menu-anchor":{type:"String",desc:"Two values setting the starting position or anchor point of the menu relative to its target",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],default:"'bottom end'",category:"position"},"menu-self":{type:"String",desc:"Two values setting the menu's own position relative to its target",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],default:"'top end'",category:"position"},"menu-offset":{type:"Array",desc:"An array of two numbers to offset the menu horizontally and vertically in pixels",examples:["[8, 8]","[5, 10]"],category:"position"},"toggle-aria-label":{type:"String",desc:"aria-label to be used on the dropdown toggle element",examples:["'Open menu'"],category:"accessibility",addedIn:"v2.8.4"}},slots:{default:{extends:"default"},label:{desc:"Customize main button's content through this slot, unless you're using the 'icon' and 'label' props"},loading:{desc:"Override the default QSpinner when in 'loading' state",addedIn:"v2.8"}},events:{click:{extends:"click",desc:"Emitted when user clicks/taps on the main button (not the icon one, if using 'split')"}}},fO={name:"ShowcaseQuasarBtnDropdown",components:{QBtnDropdown:V.QBtnDropdown,QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QIcon:V.QIcon,QSeparator:V.QSeparator},label:"Quasar Btn Dropdown",icon:"smart_button",apiJson:hO,importName:"QBtnDropdown",importFrom:"quasar"},gO={class:"jShowcase_row jShowcase_column"},bO={class:"jShowcase_group"},yO={class:"jShowcase_items"},_O={class:"jShowcase_group"},wO={class:"jShowcase_items"},xO={class:"jShowcase_group"},vO={class:"jShowcase_items"},kO={class:"jShowcase_group"},SO={class:"jShowcase_items"};function QO(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItem"),m=e.resolveComponent("QSeparator"),d=e.resolveComponent("QList"),u=e.resolveComponent("QBtnDropdown"),g=e.resolveDirective("close-popup");return e.openBlock(),e.createElementBlock("div",gO,[e.createElementVNode("div",bO,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",yO,[e.createVNode(u,{color:"primary",label:"Actions"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"edit"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Edit",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"content_copy"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode("Duplicate",-1)])]),_:1})]),_:1})),[[g]]),e.createVNode(m),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"delete"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode("Delete",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"secondary",icon:"add",label:"Create"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("New File",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("New Folder",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})])]),e.createElementVNode("div",_O,[t[10]||(t[10]=e.createElementVNode("span",{class:"jShowcase_title"},"Split",-1)),e.createElementVNode("div",wO,[e.createVNode(u,{color:"primary",icon:"save",label:"Save",split:"",onClick:b=>null},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Save as Draft",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("Save & Publish",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"accent",icon:"share",label:"Share",split:"",onClick:b=>null},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("Copy Link",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Email",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})])]),e.createElementVNode("div",xO,[t[21]||(t[21]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",vO,[e.createVNode(u,{color:"primary",label:"Flat",flat:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"primary",label:"Outline",outline:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"primary",label:"Unelevated",unelevated:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"primary",label:"Push",push:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"primary",label:"Dense",dense:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})])]),e.createElementVNode("div",kO,[t[23]||(t[23]=e.createElementVNode("span",{class:"jShowcase_title"},"States",-1)),e.createElementVNode("div",SO,[e.createVNode(u,{color:"info",label:"Loading",loading:""}),e.createVNode(u,{color:"negative",label:"Disabled",disable:""}),e.createVNode(u,{color:"primary",label:"No Icon Animation","no-icon-animation":""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("Option",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})])])])}const CO=Object.freeze(Object.defineProperty({__proto__:null,default:j(fO,[["render",QO]])},Symbol.toStringTag,{value:"Module"})),NO={mixins:["composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/button-toggle"},props:{"model-value":{extends:"model-value",type:"Any",desc:"Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="selected"']},options:{type:"Array",desc:"Array of Objects defining each option",required:!0,definition:{attrs:{type:"Object",desc:"Key-value for attributes to be set on the button",examples:["{ 'aria-label': 'Button label' }"],__exemption:["definition"]},label:{type:"String",desc:"Label of option button; Use this prop and/or 'icon', but at least one is required",examples:["'Option 1'"]},icon:{extends:"icon",desc:"Icon of option button; Use this prop and/or 'label', but at least one is required"},value:{type:"Any",desc:"Value of the option that will be used by component model",required:!0},slot:{type:"String",desc:"Slot name to use for this button content; Useful for customizing content or even add tooltips",examples:["'mySlot'"]},"...props":{type:"Any",desc:"Any other QBtn props (including class and style)"}},examples:["[{ label: 'One', value: 'one' }, { label: 'Two', value: 'two' }]"],category:"model"},color:{extends:"color"},"text-color":{extends:"text-color"},"toggle-color":{extends:"color",default:"'primary'"},"toggle-text-color":{extends:"text-color"},spread:{type:"Boolean",desc:"Spread horizontally to all available space",category:"content"},outline:{type:"Boolean",desc:"Use 'outline' design",category:"style"},flat:{type:"Boolean",desc:"Use 'flat' design",category:"style"},unelevated:{type:"Boolean",desc:"Remove shadow",category:"style"},rounded:{type:"Boolean",desc:"Applies a more prominent border-radius for a squared shape button",category:"style"},push:{type:"Boolean",desc:"Use 'push' design",category:"style"},glossy:{type:"Boolean",desc:"Applies a glossy effect",category:"style"},size:{type:"String",desc:"Button size name or a CSS unit including unit name",examples:["'xs'","'sm'","'md'","'lg'","'xl'","'25px'","'2rem'"],category:"style"},padding:{type:"String",desc:"Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set",examples:["'16px'","'10px 5px'","'2rem'","'xs'","'md lg'","'2px 2px 5px 7px'"],category:"style"},"no-caps":{type:"Boolean",desc:"Avoid turning label text into caps (which happens by default)",category:"content"},"no-wrap":{type:"Boolean",desc:"Avoid label text wrapping",category:"content"},ripple:{extends:"ripple"},dense:{extends:"dense"},readonly:{extends:"readonly"},disable:{extends:"disable"},stack:{type:"Boolean",desc:"Stack icon and label vertically instead of on same line (like it is by default)",category:"content"},stretch:{type:"Boolean",desc:"When used on flexbox parent, button will stretch to parent's height",category:"content"},clearable:{type:"Boolean",desc:"Clears model on click of the already selected button",category:"model"}},events:{"update:model-value":{extends:"update:model-value"},clear:{desc:"When using the 'clearable' property, this event is emitted when the already selected button is clicked"},click:{internal:!0}},slots:{default:{desc:"Suggestions: QTooltip, QBadge"},"...":{desc:"Any other dynamic slots to be used with 'slot' property of the 'options' prop"}}},IO={name:"ShowcaseBtnToggle",components:{QBtnToggle:V.QBtnToggle},apiJson:NO,importName:"QBtnToggle",importFrom:"quasar",data(){return{toggleValue:"one"}},label:"Btn Toggle",icon:"smart_button",code:null},VO={class:"jShowcase_row jShowcase_column"},EO={class:"jShowcase_group"},BO={class:"jShowcase_items"},TO={class:"jShowcase_group"},AO={class:"jShowcase_items"},qO={class:"jShowcase_group"},DO={class:"jShowcase_items"};function jO(o,t,a,l,n,s){const r=e.resolveComponent("QBtnToggle");return e.openBlock(),e.createElementBlock("div",VO,[e.createElementVNode("div",EO,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",BO,[e.createVNode(r,{modelValue:n.toggleValue,"onUpdate:modelValue":t[0]||(t[0]=i=>n.toggleValue=i),label:"Toggle me","toggle-color":"primary",options:[{label:"One",value:"one"},{label:"Two",value:"two"},{label:"Three",value:"three"}]},null,8,["modelValue"])])]),e.createElementVNode("div",TO,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"Flat with Icons",-1)),e.createElementVNode("div",AO,[e.createVNode(r,{modelValue:n.toggleValue,"onUpdate:modelValue":t[1]||(t[1]=i=>n.toggleValue=i),flat:"","toggle-color":"primary","text-color":"muted",options:[{label:"List",value:"one",icon:"view_list"},{label:"Grid",value:"two",icon:"grid_view"},{label:"Board",value:"three",icon:"dashboard"}]},null,8,["modelValue"])])]),e.createElementVNode("div",qO,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Outline",-1)),e.createElementVNode("div",DO,[e.createVNode(r,{modelValue:n.toggleValue,"onUpdate:modelValue":t[2]||(t[2]=i=>n.toggleValue=i),label:"Toggle me","toggle-color":"primary",color:"surface-0","text-color":"faint",outline:"",options:[{label:"One",value:"one"},{label:"Two",value:"two"},{label:"Three",value:"three"}]},null,8,["modelValue"])])])])}const LO=Object.freeze(Object.defineProperty({__proto__:null,default:j(IO,[["render",jO]])},Symbol.toStringTag,{value:"Module"})),OO={mixins:["composables/private.use-model-toggle/use-model-toggle","composables/private.use-portal/use-portal","composables/private.use-transition/use-transition"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/dialog"},props:{persistent:{type:"Boolean",desc:"User cannot dismiss Dialog if clicking outside of it or hitting ESC key; Also, an app route change won't dismiss it",category:"behavior"},"no-esc-dismiss":{type:"Boolean",desc:"User cannot dismiss Dialog by hitting ESC key; No need to set it if 'persistent' prop is also set",category:"behavior"},"no-backdrop-dismiss":{type:"Boolean",desc:"User cannot dismiss Dialog by clicking outside of it; No need to set it if 'persistent' prop is also set",category:"behavior"},"no-route-dismiss":{type:"Boolean",desc:"Changing route app won't dismiss Dialog; No need to set it if 'persistent' prop is also set",category:"behavior"},"auto-close":{type:"Boolean",desc:"Any click/tap inside of the dialog will close it",category:"behavior"},seamless:{type:"Boolean",desc:"Put Dialog into seamless mode; Does not use a backdrop so user is able to interact with the rest of the page too",category:"content"},"backdrop-filter":{type:"String",desc:"Apply a backdrop filter; The value needs to be the same as in the CSS specs for backdrop-filter; The examples are not an exhaustive list",examples:["'blur(4px)'","'blur(4px) saturate(150%)'","'brightness(60%)'","'invert(70%)'","'grayscale(100%)'","'contrast(40%)'","'hue-rotate(120deg)'","'sepia(90%)'","'saturate(80%)'","'none'"],category:"style",addedIn:"v2.15"},maximized:{type:"Boolean",desc:"Put Dialog into maximized mode",category:"content"},"full-width":{type:"Boolean",desc:"Dialog will try to render with same width as the window",category:"content"},"full-height":{type:"Boolean",desc:"Dialog will try to render with same height as the window",category:"content"},position:{type:"String",desc:"Stick dialog to one of the sides (top, right, bottom or left)",default:"'standard'",values:["'standard'","'top'","'right'","'bottom'","'left'"],category:"content"},square:{type:"Boolean",desc:"Forces content to have squared borders",category:"style"},"no-refocus":{type:"Boolean",desc:"(Accessibility) When Dialog gets hidden, do not refocus on the DOM element that previously had focus",category:"behavior"},"no-focus":{type:"Boolean",desc:"(Accessibility) When Dialog gets shown, do not switch focus on it",category:"behavior"},"no-shake":{type:"Boolean",desc:"Do not shake up the Dialog to catch user's attention",category:"behavior",addedIn:"v2.1.1"},"allow-focus-outside":{type:"Boolean",desc:"Allow elements outside of the Dialog to be focusable; By default, for accessibility reasons, QDialog does not allow outer focus",category:"behavior",addedIn:"v2.7.2"},"transition-show":{__runtimeDefault:!0},"transition-hide":{__runtimeDefault:!0}},events:{shake:{desc:"Emitted when the Dialog shakes in order to catch user's attention, unless the 'no-shake' property is set"},"escape-key":{desc:"Emitted when ESC key is pressed; Does not get emitted if Dialog is 'persistent' or it has 'no-esc-dismiss' set"},click:{internal:!0}},methods:{focus:{desc:"Focus dialog; if you have content with autofocus attribute, it will directly focus it",params:{selector:{type:"String",required:!1,desc:"Optional CSS selector to override default focusable element",examples:[`'[tabindex]:not([tabindex="-1"])'`],addedIn:"v2.6.5"}},returns:null},shake:{desc:"Shakes dialog",params:{focusTarget:{type:"Element",desc:"Optional DOM Element to be focused after shake",examples:["document.getElementById('example')"],addedIn:"v2.10.1"}},returns:null}},slots:{default:{extends:"default"}}},FO={name:"ShowcaseDialog",label:"Quasar Dialog",icon:"picture_in_picture",components:{QBtn:V.QBtn,QDialog:V.QDialog,QCard:V.QCard,QCardSection:V.QCardSection,QCardActions:V.QCardActions,QIcon:V.QIcon,QSpace:V.QSpace,QSeparator:V.QSeparator,QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel,QBadge:V.QBadge,QInnerLoading:V.QInnerLoading,QSpinner:V.QSpinner,QInput:V.QInput,QSelect:V.QSelect},apiJson:OO,importName:"QDialog",importFrom:"quasar",data(){return{isLoading:!1,simple:!1,card:!1,persistent:!1,accentFull:!1,accentHeader:!1,positioned:!1,positionValue:"top",maximized:!1,fullWidth:!1,seamless:!1,scrollable:!1,stickyScroll:!1,longForm:!1,positions:["top","right","bottom","left"],form:{name:"",sector:"",objective:"",secondary:"",priority:"Standard",crew:"",duration:"",notes:""},crewList:[{name:"Cdr. Vasquez",role:"First Officer",icon:"military_tech",status:"Active"},{name:"Lt. Okafor",role:"Helm",icon:"explore",status:"Active"},{name:"Lt. Cdr. Chen",role:"Chief Engineer",icon:"engineering",status:"Active"},{name:"Dr. Petrov",role:"Chief Medical",icon:"medical_services",status:"Active"},{name:"Ens. Nakamura",role:"Science Officer",icon:"science",status:"Active"},{name:"Lt. Mbeki",role:"Tactical",icon:"shield",status:"Active"},{name:"Lt. Johansson",role:"Communications",icon:"cell_tower",status:"On Leave"},{name:"Ens. Park",role:"Navigation",icon:"near_me",status:"Active"},{name:"Cdr. Al-Rashid",role:"Security Chief",icon:"security",status:"Active"},{name:"Lt. Torres",role:"Operations",icon:"settings",status:"On Leave"}]}},methods:{openPositioned(o){this.positionValue=o,this.positioned=!0}}},zO={class:"jShowcase_row jShowcase_column"},PO={class:"jShowcase_group"},$O={class:"jShowcase_items"},RO={class:"jShowcase_group"},MO={class:"jShowcase_items"},UO={class:"text-h6"},HO={class:"jShowcase_group"},GO={class:"jShowcase_items"},WO={class:"jShowcase_group"},JO={class:"jShowcase_items"},YO={class:"text-caption",style:{color:"var(--q-text-muted)"}};function ZO(o,t,a,l,n,s){const r=e.resolveComponent("QBtn"),i=e.resolveComponent("QCardSection"),c=e.resolveComponent("QCardActions"),m=e.resolveComponent("QCard"),d=e.resolveComponent("QDialog"),u=e.resolveComponent("QIcon"),g=e.resolveComponent("QSpace"),b=e.resolveComponent("QSeparator"),w=e.resolveComponent("QItemSection"),C=e.resolveComponent("QItemLabel"),Q=e.resolveComponent("QBadge"),f=e.resolveComponent("QItem"),_=e.resolveComponent("QList"),v=e.resolveComponent("QSpinner"),x=e.resolveComponent("QInnerLoading"),k=e.resolveComponent("QInput"),B=e.resolveComponent("QSelect"),E=e.resolveDirective("close-popup");return e.openBlock(),e.createElementBlock("div",zO,[e.createElementVNode("div",PO,[t[28]||(t[28]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",$O,[e.createVNode(r,{color:"primary",label:"Simple",onClick:t[0]||(t[0]=S=>n.simple=!0)}),e.createVNode(r,{color:"accent",label:"With Card",onClick:t[1]||(t[1]=S=>n.card=!0)}),e.createVNode(r,{color:"secondary",label:"Persistent",onClick:t[2]||(t[2]=S=>n.persistent=!0)})])]),e.createVNode(d,{modelValue:n.simple,"onUpdate:modelValue":t[3]||(t[3]=S=>n.simple=S)},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[29]||(t[29]=[e.createElementVNode("div",{class:"text-h6"},"Incoming Transmission",-1)])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[30]||(t[30]=[e.createTextVNode(" Signal detected from sector 7G. Awaiting decryption. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"primary",label:"Dismiss"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.card,"onUpdate:modelValue":t[4]||(t[4]=S=>n.card=S)},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center"},{default:e.withCtx(()=>[e.createVNode(u,{name:"warning",size:"28px",color:"warning",class:"q-mr-sm"}),t[31]||(t[31]=e.createElementVNode("span",{class:"text-h6"},"Confirm Action",-1))]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[32]||(t[32]=[e.createTextVNode(" Divert auxiliary power to forward shields? This will reduce life support to minimum levels on decks 7 through 12. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{class:"ghost",label:"Cancel"},null,512),[[E]]),e.withDirectives(e.createVNode(r,{color:"negative",label:"Confirm"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.persistent,"onUpdate:modelValue":t[5]||(t[5]=S=>n.persistent=S),persistent:""},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[33]||(t[33]=[e.createElementVNode("div",{class:"text-h6"},"Authorization Required",-1)])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[34]||(t[34]=[e.createTextVNode(" This dialog cannot be dismissed by clicking outside or pressing ESC. Enter command override code. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"accent",label:"Override"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createElementVNode("div",RO,[t[35]||(t[35]=e.createElementVNode("span",{class:"jShowcase_title"},"Positions",-1)),e.createElementVNode("div",MO,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.positions,S=>(e.openBlock(),e.createBlock(r,{key:S,color:"info",label:S,onClick:A=>s.openPositioned(S)},null,8,["label","onClick"]))),128))])]),e.createVNode(d,{modelValue:n.positioned,"onUpdate:modelValue":t[6]||(t[6]=S=>n.positioned=S),position:n.positionValue},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createElementVNode("div",UO,"Position: "+e.toDisplayString(n.positionValue),1)]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createTextVNode(" Dialog anchored to the "+e.toDisplayString(n.positionValue)+" of the viewport. ",1)]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"info",label:"Close"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue","position"]),e.createElementVNode("div",HO,[t[36]||(t[36]=e.createElementVNode("span",{class:"jShowcase_title"},"Sizes",-1)),e.createElementVNode("div",GO,[e.createVNode(r,{color:"warning",label:"Maximized",onClick:t[7]||(t[7]=S=>n.maximized=!0)}),e.createVNode(r,{color:"warning",label:"Full Width",onClick:t[8]||(t[8]=S=>n.fullWidth=!0)}),e.createVNode(r,{color:"negative",label:"Seamless",onClick:t[9]||(t[9]=S=>n.seamless=!0)})])]),e.createVNode(d,{modelValue:n.maximized,"onUpdate:modelValue":t[10]||(t[10]=S=>n.maximized=S),maximized:""},{default:e.withCtx(()=>[e.createVNode(m,{class:"showcaseDialog_cardMax"},{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center"},{default:e.withCtx(()=>[t[37]||(t[37]=e.createElementVNode("span",{class:"text-h6"},"Maximized Dialog",-1)),e.createVNode(g),e.withDirectives(e.createVNode(r,{class:"ghost",icon:"close"},null,512),[[E]])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[38]||(t[38]=[e.createTextVNode(" This dialog fills the entire viewport. ",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.fullWidth,"onUpdate:modelValue":t[11]||(t[11]=S=>n.fullWidth=S),"full-width":""},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[39]||(t[39]=[e.createElementVNode("div",{class:"text-h6"},"Full Width",-1)])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[40]||(t[40]=[e.createTextVNode(" Spans the full width of the viewport. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"warning",label:"Close"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.seamless,"onUpdate:modelValue":t[12]||(t[12]=S=>n.seamless=S),seamless:"",position:"bottom"},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center"},{default:e.withCtx(()=>[e.createVNode(u,{name:"info",size:"24px",color:"info",class:"q-mr-sm"}),t[41]||(t[41]=e.createElementVNode("span",null,"Seamless — no backdrop, page remains interactive.",-1)),e.createVNode(g),e.withDirectives(e.createVNode(r,{class:"ghost",icon:"close","icon-size":"14px"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createElementVNode("div",WO,[t[42]||(t[42]=e.createElementVNode("span",{class:"jShowcase_title"},"Scroll Handling",-1)),e.createElementVNode("div",JO,[e.createVNode(r,{color:"primary",label:"Scrollable Content",onClick:t[13]||(t[13]=S=>n.scrollable=!0)}),e.createVNode(r,{color:"accent",label:"Sticky Header/Footer",onClick:t[14]||(t[14]=S=>n.stickyScroll=!0)}),e.createVNode(r,{color:"secondary",label:"Long Form",onClick:t[15]||(t[15]=S=>n.longForm=!0)})])]),e.createVNode(d,{modelValue:n.scrollable,"onUpdate:modelValue":t[16]||(t[16]=S=>n.scrollable=S),style:{display:"block"}},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[43]||(t[43]=[e.createElementVNode("div",{class:"text-h6"},"Ship Systems Log",-1)])]),_:1}),e.createVNode(b),e.createVNode(i,{class:"scroll"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(122,S=>e.createElementVNode("p",{key:S},"Log entry "+e.toDisplayString(S)+": Routine diagnostic of subsystem "+e.toDisplayString(String.fromCharCode(64+S))+". All parameters within operational tolerance. Variance from baseline: "+e.toDisplayString((Math.random()*2).toFixed(3))+"%. Timestamp: stardate "+e.toDisplayString(41e3+S*7)+"."+e.toDisplayString(S)+".",1)),64))]),_:1}),e.createVNode(b),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"primary",label:"Close"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.stickyScroll,"onUpdate:modelValue":t[18]||(t[18]=S=>n.stickyScroll=S)},{default:e.withCtx(()=>[e.createVNode(m,{style:{"min-width":"500px","max-width":"80vw"}},{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center q-pb-none"},{default:e.withCtx(()=>[t[44]||(t[44]=e.createElementVNode("div",{class:"text-h6"},"Crew Manifest",-1)),e.createVNode(g),e.withDirectives(e.createVNode(r,{class:"ghost",icon:"close"},null,512),[[E]])]),_:1}),e.createVNode(b,{class:"q-mt-sm"}),e.createVNode(i,{style:{"max-height":"50vh"},class:"scroll"},{default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.crewList,(S,A)=>(e.openBlock(),e.createBlock(f,{key:A},{default:e.withCtx(()=>[e.createVNode(w,{avatar:""},{default:e.withCtx(()=>[e.createVNode(u,{name:S.icon,color:"accent"},null,8,["name"])]),_:2},1024),e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.name),1)]),_:2},1024),e.createVNode(C,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.role),1)]),_:2},1024)]),_:2},1024),e.createVNode(w,{side:""},{default:e.withCtx(()=>[e.createVNode(Q,{outline:"",color:S.status==="Active"?"positive":"warning",label:S.status},null,8,["color","label"])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1}),e.createVNode(x,{showing:n.isLoading},{default:e.withCtx(()=>[e.createVNode(v,{size:"50px",color:"primary"})]),_:1},8,["showing"]),e.createVNode(b),e.createVNode(i,{class:"row justify-between items-center q-py-sm"},{default:e.withCtx(()=>[e.createElementVNode("span",YO,e.toDisplayString(n.crewList.length)+" officers",1),e.createVNode(r,{class:"ghost",icon:"refresh",label:"Toggle",onClick:t[17]||(t[17]=S=>n.isLoading=!n.isLoading)}),e.withDirectives(e.createVNode(r,{color:"accent",icon:"star",label:"Acknowledge"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.longForm,"onUpdate:modelValue":t[27]||(t[27]=S=>n.longForm=S)},{default:e.withCtx(()=>[e.createVNode(m,{style:{"min-width":"33vw","max-width":"80vw"}},{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center q-pb-none"},{default:e.withCtx(()=>[t[45]||(t[45]=e.createElementVNode("div",{class:"text-h6"},"Mission Parameters",-1)),e.createVNode(g),e.withDirectives(e.createVNode(r,{class:"ghost",icon:"close"},null,512),[[E]])]),_:1}),e.createVNode(b,{class:"q-mt-sm"}),e.createVNode(i,{class:"scroll",style:{"max-height":"300px"}},{default:e.withCtx(()=>[e.createVNode(k,{modelValue:n.form.name,"onUpdate:modelValue":t[19]||(t[19]=S=>n.form.name=S),label:"Mission name",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.sector,"onUpdate:modelValue":t[20]||(t[20]=S=>n.form.sector=S),label:"Target sector",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.objective,"onUpdate:modelValue":t[21]||(t[21]=S=>n.form.objective=S),label:"Primary objective",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.secondary,"onUpdate:modelValue":t[22]||(t[22]=S=>n.form.secondary=S),label:"Secondary objective",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(B,{modelValue:n.form.priority,"onUpdate:modelValue":t[23]||(t[23]=S=>n.form.priority=S),options:["Critical","High","Standard","Low"],label:"Priority",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.crew,"onUpdate:modelValue":t[24]||(t[24]=S=>n.form.crew=S),label:"Crew count",type:"number",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.duration,"onUpdate:modelValue":t[25]||(t[25]=S=>n.form.duration=S),label:"Estimated duration (days)",type:"number",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.notes,"onUpdate:modelValue":t[26]||(t[26]=S=>n.form.notes=S),label:"Additional notes",type:"textarea",outlined:"",dense:"",autogrow:""},null,8,["modelValue"])]),_:1}),e.createVNode(b),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{class:"ghost",label:"Cancel"},null,512),[[E]]),e.withDirectives(e.createVNode(r,{color:"secondary",label:"Submit"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}const KO=Object.freeze(Object.defineProperty({__proto__:null,default:j(FO,[["render",ZO]])},Symbol.toStringTag,{value:"Module"})),XO={name:"ShowcaseActiveList",components:{QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel,QIcon:V.QIcon,QAvatar:V.QAvatar},label:"Selectable & Multi-line",icon:"list",importName:"QList",importFrom:"quasar",order:3,data(){return{selected:"recon",missions:[{id:"recon",name:"Recon Sweep",icon:"radar",desc:"Deep space reconnaissance of uncharted sector"},{id:"escort",name:"Convoy Escort",icon:"local_shipping",desc:"Protect supply convoy through hostile corridor"},{id:"rescue",name:"Search & Rescue",icon:"sos",desc:"Locate missing vessel near asteroid belt"},{id:"survey",name:"Planetary Survey",icon:"public",desc:"Catalog resources on newly discovered exoplanet"}],messages:[{from:"Admiral Zhao",subject:"Priority Alpha",body:"Fleet command has issued new coordinates. Rendezvous at waypoint Echo-7 by 0600. Full tactical readiness required.",time:"14:32",starred:!0},{from:"Engineering Bay",subject:"Maintenance Complete",body:"Port-side thruster realignment finished ahead of schedule. All subsystems passed diagnostics. Ready for departure.",time:"12:15",starred:!1},{from:"Science Div.",subject:"Anomaly Detected",body:"Unusual electromagnetic signature detected at bearing 270 mark 15. Recommend investigation when schedule permits.",time:"09:48",starred:!0}]}}},eF={class:"jShowcase_row jShowcase_column"},tF={class:"jShowcase_group"},oF={class:"jShowcase_group"};function nF(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItemLabel"),m=e.resolveComponent("QItem"),d=e.resolveComponent("QList"),u=e.resolveComponent("QAvatar"),g=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("div",eF,[e.createElementVNode("div",tF,[t[0]||(t[0]=e.createElementVNode("span",{class:"jShowcase_title"},"Selectable List",-1)),e.createVNode(d,{bordered:"",separator:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.missions,b=>e.withDirectives((e.openBlock(),e.createBlock(m,{key:b.id,clickable:"",active:n.selected===b.id,style:e.normalizeStyle(n.selected===b.id?"background: color-mix(in srgb, var(--q-accent) 10%, transparent)":""),onClick:w=>n.selected=b.id},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:b.icon,color:n.selected===b.id?"accent":"grey"},null,8,["name","color"])]),_:2},1024),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{class:e.normalizeClass({"text-weight-bold":n.selected===b.id})},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.name),1)]),_:2},1032,["class"]),e.createVNode(c,{caption:"",lines:"1"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.desc),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,{side:""},{default:e.withCtx(()=>[n.selected===b.id?(e.openBlock(),e.createBlock(r,{key:0,name:"radio_button_checked",color:"accent"})):(e.openBlock(),e.createBlock(r,{key:1,name:"radio_button_unchecked",color:"grey-7"}))]),_:2},1024)]),_:2},1032,["active","style","onClick"])),[[g]])),128))]),_:1})]),e.createElementVNode("div",oF,[t[1]||(t[1]=e.createElementVNode("span",{class:"jShowcase_title"},"Multi-line Items",-1)),e.createVNode(d,{bordered:"",style:{background:"transparent","border-color":"color-mix(in srgb, currentColor 15%, transparent)","border-radius":"4px"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.messages,b=>e.withDirectives((e.openBlock(),e.createBlock(m,{key:b.from,clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:"",top:""},{default:e.withCtx(()=>[e.createVNode(u,{color:"primary","text-color":"white"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.from[0]),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{overline:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.from),1)]),_:2},1024),e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.subject),1)]),_:2},1024),e.createVNode(c,{caption:"",lines:"2"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.body),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,{side:"",top:""},{default:e.withCtx(()=>[e.createVNode(c,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.time),1)]),_:2},1024),b.starred?(e.openBlock(),e.createBlock(r,{key:0,name:"star",color:"warning",size:"18px",class:"q-mt-xs"})):e.createCommentVNode("",!0)]),_:2},1024)]),_:2},1024)),[[g]])),128))]),_:1})])])}const aF=Object.freeze(Object.defineProperty({__proto__:null,default:j(XO,[["render",nF]])},Symbol.toStringTag,{value:"Module"})),rF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/list-and-list-items"},props:{bordered:{extends:"bordered"},dense:{extends:"dense"},separator:{type:"Boolean",desc:"Applies a separator between contained items",category:"content"},dark:{extends:"dark"},padding:{type:"Boolean",desc:"Applies a material design-like padding on top and bottom",category:"content"},tag:{extends:"tag",default:"'div'",examples:["'div'","'ul'","'ol'"],addedIn:"v2.10.1"}},slots:{default:{desc:"This is where the content goes; Suggestion: QItem, QExpansionItem, ..."}}},sF={mixins:["composables/private.use-router-link/use-router-link"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/list-and-list-items"},props:{active:{type:["Boolean","null"],default:"null",desc:"Put item into 'active' state",category:"state"},dark:{extends:"dark"},clickable:{type:"Boolean",desc:"Is QItem clickable? If it's the case, then it will add hover effects and emit 'click' events",category:"state"},dense:{extends:"dense"},"inset-level":{type:"Number",desc:"Apply an inset; Useful when avatar/left side is missing but you want to align content with other items that do have a left side, or when you're building a menu",examples:["1"],category:"content"},tabindex:{extends:"tabindex"},tag:{extends:"tag",desc:"HTML tag to render; Suggestion: use 'label' when encapsulating a QCheckbox/QRadio/QToggle so that when user clicks/taps on the whole item it will trigger a model change for the mentioned components",default:"'div'",examples:["'a'","'label'","'div'"]},"manual-focus":{type:"Boolean",desc:"Put item into a manual focus state; Enables 'focused' prop which will determine if item is focused or not, rather than relying on native hover/focus states",category:"state"},focused:{type:"Boolean",desc:"Determines focus state, ONLY if 'manual-focus' is enabled / set to true",category:"state"}},slots:{default:{desc:"This is where QItem's content goes"}},events:{click:{desc:"Emitted when the component is clicked",params:{evt:{extends:"evt",desc:"JS event object; If you are using route navigation ('to'/'replace' props) and you want to cancel navigation then call evt.preventDefault() synchronously in your event handler"},go:{type:"Function",desc:"Available ONLY if you are using route navigation ('to'/'replace' props); When you need to control the time at which the component should trigger the route navigation then call evt.preventDefault() synchronously and then call this function at your convenience; Useful if you have async work to be done before the actual route navigation or if you want to redirect somewhere else",required:!1,addedIn:"v2.9",params:{opts:{type:"Object",desc:"Optional options",required:!1,definition:{to:{type:["String","Object"],desc:"Equivalent to Vue Router <router-link> 'to' property; Specify it explicitly otherwise it will be set with same value as component's 'to' prop",required:!1,examples:["'/home/dashboard'","{ name: 'my-route-name' }"]},replace:{type:"Boolean",desc:"Equivalent to Vue Router <router-link> 'replace' property; Specify it explicitly otherwise it will be set with same value as component's 'replace' prop",required:!1},returnRouterError:{type:"Boolean",desc:"Return the router error, if any; Otherwise the returned Promise will always fulfill",required:!1}}}},returns:{type:"Promise<any>",desc:"Returns the router's navigation promise"}}}},keyup:{internal:!0}}},iF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/list-and-list-items"},props:{avatar:{type:"Boolean",desc:"Render an avatar item side (does not needs 'side' prop to be set)",category:"content"},thumbnail:{type:"Boolean",desc:"Render a thumbnail item side (does not needs 'side' prop to be set)",category:"content"},side:{type:"Boolean",desc:"Renders as a side of the item",category:"content"},top:{type:"Boolean",desc:"Align content to top (useful for multi-line items)",category:"content"},"no-wrap":{type:"Boolean",desc:"Do not wrap text (useful for item's main content)",category:"content"}},slots:{default:{desc:"Section's actual content"}}},lF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/list-and-list-items"},props:{overline:{type:"Boolean",desc:"Renders an overline label",category:"content"},caption:{type:"Boolean",desc:"Renders a caption label",category:"content"},header:{type:"Boolean",desc:"Renders a header label",category:"content"},lines:{type:["Number","String"],desc:"Apply ellipsis when there's not enough space to render on the specified number of lines;",category:"content|behavior"}},slots:{default:{desc:"The content of the label; Suggestion: text"}}},vo={mixins:["composables/private.use-model-toggle/use-model-toggle","composables/private.use-router-link/use-router-link"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/expansion-item"},props:{icon:{extends:"icon"},"expand-icon":{extends:"icon"},"expanded-icon":{extends:"icon",desc:"Expand icon name (following Quasar convention) for when QExpansionItem is expanded; When used, it also disables the rotation animation of the expand icon; Make sure you have the icon library installed unless you are using 'img:' prefix"},"expand-icon-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Apply custom class(es) to the expand icon item section",examples:["'text-purple'"],category:"style"},"toggle-aria-label":{type:"String",desc:"aria-label to be used on the expansion toggle element",examples:["'Open details'"],category:"accessibility",addedIn:"v2.8.4"},label:{type:"String",desc:"Header label (unless using 'header' slot)",examples:["'My expansion item'"],category:"content"},"label-lines":{type:["Number","String"],desc:"Apply ellipsis when there's not enough space to render on the specified number of lines; If more than one line specified, then it will only work on webkit browsers because it uses the '-webkit-line-clamp' CSS property!",examples:["1","'3'"],category:"content"},caption:{type:"String",desc:"Header sub-label (unless using 'header' slot)",examples:["'Unread message: 5'"],category:"content"},"caption-lines":{type:["Number","String"],desc:"Apply ellipsis when there's not enough space to render on the specified number of lines; If more than one line specified, then it will only work on webkit browsers because it uses the '-webkit-line-clamp' CSS property!",examples:["1","'3'"],category:"content"},dark:{extends:"dark"},dense:{extends:"dense"},duration:{type:"Number",desc:"Animation duration (in milliseconds)",default:"300",passthrough:"child",category:"behavior"},"header-inset-level":{type:"Number",desc:"Apply an inset to header (unless using 'header' slot); Useful when header avatar/left side is missing but you want to align content with other items that do have a left side, or when you're building a menu",examples:["1"],category:"content"},"content-inset-level":{type:"Number",desc:"Apply an inset to content (changes content padding)",examples:["1"],category:"content"},"expand-separator":{type:"Boolean",desc:"Apply a top and bottom separator when expansion item is opened",category:"content"},"default-opened":{type:"Boolean",desc:"Puts expansion item into open state on initial render; Overridden by v-model if used",category:"behavior"},"hide-expand-icon":{type:"Boolean",desc:"Do not show the expand icon",category:"content",addedIn:"v2.8.4"},"expand-icon-toggle":{type:"Boolean",desc:"Applies the expansion events to the expand icon only and not to the whole header",category:"behavior"},"switch-toggle-side":{type:"Boolean",desc:"Switch expand icon side (from default 'right' to 'left')",category:"content"},"dense-toggle":{type:"Boolean",desc:"Use dense mode for expand icon",category:"style"},group:{type:"String",desc:"Register expansion item into a group (unique name that must be applied to all expansion items in that group) for coordinated open/close state within the group a.k.a. 'accordion mode'",examples:["'my-emails'"],category:"content|behavior"},popup:{type:"Boolean",desc:"Put expansion list into 'popup' mode",category:"behavior"},"header-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Apply custom style to the header",examples:["'background: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"header-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Apply custom class(es) to the header",examples:["'my-custom-class'","{ 'my-custom-class': true }"],category:"style"}},slots:{default:{desc:"Slot used for expansion item's content"},header:{desc:"Slot used for overriding default header",scope:{expanded:{type:"Boolean",desc:"QExpansionItem expanded status",addedIn:"v2.7.6"},detailsId:{type:"String",desc:"QExpansionItem details panel id (for use in aria-controls)",addedIn:"v2.8.4"},show:{type:"Function",desc:"Triggers component to show",params:{evt:{type:"Object",required:!1,desc:"JS event object"}},returns:null,addedIn:"v2.8.4"},hide:{type:"Function",desc:"Triggers component to hide",params:{evt:{type:"Object",required:!1,desc:"JS event object"}},returns:null,addedIn:"v2.8.4"},toggle:{type:"Function",desc:"Triggers component to toggle between show/hide",params:{evt:{type:"Object",required:!1,desc:"JS event object"}},returns:null,addedIn:"v2.8.4"}}}},events:{"after-show":{extends:"after-show"},"after-hide":{extends:"after-hide"},click:{internal:!0}}},cF={name:"ShowcaseBasicList",components:{QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel,QIcon:V.QIcon,QBadge:V.QBadge,QExpansionItem:V.QExpansionItem,QCard:V.QCard,QCardSection:V.QCardSection},label:"Basic List",icon:"list",order:1,apiJson:[{name:"QList",json:rF},{name:"QItem",json:sF},{name:"QItemSection",json:iF},{name:"QItemLabel",json:lF},{name:"QExpansionItem",json:vo}],importName:"QList",importFrom:"quasar"},dF={class:"jShowcase_row jShowcase_column"},pF={class:"jShowcase_group"};function mF(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItemLabel"),m=e.resolveComponent("QItem"),d=e.resolveComponent("QBadge"),u=e.resolveComponent("QCardSection"),g=e.resolveComponent("QCard"),b=e.resolveComponent("QExpansionItem"),w=e.resolveComponent("QList"),C=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("div",dF,[e.createElementVNode("div",pF,[t[9]||(t[9]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic List",-1)),e.createVNode(w,{bordered:"",separator:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(m,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"rocket_launch",color:"primary"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Launch Sequence",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode("Initiate main thruster ignition",-1)])]),_:1})]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"chevron_right",color:"grey"})]),_:1})]),_:1})),[[C]]),e.withDirectives((e.openBlock(),e.createBlock(m,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"shield",color:"positive"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode("Shield Matrix",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("Deflector array at 98% capacity",-1)])]),_:1})]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(d,{color:"positive",label:"ONLINE"})]),_:1})]),_:1})),[[C]]),e.withDirectives((e.openBlock(),e.createBlock(m,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"sensors",color:"warning"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Long Range Sensors",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Scanning sector 7-G for anomalies",-1)])]),_:1})]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(d,{color:"warning",label:"SCANNING"})]),_:1})]),_:1})),[[C]]),e.withDirectives((e.openBlock(),e.createBlock(m,{clickable:"",disable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"bolt",color:"grey"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Warp Drive",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("Cooldown in progress — 12 min remaining",-1)])]),_:1})]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(d,{color:"negative",label:"OFFLINE"})]),_:1})]),_:1})),[[C]]),e.createVNode(b,{icon:"groups",label:"Crew Manifest",caption:"42 officers, 388 enlisted"},{default:e.withCtx(()=>[e.createVNode(g,null,{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" All duty stations filled. 3 officers on shore leave. Next rotation begins stardate 41028.7. ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})])])}const uF=Object.freeze(Object.defineProperty({__proto__:null,default:j(cF,[["render",mF]])},Symbol.toStringTag,{value:"Module"})),hF={name:"ShowcaseDenseList",components:{QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel,QAvatar:V.QAvatar},label:"Dense List",icon:"list",importName:"QList",importFrom:"quasar",order:2,data(){return{crewLog:[{name:"Cdr. Voss",role:"Captain",icon:"military_tech",color:"primary"},{name:"Lt. Nakamura",role:"Pilot",icon:"flight",color:"accent"},{name:"Dr. Okafor",role:"Medical",icon:"healing",color:"positive"},{name:"Eng. Petrov",role:"Engineer",icon:"build",color:"warning"},{name:"Spc. Reyes",role:"Science",icon:"science",color:"secondary"}],navLog:[{coord:"α Centauri B-3",note:"Orbital insertion complete",time:"08:12"},{coord:"Sector 9-Kilo",note:"Asteroid field traversal",time:"06:45"},{coord:"Relay Station 7",note:"Fuel resupply",time:"03:22"},{coord:"Nebula NGC-1277",note:"Sensor sweep logged",time:"01:10"}]}}},fF={class:"jShowcase_row jShowcase_column"},gF={class:"jShowcase_group"},bF={class:"jShowcase_group"};function yF(o,t,a,l,n,s){const r=e.resolveComponent("QAvatar"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItemLabel"),m=e.resolveComponent("QItem"),d=e.resolveComponent("QList"),u=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("div",fF,[e.createElementVNode("div",gF,[t[0]||(t[0]=e.createElementVNode("span",{class:"jShowcase_title"},"Dense List",-1)),e.createVNode(d,{dense:"",bordered:"",separator:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.crewLog,g=>e.withDirectives((e.openBlock(),e.createBlock(m,{key:g.name,clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{size:"18px",color:g.color,"text-color":"white",icon:g.icon},null,8,["color","icon"])]),_:2},1024),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.name),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(c,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.role),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)),[[u]])),128))]),_:1})]),e.createElementVNode("div",bF,[t[2]||(t[2]=e.createElementVNode("span",{class:"jShowcase_title"},"Dense with Padding",-1)),e.createVNode(d,{dense:"",bordered:"",padding:""},{default:e.withCtx(()=>[e.createVNode(c,{header:"",class:"jShowcase_title"},{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode("Navigation Log",-1)])]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.navLog,(g,b)=>e.withDirectives((e.openBlock(),e.createBlock(m,{key:b,clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.coord),1)]),_:2},1024),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.note),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,{side:"",top:""},{default:e.withCtx(()=>[e.createVNode(c,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.time),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)),[[u]])),128))]),_:1})])])}const _F=Object.freeze(Object.defineProperty({__proto__:null,default:j(hF,[["render",yF]])},Symbol.toStringTag,{value:"Module"})),wF={name:"ShowcaseExpansionList",components:{QList:V.QList,QExpansionItem:V.QExpansionItem,QCard:V.QCard,QCardSection:V.QCardSection},label:"Expansion List",icon:"expand_more",order:4,apiJson:vo,importName:"QExpansionItem",importFrom:"quasar"},xF={class:"jShowcase_row jShowcase_column"},vF={class:"jShowcase_group"},kF={class:"jShowcase_group"},SF={class:"jShowcase_group"};function QF(o,t,a,l,n,s){const r=e.resolveComponent("QCardSection"),i=e.resolveComponent("QCard"),c=e.resolveComponent("QExpansionItem"),m=e.resolveComponent("QList");return e.openBlock(),e.createElementBlock("div",xF,[e.createElementVNode("div",vF,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createVNode(m,{bordered:"",class:"rounded-borders showcaseExpansion_list"},{default:e.withCtx(()=>[e.createVNode(c,{icon:"rocket_launch",label:"Launch Sequence",caption:"Pre-flight checklist"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode(" Fuel cells primed, navigation locked, launch window open in T-minus 04:22. ",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{icon:"shield",label:"Shield Matrix",caption:"Deflector array diagnostics"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode(" Forward shields: 98%. Aft shields: 94%. Last recharge cycle completed 00:12:04 ago. ",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{icon:"sensors",label:"Long Range Sensors",caption:"Scanning sector 7-G"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode(" No hostile signatures detected. Three unidentified objects flagged for review. ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),e.createElementVNode("div",kF,[t[7]||(t[7]=e.createElementVNode("span",{class:"jShowcase_title"},"Accordion (only one open)",-1)),e.createVNode(m,{bordered:"",class:"rounded-borders showcaseExpansion_list"},{default:e.withCtx(()=>[e.createVNode(c,{group:"crew",icon:"military_tech",label:"Command","default-opened":""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Captain, First Officer, Tactical.",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{group:"crew",icon:"engineering",label:"Engineering"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Chief Engineer, warp core team, damage control.",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{group:"crew",icon:"medical_services",label:"Medical"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Chief Medical Officer, nurses, biolab staff.",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),e.createElementVNode("div",SF,[t[10]||(t[10]=e.createElementVNode("span",{class:"jShowcase_title"},"Styled Headers",-1)),e.createVNode(m,{bordered:"",class:"rounded-borders showcaseExpansion_list"},{default:e.withCtx(()=>[e.createVNode(c,{"expand-separator":"",icon:"warning",label:"Priority Alert",caption:"Critical — acknowledge required","header-class":"text-negative"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" Hull breach detected on deck 12. Emergency bulkheads engaged. ",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{"expand-separator":"",icon:"info",label:"System Notice",caption:"Informational","header-class":"text-info",dense:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode(" Scheduled maintenance window begins at 02:00 stardate 41024.3. ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})])])}const CF=Object.freeze(Object.defineProperty({__proto__:null,default:j(wF,[["render",QF],["__scopeId","data-v-13c2a031"]])},Symbol.toStringTag,{value:"Module"})),NF={mixins:["composables/private.use-model-toggle/use-model-toggle","composables/private.use-portal/use-portal","composables/private.use-anchor/use-anchor","composables/private.use-transition/use-transition"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/menu"},props:{dark:{extends:"dark"},fit:{type:"Boolean",desc:"Allows the menu to match at least the full width of its target",category:"position"},cover:{type:"Boolean",desc:"Allows the menu to cover its target. When used, the 'self' and 'fit' props are no longer effective",category:"position"},anchor:{type:"String",desc:"Two values setting the starting position or anchor point of the menu relative to its target",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],category:"position"},self:{type:"String",desc:"Two values setting the menu's own position relative to its target",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],category:"position"},offset:{type:"Array",desc:"An array of two numbers to offset the menu horizontally and vertically in pixels",examples:["[8, 8]","[5, 10]"],category:"position"},"scroll-target":{extends:"scroll-target"},"touch-position":{type:"Boolean",desc:"Allows for the target position to be set by the mouse position, when the target of the menu is either clicked or touched",category:"behavior"},persistent:{type:"Boolean",desc:"Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key; Also, an app route change won't dismiss it",category:"behavior"},"no-esc-dismiss":{type:"Boolean",desc:"User cannot dismiss the popup by hitting ESC key; No need to set it if 'persistent' prop is also set",category:"behavior",addedIn:"v2.18"},"no-route-dismiss":{type:"Boolean",desc:"Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set",category:"behavior"},"auto-close":{type:"Boolean",desc:"Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap",category:"behavior"},"separate-close-popup":{type:"Boolean",desc:"Separate from parent menu, marking it as a separate closing point for v-close-popup (without this, chained menus close all together)",category:"behavior"},square:{type:"Boolean",desc:"Forces content to have squared borders",category:"style"},"no-refocus":{type:"Boolean",desc:"(Accessibility) When Menu gets hidden, do not refocus on the DOM element that previously had focus",category:"behavior"},"no-focus":{type:"Boolean",desc:"(Accessibility) When Menu gets shown, do not switch focus on it",category:"behavior"},"max-height":{extends:"size",type:["String","null"],default:"null",desc:"The maximum height of the menu; Size in CSS units, including unit name",category:"style"},"max-width":{extends:"size",type:["String","null"],default:"null",desc:"The maximum width of the menu; Size in CSS units, including unit name",category:"style"}},slots:{default:{extends:"default"}},events:{"escape-key":{desc:"Emitted when ESC key is pressed; Does not get emitted if Menu is 'persistent' or it has 'no-esc-dismiss' set"},click:{internal:!0}},methods:{updatePosition:{desc:"There are some custom scenarios for which Quasar cannot automatically reposition the menu without significant performance drawbacks so the optimal solution is for you to call this method when you need it",params:null,returns:null},focus:{desc:"Focus menu; if you have content with autofocus attribute, it will directly focus it",params:null,returns:null}}},IF={name:"ShowcaseMenu",components:{QBtn:V.QBtn,QMenu:V.QMenu,QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QIcon:V.QIcon,QSeparator:V.QSeparator},label:"Menu",icon:"menu",apiJson:NF,importName:"QMenu",importFrom:"quasar"},VF={class:"jShowcase_row jShowcase_column"},EF={class:"jShowcase_group"},BF={class:"jShowcase_items"},TF={class:"jShowcase_group"},AF={class:"jShowcase_items"},qF={class:"contextTarget"},DF={class:"jShowcase_group"},jF={class:"jShowcase_items"},LF={class:"jShowcase_group"},OF={class:"jShowcase_items"},FF={class:"jShowcase_group"},zF={class:"jShowcase_items"},PF={class:"jShowcase_group"},$F={class:"jShowcase_items"};function RF(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItem"),m=e.resolveComponent("QSeparator"),d=e.resolveComponent("QList"),u=e.resolveComponent("QMenu"),g=e.resolveComponent("QBtn"),b=e.resolveDirective("close-popup");return e.openBlock(),e.createElementBlock("div",VF,[e.createElementVNode("div",EF,[t[16]||(t[16]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic with Submenus",-1)),e.createElementVNode("div",BF,[e.createVNode(g,{color:"primary",label:"File"},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(d,{dense:"",style:{"min-width":"150px"}},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"folder_open"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Open...",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"note_add"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode("New File",-1)])]),_:1})]),_:1})),[[b]]),e.createVNode(m),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"ios_share"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode("Export As",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("PDF",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("CSV",-1)])]),_:1})]),_:1})),[[b]]),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Image",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{"auto-close":"",anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("PNG",-1)])]),_:1})]),_:1}),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("JPEG",-1)])]),_:1})]),_:1}),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("SVG",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),e.createVNode(m),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"close"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Quit",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"secondary",icon:"more_vert",round:"",flat:""},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(d,{dense:"",style:{"min-width":"140px"}},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("Profile",-1)])]),_:1})]),_:1})),[[b]]),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("Notifications",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Email",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Push",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode("SMS",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(m),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode("Logout",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",TF,[t[30]||(t[30]=e.createElementVNode("span",{class:"jShowcase_title"},"Context Menu",-1)),e.createElementVNode("div",AF,[e.createElementVNode("div",qF,[t[29]||(t[29]=e.createTextVNode(" Right-click here ",-1)),e.createVNode(u,{"context-menu":""},{default:e.withCtx(()=>[e.createVNode(d,{dense:"",style:{"min-width":"150px"}},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"content_cut"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("Cut",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"content_copy"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode("Copy",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"content_paste"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("Paste",-1)])]),_:1})]),_:1})),[[b]]),e.createVNode(m),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"sort"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("Sort By",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("Name",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("Date Modified",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("Size",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[24]||(t[24]=[e.createTextVNode("Type",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"visibility"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("View",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode("Grid",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("List",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[28]||(t[28]=[e.createTextVNode("Compact",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})])])]),e.createElementVNode("div",DF,[t[39]||(t[39]=e.createElementVNode("span",{class:"jShowcase_title"},"Positioning",-1)),e.createElementVNode("div",jF,[e.createVNode(g,{color:"primary",label:"Bottom Left"},{default:e.withCtx(()=>[e.createVNode(u,{anchor:"bottom left",self:"top left"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[31]||(t[31]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[32]||(t[32]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"accent",label:"Top Right"},{default:e.withCtx(()=>[e.createVNode(u,{anchor:"top right",self:"bottom right"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[33]||(t[33]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[34]||(t[34]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"secondary",label:"Fit Width",style:{"min-width":"160px"}},{default:e.withCtx(()=>[e.createVNode(u,{fit:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[35]||(t[35]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[36]||(t[36]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"info",label:"Cover"},{default:e.withCtx(()=>[e.createVNode(u,{cover:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[37]||(t[37]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[38]||(t[38]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",LF,[t[46]||(t[46]=e.createElementVNode("span",{class:"jShowcase_title"},"Behavior",-1)),e.createElementVNode("div",OF,[e.createVNode(g,{color:"primary",label:"Auto Close"},{default:e.withCtx(()=>[e.createVNode(u,{"auto-close":""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[40]||(t[40]=[e.createTextVNode("Click anywhere to close",-1)])]),_:1})]),_:1}),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[41]||(t[41]=[e.createTextVNode("No v-close-popup needed",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"negative",label:"Persistent"},{default:e.withCtx(()=>[e.createVNode(u,{persistent:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[42]||(t[42]=[e.createTextVNode("Must click item to close",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[43]||(t[43]=[e.createTextVNode("ESC won't close either",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"accent",label:"Touch Position"},{default:e.withCtx(()=>[e.createVNode(u,{"touch-position":""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[44]||(t[44]=[e.createTextVNode("Opens at click position",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[45]||(t[45]=[e.createTextVNode("Not anchored to button",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",FF,[t[53]||(t[53]=e.createElementVNode("span",{class:"jShowcase_title"},"Transitions",-1)),e.createElementVNode("div",zF,[e.createVNode(g,{color:"primary",label:"Slide Down"},{default:e.withCtx(()=>[e.createVNode(u,{"transition-show":"slide-down","transition-hide":"slide-up"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[47]||(t[47]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[48]||(t[48]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"secondary",label:"Scale"},{default:e.withCtx(()=>[e.createVNode(u,{"transition-show":"scale","transition-hide":"scale"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[49]||(t[49]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[50]||(t[50]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"accent",label:"Jump Down"},{default:e.withCtx(()=>[e.createVNode(u,{"transition-show":"jump-down","transition-hide":"jump-up"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[51]||(t[51]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[52]||(t[52]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",PF,[t[54]||(t[54]=e.createElementVNode("span",{class:"jShowcase_title"},"Scrollable",-1)),e.createElementVNode("div",$F,[e.createVNode(g,{color:"primary",label:"Max Height 200px"},{default:e.withCtx(()=>[e.createVNode(u,{"max-height":"200px"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(12,w=>e.withDirectives(e.createVNode(c,{key:w,clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createTextVNode("Item "+e.toDisplayString(w),1)]),_:2},1024)]),_:2},1024),[[b]])),64))]),_:1})]),_:1})]),_:1})])])])}const MF=Object.freeze(Object.defineProperty({__proto__:null,default:j(IF,[["render",RF],["__scopeId","data-v-260415f5"]])},Symbol.toStringTag,{value:"Module"})),UF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/banner"},props:{"inline-actions":{type:"Boolean",desc:"Display actions on same row as content",category:"content"},dense:{extends:"dense"},rounded:{extends:"rounded"},dark:{extends:"dark"}},slots:{default:{desc:"This is where Banner content goes"},avatar:{desc:"Slot for displaying an avatar (suggestions: QIcon, QAvatar)"},action:{desc:"Slot for Banner action (suggestions: QBtn)"}}},HF={name:"ShowcaseQuasarBanner",components:{QBanner:V.QBanner,QIcon:V.QIcon,QBtn:V.QBtn},label:"Quasar Banner",icon:"dashboard",apiJson:UF,importName:"QBanner",importFrom:"quasar"};function GF(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QBtn"),c=e.resolveComponent("QBanner");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(c,{class:"bg-surface-3 text-bright",rounded:""},{avatar:e.withCtx(()=>[e.createVNode(r,{name:"signal_wifi_off",color:"secondary",size:"sm"})]),action:e.withCtx(()=>[e.createVNode(i,{flat:"",color:"info",label:"Turn on Wifi",outline:""}),e.createVNode(i,{flat:"",color:"secondary",label:"Dismiss"})]),default:e.withCtx(()=>[t[0]||(t[0]=e.createTextVNode(" You have lost connection to the internet. This app is offline. ",-1))]),_:1}),e.createVNode(c,{"inline-actions":"",dense:"",class:"bg-indigo-7 text-white q-mt-sm"},{avatar:e.withCtx(()=>[...t[1]||(t[1]=[e.createElementVNode("img",{src:"https://cdn.quasar.dev/img/mountains.jpg",style:{height:"64px"}},null,-1)])]),action:e.withCtx(()=>[e.createVNode(i,{flat:"",color:"primary",label:"Turn ON Wifi"})]),default:e.withCtx(()=>[t[2]||(t[2]=e.createTextVNode(" You have lost connection to the internet. This app is offline. ",-1))]),_:1})])}const WF=Object.freeze(Object.defineProperty({__proto__:null,default:j(HF,[["render",GF]])},Symbol.toStringTag,{value:"Module"})),JF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/card"},props:{dark:{extends:"dark"},square:{extends:"square"},flat:{extends:"flat"},bordered:{extends:"bordered"},tag:{extends:"tag",default:"'div'",examples:["'div'","'form'"]}},slots:{default:{extends:"default"}}},YF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/card"},props:{horizontal:{type:"Boolean",desc:"Display a horizontal section (will have no padding and can contain other QCardSection)",category:"content"},tag:{extends:"tag",default:"'div'",examples:["'div'","'form'"]}},slots:{default:{extends:"default"}}},ZF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/card"},props:{align:{type:"String",desc:"Specify how to align the actions; For horizontal mode, the default is 'left', while for vertical mode, the default is 'stretch'",default:"# 'left'/'stretch'",__runtimeDefault:!0,values:["'left'","'center'","'right'","'between'","'around'","'evenly'","'stretch'"],category:"content"},vertical:{type:"Boolean",desc:"Display actions one below the other",category:"content"}},slots:{default:{desc:"Suggestions: QBtn"}}},KF={name:"ShowcaseQuasarCard",components:{QCard:V.QCard,QCardSection:V.QCardSection,QCardActions:V.QCardActions,QBtn:V.QBtn},label:"Quasar Card",icon:"dashboard",apiJson:[{name:"QCard",json:JF},{name:"QCardSection",json:YF},{name:"QCardActions",json:ZF}],importName:"QCard",importFrom:"quasar"},XF={class:"jShowcase_row"};function ez(o,t,a,l,n,s){const r=e.resolveComponent("QCardSection"),i=e.resolveComponent("QBtn"),c=e.resolveComponent("QCardActions"),m=e.resolveComponent("QCard");return e.openBlock(),e.createElementBlock("div",XF,[e.createVNode(m,{class:"showcaseCard",flat:"",bordered:""},{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createElementVNode("div",{class:"text-h6"},"Starship Registry",-1),e.createElementVNode("div",{class:"text-subtitle2"},"NCC-1701 — USS Enterprise",-1)])]),_:1}),e.createVNode(r,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode(" A Constitution-class vessel, flagship of the United Federation of Planets. Currently assigned to deep space exploration. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.createVNode(i,{flat:"",color:"primary",label:"Details"}),e.createVNode(i,{flat:"",color:"accent",label:"Hail"})]),_:1})]),_:1})])}const tz=Object.freeze(Object.defineProperty({__proto__:null,default:j(KF,[["render",ez]])},Symbol.toStringTag,{value:"Module"})),oz={mixins:["components/checkbox/use-checkbox"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/checkbox"},props:{"checked-icon":{desc:"The icon to be used when the model is truthy (instead of the default design)",addedIn:"v2.5"},"unchecked-icon":{desc:"The icon to be used when the toggle is falsy (instead of the default design)",addedIn:"v2.5"},"indeterminate-icon":{desc:"The icon to be used when the model is indeterminate (instead of the default design)",addedIn:"v2.5"}}},nz={name:"ShowcaseQuasarCheckbox",components:{QCheckbox:V.QCheckbox},label:"Quasar Checkbox",icon:"edit_note",apiJson:oz,importName:"QCheckbox",importFrom:"quasar",data(){return{nav:!0,comms:!1,life:!0,indet:null}}},az={class:"jShowcase_row showcaseVertical"};function rz(o,t,a,l,n,s){const r=e.resolveComponent("QCheckbox");return e.openBlock(),e.createElementBlock("div",az,[e.createVNode(r,{modelValue:n.nav,"onUpdate:modelValue":t[0]||(t[0]=i=>n.nav=i),label:"Navigation",color:"primary"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.comms,"onUpdate:modelValue":t[1]||(t[1]=i=>n.comms=i),label:"Communications",color:"accent"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.life,"onUpdate:modelValue":t[2]||(t[2]=i=>n.life=i),label:"Life support",color:"positive"},null,8,["modelValue"]),e.createVNode(r,{"model-value":!0,label:"Locked system",color:"info",disable:""}),e.createVNode(r,{modelValue:n.indet,"onUpdate:modelValue":t[3]||(t[3]=i=>n.indet=i),label:"Indeterminate",color:"secondary","toggle-indeterminate":""},null,8,["modelValue"])])}const sz=Object.freeze(Object.defineProperty({__proto__:null,default:j(nz,[["render",rz],["__scopeId","data-v-c3f5fc57"]])},Symbol.toStringTag,{value:"Module"})),iz={mixins:["components/date/use-datetime"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/date"},props:{"model-value":{extends:"model-value",type:["String","Array","Object","null","undefined"],desc:"Date(s) of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive",examples:['# v-model="myDate"','# v-model="[myDate1, myDate2]"','# v-model="[{ from: myDateFrom, to: myDateTo }]"','# v-model="[myDate1, { from: myDateFrom, to: myDateTo }, myDate2]"']},title:{type:"String",desc:"When specified, it overrides the default header title; Makes sense when not in 'minimal' mode",examples:["'Birthday'"],category:"content"},subtitle:{type:"String",desc:"When specified, it overrides the default header subtitle; Makes sense when not in 'minimal' mode",examples:["'John Doe'"],category:"content"},"default-year-month":{type:"String",desc:"The default year and month to display (in YYYY/MM format) when model is unfilled (undefined or null); Please ensure it is within the navigation min/max year-month (if using them)",examples:["'1986/02'"],category:"model"},mask:{default:"'YYYY/MM/DD'",examples:["'YYYY-MM-DD'","'MMMM Do, YYYY'","'YYYY-MM-DD HH:mm:ss'"]},"default-view":{type:"String",desc:"The view which will be displayed by default",default:"'Calendar'",values:["'Calendar'","'Months'","'Years'"],category:"model"},"years-in-month-view":{type:"Boolean",desc:"Show the years selector in months view",category:"behavior"},events:{type:["Array","Function"],desc:"A list of events to highlight on the calendar; If using a function, it receives the date as a String and must return a Boolean (matches or not); If using a function then for best performance, reference it from your scope and do not define it inline",params:{date:{type:"String",desc:"The current date being processed.",examples:["'2018/11/05'","'2021/10/25'"]}},returns:{type:"Boolean",desc:"If true, the current date will be highlighted"},examples:["['2018/11/05', '2018/11/06', '2018/11/09', '2018/11/23']","date => (date[ 9 ] % 3 === 0)"],category:"model"},"event-color":{type:["String","Function"],desc:"Color name (from the Quasar Color Palette); If using a function, it receives the date as a String and must return a String (color for the received date); If using a function then for best performance, reference it from your scope and do not define it inline",params:{date:{type:"String",desc:"The current date being processed.",examples:["'2018/11/05'","'2021/10/25'"]}},returns:{type:"String",desc:"Color for the current date.",examples:["'teal'","'orange'"]},examples:["'teal-10'","date => (date[ 9 ] % 2 === 0 ? 'teal' : 'orange')"],category:"style"},options:{type:["Array","Function"],desc:"Optionally configure the days that are selectable; If using a function, it receives the date as a String and must return a Boolean (is date acceptable or not); If using a function then for best performance, reference it from your scope and do not define it inline; Incompatible with 'range' prop",params:{date:{type:"String",desc:"The current date being processed.",examples:["'2018/11/05'","'2021/10/25'"]}},returns:{type:"Boolean",desc:"If true, the current date will be made available for selection"},examples:["['2018/11/05', '2018/11/12', '2018/11/19', '2018/11/26']","date => (date[ 9 ] % 3 === 0)","date => (date >= '2018/11/03' && date <= '2018/11/15')"],category:"model"},"navigation-min-year-month":{type:"String",desc:"Lock user from navigating below a specific year+month (in YYYY/MM format); This prop is not used to correct the model; You might want to also use 'default-year-month' prop",examples:["'2020/07'"],category:"selection"},"navigation-max-year-month":{type:"String",desc:"Lock user from navigating above a specific year+month (in YYYY/MM format); This prop is not used to correct the model; You might want to also use 'default-year-month' prop",examples:["'2020/10'"],category:"selection"},"no-unset":{type:"Boolean",desc:"Remove ability to unselect a date; It does not apply to selecting a range over already selected dates",category:"selection"},"first-day-of-week":{type:["String","Number"],desc:"Sets the day of the week that is considered the first day (0 - Sunday, 1 - Monday, ...); This day will show in the left-most column of the calendar",default:"# based on configured Quasar lang language",__runtimeDefault:!0,examples:["1",'# first-day-of-week="1"','# :first-day-of-week="selectedFirstDayOfTheWeek"'],category:"model"},"today-btn":{type:"Boolean",desc:"Display a button that selects the current day",category:"content"},minimal:{type:"Boolean",desc:"Don’t display the header",category:"content"},multiple:{type:"Boolean",desc:"Allow multiple selection; Model must be Array",category:"model|selection"},range:{type:"Boolean",desc:"Allow range selection; Partial compatibility with 'options' prop: selected ranges might also include 'unselectable' days",category:"model|selection"},"emit-immediately":{type:"Boolean",desc:"Emit model when user browses month and year too; ONLY for single selection (non-multiple, non-range)",category:"model"}},slots:{default:{desc:"This is where additional buttons can go"}},events:{"update:model-value":{extends:"update:model-value",params:{value:{type:["String","Array","Object","null"]},reason:{type:"String",desc:"Reason of the user interaction (what was picked)",values:["'add-day'","'remove-day'","'add-range'","'remove-range'","'mask'","'locale'","'year'","'month'"]},details:{type:"Object",desc:"Object of properties on the new model",definition:{year:{type:"Number",required:!0,desc:"The year of the date that the user has clicked/tapped on"},month:{type:"Number",required:!0,desc:"The month of the date that the user has clicked/tapped on"},day:{type:"Number",required:!0,desc:"The day of the month that the user has clicked/tapped on"},from:{type:"Object",required:!1,desc:"Object of properties of the range starting point (only if range)",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}},to:{type:"Object",required:!1,desc:"Object of properties of the range ending point (only if range)",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}}}}}},navigation:{desc:"Emitted when user navigates to a different month or year (and even when the model changes from an outside source)",params:{view:{type:"Object",desc:"Definition of the current view (year, month)",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"}}}}},"range-start":{desc:"User has started a range selection",params:{from:{type:"Object",desc:"Definition of date from where the range begins",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}}}},"range-end":{desc:"User has ended a range selection",params:{range:{type:"Object",desc:"Definition of the range",definition:{from:{type:"Object",required:!0,desc:"Definition of date from where the range begins",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}},to:{type:"Object",required:!0,desc:"Definition of date to where the range ends",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}}}}}}},methods:{setToday:{desc:"Change model to today",params:null,returns:null},setView:{desc:"Change current view",params:{view:{type:"String",required:!0,desc:"QDate view name",values:["'Calendar'","'Months'","'Years'"]}},returns:null},offsetCalendar:{desc:"Increment or decrement calendar view's month or year",params:{type:{type:"String",required:!0,desc:"What to increment/decrement",values:["'month'","'year'"]},descending:{type:"Boolean",desc:"Decrement?"}},returns:null},setCalendarTo:{desc:"Change current year and month of the Calendar view; It gets corrected if using navigation-min/max-year-month and sets the current view to Calendar",params:{year:{type:"Number",desc:"The year"},month:{type:"Number",desc:"The month"}},returns:null},setEditingRange:{desc:"Configure the current editing range",params:{from:{type:"Object",desc:"Definition of date from where the range begins",definition:{year:{type:"Number",desc:"The year"},month:{type:"Number",desc:"The month"},day:{type:"Number",desc:"The day of month"}}},to:{type:"Object",desc:"Definition of date to where the range ends",definition:{year:{type:"Number",desc:"The year"},month:{type:"Number",desc:"The month"},day:{type:"Number",desc:"The day of month"}}}},returns:null}}},lz={name:"ShowcaseQuasarDate",components:{QDate:V.QDate},label:"Quasar Date",icon:"calendar_today",apiJson:iz,importName:"QDate",importFrom:"quasar",data(){return{basic:"2026/04/16",landscape:"2026/04/16",multi:["2026/04/10","2026/04/15","2026/04/20"],rangeVal:{from:"2026/04/10",to:"2026/04/18"},minimal:"2026/04/16"}}},cz={class:"jShowcase_row jShowcase_column"},dz={class:"jShowcase_group"},pz={class:"jShowcase_items"},mz={class:"jShowcase_group"},uz={class:"jShowcase_items"},hz={class:"jShowcase_group"},fz={class:"jShowcase_items"},gz={class:"jShowcase_group"},bz={class:"jShowcase_items"},yz={class:"jShowcase_group"},_z={class:"jShowcase_items"};function wz(o,t,a,l,n,s){const r=e.resolveComponent("QDate");return e.openBlock(),e.createElementBlock("div",cz,[e.createElementVNode("div",dz,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",pz,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),color:"primary"},null,8,["modelValue"])])]),e.createElementVNode("div",mz,[t[6]||(t[6]=e.createElementVNode("span",{class:"jShowcase_title"},"Landscape + Today button",-1)),e.createElementVNode("div",uz,[e.createVNode(r,{modelValue:n.landscape,"onUpdate:modelValue":t[1]||(t[1]=i=>n.landscape=i),color:"secondary",landscape:"","today-btn":""},null,8,["modelValue"])])]),e.createElementVNode("div",hz,[t[7]||(t[7]=e.createElementVNode("span",{class:"jShowcase_title"},"Multiple selection",-1)),e.createElementVNode("div",fz,[e.createVNode(r,{modelValue:n.multi,"onUpdate:modelValue":t[2]||(t[2]=i=>n.multi=i),color:"accent",multiple:""},null,8,["modelValue"])])]),e.createElementVNode("div",gz,[t[8]||(t[8]=e.createElementVNode("span",{class:"jShowcase_title"},"Range selection",-1)),e.createElementVNode("div",bz,[e.createVNode(r,{modelValue:n.rangeVal,"onUpdate:modelValue":t[3]||(t[3]=i=>n.rangeVal=i),color:"positive",range:""},null,8,["modelValue"])])]),e.createElementVNode("div",yz,[t[9]||(t[9]=e.createElementVNode("span",{class:"jShowcase_title"},"Minimal (no header)",-1)),e.createElementVNode("div",_z,[e.createVNode(r,{modelValue:n.minimal,"onUpdate:modelValue":t[4]||(t[4]=i=>n.minimal=i),color:"info",minimal:""},null,8,["modelValue"])])])])}const xz=Object.freeze(Object.defineProperty({__proto__:null,default:j(lz,[["render",wz]])},Symbol.toStringTag,{value:"Module"})),vz={mixins:["composables/private.use-field/use-field","components/input/use-mask","composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/input"},props:{"model-value":{extends:"model-value",type:["String","Number","FileList","null","undefined"],desc:"Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="myText"']},"shadow-text":{type:"String",desc:"Text to be displayed as shadow at the end of the text in the control; Does NOT applies to type=file",examples:["'rest of the fill value'"],category:"content"},type:{type:"String",desc:"Input type",default:"'text'",values:["'text'","'password'","'textarea'","'email'","'search'","'tel'","'file'","'number'","'url'","'time'","'date'","'datetime-local'"],category:"general"},debounce:{type:["String","Number"],desc:"Debounce amount (in milliseconds) when updating model",category:"model"},maxlength:{type:["String","Number"],desc:"Specify a max length of model",category:"model"},autogrow:{type:"Boolean",desc:"Make field autogrow along with its content (uses a textarea)",category:"content"},"input-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Class definitions to be attributed to the underlying input tag",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"input-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Style definitions to be attributed to the underlying input tag",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},name:{desc:"Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists"}},events:{"update:model-value":{params:{value:{type:["String","Number","null"]}}},click:{internal:!0},paste:{internal:!0},animationend:{internal:!0},change:{internal:!0},keydown:{internal:!0}},methods:{focus:{desc:"Focus underlying input tag"},blur:{desc:"Lose focus on underlying input tag"},select:{desc:"Select input text",params:null,returns:null},getNativeElement:{desc:"DEPRECATED; Access 'nativeEl' directly instead; Get the native input/textarea DOM Element",params:null,returns:{type:"Element",tsType:"QInputNativeElement",desc:"The underlying native input/textarea DOM Element"}}},computedProps:{nativeEl:{type:"Element",tsType:"QInputNativeElement",desc:"The native input/textarea DOM Element",addedIn:"v2.10.1"}}},kz={name:"ShowcaseQuasarInput",components:{QInput:V.QInput,QIcon:V.QIcon},label:"Quasar Input",icon:"edit_note",apiJson:vz,importName:"QInput",importFrom:"quasar",data(){return{basic:"NCC-1701",outlined:"",filled:"",standout:"",roundedVal:"",squareVal:"",denseVal:"",borderlessVal:"Borderless text",search:"",credits:"500",clearableVal:"Clear me",password:"secret",showPwd:!1,hinted:"",counted:"",textarea:"Captain's log, stardate 41153.7.",autogrow:""}}},Sz={class:"jShowcase_row jShowcase_column showcaseInput"},Qz={class:"jShowcase_group"},Cz={class:"jShowcase_items"},Nz={class:"jShowcase_group"},Iz={class:"jShowcase_items"},Vz={class:"jShowcase_group"},Ez={class:"jShowcase_items"},Bz={class:"jShowcase_group"},Tz={class:"jShowcase_items"},Az={class:"jShowcase_group"},qz={class:"jShowcase_items"},Dz={class:"jShowcase_group"},jz={class:"jShowcase_items"};function Lz(o,t,a,l,n,s){const r=e.resolveComponent("QInput"),i=e.resolveComponent("QIcon");return e.openBlock(),e.createElementBlock("div",Sz,[e.createElementVNode("div",Qz,[t[17]||(t[17]=e.createElementVNode("span",{class:"jShowcase_title"},"Styles",-1)),e.createElementVNode("div",Cz,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=c=>n.basic=c),label:"Default",color:"primary",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.outlined,"onUpdate:modelValue":t[1]||(t[1]=c=>n.outlined=c),label:"Outlined",color:"primary",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.filled,"onUpdate:modelValue":t[2]||(t[2]=c=>n.filled=c),label:"Filled",color:"primary",filled:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.standout,"onUpdate:modelValue":t[3]||(t[3]=c=>n.standout=c),label:"Standout",color:"primary",standout:"",class:"showcaseInput_field"},null,8,["modelValue"])])]),e.createElementVNode("div",Nz,[t[18]||(t[18]=e.createElementVNode("span",{class:"jShowcase_title"},"Shapes",-1)),e.createElementVNode("div",Iz,[e.createVNode(r,{modelValue:n.roundedVal,"onUpdate:modelValue":t[4]||(t[4]=c=>n.roundedVal=c),label:"Rounded",color:"accent",rounded:"",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.squareVal,"onUpdate:modelValue":t[5]||(t[5]=c=>n.squareVal=c),label:"Square",color:"accent",square:"",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.denseVal,"onUpdate:modelValue":t[6]||(t[6]=c=>n.denseVal=c),label:"Dense",color:"accent",dense:"",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.borderlessVal,"onUpdate:modelValue":t[7]||(t[7]=c=>n.borderlessVal=c),label:"Borderless",color:"accent",borderless:"",class:"showcaseInput_field"},null,8,["modelValue"])])]),e.createElementVNode("div",Vz,[t[19]||(t[19]=e.createElementVNode("span",{class:"jShowcase_title"},"Decorations",-1)),e.createElementVNode("div",Ez,[e.createVNode(r,{modelValue:n.search,"onUpdate:modelValue":t[8]||(t[8]=c=>n.search=c),label:"Search",color:"secondary",outlined:"",class:"showcaseInput_field"},{prepend:e.withCtx(()=>[e.createVNode(i,{name:"search"})]),_:1},8,["modelValue"]),e.createVNode(r,{modelValue:n.credits,"onUpdate:modelValue":t[9]||(t[9]=c=>n.credits=c),label:"Credits",color:"secondary",outlined:"",prefix:"₡",suffix:".00",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.clearableVal,"onUpdate:modelValue":t[10]||(t[10]=c=>n.clearableVal=c),label:"Clearable",color:"secondary",outlined:"",clearable:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.password,"onUpdate:modelValue":t[12]||(t[12]=c=>n.password=c),label:"Password",type:n.showPwd?"text":"password",color:"secondary",outlined:"",class:"showcaseInput_field"},{append:e.withCtx(()=>[e.createVNode(i,{name:n.showPwd?"visibility":"visibility_off",class:"cursor-pointer",onClick:t[11]||(t[11]=c=>n.showPwd=!n.showPwd)},null,8,["name"])]),_:1},8,["modelValue","type"])])]),e.createElementVNode("div",Bz,[t[20]||(t[20]=e.createElementVNode("span",{class:"jShowcase_title"},"Hints & Counter",-1)),e.createElementVNode("div",Tz,[e.createVNode(r,{modelValue:n.hinted,"onUpdate:modelValue":t[13]||(t[13]=c=>n.hinted=c),label:"With hint",hint:"Enter callsign",color:"info",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.counted,"onUpdate:modelValue":t[14]||(t[14]=c=>n.counted=c),label:"With counter",color:"info",outlined:"",counter:"",maxlength:20,class:"showcaseInput_field"},null,8,["modelValue"])])]),e.createElementVNode("div",Az,[t[21]||(t[21]=e.createElementVNode("span",{class:"jShowcase_title"},"Textarea",-1)),e.createElementVNode("div",qz,[e.createVNode(r,{modelValue:n.textarea,"onUpdate:modelValue":t[15]||(t[15]=c=>n.textarea=c),label:"Ship log",type:"textarea",color:"accent",outlined:"",class:"showcaseInput_field showcaseInput_fieldWide"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.autogrow,"onUpdate:modelValue":t[16]||(t[16]=c=>n.autogrow=c),label:"Autogrow",autogrow:"",color:"accent",outlined:"",class:"showcaseInput_field showcaseInput_fieldWide"},null,8,["modelValue"])])]),e.createElementVNode("div",Dz,[t[22]||(t[22]=e.createElementVNode("span",{class:"jShowcase_title"},"States",-1)),e.createElementVNode("div",jz,[e.createVNode(r,{"model-value":"Locked",label:"Disabled",color:"negative",disable:"",outlined:"",class:"showcaseInput_field"}),e.createVNode(r,{"model-value":"Read only",label:"Readonly",color:"warning",readonly:"",outlined:"",class:"showcaseInput_field"}),e.createVNode(r,{"model-value":"",label:"Loading",color:"accent",loading:"",outlined:"",class:"showcaseInput_field"})])])])}const Oz=Object.freeze(Object.defineProperty({__proto__:null,default:j(kz,[["render",Lz],["__scopeId","data-v-9485a6be"]])},Symbol.toStringTag,{value:"Module"})),Fz={mixins:["composables/private.use-size/use-size","composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/radio"},props:{"model-value":{extends:"model-value",type:["Any"],examples:['# v-model="option"']},val:{type:["Any"],required:!0,desc:"The actual value of the option with which model value is changed",examples:["'opt1'","50"],category:"model"},label:{type:"String",desc:"Label to display along the radio control (or use the default slot instead of this prop)",examples:["'Option 1'"],category:"label"},"left-label":{type:"Boolean",desc:"Label (if any specified) should be displayed on the left side of the checkbox",category:"label"},"checked-icon":{type:"String",desc:"The icon to be used when selected (instead of the default design)",examples:["'visibility'"],category:"icons",addedIn:"v2.5"},"unchecked-icon":{type:"String",desc:"The icon to be used when un-selected (instead of the default design)",examples:["'visibility_off'"],category:"icons",addedIn:"v2.5"},color:{extends:"color"},"keep-color":{type:"Boolean",desc:"Should the color (if specified any) be kept when checkbox is unticked?",category:"behavior"},dark:{extends:"dark"},dense:{extends:"dense"},disable:{extends:"disable"},tabindex:{extends:"tabindex"}},slots:{default:{desc:"Default slot can be used as label, unless 'label' prop is specified; Suggestion: string"}},events:{"update:model-value":{desc:"Emitted when the component needs to change the model; Is also used by v-model",params:{value:{type:"Any",desc:"New model value",required:!0},evt:{extends:"evt",required:!0}}}},methods:{set:{desc:"Sets the Radio's v-model to equal the val",params:null,returns:null}}},zz={name:"ShowcaseQuasarRadio",components:{QRadio:V.QRadio,QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel},label:"Quasar Radio",icon:"edit_note",apiJson:Fz,importName:"QRadio",importFrom:"quasar",data(){return{selected:"shields",listSelected:"shields"}}},Pz={class:"jShowcase_row jShowcase_column"},$z={class:"jShowcase_group"},Rz={class:"jShowcase_items showcaseVertical"},Mz={class:"jShowcase_group"};function Uz(o,t,a,l,n,s){const r=e.resolveComponent("QRadio"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItemLabel"),m=e.resolveComponent("QItem"),d=e.resolveComponent("QList"),u=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("div",Pz,[e.createElementVNode("div",$z,[t[7]||(t[7]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",Rz,[e.createVNode(r,{modelValue:n.selected,"onUpdate:modelValue":t[0]||(t[0]=g=>n.selected=g),val:"shields",label:"Shields",color:"primary"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.selected,"onUpdate:modelValue":t[1]||(t[1]=g=>n.selected=g),val:"weapons",label:"Weapons",color:"accent"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.selected,"onUpdate:modelValue":t[2]||(t[2]=g=>n.selected=g),val:"engines",label:"Engines",color:"secondary"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.selected,"onUpdate:modelValue":t[3]||(t[3]=g=>n.selected=g),val:"offline",label:"Offline",color:"negative",disable:""},null,8,["modelValue"])])]),e.createElementVNode("div",Mz,[t[14]||(t[14]=e.createElementVNode("span",{class:"jShowcase_title"},"With QItem",-1)),e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(m,{tag:"label"},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:n.listSelected,"onUpdate:modelValue":t[4]||(t[4]=g=>n.listSelected=g),val:"shields",color:"primary"},null,8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("Shields",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Deflector array protection",-1)])]),_:1})]),_:1})]),_:1})),[[u]]),e.withDirectives((e.openBlock(),e.createBlock(m,{tag:"label"},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:n.listSelected,"onUpdate:modelValue":t[5]||(t[5]=g=>n.listSelected=g),val:"weapons",color:"accent"},null,8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("Weapons",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("Phaser banks and torpedoes",-1)])]),_:1})]),_:1})]),_:1})),[[u]]),e.withDirectives((e.openBlock(),e.createBlock(m,{tag:"label"},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:n.listSelected,"onUpdate:modelValue":t[6]||(t[6]=g=>n.listSelected=g),val:"engines",color:"secondary"},null,8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Engines",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Main thruster control",-1)])]),_:1})]),_:1})]),_:1})),[[u]])]),_:1})])])}const Hz=Object.freeze(Object.defineProperty({__proto__:null,default:j(zz,[["render",Uz],["__scopeId","data-v-a088124e"]])},Symbol.toStringTag,{value:"Module"})),Gz={mixins:["composables/private.use-size/use-size","composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/rating"},props:{"model-value":{extends:"model-value",type:"Number",examples:['# v-model="rating"','# :model-value="rating"','# :model-value="2"']},max:{type:["Number","String"],desc:"Number of icons to display",default:"5",category:"general"},icon:{type:["String","Array"],desc:"Icon name following Quasar convention; make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)",examples:["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],category:"content"},"icon-selected":{type:["String","Array"],desc:"Icon name following Quasar convention to be used when selected (optional); make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)",examples:["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],category:"content"},"icon-half":{type:["String","Array"],desc:"Icon name following Quasar convention to be used when selected (optional); make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)",examples:["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],category:"content"},"icon-aria-label":{type:["String","Array"],desc:"Label to be set on aria-label for Icon; If an array is provided each rating value will use the corresponding aria-label in the array (0 based); If string value is provided the rating value will be appended; If not provided the name of the icon will be used",examples:["'Rating'","['Bad', 'Normal', 'Good']"],category:"accessibility",addedIn:"v1.20.3"},color:{extends:"color",type:["String","Array"],desc:"Color name for component from the Quasar Color Palette; v1.5.0+: If an array is provided each rating value will use the corresponding color in the array (0 based)",examples:["['accent', 'grey-7']"]},"color-selected":{extends:"color",type:["String","Array"],desc:"Color name from the Quasar Palette for selected icons"},"color-half":{extends:"color",type:["String","Array"],desc:"Color name from the Quasar Palette for half selected icons"},"no-dimming":{type:"Boolean",desc:"Does not lower opacity for unselected icons",category:"style"},"no-reset":{type:"Boolean",desc:"When used, disables default behavior of clicking/tapping on icon which represents current model value to reset model to 0",category:"model"},readonly:{extends:"readonly"},disable:{extends:"disable"}},events:{"update:model-value":{extends:"update:model-value"}},slots:{"tip-[name]":{desc:"Slot to define the tooltip of icon at '[name]' where name is a 1-based index; Suggestion: QTooltip"}}},Wz={name:"ShowcaseQuasarRating",components:{QRating:V.QRating},label:"Quasar Rating",icon:"edit_note",apiJson:Gz,importName:"QRating",importFrom:"quasar",data(){return{basic:3,hearts:4,colorful:3}}},Jz={class:"jShowcase_row showcaseVertical"},Yz={class:"ratingRow"},Zz={class:"ratingRow"},Kz={class:"ratingRow"},Xz={class:"ratingRow"};function eP(o,t,a,l,n,s){const r=e.resolveComponent("QRating");return e.openBlock(),e.createElementBlock("div",Jz,[e.createElementVNode("div",Yz,[t[3]||(t[3]=e.createElementVNode("span",{class:"ratingLabel"},"Default",-1)),e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),color:"primary"},null,8,["modelValue"])]),e.createElementVNode("div",Zz,[t[4]||(t[4]=e.createElementVNode("span",{class:"ratingLabel"},"Custom icon",-1)),e.createVNode(r,{modelValue:n.hearts,"onUpdate:modelValue":t[1]||(t[1]=i=>n.hearts=i),icon:"favorite_border","icon-selected":"favorite",color:"negative"},null,8,["modelValue"])]),e.createElementVNode("div",Kz,[t[5]||(t[5]=e.createElementVNode("span",{class:"ratingLabel"},"Per-icon color",-1)),e.createVNode(r,{modelValue:n.colorful,"onUpdate:modelValue":t[2]||(t[2]=i=>n.colorful=i),color:["negative","warning","warning","positive","positive"],"no-dimming":""},null,8,["modelValue"])]),e.createElementVNode("div",Xz,[t[6]||(t[6]=e.createElementVNode("span",{class:"ratingLabel"},"Large / readonly",-1)),e.createVNode(r,{"model-value":4,size:"sm",color:"secondary",readonly:""})])])}const tP=Object.freeze(Object.defineProperty({__proto__:null,default:j(Wz,[["render",eP],["__scopeId","data-v-66a29f10"]])},Symbol.toStringTag,{value:"Module"})),oP={mixins:["composables/private.use-field/use-field","components/virtual-scroll/use-virtual-scroll","composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/select"},props:{"model-value":{extends:"model-value",type:"Any",desc:"Model of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="myModel"']},multiple:{type:"Boolean",desc:"Allow multiple selection; Model must be Array",category:"model|selection"},"display-value":{type:["Number","String"],desc:"Override default selection string, if not using 'selected' slot/scoped slot and if not using 'use-chips' prop",examples:["'Options: x, y, z'"],category:"selection"},"display-value-html":{extends:"html",desc:"Force render the selected option(s) as HTML; This can lead to XSS attacks so make sure that you sanitize the content; Does NOT apply when using 'selected' or 'selected-item' slots!",category:"selection"},options:{type:"Array",desc:"Array of objects with available options that the user can select from. For best performance freeze the list of options. Canonical form of each object is with 'label' (String), 'value' (Any) and optional 'disable' (Boolean) props (can be customized with options-value/option-label/option-disable props).",default:"[]",examples:["['Tesla', 'iPhone']","[{ label: 'Tesla', value: 'car' }, { label: 'iPhone', value: 'phone' }]"],category:"options"},"option-value":{type:["Function","String"],desc:"Property of option which holds the 'value'; If using a function then for best performance, reference it from your scope and do not define it inline",default:"'value'",__runtimeDefault:!0,params:{option:{type:["String","Object"],desc:"The current option being processed",examples:["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},returns:{type:"Any",desc:"Value of the current option",examples:["'car'","34"]},examples:["'modelNumber'","item => (item === null ? null : item.modelNumber)"],category:"options"},"option-label":{type:["Function","String"],desc:"Property of option which holds the 'label'; If using a function then for best performance, reference it from your scope and do not define it inline",default:"'label'",__runtimeDefault:!0,params:{option:{type:["String","Object"],desc:"The current option being processed",examples:["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},returns:{type:"String",desc:"Label of the current option",examples:["'Tesla'","'iPhone'"]},examples:["'itemName'","item => (item === null ? 'Null value' : item.itemName)"],category:"options"},"option-disable":{type:["Function","String"],desc:"Property of option which tells it's disabled; The value of the property must be a Boolean; If using a function then for best performance, reference it from your scope and do not define it inline",default:"'disable'",__runtimeDefault:!0,params:{option:{type:["String","Object"],desc:"The current option being processed",examples:["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},returns:{type:"Boolean",desc:"If true, the current option will be disabled"},examples:["item => (item === null ? true : item.cannotSelect)",'# option-disable="cannotSelect"'],category:"options"},"hide-selected":{type:"Boolean",desc:"Hides selection; Use the underlying input tag to hold the label (instead of showing it to the right of the input) of the selected option; Only works for non 'multiple' Selects",category:"selection"},"hide-dropdown-icon":{type:"Boolean",desc:"Hides dropdown icon",category:"content|behavior"},"dropdown-icon":{extends:"icon"},"max-values":{type:["Number","String"],desc:"Allow a maximum number of selections that the user can do",category:"selection"},"options-dense":{extends:"dense",desc:"Dense mode for options list; occupies less space",category:"options"},"options-dark":{type:["Boolean","null"],default:"null",desc:"Options menu will be colored with a dark color",category:"options"},"options-selected-class":{type:"String",desc:"CSS class name for options that are active/selected; Set it to an empty string to stop applying the default (which is text-* where * is the 'color' prop value)",examples:["'text-orange'"],category:"options"},"options-html":{extends:"html",desc:"Force render the options as HTML; This can lead to XSS attacks so make sure that you sanitize the content; Does NOT apply when using 'option' slot!",category:"options"},"options-cover":{type:"Boolean",desc:"Expanded menu will cover the component (will not work along with 'use-input' prop for obvious reasons)",category:"options"},"menu-shrink":{type:"Boolean",desc:"Allow the options list to be narrower than the field (only in menu mode)",category:"options"},"menu-anchor":{type:"String",desc:"Two values setting the starting position or anchor point of the options list relative to the field (only in menu mode)",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],category:"position"},"menu-self":{type:"String",desc:"Two values setting the options list's own position relative to its target (only in menu mode)",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],category:"position"},"menu-offset":{type:"Array",desc:"An array of two numbers to offset the options list horizontally and vertically in pixels (only in menu mode)",examples:["[8, 8]","[5, 10]"],category:"position"},"popup-content-class":{type:"String",desc:"Class definitions to be attributed to the popup content",examples:["'my-special-class'"],category:"style"},"popup-content-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Style definitions to be attributed to the popup content",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"popup-no-route-dismiss":{type:"Boolean",desc:"Changing route app won't dismiss the popup (menu or dialog)",category:"behavior",addedIn:"v2.15"},"use-chips":{type:"Boolean",desc:"Use QChip to show what is currently selected",category:"selection"},"use-input":{type:"Boolean",desc:"Use an input tag where users can type",category:"content"},maxlength:{type:["String","Number"],desc:"Specify a max length for the inner input tag (if 'use-input' is enabled)",category:"content"},"fill-input":{type:"Boolean",desc:"Fills the input with current value; Useful along with 'hide-selected'; Does NOT work along with 'multiple' selection",category:"behavior"},"new-value-mode":{type:"String",desc:"Enables creation of new values and defines behavior when a new value is added: 'add' means it adds the value (even if possible duplicate), 'add-unique' adds only unique values, and 'toggle' adds or removes the value (based on if it exists or not already); When using this prop then listening for @new-value becomes optional (only to override the behavior defined by 'new-value-mode')",values:["'add'","'add-unique'","'toggle'"],category:"behavior"},"map-options":{type:"Boolean",desc:"Try to map labels of model from 'options' Array; has a small performance penalty; If you are using emit-value you will probably need to use map-options to display the label text in the select field rather than the value; Refer to the 'Affecting model' section above",category:"options"},"disable-tab-selection":{type:"Boolean",desc:"Prevents the tab key from confirming the currently hovered option",category:"options",addedIn:"v2.17"},"emit-value":{type:"Boolean",desc:"Update model with the value of the selected option instead of the whole option",category:"model"},"input-debounce":{type:["Number","String"],desc:"Debounce the input model update with an amount of milliseconds (also affects the 'filter' event, if used)",default:"500",category:"content"},"input-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Class definitions to be attributed to the underlying input tag",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"input-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Style definitions to be attributed to the underlying input tag",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},tabindex:{extends:"tabindex",default:"0"},autocomplete:{type:"String",desc:"Autocomplete attribute for field",examples:["'country'"],category:"behavior"},"transition-show":{extends:"transition",desc:"Transition when showing the menu/dialog; One of Quasar's embedded transitions",default:"'fade'",passthrough:"child",category:"behavior"},"transition-hide":{extends:"transition",desc:"Transition when hiding the menu/dialog; One of Quasar's embedded transitions",default:"'fade'",passthrough:"child",category:"behavior"},"transition-duration":{type:["String","Number"],desc:"Transition duration when hiding the menu/dialog (in milliseconds, without unit)",default:"300",passthrough:"child",category:"behavior"},behavior:{type:"String",desc:"Overrides the default dynamic mode of showing as menu on desktop and dialog on mobiles",values:["'default'","'menu'","'dialog'"],default:"'default'",category:"behavior"},name:{desc:"Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists"},"virtual-scroll-item-size":{__runtimeDefault:!0}},slots:{selected:{desc:"Override default selection slot; Suggestion: QChip"},loading:{desc:"Override default spinner when component is in loading mode; Suggestion: spinners"},"before-options":{desc:"Template slot for the elements that should be rendered before the list of options"},"after-options":{desc:"Template slot for the elements that should be rendered after the list of options"},"no-option":{desc:"What should the menu display after filtering options and none are left to be displayed; Suggestion: <div>",scope:{inputValue:{type:"String",desc:"Input textfield value, if any (not QSelect model)",examples:["'typed something'"]}}},"selected-item":{desc:"Override default selection slot; Suggestion: QChip",scope:{index:{type:"Number",desc:"Selection index"},opt:{type:"Any",desc:"Selected option -- its value is taken from model"},selected:{type:"Boolean",desc:"Always true -- passed down as prop to QItem (when using QItem)"},html:{type:"Boolean",desc:"Is the content HTML?"},removeAtIndex:{type:"Function",desc:"Remove selected option located at specific index",params:{index:{type:"Number",required:!0,desc:"Index at which to remove selection"}},returns:null},toggleOption:{type:"Function",desc:"Add/remove option from model",params:{opt:{type:"Any",required:!0,desc:"Option to add to model"}},returns:null},tabindex:{type:"Number",desc:"Tabindex HTML attribute value associated with respective option",values:["0","-1"]}}},option:{desc:"Customize how options are rendered; Suggestion: QItem",scope:{index:{type:"Number",desc:"Option index"},opt:{type:"Any",desc:"Option -- its value is taken from 'options' prop"},html:{type:"Boolean",desc:"Is the content HTML?"},label:{type:"String",desc:"Label of the option"},selected:{type:"Boolean",desc:"Is option selected?"},focused:{type:"Boolean",desc:"Is option focused?"},toggleOption:{type:"Function",desc:"Add/remove option from model",params:{opt:{type:"Any",required:!0,desc:"Option to add to model"}},returns:null},setOptionIndex:{type:"Function",desc:"Sets option from menu as 'focused'",params:{index:{type:"Number",required:!0,desc:"Index of option from menu"}},returns:null},itemProps:{type:"Object",desc:"Computed properties passed down to QItem"}}}},events:{"input-value":{desc:"Emitted when the value in the text input changes",params:{value:{type:"String",desc:"New text value"}}},remove:{desc:"Emitted when an option is removed from selection",params:{details:{type:"Object",desc:"Removal details",definition:{index:{type:"Number",required:!0,desc:"Model index at which removal took place"},value:{type:"Any",required:!0,desc:"The actual value that was removed"}}}}},add:{desc:"Emitted when an option is added to the selection",params:{details:{type:"Object",desc:"Addition details",definition:{index:{type:"Number",required:!0,desc:"Model index at which addition took place"},value:{type:"Any",required:!0,desc:"The actual value that was added"}}}}},"new-value":{desc:"Enables creation of new values; Emitted when a new value has been created; You can override 'new-value-mode' property with it",params:{inputValue:{type:"String",desc:"What the user typed",examples:["'phone'"]},doneFn:{type:"Function",desc:"Adds (optional) value to the model; Do not forget to call it after you validate the newly created value; Call it with no parameters if nothing should be added",params:{item:{type:"Any",required:!1,desc:"Item to add"},mode:{type:"String",required:!1,desc:"Override 'new-value-mode' (prop) behavior should you wish to",values:["'add'","'add-unique'","'toggle'"],default:"'add'"}},returns:null}}},filter:{desc:"Emitted when user wants to filter a value",params:{inputValue:{type:"String",desc:"What the user typed",examples:["'phone'"]},doneFn:{type:"Function",desc:"Supply a function which makes the necessary updates",params:{callbackFn:{type:"Function",required:!0,desc:"Callback to call to make the actual updates",params:null,returns:null},afterFn:{type:"Function",required:!1,desc:"Callback to call at the end after the update has been fully processed by QSelect",params:{ref:{type:"Component",tsType:"QSelect",required:!0,desc:"Vue reference to the QSelect which triggered the filtering"}},returns:null}},returns:null},abortFn:{type:"Function",desc:"Call this function if something went wrong",params:null,returns:null}}},"filter-abort":{desc:"Emitted when a filtering was aborted; Probably a new one was requested?"},"popup-show":{desc:"Emitted when the select options menu or dialog is shown.",params:{evt:{extends:"evt"}}},"popup-hide":{desc:"Emitted when the select options menu or dialog is hidden.",params:{evt:{extends:"evt"}}},"virtual-scroll":{params:{details:{definition:{ref:{type:"Component",tsType:"QSelect",desc:"Vue reference to the QSelect"}}}}},keyup:{internal:!0},keydown:{internal:!0},keypress:{internal:!0}},methods:{showPopup:{desc:"Focus and open popup",params:null,returns:null},hidePopup:{desc:"Hide popup",params:null,returns:null},removeAtIndex:{desc:"Remove selected option located at specific index",params:{index:{type:"Number",required:!0,desc:"Index at which to remove selection"}},returns:null},add:{desc:"Adds option to model",params:{opt:{type:"Any",required:!0,desc:"Option to add to model"},unique:{type:"Boolean",desc:"Option must be unique"}},returns:null},toggleOption:{desc:"Add/remove option from model",params:{opt:{type:"Any",required:!0,desc:"Option to add to model"},keepOpen:{type:"Boolean",desc:"Don't close the menu and do not clear the filter"}},returns:null},getOptionIndex:{desc:"Gets current focused option index from menu; It's -1 if no option is focused",params:null,returns:{type:"Number",desc:"Index of option from menu; It's -1 if no option is focused"},addedIn:"v2.5.4"},setOptionIndex:{desc:"Sets option from menu as 'focused'; -1 to focus none",params:{index:{type:"Number",required:!0,desc:"Index of option from menu; -1 to focus none"}},returns:null},moveOptionSelection:{desc:"Move selected option from menu by index offset",params:{offset:{type:"Number",desc:"Number of options to move up or down",default:"1"},skipInputValue:{type:"Boolean",desc:"Don't set input-value on navigation"}},returns:null},filter:{desc:"Filter options",params:{value:{type:"String",required:!0,desc:"String to filter with",examples:["'car'"]}},returns:null},updateMenuPosition:{desc:"Recomputes menu position",params:null,returns:null},updateInputValue:{desc:"If 'use-input' is specified, this updates the value that it holds",params:{value:{type:"String",required:!0,desc:"String to set the input value to",examples:["'hotel'"]},noFilter:{type:"Boolean",desc:"Set to true if you don't want the filter (if any) to be also triggered"}},returns:null},isOptionSelected:{desc:"Tells if an option is selected",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Boolean",desc:"Option is selected or not"}},getEmittingOptionValue:{desc:"Get the model value that would be emitted by QSelect when selecting a said option; Also takes into consideration if 'emit-value' is set",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Any",desc:"Emitting model value of said option"}},getOptionValue:{desc:"Get the model value of an option; Takes into consideration 'option-value' (if used), but does not looks for 'emit-value', like getEmittingOptionValue() does",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Any",desc:"Model value of said option"}},getOptionLabel:{desc:"Get the label of an option; Takes into consideration the 'option-label' prop (if used)",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Any",desc:"Label of said option"}},isOptionDisabled:{desc:"Tells if an option is disabled; Takes into consideration 'option-disable' prop (if used)",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Boolean",desc:"Option is disabled or not"}}}},nP={name:"ShowcaseQuasarSelect",components:{QSelect:V.QSelect},label:"Quasar Select",icon:"edit_note",apiJson:oP,importName:"QSelect",importFrom:"quasar",data(){return{basic:"Shields",basicOutlined:null,basicFilled:null,crew:["Helm","Tactical"],sector:"alpha",dense:null,rounded:null,clearable:"Weapons",shipSystems:["Shields","Weapons","Engines","Sensors","Communications","Life support"],crewOptions:["Helm","Tactical","Science","Engineering","Medical","Operations"],sectorOptions:[{label:"Alpha Quadrant",value:"alpha"},{label:"Beta Quadrant",value:"beta"},{label:"Gamma Quadrant",value:"gamma"},{label:"Delta Quadrant",value:"delta",disable:!0}]}}},aP={class:"jShowcase_row jShowcase_column showcaseSelect"},rP={class:"jShowcase_group"},sP={class:"jShowcase_items"},iP={class:"jShowcase_group"},lP={class:"jShowcase_items"},cP={class:"jShowcase_group"},dP={class:"jShowcase_items"},pP={class:"jShowcase_group"},mP={class:"jShowcase_items"},uP={class:"jShowcase_group"},hP={class:"jShowcase_items"};function fP(o,t,a,l,n,s){const r=e.resolveComponent("QSelect");return e.openBlock(),e.createElementBlock("div",aP,[e.createElementVNode("div",rP,[t[8]||(t[8]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",sP,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),options:n.shipSystems,label:"Ship system",color:"primary",class:"showcaseSelect_field"},null,8,["modelValue","options"]),e.createVNode(r,{modelValue:n.basicOutlined,"onUpdate:modelValue":t[1]||(t[1]=i=>n.basicOutlined=i),options:n.shipSystems,label:"Outlined",color:"primary",outlined:"",class:"showcaseSelect_field"},null,8,["modelValue","options"]),e.createVNode(r,{modelValue:n.basicFilled,"onUpdate:modelValue":t[2]||(t[2]=i=>n.basicFilled=i),options:n.shipSystems,label:"Filled",color:"primary",filled:"",class:"showcaseSelect_field"},null,8,["modelValue","options"])])]),e.createElementVNode("div",iP,[t[9]||(t[9]=e.createElementVNode("span",{class:"jShowcase_title"},"Multiple + Chips",-1)),e.createElementVNode("div",lP,[e.createVNode(r,{modelValue:n.crew,"onUpdate:modelValue":t[3]||(t[3]=i=>n.crew=i),options:n.crewOptions,label:"Assign crew",color:"accent",multiple:"","use-chips":"",outlined:"",class:"showcaseSelect_field showcaseSelect_fieldWide"},null,8,["modelValue","options"])])]),e.createElementVNode("div",cP,[t[10]||(t[10]=e.createElementVNode("span",{class:"jShowcase_title"},"Object Options",-1)),e.createElementVNode("div",dP,[e.createVNode(r,{modelValue:n.sector,"onUpdate:modelValue":t[4]||(t[4]=i=>n.sector=i),options:n.sectorOptions,label:"Destination sector",color:"secondary","emit-value":"","map-options":"",outlined:"",class:"showcaseSelect_field showcaseSelect_fieldWide"},null,8,["modelValue","options"])])]),e.createElementVNode("div",pP,[t[11]||(t[11]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",mP,[e.createVNode(r,{modelValue:n.dense,"onUpdate:modelValue":t[5]||(t[5]=i=>n.dense=i),options:n.shipSystems,label:"Dense",color:"info",dense:"",outlined:"",class:"showcaseSelect_field"},null,8,["modelValue","options"]),e.createVNode(r,{modelValue:n.rounded,"onUpdate:modelValue":t[6]||(t[6]=i=>n.rounded=i),options:n.shipSystems,label:"Rounded",color:"info",rounded:"",outlined:"",class:"showcaseSelect_field"},null,8,["modelValue","options"]),e.createVNode(r,{modelValue:n.clearable,"onUpdate:modelValue":t[7]||(t[7]=i=>n.clearable=i),options:n.shipSystems,label:"Clearable",color:"info",clearable:"",outlined:"",class:"showcaseSelect_field"},null,8,["modelValue","options"])])]),e.createElementVNode("div",uP,[t[12]||(t[12]=e.createElementVNode("span",{class:"jShowcase_title"},"States",-1)),e.createElementVNode("div",hP,[e.createVNode(r,{"model-value":"Engines",options:n.shipSystems,label:"Disabled",color:"negative",disable:"",outlined:"",class:"showcaseSelect_field"},null,8,["options"]),e.createVNode(r,{"model-value":"Shields",options:n.shipSystems,label:"Readonly",color:"warning",readonly:"",outlined:"",class:"showcaseSelect_field"},null,8,["options"]),e.createVNode(r,{options:[],label:"Loading",color:"accent",loading:"",outlined:"",class:"showcaseSelect_field"})])])])}const gP=Object.freeze(Object.defineProperty({__proto__:null,default:j(nP,[["render",fP],["__scopeId","data-v-33c07536"]])},Symbol.toStringTag,{value:"Module"})),bP={mixins:["components/slider/use-slider"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/slider"},props:{"model-value":{extends:"model-value",type:["Number","null","undefined"],desc:"Model of the component (must be between min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",default:"null",examples:['# v-model="positionModel"']},"label-value":{type:["String","Number"],desc:"Override default label value",examples:[`# :label-value="model + 'px'"`],category:"content"}},events:{"update:model-value":{extends:"update:model-value",params:{value:{type:["Number","null"]}}}}},yP={mixins:["components/slider/use-slider"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/range"},props:{"model-value":{extends:"model-value",type:["Object","null","undefined"],desc:"Model of the component of type { min, max } (both values must be between global min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",definition:{min:{type:["Number","null"],desc:"Model value for left thumb"},max:{type:["Number","null"],desc:"Model value for right thumb"}},default:"{ min: null, max: null }",examples:['# v-model="positionModel"']},"drag-range":{type:"Boolean",desc:"User can drag range instead of just the two thumbs",category:"content"},"drag-only-range":{type:"Boolean",desc:"User can drag only the range instead and NOT the two thumbs",category:"content"},"left-label-color":{extends:"color",desc:"Color name for left label background from the Quasar Color Palette",category:"labels"},"left-label-text-color":{extends:"color",desc:"Color name for left label text from the Quasar Color Palette",category:"labels"},"right-label-color":{extends:"color",desc:"Color name for right label background from the Quasar Color Palette",category:"labels"},"right-label-text-color":{extends:"color",desc:"Color name for right label text from the Quasar Color Palette",category:"labels"},"left-label-value":{type:["String","Number"],desc:"Override default label for min value",examples:[`# :left-label-value="model.min + 'px'"`],category:"labels"},"right-label-value":{type:["String","Number"],desc:"Override default label for max value",examples:[`# :right-label-value="model.max + 'px'"`],category:"labels"},"left-thumb-color":{extends:"color",desc:"Color name (from the Quasar Color Palette) for left thumb",category:"labels",addedIn:"v2.4"},"right-thumb-color":{extends:"color",desc:"Color name (from the Quasar Color Palette) for right thumb",category:"labels",addedIn:"v2.4"}},events:{"update:model-value":{extends:"update:model-value"}}},_P={name:"ShowcaseQuasarSlider",components:{QSlider:V.QSlider,QRange:V.QRange},label:"Slider / Range",icon:"edit_note",apiJson:[{name:"QSlider",json:bP},{name:"QRange",json:yP}],importName:["QSlider","QRange"],importFrom:"quasar",data(){return{basic:60,labeled:35,stepped:20,range:{min:20,max:70},rangeStepped:{min:30,max:80}}}},wP={class:"showcaseSliders"},xP={class:"sliderItem"},vP={class:"sliderItem"},kP={class:"sliderItem"},SP={class:"sliderItem"},QP={class:"sliderItem"},CP={class:"sliderItem"};function NP(o,t,a,l,n,s){const r=e.resolveComponent("QSlider"),i=e.resolveComponent("QRange");return e.openBlock(),e.createElementBlock("div",wP,[e.createElementVNode("div",xP,[t[5]||(t[5]=e.createElementVNode("span",{class:"sliderLabel"},"Basic",-1)),e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=c=>n.basic=c),color:"primary"},null,8,["modelValue"])]),e.createElementVNode("div",vP,[t[6]||(t[6]=e.createElementVNode("span",{class:"sliderLabel"},"With label",-1)),e.createVNode(r,{modelValue:n.labeled,"onUpdate:modelValue":t[1]||(t[1]=c=>n.labeled=c),color:"accent",label:"","label-always":""},null,8,["modelValue"])]),e.createElementVNode("div",kP,[t[7]||(t[7]=e.createElementVNode("span",{class:"sliderLabel"},"Stepped",-1)),e.createVNode(r,{modelValue:n.stepped,"onUpdate:modelValue":t[2]||(t[2]=c=>n.stepped=c),color:"secondary",min:0,max:50,step:10,snap:"",markers:"",label:""},null,8,["modelValue"])]),e.createElementVNode("div",SP,[t[8]||(t[8]=e.createElementVNode("span",{class:"sliderLabel"},"Disabled",-1)),e.createVNode(r,{"model-value":40,color:"info",disable:""})]),e.createElementVNode("div",QP,[t[9]||(t[9]=e.createElementVNode("span",{class:"sliderLabel"},"Range",-1)),e.createVNode(i,{modelValue:n.range,"onUpdate:modelValue":t[3]||(t[3]=c=>n.range=c),color:"primary",min:0,max:100,label:""},null,8,["modelValue"])]),e.createElementVNode("div",CP,[t[10]||(t[10]=e.createElementVNode("span",{class:"sliderLabel"},"Range stepped",-1)),e.createVNode(i,{modelValue:n.rangeStepped,"onUpdate:modelValue":t[4]||(t[4]=c=>n.rangeStepped=c),color:"accent",min:0,max:100,step:10,snap:"",markers:"",label:""},null,8,["modelValue"])])])}const IP=Object.freeze(Object.defineProperty({__proto__:null,default:j(_P,[["render",NP],["__scopeId","data-v-ad2ae735"]])},Symbol.toStringTag,{value:"Module"})),VP={mixins:["components/date/use-datetime"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/time"},props:{"model-value":{extends:"model-value",type:["String","null","undefined"],desc:"Time of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="currentTime"']},format24h:{type:["Boolean","null"],default:"null",desc:"Forces 24 hour time display instead of AM/PM system; If prop is not set, then the default is based on Quasar lang language being used",category:"behavior"},"default-date":{type:"String",desc:"The default date to use (in YYYY/MM/DD format) when model is unfilled (undefined or null)",default:"# current day",__runtimeDefault:!0,examples:["'1995/02/23'"],category:"model"},mask:{type:["String","null"],default:"'HH:mm'",__runtimeDefault:!0,examples:["'HH:mm:ss'","'YYYY-MM-DD HH:mm:ss'","'HH:mm MMMM Do, YYYY'"]},options:{type:"Function",desc:"Optionally configure what time is the user allowed to set; Overridden by 'hour-options', 'minute-options' and 'second-options' if those are set; For best performance, reference it from your scope and do not define it inline",params:{hr:{type:"Number",desc:"Hour"},min:{type:["Number","null"],desc:"Minutes"},sec:{type:["Number","null"],desc:"Seconds"}},returns:{type:["Boolean","null","undefined"],desc:"Is the user allowed to set the specified time?"},examples:["(hr, min, sec) => hr <= 6"],category:"behavior"},"hour-options":{type:"Array",desc:"Optionally configure what hours is the user allowed to set; Overrides 'options' prop if that is also set",examples:["[3, 6, 9]"],category:"behavior"},"minute-options":{type:"Array",desc:"Optionally configure what minutes is the user allowed to set; Overrides 'options' prop if that is also set",examples:["[0, 15, 30, 45]"],category:"behavior"},"second-options":{type:"Array",desc:"Optionally configure what seconds is the user allowed to set; Overrides 'options' prop if that is also set",examples:["[0, 7, 10, 23]"],category:"behavior"},"with-seconds":{type:"Boolean",desc:"Allow the time to be set with seconds",category:"model|behavior"},"now-btn":{type:"Boolean",desc:"Display a button that selects the current time",category:"content"}},slots:{default:{desc:"This is where additional buttons can go"}},events:{"update:model-value":{extends:"update:model-value",params:{value:{type:["String","null"]},details:{type:"Object",desc:"Object of properties on the new model",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of the month"},hour:{type:"Number",required:!0,desc:"The hour"},minute:{type:"Number",required:!0,desc:"The minute"},second:{type:"Number",required:!0,desc:"The second"},millisecond:{type:"Number",required:!0,desc:"The millisecond"},changed:{type:"Boolean",required:!0,desc:"Did the model change?"}}}}}},methods:{setNow:{desc:"Change model to current moment",params:null,returns:null}}},EP={name:"ShowcaseQuasarTime",components:{QTime:V.QTime},label:"Quasar Time",icon:"schedule",apiJson:VP,importName:"QTime",importFrom:"quasar",data(){return{basic:"10:30",h24:"18:45",withSec:"09:15:30"}}},BP={class:"jShowcase_row jShowcase_column"},TP={class:"jShowcase_group"},AP={class:"jShowcase_items"},qP={class:"jShowcase_group"},DP={class:"jShowcase_items"},jP={class:"jShowcase_group"},LP={class:"jShowcase_items"},OP={class:"jShowcase_group"},FP={class:"jShowcase_items"};function zP(o,t,a,l,n,s){const r=e.resolveComponent("QTime");return e.openBlock(),e.createElementBlock("div",BP,[e.createElementVNode("div",TP,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",AP,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),color:"primary"},null,8,["modelValue"])])]),e.createElementVNode("div",qP,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"24h format, landscape",-1)),e.createElementVNode("div",DP,[e.createVNode(r,{modelValue:n.h24,"onUpdate:modelValue":t[1]||(t[1]=i=>n.h24=i),color:"secondary",format24h:"",landscape:""},null,8,["modelValue"])])]),e.createElementVNode("div",jP,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"With seconds + Now button",-1)),e.createElementVNode("div",LP,[e.createVNode(r,{modelValue:n.withSec,"onUpdate:modelValue":t[2]||(t[2]=i=>n.withSec=i),color:"accent","with-seconds":"","now-btn":""},null,8,["modelValue"])])]),e.createElementVNode("div",OP,[t[6]||(t[6]=e.createElementVNode("span",{class:"jShowcase_title"},"Readonly",-1)),e.createElementVNode("div",FP,[e.createVNode(r,{"model-value":"14:30",color:"info",readonly:""})])])])}const PP=Object.freeze(Object.defineProperty({__proto__:null,default:j(EP,[["render",zP]])},Symbol.toStringTag,{value:"Module"})),$P={mixins:["components/checkbox/use-checkbox"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/toggle"},props:{icon:{extends:"icon"},"checked-icon":{desc:"The icon to be used when the toggle is on"},"unchecked-icon":{desc:"The icon to be used when the toggle is off"},"indeterminate-icon":{desc:"The icon to be used when the model is indeterminate"},"icon-color":{extends:"color",desc:"Override default icon color (for truthy state only); Color name for component from the Quasar Color Palette"}}},RP={name:"ShowcaseQuasarToggle",components:{QToggle:V.QToggle},label:"Quasar Toggle",icon:"edit_note",apiJson:$P,importName:"QToggle",importFrom:"quasar",data(){return{basic:!0,icons:!1,dense:!0,keepColor:!1}}},MP={class:"jShowcase_row showcaseToggles"};function UP(o,t,a,l,n,s){const r=e.resolveComponent("QToggle");return e.openBlock(),e.createElementBlock("div",MP,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),label:"Basic",color:"primary"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.icons,"onUpdate:modelValue":t[1]||(t[1]=i=>n.icons=i),label:"With icons",color:"accent","checked-icon":"check","unchecked-icon":"close"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.dense,"onUpdate:modelValue":t[2]||(t[2]=i=>n.dense=i),label:"Dense",color:"secondary",dense:""},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.keepColor,"onUpdate:modelValue":t[3]||(t[3]=i=>n.keepColor=i),label:"Keep color",color:"info","keep-color":""},null,8,["modelValue"]),e.createVNode(r,{"model-value":!0,label:"Disabled on",color:"positive",disable:""}),e.createVNode(r,{"model-value":!1,label:"Disabled off",color:"negative",disable:""})])}const HP=Object.freeze(Object.defineProperty({__proto__:null,default:j(RP,[["render",UP],["__scopeId","data-v-de7c1877"]])},Symbol.toStringTag,{value:"Module"})),GP={name:"ShowcaseQuasarChip",components:{QChip:V.QChip},label:"Quasar Chip",icon:"auto_awesome",importName:"QChip",importFrom:"quasar",code:'<QChip icon="event">Add to calendar</QChip>'},WP={class:"jShowcase_row"};function JP(o,t,a,l,n,s){const r=e.resolveComponent("QChip");return e.openBlock(),e.createElementBlock("div",WP,[e.createVNode(r,{icon:"event",disable:""},{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Add to calendar",-1)])]),_:1})])}const YP=Object.freeze(Object.defineProperty({__proto__:null,default:j(GP,[["render",JP]])},Symbol.toStringTag,{value:"Module"})),ZP={mixins:["composables/private.use-size/use-size"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/circular-progress"},props:{value:{type:"Number",default:"0",desc:"Current progress (must be between min/max)",category:"model"},min:{type:"Number",default:"0",desc:"Minimum value defining 'no progress' (must be lower than 'max')",category:"model"},max:{type:"Number",default:"100",desc:"Maximum value defining 100% progress made (must be higher than 'min')",category:"model"},color:{extends:"color",desc:"Color name for the arc progress from the Quasar Color Palette"},"center-color":{extends:"color",desc:"Color name for the center part of the component from the Quasar Color Palette"},"track-color":{extends:"color",desc:"Color name for the track of the component from the Quasar Color Palette"},"font-size":{type:"String",desc:"Size of text in CSS units, including unit name. Suggestion: use 'em' units to sync with component size",examples:["'1em'","'16px'","'2rem'"],category:"style"},rounded:{type:"Boolean",desc:"Rounding the arc of progress",category:"style",addedIn:"v2.8.4"},thickness:{type:"Number",default:"0.2",desc:"Thickness of progress arc as a ratio (0.0 < x < 1.0) of component size",category:"style"},angle:{type:"Number",desc:"Angle to rotate progress arc by",default:"0",category:"content"},indeterminate:{type:"Boolean",desc:"Put component into 'indeterminate' state; Ignores 'value' prop",category:"behavior"},"show-value":{type:"Boolean",desc:"Enables the default slot and uses it (if available), otherwise it displays the 'value' prop as text; Make sure the text has enough space to be displayed inside the component",category:"content|behavior"},reverse:{type:"Boolean",desc:"Reverses the direction of progress; Only for determined state",category:"behavior"},"instant-feedback":{type:"Boolean",desc:"No animation when model changes",category:"behavior"},"animation-speed":{extends:"animation-speed",default:"600",addedIn:"v2.3"}},slots:{default:{desc:"Used for component content only if 'show-value' prop is set; Make sure the content has enough space to be displayed inside the component"},internal:{desc:"Used by QKnob internally",internal:!0}}},KP={name:"ShowcaseQuasarCircularProgress",components:{QCircularProgress:V.QCircularProgress,QIcon:V.QIcon},label:"Circular Progress",icon:"auto_awesome",apiJson:ZP,importName:"QCircularProgress",importFrom:"quasar"},XP={class:"jShowcase_row"};function e$(o,t,a,l,n,s){const r=e.resolveComponent("QCircularProgress"),i=e.resolveComponent("QIcon");return e.openBlock(),e.createElementBlock("div",XP,[e.createVNode(r,{value:75,size:"56px",color:"primary","track-color":"grey-8","show-value":""},{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode(" 75% ",-1)])]),_:1}),e.createVNode(r,{value:40,size:"56px",color:"accent","track-color":"grey-8",rounded:"",thickness:.3,"show-value":""},{default:e.withCtx(()=>[e.createVNode(i,{name:"rocket_launch",size:"18px",color:"accent"})]),_:1}),e.createVNode(r,{indeterminate:"",size:"56px",color:"secondary","track-color":"grey-8"}),e.createVNode(r,{value:90,size:"56px",color:"positive","track-color":"grey-8",thickness:.1,"show-value":"","font-size":"11px"},{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode(" 90% ",-1)])]),_:1})])}const t$=Object.freeze(Object.defineProperty({__proto__:null,default:j(KP,[["render",e$]])},Symbol.toStringTag,{value:"Module"})),o$={mixins:["components/spinner/spinner"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/spinners"},props:{thickness:{type:"Number",desc:"Override value to use for stroke-width",default:"5",category:"style"}}},n$={mixins:["composables/private.use-size/use-size","composables/private.use-transition/use-transition"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/inner-loading"},props:{showing:{type:"Boolean",desc:"State - loading or not",category:"state"},color:{extends:"color",desc:"Color name for component from the Quasar Color Palette for the inner Spinner (unless using the default slot)"},size:{type:["String","Number"],desc:"Size in CSS units, including unit name, or standard size name (xs|sm|md|lg|xl), for the inner Spinner (unless using the default slot)",default:"'42px'"},label:{type:"String",desc:"Add a label; Gets overriden when using the default slot",examples:["'Please wait...'"],category:"label",addedIn:"v2.2"},"label-class":{type:"String",desc:"Add CSS class(es) to the label; Works along the 'label' prop only",examples:["'text-red q-mt-xl'"],category:"label",addedIn:"v2.2"},"label-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Apply custom style to the label; Works along the 'label' prop only",examples:["'font-size: 28px'","{ color: '#ff0000' }"],category:"label",addedIn:"v2.2"},dark:{extends:"dark"}},slots:{default:{desc:"Default slot is used for replacing default Spinner; Suggestions: a spinner or text"}}},a$={name:"ShowcaseQuasarSpinner",inject:["showcaseCopy"],components:{QToggle:V.QToggle,QInnerLoading:V.QInnerLoading,QSpinner:V.QSpinner,QSpinnerDots:V.QSpinnerDots,QSpinnerBars:V.QSpinnerBars,QSpinnerAudio:V.QSpinnerAudio,QSpinnerBall:V.QSpinnerBall,QSpinnerCube:V.QSpinnerCube,QSpinnerGrid:V.QSpinnerGrid,QSpinnerHourglass:V.QSpinnerHourglass,QSpinnerOrbit:V.QSpinnerOrbit,QSpinnerOval:V.QSpinnerOval,QSpinnerPuff:V.QSpinnerPuff,QSpinnerRings:V.QSpinnerRings,QSpinnerTail:V.QSpinnerTail,QSpinnerGears:V.QSpinnerGears,QSpinnerComment:V.QSpinnerComment},label:"Spinners / Loading",icon:"auto_awesome",apiJson:[{name:"QSpinner",json:o$},{name:"QInnerLoading",json:n$}],importName:"QSpinner",importFrom:"quasar",data(){return{innerActive:!0}}},r$={class:"jShowcase_row jShowcase_column"},s$={class:"jShowcase_group"},i$={class:"jShowcase_items"},l$={class:"jShowcase_group"},c$={class:"jShowcase_items"},d$={class:"jShowcase_group"},p$={class:"jShowcase_items"},m$={class:"jShowcase_group"},u$={class:"jShowcase_items"},h$={class:"jShowcase_group"},f$={class:"jShowcase_items"},g$={class:"innerLoadingBox"},b$={class:"innerLoadingBox"},y$={class:"innerLoadingBox"},_$={class:"innerLoadingBox"};function w$(o,t,a,l,n,s){const r=e.resolveComponent("QSpinner"),i=e.resolveComponent("QSpinnerDots"),c=e.resolveComponent("QSpinnerBars"),m=e.resolveComponent("QSpinnerAudio"),d=e.resolveComponent("QSpinnerBall"),u=e.resolveComponent("QSpinnerCube"),g=e.resolveComponent("QSpinnerGrid"),b=e.resolveComponent("QSpinnerHourglass"),w=e.resolveComponent("QSpinnerOrbit"),C=e.resolveComponent("QSpinnerOval"),Q=e.resolveComponent("QSpinnerPuff"),f=e.resolveComponent("QSpinnerRings"),_=e.resolveComponent("QSpinnerTail"),v=e.resolveComponent("QSpinnerGears"),x=e.resolveComponent("QSpinnerComment"),k=e.resolveComponent("QInnerLoading"),B=e.resolveComponent("QToggle");return e.openBlock(),e.createElementBlock("div",r$,[e.createElementVNode("div",s$,[t[15]||(t[15]=e.createElementVNode("span",{class:"jShowcase_title"},"Default",-1)),e.createElementVNode("div",i$,[e.createVNode(r,{color:"primary",size:"40px"}),e.createVNode(r,{color:"secondary",size:"40px",thickness:2}),e.createVNode(r,{color:"accent",size:"40px",thickness:8})])]),e.createElementVNode("div",l$,[t[16]||(t[16]=e.createElementVNode("span",{class:"jShowcase_title"},"Sizes",-1)),e.createElementVNode("div",c$,[e.createVNode(r,{color:"primary",size:"20px"}),e.createVNode(r,{color:"primary",size:"30px"}),e.createVNode(r,{color:"primary",size:"40px"}),e.createVNode(r,{color:"primary",size:"60px"}),e.createVNode(r,{color:"primary",size:"80px"})])]),e.createElementVNode("div",d$,[t[31]||(t[31]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",p$,[e.createElementVNode("div",{class:"spinnerItem",onClick:t[0]||(t[0]=E=>s.showcaseCopy("<QSpinnerDots />"))},[e.createVNode(i,{color:"primary",size:"40px"}),t[17]||(t[17]=e.createElementVNode("span",{class:"spinnerLabel"},"Dots",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[1]||(t[1]=E=>s.showcaseCopy("<QSpinnerBars />"))},[e.createVNode(c,{color:"secondary",size:"40px"}),t[18]||(t[18]=e.createElementVNode("span",{class:"spinnerLabel"},"Bars",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[2]||(t[2]=E=>s.showcaseCopy("<QSpinnerAudio />"))},[e.createVNode(m,{color:"accent",size:"40px"}),t[19]||(t[19]=e.createElementVNode("span",{class:"spinnerLabel"},"Audio",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[3]||(t[3]=E=>s.showcaseCopy("<QSpinnerBall />"))},[e.createVNode(d,{color:"positive",size:"40px"}),t[20]||(t[20]=e.createElementVNode("span",{class:"spinnerLabel"},"Ball",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[4]||(t[4]=E=>s.showcaseCopy("<QSpinnerCube />"))},[e.createVNode(u,{color:"info",size:"40px"}),t[21]||(t[21]=e.createElementVNode("span",{class:"spinnerLabel"},"Cube",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[5]||(t[5]=E=>s.showcaseCopy("<QSpinnerGrid />"))},[e.createVNode(g,{color:"warning",size:"40px"}),t[22]||(t[22]=e.createElementVNode("span",{class:"spinnerLabel"},"Grid",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[6]||(t[6]=E=>s.showcaseCopy("<QSpinnerHourglass />"))},[e.createVNode(b,{color:"negative",size:"40px"}),t[23]||(t[23]=e.createElementVNode("span",{class:"spinnerLabel"},"Hourglass",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[7]||(t[7]=E=>s.showcaseCopy("<QSpinnerOrbit />"))},[e.createVNode(w,{color:"primary",size:"40px"}),t[24]||(t[24]=e.createElementVNode("span",{class:"spinnerLabel"},"Orbit",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[8]||(t[8]=E=>s.showcaseCopy("<QSpinnerOval />"))},[e.createVNode(C,{color:"secondary",size:"40px"}),t[25]||(t[25]=e.createElementVNode("span",{class:"spinnerLabel"},"Oval",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[9]||(t[9]=E=>s.showcaseCopy("<QSpinnerPuff />"))},[e.createVNode(Q,{color:"accent",size:"40px"}),t[26]||(t[26]=e.createElementVNode("span",{class:"spinnerLabel"},"Puff",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[10]||(t[10]=E=>s.showcaseCopy("<QSpinnerRings />"))},[e.createVNode(f,{color:"positive",size:"40px"}),t[27]||(t[27]=e.createElementVNode("span",{class:"spinnerLabel"},"Rings",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[11]||(t[11]=E=>s.showcaseCopy("<QSpinnerTail />"))},[e.createVNode(_,{color:"info",size:"40px"}),t[28]||(t[28]=e.createElementVNode("span",{class:"spinnerLabel"},"Tail",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[12]||(t[12]=E=>s.showcaseCopy("<QSpinnerGears />"))},[e.createVNode(v,{color:"warning",size:"40px"}),t[29]||(t[29]=e.createElementVNode("span",{class:"spinnerLabel"},"Gears",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[13]||(t[13]=E=>s.showcaseCopy("<QSpinnerComment />"))},[e.createVNode(x,{color:"negative",size:"40px"}),t[30]||(t[30]=e.createElementVNode("span",{class:"spinnerLabel"},"Comment",-1))])])]),e.createElementVNode("div",m$,[t[32]||(t[32]=e.createElementVNode("span",{class:"jShowcase_title"},"Colors",-1)),e.createElementVNode("div",u$,[e.createVNode(r,{color:"primary",size:"40px"}),e.createVNode(r,{color:"secondary",size:"40px"}),e.createVNode(r,{color:"accent",size:"40px"}),e.createVNode(r,{color:"positive",size:"40px"}),e.createVNode(r,{color:"negative",size:"40px"}),e.createVNode(r,{color:"info",size:"40px"}),e.createVNode(r,{color:"warning",size:"40px"})])]),e.createElementVNode("div",h$,[t[37]||(t[37]=e.createElementVNode("span",{class:"jShowcase_title"},"QInnerLoading",-1)),e.createElementVNode("div",f$,[e.createElementVNode("div",g$,[t[33]||(t[33]=e.createElementVNode("div",{class:"innerLoadingContent"},"Content underneath",-1)),e.createVNode(k,{showing:n.innerActive,color:"primary"},null,8,["showing"])]),e.createElementVNode("div",b$,[t[34]||(t[34]=e.createElementVNode("div",{class:"innerLoadingContent"},"Custom spinner",-1)),e.createVNode(k,{showing:n.innerActive},{default:e.withCtx(()=>[e.createVNode(v,{color:"accent",size:"40px"})]),_:1},8,["showing"])]),e.createElementVNode("div",y$,[t[35]||(t[35]=e.createElementVNode("div",{class:"innerLoadingContent"},"Dark overlay",-1)),e.createVNode(k,{showing:n.innerActive,color:"secondary",dark:""},null,8,["showing"])]),e.createElementVNode("div",_$,[t[36]||(t[36]=e.createElementVNode("div",{class:"innerLoadingContent"},"With label",-1)),e.createVNode(k,{showing:n.innerActive,color:"primary",label:"Loading data..."},null,8,["showing"])])]),e.createVNode(B,{modelValue:n.innerActive,"onUpdate:modelValue":t[14]||(t[14]=E=>n.innerActive=E),label:"Show loading",color:"primary"},null,8,["modelValue"]),t[38]||(t[38]=e.createElementVNode("p",{class:"innerLoadingNote"},[e.createElementVNode("strong",null,"WARNING:"),e.createTextVNode(" The parent element must have "),e.createElementVNode("code",null,"position: relative"),e.createTextVNode(" (or the "),e.createElementVNode("code",null,"relative-position"),e.createTextVNode(" Quasar class) for the spinner to center correctly. ")],-1)),t[39]||(t[39]=e.createElementVNode("p",{class:"innerLoadingNote"},[e.createElementVNode("strong",null,"WARNING:"),e.createTextVNode(" QInnerLoading must be the last element inside its parent so it can appear on top of the other content. ")],-1))])])}const x$=Object.freeze(Object.defineProperty({__proto__:null,default:j(a$,[["render",w$],["__scopeId","data-v-3f56c67c"]])},Symbol.toStringTag,{value:"Module"})),v$={meta:{docsUrl:"https://v2.quasar.dev/vue-components/tabs"},props:{"model-value":{extends:"model-value",type:["Number","String","null","undefined"],desc:"Model of the component defining current panel name; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",required:!1,examples:['# v-model="selectedTab"']},vertical:{type:"Boolean",desc:"Use vertical design (tabs one on top of each other rather than one next to the other horizontally)",category:"content"},"outside-arrows":{type:"Boolean",desc:"Reserve space for arrows to place them on each side of the tabs (the arrows fade when inactive)",category:"content"},"mobile-arrows":{type:"Boolean",desc:"Force display of arrows (if needed) on mobile",category:"content"},align:{type:"String",desc:"Horizontal alignment the tabs within the tabs container",default:"'center'",values:["'left'","'center'","'right'","'justify'"],category:"content"},breakpoint:{type:["Number","String"],desc:"Breakpoint (in pixels) of tabs container width at which the tabs automatically turn to a justify alignment",default:"600",category:"content|behavior"},"active-color":{extends:"color",desc:"The color to be attributed to the text of the active tab",category:"style"},"active-bg-color":{extends:"color",desc:"The color to be attributed to the background of the active tab",category:"style"},"indicator-color":{extends:"color",desc:"The color to be attributed to the indicator (the underline) of the active tab",category:"style"},"content-class":{type:"String",desc:"Class definitions to be attributed to the content wrapper",examples:["'my-special-class'"],category:"style"},"active-class":{type:"String",desc:"The class to be set on the active tab",examples:["'my-active-class'"],category:"style",addedIn:"v2.1.4"},"left-icon":{type:"String",desc:"The name of an icon to replace the default arrow used to scroll through the tabs to the left, when the tabs extend past the width of the tabs container",examples:["'arrow_left'"],category:"content"},"right-icon":{type:"String",desc:"The name of an icon to replace the default arrow used to scroll through the tabs to the right, when the tabs extend past the width of the tabs container",examples:["'arrow_right'"],category:"content"},stretch:{type:"Boolean",desc:"When used on flexbox parent, tabs will stretch to parent's height",category:"content"},shrink:{type:"Boolean",desc:"By default, QTabs is set to grow to the available space; However, you can reverse that with this prop; Useful (and required) when placing the component in a QToolbar",category:"content"},"switch-indicator":{type:"Boolean",desc:"Switches the indicator position (on left of tab for vertical mode or above the tab for default horizontal mode)",category:"content"},"narrow-indicator":{type:"Boolean",desc:"Allows the indicator to be the same width as the tab's content (text or icon), instead of the whole width of the tab",category:"content"},"inline-label":{type:"Boolean",desc:"Allows the text to be inline with the icon, should one be used",category:"content"},"no-caps":{type:"Boolean",desc:"Turns off capitalizing all letters within the tab (which is the default)",category:"content"},dense:{extends:"dense"}},slots:{default:{extends:"default"}},events:{"update:model-value":{extends:"update:model-value"}}},k$={meta:{docsUrl:"https://v2.quasar.dev/vue-components/tabs"},mixins:["components/tabs/use-tab"]},S$={mixins:["composables/private.use-panel/use-panel"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/tab-panels"},props:{dark:{extends:"dark"}},slots:{default:{extends:"default"}}},Q$={meta:{docsUrl:"https://v2.quasar.dev/vue-components/tab-panels"},mixins:["composables/private.use-panel/use-panel.child"],slots:{default:{extends:"default"}}},C$={name:"ShowcaseQuasarTabs",components:{QTabs:V.QTabs,QTab:V.QTab,QTabPanels:V.QTabPanels,QTabPanel:V.QTabPanel},label:"Quasar Tabs",icon:"auto_awesome",apiJson:[{name:"QTabs",json:v$},{name:"QTab",json:k$},{name:"QTabPanels",json:S$},{name:"QTabPanel",json:Q$}],importName:"QTabs",importFrom:"quasar",data(){return{tab:"overview",tab2:"all"}}},N$={class:"jShowcase_row jShowcase_column showcaseTabs"},I$={class:"jShowcase_group"},V$={class:"jShowcase_group"};function E$(o,t,a,l,n,s){const r=e.resolveComponent("QTab"),i=e.resolveComponent("QTabs"),c=e.resolveComponent("QTabPanel"),m=e.resolveComponent("QTabPanels");return e.openBlock(),e.createElementBlock("div",N$,[e.createElementVNode("div",I$,[t[8]||(t[8]=e.createElementVNode("span",{class:"jShowcase_title"},"With Panels",-1)),e.createVNode(i,{modelValue:n.tab,"onUpdate:modelValue":t[0]||(t[0]=d=>n.tab=d),dense:"","no-caps":"",class:"showcaseTabs_bar","active-color":"accent","indicator-color":"accent"},{default:e.withCtx(()=>[e.createVNode(r,{name:"overview",icon:"dashboard",label:"Overview"}),e.createVNode(r,{name:"systems",icon:"memory",label:"Systems"}),e.createVNode(r,{name:"crew",icon:"groups",label:"Crew"}),e.createVNode(r,{name:"logs",icon:"description",label:"Logs",alert:"warning"})]),_:1},8,["modelValue"]),e.createVNode(m,{modelValue:n.tab,"onUpdate:modelValue":t[1]||(t[1]=d=>n.tab=d),animated:"",class:"showcaseTabs_panels"},{default:e.withCtx(()=>[e.createVNode(c,{name:"overview"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Ship status nominal. All systems operational.",-1)])]),_:1}),e.createVNode(c,{name:"systems"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Warp drive: online. Shields: 98%. Phasers: charged.",-1)])]),_:1}),e.createVNode(c,{name:"crew"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Officers: 42. Enlisted: 388. Civilians: 0.",-1)])]),_:1}),e.createVNode(c,{name:"logs"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("3 new entries. 1 flagged for review.",-1)])]),_:1})]),_:1},8,["modelValue"])]),e.createElementVNode("div",V$,[t[12]||(t[12]=e.createElementVNode("span",{class:"jShowcase_title"},"Minimal",-1)),e.createVNode(i,{modelValue:n.tab2,"onUpdate:modelValue":t[2]||(t[2]=d=>n.tab2=d),dense:"","no-caps":"",class:"showcaseTabs_bar","active-color":"primary","indicator-color":"primary","narrow-indicator":"",align:"left"},{default:e.withCtx(()=>[e.createVNode(r,{name:"all",label:"All"}),e.createVNode(r,{name:"active",label:"Active"}),e.createVNode(r,{name:"archived",label:"Archived"}),e.createVNode(r,{name:"disabled",label:"Disabled",disable:""})]),_:1},8,["modelValue"]),e.createVNode(m,{modelValue:n.tab2,"onUpdate:modelValue":t[3]||(t[3]=d=>n.tab2=d),animated:"",class:"showcaseTabs_panels"},{default:e.withCtx(()=>[e.createVNode(c,{name:"all"},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Showing all 127 records.",-1)])]),_:1}),e.createVNode(c,{name:"active"},{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("48 active records.",-1)])]),_:1}),e.createVNode(c,{name:"archived"},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("79 archived records.",-1)])]),_:1})]),_:1},8,["modelValue"])])])}const B$=Object.freeze(Object.defineProperty({__proto__:null,default:j(C$,[["render",E$],["__scopeId","data-v-9c106632"]])},Symbol.toStringTag,{value:"Module"})),T$={mixins:["composables/private.use-fullscreen/use-fullscreen"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/editor"},props:{"model-value":{extends:"model-value",type:"String",desc:"Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="content"']},readonly:{extends:"readonly"},square:{extends:"square"},flat:{extends:"flat",desc:"Applies a 'flat' design (no borders)"},dense:{extends:"dense",desc:"Dense mode; toolbar buttons are shown on one-line only"},dark:{extends:"dark"},disable:{extends:"disable"},"min-height":{type:"String",desc:"CSS unit for the minimum height of the editable area",default:"'10rem'",examples:["'15rem'","'50vh'"],category:"style"},"max-height":{type:"String",desc:"CSS unit for maximum height of the input area",examples:["'1000px'","'90vh'"],category:"style"},height:{type:"String",desc:"CSS value to set the height of the editable area",examples:["'100px'","'50vh'"],category:"style"},definitions:{type:"Object",desc:"Definition of commands and their buttons to be included in the 'toolbar' prop",examples:["{ save: { tip: 'Save your work', icon: 'save', label: 'Save', handler: saveWork }, upload: { tip: 'Upload to cloud', icon: 'cloud_upload', label: 'Upload', handler: uploadIt } }"],definition:{"...commandName":{type:"Object",tsType:"QEditorCommand",autoDefineTsType:!0,desc:"Command definition",definition:{label:{type:"String",desc:"Label of the button",examples:["'Addresses'"]},tip:{type:"String",desc:"Text to be displayed as a tooltip on hover",examples:["'Add a contact from the Address Book'"]},htmlTip:{type:"String",desc:"HTML formatted text to be displayed within a tooltip on hover",examples:[`'Add a <span class="red">user</span> from the address book'`]},icon:{type:"String",desc:"Icon of the button",examples:["'fas fa-address-book'"]},key:{type:"Number",desc:"Keycode of a key to be used together with the <ctrl> key for use as a shortcut to trigger this element",examples:["12","36"]},handler:{type:"Function",desc:'Either this or "cmd" is required. Function for when button gets clicked/tapped.',params:null,returns:null,examples:["() => this.uploadFile()"]},cmd:{type:"String",desc:'Either this or "handler" is required. This must be a valid execCommand method according to the designMode API.',examples:["'insertHTML'","'justifyFull'"]},param:{type:"String",desc:'Only set a param if using a "cmd". This is commonly text or HTML to inject, but is highly dependent upon the specific cmd being called.',examples:[`'<img src="://uploads/001.jpg" alt="nice pic" />'`]},disable:{type:["Boolean","Function"],desc:"Is button disabled?",returns:{type:"Boolean",desc:"If true, the button will be disabled"},examples:["true","() => !checkIfUserIsActive()"]},type:{type:["String","null"],desc:'Pass the value "no-state" if the button should not have an "active" state',values:["null","'no-state'"],examples:["'no-state'"]},fixedLabel:{type:"Boolean",desc:"Lock the button label, so it doesn't change based on the child option selected."},fixedIcon:{type:"Boolean",desc:"Lock the button icon, so it doesn't change based on the child option selected."},highlight:{type:"Boolean",desc:"Highlight the toolbar button, when a child option has been selected."}}}},category:"toolbar"},fonts:{type:"Object",desc:"Object with definitions of fonts",examples:["{ arial: 'Arial', arial_black: 'Arial Black', comic_sans: 'Comic Sans MS' }"],category:"toolbar"},toolbar:{type:"Array",desc:"An array of arrays of Objects/Strings that you use to define the construction of the elements and commands available in the toolbar",default:"[['left', 'center', 'right', 'justify'], ['bold', 'italic', 'underline', 'strike'], ['undo', 'redo']]",examples:["['left', 'center', 'right', 'justify']"],category:"toolbar"},"toolbar-color":{extends:"color",desc:"Font color (from the Quasar Palette) of buttons and text in the toolbar",category:"toolbar"},"toolbar-text-color":{extends:"text-color",desc:"Text color (from the Quasar Palette) of toolbar commands",category:"toolbar"},"toolbar-toggle-color":{type:"String",desc:"Choose the active color (from the Quasar Palette) of toolbar commands button",default:"'primary'",examples:["'secondary'","'blue-3'"],category:"toolbar"},"toolbar-bg":{type:"String",desc:"Toolbar background color (from Quasar Palette)",default:"'grey-3'",__runtimeDefault:!0,examples:["'secondary'","'blue-3'"],category:"toolbar"},"toolbar-outline":{type:"Boolean",desc:'Toolbar buttons are rendered "outlined"',category:"toolbar|style"},"toolbar-push":{type:"Boolean",desc:'Toolbar buttons are rendered as a "push-button" type',category:"toolbar|style"},"toolbar-rounded":{type:"Boolean",desc:'Toolbar buttons are rendered "rounded"',category:"toolbar|style"},"paragraph-tag":{type:"String",desc:"Paragraph tag to be used",values:["'div'","'p'"],default:"'div'",category:"behavior"},"content-style":{type:"Object",tsType:"VueStyleObjectProp",desc:"Object with CSS properties and values for styling the container of QEditor",examples:["{ backgroundColor: '#C0C0C0' }"],category:"style"},"content-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes for the input area",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},placeholder:{type:"String",desc:"Text to display as placeholder",examples:["'Type your story here ...'"],category:"content"}},events:{"update:model-value":{extends:"update:model-value",params:{value:{type:"String",desc:"The pure HTML of the content"}}},"dropdown-show":{desc:"Emitted after a dropdown in the toolbar has triggered show()",params:{evt:{extends:"evt"}},addedIn:"v2.11.8"},"dropdown-before-show":{desc:"Emitted when a dropdown in the toolbar triggers show() but before it finishes doing it",params:{evt:{extends:"evt"}},addedIn:"v2.11.8"},"dropdown-hide":{desc:"Emitted after a dropdown in the toolbar has triggered hide()",params:{evt:{extends:"evt"}},addedIn:"v2.11.8"},"dropdown-before-hide":{desc:"Emitted when a dropdown in the toolbar triggers hide() but before it finishes doing it",params:{evt:{extends:"evt"}},addedIn:"v2.11.8"},"link-show":{desc:"Emitted when the toolbar for editing a link is shown",addedIn:"v2.11.9"},"link-hide":{desc:"Emitted when the toolbar for editing a link is hidden",addedIn:"v2.11.9"},keydown:{internal:!0},click:{internal:!0},blur:{internal:!0},focus:{internal:!0}},methods:{runCmd:{desc:"Run contentEditable command at caret position and range",params:{cmd:{type:"String",desc:"Must be a valid execCommand method according to the designMode API",examples:["'copy'","'cut'","'paste'"],required:!0},param:{type:"String",desc:"The argument to pass to the command",examples:["'<small>Small Text</small>'"]},update:{type:"Boolean",desc:"Refresh the toolbar",default:"true"}},returns:null},refreshToolbar:{desc:"Hide the link editor if visible and force the instance to re-render",params:null,returns:null},focus:{desc:"Focus on the contentEditable at saved cursor position",params:null,returns:null},getContentEl:{desc:"Retrieve the content of the Editor",params:null,returns:{type:"Element",desc:"Provides the pure HTML within the editable area"}}},computedProps:{caret:{type:"Object",tsType:"QEditorCaret",desc:"The current caret state"}},slots:{"[command]":{desc:"Content for the given command in the toolbar"}}},A$={name:"ShowcaseQuasarEditor",components:{QEditor:V.QEditor},label:"Quasar Editor",icon:"edit_note",apiJson:T$,importName:"QEditor",importFrom:"quasar",data(){return{basic:"<p>Signal logs are editable. Try <b>bold</b>, <i>italic</i>, or a <u>highlight</u>.</p>",toolbar:"<p>Custom toolbar — only formatting, lists, and undo/redo.</p>",dense:"<p>Dense toolbar, no card border.</p>",readonly:"<p>Classified transmission — <b>read-only</b> content.</p>"}}},q$={class:"jShowcase_row jShowcase_column showcaseEditor"},D$={class:"jShowcase_group"},j$={class:"jShowcase_group"},L$={class:"jShowcase_group"},O$={class:"jShowcase_group"};function F$(o,t,a,l,n,s){const r=e.resolveComponent("QEditor");return e.openBlock(),e.createElementBlock("div",q$,[e.createElementVNode("div",D$,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),class:"showcaseEditor_field","min-height":"6rem"},null,8,["modelValue"])]),e.createElementVNode("div",j$,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Custom Toolbar",-1)),e.createVNode(r,{modelValue:n.toolbar,"onUpdate:modelValue":t[1]||(t[1]=i=>n.toolbar=i),class:"showcaseEditor_field","min-height":"6rem",toolbar:[["bold","italic","underline","strike"],["unordered","ordered"],["undo","redo"]]},null,8,["modelValue"])]),e.createElementVNode("div",L$,[t[6]||(t[6]=e.createElementVNode("span",{class:"jShowcase_title"},"Dense & Flat",-1)),e.createVNode(r,{modelValue:n.dense,"onUpdate:modelValue":t[2]||(t[2]=i=>n.dense=i),class:"showcaseEditor_field","min-height":"5rem",dense:"",flat:""},null,8,["modelValue"])]),e.createElementVNode("div",O$,[t[7]||(t[7]=e.createElementVNode("span",{class:"jShowcase_title"},"Read-only",-1)),e.createVNode(r,{modelValue:n.readonly,"onUpdate:modelValue":t[3]||(t[3]=i=>n.readonly=i),class:"showcaseEditor_field","min-height":"5rem",readonly:""},null,8,["modelValue"])])])}const z$=Object.freeze(Object.defineProperty({__proto__:null,default:j(A$,[["render",F$],["__scopeId","data-v-111a0028"]])},Symbol.toStringTag,{value:"Module"})),P$={meta:{docsUrl:"https://v2.quasar.dev/vue-components/markup-table"},props:{dense:{extends:"dense"},dark:{extends:"dark"},flat:{extends:"flat"},bordered:{extends:"bordered"},square:{extends:"square"},separator:{type:"String",desc:"Use a separator/border between rows, columns or all cells",default:"'horizontal'",values:["'horizontal'","'vertical'","'cell'","'none'"],examples:["'cell'"],category:"content"},"wrap-cells":{type:"Boolean",desc:"Wrap text within table cells",category:"content"}},slots:{default:{extends:"default"}}},$$={name:"ShowcaseMarkupTable",components:{QMarkupTable:V.QMarkupTable,QBadge:V.QBadge},label:"Markup Table",icon:"table_rows",apiJson:P$,importName:"QMarkupTable",importFrom:"quasar",data(){return{ships:[{name:"USS Endeavor",class:"Explorer",crew:430,warp:9.2},{name:"USS Valkyrie",class:"Combat",crew:260,warp:9.6},{name:"USS Pioneer",class:"Science",crew:180,warp:8.4},{name:"USS Horizon",class:"Medical",crew:310,warp:7.8}],systems:[{name:"Warp Core",status:"ONLINE",color:"positive"},{name:"Shields",status:"CHARGING",color:"warning"},{name:"Life Support",status:"NOMINAL",color:"positive"},{name:"Cloaking Device",status:"OFFLINE",color:"negative"}],logs:[{date:"41024.3",entry:"Routine sensor sweep of sector 7-G completed. No anomalies."},{date:"41024.5",entry:"Unidentified signal detected on subspace band 4. Monitoring."},{date:"41024.9",entry:"Signal resolved as misaligned relay buoy. Dispatched repair drone."},{date:"41025.1",entry:"Crew rotation complete. All stations reporting nominal."}]}}},R$={class:"jShowcase_row jShowcase_column showcaseMarkupTable"},M$={class:"jShowcase_group"},U$={class:"text-left"},H$={class:"text-left"},G$={class:"text-right"},W$={class:"text-right"},J$={class:"jShowcase_group"},Y$={class:"text-left"},Z$={class:"text-right"},K$={class:"jShowcase_group"},X$={class:"text-left"},eR={class:"text-left"};function tR(o,t,a,l,n,s){const r=e.resolveComponent("QMarkupTable"),i=e.resolveComponent("QBadge");return e.openBlock(),e.createElementBlock("div",R$,[t[6]||(t[6]=e.createElementVNode("div",{class:"jShowcase_info"},[e.createElementVNode("p",null,[e.createElementVNode("strong",null,"QMarkupTable"),e.createTextVNode(" is a thin styled wrapper around the native HTML "),e.createElementVNode("code",null,"<table>"),e.createTextVNode(" element. Use it when you already have the data rendered as markup and just want Quasar's theming.")]),e.createElementVNode("p",null,[e.createTextVNode("For sorting, filtering, pagination, or row selection, reach for "),e.createElementVNode("strong",null,"QTable"),e.createTextVNode(" instead.")])],-1)),e.createElementVNode("div",M$,[t[1]||(t[1]=e.createElementVNode("span",{class:"jShowcase_title"},"Default",-1)),e.createVNode(r,null,{default:e.withCtx(()=>[t[0]||(t[0]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"text-left"},"Vessel"),e.createElementVNode("th",{class:"text-left"},"Class"),e.createElementVNode("th",{class:"text-right"},"Crew"),e.createElementVNode("th",{class:"text-right"},"Warp")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.ships,c=>(e.openBlock(),e.createElementBlock("tr",{key:c.name},[e.createElementVNode("td",U$,e.toDisplayString(c.name),1),e.createElementVNode("td",H$,e.toDisplayString(c.class),1),e.createElementVNode("td",G$,e.toDisplayString(c.crew),1),e.createElementVNode("td",W$,e.toDisplayString(c.warp.toFixed(1)),1)]))),128))])]),_:1})]),e.createElementVNode("div",J$,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Flat & Bordered",-1)),e.createVNode(r,{flat:"",bordered:""},{default:e.withCtx(()=>[t[2]||(t[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"text-left"},"System"),e.createElementVNode("th",{class:"text-right"},"Status")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.systems,c=>(e.openBlock(),e.createElementBlock("tr",{key:c.name},[e.createElementVNode("td",Y$,e.toDisplayString(c.name),1),e.createElementVNode("td",Z$,[e.createVNode(i,{color:c.color,label:c.status},null,8,["color","label"])])]))),128))])]),_:1})]),e.createElementVNode("div",K$,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Dense with Separator",-1)),e.createVNode(r,{dense:"",separator:"cell","wrap-cells":""},{default:e.withCtx(()=>[t[4]||(t[4]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"text-left"},"Stardate"),e.createElementVNode("th",{class:"text-left"},"Entry")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.logs,c=>(e.openBlock(),e.createElementBlock("tr",{key:c.date},[e.createElementVNode("td",X$,e.toDisplayString(c.date),1),e.createElementVNode("td",eR,e.toDisplayString(c.entry),1)]))),128))])]),_:1})])])}const oR=Object.freeze(Object.defineProperty({__proto__:null,default:j($$,[["render",tR],["__scopeId","data-v-369c6696"]])},Symbol.toStringTag,{value:"Module"})),nR={mixins:["composables/private.use-fullscreen/use-fullscreen"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/table"},props:{rows:{type:"Array",desc:"Rows of data to display",required:!0,examples:['# :rows="myData"'],category:"general"},"row-key":{type:["String","Function"],desc:"Property of each row that defines the unique key of each row (the result must be a primitive, not Object, Array, etc); The value of property must be string or a function taking a row and returning the desired (nested) key in the row; If supplying a function then for best performance, reference it from your scope and do not define it inline",default:"'id'",params:{row:{type:"Object",desc:"The current row being processed",examples:["{ name: 'Lorem Ipsum', price: 19 }"]}},returns:{type:"Any",desc:"Current row's key",examples:["'34f39dda-6206-4071-a9df-4393aabe49ac'","34"]},examples:["'name'","row => row.name"],category:"general"},"virtual-scroll":{type:"Boolean",desc:"Display data using QVirtualScroll (for non-grid mode only)",category:"virtual-scroll"},"virtual-scroll-target":{extends:"scroll-target",passthrough:"child"},"virtual-scroll-slice-size":{type:["Number","String","null"],desc:"Minimum number of rows to render in the virtual list",default:"10",passthrough:"child",category:"virtual-scroll"},"virtual-scroll-slice-ratio-before":{type:["Number","String"],desc:"Ratio of number of rows in visible zone to render before it",default:"1",passthrough:"child",category:"virtual-scroll"},"virtual-scroll-slice-ratio-after":{type:["Number","String"],desc:"Ratio of number of rows in visible zone to render after it",default:"1",passthrough:"child",category:"virtual-scroll"},"virtual-scroll-item-size":{type:["Number","String"],desc:"Default size in pixels of a row; This value is used for rendering the initial table; Try to use a value close to the minimum size of a row; Default value: 48 (24 if dense)",default:"# 48/24",passthrough:"child",category:"virtual-scroll"},"virtual-scroll-sticky-size-start":{type:["Number","String"],desc:"Size in pixels of the sticky header (if using one); A correct value will improve scroll precision; Will be also used for non-virtual-scroll tables for fixing top alignment when using scrollTo method",default:"0",passthrough:"child",category:"virtual-scroll|behavior"},"virtual-scroll-sticky-size-end":{type:["Number","String"],desc:"Size in pixels of the sticky footer part (if using one); A correct value will improve scroll precision",default:"0",passthrough:"child",category:"virtual-scroll"},"table-colspan":{type:["Number","String"],desc:"The number of columns in the table (you need this if you use table-layout: fixed)",category:"virtual-scroll|content",passthrough:"child"},color:{extends:"color",default:"'grey-8'"},"icon-first-page":{extends:"icon",desc:"Icon name following Quasar convention for stepping to first page; Make sure you have the icon library installed unless you are using 'img:' prefix"},"icon-prev-page":{extends:"icon",desc:"Icon name following Quasar convention for stepping to previous page; Make sure you have the icon library installed unless you are using 'img:' prefix"},"icon-next-page":{extends:"icon",desc:"Icon name following Quasar convention for stepping to next page; Make sure you have the icon library installed unless you are using 'img:' prefix"},"icon-last-page":{extends:"icon",desc:"Icon name following Quasar convention for stepping to last page; Make sure you have the icon library installed unless you are using 'img:' prefix"},grid:{type:"Boolean",desc:"Display data as a grid instead of the default table",category:"behavior"},"grid-header":{type:"Boolean",desc:"Display header for grid-mode also",category:"behavior|content"},dense:{extends:"dense",desc:"Dense mode; Connect with $q.screen for responsive behavior"},columns:{type:"Array",desc:"The column definitions (Array of Objects)",examples:['# :columns="tableColumns"'],category:"column",definition:{name:{type:"String",required:!0,desc:"Unique id, identifies column, (used by pagination.sortBy, 'body-cell-[name]' slot, ...)",examples:["'desc'"]},label:{type:"String",required:!0,desc:"Label for header",examples:["'Dessert (100g serving)'"]},field:{type:["String","Function"],required:!0,desc:"Row Object property to determine value for this column or function which maps to the required property",params:{row:{type:"Object",required:!0,desc:"The current row being processed",examples:["{ name: 'Lorem Ipsum', prices: { active: 19, old: 25, list: 29 } }"]}},returns:{type:"Any",desc:"Value for this column",examples:["'19'","19"]},examples:["'name'","row => row.prices.active"]},required:{type:"Boolean",desc:"If we use visible-columns, this col will always be visible"},align:{type:"String",desc:"Horizontal alignment of cells in this column",values:["'left'","'right'","'center'"],default:"'right'"},sortable:{type:"Boolean",desc:"Tell QTable you want this column sortable",default:"false"},sort:{type:"Function",desc:"Compare function if you have some custom data or want a specific way to compare two rows; rows with null/undefined values will get sorted without triggering this method (use 'rawSort' instead if you want to handle those values too)",examples:["(a, b, _rowA, _rowB) => parseInt(a, 10) - parseInt(b, 10)"],params:{a:{type:"Any",required:!0,desc:"Value of the first comparison term",examples:["123","'abc'"]},b:{type:"Any",required:!0,desc:"Value of the second comparison term",examples:["123","'abc'"]},rowA:{type:"Object",required:!0,desc:"Full Row object in which is contained the first term",examples:["{ name: 'Potassium', value: 'K' }"]},rowB:{type:"Object",required:!0,desc:"Full Row object in which is contained the second term",examples:["{ name: 'Fluorine', value: 'F' }"]}},returns:{type:"Number",desc:"Comparison result of term 'a' with term 'b'. Less than 0 when 'a' should come first; greater than 0 if 'b' should come first; equal to 0 if their position must not be changed with respect to each other",examples:["-1","0","1"]}},rawSort:{type:"Function",desc:"Compare function if you have some custom data or want a specific way to compare two rows; includes rows with null/undefined values (use 'sort' instead if you don't want that)",examples:["(a, b, _rowA, _rowB) => parseInt(a, 10) - parseInt(b, 10)"],params:{a:{type:"Any",required:!0,desc:"Value of the first comparison term",examples:["123","'abc'"]},b:{type:"Any",required:!0,desc:"Value of the second comparison term",examples:["123","'abc'"]},rowA:{type:"Object",required:!0,desc:"Full Row object in which is contained the first term",examples:["{ name: 'Potassium', value: 'K' }"]},rowB:{type:"Object",required:!0,desc:"Full Row object in which is contained the second term",examples:["{ name: 'Fluorine', value: 'F' }"]}},returns:{type:"Number",desc:"Comparison result of term 'a' with term 'b'. Less than 0 when 'a' should come first; greater than 0 if 'b' should come first; equal to 0 if their position must not be changed with respect to each other",examples:["-1","0","1"]},addedIn:"v2.13"},sortOrder:{type:"String",desc:"Set column sort order: 'ad' (ascending-descending) or 'da' (descending-ascending); Overrides the 'column-sort-order' prop",values:["'ad'","'da'"],default:"'ad'"},format:{type:"Function",desc:"Function you can apply to format your data",examples:["(val, _row) => `${ val }%`","val => val ? /* Unicode checkmark checked */ '☑' : /* Unicode checkmark unchecked */ '☐'"],params:{val:{type:"Any",required:!0,desc:"Value of the cell",examples:["123","'abc'"]},row:{type:"Object",required:!0,desc:"Full Row object in which the cell is contained",examples:["{ name: 'Potassium', value: 'K' }"]}},returns:{type:"Any",desc:"The resulting formatted value",examples:["'20%'"]}},style:{type:["String","Function"],desc:"Style to apply on normal cells of the column",params:{row:{type:"Object",required:!0,desc:"The current row being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",__exemption:["desc"]},examples:["'width: 500px'","row => (row.calories % 2 === 0 ? 'width: 10px' : 'font-size: 2em; font-weight: bold')"]},classes:{type:["String","Function"],desc:"Classes to add on normal cells of the column",params:{row:{type:"Object",required:!0,desc:"The current row being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",__exemption:["desc"]},examples:["'my-special-class bg-primary'","row => (row.calories % 2 === 0 ? 'bg-green text-white' : 'bg-yellow')"]},headerStyle:{type:"String",desc:"Style to apply on header cells of the column",examples:["'width: 500px'"]},headerClasses:{type:"String",desc:"Classes to add on header cells of the column",examples:["'my-special-class'"]}}},"visible-columns":{type:"Array",desc:"Array of Strings defining column names ('name' property of each column from 'columns' prop definitions); Columns marked as 'required' are not affected by this property",examples:["['desc', 'carbs', 'protein']",'# :visible-columns="myCols"'],category:"column"},loading:{type:"Boolean",desc:"Put Table into 'loading' state; Notify the user something is happening behind the scenes",category:"behavior|content"},title:{type:"String",desc:"Table title",examples:["'Device list'"],category:"content"},"hide-header":{type:"Boolean",desc:"Hide table header layer",category:"content"},"hide-bottom":{type:"Boolean",desc:"Hide table bottom layer regardless of what it has to display",category:"content"},"hide-selected-banner":{type:"Boolean",desc:"Hide the selected rows banner (if any)",category:"content"},"hide-no-data":{type:"Boolean",desc:"Hide the default no data bottom layer",category:"content"},"hide-pagination":{type:"Boolean",desc:"Hide the pagination controls at the bottom",category:"content"},dark:{extends:"dark"},flat:{extends:"flat"},bordered:{extends:"bordered"},square:{extends:"square"},separator:{type:"String",desc:"Use a separator/border between rows, columns or all cells",default:"'horizontal'",values:["'horizontal'","'vertical'","'cell'","'none'"],category:"content"},"wrap-cells":{type:"Boolean",desc:"Wrap text within table cells",category:"content"},"binary-state-sort":{type:"Boolean",desc:"Skip the third state (unsorted) when user toggles column sort direction",category:"sorting"},"column-sort-order":{type:"String",desc:"Set column sort order: 'ad' (ascending-descending) or 'da' (descending-ascending); It gets applied to all columns unless a column has its own sortOrder specified in the 'columns' definition prop",values:["'ad'","'da'"],default:"'ad'",category:"sorting"},"no-data-label":{type:"String",desc:"Override default text to display when no data is available",examples:["'No devices available'"],category:"content"},"no-results-label":{type:"String",desc:"Override default text to display when user filters the table and no matched results are found",examples:["'No matched records'"],category:"content"},"loading-label":{type:"String",desc:"Override default text to display when table is in loading state (see 'loading' prop)",examples:["'Loading devices...'"],category:"content"},"selected-rows-label":{type:"Function",desc:"Text to display when user selected at least one row; For best performance, reference it from your scope and do not define it inline",params:{numberOfRows:{type:"Number",desc:"Number of rows available"}},returns:{type:"String",desc:"Label to display",examples:["'5 rows are selected'"]},examples:["(numberOfRows) => `Selected: ${ numberOfRows } entries`"],category:"selection"},"rows-per-page-label":{type:"String",desc:"Text to override default rows per page label at bottom of table",examples:["'Records per page:'"],category:"pagination"},"pagination-label":{type:"Function",desc:"Text to override default pagination label at bottom of table (unless 'pagination' scoped slot is used); For best performance, reference it from your scope and do not define it inline",params:{firstRowIndex:{type:"Number",desc:"Index of first displayed row"},endRowIndex:{type:"Number",desc:"Index of last displayed row"},totalRowsNumber:{type:"Number",desc:"Number of total rows available in data"}},returns:{type:"String",desc:"Label to display",examples:["'1-10 of 132'"]},examples:["(start, end, total) => `${ start }-${ end } of ${ total }`"],category:"pagination"},"table-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"CSS style to apply to native HTML <table> element's wrapper (which is a DIV)",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"table-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to native HTML <table> element's wrapper (which is a DIV)",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"table-header-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"CSS style to apply to header of native HTML <table> (which is a TR)",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"table-header-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to header of native HTML <table> (which is a TR)",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"table-row-style-fn":{type:"Function",desc:"CSS style to apply to the table rows (which are TR elements); For best performance, reference it from your scope and do not define it inline",params:{row:{type:"Object",desc:"The current row being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",desc:"CSS style to apply to the row",examples:["'color: blue'","'background-color: #ff0000; color: green'"]},category:"style",addedIn:"v2.18"},"table-row-class-fn":{type:"Function",desc:"CSS class(es) to apply the table rows (which are TR elements); For best performance, reference it from your scope and do not define it inline",params:{row:{type:"Object",desc:"The current row being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",desc:"CSS class(es) to apply to the row, space separated",examples:["'my-special-class'","'my-class my-second-class'"]},category:"style",addedIn:"v2.18"},"card-container-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"CSS style to apply to the cards container (when in grid mode)",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"card-container-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to the cards container (when in grid mode)",examples:["'my-special-class'","'justify-center'","{ 'my-special-class': true }"],category:"style"},"card-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"CSS style to apply to the card (when in grid mode) or container card (when not in grid mode)",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"card-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to the card (when in grid mode) or container card (when not in grid mode)",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"card-style-fn":{type:"Function",desc:"(Grid mode only) CSS style to apply to the row/record card; Has no effect when the 'item' slot is used; For best performance, reference it from your scope and do not define it inline",params:{row:{type:"Object",desc:"The current row/record being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",desc:"CSS style to apply to the row/record",examples:["'color: blue'","'background-color: #ff0000; color: green'"]},category:"style",addedIn:"v2.18"},"card-class-fn":{type:"Function",desc:"(Grid mode only) CSS class(es) to apply the row/record card; Has no effect when the 'item' slot is used; For best performance, reference it from your scope and do not define it inline",params:{row:{type:"Object",desc:"The current row/record being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",desc:"CSS class(es) to apply to the row, space separated",examples:["'my-special-class'","'my-class my-second-class'"]},category:"style",addedIn:"v2.18"},"title-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to the title (if using 'title' prop)",examples:["'my-special-class'","'text-h1'","{ 'text-h1': true }"],category:"style"},filter:{type:["String","Object"],desc:"String/Object to filter table with; When using an Object it requires 'filter-method' to also be specified since it will be a custom filtering",examples:["'car'"],category:"filter"},"filter-method":{type:"Function",desc:"The actual filtering mechanism; For best performance, reference it from your scope and do not define it inline",params:{rows:{type:"Array",desc:"Array of rows"},terms:{type:["String","Object"],desc:"Terms to filter with (is essentially the 'filter' prop value)"},cols:{type:"Array",desc:"Column definitions"},getCellValue:{type:"Function",desc:"Optional function to get a cell value",params:{col:{type:"Object",required:!0,desc:"Column name from column definitions"},row:{type:"Object",required:!0,desc:"The row object"}},returns:{type:"Any",desc:"Parsed/Processed cell value",examples:["'Ice Cream Sandwich'"]}}},returns:{type:"Array",desc:"Filtered rows"},examples:["# see source code"],category:"filter"},pagination:{type:"Object",desc:"Pagination object; You can also use the 'v-model:pagination' for synching; When not synching it simply initializes the pagination on first render",definition:{sortBy:{type:["String","null"],desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",desc:"Is sorting in descending order?"},page:{type:"Number",desc:"Page number (1-based)"},rowsPerPage:{type:"Number",desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",desc:"For server-side fetching only. How many total database rows are there to be added to the table. If set, causes the QTable to emit @request when data is required."}},syncable:!0,examples:['# :pagination="myInitialPagination"','# v-model:pagination="myPagination"'],category:"pagination"},"rows-per-page-options":{type:"Array",desc:"Options for user to pick (Numbers); Number 0 means 'Show all rows in one page'",default:"[5, 7, 10, 15, 20, 25, 50, 0]",examples:["[10, 20]"],category:"pagination"},selection:{type:"String",desc:"Selection type",default:"'none'",values:["'single'","'multiple'","'none'"],category:"selection"},selected:{type:"Array",desc:"Keeps the user selection array",default:"[]",syncable:!0,examples:['# v-model:selected="selection"'],category:"selection"},expanded:{type:"Array",desc:"Keeps the array with expanded rows keys",syncable:!0,examples:['# v-model:expanded="expanded"'],category:"expansion"},"sort-method":{type:"Function",desc:"The actual sort mechanism. Function (rows, sortBy, descending) => sorted rows; For best performance, reference it from your scope and do not define it inline",params:{rows:{type:"Array",desc:"Array with rows"},sortBy:{type:"String",desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",desc:"Is sorting in descending order?"}},returns:{type:"Array",desc:"Sorted rows"},examples:["# see source code"],category:"sorting"}},slots:{loading:{desc:"Override default effect when table is in loading state; Suggestion: QInnerLoading"},item:{desc:"Slot to use for defining an item when in 'grid' mode; Suggestion: QCard",scope:{key:{type:"Any",desc:"Row/Item's key"},row:{type:"Object",desc:"Row/Item object"},rowIndex:{type:"Number",desc:"Row/Item's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row/Item's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row/item selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row/item expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},body:{desc:"Slot to define how a body row looks like; Suggestion: QTr + Td",scope:{key:{type:"Any",desc:"Row's key"},row:{type:"Object",desc:"Row object"},rowIndex:{type:"Number",desc:"Row's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"},__trClass:{type:"String",desc:"Internal prop passed down to QTr (if used)"},__trStyle:{type:"String",required:!1,desc:"Internal prop passed down to QTr (if used)",addedIn:"v2.18"}}},"body-cell":{desc:"Slot to define how all body cells look like; Suggestion: QTd",scope:{col:{type:"Object",desc:"Column definition for column associated with table cell"},value:{type:"Any",desc:"Parsed/Formatted value of table cell"},key:{type:"Any",desc:"Row's key"},row:{type:"Object",desc:"Row object"},rowIndex:{type:"Number",desc:"Row's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"body-cell-[name]":{desc:"Slot to define how a specific column cell looks like; replace '[name]' with column name (from columns definition object)",scope:{col:{type:"Object",desc:"Column definition for column associated with table cell"},value:{type:"Any",desc:"Parsed/Formatted value of table cell"},key:{type:"Any",desc:"Row's key"},row:{type:"Object",desc:"Row object"},rowIndex:{type:"Number",desc:"Row's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},header:{desc:"Slot to define how header looks like; Suggestion: QTr + QTh",scope:{cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"},__trClass:{type:"String",desc:"Internal prop passed down to QTr (if used)"},header:{type:"Boolean",desc:"Internal prop passed down to QTh (if used); Always 'true'"}}},"header-cell":{desc:"Slot to define how each header cell looks like; Suggestion: QTh",scope:{col:{type:"Object",desc:"Column definition associated to header cell"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"header-cell-[name]":{desc:"Slot to define how a specific header cell looks like; replace '[name]' with column name (from columns definition object)",scope:{col:{type:"Object",desc:"Column definition associated to header cell"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"body-selection":{desc:"Slot to define how body selection column looks like; Suggestion: QCheckbox",scope:{key:{type:"Any",desc:"Row's key"},row:{type:"Object",desc:"Row object"},rowIndex:{type:"Number",desc:"Row's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"header-selection":{desc:"Slot to define how header selection column looks like (available only for multiple selection mode); Suggestion: QCheckbox",scope:{cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"top-row":{desc:"Slot to define how top extra row looks like",scope:{cols:{type:"Object",desc:"Column definitions"}}},"bottom-row":{desc:"Slot to define how bottom extra row looks like",scope:{cols:{type:"Object",desc:"Column definitions"}}},top:{desc:"Slot to define how table top looks like",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},bottom:{desc:"Slot to define how table bottom looks like",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},pagination:{desc:"Slot to override default pagination label and buttons",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},"top-left":{desc:"Slot to define how left part of the table top looks like",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},"top-right":{desc:"Slot to define how right part of the table top looks like",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},"top-selection":{desc:"Slot to define how top table section looks like when user has selected at least one row",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},"no-data":{desc:"Slot to define how the bottom will look like when is nothing to display",scope:{message:{type:"String",desc:"The suggested message",examples:["'No data available'"]},icon:{type:"String",desc:"The suggested icon name (following Quasar convention)",examples:["'warning'"]},filter:{type:["String","Object"],desc:"String/Object to filter table with (the 'filter' prop)"}}}},events:{"row-click":{desc:"Emitted when user clicks/taps on a row; Is not emitted when using body/row/item scoped slots",params:{evt:{extends:"evt"},row:{type:"Object",desc:"The row upon which user has clicked/tapped"},index:{type:"Number",desc:"Index of the row in the current page"}}},"row-dblclick":{desc:"Emitted when user quickly double clicks/taps on a row; Is not emitted when using body/row/item scoped slots; Please check JS dblclick event support before using",params:{evt:{extends:"evt"},row:{type:"Object",desc:"The row upon which user has double clicked/tapped"},index:{type:"Number",desc:"Index of the row in the current page"}}},"row-contextmenu":{desc:"Emitted when user right clicks/long taps on a row; Is not emitted when using body/row/item scoped slots",params:{evt:{extends:"evt"},row:{type:"Object",desc:"The row upon which user has right clicked/long tapped"},index:{type:"Number",desc:"Index of the row in the current page"}}},request:{desc:"Emitted when a server request is triggered",params:{requestProp:{type:"Object",desc:"Props of the request",definition:{pagination:{type:"Object",required:!0,desc:"Pagination object",definition:{sortBy:{type:"String",required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},filter:{type:["String","Object"],desc:"String/Object to filter table with (the 'filter' prop)"},getCellValue:{type:"Function",required:!0,desc:"Function to get a cell value",params:{col:{type:"Object",required:!0,desc:"Column name from column definitions"},row:{type:"Object",required:!0,desc:"The row object"}},returns:{type:"Any",desc:"Parsed/Processed cell value",examples:["'Ice Cream Sandwich'"]}}}}}},selection:{desc:"Emitted when user selects/unselects row(s)",params:{details:{type:"Object",desc:"Selection details",definition:{rows:{type:"Array",required:!0,desc:"Array of row objects that were selected/unselected"},keys:{type:"Array",required:!0,desc:"Array of the keys of rows that were selected/unselected"},added:{type:"Boolean",required:!0,desc:"Were the rows added to selection (true) or removed from selection (false)"},evt:{extends:"evt",required:!0}}}}},"update:pagination":{desc:"Used by Vue on 'v-model:pagination' for updating its value",params:{newPagination:{type:"Object",desc:"The updated pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}}}},"update:selected":{desc:"Used by Vue on 'v-model:selected' prop for updating its value",params:{newSelected:{type:"Array",desc:"The updated selected array",examples:["[{ name: 'Frozen Yogurt', calories: 159, fat: 6 }]"]}}},"update:expanded":{desc:"Used by Vue on 'v-model:expanded' prop for updating its value",params:{newExpanded:{type:"Array",desc:"The updated expanded array",examples:["['row-a', 'row-b']"]}}},"virtual-scroll":{desc:"Emitted when the virtual scroll occurs, if using virtual scroll",params:{details:{type:"Object",desc:"Object of properties on the new scroll position",definition:{index:{type:"Number",required:!0,desc:"Index of the list item that was scrolled into view (0 based)"},from:{type:"Number",required:!0,desc:"The index of the first list item that is rendered (0 based)"},to:{type:"Number",required:!0,desc:"The index of the last list item that is rendered (0 based)"},direction:{type:"String",required:!0,desc:"Direction of change",values:["'increase'","'decrease'"]},ref:{type:"Component",required:!0,desc:"Vue reference to the underlying QVirtualScroll instance"}}}}}},methods:{requestServerInteraction:{desc:"Trigger a server request (emits 'request' event)",params:{props:{type:"Object",required:!1,desc:"Request details",definition:{pagination:{type:"Object",required:!1,desc:"Optional pagination object",definition:{sortBy:{type:"String",desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",desc:"Is sorting in descending order?"},page:{type:"Number",desc:"Page number (1-based)"},rowsPerPage:{type:"Number",desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},filter:{type:"Function",desc:"Filtering method (the 'filter-method' prop)",params:{rows:{type:"Array",required:!0,desc:"Array of rows"},terms:{type:["String","Object"],required:!0,desc:"Terms to filter with (is essentially the 'filter' prop value)"},cols:{type:"Array",desc:"Optional column definitions"},getCellValue:{type:"Function",desc:"Optional function to get a cell value",params:{col:{type:"Object",desc:"Column name from column definitions"},row:{type:"Object",desc:"The row object"}},returns:{type:"Any",desc:"Parsed/Processed cell value",examples:["'Ice Cream Sandwich'"]}}},returns:{type:"Array",desc:"Filtered rows"}}}}},returns:null},setPagination:{desc:"Unless using an external pagination Object (through 'v-model:pagination' prop), you can use this method and force the internal pagination to change",params:{pagination:{type:"Object",required:!0,desc:"Pagination object",definition:{sortBy:{type:["String","null"],desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",desc:"Is sorting in descending order?"},page:{type:"Number",desc:"Page number (1-based)"},rowsPerPage:{type:"Number",desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},forceServerRequest:{type:"Boolean",desc:"Also force a server request"}},returns:null},firstPage:{desc:"Navigates to first page",params:null,returns:null},prevPage:{desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{desc:"Navigates to last page",params:null,returns:null},isRowSelected:{desc:"Determine if a row has been selected by user",params:{key:{type:"Any",required:!0,desc:"Row key value",examples:["'calories'"]}},returns:{type:"Boolean",desc:"Is row selected or not?"}},clearSelection:{desc:"Clears user selection (emits 'update:selected' with empty array)",params:null,returns:null},isRowExpanded:{desc:"Determine if a row is expanded or not",params:{key:{type:"Any",required:!0,desc:"Row key value",examples:["'calories'"]}},returns:{type:"Boolean",desc:"Is row expanded or not?"}},setExpanded:{desc:"Sets the expanded rows keys array; Especially useful if not using an external 'expanded' state otherwise just emits 'update:expanded' with the value",params:{expanded:{type:"Array",required:!0,desc:"Array containing keys of the expanded rows",examples:["['row-a', 'row-b']"]}},returns:null},sort:{desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},toggleFullscreen:{desc:"Toggles fullscreen mode",params:null,returns:null},resetVirtualScroll:{desc:"Resets the virtual scroll (if using it) computations; Needed for custom edge-cases",params:null,returns:null},scrollTo:{desc:"Scroll the table to the row with the specified index in page (0 based)",params:{index:{type:["Number","String"],required:!0,desc:"The index of the row in page (0 based)"},edge:{type:"String",desc:"Only for virtual scroll - the edge to align to if the row is not visible already; If the '-force' version is used then it always aligns; Default value: end (if scrolling towards the end) / start (if scrolling towards the start)",values:["'start'","'center'","'end'","'start-force'","'center-force'","'end-force'"],default:"# end/start"}},returns:null}},computedProps:{filteredSortedRows:{desc:"The filtered and sorted rows (same as the rows prop if using server-side fetching)",type:"Array",examples:["[{ name: 'Ice Cream Sandwich', calories: 237, fat: 9.0, carbs: 37, protein: 4.3, sodium: 129, calcium: 8, iron: 1 }, ...]"]},computedRows:{desc:"Paginated, filtered, and sorted rows (same as the rows prop if using server-side fetching)",type:"Array",examples:["[{ name: 'Ice Cream Sandwich', calories: 237, fat: 9.0, carbs: 37, protein: 4.3, sodium: 129, calcium: 8, iron: 1 }, ...]"]},computedRowsNumber:{type:"Number",desc:"The number of computed rows"}}},aR={name:"ShowcaseTable",components:{QTable:V.QTable,QTd:V.QTd,QBadge:V.QBadge,QInput:V.QInput,QIcon:V.QIcon},label:"Table",icon:"grid_on",apiJson:nR,importName:"QTable",importFrom:"quasar",data(){return{filter:"",selected:[],shipColumns:[{name:"name",label:"Vessel",field:"name",align:"left",sortable:!0},{name:"class",label:"Class",field:"class",align:"left",sortable:!0},{name:"crew",label:"Crew",field:"crew",align:"right",sortable:!0},{name:"warp",label:"Warp",field:"warp",align:"right",sortable:!0,format:o=>o.toFixed(1)}],ships:[{name:"USS Endeavor",class:"Explorer",crew:430,warp:9.2},{name:"USS Valkyrie",class:"Combat",crew:260,warp:9.6},{name:"USS Pioneer",class:"Science",crew:180,warp:8.4},{name:"USS Horizon",class:"Medical",crew:310,warp:7.8},{name:"USS Odyssey",class:"Explorer",crew:510,warp:9.4}],systemColumns:[{name:"name",label:"System",field:"name",align:"left",sortable:!0},{name:"deck",label:"Deck",field:"deck",align:"right",sortable:!0},{name:"status",label:"Status",field:"status",align:"right"}],systems:[{name:"Warp Core",deck:12,status:"ONLINE",color:"positive"},{name:"Shields",deck:5,status:"CHARGING",color:"warning"},{name:"Life Support",deck:3,status:"NOMINAL",color:"positive"},{name:"Cloaking Device",deck:8,status:"OFFLINE",color:"negative"},{name:"Phaser Array",deck:2,status:"ONLINE",color:"positive"},{name:"Tractor Beam",deck:6,status:"STANDBY",color:"info"}]}}},rR={class:"jShowcase_row jShowcase_column showcaseTable"},sR={class:"jShowcase_group"},iR={class:"jShowcase_group"},lR={class:"text-caption text-muted q-mt-sm"},cR={class:"jShowcase_group"};function dR(o,t,a,l,n,s){const r=e.resolveComponent("QTable"),i=e.resolveComponent("QIcon"),c=e.resolveComponent("QInput"),m=e.resolveComponent("QBadge"),d=e.resolveComponent("QTd");return e.openBlock(),e.createElementBlock("div",rR,[t[5]||(t[5]=e.createElementVNode("div",{class:"jShowcase_info"},[e.createElementVNode("p",null,[e.createElementVNode("strong",null,"QTable"),e.createTextVNode(" is a full-featured data grid — sorting, filtering, pagination, row selection, expandable rows, sticky headers, server-side data, virtual scrolling, and more. The examples below cover only a small slice of its surface area.")]),e.createElementVNode("p",null,[e.createTextVNode("The full prop, slot, and event reference is in the API section below. For more samples and ideas, check the "),e.createElementVNode("a",{href:"https://quasar.dev/vue-components/table",target:"_blank",rel:"noopener"},"official Quasar documentation"),e.createTextVNode(".")])],-1)),e.createElementVNode("div",sR,[t[2]||(t[2]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createVNode(r,{rows:n.ships,columns:n.shipColumns,"row-key":"name",flat:"",bordered:""},null,8,["rows","columns"])]),e.createElementVNode("div",iR,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Selectable & Dense",-1)),e.createVNode(r,{selected:n.selected,"onUpdate:selected":t[0]||(t[0]=u=>n.selected=u),rows:n.ships,columns:n.shipColumns,"row-key":"name",selection:"multiple",dense:"",flat:"",bordered:""},null,8,["selected","rows","columns"]),e.createElementVNode("div",lR," Selected: "+e.toDisplayString(n.selected.length),1)]),e.createElementVNode("div",cR,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"With Search & Status Cell",-1)),e.createVNode(r,{rows:n.systems,columns:n.systemColumns,filter:n.filter,"row-key":"name",pagination:{rowsPerPage:3},flat:"",bordered:""},{"top-right":e.withCtx(()=>[e.createVNode(c,{modelValue:n.filter,"onUpdate:modelValue":t[1]||(t[1]=u=>n.filter=u),dense:"",outlined:"",debounce:"200",placeholder:"Search"},{append:e.withCtx(()=>[e.createVNode(i,{name:"search"})]),_:1},8,["modelValue"])]),"body-cell-status":e.withCtx(u=>[e.createVNode(d,{props:u},{default:e.withCtx(()=>[e.createVNode(m,{color:u.row.color,label:u.row.status},null,8,["color","label"])]),_:2},1032,["props"])]),_:1},8,["rows","columns","filter"])])])}const pR=Object.freeze(Object.defineProperty({__proto__:null,default:j(aR,[["render",dR],["__scopeId","data-v-28c85770"]])},Symbol.toStringTag,{value:"Module"})),mR=`<template>
|
|
397
|
+
<QBtn icon="send" label="Send" />`,data(){return{search:"",category:"all",allCategories:FL}},computed:{filtered(){let o=xo;if(this.category!=="all"&&(o=o.filter(t=>t[1]===this.category)),this.search){const t=this.search.toLowerCase().replace(/\s+/g,"_");o=o.filter(a=>a[0].includes(t))}return o}},watch:{search(o){o&&(this.category="all")}},methods:{onCopy(o){this.showcaseCopy(o[0],o[0])}}},PL={class:"iconShowcase"},$L={class:"iconControls"},RL={class:"iconStats"},ML={class:"iconGrid non-selectable"},UL=["onClick"],HL={class:"iconLabel text-truncate"};function GL(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QInput"),c=e.resolveComponent("QTab"),m=e.resolveComponent("QTabs");return e.openBlock(),e.createElementBlock("div",PL,[e.createElementVNode("div",$L,[e.createVNode(i,{modelValue:n.search,"onUpdate:modelValue":t[1]||(t[1]=d=>n.search=d),dense:"",outlined:"",placeholder:"Filter icons...",color:"accent",class:"iconSearch"},e.createSlots({prepend:e.withCtx(()=>[e.createVNode(r,{name:"search",size:"16px"})]),_:2},[n.search?{name:"append",fn:e.withCtx(()=>[e.createVNode(r,{name:"close",size:"14px",class:"cursor-pointer",onClick:t[0]||(t[0]=d=>n.search="")})]),key:"0"}:void 0]),1032,["modelValue"]),e.createVNode(m,{modelValue:n.category,"onUpdate:modelValue":t[2]||(t[2]=d=>n.category=d),dense:"","active-color":"accent","indicator-color":"accent",align:"left","narrow-indicator":"","no-caps":"",class:"iconTabs"},{default:e.withCtx(()=>[e.createVNode(c,{name:"all",label:"All"}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.allCategories,d=>(e.openBlock(),e.createBlock(c,{key:d,name:d,label:d},null,8,["name","label"]))),128))]),_:1},8,["modelValue"])]),e.createElementVNode("div",RL,e.toDisplayString(s.filtered.length)+" icons ",1),e.createElementVNode("div",ML,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.filtered,d=>(e.openBlock(),e.createElementBlock("div",{key:d[0],class:"iconCell",onClick:u=>s.onCopy(d)},[e.createVNode(r,{name:d[0],size:"36px"},null,8,["name"]),e.createElementVNode("span",HL,e.toDisplayString(d[0]),1)],8,UL))),128))])])}const WL=Object.freeze(Object.defineProperty({__proto__:null,default:j(zL,[["render",GL],["__scopeId","data-v-a00fef0a"]])},Symbol.toStringTag,{value:"Module"})),JL={mixins:["components/btn/use-btn"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/button"},props:{round:{type:"Boolean",desc:"Makes a circle shaped button",category:"style"},percentage:{type:"Number",desc:"Percentage (0.0 < x < 100.0); To be used along 'loading' prop; Display a progress bar on the background",category:"behavior"},"dark-percentage":{type:"Boolean",desc:"Progress bar on the background should have dark color; To be used along with 'percentage' and 'loading' props",category:"behavior"}},slots:{default:{desc:"Use for custom content, instead of relying on 'icon' and 'label' props"},loading:{desc:"Override the default QSpinner when in 'loading' state"}},methods:{click:{desc:"Emulate click on QBtn",params:{evt:{extends:"evt"}},returns:null}},events:{click:{desc:"Emitted when the component is clicked",params:{evt:{extends:"evt",desc:"JS event object; If you are using route navigation ('to'/'replace' props) and you want to cancel navigation then call evt.preventDefault() synchronously in your event handler"},go:{type:"Function",desc:"Available ONLY if you are using route navigation ('to'/'replace' props); When you need to control the time at which the component should trigger the route navigation then call evt.preventDefault() synchronously and then call this function at your convenience; Useful if you have async work to be done before the actual route navigation or if you want to redirect somewhere else",required:!1,addedIn:"v2.9",params:{opts:{type:"Object",desc:"Optional options",required:!1,definition:{to:{type:["String","Object"],desc:"Equivalent to Vue Router <router-link> 'to' property; Specify it explicitly otherwise it will be set with same value as component's 'to' prop",required:!1,examples:["'/home/dashboard'","{ name: 'my-route-name' }"]},replace:{type:"Boolean",desc:"Equivalent to Vue Router <router-link> 'replace' property; Specify it explicitly otherwise it will be set with same value as component's 'replace' prop",required:!1},returnRouterError:{type:"Boolean",desc:"Return the router error, if any; Otherwise the returned Promise will always fulfill",required:!1}}}},returns:{type:"Promise<any>",desc:"Returns the router's navigation promise"}}}},touchstart:{internal:!0},keydown:{internal:!0},keyup:{internal:!0},mousedown:{internal:!0}}},YL={name:"ShowcaseQuasarBtn",components:{QBtn:V.QBtn},label:"Quasar Btn",icon:"smart_button",apiJson:JL,importName:"QBtn",importFrom:"quasar"},ZL={class:"jShowcase_row jShowcase_column"},KL={class:"jShowcase_group"},XL={class:"jShowcase_items"},eO={class:"jShowcase_group"},tO={class:"jShowcase_items"},oO={class:"jShowcase_group"},nO={class:"jShowcase_items"},aO={class:"jShowcase_group"},rO={class:"jShowcase_items"},sO={class:"jShowcase_group"},iO={class:"jShowcase_items"},lO={class:"jShowcase_group"},cO={class:"jShowcase_items"},dO={class:"jShowcase_group"},pO={class:"jShowcase_items"};function mO(o,t,a,l,n,s){const r=e.resolveComponent("QBtn");return e.openBlock(),e.createElementBlock("div",ZL,[e.createElementVNode("div",KL,[t[0]||(t[0]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",XL,[e.createVNode(r,{color:"primary",label:"Default"}),e.createVNode(r,{flat:"",color:"primary",label:"Flat"}),e.createVNode(r,{outline:"",color:"primary",label:"Outline"}),e.createVNode(r,{unelevated:"",color:"primary",label:"Unelevated"}),e.createVNode(r,{push:"",color:"primary",label:"Push"}),e.createVNode(r,{glossy:"",color:"primary",label:"Glossy"})])]),e.createElementVNode("div",eO,[t[1]||(t[1]=e.createElementVNode("span",{class:"jShowcase_title"},"Custom Variants",-1)),e.createElementVNode("div",tO,[e.createVNode(r,{class:"ghost",label:"Ghost",icon:"settings"})])]),e.createElementVNode("div",oO,[t[2]||(t[2]=e.createElementVNode("span",{class:"jShowcase_title"},"Shapes",-1)),e.createElementVNode("div",nO,[e.createVNode(r,{color:"accent",label:"Rounded",rounded:""}),e.createVNode(r,{color:"accent",label:"Square",square:""}),e.createVNode(r,{color:"accent",icon:"star",round:""}),e.createVNode(r,{color:"accent",icon:"rocket_launch",label:"FAB",fab:""}),e.createVNode(r,{color:"accent",icon:"add","fab-mini":""})])]),e.createElementVNode("div",aO,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Icons",-1)),e.createElementVNode("div",rO,[e.createVNode(r,{color:"secondary",icon:"flight_takeoff",label:"Launch"}),e.createVNode(r,{color:"secondary",label:"Deploy","icon-right":"send"}),e.createVNode(r,{color:"secondary",icon:"shield",label:"Shield","icon-right":"chevron_right"}),e.createVNode(r,{outline:"",color:"secondary",icon:"settings",round:""})])]),e.createElementVNode("div",sO,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"Colors",-1)),e.createElementVNode("div",iO,[e.createVNode(r,{color:"primary",label:"Primary"}),e.createVNode(r,{color:"secondary",label:"Secondary"}),e.createVNode(r,{color:"accent",label:"Accent"}),e.createVNode(r,{color:"positive",label:"Positive"}),e.createVNode(r,{color:"negative",label:"Negative"}),e.createVNode(r,{color:"info",label:"Info"}),e.createVNode(r,{color:"warning",label:"Warning"})])]),e.createElementVNode("div",lO,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Sizes",-1)),e.createElementVNode("div",cO,[e.createVNode(r,{color:"primary",label:"xs",size:"xs"}),e.createVNode(r,{color:"primary",label:"sm",size:"sm"}),e.createVNode(r,{color:"primary",label:"md",size:"md"}),e.createVNode(r,{color:"primary",label:"lg",size:"lg"}),e.createVNode(r,{color:"primary",label:"xl",size:"xl"})])]),e.createElementVNode("div",dO,[t[6]||(t[6]=e.createElementVNode("span",{class:"jShowcase_title"},"States",-1)),e.createElementVNode("div",pO,[e.createVNode(r,{color:"info",label:"Loading",loading:""}),e.createVNode(r,{color:"negative",label:"Disabled",disable:""}),e.createVNode(r,{color:"accent",label:"Dense",dense:""}),e.createVNode(r,{color:"secondary",icon:"bolt",label:"Stacked",stack:""}),e.createVNode(r,{color:"primary",label:"No caps","no-caps":""})])])])}const uO=Object.freeze(Object.defineProperty({__proto__:null,default:j(YL,[["render",mO]])},Symbol.toStringTag,{value:"Module"})),hO={mixins:["components/btn/use-btn","composables/private.use-model-toggle/use-model-toggle","composables/private.use-transition/use-transition"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/button-dropdown"},props:{"model-value":{type:"Boolean",__delete:["default"]},split:{type:"Boolean",desc:"Split dropdown icon into its own button",category:"content|behavior"},"dropdown-icon":{extends:"icon"},"disable-main-btn":{type:"Boolean",desc:"Disable main button (useful along with 'split' prop)",category:"behavior"},"disable-dropdown":{type:"Boolean",desc:"Disables dropdown (dropdown button if using along 'split' prop)",category:"behavior"},"no-icon-animation":{type:"Boolean",desc:"Disables the rotation of the dropdown icon when state is toggled",category:"style"},"content-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Style definitions to be attributed to the menu",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"content-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Class definitions to be attributed to the menu",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},cover:{type:"Boolean",desc:"Allows the menu to cover the button. When used, the 'menu-self' prop is no longer effective",category:"position"},persistent:{type:"Boolean",desc:"Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key; Also, an app route change won't dismiss it",category:"behavior"},"no-esc-dismiss":{type:"Boolean",desc:"User cannot dismiss the popup by hitting ESC key; No need to set it if 'persistent' prop is also set",category:"behavior",addedIn:"v2.18"},"no-route-dismiss":{type:"Boolean",desc:"Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set",category:"behavior"},"auto-close":{type:"Boolean",desc:"Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap",category:"behavior"},"no-refocus":{type:"Boolean",desc:"(Accessibility) When the dropdown gets hidden, do not refocus on the DOM element that previously had focus",category:"behavior",addedIn:"v2.18"},"no-focus":{type:"Boolean",desc:"(Accessibility) When the dropdown gets shown, do not switch focus on it",category:"behavior",addedIn:"v2.18"},"menu-anchor":{type:"String",desc:"Two values setting the starting position or anchor point of the menu relative to its target",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],default:"'bottom end'",category:"position"},"menu-self":{type:"String",desc:"Two values setting the menu's own position relative to its target",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],default:"'top end'",category:"position"},"menu-offset":{type:"Array",desc:"An array of two numbers to offset the menu horizontally and vertically in pixels",examples:["[8, 8]","[5, 10]"],category:"position"},"toggle-aria-label":{type:"String",desc:"aria-label to be used on the dropdown toggle element",examples:["'Open menu'"],category:"accessibility",addedIn:"v2.8.4"}},slots:{default:{extends:"default"},label:{desc:"Customize main button's content through this slot, unless you're using the 'icon' and 'label' props"},loading:{desc:"Override the default QSpinner when in 'loading' state",addedIn:"v2.8"}},events:{click:{extends:"click",desc:"Emitted when user clicks/taps on the main button (not the icon one, if using 'split')"}}},fO={name:"ShowcaseQuasarBtnDropdown",components:{QBtnDropdown:V.QBtnDropdown,QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QIcon:V.QIcon,QSeparator:V.QSeparator},label:"Quasar Btn Dropdown",icon:"smart_button",apiJson:hO,importName:"QBtnDropdown",importFrom:"quasar"},gO={class:"jShowcase_row jShowcase_column"},bO={class:"jShowcase_group"},yO={class:"jShowcase_items"},_O={class:"jShowcase_group"},wO={class:"jShowcase_items"},xO={class:"jShowcase_group"},vO={class:"jShowcase_items"},kO={class:"jShowcase_group"},SO={class:"jShowcase_items"};function QO(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItem"),m=e.resolveComponent("QSeparator"),d=e.resolveComponent("QList"),u=e.resolveComponent("QBtnDropdown"),g=e.resolveDirective("close-popup");return e.openBlock(),e.createElementBlock("div",gO,[e.createElementVNode("div",bO,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",yO,[e.createVNode(u,{color:"primary",label:"Actions"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"edit"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Edit",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"content_copy"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode("Duplicate",-1)])]),_:1})]),_:1})),[[g]]),e.createVNode(m),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"delete"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode("Delete",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"secondary",icon:"add",label:"Create"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("New File",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("New Folder",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})])]),e.createElementVNode("div",_O,[t[10]||(t[10]=e.createElementVNode("span",{class:"jShowcase_title"},"Split",-1)),e.createElementVNode("div",wO,[e.createVNode(u,{color:"primary",icon:"save",label:"Save",split:"",onClick:b=>null},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Save as Draft",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("Save & Publish",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"accent",icon:"share",label:"Share",split:"",onClick:b=>null},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("Copy Link",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Email",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})])]),e.createElementVNode("div",xO,[t[21]||(t[21]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",vO,[e.createVNode(u,{color:"primary",label:"Flat",flat:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"primary",label:"Outline",outline:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"primary",label:"Unelevated",unelevated:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"primary",label:"Push",push:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1}),e.createVNode(u,{color:"primary",label:"Dense",dense:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[g]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})])]),e.createElementVNode("div",kO,[t[23]||(t[23]=e.createElementVNode("span",{class:"jShowcase_title"},"States",-1)),e.createElementVNode("div",SO,[e.createVNode(u,{color:"info",label:"Loading",loading:""}),e.createVNode(u,{color:"negative",label:"Disabled",disable:""}),e.createVNode(u,{color:"primary",label:"No Icon Animation","no-icon-animation":""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("Option",-1)])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})])])])}const CO=Object.freeze(Object.defineProperty({__proto__:null,default:j(fO,[["render",QO]])},Symbol.toStringTag,{value:"Module"})),NO={mixins:["composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/button-toggle"},props:{"model-value":{extends:"model-value",type:"Any",desc:"Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="selected"']},options:{type:"Array",desc:"Array of Objects defining each option",required:!0,definition:{attrs:{type:"Object",desc:"Key-value for attributes to be set on the button",examples:["{ 'aria-label': 'Button label' }"],__exemption:["definition"]},label:{type:"String",desc:"Label of option button; Use this prop and/or 'icon', but at least one is required",examples:["'Option 1'"]},icon:{extends:"icon",desc:"Icon of option button; Use this prop and/or 'label', but at least one is required"},value:{type:"Any",desc:"Value of the option that will be used by component model",required:!0},slot:{type:"String",desc:"Slot name to use for this button content; Useful for customizing content or even add tooltips",examples:["'mySlot'"]},"...props":{type:"Any",desc:"Any other QBtn props (including class and style)"}},examples:["[{ label: 'One', value: 'one' }, { label: 'Two', value: 'two' }]"],category:"model"},color:{extends:"color"},"text-color":{extends:"text-color"},"toggle-color":{extends:"color",default:"'primary'"},"toggle-text-color":{extends:"text-color"},spread:{type:"Boolean",desc:"Spread horizontally to all available space",category:"content"},outline:{type:"Boolean",desc:"Use 'outline' design",category:"style"},flat:{type:"Boolean",desc:"Use 'flat' design",category:"style"},unelevated:{type:"Boolean",desc:"Remove shadow",category:"style"},rounded:{type:"Boolean",desc:"Applies a more prominent border-radius for a squared shape button",category:"style"},push:{type:"Boolean",desc:"Use 'push' design",category:"style"},glossy:{type:"Boolean",desc:"Applies a glossy effect",category:"style"},size:{type:"String",desc:"Button size name or a CSS unit including unit name",examples:["'xs'","'sm'","'md'","'lg'","'xl'","'25px'","'2rem'"],category:"style"},padding:{type:"String",desc:"Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set",examples:["'16px'","'10px 5px'","'2rem'","'xs'","'md lg'","'2px 2px 5px 7px'"],category:"style"},"no-caps":{type:"Boolean",desc:"Avoid turning label text into caps (which happens by default)",category:"content"},"no-wrap":{type:"Boolean",desc:"Avoid label text wrapping",category:"content"},ripple:{extends:"ripple"},dense:{extends:"dense"},readonly:{extends:"readonly"},disable:{extends:"disable"},stack:{type:"Boolean",desc:"Stack icon and label vertically instead of on same line (like it is by default)",category:"content"},stretch:{type:"Boolean",desc:"When used on flexbox parent, button will stretch to parent's height",category:"content"},clearable:{type:"Boolean",desc:"Clears model on click of the already selected button",category:"model"}},events:{"update:model-value":{extends:"update:model-value"},clear:{desc:"When using the 'clearable' property, this event is emitted when the already selected button is clicked"},click:{internal:!0}},slots:{default:{desc:"Suggestions: QTooltip, QBadge"},"...":{desc:"Any other dynamic slots to be used with 'slot' property of the 'options' prop"}}},IO={name:"ShowcaseBtnToggle",components:{QBtnToggle:V.QBtnToggle},apiJson:NO,importName:"QBtnToggle",importFrom:"quasar",data(){return{toggleValue:"one"}},label:"Btn Toggle",icon:"smart_button",code:null},VO={class:"jShowcase_row jShowcase_column"},EO={class:"jShowcase_group"},BO={class:"jShowcase_items"},TO={class:"jShowcase_group"},AO={class:"jShowcase_items"},qO={class:"jShowcase_group"},DO={class:"jShowcase_items"};function jO(o,t,a,l,n,s){const r=e.resolveComponent("QBtnToggle");return e.openBlock(),e.createElementBlock("div",VO,[e.createElementVNode("div",EO,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",BO,[e.createVNode(r,{modelValue:n.toggleValue,"onUpdate:modelValue":t[0]||(t[0]=i=>n.toggleValue=i),label:"Toggle me","toggle-color":"primary",options:[{label:"One",value:"one"},{label:"Two",value:"two"},{label:"Three",value:"three"}]},null,8,["modelValue"])])]),e.createElementVNode("div",TO,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"Flat with Icons",-1)),e.createElementVNode("div",AO,[e.createVNode(r,{modelValue:n.toggleValue,"onUpdate:modelValue":t[1]||(t[1]=i=>n.toggleValue=i),flat:"","toggle-color":"primary","text-color":"muted",options:[{label:"List",value:"one",icon:"view_list"},{label:"Grid",value:"two",icon:"grid_view"},{label:"Board",value:"three",icon:"dashboard"}]},null,8,["modelValue"])])]),e.createElementVNode("div",qO,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Outline",-1)),e.createElementVNode("div",DO,[e.createVNode(r,{modelValue:n.toggleValue,"onUpdate:modelValue":t[2]||(t[2]=i=>n.toggleValue=i),label:"Toggle me","toggle-color":"accent",color:"primary","text-color":"primary",outline:"",options:[{label:"One",value:"one",icon:n.toggleValue=="one"?"check_circle":void 0},{label:"Two",value:"two",icon:n.toggleValue=="two"?"check_circle":void 0},{label:"Three",value:"three",icon:n.toggleValue=="three"?"check_circle":void 0}]},null,8,["modelValue","options"])])])])}const LO=Object.freeze(Object.defineProperty({__proto__:null,default:j(IO,[["render",jO]])},Symbol.toStringTag,{value:"Module"})),OO={mixins:["composables/private.use-model-toggle/use-model-toggle","composables/private.use-portal/use-portal","composables/private.use-transition/use-transition"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/dialog"},props:{persistent:{type:"Boolean",desc:"User cannot dismiss Dialog if clicking outside of it or hitting ESC key; Also, an app route change won't dismiss it",category:"behavior"},"no-esc-dismiss":{type:"Boolean",desc:"User cannot dismiss Dialog by hitting ESC key; No need to set it if 'persistent' prop is also set",category:"behavior"},"no-backdrop-dismiss":{type:"Boolean",desc:"User cannot dismiss Dialog by clicking outside of it; No need to set it if 'persistent' prop is also set",category:"behavior"},"no-route-dismiss":{type:"Boolean",desc:"Changing route app won't dismiss Dialog; No need to set it if 'persistent' prop is also set",category:"behavior"},"auto-close":{type:"Boolean",desc:"Any click/tap inside of the dialog will close it",category:"behavior"},seamless:{type:"Boolean",desc:"Put Dialog into seamless mode; Does not use a backdrop so user is able to interact with the rest of the page too",category:"content"},"backdrop-filter":{type:"String",desc:"Apply a backdrop filter; The value needs to be the same as in the CSS specs for backdrop-filter; The examples are not an exhaustive list",examples:["'blur(4px)'","'blur(4px) saturate(150%)'","'brightness(60%)'","'invert(70%)'","'grayscale(100%)'","'contrast(40%)'","'hue-rotate(120deg)'","'sepia(90%)'","'saturate(80%)'","'none'"],category:"style",addedIn:"v2.15"},maximized:{type:"Boolean",desc:"Put Dialog into maximized mode",category:"content"},"full-width":{type:"Boolean",desc:"Dialog will try to render with same width as the window",category:"content"},"full-height":{type:"Boolean",desc:"Dialog will try to render with same height as the window",category:"content"},position:{type:"String",desc:"Stick dialog to one of the sides (top, right, bottom or left)",default:"'standard'",values:["'standard'","'top'","'right'","'bottom'","'left'"],category:"content"},square:{type:"Boolean",desc:"Forces content to have squared borders",category:"style"},"no-refocus":{type:"Boolean",desc:"(Accessibility) When Dialog gets hidden, do not refocus on the DOM element that previously had focus",category:"behavior"},"no-focus":{type:"Boolean",desc:"(Accessibility) When Dialog gets shown, do not switch focus on it",category:"behavior"},"no-shake":{type:"Boolean",desc:"Do not shake up the Dialog to catch user's attention",category:"behavior",addedIn:"v2.1.1"},"allow-focus-outside":{type:"Boolean",desc:"Allow elements outside of the Dialog to be focusable; By default, for accessibility reasons, QDialog does not allow outer focus",category:"behavior",addedIn:"v2.7.2"},"transition-show":{__runtimeDefault:!0},"transition-hide":{__runtimeDefault:!0}},events:{shake:{desc:"Emitted when the Dialog shakes in order to catch user's attention, unless the 'no-shake' property is set"},"escape-key":{desc:"Emitted when ESC key is pressed; Does not get emitted if Dialog is 'persistent' or it has 'no-esc-dismiss' set"},click:{internal:!0}},methods:{focus:{desc:"Focus dialog; if you have content with autofocus attribute, it will directly focus it",params:{selector:{type:"String",required:!1,desc:"Optional CSS selector to override default focusable element",examples:[`'[tabindex]:not([tabindex="-1"])'`],addedIn:"v2.6.5"}},returns:null},shake:{desc:"Shakes dialog",params:{focusTarget:{type:"Element",desc:"Optional DOM Element to be focused after shake",examples:["document.getElementById('example')"],addedIn:"v2.10.1"}},returns:null}},slots:{default:{extends:"default"}}},FO={name:"ShowcaseDialog",label:"Quasar Dialog",icon:"picture_in_picture",components:{QBtn:V.QBtn,QDialog:V.QDialog,QCard:V.QCard,QCardSection:V.QCardSection,QCardActions:V.QCardActions,QIcon:V.QIcon,QSpace:V.QSpace,QSeparator:V.QSeparator,QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel,QBadge:V.QBadge,QInnerLoading:V.QInnerLoading,QSpinner:V.QSpinner,QInput:V.QInput,QSelect:V.QSelect},apiJson:OO,importName:"QDialog",importFrom:"quasar",data(){return{isLoading:!1,simple:!1,card:!1,persistent:!1,accentFull:!1,accentHeader:!1,positioned:!1,positionValue:"top",maximized:!1,fullWidth:!1,seamless:!1,scrollable:!1,stickyScroll:!1,longForm:!1,positions:["top","right","bottom","left"],form:{name:"",sector:"",objective:"",secondary:"",priority:"Standard",crew:"",duration:"",notes:""},crewList:[{name:"Cdr. Vasquez",role:"First Officer",icon:"military_tech",status:"Active"},{name:"Lt. Okafor",role:"Helm",icon:"explore",status:"Active"},{name:"Lt. Cdr. Chen",role:"Chief Engineer",icon:"engineering",status:"Active"},{name:"Dr. Petrov",role:"Chief Medical",icon:"medical_services",status:"Active"},{name:"Ens. Nakamura",role:"Science Officer",icon:"science",status:"Active"},{name:"Lt. Mbeki",role:"Tactical",icon:"shield",status:"Active"},{name:"Lt. Johansson",role:"Communications",icon:"cell_tower",status:"On Leave"},{name:"Ens. Park",role:"Navigation",icon:"near_me",status:"Active"},{name:"Cdr. Al-Rashid",role:"Security Chief",icon:"security",status:"Active"},{name:"Lt. Torres",role:"Operations",icon:"settings",status:"On Leave"}]}},methods:{openPositioned(o){this.positionValue=o,this.positioned=!0}}},zO={class:"jShowcase_row jShowcase_column"},PO={class:"jShowcase_group"},$O={class:"jShowcase_items"},RO={class:"jShowcase_group"},MO={class:"jShowcase_items"},UO={class:"text-h6"},HO={class:"jShowcase_group"},GO={class:"jShowcase_items"},WO={class:"jShowcase_group"},JO={class:"jShowcase_items"},YO={class:"text-caption",style:{color:"var(--q-text-muted)"}};function ZO(o,t,a,l,n,s){const r=e.resolveComponent("QBtn"),i=e.resolveComponent("QCardSection"),c=e.resolveComponent("QCardActions"),m=e.resolveComponent("QCard"),d=e.resolveComponent("QDialog"),u=e.resolveComponent("QIcon"),g=e.resolveComponent("QSpace"),b=e.resolveComponent("QSeparator"),w=e.resolveComponent("QItemSection"),C=e.resolveComponent("QItemLabel"),Q=e.resolveComponent("QBadge"),f=e.resolveComponent("QItem"),_=e.resolveComponent("QList"),v=e.resolveComponent("QSpinner"),x=e.resolveComponent("QInnerLoading"),k=e.resolveComponent("QInput"),B=e.resolveComponent("QSelect"),E=e.resolveDirective("close-popup");return e.openBlock(),e.createElementBlock("div",zO,[e.createElementVNode("div",PO,[t[28]||(t[28]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",$O,[e.createVNode(r,{color:"primary",label:"Simple",onClick:t[0]||(t[0]=S=>n.simple=!0)}),e.createVNode(r,{color:"accent",label:"With Card",onClick:t[1]||(t[1]=S=>n.card=!0)}),e.createVNode(r,{color:"secondary",label:"Persistent",onClick:t[2]||(t[2]=S=>n.persistent=!0)})])]),e.createVNode(d,{modelValue:n.simple,"onUpdate:modelValue":t[3]||(t[3]=S=>n.simple=S)},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[29]||(t[29]=[e.createElementVNode("div",{class:"text-h6"},"Incoming Transmission",-1)])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[30]||(t[30]=[e.createTextVNode(" Signal detected from sector 7G. Awaiting decryption. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"primary",label:"Dismiss"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.card,"onUpdate:modelValue":t[4]||(t[4]=S=>n.card=S)},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center"},{default:e.withCtx(()=>[e.createVNode(u,{name:"warning",size:"28px",color:"warning",class:"q-mr-sm"}),t[31]||(t[31]=e.createElementVNode("span",{class:"text-h6"},"Confirm Action",-1))]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[32]||(t[32]=[e.createTextVNode(" Divert auxiliary power to forward shields? This will reduce life support to minimum levels on decks 7 through 12. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{class:"ghost",label:"Cancel"},null,512),[[E]]),e.withDirectives(e.createVNode(r,{color:"negative",label:"Confirm"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.persistent,"onUpdate:modelValue":t[5]||(t[5]=S=>n.persistent=S),persistent:""},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[33]||(t[33]=[e.createElementVNode("div",{class:"text-h6"},"Authorization Required",-1)])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[34]||(t[34]=[e.createTextVNode(" This dialog cannot be dismissed by clicking outside or pressing ESC. Enter command override code. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"accent",label:"Override"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createElementVNode("div",RO,[t[35]||(t[35]=e.createElementVNode("span",{class:"jShowcase_title"},"Positions",-1)),e.createElementVNode("div",MO,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.positions,S=>(e.openBlock(),e.createBlock(r,{key:S,color:"info",label:S,onClick:A=>s.openPositioned(S)},null,8,["label","onClick"]))),128))])]),e.createVNode(d,{modelValue:n.positioned,"onUpdate:modelValue":t[6]||(t[6]=S=>n.positioned=S),position:n.positionValue},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createElementVNode("div",UO,"Position: "+e.toDisplayString(n.positionValue),1)]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createTextVNode(" Dialog anchored to the "+e.toDisplayString(n.positionValue)+" of the viewport. ",1)]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"info",label:"Close"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue","position"]),e.createElementVNode("div",HO,[t[36]||(t[36]=e.createElementVNode("span",{class:"jShowcase_title"},"Sizes",-1)),e.createElementVNode("div",GO,[e.createVNode(r,{color:"warning",label:"Maximized",onClick:t[7]||(t[7]=S=>n.maximized=!0)}),e.createVNode(r,{color:"warning",label:"Full Width",onClick:t[8]||(t[8]=S=>n.fullWidth=!0)}),e.createVNode(r,{color:"negative",label:"Seamless",onClick:t[9]||(t[9]=S=>n.seamless=!0)})])]),e.createVNode(d,{modelValue:n.maximized,"onUpdate:modelValue":t[10]||(t[10]=S=>n.maximized=S),maximized:""},{default:e.withCtx(()=>[e.createVNode(m,{class:"showcaseDialog_cardMax"},{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center"},{default:e.withCtx(()=>[t[37]||(t[37]=e.createElementVNode("span",{class:"text-h6"},"Maximized Dialog",-1)),e.createVNode(g),e.withDirectives(e.createVNode(r,{class:"ghost",icon:"close"},null,512),[[E]])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[38]||(t[38]=[e.createTextVNode(" This dialog fills the entire viewport. ",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.fullWidth,"onUpdate:modelValue":t[11]||(t[11]=S=>n.fullWidth=S),"full-width":""},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[39]||(t[39]=[e.createElementVNode("div",{class:"text-h6"},"Full Width",-1)])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[40]||(t[40]=[e.createTextVNode(" Spans the full width of the viewport. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"warning",label:"Close"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.seamless,"onUpdate:modelValue":t[12]||(t[12]=S=>n.seamless=S),seamless:"",position:"bottom"},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center"},{default:e.withCtx(()=>[e.createVNode(u,{name:"info",size:"24px",color:"info",class:"q-mr-sm"}),t[41]||(t[41]=e.createElementVNode("span",null,"Seamless — no backdrop, page remains interactive.",-1)),e.createVNode(g),e.withDirectives(e.createVNode(r,{class:"ghost",icon:"close","icon-size":"14px"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createElementVNode("div",WO,[t[42]||(t[42]=e.createElementVNode("span",{class:"jShowcase_title"},"Scroll Handling",-1)),e.createElementVNode("div",JO,[e.createVNode(r,{color:"primary",label:"Scrollable Content",onClick:t[13]||(t[13]=S=>n.scrollable=!0)}),e.createVNode(r,{color:"accent",label:"Sticky Header/Footer",onClick:t[14]||(t[14]=S=>n.stickyScroll=!0)}),e.createVNode(r,{color:"secondary",label:"Long Form",onClick:t[15]||(t[15]=S=>n.longForm=!0)})])]),e.createVNode(d,{modelValue:n.scrollable,"onUpdate:modelValue":t[16]||(t[16]=S=>n.scrollable=S),style:{display:"block"}},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[43]||(t[43]=[e.createElementVNode("div",{class:"text-h6"},"Ship Systems Log",-1)])]),_:1}),e.createVNode(b),e.createVNode(i,{class:"scroll"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(122,S=>e.createElementVNode("p",{key:S},"Log entry "+e.toDisplayString(S)+": Routine diagnostic of subsystem "+e.toDisplayString(String.fromCharCode(64+S))+". All parameters within operational tolerance. Variance from baseline: "+e.toDisplayString((Math.random()*2).toFixed(3))+"%. Timestamp: stardate "+e.toDisplayString(41e3+S*7)+"."+e.toDisplayString(S)+".",1)),64))]),_:1}),e.createVNode(b),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:"primary",label:"Close"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.stickyScroll,"onUpdate:modelValue":t[18]||(t[18]=S=>n.stickyScroll=S)},{default:e.withCtx(()=>[e.createVNode(m,{style:{"min-width":"500px","max-width":"80vw"}},{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center q-pb-none"},{default:e.withCtx(()=>[t[44]||(t[44]=e.createElementVNode("div",{class:"text-h6"},"Crew Manifest",-1)),e.createVNode(g),e.withDirectives(e.createVNode(r,{class:"ghost",icon:"close"},null,512),[[E]])]),_:1}),e.createVNode(b,{class:"q-mt-sm"}),e.createVNode(i,{style:{"max-height":"50vh"},class:"scroll"},{default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.crewList,(S,A)=>(e.openBlock(),e.createBlock(f,{key:A},{default:e.withCtx(()=>[e.createVNode(w,{avatar:""},{default:e.withCtx(()=>[e.createVNode(u,{name:S.icon,color:"accent"},null,8,["name"])]),_:2},1024),e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.name),1)]),_:2},1024),e.createVNode(C,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.role),1)]),_:2},1024)]),_:2},1024),e.createVNode(w,{side:""},{default:e.withCtx(()=>[e.createVNode(Q,{outline:"",color:S.status==="Active"?"positive":"warning",label:S.status},null,8,["color","label"])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1}),e.createVNode(x,{showing:n.isLoading},{default:e.withCtx(()=>[e.createVNode(v,{size:"50px",color:"primary"})]),_:1},8,["showing"]),e.createVNode(b),e.createVNode(i,{class:"row justify-between items-center q-py-sm"},{default:e.withCtx(()=>[e.createElementVNode("span",YO,e.toDisplayString(n.crewList.length)+" officers",1),e.createVNode(r,{class:"ghost",icon:"refresh",label:"Toggle",onClick:t[17]||(t[17]=S=>n.isLoading=!n.isLoading)}),e.withDirectives(e.createVNode(r,{color:"accent",icon:"star",label:"Acknowledge"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.createVNode(d,{modelValue:n.longForm,"onUpdate:modelValue":t[27]||(t[27]=S=>n.longForm=S)},{default:e.withCtx(()=>[e.createVNode(m,{style:{"min-width":"33vw","max-width":"80vw"}},{default:e.withCtx(()=>[e.createVNode(i,{class:"row items-center q-pb-none"},{default:e.withCtx(()=>[t[45]||(t[45]=e.createElementVNode("div",{class:"text-h6"},"Mission Parameters",-1)),e.createVNode(g),e.withDirectives(e.createVNode(r,{class:"ghost",icon:"close"},null,512),[[E]])]),_:1}),e.createVNode(b,{class:"q-mt-sm"}),e.createVNode(i,{class:"scroll",style:{"max-height":"300px"}},{default:e.withCtx(()=>[e.createVNode(k,{modelValue:n.form.name,"onUpdate:modelValue":t[19]||(t[19]=S=>n.form.name=S),label:"Mission name",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.sector,"onUpdate:modelValue":t[20]||(t[20]=S=>n.form.sector=S),label:"Target sector",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.objective,"onUpdate:modelValue":t[21]||(t[21]=S=>n.form.objective=S),label:"Primary objective",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.secondary,"onUpdate:modelValue":t[22]||(t[22]=S=>n.form.secondary=S),label:"Secondary objective",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(B,{modelValue:n.form.priority,"onUpdate:modelValue":t[23]||(t[23]=S=>n.form.priority=S),options:["Critical","High","Standard","Low"],label:"Priority",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.crew,"onUpdate:modelValue":t[24]||(t[24]=S=>n.form.crew=S),label:"Crew count",type:"number",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.duration,"onUpdate:modelValue":t[25]||(t[25]=S=>n.form.duration=S),label:"Estimated duration (days)",type:"number",outlined:"",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.form.notes,"onUpdate:modelValue":t[26]||(t[26]=S=>n.form.notes=S),label:"Additional notes",type:"textarea",outlined:"",dense:"",autogrow:""},null,8,["modelValue"])]),_:1}),e.createVNode(b),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{class:"ghost",label:"Cancel"},null,512),[[E]]),e.withDirectives(e.createVNode(r,{color:"secondary",label:"Submit"},null,512),[[E]])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}const KO=Object.freeze(Object.defineProperty({__proto__:null,default:j(FO,[["render",ZO]])},Symbol.toStringTag,{value:"Module"})),XO={name:"ShowcaseActiveList",components:{QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel,QIcon:V.QIcon,QAvatar:V.QAvatar},label:"Selectable & Multi-line",icon:"list",importName:"QList",importFrom:"quasar",order:3,data(){return{selected:"recon",missions:[{id:"recon",name:"Recon Sweep",icon:"radar",desc:"Deep space reconnaissance of uncharted sector"},{id:"escort",name:"Convoy Escort",icon:"local_shipping",desc:"Protect supply convoy through hostile corridor"},{id:"rescue",name:"Search & Rescue",icon:"sos",desc:"Locate missing vessel near asteroid belt"},{id:"survey",name:"Planetary Survey",icon:"public",desc:"Catalog resources on newly discovered exoplanet"}],messages:[{from:"Admiral Zhao",subject:"Priority Alpha",body:"Fleet command has issued new coordinates. Rendezvous at waypoint Echo-7 by 0600. Full tactical readiness required.",time:"14:32",starred:!0},{from:"Engineering Bay",subject:"Maintenance Complete",body:"Port-side thruster realignment finished ahead of schedule. All subsystems passed diagnostics. Ready for departure.",time:"12:15",starred:!1},{from:"Science Div.",subject:"Anomaly Detected",body:"Unusual electromagnetic signature detected at bearing 270 mark 15. Recommend investigation when schedule permits.",time:"09:48",starred:!0}]}}},eF={class:"jShowcase_row jShowcase_column"},tF={class:"jShowcase_group"},oF={class:"jShowcase_group"};function nF(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItemLabel"),m=e.resolveComponent("QItem"),d=e.resolveComponent("QList"),u=e.resolveComponent("QAvatar"),g=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("div",eF,[e.createElementVNode("div",tF,[t[0]||(t[0]=e.createElementVNode("span",{class:"jShowcase_title"},"Selectable List",-1)),e.createVNode(d,{bordered:"",separator:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.missions,b=>e.withDirectives((e.openBlock(),e.createBlock(m,{key:b.id,clickable:"",active:n.selected===b.id,style:e.normalizeStyle(n.selected===b.id?"background: color-mix(in srgb, var(--q-accent) 10%, transparent)":""),onClick:w=>n.selected=b.id},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:b.icon,color:n.selected===b.id?"accent":"grey"},null,8,["name","color"])]),_:2},1024),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{class:e.normalizeClass({"text-weight-bold":n.selected===b.id})},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.name),1)]),_:2},1032,["class"]),e.createVNode(c,{caption:"",lines:"1"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.desc),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,{side:""},{default:e.withCtx(()=>[n.selected===b.id?(e.openBlock(),e.createBlock(r,{key:0,name:"radio_button_checked",color:"accent"})):(e.openBlock(),e.createBlock(r,{key:1,name:"radio_button_unchecked",color:"grey-7"}))]),_:2},1024)]),_:2},1032,["active","style","onClick"])),[[g]])),128))]),_:1})]),e.createElementVNode("div",oF,[t[1]||(t[1]=e.createElementVNode("span",{class:"jShowcase_title"},"Multi-line Items",-1)),e.createVNode(d,{bordered:"",style:{background:"transparent","border-color":"color-mix(in srgb, currentColor 15%, transparent)","border-radius":"4px"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.messages,b=>e.withDirectives((e.openBlock(),e.createBlock(m,{key:b.from,clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:"",top:""},{default:e.withCtx(()=>[e.createVNode(u,{color:"primary","text-color":"white"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.from[0]),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{overline:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.from),1)]),_:2},1024),e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.subject),1)]),_:2},1024),e.createVNode(c,{caption:"",lines:"2"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.body),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,{side:"",top:""},{default:e.withCtx(()=>[e.createVNode(c,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.time),1)]),_:2},1024),b.starred?(e.openBlock(),e.createBlock(r,{key:0,name:"star",color:"warning",size:"18px",class:"q-mt-xs"})):e.createCommentVNode("",!0)]),_:2},1024)]),_:2},1024)),[[g]])),128))]),_:1})])])}const aF=Object.freeze(Object.defineProperty({__proto__:null,default:j(XO,[["render",nF]])},Symbol.toStringTag,{value:"Module"})),rF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/list-and-list-items"},props:{bordered:{extends:"bordered"},dense:{extends:"dense"},separator:{type:"Boolean",desc:"Applies a separator between contained items",category:"content"},dark:{extends:"dark"},padding:{type:"Boolean",desc:"Applies a material design-like padding on top and bottom",category:"content"},tag:{extends:"tag",default:"'div'",examples:["'div'","'ul'","'ol'"],addedIn:"v2.10.1"}},slots:{default:{desc:"This is where the content goes; Suggestion: QItem, QExpansionItem, ..."}}},sF={mixins:["composables/private.use-router-link/use-router-link"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/list-and-list-items"},props:{active:{type:["Boolean","null"],default:"null",desc:"Put item into 'active' state",category:"state"},dark:{extends:"dark"},clickable:{type:"Boolean",desc:"Is QItem clickable? If it's the case, then it will add hover effects and emit 'click' events",category:"state"},dense:{extends:"dense"},"inset-level":{type:"Number",desc:"Apply an inset; Useful when avatar/left side is missing but you want to align content with other items that do have a left side, or when you're building a menu",examples:["1"],category:"content"},tabindex:{extends:"tabindex"},tag:{extends:"tag",desc:"HTML tag to render; Suggestion: use 'label' when encapsulating a QCheckbox/QRadio/QToggle so that when user clicks/taps on the whole item it will trigger a model change for the mentioned components",default:"'div'",examples:["'a'","'label'","'div'"]},"manual-focus":{type:"Boolean",desc:"Put item into a manual focus state; Enables 'focused' prop which will determine if item is focused or not, rather than relying on native hover/focus states",category:"state"},focused:{type:"Boolean",desc:"Determines focus state, ONLY if 'manual-focus' is enabled / set to true",category:"state"}},slots:{default:{desc:"This is where QItem's content goes"}},events:{click:{desc:"Emitted when the component is clicked",params:{evt:{extends:"evt",desc:"JS event object; If you are using route navigation ('to'/'replace' props) and you want to cancel navigation then call evt.preventDefault() synchronously in your event handler"},go:{type:"Function",desc:"Available ONLY if you are using route navigation ('to'/'replace' props); When you need to control the time at which the component should trigger the route navigation then call evt.preventDefault() synchronously and then call this function at your convenience; Useful if you have async work to be done before the actual route navigation or if you want to redirect somewhere else",required:!1,addedIn:"v2.9",params:{opts:{type:"Object",desc:"Optional options",required:!1,definition:{to:{type:["String","Object"],desc:"Equivalent to Vue Router <router-link> 'to' property; Specify it explicitly otherwise it will be set with same value as component's 'to' prop",required:!1,examples:["'/home/dashboard'","{ name: 'my-route-name' }"]},replace:{type:"Boolean",desc:"Equivalent to Vue Router <router-link> 'replace' property; Specify it explicitly otherwise it will be set with same value as component's 'replace' prop",required:!1},returnRouterError:{type:"Boolean",desc:"Return the router error, if any; Otherwise the returned Promise will always fulfill",required:!1}}}},returns:{type:"Promise<any>",desc:"Returns the router's navigation promise"}}}},keyup:{internal:!0}}},iF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/list-and-list-items"},props:{avatar:{type:"Boolean",desc:"Render an avatar item side (does not needs 'side' prop to be set)",category:"content"},thumbnail:{type:"Boolean",desc:"Render a thumbnail item side (does not needs 'side' prop to be set)",category:"content"},side:{type:"Boolean",desc:"Renders as a side of the item",category:"content"},top:{type:"Boolean",desc:"Align content to top (useful for multi-line items)",category:"content"},"no-wrap":{type:"Boolean",desc:"Do not wrap text (useful for item's main content)",category:"content"}},slots:{default:{desc:"Section's actual content"}}},lF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/list-and-list-items"},props:{overline:{type:"Boolean",desc:"Renders an overline label",category:"content"},caption:{type:"Boolean",desc:"Renders a caption label",category:"content"},header:{type:"Boolean",desc:"Renders a header label",category:"content"},lines:{type:["Number","String"],desc:"Apply ellipsis when there's not enough space to render on the specified number of lines;",category:"content|behavior"}},slots:{default:{desc:"The content of the label; Suggestion: text"}}},vo={mixins:["composables/private.use-model-toggle/use-model-toggle","composables/private.use-router-link/use-router-link"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/expansion-item"},props:{icon:{extends:"icon"},"expand-icon":{extends:"icon"},"expanded-icon":{extends:"icon",desc:"Expand icon name (following Quasar convention) for when QExpansionItem is expanded; When used, it also disables the rotation animation of the expand icon; Make sure you have the icon library installed unless you are using 'img:' prefix"},"expand-icon-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Apply custom class(es) to the expand icon item section",examples:["'text-purple'"],category:"style"},"toggle-aria-label":{type:"String",desc:"aria-label to be used on the expansion toggle element",examples:["'Open details'"],category:"accessibility",addedIn:"v2.8.4"},label:{type:"String",desc:"Header label (unless using 'header' slot)",examples:["'My expansion item'"],category:"content"},"label-lines":{type:["Number","String"],desc:"Apply ellipsis when there's not enough space to render on the specified number of lines; If more than one line specified, then it will only work on webkit browsers because it uses the '-webkit-line-clamp' CSS property!",examples:["1","'3'"],category:"content"},caption:{type:"String",desc:"Header sub-label (unless using 'header' slot)",examples:["'Unread message: 5'"],category:"content"},"caption-lines":{type:["Number","String"],desc:"Apply ellipsis when there's not enough space to render on the specified number of lines; If more than one line specified, then it will only work on webkit browsers because it uses the '-webkit-line-clamp' CSS property!",examples:["1","'3'"],category:"content"},dark:{extends:"dark"},dense:{extends:"dense"},duration:{type:"Number",desc:"Animation duration (in milliseconds)",default:"300",passthrough:"child",category:"behavior"},"header-inset-level":{type:"Number",desc:"Apply an inset to header (unless using 'header' slot); Useful when header avatar/left side is missing but you want to align content with other items that do have a left side, or when you're building a menu",examples:["1"],category:"content"},"content-inset-level":{type:"Number",desc:"Apply an inset to content (changes content padding)",examples:["1"],category:"content"},"expand-separator":{type:"Boolean",desc:"Apply a top and bottom separator when expansion item is opened",category:"content"},"default-opened":{type:"Boolean",desc:"Puts expansion item into open state on initial render; Overridden by v-model if used",category:"behavior"},"hide-expand-icon":{type:"Boolean",desc:"Do not show the expand icon",category:"content",addedIn:"v2.8.4"},"expand-icon-toggle":{type:"Boolean",desc:"Applies the expansion events to the expand icon only and not to the whole header",category:"behavior"},"switch-toggle-side":{type:"Boolean",desc:"Switch expand icon side (from default 'right' to 'left')",category:"content"},"dense-toggle":{type:"Boolean",desc:"Use dense mode for expand icon",category:"style"},group:{type:"String",desc:"Register expansion item into a group (unique name that must be applied to all expansion items in that group) for coordinated open/close state within the group a.k.a. 'accordion mode'",examples:["'my-emails'"],category:"content|behavior"},popup:{type:"Boolean",desc:"Put expansion list into 'popup' mode",category:"behavior"},"header-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Apply custom style to the header",examples:["'background: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"header-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Apply custom class(es) to the header",examples:["'my-custom-class'","{ 'my-custom-class': true }"],category:"style"}},slots:{default:{desc:"Slot used for expansion item's content"},header:{desc:"Slot used for overriding default header",scope:{expanded:{type:"Boolean",desc:"QExpansionItem expanded status",addedIn:"v2.7.6"},detailsId:{type:"String",desc:"QExpansionItem details panel id (for use in aria-controls)",addedIn:"v2.8.4"},show:{type:"Function",desc:"Triggers component to show",params:{evt:{type:"Object",required:!1,desc:"JS event object"}},returns:null,addedIn:"v2.8.4"},hide:{type:"Function",desc:"Triggers component to hide",params:{evt:{type:"Object",required:!1,desc:"JS event object"}},returns:null,addedIn:"v2.8.4"},toggle:{type:"Function",desc:"Triggers component to toggle between show/hide",params:{evt:{type:"Object",required:!1,desc:"JS event object"}},returns:null,addedIn:"v2.8.4"}}}},events:{"after-show":{extends:"after-show"},"after-hide":{extends:"after-hide"},click:{internal:!0}}},cF={name:"ShowcaseBasicList",components:{QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel,QIcon:V.QIcon,QBadge:V.QBadge,QExpansionItem:V.QExpansionItem,QCard:V.QCard,QCardSection:V.QCardSection},label:"Basic List",icon:"list",order:1,apiJson:[{name:"QList",json:rF},{name:"QItem",json:sF},{name:"QItemSection",json:iF},{name:"QItemLabel",json:lF},{name:"QExpansionItem",json:vo}],importName:"QList",importFrom:"quasar"},dF={class:"jShowcase_row jShowcase_column"},pF={class:"jShowcase_group"};function mF(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItemLabel"),m=e.resolveComponent("QItem"),d=e.resolveComponent("QBadge"),u=e.resolveComponent("QCardSection"),g=e.resolveComponent("QCard"),b=e.resolveComponent("QExpansionItem"),w=e.resolveComponent("QList"),C=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("div",dF,[e.createElementVNode("div",pF,[t[9]||(t[9]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic List",-1)),e.createVNode(w,{bordered:"",separator:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(m,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"rocket_launch",color:"primary"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Launch Sequence",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode("Initiate main thruster ignition",-1)])]),_:1})]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"chevron_right",color:"grey"})]),_:1})]),_:1})),[[C]]),e.withDirectives((e.openBlock(),e.createBlock(m,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"shield",color:"positive"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode("Shield Matrix",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("Deflector array at 98% capacity",-1)])]),_:1})]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(d,{color:"positive",label:"ONLINE"})]),_:1})]),_:1})),[[C]]),e.withDirectives((e.openBlock(),e.createBlock(m,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"sensors",color:"warning"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Long Range Sensors",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Scanning sector 7-G for anomalies",-1)])]),_:1})]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(d,{color:"warning",label:"SCANNING"})]),_:1})]),_:1})),[[C]]),e.withDirectives((e.openBlock(),e.createBlock(m,{clickable:"",disable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"bolt",color:"grey"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Warp Drive",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("Cooldown in progress — 12 min remaining",-1)])]),_:1})]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(d,{color:"negative",label:"OFFLINE"})]),_:1})]),_:1})),[[C]]),e.createVNode(b,{icon:"groups",label:"Crew Manifest",caption:"42 officers, 388 enlisted"},{default:e.withCtx(()=>[e.createVNode(g,null,{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" All duty stations filled. 3 officers on shore leave. Next rotation begins stardate 41028.7. ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})])])}const uF=Object.freeze(Object.defineProperty({__proto__:null,default:j(cF,[["render",mF]])},Symbol.toStringTag,{value:"Module"})),hF={name:"ShowcaseDenseList",components:{QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel,QAvatar:V.QAvatar},label:"Dense List",icon:"list",importName:"QList",importFrom:"quasar",order:2,data(){return{crewLog:[{name:"Cdr. Voss",role:"Captain",icon:"military_tech",color:"primary"},{name:"Lt. Nakamura",role:"Pilot",icon:"flight",color:"accent"},{name:"Dr. Okafor",role:"Medical",icon:"healing",color:"positive"},{name:"Eng. Petrov",role:"Engineer",icon:"build",color:"warning"},{name:"Spc. Reyes",role:"Science",icon:"science",color:"secondary"}],navLog:[{coord:"α Centauri B-3",note:"Orbital insertion complete",time:"08:12"},{coord:"Sector 9-Kilo",note:"Asteroid field traversal",time:"06:45"},{coord:"Relay Station 7",note:"Fuel resupply",time:"03:22"},{coord:"Nebula NGC-1277",note:"Sensor sweep logged",time:"01:10"}]}}},fF={class:"jShowcase_row jShowcase_column"},gF={class:"jShowcase_group"},bF={class:"jShowcase_group"};function yF(o,t,a,l,n,s){const r=e.resolveComponent("QAvatar"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItemLabel"),m=e.resolveComponent("QItem"),d=e.resolveComponent("QList"),u=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("div",fF,[e.createElementVNode("div",gF,[t[0]||(t[0]=e.createElementVNode("span",{class:"jShowcase_title"},"Dense List",-1)),e.createVNode(d,{dense:"",bordered:"",separator:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.crewLog,g=>e.withDirectives((e.openBlock(),e.createBlock(m,{key:g.name,clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{size:"18px",color:g.color,"text-color":"white",icon:g.icon},null,8,["color","icon"])]),_:2},1024),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.name),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(c,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.role),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)),[[u]])),128))]),_:1})]),e.createElementVNode("div",bF,[t[2]||(t[2]=e.createElementVNode("span",{class:"jShowcase_title"},"Dense with Padding",-1)),e.createVNode(d,{dense:"",bordered:"",padding:""},{default:e.withCtx(()=>[e.createVNode(c,{header:"",class:"jShowcase_title"},{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode("Navigation Log",-1)])]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.navLog,(g,b)=>e.withDirectives((e.openBlock(),e.createBlock(m,{key:b,clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.coord),1)]),_:2},1024),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.note),1)]),_:2},1024)]),_:2},1024),e.createVNode(i,{side:"",top:""},{default:e.withCtx(()=>[e.createVNode(c,{caption:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.time),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)),[[u]])),128))]),_:1})])])}const _F=Object.freeze(Object.defineProperty({__proto__:null,default:j(hF,[["render",yF]])},Symbol.toStringTag,{value:"Module"})),wF={name:"ShowcaseExpansionList",components:{QList:V.QList,QExpansionItem:V.QExpansionItem,QCard:V.QCard,QCardSection:V.QCardSection},label:"Expansion List",icon:"expand_more",order:4,apiJson:vo,importName:"QExpansionItem",importFrom:"quasar"},xF={class:"jShowcase_row jShowcase_column"},vF={class:"jShowcase_group"},kF={class:"jShowcase_group"},SF={class:"jShowcase_group"};function QF(o,t,a,l,n,s){const r=e.resolveComponent("QCardSection"),i=e.resolveComponent("QCard"),c=e.resolveComponent("QExpansionItem"),m=e.resolveComponent("QList");return e.openBlock(),e.createElementBlock("div",xF,[e.createElementVNode("div",vF,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createVNode(m,{bordered:"",class:"rounded-borders showcaseExpansion_list"},{default:e.withCtx(()=>[e.createVNode(c,{icon:"rocket_launch",label:"Launch Sequence",caption:"Pre-flight checklist"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode(" Fuel cells primed, navigation locked, launch window open in T-minus 04:22. ",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{icon:"shield",label:"Shield Matrix",caption:"Deflector array diagnostics"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode(" Forward shields: 98%. Aft shields: 94%. Last recharge cycle completed 00:12:04 ago. ",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{icon:"sensors",label:"Long Range Sensors",caption:"Scanning sector 7-G"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode(" No hostile signatures detected. Three unidentified objects flagged for review. ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),e.createElementVNode("div",kF,[t[7]||(t[7]=e.createElementVNode("span",{class:"jShowcase_title"},"Accordion (only one open)",-1)),e.createVNode(m,{bordered:"",class:"rounded-borders showcaseExpansion_list"},{default:e.withCtx(()=>[e.createVNode(c,{group:"crew",icon:"military_tech",label:"Command","default-opened":""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Captain, First Officer, Tactical.",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{group:"crew",icon:"engineering",label:"Engineering"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Chief Engineer, warp core team, damage control.",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{group:"crew",icon:"medical_services",label:"Medical"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Chief Medical Officer, nurses, biolab staff.",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),e.createElementVNode("div",SF,[t[10]||(t[10]=e.createElementVNode("span",{class:"jShowcase_title"},"Styled Headers",-1)),e.createVNode(m,{bordered:"",class:"rounded-borders showcaseExpansion_list"},{default:e.withCtx(()=>[e.createVNode(c,{"expand-separator":"",icon:"warning",label:"Priority Alert",caption:"Critical — acknowledge required","header-class":"text-negative"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" Hull breach detected on deck 12. Emergency bulkheads engaged. ",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{"expand-separator":"",icon:"info",label:"System Notice",caption:"Informational","header-class":"text-info",dense:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode(" Scheduled maintenance window begins at 02:00 stardate 41024.3. ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})])])}const CF=Object.freeze(Object.defineProperty({__proto__:null,default:j(wF,[["render",QF],["__scopeId","data-v-13c2a031"]])},Symbol.toStringTag,{value:"Module"})),NF={mixins:["composables/private.use-model-toggle/use-model-toggle","composables/private.use-portal/use-portal","composables/private.use-anchor/use-anchor","composables/private.use-transition/use-transition"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/menu"},props:{dark:{extends:"dark"},fit:{type:"Boolean",desc:"Allows the menu to match at least the full width of its target",category:"position"},cover:{type:"Boolean",desc:"Allows the menu to cover its target. When used, the 'self' and 'fit' props are no longer effective",category:"position"},anchor:{type:"String",desc:"Two values setting the starting position or anchor point of the menu relative to its target",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],category:"position"},self:{type:"String",desc:"Two values setting the menu's own position relative to its target",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],category:"position"},offset:{type:"Array",desc:"An array of two numbers to offset the menu horizontally and vertically in pixels",examples:["[8, 8]","[5, 10]"],category:"position"},"scroll-target":{extends:"scroll-target"},"touch-position":{type:"Boolean",desc:"Allows for the target position to be set by the mouse position, when the target of the menu is either clicked or touched",category:"behavior"},persistent:{type:"Boolean",desc:"Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key; Also, an app route change won't dismiss it",category:"behavior"},"no-esc-dismiss":{type:"Boolean",desc:"User cannot dismiss the popup by hitting ESC key; No need to set it if 'persistent' prop is also set",category:"behavior",addedIn:"v2.18"},"no-route-dismiss":{type:"Boolean",desc:"Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set",category:"behavior"},"auto-close":{type:"Boolean",desc:"Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap",category:"behavior"},"separate-close-popup":{type:"Boolean",desc:"Separate from parent menu, marking it as a separate closing point for v-close-popup (without this, chained menus close all together)",category:"behavior"},square:{type:"Boolean",desc:"Forces content to have squared borders",category:"style"},"no-refocus":{type:"Boolean",desc:"(Accessibility) When Menu gets hidden, do not refocus on the DOM element that previously had focus",category:"behavior"},"no-focus":{type:"Boolean",desc:"(Accessibility) When Menu gets shown, do not switch focus on it",category:"behavior"},"max-height":{extends:"size",type:["String","null"],default:"null",desc:"The maximum height of the menu; Size in CSS units, including unit name",category:"style"},"max-width":{extends:"size",type:["String","null"],default:"null",desc:"The maximum width of the menu; Size in CSS units, including unit name",category:"style"}},slots:{default:{extends:"default"}},events:{"escape-key":{desc:"Emitted when ESC key is pressed; Does not get emitted if Menu is 'persistent' or it has 'no-esc-dismiss' set"},click:{internal:!0}},methods:{updatePosition:{desc:"There are some custom scenarios for which Quasar cannot automatically reposition the menu without significant performance drawbacks so the optimal solution is for you to call this method when you need it",params:null,returns:null},focus:{desc:"Focus menu; if you have content with autofocus attribute, it will directly focus it",params:null,returns:null}}},IF={name:"ShowcaseMenu",components:{QBtn:V.QBtn,QMenu:V.QMenu,QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QIcon:V.QIcon,QSeparator:V.QSeparator},label:"Menu",icon:"menu",apiJson:NF,importName:"QMenu",importFrom:"quasar"},VF={class:"jShowcase_row jShowcase_column"},EF={class:"jShowcase_group"},BF={class:"jShowcase_items"},TF={class:"jShowcase_group"},AF={class:"jShowcase_items"},qF={class:"contextTarget"},DF={class:"jShowcase_group"},jF={class:"jShowcase_items"},LF={class:"jShowcase_group"},OF={class:"jShowcase_items"},FF={class:"jShowcase_group"},zF={class:"jShowcase_items"},PF={class:"jShowcase_group"},$F={class:"jShowcase_items"};function RF(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItem"),m=e.resolveComponent("QSeparator"),d=e.resolveComponent("QList"),u=e.resolveComponent("QMenu"),g=e.resolveComponent("QBtn"),b=e.resolveDirective("close-popup");return e.openBlock(),e.createElementBlock("div",VF,[e.createElementVNode("div",EF,[t[16]||(t[16]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic with Submenus",-1)),e.createElementVNode("div",BF,[e.createVNode(g,{color:"primary",label:"File"},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(d,{dense:"",style:{"min-width":"150px"}},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"folder_open"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Open...",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"note_add"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode("New File",-1)])]),_:1})]),_:1})),[[b]]),e.createVNode(m),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"ios_share"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode("Export As",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("PDF",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("CSV",-1)])]),_:1})]),_:1})),[[b]]),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Image",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{"auto-close":"",anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("PNG",-1)])]),_:1})]),_:1}),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("JPEG",-1)])]),_:1})]),_:1}),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("SVG",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),e.createVNode(m),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"close"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Quit",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"secondary",icon:"more_vert",round:"",flat:""},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(d,{dense:"",style:{"min-width":"140px"}},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("Profile",-1)])]),_:1})]),_:1})),[[b]]),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("Notifications",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Email",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Push",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode("SMS",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(m),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode("Logout",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",TF,[t[30]||(t[30]=e.createElementVNode("span",{class:"jShowcase_title"},"Context Menu",-1)),e.createElementVNode("div",AF,[e.createElementVNode("div",qF,[t[29]||(t[29]=e.createTextVNode(" Right-click here ",-1)),e.createVNode(u,{"context-menu":""},{default:e.withCtx(()=>[e.createVNode(d,{dense:"",style:{"min-width":"150px"}},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"content_cut"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("Cut",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"content_copy"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode("Copy",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"content_paste"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("Paste",-1)])]),_:1})]),_:1})),[[b]]),e.createVNode(m),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"sort"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("Sort By",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("Name",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("Date Modified",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("Size",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[24]||(t[24]=[e.createTextVNode("Type",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"visibility"})]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("View",-1)])]),_:1}),e.createVNode(i,{side:""},{default:e.withCtx(()=>[e.createVNode(r,{name:"keyboard_arrow_right"})]),_:1}),e.createVNode(u,{anchor:"top end",self:"top start"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode("Grid",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("List",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[28]||(t[28]=[e.createTextVNode("Compact",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})])])]),e.createElementVNode("div",DF,[t[39]||(t[39]=e.createElementVNode("span",{class:"jShowcase_title"},"Positioning",-1)),e.createElementVNode("div",jF,[e.createVNode(g,{color:"primary",label:"Bottom Left"},{default:e.withCtx(()=>[e.createVNode(u,{anchor:"bottom left",self:"top left"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[31]||(t[31]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[32]||(t[32]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"accent",label:"Top Right"},{default:e.withCtx(()=>[e.createVNode(u,{anchor:"top right",self:"bottom right"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[33]||(t[33]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[34]||(t[34]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"secondary",label:"Fit Width",style:{"min-width":"160px"}},{default:e.withCtx(()=>[e.createVNode(u,{fit:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[35]||(t[35]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[36]||(t[36]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"info",label:"Cover"},{default:e.withCtx(()=>[e.createVNode(u,{cover:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[37]||(t[37]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[38]||(t[38]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",LF,[t[46]||(t[46]=e.createElementVNode("span",{class:"jShowcase_title"},"Behavior",-1)),e.createElementVNode("div",OF,[e.createVNode(g,{color:"primary",label:"Auto Close"},{default:e.withCtx(()=>[e.createVNode(u,{"auto-close":""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[40]||(t[40]=[e.createTextVNode("Click anywhere to close",-1)])]),_:1})]),_:1}),e.createVNode(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[41]||(t[41]=[e.createTextVNode("No v-close-popup needed",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"negative",label:"Persistent"},{default:e.withCtx(()=>[e.createVNode(u,{persistent:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[42]||(t[42]=[e.createTextVNode("Must click item to close",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[43]||(t[43]=[e.createTextVNode("ESC won't close either",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"accent",label:"Touch Position"},{default:e.withCtx(()=>[e.createVNode(u,{"touch-position":""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[44]||(t[44]=[e.createTextVNode("Opens at click position",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[45]||(t[45]=[e.createTextVNode("Not anchored to button",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",FF,[t[53]||(t[53]=e.createElementVNode("span",{class:"jShowcase_title"},"Transitions",-1)),e.createElementVNode("div",zF,[e.createVNode(g,{color:"primary",label:"Slide Down"},{default:e.withCtx(()=>[e.createVNode(u,{"transition-show":"slide-down","transition-hide":"slide-up"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[47]||(t[47]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[48]||(t[48]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"secondary",label:"Scale"},{default:e.withCtx(()=>[e.createVNode(u,{"transition-show":"scale","transition-hide":"scale"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[49]||(t[49]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[50]||(t[50]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1}),e.createVNode(g,{color:"accent",label:"Jump Down"},{default:e.withCtx(()=>[e.createVNode(u,{"transition-show":"jump-down","transition-hide":"jump-up"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[51]||(t[51]=[e.createTextVNode("Option A",-1)])]),_:1})]),_:1})),[[b]]),e.withDirectives((e.openBlock(),e.createBlock(c,{clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[52]||(t[52]=[e.createTextVNode("Option B",-1)])]),_:1})]),_:1})),[[b]])]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",PF,[t[54]||(t[54]=e.createElementVNode("span",{class:"jShowcase_title"},"Scrollable",-1)),e.createElementVNode("div",$F,[e.createVNode(g,{color:"primary",label:"Max Height 200px"},{default:e.withCtx(()=>[e.createVNode(u,{"max-height":"200px"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(12,w=>e.withDirectives(e.createVNode(c,{key:w,clickable:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createTextVNode("Item "+e.toDisplayString(w),1)]),_:2},1024)]),_:2},1024),[[b]])),64))]),_:1})]),_:1})]),_:1})])])])}const MF=Object.freeze(Object.defineProperty({__proto__:null,default:j(IF,[["render",RF],["__scopeId","data-v-260415f5"]])},Symbol.toStringTag,{value:"Module"})),UF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/banner"},props:{"inline-actions":{type:"Boolean",desc:"Display actions on same row as content",category:"content"},dense:{extends:"dense"},rounded:{extends:"rounded"},dark:{extends:"dark"}},slots:{default:{desc:"This is where Banner content goes"},avatar:{desc:"Slot for displaying an avatar (suggestions: QIcon, QAvatar)"},action:{desc:"Slot for Banner action (suggestions: QBtn)"}}},HF={name:"ShowcaseQuasarBanner",components:{QBanner:V.QBanner,QIcon:V.QIcon,QBtn:V.QBtn},label:"Quasar Banner",icon:"dashboard",apiJson:UF,importName:"QBanner",importFrom:"quasar"};function GF(o,t,a,l,n,s){const r=e.resolveComponent("QIcon"),i=e.resolveComponent("QBtn"),c=e.resolveComponent("QBanner");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(c,{class:"bg-surface-3 text-bright",rounded:""},{avatar:e.withCtx(()=>[e.createVNode(r,{name:"signal_wifi_off",color:"secondary",size:"sm"})]),action:e.withCtx(()=>[e.createVNode(i,{flat:"",color:"info",label:"Turn on Wifi",outline:""}),e.createVNode(i,{flat:"",color:"secondary",label:"Dismiss"})]),default:e.withCtx(()=>[t[0]||(t[0]=e.createTextVNode(" You have lost connection to the internet. This app is offline. ",-1))]),_:1}),e.createVNode(c,{"inline-actions":"",dense:"",class:"bg-indigo-7 text-white q-mt-sm"},{avatar:e.withCtx(()=>[...t[1]||(t[1]=[e.createElementVNode("img",{src:"https://cdn.quasar.dev/img/mountains.jpg",style:{height:"64px"}},null,-1)])]),action:e.withCtx(()=>[e.createVNode(i,{flat:"",color:"primary",label:"Turn ON Wifi"})]),default:e.withCtx(()=>[t[2]||(t[2]=e.createTextVNode(" You have lost connection to the internet. This app is offline. ",-1))]),_:1})])}const WF=Object.freeze(Object.defineProperty({__proto__:null,default:j(HF,[["render",GF]])},Symbol.toStringTag,{value:"Module"})),JF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/card"},props:{dark:{extends:"dark"},square:{extends:"square"},flat:{extends:"flat"},bordered:{extends:"bordered"},tag:{extends:"tag",default:"'div'",examples:["'div'","'form'"]}},slots:{default:{extends:"default"}}},YF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/card"},props:{horizontal:{type:"Boolean",desc:"Display a horizontal section (will have no padding and can contain other QCardSection)",category:"content"},tag:{extends:"tag",default:"'div'",examples:["'div'","'form'"]}},slots:{default:{extends:"default"}}},ZF={meta:{docsUrl:"https://v2.quasar.dev/vue-components/card"},props:{align:{type:"String",desc:"Specify how to align the actions; For horizontal mode, the default is 'left', while for vertical mode, the default is 'stretch'",default:"# 'left'/'stretch'",__runtimeDefault:!0,values:["'left'","'center'","'right'","'between'","'around'","'evenly'","'stretch'"],category:"content"},vertical:{type:"Boolean",desc:"Display actions one below the other",category:"content"}},slots:{default:{desc:"Suggestions: QBtn"}}},KF={name:"ShowcaseQuasarCard",components:{QCard:V.QCard,QCardSection:V.QCardSection,QCardActions:V.QCardActions,QBtn:V.QBtn},label:"Quasar Card",icon:"dashboard",apiJson:[{name:"QCard",json:JF},{name:"QCardSection",json:YF},{name:"QCardActions",json:ZF}],importName:"QCard",importFrom:"quasar"},XF={class:"jShowcase_row"};function ez(o,t,a,l,n,s){const r=e.resolveComponent("QCardSection"),i=e.resolveComponent("QBtn"),c=e.resolveComponent("QCardActions"),m=e.resolveComponent("QCard");return e.openBlock(),e.createElementBlock("div",XF,[e.createVNode(m,{class:"showcaseCard",flat:"",bordered:""},{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createElementVNode("div",{class:"text-h6"},"Starship Registry",-1),e.createElementVNode("div",{class:"text-subtitle2"},"NCC-1701 — USS Enterprise",-1)])]),_:1}),e.createVNode(r,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode(" A Constitution-class vessel, flagship of the United Federation of Planets. Currently assigned to deep space exploration. ",-1)])]),_:1}),e.createVNode(c,{align:"right"},{default:e.withCtx(()=>[e.createVNode(i,{flat:"",color:"primary",label:"Details"}),e.createVNode(i,{flat:"",color:"accent",label:"Hail"})]),_:1})]),_:1})])}const tz=Object.freeze(Object.defineProperty({__proto__:null,default:j(KF,[["render",ez]])},Symbol.toStringTag,{value:"Module"})),oz={mixins:["components/checkbox/use-checkbox"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/checkbox"},props:{"checked-icon":{desc:"The icon to be used when the model is truthy (instead of the default design)",addedIn:"v2.5"},"unchecked-icon":{desc:"The icon to be used when the toggle is falsy (instead of the default design)",addedIn:"v2.5"},"indeterminate-icon":{desc:"The icon to be used when the model is indeterminate (instead of the default design)",addedIn:"v2.5"}}},nz={name:"ShowcaseQuasarCheckbox",components:{QCheckbox:V.QCheckbox},label:"Quasar Checkbox",icon:"edit_note",apiJson:oz,importName:"QCheckbox",importFrom:"quasar",data(){return{nav:!0,comms:!1,life:!0,indet:null}}},az={class:"jShowcase_row showcaseVertical"};function rz(o,t,a,l,n,s){const r=e.resolveComponent("QCheckbox");return e.openBlock(),e.createElementBlock("div",az,[e.createVNode(r,{modelValue:n.nav,"onUpdate:modelValue":t[0]||(t[0]=i=>n.nav=i),label:"Navigation",color:"primary"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.comms,"onUpdate:modelValue":t[1]||(t[1]=i=>n.comms=i),label:"Communications",color:"accent"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.life,"onUpdate:modelValue":t[2]||(t[2]=i=>n.life=i),label:"Life support",color:"positive"},null,8,["modelValue"]),e.createVNode(r,{"model-value":!0,label:"Locked system",color:"info",disable:""}),e.createVNode(r,{modelValue:n.indet,"onUpdate:modelValue":t[3]||(t[3]=i=>n.indet=i),label:"Indeterminate",color:"secondary","toggle-indeterminate":""},null,8,["modelValue"])])}const sz=Object.freeze(Object.defineProperty({__proto__:null,default:j(nz,[["render",rz],["__scopeId","data-v-c3f5fc57"]])},Symbol.toStringTag,{value:"Module"})),iz={mixins:["components/date/use-datetime"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/date"},props:{"model-value":{extends:"model-value",type:["String","Array","Object","null","undefined"],desc:"Date(s) of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive",examples:['# v-model="myDate"','# v-model="[myDate1, myDate2]"','# v-model="[{ from: myDateFrom, to: myDateTo }]"','# v-model="[myDate1, { from: myDateFrom, to: myDateTo }, myDate2]"']},title:{type:"String",desc:"When specified, it overrides the default header title; Makes sense when not in 'minimal' mode",examples:["'Birthday'"],category:"content"},subtitle:{type:"String",desc:"When specified, it overrides the default header subtitle; Makes sense when not in 'minimal' mode",examples:["'John Doe'"],category:"content"},"default-year-month":{type:"String",desc:"The default year and month to display (in YYYY/MM format) when model is unfilled (undefined or null); Please ensure it is within the navigation min/max year-month (if using them)",examples:["'1986/02'"],category:"model"},mask:{default:"'YYYY/MM/DD'",examples:["'YYYY-MM-DD'","'MMMM Do, YYYY'","'YYYY-MM-DD HH:mm:ss'"]},"default-view":{type:"String",desc:"The view which will be displayed by default",default:"'Calendar'",values:["'Calendar'","'Months'","'Years'"],category:"model"},"years-in-month-view":{type:"Boolean",desc:"Show the years selector in months view",category:"behavior"},events:{type:["Array","Function"],desc:"A list of events to highlight on the calendar; If using a function, it receives the date as a String and must return a Boolean (matches or not); If using a function then for best performance, reference it from your scope and do not define it inline",params:{date:{type:"String",desc:"The current date being processed.",examples:["'2018/11/05'","'2021/10/25'"]}},returns:{type:"Boolean",desc:"If true, the current date will be highlighted"},examples:["['2018/11/05', '2018/11/06', '2018/11/09', '2018/11/23']","date => (date[ 9 ] % 3 === 0)"],category:"model"},"event-color":{type:["String","Function"],desc:"Color name (from the Quasar Color Palette); If using a function, it receives the date as a String and must return a String (color for the received date); If using a function then for best performance, reference it from your scope and do not define it inline",params:{date:{type:"String",desc:"The current date being processed.",examples:["'2018/11/05'","'2021/10/25'"]}},returns:{type:"String",desc:"Color for the current date.",examples:["'teal'","'orange'"]},examples:["'teal-10'","date => (date[ 9 ] % 2 === 0 ? 'teal' : 'orange')"],category:"style"},options:{type:["Array","Function"],desc:"Optionally configure the days that are selectable; If using a function, it receives the date as a String and must return a Boolean (is date acceptable or not); If using a function then for best performance, reference it from your scope and do not define it inline; Incompatible with 'range' prop",params:{date:{type:"String",desc:"The current date being processed.",examples:["'2018/11/05'","'2021/10/25'"]}},returns:{type:"Boolean",desc:"If true, the current date will be made available for selection"},examples:["['2018/11/05', '2018/11/12', '2018/11/19', '2018/11/26']","date => (date[ 9 ] % 3 === 0)","date => (date >= '2018/11/03' && date <= '2018/11/15')"],category:"model"},"navigation-min-year-month":{type:"String",desc:"Lock user from navigating below a specific year+month (in YYYY/MM format); This prop is not used to correct the model; You might want to also use 'default-year-month' prop",examples:["'2020/07'"],category:"selection"},"navigation-max-year-month":{type:"String",desc:"Lock user from navigating above a specific year+month (in YYYY/MM format); This prop is not used to correct the model; You might want to also use 'default-year-month' prop",examples:["'2020/10'"],category:"selection"},"no-unset":{type:"Boolean",desc:"Remove ability to unselect a date; It does not apply to selecting a range over already selected dates",category:"selection"},"first-day-of-week":{type:["String","Number"],desc:"Sets the day of the week that is considered the first day (0 - Sunday, 1 - Monday, ...); This day will show in the left-most column of the calendar",default:"# based on configured Quasar lang language",__runtimeDefault:!0,examples:["1",'# first-day-of-week="1"','# :first-day-of-week="selectedFirstDayOfTheWeek"'],category:"model"},"today-btn":{type:"Boolean",desc:"Display a button that selects the current day",category:"content"},minimal:{type:"Boolean",desc:"Don’t display the header",category:"content"},multiple:{type:"Boolean",desc:"Allow multiple selection; Model must be Array",category:"model|selection"},range:{type:"Boolean",desc:"Allow range selection; Partial compatibility with 'options' prop: selected ranges might also include 'unselectable' days",category:"model|selection"},"emit-immediately":{type:"Boolean",desc:"Emit model when user browses month and year too; ONLY for single selection (non-multiple, non-range)",category:"model"}},slots:{default:{desc:"This is where additional buttons can go"}},events:{"update:model-value":{extends:"update:model-value",params:{value:{type:["String","Array","Object","null"]},reason:{type:"String",desc:"Reason of the user interaction (what was picked)",values:["'add-day'","'remove-day'","'add-range'","'remove-range'","'mask'","'locale'","'year'","'month'"]},details:{type:"Object",desc:"Object of properties on the new model",definition:{year:{type:"Number",required:!0,desc:"The year of the date that the user has clicked/tapped on"},month:{type:"Number",required:!0,desc:"The month of the date that the user has clicked/tapped on"},day:{type:"Number",required:!0,desc:"The day of the month that the user has clicked/tapped on"},from:{type:"Object",required:!1,desc:"Object of properties of the range starting point (only if range)",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}},to:{type:"Object",required:!1,desc:"Object of properties of the range ending point (only if range)",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}}}}}},navigation:{desc:"Emitted when user navigates to a different month or year (and even when the model changes from an outside source)",params:{view:{type:"Object",desc:"Definition of the current view (year, month)",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"}}}}},"range-start":{desc:"User has started a range selection",params:{from:{type:"Object",desc:"Definition of date from where the range begins",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}}}},"range-end":{desc:"User has ended a range selection",params:{range:{type:"Object",desc:"Definition of the range",definition:{from:{type:"Object",required:!0,desc:"Definition of date from where the range begins",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}},to:{type:"Object",required:!0,desc:"Definition of date to where the range ends",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of month"}}}}}}}},methods:{setToday:{desc:"Change model to today",params:null,returns:null},setView:{desc:"Change current view",params:{view:{type:"String",required:!0,desc:"QDate view name",values:["'Calendar'","'Months'","'Years'"]}},returns:null},offsetCalendar:{desc:"Increment or decrement calendar view's month or year",params:{type:{type:"String",required:!0,desc:"What to increment/decrement",values:["'month'","'year'"]},descending:{type:"Boolean",desc:"Decrement?"}},returns:null},setCalendarTo:{desc:"Change current year and month of the Calendar view; It gets corrected if using navigation-min/max-year-month and sets the current view to Calendar",params:{year:{type:"Number",desc:"The year"},month:{type:"Number",desc:"The month"}},returns:null},setEditingRange:{desc:"Configure the current editing range",params:{from:{type:"Object",desc:"Definition of date from where the range begins",definition:{year:{type:"Number",desc:"The year"},month:{type:"Number",desc:"The month"},day:{type:"Number",desc:"The day of month"}}},to:{type:"Object",desc:"Definition of date to where the range ends",definition:{year:{type:"Number",desc:"The year"},month:{type:"Number",desc:"The month"},day:{type:"Number",desc:"The day of month"}}}},returns:null}}},lz={name:"ShowcaseQuasarDate",components:{QDate:V.QDate},label:"Quasar Date",icon:"calendar_today",apiJson:iz,importName:"QDate",importFrom:"quasar",data(){return{basic:"2026/04/16",landscape:"2026/04/16",multi:["2026/04/10","2026/04/15","2026/04/20"],rangeVal:{from:"2026/04/10",to:"2026/04/18"},minimal:"2026/04/16"}}},cz={class:"jShowcase_row jShowcase_column"},dz={class:"jShowcase_group"},pz={class:"jShowcase_items"},mz={class:"jShowcase_group"},uz={class:"jShowcase_items"},hz={class:"jShowcase_group"},fz={class:"jShowcase_items"},gz={class:"jShowcase_group"},bz={class:"jShowcase_items"},yz={class:"jShowcase_group"},_z={class:"jShowcase_items"};function wz(o,t,a,l,n,s){const r=e.resolveComponent("QDate");return e.openBlock(),e.createElementBlock("div",cz,[e.createElementVNode("div",dz,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",pz,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),color:"primary"},null,8,["modelValue"])])]),e.createElementVNode("div",mz,[t[6]||(t[6]=e.createElementVNode("span",{class:"jShowcase_title"},"Landscape + Today button",-1)),e.createElementVNode("div",uz,[e.createVNode(r,{modelValue:n.landscape,"onUpdate:modelValue":t[1]||(t[1]=i=>n.landscape=i),color:"secondary",landscape:"","today-btn":""},null,8,["modelValue"])])]),e.createElementVNode("div",hz,[t[7]||(t[7]=e.createElementVNode("span",{class:"jShowcase_title"},"Multiple selection",-1)),e.createElementVNode("div",fz,[e.createVNode(r,{modelValue:n.multi,"onUpdate:modelValue":t[2]||(t[2]=i=>n.multi=i),color:"accent",multiple:""},null,8,["modelValue"])])]),e.createElementVNode("div",gz,[t[8]||(t[8]=e.createElementVNode("span",{class:"jShowcase_title"},"Range selection",-1)),e.createElementVNode("div",bz,[e.createVNode(r,{modelValue:n.rangeVal,"onUpdate:modelValue":t[3]||(t[3]=i=>n.rangeVal=i),color:"positive",range:""},null,8,["modelValue"])])]),e.createElementVNode("div",yz,[t[9]||(t[9]=e.createElementVNode("span",{class:"jShowcase_title"},"Minimal (no header)",-1)),e.createElementVNode("div",_z,[e.createVNode(r,{modelValue:n.minimal,"onUpdate:modelValue":t[4]||(t[4]=i=>n.minimal=i),color:"info",minimal:""},null,8,["modelValue"])])])])}const xz=Object.freeze(Object.defineProperty({__proto__:null,default:j(lz,[["render",wz]])},Symbol.toStringTag,{value:"Module"})),vz={mixins:["composables/private.use-field/use-field","components/input/use-mask","composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/input"},props:{"model-value":{extends:"model-value",type:["String","Number","FileList","null","undefined"],desc:"Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="myText"']},"shadow-text":{type:"String",desc:"Text to be displayed as shadow at the end of the text in the control; Does NOT applies to type=file",examples:["'rest of the fill value'"],category:"content"},type:{type:"String",desc:"Input type",default:"'text'",values:["'text'","'password'","'textarea'","'email'","'search'","'tel'","'file'","'number'","'url'","'time'","'date'","'datetime-local'"],category:"general"},debounce:{type:["String","Number"],desc:"Debounce amount (in milliseconds) when updating model",category:"model"},maxlength:{type:["String","Number"],desc:"Specify a max length of model",category:"model"},autogrow:{type:"Boolean",desc:"Make field autogrow along with its content (uses a textarea)",category:"content"},"input-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Class definitions to be attributed to the underlying input tag",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"input-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Style definitions to be attributed to the underlying input tag",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},name:{desc:"Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists"}},events:{"update:model-value":{params:{value:{type:["String","Number","null"]}}},click:{internal:!0},paste:{internal:!0},animationend:{internal:!0},change:{internal:!0},keydown:{internal:!0}},methods:{focus:{desc:"Focus underlying input tag"},blur:{desc:"Lose focus on underlying input tag"},select:{desc:"Select input text",params:null,returns:null},getNativeElement:{desc:"DEPRECATED; Access 'nativeEl' directly instead; Get the native input/textarea DOM Element",params:null,returns:{type:"Element",tsType:"QInputNativeElement",desc:"The underlying native input/textarea DOM Element"}}},computedProps:{nativeEl:{type:"Element",tsType:"QInputNativeElement",desc:"The native input/textarea DOM Element",addedIn:"v2.10.1"}}},kz={name:"ShowcaseQuasarInput",components:{QInput:V.QInput,QIcon:V.QIcon},label:"Quasar Input",icon:"edit_note",apiJson:vz,importName:"QInput",importFrom:"quasar",data(){return{basic:"NCC-1701",outlined:"",filled:"",standout:"",roundedVal:"",squareVal:"",denseVal:"",borderlessVal:"Borderless text",search:"",credits:"500",clearableVal:"Clear me",password:"secret",showPwd:!1,hinted:"",counted:"",textarea:"Captain's log, stardate 41153.7.",autogrow:""}}},Sz={class:"jShowcase_row jShowcase_column showcaseInput"},Qz={class:"jShowcase_group"},Cz={class:"jShowcase_items"},Nz={class:"jShowcase_group"},Iz={class:"jShowcase_items"},Vz={class:"jShowcase_group"},Ez={class:"jShowcase_items"},Bz={class:"jShowcase_group"},Tz={class:"jShowcase_items"},Az={class:"jShowcase_group"},qz={class:"jShowcase_items"},Dz={class:"jShowcase_group"},jz={class:"jShowcase_items"};function Lz(o,t,a,l,n,s){const r=e.resolveComponent("QInput"),i=e.resolveComponent("QIcon");return e.openBlock(),e.createElementBlock("div",Sz,[e.createElementVNode("div",Qz,[t[17]||(t[17]=e.createElementVNode("span",{class:"jShowcase_title"},"Styles",-1)),e.createElementVNode("div",Cz,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=c=>n.basic=c),label:"Default",color:"primary",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.outlined,"onUpdate:modelValue":t[1]||(t[1]=c=>n.outlined=c),label:"Outlined",color:"primary",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.filled,"onUpdate:modelValue":t[2]||(t[2]=c=>n.filled=c),label:"Filled",color:"primary",filled:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.standout,"onUpdate:modelValue":t[3]||(t[3]=c=>n.standout=c),label:"Standout",color:"primary",standout:"",class:"showcaseInput_field"},null,8,["modelValue"])])]),e.createElementVNode("div",Nz,[t[18]||(t[18]=e.createElementVNode("span",{class:"jShowcase_title"},"Shapes",-1)),e.createElementVNode("div",Iz,[e.createVNode(r,{modelValue:n.roundedVal,"onUpdate:modelValue":t[4]||(t[4]=c=>n.roundedVal=c),label:"Rounded",color:"accent",rounded:"",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.squareVal,"onUpdate:modelValue":t[5]||(t[5]=c=>n.squareVal=c),label:"Square",color:"accent",square:"",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.denseVal,"onUpdate:modelValue":t[6]||(t[6]=c=>n.denseVal=c),label:"Dense",color:"accent",dense:"",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.borderlessVal,"onUpdate:modelValue":t[7]||(t[7]=c=>n.borderlessVal=c),label:"Borderless",color:"accent",borderless:"",class:"showcaseInput_field"},null,8,["modelValue"])])]),e.createElementVNode("div",Vz,[t[19]||(t[19]=e.createElementVNode("span",{class:"jShowcase_title"},"Decorations",-1)),e.createElementVNode("div",Ez,[e.createVNode(r,{modelValue:n.search,"onUpdate:modelValue":t[8]||(t[8]=c=>n.search=c),label:"Search",color:"secondary",outlined:"",class:"showcaseInput_field"},{prepend:e.withCtx(()=>[e.createVNode(i,{name:"search"})]),_:1},8,["modelValue"]),e.createVNode(r,{modelValue:n.credits,"onUpdate:modelValue":t[9]||(t[9]=c=>n.credits=c),label:"Credits",color:"secondary",outlined:"",prefix:"₡",suffix:".00",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.clearableVal,"onUpdate:modelValue":t[10]||(t[10]=c=>n.clearableVal=c),label:"Clearable",color:"secondary",outlined:"",clearable:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.password,"onUpdate:modelValue":t[12]||(t[12]=c=>n.password=c),label:"Password",type:n.showPwd?"text":"password",color:"secondary",outlined:"",class:"showcaseInput_field"},{append:e.withCtx(()=>[e.createVNode(i,{name:n.showPwd?"visibility":"visibility_off",class:"cursor-pointer",onClick:t[11]||(t[11]=c=>n.showPwd=!n.showPwd)},null,8,["name"])]),_:1},8,["modelValue","type"])])]),e.createElementVNode("div",Bz,[t[20]||(t[20]=e.createElementVNode("span",{class:"jShowcase_title"},"Hints & Counter",-1)),e.createElementVNode("div",Tz,[e.createVNode(r,{modelValue:n.hinted,"onUpdate:modelValue":t[13]||(t[13]=c=>n.hinted=c),label:"With hint",hint:"Enter callsign",color:"info",outlined:"",class:"showcaseInput_field"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.counted,"onUpdate:modelValue":t[14]||(t[14]=c=>n.counted=c),label:"With counter",color:"info",outlined:"",counter:"",maxlength:20,class:"showcaseInput_field"},null,8,["modelValue"])])]),e.createElementVNode("div",Az,[t[21]||(t[21]=e.createElementVNode("span",{class:"jShowcase_title"},"Textarea",-1)),e.createElementVNode("div",qz,[e.createVNode(r,{modelValue:n.textarea,"onUpdate:modelValue":t[15]||(t[15]=c=>n.textarea=c),label:"Ship log",type:"textarea",color:"accent",outlined:"",class:"showcaseInput_field showcaseInput_fieldWide"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.autogrow,"onUpdate:modelValue":t[16]||(t[16]=c=>n.autogrow=c),label:"Autogrow",autogrow:"",color:"accent",outlined:"",class:"showcaseInput_field showcaseInput_fieldWide"},null,8,["modelValue"])])]),e.createElementVNode("div",Dz,[t[22]||(t[22]=e.createElementVNode("span",{class:"jShowcase_title"},"States",-1)),e.createElementVNode("div",jz,[e.createVNode(r,{"model-value":"Locked",label:"Disabled",color:"negative",disable:"",outlined:"",class:"showcaseInput_field"}),e.createVNode(r,{"model-value":"Read only",label:"Readonly",color:"warning",readonly:"",outlined:"",class:"showcaseInput_field"}),e.createVNode(r,{"model-value":"",label:"Loading",color:"accent",loading:"",outlined:"",class:"showcaseInput_field"})])])])}const Oz=Object.freeze(Object.defineProperty({__proto__:null,default:j(kz,[["render",Lz],["__scopeId","data-v-9485a6be"]])},Symbol.toStringTag,{value:"Module"})),Fz={mixins:["composables/private.use-size/use-size","composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/radio"},props:{"model-value":{extends:"model-value",type:["Any"],examples:['# v-model="option"']},val:{type:["Any"],required:!0,desc:"The actual value of the option with which model value is changed",examples:["'opt1'","50"],category:"model"},label:{type:"String",desc:"Label to display along the radio control (or use the default slot instead of this prop)",examples:["'Option 1'"],category:"label"},"left-label":{type:"Boolean",desc:"Label (if any specified) should be displayed on the left side of the checkbox",category:"label"},"checked-icon":{type:"String",desc:"The icon to be used when selected (instead of the default design)",examples:["'visibility'"],category:"icons",addedIn:"v2.5"},"unchecked-icon":{type:"String",desc:"The icon to be used when un-selected (instead of the default design)",examples:["'visibility_off'"],category:"icons",addedIn:"v2.5"},color:{extends:"color"},"keep-color":{type:"Boolean",desc:"Should the color (if specified any) be kept when checkbox is unticked?",category:"behavior"},dark:{extends:"dark"},dense:{extends:"dense"},disable:{extends:"disable"},tabindex:{extends:"tabindex"}},slots:{default:{desc:"Default slot can be used as label, unless 'label' prop is specified; Suggestion: string"}},events:{"update:model-value":{desc:"Emitted when the component needs to change the model; Is also used by v-model",params:{value:{type:"Any",desc:"New model value",required:!0},evt:{extends:"evt",required:!0}}}},methods:{set:{desc:"Sets the Radio's v-model to equal the val",params:null,returns:null}}},zz={name:"ShowcaseQuasarRadio",components:{QRadio:V.QRadio,QList:V.QList,QItem:V.QItem,QItemSection:V.QItemSection,QItemLabel:V.QItemLabel},label:"Quasar Radio",icon:"edit_note",apiJson:Fz,importName:"QRadio",importFrom:"quasar",data(){return{selected:"shields",listSelected:"shields"}}},Pz={class:"jShowcase_row jShowcase_column"},$z={class:"jShowcase_group"},Rz={class:"jShowcase_items showcaseVertical"},Mz={class:"jShowcase_group"};function Uz(o,t,a,l,n,s){const r=e.resolveComponent("QRadio"),i=e.resolveComponent("QItemSection"),c=e.resolveComponent("QItemLabel"),m=e.resolveComponent("QItem"),d=e.resolveComponent("QList"),u=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("div",Pz,[e.createElementVNode("div",$z,[t[7]||(t[7]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",Rz,[e.createVNode(r,{modelValue:n.selected,"onUpdate:modelValue":t[0]||(t[0]=g=>n.selected=g),val:"shields",label:"Shields",color:"primary"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.selected,"onUpdate:modelValue":t[1]||(t[1]=g=>n.selected=g),val:"weapons",label:"Weapons",color:"accent"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.selected,"onUpdate:modelValue":t[2]||(t[2]=g=>n.selected=g),val:"engines",label:"Engines",color:"secondary"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.selected,"onUpdate:modelValue":t[3]||(t[3]=g=>n.selected=g),val:"offline",label:"Offline",color:"negative",disable:""},null,8,["modelValue"])])]),e.createElementVNode("div",Mz,[t[14]||(t[14]=e.createElementVNode("span",{class:"jShowcase_title"},"With QItem",-1)),e.createVNode(d,null,{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(m,{tag:"label"},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:n.listSelected,"onUpdate:modelValue":t[4]||(t[4]=g=>n.listSelected=g),val:"shields",color:"primary"},null,8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("Shields",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Deflector array protection",-1)])]),_:1})]),_:1})]),_:1})),[[u]]),e.withDirectives((e.openBlock(),e.createBlock(m,{tag:"label"},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:n.listSelected,"onUpdate:modelValue":t[5]||(t[5]=g=>n.listSelected=g),val:"weapons",color:"accent"},null,8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("Weapons",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("Phaser banks and torpedoes",-1)])]),_:1})]),_:1})]),_:1})),[[u]]),e.withDirectives((e.openBlock(),e.createBlock(m,{tag:"label"},{default:e.withCtx(()=>[e.createVNode(i,{avatar:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:n.listSelected,"onUpdate:modelValue":t[6]||(t[6]=g=>n.listSelected=g),val:"engines",color:"secondary"},null,8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Engines",-1)])]),_:1}),e.createVNode(c,{caption:""},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Main thruster control",-1)])]),_:1})]),_:1})]),_:1})),[[u]])]),_:1})])])}const Hz=Object.freeze(Object.defineProperty({__proto__:null,default:j(zz,[["render",Uz],["__scopeId","data-v-a088124e"]])},Symbol.toStringTag,{value:"Module"})),Gz={mixins:["composables/private.use-size/use-size","composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/rating"},props:{"model-value":{extends:"model-value",type:"Number",examples:['# v-model="rating"','# :model-value="rating"','# :model-value="2"']},max:{type:["Number","String"],desc:"Number of icons to display",default:"5",category:"general"},icon:{type:["String","Array"],desc:"Icon name following Quasar convention; make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)",examples:["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],category:"content"},"icon-selected":{type:["String","Array"],desc:"Icon name following Quasar convention to be used when selected (optional); make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)",examples:["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],category:"content"},"icon-half":{type:["String","Array"],desc:"Icon name following Quasar convention to be used when selected (optional); make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)",examples:["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],category:"content"},"icon-aria-label":{type:["String","Array"],desc:"Label to be set on aria-label for Icon; If an array is provided each rating value will use the corresponding aria-label in the array (0 based); If string value is provided the rating value will be appended; If not provided the name of the icon will be used",examples:["'Rating'","['Bad', 'Normal', 'Good']"],category:"accessibility",addedIn:"v1.20.3"},color:{extends:"color",type:["String","Array"],desc:"Color name for component from the Quasar Color Palette; v1.5.0+: If an array is provided each rating value will use the corresponding color in the array (0 based)",examples:["['accent', 'grey-7']"]},"color-selected":{extends:"color",type:["String","Array"],desc:"Color name from the Quasar Palette for selected icons"},"color-half":{extends:"color",type:["String","Array"],desc:"Color name from the Quasar Palette for half selected icons"},"no-dimming":{type:"Boolean",desc:"Does not lower opacity for unselected icons",category:"style"},"no-reset":{type:"Boolean",desc:"When used, disables default behavior of clicking/tapping on icon which represents current model value to reset model to 0",category:"model"},readonly:{extends:"readonly"},disable:{extends:"disable"}},events:{"update:model-value":{extends:"update:model-value"}},slots:{"tip-[name]":{desc:"Slot to define the tooltip of icon at '[name]' where name is a 1-based index; Suggestion: QTooltip"}}},Wz={name:"ShowcaseQuasarRating",components:{QRating:V.QRating},label:"Quasar Rating",icon:"edit_note",apiJson:Gz,importName:"QRating",importFrom:"quasar",data(){return{basic:3,hearts:4,colorful:3}}},Jz={class:"jShowcase_row showcaseVertical"},Yz={class:"ratingRow"},Zz={class:"ratingRow"},Kz={class:"ratingRow"},Xz={class:"ratingRow"};function eP(o,t,a,l,n,s){const r=e.resolveComponent("QRating");return e.openBlock(),e.createElementBlock("div",Jz,[e.createElementVNode("div",Yz,[t[3]||(t[3]=e.createElementVNode("span",{class:"ratingLabel"},"Default",-1)),e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),color:"primary"},null,8,["modelValue"])]),e.createElementVNode("div",Zz,[t[4]||(t[4]=e.createElementVNode("span",{class:"ratingLabel"},"Custom icon",-1)),e.createVNode(r,{modelValue:n.hearts,"onUpdate:modelValue":t[1]||(t[1]=i=>n.hearts=i),icon:"favorite_border","icon-selected":"favorite",color:"negative"},null,8,["modelValue"])]),e.createElementVNode("div",Kz,[t[5]||(t[5]=e.createElementVNode("span",{class:"ratingLabel"},"Per-icon color",-1)),e.createVNode(r,{modelValue:n.colorful,"onUpdate:modelValue":t[2]||(t[2]=i=>n.colorful=i),color:["negative","warning","warning","positive","positive"],"no-dimming":""},null,8,["modelValue"])]),e.createElementVNode("div",Xz,[t[6]||(t[6]=e.createElementVNode("span",{class:"ratingLabel"},"Large / readonly",-1)),e.createVNode(r,{"model-value":4,size:"sm",color:"secondary",readonly:""})])])}const tP=Object.freeze(Object.defineProperty({__proto__:null,default:j(Wz,[["render",eP],["__scopeId","data-v-66a29f10"]])},Symbol.toStringTag,{value:"Module"})),oP={mixins:["composables/private.use-field/use-field","components/virtual-scroll/use-virtual-scroll","composables/use-form/private.use-form"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/select"},props:{"model-value":{extends:"model-value",type:"Any",desc:"Model of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="myModel"']},multiple:{type:"Boolean",desc:"Allow multiple selection; Model must be Array",category:"model|selection"},"display-value":{type:["Number","String"],desc:"Override default selection string, if not using 'selected' slot/scoped slot and if not using 'use-chips' prop",examples:["'Options: x, y, z'"],category:"selection"},"display-value-html":{extends:"html",desc:"Force render the selected option(s) as HTML; This can lead to XSS attacks so make sure that you sanitize the content; Does NOT apply when using 'selected' or 'selected-item' slots!",category:"selection"},options:{type:"Array",desc:"Array of objects with available options that the user can select from. For best performance freeze the list of options. Canonical form of each object is with 'label' (String), 'value' (Any) and optional 'disable' (Boolean) props (can be customized with options-value/option-label/option-disable props).",default:"[]",examples:["['Tesla', 'iPhone']","[{ label: 'Tesla', value: 'car' }, { label: 'iPhone', value: 'phone' }]"],category:"options"},"option-value":{type:["Function","String"],desc:"Property of option which holds the 'value'; If using a function then for best performance, reference it from your scope and do not define it inline",default:"'value'",__runtimeDefault:!0,params:{option:{type:["String","Object"],desc:"The current option being processed",examples:["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},returns:{type:"Any",desc:"Value of the current option",examples:["'car'","34"]},examples:["'modelNumber'","item => (item === null ? null : item.modelNumber)"],category:"options"},"option-label":{type:["Function","String"],desc:"Property of option which holds the 'label'; If using a function then for best performance, reference it from your scope and do not define it inline",default:"'label'",__runtimeDefault:!0,params:{option:{type:["String","Object"],desc:"The current option being processed",examples:["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},returns:{type:"String",desc:"Label of the current option",examples:["'Tesla'","'iPhone'"]},examples:["'itemName'","item => (item === null ? 'Null value' : item.itemName)"],category:"options"},"option-disable":{type:["Function","String"],desc:"Property of option which tells it's disabled; The value of the property must be a Boolean; If using a function then for best performance, reference it from your scope and do not define it inline",default:"'disable'",__runtimeDefault:!0,params:{option:{type:["String","Object"],desc:"The current option being processed",examples:["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},returns:{type:"Boolean",desc:"If true, the current option will be disabled"},examples:["item => (item === null ? true : item.cannotSelect)",'# option-disable="cannotSelect"'],category:"options"},"hide-selected":{type:"Boolean",desc:"Hides selection; Use the underlying input tag to hold the label (instead of showing it to the right of the input) of the selected option; Only works for non 'multiple' Selects",category:"selection"},"hide-dropdown-icon":{type:"Boolean",desc:"Hides dropdown icon",category:"content|behavior"},"dropdown-icon":{extends:"icon"},"max-values":{type:["Number","String"],desc:"Allow a maximum number of selections that the user can do",category:"selection"},"options-dense":{extends:"dense",desc:"Dense mode for options list; occupies less space",category:"options"},"options-dark":{type:["Boolean","null"],default:"null",desc:"Options menu will be colored with a dark color",category:"options"},"options-selected-class":{type:"String",desc:"CSS class name for options that are active/selected; Set it to an empty string to stop applying the default (which is text-* where * is the 'color' prop value)",examples:["'text-orange'"],category:"options"},"options-html":{extends:"html",desc:"Force render the options as HTML; This can lead to XSS attacks so make sure that you sanitize the content; Does NOT apply when using 'option' slot!",category:"options"},"options-cover":{type:"Boolean",desc:"Expanded menu will cover the component (will not work along with 'use-input' prop for obvious reasons)",category:"options"},"menu-shrink":{type:"Boolean",desc:"Allow the options list to be narrower than the field (only in menu mode)",category:"options"},"menu-anchor":{type:"String",desc:"Two values setting the starting position or anchor point of the options list relative to the field (only in menu mode)",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],category:"position"},"menu-self":{type:"String",desc:"Two values setting the options list's own position relative to its target (only in menu mode)",values:["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],category:"position"},"menu-offset":{type:"Array",desc:"An array of two numbers to offset the options list horizontally and vertically in pixels (only in menu mode)",examples:["[8, 8]","[5, 10]"],category:"position"},"popup-content-class":{type:"String",desc:"Class definitions to be attributed to the popup content",examples:["'my-special-class'"],category:"style"},"popup-content-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Style definitions to be attributed to the popup content",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"popup-no-route-dismiss":{type:"Boolean",desc:"Changing route app won't dismiss the popup (menu or dialog)",category:"behavior",addedIn:"v2.15"},"use-chips":{type:"Boolean",desc:"Use QChip to show what is currently selected",category:"selection"},"use-input":{type:"Boolean",desc:"Use an input tag where users can type",category:"content"},maxlength:{type:["String","Number"],desc:"Specify a max length for the inner input tag (if 'use-input' is enabled)",category:"content"},"fill-input":{type:"Boolean",desc:"Fills the input with current value; Useful along with 'hide-selected'; Does NOT work along with 'multiple' selection",category:"behavior"},"new-value-mode":{type:"String",desc:"Enables creation of new values and defines behavior when a new value is added: 'add' means it adds the value (even if possible duplicate), 'add-unique' adds only unique values, and 'toggle' adds or removes the value (based on if it exists or not already); When using this prop then listening for @new-value becomes optional (only to override the behavior defined by 'new-value-mode')",values:["'add'","'add-unique'","'toggle'"],category:"behavior"},"map-options":{type:"Boolean",desc:"Try to map labels of model from 'options' Array; has a small performance penalty; If you are using emit-value you will probably need to use map-options to display the label text in the select field rather than the value; Refer to the 'Affecting model' section above",category:"options"},"disable-tab-selection":{type:"Boolean",desc:"Prevents the tab key from confirming the currently hovered option",category:"options",addedIn:"v2.17"},"emit-value":{type:"Boolean",desc:"Update model with the value of the selected option instead of the whole option",category:"model"},"input-debounce":{type:["Number","String"],desc:"Debounce the input model update with an amount of milliseconds (also affects the 'filter' event, if used)",default:"500",category:"content"},"input-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"Class definitions to be attributed to the underlying input tag",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"input-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Style definitions to be attributed to the underlying input tag",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},tabindex:{extends:"tabindex",default:"0"},autocomplete:{type:"String",desc:"Autocomplete attribute for field",examples:["'country'"],category:"behavior"},"transition-show":{extends:"transition",desc:"Transition when showing the menu/dialog; One of Quasar's embedded transitions",default:"'fade'",passthrough:"child",category:"behavior"},"transition-hide":{extends:"transition",desc:"Transition when hiding the menu/dialog; One of Quasar's embedded transitions",default:"'fade'",passthrough:"child",category:"behavior"},"transition-duration":{type:["String","Number"],desc:"Transition duration when hiding the menu/dialog (in milliseconds, without unit)",default:"300",passthrough:"child",category:"behavior"},behavior:{type:"String",desc:"Overrides the default dynamic mode of showing as menu on desktop and dialog on mobiles",values:["'default'","'menu'","'dialog'"],default:"'default'",category:"behavior"},name:{desc:"Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists"},"virtual-scroll-item-size":{__runtimeDefault:!0}},slots:{selected:{desc:"Override default selection slot; Suggestion: QChip"},loading:{desc:"Override default spinner when component is in loading mode; Suggestion: spinners"},"before-options":{desc:"Template slot for the elements that should be rendered before the list of options"},"after-options":{desc:"Template slot for the elements that should be rendered after the list of options"},"no-option":{desc:"What should the menu display after filtering options and none are left to be displayed; Suggestion: <div>",scope:{inputValue:{type:"String",desc:"Input textfield value, if any (not QSelect model)",examples:["'typed something'"]}}},"selected-item":{desc:"Override default selection slot; Suggestion: QChip",scope:{index:{type:"Number",desc:"Selection index"},opt:{type:"Any",desc:"Selected option -- its value is taken from model"},selected:{type:"Boolean",desc:"Always true -- passed down as prop to QItem (when using QItem)"},html:{type:"Boolean",desc:"Is the content HTML?"},removeAtIndex:{type:"Function",desc:"Remove selected option located at specific index",params:{index:{type:"Number",required:!0,desc:"Index at which to remove selection"}},returns:null},toggleOption:{type:"Function",desc:"Add/remove option from model",params:{opt:{type:"Any",required:!0,desc:"Option to add to model"}},returns:null},tabindex:{type:"Number",desc:"Tabindex HTML attribute value associated with respective option",values:["0","-1"]}}},option:{desc:"Customize how options are rendered; Suggestion: QItem",scope:{index:{type:"Number",desc:"Option index"},opt:{type:"Any",desc:"Option -- its value is taken from 'options' prop"},html:{type:"Boolean",desc:"Is the content HTML?"},label:{type:"String",desc:"Label of the option"},selected:{type:"Boolean",desc:"Is option selected?"},focused:{type:"Boolean",desc:"Is option focused?"},toggleOption:{type:"Function",desc:"Add/remove option from model",params:{opt:{type:"Any",required:!0,desc:"Option to add to model"}},returns:null},setOptionIndex:{type:"Function",desc:"Sets option from menu as 'focused'",params:{index:{type:"Number",required:!0,desc:"Index of option from menu"}},returns:null},itemProps:{type:"Object",desc:"Computed properties passed down to QItem"}}}},events:{"input-value":{desc:"Emitted when the value in the text input changes",params:{value:{type:"String",desc:"New text value"}}},remove:{desc:"Emitted when an option is removed from selection",params:{details:{type:"Object",desc:"Removal details",definition:{index:{type:"Number",required:!0,desc:"Model index at which removal took place"},value:{type:"Any",required:!0,desc:"The actual value that was removed"}}}}},add:{desc:"Emitted when an option is added to the selection",params:{details:{type:"Object",desc:"Addition details",definition:{index:{type:"Number",required:!0,desc:"Model index at which addition took place"},value:{type:"Any",required:!0,desc:"The actual value that was added"}}}}},"new-value":{desc:"Enables creation of new values; Emitted when a new value has been created; You can override 'new-value-mode' property with it",params:{inputValue:{type:"String",desc:"What the user typed",examples:["'phone'"]},doneFn:{type:"Function",desc:"Adds (optional) value to the model; Do not forget to call it after you validate the newly created value; Call it with no parameters if nothing should be added",params:{item:{type:"Any",required:!1,desc:"Item to add"},mode:{type:"String",required:!1,desc:"Override 'new-value-mode' (prop) behavior should you wish to",values:["'add'","'add-unique'","'toggle'"],default:"'add'"}},returns:null}}},filter:{desc:"Emitted when user wants to filter a value",params:{inputValue:{type:"String",desc:"What the user typed",examples:["'phone'"]},doneFn:{type:"Function",desc:"Supply a function which makes the necessary updates",params:{callbackFn:{type:"Function",required:!0,desc:"Callback to call to make the actual updates",params:null,returns:null},afterFn:{type:"Function",required:!1,desc:"Callback to call at the end after the update has been fully processed by QSelect",params:{ref:{type:"Component",tsType:"QSelect",required:!0,desc:"Vue reference to the QSelect which triggered the filtering"}},returns:null}},returns:null},abortFn:{type:"Function",desc:"Call this function if something went wrong",params:null,returns:null}}},"filter-abort":{desc:"Emitted when a filtering was aborted; Probably a new one was requested?"},"popup-show":{desc:"Emitted when the select options menu or dialog is shown.",params:{evt:{extends:"evt"}}},"popup-hide":{desc:"Emitted when the select options menu or dialog is hidden.",params:{evt:{extends:"evt"}}},"virtual-scroll":{params:{details:{definition:{ref:{type:"Component",tsType:"QSelect",desc:"Vue reference to the QSelect"}}}}},keyup:{internal:!0},keydown:{internal:!0},keypress:{internal:!0}},methods:{showPopup:{desc:"Focus and open popup",params:null,returns:null},hidePopup:{desc:"Hide popup",params:null,returns:null},removeAtIndex:{desc:"Remove selected option located at specific index",params:{index:{type:"Number",required:!0,desc:"Index at which to remove selection"}},returns:null},add:{desc:"Adds option to model",params:{opt:{type:"Any",required:!0,desc:"Option to add to model"},unique:{type:"Boolean",desc:"Option must be unique"}},returns:null},toggleOption:{desc:"Add/remove option from model",params:{opt:{type:"Any",required:!0,desc:"Option to add to model"},keepOpen:{type:"Boolean",desc:"Don't close the menu and do not clear the filter"}},returns:null},getOptionIndex:{desc:"Gets current focused option index from menu; It's -1 if no option is focused",params:null,returns:{type:"Number",desc:"Index of option from menu; It's -1 if no option is focused"},addedIn:"v2.5.4"},setOptionIndex:{desc:"Sets option from menu as 'focused'; -1 to focus none",params:{index:{type:"Number",required:!0,desc:"Index of option from menu; -1 to focus none"}},returns:null},moveOptionSelection:{desc:"Move selected option from menu by index offset",params:{offset:{type:"Number",desc:"Number of options to move up or down",default:"1"},skipInputValue:{type:"Boolean",desc:"Don't set input-value on navigation"}},returns:null},filter:{desc:"Filter options",params:{value:{type:"String",required:!0,desc:"String to filter with",examples:["'car'"]}},returns:null},updateMenuPosition:{desc:"Recomputes menu position",params:null,returns:null},updateInputValue:{desc:"If 'use-input' is specified, this updates the value that it holds",params:{value:{type:"String",required:!0,desc:"String to set the input value to",examples:["'hotel'"]},noFilter:{type:"Boolean",desc:"Set to true if you don't want the filter (if any) to be also triggered"}},returns:null},isOptionSelected:{desc:"Tells if an option is selected",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Boolean",desc:"Option is selected or not"}},getEmittingOptionValue:{desc:"Get the model value that would be emitted by QSelect when selecting a said option; Also takes into consideration if 'emit-value' is set",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Any",desc:"Emitting model value of said option"}},getOptionValue:{desc:"Get the model value of an option; Takes into consideration 'option-value' (if used), but does not looks for 'emit-value', like getEmittingOptionValue() does",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Any",desc:"Model value of said option"}},getOptionLabel:{desc:"Get the label of an option; Takes into consideration the 'option-label' prop (if used)",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Any",desc:"Label of said option"}},isOptionDisabled:{desc:"Tells if an option is disabled; Takes into consideration 'option-disable' prop (if used)",params:{opt:{type:"Any",required:!0,desc:"Option entry"}},returns:{type:"Boolean",desc:"Option is disabled or not"}}}},nP={name:"ShowcaseQuasarSelect",components:{QSelect:V.QSelect},label:"Quasar Select",icon:"edit_note",apiJson:oP,importName:"QSelect",importFrom:"quasar",data(){return{basic:"Shields",basicOutlined:null,basicFilled:null,crew:["Helm","Tactical"],sector:"alpha",dense:null,rounded:null,clearable:"Weapons",shipSystems:["Shields","Weapons","Engines","Sensors","Communications","Life support"],crewOptions:["Helm","Tactical","Science","Engineering","Medical","Operations"],sectorOptions:[{label:"Alpha Quadrant",value:"alpha"},{label:"Beta Quadrant",value:"beta"},{label:"Gamma Quadrant",value:"gamma"},{label:"Delta Quadrant",value:"delta",disable:!0}]}}},aP={class:"jShowcase_row jShowcase_column showcaseSelect"},rP={class:"jShowcase_group"},sP={class:"jShowcase_items"},iP={class:"jShowcase_group"},lP={class:"jShowcase_items"},cP={class:"jShowcase_group"},dP={class:"jShowcase_items"},pP={class:"jShowcase_group"},mP={class:"jShowcase_items"},uP={class:"jShowcase_group"},hP={class:"jShowcase_items"};function fP(o,t,a,l,n,s){const r=e.resolveComponent("QSelect");return e.openBlock(),e.createElementBlock("div",aP,[e.createElementVNode("div",rP,[t[8]||(t[8]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",sP,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),options:n.shipSystems,label:"Ship system",color:"primary",class:"showcaseSelect_field"},null,8,["modelValue","options"]),e.createVNode(r,{modelValue:n.basicOutlined,"onUpdate:modelValue":t[1]||(t[1]=i=>n.basicOutlined=i),options:n.shipSystems,label:"Outlined",color:"primary",outlined:"",class:"showcaseSelect_field"},null,8,["modelValue","options"]),e.createVNode(r,{modelValue:n.basicFilled,"onUpdate:modelValue":t[2]||(t[2]=i=>n.basicFilled=i),options:n.shipSystems,label:"Filled",color:"primary",filled:"",class:"showcaseSelect_field"},null,8,["modelValue","options"])])]),e.createElementVNode("div",iP,[t[9]||(t[9]=e.createElementVNode("span",{class:"jShowcase_title"},"Multiple + Chips",-1)),e.createElementVNode("div",lP,[e.createVNode(r,{modelValue:n.crew,"onUpdate:modelValue":t[3]||(t[3]=i=>n.crew=i),options:n.crewOptions,label:"Assign crew",color:"accent",multiple:"","use-chips":"",outlined:"",class:"showcaseSelect_field showcaseSelect_fieldWide"},null,8,["modelValue","options"])])]),e.createElementVNode("div",cP,[t[10]||(t[10]=e.createElementVNode("span",{class:"jShowcase_title"},"Object Options",-1)),e.createElementVNode("div",dP,[e.createVNode(r,{modelValue:n.sector,"onUpdate:modelValue":t[4]||(t[4]=i=>n.sector=i),options:n.sectorOptions,label:"Destination sector",color:"secondary","emit-value":"","map-options":"",outlined:"",class:"showcaseSelect_field showcaseSelect_fieldWide"},null,8,["modelValue","options"])])]),e.createElementVNode("div",pP,[t[11]||(t[11]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",mP,[e.createVNode(r,{modelValue:n.dense,"onUpdate:modelValue":t[5]||(t[5]=i=>n.dense=i),options:n.shipSystems,label:"Dense",color:"info",dense:"",outlined:"",class:"showcaseSelect_field"},null,8,["modelValue","options"]),e.createVNode(r,{modelValue:n.rounded,"onUpdate:modelValue":t[6]||(t[6]=i=>n.rounded=i),options:n.shipSystems,label:"Rounded",color:"info",rounded:"",outlined:"",class:"showcaseSelect_field"},null,8,["modelValue","options"]),e.createVNode(r,{modelValue:n.clearable,"onUpdate:modelValue":t[7]||(t[7]=i=>n.clearable=i),options:n.shipSystems,label:"Clearable",color:"info",clearable:"",outlined:"",class:"showcaseSelect_field"},null,8,["modelValue","options"])])]),e.createElementVNode("div",uP,[t[12]||(t[12]=e.createElementVNode("span",{class:"jShowcase_title"},"States",-1)),e.createElementVNode("div",hP,[e.createVNode(r,{"model-value":"Engines",options:n.shipSystems,label:"Disabled",color:"negative",disable:"",outlined:"",class:"showcaseSelect_field"},null,8,["options"]),e.createVNode(r,{"model-value":"Shields",options:n.shipSystems,label:"Readonly",color:"warning",readonly:"",outlined:"",class:"showcaseSelect_field"},null,8,["options"]),e.createVNode(r,{options:[],label:"Loading",color:"accent",loading:"",outlined:"",class:"showcaseSelect_field"})])])])}const gP=Object.freeze(Object.defineProperty({__proto__:null,default:j(nP,[["render",fP],["__scopeId","data-v-33c07536"]])},Symbol.toStringTag,{value:"Module"})),bP={mixins:["components/slider/use-slider"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/slider"},props:{"model-value":{extends:"model-value",type:["Number","null","undefined"],desc:"Model of the component (must be between min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",default:"null",examples:['# v-model="positionModel"']},"label-value":{type:["String","Number"],desc:"Override default label value",examples:[`# :label-value="model + 'px'"`],category:"content"}},events:{"update:model-value":{extends:"update:model-value",params:{value:{type:["Number","null"]}}}}},yP={mixins:["components/slider/use-slider"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/range"},props:{"model-value":{extends:"model-value",type:["Object","null","undefined"],desc:"Model of the component of type { min, max } (both values must be between global min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",definition:{min:{type:["Number","null"],desc:"Model value for left thumb"},max:{type:["Number","null"],desc:"Model value for right thumb"}},default:"{ min: null, max: null }",examples:['# v-model="positionModel"']},"drag-range":{type:"Boolean",desc:"User can drag range instead of just the two thumbs",category:"content"},"drag-only-range":{type:"Boolean",desc:"User can drag only the range instead and NOT the two thumbs",category:"content"},"left-label-color":{extends:"color",desc:"Color name for left label background from the Quasar Color Palette",category:"labels"},"left-label-text-color":{extends:"color",desc:"Color name for left label text from the Quasar Color Palette",category:"labels"},"right-label-color":{extends:"color",desc:"Color name for right label background from the Quasar Color Palette",category:"labels"},"right-label-text-color":{extends:"color",desc:"Color name for right label text from the Quasar Color Palette",category:"labels"},"left-label-value":{type:["String","Number"],desc:"Override default label for min value",examples:[`# :left-label-value="model.min + 'px'"`],category:"labels"},"right-label-value":{type:["String","Number"],desc:"Override default label for max value",examples:[`# :right-label-value="model.max + 'px'"`],category:"labels"},"left-thumb-color":{extends:"color",desc:"Color name (from the Quasar Color Palette) for left thumb",category:"labels",addedIn:"v2.4"},"right-thumb-color":{extends:"color",desc:"Color name (from the Quasar Color Palette) for right thumb",category:"labels",addedIn:"v2.4"}},events:{"update:model-value":{extends:"update:model-value"}}},_P={name:"ShowcaseQuasarSlider",components:{QSlider:V.QSlider,QRange:V.QRange},label:"Slider / Range",icon:"edit_note",apiJson:[{name:"QSlider",json:bP},{name:"QRange",json:yP}],importName:["QSlider","QRange"],importFrom:"quasar",data(){return{basic:60,labeled:35,stepped:20,range:{min:20,max:70},rangeStepped:{min:30,max:80}}}},wP={class:"showcaseSliders"},xP={class:"sliderItem"},vP={class:"sliderItem"},kP={class:"sliderItem"},SP={class:"sliderItem"},QP={class:"sliderItem"},CP={class:"sliderItem"};function NP(o,t,a,l,n,s){const r=e.resolveComponent("QSlider"),i=e.resolveComponent("QRange");return e.openBlock(),e.createElementBlock("div",wP,[e.createElementVNode("div",xP,[t[5]||(t[5]=e.createElementVNode("span",{class:"sliderLabel"},"Basic",-1)),e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=c=>n.basic=c),color:"primary"},null,8,["modelValue"])]),e.createElementVNode("div",vP,[t[6]||(t[6]=e.createElementVNode("span",{class:"sliderLabel"},"With label",-1)),e.createVNode(r,{modelValue:n.labeled,"onUpdate:modelValue":t[1]||(t[1]=c=>n.labeled=c),color:"accent",label:"","label-always":""},null,8,["modelValue"])]),e.createElementVNode("div",kP,[t[7]||(t[7]=e.createElementVNode("span",{class:"sliderLabel"},"Stepped",-1)),e.createVNode(r,{modelValue:n.stepped,"onUpdate:modelValue":t[2]||(t[2]=c=>n.stepped=c),color:"secondary",min:0,max:50,step:10,snap:"",markers:"",label:""},null,8,["modelValue"])]),e.createElementVNode("div",SP,[t[8]||(t[8]=e.createElementVNode("span",{class:"sliderLabel"},"Disabled",-1)),e.createVNode(r,{"model-value":40,color:"info",disable:""})]),e.createElementVNode("div",QP,[t[9]||(t[9]=e.createElementVNode("span",{class:"sliderLabel"},"Range",-1)),e.createVNode(i,{modelValue:n.range,"onUpdate:modelValue":t[3]||(t[3]=c=>n.range=c),color:"primary",min:0,max:100,label:""},null,8,["modelValue"])]),e.createElementVNode("div",CP,[t[10]||(t[10]=e.createElementVNode("span",{class:"sliderLabel"},"Range stepped",-1)),e.createVNode(i,{modelValue:n.rangeStepped,"onUpdate:modelValue":t[4]||(t[4]=c=>n.rangeStepped=c),color:"accent",min:0,max:100,step:10,snap:"",markers:"",label:""},null,8,["modelValue"])])])}const IP=Object.freeze(Object.defineProperty({__proto__:null,default:j(_P,[["render",NP],["__scopeId","data-v-ad2ae735"]])},Symbol.toStringTag,{value:"Module"})),VP={mixins:["components/date/use-datetime"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/time"},props:{"model-value":{extends:"model-value",type:["String","null","undefined"],desc:"Time of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="currentTime"']},format24h:{type:["Boolean","null"],default:"null",desc:"Forces 24 hour time display instead of AM/PM system; If prop is not set, then the default is based on Quasar lang language being used",category:"behavior"},"default-date":{type:"String",desc:"The default date to use (in YYYY/MM/DD format) when model is unfilled (undefined or null)",default:"# current day",__runtimeDefault:!0,examples:["'1995/02/23'"],category:"model"},mask:{type:["String","null"],default:"'HH:mm'",__runtimeDefault:!0,examples:["'HH:mm:ss'","'YYYY-MM-DD HH:mm:ss'","'HH:mm MMMM Do, YYYY'"]},options:{type:"Function",desc:"Optionally configure what time is the user allowed to set; Overridden by 'hour-options', 'minute-options' and 'second-options' if those are set; For best performance, reference it from your scope and do not define it inline",params:{hr:{type:"Number",desc:"Hour"},min:{type:["Number","null"],desc:"Minutes"},sec:{type:["Number","null"],desc:"Seconds"}},returns:{type:["Boolean","null","undefined"],desc:"Is the user allowed to set the specified time?"},examples:["(hr, min, sec) => hr <= 6"],category:"behavior"},"hour-options":{type:"Array",desc:"Optionally configure what hours is the user allowed to set; Overrides 'options' prop if that is also set",examples:["[3, 6, 9]"],category:"behavior"},"minute-options":{type:"Array",desc:"Optionally configure what minutes is the user allowed to set; Overrides 'options' prop if that is also set",examples:["[0, 15, 30, 45]"],category:"behavior"},"second-options":{type:"Array",desc:"Optionally configure what seconds is the user allowed to set; Overrides 'options' prop if that is also set",examples:["[0, 7, 10, 23]"],category:"behavior"},"with-seconds":{type:"Boolean",desc:"Allow the time to be set with seconds",category:"model|behavior"},"now-btn":{type:"Boolean",desc:"Display a button that selects the current time",category:"content"}},slots:{default:{desc:"This is where additional buttons can go"}},events:{"update:model-value":{extends:"update:model-value",params:{value:{type:["String","null"]},details:{type:"Object",desc:"Object of properties on the new model",definition:{year:{type:"Number",required:!0,desc:"The year"},month:{type:"Number",required:!0,desc:"The month"},day:{type:"Number",required:!0,desc:"The day of the month"},hour:{type:"Number",required:!0,desc:"The hour"},minute:{type:"Number",required:!0,desc:"The minute"},second:{type:"Number",required:!0,desc:"The second"},millisecond:{type:"Number",required:!0,desc:"The millisecond"},changed:{type:"Boolean",required:!0,desc:"Did the model change?"}}}}}},methods:{setNow:{desc:"Change model to current moment",params:null,returns:null}}},EP={name:"ShowcaseQuasarTime",components:{QTime:V.QTime},label:"Quasar Time",icon:"schedule",apiJson:VP,importName:"QTime",importFrom:"quasar",data(){return{basic:"10:30",h24:"18:45",withSec:"09:15:30"}}},BP={class:"jShowcase_row jShowcase_column"},TP={class:"jShowcase_group"},AP={class:"jShowcase_items"},qP={class:"jShowcase_group"},DP={class:"jShowcase_items"},jP={class:"jShowcase_group"},LP={class:"jShowcase_items"},OP={class:"jShowcase_group"},FP={class:"jShowcase_items"};function zP(o,t,a,l,n,s){const r=e.resolveComponent("QTime");return e.openBlock(),e.createElementBlock("div",BP,[e.createElementVNode("div",TP,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createElementVNode("div",AP,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),color:"primary"},null,8,["modelValue"])])]),e.createElementVNode("div",qP,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"24h format, landscape",-1)),e.createElementVNode("div",DP,[e.createVNode(r,{modelValue:n.h24,"onUpdate:modelValue":t[1]||(t[1]=i=>n.h24=i),color:"secondary",format24h:"",landscape:""},null,8,["modelValue"])])]),e.createElementVNode("div",jP,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"With seconds + Now button",-1)),e.createElementVNode("div",LP,[e.createVNode(r,{modelValue:n.withSec,"onUpdate:modelValue":t[2]||(t[2]=i=>n.withSec=i),color:"accent","with-seconds":"","now-btn":""},null,8,["modelValue"])])]),e.createElementVNode("div",OP,[t[6]||(t[6]=e.createElementVNode("span",{class:"jShowcase_title"},"Readonly",-1)),e.createElementVNode("div",FP,[e.createVNode(r,{"model-value":"14:30",color:"info",readonly:""})])])])}const PP=Object.freeze(Object.defineProperty({__proto__:null,default:j(EP,[["render",zP]])},Symbol.toStringTag,{value:"Module"})),$P={mixins:["components/checkbox/use-checkbox"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/toggle"},props:{icon:{extends:"icon"},"checked-icon":{desc:"The icon to be used when the toggle is on"},"unchecked-icon":{desc:"The icon to be used when the toggle is off"},"indeterminate-icon":{desc:"The icon to be used when the model is indeterminate"},"icon-color":{extends:"color",desc:"Override default icon color (for truthy state only); Color name for component from the Quasar Color Palette"}}},RP={name:"ShowcaseQuasarToggle",components:{QToggle:V.QToggle},label:"Quasar Toggle",icon:"edit_note",apiJson:$P,importName:"QToggle",importFrom:"quasar",data(){return{basic:!0,icons:!1,dense:!0,keepColor:!1}}},MP={class:"jShowcase_row showcaseToggles"};function UP(o,t,a,l,n,s){const r=e.resolveComponent("QToggle");return e.openBlock(),e.createElementBlock("div",MP,[e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),label:"Basic",color:"primary"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.icons,"onUpdate:modelValue":t[1]||(t[1]=i=>n.icons=i),label:"With icons",color:"accent","checked-icon":"check","unchecked-icon":"close"},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.dense,"onUpdate:modelValue":t[2]||(t[2]=i=>n.dense=i),label:"Dense",color:"secondary",dense:""},null,8,["modelValue"]),e.createVNode(r,{modelValue:n.keepColor,"onUpdate:modelValue":t[3]||(t[3]=i=>n.keepColor=i),label:"Keep color",color:"info","keep-color":""},null,8,["modelValue"]),e.createVNode(r,{"model-value":!0,label:"Disabled on",color:"positive",disable:""}),e.createVNode(r,{"model-value":!1,label:"Disabled off",color:"negative",disable:""})])}const HP=Object.freeze(Object.defineProperty({__proto__:null,default:j(RP,[["render",UP],["__scopeId","data-v-de7c1877"]])},Symbol.toStringTag,{value:"Module"})),GP={name:"ShowcaseQuasarChip",components:{QChip:V.QChip},label:"Quasar Chip",icon:"auto_awesome",importName:"QChip",importFrom:"quasar",code:'<QChip icon="event">Add to calendar</QChip>'},WP={class:"jShowcase_row"};function JP(o,t,a,l,n,s){const r=e.resolveComponent("QChip");return e.openBlock(),e.createElementBlock("div",WP,[e.createVNode(r,{icon:"event",disable:""},{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Add to calendar",-1)])]),_:1})])}const YP=Object.freeze(Object.defineProperty({__proto__:null,default:j(GP,[["render",JP]])},Symbol.toStringTag,{value:"Module"})),ZP={mixins:["composables/private.use-size/use-size"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/circular-progress"},props:{value:{type:"Number",default:"0",desc:"Current progress (must be between min/max)",category:"model"},min:{type:"Number",default:"0",desc:"Minimum value defining 'no progress' (must be lower than 'max')",category:"model"},max:{type:"Number",default:"100",desc:"Maximum value defining 100% progress made (must be higher than 'min')",category:"model"},color:{extends:"color",desc:"Color name for the arc progress from the Quasar Color Palette"},"center-color":{extends:"color",desc:"Color name for the center part of the component from the Quasar Color Palette"},"track-color":{extends:"color",desc:"Color name for the track of the component from the Quasar Color Palette"},"font-size":{type:"String",desc:"Size of text in CSS units, including unit name. Suggestion: use 'em' units to sync with component size",examples:["'1em'","'16px'","'2rem'"],category:"style"},rounded:{type:"Boolean",desc:"Rounding the arc of progress",category:"style",addedIn:"v2.8.4"},thickness:{type:"Number",default:"0.2",desc:"Thickness of progress arc as a ratio (0.0 < x < 1.0) of component size",category:"style"},angle:{type:"Number",desc:"Angle to rotate progress arc by",default:"0",category:"content"},indeterminate:{type:"Boolean",desc:"Put component into 'indeterminate' state; Ignores 'value' prop",category:"behavior"},"show-value":{type:"Boolean",desc:"Enables the default slot and uses it (if available), otherwise it displays the 'value' prop as text; Make sure the text has enough space to be displayed inside the component",category:"content|behavior"},reverse:{type:"Boolean",desc:"Reverses the direction of progress; Only for determined state",category:"behavior"},"instant-feedback":{type:"Boolean",desc:"No animation when model changes",category:"behavior"},"animation-speed":{extends:"animation-speed",default:"600",addedIn:"v2.3"}},slots:{default:{desc:"Used for component content only if 'show-value' prop is set; Make sure the content has enough space to be displayed inside the component"},internal:{desc:"Used by QKnob internally",internal:!0}}},KP={name:"ShowcaseQuasarCircularProgress",components:{QCircularProgress:V.QCircularProgress,QIcon:V.QIcon},label:"Circular Progress",icon:"auto_awesome",apiJson:ZP,importName:"QCircularProgress",importFrom:"quasar"},XP={class:"jShowcase_row"};function e$(o,t,a,l,n,s){const r=e.resolveComponent("QCircularProgress"),i=e.resolveComponent("QIcon");return e.openBlock(),e.createElementBlock("div",XP,[e.createVNode(r,{value:75,size:"56px",color:"primary","track-color":"grey-8","show-value":""},{default:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode(" 75% ",-1)])]),_:1}),e.createVNode(r,{value:40,size:"56px",color:"accent","track-color":"grey-8",rounded:"",thickness:.3,"show-value":""},{default:e.withCtx(()=>[e.createVNode(i,{name:"rocket_launch",size:"18px",color:"accent"})]),_:1}),e.createVNode(r,{indeterminate:"",size:"56px",color:"secondary","track-color":"grey-8"}),e.createVNode(r,{value:90,size:"56px",color:"positive","track-color":"grey-8",thickness:.1,"show-value":"","font-size":"11px"},{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode(" 90% ",-1)])]),_:1})])}const t$=Object.freeze(Object.defineProperty({__proto__:null,default:j(KP,[["render",e$]])},Symbol.toStringTag,{value:"Module"})),o$={mixins:["components/spinner/spinner"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/spinners"},props:{thickness:{type:"Number",desc:"Override value to use for stroke-width",default:"5",category:"style"}}},n$={mixins:["composables/private.use-size/use-size","composables/private.use-transition/use-transition"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/inner-loading"},props:{showing:{type:"Boolean",desc:"State - loading or not",category:"state"},color:{extends:"color",desc:"Color name for component from the Quasar Color Palette for the inner Spinner (unless using the default slot)"},size:{type:["String","Number"],desc:"Size in CSS units, including unit name, or standard size name (xs|sm|md|lg|xl), for the inner Spinner (unless using the default slot)",default:"'42px'"},label:{type:"String",desc:"Add a label; Gets overriden when using the default slot",examples:["'Please wait...'"],category:"label",addedIn:"v2.2"},"label-class":{type:"String",desc:"Add CSS class(es) to the label; Works along the 'label' prop only",examples:["'text-red q-mt-xl'"],category:"label",addedIn:"v2.2"},"label-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"Apply custom style to the label; Works along the 'label' prop only",examples:["'font-size: 28px'","{ color: '#ff0000' }"],category:"label",addedIn:"v2.2"},dark:{extends:"dark"}},slots:{default:{desc:"Default slot is used for replacing default Spinner; Suggestions: a spinner or text"}}},a$={name:"ShowcaseQuasarSpinner",inject:["showcaseCopy"],components:{QToggle:V.QToggle,QInnerLoading:V.QInnerLoading,QSpinner:V.QSpinner,QSpinnerDots:V.QSpinnerDots,QSpinnerBars:V.QSpinnerBars,QSpinnerAudio:V.QSpinnerAudio,QSpinnerBall:V.QSpinnerBall,QSpinnerCube:V.QSpinnerCube,QSpinnerGrid:V.QSpinnerGrid,QSpinnerHourglass:V.QSpinnerHourglass,QSpinnerOrbit:V.QSpinnerOrbit,QSpinnerOval:V.QSpinnerOval,QSpinnerPuff:V.QSpinnerPuff,QSpinnerRings:V.QSpinnerRings,QSpinnerTail:V.QSpinnerTail,QSpinnerGears:V.QSpinnerGears,QSpinnerComment:V.QSpinnerComment},label:"Spinners / Loading",icon:"auto_awesome",apiJson:[{name:"QSpinner",json:o$},{name:"QInnerLoading",json:n$}],importName:"QSpinner",importFrom:"quasar",data(){return{innerActive:!0}}},r$={class:"jShowcase_row jShowcase_column"},s$={class:"jShowcase_group"},i$={class:"jShowcase_items"},l$={class:"jShowcase_group"},c$={class:"jShowcase_items"},d$={class:"jShowcase_group"},p$={class:"jShowcase_items"},m$={class:"jShowcase_group"},u$={class:"jShowcase_items"},h$={class:"jShowcase_group"},f$={class:"jShowcase_items"},g$={class:"innerLoadingBox"},b$={class:"innerLoadingBox"},y$={class:"innerLoadingBox"},_$={class:"innerLoadingBox"};function w$(o,t,a,l,n,s){const r=e.resolveComponent("QSpinner"),i=e.resolveComponent("QSpinnerDots"),c=e.resolveComponent("QSpinnerBars"),m=e.resolveComponent("QSpinnerAudio"),d=e.resolveComponent("QSpinnerBall"),u=e.resolveComponent("QSpinnerCube"),g=e.resolveComponent("QSpinnerGrid"),b=e.resolveComponent("QSpinnerHourglass"),w=e.resolveComponent("QSpinnerOrbit"),C=e.resolveComponent("QSpinnerOval"),Q=e.resolveComponent("QSpinnerPuff"),f=e.resolveComponent("QSpinnerRings"),_=e.resolveComponent("QSpinnerTail"),v=e.resolveComponent("QSpinnerGears"),x=e.resolveComponent("QSpinnerComment"),k=e.resolveComponent("QInnerLoading"),B=e.resolveComponent("QToggle");return e.openBlock(),e.createElementBlock("div",r$,[e.createElementVNode("div",s$,[t[15]||(t[15]=e.createElementVNode("span",{class:"jShowcase_title"},"Default",-1)),e.createElementVNode("div",i$,[e.createVNode(r,{color:"primary",size:"40px"}),e.createVNode(r,{color:"secondary",size:"40px",thickness:2}),e.createVNode(r,{color:"accent",size:"40px",thickness:8})])]),e.createElementVNode("div",l$,[t[16]||(t[16]=e.createElementVNode("span",{class:"jShowcase_title"},"Sizes",-1)),e.createElementVNode("div",c$,[e.createVNode(r,{color:"primary",size:"20px"}),e.createVNode(r,{color:"primary",size:"30px"}),e.createVNode(r,{color:"primary",size:"40px"}),e.createVNode(r,{color:"primary",size:"60px"}),e.createVNode(r,{color:"primary",size:"80px"})])]),e.createElementVNode("div",d$,[t[31]||(t[31]=e.createElementVNode("span",{class:"jShowcase_title"},"Variants",-1)),e.createElementVNode("div",p$,[e.createElementVNode("div",{class:"spinnerItem",onClick:t[0]||(t[0]=E=>s.showcaseCopy("<QSpinnerDots />"))},[e.createVNode(i,{color:"primary",size:"40px"}),t[17]||(t[17]=e.createElementVNode("span",{class:"spinnerLabel"},"Dots",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[1]||(t[1]=E=>s.showcaseCopy("<QSpinnerBars />"))},[e.createVNode(c,{color:"secondary",size:"40px"}),t[18]||(t[18]=e.createElementVNode("span",{class:"spinnerLabel"},"Bars",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[2]||(t[2]=E=>s.showcaseCopy("<QSpinnerAudio />"))},[e.createVNode(m,{color:"accent",size:"40px"}),t[19]||(t[19]=e.createElementVNode("span",{class:"spinnerLabel"},"Audio",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[3]||(t[3]=E=>s.showcaseCopy("<QSpinnerBall />"))},[e.createVNode(d,{color:"positive",size:"40px"}),t[20]||(t[20]=e.createElementVNode("span",{class:"spinnerLabel"},"Ball",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[4]||(t[4]=E=>s.showcaseCopy("<QSpinnerCube />"))},[e.createVNode(u,{color:"info",size:"40px"}),t[21]||(t[21]=e.createElementVNode("span",{class:"spinnerLabel"},"Cube",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[5]||(t[5]=E=>s.showcaseCopy("<QSpinnerGrid />"))},[e.createVNode(g,{color:"warning",size:"40px"}),t[22]||(t[22]=e.createElementVNode("span",{class:"spinnerLabel"},"Grid",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[6]||(t[6]=E=>s.showcaseCopy("<QSpinnerHourglass />"))},[e.createVNode(b,{color:"negative",size:"40px"}),t[23]||(t[23]=e.createElementVNode("span",{class:"spinnerLabel"},"Hourglass",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[7]||(t[7]=E=>s.showcaseCopy("<QSpinnerOrbit />"))},[e.createVNode(w,{color:"primary",size:"40px"}),t[24]||(t[24]=e.createElementVNode("span",{class:"spinnerLabel"},"Orbit",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[8]||(t[8]=E=>s.showcaseCopy("<QSpinnerOval />"))},[e.createVNode(C,{color:"secondary",size:"40px"}),t[25]||(t[25]=e.createElementVNode("span",{class:"spinnerLabel"},"Oval",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[9]||(t[9]=E=>s.showcaseCopy("<QSpinnerPuff />"))},[e.createVNode(Q,{color:"accent",size:"40px"}),t[26]||(t[26]=e.createElementVNode("span",{class:"spinnerLabel"},"Puff",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[10]||(t[10]=E=>s.showcaseCopy("<QSpinnerRings />"))},[e.createVNode(f,{color:"positive",size:"40px"}),t[27]||(t[27]=e.createElementVNode("span",{class:"spinnerLabel"},"Rings",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[11]||(t[11]=E=>s.showcaseCopy("<QSpinnerTail />"))},[e.createVNode(_,{color:"info",size:"40px"}),t[28]||(t[28]=e.createElementVNode("span",{class:"spinnerLabel"},"Tail",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[12]||(t[12]=E=>s.showcaseCopy("<QSpinnerGears />"))},[e.createVNode(v,{color:"warning",size:"40px"}),t[29]||(t[29]=e.createElementVNode("span",{class:"spinnerLabel"},"Gears",-1))]),e.createElementVNode("div",{class:"spinnerItem",onClick:t[13]||(t[13]=E=>s.showcaseCopy("<QSpinnerComment />"))},[e.createVNode(x,{color:"negative",size:"40px"}),t[30]||(t[30]=e.createElementVNode("span",{class:"spinnerLabel"},"Comment",-1))])])]),e.createElementVNode("div",m$,[t[32]||(t[32]=e.createElementVNode("span",{class:"jShowcase_title"},"Colors",-1)),e.createElementVNode("div",u$,[e.createVNode(r,{color:"primary",size:"40px"}),e.createVNode(r,{color:"secondary",size:"40px"}),e.createVNode(r,{color:"accent",size:"40px"}),e.createVNode(r,{color:"positive",size:"40px"}),e.createVNode(r,{color:"negative",size:"40px"}),e.createVNode(r,{color:"info",size:"40px"}),e.createVNode(r,{color:"warning",size:"40px"})])]),e.createElementVNode("div",h$,[t[37]||(t[37]=e.createElementVNode("span",{class:"jShowcase_title"},"QInnerLoading",-1)),e.createElementVNode("div",f$,[e.createElementVNode("div",g$,[t[33]||(t[33]=e.createElementVNode("div",{class:"innerLoadingContent"},"Content underneath",-1)),e.createVNode(k,{showing:n.innerActive,color:"primary"},null,8,["showing"])]),e.createElementVNode("div",b$,[t[34]||(t[34]=e.createElementVNode("div",{class:"innerLoadingContent"},"Custom spinner",-1)),e.createVNode(k,{showing:n.innerActive},{default:e.withCtx(()=>[e.createVNode(v,{color:"accent",size:"40px"})]),_:1},8,["showing"])]),e.createElementVNode("div",y$,[t[35]||(t[35]=e.createElementVNode("div",{class:"innerLoadingContent"},"Dark overlay",-1)),e.createVNode(k,{showing:n.innerActive,color:"secondary",dark:""},null,8,["showing"])]),e.createElementVNode("div",_$,[t[36]||(t[36]=e.createElementVNode("div",{class:"innerLoadingContent"},"With label",-1)),e.createVNode(k,{showing:n.innerActive,color:"primary",label:"Loading data..."},null,8,["showing"])])]),e.createVNode(B,{modelValue:n.innerActive,"onUpdate:modelValue":t[14]||(t[14]=E=>n.innerActive=E),label:"Show loading",color:"primary"},null,8,["modelValue"]),t[38]||(t[38]=e.createElementVNode("p",{class:"innerLoadingNote"},[e.createElementVNode("strong",null,"WARNING:"),e.createTextVNode(" The parent element must have "),e.createElementVNode("code",null,"position: relative"),e.createTextVNode(" (or the "),e.createElementVNode("code",null,"relative-position"),e.createTextVNode(" Quasar class) for the spinner to center correctly. ")],-1)),t[39]||(t[39]=e.createElementVNode("p",{class:"innerLoadingNote"},[e.createElementVNode("strong",null,"WARNING:"),e.createTextVNode(" QInnerLoading must be the last element inside its parent so it can appear on top of the other content. ")],-1))])])}const x$=Object.freeze(Object.defineProperty({__proto__:null,default:j(a$,[["render",w$],["__scopeId","data-v-3f56c67c"]])},Symbol.toStringTag,{value:"Module"})),v$={meta:{docsUrl:"https://v2.quasar.dev/vue-components/tabs"},props:{"model-value":{extends:"model-value",type:["Number","String","null","undefined"],desc:"Model of the component defining current panel name; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",required:!1,examples:['# v-model="selectedTab"']},vertical:{type:"Boolean",desc:"Use vertical design (tabs one on top of each other rather than one next to the other horizontally)",category:"content"},"outside-arrows":{type:"Boolean",desc:"Reserve space for arrows to place them on each side of the tabs (the arrows fade when inactive)",category:"content"},"mobile-arrows":{type:"Boolean",desc:"Force display of arrows (if needed) on mobile",category:"content"},align:{type:"String",desc:"Horizontal alignment the tabs within the tabs container",default:"'center'",values:["'left'","'center'","'right'","'justify'"],category:"content"},breakpoint:{type:["Number","String"],desc:"Breakpoint (in pixels) of tabs container width at which the tabs automatically turn to a justify alignment",default:"600",category:"content|behavior"},"active-color":{extends:"color",desc:"The color to be attributed to the text of the active tab",category:"style"},"active-bg-color":{extends:"color",desc:"The color to be attributed to the background of the active tab",category:"style"},"indicator-color":{extends:"color",desc:"The color to be attributed to the indicator (the underline) of the active tab",category:"style"},"content-class":{type:"String",desc:"Class definitions to be attributed to the content wrapper",examples:["'my-special-class'"],category:"style"},"active-class":{type:"String",desc:"The class to be set on the active tab",examples:["'my-active-class'"],category:"style",addedIn:"v2.1.4"},"left-icon":{type:"String",desc:"The name of an icon to replace the default arrow used to scroll through the tabs to the left, when the tabs extend past the width of the tabs container",examples:["'arrow_left'"],category:"content"},"right-icon":{type:"String",desc:"The name of an icon to replace the default arrow used to scroll through the tabs to the right, when the tabs extend past the width of the tabs container",examples:["'arrow_right'"],category:"content"},stretch:{type:"Boolean",desc:"When used on flexbox parent, tabs will stretch to parent's height",category:"content"},shrink:{type:"Boolean",desc:"By default, QTabs is set to grow to the available space; However, you can reverse that with this prop; Useful (and required) when placing the component in a QToolbar",category:"content"},"switch-indicator":{type:"Boolean",desc:"Switches the indicator position (on left of tab for vertical mode or above the tab for default horizontal mode)",category:"content"},"narrow-indicator":{type:"Boolean",desc:"Allows the indicator to be the same width as the tab's content (text or icon), instead of the whole width of the tab",category:"content"},"inline-label":{type:"Boolean",desc:"Allows the text to be inline with the icon, should one be used",category:"content"},"no-caps":{type:"Boolean",desc:"Turns off capitalizing all letters within the tab (which is the default)",category:"content"},dense:{extends:"dense"}},slots:{default:{extends:"default"}},events:{"update:model-value":{extends:"update:model-value"}}},k$={meta:{docsUrl:"https://v2.quasar.dev/vue-components/tabs"},mixins:["components/tabs/use-tab"]},S$={mixins:["composables/private.use-panel/use-panel"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/tab-panels"},props:{dark:{extends:"dark"}},slots:{default:{extends:"default"}}},Q$={meta:{docsUrl:"https://v2.quasar.dev/vue-components/tab-panels"},mixins:["composables/private.use-panel/use-panel.child"],slots:{default:{extends:"default"}}},C$={name:"ShowcaseQuasarTabs",components:{QTabs:V.QTabs,QTab:V.QTab,QTabPanels:V.QTabPanels,QTabPanel:V.QTabPanel},label:"Quasar Tabs",icon:"auto_awesome",apiJson:[{name:"QTabs",json:v$},{name:"QTab",json:k$},{name:"QTabPanels",json:S$},{name:"QTabPanel",json:Q$}],importName:"QTabs",importFrom:"quasar",data(){return{tab:"overview",tab2:"all"}}},N$={class:"jShowcase_row jShowcase_column showcaseTabs"},I$={class:"jShowcase_group"},V$={class:"jShowcase_group"};function E$(o,t,a,l,n,s){const r=e.resolveComponent("QTab"),i=e.resolveComponent("QTabs"),c=e.resolveComponent("QTabPanel"),m=e.resolveComponent("QTabPanels");return e.openBlock(),e.createElementBlock("div",N$,[e.createElementVNode("div",I$,[t[8]||(t[8]=e.createElementVNode("span",{class:"jShowcase_title"},"With Panels",-1)),e.createVNode(i,{modelValue:n.tab,"onUpdate:modelValue":t[0]||(t[0]=d=>n.tab=d),dense:"","no-caps":"",class:"showcaseTabs_bar","active-color":"accent","indicator-color":"accent"},{default:e.withCtx(()=>[e.createVNode(r,{name:"overview",icon:"dashboard",label:"Overview"}),e.createVNode(r,{name:"systems",icon:"memory",label:"Systems"}),e.createVNode(r,{name:"crew",icon:"groups",label:"Crew"}),e.createVNode(r,{name:"logs",icon:"description",label:"Logs",alert:"warning"})]),_:1},8,["modelValue"]),e.createVNode(m,{modelValue:n.tab,"onUpdate:modelValue":t[1]||(t[1]=d=>n.tab=d),animated:"",class:"showcaseTabs_panels"},{default:e.withCtx(()=>[e.createVNode(c,{name:"overview"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Ship status nominal. All systems operational.",-1)])]),_:1}),e.createVNode(c,{name:"systems"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Warp drive: online. Shields: 98%. Phasers: charged.",-1)])]),_:1}),e.createVNode(c,{name:"crew"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Officers: 42. Enlisted: 388. Civilians: 0.",-1)])]),_:1}),e.createVNode(c,{name:"logs"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("3 new entries. 1 flagged for review.",-1)])]),_:1})]),_:1},8,["modelValue"])]),e.createElementVNode("div",V$,[t[12]||(t[12]=e.createElementVNode("span",{class:"jShowcase_title"},"Minimal",-1)),e.createVNode(i,{modelValue:n.tab2,"onUpdate:modelValue":t[2]||(t[2]=d=>n.tab2=d),dense:"","no-caps":"",class:"showcaseTabs_bar","active-color":"primary","indicator-color":"primary","narrow-indicator":"",align:"left"},{default:e.withCtx(()=>[e.createVNode(r,{name:"all",label:"All"}),e.createVNode(r,{name:"active",label:"Active"}),e.createVNode(r,{name:"archived",label:"Archived"}),e.createVNode(r,{name:"disabled",label:"Disabled",disable:""})]),_:1},8,["modelValue"]),e.createVNode(m,{modelValue:n.tab2,"onUpdate:modelValue":t[3]||(t[3]=d=>n.tab2=d),animated:"",class:"showcaseTabs_panels"},{default:e.withCtx(()=>[e.createVNode(c,{name:"all"},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Showing all 127 records.",-1)])]),_:1}),e.createVNode(c,{name:"active"},{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("48 active records.",-1)])]),_:1}),e.createVNode(c,{name:"archived"},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("79 archived records.",-1)])]),_:1})]),_:1},8,["modelValue"])])])}const B$=Object.freeze(Object.defineProperty({__proto__:null,default:j(C$,[["render",E$],["__scopeId","data-v-9c106632"]])},Symbol.toStringTag,{value:"Module"})),T$={mixins:["composables/private.use-fullscreen/use-fullscreen"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/editor"},props:{"model-value":{extends:"model-value",type:"String",desc:"Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",examples:['# v-model="content"']},readonly:{extends:"readonly"},square:{extends:"square"},flat:{extends:"flat",desc:"Applies a 'flat' design (no borders)"},dense:{extends:"dense",desc:"Dense mode; toolbar buttons are shown on one-line only"},dark:{extends:"dark"},disable:{extends:"disable"},"min-height":{type:"String",desc:"CSS unit for the minimum height of the editable area",default:"'10rem'",examples:["'15rem'","'50vh'"],category:"style"},"max-height":{type:"String",desc:"CSS unit for maximum height of the input area",examples:["'1000px'","'90vh'"],category:"style"},height:{type:"String",desc:"CSS value to set the height of the editable area",examples:["'100px'","'50vh'"],category:"style"},definitions:{type:"Object",desc:"Definition of commands and their buttons to be included in the 'toolbar' prop",examples:["{ save: { tip: 'Save your work', icon: 'save', label: 'Save', handler: saveWork }, upload: { tip: 'Upload to cloud', icon: 'cloud_upload', label: 'Upload', handler: uploadIt } }"],definition:{"...commandName":{type:"Object",tsType:"QEditorCommand",autoDefineTsType:!0,desc:"Command definition",definition:{label:{type:"String",desc:"Label of the button",examples:["'Addresses'"]},tip:{type:"String",desc:"Text to be displayed as a tooltip on hover",examples:["'Add a contact from the Address Book'"]},htmlTip:{type:"String",desc:"HTML formatted text to be displayed within a tooltip on hover",examples:[`'Add a <span class="red">user</span> from the address book'`]},icon:{type:"String",desc:"Icon of the button",examples:["'fas fa-address-book'"]},key:{type:"Number",desc:"Keycode of a key to be used together with the <ctrl> key for use as a shortcut to trigger this element",examples:["12","36"]},handler:{type:"Function",desc:'Either this or "cmd" is required. Function for when button gets clicked/tapped.',params:null,returns:null,examples:["() => this.uploadFile()"]},cmd:{type:"String",desc:'Either this or "handler" is required. This must be a valid execCommand method according to the designMode API.',examples:["'insertHTML'","'justifyFull'"]},param:{type:"String",desc:'Only set a param if using a "cmd". This is commonly text or HTML to inject, but is highly dependent upon the specific cmd being called.',examples:[`'<img src="://uploads/001.jpg" alt="nice pic" />'`]},disable:{type:["Boolean","Function"],desc:"Is button disabled?",returns:{type:"Boolean",desc:"If true, the button will be disabled"},examples:["true","() => !checkIfUserIsActive()"]},type:{type:["String","null"],desc:'Pass the value "no-state" if the button should not have an "active" state',values:["null","'no-state'"],examples:["'no-state'"]},fixedLabel:{type:"Boolean",desc:"Lock the button label, so it doesn't change based on the child option selected."},fixedIcon:{type:"Boolean",desc:"Lock the button icon, so it doesn't change based on the child option selected."},highlight:{type:"Boolean",desc:"Highlight the toolbar button, when a child option has been selected."}}}},category:"toolbar"},fonts:{type:"Object",desc:"Object with definitions of fonts",examples:["{ arial: 'Arial', arial_black: 'Arial Black', comic_sans: 'Comic Sans MS' }"],category:"toolbar"},toolbar:{type:"Array",desc:"An array of arrays of Objects/Strings that you use to define the construction of the elements and commands available in the toolbar",default:"[['left', 'center', 'right', 'justify'], ['bold', 'italic', 'underline', 'strike'], ['undo', 'redo']]",examples:["['left', 'center', 'right', 'justify']"],category:"toolbar"},"toolbar-color":{extends:"color",desc:"Font color (from the Quasar Palette) of buttons and text in the toolbar",category:"toolbar"},"toolbar-text-color":{extends:"text-color",desc:"Text color (from the Quasar Palette) of toolbar commands",category:"toolbar"},"toolbar-toggle-color":{type:"String",desc:"Choose the active color (from the Quasar Palette) of toolbar commands button",default:"'primary'",examples:["'secondary'","'blue-3'"],category:"toolbar"},"toolbar-bg":{type:"String",desc:"Toolbar background color (from Quasar Palette)",default:"'grey-3'",__runtimeDefault:!0,examples:["'secondary'","'blue-3'"],category:"toolbar"},"toolbar-outline":{type:"Boolean",desc:'Toolbar buttons are rendered "outlined"',category:"toolbar|style"},"toolbar-push":{type:"Boolean",desc:'Toolbar buttons are rendered as a "push-button" type',category:"toolbar|style"},"toolbar-rounded":{type:"Boolean",desc:'Toolbar buttons are rendered "rounded"',category:"toolbar|style"},"paragraph-tag":{type:"String",desc:"Paragraph tag to be used",values:["'div'","'p'"],default:"'div'",category:"behavior"},"content-style":{type:"Object",tsType:"VueStyleObjectProp",desc:"Object with CSS properties and values for styling the container of QEditor",examples:["{ backgroundColor: '#C0C0C0' }"],category:"style"},"content-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes for the input area",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},placeholder:{type:"String",desc:"Text to display as placeholder",examples:["'Type your story here ...'"],category:"content"}},events:{"update:model-value":{extends:"update:model-value",params:{value:{type:"String",desc:"The pure HTML of the content"}}},"dropdown-show":{desc:"Emitted after a dropdown in the toolbar has triggered show()",params:{evt:{extends:"evt"}},addedIn:"v2.11.8"},"dropdown-before-show":{desc:"Emitted when a dropdown in the toolbar triggers show() but before it finishes doing it",params:{evt:{extends:"evt"}},addedIn:"v2.11.8"},"dropdown-hide":{desc:"Emitted after a dropdown in the toolbar has triggered hide()",params:{evt:{extends:"evt"}},addedIn:"v2.11.8"},"dropdown-before-hide":{desc:"Emitted when a dropdown in the toolbar triggers hide() but before it finishes doing it",params:{evt:{extends:"evt"}},addedIn:"v2.11.8"},"link-show":{desc:"Emitted when the toolbar for editing a link is shown",addedIn:"v2.11.9"},"link-hide":{desc:"Emitted when the toolbar for editing a link is hidden",addedIn:"v2.11.9"},keydown:{internal:!0},click:{internal:!0},blur:{internal:!0},focus:{internal:!0}},methods:{runCmd:{desc:"Run contentEditable command at caret position and range",params:{cmd:{type:"String",desc:"Must be a valid execCommand method according to the designMode API",examples:["'copy'","'cut'","'paste'"],required:!0},param:{type:"String",desc:"The argument to pass to the command",examples:["'<small>Small Text</small>'"]},update:{type:"Boolean",desc:"Refresh the toolbar",default:"true"}},returns:null},refreshToolbar:{desc:"Hide the link editor if visible and force the instance to re-render",params:null,returns:null},focus:{desc:"Focus on the contentEditable at saved cursor position",params:null,returns:null},getContentEl:{desc:"Retrieve the content of the Editor",params:null,returns:{type:"Element",desc:"Provides the pure HTML within the editable area"}}},computedProps:{caret:{type:"Object",tsType:"QEditorCaret",desc:"The current caret state"}},slots:{"[command]":{desc:"Content for the given command in the toolbar"}}},A$={name:"ShowcaseQuasarEditor",components:{QEditor:V.QEditor},label:"Quasar Editor",icon:"edit_note",apiJson:T$,importName:"QEditor",importFrom:"quasar",data(){return{basic:"<p>Signal logs are editable. Try <b>bold</b>, <i>italic</i>, or a <u>highlight</u>.</p>",toolbar:"<p>Custom toolbar — only formatting, lists, and undo/redo.</p>",dense:"<p>Dense toolbar, no card border.</p>",readonly:"<p>Classified transmission — <b>read-only</b> content.</p>"}}},q$={class:"jShowcase_row jShowcase_column showcaseEditor"},D$={class:"jShowcase_group"},j$={class:"jShowcase_group"},L$={class:"jShowcase_group"},O$={class:"jShowcase_group"};function F$(o,t,a,l,n,s){const r=e.resolveComponent("QEditor");return e.openBlock(),e.createElementBlock("div",q$,[e.createElementVNode("div",D$,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createVNode(r,{modelValue:n.basic,"onUpdate:modelValue":t[0]||(t[0]=i=>n.basic=i),class:"showcaseEditor_field","min-height":"6rem"},null,8,["modelValue"])]),e.createElementVNode("div",j$,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Custom Toolbar",-1)),e.createVNode(r,{modelValue:n.toolbar,"onUpdate:modelValue":t[1]||(t[1]=i=>n.toolbar=i),class:"showcaseEditor_field","min-height":"6rem",toolbar:[["bold","italic","underline","strike"],["unordered","ordered"],["undo","redo"]]},null,8,["modelValue"])]),e.createElementVNode("div",L$,[t[6]||(t[6]=e.createElementVNode("span",{class:"jShowcase_title"},"Dense & Flat",-1)),e.createVNode(r,{modelValue:n.dense,"onUpdate:modelValue":t[2]||(t[2]=i=>n.dense=i),class:"showcaseEditor_field","min-height":"5rem",dense:"",flat:""},null,8,["modelValue"])]),e.createElementVNode("div",O$,[t[7]||(t[7]=e.createElementVNode("span",{class:"jShowcase_title"},"Read-only",-1)),e.createVNode(r,{modelValue:n.readonly,"onUpdate:modelValue":t[3]||(t[3]=i=>n.readonly=i),class:"showcaseEditor_field","min-height":"5rem",readonly:""},null,8,["modelValue"])])])}const z$=Object.freeze(Object.defineProperty({__proto__:null,default:j(A$,[["render",F$],["__scopeId","data-v-111a0028"]])},Symbol.toStringTag,{value:"Module"})),P$={meta:{docsUrl:"https://v2.quasar.dev/vue-components/markup-table"},props:{dense:{extends:"dense"},dark:{extends:"dark"},flat:{extends:"flat"},bordered:{extends:"bordered"},square:{extends:"square"},separator:{type:"String",desc:"Use a separator/border between rows, columns or all cells",default:"'horizontal'",values:["'horizontal'","'vertical'","'cell'","'none'"],examples:["'cell'"],category:"content"},"wrap-cells":{type:"Boolean",desc:"Wrap text within table cells",category:"content"}},slots:{default:{extends:"default"}}},$$={name:"ShowcaseMarkupTable",components:{QMarkupTable:V.QMarkupTable,QBadge:V.QBadge},label:"Markup Table",icon:"table_rows",apiJson:P$,importName:"QMarkupTable",importFrom:"quasar",data(){return{ships:[{name:"USS Endeavor",class:"Explorer",crew:430,warp:9.2},{name:"USS Valkyrie",class:"Combat",crew:260,warp:9.6},{name:"USS Pioneer",class:"Science",crew:180,warp:8.4},{name:"USS Horizon",class:"Medical",crew:310,warp:7.8}],systems:[{name:"Warp Core",status:"ONLINE",color:"positive"},{name:"Shields",status:"CHARGING",color:"warning"},{name:"Life Support",status:"NOMINAL",color:"positive"},{name:"Cloaking Device",status:"OFFLINE",color:"negative"}],logs:[{date:"41024.3",entry:"Routine sensor sweep of sector 7-G completed. No anomalies."},{date:"41024.5",entry:"Unidentified signal detected on subspace band 4. Monitoring."},{date:"41024.9",entry:"Signal resolved as misaligned relay buoy. Dispatched repair drone."},{date:"41025.1",entry:"Crew rotation complete. All stations reporting nominal."}]}}},R$={class:"jShowcase_row jShowcase_column showcaseMarkupTable"},M$={class:"jShowcase_group"},U$={class:"text-left"},H$={class:"text-left"},G$={class:"text-right"},W$={class:"text-right"},J$={class:"jShowcase_group"},Y$={class:"text-left"},Z$={class:"text-right"},K$={class:"jShowcase_group"},X$={class:"text-left"},eR={class:"text-left"};function tR(o,t,a,l,n,s){const r=e.resolveComponent("QMarkupTable"),i=e.resolveComponent("QBadge");return e.openBlock(),e.createElementBlock("div",R$,[t[6]||(t[6]=e.createElementVNode("div",{class:"jShowcase_info"},[e.createElementVNode("p",null,[e.createElementVNode("strong",null,"QMarkupTable"),e.createTextVNode(" is a thin styled wrapper around the native HTML "),e.createElementVNode("code",null,"<table>"),e.createTextVNode(" element. Use it when you already have the data rendered as markup and just want Quasar's theming.")]),e.createElementVNode("p",null,[e.createTextVNode("For sorting, filtering, pagination, or row selection, reach for "),e.createElementVNode("strong",null,"QTable"),e.createTextVNode(" instead.")])],-1)),e.createElementVNode("div",M$,[t[1]||(t[1]=e.createElementVNode("span",{class:"jShowcase_title"},"Default",-1)),e.createVNode(r,null,{default:e.withCtx(()=>[t[0]||(t[0]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"text-left"},"Vessel"),e.createElementVNode("th",{class:"text-left"},"Class"),e.createElementVNode("th",{class:"text-right"},"Crew"),e.createElementVNode("th",{class:"text-right"},"Warp")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.ships,c=>(e.openBlock(),e.createElementBlock("tr",{key:c.name},[e.createElementVNode("td",U$,e.toDisplayString(c.name),1),e.createElementVNode("td",H$,e.toDisplayString(c.class),1),e.createElementVNode("td",G$,e.toDisplayString(c.crew),1),e.createElementVNode("td",W$,e.toDisplayString(c.warp.toFixed(1)),1)]))),128))])]),_:1})]),e.createElementVNode("div",J$,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Flat & Bordered",-1)),e.createVNode(r,{flat:"",bordered:""},{default:e.withCtx(()=>[t[2]||(t[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"text-left"},"System"),e.createElementVNode("th",{class:"text-right"},"Status")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.systems,c=>(e.openBlock(),e.createElementBlock("tr",{key:c.name},[e.createElementVNode("td",Y$,e.toDisplayString(c.name),1),e.createElementVNode("td",Z$,[e.createVNode(i,{color:c.color,label:c.status},null,8,["color","label"])])]))),128))])]),_:1})]),e.createElementVNode("div",K$,[t[5]||(t[5]=e.createElementVNode("span",{class:"jShowcase_title"},"Dense with Separator",-1)),e.createVNode(r,{dense:"",separator:"cell","wrap-cells":""},{default:e.withCtx(()=>[t[4]||(t[4]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"text-left"},"Stardate"),e.createElementVNode("th",{class:"text-left"},"Entry")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.logs,c=>(e.openBlock(),e.createElementBlock("tr",{key:c.date},[e.createElementVNode("td",X$,e.toDisplayString(c.date),1),e.createElementVNode("td",eR,e.toDisplayString(c.entry),1)]))),128))])]),_:1})])])}const oR=Object.freeze(Object.defineProperty({__proto__:null,default:j($$,[["render",tR],["__scopeId","data-v-369c6696"]])},Symbol.toStringTag,{value:"Module"})),nR={mixins:["composables/private.use-fullscreen/use-fullscreen"],meta:{docsUrl:"https://v2.quasar.dev/vue-components/table"},props:{rows:{type:"Array",desc:"Rows of data to display",required:!0,examples:['# :rows="myData"'],category:"general"},"row-key":{type:["String","Function"],desc:"Property of each row that defines the unique key of each row (the result must be a primitive, not Object, Array, etc); The value of property must be string or a function taking a row and returning the desired (nested) key in the row; If supplying a function then for best performance, reference it from your scope and do not define it inline",default:"'id'",params:{row:{type:"Object",desc:"The current row being processed",examples:["{ name: 'Lorem Ipsum', price: 19 }"]}},returns:{type:"Any",desc:"Current row's key",examples:["'34f39dda-6206-4071-a9df-4393aabe49ac'","34"]},examples:["'name'","row => row.name"],category:"general"},"virtual-scroll":{type:"Boolean",desc:"Display data using QVirtualScroll (for non-grid mode only)",category:"virtual-scroll"},"virtual-scroll-target":{extends:"scroll-target",passthrough:"child"},"virtual-scroll-slice-size":{type:["Number","String","null"],desc:"Minimum number of rows to render in the virtual list",default:"10",passthrough:"child",category:"virtual-scroll"},"virtual-scroll-slice-ratio-before":{type:["Number","String"],desc:"Ratio of number of rows in visible zone to render before it",default:"1",passthrough:"child",category:"virtual-scroll"},"virtual-scroll-slice-ratio-after":{type:["Number","String"],desc:"Ratio of number of rows in visible zone to render after it",default:"1",passthrough:"child",category:"virtual-scroll"},"virtual-scroll-item-size":{type:["Number","String"],desc:"Default size in pixels of a row; This value is used for rendering the initial table; Try to use a value close to the minimum size of a row; Default value: 48 (24 if dense)",default:"# 48/24",passthrough:"child",category:"virtual-scroll"},"virtual-scroll-sticky-size-start":{type:["Number","String"],desc:"Size in pixels of the sticky header (if using one); A correct value will improve scroll precision; Will be also used for non-virtual-scroll tables for fixing top alignment when using scrollTo method",default:"0",passthrough:"child",category:"virtual-scroll|behavior"},"virtual-scroll-sticky-size-end":{type:["Number","String"],desc:"Size in pixels of the sticky footer part (if using one); A correct value will improve scroll precision",default:"0",passthrough:"child",category:"virtual-scroll"},"table-colspan":{type:["Number","String"],desc:"The number of columns in the table (you need this if you use table-layout: fixed)",category:"virtual-scroll|content",passthrough:"child"},color:{extends:"color",default:"'grey-8'"},"icon-first-page":{extends:"icon",desc:"Icon name following Quasar convention for stepping to first page; Make sure you have the icon library installed unless you are using 'img:' prefix"},"icon-prev-page":{extends:"icon",desc:"Icon name following Quasar convention for stepping to previous page; Make sure you have the icon library installed unless you are using 'img:' prefix"},"icon-next-page":{extends:"icon",desc:"Icon name following Quasar convention for stepping to next page; Make sure you have the icon library installed unless you are using 'img:' prefix"},"icon-last-page":{extends:"icon",desc:"Icon name following Quasar convention for stepping to last page; Make sure you have the icon library installed unless you are using 'img:' prefix"},grid:{type:"Boolean",desc:"Display data as a grid instead of the default table",category:"behavior"},"grid-header":{type:"Boolean",desc:"Display header for grid-mode also",category:"behavior|content"},dense:{extends:"dense",desc:"Dense mode; Connect with $q.screen for responsive behavior"},columns:{type:"Array",desc:"The column definitions (Array of Objects)",examples:['# :columns="tableColumns"'],category:"column",definition:{name:{type:"String",required:!0,desc:"Unique id, identifies column, (used by pagination.sortBy, 'body-cell-[name]' slot, ...)",examples:["'desc'"]},label:{type:"String",required:!0,desc:"Label for header",examples:["'Dessert (100g serving)'"]},field:{type:["String","Function"],required:!0,desc:"Row Object property to determine value for this column or function which maps to the required property",params:{row:{type:"Object",required:!0,desc:"The current row being processed",examples:["{ name: 'Lorem Ipsum', prices: { active: 19, old: 25, list: 29 } }"]}},returns:{type:"Any",desc:"Value for this column",examples:["'19'","19"]},examples:["'name'","row => row.prices.active"]},required:{type:"Boolean",desc:"If we use visible-columns, this col will always be visible"},align:{type:"String",desc:"Horizontal alignment of cells in this column",values:["'left'","'right'","'center'"],default:"'right'"},sortable:{type:"Boolean",desc:"Tell QTable you want this column sortable",default:"false"},sort:{type:"Function",desc:"Compare function if you have some custom data or want a specific way to compare two rows; rows with null/undefined values will get sorted without triggering this method (use 'rawSort' instead if you want to handle those values too)",examples:["(a, b, _rowA, _rowB) => parseInt(a, 10) - parseInt(b, 10)"],params:{a:{type:"Any",required:!0,desc:"Value of the first comparison term",examples:["123","'abc'"]},b:{type:"Any",required:!0,desc:"Value of the second comparison term",examples:["123","'abc'"]},rowA:{type:"Object",required:!0,desc:"Full Row object in which is contained the first term",examples:["{ name: 'Potassium', value: 'K' }"]},rowB:{type:"Object",required:!0,desc:"Full Row object in which is contained the second term",examples:["{ name: 'Fluorine', value: 'F' }"]}},returns:{type:"Number",desc:"Comparison result of term 'a' with term 'b'. Less than 0 when 'a' should come first; greater than 0 if 'b' should come first; equal to 0 if their position must not be changed with respect to each other",examples:["-1","0","1"]}},rawSort:{type:"Function",desc:"Compare function if you have some custom data or want a specific way to compare two rows; includes rows with null/undefined values (use 'sort' instead if you don't want that)",examples:["(a, b, _rowA, _rowB) => parseInt(a, 10) - parseInt(b, 10)"],params:{a:{type:"Any",required:!0,desc:"Value of the first comparison term",examples:["123","'abc'"]},b:{type:"Any",required:!0,desc:"Value of the second comparison term",examples:["123","'abc'"]},rowA:{type:"Object",required:!0,desc:"Full Row object in which is contained the first term",examples:["{ name: 'Potassium', value: 'K' }"]},rowB:{type:"Object",required:!0,desc:"Full Row object in which is contained the second term",examples:["{ name: 'Fluorine', value: 'F' }"]}},returns:{type:"Number",desc:"Comparison result of term 'a' with term 'b'. Less than 0 when 'a' should come first; greater than 0 if 'b' should come first; equal to 0 if their position must not be changed with respect to each other",examples:["-1","0","1"]},addedIn:"v2.13"},sortOrder:{type:"String",desc:"Set column sort order: 'ad' (ascending-descending) or 'da' (descending-ascending); Overrides the 'column-sort-order' prop",values:["'ad'","'da'"],default:"'ad'"},format:{type:"Function",desc:"Function you can apply to format your data",examples:["(val, _row) => `${ val }%`","val => val ? /* Unicode checkmark checked */ '☑' : /* Unicode checkmark unchecked */ '☐'"],params:{val:{type:"Any",required:!0,desc:"Value of the cell",examples:["123","'abc'"]},row:{type:"Object",required:!0,desc:"Full Row object in which the cell is contained",examples:["{ name: 'Potassium', value: 'K' }"]}},returns:{type:"Any",desc:"The resulting formatted value",examples:["'20%'"]}},style:{type:["String","Function"],desc:"Style to apply on normal cells of the column",params:{row:{type:"Object",required:!0,desc:"The current row being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",__exemption:["desc"]},examples:["'width: 500px'","row => (row.calories % 2 === 0 ? 'width: 10px' : 'font-size: 2em; font-weight: bold')"]},classes:{type:["String","Function"],desc:"Classes to add on normal cells of the column",params:{row:{type:"Object",required:!0,desc:"The current row being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",__exemption:["desc"]},examples:["'my-special-class bg-primary'","row => (row.calories % 2 === 0 ? 'bg-green text-white' : 'bg-yellow')"]},headerStyle:{type:"String",desc:"Style to apply on header cells of the column",examples:["'width: 500px'"]},headerClasses:{type:"String",desc:"Classes to add on header cells of the column",examples:["'my-special-class'"]}}},"visible-columns":{type:"Array",desc:"Array of Strings defining column names ('name' property of each column from 'columns' prop definitions); Columns marked as 'required' are not affected by this property",examples:["['desc', 'carbs', 'protein']",'# :visible-columns="myCols"'],category:"column"},loading:{type:"Boolean",desc:"Put Table into 'loading' state; Notify the user something is happening behind the scenes",category:"behavior|content"},title:{type:"String",desc:"Table title",examples:["'Device list'"],category:"content"},"hide-header":{type:"Boolean",desc:"Hide table header layer",category:"content"},"hide-bottom":{type:"Boolean",desc:"Hide table bottom layer regardless of what it has to display",category:"content"},"hide-selected-banner":{type:"Boolean",desc:"Hide the selected rows banner (if any)",category:"content"},"hide-no-data":{type:"Boolean",desc:"Hide the default no data bottom layer",category:"content"},"hide-pagination":{type:"Boolean",desc:"Hide the pagination controls at the bottom",category:"content"},dark:{extends:"dark"},flat:{extends:"flat"},bordered:{extends:"bordered"},square:{extends:"square"},separator:{type:"String",desc:"Use a separator/border between rows, columns or all cells",default:"'horizontal'",values:["'horizontal'","'vertical'","'cell'","'none'"],category:"content"},"wrap-cells":{type:"Boolean",desc:"Wrap text within table cells",category:"content"},"binary-state-sort":{type:"Boolean",desc:"Skip the third state (unsorted) when user toggles column sort direction",category:"sorting"},"column-sort-order":{type:"String",desc:"Set column sort order: 'ad' (ascending-descending) or 'da' (descending-ascending); It gets applied to all columns unless a column has its own sortOrder specified in the 'columns' definition prop",values:["'ad'","'da'"],default:"'ad'",category:"sorting"},"no-data-label":{type:"String",desc:"Override default text to display when no data is available",examples:["'No devices available'"],category:"content"},"no-results-label":{type:"String",desc:"Override default text to display when user filters the table and no matched results are found",examples:["'No matched records'"],category:"content"},"loading-label":{type:"String",desc:"Override default text to display when table is in loading state (see 'loading' prop)",examples:["'Loading devices...'"],category:"content"},"selected-rows-label":{type:"Function",desc:"Text to display when user selected at least one row; For best performance, reference it from your scope and do not define it inline",params:{numberOfRows:{type:"Number",desc:"Number of rows available"}},returns:{type:"String",desc:"Label to display",examples:["'5 rows are selected'"]},examples:["(numberOfRows) => `Selected: ${ numberOfRows } entries`"],category:"selection"},"rows-per-page-label":{type:"String",desc:"Text to override default rows per page label at bottom of table",examples:["'Records per page:'"],category:"pagination"},"pagination-label":{type:"Function",desc:"Text to override default pagination label at bottom of table (unless 'pagination' scoped slot is used); For best performance, reference it from your scope and do not define it inline",params:{firstRowIndex:{type:"Number",desc:"Index of first displayed row"},endRowIndex:{type:"Number",desc:"Index of last displayed row"},totalRowsNumber:{type:"Number",desc:"Number of total rows available in data"}},returns:{type:"String",desc:"Label to display",examples:["'1-10 of 132'"]},examples:["(start, end, total) => `${ start }-${ end } of ${ total }`"],category:"pagination"},"table-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"CSS style to apply to native HTML <table> element's wrapper (which is a DIV)",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"table-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to native HTML <table> element's wrapper (which is a DIV)",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"table-header-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"CSS style to apply to header of native HTML <table> (which is a TR)",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"table-header-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to header of native HTML <table> (which is a TR)",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"table-row-style-fn":{type:"Function",desc:"CSS style to apply to the table rows (which are TR elements); For best performance, reference it from your scope and do not define it inline",params:{row:{type:"Object",desc:"The current row being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",desc:"CSS style to apply to the row",examples:["'color: blue'","'background-color: #ff0000; color: green'"]},category:"style",addedIn:"v2.18"},"table-row-class-fn":{type:"Function",desc:"CSS class(es) to apply the table rows (which are TR elements); For best performance, reference it from your scope and do not define it inline",params:{row:{type:"Object",desc:"The current row being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",desc:"CSS class(es) to apply to the row, space separated",examples:["'my-special-class'","'my-class my-second-class'"]},category:"style",addedIn:"v2.18"},"card-container-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"CSS style to apply to the cards container (when in grid mode)",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"card-container-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to the cards container (when in grid mode)",examples:["'my-special-class'","'justify-center'","{ 'my-special-class': true }"],category:"style"},"card-style":{type:["String","Array","Object"],tsType:"VueStyleProp",desc:"CSS style to apply to the card (when in grid mode) or container card (when not in grid mode)",examples:["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],category:"style"},"card-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to the card (when in grid mode) or container card (when not in grid mode)",examples:["'my-special-class'","{ 'my-special-class': true }"],category:"style"},"card-style-fn":{type:"Function",desc:"(Grid mode only) CSS style to apply to the row/record card; Has no effect when the 'item' slot is used; For best performance, reference it from your scope and do not define it inline",params:{row:{type:"Object",desc:"The current row/record being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",desc:"CSS style to apply to the row/record",examples:["'color: blue'","'background-color: #ff0000; color: green'"]},category:"style",addedIn:"v2.18"},"card-class-fn":{type:"Function",desc:"(Grid mode only) CSS class(es) to apply the row/record card; Has no effect when the 'item' slot is used; For best performance, reference it from your scope and do not define it inline",params:{row:{type:"Object",desc:"The current row/record being processed",examples:["{ name: 'Frozen Yogurt', calories: 159 }"]}},returns:{type:"String",desc:"CSS class(es) to apply to the row, space separated",examples:["'my-special-class'","'my-class my-second-class'"]},category:"style",addedIn:"v2.18"},"title-class":{type:["String","Array","Object"],tsType:"VueClassProp",desc:"CSS classes to apply to the title (if using 'title' prop)",examples:["'my-special-class'","'text-h1'","{ 'text-h1': true }"],category:"style"},filter:{type:["String","Object"],desc:"String/Object to filter table with; When using an Object it requires 'filter-method' to also be specified since it will be a custom filtering",examples:["'car'"],category:"filter"},"filter-method":{type:"Function",desc:"The actual filtering mechanism; For best performance, reference it from your scope and do not define it inline",params:{rows:{type:"Array",desc:"Array of rows"},terms:{type:["String","Object"],desc:"Terms to filter with (is essentially the 'filter' prop value)"},cols:{type:"Array",desc:"Column definitions"},getCellValue:{type:"Function",desc:"Optional function to get a cell value",params:{col:{type:"Object",required:!0,desc:"Column name from column definitions"},row:{type:"Object",required:!0,desc:"The row object"}},returns:{type:"Any",desc:"Parsed/Processed cell value",examples:["'Ice Cream Sandwich'"]}}},returns:{type:"Array",desc:"Filtered rows"},examples:["# see source code"],category:"filter"},pagination:{type:"Object",desc:"Pagination object; You can also use the 'v-model:pagination' for synching; When not synching it simply initializes the pagination on first render",definition:{sortBy:{type:["String","null"],desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",desc:"Is sorting in descending order?"},page:{type:"Number",desc:"Page number (1-based)"},rowsPerPage:{type:"Number",desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",desc:"For server-side fetching only. How many total database rows are there to be added to the table. If set, causes the QTable to emit @request when data is required."}},syncable:!0,examples:['# :pagination="myInitialPagination"','# v-model:pagination="myPagination"'],category:"pagination"},"rows-per-page-options":{type:"Array",desc:"Options for user to pick (Numbers); Number 0 means 'Show all rows in one page'",default:"[5, 7, 10, 15, 20, 25, 50, 0]",examples:["[10, 20]"],category:"pagination"},selection:{type:"String",desc:"Selection type",default:"'none'",values:["'single'","'multiple'","'none'"],category:"selection"},selected:{type:"Array",desc:"Keeps the user selection array",default:"[]",syncable:!0,examples:['# v-model:selected="selection"'],category:"selection"},expanded:{type:"Array",desc:"Keeps the array with expanded rows keys",syncable:!0,examples:['# v-model:expanded="expanded"'],category:"expansion"},"sort-method":{type:"Function",desc:"The actual sort mechanism. Function (rows, sortBy, descending) => sorted rows; For best performance, reference it from your scope and do not define it inline",params:{rows:{type:"Array",desc:"Array with rows"},sortBy:{type:"String",desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",desc:"Is sorting in descending order?"}},returns:{type:"Array",desc:"Sorted rows"},examples:["# see source code"],category:"sorting"}},slots:{loading:{desc:"Override default effect when table is in loading state; Suggestion: QInnerLoading"},item:{desc:"Slot to use for defining an item when in 'grid' mode; Suggestion: QCard",scope:{key:{type:"Any",desc:"Row/Item's key"},row:{type:"Object",desc:"Row/Item object"},rowIndex:{type:"Number",desc:"Row/Item's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row/Item's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row/item selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row/item expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},body:{desc:"Slot to define how a body row looks like; Suggestion: QTr + Td",scope:{key:{type:"Any",desc:"Row's key"},row:{type:"Object",desc:"Row object"},rowIndex:{type:"Number",desc:"Row's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"},__trClass:{type:"String",desc:"Internal prop passed down to QTr (if used)"},__trStyle:{type:"String",required:!1,desc:"Internal prop passed down to QTr (if used)",addedIn:"v2.18"}}},"body-cell":{desc:"Slot to define how all body cells look like; Suggestion: QTd",scope:{col:{type:"Object",desc:"Column definition for column associated with table cell"},value:{type:"Any",desc:"Parsed/Formatted value of table cell"},key:{type:"Any",desc:"Row's key"},row:{type:"Object",desc:"Row object"},rowIndex:{type:"Number",desc:"Row's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"body-cell-[name]":{desc:"Slot to define how a specific column cell looks like; replace '[name]' with column name (from columns definition object)",scope:{col:{type:"Object",desc:"Column definition for column associated with table cell"},value:{type:"Any",desc:"Parsed/Formatted value of table cell"},key:{type:"Any",desc:"Row's key"},row:{type:"Object",desc:"Row object"},rowIndex:{type:"Number",desc:"Row's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},header:{desc:"Slot to define how header looks like; Suggestion: QTr + QTh",scope:{cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"},__trClass:{type:"String",desc:"Internal prop passed down to QTr (if used)"},header:{type:"Boolean",desc:"Internal prop passed down to QTh (if used); Always 'true'"}}},"header-cell":{desc:"Slot to define how each header cell looks like; Suggestion: QTh",scope:{col:{type:"Object",desc:"Column definition associated to header cell"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"header-cell-[name]":{desc:"Slot to define how a specific header cell looks like; replace '[name]' with column name (from columns definition object)",scope:{col:{type:"Object",desc:"Column definition associated to header cell"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"body-selection":{desc:"Slot to define how body selection column looks like; Suggestion: QCheckbox",scope:{key:{type:"Any",desc:"Row's key"},row:{type:"Object",desc:"Row object"},rowIndex:{type:"Number",desc:"Row's index (0 based) in the filtered and sorted table"},pageIndex:{type:"Number",desc:"Row's index (0 based) in the current page of the filtered and sorted table"},cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"header-selection":{desc:"Slot to define how header selection column looks like (available only for multiple selection mode); Suggestion: QCheckbox",scope:{cols:{type:"Object",desc:"Column definitions"},colsMap:{type:"Object",desc:"Column mapping (key is column name, value is column object)"},sort:{type:"Function",desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},selected:{type:"Boolean",desc:"(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state",reactive:!0},expand:{type:"Boolean",desc:"Is row expanded? Can directly be assigned new Boolean value which changes expanded state",reactive:!0},color:{extends:"color"},dark:{extends:"dark"},dense:{extends:"dense"}}},"top-row":{desc:"Slot to define how top extra row looks like",scope:{cols:{type:"Object",desc:"Column definitions"}}},"bottom-row":{desc:"Slot to define how bottom extra row looks like",scope:{cols:{type:"Object",desc:"Column definitions"}}},top:{desc:"Slot to define how table top looks like",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},bottom:{desc:"Slot to define how table bottom looks like",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},pagination:{desc:"Slot to override default pagination label and buttons",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},"top-left":{desc:"Slot to define how left part of the table top looks like",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},"top-right":{desc:"Slot to define how right part of the table top looks like",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},"top-selection":{desc:"Slot to define how top table section looks like when user has selected at least one row",scope:{pagination:{type:"Object",desc:"Pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},pagesNumber:{type:"Number",desc:"Number of pages available"},isFirstPage:{type:"Boolean",desc:"Are we on first page?"},isLastPage:{type:"Boolean",desc:"Are we on last page?"},firstPage:{type:"Function",desc:"Navigates to first page",params:null,returns:null},prevPage:{type:"Function",desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{type:"Function",desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{type:"Function",desc:"Navigates to last page",params:null,returns:null},inFullscreen:{type:"Boolean",desc:"Is table in fullscreen mode?"},toggleFullscreen:{type:"Function",desc:"Toggles fullscreen mode",params:null,returns:null}}},"no-data":{desc:"Slot to define how the bottom will look like when is nothing to display",scope:{message:{type:"String",desc:"The suggested message",examples:["'No data available'"]},icon:{type:"String",desc:"The suggested icon name (following Quasar convention)",examples:["'warning'"]},filter:{type:["String","Object"],desc:"String/Object to filter table with (the 'filter' prop)"}}}},events:{"row-click":{desc:"Emitted when user clicks/taps on a row; Is not emitted when using body/row/item scoped slots",params:{evt:{extends:"evt"},row:{type:"Object",desc:"The row upon which user has clicked/tapped"},index:{type:"Number",desc:"Index of the row in the current page"}}},"row-dblclick":{desc:"Emitted when user quickly double clicks/taps on a row; Is not emitted when using body/row/item scoped slots; Please check JS dblclick event support before using",params:{evt:{extends:"evt"},row:{type:"Object",desc:"The row upon which user has double clicked/tapped"},index:{type:"Number",desc:"Index of the row in the current page"}}},"row-contextmenu":{desc:"Emitted when user right clicks/long taps on a row; Is not emitted when using body/row/item scoped slots",params:{evt:{extends:"evt"},row:{type:"Object",desc:"The row upon which user has right clicked/long tapped"},index:{type:"Number",desc:"Index of the row in the current page"}}},request:{desc:"Emitted when a server request is triggered",params:{requestProp:{type:"Object",desc:"Props of the request",definition:{pagination:{type:"Object",required:!0,desc:"Pagination object",definition:{sortBy:{type:"String",required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},filter:{type:["String","Object"],desc:"String/Object to filter table with (the 'filter' prop)"},getCellValue:{type:"Function",required:!0,desc:"Function to get a cell value",params:{col:{type:"Object",required:!0,desc:"Column name from column definitions"},row:{type:"Object",required:!0,desc:"The row object"}},returns:{type:"Any",desc:"Parsed/Processed cell value",examples:["'Ice Cream Sandwich'"]}}}}}},selection:{desc:"Emitted when user selects/unselects row(s)",params:{details:{type:"Object",desc:"Selection details",definition:{rows:{type:"Array",required:!0,desc:"Array of row objects that were selected/unselected"},keys:{type:"Array",required:!0,desc:"Array of the keys of rows that were selected/unselected"},added:{type:"Boolean",required:!0,desc:"Were the rows added to selection (true) or removed from selection (false)"},evt:{extends:"evt",required:!0}}}}},"update:pagination":{desc:"Used by Vue on 'v-model:pagination' for updating its value",params:{newPagination:{type:"Object",desc:"The updated pagination object",definition:{sortBy:{type:["String","null"],required:!0,desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",required:!0,desc:"Is sorting in descending order?"},page:{type:"Number",required:!0,desc:"Page number (1-based)"},rowsPerPage:{type:"Number",required:!0,desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}}}},"update:selected":{desc:"Used by Vue on 'v-model:selected' prop for updating its value",params:{newSelected:{type:"Array",desc:"The updated selected array",examples:["[{ name: 'Frozen Yogurt', calories: 159, fat: 6 }]"]}}},"update:expanded":{desc:"Used by Vue on 'v-model:expanded' prop for updating its value",params:{newExpanded:{type:"Array",desc:"The updated expanded array",examples:["['row-a', 'row-b']"]}}},"virtual-scroll":{desc:"Emitted when the virtual scroll occurs, if using virtual scroll",params:{details:{type:"Object",desc:"Object of properties on the new scroll position",definition:{index:{type:"Number",required:!0,desc:"Index of the list item that was scrolled into view (0 based)"},from:{type:"Number",required:!0,desc:"The index of the first list item that is rendered (0 based)"},to:{type:"Number",required:!0,desc:"The index of the last list item that is rendered (0 based)"},direction:{type:"String",required:!0,desc:"Direction of change",values:["'increase'","'decrease'"]},ref:{type:"Component",required:!0,desc:"Vue reference to the underlying QVirtualScroll instance"}}}}}},methods:{requestServerInteraction:{desc:"Trigger a server request (emits 'request' event)",params:{props:{type:"Object",required:!1,desc:"Request details",definition:{pagination:{type:"Object",required:!1,desc:"Optional pagination object",definition:{sortBy:{type:"String",desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",desc:"Is sorting in descending order?"},page:{type:"Number",desc:"Page number (1-based)"},rowsPerPage:{type:"Number",desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},filter:{type:"Function",desc:"Filtering method (the 'filter-method' prop)",params:{rows:{type:"Array",required:!0,desc:"Array of rows"},terms:{type:["String","Object"],required:!0,desc:"Terms to filter with (is essentially the 'filter' prop value)"},cols:{type:"Array",desc:"Optional column definitions"},getCellValue:{type:"Function",desc:"Optional function to get a cell value",params:{col:{type:"Object",desc:"Column name from column definitions"},row:{type:"Object",desc:"The row object"}},returns:{type:"Any",desc:"Parsed/Processed cell value",examples:["'Ice Cream Sandwich'"]}}},returns:{type:"Array",desc:"Filtered rows"}}}}},returns:null},setPagination:{desc:"Unless using an external pagination Object (through 'v-model:pagination' prop), you can use this method and force the internal pagination to change",params:{pagination:{type:"Object",required:!0,desc:"Pagination object",definition:{sortBy:{type:["String","null"],desc:"Column name (from column definition)",examples:["'calories'"]},descending:{type:"Boolean",desc:"Is sorting in descending order?"},page:{type:"Number",desc:"Page number (1-based)"},rowsPerPage:{type:"Number",desc:"How many rows per page? 0 means Infinite"},rowsNumber:{type:"Number",required:!1,desc:"For server-side fetching only. How many total database rows are there to be added to the table."}}},forceServerRequest:{type:"Boolean",desc:"Also force a server request"}},returns:null},firstPage:{desc:"Navigates to first page",params:null,returns:null},prevPage:{desc:"Navigates to previous page, if available",params:null,returns:null},nextPage:{desc:"Navigates to next page, if available",params:null,returns:null},lastPage:{desc:"Navigates to last page",params:null,returns:null},isRowSelected:{desc:"Determine if a row has been selected by user",params:{key:{type:"Any",required:!0,desc:"Row key value",examples:["'calories'"]}},returns:{type:"Boolean",desc:"Is row selected or not?"}},clearSelection:{desc:"Clears user selection (emits 'update:selected' with empty array)",params:null,returns:null},isRowExpanded:{desc:"Determine if a row is expanded or not",params:{key:{type:"Any",required:!0,desc:"Row key value",examples:["'calories'"]}},returns:{type:"Boolean",desc:"Is row expanded or not?"}},setExpanded:{desc:"Sets the expanded rows keys array; Especially useful if not using an external 'expanded' state otherwise just emits 'update:expanded' with the value",params:{expanded:{type:"Array",required:!0,desc:"Array containing keys of the expanded rows",examples:["['row-a', 'row-b']"]}},returns:null},sort:{desc:"Trigger a table sort",params:{col:{type:["String","Object"],required:!0,desc:"Column name or column definition object",examples:["'calories'"]}},returns:null},toggleFullscreen:{desc:"Toggles fullscreen mode",params:null,returns:null},resetVirtualScroll:{desc:"Resets the virtual scroll (if using it) computations; Needed for custom edge-cases",params:null,returns:null},scrollTo:{desc:"Scroll the table to the row with the specified index in page (0 based)",params:{index:{type:["Number","String"],required:!0,desc:"The index of the row in page (0 based)"},edge:{type:"String",desc:"Only for virtual scroll - the edge to align to if the row is not visible already; If the '-force' version is used then it always aligns; Default value: end (if scrolling towards the end) / start (if scrolling towards the start)",values:["'start'","'center'","'end'","'start-force'","'center-force'","'end-force'"],default:"# end/start"}},returns:null}},computedProps:{filteredSortedRows:{desc:"The filtered and sorted rows (same as the rows prop if using server-side fetching)",type:"Array",examples:["[{ name: 'Ice Cream Sandwich', calories: 237, fat: 9.0, carbs: 37, protein: 4.3, sodium: 129, calcium: 8, iron: 1 }, ...]"]},computedRows:{desc:"Paginated, filtered, and sorted rows (same as the rows prop if using server-side fetching)",type:"Array",examples:["[{ name: 'Ice Cream Sandwich', calories: 237, fat: 9.0, carbs: 37, protein: 4.3, sodium: 129, calcium: 8, iron: 1 }, ...]"]},computedRowsNumber:{type:"Number",desc:"The number of computed rows"}}},aR={name:"ShowcaseTable",components:{QTable:V.QTable,QTd:V.QTd,QBadge:V.QBadge,QInput:V.QInput,QIcon:V.QIcon},label:"Table",icon:"grid_on",apiJson:nR,importName:"QTable",importFrom:"quasar",data(){return{filter:"",selected:[],shipColumns:[{name:"name",label:"Vessel",field:"name",align:"left",sortable:!0},{name:"class",label:"Class",field:"class",align:"left",sortable:!0},{name:"crew",label:"Crew",field:"crew",align:"right",sortable:!0},{name:"warp",label:"Warp",field:"warp",align:"right",sortable:!0,format:o=>o.toFixed(1)}],ships:[{name:"USS Endeavor",class:"Explorer",crew:430,warp:9.2},{name:"USS Valkyrie",class:"Combat",crew:260,warp:9.6},{name:"USS Pioneer",class:"Science",crew:180,warp:8.4},{name:"USS Horizon",class:"Medical",crew:310,warp:7.8},{name:"USS Odyssey",class:"Explorer",crew:510,warp:9.4}],systemColumns:[{name:"name",label:"System",field:"name",align:"left",sortable:!0},{name:"deck",label:"Deck",field:"deck",align:"right",sortable:!0},{name:"status",label:"Status",field:"status",align:"right"}],systems:[{name:"Warp Core",deck:12,status:"ONLINE",color:"positive"},{name:"Shields",deck:5,status:"CHARGING",color:"warning"},{name:"Life Support",deck:3,status:"NOMINAL",color:"positive"},{name:"Cloaking Device",deck:8,status:"OFFLINE",color:"negative"},{name:"Phaser Array",deck:2,status:"ONLINE",color:"positive"},{name:"Tractor Beam",deck:6,status:"STANDBY",color:"info"}]}}},rR={class:"jShowcase_row jShowcase_column showcaseTable"},sR={class:"jShowcase_group"},iR={class:"jShowcase_group"},lR={class:"text-caption text-muted q-mt-sm"},cR={class:"jShowcase_group"};function dR(o,t,a,l,n,s){const r=e.resolveComponent("QTable"),i=e.resolveComponent("QIcon"),c=e.resolveComponent("QInput"),m=e.resolveComponent("QBadge"),d=e.resolveComponent("QTd");return e.openBlock(),e.createElementBlock("div",rR,[t[5]||(t[5]=e.createElementVNode("div",{class:"jShowcase_info"},[e.createElementVNode("p",null,[e.createElementVNode("strong",null,"QTable"),e.createTextVNode(" is a full-featured data grid — sorting, filtering, pagination, row selection, expandable rows, sticky headers, server-side data, virtual scrolling, and more. The examples below cover only a small slice of its surface area.")]),e.createElementVNode("p",null,[e.createTextVNode("The full prop, slot, and event reference is in the API section below. For more samples and ideas, check the "),e.createElementVNode("a",{href:"https://quasar.dev/vue-components/table",target:"_blank",rel:"noopener"},"official Quasar documentation"),e.createTextVNode(".")])],-1)),e.createElementVNode("div",sR,[t[2]||(t[2]=e.createElementVNode("span",{class:"jShowcase_title"},"Basic",-1)),e.createVNode(r,{rows:n.ships,columns:n.shipColumns,"row-key":"name",flat:"",bordered:""},null,8,["rows","columns"])]),e.createElementVNode("div",iR,[t[3]||(t[3]=e.createElementVNode("span",{class:"jShowcase_title"},"Selectable & Dense",-1)),e.createVNode(r,{selected:n.selected,"onUpdate:selected":t[0]||(t[0]=u=>n.selected=u),rows:n.ships,columns:n.shipColumns,"row-key":"name",selection:"multiple",dense:"",flat:"",bordered:""},null,8,["selected","rows","columns"]),e.createElementVNode("div",lR," Selected: "+e.toDisplayString(n.selected.length),1)]),e.createElementVNode("div",cR,[t[4]||(t[4]=e.createElementVNode("span",{class:"jShowcase_title"},"With Search & Status Cell",-1)),e.createVNode(r,{rows:n.systems,columns:n.systemColumns,filter:n.filter,"row-key":"name",pagination:{rowsPerPage:3},flat:"",bordered:""},{"top-right":e.withCtx(()=>[e.createVNode(c,{modelValue:n.filter,"onUpdate:modelValue":t[1]||(t[1]=u=>n.filter=u),dense:"",outlined:"",debounce:"200",placeholder:"Search"},{append:e.withCtx(()=>[e.createVNode(i,{name:"search"})]),_:1},8,["modelValue"])]),"body-cell-status":e.withCtx(u=>[e.createVNode(d,{props:u},{default:e.withCtx(()=>[e.createVNode(m,{color:u.row.color,label:u.row.status},null,8,["color","label"])]),_:2},1032,["props"])]),_:1},8,["rows","columns","filter"])])])}const pR=Object.freeze(Object.defineProperty({__proto__:null,default:j(aR,[["render",dR],["__scopeId","data-v-28c85770"]])},Symbol.toStringTag,{value:"Module"})),mR=`<template>
|
|
398
398
|
<div class="colorSections">
|
|
399
399
|
<div v-for="group in groups" :key="group.label" class="colorGroup">
|
|
400
400
|
<div class="colorGroupLabel">{{ group.label }}</div>
|
|
@@ -1599,14 +1599,14 @@ export default {
|
|
|
1599
1599
|
<QBtnToggle
|
|
1600
1600
|
v-model="toggleValue"
|
|
1601
1601
|
label="Toggle me"
|
|
1602
|
-
toggle-color="
|
|
1603
|
-
color="
|
|
1604
|
-
text-color="
|
|
1602
|
+
toggle-color="accent"
|
|
1603
|
+
color="primary"
|
|
1604
|
+
text-color="primary"
|
|
1605
1605
|
outline
|
|
1606
1606
|
:options="[
|
|
1607
|
-
{ label: 'One', value: 'one' },
|
|
1608
|
-
{ label: 'Two', value: 'two' },
|
|
1609
|
-
{ label: 'Three', value: 'three' }
|
|
1607
|
+
{ label: 'One', value: 'one', icon: (toggleValue == 'one' ? 'check_circle' : undefined) },
|
|
1608
|
+
{ label: 'Two', value: 'two', icon: (toggleValue == 'two' ? 'check_circle' : undefined) },
|
|
1609
|
+
{ label: 'Three', value: 'three', icon: (toggleValue == 'three' ? 'check_circle' : undefined) }
|
|
1610
1610
|
]"
|
|
1611
1611
|
/>
|
|
1612
1612
|
</div>
|