@g1cloud/open-bluesea-core 1.0.0-alpha.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.
- package/css/bluesea.css +95 -0
- package/dist/blueseaPlugin.d.ts +36 -0
- package/dist/component/basic/PageNavigation.model.d.ts +5 -0
- package/dist/contextmenu/contextMenuPlugin.d.ts +36 -0
- package/dist/directive/vClickOutside.d.ts +20 -0
- package/dist/directive/vFocusOnLoad.d.ts +3 -0
- package/dist/directive/vTooltip.d.ts +7 -0
- package/dist/index.d.ts +35 -0
- package/dist/model/CommonTypes.d.ts +29 -0
- package/dist/model/DefaultImpl.d.ts +7 -0
- package/dist/model/FieldContext.d.ts +14 -0
- package/dist/notification/notificationPlugin.d.ts +31 -0
- package/dist/open-bluesea-core.css +1 -0
- package/dist/open-bluesea-core.es.js +2371 -0
- package/dist/open-bluesea-core.umd.js +1 -0
- package/dist/savepoint/SavePoint.d.ts +46 -0
- package/dist/util/componentUtil.d.ts +11 -0
- package/dist/util/debounceUtil.d.ts +16 -0
- package/dist/util/formatUtil.d.ts +67 -0
- package/dist/util/typeUtil.d.ts +18 -0
- package/dist/util/waitUtil.d.ts +19 -0
- package/dist/validator/FieldValidator.d.ts +43 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(M,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("dayjs")):typeof define=="function"&&define.amd?define(["exports","vue","dayjs"],e):(M=typeof globalThis<"u"?globalThis:M||self,e(M.OpenBlueseaCore={},M.Vue,M.dayJs))})(this,(function(M,e,ae){"use strict";const U=Symbol("BlueseaContextMenuPlugin");class Z{contextMenuItems=e.ref();position=e.ref();options=e.ref();showContextMenu(o,n,a){this.position.value={x:o.clientX,y:o.clientY},this.markComponentRaw(n),this.contextMenuItems.value=n,this.options.value=a}hideContextMenu(){this.options.value?.onHideContextMenu&&this.options.value.onHideContextMenu(),this.contextMenuItems.value=void 0,this.position.value=void 0,this.options.value=void 0}markComponentRaw(o){o.forEach(n=>{n.component&&(n.component=e.markRaw(n.component)),n.children&&this.markComponentRaw(n.children)})}}const W=()=>{const t=e.inject(U);if(!t)throw new Error("BSContextMenuPlugin is not initialized.");return t},Pe=()=>e.inject(U),$e=()=>new Z;class De{dateFormat="YYYY-MM-DD HH:mm Z";dateFormatDay="YYYY-MM-DD Z";dateFormatMinute="YYYY-MM-DD HH:mm Z";dateFormatSecond="YYYY-MM-DD HH:mm:ss Z";minDateValue="1920-01-01T00:00:00.000Z";maxDateValue="9000-12-31T23:59:59.999Z";componentConfig;constructor(o){this.dateFormat=o?.dateFormat||this.dateFormat,this.dateFormatDay=o?.dateFormatDay||this.dateFormatDay,this.dateFormatMinute=o?.dateFormatMinute||this.dateFormatMinute,this.dateFormatSecond=o?.dateFormatSecond||this.dateFormatSecond,this.minDateValue=o?.minDateValue||this.minDateValue,this.maxDateValue=o?.maxDateValue||this.maxDateValue,this.componentConfig={popup:{hideOnScroll:!1,...o?.componentConfig?.popup}}}resolveDisplayDateFormat(o){const n=o||this.dateFormat;return n==="DAY"?this.dateFormatDay:n==="MINUTE"?this.dateFormatMinute:n==="SECOND"?this.dateFormatSecond:n}}const le=Symbol("BlueseaConfig"),Ne=()=>e.inject(le),Ie={install(t,o){const n=new De(o);t.provide(le,n);const a=new Z;t.provide(U,a)}},Le=e.reactive([]),Fe=e.reactive([]),T=e.ref(),ie=(t,o)=>{T.value={content:t,target:e.markRaw(o),cursorInTooltip:!1}},K=()=>{T.value&&!T.value.cursorInTooltip&&(T.value=void 0)},re=()=>!!T.value,Te=e.ref(!1),ze=800,Oe=0,se=(t,o)=>{o&&o.content?(t.setAttribute("data-bs-tooltip-data",JSON.stringify(o)),re()&&ie(o.content,t)):(t.removeAttribute("data-bs-tooltip-data"),re()&&K())},G={mounted:(t,o)=>{se(t,o.value),t.addEventListener("mouseover",()=>{const n=t.getAttribute("data-bs-tooltip-data"),a=n?JSON.parse(n):void 0;a&&a.content&&(t.setAttribute("data-bs-tooltip","true"),setTimeout(()=>{const c=t.getAttribute("data-bs-tooltip-data"),s=c?JSON.parse(c):void 0;s&&s.content&&t.getAttribute("data-bs-tooltip")==="true"&&window.document.contains(t)&&ie(s.content,t)},a.delay||ze))}),t.addEventListener("mouseout",n=>{t.contains(n.relatedTarget)||(t.removeAttribute("data-bs-tooltip"),setTimeout(()=>K(),Oe))})},updated:(t,o)=>{se(t,o.value)},unmounted:()=>{K()}},He=["textContent"],qe=e.defineComponent({__name:"BSButton",props:{caption:{},buttonColor:{default:"default"},leftIcon:{},rightIcon:{},disabled:{type:Boolean,default:!1},linkUrl:{},linkTarget:{},routePath:{},tooltip:{}},setup(t){return(o,n)=>e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.linkUrl?"a":t.routePath?"router-link":"button"),{class:e.normalizeClass([[t.buttonColor],"bs-button position-relative"]),disabled:t.disabled,href:t.linkUrl,target:t.linkTarget,to:t.routePath},{default:e.withCtx(()=>[t.leftIcon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass([{"bs-mr-4":!!t.caption},"font-icon left"])},e.toDisplayString(t.leftIcon),3)):e.createCommentVNode("",!0),e.createElementVNode("span",{textContent:e.toDisplayString(t.caption)},null,8,He),t.rightIcon?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass([{"bs-ml-4":!!t.caption},"font-icon right"])},e.toDisplayString(t.rightIcon),3)):e.createCommentVNode("",!0)]),_:1},8,["class","disabled","href","target","to"])),[[e.unref(G),{content:t.tooltip}]])}}),de=(t,o)=>{const n=t.__vccOpts||t;for(const[a,c]of o)n[a]=c;return n},Re=de(qe,[["__scopeId","data-v-26726ef5"]]),Ae={class:"page-navigation"},Ue=["data-page","onClick"],Ke=e.defineComponent({__name:"BSPageNavigation",props:{totalCount:{default:0},offset:{default:0},limit:{default:10},visiblePageCount:{default:10},maxPage:{}},emits:["offsetChanged"],setup(t,{emit:o}){const n=t,a=o,c=e.computed(()=>{const y=Math.floor((n.totalCount-1)/n.limit)+1;return n.totalCount<1?1:n.maxPage&&y>n.maxPage?n.maxPage:y||0}),s=e.computed(()=>Math.min(Math.floor(n.offset/n.limit)+1,c.value)),h=e.computed(()=>Math.floor((s.value-1)/n.visiblePageCount)*n.visiblePageCount+1),f=e.computed(()=>Math.min(h.value+n.visiblePageCount-1,c.value)),p=e.computed(()=>{if(n.totalCount<=0)return[];const y=h.value,r=f.value,g=Array(r-y+1);for(let E=0;E<g.length;E++)g[E]=E+y;return g}),S=e.computed(()=>h.value-1),B=e.computed(()=>f.value+1),V=e.computed(()=>h.value<=1),b=e.computed(()=>f.value>=c.value),x=y=>{const r=Math.max(1,Math.min(y,c.value));if(s.value!==r){const g=(r-1)*n.limit;a("offsetChanged",g,{offset:n.offset,limit:n.limit,totalCount:n.totalCount})}};return(y,r)=>(e.openBlock(),e.createElementBlock("div",Ae,[e.createElementVNode("span",{class:e.normalizeClass([{disabled:V.value},"font-icon first"]),onClick:r[0]||(r[0]=e.withModifiers(g=>!V.value&&x(1),["prevent"]))},"keyboard_double_arrow_left",2),e.createElementVNode("span",{class:e.normalizeClass([{disabled:V.value},"font-icon prev"]),onClick:r[1]||(r[1]=e.withModifiers(g=>!V.value&&x(S.value),["prevent"]))},"keyboard_arrow_left",2),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,g=>(e.openBlock(),e.createElementBlock("span",{key:g,class:e.normalizeClass([{on:g===s.value},"page"]),"data-page":g,onClick:e.withModifiers(E=>x(g),["prevent"])},e.toDisplayString(g),11,Ue))),128)),e.createElementVNode("span",{class:e.normalizeClass([{disabled:b.value},"font-icon next"]),onClick:r[2]||(r[2]=e.withModifiers(g=>!b.value&&x(B.value),["prevent"]))},"keyboard_arrow_right",2),e.createElementVNode("span",{class:e.normalizeClass([{disabled:b.value},"font-icon last"]),onClick:r[3]||(r[3]=e.withModifiers(g=>!b.value&&x(c.value),["prevent"]))},"keyboard_double_arrow_right",2)]))}}),Ye={},je={class:"bs-loading-icon"};function Ze(t,o){return e.openBlock(),e.createElementBlock("div",je,[...o[0]||(o[0]=[e.createElementVNode("span",{class:"font-icon"},"progress_activity",-1)])])}const ce=de(Ye,[["render",Ze]]),We=async(t,o=200,n=15)=>await new Promise(a=>{let c=0;const s=setInterval(()=>{(c>n||t())&&(clearInterval(s),a(void 0)),c++},o)}),ue=async(t=2e3)=>new Promise(o=>setTimeout(o,t)),Ge=(t,o,n=200,a=15)=>{let c=0;const s=setInterval(()=>{c>a||t()?clearInterval(s):o?.(),c++},n)},Je=["data-popup-id"],Xe=8,J=e.defineComponent({__name:"BSPopup",props:{popupId:{},maxHeight:{default:"360px"},baseElement:{},offsetFromBaseElement:{},extraClass:{},popupDirection:{default:"auto-down"},popupAlign:{default:"auto"},zIndex:{}},emits:["requestClose","click","keydown"],setup(t,{emit:o}){const n=t,a=o,c=Ne(),s=c?.componentConfig?.popup?.container||".bs-popup-container",h=e.ref();let f;const p=e.ref("-100000px"),S=e.ref("-100000px"),B=()=>n.baseElement instanceof HTMLElement?x(n.baseElement):n.baseElement?y(n.baseElement):{left:0,top:0,right:0,bottom:0,width:0,height:0};e.onMounted(async()=>{if(await ue(10),n.baseElement&&h.value){f=B();const i=h.value.getBoundingClientRect(),m=r(f,i,n.popupDirection,n.popupAlign);S.value=`${m.top}px`,p.value=`${m.left}px`}});const V=e.ref({x:0,y:0}),b=e.computed(()=>`translate(${V.value.x}px, ${V.value.y}px)`),x=i=>{const m=i.getBoundingClientRect(),l={left:m.left,top:m.top,right:m.right,bottom:m.bottom,width:m.width,height:m.height};let d=i.offsetParent;for(;d;)l.top-=d.scrollTop||0,l.bottom-=d.scrollTop||0,l.left-=d.scrollLeft||0,l.right-=d.scrollLeft||0,d=d.offsetParent;return l},y=i=>({left:i.left,top:i.top,right:i.left,bottom:i.top,width:0,height:0}),r=(i,m,l,d)=>{if(l==="auto-down")if(i.bottom+m.height+(n.offsetFromBaseElement||0)>window.innerHeight)if(i.top-m.height-(n.offsetFromBaseElement||0)<0){const k=i.bottom+m.height+(n.offsetFromBaseElement||0)-window.innerHeight;return{top:i.bottom+(n.offsetFromBaseElement||0)-k-Xe,left:g(i,m,d)}}else return{top:i.top-m.height-(n.offsetFromBaseElement||0),left:g(i,m,d)};else return{top:i.bottom+(n.offsetFromBaseElement||0),left:g(i,m,d)};else return l==="down"?{top:i.bottom+(n.offsetFromBaseElement||0),left:g(i,m,d)}:l==="up"?{top:i.top-m.height-(n.offsetFromBaseElement||0),left:g(i,m,d)}:l==="auto-right"?i.right+m.width>window.innerWidth?{top:i.top,left:i.left-m.width}:{top:i.top,left:i.right}:l==="right"?{top:i.top,left:i.right}:{left:0,top:0}},g=(i,m,l)=>l==="auto"?i.left+m.width>window.innerWidth?i.right-m.width<0?i.left:i.left-(m.width-i.width):i.left:l==="center"?i.left-(m.width-i.width)/2:l==="left"?i.left:l==="right"?i.left-(m.width-i.width):0,E=()=>{a("requestClose")},w=[],u=()=>{if(c?.componentConfig?.popup?.hideOnScroll)E();else if(f){const i=B();V.value.x=i.left-f.left,V.value.y=i.top-f.top}};return e.onMounted(()=>{if(n.baseElement instanceof HTMLElement&&(window.addEventListener("scroll",u,{passive:!0}),n.baseElement instanceof HTMLElement)){let i=n.baseElement;for(;i;)(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)&&w.push(i),i=i.parentElement;w.forEach(m=>m.addEventListener("scroll",u,{passive:!0}))}}),e.onBeforeUnmount(()=>{window.removeEventListener("scroll",u),w.forEach(i=>i.removeEventListener("scroll",u))}),(i,m)=>(e.openBlock(),e.createBlock(e.Teleport,{to:e.unref(s)},[e.createVNode(e.Transition,null,{default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"root",ref:h,class:e.normalizeClass([t.extraClass,"bs-popup overflow-auto"]),"data-popup-id":t.popupId,style:e.normalizeStyle({maxHeight:t.maxHeight,top:S.value,left:p.value,zIndex:t.zIndex,transform:b.value}),onClick:m[0]||(m[0]=l=>a("click",l)),onKeydown:m[1]||(m[1]=l=>a("keydown",l))},[e.renderSlot(i.$slots,"default")],46,Je)]),_:3})],8,["to"]))}}),Qe=["textContent"],me=e.defineComponent({__name:"BSTooltip",props:{align:{default:"center"},content:{},target:{}},setup(t){const o=t,n=e.computed(()=>{const a={};if(o.target){const c=o.target.getBoundingClientRect();a.top=`${c.bottom+8}px`,o.align==="left"?a.left=`${c.left}px`:o.align==="right"?a.right=`${c.right}px`:a.left=`${(c.left+c.right)/2}px`}return a});return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.align,"bs-tooltip"]),style:e.normalizeStyle(n.value)},[e.createElementVNode("div",{textContent:e.toDisplayString(t.content)},null,8,Qe)],6))}}),_e=(t,o)=>{t._bsFieldValidator=o,t.setAttribute("data-bs-field-validator","")},H=t=>{const o=e.ref(),n=e.ref(t.initialValue),a=e.ref(!1),c=e.ref([]),s=e.ref(!1),h=u=>t.convertToValue?t.convertToValue(u):u??"",f=u=>t.convertFromValue?t.convertFromValue(u):u?.toString()??"",p=async(u,i)=>{const m=h(u);await S(m,i)},S=async(u,i)=>{if(n.value=u,t.disabled?.value){a.value=!0;return}a.value=!1;const m=await t.isValid?.(n.value,i);m&&m.length>0?(a.value=!1,c.value=m):(a.value=!0,c.value=[])},B=u=>u.target&&"value"in u.target?u.target.value:void 0,V=async(u="form")=>{await S(n.value,u)},b=()=>{s.value=!1,c.value=[],a.value=!1},x=async u=>{const i=B(u);i!==void 0&&await p(i,"input")},w={stringValue:o,value:n,valid:a,errors:c,touched:s,handleInput:async u=>{await x(u)},handleChange:async u=>{const i=B(u);i!==void 0&&await p(i,"change")},handleFocus:u=>{s.value=!0},handleBlur:async u=>{const i=B(u);i!==void 0&&await p(i,"blur")},validateValue:S,validate:V,clearErrors:b,getName:()=>{const u=t.field?.value;return u?u.getAttribute("name")??u.getAttribute("data-field-name")??"":""}};return o.value=f(n.value),t.field&&e.watch(t.field,u=>{u&&_e(u,w)}),w},q=async(t,o,n,a,c)=>{const s=[];if(o){for(const h of o){const f=await h(t,a,c);f&&f.forEach(p=>s.push(p))}s.forEach(h=>n.push(h))}return s.length>0},X=(t,o,n,a)=>o&&(typeof t=="string"&&!t||t===void 0)?(a.push({code:"required",message:n||"Required"}),!0):!1,et=(t,o,n,a)=>t&&o&&!new RegExp(o).test(t)?(a.push({code:"allowedPattern",message:n||"Invalid format"}),!0):!1,fe=(t,o,n,a,c,s,h)=>{const f=!!t&&!!o&&t.length<o,p=!!t&&!!a&&t.length>a;return f&&p?h.push({code:"betweenLength",message:s||"Should be {0} ~ {1} characters"}):f?h.push({code:"minLength",message:n||"Should be {0} characters or more"}):p&&h.push({code:"maxLength",message:c||"Should be {0} characters or less"}),f||p},tt=(t,o,n,a,c,s,h)=>{const f=o!==void 0&&t<o,p=a!==void 0&&t>a;return f&&p?h.push({code:"betweenValue",message:s||"Should be {0} ~ {1}"}):f?h.push({code:"minValue",message:n||"Should be {0} or more"}):p&&h.push({code:"maxValue",message:c||"Should be {0} or less"}),f||p};let nt=0,ot=0;const L={handleExternalErrorMessage(t,o,n){if(n){const a=document.getElementById(n);a&&(!t||!o||o.length===0?a.style.display="none":(a.style.display="",a.textContent=o||""))}},generateNextId(t){return`${t}-${++nt}`},generateNextName(t){return`${t}${++ot}`},isRelativeSize(t){return t?.endsWith("%")||!1},delayed(t,o=200){o<=0?t():window.setTimeout(t,o)},trimStringValue(t,o){return o?t?.trim():t},getPrefixSuffixList(t){if(!t)return[];const o=Array.isArray(t)?t:[t],n=[];for(let a of o)a&&(typeof a=="object"&&a.hasOwnProperty("type")&&a.hasOwnProperty("value")?n.push(a):n.push({type:"text",value:a}));return n}},Q=Symbol("SavePoint");class _{fields=e.markRaw(new Map);children;registerField(o){const n=new it({getCurrentValue:o.getCurrentValue,setCurrentValue:o.setCurrentValue,compare:o.compare});return e.watch(o.field,a=>{a&&this.fields.set(a,n)}),n}unregisterField(o){o.value&&this.fields.delete(o.value)}addChild(o){this.children||(this.children=[]),this.children.push(o)}removeChild(o){if(this.children){const n=this.children.findIndex(a=>a===o);n>=0&&this.children.splice(n,1)}}set(){this.fields.forEach(o=>o.saveValue()),this.children?.forEach(o=>o.set())}async setNextTick(){await e.nextTick(),this.set()}rollback(){this.fields.forEach(o=>o.rollbackValue()),this.children?.forEach(o=>o.rollback())}isModified(){return Array.from(this.fields.values()).find(o=>o.isFieldModified())?!0:this.children?!!this.children.find(o=>o.isModified()):!1}}const at=()=>{const t=new _;return e.provide(Q,t),t},ee=new _,z=()=>{const t=e.inject(Q,ee);return t===ee?void 0:t},lt=()=>{e.provide(Q,ee)};class it{saved=!1;savedValue=e.shallowRef();valueProvider;constructor(o){this.valueProvider=o}saveValue(){this.savedValue.value=this.valueProvider.getCurrentValue(),this.saved=!0}getSavedValue(){return this.savedValue.value}rollbackValue(){this.saved&&this.valueProvider.setCurrentValue(this.savedValue.value)}isModified(o){return this.saved&&(this.valueProvider.compare?!this.valueProvider.compare(this.savedValue.value,o):this.savedValue?.value!==o)}isFieldModified(){return this.isModified(this.valueProvider.getCurrentValue())}}const rt={key:0},st=["textContent"],R=e.defineComponent({__name:"ValidationErrors",props:{errors:{},hideErrorMessage:{type:Boolean}},setup(t){return(o,n)=>!t.hideErrorMessage&&t.errors&&t.errors.length>0?(e.openBlock(),e.createElementBlock("div",rt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.errors,a=>(e.openBlock(),e.createElementBlock("div",{key:a.code,textContent:e.toDisplayString(a.message),class:"bs-field-error"},null,8,st))),128))])):e.createCommentVNode("",!0)}}),he=Symbol("FieldContext"),dt=t=>{e.provide(he,t)},pe={},O=()=>{const t=e.inject(he,pe);return t===pe?void 0:t},ct=["textContent"],ut={class:"font-icon"},mt=["src","alt"],F=e.defineComponent({__name:"BSPrefixSuffix",props:{value:{},type:{}},setup(t){const o=t,n=e.computed(()=>L.getPrefixSuffixList(o.value));return(a,c)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,s=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[s.type==="text"?(e.openBlock(),e.createElementBlock("span",{textContent:e.toDisplayString(s.value),key:JSON.stringify(s.value),class:e.normalizeClass(t.type)},null,10,ct)):s.type==="font-icon"?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.type)},[e.createElementVNode("span",ut,e.toDisplayString(s.value),1)],2)):s.type==="image-url"?(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass(t.type)},[e.createElementVNode("img",{src:s.value,alt:t.type},null,8,mt)],2)):e.createCommentVNode("",!0)],64))),256))}}),ft={key:0,class:"view-mode"},ht=["textContent"],pt={key:1,class:"input-area"},gt=["id","placeholder","autocomplete","disabled","maxlength","name","tabindex","type"],bt=e.defineComponent({__name:"BSTextInput",props:{id:{},placeholder:{},name:{default:()=>L.generateNextName("textInput")},modelValue:{},maxlength:{},disabled:{type:Boolean},forceValidateWhenDisabled:{type:Boolean},viewMode:{type:Boolean},width:{default:"200px"},autocomplete:{},tabindex:{default:0},inputType:{default:"text"},trimValue:{type:Boolean,default:!0},prefix:{},suffix:{},required:{type:Boolean},minLength:{},maxLength:{},regExp:{},validationMessageRequired:{},validationMessageMinLength:{},validationMessageMaxLength:{},validationMessageBetweenLength:{},validationMessageRegExp:{},extraValidationRules:{},ignoreSavePoint:{type:Boolean},hideErrorMessage:{type:Boolean},showErrorMessageOnDisabled:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o;e.watch(()=>n.modelValue,()=>{B.value=p(n.modelValue),r(n.modelValue||"","change")});const c=e.ref(),s=O(),h=async(i,m)=>{const l=[],d=i??"";return X(d,n.required,n.validationMessageRequired,l)||et(d,n.regExp,n.validationMessageRegExp,l)||fe(d,n.minLength,n.validationMessageMinLength,n.maxLength,n.validationMessageMaxLength,n.validationMessageBetweenLength,l)||await q(d,n.extraValidationRules,l,m,s),l},f=i=>String(L.trimStringValue(i,n.trimValue)||""),p=i=>L.trimStringValue(i,n.trimValue)??"",S=e.computed(()=>n.viewMode||n.disabled&&!n.forceValidateWhenDisabled),{stringValue:B,errors:V,handleInput:b,handleFocus:x,handleBlur:y,validateValue:r}=H({field:c,disabled:S,initialValue:n.modelValue,isValid:h,convertToValue:f,convertFromValue:p}),g={input:b,focus:x,blur:y,change:()=>{a("update:modelValue",f(B.value))}},E=n.ignoreSavePoint?void 0:z(),w=E?.registerField({field:c,getCurrentValue:()=>n.modelValue||"",setCurrentValue:i=>a("update:modelValue",i||"")}),u=e.computed(()=>!!w?.isModified(n.modelValue||""));return e.onBeforeUnmount(()=>E?.unregisterField(c)),(i,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{required:t.required,disabled:t.disabled,modified:u.value,error:e.unref(V).length>0},"bs-text-input"]),style:e.normalizeStyle({width:t.width})},[t.viewMode?(e.openBlock(),e.createElementBlock("div",ft,[e.createVNode(F,{value:t.prefix,type:"prefix"},null,8,["value"]),e.createElementVNode("span",{textContent:e.toDisplayString(e.unref(B))},null,8,ht),e.createVNode(F,{value:t.suffix,type:"suffix"},null,8,["value"])])):(e.openBlock(),e.createElementBlock("div",pt,[e.createVNode(F,{value:t.prefix,type:"prefix"},null,8,["value"]),e.withDirectives(e.createElementVNode("input",e.mergeProps({id:t.id,ref_key:"field",ref:c,"onUpdate:modelValue":m[0]||(m[0]=l=>e.isRef(B)?B.value=l:null),placeholder:t.placeholder,autocomplete:t.autocomplete,disabled:t.disabled,maxlength:t.maxlength,name:t.name,tabindex:t.tabindex,type:t.inputType},e.toHandlers(g,!0)),null,16,gt),[[e.vModelDynamic,e.unref(B)]]),e.createVNode(F,{value:t.suffix,type:"suffix"},null,8,["value"])])),t.viewMode?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(R,{key:2,errors:e.unref(V),"hide-error-message":t.hideErrorMessage||t.disabled&&!t.showErrorMessageOnDisabled},null,8,["errors","hide-error-message"]))],6))}});function ge(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Y={exports:{}},yt=Y.exports,be;function xt(){return be||(be=1,(function(t,o){(function(n,a){t.exports=a()})(yt,(function(){var n="minute",a=/[+-]\d\d(?::?\d\d)?/g,c=/([+-]|\d\d)/g;return function(s,h,f){var p=h.prototype;f.utc=function(r){var g={date:r,utc:!0,args:arguments};return new h(g)},p.utc=function(r){var g=f(this.toDate(),{locale:this.$L,utc:!0});return r?g.add(this.utcOffset(),n):g},p.local=function(){return f(this.toDate(),{locale:this.$L,utc:!1})};var S=p.parse;p.parse=function(r){r.utc&&(this.$u=!0),this.$utils().u(r.$offset)||(this.$offset=r.$offset),S.call(this,r)};var B=p.init;p.init=function(){if(this.$u){var r=this.$d;this.$y=r.getUTCFullYear(),this.$M=r.getUTCMonth(),this.$D=r.getUTCDate(),this.$W=r.getUTCDay(),this.$H=r.getUTCHours(),this.$m=r.getUTCMinutes(),this.$s=r.getUTCSeconds(),this.$ms=r.getUTCMilliseconds()}else B.call(this)};var V=p.utcOffset;p.utcOffset=function(r,g){var E=this.$utils().u;if(E(r))return this.$u?0:E(this.$offset)?V.call(this):this.$offset;if(typeof r=="string"&&(r=(function(m){m===void 0&&(m="");var l=m.match(a);if(!l)return null;var d=(""+l[0]).match(c)||["-",0,0],k=d[0],v=60*+d[1]+ +d[2];return v===0?0:k==="+"?v:-v})(r),r===null))return this;var w=Math.abs(r)<=16?60*r:r;if(w===0)return this.utc(g);var u=this.clone();if(g)return u.$offset=w,u.$u=!1,u;var i=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(u=this.local().add(w+i,n)).$offset=w,u.$x.$localOffset=i,u};var b=p.format;p.format=function(r){var g=r||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return b.call(this,g)},p.valueOf=function(){var r=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*r},p.isUTC=function(){return!!this.$u},p.toISOString=function(){return this.toDate().toISOString()},p.toString=function(){return this.toDate().toUTCString()};var x=p.toDate;p.toDate=function(r){return r==="s"&&this.$offset?f(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():x.call(this)};var y=p.diff;p.diff=function(r,g,E){if(r&&this.$u===r.$u)return y.call(this,r,g,E);var w=this.local(),u=f(r).local();return y.call(w,u,g,E)}}}))})(Y)),Y.exports}var kt=xt();const Bt=ge(kt);var j={exports:{}},Vt=j.exports,ye;function Ct(){return ye||(ye=1,(function(t,o){(function(n,a){t.exports=a()})(Vt,(function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},a={};return function(c,s,h){var f,p=function(b,x,y){y===void 0&&(y={});var r=new Date(b),g=(function(E,w){w===void 0&&(w={});var u=w.timeZoneName||"short",i=E+"|"+u,m=a[i];return m||(m=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:E,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:u}),a[i]=m),m})(x,y);return g.formatToParts(r)},S=function(b,x){for(var y=p(b,x),r=[],g=0;g<y.length;g+=1){var E=y[g],w=E.type,u=E.value,i=n[w];i>=0&&(r[i]=parseInt(u,10))}var m=r[3],l=m===24?0:m,d=r[0]+"-"+r[1]+"-"+r[2]+" "+l+":"+r[4]+":"+r[5]+":000",k=+b;return(h.utc(d).valueOf()-(k-=k%1e3))/6e4},B=s.prototype;B.tz=function(b,x){b===void 0&&(b=f);var y,r=this.utcOffset(),g=this.toDate(),E=g.toLocaleString("en-US",{timeZone:b}),w=Math.round((g-new Date(E))/1e3/60),u=15*-Math.round(g.getTimezoneOffset()/15)-w;if(!Number(u))y=this.utcOffset(0,x);else if(y=h(E,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(u,!0),x){var i=y.utcOffset();y=y.add(r-i,"minute")}return y.$x.$timezone=b,y},B.offsetName=function(b){var x=this.$x.$timezone||h.tz.guess(),y=p(this.valueOf(),x,{timeZoneName:b}).find((function(r){return r.type.toLowerCase()==="timezonename"}));return y&&y.value};var V=B.startOf;B.startOf=function(b,x){if(!this.$x||!this.$x.$timezone)return V.call(this,b,x);var y=h(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return V.call(y,b,x).tz(this.$x.$timezone,!0)},h.tz=function(b,x,y){var r=y&&x,g=y||x||f,E=S(+h(),g);if(typeof b!="string")return h(b).tz(g);var w=(function(l,d,k){var v=l-60*d*1e3,I=S(v,k);if(d===I)return[v,d];var C=S(v-=60*(I-d)*1e3,k);return I===C?[v,I]:[l-60*Math.min(I,C)*1e3,Math.max(I,C)]})(h.utc(b,r).valueOf(),E,g),u=w[0],i=w[1],m=h(u).utcOffset(i);return m.$x.$timezone=g,m},h.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},h.tz.setDefault=function(b){f=b}}}))})(j)),j.exports}var wt=Ct();const Mt=ge(wt);ae.extend(Bt),ae.extend(Mt);const Et=(t,o=2)=>{const n=Math.pow(10,o);return Math.round(t*n)/n},St={escapeNewLine(t){return t?t.replace(/\r\n|\r|\n/g,"<br />"):""},escapeHtml(t){return t?t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"):""},splitNewLine(t){return t?t.split(/\r\n|\r|\n/g):[]},formatNumber(t){if(t||typeof t=="number"){const o=/\B(?=(\d{3})+(?!\d))/g,n=t.toString().split("."),a=n[0].replace(o,","),c=n[1]?`.${n[1]}`:"";return a+c}return null},formatNumberByCode(t,o){return typeof t>"u"?null:t||typeof t=="number"?t.toLocaleString(o):null},formatPrice(t,o,n=!1){if(t||typeof t=="number"){const a=this.formatNumber(t);return n?`${o} ${a}`:`${a} ${o}`}return null},formatPercent(t,o=!0,n=2){return t!=null&&!isNaN(Number(t))?`${Et(Number(t)*100,n)}${o?"%":""}`:null},formatCreditCardNo(t,o="-"){return t.match(/.{1,4}/g)?.join(o)},toPlainText(t){const o=document.createElement("DIV");return o.innerHTML=t||"",o.textContent||o.innerText}},vt={key:0,class:"view-mode"},Pt=["textContent"],$t={key:1,class:"input-area"},Dt=["id","autocomplete","disabled","maxlength","name","tabindex","value"],Nt=e.defineComponent({__name:"BSNumberInput",props:{id:{},placeholder:{},name:{},modelValue:{},maxlength:{},disabled:{type:Boolean},viewMode:{type:Boolean},width:{default:"200px"},autocomplete:{},tabindex:{default:0},prefix:{},suffix:{},format:{type:Boolean,default:!0},formatInViewMode:{type:Boolean,default:!0},formatOnBlur:{type:Boolean,default:!0},required:{type:Boolean},minValue:{},maxValue:{},validationMessageRequired:{},validationMessageMinValue:{},validationMessageMaxValue:{},validationMessageBetweenValue:{},extraValidationRules:{},ignoreSavePoint:{type:Boolean},hideErrorMessage:{type:Boolean},showErrorMessageOnDisabled:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,c=d=>d.replace(/[^\d-\\.,]/g,"");e.watch(()=>n.modelValue,()=>{x.value=V(n.modelValue),w(n.modelValue,"change")});const s=e.ref(),h=e.ref(!1),f=e.computed(()=>n.format?St.formatNumber(x.value)||"":x.value||""),p=O(),S=async(d,k)=>{const v=[];return X(d,n.required,n.validationMessageRequired,v)||d!==void 0&&tt(d,n.minValue,n.validationMessageMinValue,n.maxValue,n.validationMessageMaxValue,n.validationMessageBetweenValue,v)||await q(d,n.extraValidationRules,v,k,p),v},B=d=>{if(!d)return;const k=Number(d);return isNaN(k)?void 0:k},V=d=>d!==void 0?String(d):"",b=e.computed(()=>n.viewMode||n.disabled),{stringValue:x,errors:y,handleInput:r,handleFocus:g,handleBlur:E,validateValue:w}=H({field:s,disabled:b,initialValue:n.modelValue,isValid:S,convertToValue:B,convertFromValue:V}),u={input:async d=>{x.value=c(d.target.value),await r(d)},focus:d=>{h.value=!0,g(d)},blur:d=>{h.value=!1,E(d)},change:()=>{a("update:modelValue",B(x.value))}},i=n.ignoreSavePoint?void 0:z(),m=i?.registerField({field:s,getCurrentValue:()=>n.modelValue,setCurrentValue:d=>a("update:modelValue",d)}),l=e.computed(()=>!!m?.isModified(n.modelValue));return e.onBeforeUnmount(()=>i?.unregisterField(s)),(d,k)=>{const v=e.resolveDirective("t");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{required:t.required,disabled:t.disabled,modified:l.value,error:e.unref(y).length>0},"bs-number-input"]),style:e.normalizeStyle({width:t.width})},[t.viewMode?(e.openBlock(),e.createElementBlock("div",vt,[e.createVNode(F,{value:t.prefix,type:"prefix"},null,8,["value"]),e.createElementVNode("span",{textContent:e.toDisplayString(t.formatInViewMode?f.value:e.unref(x))},null,8,Pt),e.createVNode(F,{value:t.suffix,type:"suffix"},null,8,["value"])])):(e.openBlock(),e.createElementBlock("div",$t,[e.createVNode(F,{value:t.prefix,type:"prefix"},null,8,["value"]),e.withDirectives(e.createElementVNode("input",e.mergeProps({id:t.id,ref_key:"field",ref:s,autocomplete:t.autocomplete,disabled:t.disabled,maxlength:t.maxlength,name:t.name,tabindex:t.tabindex,value:h.value||!t.formatOnBlur?e.unref(x):f.value,type:"text"},e.toHandlers(u,!0)),null,16,Dt),[[v,t.placeholder,void 0,{placeholder:!0}]]),e.createVNode(F,{value:t.suffix,type:"suffix"},null,8,["value"])])),t.viewMode?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(R,{key:2,errors:e.unref(y),"hide-error-message":t.hideErrorMessage||t.disabled&&!t.showErrorMessageOnDisabled},null,8,["errors","hide-error-message"]))],6)}}}),It={key:0,class:"view-mode bs-layout-horizontal gap-8 align-items-start"},Lt=["textContent"],Ft={key:1,class:"input-area bs-layout-horizontal align-items-start"},Tt=["placeholder","disabled","maxlength","name","tabindex"],zt=e.defineComponent({__name:"BSTextArea",props:{id:{},placeholder:{},name:{},modelValue:{},maxlength:{},disabled:{type:Boolean},viewMode:{type:Boolean},width:{default:"400px"},height:{},autocomplete:{},tabindex:{default:0},trimValue:{type:Boolean,default:!0},prefix:{},suffix:{},required:{type:Boolean},minLength:{},maxLength:{},validationMessageRequired:{},validationMessageMinLength:{},validationMessageMaxLength:{},validationMessageBetweenLength:{},extraValidationRules:{},ignoreSavePoint:{type:Boolean},hideErrorMessage:{type:Boolean},showErrorMessageOnDisabled:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,c=C=>String(L.trimStringValue(C,n.trimValue)||""),s=C=>L.trimStringValue(C,n.trimValue)??"";e.watch(()=>n.modelValue,()=>{B.value=s(n.modelValue),r(n.modelValue||"","change")});const h=e.ref(),f=O(),p=async(C,P)=>{const D=[],$=C?.trim()??"";return X($,n.required,n.validationMessageRequired,D)||fe($,n.minLength,n.validationMessageMinLength,n.maxLength,n.validationMessageMaxLength,n.validationMessageBetweenLength,D)||await q($,n.extraValidationRules,D,P,f),D},S=e.computed(()=>n.viewMode||n.disabled),{stringValue:B,errors:V,handleInput:b,handleFocus:x,handleBlur:y,validateValue:r}=H({field:h,disabled:S,initialValue:n.modelValue,isValid:p,convertToValue:c,convertFromValue:s}),g={input:b,focus:x,blur:y,change:()=>{a("update:modelValue",c(B.value))}},E=e.computed(()=>L.isRelativeSize(n.width)?n.width:void 0),w=e.computed(()=>L.isRelativeSize(n.height)?n.height:void 0),u=e.computed(()=>L.isRelativeSize(n.width)?"100%":n.width),i=e.computed(()=>k.value||(L.isRelativeSize(n.height)?"100%":n.height)),m=n.ignoreSavePoint?void 0:z(),l=m?.registerField({field:h,getCurrentValue:()=>n.modelValue||"",setCurrentValue:C=>a("update:modelValue",C||"")}),d=e.computed(()=>!!l?.isModified(n.modelValue||""));e.onBeforeUnmount(()=>m?.unregisterField(h));const k=e.ref(),v=C=>{h.value&&h.value.setPointerCapture(C.pointerId)},I=C=>{h.value&&(k.value=`${h.value.offsetHeight}px`,h.value.releasePointerCapture(C.pointerId))};return(C,P)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{disabled:t.disabled,modified:d.value,error:e.unref(V).length>0},"bs-text-area"]),style:e.normalizeStyle({width:E.value,height:w.value})},[t.viewMode?(e.openBlock(),e.createElementBlock("div",It,[e.createVNode(F,{value:t.prefix,type:"prefix"},null,8,["value"]),e.createElementVNode("div",{textContent:e.toDisplayString(e.unref(B))},null,8,Lt),e.createVNode(F,{value:t.suffix,type:"suffix"},null,8,["value"])])):(e.openBlock(),e.createElementBlock("div",Ft,[e.createVNode(F,{value:t.prefix,type:"prefix"},null,8,["value"]),e.withDirectives(e.createElementVNode("textarea",e.mergeProps({ref_key:"field",ref:h,"onUpdate:modelValue":P[0]||(P[0]=D=>e.isRef(B)?B.value=D:null),placeholder:t.placeholder,disabled:t.disabled,maxlength:t.maxlength,name:t.name,style:{width:u.value,height:i.value},tabindex:t.tabindex,class:"grow",onPointerdown:v,onPointerup:I},e.toHandlers(g,!0)),null,16,Tt),[[e.vModelText,e.unref(B)]]),e.createVNode(F,{value:t.suffix,type:"suffix"},null,8,["value"])])),t.viewMode?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(R,{key:2,errors:e.unref(V),"hide-error-message":t.hideErrorMessage||t.disabled&&!t.showErrorMessageOnDisabled},null,8,["errors","hide-error-message"]))],6))}}),Ot=["id","checked","disabled","name","tabindex"],Ht=["textContent","for"],qt=["for"],xe=e.defineComponent({__name:"BSCheckbox",props:{id:{default:()=>L.generateNextId("checkbox")},name:{},label:{},modelValue:{type:Boolean},disabled:{type:Boolean},viewMode:{type:Boolean},tabindex:{default:0},disableSavePoint:{type:Boolean},ignoreSavePoint:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,c=e.ref(n.modelValue),s=e.useSlots(),h=e.computed(()=>!!s?.default),f={change:b=>{c.value=b.target.checked,n.modelValue!==c.value&&a("update:modelValue",c.value)}};e.watch(()=>n.modelValue,()=>c.value=n.modelValue);const p=e.ref(),S=n.ignoreSavePoint?void 0:z(),B=S?.registerField({field:p,getCurrentValue:()=>n.modelValue||!1,setCurrentValue:b=>{n.disableSavePoint||a("update:modelValue",b||!1)}}),V=e.computed(()=>!!B?.isModified(n.modelValue));return e.onBeforeUnmount(()=>S?.unregisterField(p)),(b,x)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass([{checked:c.value,disabled:t.disabled,modified:V.value},"bs-checkbox"])},[e.createElementVNode("input",e.mergeProps({id:t.id,ref_key:"field",ref:p,checked:c.value,disabled:t.disabled||t.viewMode,name:t.name,tabindex:t.tabindex,class:"",type:"checkbox"},e.toHandlers(f,!0)),null,16,Ot),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,textContent:e.toDisplayString(t.label),for:t.id,class:"text-label"},null,8,Ht)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("label",{key:1,for:t.id,class:"slot-label cursor-pointer"},[e.renderSlot(b.$slots,"default",{disabled:t.disabled})],8,qt)):e.createCommentVNode("",!0)],2))}}),ke=t=>t?typeof t=="string"?t:String(t):"",Be=(t,o,n)=>{if(o){const a=o(t);if(a!==void 0)return a}return n(t)},te=(t,o,n)=>{if(o){const a=o(t);if(a)return a}return n(t)},Rt=["data-field-name"],At={class:"items"},Ut=["textContent"],Kt=e.defineComponent({__name:"BSCheckboxGroup",props:{name:{},modelValue:{default:()=>[]},items:{default:()=>[]},valueProvider:{},labelProvider:{},keyProvider:{},enabledItemProvider:{},tabindex:{default:0},disabled:{type:Boolean},viewMode:{type:Boolean},required:{type:Boolean},validationMessageRequired:{},extraValidationRules:{},ignoreSavePoint:{type:Boolean},hideErrorMessage:{type:Boolean},showErrorMessageOnDisabled:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,c=l=>n.labelProvider?n.labelProvider(l):String(l),s=l=>n.valueProvider?n.valueProvider(l):l,h=l=>te(l,n.keyProvider,()=>String(s(l))),f=l=>n.enabledItemProvider?!n.enabledItemProvider(l):!1,p=e.ref({}),S=(l,d,k)=>{n.items.forEach(v=>l[h(v)]=d.includes(s(v))),k&&E(n.modelValue,"change")},B=(l,d)=>{const k=s(d),v=n.modelValue.includes(k);if(l&&!v){const I=[...n.modelValue,k],C=n.items.map(P=>s(P)).filter(P=>I.includes(P));a("update:modelValue",C)}else if(!l&&v){const I=n.modelValue.indexOf(k),C=n.modelValue.toSpliced(I,1);a("update:modelValue",C)}},V=e.computed(()=>n.items.filter(l=>n.modelValue.includes(s(l))).map(c).join(", ")),b=e.ref(),x=O(),y=async(l,d)=>{const k=[];return n.required&&(l===void 0||l.length===0)?k.push({code:"required",message:n.validationMessageRequired||"Required"}):l!==void 0&&await q(l,n.extraValidationRules,k,d,x),k},r=e.computed(()=>n.viewMode||n.disabled),{errors:g,validateValue:E}=H({field:b,disabled:r,initialValue:n.modelValue,isValid:y}),w=l=>{const d={};n.items.forEach(k=>d[h(k)]=!1),S(d,n.modelValue,l),p.value=d};e.watch(()=>n.items,()=>w(!1)),e.watch(()=>n.modelValue,l=>S(p.value,l,!0)),e.onMounted(()=>{w(!1)});const u=n.ignoreSavePoint?void 0:z(),i=u?.registerField({field:b,getCurrentValue:()=>[...n.modelValue],setCurrentValue:l=>a("update:modelValue",[...l||[]]),compare:(l,d)=>l?.toSorted().join(",")===d?.toSorted().join(",")}),m=e.computed(()=>!!i?.isModified(n.modelValue||[]));return e.onBeforeUnmount(()=>u?.unregisterField(b)),(l,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"field",ref:b,class:e.normalizeClass([{required:t.required,disabled:t.disabled,modified:m.value,error:e.unref(g).length>0},"bs-checkbox-group bs-layout-vertical"]),"data-field-name":t.name,role:"group"},[e.createElementVNode("div",At,[t.viewMode?(e.openBlock(),e.createElementBlock("div",{key:0,class:"view-mode",textContent:e.toDisplayString(V.value)},null,8,Ut)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(t.items,k=>(e.openBlock(),e.createBlock(xe,{key:h(k),disabled:t.disabled||f(k),label:c(k),"model-value":p.value[h(k)],name:`${t.name||""}_${h(k)}`,tabindex:t.tabindex,"disable-save-point":"","onUpdate:modelValue":v=>B(v,k)},null,8,["disabled","label","model-value","name","tabindex","onUpdate:modelValue"]))),128))]),t.viewMode?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(R,{key:0,errors:e.unref(g),"hide-error-message":t.hideErrorMessage||t.disabled&&!t.showErrorMessageOnDisabled},null,8,["errors","hide-error-message"]))],10,Rt))}}),Yt=["id","checked","disabled","name","tabindex"],jt=["for"],Zt={key:0,class:"font-icon"},Wt=["textContent"],Gt=["for"],Ve=e.defineComponent({__name:"BSRadioButton",props:{id:{default:()=>L.generateNextId("radio")},name:{default:()=>L.generateNextName("radio")},label:{},icon:{},modelValue:{},itemValue:{},disabled:{type:Boolean},viewMode:{type:Boolean},tabindex:{default:0}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,c=e.computed(()=>n.itemValue!==void 0&&n.itemValue===n.modelValue||!1),s=e.useSlots(),h=e.computed(()=>!!s?.default),p={change:S=>{S.target.checked&&a("update:modelValue",n.itemValue)}};return(S,B)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass([{checked:c.value,disabled:t.disabled},"bs-radio-button"])},[e.createElementVNode("input",e.mergeProps({id:t.id,checked:c.value,disabled:t.disabled||t.viewMode,name:t.name,tabindex:t.tabindex,class:"",role:"radio",type:"radio"},e.toHandlers(p,!0)),null,16,Yt),e.createElementVNode("label",{for:t.id},[t.icon?(e.openBlock(),e.createElementBlock("span",Zt,e.toDisplayString(t.icon),1)):e.createCommentVNode("",!0),t.label?(e.openBlock(),e.createElementBlock("span",{key:1,textContent:e.toDisplayString(t.label),class:"text-label"},null,8,Wt)):e.createCommentVNode("",!0)],8,jt),h.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"slot-label cursor-pointer"},[e.renderSlot(S.$slots,"default",{disabled:t.disabled})],8,Gt)):e.createCommentVNode("",!0)],2))}}),Jt=["data-field-name"],Xt=["textContent"],Qt={key:1,class:"radio-button-group",role:"radiogroup"},_t=e.defineComponent({__name:"BSRadioButtonGroup",props:{name:{default:()=>L.generateNextName("radioGroup")},modelValue:{},items:{default:()=>[]},valueProvider:{},labelProvider:{},iconProvider:{},keyProvider:{},enabledItemProvider:{},tooltipProvider:{},tabindex:{default:0},disabled:{type:Boolean},viewMode:{type:Boolean},required:{type:Boolean},validationMessageRequired:{},extraValidationRules:{},ignoreSavePoint:{type:Boolean},hideErrorMessage:{type:Boolean},showErrorMessageOnDisabled:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,c=u=>Be(u,n.labelProvider,()=>String(u)),s=u=>n.valueProvider?n.valueProvider(u):u,h=u=>te(u,n.keyProvider,()=>String(s(u))),f=u=>n.enabledItemProvider?!n.enabledItemProvider(u):!1,p=e.computed(()=>{const u=n.items.find(i=>s(i)===n.modelValue);return u?c(u):""}),S=u=>{a("update:modelValue",u)};e.watch(()=>n.modelValue,()=>r(n.modelValue,"change"));const B=e.ref(),V=O(),b=async(u,i)=>{const m=[];return n.required&&u===void 0?m.push({code:"required",message:n.validationMessageRequired||"Required"}):u!==void 0&&await q(u,n.extraValidationRules,m,i,V),m},x=e.computed(()=>n.viewMode||n.disabled),{errors:y,validateValue:r}=H({field:B,disabled:x,initialValue:n.modelValue,isValid:b}),g=n.ignoreSavePoint?void 0:z(),E=g?.registerField({field:B,getCurrentValue:()=>n.modelValue,setCurrentValue:u=>a("update:modelValue",u)}),w=e.computed(()=>!!E?.isModified(n.modelValue));return e.onBeforeUnmount(()=>g?.unregisterField(B)),(u,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"field",ref:B,class:e.normalizeClass([{required:t.required,disabled:t.disabled,modified:w.value,error:e.unref(y).length>0},"bs-radio-button-group"]),"data-field-name":t.name},[t.viewMode?(e.openBlock(),e.createElementBlock("div",{key:0,textContent:e.toDisplayString(p.value)},null,8,Xt)):(e.openBlock(),e.createElementBlock("div",Qt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,m=>e.withDirectives((e.openBlock(),e.createBlock(Ve,{key:h(m),disabled:t.disabled||f(m),icon:t.iconProvider?.(m),"item-value":s(m),label:c(m),"model-value":t.modelValue,name:t.name,tabindex:t.tabindex,"onUpdate:modelValue":i[0]||(i[0]=l=>S(l))},null,8,["disabled","icon","item-value","label","model-value","name","tabindex"])),[[e.unref(G),{content:t.tooltipProvider?.(m)}]])),128))])),t.viewMode?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(R,{key:2,errors:e.unref(y),"hide-error-message":t.hideErrorMessage||t.disabled&&!t.showErrorMessageOnDisabled},null,8,["errors","hide-error-message"]))],10,Jt))}});function ne(t){return t!=null}function Ce(t){t.focus()}const we={mounted:(t,o)=>{(o.value===void 0||String(o.value)==="true"||typeof o.value=="number")&&(typeof o.value=="number"?setTimeout(()=>Ce(t),o.value):Ce(t))}},Me=(t,o)=>{let n;return(...a)=>new Promise((c,s)=>{n&&clearTimeout(n),n=setTimeout(()=>{try{const h=t(...a);c(h)}catch(h){s(h)}finally{n=void 0}},o)})},en={key:0,class:"popup-search pa-4"},tn=["data-value","onMouseover","onClick"],nn=["textContent"],on=["textContent"],Ee=e.defineComponent({__name:"BSSelectPopup",props:{items:{},initialItem:{},selectedItems:{},valueProvider:{},labelProvider:{},allowNull:{type:Boolean},nullLabel:{},maxHeight:{},showSearch:{type:[Boolean,String],default:"auto"},baseElement:{},popupAlign:{},popupDirection:{}},emits:["itemSelected","requestClose"],setup(t,{expose:o,emit:n}){const a=t,c=n,s=e.ref();e.watch(()=>a.items,async()=>{const l=await a.items,d=a.allowNull?[void 0,...l]:l;s.value=d.map(k=>{if(k!==void 0){const v=a.labelProvider(k),I=v?v.toLowerCase():"";return{original:k,value:a.valueProvider(k),label:v,keyword:I}}else return})},{immediate:!0});const h=e.computed(()=>a.showSearch==="auto"?s.value&&s.value.length>10:a.showSearch),f=e.ref(""),p=e.computed(()=>{if(s.value!==void 0)return f.value?s.value.filter(l=>l?.keyword?.includes(f.value)):s.value}),S=Me(l=>{f.value=l},300),B=l=>{const d=l.target.value.trim().toLowerCase();S(d)},V=l=>p.value?.findIndex(d=>d===void 0&&l===void 0?!0:d&&l?d.value===a.valueProvider(l):!1)??-1,b=()=>{if(p.value&&p.value.length>0){const l=Math.min(V(g.value)+1,p.value.length-1);E(p.value[l]?.original,l)}},x=()=>{if(p.value&&p.value.length>0){const l=Math.max(0,V(g.value)-1);E(p.value[l]?.original,l)}},y=()=>{m(g.value)},r=l=>{switch(l.key){case"Enter":y();break;case"ArrowDown":b();break;case"ArrowUp":x();break}},g=e.ref();g.value=a.initialItem;const E=(l,d)=>{g.value=l,d!==void 0&&u(d)},w=e.ref(),u=l=>{const d=w.value?.querySelectorAll(".popup-item")[l];if(w.value&&d){const k=w.value.getBoundingClientRect(),v=d.getBoundingClientRect();(v.top<k.top||v.bottom>k.bottom)&&(w.value.scrollTop=d.offsetTop-(w.value.offsetHeight-d.offsetHeight)/2)}};e.onMounted(async()=>{await e.nextTick(),await e.nextTick();const l=g.value||a.selectedItems?.[0];l&&u(V(l))});const i=l=>{const d=g.value;return d===void 0&&l===void 0?!0:d!==void 0&&l!==void 0?a.valueProvider(d)===a.valueProvider(l):!1},m=l=>{l&&s.value&&(l=s.value.filter(ne).find(d=>d&&d.value===a.valueProvider(l))?.original),c("itemSelected",l)};return o({handleKeyboard:r}),(l,d)=>(e.openBlock(),e.createBlock(J,{"base-element":t.baseElement,"max-height":t.maxHeight,"offset-from-base-element":4,"popup-align":t.popupAlign,"popup-direction":t.popupDirection,"extra-class":"bs-select-popup bs-layout-vertical",onRequestClose:d[2]||(d[2]=k=>c("requestClose")),onKeydown:e.withKeys(e.withModifiers(r,["stop","prevent"]),["enter","down","up"])},{default:e.withCtx(()=>[h.value?(e.openBlock(),e.createElementBlock("div",en,[e.withDirectives(e.createElementVNode("input",{type:"text",onInput:B,onKeydown:d[0]||(d[0]=e.withKeys(e.withModifiers(()=>{},["stop"]),["space"])),onClick:d[1]||(d[1]=e.withModifiers(()=>{},["stop"]))},null,544),[[e.unref(we)]])])):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"popupItems",ref:w,class:"popup-items grow h-full overflow-auto"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,k=>(e.openBlock(),e.createElementBlock("div",{key:k!==void 0?String(k):"",class:e.normalizeClass([{hovered:i(k?.original),"selected-item":k!==void 0&&t.selectedItems?.includes(k?.original)},"popup-item"]),"data-value":k?.value||"",onMouseover:v=>E(k?.original),onClick:e.withModifiers(v=>m(k?.original),["stop"])},[d[3]||(d[3]=e.createElementVNode("span",{class:"checkbox"},null,-1)),k!==void 0?(e.openBlock(),e.createElementBlock("label",{key:0,textContent:e.toDisplayString(k?.label),class:"label"},null,8,nn)):(e.openBlock(),e.createElementBlock("label",{key:1,textContent:e.toDisplayString(t.nullLabel),class:"label null-label"},null,8,on))],42,tn))),128))],512)]),_:1},8,["base-element","max-height","popup-align","popup-direction","onKeydown"]))}}),Se=(t,o)=>{t.vClickOutsideContext={enabled:o?.enabled??!0,handler:typeof o=="function"?o:o?.handler,insideElements:o?.insideElements}},an=(t,o)=>o?o.some(n=>{if(n instanceof HTMLElement)return n.contains(t);if(typeof n=="string")return document.querySelector(n)?.contains(t)}):!1,oe={mounted:(t,o)=>{const n=a=>{let c=a.target;if(!t.contains(c)){const s=t.vClickOutsideContext;s&&s.enabled&&(an(c,s.insideElements)||s.handler?.())}};t.vClickOutsideListener=n,Se(t,o.value),window.addEventListener("click",n)},updated:(t,o)=>{Se(t,o.value)},unmounted:t=>{const o=t.vClickOutsideListener;o&&window.removeEventListener("click",o),delete t.vClickOutsideContext}},ln=["tabindex","onKeydown"],rn=["textContent"],sn=["data-field-name"],dn=["textContent"],cn=["textContent"],un={key:2,class:"small-progress"},mn=e.defineComponent({__name:"BSSelect",props:{modelValue:{},items:{default:()=>[]},name:{},valueProvider:{type:Function,default:t=>t},labelProvider:{type:Function,default:ke},selectedLabelProvider:{},placeholder:{default:()=>""},allowNull:{type:Boolean},nullLabel:{},disabled:{type:Boolean},viewMode:{type:Boolean},tabindex:{default:0},required:{type:Boolean},validationMessageRequired:{},extraValidationRules:{},ignoreSavePoint:{type:Boolean},popupAlign:{},popupDirection:{},popupMaxHeight:{},showPopupSearch:{type:[Boolean,String],default:"auto"},hideErrorMessage:{type:Boolean},showErrorMessageOnDisabled:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,c=e.ref(),s=e.ref(!1);e.watch(()=>n.items,async()=>{s.value=!0,c.value=await n.items,s.value=!1},{immediate:!0});const h=$=>n.labelProvider?n.labelProvider($):String($),f=$=>n.valueProvider?n.valueProvider($):$,p=$=>$!==void 0?c.value?.find(N=>f(N)===$):void 0,S=e.computed(()=>!n.modelValue),B=e.computed(()=>p(n.modelValue)),V=e.computed(()=>B.value!==void 0?[B.value]:[]),b=e.computed(()=>B.value!==void 0?n.selectedLabelProvider?n.selectedLabelProvider(B.value):h(B.value):""),x=e.ref(!1),y=$=>{!n.disabled&&!n.viewMode&&(x.value=$===void 0?!x.value:$)},r=$=>{x.value?$.stopPropagation():y(!1)},g=e.ref(),E=$=>{x.value?g.value&&g.value.handleKeyboard($):y(!0)},w=$=>{const N=$?f($):void 0;a("update:modelValue",N),x.value=!1,i()},u=e.useTemplateRef("root"),i=()=>u.value?.focus();e.watch(()=>n.modelValue,()=>I(n.modelValue,"change"));const m=e.ref(),l=O(),d=async($,N)=>{const A=[];return n.required&&$===void 0?A.push({code:"required",message:n.validationMessageRequired||"Required"}):$!==void 0&&await q($,n.extraValidationRules,A,N,l),A},k=e.computed(()=>n.viewMode||n.disabled),{errors:v,validateValue:I}=H({field:m,disabled:k,initialValue:n.modelValue,isValid:d}),C=n.ignoreSavePoint?void 0:z(),P=C?.registerField({field:m,getCurrentValue:()=>n.modelValue,setCurrentValue:$=>a("update:modelValue",$)}),D=e.computed(()=>!!P?.isModified(n.modelValue));return e.onBeforeUnmount(()=>C?.unregisterField(m)),($,N)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref:"root",class:e.normalizeClass([{"popup-open":x.value,disabled:t.disabled,modified:D.value,error:e.unref(v).length>0,empty:S.value,"view-mode":t.viewMode},"bs-select"]),tabindex:t.disabled?-1:t.tabindex,onClick:N[1]||(N[1]=A=>y()),onKeydown:[N[2]||(N[2]=e.withKeys(e.withModifiers(A=>y(),["stop","prevent"]),["space"])),e.withKeys(e.withModifiers(E,["stop","prevent"]),["enter","down","up"]),N[3]||(N[3]=e.withKeys(e.withModifiers(A=>{y(!1),i()},["stop","prevent"]),["esc"])),e.withKeys(r,["tab"])]},[t.viewMode?(e.openBlock(),e.createElementBlock("div",{key:0,textContent:e.toDisplayString(b.value)},null,8,rn)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",{ref_key:"field",ref:m,"data-field-name":t.name,class:"selected w-full",role:"listbox"},[B.value===void 0?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(t.placeholder),class:"placeholder grow"},null,8,dn)):(e.openBlock(),e.createElementBlock("span",{key:1,textContent:e.toDisplayString(b.value),class:"label"},null,8,cn)),N[4]||(N[4]=e.createElementVNode("span",{class:"dropdown-btn"},"expand_more",-1)),s.value?(e.openBlock(),e.createElementBlock("span",un,"progress_activity")):e.createCommentVNode("",!0)],8,sn),!t.disabled&&x.value?(e.openBlock(),e.createBlock(Ee,{key:0,ref_key:"selectPopup",ref:g,"allow-null":t.allowNull,"base-element":u.value,"initial-item":B.value,items:t.items,"label-provider":t.labelProvider,"max-height":t.popupMaxHeight,"null-label":t.nullLabel,"popup-align":t.popupAlign,"popup-direction":t.popupDirection,"selected-items":V.value,"show-search":t.showPopupSearch,"value-provider":t.valueProvider,onItemSelected:w,onRequestClose:N[0]||(N[0]=A=>{y(!1),i()})},null,8,["allow-null","base-element","initial-item","items","label-provider","max-height","null-label","popup-align","popup-direction","selected-items","show-search","value-provider"])):e.createCommentVNode("",!0),t.viewMode?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(R,{key:1,errors:e.unref(v),"hide-error-message":t.hideErrorMessage||t.disabled&&!t.showErrorMessageOnDisabled},null,8,["errors","hide-error-message"]))],64))],42,ln)),[[e.unref(oe),()=>y(!1)]])}}),fn=["tabindex","onKeydown"],hn={key:0},pn=["textContent"],gn=["textContent"],bn=["data-field-name"],yn=["textContent"],xn={key:1,class:"text-truncate"},kn=["textContent"],Bn=["textContent"],Vn={key:2,class:"small-progress"},Cn=e.defineComponent({__name:"BSMultiSelect",props:{modelValue:{default:()=>[]},items:{default:()=>[]},name:{},valueProvider:{type:Function,default:t=>t},labelProvider:{type:Function,default:ke},selectedLabelProvider:{},keyProvider:{},placeholder:{},tabindex:{default:0},disabled:{type:Boolean},viewMode:{type:Boolean},required:{type:Boolean},validationMessageRequired:{},extraValidationRules:{},ignoreSavePoint:{type:Boolean},popupAlign:{},popupDirection:{},popupMaxHeight:{},showPopupSearch:{type:[Boolean,String],default:"auto"},hideErrorMessage:{type:Boolean},showErrorMessageOnDisabled:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,c=e.ref(),s=e.ref(!1);e.watch(()=>n.items,async()=>{s.value=!0,c.value=await n.items,s.value=!1},{immediate:!0});const h=C=>Be(C,n.labelProvider,()=>String(C)),f=C=>n.valueProvider?n.valueProvider(C):C,p=C=>te(C,n.keyProvider,()=>String(C)),S=C=>C?c.value?.find(P=>f(P)===C):void 0,B=e.computed(()=>!n.modelValue||n.modelValue.length===0),V=e.computed(()=>n.modelValue.map(S).filter(ne)),b=e.ref(!1),x=C=>{!n.disabled&&!n.viewMode&&(b.value=C===void 0?!b.value:C)},y=e.ref(),r=C=>{b.value?y.value&&y.value.handleKeyboard(C):x(!0)},g=C=>{if(C&&c.value){let P=[...V.value];const D=P.indexOf(C);D>=0?P.splice(D,1):P=c.value.filter(N=>P.includes(N)||N===C);const $=P.map(f);a("update:modelValue",$)}},E=e.useTemplateRef("root");e.watch(()=>n.modelValue,()=>d(n.modelValue,"change"));const w=e.ref(),u=O(),i=async(C,P)=>{const D=[];return n.required&&(C===void 0||C.length===0)?D.push({code:"required",message:n.validationMessageRequired||"Required"}):C!==void 0&&await q(C,n.extraValidationRules,D,P,u),D},m=e.computed(()=>n.viewMode||n.disabled),{errors:l,validateValue:d}=H({field:w,disabled:m,initialValue:n.modelValue,isValid:i}),k=n.ignoreSavePoint?void 0:z(),v=k?.registerField({field:w,getCurrentValue:()=>[...n.modelValue],setCurrentValue:C=>a("update:modelValue",[...C||[]]),compare:(C,P)=>C?.toSorted().join(",")===P?.toSorted().join(",")}),I=e.computed(()=>!!v?.isModified(n.modelValue||[]));return e.onBeforeUnmount(()=>k?.unregisterField(w)),(C,P)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref:"root",class:e.normalizeClass([{"popup-open":b.value,disabled:t.disabled,modified:I.value,error:e.unref(l).length>0,empty:B.value,"view-mode":t.viewMode},"bs-multi-select"]),tabindex:t.disabled?-1:t.tabindex,onClick:P[1]||(P[1]=D=>x()),onKeydown:[P[2]||(P[2]=e.withKeys(e.withModifiers(D=>x(),["stop","prevent"]),["space"])),e.withKeys(e.withModifiers(r,["stop","prevent"]),["enter","down","up"]),P[3]||(P[3]=e.withKeys(e.withModifiers(D=>x(!1),["stop","prevent"]),["esc"])),P[4]||(P[4]=e.withKeys(D=>x(!1),["tab"]))]},[t.viewMode?(e.openBlock(),e.createElementBlock("div",hn,[t.selectedLabelProvider?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(t.selectedLabelProvider(V.value)),class:"label"},null,8,pn)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(V.value,D=>(e.openBlock(),e.createElementBlock("span",{key:p(D),textContent:e.toDisplayString(h(D)),class:"label"},null,8,gn))),128))])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",{ref_key:"field",ref:w,"data-field-name":t.name,class:"selected w-full",role:"listbox"},[V.value.length===0?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(t.placeholder),class:"placeholder grow"},null,8,yn)):(e.openBlock(),e.createElementBlock("span",xn,[t.selectedLabelProvider?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(t.selectedLabelProvider(V.value)),class:"label"},null,8,kn)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(V.value,D=>(e.openBlock(),e.createElementBlock("span",{key:p(D),textContent:e.toDisplayString(h(D)),class:"label"},null,8,Bn))),128))])),P[5]||(P[5]=e.createElementVNode("span",{class:"dropdown-btn"},"expand_more",-1)),s.value?(e.openBlock(),e.createElementBlock("span",Vn,"progress_activity")):e.createCommentVNode("",!0)],8,bn),!t.disabled&&b.value?(e.openBlock(),e.createBlock(Ee,{key:0,ref_key:"selectPopup",ref:y,"base-element":E.value,"initial-item":V.value[0],items:t.items,"label-provider":t.labelProvider,"max-height":t.popupMaxHeight,"popup-align":t.popupAlign,"popup-direction":t.popupDirection,"selected-items":V.value,"show-search":t.showPopupSearch,"value-provider":t.valueProvider,onItemSelected:g,onRequestClose:P[0]||(P[0]=D=>x(!1))},null,8,["base-element","initial-item","items","label-provider","max-height","popup-align","popup-direction","selected-items","show-search","value-provider"])):e.createCommentVNode("",!0)],64)),t.viewMode?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(R,{key:2,errors:e.unref(l),"hide-error-message":t.hideErrorMessage||t.disabled&&!t.showErrorMessageOnDisabled},null,8,["errors","hide-error-message"]))],42,fn)),[[e.unref(oe),()=>x(!1)]])}}),wn=e.defineComponent({__name:"SlideDownTransition",setup(t){const o=f=>{f instanceof HTMLElement&&requestAnimationFrame(()=>{f.style.maxHeight="0px"})},n=f=>{f instanceof HTMLElement&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{f.style.maxHeight=`${f.scrollHeight}px`})})},a=f=>{f instanceof HTMLElement&&(f.style.maxHeight="none")},c=f=>{f instanceof HTMLElement&&requestAnimationFrame(()=>{f.style.maxHeight=`${f.scrollHeight}px`})},s=f=>{f instanceof HTMLElement&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{f.style.maxHeight="0px"})})},h=f=>{f instanceof HTMLElement&&(f.style.maxHeight="none")};return(f,p)=>(e.openBlock(),e.createBlock(e.Transition,{name:"slide-down",onEnter:n,onLeave:s,onBeforeEnter:o,onAfterEnter:a,onBeforeLeave:c,onAfterLeave:h},{default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:3}))}}),Mn={key:0,class:"card-layout-header bs-layout-horizontal flex-align-center"},En=["textContent"],Sn=e.defineComponent({__name:"BSCardLayout",props:{title:{},hideTitle:{type:Boolean},cardBodyClass:{}},setup(t){const o=e.ref(!0),n=()=>o.value=!o.value;return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{expanded:o.value},"bs-card-layout"])},[t.hideTitle?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Mn,[e.createElementVNode("span",{class:"expand-btn font-icon bs-clickable",onClick:n},"label"),e.createElementVNode("div",{textContent:e.toDisplayString(t.title),class:"card-layout-title"},null,8,En),c[0]||(c[0]=e.createElementVNode("div",{class:"grow"},null,-1)),e.createElementVNode("div",null,[e.renderSlot(a.$slots,"title-right")])])),e.createVNode(wn,null,{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.cardBodyClass)},[e.renderSlot(a.$slots,"default")],2),[[e.vShow,o.value]])]),_:3})],2))}}),vn={class:"bs-notification-container"},Pn={class:"top-notification bs-layout-vertical-inline flex-align-center gap-4"},$n=["textContent"],Dn={class:"bottom-notification bs-layout-vertical-inline flex-align-end gap-4"},Nn={class:"tooltip-container"},In=e.defineComponent({__name:"BSNotificationContainer",setup(t){const o=e.ref(),n=(a,c)=>{T.value&&o.value&&!o.value.$el?.contains(c.relatedTarget)&&(T.value.cursorInTooltip=a,a||K())};return(a,c)=>(e.openBlock(),e.createElementBlock("div",vn,[e.createElementVNode("div",Pn,[e.createVNode(e.TransitionGroup,{name:"notification"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Le),s=>(e.openBlock(),e.createElementBlock("div",{key:s.entryId,textContent:e.toDisplayString(s.message),class:e.normalizeClass(s.style)},null,10,$n))),128))]),_:1})]),e.createElementVNode("div",Dn,[e.createVNode(e.TransitionGroup,{name:"alarm"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Fe),s=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.component),{key:s.entryId,"alarm-entry-id":s.entryId,class:"bs-alarm-frame"},null,8,["alarm-entry-id"]))),128))]),_:1})]),e.createElementVNode("div",Nn,[e.unref(T)?(e.openBlock(),e.createBlock(me,{key:0,ref_key:"tooltip",ref:o,content:e.unref(T).content,target:e.unref(T).target,onMouseout:c[0]||(c[0]=s=>n(!1,s)),onMouseover:c[1]||(c[1]=s=>n(!0,s))},null,8,["content","target"])):e.createCommentVNode("",!0)]),e.unref(Te)?(e.openBlock(),e.createBlock(ce,{key:0})):e.createCommentVNode("",!0)]))}}),Ln=["data-menu-id"],Fn=["textContent","href","target"],Tn=["data-menu-id"],zn=["textContent","data-menu-id","onMouseenter","onClick"],ve=e.defineComponent({__name:"BSContextMenu",props:{menuItems:{},popupId:{},baseElement:{},left:{},top:{},zIndex:{},direction:{}},emits:["menuClicked","requestClose"],setup(t,{emit:o}){const n=o,a=W(),c=V=>{V.disabled||V.children||(V.handler?.(),a.hideContextMenu(),n("menuClicked",V))},s=()=>{a.hideContextMenu()},h=()=>{B(),n("requestClose")},f=e.ref(),p=e.ref(),S=(V,b)=>{b.children?(p.value=V.target,f.value=b.children):(f.value=void 0,p.value=void 0)},B=()=>{a.hideContextMenu()};return(V,b)=>{const x=e.resolveComponent("router-link"),y=e.resolveComponent("BSContextMenu",!0);return e.openBlock(),e.createBlock(J,{ref:"root","base-element":t.baseElement||{left:t.left||0,top:t.top||0},"popup-direction":t.direction,"popup-id":t.popupId,"z-index":t.zIndex,"extra-class":"bs-context-menu",onRequestClose:h,onKeydown:e.withKeys(B,["esc"])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menuItems,r=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:r},[r.type==="separator"?(e.openBlock(),e.createElementBlock("div",{key:0,class:"menu separator",onClick:b[0]||(b[0]=e.withModifiers(()=>{},["stop"]))})):r.type==="custom"&&r.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.component),{key:1,class:"menu custom"})):r.type==="link"?(e.openBlock(),e.createElementBlock("div",{key:2,"data-menu-id":r.menuId,class:"menu no-padding","data-id":"context-menu-item"},[e.createElementVNode("a",{textContent:e.toDisplayString(r.caption),href:r.href,target:r.target,onClick:e.withModifiers(s,["stop"])},null,8,Fn)],8,Ln)):r.type==="route"?(e.openBlock(),e.createElementBlock("div",{key:3,"data-menu-id":r.menuId,class:"menu no-padding","data-id":"context-menu-item"},[e.createVNode(x,{textContent:e.toDisplayString(r.caption),to:r.href||"",onClick:e.withModifiers(s,["stop"])},null,8,["textContent","to"])],8,Tn)):(e.openBlock(),e.createElementBlock("div",{key:4,textContent:e.toDisplayString(r.caption),class:e.normalizeClass([{"has-submenu":r.children,disabled:r.disabled},"menu"]),"data-menu-id":r.menuId,"data-id":"context-menu-item",onMouseenter:g=>S(g,r),onClick:e.withModifiers(g=>c(r),["stop"])},null,42,zn))],64))),128)),f.value&&p.value?(e.openBlock(),e.createBlock(y,{key:0,"base-element":p.value,"menu-items":f.value,direction:"auto-right"},null,8,["base-element","menu-items"])):e.createCommentVNode("",!0)]),_:1},8,["base-element","popup-direction","popup-id","z-index"])}}}),On={class:"bs-context-menu-container"},Hn=e.defineComponent({__name:"BSContextMenuContainer",setup(t){const o=W(),n=e.computed(()=>o.contextMenuItems.value),a=e.computed(()=>o.position.value||{x:0,y:0}),c=e.computed(()=>o.options.value),s=()=>{o.hideContextMenu()};return(h,f)=>(e.openBlock(),e.createElementBlock("div",On,[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"context-menu-curtain",tabindex:"0",onClick:e.withModifiers(s,["prevent"]),onContextmenu:e.withModifiers(s,["prevent"])},null,32)):e.createCommentVNode("",!0),n.value?(e.openBlock(),e.createBlock(ve,{key:1,left:a.value.x,"menu-items":n.value,top:a.value.y,"z-index":c.value?.zIndex},null,8,["left","menu-items","top","z-index"])):e.createCommentVNode("",!0),f[0]||(f[0]=e.createElementVNode("div",{class:"bs-popup-container"},null,-1))]))}});M.BSButton=Re,M.BSCardLayout=Sn,M.BSCheckbox=xe,M.BSCheckboxGroup=Kt,M.BSContextMenu=ve,M.BSContextMenuContainer=Hn,M.BSContextMenuPlugin=Z,M.BSLoadingIcon=ce,M.BSMultiSelect=Cn,M.BSNotificationContainer=In,M.BSNumberInput=Nt,M.BSPageNavigation=Ke,M.BSPopup=J,M.BSRadioButton=Ve,M.BSRadioButtonGroup=_t,M.BSSelect=mn,M.BSTextArea=zt,M.BSTextInput=bt,M.BSTooltip=me,M.BlueseaPlugin=Ie,M.ContextMenuPluginKey=U,M.SavePointImpl=_,M.cancelProvidedSavePoint=lt,M.createContextMenuPlugin=$e,M.debounce=Me,M.notNull=ne,M.provideFieldContext=dt,M.provideSavePoint=at,M.tryUntil=Ge,M.useContextMenu=W,M.useContextMenuOptional=Pe,M.useFieldContext=O,M.useSavePoint=z,M.vClickOutside=oe,M.vFocusOnLoad=we,M.vTooltip=G,M.waitDuring=ue,M.waitUntil=We,Object.defineProperty(M,Symbol.toStringTag,{value:"Module"})}));
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Ref } from "vue";
|
|
2
|
+
export type SavePointValueProvider<T> = {
|
|
3
|
+
getCurrentValue: () => T;
|
|
4
|
+
setCurrentValue: (value: T) => void;
|
|
5
|
+
compare?: (savedValue: T, currentValue: T) => boolean;
|
|
6
|
+
};
|
|
7
|
+
export type SavePointHandlerRegisterOption<T> = {
|
|
8
|
+
field: Ref<HTMLElement | undefined>;
|
|
9
|
+
} & SavePointValueProvider<T>;
|
|
10
|
+
export interface ChildSavePoint {
|
|
11
|
+
set(): void;
|
|
12
|
+
rollback(): void;
|
|
13
|
+
isModified(): boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SavePoint {
|
|
16
|
+
registerField<T>(option: SavePointHandlerRegisterOption<T>): SavePointHandler<T>;
|
|
17
|
+
unregisterField(field: Ref<HTMLElement | undefined>): void;
|
|
18
|
+
addChild(child: ChildSavePoint): void;
|
|
19
|
+
removeChild(child: ChildSavePoint): void;
|
|
20
|
+
set(): void;
|
|
21
|
+
setNextTick(): Promise<void>;
|
|
22
|
+
rollback(): void;
|
|
23
|
+
isModified(): boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare class SavePointImpl implements SavePoint {
|
|
26
|
+
private fields;
|
|
27
|
+
private children?;
|
|
28
|
+
registerField<T>(option: SavePointHandlerRegisterOption<T>): SavePointHandler<T>;
|
|
29
|
+
unregisterField(field: Ref<HTMLElement | undefined>): void;
|
|
30
|
+
addChild(child: ChildSavePoint): void;
|
|
31
|
+
removeChild(child: ChildSavePoint): void;
|
|
32
|
+
set(): void;
|
|
33
|
+
setNextTick(): Promise<void>;
|
|
34
|
+
rollback(): void;
|
|
35
|
+
isModified(): boolean;
|
|
36
|
+
}
|
|
37
|
+
export declare const provideSavePoint: () => SavePoint;
|
|
38
|
+
export declare const useSavePoint: () => SavePoint | undefined;
|
|
39
|
+
export declare const cancelProvidedSavePoint: () => void;
|
|
40
|
+
export interface SavePointHandler<T> {
|
|
41
|
+
saveValue(): void;
|
|
42
|
+
getSavedValue(): T | undefined;
|
|
43
|
+
rollbackValue(): void;
|
|
44
|
+
isModified(currentValue: T): boolean;
|
|
45
|
+
isFieldModified(): boolean;
|
|
46
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PrefixSuffix } from "@/model/CommonTypes";
|
|
2
|
+
declare const componentUtil: {
|
|
3
|
+
handleExternalErrorMessage(showErrorMessage: boolean, errorMessage?: string, elementId?: string): void;
|
|
4
|
+
generateNextId(prefix: string): string;
|
|
5
|
+
generateNextName(prefix: string): string;
|
|
6
|
+
isRelativeSize(size?: string): boolean;
|
|
7
|
+
delayed<T>(func: () => T, millis?: number): void;
|
|
8
|
+
trimStringValue(value?: string, trim?: boolean): string | undefined;
|
|
9
|
+
getPrefixSuffixList(param: string | string[] | PrefixSuffix | PrefixSuffix[] | undefined): PrefixSuffix[];
|
|
10
|
+
};
|
|
11
|
+
export default componentUtil;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* debounce 함수를 생성한다.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* // 함수를 만들 때 debounce 로 감싼다.
|
|
6
|
+
* const debouncedFunc = debounce(() => {
|
|
7
|
+
* ...
|
|
8
|
+
* }, 500)()
|
|
9
|
+
*
|
|
10
|
+
* // 여러 번 호출하더라도, 마지막 호출만 실행된다.
|
|
11
|
+
* debouncedFunc()
|
|
12
|
+
* ```
|
|
13
|
+
* @param func
|
|
14
|
+
* @param wait
|
|
15
|
+
*/
|
|
16
|
+
export declare const debounce: <T>(func: (...args: any[]) => T, wait: number) => ((...args: any[]) => Promise<T>);
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export declare const formatUtil: {
|
|
2
|
+
/**
|
|
3
|
+
* 개행 문자('\r', '\n')를 '<br/>' 태그로 변경한다.
|
|
4
|
+
* @param str 변경할 String
|
|
5
|
+
* @return 개행문자가 '<br/>'로 변경된 String
|
|
6
|
+
*/
|
|
7
|
+
escapeNewLine(str?: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* `str` 안의 `&<>"'` 문자를 escape 처리한다.
|
|
10
|
+
* @param str 변경할 String
|
|
11
|
+
*/
|
|
12
|
+
escapeHtml(str?: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* String 을 개행 문자('\r', '\n') 기준으로 나눈다.
|
|
15
|
+
* @param str
|
|
16
|
+
* @return 개행문자로 나누어진 string 의 array
|
|
17
|
+
*/
|
|
18
|
+
splitNewLine(str?: string): Array<string>;
|
|
19
|
+
/**
|
|
20
|
+
* ISO8601 형식의 string 을 주어진 format 으로 변환한다.
|
|
21
|
+
* @param utcDate
|
|
22
|
+
* @param format
|
|
23
|
+
* @param displayTimeZone
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* 숫자에 구분점을 넣는다. 소수점 이하가 있는 경우도 처리한다.
|
|
27
|
+
* * 12345 -> '12,345'
|
|
28
|
+
* * 12345.12345 -> '12,345.12345'
|
|
29
|
+
* * 0 -> '0'
|
|
30
|
+
* * undefined -> null
|
|
31
|
+
* * null -> null
|
|
32
|
+
*
|
|
33
|
+
* @param value
|
|
34
|
+
* @return
|
|
35
|
+
*/
|
|
36
|
+
formatNumber(value?: number | string | null): string | null;
|
|
37
|
+
formatNumberByCode(value?: number | string | null, locale?: string | "ko-KR"): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* 통화단위와 표시위치를 받아 출력한다
|
|
40
|
+
* @param value 값
|
|
41
|
+
* @param currencyUnit 통화단위
|
|
42
|
+
* @param prefix true 이면 withUnit을 앞에 붙이고, false 이면 뒤에 붙인다.
|
|
43
|
+
*/
|
|
44
|
+
formatPrice(value?: number | string | null, currencyUnit?: string | "", prefix?: boolean): string | null;
|
|
45
|
+
/**
|
|
46
|
+
* rate 를 받아 percent 를 출력한다.
|
|
47
|
+
* * 0.1 -> 10%
|
|
48
|
+
* * 0.55 -> 55%
|
|
49
|
+
* * 0.551 -> 55.1%
|
|
50
|
+
* @param value 비율 값
|
|
51
|
+
* @param withUnit true 이면 % 를 붙이고, false 이면 붙이지 않는다.
|
|
52
|
+
* @param decimalPlace 소숫점 n번째에서 반올림한다.
|
|
53
|
+
*/
|
|
54
|
+
formatPercent(value?: number | string | null, withUnit?: boolean, decimalPlace?: number): string | null;
|
|
55
|
+
/**
|
|
56
|
+
* 신용카드번호를 4자리 단위로 나누어 구분자를 넣는다.
|
|
57
|
+
* @param value
|
|
58
|
+
* @param separator 구분자
|
|
59
|
+
*/
|
|
60
|
+
formatCreditCardNo(value: string, separator?: string): string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* `HTML`태그가 포함된 문자열에서 text 만 남긴다.
|
|
63
|
+
* @param textIncludedHTMLElement HTML 태그를 포함하는 문자열
|
|
64
|
+
* @return HTML 태그가 제거된 문자열
|
|
65
|
+
*/
|
|
66
|
+
toPlainText(textIncludedHTMLElement?: string): string;
|
|
67
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type FunctionPropertyNames<T> = {
|
|
2
|
+
[K in keyof T]: T[K] extends Function ? K : never;
|
|
3
|
+
}[keyof T];
|
|
4
|
+
export type FunctionProperties<T> = Pick<T, FunctionPropertyNames<T>>;
|
|
5
|
+
export type NonFunctionPropertyNames<T> = {
|
|
6
|
+
[K in keyof T]: T[K] extends Function ? never : K;
|
|
7
|
+
}[keyof T];
|
|
8
|
+
export type NonFunctionProperties<T> = Pick<T, NonFunctionPropertyNames<T>>;
|
|
9
|
+
export type PartialNonFunctionProperties<T> = Partial<NonFunctionProperties<T>>;
|
|
10
|
+
export type RawData<T> = PartialNonFunctionProperties<T>;
|
|
11
|
+
/**
|
|
12
|
+
* Array 의 filter 로 null/undefined 가 아닌 것을 걸러낼 때 사용한다.
|
|
13
|
+
* ```ts
|
|
14
|
+
* const array: (string | null)[] = ['test', null, 'sample', undefined]
|
|
15
|
+
* const filtered: string[] = array.filter(notNull)
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function notNull<T>(value: T | null | undefined): value is T;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 특정 조건이 완료될 때까지 여러 번 계속 시도한다.
|
|
3
|
+
* @param condition 조건
|
|
4
|
+
* @param intervalMilliseconds 시도 간격
|
|
5
|
+
* @param maxTrial 최대 시도 수
|
|
6
|
+
*/
|
|
7
|
+
export declare const waitUntil: (condition: () => boolean, intervalMilliseconds?: number, maxTrial?: number) => Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* 일정 시간동안 기다린다.
|
|
10
|
+
* @param milliSec 기다리는 시간
|
|
11
|
+
*/
|
|
12
|
+
export declare const waitDuring: (milliSec?: number) => Promise<void>;
|
|
13
|
+
export declare const tryUntil: (until: () => boolean | undefined, tryCall: () => void, intervalMilliseconds?: number, maxTrial?: number) => void;
|
|
14
|
+
declare const _default: {
|
|
15
|
+
waitUntil: (condition: () => boolean, intervalMilliseconds?: number, maxTrial?: number) => Promise<void>;
|
|
16
|
+
waitDuring: (milliSec?: number) => Promise<void>;
|
|
17
|
+
tryUntil: (until: () => boolean | undefined, tryCall: () => void, intervalMilliseconds?: number, maxTrial?: number) => void;
|
|
18
|
+
};
|
|
19
|
+
export default _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ComputedRef, Ref, UnwrapRef } from "vue";
|
|
2
|
+
import type { FieldContext } from "@/model/FieldContext";
|
|
3
|
+
export type ValidationError = {
|
|
4
|
+
code: string;
|
|
5
|
+
message: string | undefined;
|
|
6
|
+
};
|
|
7
|
+
export type ValidationPhase = 'input' | 'change' | 'blur' | 'form';
|
|
8
|
+
export type FieldValidationRule<T> = (value: T, phase: ValidationPhase, fieldContext?: FieldContext<any>) => Promise<ValidationError[] | undefined> | ValidationError[] | undefined;
|
|
9
|
+
export type FieldValidatorOption<T> = {
|
|
10
|
+
field?: Ref<HTMLElement | undefined>;
|
|
11
|
+
disabled: Ref<boolean> | ComputedRef<boolean>;
|
|
12
|
+
initialValue?: T;
|
|
13
|
+
isValid?: (value: UnwrapRef<T> | undefined, phase: ValidationPhase) => undefined | ValidationError[] | Promise<ValidationError[]>;
|
|
14
|
+
convertToValue?: (value: string | undefined) => UnwrapRef<T>;
|
|
15
|
+
convertFromValue?: (value: UnwrapRef<T | undefined>) => string;
|
|
16
|
+
};
|
|
17
|
+
export type FieldValidator<T> = {
|
|
18
|
+
stringValue: Ref<string | undefined>;
|
|
19
|
+
value: Ref<UnwrapRef<T> | undefined>;
|
|
20
|
+
valid: Ref<boolean>;
|
|
21
|
+
errors: Ref<ValidationError[]>;
|
|
22
|
+
touched: Ref<boolean>;
|
|
23
|
+
handleInput: (event: Event) => Promise<void>;
|
|
24
|
+
handleChange: (event: Event) => Promise<void>;
|
|
25
|
+
handleFocus: (event: Event) => void;
|
|
26
|
+
handleBlur: (event: Event) => void;
|
|
27
|
+
validateValue: (value: UnwrapRef<T>, phase: ValidationPhase) => Promise<void>;
|
|
28
|
+
validate: (phase?: ValidationPhase) => Promise<void>;
|
|
29
|
+
clearErrors: () => void;
|
|
30
|
+
getName: () => string;
|
|
31
|
+
};
|
|
32
|
+
export declare const storeFieldValidator: <T>(field: HTMLElement, validator: FieldValidator<T>) => void;
|
|
33
|
+
export declare const loadFieldValidator: <T>(field: HTMLElement) => FieldValidator<T> | undefined;
|
|
34
|
+
export declare const findFieldValidatorElements: (element?: HTMLElement) => NodeListOf<HTMLElement> | undefined;
|
|
35
|
+
export declare const validateField: (field: HTMLElement | string, phase?: ValidationPhase) => Promise<void>;
|
|
36
|
+
export declare const validateFields: (fields: (HTMLElement | string)[], phase?: ValidationPhase) => Promise<void>;
|
|
37
|
+
export declare const fieldValidator: <T>(option: FieldValidatorOption<T>) => FieldValidator<T>;
|
|
38
|
+
export declare const executeFieldValidationRule: <T>(value: T, rules: FieldValidationRule<T>[] | undefined, errors: ValidationError[], phase: ValidationPhase, fieldContext?: FieldContext<any>) => Promise<boolean>;
|
|
39
|
+
export declare const executeRequiredValidation: (value: string | number | undefined, checkRequired: boolean, requiredMessage: string | undefined, errors: ValidationError[]) => boolean;
|
|
40
|
+
export declare const executeRegExpValidation: (value: string, regexp: string | undefined, message: string | undefined, errors: ValidationError[]) => boolean;
|
|
41
|
+
export declare const executeBetweenLengthValidation: (text: string, minLength: number | undefined, minLengthMessage: string | undefined, maxLength: number | undefined, maxLengthMessage: string | undefined, betweenLengthMessage: string | undefined, errors: ValidationError[]) => boolean;
|
|
42
|
+
export declare const executeBetweenValueValidation: (value: number, minValue: number | undefined, minValueMessage: string | undefined, maxValue: number | undefined, maxValueMessage: string | undefined, betweenValueMessage: string | undefined, errors: ValidationError[]) => boolean;
|
|
43
|
+
export declare const executeDateRangeValidation: (fromValue: string | undefined, toValue: string | undefined, validationMessage: string | undefined, erros: ValidationError[]) => boolean;
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@g1cloud/open-bluesea-core",
|
|
3
|
+
"description": "Vue UI Library for Management Console.",
|
|
4
|
+
"license": "Proprietary",
|
|
5
|
+
"private": false,
|
|
6
|
+
"version": "1.0.0-alpha.1",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">= 24.3.0"
|
|
10
|
+
},
|
|
11
|
+
"author": "kimos@g1project.net",
|
|
12
|
+
"main": "./dist/open-bluesea-core.umd.js",
|
|
13
|
+
"module": "./dist/open-bluesea-core.es.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"css",
|
|
18
|
+
"!dist/tests"
|
|
19
|
+
],
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
22
|
+
"@types/node": "^24.3.0",
|
|
23
|
+
"@vitejs/plugin-vue": "^6.0.1",
|
|
24
|
+
"typescript": "~5.9.3",
|
|
25
|
+
"vite": "^7.1.12",
|
|
26
|
+
"vue-tsc": "^3.1.3"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"dayjs": "^1.11.19",
|
|
30
|
+
"tslib": "^2.8.1",
|
|
31
|
+
"vue": "^3.5.22"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"dayjs": "^1.11.19",
|
|
35
|
+
"tslib": "^2.8.1",
|
|
36
|
+
"vue": "^3.5.22"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"dev": "vite",
|
|
40
|
+
"build": "vue-tsc && vite build",
|
|
41
|
+
"preview": "vite preview",
|
|
42
|
+
"test": "vitest"
|
|
43
|
+
}
|
|
44
|
+
}
|