@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
9 lines (8 loc) • 28.1 kB
JavaScript
(function(S,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("vue"),require("../response-toolbar/index.umd.js"),require("../common/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("lodash-es"),require("../locale/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../response-toolbar/index.umd.js","../common/index.umd.js","../dynamic-resolver/index.umd.js","lodash-es","../locale/index.umd.js"],u):(S=typeof globalThis<"u"?globalThis:S||self,u(S.drawer={},S.Vue,S.FResponseToolbar,S.common,S.dynamicResolver,S.LodashES,S.locale))})(this,function(S,u,re,L,ne,$,A){"use strict";const oe=new Map([["appearance",ne.resolveAppearance]]),ie={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/drawer.schema.json",title:"drawer",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for drawer",type:"string"},type:{description:"The type string of drawer",type:"string",default:"drawer"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},visible:{description:"",type:"boolean",default:!0},title:{description:"",type:"string",default:"详情"},position:{description:"",type:"string",default:"right"},width:{description:"",type:"number",default:500},showMask:{description:"",type:"boolean",default:!0},showHeader:{description:"",type:"boolean",default:!0},showClose:{description:"",type:"boolean",default:!0},customHeader:{description:"",type:"boolean",default:!1},headerTemplate:{description:"",type:"object"},headerToolbar:{description:"",type:"object",properties:{appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}},id:{description:"",type:"string"},type:{description:"",type:"string",default:"drawer-toolbar"},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]}}},showFooter:{description:"",type:"boolean",default:!0},showEntry:{description:"",type:"boolean",default:!1},footerToolbar:{description:"",type:"object",properties:{appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}},id:{description:"",type:"string"},type:{description:"",type:"string",default:"drawer-toolbar"},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]}}},contents:{description:"",type:"array",default:[]},footerTemplate:{description:"",type:"object"},footerContentType:{description:"",type:"string",default:"toolbar"},footerHeight:{description:"",type:"number",default:60},allowClickMaskToClose:{description:"",type:"boolean",default:!0},transparent:{description:"遮罩层是否透明",type:"boolean",default:!1},host:{description:"",type:"string"}},required:["id","type","contents"],events:{beforeClose:"关闭前事件"}};function ae(e,t,r){return Object.assign(t,{title:"标题",headerToolbar:{id:t.id+"_header_toolbar",type:"drawer-toolbar",buttons:[]},footerToolbar:{id:t.id+"_footer_toolbar",type:"drawer-toolbar",buttons:[]}}),t}function I(e,t){let r;function n(a){const{properties:c,title:b,ignore:o}=a,i=o&&Array.isArray(o),d=Object.keys(c).reduce((g,y)=>((!i||!o.find(k=>k===y))&&(g[y]=c[y].type==="object"&&c[y].properties?n(c[y]):$.cloneDeep(c[y].default)),g),{});if(b&&(!i||!o.find(g=>g==="id"))){const g=b.toLowerCase().replace(/-/g,"_");d.id=`${g}_${Math.random().toString().slice(2,6)}`}return d}function m(a){const{properties:c,title:b,required:o}=a;if(o&&Array.isArray(o)){const i=o.reduce((d,g)=>(d[g]=c[g].type==="object"&&c[g].properties?n(c[g]):$.cloneDeep(c[g].default),d),{});if(b&&o.find(d=>d==="id")){const d=b.toLowerCase().replace(/-/g,"_");i.id=`${d}_${Math.random().toString().slice(2,6)}`}return i}return{type:b}}function C(a,c={},b){const o=e[a];if(o){let i=m(o);const d=t[a];return i=d?d({getSchemaByType:C},i,c,b):i,r!=null&&r.appendIdentifyForNewControl&&r.appendIdentifyForNewControl(i),i}return null}function T(a,c){const b=n(c);return Object.keys(b).reduce((o,i)=>(Object.prototype.hasOwnProperty.call(a,i)&&(o[i]&&$.isPlainObject(o[i])&&$.isPlainObject(a[i]||!a[i])?Object.assign(o[i],a[i]||{}):o[i]=a[i]),o),b),b}function F(a,c){return Object.keys(a).filter(o=>a[o]!=null).reduce((o,i)=>{if(c.has(i)){const d=c.get(i);if(typeof d=="string")o[d]=a[i];else{const g=d(i,a[i],a);Object.assign(o,g)}}else o[i]=a[i];return o},{})}function x(a,c,b=new Map){const o=T(a,c);return F(o,b)}function p(a){var b;const c=a.type;if(c){const o=e[c];if(!o)return a;const i=T(a,o),d=((b=a.editor)==null?void 0:b.type)||"";if(d){const g=e[d],y=T(a.editor,g);i.editor=y}return i}return a}function v(a){r=a}return{getSchemaByType:C,resolveSchemaWithDefaultValue:p,resolveSchemaToProps:x,mappingSchemaToProps:F,setDesignerContext:v}}const W={},G={},{resolveSchemaWithDefaultValue:le,resolveSchemaToProps:se,mappingSchemaToProps:ce}=I(W,G);function ue(e={}){function t(p,v,a,c){if(typeof a=="number")return c[p].length===a;if(typeof a=="object"){const b=Object.keys(a)[0],o=a[b];if(b==="not")return Number(c[p].length)!==Number(o);if(b==="moreThan")return Number(c[p].length)>=Number(o);if(b==="lessThan")return Number(c[p].length)<=Number(o)}return!1}function r(p,v,a,c){return c[p]&&c[p].propertyValue&&String(c[p].propertyValue.value)===String(a)}const n=new Map([["length",t],["getProperty",r]]);Object.keys(e).reduce((p,v)=>(p.set(v,e[v]),p),n);function m(p,v){const a=p;return typeof v=="number"?[{target:a,operator:"length",param:null,value:Number(v)}]:typeof v=="boolean"?[{target:a,operator:"getProperty",param:p,value:!!v}]:typeof v=="object"?Object.keys(v).map(c=>{if(c==="length")return{target:a,operator:"length",param:null,value:v[c]};const b=c,o=v[c];return{target:a,operator:"getProperty",param:b,value:o}}):[]}function C(p){return Object.keys(p).reduce((a,c)=>{const b=m(c,p[c]);return a.push(...b),a},[])}function T(p,v){if(n.has(p.operator)){const a=n.get(p.operator);return a&&a(p.target,p.param,p.value,v)||!1}return!1}function F(p,v){return C(p).reduce((b,o)=>b&&T(o,v),!0)}function x(p,v){const a=Object.keys(p),c=a.includes("allOf"),b=a.includes("anyOf"),o=c||b,g=(o?p[o?c?"allOf":"anyOf":"allOf"]:[p]).map(k=>F(k,v));return c?!g.includes(!1):g.includes(!0)}return{parseValueSchema:x}}const de={convertTo:(e,t,r,n)=>{e.appearance||(e.appearance={}),e.appearance[t]=r},convertFrom:(e,t,r)=>e.appearance?e.appearance[t]:e[t]},fe={convertFrom:(e,t,r)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},me={convertTo:(e,t,r,n)=>{e.editor&&(e.editor[t]=r)},convertFrom:(e,t,r)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},pe={button:{type:"button",name:"按钮"},"response-toolbar":{type:"response-toolbar",name:"工具栏"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮"},"content-container":{type:"content-container",name:"容器"},"input-group":{type:"input-group",name:"文本"},textarea:{type:"textarea",name:"多行文本"},lookup:{type:"lookup",name:"帮助"},"number-spinner":{type:"number-spinner",name:"数值"},"date-picker":{type:"date-picker",name:"日期"},switch:{type:"switch",name:"开关"},"radio-group":{type:"radio-group",name:"单选组"},"check-box":{type:"check-box",name:"复选框"},"check-group":{type:"check-group",name:"复选框组"},"combo-list":{type:"combo-list",name:"下拉列表"},"response-form":{type:"response-form",name:"卡片面板"},"response-layout":{type:"response-layout",name:"布局容器",icon:"response-layout-3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"response-layout-1"},"tree-grid":{type:"tree-grid",name:"树表格"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块"},component:{type:"component",name:"组件"},tabs:{type:"tabs",name:"标签页"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮"},"drawer-toolbar-item":{type:"drawer-toolbar-item",name:"抽屉工具栏按钮"},"html-template":{type:"html-template",name:"模板容器"},"time-picker":{type:"time-picker",name:"时间选择"},section:{type:"section",name:"分组面板"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传"},"page-header":{type:"page-header",name:"页头"},"page-footer":{type:"page-footer",name:"页脚"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏"},"drawer-toolbar":{type:"drawer-toolbar",name:"抽屉工具栏"},fieldset:{type:"fieldset",name:"分组"},"query-solution":{type:"query-solution",name:"筛选方案"},drawer:{type:"drawer",name:"抽屉"},"external-container":{type:"external-container",name:"外部容器",icon:"content-container"},"list-nav":{type:"list-nav",name:"列表导航"},nav:{type:"nav",name:"标签类导航"},"list-view":{type:"list-view",name:"列表"},"filter-bar":{type:"filter-bar",name:"筛选条"},"language-textbox":{type:"language-textbox",name:"多语输入框"},image:{type:"image",name:"图像"},avatar:{type:"avatar",name:"头像"},"discussion-editor":{type:"discussion-editor",name:"评论编辑区"},"discussion-list":{type:"discussion-list",name:"评论列表"},comment:{type:"comment",name:"评论区"},"approval-logs":{type:"approval-logs",name:"审批记录"},"rich-text-editor":{type:"rich-text-editor",name:"富文本",icon:"rich-text-box"},calendar:{type:"calendar",name:"日历",icon:"date-picker"},wizard:{type:"wizard",name:"向导",icon:"wizard"},"wizard-page":{type:"wizard-page",name:"向导页",icon:"wizard"},"wizard-page-detail":{type:"wizard-page-detail",name:"向导详情",icon:"wizard"},step:{type:"step",name:"步骤条",icon:"step"},"dynamic-form":{type:"dynamic-form",name:"动态表单"}},be={convertFrom:(e,t,r)=>{var m;const n=e.editor&&e.editor[t]?e.editor[t]:e[t];return((m=pe[n])==null?void 0:m.name)||n}},ge={convertTo:(e,t,r,n)=>{e[t]=e[t]},convertFrom:(e,t,r)=>e.editor?r.getRealEditorType(e.editor.type):""},ve={convertTo:(e,t,r,n)=>{(e.type==="data-grid-column"||e.type==="tree-grid-column")&&(e.formatter?e.formatter[t]=r:e.formatter={[t]:r})},convertFrom:(e,t,r)=>{if(e.formatter){if(t==="trueText")return e.formatter.trueText;if(t==="falseText")return e.formatter.falseText;if(t==="prefix")return e.formatter.prefix;if(t==="suffix")return e.formatter.suffix;if(t==="precision")return e.formatter.precision;if(t==="decimal")return e.formatter.decimal;if(t==="thousand")return e.formatter.thousand;if(t==="dateFormat")return e.formatter.dateFormat||"yyyy-MM-dd";if(t==="customFormat")return e.formatter.customFormat;if(t==="type")return e.formatter.type||"none"}return"none"}},ye={convertTo:(e,t,r,n)=>{e.command?e.command[t]=r:e.command={[t]:r},t==="enableType"&&r==="default"&&(e.command.enable=!0,e.command.formatter="",e.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]),t==="enableType"&&r==="custom"&&(e.command.enable=!0,e.command.commands=[{value:"add",text:"增加",type:"link"},{value:"edit",text:"编辑",type:"link"},{value:"remove",text:"删除",type:"link"}]),t==="enableType"&&r==="unable"&&(e.command.enable=!1,e.command.formatter="")},convertFrom:(e,t,r)=>{var n,m;if(e.command){if(t==="enableType"){if(e.command.enableType)return e.command.enableType;const C=(m=(n=e.command)==null?void 0:n.commands)==null?void 0:m.find(T=>T.command==="edit"&&T.type==="primary");return e.command.enable?C?"default":"custom":"unable"}if(t==="commands")return e.command.enableType==="custom"?e.command.commands:[];if(t==="formatter")return e.command.formatter;if(t==="count")return e.command.count;if(t==="columnWidth")return e.command.columnWidth||200}return""}},Te={convertTo:(e,t,r,n)=>{e.column?e.column[t]=r:e.column={[t]:r},t==="fitColumns"&&r&&(e.column.fitMode||(e.column.fitMode="average"))},convertFrom:(e,t,r)=>{if(e.column){if(t==="fitColumns")return e.column.fitColumns;if(t==="fitMode")return e.column.fitMode}return""}},we={convertTo:(e,t,r,n)=>{e.summary?e.summary[t]=r:e.summary={[t]:r},t==="enable"&&r&&(e.summary?e.summary.groupFields||(e.summary.groupFields=[]):e.summary={enable:r,groupFields:[]})},convertFrom:(e,t,r)=>{var n,m;return t==="customSummaryStyle"?e.summary.customSummaryStyle:t==="position"?((n=e.summary)==null?void 0:n[t])||"bottom":t==="customRender"?((m=e.summary)==null?void 0:m[t])||"":e.summary&&t==="enable"?e.summary.enable:e.type==="data-grid-column"?e.enableSummary===void 0?!1:e.enableSummary:""}},Ce={convertTo:(e,t,r,n)=>{e.group?e.group[t]=r:e.group={[t]:r},t==="enable"&&r&&(e.group?e.group.groupFields||(e.group.groupFields=[]):e.group={enable:r,groupFields:[],showSummary:!1,customRender:""})},convertFrom:(e,t,r)=>{if(e.group){if(t==="enable")return e.group.enable;if(t==="showSummary")return e.group.showSummary;if(t==="customRender")return e.group.customRender;if(t==="groupFields")return e.group.groupFields}}},he={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,r)=>{if(r&&r.length>0){const n=r[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=n.bindingField,e.binding.field=n.id,e.binding.fullPath=n.path,e.path=n.bindingPath}}},Se={convertTo:(e,t,r,n)=>{e.pagination||(e.pagination={}),t==="sizeLimits"?e.pagination.sizeLimits=r.split(","):e.pagination[t]=r},convertFrom:(e,t,r)=>{var n;return e.pagination?t==="sizeLimits"?(n=e.pagination.sizeLimits)==null?void 0:n.join(","):e.pagination[t]:e[t]}},ke={convertTo:(e,t,r,n)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=r},convertFrom:(e,t,r)=>e.rowNumber?e.rowNumber[t]:e[t]},Fe={convertTo:(e,t,r,n)=>{e.selection||(e.selection={}),e.selection[t]=r},convertFrom:(e,t,r)=>{if(!e.selection)return!!e[t];const n=!!e.selection[t];return t==="showCheckbox"&&n==null&&e.selection.multiSelect===!0?!0:n}},xe={convertFrom:(e,t,r)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},Oe={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,r)=>{e[t]=r}},je={convertTo:(e,t,r,n)=>{e.size||(e.size={}),e.size[t]=r},convertFrom:(e,t,r)=>e.size?e.size[t]:e[t]},Ne={convertFrom:(e,t,r)=>{var n,m;return(n=e.formatter)!=null&&n.data&&t==="formatterEnumData"&&!e.formatterEnumData?(m=e.formatter)==null?void 0:m.data:e.formatterEnumData}},Pe={convertTo:(e,t,r,n)=>{e.sort||(e.sort={}),e.sort[t]=r},convertFrom:(e,t,r)=>{var n,m;if(t==="mode")return((n=e.sort)==null?void 0:n.mode)||"client";if(t==="multiSort")return!!((m=e.sort)!=null&&m.multiSort)}},Ee={convertTo:(e,t,r,n)=>{e.filter||(e.filter={}),e.filter[t]=r,t==="enable"&&(e.enableFilter=!1)},convertFrom:(e,t,r)=>{var n,m,C,T;return t==="mode"?((n=e.filter)==null?void 0:n.mode)||"server":t==="filterStyle"?((m=e.filter)==null?void 0:m.filterStyle)||"filter-column":t==="enable"?((C=e.filter)==null?void 0:C.enable)!==void 0?!!e.filter.enable:!!e.enableFilter:((T=e.filter)==null?void 0:T[t])||void 0}},Me={convertTo:(e,t,r,n)=>{e.rowOption?e.rowOption[t]=r:e.rowOption={[t]:r}},convertFrom:(e,t,r)=>{if(e.rowOption){if(t==="customRowStyle")return e.rowOption.customRowStyle;if(t==="customCellStyle")return e.rowOption.customCellStyle;if(t==="height")return e.rowOption.height}return""}},Re={convertTo:(e,t,r,n)=>{(e.type==="data-grid-column"||e.type==="tree-grid-column")&&(e[t]=r,t==="columnTemplateType"&&r==="hyperlink"&&(e.onClickLinkCommand?e.columnTemplate=`
<span class="f-pretend-link f-cursor-pointer"
@click="(ctx)=>viewModel.current.${e.onClickLinkCommand||""}({id: rowData.id,context: ctx})">
{{rowData.${e.field}}}
</span>`:e.columnTemplate=`
<span class="f-pretend-link f-cursor-pointer">
{{rowData.${e.field}}}
</span>`),t==="columnTemplateType"&&r==="default"&&(e.columnTemplate=""),t==="columnTemplateType"&&r==="custom"&&(e.columnTemplate=""))},convertFrom:(e,t,r)=>t==="columnTemplate"?e.columnTemplate:t==="columnTemplateType"?e.columnTemplateType?e.columnTemplateType||"default":e.columnTemplate&&!e.onClickLinkCommand?"custom":e.columnTemplate&&e.onClickLinkCommand?"hyperlink":"default":""},De={convertTo:(e,t,r,n)=>{e.hierarchy||(e.hierarchy={cascadeOption:{}}),e.hierarchy.cascadeOption||(e.hierarchy.cascadeOption={}),e.hierarchy.cascadeOption[t]=r},convertFrom:(e,t,r)=>{var n,m;return!!((m=(n=e.hierarchy)==null?void 0:n.cascadeOption)!=null&&m[t])}};function Z(e,t,r){const n=new Map([["/converter/appearance.converter",de],["/converter/buttons.converter",fe],["/converter/property-editor.converter",me],["/converter/items-count.converter",xe],["/converter/type.converter",be],["/converter/change-editor.converter",ge],["/converter/change-formatter.converter",ve],["/converter/column-command.converter",ye],["/converter/column-option.converter",Te],["/converter/summary.converter",we],["/converter/group.converter",Ce],["/converter/form-group-label.converter",Oe],["/converter/field-selector.converter",he],["/converter/pagination.converter",Se],["/converter/row-number.converter",ke],["/converter/grid-selection.converter",Fe],["/converter/size.converter",je],["/converter/change-formatter-enum.converter",Ne],["/converter/grid-sort.converter",Pe],["/converter/grid-filter.converter",Ee],["/converter/row-option.converter",Me],["/converter/change-formatter-type.converter",Re],["/converter/tree-auto-check.converter",De]]),m=new Map([["string",{type:"input-group",enableClear:!1}],["boolean",{type:"combo-list",textField:"name",valueField:"value",idField:"value",enableClear:!1,editable:!1,data:[{value:!0,name:"是"},{value:!1,name:"否"}]}],["enum",{type:"combo-list",maxHeight:128,enableClear:!1,editable:!1}],["array",{type:"button-edit"}],["number",{type:"number-spinner",placeholder:""}],["events-editor",{type:"events-editor",hide:!0}],["multiLanguage",{type:"language-textbox"}]]),C=ue();function T(o,i){return()=>C.parseValueSchema(o,i)}function F(o,i,d){return o.includes("visible")&&i.visible!==void 0?typeof i.visible=="boolean"?()=>!!i.visible:i.visible===void 0?!0:T(i.visible,d):()=>!0}function x(o,i,d){return o.includes("readonly")&&i.readonly!==void 0?typeof i.readonly=="boolean"?()=>!!i.readonly:T(i.readonly,d):()=>!1}function p(o,i){const d=o.$converter||i;return typeof d=="string"&&d&&n.has(d)?n.get(d)||null:d||null}function v(o,i,d,g,y,k="",j=""){return Object.keys(o).map(w=>{const N=u.ref(1),s=w,l=o[w],f=Object.keys(l),E=l.title,h=l.type,D=m.get(h)||{type:"input-group",enableClear:!1},P=l.editor?Object.assign({},D,l.editor):Object.assign({},D),q=F(f,l,i),B=x(f,l,i);P.readonly=P.readonly===void 0?B():P.readonly;const H=l.type==="cascade"?v(l.properties,i,d,g,y,k,j):[],_=!0;let M=p(l,j);const Ae=u.computed({get(){if(N.value){if(["class","style"].find(z=>z===s)&&!M&&(M=n.get("/converter/appearance.converter")||null),M&&M.convertFrom){const z=M.convertFrom(d,w,y,k);return z===void 0&&Object.prototype.hasOwnProperty.call(l,"defaultValue")?l.type==="boolean"?l.defaultValue:l.defaultValue||"":z}const R=d[w];return Object.prototype.hasOwnProperty.call(l,"defaultValue")&&(R===void 0||typeof R=="string"&&R==="")?l.type==="boolean"?l.defaultValue:l.defaultValue||"":R}return null},set(R){N.value+=1,M&&M.convertTo?(M.convertTo(g,w,R,y,k),M.convertTo(d,w,R,y,k)):(g[w]=R,d[w]=R)}}),{refreshPanelAfterChanged:Ie,description:We,isExpand:Ge,parentPropertyID:Ze}=l,te={propertyID:s,propertyName:E,propertyType:h,propertyValue:Ae,editor:P,visible:q,readonly:B,cascadeConfig:H,hideCascadeTitle:_,refreshPanelAfterChanged:Ie,description:We,isExpand:Ge,parentPropertyID:Ze};return i[s]=te,te})}function a(o,i,d={}){const g={},y=e[o];return y&&y.categories?Object.keys(y.categories).map(j=>{const O=y.categories[j],w=O==null?void 0:O.title,N=v(O.properties||{},g,{},d,i);return{categoryId:j,categoryName:w,properties:N}}):[]}function c(o,i,d,g,y=""){const k=i.$ref.schema,j=i.$ref.converter,O=d[k],w=O.type,N=r(O),s={},l=e[w];if(l&&l.categories){const f=l.categories[o],E=f==null?void 0:f.title;j&&Object.keys(f.properties).forEach(P=>{f.properties[P].$converter=j});const h=(f==null?void 0:f.properties)||{},D=v(h,s,N,O,g,y);return{categoryId:o,categoryName:E,properties:D}}return{categoryId:o,categoryName:"",properties:[]}}function b(o,i,d,g,y){const k=o.type,j=r(o),O={};let w=y||e[k];if(!(w&&Object.keys(w).length>0)&&d&&d.getPropConfig&&(w=d.getPropConfig(g)),w&&w.categories){const s=[];return Object.keys(w.categories).map(l=>{const f=w.categories[l];if(f.$ref){s.push(c(l,f,o,i,g));return}const E=f==null?void 0:f.title,h=f==null?void 0:f.tabId,D=f==null?void 0:f.tabName,P=f==null?void 0:f.hide,q=f==null?void 0:f.hideTitle,B=v(f.properties||{},O,j,o,i,g,f.$converter),{setPropertyRelates:H}=f,_=f==null?void 0:f.parentPropertyID;s.push({categoryId:l,categoryName:E,tabId:h,tabName:D,hide:P,properties:B,hideTitle:q,setPropertyRelates:H,parentPropertyID:_})}),s}return[]}return{getPropertyConfigBySchema:b,getPropertyConfigByType:a,propertyConverterMap:n}}const J={},Q={};Z(J,Q,le);const U={},X={},{resolveSchemaWithDefaultValue:$e}=I(U,X),Y={},K={};Z(Y,K,$e);function Be(e,t,r=new Map,n=(T,F,x,p)=>F,m={},C=T=>T){return W[t.title]=t,G[t.title]=n,J[t.title]=m,Q[t.title]=C,U[t.title]=t,X[t.title]=n,Y[t.title]=m,K[t.title]=C,(T={},F=!0)=>{if(!F)return ce(T,r);const x=se(T,t,r),p=Object.keys(e).reduce((v,a)=>(v[a]=e[a].default,v),{});return Object.assign(p,x)}}function ze(e,t){if(!e||e.length<1)return null;for(const r of e){if(r.id===t)return r;if(r.children){const n=r.children.find(m=>m.id===t);if(n)return n}}return null}function Le(){function e(t,r){const{footerToolbar:n,headerToolbar:m}=t,C=((n==null?void 0:n.buttons)||[]).concat((m==null?void 0:m.buttons)||[]);if(!C||C.length<1)return null;const[T,F]=r.payloads,x=ze(C,F);return x?x.onClick||x.click:null}return{resolve:e}}const V={id:{type:String,required:!0},backgroundColor:{type:String,default:"#fff"},beforeClose:{type:Function,default:()=>!0},class:{type:String,default:""},modalClass:{type:String,default:""},height:{type:String,default:300},modelValue:{type:Boolean,default:!1},position:{type:String,default:"right"},appendTo:{type:String,default:"body"},showEntry:{type:Boolean,default:!1},showClose:{type:Boolean,default:!0},showMask:{type:Boolean,default:!0},allowClickMaskToClose:{type:Boolean,default:!0},transparent:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:String,default:300},host:{type:[Object,String],default:"body"},showHeader:{type:Boolean,default:!0},headerToolbar:{type:Object,default:{}},headerTemplate:{type:Object,default:null},showFooter:{type:Boolean,default:!0},footerTemplate:{type:Object,default:null},footerToolbar:{type:Object,default:{}},footerHeight:{type:Number,default:60},buttons:{type:Array,default:[]},customClass:{type:String,default:""},customStyle:{type:String,default:""}},Ve=Be(V,ie,oe,ae),qe=Le();function He(){return{drawerLocale:{cancel:A.LocaleService.getLocaleValue("drawer.cancel")||"取消",confirm:A.LocaleService.getLocaleValue("drawer.confirm")||"确定"}}}const ee=u.defineComponent({name:"FDrawer",props:V,emits:["afterClose","update:modelValue","click"],setup(e,t){He();const r=u.ref(e.modelValue),n=u.ref(e.buttons),m=u.ref(!1),C=u.computed(()=>({"f-utils-absolute-all f-drawer":!0,"f-drawer-inline":typeof e.host=="string"?e.host!=="body":document.querySelector(e.host)!==document.body})),T=u.computed(()=>({opacity:e.transparent?0:1})),F=u.computed(()=>{const s={};return e.maskClass&&e.maskClass.split(" ").forEach(l=>{s[l]=!0}),{"f-drawer-mask f-utils-absolute-all":!0,...s}}),x=u.computed(()=>{const s={};return e.customClass&&e.customClass.split(" ").forEach(l=>{s[l]=!0}),{"f-drawer-wrapper":!0,[`f-drawer-wrapper-${e.position}`]:!0,...s}}),p=u.computed(()=>{const s=e.width;return typeof s=="string"?s:typeof s=="number"?`${s}px`:"20%"}),v=u.computed(()=>{const s=e.height;return typeof s=="string"?s:typeof s=="number"?`${s}px`:"20%"}),a=u.computed(()=>{let s="-6px 0";switch(e.position){case"left":s="6px 0";break;case"right":s="-6px 0";break;case"top":s="0 6px";break;case"bottom":s="0 -6px";break}const l={width:p.value,height:v.value,backgroundColor:e.backgroundColor,maxWidth:"100%"};return e.transparent&&(l.boxShadow=`${s} 8px 0 rgba(31, 35, 41, .1)`),L.getCustomStyle(l,e==null?void 0:e.customStyle)}),c=u.computed(()=>`f-drawer-${e.position}`),b=s=>{Promise.resolve().then(()=>{var l;return(l=e.beforeClose)==null?void 0:l.call(e)}).then(l=>{l&&(r.value=!1,t.emit("update:modelValue",r.value),t.emit("afterClose"))})};u.watch(()=>e.modelValue,(s,l)=>{s!==l&&(r.value=s)});const o=(s,l)=>{t.emit("click",s,l)},i={close:()=>{r.value=!1}};async function d(s,l){s.handle&&await s.handle(l,i)&&t.emit("closed",l)}const g=(s,l)=>u.createVNode(re,{class:l,alignment:"right",items:s,onClick:o},null);function y(){var s,l,f,E;if((l=(s=e.footerToolbar)==null?void 0:s.buttons)!=null&&l.length&&(e.footerToolbar.visible===void 0||e.footerToolbar.visible)){const h={"f-utils-fill":!0};return(E=(f=e.footerToolbar)==null?void 0:f.appearance)!=null&&E.class&&(h[e.footerToolbar.appearance.class]=!0),g(e.footerToolbar.buttons,h)}return n.value&&!!n.value.length&&n.value.map(h=>{const D=u.ref(h.disabled);return u.createVNode("button",{id:h.id,type:"button",disabled:D.value,class:h.class+(h.iconClass?" btn-icontext":""),onClick:P=>{d(h,P)}},[!!h.iconClass&&u.createVNode("i",{class:h.iconClass},null),h.text])})}function k(){return e.footerTemplate&&typeof e.footerTemplate=="function"?e.footerTemplate():t.slots.footerTemplate?t.slots.footerTemplate():y()}function j(){var l,f;const s={"f-utils-fill":!0};return(f=(l=e.headerToolbar)==null?void 0:l.appearance)!=null&&f.class&&(s[e.headerToolbar.appearance.class]=!0),e.headerTemplate&&typeof e.headerTemplate=="function"?e.headerTemplate():t.slots.headerTemplate?t.slots.headerTemplate():u.createVNode(u.Fragment,null,[u.createVNode("div",{class:"f-drawer-title",title:e.title},[e.title]),e.headerToolbar&&(e.headerToolbar.visible===void 0||e.headerToolbar.visible)&&u.createVNode("div",{class:"f-utils-fill-flex-row mx-2 col-7"},[g(e.headerToolbar.buttons||[],s)]),e.showClose&&u.createVNode("div",{class:"f-drawer-close"},[u.createVNode("span",{class:"f-icon f-icon-close",onClick:u.withModifiers(E=>{b()},["stop"])},null)])])}const O=u.ref({});function w(){const s=L.getMaxZIndex();O.value={zIndex:s<1e3?1e3:s}}function N(){return m.value?!0:typeof e.host=="string"?e.host==="body"?!0:!!document.querySelector(e.host):!!e.host}return m.value=N(),u.onMounted(()=>{m.value=N()}),u.watchEffect(()=>{r.value&&w()}),t.expose({open:()=>{r.value=!0},close:()=>{b()}}),()=>m.value?u.createVNode(u.Teleport,{to:e.host},{default:()=>[u.createVNode("div",{class:C.value,id:e.id,style:O.value},[u.createVNode(u.Transition,{name:"f-drawer-mask",appear:!0},{default:()=>[r.value&&e.showMask&&u.createVNode("div",{class:F.value,style:T.value,onClick:u.withModifiers(s=>{e.allowClickMaskToClose&&b()},["stop"])},null)]}),u.createVNode(u.Transition,{name:c.value},{default:()=>{var s,l;return[r.value&&u.createVNode("div",{class:x.value,style:a.value},[u.createVNode("div",{class:"f-drawer-container"},[e.showHeader&&u.createVNode("div",{class:"f-drawer-header align-items-center"},[j()]),u.createVNode("div",{class:"f-drawer-body f-utils-fill",style:"overflow: auto;"},[(l=(s=t.slots).default)==null?void 0:l.call(s)]),e.showFooter&&u.createVNode("div",{class:"f-drawer-footer px-2",style:{height:e.footerHeight+"px"}},[k()])])])]}})])]}):null}}),_e=L.withInstall(ee);S.FDrawer=ee,S.default=_e,S.drawerProps=V,S.eventHandlerResolver=qe,S.propsResolver=Ve,Object.defineProperties(S,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});