UNPKG

@ryan-json-schema-vue3/utils

Version:

基于 vue3 + element plus json schema 表单列表通用工具类库

2 lines (1 loc) 1.68 kB
(function(t,a){typeof exports=="object"&&typeof module<"u"?a(exports):typeof define=="function"&&define.amd?define(["exports"],a):(t=typeof globalThis<"u"?globalThis:t||self,a(t.utils={}))})(this,function(t){"use strict";const a="ui:hidden",d="ui:disabled",b="ui:width",S="ui:options",D="ui:widget",h="ui:column";var l=(e=>(e.SELECT="select",e.RADIO="radio",e.CHECKBOX="checkbox",e.SWITCH="switch",e.INPUT="input",e.TEXTAREA="textarea",e))(l||{}),f=(e=>(e.STRING="string",e.NUMBER="number",e.ARRAY="array",e.BOOLEAN="boolean",e))(f||{});const O={schema:{type:Object,required:!0},uiSchema:{type:Object,required:!1,default:()=>({})}},s=e=>{if(!e)return null;if(e.default!==void 0)return e.default;switch(e.type){case"string":return"";case"number":return 0;case"boolean":return!1;case"array":return[];case"object":return{};default:return null}},I=(e,n)=>{if(n==null)return e;if(n.length===0)return{...e,properties:{}};const o={};return n.forEach(u=>{e.properties[u]&&(o[u]=e.properties[u])}),{...e,properties:o}},E=(e,n)=>{if(!e||!e.properties)return{};const o=I(e,n),u={},{properties:r}=o;return Object.keys(r).forEach(i=>{const c=r[i],p=c.prop||i;u[p]=s(c)}),u},T=(e,n)=>({const:n,title:e}),U=(e,n,o,u=[])=>{const r={};for(let i=0;i<e.length;i++){const c=e[i];u.includes(c)||(r[c]={"ui:width":n}),i===0&&o&&(r[c]={...r[c],"ui:options":{fixed:"left"}})}return r};t.SchemaType=f,t.UI_COLUMN=h,t.UI_DISABLED=d,t.UI_HIDDEN=a,t.UI_OPTIONS=S,t.UI_WIDGET=D,t.UI_WIDTH=b,t.UiWidgets=l,t.basicSchemaProps=O,t.buildOfItem=T,t.buildSchema=I,t.getSchemaDefaultModel=E,t.getSchemaPropDefaultValue=s,t.getTableDefaultUiSchema=U,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});