@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 18.3 kB
JavaScript
(function(x,S){typeof exports=="object"&&typeof module<"u"?S(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../common/index.umd.js"],S):(x=typeof globalThis<"u"?globalThis:x||self,S(x["radio-button"]={},x.Vue,x.LodashES,x.common))})(this,function(x,S,B,K){"use strict";function V(e,t){let r;function a(i){const{properties:s,title:d,ignore:n}=i,o=n&&Array.isArray(n),c=Object.keys(s).reduce((p,m)=>((!o||!n.find(T=>T===m))&&(p[m]=s[m].type==="object"&&s[m].properties?a(s[m]):B.cloneDeep(s[m].default)),p),{});if(d&&(!o||!n.find(p=>p==="id"))){const p=d.toLowerCase().replace(/-/g,"_");c.id=`${p}_${Math.random().toString().slice(2,6)}`}return c}function b(i){const{properties:s,title:d,required:n}=i;if(n&&Array.isArray(n)){const o=n.reduce((c,p)=>(c[p]=s[p].type==="object"&&s[p].properties?a(s[p]):B.cloneDeep(s[p].default),c),{});if(d&&n.find(c=>c==="id")){const c=d.toLowerCase().replace(/-/g,"_");o.id=`${c}_${Math.random().toString().slice(2,6)}`}return o}return{type:d}}function v(i,s={},d){const n=e[i];if(n){let o=b(n);const c=t[i];return o=c?c({getSchemaByType:v},o,s,d):o,r!=null&&r.appendIdentifyForNewControl&&r.appendIdentifyForNewControl(o),o}return null}function y(i,s){const d=a(s);return Object.keys(d).reduce((n,o)=>(Object.prototype.hasOwnProperty.call(i,o)&&(n[o]&&B.isPlainObject(n[o])&&B.isPlainObject(i[o]||!i[o])?Object.assign(n[o],i[o]||{}):n[o]=i[o]),n),d),d}function F(i,s){return Object.keys(i).filter(n=>i[n]!=null).reduce((n,o)=>{if(s.has(o)){const c=s.get(o);if(typeof c=="string")n[c]=i[o];else{const p=c(o,i[o],i);Object.assign(n,p)}}else n[o]=i[o];return n},{})}function P(i,s,d=new Map){const n=y(i,s);return F(n,d)}function l(i){var d;const s=i.type;if(s){const n=e[s];if(!n)return i;const o=y(i,n),c=((d=i.editor)==null?void 0:d.type)||"";if(c){const p=e[c],m=y(i.editor,p);o.editor=m}return o}return i}function f(i){r=i}return{getSchemaByType:v,resolveSchemaWithDefaultValue:l,resolveSchemaToProps:P,mappingSchemaToProps:F,setDesignerContext:f}}const _={},G={},{getSchemaByType:Ve,resolveSchemaWithDefaultValue:ee,resolveSchemaToProps:te,mappingSchemaToProps:re,setDesignerContext:_e}=V(_,G);function ne(e={}){function t(l,f,i,s){if(typeof i=="number")return s[l].length===i;if(typeof i=="object"){const d=Object.keys(i)[0],n=i[d];if(d==="not")return Number(s[l].length)!==Number(n);if(d==="moreThan")return Number(s[l].length)>=Number(n);if(d==="lessThan")return Number(s[l].length)<=Number(n)}return!1}function r(l,f,i,s){return s[l]&&s[l].propertyValue&&String(s[l].propertyValue.value)===String(i)}const a=new Map([["length",t],["getProperty",r]]);Object.keys(e).reduce((l,f)=>(l.set(f,e[f]),l),a);function b(l,f){const i=l;return typeof f=="number"?[{target:i,operator:"length",param:null,value:Number(f)}]:typeof f=="boolean"?[{target:i,operator:"getProperty",param:l,value:!!f}]:typeof f=="object"?Object.keys(f).map(s=>{if(s==="length")return{target:i,operator:"length",param:null,value:f[s]};const d=s,n=f[s];return{target:i,operator:"getProperty",param:d,value:n}}):[]}function v(l){return Object.keys(l).reduce((i,s)=>{const d=b(s,l[s]);return i.push(...d),i},[])}function y(l,f){if(a.has(l.operator)){const i=a.get(l.operator);return i&&i(l.target,l.param,l.value,f)||!1}return!1}function F(l,f){return v(l).reduce((d,n)=>d&&y(n,f),!0)}function P(l,f){const i=Object.keys(l),s=i.includes("allOf"),d=i.includes("anyOf"),n=s||d,p=(n?l[n?s?"allOf":"anyOf":"allOf"]:[l]).map(T=>F(T,f));return s?!p.includes(!1):p.includes(!0)}return{parseValueSchema:P}}const oe={convertTo:(e,t,r,a)=>{e.appearance||(e.appearance={}),e.appearance[t]=r},convertFrom:(e,t,r)=>e.appearance?e.appearance[t]:e[t]},ie={convertFrom:(e,t,r)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},ae={convertTo:(e,t,r,a)=>{e.editor&&(e.editor[t]=r)},convertFrom:(e,t,r)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},se={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:"标签页工具栏按钮"},"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:"标签页工具栏"},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:"列表导航"},"list-view":{type:"list-view",name:"列表"},"filter-bar":{type:"filter-bar",name:"筛选条"},"language-textbox":{type:"language-textbox",name:"多语输入框"}},ce={convertFrom:(e,t,r)=>{var b;const a=e.editor&&e.editor[t]?e.editor[t]:e[t];return((b=se[a])==null?void 0:b.name)||a}},ue={convertTo:(e,t,r,a)=>{e[t]=e[t]},convertFrom:(e,t,r)=>e.editor?r.getRealEditorType(e.editor.type):""},le={convertTo:(e,t,r,a)=>{(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==="tempDateFormat")return e.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":e.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":e.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":e.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":e.formatter.tempDateFormat||e.formatter.dateFormat||"yyyy-MM-dd";if(t==="customFormat")return e.formatter.customFormat;if(t==="type")return e.formatter.type||"none"}return"none"}},fe={convertTo:(e,t,r,a)=>{e.command?e.command[t]=r:e.command={[t]:r},t==="enable"&&r&&(e.command.commands||(e.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(e,t,r)=>e.command&&t==="enable"?e.command.enable:""},de={convertTo:(e,t,r,a)=>{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""}},pe={convertTo:(e,t,r,a)=>{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)=>e.summary&&t==="enable"?e.summary.enable:e.type==="data-grid-column"?e.enableSummary===void 0?!1:e.enableSummary:""},me={convertTo:(e,t,r,a)=>{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})},convertFrom:(e,t,r)=>{if(e.group){if(t==="enable")return e.group.enable;if(t==="showSummary")return e.group.showSummary}}},ve={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,r)=>{if(r&&r.length>0){const a=r[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=a.bindingField,e.binding.field=a.id,e.binding.fullPath=a.path,e.path=a.bindingPath}}},ge={convertTo:(e,t,r,a)=>{e.pagination||(e.pagination={}),e.pagination[t]=r},convertFrom:(e,t,r)=>e.pagination?e.pagination[t]:e[t]},be={convertTo:(e,t,r,a)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=r},convertFrom:(e,t,r)=>e.rowNumber?e.rowNumber[t]:e[t]},ye={convertTo:(e,t,r,a)=>{e.selection||(e.selection={}),e.selection[t]=r},convertFrom:(e,t,r)=>e.selection?e.selection[t]:e[t]},Se={convertFrom:(e,t,r)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},Fe={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,r)=>{e[t]=r}},Te={convertTo:(e,t,r,a)=>{e.size||(e.size={}),e.size[t]=r},convertFrom:(e,t,r)=>e.size?e.size[t]:e[t]},Ce={convertFrom:(e,t,r)=>{var a,b;return(a=e.formatter)!=null&&a.data&&t==="formatterEnumData"&&!e.formatterEnumData?(b=e.formatter)==null?void 0:b.data:e.formatterEnumData}},xe={convertTo:(e,t,r,a)=>{e.sort||(e.sort={}),e.sort[t]=r},convertFrom:(e,t,r)=>{var a,b;if(t==="mode")return((a=e.sort)==null?void 0:a.mode)||"client";if(t==="multiSort")return!!((b=e.sort)!=null&&b.multiSort)}},Me={convertTo:(e,t,r,a)=>{e.filter||(e.filter={}),e.filter[t]=r},convertFrom:(e,t,r)=>{var a;if(t==="mode")return((a=e.filter)==null?void 0:a.mode)||"client"}},Pe={convertTo:(e,t,r,a)=>{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}return""}};function W(e,t,r){const a=new Map([["/converter/appearance.converter",oe],["/converter/buttons.converter",ie],["/converter/property-editor.converter",ae],["/converter/items-count.converter",Se],["/converter/type.converter",ce],["/converter/change-editor.converter",ue],["/converter/change-formatter.converter",le],["/converter/column-command.converter",fe],["/converter/column-option.converter",de],["/converter/summary.converter",pe],["/converter/group.converter",me],["/converter/form-group-label.converter",Fe],["/converter/field-selector.converter",ve],["/converter/pagination.converter",ge],["/converter/row-number.converter",be],["/converter/grid-selection.converter",ye],["/converter/size.converter",Te],["/converter/change-formatter-enum.converter",Ce],["/converter/grid-sort.converter",xe],["/converter/grid-filter.converter",Me],["/converter/row-option.converter",Pe]]),b=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}]]),v=ne();function y(n,o){return()=>v.parseValueSchema(n,o)}function F(n,o,c){return n.includes("visible")&&o.visible!==void 0?typeof o.visible=="boolean"?()=>!!o.visible:o.visible===void 0?!0:y(o.visible,c):()=>!0}function P(n,o,c){return n.includes("readonly")&&o.readonly!==void 0?typeof o.readonly=="boolean"?()=>!!o.readonly:y(o.readonly,c):()=>!1}function l(n,o){const c=n.$converter||o;return typeof c=="string"&&c&&a.has(c)?a.get(c)||null:c||null}function f(n,o,c,p,m,T="",O=""){return Object.keys(n).map(g=>{const w=S.ref(1),D=g,u=n[g],C=Object.keys(u),k=u.title,N=u.type,R=b.get(N)||{type:"input-group",enableClear:!1},E=u.editor?Object.assign({},R,u.editor):Object.assign({},R),L=F(C,u,o),H=P(C,u,o);E.readonly=E.readonly===void 0?H():E.readonly;const z=u.type==="cascade"?f(u.properties,o,c,p,m,T,O):[],ke=!0;let $=l(u,O);const Be=S.computed({get(){if(w.value){if(["class","style"].find(ze=>ze===D)&&!$&&($=a.get("/converter/appearance.converter")||null),$&&$.convertFrom)return $.convertFrom(c,g,m,T);const j=c[g];return Object.prototype.hasOwnProperty.call(u,"defaultValue")&&(j===void 0||typeof j=="string"&&j==="")?u.type==="boolean"?u.defaultValue:u.defaultValue||"":j}return null},set(j){w.value+=1,$&&$.convertTo?($.convertTo(p,g,j,m,T),$.convertTo(c,g,j,m,T)):(p[g]=j,c[g]=j)}}),{refreshPanelAfterChanged:qe,description:He,isExpand:Ae,parentPropertyID:Le}=u,Z={propertyID:D,propertyName:k,propertyType:N,propertyValue:Be,editor:E,visible:L,readonly:H,cascadeConfig:z,hideCascadeTitle:ke,refreshPanelAfterChanged:qe,description:He,isExpand:Ae,parentPropertyID:Le};return o[D]=Z,Z})}function i(n,o,c={}){const p={},m=e[n];return m&&m.categories?Object.keys(m.categories).map(O=>{const M=m.categories[O],g=M==null?void 0:M.title,w=f(M.properties||{},p,{},c,o);return{categoryId:O,categoryName:g,properties:w}}):[]}function s(n,o,c,p,m=""){const T=o.$ref.schema,O=o.$ref.converter,M=c[T],g=M.type,w=r(M),D={},u=e[g];if(u&&u.categories){const C=u.categories[n],k=C==null?void 0:C.title;O&&Object.keys(C.properties).forEach(E=>{C.properties[E].$converter=O});const N=(C==null?void 0:C.properties)||{},R=f(N,D,w,M,p,m);return{categoryId:n,categoryName:k,properties:R}}return{categoryId:n,categoryName:"",properties:[]}}function d(n,o,c,p,m){const T=n.type,O=r(n),M={};let g=m||e[T];if(g&&Object.keys(g).length===0&&c&&c.getPropConfig&&(g=c.getPropConfig(p)),g&&g.categories){const w=[];return Object.keys(g.categories).map(D=>{const u=g.categories[D];if(u.$ref){w.push(s(D,u,n,o,p));return}const C=u==null?void 0:u.title,k=u==null?void 0:u.tabId,N=u==null?void 0:u.tabName,R=u==null?void 0:u.hide,E=u==null?void 0:u.hideTitle,L=f(u.properties||{},M,O,n,o,p,u.$converter),{setPropertyRelates:H}=u,z=u==null?void 0:u.parentPropertyID;w.push({categoryId:D,categoryName:C,tabId:k,tabName:N,hide:R,properties:L,hideTitle:E,setPropertyRelates:H,parentPropertyID:z})}),w}return[]}return{getPropertyConfigBySchema:d,getPropertyConfigByType:i,propertyConverterMap:a}}const I={},J={};W(I,J,ee);const Q={},U={},{getSchemaByType:Ge,resolveSchemaWithDefaultValue:Oe,resolveSchemaToProps:We,mappingSchemaToProps:Ie,setDesignerContext:Je}=V(Q,U),X={},Y={};W(X,Y,Oe);function we(e,t,r=new Map,a=(y,F,P,l)=>F,b={},v=y=>y){return _[t.title]=t,G[t.title]=a,I[t.title]=b,J[t.title]=v,Q[t.title]=t,U[t.title]=a,X[t.title]=b,Y[t.title]=v,(y={},F=!0)=>{if(!F)return re(y,r);const P=te(y,t,r),l=Object.keys(e).reduce((f,i)=>(f[i]=e[i].default,f),{});return Object.assign(l,P)}}function De(e,t){return{customClass:t.class,customStyle:t.style}}const $e=new Map([["appearance",De]]);function je(e,t,r){return t}const Ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/radio-button.schema.json",title:"radio-button",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for radio-button",type:"string"},type:{description:"The type string of radio-button",type:"string",default:"radio-button"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},Ne={title:"radio-button",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}}}},q={enumData:{type:Array,default:[{text:"1",active:!0}]},suffixValue:{type:String,default:""},onSelectedValueChanged:{type:Function,default:()=>{}}},A=we(q,Ee,$e,je,Ne),h=S.defineComponent({name:"FRadioButton",props:q,emits:["selectedValueChanged"],setup(e,t){const r=S.ref(e.enumData);function a(v,y){if(v.currentTarget.classList.value="btn btn-secondary active",v.currentTarget.tagName.toLowerCase()==="label"){const{currentTarget:F}=v,P=F.parentElement;Array.from(P.querySelectorAll("label")).filter(f=>f!==F).forEach(f=>f.classList.remove("active"))}t.emit("selectedValueChanged",y)}function b(v){return`${v.text}${e.suffixValue}`}return S.watch(()=>e.enumData,(v,y)=>{v!==y&&(r.value=e.enumData)}),()=>S.createVNode("div",{class:"f-radio-button"},[S.createVNode("div",{class:["farris-input-wrap"]},[r.value.map((v,y)=>S.createVNode(S.Fragment,null,[S.createVNode("label",{class:v.active?"btn btn-secondary active":"btn btn-secondary",onClick:F=>a(F,v)},[S.createVNode("span",{class:"f-radio-button-text"},[b(v)])])]))])])}}),Re=S.defineComponent({name:"FRadioButtonDesign",props:q,emits:[""],setup(e,t){return()=>S.createVNode(S.Fragment,null,null)}});h.register=(e,t,r,a)=>{e["radio-button"]=h,t["radio-button"]=A},h.registerDesigner=(e,t,r)=>{e["radio-button"]=Re,t["radio-button"]=A};const he=K.withInstall(h);x.RadioButton=h,x.default=he,x.propsResolver=A,x.radioButtonProps=q,Object.defineProperties(x,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});