bootstrap-vue-next 0.28.0 → 0.28.1

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.
Files changed (49) hide show
  1. package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-JFPJBuuf.js → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-_SAAd6bt.js} +2 -2
  2. package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-JFPJBuuf.js.map → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-_SAAd6bt.js.map} +1 -1
  3. package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-Do7WryrT.mjs → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-d--CP48D.mjs} +2 -2
  4. package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-Do7WryrT.mjs.map → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-d--CP48D.mjs.map} +1 -1
  5. package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-B5oyJ-Kq.js → BFormRadioGroup.vue_vue_type_script_setup_true_lang-9APXUQju.js} +2 -2
  6. package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-B5oyJ-Kq.js.map → BFormRadioGroup.vue_vue_type_script_setup_true_lang-9APXUQju.js.map} +1 -1
  7. package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang--UYbn-2B.mjs → BFormRadioGroup.vue_vue_type_script_setup_true_lang-DZSUruyu.mjs} +2 -2
  8. package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang--UYbn-2B.mjs.map → BFormRadioGroup.vue_vue_type_script_setup_true_lang-DZSUruyu.mjs.map} +1 -1
  9. package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-CwsLFqd0.mjs → BModalOrchestrator.vue_vue_type_script_setup_true_lang-B7a7Jf08.mjs} +2 -2
  10. package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-CwsLFqd0.mjs.map → BModalOrchestrator.vue_vue_type_script_setup_true_lang-B7a7Jf08.mjs.map} +1 -1
  11. package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-C5y83H7o.js → BModalOrchestrator.vue_vue_type_script_setup_true_lang-C3UupCiB.js} +2 -2
  12. package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-C5y83H7o.js.map → BModalOrchestrator.vue_vue_type_script_setup_true_lang-C3UupCiB.js.map} +1 -1
  13. package/dist/{BOffcanvas-BEhqT7oK.mjs → BOffcanvas-DCVqsI1a.mjs} +2 -2
  14. package/dist/{BOffcanvas-BEhqT7oK.mjs.map → BOffcanvas-DCVqsI1a.mjs.map} +1 -1
  15. package/dist/{BOffcanvas-Dq7hMYHy.js → BOffcanvas-DTJoDa-n.js} +2 -2
  16. package/dist/{BOffcanvas-Dq7hMYHy.js.map → BOffcanvas-DTJoDa-n.js.map} +1 -1
  17. package/dist/{BTable.vue_vue_type_script_setup_true_lang-CudEhMDM.mjs → BTable.vue_vue_type_script_setup_true_lang-B5ObxOYB.mjs} +5 -5
  18. package/dist/BTable.vue_vue_type_script_setup_true_lang-B5ObxOYB.mjs.map +1 -0
  19. package/dist/BTable.vue_vue_type_script_setup_true_lang-BvjRjxLo.js +2 -0
  20. package/dist/BTable.vue_vue_type_script_setup_true_lang-BvjRjxLo.js.map +1 -0
  21. package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH.mjs.map +1 -1
  22. package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-boY-5Yv0.js.map +1 -1
  23. package/dist/bootstrap-vue-next.mjs +6 -6
  24. package/dist/bootstrap-vue-next.umd.js +1 -1
  25. package/dist/{index-BfqArYKd.mjs → index-BpSp8iRh.mjs} +6 -6
  26. package/dist/{index-BfqArYKd.mjs.map → index-BpSp8iRh.mjs.map} +1 -1
  27. package/dist/{index-szaixKf8.js → index-CK6JfYqX.js} +2 -2
  28. package/dist/index-CK6JfYqX.js.map +1 -0
  29. package/dist/src/components/BFormCheckbox/index.mjs +1 -1
  30. package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
  31. package/dist/src/components/BFormRadio/index.mjs +1 -1
  32. package/dist/src/components/BFormRadio/index.umd.js +1 -1
  33. package/dist/src/components/BModal/index.mjs +1 -1
  34. package/dist/src/components/BModal/index.umd.js +1 -1
  35. package/dist/src/components/BOffcanvas/index.mjs +1 -1
  36. package/dist/src/components/BOffcanvas/index.umd.js +1 -1
  37. package/dist/src/components/BTable/index.mjs +1 -1
  38. package/dist/src/components/BTable/index.umd.js +1 -1
  39. package/dist/src/components/index.mjs +5 -5
  40. package/dist/src/components/index.umd.js +1 -1
  41. package/dist/{useSafeScrollLock-DjG0jeMK.mjs → useSafeScrollLock-AzNp4AUZ.mjs} +6 -5
  42. package/dist/{useSafeScrollLock-DjG0jeMK.mjs.map → useSafeScrollLock-AzNp4AUZ.mjs.map} +1 -1
  43. package/dist/{useSafeScrollLock-BW4wrAZc.js → useSafeScrollLock-C0Gbaxat.js} +2 -2
  44. package/dist/{useSafeScrollLock-BW4wrAZc.js.map → useSafeScrollLock-C0Gbaxat.js.map} +1 -1
  45. package/package.json +1 -1
  46. package/dist/BTable.vue_vue_type_script_setup_true_lang-CO-_6Wrs.js +0 -2
  47. package/dist/BTable.vue_vue_type_script_setup_true_lang-CO-_6Wrs.js.map +0 -1
  48. package/dist/BTable.vue_vue_type_script_setup_true_lang-CudEhMDM.mjs.map +0 -1
  49. package/dist/index-szaixKf8.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("vue"),t=require("./index-CNL2tI0w.js"),l=require("./useFormCheck-DLmeXWHw.js"),a=require("./keys-C2BcfuxJ.js"),u=require("./ConditionalWrapper.vue_vue_type_script_lang-Du33jXia.js"),o=require("./dom-Dzr6gmPm.js"),r=require("./useDefaults-Bq2idhQU.js"),d=require("./useId-BOa4n5pr.js"),n=["id","disabled","required","name","form","aria-label","aria-labelledby","aria-required","value","true-value","false-value","indeterminate"],i=["for"],s=e.defineComponent({inheritAttrs:!1,__name:"BFormCheckbox",props:e.mergeModels({ariaLabel:{default:void 0},ariaLabelledby:{default:void 0},autofocus:{type:Boolean,default:!1},button:{type:Boolean,default:!1},buttonGroup:{type:Boolean,default:!1},buttonVariant:{default:null},disabled:{type:Boolean,default:!1},form:{default:void 0},id:{default:void 0},inline:{type:Boolean,default:!1},name:{default:void 0},plain:{type:Boolean,default:!1},required:{type:Boolean,default:void 0},reverse:{type:Boolean,default:!1},size:{default:void 0},state:{type:[Boolean,null],default:null},switch:{type:Boolean,default:!1},uncheckedValue:{type:[Array,Set,String,Boolean,Object,Number,null],default:!1},wrapperAttrs:{default:void 0},inputClass:{default:void 0},value:{type:[String,Boolean,Array,Set,Object,Number,null],default:!0}},{modelValue:{type:[Array,Set,String,Boolean,Object,Number,null],default:void 0},modelModifiers:{},indeterminate:{type:Boolean,default:!1},indeterminateModifiers:{}}),emits:["update:modelValue","update:indeterminate"],setup(s,{expose:f}){const p=e.useAttrs(),v=e.computed((()=>{const{class:e,...t}=p;return{wrapperClass:e,inputAttrs:t}})),c=s,m=r.useDefaults(c,"BFormCheckbox"),b=e.useSlots(),y=e.useModel(s,"modelValue"),B=e.useModel(s,"indeterminate"),k=d.useId((()=>m.id),"form-check"),h=e.inject(a.checkboxGroupKey,null),x=e.useTemplateRef("_input"),{focused:g}=t.useFocus(x,{initialValue:m.autofocus}),V=e.computed((()=>!o.isEmptySlot(b.default))),_=e.computed({get:()=>h?h.modelValue.value:y.value,set:e=>{void 0!==e&&(B.value=!1,null!==h&&Array.isArray(e)?h.modelValue.value=e:y.value=e)}}),C=e.computed((()=>!!(m.name??(null==h?void 0:h.name.value))&&(m.required||(null==h?void 0:h.required.value)))),q=e.computed((()=>m.buttonGroup||((null==h?void 0:h.buttons.value)??!1))),S=e.computed((()=>({plain:m.plain||((null==h?void 0:h.plain.value)??!1),button:m.button||((null==h?void 0:h.buttons.value)??!1),inline:m.inline||((null==h?void 0:h.inline.value)??!1),reverse:m.reverse||((null==h?void 0:h.reverse.value)??!1),switch:m.switch||((null==h?void 0:h.switch.value)??!1),state:!0===m.state||!1===m.state?m.state:(null==h?void 0:h.state.value)??null,size:m.size??(null==h?void 0:h.size.value)??"md",buttonVariant:m.buttonVariant??(null==h?void 0:h.buttonVariant.value)??"secondary",hasDefaultSlot:V.value}))),w=l.getClasses(S),F=e.computed((()=>[w.value,v.value.wrapperClass])),R=l.getInputClasses(S),A=e.computed((()=>[R.value,m.inputClass])),j=l.getLabelClasses(S);return f({blur:()=>{g.value=!1},element:x,focus:()=>{g.value=!0}}),(t,l)=>(e.openBlock(),e.createBlock(u._sfc_main,e.mergeProps({skip:q.value},e.unref(m).wrapperAttrs,{class:F.value}),{default:e.withCtx((()=>{var a,u,o;return[e.withDirectives(e.createElementVNode("input",e.mergeProps({id:e.unref(k),ref:"_input","onUpdate:modelValue":l[0]||(l[0]=e=>_.value=e),class:A.value,type:"checkbox",disabled:e.unref(m).disabled||(null==(a=e.unref(h))?void 0:a.disabled.value),required:C.value||void 0,name:e.unref(m).name||(null==(u=e.unref(h))?void 0:u.name.value),form:e.unref(m).form||(null==(o=e.unref(h))?void 0:o.form.value),"aria-label":e.unref(m).ariaLabel,"aria-labelledby":e.unref(m).ariaLabelledby,"aria-required":C.value||void 0,value:e.unref(m).value,"true-value":e.unref(m).value,"false-value":e.unref(m).uncheckedValue,indeterminate:B.value||void 0},v.value.inputAttrs),null,16,n),[[e.vModelCheckbox,_.value]]),V.value||!1===e.unref(m).plain?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(k),class:e.normalizeClass(e.unref(j))},[e.renderSlot(t.$slots,"default")],10,i)):e.createCommentVNode("",!0)]})),_:3},16,["skip","class"]))}}),f=["id"],p=e.defineComponent({__name:"BFormCheckboxGroup",props:e.mergeModels({ariaInvalid:{type:[Boolean,String],default:void 0},autofocus:{type:Boolean,default:!1},buttonVariant:{default:"secondary"},buttons:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},disabledField:{default:"disabled"},form:{default:void 0},id:{default:void 0},name:{default:void 0},options:{default:()=>[]},plain:{type:Boolean,default:!1},required:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},size:{default:"md"},stacked:{type:Boolean,default:!1},state:{type:[Boolean,null],default:null},switches:{type:Boolean,default:!1},textField:{default:"text"},validated:{type:Boolean,default:!1},valueField:{default:"value"}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(u,{expose:o}){const n=u,i=r.useDefaults(n,"BFormCheckboxGroup"),p=e.useModel(u,"modelValue"),v=d.useId((()=>i.id),"checkbox"),c=d.useId((()=>i.name),"checkbox"),m=e.useTemplateRef("_element"),{focused:b}=t.useFocus(m,{initialValue:i.autofocus});e.provide(a.checkboxGroupKey,{modelValue:p,switch:e.toRef((()=>i.switches)),buttonVariant:e.toRef((()=>i.buttonVariant)),form:e.toRef((()=>i.form)),name:c,state:e.toRef((()=>i.state)),plain:e.toRef((()=>i.plain)),size:e.toRef((()=>i.size)),inline:e.toRef((()=>!i.stacked)),reverse:e.toRef((()=>i.reverse)),required:e.toRef((()=>i.required)),buttons:e.toRef((()=>i.buttons)),disabled:e.toRef((()=>i.disabled))});const y=e.computed((()=>i.options.map((e=>"string"==typeof e||"number"==typeof e?{value:e,disabled:i.disabled,text:e.toString()}:{value:e[i.valueField],disabled:e[i.disabledField],...e.props?e.props:void 0,text:e[i.textField]})))),B=e.computed((()=>({required:i.required,ariaInvalid:i.ariaInvalid,state:i.state,validated:i.validated,buttons:i.buttons,stacked:i.stacked,size:i.size}))),k=l.getGroupAttr(B),h=l.getGroupClasses(B);return o({blur:()=>{b.value=!1},focus:()=>{b.value=!0}}),(t,l)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps(e.unref(k),{id:e.unref(v),ref:"_element",role:"group",class:[e.unref(h),"bv-no-focus-ring"],tabindex:"-1"}),[e.renderSlot(t.$slots,"first"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,((l,a)=>(e.openBlock(),e.createBlock(s,e.mergeProps({key:a,ref_for:!0},l),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"option",e.mergeProps({ref_for:!0},l),(()=>[e.createTextVNode(e.toDisplayString(l.text),1)]))])),_:2},1040)))),128)),e.renderSlot(t.$slots,"default")],16,f))}});exports._sfc_main=s,exports._sfc_main$1=p;
