ui/components/data/DataGrid.min.js

2 lines
41 KiB
JavaScript
Raw Permalink Normal View History

const MODE_MAP={text:["contains","equals","starts","ends"],textarea:["contains","equals","starts","ends"],number:["=",">","<","between"],date:["=",">","<","between"],select:["contains","equals"],TagsInput:["contains","equals","starts","ends"]},MODE_ICONS={contains:"bi-search",equals:"bi-distribute-vertical",starts:"bi-align-start",ends:"bi-align-end","=":"bi-calculator",">":"bi-chevron-right","<":"bi-chevron-left",between:"bi-arrows-expand"},DataGridConfig={_fieldTypes:new Map,registerFieldType:e=>{DataGridConfig._fieldTypes.set(e.value,e)},getFieldTypes:()=>Array.from(DataGridConfig._fieldTypes.values())},DB_EDITOR_TYPE_MAP={i:"number",ui:"number",bi:"number",ubi:"number",ti:"number",f:"number",ff:"number",b:"switch",d:"date",dt:"datetime",t:"textarea"},getDataKey=e=>e?.name,getEditorType=e=>e?.settings?.type||DB_EDITOR_TYPE_MAP[e?.type]||"text",SYSTEM_FIELDS=[{id:"__system_id",name:"id",type:"v100",system:!0,settings:{label:"ID",width:130}},{id:"__system_creator",name:"creator",type:"v100",system:!0,settings:{label:"Creator",width:120}},{id:"__system_createTime",name:"createTime",type:"bi",system:!0,settings:{label:"Create Time",width:150}},{id:"__system_updater",name:"updater",type:"v100",system:!0,settings:{label:"Updater",width:120}},{id:"__system_updateTime",name:"updateTime",type:"bi",system:!0,settings:{label:"Update Time",width:150}}];DataGridConfig.registerFieldType({value:"text",label:"{#Text#}",typeForDB:"v100",schema:[{name:"placeholder",label:"Placeholder",type:"text",if:'this.data.user_type=="text"'}]}),DataGridConfig.registerFieldType({value:"number",label:"{#Number#}",typeForDB:"ff",schema:[{name:"decimals",label:"Decimals",type:"number",setting:{min:0,max:10},if:'this.data.user_type=="number"'},{name:"prefix",label:"Prefix (e.g. $)",type:"text",if:'this.data.user_type=="number"'},{name:"suffix",label:"Suffix (e.g. %)",type:"text",if:'this.data.user_type=="number"'},{name:"thousandSep",label:"Thousand Sep",type:"switch",if:'this.data.user_type=="number"'}],formatter:(e,t)=>{if(null==e||""===e)return"";let i=Number(e);if(isNaN(i))return e;const n=t.settings||{};void 0!==n.decimals&&(i=i.toFixed(n.decimals));let a=String(i);if(n.thousandSep){const e=a.split(".");e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),a=e.join(".")}return(n.prefix||"")+a+(n.suffix||"")}}),DataGridConfig.registerFieldType({value:"select",label:"{#Single Select#}",typeForDB:"v100",schema:[{name:"options_str",label:"Options",type:"textarea",setting:{rows:3,placeholder:"Label:Value per line"},if:'this.data.user_type=="select"'}],formatter:(e,t)=>{if(null==e||""===e)return"";const i=(t.settings?.options||[]).find(t=>"object"==typeof t?t.value==e:t==e);return i?"object"==typeof i?i.label:i:e}}),DataGridConfig.registerFieldType({value:"checkbox",label:"{#Multi Select#}",typeForDB:"v4096",schema:[{name:"options_str",label:"Options",type:"textarea",setting:{rows:3,placeholder:"Label:Value per line"},if:'this.data.user_type=="checkbox"'}],formatter:(e,t)=>{if(!Array.isArray(e))return null==e?"":String(e);const i=t.settings?.options||[];return e.map(e=>{const t=i.find(t=>"object"==typeof t?t.value==e:t==e);return t?"object"==typeof t?t.label:t:e}).join(", ")}}),DataGridConfig.registerFieldType({value:"switch",label:"{#Switch#}",typeForDB:"b",schema:[{name:"labelOn",label:"Label On",type:"text",if:'this.data.user_type=="switch"'},{name:"labelOff",label:"Label Off",type:"text",if:'this.data.user_type=="switch"'}],formatter:(e,t)=>{const i=t.settings||{};return e?i.labelOn||"Yes":i.labelOff||"No"}}),DataGridConfig.registerFieldType({value:"datetime",label:"{#DateTime#}",typeForDB:"dt",schema:[{name:"format",label:"Format",type:"text",setting:{placeholder:"YYYY-MM-DD"},if:'this.data.user_type=="datetime"'}]}),DataGridConfig.registerFieldType({value:"textarea",label:"{#Long Text#}",typeForDB:"t",schema:[{name:"placeholder",label:"Placeholder",type:"text",if:'this.data.user_type=="textarea"'}]});const getDefaultDbType=(e,t=0)=>{const i=DataGridConfig._fieldTypes.get(e);return"number"===e?Number(t)>0?"ff":"bi":i?.typeForDB||"v100"},createPerfMonitor