UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 351 kB
(function(J,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("lodash-es"),require("../capsule/index.umd.js"),require("../response-toolbar/index.umd.js"),require("@vueuse/core"),require("../dynamic-resolver/index.umd.js"),require("../section/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../common/index.umd.js"),require("bignumber.js"),require("../button-edit/index.umd.js"),require("../list-view/index.umd.js"),require("../loading/index.umd.js"),require("../data-view/index.umd.js"),require("../checkbox/index.umd.js"),require("../modal/index.umd.js"),require("../transfer/index.umd.js"),require("../tabs/index.umd.js"),require("../order/index.umd.js"),require("../condition/index.umd.js"),require("../filter-bar/index.umd.js"),require("../tooltip/index.umd.js"),require("../pagination/index.umd.js"),require("../button/index.umd.js"),require("../search-box/index.umd.js"),require("../tags/index.umd.js"),require("../dynamic-form/index.umd.js"),require("../accordion/index.umd.js"),require("../avatar/index.umd.js"),require("../button-group/index.umd.js"),require("../calendar/index.umd.js"),require("../color-picker/index.umd.js"),require("../combo-list/index.umd.js"),require("../content-container/index.umd.js"),require("../data-grid/index.umd.js"),require("../date-picker/index.umd.js"),require("../dropdown/index.umd.js"),require("../external-container/index.umd.js"),require("../events-editor/index.umd.js"),require("../image-cropper/index.umd.js"),require("../input-group/index.umd.js"),require("../layout/index.umd.js"),require("../list-nav/index.umd.js"),require("../lookup/index.umd.js"),require("../nav/index.umd.js"),require("../number-spinner/index.umd.js"),require("../number-range/index.umd.js"),require("../page-header/index.umd.js"),require("../page-footer/index.umd.js"),require("../progress/index.umd.js"),require("../query-solution/index.umd.js"),require("../radio-group/index.umd.js"),require("../rate/index.umd.js"),require("../response-layout/index.umd.js"),require("../response-layout-editor/index.umd.js"),require("../smoke-detector/index.umd.js"),require("../splitter/index.umd.js"),require("../step/index.umd.js"),require("../switch/index.umd.js"),require("../text/index.umd.js"),require("../time-picker/index.umd.js"),require("../tree-view/index.umd.js"),require("../uploader/index.umd.js"),require("../verify-detail/index.umd.js"),require("../component/index.umd.js"),require("../video/index.umd.js"),require("../textarea/index.umd.js"),require("../tree-grid/index.umd.js"),require("../fieldset/index.umd.js"),require("../drawer/index.umd.js"),require("../binding-selector/index.umd.js"),require("../notify/index.umd.js"),require("../combo-tree/index.umd.js"),require("../field-selector/index.umd.js"),require("../mapping-editor/index.umd.js"),require("../schema-selector/index.umd.js"),require("../event-parameter/index.umd.js"),require("../filter-condition-editor/index.umd.js"),require("../sort-condition-editor/index.umd.js"),require("../menu-lookup/index.umd.js"),require("../popover/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../capsule/index.umd.js","../response-toolbar/index.umd.js","@vueuse/core","../dynamic-resolver/index.umd.js","../section/index.umd.js","../designer-canvas/index.umd.js","../common/index.umd.js","bignumber.js","../button-edit/index.umd.js","../list-view/index.umd.js","../loading/index.umd.js","../data-view/index.umd.js","../checkbox/index.umd.js","../modal/index.umd.js","../transfer/index.umd.js","../tabs/index.umd.js","../order/index.umd.js","../condition/index.umd.js","../filter-bar/index.umd.js","../tooltip/index.umd.js","../pagination/index.umd.js","../button/index.umd.js","../search-box/index.umd.js","../tags/index.umd.js","../dynamic-form/index.umd.js","../accordion/index.umd.js","../avatar/index.umd.js","../button-group/index.umd.js","../calendar/index.umd.js","../color-picker/index.umd.js","../combo-list/index.umd.js","../content-container/index.umd.js","../data-grid/index.umd.js","../date-picker/index.umd.js","../dropdown/index.umd.js","../external-container/index.umd.js","../events-editor/index.umd.js","../image-cropper/index.umd.js","../input-group/index.umd.js","../layout/index.umd.js","../list-nav/index.umd.js","../lookup/index.umd.js","../nav/index.umd.js","../number-spinner/index.umd.js","../number-range/index.umd.js","../page-header/index.umd.js","../page-footer/index.umd.js","../progress/index.umd.js","../query-solution/index.umd.js","../radio-group/index.umd.js","../rate/index.umd.js","../response-layout/index.umd.js","../response-layout-editor/index.umd.js","../smoke-detector/index.umd.js","../splitter/index.umd.js","../step/index.umd.js","../switch/index.umd.js","../text/index.umd.js","../time-picker/index.umd.js","../tree-view/index.umd.js","../uploader/index.umd.js","../verify-detail/index.umd.js","../component/index.umd.js","../video/index.umd.js","../textarea/index.umd.js","../tree-grid/index.umd.js","../fieldset/index.umd.js","../drawer/index.umd.js","../binding-selector/index.umd.js","../notify/index.umd.js","../combo-tree/index.umd.js","../field-selector/index.umd.js","../mapping-editor/index.umd.js","../schema-selector/index.umd.js","../event-parameter/index.umd.js","../filter-condition-editor/index.umd.js","../sort-condition-editor/index.umd.js","../menu-lookup/index.umd.js","../popover/index.umd.js"],e):(J=typeof globalThis<"u"?globalThis:J||self,e(J["schema-selector"]={},J.Vue,J.LodashES,J.FCapsule,J.FResponseToolbar,J.VueUseCore,J.dynamicResolver,J.FSection$1,J.designerCanvas,J.common,J.BigNumber,J.FButtonEdit$1,J.FListView$1,J.FLoading$1,J.dataView,J.FCheckbox,null,J.FTransfer,J.FTabs$1,J.FOrder,null,J.FFilterBar,J.FTooltip,J.FPagination$1,J.FButton,J.FSearchBox$1,J.FTags,J.FDynamicForm,J.FAccordion,J.FAvatar,J.FButtonGroup,J.FCalendar,J.FColorPicker,J.FComboList,J.FContentContainer,J.FDataGrid,J.FDatePicker,J.FDropdown,null,J.FEventsEditor,J.FImageCropper,J.FInputGroup,J.FLayout,J.FListNav,J.FLookup,J.FNav,J.FNumberSpinner,J.FNumberRange,J.FPageHeader,J.FPageFooter,J.FProgress,J.FQuerySolution,J.FRadioGroup,J.FRate,J.FResponseLayout,J.FResponseLayoutEditorSetting,J.FSmokeDetector,J.FSplitter,J.FStep,J.FSwitch,J.FText,J.FTimePicker,J.FTreeview,J.FUploader,J.FVerifyDetail,J.FComponent,J.FVideo,J.FTextArea,J.FTreeGrid$1,J.FFieldset,J.FDrawer,J.FBindingSelector,null,J.FComboTree,J.FFieldSelector,J.FMappingEditor,J.FSchemaSelector$1,J.FEventParameter,J.FFilterConditionEditor,J.FSortConditionEditor,J.FMenuLookup,J.FPopover))})(this,function(J,e,Be,mn,Lt,At,Ht,hn,gn,Te,Sc,yn,vn,aa,he,xt,xc,ra,ia,la,Tc,sa,bn,ca,ua,da,Cn,qt,fa,pa,ma,ha,ga,Wt,ya,va,ba,Ca,Vc,wa,Sa,xa,Ta,Va,Na,_a,Ia,ka,Fa,ja,$a,Ba,Oa,Ma,Da,Ea,Pa,Ra,La,Aa,Ha,qa,Wa,za,Ga,Ua,Ya,Xa,Ka,Qa,Ja,Za,Nc,er,tr,nr,or,ar,rr,ir,lr,sr){"use strict";var Cc=Object.defineProperty;var wc=(J,e,Be)=>e in J?Cc(J,e,{enumerable:!0,configurable:!0,writable:!0,value:Be}):J[e]=Be;var K=(J,e,Be)=>wc(J,typeof e!="symbol"?e+"":e,Be);const wn={injectSymbolToken:{type:Symbol},viewOptions:{type:Array,default:[]},viewType:{type:String,default:"Tabs"},editorParams:{type:Object,default:null},showFooter:{type:Boolean,default:!1}},Sn={},xn={};function zt(t){const{properties:n,title:o,ignore:a}=t,r=a&&Array.isArray(a),i=Object.keys(n).reduce((l,s)=>((!r||!a.find(c=>c===s))&&(l[s]=n[s].type==="object"&&n[s].properties?zt(n[s]):Be.cloneDeep(n[s].default)),l),{});if(o&&(!r||!a.find(l=>l==="id"))){const l=o.toLowerCase().replace(/-/g,"_");i.id=`${l}_${Math.random().toString().slice(2,6)}`}return i}function cr(t){const{properties:n,title:o,required:a}=t;if(a&&Array.isArray(a)){const r=a.reduce((i,l)=>(i[l]=n[l].type==="object"&&n[l].properties?zt(n[l]):Be.cloneDeep(n[l].default),i),{});if(o&&a.find(i=>i==="id")){const i=o.toLowerCase().replace(/-/g,"_");r.id=`${i}_${Math.random().toString().slice(2,6)}`}return r}return{type:o}}function mt(t,n={},o){const a=Sn[t];if(a){let r=cr(a);const i=xn[t];return r=i?i({getSchemaByType:mt},r,n,o):r,r}return null}function ur(t,n){const o=zt(n);return Object.keys(o).reduce((a,r)=>(Object.prototype.hasOwnProperty.call(t,r)&&(a[r]&&Be.isPlainObject(a[r])&&Be.isPlainObject(t[r]||!t[r])?Object.assign(a[r],t[r]||{}):a[r]=t[r]),a),o),o}function Tn(t,n){return Object.keys(t).filter(a=>t[a]!=null).reduce((a,r)=>{if(n.has(r)){const i=n.get(r);if(typeof i=="string")a[i]=t[r];else{const l=i(r,t[r],t);Object.assign(a,l)}}else a[r]=t[r];return a},{})}function dr(t,n,o=new Map){const a=ur(t,n);return Tn(a,o)}function fr(t={}){function n(d,u,f,m){if(typeof f=="number")return m[d].length===f;if(typeof f=="object"){const h=Object.keys(f)[0],g=f[h];if(h==="not")return Number(m[d].length)!==Number(g);if(h==="moreThan")return Number(m[d].length)>=Number(g);if(h==="lessThan")return Number(m[d].length)<=Number(g)}return!1}function o(d,u,f,m){return m[d]&&m[d].propertyValue&&String(m[d].propertyValue.value)===String(f)}const a=new Map([["length",n],["getProperty",o]]);Object.keys(t).reduce((d,u)=>(d.set(u,t[u]),d),a);function r(d,u){const f=d;return typeof u=="number"?[{target:f,operator:"length",param:null,value:Number(u)}]:typeof u=="boolean"?[{target:f,operator:"getProperty",param:d,value:!!u}]:typeof u=="object"?Object.keys(u).map(m=>{if(m==="length")return{target:f,operator:"length",param:null,value:u[m]};const h=m,g=u[m];return{target:f,operator:"getProperty",param:h,value:g}}):[]}function i(d){return Object.keys(d).reduce((f,m)=>{const h=r(m,d[m]);return f.push(...h),f},[])}function l(d,u){if(a.has(d.operator)){const f=a.get(d.operator);return f&&f(d.target,d.param,d.value,u)||!1}return!1}function s(d,u){return i(d).reduce((h,g)=>h&&l(g,u),!0)}function c(d,u){const f=Object.keys(d),m=f.includes("allOf"),h=f.includes("anyOf"),g=m||h,y=(g?d[g?m?"allOf":"anyOf":"allOf"]:[d]).map(x=>s(x,u));return m?!y.includes(!1):y.includes(!0)}return{parseValueSchema:c}}const oe={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:"标签页工具栏按钮"},"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:"标签页工具栏"},fieldset:{type:"fieldset",name:"分组"},"query-solution":{type:"query-solution",name:"筛选方案"},drawer:{type:"drawer",name:"抽屉"}},pr={},mr={};fr();function Fe(t,n,o=new Map,a=(l,s,c,d)=>s,r={},i=l=>l){return Sn[n.title]=n,xn[n.title]=a,pr[n.title]=r,mr[n.title]=i,(l={},s=!0)=>{if(!s)return Tn(l,o);const c=dr(l,n,o),d=Object.keys(t).reduce((u,f)=>(u[f]=t[f].default,u),{});return Object.assign(d,c)}}function Ke(t,n){return{customClass:n.class,customStyle:n.style}}function hr(){function t(n,o){const{dataSource:a}=n||{};return a===void 0?{}:{}}return{resolve:t}}function gr(){function t(n,o){return n.selectItemById(o)}return{selectItemById:t}}function yr(){function t(n,o){const a=n.contents;if(!a||a.length<1)return null;const r=a.reduce((c,d)=>{const u=d.toolbar&&d.toolbar.buttons||[];return c.push(...u),c},[]);if(!r||r.length<1)return;const[i,l]=o.payloads,s=r.find(c=>c.id===l);return s?s.onClick||s.click:null}return{resolve:t}}function vr(){function t(n,o){const{columns:a}=o;return n.updateColumns(a)}return{updateColumns:t}}const Gt=new Map([["appearance",Ke]]);function br(t,n){const o=Math.random().toString().slice(2,6),a=n.parentComponentInstance,r=t.getSchemaByType("tab-page");r.id=`tab-page-${o}`,r.title="标题";const i=t.getSchemaByType("tabs");Object.assign(i,{id:`tabs-${o}`,appearance:{class:"f-component-tabs f-tabs-has-grid"},contents:[r],activeId:r.id});const l=t.getSchemaByType("section");Object.assign(l,{id:`section-${o}`,appearance:{class:"f-section-tabs f-section-in-mainsubcard"},fill:!1,showHeader:!1,contents:[i]});const s=t.getSchemaByType("content-container");Object.assign(s,{id:`container-${o}`,appearance:{class:"f-struct-wrapper"},contents:[l]});const c=a.schema;switch(c&&c.type){case oe["splitter-pane"].type:{l.appearance.class="f-section-tabs f-section-in-main",i.appearance.class="f-component-tabs";break}}const d=a.elementRef,u=window.getComputedStyle(d);return u&&u.display==="flex"&&(s.appearance.class+=" d-block"),s}function Vn(t,n,o){if(o.parentComponentInstance)return br(t,o);{const r=t.getSchemaByType("tab-page");return n.contents=[r],n}}function Cr(t,n,o){return n}const Nn={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/tabs.schema.json",title:"tabs",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a Tabs",type:"string"},type:{description:"The type string of Tabs component",type:"string",default:"tabs"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},autoTitleWidth:{description:"",type:"boolean",default:!1},titleWidth:{description:"",type:"number",default:0},titleLength:{description:"",type:"number",default:7},fill:{description:"",type:"boolean",default:!1}},required:["id","type","contents"]},Ut={tabType:{type:String,default:"default"},autoTitleWidth:{type:Boolean,default:!1},titleLength:{type:Number,default:7},position:{type:String,default:"top"},showDropdown:{type:Boolean,default:!0},scrollStep:{type:Number,default:10},autoResize:{type:Boolean,default:!1},selectedTab:{type:String,default:""},width:{type:Number},height:{type:Number},searchBoxVisible:{type:Boolean,default:!0},titleWidth:{type:Number,default:0},customClass:{type:String,default:""},activeId:{type:String},fill:{type:Boolean,default:!1},justifyContent:{type:String,default:"left"}},wr=Fe(Ut,Nn,Gt,Vn),_n=Object.assign({},Ut,{componentId:{type:String,default:""}}),Sr=Fe(_n,Nn,Gt,Vn),xr=yr();function Tr(t,n,o){const a=e.ref([]),r=e.ref(t.activeId||""),i=e.ref(!0),l=e.ref([]),s=e.ref(0);function c(y){const v=y.findIndex(x=>x.props.show!==!1&&!r.value&&!x.props.disabled);if(l.value=[],!r.value&&v!==-1){r.value=y[v].props.id;const x=y[v];x&&x.props.toolbar&&x.props.toolbar.buttons&&x.props.toolbar.buttons.length&&(l.value=[...x.props.toolbar.buttons])}}function d(y){let v=!1;const x=a.value.find(C=>C.props.id===y);v=!x||x.props.show===!1||x.props.disabled===!1,v?c(a.value):r.value=y}e.watch(()=>t.activeId,(y,v)=>{y!==v&&d(y)});function u(y){var x;if(t.autoTitleWidth)return;const v=(x=y.value)==null?void 0:x.querySelectorAll(".st-tab-text");if(v)for(let C=0;C<v.length;C++){const I=v[C].parentNode;v[C].scrollWidth>I.offsetWidth?v[C].classList.contains("farris-title-text-custom")||v[C].classList.add("farris-title-text-custom"):v[C].classList.remove("farris-title-text-custom")}}const f=y=>{y.preventDefault(),y.stopPropagation()};function m(y,v,x=!1){const C=a.value.findIndex(I=>I.props.id===v);a.value=a.value.filter(I=>I.props.id!==v),r.value===v&&(r.value="",c(a.value)),f(y),e.nextTick(()=>{s.value++,u(o),x&&(i.value=!0),n.emit("tabRemove",{removeIndex:C,removeId:v,activeId:r.value})})}function h(y){const v=r.value;r.value=y;const x=a.value.find(C=>C.props.id===y);l.value=[],x&&x.props.toolbar&&x.props.toolbar.buttons&&x.props.toolbar.buttons.length&&(l.value=[...x.props.toolbar.buttons]),n.emit("update:activeId",y),n.emit("tabChange",{prevId:v,nextId:r.value})}function g(y){h(y)}function N(y){a.value.findIndex(x=>x.props.id===y.props.id)===-1&&a.value.push(y),s.value++}function w(y){a.value.findIndex(x=>x.props.id===y.props.id)!==-1&&(a.value.forEach(x=>{x.props.id===y.props.id&&(x=y)}),e.nextTick(()=>{s.value++,u(o)}))}return{activeId:r,addTab:N,changeTitleStyle:u,removeTab:m,selectTab:g,selectTabByTabId:h,tabPages:a,updateTab:w,toolbarItems:l,needUpdateNavigationLayout:s,checkActiveId:d}}function Vr(t,n,o,a,r){const{activeId:i,removeTab:l,selectTab:s}=r,c=e.computed(()=>({"st-tab-text":!0,"text-truncate":!0,"farris-title-auto":t.autoTitleWidth})),d=e.computed(()=>({"nav-item":!0,"d-none":n.show!==void 0?!n.show:!1,"f-state-active":n.id===i.value,"f-state-disabled":n.disabled})),u=e.computed(()=>({width:`${n.tabWidth}px`})),f=e.computed(()=>({"nav-link":!0,"tabs-text-truncate":!0,active:n.id===i.value,disabled:n.disabled}));function m(v){return e.createVNode("span",{class:c.value,title:v.title},[v.title])}function h(v){return v.slots.title?v.slots.title:m}const g=h(o),N=e.ref(n.removeable);function w(){return e.createVNode("span",{class:"st-drop-close",onClick:v=>l(v,n.id)},[e.createVNode("i",{class:"f-icon f-icon-close"},null)])}function y(v){s(n.id),t.tabType==="one-page"&&a.scrollToByPaggId(n.id)}return e.createVNode("li",{class:d.value,style:u.value},[e.createVNode("a",{class:f.value,onClick:y},[g(n),N.value&&w()])])}function Nr(t,n,o,a,r){const{shouldShowNavigationButtons:i}=o,{tabPages:l}=r,s=e.computed(()=>({spacer:!0,"f-utils-fill":!0,"spacer-sides-dropdown":i.value})),c=e.computed(()=>({width:"100%","justify-content":t.justifyContent})),d=e.computed(()=>({nav:!0,"farris-nav-tabs":!0,"flex-nowrap":!0,"nav-fill":t.tabType==="fill","nav-pills":t.tabType==="pills","flex-row":t.position==="top"||t.position==="bottom","flex-column":t.position==="left"||t.position==="right"}));return()=>e.createVNode("div",{class:s.value,style:c.value},[e.createVNode("ul",{class:d.value,ref:n},[l.value.map(u=>Vr(t,u.props,u,a,r))])])}function In(t,n,o,a,r){const i=e.ref(),{shouldShowNavigationButtons:l}=o,{activeId:s,tabPages:c,selectTab:d}=r,u=e.ref(s.value),f=e.computed(()=>c.value.map(N=>({name:N.props.title,value:N.props.id,show:N.props.show,disabled:N.props.disabled}))),m=e.computed(()=>({spacer:!0,"f-utils-fill":!0,"spacer-sides-dropdown":l.value})),h=e.computed(()=>({width:"100%",display:"flex","justify-content":t.justifyContent}));e.onMounted(()=>{i.value&&(n.value=i.value.$el)});function g(N){d(N)}return e.watch(()=>s.value,N=>{N!==u.value&&(u.value=N)},{immediate:!0}),()=>e.createVNode("div",{class:m.value,style:h.value},[e.createVNode(mn,{items:f.value,modelValue:u.value,"onUpdate:modelValue":N=>u.value=N,onChange:g,ref:i},null)])}function _r(t,n,o,a){const{activeId:r,removeTab:i,tabPages:l}=a,{selectAndScrollToTab:s}=o,{hideDropDown:c,searchTabText:d}=n,u=600;let f=null;const m=e.ref("auto"),h=e.computed(()=>{var b,S;let p=[];return t.searchBoxVisible?p=(b=l.value)==null?void 0:b.filter(_=>_.props.title.includes(d.value)):p=(S=l.value)==null?void 0:S.slice(),p}),g=e.computed(()=>({"dropdown-menu":!0,"tabs-pt28":t.searchBoxVisible,show:!c.value}));function N(p){return{"dropdown-item":!0,"text-truncate":!0,"px-2":!0,disabled:p.props.disabled,active:p.props.id===r.value,"d-none":p.props.show!==!0}}function w(p){p.preventDefault(),p.stopPropagation()}const y=()=>({width:m.value});function v(){f&&clearTimeout(f)}function x(){c.value||(f=setTimeout(()=>{c.value=!0},u))}function C(p,b){p.stopPropagation(),s(p,b),c.value=!0}function I(p,b){p.stopPropagation(),i(p,b,!0)}function V(){return e.createVNode("div",{class:g.value,onMouseenter:()=>v(),onMouseleave:()=>x()},[t.searchBoxVisible&&e.createVNode("div",{onClick:p=>w(p),class:"pb-1 tabs-li-absolute"},[e.withDirectives(e.createVNode("input",{type:"text",class:"form-control k-textbox","onUpdate:modelValue":p=>d.value=p},null),[[e.vModelText,d.value]]),e.createVNode("span",{class:"f-icon f-icon-page-title-query tabs-icon-search"},null)]),h.value.length?e.createVNode("ul",{class:"tab-dropdown-menu--items",style:y()},[h.value.map(p=>e.createVNode("li",{class:N(p),onClick:b=>C(b,p.props)},[p.props.removeable&&e.createVNode("span",{class:"float-right st-drop-close",onClick:b=>I(b,p.props.id)},[e.createVNode("i",{class:"f-icon f-icon-close"},null)]),e.createVNode("a",{class:"dropdown-title",title:p.props.title},[p.props.title])]))]):e.createVNode("div",{class:"dropdown-no-data"},[e.createTextVNode("没有相关数据")])])}return{renderDropdownMenu:V}}function Ir(t,n,o,a){const{hideDropDown:r}=n,{renderDropdownMenu:i}=_r(t,n,o,a),l=e.ref(t.showDropdown);function s(){return l.value&&e.createVNode(e.Fragment,null,[e.createVNode("button",{class:"btn dropdown-toggle-split dropdown-toggle",onClick:()=>{r.value=!1}},null),i()])}return{renderMorePagesButtton:s}}function kn(t,n,o,a){const r=e.ref(!1),{selectTabByTabId:i,tabPages:l,needUpdateNavigationLayout:s}=a,c=4;function d(){var v;const w=n.value,y=(v=n.value)==null?void 0:v.parentElement;r.value=y&&w&&y.offsetWidth<w.scrollWidth-c}const u=e.computed(()=>({btn:!0,"sc-nav-btn":!0,"px-1":!0,"sc-nav-lr":!0,"d-none":!r.value})),f=e.computed(()=>({"btn-group":!0,"sc-nav-btn":!0,dropdown:!0,"d-none":!r.value})),m=e.computed(()=>({btn:!0,"sc-nav-rg":!0,"d-none":!r.value}));function h(w,y){if(!n.value)return;const v=n.value.scrollLeft,x=n.value.scrollWidth-n.value.offsetWidth;if(y>0){if(n.value.scrollLeft>=x)return;n.value.scrollLeft=v+t.scrollStep+w}else if(y<0){if(n.value.scrollLeft<=0)return;n.value.scrollLeft=v-t.scrollStep-w}}function g(w){if(!r.value||!n.value)return;const y=t.tabType==="pills"?".f-capsule-item":".nav-item",v=n.value.querySelectorAll(y),{parentElement:x}=n.value,C=v[w];if(C&&x){const I=x.getBoundingClientRect().left,V=x.getBoundingClientRect().right,p=C.getBoundingClientRect().left,b=C.getBoundingClientRect().right;p<I?h(I-p,-1):V<b&&h(b-V,1),t.tabType==="one-page"&&o.scrollTo(w)}}function N(w,y){if(y.disabled)return;i(y.id);const v=l.value.findIndex(x=>x.props.id===y.id);e.nextTick(()=>{g(v)})}return e.watch(s,()=>{d()}),{previousButtonClass:u,nextButtonGroupClass:f,nextButtonClass:m,scrollTab:h,selectAndScrollToTab:N,shouldShowNavigationButtons:r,updateNavigationLayout:d}}function Fn(t,n){const{tabPages:o}=n,a=e.ref(""),r=e.ref(!0),i=e.computed(()=>t.searchBoxVisible),l=e.computed(()=>i.value?o.value.filter(c=>c.props.title.includes(a.value)):o.value.slice());return{searchTabText:a,hideDropDown:r,shouldShowSearchBox:i,tabsInDropdownMenu:l}}function jn(t,n,o){const a=".farris-tab-page",{tabPages:r}=o;function i(s){const c=n.value;if(c){const d=n.value.querySelectorAll(a);if(d.length>0){const u=d[s],{offsetTop:f}=u,m=f-32>0?f-32:0;c.scrollTop=m}}}function l(s){const c=r.value.findIndex(d=>d.props.id===s);c>-1&&i(c)}return{scrollTo:i,scrollToByPaggId:l}}const ht=e.defineComponent({name:"FTabs",props:Ut,emits:["tabChange","tabRemove","update:activeId","Click"],setup(t,n){const o=e.ref(t.tabType),a=e.shallowRef(),r=e.ref(t.customClass),i=e.shallowRef(),l=e.shallowRef(),s=e.ref(),c=Tr(t,n,i),{activeId:d,changeTitleStyle:u,tabPages:f,addTab:m,updateTab:h,selectTabByTabId:g,toolbarItems:N,checkActiveId:w}=c,y=jn(t,l,c),v=kn(t,i,y,c),{previousButtonClass:x,nextButtonClass:C,nextButtonGroupClass:I,scrollTab:V,updateNavigationLayout:p}=v,b=Fn(t,c),S=Nr(t,i,v,y,c),_=S,T=In(t,i,v,y,c),D=new Map([["default",S],["one-page",_],["pills",T]]);e.computed(()=>{const q=f.value.find(z=>z.props.id===d.value);return q==null?void 0:q.slots});const $=e.computed(()=>{const q=f.value.find(G=>G.props.id===d.value);return(q==null?void 0:q.props.toolbarPosition)==="inHead"}),j=e.computed(()=>t.fill);e.provide("tabs",{activeId:d,addTab:m,updateTab:h,tabPages:f,tabType:o,shouldFillParentContaner:j});const k=e.computed(()=>({"farris-tabs-header":!0,"farris-tabs-inHead":$.value,"farris-tabs-inContent":!$.value,"farris-tabs-nav-fill":t.tabType==="fill","farris-tabs-nav-pills":t.tabType==="pills"})),F=e.computed(()=>{const q={width:$.value&&t.titleWidth?`${t.titleWidth}%`:""};return q.width&&(q.flex="unset"),q}),B=e.computed(()=>{const q={"farris-tabs":!0,"f-utils-fill-flex-column":j.value,"flex-column":t.position==="top","flex-column-reverse":t.position==="bottom","flex-row":t.position==="left","flex-row-reverse":t.position==="right","one-page":t.tabType==="one-page"};return r.value&&r.value.split(" ").reduce((z,G)=>(z[G]=!0,z),q),q});e.onMounted(()=>{f.value.length&&(w(t.activeId||f.value[0].props.id),g(d.value)),e.nextTick(()=>{p()}),u(i),At.useResizeObserver(s.value,()=>{p()})});function M(){return e.createVNode("button",{title:"向左",type:"button",class:x.value,onClick:()=>{V(0,-1)}},null)}function O(){return e.createVNode("button",{title:"向右",type:"button",class:C.value,onClick:()=>{V(0,1)}},null)}const{renderMorePagesButtton:P}=Ir(t,b,v,c),E=(q,z)=>{n.emit("Click",q,z,d.value)};function A(){return N.value.length?e.createVNode(Lt,{class:"f-utils-fill",items:N.value,onClick:E},null):null}const ae=D.get(t.tabType)||D.get("default");function L(){var q,z,G,R;return e.createVNode("div",{class:k.value},[e.createVNode("div",{class:"farris-tabs-header-pre"},[(z=(q=n.slots).headerPrefix)==null?void 0:z.call(q)]),e.createVNode("div",{class:"farris-tabs-title scroll-tabs",style:F.value,ref:s},[M(),ae&&ae(),e.createVNode("div",{class:I.value},[O(),P()])]),A(),e.createVNode("div",{class:"farris-tabs-header-post"},[(R=(G=n.slots).headerSuffix)==null?void 0:R.call(G)])])}const H=e.computed(()=>({"farris-tabs-content":!0,"f-utils-fill-flex-column":j.value}));function U(){var q,z;return e.createVNode("div",{class:H.value,ref:l},[(z=(q=n.slots).default)==null?void 0:z.call(q)])}return()=>e.createVNode("div",{class:B.value,ref:a},[L(),U()])}});function kr(t,n,o){return n&&n.contents&&n.contents.length&&(n.contents.forEach(a=>{a.title&&(a.text=a.title)}),n.buttons=n.contents,delete n.contents),{toolbar:n}}const Fr=new Map([["appearance",Ke],["toolbar",kr]]),jr={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/tab-page.schema.json",title:"tab-page",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a tab-page Item",type:"string"},type:{description:"The type string of tab-page Item component",type:"string",default:"tab-page"},contents:{description:"",type:"array",default:[]},title:{description:"",type:"string",default:"标题"},disabled:{description:"",type:"boolean",default:!1},removeable:{description:"",type:"boolean",default:!1},show:{description:"",type:"boolean",default:!0},toolbar:{description:"",type:"object"}},required:["id","type","contents"]},Yt={tabWidth:{type:Number,default:-1},id:{type:String,default:""},customTitleClass:{type:String,default:""},titleOverflow:{type:Boolean,default:!1},title:{type:String,default:""},selected:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},removeable:{type:Boolean,default:!1},show:{type:Boolean,default:!0},toolbar:{type:Object,default:{}},toolbarPosition:{type:String,default:"inHead"}},$n=Ht.createPropsResolver(Yt,jr,Fr);function $r(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const _t=e.defineComponent({name:"FTabPage",props:Yt,emits:[],setup(t,n){const o=e.inject("tabs"),a=e.ref(t.show),r={slots:n.slots,props:t},i=e.ref((o==null?void 0:o.tabType.value)||"default");e.onMounted(()=>{const h=o==null?void 0:o.tabPages.value.findIndex(g=>g.props.id===t.id);!h||h===-1?o==null||o.addTab(r):h>-1&&(a.value=!1,console.warn(`已经存在id为${t.id}的页签啦`))}),e.onUnmounted(()=>{});const l=e.computed(()=>(t==null?void 0:t.id)===(o==null?void 0:o.activeId.value)),s=e.computed(()=>({display:l.value?"":"none"}));e.watch(()=>t,h=>{o==null||o.updateTab({props:h,slots:n.slots})},{immediate:!0,deep:!0});function c(){var g,N;const h=(N=(g=n.slots).default)==null?void 0:N.call(g);return e.createVNode(hn,{"main-title":t.title,class:"farris-tab-page"},$r(h)?h:{default:()=>[h]})}const d=e.computed(()=>{var g;return{"farris-tab-page":!0,"f-utils-fill-flex-column":l.value&&o&&((g=o.shouldFillParentContaner)==null?void 0:g.value)}});function u(){var g,N;const h=(N=(g=n.slots).default)==null?void 0:N.call(g);return e.createVNode("div",{class:d.value,style:s.value},[h])}const m=new Map([["default",u],["one-page",c]]).get(i.value)||u;return()=>a.value?m():null}});function Br(t,n,o,a,r,i){const{activeId:l,selectTab:s,removeDesignTab:c,selectDesignTab:d,addTabPageToolbar:u}=r,f=e.computed(()=>({"st-tab-text":!0,"farris-title-auto":t.autoTitleWidth})),m=e.computed(()=>{const T={"farris-component":!0,"nav-item":!0,"f-state-active":n.id===l.value,"f-state-disabled":n.disabled};return T[`${n.id}-design-item`]=!0,T}),h=e.computed(()=>({width:`${n.tabWidth}px`})),g=e.computed(()=>({"nav-link":!0,"tabs-text-truncate":!0,active:n.id===l.value}));function N(T){return e.createVNode("span",{class:f.value,title:T.title},[T.title])}function w(T){return T.slots.title?T.slots.title:N}const y=w(o),v=e.ref(n.removeable);function x(){return e.createVNode("span",{class:"st-drop-close",style:{opacity:.6}},[e.createVNode("i",{class:"f-icon f-icon-close"},null)])}function C(T){s(n.id),t.tabType==="one-page"&&a.scrollToByPaggId(n.id)}function I(T){T&&(T.stopPropagation(),T.preventDefault()),d(T,n.id,i.value)}function V(T){c(T,n.id)}function p(T){u(T,n.id)}function b(){return e.createVNode("div",{role:"button",class:"btn component-settings-button",title:"删除",ref:"removeComponent",onClick:T=>V(T)},[e.createVNode("i",{class:"f-icon f-icon-yxs_delete"},null)])}function S(){return e.createVNode("div",{role:"button",class:"btn component-settings-button",title:"新增按钮",ref:"addComponent",onClick:T=>p(T)},[e.createVNode("i",{class:"f-icon f-icon-plus-circle"},null)])}function _(){return e.createVNode("div",{class:"component-btn-group","data-noattach":"true"},[e.createVNode("div",null,[b(),!n.toolbar||!n.toolbar.buttons||!n.toolbar.buttons.length?S():""])])}return e.createVNode("li",{onClick:T=>I(T),class:m.value,style:h.value,pageId:`${n.id}-design-item`},[_(),e.createVNode("a",{class:g.value,onClick:C,id:`${n.id}-design-item`},[y(n),v.value&&x()])])}function Or(t,n,o,a,r,i,l){const{tabPages:s}=r,c=e.computed(()=>({spacer:!0,"f-utils-fill":!0})),d=e.computed(()=>({width:"100%","justify-content":t.justifyContent})),u=e.computed(()=>({nav:!0,"farris-nav-tabs":!0,"flex-nowrap":!0,"nav-fill":t.tabType==="fill","nav-pills":t.tabType==="pills","flex-row":t.position==="top"||t.position==="bottom","flex-column":t.position==="left"||t.position==="right"})),f=e.computed(()=>({overflow:"auto"})),m=function(h){var w;const g=mt("tab-page");g.id=`tab_page_${Math.random().toString().slice(2,6)}`,g.title="标题",g.toolbar={buttons:[]},(w=i.value.schema.contents)==null||w.push(g);const{selectTabByTabId:N}=r;N(g.id)};return()=>e.createVNode("div",{class:c.value,style:d.value},[e.createVNode("ul",{class:u.value,style:f.value,ref:n},[s.value.map(h=>Br(t,h.props,h,a,r,i)),e.createVNode("li",{class:"nav-item no-drag"},[e.createVNode("a",{class:"nav-link tabs-text-truncate",title:"添加页签",onClick:h=>m()},[e.createVNode("i",{class:"f-icon f-icon-plus",style:"font-size: 20px;margin: 0 auto;line-height: 24px;"},null)])])])])}function gt(t,n,o){var V;const a=o&&o.getStyles&&o.getStyles()||"",r=o&&o.getDesignerClass&&o.getDesignerClass()||"",i=e.ref();function l(){return(n==null?void 0:n.schema.componentType)==="frame"?!1:o&&o.checkCanMoveComponent?o.checkCanMoveComponent():!0}function s(){return!1}function c(){return(n==null?void 0:n.schema.componentType)==="frame"?!1:o&&o.checkCanDeleteComponent?o.checkCanDeleteComponent():!0}function d(){return(n==null?void 0:n.schema.componentType)==="frame"?!0:o&&o.hideNestedPaddingInDesginerView?o.hideNestedPaddingInDesginerView():!1}function u(p){if(!p||!p.value)return null;if(p.value.schema&&p.value.schema.type==="component")return p.value;const b=e.ref(p==null?void 0:p.value.parent),S=u(b);return S||null}function f(p=n){var T;if(o!=null&&o.getDraggableDesignItemElement)return o.getDraggableDesignItemElement(p);const{componentInstance:b,designerItemElementRef:S}=p;if(!b||!b.value)return null;const{getCustomButtons:_}=b.value;return b.value.canMove||_&&((T=_())!=null&&T.length)?S:f(p.parent)}function m(p){return!!o&&o.canAccepts(p)}function h(){return(n==null?void 0:n.schema.label)||(n==null?void 0:n.schema.title)||(n==null?void 0:n.schema.name)}function g(){}function N(p,b){var S;!p||!b||(o!=null&&o.onAcceptMovedChildElement&&o.onAcceptMovedChildElement(p,b),(S=n==null?void 0:n.setupContext)==null||S.emit("dragEnd"))}function w(p,b){const{componentType:S}=p;let _=mt(S,p,b);o&&o.onResolveNewComponentSchema&&(_=o.onResolveNewComponentSchema(p,_));const T=S.toLowerCase().replace(/-/g,"_");return _&&!_.id&&_.type===S&&(_.id=`${T}_${Math.random().toString().slice(2,6)}`),_}function y(p){p&&o!=null&&o.onChildElementMovedOut&&o.onChildElementMovedOut(p)}function v(...p){if(o&&o.getPropsConfig)return o.getPropsConfig(...p)}function x(){o&&o.onRemoveComponent&&o.onRemoveComponent(),n!=null&&n.schema.contents&&n.schema.contents.map(p=>{let b=p.id;p.type==="component-ref"&&(b=p.component);const S=t.value.querySelectorAll(`#${b}-design-item`);S!=null&&S.length&&Array.from(S).map(_=>{var T;(T=_==null?void 0:_.componentInstance)!=null&&T.value.onRemoveComponent&&_.componentInstance.value.onRemoveComponent()})})}function C(){if(o&&o.getCustomButtons)return o.getCustomButtons()}function I(p){if(o&&o.onPropertyChanged)return o.onPropertyChanged(p)}return i.value={canMove:l(),canSelectParent:s(),canDelete:c(),canNested:!d(),contents:n==null?void 0:n.schema.contents,elementRef:t,parent:(V=n==null?void 0:n.parent)==null?void 0:V.componentInstance,schema:n==null?void 0:n.schema,styles:a,designerClass:r,canAccepts:m,getBelongedComponentInstance:u,getDraggableDesignItemElement:f,getDraggingDisplayText:h,getPropConfig:v,getDragScopeElement:g,onAcceptMovedChildElement:N,onChildElementMovedOut:y,addNewChildComponentSchema:w,triggerBelongedComponentToMoveWhenMoved:!!o&&o.triggerBelongedComponentToMoveWhenMoved||e.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!o&&o.triggerBelongedComponentToDeleteWhenDeleted||e.ref(!1),onRemoveComponent:x,getCustomButtons:C,onPropertyChanged:I},i}class Bn{getTemplateRule(n,o){const a=o==null?void 0:o.formSchemaUtils,r=a==null?void 0:a.getFormTemplateRule(),i={canAccept:!0,canDelete:!0,canMove:!0};if(!r)return i;const l=this.getComponentContext(n),{componentClassList:s}=l;return s.forEach(c=>{if(!c||!r[c])return;const{canMove:d,canDelete:u,canAccept:f}=r[c];i.canMove=i.canMove&&this.resolveRuleValue(d,l),i.canDelete=i.canDelete&&this.resolveRuleValue(u,l),i.canAccept=i.canAccept&&this.resolveRuleValue(f,l)}),i}resolveRuleValue(n,o){return typeof n=="boolean"?n:this.parseRuleValueSchema(n,o)}parseRuleValueSchema(n,o){const a=n.invalidContext||[];let r=!0;for(const i of a){if(i.firstLevelChild){if(i.firstLevelChild.class){const{firstLevelChildClassList:l}=o;if(l&&!l.includes(i.firstLevelChild.class)){r=!1;continue}}if(i.firstLevelChild.type){const{firstLevelChildSchema:l}=o;if(!l||l.type!==i.firstLevelChild.type){r=!1;continue}}}if(i.secondLevelChild){if(i.secondLevelChild.class){const{secondLevelChildClassList:l}=o;if(l&&!l.includes(i.secondLevelChild.class)){r=!1;continue}}if(i.secondLevelChild.type){const{secondLevelChildSchema:l}=o;if(!l||l.type!==i.secondLevelChild.type){r=!1;continue}}}if(i.parent){if(i.parent.class){const{parentClassList:l}=o;if(l&&!l.includes(i.parent.class)){r=!1;continue}}if(i.parent.type){const{parentSchema:l}=o;if(l&&l.type!==i.parent.type){r=!1;continue}}}r=!0;break}return!r}getComponentContext(n){var N,w,y,v;const o=n.schema,a=o.appearance&&o.appearance.class||"",r=a.split(" ")||[],i=o.contents||[],l=i.length?i[0]:null,s=l&&l.appearance?l.appearance.class:"",c=s?s.split(" "):[],d=(N=l==null?void 0:l.contents)!=null&&N.length?l==null?void 0:l.contents[0]:null,u=d&&d.appearance?d.appearance.class:"",f=u?u.split(" "):[],m=o.type==="component"?(y=(w=n.parent)==null?void 0:w.parent)==null?void 0:y.schema:(v=n.parent)==null?void 0:v.schema,h=m&&m.appearance&&m.appearance.class||"",g=h?h.split(" "):[];return{componentClass:a,componentClassList:r,childContents:i,firstLevelChildSchema:l,firstLevelChildClass:s,firstLevelChildClassList:c,secondLevelChildSchema:d,secondLevelChildClass:u,secondLevelChildClassList:f,parentSchema:m,parentClass:h,parentClassList:g}}}const Mr=e.ref(0);function Dr(){Mr.value++}const it=e.ref(0);function Er(t,n){const o=n.getBoundingClientRect(),a=t.getBoundingClientRect(),r=a.top>=o.top,i=a.top<=o.bottom;return r&&i}function Xt(t){const n=t.querySelector(".component-btn-group");if(!n)return;n.style.display="";const o=n.getBoundingClientRect();if(!(o.top===0&&o.left===0)){const a=n.querySelector("div");if(a){const r=a.getBoundingClientRect();a.style.top=o.top+"px";let i=o.left-r.width;const l=document.querySelector(".editorDiv");if(l){const s=l.getBoundingClientRect();i<s.left&&({left:i}=t.getBoundingClientRect())}a.style.left=i+"px"}}}function Pr(t){if(!window.scrollContainerList)return;const n=Array.from(window.scrollContainerList);if(n.length&&n.length===1){const o=n[0],a=document.querySelector(`[id=${o}]`);if(a&&a.contains(t))return a}}function Kt(t){if(!t)return;const n=t.getBoundingClientRect();if(n.width===0&&n.height===0)return;const o=t.querySelector(".component-btn-group");if(o){let a=!0;const r=Pr(t);if(r&&(a=Er(t,r)),!a){o.style.display="none";return}Xt(t)}}function On(t){if(!t)return;let n;t.className.includes("dgComponentSelected")?n=t:n=t.querySelector(".dgComponentSelected"),n&&Kt(n)}class Ct{constructor(n,o){K(this,"componentId");K(this,"viewModelId");K(this,"eventsEditorUtils");K(this,"formSchemaUtils");K(this,"formMetadataConverter");K(this,"designViewModelUtils");K(this,"designViewModelField");K(this,"controlCreatorUtils");K(this,"designerHostService");K(this,"schemaService",null);K(this,"metadataService",null);K(this,"propertyConfig",{type:"object",categories:{}});var a;this.componentId=n,this.designerHostService=o,this.eventsEditorUtils=o.eventsEditorUtils,this.formSchemaUtils=o.formSchemaUtils,this.formMetadataConverter=o.formMetadataConverter,this.viewModelId=((a=this.formSchemaUtils)==null?void 0:a.getViewModelIdByComponentId(n))||"",this.designViewModelUtils=o.designViewModelUtils,this.controlCreatorUtils=o.controlCreatorUtils,this.metadataService=o.metadataService,this.schemaService=o.schemaService}getTableInfo(){var n;return(n=this.schemaService)==null?void 0:n.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(n){var a;const o=n.binding&&n.binding.type==="Form"&&n.binding.field;if(o){if(!this.designViewModelField){const r=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=r.fields.find(i=>i.id===o)}n.updateOn=(a=this.designViewModelField)==null?void 0:a.updateOn}}getBasicPropConfig(n){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",editable:!1,data:[{value:n.type,name:oe[n.type].name}]}}}}}getAppearanceConfig(n=null){return{title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"}},setPropertyRelates(o,a){if(o)switch(o&&o.propertyID){case"class":case"style":{it.value++;break}}}}}updateElementByParentContainer(n,o){const a=o&&o.parent&&o.parent.schema;if(!a)return;const r=a.contents.findIndex(l=>l.id===n),i=Be.cloneDeep(a.contents[r]);a.contents.splice(r,1),a.contents.splice(r,0,i),Dr()}}class Rr extends Ct{constructor(n,o){super(n,o)}getPropertyConfig(n){return this.getBasicPropConfig(n),this.getBehaviorProperties(n),this.propertyConfig}getBehaviorProperties(n){this.propertyConfig.categories.behavior={description:"",title:"行为",properties:{removeable:{description:"是否可移除",type:"boolean",title:"是否可移除"},disabled:{description:"是否禁用",type:"boolean",title:"是否禁用"},show:{description:"是否可见",type:"boolean",title:"是否可见"}}}}getBasicPropConfig(n){this.propertyConfig.categories.basic={description:"Basic Infomation",title:"基本信息",properties:{id:{description:"标签页项的标识",title:"标识",type:"string",readonly:!0},title:{description:"标签页项的标题",title:"标题",type:"string"}},setPropertyRelates(o,a){if(o)switch(o&&o.propertyID){case"title":{o.needRefreshControlTree=!0;break}}}}}}class Lr extends Ct{constructor(n,o){super(n,o)}getPropertyConfig(n){return this.propertyConfig.categories.basic=this.getBasicPropConfig(n),this.propertyConfig.categories.appearance=this.getAppearanceProperties(n),this.propertyConfig}getAppearanceProperties(n){return{title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:""},titleWidth:{description:"标题区域宽度占页面比",type:"number",title:"标题区域宽度(%)",min:0,decimals:0,max:100},autoTitleWidth:{description:"开启,则显示全部字符;关闭,最多显示7个字符",type:"boolean",title:"标题自适应宽度",defaultValue:!1,visible:!1},fill:{description:"flex布局下,填充满剩余部分",type:"boolean",title:"填充"}}}}}function Ar(t,n){const o=t.schema,a=new Bn,{canMove:r,canAccept:i,canDelete:l}=a.getTemplateRule(t,n);function s(g){return i}function c(){return l}function d(){return r}function u(){return!r&&!l}function f(g){var y;return(((y=document.querySelector(".dgComponentFocused"))==null?void 0:y.id)===`${o.id}-design-item`?new Lr(g,n):new Rr(g,n)).getPropertyConfig(o)}function m(){t.designerItemElementRef.value&&e.nextTick(()=>{const g=t.designerItemElementRef.value.querySelector(".dgComponentSelected");g!=null&&g.className.includes("dgComponentSelected")&&g.click()})}function h(g){if(!g)return;const{changeObject:N}=g;N&&N.propertyID==="title"&&m()}return{canAccepts:s,checkCanDeleteComponent:c,checkCanMoveComponent:d,getPropsConfig:f,hideNestedPaddingInDesginerView:u,onPropertyChanged:h}}function Hr(t,n,o,a){const r=e.ref([]),i=e.ref(t.activeId||""),l=e.ref(!0),s=e.ref(),c=e.ref([]),d=e.ref(0);function u(O){const P=O.value.findIndex(E=>E.props.show!==!1&&!i.value);if(c.value=[],!i.value&&P!==-1){i.value=O.value[P].props.id;const E=O.value[P];E&&E.props.toolbar&&E.props.toolbar.buttons&&E.props.toolbar.buttons.length&&(c.value=[...E.props.toolbar.buttons])}}function f(O){i.value=O}function m(O,P){O.classList.contains(P)||O.classList.add(P)}function h(O,P){O.classList.remove(P)}function g(O){const{parentElement:P}=O;P&&(O.scrollWidth>P.offsetWidth?m(O,"farris-title-text-custom"):h(O,"farris-title-text-custom"))}function N(O){var E;if(t.autoTitleWidth)return;const P=(E=O.value)==null?void 0:E.querySelectorAll(".st-tab-text");P&&P.forEach(A=>g(A))}const w=O=>{O.preventDefault(),O.stopPropagation()};function y(O){r.value=r.value.filter(P=>P.props.id!==O),i.value===O&&(i.value="",u(r))}function v(O,P,E=!1){const A=r.value.findIndex(ae=>ae.props.id===P);y(P),w(O),e.nextTick(()=>{d.value++,N(o),E&&(l.value=!0),n.emit("tabRemove",{removeIndex:A,removeId:P,activeId:i.value})})}function x(){const O=r.value.find(A=>A.props.id===i.value);if(c.value=[],O&&O.props.toolbar){const A=Object.prototype.hasOwnProperty.call(O.props.toolbar,"contents")?"contents":"buttons";O.props.toolbar[A]&&O.props.toolbar[A].length&&(c.value=[...O.props.toolbar[A]])}const P=a.schema.contents,E=P==null?void 0:P.find(A=>A.id===i.value);s.value=E==null?void 0:E.toolbar}function C(O){const P=i.value;i.value=O,x(),n.emit("tabChange",{prevId:P,nextId:i.value})}function I(O){C(O)}function V(O){r.value.findIndex(E=>E.props.id===O.props.id)===-1&&r.value.push(O),d.value++}function p(O){r.value.findIndex(E=>E.props.id===O.props.id)!==-1&&(r.value.forEach(E=>{E.props.id===O.props.id&&(E=O)}),e.nextTick(()=>{d.value++,N(o)}))}function b(O){O&&(O.stopPropagation(),O.preventDefault())}function S(O){var A;const P=a.designerItemElementRef.value.querySelector(".farris-tabs-content"),E=P==null?void 0:P.querySelector(`#${O}-design-item`);(A=E==null?void 0:E.componentInstance)!=null&&A.value.onRemoveComponent&&E.componentInstance.value.onRemoveComponent()}function _(O,P){var ae;b(O),S(P);const E=a.schema.contents,A=E==null?void 0:E.findIndex(L=>L.id===P);A===-1||A===void 0||(E==null||E.splice(A,1),y(P),x(),(ae=a==null?void 0:a.setupContext)==null||ae.emit("selectionChange"),it.value++)}function T(){Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(P=>P.classList.remove("dgComponentFocused"));const O=document.getElementsByClassName("dgComponentSelected");Array.from(O).forEach(P=>P.classList.remove("dgComponentSelected"))}function D(O){O.currentTarget.classList.add("dgComponentFocused","dgComponentSelected")}function $(O,P){var L;const{contents:E=[]}=a.schema,A=E==null?void 0:E.findIndex(H=>H.id===O),ae=E[A];(L=a==null?void 0:a.setupContext)==null||L.emit("selectionChange",ae.type,ae,t.componentId,P)}function j(O,P){const E=P.getBoundingClientRect(),A=O.getBoundingClientRect(),ae=A.left+A.width<=E.left+E.width,L=A.left+A.width>=E.left;return ae&&L}function k(){o&&o.value&&o.value.addEventListener("scroll",O=>{const P=O.target.querySelector(".dgComponentSelected");if(P){const E=P.querySelector(".component-btn-group");j(P,O.target)?Xt(P):E&&(E.style.display="none")}})}function F(O){if(O&&O.parentElement){let P=O.getBoundingClientRect(),E=O.parentElement.getBoundingClientRect();(P.left<E.left||P.right>E.right)&&(o.value.scrollLeft=0,P=O.getBoundingClientRect(),E=O.parentElement.getBoundingClientRect(),o.value.scrollLeft=P.left-E.left),Xt(O)}}function B(O,P,E){T(),b(O),D(O),$(P,E);const A=O.currentTarget;F(A)}function M(O,P){b(O);const E=a.schema.contents,A=E==null?void 0:E.find(L=>L.id===P);if(!A)return;(!A.toolbar||!A.toolbar.buttons)&&(A.toolbar={buttons:[]});const ae=mt("tab-toolbar-item");ae.id=`tab_toolbar_item_${Math.random().toString().slice(2,6)}`,A.toolbar.buttons.push(ae),c.value=[...A.toolbar.buttons],s.value=A.toolbar,e.nextTick(()=>{if(o&&o.value){const L=o.value.querySelector(".f-state-active");L&&F(L)}})}return{activeId:i,addTab:V,changeTitleStyle:N,removeTab:v,selectTab:I,selectTabByTabId:C,tabPages:r,updateTab:p,toolbarItems:c,removeDesignTab:_,selectDesignTab:B,toolbarSchema:s,changeToolbarItems:x,addTabPageToolbar:M,listenTabNavElementScroll:k,setHorizontalScrollbarPosition:F,needUpdateNavigationLayout:d,checkActiveId:f}}const qr=new Map([["buttons","items"],["appearance",Ke]]);function Mn(t,n,o){return n}const Wr={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar.schema.json",title:"response-toolbar",description:"A Farris Toolbar Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar"},appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]},buttonSize:{type:"string",default:""}},required:["id","type","buttons"]},zr={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar-item.schema.json",title:"response-toolbar-item",description:"A Farris Toolbar Item Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar-item"},appearance:{description:"",type:"object",properties:{class:{type:"string",default:"btn-secondary"}}},alignment:{description:"对齐",type:"string",default:"right"},text:{description:"文本",type:"string",default:"按钮"},icon:{description:"图标",type:"string",default:""},disabled:{description:"禁用",type:"boolean",default:!1},onClick:{description:"点击事件",type:"string",default:""}},required:["id","type","text"]},Dn={customClass:{type:String,default:""},buttonSize:{type:String,default:""},alignment:{Type:String,default:"right"},items:{Type:Array,default:[]}},Gr=Object.assign({},Dn,{componentId:{type:String,default:""}});Fe(Dn,Wr,qr,Mn);const En={id:{type:String,default:""},items:{type:Object,default:{}},class:{type:String,default:""},text:{type:String,default:""},icon:{type:String,default:""},componentId:{type:String,default:""},alignment:{Type:String,default:"right"}};Fe(En,zr,void 0,Mn);class Ur extends Ct{constructor(n,o){super(n,o)}getPropertyConfig(n){return this.propertyConfig.categories.basic=this.getBasicPropConfig(n),this.getAppearancePropConfig(n),this.propertyConfig}getAppearancePropConfig(n){this.propertyConfig.categories.appearance={title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"}}}}getBehaviorProperties(n){this.propertyConfig.categories.behavior={title:"行为",description:"",properties:{alignment:{title:"对齐方式",description:"在工具栏区域内按钮组的位置",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{val