2
- //# sourceMappingURL=BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-JFPJBuuf.js.map
1
+ "use strict";const e=require("vue"),t=require("./index-CNL2tI0w.js"),l=require("./useFormCheck-DLmeXWHw.js"),a=require("./keys-C2BcfuxJ.js"),u=require("./ConditionalWrapper.vue_vue_type_script_lang-Du33jXia.js"),o=require("./dom-Dzr6gmPm.js"),r=require("./useDefaults-Bq2idhQU.js"),d=require("./useId-BOa4n5pr.js"),n=["id","disabled","required","name","form","aria-label","aria-labelledby","aria-required","value","true-value","false-value","indeterminate"],i=["for"],s=e.defineComponent({inheritAttrs:!1,__name:"BFormCheckbox",props:e.mergeModels({ariaLabel:{default:void 0},ariaLabelledby:{default:void 0},autofocus:{type:Boolean,default:!1},button:{type:Boolean,default:!1},buttonGroup:{type:Boolean,default:!1},buttonVariant:{default:null},disabled:{type:Boolean,default:!1},form:{default:void 0},id:{default:void 0},inline:{type:Boolean,default:!1},name:{default:void 0},plain:{type:Boolean,default:!1},required:{type:Boolean,default:void 0},reverse:{type:Boolean,default:!1},size:{default:void 0},state:{type:[Boolean,null],default:null},switch:{type:Boolean,default:!1},uncheckedValue:{type:[Array,Set,String,Boolean,Object,Number,null],default:!1},wrapperAttrs:{default:void 0},inputClass:{default:void 0},value:{type:[String,Boolean,Array,Set,Object,Number,null],default:!0}},{modelValue:{type:[Array,Set,String,Boolean,Object,Number,null],default:void 0},modelModifiers:{},indeterminate:{type:Boolean,default:!1},indeterminateModifiers:{}}),emits:["update:modelValue","update:indeterminate"],setup(s,{expose:f}){const p=e.useAttrs(),v=e.computed((()=>{const{class:e,...t}=p;return{wrapperClass:e,inputAttrs:t}})),c=s,m=r.useDefaults(c,"BFormCheckbox"),b=e.useSlots(),y=e.useModel(s,"modelValue"),B=e.useModel(s,"indeterminate"),k=d.useId((()=>m.id),"form-check"),h=e.inject(a.checkboxGroupKey,null),x=e.useTemplateRef("_input"),{focused:g}=t.useFocus(x,{initialValue:m.autofocus}),V=e.computed((()=>!o.isEmptySlot(b.default))),_=e.computed({get:()=>h?h.modelValue.value:y.value,set:e=>{void 0!==e&&(B.value=!1,null!==h&&Array.isArray(e)?h.modelValue.value=e:y.value=e)}}),C=e.computed((()=>!!(m.name??(null==h?void 0:h.name.value))&&(m.required||(null==h?void 0:h.required.value)))),q=e.computed((()=>m.buttonGroup||((null==h?void 0:h.buttons.value)??!1))),S=e.computed((()=>({plain:m.plain||((null==h?void 0:h.plain.value)??!1),button:m.button||((null==h?void 0:h.buttons.value)??!1),inline:m.inline||((null==h?void 0:h.inline.value)??!1),reverse:m.reverse||((null==h?void 0:h.reverse.value)??!1),switch:m.switch||((null==h?void 0:h.switch.value)??!1),state:!0===m.state||!1===m.state?m.state:(null==h?void 0:h.state.value)??null,size:m.size??(null==h?void 0:h.size.value)??"md",buttonVariant:m.buttonVariant??(null==h?void 0:h.buttonVariant.value)??"secondary",hasDefaultSlot:V.value}))),w=l.getClasses(S),F=e.computed((()=>[w.value,v.value.wrapperClass])),R=l.getInputClasses(S),A=e.computed((()=>[R.value,m.inputClass])),j=l.getLabelClasses(S);return f({blur:()=>{g.value=!1},element:x,focus:()=>{g.value=!0}}),(t,l)=>(e.openBlock(),e.createBlock(u._sfc_main,e.mergeProps({skip:q.value},e.unref(m).wrapperAttrs,{class:F.value}),{default:e.withCtx((()=>{var a,u,o;return[e.withDirectives(e.createElementVNode("input",e.mergeProps({id:e.unref(k),ref:"_input","onUpdate:modelValue":l[0]||(l[0]=e=>_.value=e),class:A.value,type:"checkbox",disabled:e.unref(m).disabled||(null==(a=e.unref(h))?void 0:a.disabled.value),required:C.value||void 0,name:e.unref(m).name||(null==(u=e.unref(h))?void 0:u.name.value),form:e.unref(m).form||(null==(o=e.unref(h))?void 0:o.form.value),"aria-label":e.unref(m).ariaLabel,"aria-labelledby":e.unref(m).ariaLabelledby,"aria-required":C.value||void 0,value:e.unref(m).value,"true-value":e.unref(m).value,"false-value":e.unref(m).uncheckedValue,indeterminate:B.value||void 0},v.value.inputAttrs),null,16,n),[[e.vModelCheckbox,_.value]]),V.value||!1===e.unref(m).plain?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(k),class:e.normalizeClass(e.unref(j))},[e.renderSlot(t.$slots,"default")],10,i)):e.createCommentVNode("",!0)]})),_:3},16,["skip","class"]))}}),f=["id"],p=e.defineComponent({__name:"BFormCheckboxGroup",props:e.mergeModels({ariaInvalid:{type:[Boolean,String],default:void 0},autofocus:{type:Boolean,default:!1},buttonVariant:{default:"secondary"},buttons:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},disabledField:{default:"disabled"},form:{default:void 0},id:{default:void 0},name:{default:void 0},options:{default:()=>[]},plain:{type:Boolean,default:!1},required:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},size:{default:"md"},stacked:{type:Boolean,default:!1},state:{type:[Boolean,null],default:null},switches:{type:Boolean,default:!1},textField:{default:"text"},validated:{type:Boolean,default:!1},valueField:{default:"value"}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(u,{expose:o}){const n=u,i=r.useDefaults(n,"BFormCheckboxGroup"),p=e.useModel(u,"modelValue"),v=d.useId((()=>i.id),"checkbox"),c=d.useId((()=>i.name),"checkbox"),m=e.useTemplateRef("_element"),{focused:b}=t.useFocus(m,{initialValue:i.autofocus});e.provide(a.checkboxGroupKey,{modelValue:p,switch:e.toRef((()=>i.switches)),buttonVariant:e.toRef((()=>i.buttonVariant)),form:e.toRef((()=>i.form)),name:c,state:e.toRef((()=>i.state)),plain:e.toRef((()=>i.plain)),size:e.toRef((()=>i.size)),inline:e.toRef((()=>!i.stacked)),reverse:e.toRef((()=>i.reverse)),required:e.toRef((()=>i.required)),buttons:e.toRef((()=>i.buttons)),disabled:e.toRef((()=>i.disabled))});const y=e.computed((()=>i.options.map((e=>"string"==typeof e||"number"==typeof e?{value:e,disabled:i.disabled,text:e.toString()}:{...e,value:e[i.valueField],disabled:e[i.disabledField],text:e[i.textField]})))),B=e.computed((()=>({required:i.required,ariaInvalid:i.ariaInvalid,state:i.state,validated:i.validated,buttons:i.buttons,stacked:i.stacked,size:i.size}))),k=l.getGroupAttr(B),h=l.getGroupClasses(B);return o({blur:()=>{b.value=!1},focus:()=>{b.value=!0}}),(t,l)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps(e.unref(k),{id:e.unref(v),ref:"_element",role:"group",class:[e.unref(h),"bv-no-focus-ring"],tabindex:"-1"}),[e.renderSlot(t.$slots,"first"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,((l,a)=>(e.openBlock(),e.createBlock(s,e.mergeProps({key:a,ref_for:!0},l),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"option",e.mergeProps({ref_for:!0},l),(()=>[e.createTextVNode(e.toDisplayString(l.text),1)]))])),_:2},1040)))),128)),e.renderSlot(t.$slots,"default")],16,f))}});exports._sfc_main=s,exports._sfc_main$1=p;
2
+ //# sourceMappingURL=BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-_SAAd6bt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-JFPJBuuf.js","sources":["../src/components/BFormCheckbox/BFormCheckbox.vue","../src/components/BFormCheckbox/BFormCheckboxGroup.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n :skip=\"isButtonGroup\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"computedWrapperClasses\"\n >\n <input\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedInputClasses\"\n type=\"checkbox\"\n :disabled=\"props.disabled || parentData?.disabled.value\"\n :required=\"computedRequired || undefined\"\n :name=\"props.name || parentData?.name.value\"\n :form=\"props.form || parentData?.form.value\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :aria-required=\"computedRequired || undefined\"\n :value=\"props.value\"\n :true-value=\"props.value\"\n :false-value=\"props.uncheckedValue\"\n :indeterminate=\"indeterminate || undefined\"\n v-bind=\"processedAttrs.inputAttrs\"\n />\n <label v-if=\"hasDefaultSlot || props.plain === false\" :for=\"computedId\" :class=\"labelClasses\">\n <slot />\n </label>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {useFocus} from '@vueuse/core'\nimport {computed, inject, useAttrs, useTemplateRef} from 'vue'\nimport {getClasses, getInputClasses, getLabelClasses} from '../../composables/useFormCheck'\nimport type {BFormCheckboxProps} from '../../types/ComponentProps'\nimport {checkboxGroupKey} from '../../utils/keys'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {CheckboxValue} from '../../types/CheckboxTypes'\nimport {useId} from '../../composables/useId'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst attrs = useAttrs()\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...inputAttrs} = attrs\n return {wrapperClass, inputAttrs}\n})\n\nconst _props = withDefaults(\n defineProps<Omit<BFormCheckboxProps, 'modelValue' | 'indeterminate'>>(),\n {\n wrapperAttrs: undefined,\n inputClass: undefined,\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n autofocus: false,\n button: false,\n buttonGroup: false,\n buttonVariant: null,\n disabled: false,\n form: undefined,\n id: undefined,\n inline: false,\n name: undefined,\n plain: false,\n required: undefined,\n reverse: false,\n size: undefined,\n state: null,\n switch: false,\n uncheckedValue: false,\n value: true,\n }\n)\nconst props = useDefaults(_props, 'BFormCheckbox')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst modelValue = defineModel<BFormCheckboxProps['modelValue']>({\n default: undefined,\n})\nconst indeterminate = defineModel<Exclude<BFormCheckboxProps['indeterminate'], undefined>>(\n 'indeterminate',\n {\n default: false,\n }\n)\n\nconst computedId = useId(() => props.id, 'form-check')\n\nconst parentData = inject(checkboxGroupKey, null)\n\nconst input = useTemplateRef<HTMLElement>('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\n\nconst localValue = computed({\n get: () => (parentData ? parentData.modelValue.value : modelValue.value),\n set: (newVal) => {\n if (newVal === undefined) return\n // Indeterminate is implicitly cleared when the checked state is changed to any value\n // by the user. We reflect that here by setting our indetermiate model to false\n // which will emit the indeterminate event to the parent\n indeterminate.value = false\n if (parentData !== null && Array.isArray(newVal)) {\n // The type cast isn't perfect. Array.isArray detects CheckboxValue.unknown[],\n // but since it's parentData, it should always be CheckboxValue[]\n // It doesn't quite work when props.value is an [], but this is more of a Vue issue\n parentData.modelValue.value = newVal as CheckboxValue[]\n return\n }\n modelValue.value = newVal as CheckboxValue\n },\n})\n\nconst computedRequired = computed(\n () => !!(props.name ?? parentData?.name.value) && (props.required || parentData?.required.value)\n)\n\nconst isButtonGroup = computed(() => props.buttonGroup || (parentData?.buttons.value ?? false))\n\nconst classesObject = computed(() => ({\n plain: props.plain || (parentData?.plain.value ?? false),\n button: props.button || (parentData?.buttons.value ?? false),\n inline: props.inline || (parentData?.inline.value ?? false),\n reverse: props.reverse || (parentData?.reverse.value ?? false),\n switch: props.switch || (parentData?.switch.value ?? false),\n state:\n props.state === true || props.state === false ? props.state : (parentData?.state.value ?? null),\n size: props.size ?? parentData?.size.value ?? 'md', // This is where the true default is made\n buttonVariant: props.buttonVariant ?? parentData?.buttonVariant.value ?? 'secondary', // This is where the true default is made\n hasDefaultSlot: hasDefaultSlot.value,\n}))\nconst wrapperClasses = getClasses(classesObject)\nconst computedWrapperClasses = computed(() => [\n wrapperClasses.value,\n processedAttrs.value.wrapperClass,\n])\nconst inputClasses = getInputClasses(classesObject)\nconst computedInputClasses = computed(() => [inputClasses.value, props.inputClass])\nconst labelClasses = getLabelClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <div\n v-bind=\"computedAttrs\"\n :id=\"computedId\"\n ref=\"_element\"\n role=\"group\"\n :class=\"computedClasses\"\n class=\"bv-no-focus-ring\"\n tabindex=\"-1\"\n >\n <slot name=\"first\" />\n <BFormCheckbox v-for=\"(item, index) in normalizeOptions\" :key=\"index\" v-bind=\"item\">\n <slot name=\"option\" v-bind=\"item\">\n {{ item.text }}\n </slot>\n </BFormCheckbox>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, toRef, useTemplateRef} from 'vue'\nimport BFormCheckbox from './BFormCheckbox.vue'\nimport {checkboxGroupKey} from '../../utils/keys'\nimport {useFocus} from '@vueuse/core'\nimport type {BFormCheckboxGroupProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {getGroupAttr, getGroupClasses} from '../../composables/useFormCheck'\n\nconst _props = withDefaults(defineProps<Omit<BFormCheckboxGroupProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n buttonVariant: 'secondary',\n buttons: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n name: undefined,\n options: () => [],\n plain: false,\n required: false,\n reverse: false,\n size: 'md',\n stacked: false,\n state: null,\n switches: false,\n textField: 'text',\n validated: false,\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormCheckboxGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n first?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: (props: Record<string, unknown>) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BFormCheckboxGroupProps['modelValue'], undefined>>({\n default: () => [],\n})\n\nconst computedId = useId(() => props.id, 'checkbox')\nconst computedName = useId(() => props.name, 'checkbox')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst {focused} = useFocus(element, {\n initialValue: props.autofocus,\n})\n\nprovide(checkboxGroupKey, {\n modelValue,\n switch: toRef(() => props.switches),\n buttonVariant: toRef(() => props.buttonVariant),\n form: toRef(() => props.form),\n name: computedName,\n state: toRef(() => props.state),\n plain: toRef(() => props.plain),\n size: toRef(() => props.size),\n inline: toRef(() => !props.stacked),\n reverse: toRef(() => props.reverse),\n required: toRef(() => props.required),\n buttons: toRef(() => props.buttons),\n disabled: toRef(() => props.disabled),\n})\n\nconst normalizeOptions = computed(() =>\n props.options.map((el) =>\n typeof el === 'string' || typeof el === 'number'\n ? {\n value: el,\n disabled: props.disabled,\n text: el.toString(),\n }\n : {\n value: el[props.valueField] as string | number | undefined,\n disabled: el[props.disabledField] as boolean | undefined,\n ...(el.props ? el.props : undefined),\n text: el[props.textField] as string | undefined,\n }\n )\n)\n\nconst classesObject = computed(() => ({\n required: props.required,\n ariaInvalid: props.ariaInvalid,\n state: props.state,\n validated: props.validated,\n buttons: props.buttons,\n stacked: props.stacked,\n size: props.size,\n}))\nconst computedAttrs = getGroupAttr(classesObject)\nconst computedClasses = getGroupClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n focus: () => {\n focused.value = true\n },\n})\n</script>\n"],"names":["attrs","useAttrs","processedAttrs","computed","class","wrapperClass","inputAttrs","_props","__props","props","useDefaults","slots","_useSlots","modelValue","_useModel","indeterminate","useModel","computedId","useId","id","parentData","inject","checkboxGroupKey","input","useTemplateRef","focused","useFocus","initialValue","autofocus","hasDefaultSlot","isEmptySlot","default","localValue","get","value","set","newVal","Array","isArray","computedRequired","name","required","isButtonGroup","buttonGroup","buttons","classesObject","plain","button","inline","reverse","switch","state","size","buttonVariant","wrapperClasses","getClasses","computedWrapperClasses","inputClasses","getInputClasses","computedInputClasses","inputClass","labelClasses","getLabelClasses","__expose","blur","element","focus","computedName","provide","toRef","switches","form","stacked","disabled","normalizeOptions","options","map","el","text","toString","valueField","disabledField","textField","ariaInvalid","validated","computedAttrs","getGroupAttr","computedClasses","getGroupClasses"],"mappings":"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"}
1
+ {"version":3,"file":"BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-_SAAd6bt.js","sources":["../src/components/BFormCheckbox/BFormCheckbox.vue","../src/components/BFormCheckbox/BFormCheckboxGroup.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n :skip=\"isButtonGroup\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"computedWrapperClasses\"\n >\n <input\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedInputClasses\"\n type=\"checkbox\"\n :disabled=\"props.disabled || parentData?.disabled.value\"\n :required=\"computedRequired || undefined\"\n :name=\"props.name || parentData?.name.value\"\n :form=\"props.form || parentData?.form.value\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :aria-required=\"computedRequired || undefined\"\n :value=\"props.value\"\n :true-value=\"props.value\"\n :false-value=\"props.uncheckedValue\"\n :indeterminate=\"indeterminate || undefined\"\n v-bind=\"processedAttrs.inputAttrs\"\n />\n <label v-if=\"hasDefaultSlot || props.plain === false\" :for=\"computedId\" :class=\"labelClasses\">\n <slot />\n </label>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {useFocus} from '@vueuse/core'\nimport {computed, inject, useAttrs, useTemplateRef} from 'vue'\nimport {getClasses, getInputClasses, getLabelClasses} from '../../composables/useFormCheck'\nimport type {BFormCheckboxProps} from '../../types/ComponentProps'\nimport {checkboxGroupKey} from '../../utils/keys'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {CheckboxValue} from '../../types/CheckboxTypes'\nimport {useId} from '../../composables/useId'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst attrs = useAttrs()\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...inputAttrs} = attrs\n return {wrapperClass, inputAttrs}\n})\n\nconst _props = withDefaults(\n defineProps<Omit<BFormCheckboxProps, 'modelValue' | 'indeterminate'>>(),\n {\n wrapperAttrs: undefined,\n inputClass: undefined,\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n autofocus: false,\n button: false,\n buttonGroup: false,\n buttonVariant: null,\n disabled: false,\n form: undefined,\n id: undefined,\n inline: false,\n name: undefined,\n plain: false,\n required: undefined,\n reverse: false,\n size: undefined,\n state: null,\n switch: false,\n uncheckedValue: false,\n value: true,\n }\n)\nconst props = useDefaults(_props, 'BFormCheckbox')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst modelValue = defineModel<BFormCheckboxProps['modelValue']>({\n default: undefined,\n})\nconst indeterminate = defineModel<Exclude<BFormCheckboxProps['indeterminate'], undefined>>(\n 'indeterminate',\n {\n default: false,\n }\n)\n\nconst computedId = useId(() => props.id, 'form-check')\n\nconst parentData = inject(checkboxGroupKey, null)\n\nconst input = useTemplateRef<HTMLElement>('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\n\nconst localValue = computed({\n get: () => (parentData ? parentData.modelValue.value : modelValue.value),\n set: (newVal) => {\n if (newVal === undefined) return\n // Indeterminate is implicitly cleared when the checked state is changed to any value\n // by the user. We reflect that here by setting our indetermiate model to false\n // which will emit the indeterminate event to the parent\n indeterminate.value = false\n if (parentData !== null && Array.isArray(newVal)) {\n // The type cast isn't perfect. Array.isArray detects CheckboxValue.unknown[],\n // but since it's parentData, it should always be CheckboxValue[]\n // It doesn't quite work when props.value is an [], but this is more of a Vue issue\n parentData.modelValue.value = newVal as CheckboxValue[]\n return\n }\n modelValue.value = newVal as CheckboxValue\n },\n})\n\nconst computedRequired = computed(\n () => !!(props.name ?? parentData?.name.value) && (props.required || parentData?.required.value)\n)\n\nconst isButtonGroup = computed(() => props.buttonGroup || (parentData?.buttons.value ?? false))\n\nconst classesObject = computed(() => ({\n plain: props.plain || (parentData?.plain.value ?? false),\n button: props.button || (parentData?.buttons.value ?? false),\n inline: props.inline || (parentData?.inline.value ?? false),\n reverse: props.reverse || (parentData?.reverse.value ?? false),\n switch: props.switch || (parentData?.switch.value ?? false),\n state:\n props.state === true || props.state === false ? props.state : (parentData?.state.value ?? null),\n size: props.size ?? parentData?.size.value ?? 'md', // This is where the true default is made\n buttonVariant: props.buttonVariant ?? parentData?.buttonVariant.value ?? 'secondary', // This is where the true default is made\n hasDefaultSlot: hasDefaultSlot.value,\n}))\nconst wrapperClasses = getClasses(classesObject)\nconst computedWrapperClasses = computed(() => [\n wrapperClasses.value,\n processedAttrs.value.wrapperClass,\n])\nconst inputClasses = getInputClasses(classesObject)\nconst computedInputClasses = computed(() => [inputClasses.value, props.inputClass])\nconst labelClasses = getLabelClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <div\n v-bind=\"computedAttrs\"\n :id=\"computedId\"\n ref=\"_element\"\n role=\"group\"\n :class=\"computedClasses\"\n class=\"bv-no-focus-ring\"\n tabindex=\"-1\"\n >\n <slot name=\"first\" />\n <BFormCheckbox v-for=\"(item, index) in normalizeOptions\" :key=\"index\" v-bind=\"item\">\n <slot name=\"option\" v-bind=\"item\">\n {{ item.text }}\n </slot>\n </BFormCheckbox>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, toRef, useTemplateRef} from 'vue'\nimport BFormCheckbox from './BFormCheckbox.vue'\nimport {checkboxGroupKey} from '../../utils/keys'\nimport {useFocus} from '@vueuse/core'\nimport type {BFormCheckboxGroupProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {getGroupAttr, getGroupClasses} from '../../composables/useFormCheck'\n\nconst _props = withDefaults(defineProps<Omit<BFormCheckboxGroupProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n buttonVariant: 'secondary',\n buttons: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n name: undefined,\n options: () => [],\n plain: false,\n required: false,\n reverse: false,\n size: 'md',\n stacked: false,\n state: null,\n switches: false,\n textField: 'text',\n validated: false,\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormCheckboxGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n first?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: (props: Record<string, unknown>) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BFormCheckboxGroupProps['modelValue'], undefined>>({\n default: () => [],\n})\n\nconst computedId = useId(() => props.id, 'checkbox')\nconst computedName = useId(() => props.name, 'checkbox')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst {focused} = useFocus(element, {\n initialValue: props.autofocus,\n})\n\nprovide(checkboxGroupKey, {\n modelValue,\n switch: toRef(() => props.switches),\n buttonVariant: toRef(() => props.buttonVariant),\n form: toRef(() => props.form),\n name: computedName,\n state: toRef(() => props.state),\n plain: toRef(() => props.plain),\n size: toRef(() => props.size),\n inline: toRef(() => !props.stacked),\n reverse: toRef(() => props.reverse),\n required: toRef(() => props.required),\n buttons: toRef(() => props.buttons),\n disabled: toRef(() => props.disabled),\n})\n\nconst normalizeOptions = computed(() =>\n props.options.map((el) =>\n typeof el === 'string' || typeof el === 'number'\n ? {\n value: el,\n disabled: props.disabled,\n text: el.toString(),\n }\n : {\n ...el,\n value: el[props.valueField] as string | number | undefined,\n disabled: el[props.disabledField] as boolean | undefined,\n text: el[props.textField] as string | undefined,\n }\n )\n)\n\nconst classesObject = computed(() => ({\n required: props.required,\n ariaInvalid: props.ariaInvalid,\n state: props.state,\n validated: props.validated,\n buttons: props.buttons,\n stacked: props.stacked,\n size: props.size,\n}))\nconst computedAttrs = getGroupAttr(classesObject)\nconst computedClasses = getGroupClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n focus: () => {\n focused.value = true\n },\n})\n</script>\n"],"names":["attrs","useAttrs","processedAttrs","computed","class","wrapperClass","inputAttrs","_props","__props","props","useDefaults","slots","_useSlots","modelValue","_useModel","indeterminate","useModel","computedId","useId","id","parentData","inject","checkboxGroupKey","input","useTemplateRef","focused","useFocus","initialValue","autofocus","hasDefaultSlot","isEmptySlot","default","localValue","get","value","set","newVal","Array","isArray","computedRequired","name","required","isButtonGroup","buttonGroup","buttons","classesObject","plain","button","inline","reverse","switch","state","size","buttonVariant","wrapperClasses","getClasses","computedWrapperClasses","inputClasses","getInputClasses","computedInputClasses","inputClass","labelClasses","getLabelClasses","__expose","blur","element","focus","computedName","provide","toRef","switches","form","stacked","disabled","normalizeOptions","options","map","el","text","toString","valueField","disabledField","textField","ariaInvalid","validated","computedAttrs","getGroupAttr","computedClasses","getGroupClasses"],"mappings":"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"}
@@ -215,9 +215,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
215
215
  disabled: props.disabled,
216
216
  text: el.toString()
217
217
  } : {
218
+ ...el,
218
219
  value: el[props.valueField],
219
220
  disabled: el[props.disabledField],
220
- ...el.props ? el.props : void 0,
221
221
  text: el[props.textField]
222
222
  }
223
223
  )
@@ -272,4 +272,4 @@ export {
272
272
  _sfc_main$1 as _,
273
273
  _sfc_main as a
274
274
  };
275
- //# sourceMappingURL=BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-Do7WryrT.mjs.map
275
+ //# sourceMappingURL=BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-d--CP48D.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-Do7WryrT.mjs","sources":["../src/components/BFormCheckbox/BFormCheckbox.vue","../src/components/BFormCheckbox/BFormCheckboxGroup.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n :skip=\"isButtonGroup\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"computedWrapperClasses\"\n >\n <input\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedInputClasses\"\n type=\"checkbox\"\n :disabled=\"props.disabled || parentData?.disabled.value\"\n :required=\"computedRequired || undefined\"\n :name=\"props.name || parentData?.name.value\"\n :form=\"props.form || parentData?.form.value\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :aria-required=\"computedRequired || undefined\"\n :value=\"props.value\"\n :true-value=\"props.value\"\n :false-value=\"props.uncheckedValue\"\n :indeterminate=\"indeterminate || undefined\"\n v-bind=\"processedAttrs.inputAttrs\"\n />\n <label v-if=\"hasDefaultSlot || props.plain === false\" :for=\"computedId\" :class=\"labelClasses\">\n <slot />\n </label>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {useFocus} from '@vueuse/core'\nimport {computed, inject, useAttrs, useTemplateRef} from 'vue'\nimport {getClasses, getInputClasses, getLabelClasses} from '../../composables/useFormCheck'\nimport type {BFormCheckboxProps} from '../../types/ComponentProps'\nimport {checkboxGroupKey} from '../../utils/keys'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {CheckboxValue} from '../../types/CheckboxTypes'\nimport {useId} from '../../composables/useId'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst attrs = useAttrs()\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...inputAttrs} = attrs\n return {wrapperClass, inputAttrs}\n})\n\nconst _props = withDefaults(\n defineProps<Omit<BFormCheckboxProps, 'modelValue' | 'indeterminate'>>(),\n {\n wrapperAttrs: undefined,\n inputClass: undefined,\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n autofocus: false,\n button: false,\n buttonGroup: false,\n buttonVariant: null,\n disabled: false,\n form: undefined,\n id: undefined,\n inline: false,\n name: undefined,\n plain: false,\n required: undefined,\n reverse: false,\n size: undefined,\n state: null,\n switch: false,\n uncheckedValue: false,\n value: true,\n }\n)\nconst props = useDefaults(_props, 'BFormCheckbox')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst modelValue = defineModel<BFormCheckboxProps['modelValue']>({\n default: undefined,\n})\nconst indeterminate = defineModel<Exclude<BFormCheckboxProps['indeterminate'], undefined>>(\n 'indeterminate',\n {\n default: false,\n }\n)\n\nconst computedId = useId(() => props.id, 'form-check')\n\nconst parentData = inject(checkboxGroupKey, null)\n\nconst input = useTemplateRef<HTMLElement>('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\n\nconst localValue = computed({\n get: () => (parentData ? parentData.modelValue.value : modelValue.value),\n set: (newVal) => {\n if (newVal === undefined) return\n // Indeterminate is implicitly cleared when the checked state is changed to any value\n // by the user. We reflect that here by setting our indetermiate model to false\n // which will emit the indeterminate event to the parent\n indeterminate.value = false\n if (parentData !== null && Array.isArray(newVal)) {\n // The type cast isn't perfect. Array.isArray detects CheckboxValue.unknown[],\n // but since it's parentData, it should always be CheckboxValue[]\n // It doesn't quite work when props.value is an [], but this is more of a Vue issue\n parentData.modelValue.value = newVal as CheckboxValue[]\n return\n }\n modelValue.value = newVal as CheckboxValue\n },\n})\n\nconst computedRequired = computed(\n () => !!(props.name ?? parentData?.name.value) && (props.required || parentData?.required.value)\n)\n\nconst isButtonGroup = computed(() => props.buttonGroup || (parentData?.buttons.value ?? false))\n\nconst classesObject = computed(() => ({\n plain: props.plain || (parentData?.plain.value ?? false),\n button: props.button || (parentData?.buttons.value ?? false),\n inline: props.inline || (parentData?.inline.value ?? false),\n reverse: props.reverse || (parentData?.reverse.value ?? false),\n switch: props.switch || (parentData?.switch.value ?? false),\n state:\n props.state === true || props.state === false ? props.state : (parentData?.state.value ?? null),\n size: props.size ?? parentData?.size.value ?? 'md', // This is where the true default is made\n buttonVariant: props.buttonVariant ?? parentData?.buttonVariant.value ?? 'secondary', // This is where the true default is made\n hasDefaultSlot: hasDefaultSlot.value,\n}))\nconst wrapperClasses = getClasses(classesObject)\nconst computedWrapperClasses = computed(() => [\n wrapperClasses.value,\n processedAttrs.value.wrapperClass,\n])\nconst inputClasses = getInputClasses(classesObject)\nconst computedInputClasses = computed(() => [inputClasses.value, props.inputClass])\nconst labelClasses = getLabelClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <div\n v-bind=\"computedAttrs\"\n :id=\"computedId\"\n ref=\"_element\"\n role=\"group\"\n :class=\"computedClasses\"\n class=\"bv-no-focus-ring\"\n tabindex=\"-1\"\n >\n <slot name=\"first\" />\n <BFormCheckbox v-for=\"(item, index) in normalizeOptions\" :key=\"index\" v-bind=\"item\">\n <slot name=\"option\" v-bind=\"item\">\n {{ item.text }}\n </slot>\n </BFormCheckbox>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, toRef, useTemplateRef} from 'vue'\nimport BFormCheckbox from './BFormCheckbox.vue'\nimport {checkboxGroupKey} from '../../utils/keys'\nimport {useFocus} from '@vueuse/core'\nimport type {BFormCheckboxGroupProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {getGroupAttr, getGroupClasses} from '../../composables/useFormCheck'\n\nconst _props = withDefaults(defineProps<Omit<BFormCheckboxGroupProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n buttonVariant: 'secondary',\n buttons: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n name: undefined,\n options: () => [],\n plain: false,\n required: false,\n reverse: false,\n size: 'md',\n stacked: false,\n state: null,\n switches: false,\n textField: 'text',\n validated: false,\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormCheckboxGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n first?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: (props: Record<string, unknown>) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BFormCheckboxGroupProps['modelValue'], undefined>>({\n default: () => [],\n})\n\nconst computedId = useId(() => props.id, 'checkbox')\nconst computedName = useId(() => props.name, 'checkbox')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst {focused} = useFocus(element, {\n initialValue: props.autofocus,\n})\n\nprovide(checkboxGroupKey, {\n modelValue,\n switch: toRef(() => props.switches),\n buttonVariant: toRef(() => props.buttonVariant),\n form: toRef(() => props.form),\n name: computedName,\n state: toRef(() => props.state),\n plain: toRef(() => props.plain),\n size: toRef(() => props.size),\n inline: toRef(() => !props.stacked),\n reverse: toRef(() => props.reverse),\n required: toRef(() => props.required),\n buttons: toRef(() => props.buttons),\n disabled: toRef(() => props.disabled),\n})\n\nconst normalizeOptions = computed(() =>\n props.options.map((el) =>\n typeof el === 'string' || typeof el === 'number'\n ? {\n value: el,\n disabled: props.disabled,\n text: el.toString(),\n }\n : {\n value: el[props.valueField] as string | number | undefined,\n disabled: el[props.disabledField] as boolean | undefined,\n ...(el.props ? el.props : undefined),\n text: el[props.textField] as string | undefined,\n }\n )\n)\n\nconst classesObject = computed(() => ({\n required: props.required,\n ariaInvalid: props.ariaInvalid,\n state: props.state,\n validated: props.validated,\n buttons: props.buttons,\n stacked: props.stacked,\n size: props.size,\n}))\nconst computedAttrs = getGroupAttr(classesObject)\nconst computedClasses = getGroupClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n focus: () => {\n focused.value = true\n },\n})\n</script>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-d--CP48D.mjs","sources":["../src/components/BFormCheckbox/BFormCheckbox.vue","../src/components/BFormCheckbox/BFormCheckboxGroup.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n :skip=\"isButtonGroup\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"computedWrapperClasses\"\n >\n <input\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedInputClasses\"\n type=\"checkbox\"\n :disabled=\"props.disabled || parentData?.disabled.value\"\n :required=\"computedRequired || undefined\"\n :name=\"props.name || parentData?.name.value\"\n :form=\"props.form || parentData?.form.value\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :aria-required=\"computedRequired || undefined\"\n :value=\"props.value\"\n :true-value=\"props.value\"\n :false-value=\"props.uncheckedValue\"\n :indeterminate=\"indeterminate || undefined\"\n v-bind=\"processedAttrs.inputAttrs\"\n />\n <label v-if=\"hasDefaultSlot || props.plain === false\" :for=\"computedId\" :class=\"labelClasses\">\n <slot />\n </label>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {useFocus} from '@vueuse/core'\nimport {computed, inject, useAttrs, useTemplateRef} from 'vue'\nimport {getClasses, getInputClasses, getLabelClasses} from '../../composables/useFormCheck'\nimport type {BFormCheckboxProps} from '../../types/ComponentProps'\nimport {checkboxGroupKey} from '../../utils/keys'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {CheckboxValue} from '../../types/CheckboxTypes'\nimport {useId} from '../../composables/useId'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst attrs = useAttrs()\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...inputAttrs} = attrs\n return {wrapperClass, inputAttrs}\n})\n\nconst _props = withDefaults(\n defineProps<Omit<BFormCheckboxProps, 'modelValue' | 'indeterminate'>>(),\n {\n wrapperAttrs: undefined,\n inputClass: undefined,\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n autofocus: false,\n button: false,\n buttonGroup: false,\n buttonVariant: null,\n disabled: false,\n form: undefined,\n id: undefined,\n inline: false,\n name: undefined,\n plain: false,\n required: undefined,\n reverse: false,\n size: undefined,\n state: null,\n switch: false,\n uncheckedValue: false,\n value: true,\n }\n)\nconst props = useDefaults(_props, 'BFormCheckbox')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst modelValue = defineModel<BFormCheckboxProps['modelValue']>({\n default: undefined,\n})\nconst indeterminate = defineModel<Exclude<BFormCheckboxProps['indeterminate'], undefined>>(\n 'indeterminate',\n {\n default: false,\n }\n)\n\nconst computedId = useId(() => props.id, 'form-check')\n\nconst parentData = inject(checkboxGroupKey, null)\n\nconst input = useTemplateRef<HTMLElement>('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\n\nconst localValue = computed({\n get: () => (parentData ? parentData.modelValue.value : modelValue.value),\n set: (newVal) => {\n if (newVal === undefined) return\n // Indeterminate is implicitly cleared when the checked state is changed to any value\n // by the user. We reflect that here by setting our indetermiate model to false\n // which will emit the indeterminate event to the parent\n indeterminate.value = false\n if (parentData !== null && Array.isArray(newVal)) {\n // The type cast isn't perfect. Array.isArray detects CheckboxValue.unknown[],\n // but since it's parentData, it should always be CheckboxValue[]\n // It doesn't quite work when props.value is an [], but this is more of a Vue issue\n parentData.modelValue.value = newVal as CheckboxValue[]\n return\n }\n modelValue.value = newVal as CheckboxValue\n },\n})\n\nconst computedRequired = computed(\n () => !!(props.name ?? parentData?.name.value) && (props.required || parentData?.required.value)\n)\n\nconst isButtonGroup = computed(() => props.buttonGroup || (parentData?.buttons.value ?? false))\n\nconst classesObject = computed(() => ({\n plain: props.plain || (parentData?.plain.value ?? false),\n button: props.button || (parentData?.buttons.value ?? false),\n inline: props.inline || (parentData?.inline.value ?? false),\n reverse: props.reverse || (parentData?.reverse.value ?? false),\n switch: props.switch || (parentData?.switch.value ?? false),\n state:\n props.state === true || props.state === false ? props.state : (parentData?.state.value ?? null),\n size: props.size ?? parentData?.size.value ?? 'md', // This is where the true default is made\n buttonVariant: props.buttonVariant ?? parentData?.buttonVariant.value ?? 'secondary', // This is where the true default is made\n hasDefaultSlot: hasDefaultSlot.value,\n}))\nconst wrapperClasses = getClasses(classesObject)\nconst computedWrapperClasses = computed(() => [\n wrapperClasses.value,\n processedAttrs.value.wrapperClass,\n])\nconst inputClasses = getInputClasses(classesObject)\nconst computedInputClasses = computed(() => [inputClasses.value, props.inputClass])\nconst labelClasses = getLabelClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <div\n v-bind=\"computedAttrs\"\n :id=\"computedId\"\n ref=\"_element\"\n role=\"group\"\n :class=\"computedClasses\"\n class=\"bv-no-focus-ring\"\n tabindex=\"-1\"\n >\n <slot name=\"first\" />\n <BFormCheckbox v-for=\"(item, index) in normalizeOptions\" :key=\"index\" v-bind=\"item\">\n <slot name=\"option\" v-bind=\"item\">\n {{ item.text }}\n </slot>\n </BFormCheckbox>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, toRef, useTemplateRef} from 'vue'\nimport BFormCheckbox from './BFormCheckbox.vue'\nimport {checkboxGroupKey} from '../../utils/keys'\nimport {useFocus} from '@vueuse/core'\nimport type {BFormCheckboxGroupProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {getGroupAttr, getGroupClasses} from '../../composables/useFormCheck'\n\nconst _props = withDefaults(defineProps<Omit<BFormCheckboxGroupProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n buttonVariant: 'secondary',\n buttons: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n name: undefined,\n options: () => [],\n plain: false,\n required: false,\n reverse: false,\n size: 'md',\n stacked: false,\n state: null,\n switches: false,\n textField: 'text',\n validated: false,\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormCheckboxGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n first?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: (props: Record<string, unknown>) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BFormCheckboxGroupProps['modelValue'], undefined>>({\n default: () => [],\n})\n\nconst computedId = useId(() => props.id, 'checkbox')\nconst computedName = useId(() => props.name, 'checkbox')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst {focused} = useFocus(element, {\n initialValue: props.autofocus,\n})\n\nprovide(checkboxGroupKey, {\n modelValue,\n switch: toRef(() => props.switches),\n buttonVariant: toRef(() => props.buttonVariant),\n form: toRef(() => props.form),\n name: computedName,\n state: toRef(() => props.state),\n plain: toRef(() => props.plain),\n size: toRef(() => props.size),\n inline: toRef(() => !props.stacked),\n reverse: toRef(() => props.reverse),\n required: toRef(() => props.required),\n buttons: toRef(() => props.buttons),\n disabled: toRef(() => props.disabled),\n})\n\nconst normalizeOptions = computed(() =>\n props.options.map((el) =>\n typeof el === 'string' || typeof el === 'number'\n ? {\n value: el,\n disabled: props.disabled,\n text: el.toString(),\n }\n : {\n ...el,\n value: el[props.valueField] as string | number | undefined,\n disabled: el[props.disabledField] as boolean | undefined,\n text: el[props.textField] as string | undefined,\n }\n )\n)\n\nconst classesObject = computed(() => ({\n required: props.required,\n ariaInvalid: props.ariaInvalid,\n state: props.state,\n validated: props.validated,\n buttons: props.buttons,\n stacked: props.stacked,\n size: props.size,\n}))\nconst computedAttrs = getGroupAttr(classesObject)\nconst computedClasses = getGroupClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n focus: () => {\n focused.value = true\n },\n})\n</script>\n"],"names":["_useSlots","_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,UAAM,QAAQ,SAAS;AACjB,UAAA,iBAAiB,SAAS,MAAM;AACpC,YAAM,EAAC,OAAO,cAAc,GAAG,WAAc,IAAA;AACtC,aAAA,EAAC,cAAc,WAAU;AAAA,IAAA,CACjC;AAED,UAAM,SAAS;AA0BT,UAAA,QAAQ,YAAY,QAAQ,eAAe;AAEjD,UAAM,QAAQA,SAAA;AAKR,UAAA,aAAaC,SAElB,SAAA,YAAA;AACD,UAAM,gBAAgBA;AAAAA,MACpB;AAAA,MAAA;AAAA,IAIF;AAEA,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,YAAY;AAE/C,UAAA,aAAa,OAAO,kBAAkB,IAAI;AAE1C,UAAA,QAAQ,eAA4B,QAAQ;AAElD,UAAM,EAAC,QAAA,IAAW,SAAS,OAAO;AAAA,MAChC,cAAc,MAAM;AAAA,IAAA,CACrB;AAED,UAAM,iBAAiB,SAAS,MAAM,CAAC,YAAY,MAAM,OAAO,CAAC;AAEjE,UAAM,aAAa,SAAS;AAAA,MAC1B,KAAK,MAAO,aAAa,WAAW,WAAW,QAAQ,WAAW;AAAA,MAClE,KAAK,CAAC,WAAW;AACf,YAAI,WAAW,OAAW;AAI1B,sBAAc,QAAQ;AACtB,YAAI,eAAe,QAAQ,MAAM,QAAQ,MAAM,GAAG;AAIhD,qBAAW,WAAW,QAAQ;AAC9B;AAAA,QAAA;AAEF,mBAAW,QAAQ;AAAA,MAAA;AAAA,IACrB,CACD;AAED,UAAM,mBAAmB;AAAA,MACvB,MAAM,CAAC,EAAE,MAAM,SAAQ,yCAAY,KAAK,YAAW,MAAM,aAAY,yCAAY,SAAS;AAAA,IAC5F;AAEM,UAAA,gBAAgB,SAAS,MAAM,MAAM,iBAAgB,yCAAY,QAAQ,UAAS,MAAM;AAExF,UAAA,gBAAgB,SAAS,OAAO;AAAA,MACpC,OAAO,MAAM,WAAU,yCAAY,MAAM,UAAS;AAAA,MAClD,QAAQ,MAAM,YAAW,yCAAY,QAAQ,UAAS;AAAA,MACtD,QAAQ,MAAM,YAAW,yCAAY,OAAO,UAAS;AAAA,MACrD,SAAS,MAAM,aAAY,yCAAY,QAAQ,UAAS;AAAA,MACxD,QAAQ,MAAM,YAAW,yCAAY,OAAO,UAAS;AAAA,MACrD,OACE,MAAM,UAAU,QAAQ,MAAM,UAAU,QAAQ,MAAM,SAAS,yCAAY,MAAM,UAAS;AAAA,MAC5F,MAAM,MAAM,SAAQ,yCAAY,KAAK,UAAS;AAAA;AAAA,MAC9C,eAAe,MAAM,kBAAiB,yCAAY,cAAc,UAAS;AAAA;AAAA,MACzE,gBAAgB,eAAe;AAAA,IAAA,EAC/B;AACI,UAAA,iBAAiB,WAAW,aAAa;AACzC,UAAA,yBAAyB,SAAS,MAAM;AAAA,MAC5C,eAAe;AAAA,MACf,eAAe,MAAM;AAAA,IAAA,CACtB;AACK,UAAA,eAAe,gBAAgB,aAAa;AAC5C,UAAA,uBAAuB,SAAS,MAAM,CAAC,aAAa,OAAO,MAAM,UAAU,CAAC;AAC5E,UAAA,eAAe,gBAAgB,aAAa;AAErC,aAAA;AAAA,MACX,MAAM,MAAM;AACV,gBAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,SAAS;AAAA,MACT,OAAO,MAAM;AACX,gBAAQ,QAAQ;AAAA,MAAA;AAAA,IAClB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpID,UAAM,SAAS;AAsBT,UAAA,QAAQ,YAAY,QAAQ,oBAAoB;AAWhD,UAAA,aAAaA,SAElB,SAAA,YAAA;AAED,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,UAAU;AACnD,UAAM,eAAe,MAAM,MAAM,MAAM,MAAM,UAAU;AAEjD,UAAA,UAAU,eAA4B,UAAU;AAEtD,UAAM,EAAC,QAAA,IAAW,SAAS,SAAS;AAAA,MAClC,cAAc,MAAM;AAAA,IAAA,CACrB;AAED,YAAQ,kBAAkB;AAAA,MACxB;AAAA,MACA,QAAQ,MAAM,MAAM,MAAM,QAAQ;AAAA,MAClC,eAAe,MAAM,MAAM,MAAM,aAAa;AAAA,MAC9C,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC5B,MAAM;AAAA,MACN,OAAO,MAAM,MAAM,MAAM,KAAK;AAAA,MAC9B,OAAO,MAAM,MAAM,MAAM,KAAK;AAAA,MAC9B,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC5B,QAAQ,MAAM,MAAM,CAAC,MAAM,OAAO;AAAA,MAClC,SAAS,MAAM,MAAM,MAAM,OAAO;AAAA,MAClC,UAAU,MAAM,MAAM,MAAM,QAAQ;AAAA,MACpC,SAAS,MAAM,MAAM,MAAM,OAAO;AAAA,MAClC,UAAU,MAAM,MAAM,MAAM,QAAQ;AAAA,IAAA,CACrC;AAED,UAAM,mBAAmB;AAAA,MAAS,MAChC,MAAM,QAAQ;AAAA,QAAI,CAAC,OACjB,OAAO,OAAO,YAAY,OAAO,OAAO,WACpC;AAAA,UACE,OAAO;AAAA,UACP,UAAU,MAAM;AAAA,UAChB,MAAM,GAAG,SAAS;AAAA,QAAA,IAEpB;AAAA,UACE,GAAG;AAAA,UACH,OAAO,GAAG,MAAM,UAAU;AAAA,UAC1B,UAAU,GAAG,MAAM,aAAa;AAAA,UAChC,MAAM,GAAG,MAAM,SAAS;AAAA,QAAA;AAAA,MAC1B;AAAA,IAER;AAEM,UAAA,gBAAgB,SAAS,OAAO;AAAA,MACpC,UAAU,MAAM;AAAA,MAChB,aAAa,MAAM;AAAA,MACnB,OAAO,MAAM;AAAA,MACb,WAAW,MAAM;AAAA,MACjB,SAAS,MAAM;AAAA,MACf,SAAS,MAAM;AAAA,MACf,MAAM,MAAM;AAAA,IAAA,EACZ;AACI,UAAA,gBAAgB,aAAa,aAAa;AAC1C,UAAA,kBAAkB,gBAAgB,aAAa;AAExC,aAAA;AAAA,MACX,MAAM,MAAM;AACV,gBAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,OAAO,MAAM;AACX,gBAAQ,QAAQ;AAAA,MAAA;AAAA,IAClB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("vue"),l=require("./keys-C2BcfuxJ.js"),a=require("./index-CNL2tI0w.js"),t=require("./useFormCheck-DLmeXWHw.js"),o=require("./dom-Dzr6gmPm.js"),u=require("./ConditionalWrapper.vue_vue_type_script_lang-Du33jXia.js"),d=require("./useDefaults-Bq2idhQU.js"),r=require("./useId-BOa4n5pr.js"),i=["id","disabled","required","name","form","aria-label","aria-labelledby","value","aria-required"],n=["for"],s=e.defineComponent({inheritAttrs:!1,__name:"BFormRadio",props:e.mergeModels({ariaLabel:{default:void 0},ariaLabelledby:{default:void 0},autofocus:{type:Boolean,default:!1},button:{type:Boolean,default:!1},buttonGroup:{type:Boolean,default:!1},buttonVariant:{default:null},disabled:{type:Boolean,default:!1},form:{default:void 0},id:{default:void 0},inline:{type:Boolean,default:!1},name:{default:void 0},plain:{type:Boolean,default:!1},required:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},size:{default:void 0},state:{type:[Boolean,null],default:null},value:{type:[Boolean,String,Array,Object,Number,null],default:!0}},{modelValue:{type:[Boolean,String,Array,Object,Number,null],default:void 0},modelModifiers:{}}),emits:["update:modelValue"],setup(s,{expose:f}){const p=s,v=d.useDefaults(p,"BFormRadio"),m=e.useSlots(),c=e.useModel(s,"modelValue"),b=r.useId((()=>v.id),"form-check"),y=e.inject(l.radioGroupKey,null),B=e.useTemplateRef("_input"),{focused:g}=a.useFocus(B,{initialValue:v.autofocus}),k=e.computed((()=>!o.isEmptySlot(m.default))),V=e.computed({get:()=>y?y.modelValue.value:c.value,set:e=>{void 0!==e&&(null===y?c.value=e:y.modelValue.value=e)}}),_=e.computed((()=>!!(v.name??(null==y?void 0:y.name.value))&&(v.required||(null==y?void 0:y.required.value)))),q=e.computed((()=>v.buttonGroup||((null==y?void 0:y.buttons.value)??!1))),R=e.computed((()=>({plain:v.plain||((null==y?void 0:y.plain.value)??!1),button:v.button||((null==y?void 0:y.buttons.value)??!1),inline:v.inline||((null==y?void 0:y.inline.value)??!1),state:v.state||(null==y?void 0:y.state.value),reverse:v.reverse||((null==y?void 0:y.reverse.value)??!1),size:v.size??(null==y?void 0:y.size.value)??"md",buttonVariant:v.buttonVariant??(null==y?void 0:y.buttonVariant.value)??"secondary",hasDefaultSlot:k.value}))),x=t.getClasses(R),F=t.getInputClasses(R),C=t.getLabelClasses(R);return f({blur:()=>{g.value=!1},element:B,focus:()=>{g.value=!0}}),(l,a)=>(e.openBlock(),e.createBlock(u._sfc_main,{skip:q.value,class:e.normalizeClass(e.unref(x))},{default:e.withCtx((()=>{var t,o,u;return[e.withDirectives(e.createElementVNode("input",e.mergeProps({id:e.unref(b)},l.$attrs,{ref:"_input","onUpdate:modelValue":a[0]||(a[0]=e=>V.value=e),class:e.unref(F),type:"radio",disabled:e.unref(v).disabled||(null==(t=e.unref(y))?void 0:t.disabled.value),required:_.value||void 0,name:e.unref(v).name||(null==(o=e.unref(y))?void 0:o.name.value),form:e.unref(v).form||(null==(u=e.unref(y))?void 0:u.form.value),"aria-label":e.unref(v).ariaLabel,"aria-labelledby":e.unref(v).ariaLabelledby,value:e.unref(v).value,"aria-required":_.value||void 0}),null,16,i),[[e.vModelRadio,V.value]]),k.value||!1===e.unref(v).plain?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(b),class:e.normalizeClass(e.unref(C))},[e.renderSlot(l.$slots,"default")],10,n)):e.createCommentVNode("",!0)]})),_:3},8,["skip","class"]))}}),f=["id"],p=e.defineComponent({__name:"BFormRadioGroup",props:e.mergeModels({ariaInvalid:{type:[Boolean,String],default:void 0},autofocus:{type:Boolean,default:!1},buttonVariant:{default:"secondary"},buttons:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},disabledField:{default:"disabled"},form:{default:void 0},id:{default:void 0},name:{default:void 0},options:{default:()=>[]},plain:{type:Boolean,default:!1},required:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},size:{default:"md"},stacked:{type:Boolean,default:!1},state:{type:[Boolean,null],default:null},textField:{default:"text"},validated:{type:Boolean,default:!1},valueField:{default:"value"}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const i=o,n=d.useDefaults(i,"BFormRadioGroup"),p=e.useModel(o,"modelValue"),v=r.useId((()=>n.id),"radio"),m=r.useId((()=>n.name),"checkbox"),c=e.useTemplateRef("_element"),{focused:b}=a.useFocus(c,{initialValue:n.autofocus});e.provide(l.radioGroupKey,{modelValue:p,buttonVariant:e.toRef((()=>n.buttonVariant)),form:e.toRef((()=>n.form)),name:m,buttons:e.toRef((()=>n.buttons)),state:e.toRef((()=>n.state)),plain:e.toRef((()=>n.plain)),size:e.toRef((()=>n.size)),inline:e.toRef((()=>!n.stacked)),reverse:e.toRef((()=>n.reverse)),required:e.toRef((()=>n.required)),disabled:e.toRef((()=>n.disabled))});const y=e.computed((()=>n.options.map((e=>"string"==typeof e||"number"==typeof e?{value:e,disabled:n.disabled,text:e.toString()}:{value:e[n.valueField],disabled:e[n.disabledField],...e.props?e.props:void 0,text:e[n.textField]})))),B=e.computed((()=>({required:n.required,ariaInvalid:n.ariaInvalid,state:n.state,validated:n.validated,buttons:n.buttons,stacked:n.stacked,size:n.size}))),g=t.getGroupAttr(B),k=t.getGroupClasses(B);return u({blur:()=>{b.value=!1},focus:()=>{b.value=!0}}),(l,a)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps(e.unref(g),{id:e.unref(v),ref:"_element",role:"radiogroup",class:[e.unref(k),"bv-no-focus-ring"],tabindex:"-1"}),[e.renderSlot(l.$slots,"first"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,((a,t)=>(e.openBlock(),e.createBlock(s,e.mergeProps({key:t,ref_for:!0},a),{default:e.withCtx((()=>[e.renderSlot(l.$slots,"option",e.mergeProps({ref_for:!0},a),(()=>[e.createTextVNode(e.toDisplayString(a.text),1)]))])),_:2},1040)))),128)),e.renderSlot(l.$slots,"default")],16,f))}});exports._sfc_main=s,exports._sfc_main$1=p;
2
- //# sourceMappingURL=BFormRadioGroup.vue_vue_type_script_setup_true_lang-B5oyJ-Kq.js.map
1
+ "use strict";const e=require("vue"),l=require("./keys-C2BcfuxJ.js"),a=require("./index-CNL2tI0w.js"),t=require("./useFormCheck-DLmeXWHw.js"),o=require("./dom-Dzr6gmPm.js"),u=require("./ConditionalWrapper.vue_vue_type_script_lang-Du33jXia.js"),d=require("./useDefaults-Bq2idhQU.js"),r=require("./useId-BOa4n5pr.js"),i=["id","disabled","required","name","form","aria-label","aria-labelledby","value","aria-required"],n=["for"],s=e.defineComponent({inheritAttrs:!1,__name:"BFormRadio",props:e.mergeModels({ariaLabel:{default:void 0},ariaLabelledby:{default:void 0},autofocus:{type:Boolean,default:!1},button:{type:Boolean,default:!1},buttonGroup:{type:Boolean,default:!1},buttonVariant:{default:null},disabled:{type:Boolean,default:!1},form:{default:void 0},id:{default:void 0},inline:{type:Boolean,default:!1},name:{default:void 0},plain:{type:Boolean,default:!1},required:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},size:{default:void 0},state:{type:[Boolean,null],default:null},value:{type:[Boolean,String,Array,Object,Number,null],default:!0}},{modelValue:{type:[Boolean,String,Array,Object,Number,null],default:void 0},modelModifiers:{}}),emits:["update:modelValue"],setup(s,{expose:f}){const p=s,v=d.useDefaults(p,"BFormRadio"),m=e.useSlots(),c=e.useModel(s,"modelValue"),b=r.useId((()=>v.id),"form-check"),y=e.inject(l.radioGroupKey,null),B=e.useTemplateRef("_input"),{focused:g}=a.useFocus(B,{initialValue:v.autofocus}),k=e.computed((()=>!o.isEmptySlot(m.default))),V=e.computed({get:()=>y?y.modelValue.value:c.value,set:e=>{void 0!==e&&(null===y?c.value=e:y.modelValue.value=e)}}),_=e.computed((()=>!!(v.name??(null==y?void 0:y.name.value))&&(v.required||(null==y?void 0:y.required.value)))),q=e.computed((()=>v.buttonGroup||((null==y?void 0:y.buttons.value)??!1))),R=e.computed((()=>({plain:v.plain||((null==y?void 0:y.plain.value)??!1),button:v.button||((null==y?void 0:y.buttons.value)??!1),inline:v.inline||((null==y?void 0:y.inline.value)??!1),state:v.state||(null==y?void 0:y.state.value),reverse:v.reverse||((null==y?void 0:y.reverse.value)??!1),size:v.size??(null==y?void 0:y.size.value)??"md",buttonVariant:v.buttonVariant??(null==y?void 0:y.buttonVariant.value)??"secondary",hasDefaultSlot:k.value}))),x=t.getClasses(R),F=t.getInputClasses(R),C=t.getLabelClasses(R);return f({blur:()=>{g.value=!1},element:B,focus:()=>{g.value=!0}}),(l,a)=>(e.openBlock(),e.createBlock(u._sfc_main,{skip:q.value,class:e.normalizeClass(e.unref(x))},{default:e.withCtx((()=>{var t,o,u;return[e.withDirectives(e.createElementVNode("input",e.mergeProps({id:e.unref(b)},l.$attrs,{ref:"_input","onUpdate:modelValue":a[0]||(a[0]=e=>V.value=e),class:e.unref(F),type:"radio",disabled:e.unref(v).disabled||(null==(t=e.unref(y))?void 0:t.disabled.value),required:_.value||void 0,name:e.unref(v).name||(null==(o=e.unref(y))?void 0:o.name.value),form:e.unref(v).form||(null==(u=e.unref(y))?void 0:u.form.value),"aria-label":e.unref(v).ariaLabel,"aria-labelledby":e.unref(v).ariaLabelledby,value:e.unref(v).value,"aria-required":_.value||void 0}),null,16,i),[[e.vModelRadio,V.value]]),k.value||!1===e.unref(v).plain?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(b),class:e.normalizeClass(e.unref(C))},[e.renderSlot(l.$slots,"default")],10,n)):e.createCommentVNode("",!0)]})),_:3},8,["skip","class"]))}}),f=["id"],p=e.defineComponent({__name:"BFormRadioGroup",props:e.mergeModels({ariaInvalid:{type:[Boolean,String],default:void 0},autofocus:{type:Boolean,default:!1},buttonVariant:{default:"secondary"},buttons:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},disabledField:{default:"disabled"},form:{default:void 0},id:{default:void 0},name:{default:void 0},options:{default:()=>[]},plain:{type:Boolean,default:!1},required:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},size:{default:"md"},stacked:{type:Boolean,default:!1},state:{type:[Boolean,null],default:null},textField:{default:"text"},validated:{type:Boolean,default:!1},valueField:{default:"value"}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const i=o,n=d.useDefaults(i,"BFormRadioGroup"),p=e.useModel(o,"modelValue"),v=r.useId((()=>n.id),"radio"),m=r.useId((()=>n.name),"checkbox"),c=e.useTemplateRef("_element"),{focused:b}=a.useFocus(c,{initialValue:n.autofocus});e.provide(l.radioGroupKey,{modelValue:p,buttonVariant:e.toRef((()=>n.buttonVariant)),form:e.toRef((()=>n.form)),name:m,buttons:e.toRef((()=>n.buttons)),state:e.toRef((()=>n.state)),plain:e.toRef((()=>n.plain)),size:e.toRef((()=>n.size)),inline:e.toRef((()=>!n.stacked)),reverse:e.toRef((()=>n.reverse)),required:e.toRef((()=>n.required)),disabled:e.toRef((()=>n.disabled))});const y=e.computed((()=>n.options.map((e=>"string"==typeof e||"number"==typeof e?{value:e,disabled:n.disabled,text:e.toString()}:{...e,value:e[n.valueField],disabled:e[n.disabledField],text:e[n.textField]})))),B=e.computed((()=>({required:n.required,ariaInvalid:n.ariaInvalid,state:n.state,validated:n.validated,buttons:n.buttons,stacked:n.stacked,size:n.size}))),g=t.getGroupAttr(B),k=t.getGroupClasses(B);return u({blur:()=>{b.value=!1},focus:()=>{b.value=!0}}),(l,a)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps(e.unref(g),{id:e.unref(v),ref:"_element",role:"radiogroup",class:[e.unref(k),"bv-no-focus-ring"],tabindex:"-1"}),[e.renderSlot(l.$slots,"first"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,((a,t)=>(e.openBlock(),e.createBlock(s,e.mergeProps({key:t,ref_for:!0},a),{default:e.withCtx((()=>[e.renderSlot(l.$slots,"option",e.mergeProps({ref_for:!0},a),(()=>[e.createTextVNode(e.toDisplayString(a.text),1)]))])),_:2},1040)))),128)),e.renderSlot(l.$slots,"default")],16,f))}});exports._sfc_main=s,exports._sfc_main$1=p;
2
+ //# sourceMappingURL=BFormRadioGroup.vue_vue_type_script_setup_true_lang-9APXUQju.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BFormRadioGroup.vue_vue_type_script_setup_true_lang-B5oyJ-Kq.js","sources":["../src/components/BFormRadio/BFormRadio.vue","../src/components/BFormRadio/BFormRadioGroup.vue"],"sourcesContent":["<template>\n <ConditionalWrapper :skip=\"isButtonGroup\" :class=\"computedClasses\">\n <input\n :id=\"computedId\"\n v-bind=\"$attrs\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"inputClasses\"\n type=\"radio\"\n :disabled=\"props.disabled || parentData?.disabled.value\"\n :required=\"computedRequired || undefined\"\n :name=\"props.name || parentData?.name.value\"\n :form=\"props.form || parentData?.form.value\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :value=\"props.value\"\n :aria-required=\"computedRequired || undefined\"\n />\n <label v-if=\"hasDefaultSlot || props.plain === false\" :for=\"computedId\" :class=\"labelClasses\">\n <slot />\n </label>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {useFocus} from '@vueuse/core'\nimport {computed, inject, useTemplateRef} from 'vue'\nimport {getClasses, getInputClasses, getLabelClasses} from '../../composables/useFormCheck'\nimport type {BFormRadioProps} from '../../types/ComponentProps'\nimport {isEmptySlot} from '../../utils/dom'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {RadioValue} from '../../types/RadioTypes'\nimport {useId} from '../../composables/useId'\nimport {radioGroupKey} from '../../utils/keys'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BFormRadioProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n autofocus: false,\n button: false,\n buttonGroup: false,\n buttonVariant: null,\n disabled: false,\n form: undefined,\n id: undefined,\n inline: false,\n name: undefined,\n plain: false,\n required: false,\n reverse: false,\n size: undefined,\n state: null,\n value: true,\n})\nconst props = useDefaults(_props, 'BFormRadio')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst modelValue = defineModel<BFormRadioProps['modelValue']>({\n default: undefined,\n})\n\nconst computedId = useId(() => props.id, 'form-check')\n\nconst parentData = inject(radioGroupKey, null)\n\nconst input = useTemplateRef<HTMLElement>('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\n\nconst localValue = computed({\n get: () => (parentData ? parentData.modelValue.value : modelValue.value),\n set: (newValue) => {\n if (newValue === undefined) return\n if (parentData !== null) {\n parentData.modelValue.value = newValue as RadioValue\n return\n }\n modelValue.value = newValue as RadioValue\n },\n})\n\nconst computedRequired = computed(\n () => !!(props.name ?? parentData?.name.value) && (props.required || parentData?.required.value)\n)\n\nconst isButtonGroup = computed(() => props.buttonGroup || (parentData?.buttons.value ?? false))\n\nconst classesObject = computed(() => ({\n plain: props.plain || (parentData?.plain.value ?? false),\n button: props.button || (parentData?.buttons.value ?? false),\n inline: props.inline || (parentData?.inline.value ?? false),\n state: props.state || parentData?.state.value,\n reverse: props.reverse || (parentData?.reverse.value ?? false),\n size: props.size ?? parentData?.size.value ?? 'md', // This is where the true default is made\n buttonVariant: props.buttonVariant ?? parentData?.buttonVariant.value ?? 'secondary', // This is where the true default is made\n hasDefaultSlot: hasDefaultSlot.value,\n}))\nconst computedClasses = getClasses(classesObject)\nconst inputClasses = getInputClasses(classesObject)\nconst labelClasses = getLabelClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <div\n v-bind=\"computedAttrs\"\n :id=\"computedId\"\n ref=\"_element\"\n role=\"radiogroup\"\n :class=\"computedClasses\"\n class=\"bv-no-focus-ring\"\n tabindex=\"-1\"\n >\n <slot name=\"first\" />\n <BFormRadio v-for=\"(item, index) in normalizeOptions\" :key=\"index\" v-bind=\"item\">\n <slot name=\"option\" v-bind=\"item\">\n {{ item.text }}\n </slot>\n </BFormRadio>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormRadioGroupProps} from '../../types/ComponentProps'\nimport {computed, provide, toRef, useTemplateRef} from 'vue'\nimport {radioGroupKey} from '../../utils/keys'\nimport BFormRadio from './BFormRadio.vue'\nimport {getGroupAttr, getGroupClasses} from '../../composables/useFormCheck'\nimport {useFocus} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\n\nconst _props = withDefaults(defineProps<Omit<BFormRadioGroupProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n buttonVariant: 'secondary',\n buttons: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n name: undefined,\n options: () => [],\n plain: false,\n required: false,\n reverse: false,\n size: 'md',\n stacked: false,\n state: null,\n textField: 'text',\n validated: false,\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormRadioGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n first?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: (props: Record<string, unknown>) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BFormRadioGroupProps['modelValue'], undefined>>({\n default: null,\n})\n\nconst computedId = useId(() => props.id, 'radio')\nconst computedName = useId(() => props.name, 'checkbox')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst {focused} = useFocus(element, {\n initialValue: props.autofocus,\n})\n\nprovide(radioGroupKey, {\n modelValue,\n buttonVariant: toRef(() => props.buttonVariant),\n form: toRef(() => props.form),\n name: computedName,\n buttons: toRef(() => props.buttons),\n state: toRef(() => props.state),\n plain: toRef(() => props.plain),\n size: toRef(() => props.size),\n inline: toRef(() => !props.stacked),\n reverse: toRef(() => props.reverse),\n required: toRef(() => props.required),\n disabled: toRef(() => props.disabled),\n})\n\nconst normalizeOptions = computed(() =>\n props.options.map((el) =>\n typeof el === 'string' || typeof el === 'number'\n ? {\n value: el,\n disabled: props.disabled,\n text: el.toString(),\n }\n : {\n value: el[props.valueField] as string | undefined,\n disabled: el[props.disabledField] as boolean | undefined,\n ...(el.props ? el.props : undefined),\n text: el[props.textField] as string | undefined,\n }\n )\n)\n\nconst classesObject = computed(() => ({\n required: props.required,\n ariaInvalid: props.ariaInvalid,\n state: props.state,\n validated: props.validated,\n buttons: props.buttons,\n stacked: props.stacked,\n size: props.size,\n}))\nconst computedAttrs = getGroupAttr(classesObject)\nconst computedClasses = getGroupClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n focus: () => {\n focused.value = true\n },\n})\n</script>\n"],"names":["_props","__props","props","useDefaults","slots","_useSlots","modelValue","_useModel","computedId","useId","id","parentData","inject","radioGroupKey","input","useTemplateRef","focused","useFocus","initialValue","autofocus","hasDefaultSlot","computed","isEmptySlot","default","localValue","get","value","set","newValue","computedRequired","name","required","isButtonGroup","buttonGroup","buttons","classesObject","plain","button","inline","state","reverse","size","buttonVariant","computedClasses","getClasses","inputClasses","getInputClasses","labelClasses","getLabelClasses","__expose","blur","element","focus","computedName","provide","toRef","form","stacked","disabled","normalizeOptions","options","map","el","text","toString","valueField","disabledField","textField","ariaInvalid","validated","computedAttrs","getGroupAttr","getGroupClasses"],"mappings":"qrCAwCA,MAAMA,EAASC,EAmBTC,EAAQC,EAAAA,YAAYH,EAAQ,cAE5BI,EAAQC,EAAAA,WAKRC,EAAaC,EAAAA,SAElBN,EAAA,cAEKO,EAAaC,EAAAA,OAAM,IAAMP,EAAMQ,IAAI,cAEnCC,EAAaC,EAAAA,OAAOC,EAAAA,cAAe,MAEnCC,EAAQC,iBAA4B,WAEpCC,QAACA,GAAWC,EAAAA,SAASH,EAAO,CAChCI,aAAchB,EAAMiB,YAGhBC,EAAiBC,EAAAA,UAAS,KAAOC,EAAAA,YAAYlB,EAAMmB,WAEnDC,EAAaH,EAAAA,SAAS,CAC1BI,IAAK,IAAOd,EAAaA,EAAWL,WAAWoB,MAAQpB,EAAWoB,MAClEC,IAAMC,SACa,IAAbA,IACe,OAAfjB,EAIJL,EAAWoB,MAAQE,EAHjBjB,EAAWL,WAAWoB,MAAQE,EAGb,IAIjBC,EAAmBR,EAAAA,UACvB,OAASnB,EAAM4B,OAAoB,MAAZnB,OAAY,EAAAA,EAAAmB,KAAKJ,UAAWxB,EAAM6B,WAAY,MAAApB,OAAA,EAAAA,EAAYoB,SAASL,UAGtFM,EAAgBX,YAAS,IAAMnB,EAAM+B,eAAgB,MAAAtB,OAAA,EAAAA,EAAYuB,QAAQR,SAAS,KAElFS,EAAgBd,EAAAA,UAAS,KAAO,CACpCe,MAAOlC,EAAMkC,SAAU,MAAAzB,OAAA,EAAAA,EAAYyB,MAAMV,SAAS,GAClDW,OAAQnC,EAAMmC,UAAW,MAAA1B,OAAA,EAAAA,EAAYuB,QAAQR,SAAS,GACtDY,OAAQpC,EAAMoC,UAAW,MAAA3B,OAAA,EAAAA,EAAY2B,OAAOZ,SAAS,GACrDa,MAAOrC,EAAMqC,QAAS,MAAA5B,OAAA,EAAAA,EAAY4B,MAAMb,OACxCc,QAAStC,EAAMsC,WAAY,MAAA7B,OAAA,EAAAA,EAAY6B,QAAQd,SAAS,GACxDe,KAAMvC,EAAMuC,OAAQ,MAAA9B,OAAA,EAAAA,EAAY8B,KAAKf,QAAS,KAC9CgB,cAAexC,EAAMwC,gBAAiB,MAAA/B,OAAA,EAAAA,EAAY+B,cAAchB,QAAS,YACzEN,eAAgBA,EAAeM,UAE3BiB,EAAkBC,aAAWT,GAC7BU,EAAeC,kBAAgBX,GAC/BY,EAAeC,kBAAgBb,UAExBc,EAAA,CACXC,KAAM,KACJlC,EAAQU,OAAQ,CAAA,EAElByB,QAASrC,EACTsC,MAAO,KACLpC,EAAQU,OAAQ,CAAA,ysDC1FpB,MAAM1B,EAASC,EAqBTC,EAAQC,EAAAA,YAAYH,EAAQ,mBAW5BM,EAAaC,EAAAA,SAElBN,EAAA,cAEKO,EAAaC,EAAAA,OAAM,IAAMP,EAAMQ,IAAI,SACnC2C,EAAe5C,EAAAA,OAAM,IAAMP,EAAM4B,MAAM,YAEvCqB,EAAUpC,iBAA4B,aAEtCC,QAACA,GAAWC,EAAAA,SAASkC,EAAS,CAClCjC,aAAchB,EAAMiB,YAGtBmC,EAAAA,QAAQzC,EAAAA,cAAe,CACrBP,aACAoC,cAAea,EAAAA,OAAM,IAAMrD,EAAMwC,gBACjCc,KAAMD,EAAAA,OAAM,IAAMrD,EAAMsD,OACxB1B,KAAMuB,EACNnB,QAASqB,EAAAA,OAAM,IAAMrD,EAAMgC,UAC3BK,MAAOgB,EAAAA,OAAM,IAAMrD,EAAMqC,QACzBH,MAAOmB,EAAAA,OAAM,IAAMrD,EAAMkC,QACzBK,KAAMc,EAAAA,OAAM,IAAMrD,EAAMuC,OACxBH,OAAQiB,EAAAA,OAAM,KAAOrD,EAAMuD,UAC3BjB,QAASe,EAAAA,OAAM,IAAMrD,EAAMsC,UAC3BT,SAAUwB,EAAAA,OAAM,IAAMrD,EAAM6B,WAC5B2B,SAAUH,EAAAA,OAAM,IAAMrD,EAAMwD,aAG9B,MAAMC,EAAmBtC,EAAAA,UAAS,IAChCnB,EAAM0D,QAAQC,KAAKC,GACH,iBAAPA,GAAiC,iBAAPA,EAC7B,CACEpC,MAAOoC,EACPJ,SAAUxD,EAAMwD,SAChBK,KAAMD,EAAGE,YAEX,CACEtC,MAAOoC,EAAG5D,EAAM+D,YAChBP,SAAUI,EAAG5D,EAAMgE,kBACfJ,EAAG5D,MAAQ4D,EAAG5D,WAAQ,EAC1B6D,KAAMD,EAAG5D,EAAMiE,gBAKnBhC,EAAgBd,EAAAA,UAAS,KAAO,CACpCU,SAAU7B,EAAM6B,SAChBqC,YAAalE,EAAMkE,YACnB7B,MAAOrC,EAAMqC,MACb8B,UAAWnE,EAAMmE,UACjBnC,QAAShC,EAAMgC,QACfuB,QAASvD,EAAMuD,QACfhB,KAAMvC,EAAMuC,SAER6B,EAAgBC,eAAapC,GAC7BQ,EAAkB6B,kBAAgBrC,UAE3Bc,EAAA,CACXC,KAAM,KACJlC,EAAQU,OAAQ,CAAA,EAElB0B,MAAO,KACLpC,EAAQU,OAAQ,CAAA"}
1
+ {"version":3,"file":"BFormRadioGroup.vue_vue_type_script_setup_true_lang-9APXUQju.js","sources":["../src/components/BFormRadio/BFormRadio.vue","../src/components/BFormRadio/BFormRadioGroup.vue"],"sourcesContent":["<template>\n <ConditionalWrapper :skip=\"isButtonGroup\" :class=\"computedClasses\">\n <input\n :id=\"computedId\"\n v-bind=\"$attrs\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"inputClasses\"\n type=\"radio\"\n :disabled=\"props.disabled || parentData?.disabled.value\"\n :required=\"computedRequired || undefined\"\n :name=\"props.name || parentData?.name.value\"\n :form=\"props.form || parentData?.form.value\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :value=\"props.value\"\n :aria-required=\"computedRequired || undefined\"\n />\n <label v-if=\"hasDefaultSlot || props.plain === false\" :for=\"computedId\" :class=\"labelClasses\">\n <slot />\n </label>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {useFocus} from '@vueuse/core'\nimport {computed, inject, useTemplateRef} from 'vue'\nimport {getClasses, getInputClasses, getLabelClasses} from '../../composables/useFormCheck'\nimport type {BFormRadioProps} from '../../types/ComponentProps'\nimport {isEmptySlot} from '../../utils/dom'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {RadioValue} from '../../types/RadioTypes'\nimport {useId} from '../../composables/useId'\nimport {radioGroupKey} from '../../utils/keys'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BFormRadioProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n autofocus: false,\n button: false,\n buttonGroup: false,\n buttonVariant: null,\n disabled: false,\n form: undefined,\n id: undefined,\n inline: false,\n name: undefined,\n plain: false,\n required: false,\n reverse: false,\n size: undefined,\n state: null,\n value: true,\n})\nconst props = useDefaults(_props, 'BFormRadio')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst modelValue = defineModel<BFormRadioProps['modelValue']>({\n default: undefined,\n})\n\nconst computedId = useId(() => props.id, 'form-check')\n\nconst parentData = inject(radioGroupKey, null)\n\nconst input = useTemplateRef<HTMLElement>('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\n\nconst localValue = computed({\n get: () => (parentData ? parentData.modelValue.value : modelValue.value),\n set: (newValue) => {\n if (newValue === undefined) return\n if (parentData !== null) {\n parentData.modelValue.value = newValue as RadioValue\n return\n }\n modelValue.value = newValue as RadioValue\n },\n})\n\nconst computedRequired = computed(\n () => !!(props.name ?? parentData?.name.value) && (props.required || parentData?.required.value)\n)\n\nconst isButtonGroup = computed(() => props.buttonGroup || (parentData?.buttons.value ?? false))\n\nconst classesObject = computed(() => ({\n plain: props.plain || (parentData?.plain.value ?? false),\n button: props.button || (parentData?.buttons.value ?? false),\n inline: props.inline || (parentData?.inline.value ?? false),\n state: props.state || parentData?.state.value,\n reverse: props.reverse || (parentData?.reverse.value ?? false),\n size: props.size ?? parentData?.size.value ?? 'md', // This is where the true default is made\n buttonVariant: props.buttonVariant ?? parentData?.buttonVariant.value ?? 'secondary', // This is where the true default is made\n hasDefaultSlot: hasDefaultSlot.value,\n}))\nconst computedClasses = getClasses(classesObject)\nconst inputClasses = getInputClasses(classesObject)\nconst labelClasses = getLabelClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <div\n v-bind=\"computedAttrs\"\n :id=\"computedId\"\n ref=\"_element\"\n role=\"radiogroup\"\n :class=\"computedClasses\"\n class=\"bv-no-focus-ring\"\n tabindex=\"-1\"\n >\n <slot name=\"first\" />\n <BFormRadio v-for=\"(item, index) in normalizeOptions\" :key=\"index\" v-bind=\"item\">\n <slot name=\"option\" v-bind=\"item\">\n {{ item.text }}\n </slot>\n </BFormRadio>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormRadioGroupProps} from '../../types/ComponentProps'\nimport {computed, provide, toRef, useTemplateRef} from 'vue'\nimport {radioGroupKey} from '../../utils/keys'\nimport BFormRadio from './BFormRadio.vue'\nimport {getGroupAttr, getGroupClasses} from '../../composables/useFormCheck'\nimport {useFocus} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\n\nconst _props = withDefaults(defineProps<Omit<BFormRadioGroupProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n buttonVariant: 'secondary',\n buttons: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n name: undefined,\n options: () => [],\n plain: false,\n required: false,\n reverse: false,\n size: 'md',\n stacked: false,\n state: null,\n textField: 'text',\n validated: false,\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormRadioGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n first?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: (props: Record<string, unknown>) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BFormRadioGroupProps['modelValue'], undefined>>({\n default: null,\n})\n\nconst computedId = useId(() => props.id, 'radio')\nconst computedName = useId(() => props.name, 'checkbox')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst {focused} = useFocus(element, {\n initialValue: props.autofocus,\n})\n\nprovide(radioGroupKey, {\n modelValue,\n buttonVariant: toRef(() => props.buttonVariant),\n form: toRef(() => props.form),\n name: computedName,\n buttons: toRef(() => props.buttons),\n state: toRef(() => props.state),\n plain: toRef(() => props.plain),\n size: toRef(() => props.size),\n inline: toRef(() => !props.stacked),\n reverse: toRef(() => props.reverse),\n required: toRef(() => props.required),\n disabled: toRef(() => props.disabled),\n})\n\nconst normalizeOptions = computed(() =>\n props.options.map((el) =>\n typeof el === 'string' || typeof el === 'number'\n ? {\n value: el,\n disabled: props.disabled,\n text: el.toString(),\n }\n : {\n ...el,\n value: el[props.valueField] as string | undefined,\n disabled: el[props.disabledField] as boolean | undefined,\n text: el[props.textField] as string | undefined,\n }\n )\n)\n\nconst classesObject = computed(() => ({\n required: props.required,\n ariaInvalid: props.ariaInvalid,\n state: props.state,\n validated: props.validated,\n buttons: props.buttons,\n stacked: props.stacked,\n size: props.size,\n}))\nconst computedAttrs = getGroupAttr(classesObject)\nconst computedClasses = getGroupClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n focus: () => {\n focused.value = true\n },\n})\n</script>\n"],"names":["_props","__props","props","useDefaults","slots","_useSlots","modelValue","_useModel","computedId","useId","id","parentData","inject","radioGroupKey","input","useTemplateRef","focused","useFocus","initialValue","autofocus","hasDefaultSlot","computed","isEmptySlot","default","localValue","get","value","set","newValue","computedRequired","name","required","isButtonGroup","buttonGroup","buttons","classesObject","plain","button","inline","state","reverse","size","buttonVariant","computedClasses","getClasses","inputClasses","getInputClasses","labelClasses","getLabelClasses","__expose","blur","element","focus","computedName","provide","toRef","form","stacked","disabled","normalizeOptions","options","map","el","text","toString","valueField","disabledField","textField","ariaInvalid","validated","computedAttrs","getGroupAttr","getGroupClasses"],"mappings":"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"}
@@ -188,9 +188,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
188
188
  disabled: props.disabled,
189
189
  text: el.toString()
190
190
  } : {
191
+ ...el,
191
192
  value: el[props.valueField],
192
193
  disabled: el[props.disabledField],
193
- ...el.props ? el.props : void 0,
194
194
  text: el[props.textField]
195
195
  }
196
196
  )
@@ -245,4 +245,4 @@ export {
245
245
  _sfc_main$1 as _,
246
246
  _sfc_main as a
247
247
  };
248
- //# sourceMappingURL=BFormRadioGroup.vue_vue_type_script_setup_true_lang--UYbn-2B.mjs.map
248
+ //# sourceMappingURL=BFormRadioGroup.vue_vue_type_script_setup_true_lang-DZSUruyu.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BFormRadioGroup.vue_vue_type_script_setup_true_lang--UYbn-2B.mjs","sources":["../src/components/BFormRadio/BFormRadio.vue","../src/components/BFormRadio/BFormRadioGroup.vue"],"sourcesContent":["<template>\n <ConditionalWrapper :skip=\"isButtonGroup\" :class=\"computedClasses\">\n <input\n :id=\"computedId\"\n v-bind=\"$attrs\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"inputClasses\"\n type=\"radio\"\n :disabled=\"props.disabled || parentData?.disabled.value\"\n :required=\"computedRequired || undefined\"\n :name=\"props.name || parentData?.name.value\"\n :form=\"props.form || parentData?.form.value\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :value=\"props.value\"\n :aria-required=\"computedRequired || undefined\"\n />\n <label v-if=\"hasDefaultSlot || props.plain === false\" :for=\"computedId\" :class=\"labelClasses\">\n <slot />\n </label>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {useFocus} from '@vueuse/core'\nimport {computed, inject, useTemplateRef} from 'vue'\nimport {getClasses, getInputClasses, getLabelClasses} from '../../composables/useFormCheck'\nimport type {BFormRadioProps} from '../../types/ComponentProps'\nimport {isEmptySlot} from '../../utils/dom'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {RadioValue} from '../../types/RadioTypes'\nimport {useId} from '../../composables/useId'\nimport {radioGroupKey} from '../../utils/keys'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BFormRadioProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n autofocus: false,\n button: false,\n buttonGroup: false,\n buttonVariant: null,\n disabled: false,\n form: undefined,\n id: undefined,\n inline: false,\n name: undefined,\n plain: false,\n required: false,\n reverse: false,\n size: undefined,\n state: null,\n value: true,\n})\nconst props = useDefaults(_props, 'BFormRadio')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst modelValue = defineModel<BFormRadioProps['modelValue']>({\n default: undefined,\n})\n\nconst computedId = useId(() => props.id, 'form-check')\n\nconst parentData = inject(radioGroupKey, null)\n\nconst input = useTemplateRef<HTMLElement>('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\n\nconst localValue = computed({\n get: () => (parentData ? parentData.modelValue.value : modelValue.value),\n set: (newValue) => {\n if (newValue === undefined) return\n if (parentData !== null) {\n parentData.modelValue.value = newValue as RadioValue\n return\n }\n modelValue.value = newValue as RadioValue\n },\n})\n\nconst computedRequired = computed(\n () => !!(props.name ?? parentData?.name.value) && (props.required || parentData?.required.value)\n)\n\nconst isButtonGroup = computed(() => props.buttonGroup || (parentData?.buttons.value ?? false))\n\nconst classesObject = computed(() => ({\n plain: props.plain || (parentData?.plain.value ?? false),\n button: props.button || (parentData?.buttons.value ?? false),\n inline: props.inline || (parentData?.inline.value ?? false),\n state: props.state || parentData?.state.value,\n reverse: props.reverse || (parentData?.reverse.value ?? false),\n size: props.size ?? parentData?.size.value ?? 'md', // This is where the true default is made\n buttonVariant: props.buttonVariant ?? parentData?.buttonVariant.value ?? 'secondary', // This is where the true default is made\n hasDefaultSlot: hasDefaultSlot.value,\n}))\nconst computedClasses = getClasses(classesObject)\nconst inputClasses = getInputClasses(classesObject)\nconst labelClasses = getLabelClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <div\n v-bind=\"computedAttrs\"\n :id=\"computedId\"\n ref=\"_element\"\n role=\"radiogroup\"\n :class=\"computedClasses\"\n class=\"bv-no-focus-ring\"\n tabindex=\"-1\"\n >\n <slot name=\"first\" />\n <BFormRadio v-for=\"(item, index) in normalizeOptions\" :key=\"index\" v-bind=\"item\">\n <slot name=\"option\" v-bind=\"item\">\n {{ item.text }}\n </slot>\n </BFormRadio>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormRadioGroupProps} from '../../types/ComponentProps'\nimport {computed, provide, toRef, useTemplateRef} from 'vue'\nimport {radioGroupKey} from '../../utils/keys'\nimport BFormRadio from './BFormRadio.vue'\nimport {getGroupAttr, getGroupClasses} from '../../composables/useFormCheck'\nimport {useFocus} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\n\nconst _props = withDefaults(defineProps<Omit<BFormRadioGroupProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n buttonVariant: 'secondary',\n buttons: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n name: undefined,\n options: () => [],\n plain: false,\n required: false,\n reverse: false,\n size: 'md',\n stacked: false,\n state: null,\n textField: 'text',\n validated: false,\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormRadioGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n first?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: (props: Record<string, unknown>) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BFormRadioGroupProps['modelValue'], undefined>>({\n default: null,\n})\n\nconst computedId = useId(() => props.id, 'radio')\nconst computedName = useId(() => props.name, 'checkbox')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst {focused} = useFocus(element, {\n initialValue: props.autofocus,\n})\n\nprovide(radioGroupKey, {\n modelValue,\n buttonVariant: toRef(() => props.buttonVariant),\n form: toRef(() => props.form),\n name: computedName,\n buttons: toRef(() => props.buttons),\n state: toRef(() => props.state),\n plain: toRef(() => props.plain),\n size: toRef(() => props.size),\n inline: toRef(() => !props.stacked),\n reverse: toRef(() => props.reverse),\n required: toRef(() => props.required),\n disabled: toRef(() => props.disabled),\n})\n\nconst normalizeOptions = computed(() =>\n props.options.map((el) =>\n typeof el === 'string' || typeof el === 'number'\n ? {\n value: el,\n disabled: props.disabled,\n text: el.toString(),\n }\n : {\n value: el[props.valueField] as string | undefined,\n disabled: el[props.disabledField] as boolean | undefined,\n ...(el.props ? el.props : undefined),\n text: el[props.textField] as string | undefined,\n }\n )\n)\n\nconst classesObject = computed(() => ({\n required: props.required,\n ariaInvalid: props.ariaInvalid,\n state: props.state,\n validated: props.validated,\n buttons: props.buttons,\n stacked: props.stacked,\n size: props.size,\n}))\nconst computedAttrs = getGroupAttr(classesObject)\nconst computedClasses = getGroupClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n focus: () => {\n focused.value = true\n },\n})\n</script>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"BFormRadioGroup.vue_vue_type_script_setup_true_lang-DZSUruyu.mjs","sources":["../src/components/BFormRadio/BFormRadio.vue","../src/components/BFormRadio/BFormRadioGroup.vue"],"sourcesContent":["<template>\n <ConditionalWrapper :skip=\"isButtonGroup\" :class=\"computedClasses\">\n <input\n :id=\"computedId\"\n v-bind=\"$attrs\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"inputClasses\"\n type=\"radio\"\n :disabled=\"props.disabled || parentData?.disabled.value\"\n :required=\"computedRequired || undefined\"\n :name=\"props.name || parentData?.name.value\"\n :form=\"props.form || parentData?.form.value\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :value=\"props.value\"\n :aria-required=\"computedRequired || undefined\"\n />\n <label v-if=\"hasDefaultSlot || props.plain === false\" :for=\"computedId\" :class=\"labelClasses\">\n <slot />\n </label>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {useFocus} from '@vueuse/core'\nimport {computed, inject, useTemplateRef} from 'vue'\nimport {getClasses, getInputClasses, getLabelClasses} from '../../composables/useFormCheck'\nimport type {BFormRadioProps} from '../../types/ComponentProps'\nimport {isEmptySlot} from '../../utils/dom'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {RadioValue} from '../../types/RadioTypes'\nimport {useId} from '../../composables/useId'\nimport {radioGroupKey} from '../../utils/keys'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BFormRadioProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n autofocus: false,\n button: false,\n buttonGroup: false,\n buttonVariant: null,\n disabled: false,\n form: undefined,\n id: undefined,\n inline: false,\n name: undefined,\n plain: false,\n required: false,\n reverse: false,\n size: undefined,\n state: null,\n value: true,\n})\nconst props = useDefaults(_props, 'BFormRadio')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst modelValue = defineModel<BFormRadioProps['modelValue']>({\n default: undefined,\n})\n\nconst computedId = useId(() => props.id, 'form-check')\n\nconst parentData = inject(radioGroupKey, null)\n\nconst input = useTemplateRef<HTMLElement>('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\n\nconst localValue = computed({\n get: () => (parentData ? parentData.modelValue.value : modelValue.value),\n set: (newValue) => {\n if (newValue === undefined) return\n if (parentData !== null) {\n parentData.modelValue.value = newValue as RadioValue\n return\n }\n modelValue.value = newValue as RadioValue\n },\n})\n\nconst computedRequired = computed(\n () => !!(props.name ?? parentData?.name.value) && (props.required || parentData?.required.value)\n)\n\nconst isButtonGroup = computed(() => props.buttonGroup || (parentData?.buttons.value ?? false))\n\nconst classesObject = computed(() => ({\n plain: props.plain || (parentData?.plain.value ?? false),\n button: props.button || (parentData?.buttons.value ?? false),\n inline: props.inline || (parentData?.inline.value ?? false),\n state: props.state || parentData?.state.value,\n reverse: props.reverse || (parentData?.reverse.value ?? false),\n size: props.size ?? parentData?.size.value ?? 'md', // This is where the true default is made\n buttonVariant: props.buttonVariant ?? parentData?.buttonVariant.value ?? 'secondary', // This is where the true default is made\n hasDefaultSlot: hasDefaultSlot.value,\n}))\nconst computedClasses = getClasses(classesObject)\nconst inputClasses = getInputClasses(classesObject)\nconst labelClasses = getLabelClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <div\n v-bind=\"computedAttrs\"\n :id=\"computedId\"\n ref=\"_element\"\n role=\"radiogroup\"\n :class=\"computedClasses\"\n class=\"bv-no-focus-ring\"\n tabindex=\"-1\"\n >\n <slot name=\"first\" />\n <BFormRadio v-for=\"(item, index) in normalizeOptions\" :key=\"index\" v-bind=\"item\">\n <slot name=\"option\" v-bind=\"item\">\n {{ item.text }}\n </slot>\n </BFormRadio>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormRadioGroupProps} from '../../types/ComponentProps'\nimport {computed, provide, toRef, useTemplateRef} from 'vue'\nimport {radioGroupKey} from '../../utils/keys'\nimport BFormRadio from './BFormRadio.vue'\nimport {getGroupAttr, getGroupClasses} from '../../composables/useFormCheck'\nimport {useFocus} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\n\nconst _props = withDefaults(defineProps<Omit<BFormRadioGroupProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n buttonVariant: 'secondary',\n buttons: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n name: undefined,\n options: () => [],\n plain: false,\n required: false,\n reverse: false,\n size: 'md',\n stacked: false,\n state: null,\n textField: 'text',\n validated: false,\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormRadioGroup')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n first?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: (props: Record<string, unknown>) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BFormRadioGroupProps['modelValue'], undefined>>({\n default: null,\n})\n\nconst computedId = useId(() => props.id, 'radio')\nconst computedName = useId(() => props.name, 'checkbox')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst {focused} = useFocus(element, {\n initialValue: props.autofocus,\n})\n\nprovide(radioGroupKey, {\n modelValue,\n buttonVariant: toRef(() => props.buttonVariant),\n form: toRef(() => props.form),\n name: computedName,\n buttons: toRef(() => props.buttons),\n state: toRef(() => props.state),\n plain: toRef(() => props.plain),\n size: toRef(() => props.size),\n inline: toRef(() => !props.stacked),\n reverse: toRef(() => props.reverse),\n required: toRef(() => props.required),\n disabled: toRef(() => props.disabled),\n})\n\nconst normalizeOptions = computed(() =>\n props.options.map((el) =>\n typeof el === 'string' || typeof el === 'number'\n ? {\n value: el,\n disabled: props.disabled,\n text: el.toString(),\n }\n : {\n ...el,\n value: el[props.valueField] as string | undefined,\n disabled: el[props.disabledField] as boolean | undefined,\n text: el[props.textField] as string | undefined,\n }\n )\n)\n\nconst classesObject = computed(() => ({\n required: props.required,\n ariaInvalid: props.ariaInvalid,\n state: props.state,\n validated: props.validated,\n buttons: props.buttons,\n stacked: props.stacked,\n size: props.size,\n}))\nconst computedAttrs = getGroupAttr(classesObject)\nconst computedClasses = getGroupClasses(classesObject)\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n focus: () => {\n focused.value = true\n },\n})\n</script>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, mergeModels, useSlots, useModel, useTemplateRef, computed, watch, openBlock, createBlock, unref, withCtx, Transition, mergeProps, withDirectives, createElementVNode, withModifiers, normalizeClass, createElementBlock, renderSlot, normalizeProps, guardReactiveProps, resolveDynamicComponent, createTextVNode, toDisplayString, Fragment, createCommentVNode, createVNode, vShow, normalizeStyle, renderList } from "vue";
2
2
  import { u as useDefaults } from "./useDefaults-BTLXvYhO.mjs";
3
3
  import { o as onKeyStroke, c as useFocus } from "./index-Bkyn4R9C.mjs";
4
- import { a as useActivatedFocusTrap, u as useSafeScrollLock } from "./useSafeScrollLock-DjG0jeMK.mjs";
4
+ import { a as useActivatedFocusTrap, u as useSafeScrollLock } from "./useSafeScrollLock-AzNp4AUZ.mjs";
5
5
  import { _ as _sfc_main$3 } from "./BButton.vue_vue_type_script_setup_true_lang-BC0Lfmfc.mjs";
6
6
  import { _ as _sfc_main$4 } from "./BCloseButton.vue_vue_type_script_setup_true_lang-B0EXlL9P.mjs";
7
7
  import { u as useId } from "./useId-c2wnQbyL.mjs";
@@ -477,4 +477,4 @@ export {
477
477
  BModal as B,
478
478
  _sfc_main as _
479
479
  };
480
- //# sourceMappingURL=BModalOrchestrator.vue_vue_type_script_setup_true_lang-CwsLFqd0.mjs.map
480
+ //# sourceMappingURL=BModalOrchestrator.vue_vue_type_script_setup_true_lang-B7a7Jf08.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BModalOrchestrator.vue_vue_type_script_setup_true_lang-CwsLFqd0.mjs","sources":["../src/components/BModal/BModal.vue","../src/components/BModal/BModalOrchestrator.vue"],"sourcesContent":["<template>\n <ConditionalTeleport :to=\"props.teleportTo\" :disabled=\"props.teleportDisabled\">\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n @after-enter=\"onAfterEnter\"\n >\n <div\n v-show=\"showRef && ((backdropReady && props.backdropFirst) || !props.backdropFirst)\"\n :id=\"computedId\"\n ref=\"_element\"\n class=\"modal\"\n :class=\"[\n props.modalClass,\n {\n fade: !computedNoAnimation,\n show: isVisible,\n },\n ]\"\n role=\"dialog\"\n :aria-labelledby=\"!props.noHeader ? `${computedId}-label` : undefined\"\n :aria-describedby=\"`${computedId}-body`\"\n tabindex=\"-1\"\n v-bind=\"$attrs\"\n :style=\"computedZIndex\"\n @click.self=\"hide('backdrop')\"\n >\n <div class=\"modal-dialog\" :class=\"modalDialogClasses\">\n <div v-if=\"contentShowing\" class=\"modal-content\" :class=\"props.contentClass\">\n <div v-if=\"!props.noHeader\" class=\"modal-header\" :class=\"headerClasses\">\n <slot name=\"header\" v-bind=\"sharedSlots\">\n <component\n :is=\"props.titleTag\"\n :id=\"`${computedId}-label`\"\n class=\"modal-title\"\n :class=\"titleClasses\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </component>\n <template v-if=\"!props.noHeaderClose\">\n <BButton\n v-if=\"hasHeaderCloseSlot\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n >\n <slot name=\"header-close\" />\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.headerCloseLabel\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n />\n </template>\n </slot>\n </div>\n <div\n :id=\"`${computedId}-body`\"\n class=\"modal-body\"\n :class=\"bodyClasses\"\n v-bind=\"props.bodyAttrs\"\n >\n <slot v-bind=\"sharedSlots\">\n {{ props.body }}\n </slot>\n </div>\n <div v-if=\"!props.noFooter\" class=\"modal-footer\" :class=\"footerClasses\">\n <slot name=\"footer\" v-bind=\"sharedSlots\">\n <slot name=\"cancel\" v-bind=\"sharedSlots\">\n <BButton\n v-if=\"!props.okOnly\"\n ref=\"_cancelButton\"\n :disabled=\"disableCancel\"\n :size=\"props.buttonSize\"\n :variant=\"props.cancelVariant\"\n @click=\"hide('cancel')\"\n >\n {{ props.cancelTitle }}\n </BButton>\n </slot>\n <slot name=\"ok\" v-bind=\"sharedSlots\">\n <BButton\n ref=\"_okButton\"\n :disabled=\"disableOk\"\n :size=\"props.buttonSize\"\n :variant=\"props.okVariant\"\n @click=\"hide('ok')\"\n >\n {{ props.okTitle }}\n </BButton>\n </slot>\n </slot>\n </div>\n </div>\n </div>\n <div\n v-if=\"needsFallback\"\n ref=\"_fallbackFocusElement\"\n :class=\"fallbackClassSelector\"\n tabindex=\"0\"\n style=\"width: 0; height: 0; overflow: hidden\"\n />\n </div>\n </Transition>\n <slot v-if=\"!props.noBackdrop\" name=\"backdrop\" v-bind=\"sharedSlots\">\n <Transition v-if=\"renderBackdropRef\" v-bind=\"backdropTransitionProps\">\n <div\n v-show=\"showRef || (isLeaving && props.backdropFirst && !computedNoAnimation)\"\n class=\"modal-backdrop\"\n :style=\"computedZIndexBackdrop\"\n :class=\"{\n fade: !computedNoAnimation,\n show: backdropVisible || computedNoAnimation,\n }\"\n @click=\"hide('backdrop')\"\n />\n </Transition>\n </slot>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {onKeyStroke, useFocus} from '@vueuse/core'\nimport {useActivatedFocusTrap} from '../../composables/useActivatedFocusTrap'\nimport {computed, type CSSProperties, type EmitFn, useTemplateRef, watch} from 'vue'\nimport type {BModalProps} from '../../types/ComponentProps'\nimport {BvTriggerableEvent} from '../../utils'\nimport BButton from '../BButton/BButton.vue'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useSafeScrollLock} from '../../composables/useSafeScrollLock'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useModalManager} from '../../composables/useModalManager'\nimport {type showHideEmits, useShowHide} from '../../composables/useShowHide'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\n// aria\n// autofocus\n// close on escape when autofocus\n\n// Note, attempt to return focus to item that openned the modal after close\n// Implement auto focus props like autoFocusButton\n\nconst _props = withDefaults(defineProps<Omit<BModalProps, 'modelValue'>>(), {\n autofocus: true,\n autofocusButton: undefined,\n backdropFirst: false,\n body: undefined,\n bodyBgVariant: null,\n bodyAttrs: undefined,\n bodyClass: null,\n bodyScrolling: false,\n bodyTextVariant: null,\n bodyVariant: null,\n busy: false,\n buttonSize: 'md',\n cancelDisabled: false,\n cancelTitle: 'Cancel',\n cancelVariant: 'secondary',\n centered: false,\n contentClass: undefined,\n dialogClass: undefined,\n footerBgVariant: null,\n footerBorderVariant: null,\n footerClass: undefined,\n footerTextVariant: null,\n footerVariant: null,\n fullscreen: false,\n headerBgVariant: null,\n headerBorderVariant: null,\n headerClass: undefined,\n headerCloseClass: undefined,\n headerCloseLabel: 'Close',\n headerCloseVariant: 'secondary',\n headerTextVariant: null,\n headerVariant: null,\n noFooter: false,\n noHeader: false,\n noHeaderClose: false,\n id: undefined,\n initialAnimation: false,\n lazy: false,\n modalClass: undefined,\n noBackdrop: false,\n noCloseOnBackdrop: false,\n noCloseOnEsc: false,\n noFade: false,\n noTrap: false,\n okDisabled: false,\n okOnly: false,\n okTitle: 'OK',\n okVariant: 'primary',\n unmountLazy: false,\n scrollable: false,\n size: 'md',\n teleportDisabled: false,\n teleportTo: 'body',\n title: undefined,\n titleClass: undefined,\n titleVisuallyHidden: false,\n titleTag: 'h5',\n show: false,\n transProps: undefined,\n visible: false,\n})\nconst props = useDefaults(_props, 'BModal')\n\nconst emit = defineEmits<\n {\n backdrop: [value: BvTriggerableEvent]\n cancel: [value: BvTriggerableEvent]\n close: [value: BvTriggerableEvent]\n esc: [value: BvTriggerableEvent]\n ok: [value: BvTriggerableEvent]\n } & showHideEmits\n>()\n\ntype SharedSlotsData = {\n cancel: () => void\n close: () => void\n hide: (trigger?: string) => void\n ok: () => void\n active: boolean\n visible: boolean\n}\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'backdrop'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'cancel'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'default'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'footer'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'header'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'header-close'?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'ok'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'title'?: (props: SharedSlotsData) => any\n}>()\n\nconst computedId = useId(() => props.id, 'modal')\n// Note: passive: true will sync an internal ref... This is required for useModalManager to exit,\n// Since the modelValue that's passed from that composable is not reactive, this internal ref _is_ and thus it will trigger closing the modal\nconst modelValue = defineModel<Exclude<BModalProps['modelValue'], undefined>>({default: false})\n\nconst element = useTemplateRef<HTMLElement>('_element')\nconst fallbackFocusElement = useTemplateRef<HTMLElement>('_fallbackFocusElement')\nconst okButton = useTemplateRef<HTMLElement>('_okButton')\nconst cancelButton = useTemplateRef<HTMLElement>('_cancelButton')\nconst closeButton = useTemplateRef<HTMLElement>('_closeButton')\n\nconst pickFocusItem = () => {\n if (props.autofocus === false) return\n if (props.autofocusButton === 'ok') {\n okButtonFocus.value = true\n } else if (props.autofocusButton === 'close') {\n closeButtonFocus.value = true\n } else if (props.autofocusButton === 'cancel') {\n cancelButtonFocus.value = true\n } else {\n modalFocus.value = true\n }\n}\n\nconst onAfterEnter = () => {\n pickFocusItem()\n}\n\nconst {\n showRef,\n renderRef,\n renderBackdropRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n transitionProps,\n backdropTransitionProps,\n isLeaving,\n isVisible,\n trapActive,\n contentShowing,\n backdropReady,\n backdropVisible,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId, {\n // addShowClass: false,\n transitionProps: {\n onAfterEnter,\n },\n})\n\nconst fallbackClassSelector = 'modal-fallback-focus'\nconst {needsFallback} = useActivatedFocusTrap({\n element,\n isActive: trapActive,\n noTrap: () => props.noTrap,\n fallbackFocus: {\n ref: fallbackFocusElement,\n classSelector: fallbackClassSelector,\n },\n})\n\nonKeyStroke(\n 'Escape',\n () => {\n hide('esc')\n },\n {target: element}\n)\nuseSafeScrollLock(showRef, () => props.bodyScrolling)\nconst {focused: modalFocus} = useFocus(element, {\n initialValue: modelValue.value && props.autofocusButton === undefined && props.autofocus === true,\n})\nconst {focused: okButtonFocus} = useFocus(okButton, {\n initialValue: modelValue.value && props.autofocusButton === 'ok' && props.autofocus === true,\n})\nconst {focused: cancelButtonFocus} = useFocus(cancelButton, {\n initialValue: modelValue.value && props.autofocusButton === 'cancel' && props.autofocus === true,\n})\nconst {focused: closeButtonFocus} = useFocus(closeButton, {\n initialValue: modelValue.value && props.autofocusButton === 'close' && props.autofocus === true,\n})\n\nconst hasHeaderCloseSlot = computed(() => !isEmptySlot(slots['header-close']))\n\nconst modalDialogClasses = computed(() => [\n props.dialogClass,\n {\n 'modal-fullscreen': props.fullscreen === true,\n [`modal-fullscreen-${props.fullscreen}-down`]: typeof props.fullscreen === 'string',\n [`modal-${props.size}`]: props.size !== 'md',\n 'modal-dialog-centered': props.centered,\n 'modal-dialog-scrollable': props.scrollable,\n },\n])\n\nconst bodyColorClasses = useColorVariantClasses(() => ({\n bgVariant: props.bodyBgVariant,\n textVariant: props.bodyTextVariant,\n variant: props.bodyVariant,\n}))\nconst bodyClasses = computed(() => [props.bodyClass, bodyColorClasses.value])\n\nconst headerColorClasses = useColorVariantClasses(() => ({\n bgVariant: props.headerBgVariant,\n textVariant: props.headerTextVariant,\n variant: props.headerVariant,\n borderVariant: props.headerBorderVariant,\n}))\nconst headerClasses = computed(() => [props.headerClass, headerColorClasses.value])\n\nconst headerCloseAttrs = computed(() => ({\n variant: hasHeaderCloseSlot.value ? props.headerCloseVariant : undefined,\n class: props.headerCloseClass,\n}))\n\nconst footerColorClasses = useColorVariantClasses(() => ({\n bgVariant: props.footerBgVariant,\n textVariant: props.footerTextVariant,\n variant: props.footerVariant,\n borderVariant: props.footerBorderVariant,\n}))\nconst footerClasses = computed(() => [props.footerClass, footerColorClasses.value])\n\nconst titleClasses = computed(() => [\n props.titleClass,\n {\n ['visually-hidden']: props.titleVisuallyHidden,\n },\n])\nconst disableCancel = computed(() => props.cancelDisabled || props.busy)\nconst disableOk = computed(() => props.okDisabled || props.busy)\n\nconst {activePosition, activeModalCount, stackWithoutSelf} = useModalManager(\n showRef,\n modelValue.value\n)\n\nwatch(stackWithoutSelf, (newValue, oldValue) => {\n if (newValue.length > oldValue.length && showRef.value === true && props.noStacking === true)\n hide()\n})\n\nconst defaultModalDialogZIndex = 1056\nconst computedZIndexNumber = computed<number>(() =>\n // Make sure that newly opened modals have a higher z-index than currently active ones.\n // All active modals have a z-index of ('defaultZIndex' - 'stackSize' - 'positionInStack').\n //\n // This means inactive modals will already be higher than active ones when opened.\n\n showRef.value || isLeaving.value\n ? // Just for reference there is a single frame in which the modal is not active but still has a higher z-index than the active ones due to _when_ it calculates its position. It's a small visual effect\n defaultModalDialogZIndex -\n ((activeModalCount?.value ?? 0) * 2 - (activePosition?.value ?? 0) * 2)\n : defaultModalDialogZIndex\n)\nconst computedZIndex = computed<CSSProperties>(() => ({\n 'z-index': computedZIndexNumber.value,\n}))\nconst computedZIndexBackdrop = computed<CSSProperties>(() => ({\n 'z-index': computedZIndexNumber.value - 1,\n}))\n\nconst sharedSlots = computed<SharedSlotsData>(() => ({\n cancel: () => {\n hide('cancel')\n },\n close: () => {\n hide('close')\n },\n hide,\n ok: () => {\n hide('ok')\n },\n active: showRef.value,\n visible: showRef.value,\n}))\n\ndefineExpose({\n hide,\n id: computedId,\n show,\n toggle,\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.modal {\n display: block;\n}\n\n.modal-dialog {\n z-index: 1051;\n}\n</style>\n","<template>\n <ConditionalTeleport :to=\"props.teleportTo\" :disabled=\"props.teleportDisabled\">\n <div id=\"__BVID__modal-container\" v-bind=\"$attrs\">\n <component\n :is=\"modal.component ?? BModal\"\n v-for=\"[self, modal] in tools.modals?.value\"\n :key=\"self\"\n v-bind=\"modal.props\"\n v-model=\"modal.props._modelValue\"\n initial-animation\n :teleport-disabled=\"true\"\n @update:model-value=\"tools.leave?.(self)\"\n @hide=\"\n (e: BvTriggerableEvent) => {\n // These following are confirm rules, otherwise we always resolve true\n if (modal.props._isConfirm === true) {\n if (e.trigger === 'ok') {\n modal.props._promise.resolve(true)\n return\n }\n if (e.trigger === 'cancel') {\n modal.props._promise.resolve(false)\n return\n }\n modal.props._promise.resolve(null)\n }\n modal.props._promise.resolve(true)\n }\n \"\n @hidden=\"tools.remove?.(self)\"\n />\n </div>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BvTriggerableEvent} from '../../utils'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BModalOrchestratorProps} from '../../types/ComponentProps'\nimport BModal from './BModal.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useModalController} from '../../composables/useModalController'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BModalOrchestratorProps>(), {\n teleportDisabled: false,\n teleportTo: 'body',\n})\nconst props = useDefaults(_props, 'BModalOrchestrator')\n\nconst tools = useModalController()\n\ndefineExpose({\n ...tools,\n})\n</script>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"BModalOrchestrator.vue_vue_type_script_setup_true_lang-B7a7Jf08.mjs","sources":["../src/components/BModal/BModal.vue","../src/components/BModal/BModalOrchestrator.vue"],"sourcesContent":["<template>\n <ConditionalTeleport :to=\"props.teleportTo\" :disabled=\"props.teleportDisabled\">\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n @after-enter=\"onAfterEnter\"\n >\n <div\n v-show=\"showRef && ((backdropReady && props.backdropFirst) || !props.backdropFirst)\"\n :id=\"computedId\"\n ref=\"_element\"\n class=\"modal\"\n :class=\"[\n props.modalClass,\n {\n fade: !computedNoAnimation,\n show: isVisible,\n },\n ]\"\n role=\"dialog\"\n :aria-labelledby=\"!props.noHeader ? `${computedId}-label` : undefined\"\n :aria-describedby=\"`${computedId}-body`\"\n tabindex=\"-1\"\n v-bind=\"$attrs\"\n :style=\"computedZIndex\"\n @click.self=\"hide('backdrop')\"\n >\n <div class=\"modal-dialog\" :class=\"modalDialogClasses\">\n <div v-if=\"contentShowing\" class=\"modal-content\" :class=\"props.contentClass\">\n <div v-if=\"!props.noHeader\" class=\"modal-header\" :class=\"headerClasses\">\n <slot name=\"header\" v-bind=\"sharedSlots\">\n <component\n :is=\"props.titleTag\"\n :id=\"`${computedId}-label`\"\n class=\"modal-title\"\n :class=\"titleClasses\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </component>\n <template v-if=\"!props.noHeaderClose\">\n <BButton\n v-if=\"hasHeaderCloseSlot\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n >\n <slot name=\"header-close\" />\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.headerCloseLabel\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n />\n </template>\n </slot>\n </div>\n <div\n :id=\"`${computedId}-body`\"\n class=\"modal-body\"\n :class=\"bodyClasses\"\n v-bind=\"props.bodyAttrs\"\n >\n <slot v-bind=\"sharedSlots\">\n {{ props.body }}\n </slot>\n </div>\n <div v-if=\"!props.noFooter\" class=\"modal-footer\" :class=\"footerClasses\">\n <slot name=\"footer\" v-bind=\"sharedSlots\">\n <slot name=\"cancel\" v-bind=\"sharedSlots\">\n <BButton\n v-if=\"!props.okOnly\"\n ref=\"_cancelButton\"\n :disabled=\"disableCancel\"\n :size=\"props.buttonSize\"\n :variant=\"props.cancelVariant\"\n @click=\"hide('cancel')\"\n >\n {{ props.cancelTitle }}\n </BButton>\n </slot>\n <slot name=\"ok\" v-bind=\"sharedSlots\">\n <BButton\n ref=\"_okButton\"\n :disabled=\"disableOk\"\n :size=\"props.buttonSize\"\n :variant=\"props.okVariant\"\n @click=\"hide('ok')\"\n >\n {{ props.okTitle }}\n </BButton>\n </slot>\n </slot>\n </div>\n </div>\n </div>\n <div\n v-if=\"needsFallback\"\n ref=\"_fallbackFocusElement\"\n :class=\"fallbackClassSelector\"\n tabindex=\"0\"\n style=\"width: 0; height: 0; overflow: hidden\"\n />\n </div>\n </Transition>\n <slot v-if=\"!props.noBackdrop\" name=\"backdrop\" v-bind=\"sharedSlots\">\n <Transition v-if=\"renderBackdropRef\" v-bind=\"backdropTransitionProps\">\n <div\n v-show=\"showRef || (isLeaving && props.backdropFirst && !computedNoAnimation)\"\n class=\"modal-backdrop\"\n :style=\"computedZIndexBackdrop\"\n :class=\"{\n fade: !computedNoAnimation,\n show: backdropVisible || computedNoAnimation,\n }\"\n @click=\"hide('backdrop')\"\n />\n </Transition>\n </slot>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {onKeyStroke, useFocus} from '@vueuse/core'\nimport {useActivatedFocusTrap} from '../../composables/useActivatedFocusTrap'\nimport {computed, type CSSProperties, type EmitFn, useTemplateRef, watch} from 'vue'\nimport type {BModalProps} from '../../types/ComponentProps'\nimport {BvTriggerableEvent} from '../../utils'\nimport BButton from '../BButton/BButton.vue'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useSafeScrollLock} from '../../composables/useSafeScrollLock'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useModalManager} from '../../composables/useModalManager'\nimport {type showHideEmits, useShowHide} from '../../composables/useShowHide'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\n// aria\n// autofocus\n// close on escape when autofocus\n\n// Note, attempt to return focus to item that openned the modal after close\n// Implement auto focus props like autoFocusButton\n\nconst _props = withDefaults(defineProps<Omit<BModalProps, 'modelValue'>>(), {\n autofocus: true,\n autofocusButton: undefined,\n backdropFirst: false,\n body: undefined,\n bodyBgVariant: null,\n bodyAttrs: undefined,\n bodyClass: null,\n bodyScrolling: false,\n bodyTextVariant: null,\n bodyVariant: null,\n busy: false,\n buttonSize: 'md',\n cancelDisabled: false,\n cancelTitle: 'Cancel',\n cancelVariant: 'secondary',\n centered: false,\n contentClass: undefined,\n dialogClass: undefined,\n footerBgVariant: null,\n footerBorderVariant: null,\n footerClass: undefined,\n footerTextVariant: null,\n footerVariant: null,\n fullscreen: false,\n headerBgVariant: null,\n headerBorderVariant: null,\n headerClass: undefined,\n headerCloseClass: undefined,\n headerCloseLabel: 'Close',\n headerCloseVariant: 'secondary',\n headerTextVariant: null,\n headerVariant: null,\n noFooter: false,\n noHeader: false,\n noHeaderClose: false,\n id: undefined,\n initialAnimation: false,\n lazy: false,\n modalClass: undefined,\n noBackdrop: false,\n noCloseOnBackdrop: false,\n noCloseOnEsc: false,\n noFade: false,\n noTrap: false,\n okDisabled: false,\n okOnly: false,\n okTitle: 'OK',\n okVariant: 'primary',\n unmountLazy: false,\n scrollable: false,\n size: 'md',\n teleportDisabled: false,\n teleportTo: 'body',\n title: undefined,\n titleClass: undefined,\n titleVisuallyHidden: false,\n titleTag: 'h5',\n show: false,\n transProps: undefined,\n visible: false,\n})\nconst props = useDefaults(_props, 'BModal')\n\nconst emit = defineEmits<\n {\n backdrop: [value: BvTriggerableEvent]\n cancel: [value: BvTriggerableEvent]\n close: [value: BvTriggerableEvent]\n esc: [value: BvTriggerableEvent]\n ok: [value: BvTriggerableEvent]\n } & showHideEmits\n>()\n\ntype SharedSlotsData = {\n cancel: () => void\n close: () => void\n hide: (trigger?: string) => void\n ok: () => void\n active: boolean\n visible: boolean\n}\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'backdrop'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'cancel'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'default'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'footer'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'header'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'header-close'?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'ok'?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'title'?: (props: SharedSlotsData) => any\n}>()\n\nconst computedId = useId(() => props.id, 'modal')\n// Note: passive: true will sync an internal ref... This is required for useModalManager to exit,\n// Since the modelValue that's passed from that composable is not reactive, this internal ref _is_ and thus it will trigger closing the modal\nconst modelValue = defineModel<Exclude<BModalProps['modelValue'], undefined>>({default: false})\n\nconst element = useTemplateRef<HTMLElement>('_element')\nconst fallbackFocusElement = useTemplateRef<HTMLElement>('_fallbackFocusElement')\nconst okButton = useTemplateRef<HTMLElement>('_okButton')\nconst cancelButton = useTemplateRef<HTMLElement>('_cancelButton')\nconst closeButton = useTemplateRef<HTMLElement>('_closeButton')\n\nconst pickFocusItem = () => {\n if (props.autofocus === false) return\n if (props.autofocusButton === 'ok') {\n okButtonFocus.value = true\n } else if (props.autofocusButton === 'close') {\n closeButtonFocus.value = true\n } else if (props.autofocusButton === 'cancel') {\n cancelButtonFocus.value = true\n } else {\n modalFocus.value = true\n }\n}\n\nconst onAfterEnter = () => {\n pickFocusItem()\n}\n\nconst {\n showRef,\n renderRef,\n renderBackdropRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n transitionProps,\n backdropTransitionProps,\n isLeaving,\n isVisible,\n trapActive,\n contentShowing,\n backdropReady,\n backdropVisible,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId, {\n // addShowClass: false,\n transitionProps: {\n onAfterEnter,\n },\n})\n\nconst fallbackClassSelector = 'modal-fallback-focus'\nconst {needsFallback} = useActivatedFocusTrap({\n element,\n isActive: trapActive,\n noTrap: () => props.noTrap,\n fallbackFocus: {\n ref: fallbackFocusElement,\n classSelector: fallbackClassSelector,\n },\n})\n\nonKeyStroke(\n 'Escape',\n () => {\n hide('esc')\n },\n {target: element}\n)\nuseSafeScrollLock(showRef, () => props.bodyScrolling)\nconst {focused: modalFocus} = useFocus(element, {\n initialValue: modelValue.value && props.autofocusButton === undefined && props.autofocus === true,\n})\nconst {focused: okButtonFocus} = useFocus(okButton, {\n initialValue: modelValue.value && props.autofocusButton === 'ok' && props.autofocus === true,\n})\nconst {focused: cancelButtonFocus} = useFocus(cancelButton, {\n initialValue: modelValue.value && props.autofocusButton === 'cancel' && props.autofocus === true,\n})\nconst {focused: closeButtonFocus} = useFocus(closeButton, {\n initialValue: modelValue.value && props.autofocusButton === 'close' && props.autofocus === true,\n})\n\nconst hasHeaderCloseSlot = computed(() => !isEmptySlot(slots['header-close']))\n\nconst modalDialogClasses = computed(() => [\n props.dialogClass,\n {\n 'modal-fullscreen': props.fullscreen === true,\n [`modal-fullscreen-${props.fullscreen}-down`]: typeof props.fullscreen === 'string',\n [`modal-${props.size}`]: props.size !== 'md',\n 'modal-dialog-centered': props.centered,\n 'modal-dialog-scrollable': props.scrollable,\n },\n])\n\nconst bodyColorClasses = useColorVariantClasses(() => ({\n bgVariant: props.bodyBgVariant,\n textVariant: props.bodyTextVariant,\n variant: props.bodyVariant,\n}))\nconst bodyClasses = computed(() => [props.bodyClass, bodyColorClasses.value])\n\nconst headerColorClasses = useColorVariantClasses(() => ({\n bgVariant: props.headerBgVariant,\n textVariant: props.headerTextVariant,\n variant: props.headerVariant,\n borderVariant: props.headerBorderVariant,\n}))\nconst headerClasses = computed(() => [props.headerClass, headerColorClasses.value])\n\nconst headerCloseAttrs = computed(() => ({\n variant: hasHeaderCloseSlot.value ? props.headerCloseVariant : undefined,\n class: props.headerCloseClass,\n}))\n\nconst footerColorClasses = useColorVariantClasses(() => ({\n bgVariant: props.footerBgVariant,\n textVariant: props.footerTextVariant,\n variant: props.footerVariant,\n borderVariant: props.footerBorderVariant,\n}))\nconst footerClasses = computed(() => [props.footerClass, footerColorClasses.value])\n\nconst titleClasses = computed(() => [\n props.titleClass,\n {\n ['visually-hidden']: props.titleVisuallyHidden,\n },\n])\nconst disableCancel = computed(() => props.cancelDisabled || props.busy)\nconst disableOk = computed(() => props.okDisabled || props.busy)\n\nconst {activePosition, activeModalCount, stackWithoutSelf} = useModalManager(\n showRef,\n modelValue.value\n)\n\nwatch(stackWithoutSelf, (newValue, oldValue) => {\n if (newValue.length > oldValue.length && showRef.value === true && props.noStacking === true)\n hide()\n})\n\nconst defaultModalDialogZIndex = 1056\nconst computedZIndexNumber = computed<number>(() =>\n // Make sure that newly opened modals have a higher z-index than currently active ones.\n // All active modals have a z-index of ('defaultZIndex' - 'stackSize' - 'positionInStack').\n //\n // This means inactive modals will already be higher than active ones when opened.\n\n showRef.value || isLeaving.value\n ? // Just for reference there is a single frame in which the modal is not active but still has a higher z-index than the active ones due to _when_ it calculates its position. It's a small visual effect\n defaultModalDialogZIndex -\n ((activeModalCount?.value ?? 0) * 2 - (activePosition?.value ?? 0) * 2)\n : defaultModalDialogZIndex\n)\nconst computedZIndex = computed<CSSProperties>(() => ({\n 'z-index': computedZIndexNumber.value,\n}))\nconst computedZIndexBackdrop = computed<CSSProperties>(() => ({\n 'z-index': computedZIndexNumber.value - 1,\n}))\n\nconst sharedSlots = computed<SharedSlotsData>(() => ({\n cancel: () => {\n hide('cancel')\n },\n close: () => {\n hide('close')\n },\n hide,\n ok: () => {\n hide('ok')\n },\n active: showRef.value,\n visible: showRef.value,\n}))\n\ndefineExpose({\n hide,\n id: computedId,\n show,\n toggle,\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.modal {\n display: block;\n}\n\n.modal-dialog {\n z-index: 1051;\n}\n</style>\n","<template>\n <ConditionalTeleport :to=\"props.teleportTo\" :disabled=\"props.teleportDisabled\">\n <div id=\"__BVID__modal-container\" v-bind=\"$attrs\">\n <component\n :is=\"modal.component ?? BModal\"\n v-for=\"[self, modal] in tools.modals?.value\"\n :key=\"self\"\n v-bind=\"modal.props\"\n v-model=\"modal.props._modelValue\"\n initial-animation\n :teleport-disabled=\"true\"\n @update:model-value=\"tools.leave?.(self)\"\n @hide=\"\n (e: BvTriggerableEvent) => {\n // These following are confirm rules, otherwise we always resolve true\n if (modal.props._isConfirm === true) {\n if (e.trigger === 'ok') {\n modal.props._promise.resolve(true)\n return\n }\n if (e.trigger === 'cancel') {\n modal.props._promise.resolve(false)\n return\n }\n modal.props._promise.resolve(null)\n }\n modal.props._promise.resolve(true)\n }\n \"\n @hidden=\"tools.remove?.(self)\"\n />\n </div>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BvTriggerableEvent} from '../../utils'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BModalOrchestratorProps} from '../../types/ComponentProps'\nimport BModal from './BModal.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useModalController} from '../../composables/useModalController'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BModalOrchestratorProps>(), {\n teleportDisabled: false,\n teleportTo: 'body',\n})\nconst props = useDefaults(_props, 'BModalOrchestrator')\n\nconst tools = useModalController()\n\ndefineExpose({\n ...tools,\n})\n</script>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("vue"),o=require("./useDefaults-Bq2idhQU.js"),a=require("./index-CNL2tI0w.js"),l=require("./useSafeScrollLock-BW4wrAZc.js"),t=require("./BButton.vue_vue_type_script_setup_true_lang-BQI4HK70.js"),r=require("./BCloseButton.vue_vue_type_script_setup_true_lang-BNiA4JXj.js"),n=require("./useId-BOa4n5pr.js"),d=require("./dom-Dzr6gmPm.js"),s=require("./useColorVariantClasses-CE658Sm0.js"),u=require("./useModalManager-BvyIGGjj.js"),i=require("./useShowHide-hdpWiB0K.js"),c=require("./ConditionalTeleport.vue_vue_type_script_lang-6a2bI705.js"),f=require("./_plugin-vue_export-helper-CC_fc8JW.js"),p=require("./src/composables/useModalController/index.umd.js"),m=["id","aria-labelledby","aria-describedby"],v=["id"],B="modal-fallback-focus",k=e.defineComponent({inheritAttrs:!1,__name:"BModal",props:e.mergeModels({autofocus:{type:Boolean,default:!0},autofocusButton:{default:void 0},backdropFirst:{type:Boolean,default:!1},body:{default:void 0},bodyAttrs:{default:void 0},bodyBgVariant:{default:null},bodyClass:{default:null},bodyScrolling:{type:Boolean,default:!1},bodyTextVariant:{default:null},bodyVariant:{default:null},busy:{type:Boolean,default:!1},buttonSize:{default:"md"},cancelDisabled:{type:Boolean,default:!1},cancelTitle:{default:"Cancel"},cancelVariant:{default:"secondary"},centered:{type:Boolean,default:!1},contentClass:{default:void 0},dialogClass:{default:void 0},footerBgVariant:{default:null},footerBorderVariant:{default:null},footerClass:{default:void 0},footerTextVariant:{default:null},footerVariant:{default:null},fullscreen:{type:[Boolean,String],default:!1},headerBgVariant:{default:null},headerBorderVariant:{default:null},headerClass:{default:void 0},headerCloseClass:{default:void 0},headerCloseLabel:{default:"Close"},headerCloseVariant:{default:"secondary"},headerTextVariant:{default:null},headerVariant:{default:null},noBackdrop:{type:Boolean,default:!1},noFooter:{type:Boolean,default:!1},noHeader:{type:Boolean,default:!1},noHeaderClose:{type:Boolean,default:!1},id:{default:void 0},modalClass:{default:void 0},noCloseOnBackdrop:{type:Boolean,default:!1},noCloseOnEsc:{type:Boolean,default:!1},noTrap:{type:Boolean,default:!1},noStacking:{type:Boolean},okDisabled:{type:Boolean,default:!1},okOnly:{type:Boolean,default:!1},okTitle:{default:"OK"},okVariant:{default:"primary"},scrollable:{type:Boolean,default:!1},size:{default:"md"},title:{default:void 0},titleClass:{default:void 0},titleVisuallyHidden:{type:Boolean,default:!1},titleTag:{default:"h5"},teleportDisabled:{type:Boolean,default:!1},teleportTo:{default:"body"},initialAnimation:{type:Boolean,default:!1},noAnimation:{type:Boolean},noFade:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1},unmountLazy:{type:Boolean,default:!1},show:{type:Boolean,default:!1},transProps:{default:void 0},visible:{type:Boolean,default:!1}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:e.mergeModels(["backdrop","cancel","close","esc","ok","hide","hide-prevented","hidden","show","show-prevented","shown","toggle","toggle-prevented"],["update:modelValue"]),setup(f,{expose:p,emit:k}){const y=f,b=o.useDefaults(y,"BModal"),V=k,C=e.useSlots(),g=n.useId((()=>b.id),"modal"),_=e.useModel(f,"modelValue"),h=e.useTemplateRef("_element"),S=e.useTemplateRef("_fallbackFocusElement"),x=e.useTemplateRef("_okButton"),T=e.useTemplateRef("_cancelButton"),z=e.useTemplateRef("_closeButton"),w=()=>{!1!==b.autofocus&&("ok"===b.autofocusButton?W.value=!0:"close"===b.autofocusButton?Y.value=!0:"cancel"===b.autofocusButton?X.value=!0:U.value=!0)},{showRef:P,renderRef:D,renderBackdropRef:N,hide:E,show:F,toggle:M,computedNoAnimation:$,transitionProps:R,backdropTransitionProps:q,isLeaving:j,isVisible:H,trapActive:A,contentShowing:L,backdropReady:O,backdropVisible:I}=i.useShowHide(_,b,V,h,g,{transitionProps:{onAfterEnter:w}}),{needsFallback:K}=l.useActivatedFocusTrap({element:h,isActive:A,noTrap:()=>b.noTrap,fallbackFocus:{ref:S,classSelector:B}});a.onKeyStroke("Escape",(()=>{E("esc")}),{target:h}),l.useSafeScrollLock(P,(()=>b.bodyScrolling));const{focused:U}=a.useFocus(h,{initialValue:_.value&&void 0===b.autofocusButton&&!0===b.autofocus}),{focused:W}=a.useFocus(x,{initialValue:_.value&&"ok"===b.autofocusButton&&!0===b.autofocus}),{focused:X}=a.useFocus(T,{initialValue:_.value&&"cancel"===b.autofocusButton&&!0===b.autofocus}),{focused:Y}=a.useFocus(z,{initialValue:_.value&&"close"===b.autofocusButton&&!0===b.autofocus}),G=e.computed((()=>!d.isEmptySlot(C["header-close"]))),J=e.computed((()=>[b.dialogClass,{"modal-fullscreen":!0===b.fullscreen,[`modal-fullscreen-${b.fullscreen}-down`]:"string"==typeof b.fullscreen,[`modal-${b.size}`]:"md"!==b.size,"modal-dialog-centered":b.centered,"modal-dialog-scrollable":b.scrollable}])),Q=s.useColorVariantClasses((()=>({bgVariant:b.bodyBgVariant,textVariant:b.bodyTextVariant,variant:b.bodyVariant}))),Z=e.computed((()=>[b.bodyClass,Q.value])),ee=s.useColorVariantClasses((()=>({bgVariant:b.headerBgVariant,textVariant:b.headerTextVariant,variant:b.headerVariant,borderVariant:b.headerBorderVariant}))),oe=e.computed((()=>[b.headerClass,ee.value])),ae=e.computed((()=>({variant:G.value?b.headerCloseVariant:void 0,class:b.headerCloseClass}))),le=s.useColorVariantClasses((()=>({bgVariant:b.footerBgVariant,textVariant:b.footerTextVariant,variant:b.footerVariant,borderVariant:b.footerBorderVariant}))),te=e.computed((()=>[b.footerClass,le.value])),re=e.computed((()=>[b.titleClass,{"visually-hidden":b.titleVisuallyHidden}])),ne=e.computed((()=>b.cancelDisabled||b.busy)),de=e.computed((()=>b.okDisabled||b.busy)),{activePosition:se,activeModalCount:ue,stackWithoutSelf:ie}=u.useModalManager(P,_.value);e.watch(ie,((e,o)=>{e.length>o.length&&!0===P.value&&!0===b.noStacking&&E()}));const ce=e.computed((()=>P.value||j.value?1056-(2*((null==ue?void 0:ue.value)??0)-2*((null==se?void 0:se.value)??0)):1056)),fe=e.computed((()=>({"z-index":ce.value}))),pe=e.computed((()=>({"z-index":ce.value-1}))),me=e.computed((()=>({cancel:()=>{E("cancel")},close:()=>{E("close")},hide:E,ok:()=>{E("ok")},active:P.value,visible:P.value})));return p({hide:E,id:g,show:F,toggle:M}),(o,a)=>(e.openBlock(),e.createBlock(c._sfc_main,{to:e.unref(b).teleportTo,disabled:e.unref(b).teleportDisabled},{default:e.withCtx((()=>[e.unref(D)||e.unref(L)?(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({key:0},e.unref(R),{appear:_.value||e.unref(b).visible,onAfterEnter:w}),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",e.mergeProps({id:e.unref(g),ref:"_element",class:["modal",[e.unref(b).modalClass,{fade:!e.unref($),show:e.unref(H)}]],role:"dialog","aria-labelledby":e.unref(b).noHeader?void 0:`${e.unref(g)}-label`,"aria-describedby":`${e.unref(g)}-body`,tabindex:"-1"},o.$attrs,{style:fe.value,onClick:a[4]||(a[4]=e.withModifiers((o=>e.unref(E)("backdrop")),["self"]))}),[e.createElementVNode("div",{class:e.normalizeClass(["modal-dialog",J.value])},[e.unref(L)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["modal-content",e.unref(b).contentClass])},[e.unref(b).noHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["modal-header",oe.value])},[e.renderSlot(o.$slots,"header",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(b).titleTag),{id:`${e.unref(g)}-label`,class:e.normalizeClass(["modal-title",re.value])},{default:e.withCtx((()=>[e.renderSlot(o.$slots,"title",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.createTextVNode(e.toDisplayString(e.unref(b).title),1)]),!0)])),_:3},8,["id","class"])),e.unref(b).noHeaderClose?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[G.value?(e.openBlock(),e.createBlock(t._sfc_main,e.mergeProps({key:0},ae.value,{onClick:a[0]||(a[0]=o=>e.unref(E)("close"))}),{default:e.withCtx((()=>[e.renderSlot(o.$slots,"header-close",{},void 0,!0)])),_:3},16)):(e.openBlock(),e.createBlock(r._sfc_main,e.mergeProps({key:1,"aria-label":e.unref(b).headerCloseLabel},ae.value,{onClick:a[1]||(a[1]=o=>e.unref(E)("close"))}),null,16,["aria-label"]))],64))]),!0)],2)),e.createElementVNode("div",e.mergeProps({id:`${e.unref(g)}-body`,class:["modal-body",Z.value]},e.unref(b).bodyAttrs),[e.renderSlot(o.$slots,"default",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.createTextVNode(e.toDisplayString(e.unref(b).body),1)]),!0)],16,v),e.unref(b).noFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["modal-footer",te.value])},[e.renderSlot(o.$slots,"footer",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.renderSlot(o.$slots,"cancel",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.unref(b).okOnly?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(t._sfc_main,{key:0,ref:"_cancelButton",disabled:ne.value,size:e.unref(b).buttonSize,variant:e.unref(b).cancelVariant,onClick:a[2]||(a[2]=o=>e.unref(E)("cancel"))},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(b).cancelTitle),1)])),_:1},8,["disabled","size","variant"]))]),!0),e.renderSlot(o.$slots,"ok",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.createVNode(t._sfc_main,{ref:"_okButton",disabled:de.value,size:e.unref(b).buttonSize,variant:e.unref(b).okVariant,onClick:a[3]||(a[3]=o=>e.unref(E)("ok"))},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(b).okTitle),1)])),_:1},8,["disabled","size","variant"])]),!0)]),!0)],2))],2)):e.createCommentVNode("",!0)],2),e.unref(K)?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"_fallbackFocusElement",class:e.normalizeClass(B),tabindex:"0",style:{width:"0",height:"0",overflow:"hidden"}},null,512)):e.createCommentVNode("",!0)],16,m),[[e.vShow,e.unref(P)&&(e.unref(O)&&e.unref(b).backdropFirst||!e.unref(b).backdropFirst)]])])),_:3},16,["appear"])):e.createCommentVNode("",!0),e.unref(b).noBackdrop?e.createCommentVNode("",!0):e.renderSlot(o.$slots,"backdrop",e.normalizeProps(e.mergeProps({key:1},me.value)),(()=>[e.unref(N)?(e.openBlock(),e.createBlock(e.Transition,e.normalizeProps(e.mergeProps({key:0},e.unref(q))),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["modal-backdrop",{fade:!e.unref($),show:e.unref(I)||e.unref($)}]),style:e.normalizeStyle(pe.value),onClick:a[5]||(a[5]=o=>e.unref(E)("backdrop"))},null,6),[[e.vShow,e.unref(P)||e.unref(j)&&e.unref(b).backdropFirst&&!e.unref($)]])])),_:1},16)):e.createCommentVNode("",!0)]),!0)])),_:3},8,["to","disabled"]))}}),y=f._export_sfc(k,[["__scopeId","data-v-93972863"]]),b=e.defineComponent({inheritAttrs:!1,__name:"BModalOrchestrator",props:{teleportDisabled:{type:Boolean,default:!1},teleportTo:{default:"body"}},setup(a,{expose:l}){const t=a,r=o.useDefaults(t,"BModalOrchestrator"),n=p.useModalController();return l({...n}),(o,a)=>(e.openBlock(),e.createBlock(c._sfc_main,{to:e.unref(r).teleportTo,disabled:e.unref(r).teleportDisabled},{default:e.withCtx((()=>{var a;return[e.createElementVNode("div",e.mergeProps({id:"__BVID__modal-container"},o.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(null==(a=e.unref(n).modals)?void 0:a.value,(([o,a])=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.component??y),e.mergeProps({key:o,ref_for:!0},a.props,{modelValue:a.props._modelValue,"onUpdate:modelValue":[e=>a.props._modelValue=e,a=>{var l,t;return null==(t=(l=e.unref(n)).leave)?void 0:t.call(l,o)}],"initial-animation":"","teleport-disabled":!0,onHide:e=>{if(!0===a.props._isConfirm){if("ok"===e.trigger)return void a.props._promise.resolve(!0);if("cancel"===e.trigger)return void a.props._promise.resolve(!1);a.props._promise.resolve(null)}a.props._promise.resolve(!0)},onHidden:a=>{var l,t;return null==(t=(l=e.unref(n)).remove)?void 0:t.call(l,o)}}),null,16,["modelValue","onUpdate:modelValue","onHide","onHidden"])))),128))],16)]})),_:1},8,["to","disabled"]))}});exports.BModal=y,exports._sfc_main=b;
2
- //# sourceMappingURL=BModalOrchestrator.vue_vue_type_script_setup_true_lang-C5y83H7o.js.map
1
+ "use strict";const e=require("vue"),o=require("./useDefaults-Bq2idhQU.js"),a=require("./index-CNL2tI0w.js"),l=require("./useSafeScrollLock-C0Gbaxat.js"),t=require("./BButton.vue_vue_type_script_setup_true_lang-BQI4HK70.js"),r=require("./BCloseButton.vue_vue_type_script_setup_true_lang-BNiA4JXj.js"),n=require("./useId-BOa4n5pr.js"),d=require("./dom-Dzr6gmPm.js"),s=require("./useColorVariantClasses-CE658Sm0.js"),u=require("./useModalManager-BvyIGGjj.js"),i=require("./useShowHide-hdpWiB0K.js"),c=require("./ConditionalTeleport.vue_vue_type_script_lang-6a2bI705.js"),f=require("./_plugin-vue_export-helper-CC_fc8JW.js"),p=require("./src/composables/useModalController/index.umd.js"),m=["id","aria-labelledby","aria-describedby"],v=["id"],B="modal-fallback-focus",k=e.defineComponent({inheritAttrs:!1,__name:"BModal",props:e.mergeModels({autofocus:{type:Boolean,default:!0},autofocusButton:{default:void 0},backdropFirst:{type:Boolean,default:!1},body:{default:void 0},bodyAttrs:{default:void 0},bodyBgVariant:{default:null},bodyClass:{default:null},bodyScrolling:{type:Boolean,default:!1},bodyTextVariant:{default:null},bodyVariant:{default:null},busy:{type:Boolean,default:!1},buttonSize:{default:"md"},cancelDisabled:{type:Boolean,default:!1},cancelTitle:{default:"Cancel"},cancelVariant:{default:"secondary"},centered:{type:Boolean,default:!1},contentClass:{default:void 0},dialogClass:{default:void 0},footerBgVariant:{default:null},footerBorderVariant:{default:null},footerClass:{default:void 0},footerTextVariant:{default:null},footerVariant:{default:null},fullscreen:{type:[Boolean,String],default:!1},headerBgVariant:{default:null},headerBorderVariant:{default:null},headerClass:{default:void 0},headerCloseClass:{default:void 0},headerCloseLabel:{default:"Close"},headerCloseVariant:{default:"secondary"},headerTextVariant:{default:null},headerVariant:{default:null},noBackdrop:{type:Boolean,default:!1},noFooter:{type:Boolean,default:!1},noHeader:{type:Boolean,default:!1},noHeaderClose:{type:Boolean,default:!1},id:{default:void 0},modalClass:{default:void 0},noCloseOnBackdrop:{type:Boolean,default:!1},noCloseOnEsc:{type:Boolean,default:!1},noTrap:{type:Boolean,default:!1},noStacking:{type:Boolean},okDisabled:{type:Boolean,default:!1},okOnly:{type:Boolean,default:!1},okTitle:{default:"OK"},okVariant:{default:"primary"},scrollable:{type:Boolean,default:!1},size:{default:"md"},title:{default:void 0},titleClass:{default:void 0},titleVisuallyHidden:{type:Boolean,default:!1},titleTag:{default:"h5"},teleportDisabled:{type:Boolean,default:!1},teleportTo:{default:"body"},initialAnimation:{type:Boolean,default:!1},noAnimation:{type:Boolean},noFade:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1},unmountLazy:{type:Boolean,default:!1},show:{type:Boolean,default:!1},transProps:{default:void 0},visible:{type:Boolean,default:!1}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:e.mergeModels(["backdrop","cancel","close","esc","ok","hide","hide-prevented","hidden","show","show-prevented","shown","toggle","toggle-prevented"],["update:modelValue"]),setup(f,{expose:p,emit:k}){const y=f,b=o.useDefaults(y,"BModal"),V=k,C=e.useSlots(),g=n.useId((()=>b.id),"modal"),_=e.useModel(f,"modelValue"),h=e.useTemplateRef("_element"),S=e.useTemplateRef("_fallbackFocusElement"),x=e.useTemplateRef("_okButton"),T=e.useTemplateRef("_cancelButton"),z=e.useTemplateRef("_closeButton"),w=()=>{!1!==b.autofocus&&("ok"===b.autofocusButton?W.value=!0:"close"===b.autofocusButton?Y.value=!0:"cancel"===b.autofocusButton?X.value=!0:U.value=!0)},{showRef:P,renderRef:D,renderBackdropRef:N,hide:E,show:F,toggle:M,computedNoAnimation:$,transitionProps:R,backdropTransitionProps:q,isLeaving:j,isVisible:H,trapActive:A,contentShowing:L,backdropReady:O,backdropVisible:I}=i.useShowHide(_,b,V,h,g,{transitionProps:{onAfterEnter:w}}),{needsFallback:K}=l.useActivatedFocusTrap({element:h,isActive:A,noTrap:()=>b.noTrap,fallbackFocus:{ref:S,classSelector:B}});a.onKeyStroke("Escape",(()=>{E("esc")}),{target:h}),l.useSafeScrollLock(P,(()=>b.bodyScrolling));const{focused:U}=a.useFocus(h,{initialValue:_.value&&void 0===b.autofocusButton&&!0===b.autofocus}),{focused:W}=a.useFocus(x,{initialValue:_.value&&"ok"===b.autofocusButton&&!0===b.autofocus}),{focused:X}=a.useFocus(T,{initialValue:_.value&&"cancel"===b.autofocusButton&&!0===b.autofocus}),{focused:Y}=a.useFocus(z,{initialValue:_.value&&"close"===b.autofocusButton&&!0===b.autofocus}),G=e.computed((()=>!d.isEmptySlot(C["header-close"]))),J=e.computed((()=>[b.dialogClass,{"modal-fullscreen":!0===b.fullscreen,[`modal-fullscreen-${b.fullscreen}-down`]:"string"==typeof b.fullscreen,[`modal-${b.size}`]:"md"!==b.size,"modal-dialog-centered":b.centered,"modal-dialog-scrollable":b.scrollable}])),Q=s.useColorVariantClasses((()=>({bgVariant:b.bodyBgVariant,textVariant:b.bodyTextVariant,variant:b.bodyVariant}))),Z=e.computed((()=>[b.bodyClass,Q.value])),ee=s.useColorVariantClasses((()=>({bgVariant:b.headerBgVariant,textVariant:b.headerTextVariant,variant:b.headerVariant,borderVariant:b.headerBorderVariant}))),oe=e.computed((()=>[b.headerClass,ee.value])),ae=e.computed((()=>({variant:G.value?b.headerCloseVariant:void 0,class:b.headerCloseClass}))),le=s.useColorVariantClasses((()=>({bgVariant:b.footerBgVariant,textVariant:b.footerTextVariant,variant:b.footerVariant,borderVariant:b.footerBorderVariant}))),te=e.computed((()=>[b.footerClass,le.value])),re=e.computed((()=>[b.titleClass,{"visually-hidden":b.titleVisuallyHidden}])),ne=e.computed((()=>b.cancelDisabled||b.busy)),de=e.computed((()=>b.okDisabled||b.busy)),{activePosition:se,activeModalCount:ue,stackWithoutSelf:ie}=u.useModalManager(P,_.value);e.watch(ie,((e,o)=>{e.length>o.length&&!0===P.value&&!0===b.noStacking&&E()}));const ce=e.computed((()=>P.value||j.value?1056-(2*((null==ue?void 0:ue.value)??0)-2*((null==se?void 0:se.value)??0)):1056)),fe=e.computed((()=>({"z-index":ce.value}))),pe=e.computed((()=>({"z-index":ce.value-1}))),me=e.computed((()=>({cancel:()=>{E("cancel")},close:()=>{E("close")},hide:E,ok:()=>{E("ok")},active:P.value,visible:P.value})));return p({hide:E,id:g,show:F,toggle:M}),(o,a)=>(e.openBlock(),e.createBlock(c._sfc_main,{to:e.unref(b).teleportTo,disabled:e.unref(b).teleportDisabled},{default:e.withCtx((()=>[e.unref(D)||e.unref(L)?(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({key:0},e.unref(R),{appear:_.value||e.unref(b).visible,onAfterEnter:w}),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",e.mergeProps({id:e.unref(g),ref:"_element",class:["modal",[e.unref(b).modalClass,{fade:!e.unref($),show:e.unref(H)}]],role:"dialog","aria-labelledby":e.unref(b).noHeader?void 0:`${e.unref(g)}-label`,"aria-describedby":`${e.unref(g)}-body`,tabindex:"-1"},o.$attrs,{style:fe.value,onClick:a[4]||(a[4]=e.withModifiers((o=>e.unref(E)("backdrop")),["self"]))}),[e.createElementVNode("div",{class:e.normalizeClass(["modal-dialog",J.value])},[e.unref(L)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["modal-content",e.unref(b).contentClass])},[e.unref(b).noHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["modal-header",oe.value])},[e.renderSlot(o.$slots,"header",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(b).titleTag),{id:`${e.unref(g)}-label`,class:e.normalizeClass(["modal-title",re.value])},{default:e.withCtx((()=>[e.renderSlot(o.$slots,"title",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.createTextVNode(e.toDisplayString(e.unref(b).title),1)]),!0)])),_:3},8,["id","class"])),e.unref(b).noHeaderClose?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[G.value?(e.openBlock(),e.createBlock(t._sfc_main,e.mergeProps({key:0},ae.value,{onClick:a[0]||(a[0]=o=>e.unref(E)("close"))}),{default:e.withCtx((()=>[e.renderSlot(o.$slots,"header-close",{},void 0,!0)])),_:3},16)):(e.openBlock(),e.createBlock(r._sfc_main,e.mergeProps({key:1,"aria-label":e.unref(b).headerCloseLabel},ae.value,{onClick:a[1]||(a[1]=o=>e.unref(E)("close"))}),null,16,["aria-label"]))],64))]),!0)],2)),e.createElementVNode("div",e.mergeProps({id:`${e.unref(g)}-body`,class:["modal-body",Z.value]},e.unref(b).bodyAttrs),[e.renderSlot(o.$slots,"default",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.createTextVNode(e.toDisplayString(e.unref(b).body),1)]),!0)],16,v),e.unref(b).noFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["modal-footer",te.value])},[e.renderSlot(o.$slots,"footer",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.renderSlot(o.$slots,"cancel",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.unref(b).okOnly?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(t._sfc_main,{key:0,ref:"_cancelButton",disabled:ne.value,size:e.unref(b).buttonSize,variant:e.unref(b).cancelVariant,onClick:a[2]||(a[2]=o=>e.unref(E)("cancel"))},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(b).cancelTitle),1)])),_:1},8,["disabled","size","variant"]))]),!0),e.renderSlot(o.$slots,"ok",e.normalizeProps(e.guardReactiveProps(me.value)),(()=>[e.createVNode(t._sfc_main,{ref:"_okButton",disabled:de.value,size:e.unref(b).buttonSize,variant:e.unref(b).okVariant,onClick:a[3]||(a[3]=o=>e.unref(E)("ok"))},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(b).okTitle),1)])),_:1},8,["disabled","size","variant"])]),!0)]),!0)],2))],2)):e.createCommentVNode("",!0)],2),e.unref(K)?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"_fallbackFocusElement",class:e.normalizeClass(B),tabindex:"0",style:{width:"0",height:"0",overflow:"hidden"}},null,512)):e.createCommentVNode("",!0)],16,m),[[e.vShow,e.unref(P)&&(e.unref(O)&&e.unref(b).backdropFirst||!e.unref(b).backdropFirst)]])])),_:3},16,["appear"])):e.createCommentVNode("",!0),e.unref(b).noBackdrop?e.createCommentVNode("",!0):e.renderSlot(o.$slots,"backdrop",e.normalizeProps(e.mergeProps({key:1},me.value)),(()=>[e.unref(N)?(e.openBlock(),e.createBlock(e.Transition,e.normalizeProps(e.mergeProps({key:0},e.unref(q))),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["modal-backdrop",{fade:!e.unref($),show:e.unref(I)||e.unref($)}]),style:e.normalizeStyle(pe.value),onClick:a[5]||(a[5]=o=>e.unref(E)("backdrop"))},null,6),[[e.vShow,e.unref(P)||e.unref(j)&&e.unref(b).backdropFirst&&!e.unref($)]])])),_:1},16)):e.createCommentVNode("",!0)]),!0)])),_:3},8,["to","disabled"]))}}),y=f._export_sfc(k,[["__scopeId","data-v-93972863"]]),b=e.defineComponent({inheritAttrs:!1,__name:"BModalOrchestrator",props:{teleportDisabled:{type:Boolean,default:!1},teleportTo:{default:"body"}},setup(a,{expose:l}){const t=a,r=o.useDefaults(t,"BModalOrchestrator"),n=p.useModalController();return l({...n}),(o,a)=>(e.openBlock(),e.createBlock(c._sfc_main,{to:e.unref(r).teleportTo,disabled:e.unref(r).teleportDisabled},{default:e.withCtx((()=>{var a;return[e.createElementVNode("div",e.mergeProps({id:"__BVID__modal-container"},o.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(null==(a=e.unref(n).modals)?void 0:a.value,(([o,a])=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.component??y),e.mergeProps({key:o,ref_for:!0},a.props,{modelValue:a.props._modelValue,"onUpdate:modelValue":[e=>a.props._modelValue=e,a=>{var l,t;return null==(t=(l=e.unref(n)).leave)?void 0:t.call(l,o)}],"initial-animation":"","teleport-disabled":!0,onHide:e=>{if(!0===a.props._isConfirm){if("ok"===e.trigger)return void a.props._promise.resolve(!0);if("cancel"===e.trigger)return void a.props._promise.resolve(!1);a.props._promise.resolve(null)}a.props._promise.resolve(!0)},onHidden:a=>{var l,t;return null==(t=(l=e.unref(n)).remove)?void 0:t.call(l,o)}}),null,16,["modelValue","onUpdate:modelValue","onHide","onHidden"])))),128))],16)]})),_:1},8,["to","disabled"]))}});exports.BModal=y,exports._sfc_main=b;
2
+ //# sourceMappingURL=BModalOrchestrator.vue_vue_type_script_setup_true_lang-C3UupCiB.js.map