@wibetter/json-utils 1.3.1 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.esm.js +161 -314
- package/dist/index.esm.min.js +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.LICENSE.txt +7 -0
- package/package.json +9 -30
- package/dist/index.umd.js +0 -8
package/dist/index.esm.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e){var t=JSON.stringify(e);return JSON.parse(t)}function t(e,t){return JSON.stringify(e)===JSON.stringify(t)}function r(e){var t=!1;return null!=e&&(t=!0),t}function i(t,r,i){var a=r;if(i&&(a=e(r)),t)for(var n=t.split("-"),o=0,p=n.length;o<p;o++){var l=n[o];l&&(a=a&&a[l])}return a}function a(t,r,i){var a=r;if(i&&(a=e(r)),t)for(var n=t.split("-"),o=0,p=n.length;o<p;o++){var l=n[o];if("0"!==l||"array"!==a.format&&"radio"!==a.format&&"single-select"!==a.format&&"select"!==a.format||!a.items){if(l){var d="0";if(a.propertyOrder)d=a.propertyOrder[l];else if(a.properties){d=Object.keys(a.properties)[l]}a=a.properties[d]}}else a=a.items}return a}function n(t,r,i){var a=r;if(i&&(a=e(r)),t&&a)for(var n=t.split("-"),o=0,p=n.length;o<p;o++){var l=n[o];l&&a.properties&&(a=a.properties[l])}return a}function o(e,t){for(var r=t,i="",a=e.split("-"),n=0,o=a.length;n<o;n++){var p=a[n];if("0"===p&&r.items)r=r.items,i=i?i+"-items":"items";else if(p){var l="0";if(r.propertyOrder)l=r.propertyOrder[p];else if(r.properties){l=Object.keys(r.properties)[p]}r=r.properties[l],i=i?i+"-"+l:l}}return i}function p(e,t){for(var r=t,i="",a=e.split("-"),n=0,o=a.length;n<o;n++){var p=a[n];if(p){var l=-1;if(r.propertyOrder)l=r.propertyOrder.indexOf(p),r=r.properties[p];else if(r.properties){l=Object.keys(r.properties).indexOf(p),r=r.properties[p]}else r.items&&(l=p,r=r.items);i=i?i+"-"+l:l.toString()}}return i}var l={type:"object",format:"event",title:"事件",isRequired:!1,readOnly:!1,properties:{type:{type:"string",default:"emit",format:"typeSelect",enum:["on","emit"],enumextra:["on","emit"],title:"事件类型",isRequired:!1,readOnly:!1},trigger:{type:"string",format:"input",default:"eventName",title:"触发事件",description:"用于输入触发事件的名称",placeholder:"请输入触发事件的名称",isRequired:!1,readOnly:!1},eventData:{type:"string",title:"事件数据",format:"json",default:"{}",description:"传递给触发事件的数据对象",isRequired:!1,readOnly:!1}},required:["type","trigger","eventData"],propertyOrder:["type","trigger","eventData"]},d={type:"object",format:"datasource",title:"数据源",readOnly:!1,properties:{type:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["local","remote"],title:"数据源类型"},data:{type:"string",title:"本地json数据",placeholder:"请输入静态json数据",format:"json",default:"{}",description:"用于设置本地的静态json数据",isRequired:!0},filter:{type:"string",title:"过滤器",format:"codearea",default:"() => {}",description:"用于定义过滤当前数据的函数",isRequired:!0}},required:["type","data","filter"],propertyOrder:["type","data","filter"]},s={type:"local",config:{dataName:"",body:{},filter:"return data;"},data:"{}",localFilter:"return data;"},u={jsonschema:{type:"object",title:"jsonSchemaObject",properties:{func:{type:"object",format:"func",title:"功能设置",readOnly:!0,properties:{a:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["a"],propertyOrder:["a"]},style:{type:"object",format:"style",title:"样式设置",readOnly:!0,properties:{b:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["b"],propertyOrder:["b"]},data:{type:"object",format:"data",title:"数据设置",readOnly:!0,properties:{c:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["c"],propertyOrder:["c"]}},required:["func","style","data"],propertyOrder:["func","style","data"]},input:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},boolean:{type:"boolean",title:"布尔值",format:"boolean",default:!1,description:"",isRequired:!1,readOnly:!1},object:{type:"object",format:"object",title:"对象Object",description:"",isRequired:!1,readOnly:!1,properties:{a:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["a"],propertyOrder:["a"]},array:{type:"array",format:"array",title:"数组Array",description:"",isRequired:!1,readOnly:!1,items:{type:"object",format:"object",title:"数组项",description:"",isRequired:!1,readOnly:!1,properties:{name:{type:"string",format:"input",title:"名字",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["name"],propertyOrder:["name"]}},"empty-array":{type:"array",format:"array",title:"数组Array",description:"",items:{type:"object",format:"object",title:"数组项",description:"",properties:{}}},"empty-object":{type:"object",format:"object",title:"对象Object",description:"",properties:{}},url:{type:"string",title:"链接地址url",format:"url",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},textarea:{type:"string",title:"多行文本框",format:"textarea",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},color:{type:"string",title:"颜色color",format:"color",default:"#ffffff",description:"",isRequired:!1,readOnly:!1},image:{type:"string",title:"图片",format:"image",default:"",description:"上传图片",imgWidth:200,imgHeight:200,imgRatioReadOnly:!0,templateId:"",isRequired:!1},number:{type:"number",title:"数量number",format:"number",default:1,minimum:0,maximum:1e3,description:"",isRequired:!1,readOnly:!1},json:{type:"string",title:"json数据",format:"json",default:"{}",description:"",isRequired:!1,readOnly:!1},codearea:{type:"string",title:"函数类型",format:"codearea",placeholder:"请输入函数方法",default:'function func() { console.log("hello, world!"); }',description:"用于定义函数方法",isRequired:!1,readOnly:!1},htmlarea:{type:"string",title:"富文本",format:"htmlarea",placeholder:"请输入html代码片段",default:"<p>hello,world!</p>",description:"用于放置html代码片段",isRequired:!1,readOnly:!1},"text-editor":{type:"string",title:"富文本",format:"text-editor",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},date:{type:"string",title:"日期Date",format:"date",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},"date-time":{type:"string",title:"日期时间",format:"date-time",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},time:{type:"string",title:"时间Time",format:"time",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},quantity:{type:"object",format:"quantity",title:"单位计量",isRequired:!1,readOnly:!1,properties:{unit:{type:"number",title:"单位数值",format:"number",default:50,minimum:0,maximum:1e3,description:"",isRequired:!1,readOnly:!1},quantity:{type:"string",format:"typeSelect",default:"px",enum:["px","rem","em","%"],enumextra:["px","rem","em","%"],title:"单位类型",isRequired:!1,readOnly:!1}},required:["unit","quantity"],propertyOrder:["unit","quantity"]},"box-style":{type:"object",format:"box-style",title:"盒子模型",isRequired:!1,readOnly:!1,properties:{unit:{type:"string",title:"单位数值",format:"string",default:"0",description:"",isRequired:!1,readOnly:!1},quantity:{type:"string",format:"typeSelect",default:"px",enum:["px","rem","em","%"],enumextra:["px","rem","em","%"],title:"单位类型",isRequired:!1,readOnly:!1}},required:["unit","quantity"],propertyOrder:["unit","quantity"]},radio:{type:"string",title:"单选",format:"radio",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},"single-select":{type:"string",title:"下拉单选",format:"single-select",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},select:{type:"array",title:"多选",format:"select",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},"dynamic-data":{type:"object",format:"dynamic-data",title:"动态数据源",readOnly:!1,properties:{type:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["本地数据","接口数据"],title:"数据类型"},config:{type:"object",title:"接口配置",format:"object",description:"用于存放接口的配置数据(url、请求参数等)",isRequired:!0,properties:{dataName:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["本地数据","接口数据"],title:"数据类型"},body:{type:"object",title:"请求参数配置",format:"object",description:"用于配置当前接口的请求参数数值",isRequired:!0},filter:{type:"string",title:"过滤器函数体",format:"codearea",default:"return data;",description:"用于定义过滤接口数据",isRequired:!0}},required:["dataName","body","filter"],propertyOrder:["dataName","body","filter"]},data:{type:"string",title:"数据内容",format:"json",default:"{}",description:"用于存放DynamicData的数据内容",isRequired:!0},localFilter:{type:"string",title:"过滤器",format:"codearea",default:"return data;",description:"用于定义过滤本地数据",isRequired:!0}},required:["type","config","data","localFilter"],propertyOrder:["type","config","data","localFilter"]},datasource:d,event:l,widget:{type:"string",title:"内嵌组件数据",format:"widget",default:"{}",description:"用于存放内嵌组件的渲染相关数据",isRequired:!1,readOnly:!0}},f={on:{type:"object",format:"event",title:"事件",isRequired:!1,readOnly:!1,properties:{type:{type:"string",default:"on",format:"typeSelect",enum:["on","emit"],enumextra:["on","emit"],title:"事件类型",isRequired:!1,readOnly:!1},register:{type:"string",format:"input",default:"eventName",title:"注册事件",description:"用于输入注册事件的名称",placeholder:"请输入注册事件的名称",isRequired:!1,readOnly:!1},actionFunc:{type:"string",title:"执行函数",format:"codearea",default:"() => {}",description:"",isRequired:!1,readOnly:!1}},required:["type","register","actionFunc"],propertyOrder:["type","register","actionFunc"]},emit:l},c={local:d,remote:{type:"object",format:"datasource",title:"数据源",readOnly:!1,properties:{type:{type:"string",default:"remote",format:"typeSelect",enum:["local","remote"],enumextra:["local","remote"],title:"数据源类型"},data:{type:"string",title:"远程json数据",placeholder:"请输入远程json数据源地址",format:"url",default:"http://xxx",isRequired:!0,description:"用于设置获取元素数据的请求地址"},filter:{type:"string",title:"过滤器",format:"codearea",default:"() => {}",description:"用于定义过滤当前数据的函数",isRequired:!0}},required:["type","data","filter"],propertyOrder:["type","data","filter"]}};function y(e){return/^http[s]?:\/\/.*/.test(e)}function m(e){return"String"===Object.prototype.toString.call(e).slice(8,-1)}function g(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function O(e){return"Boolean"===Object.prototype.toString.call(e).slice(8,-1)}function v(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)}function b(e){return/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/.test(e)||/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/.test(e)}function j(e){return/^\d{2}:\d{2}:\d{2}$/.test(e)||/^\d{2}:\d{2}$/.test(e)}function q(e){var t=!1;return"Array"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function h(e){if(!q(e))return!1;for(var t=0,r=e.length;t<r;t++){if(!m(e[t]))return!1}return!0}function x(e){var t=!1;return"Object"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function R(e){var t=!1;return u.quantity.properties.quantity.enum.indexOf(e)>=0&&(t=!0),t}function N(e){return/^#[0-9a-f]{6}$/.test(e)||/^#[0-9a-f]{3}$/.test(e)}function S(e){var t=!1;return"Function"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function F(t){return t&&x(t)?function(t){var r;if(x(t)){var i=Object.keys(t);t.data&&t.filter&&2===i.length?r=q(t.data)||x(t.data)?e(c.local):e(c.remote):t.trigger&&t.eventData&&2===i.length?r=e(f.emit):t.register&&t.actionFunc&&2===i.length?r=e(f.on):t.quantity&&R(t.quantity)&&2===i.length?r=e(u.quantity):(r=e(u["empty-object"]),Object.keys(t).map((function(e){var i=t[e];r.properties[e]=F(i)})))}return r}(t):t&&q(t)?function(t){var r;if(t&&q(t))if(h(t)){(r=e(u.select)).items.enum=t;var i=r.items.enumextra.length,a=t.length;if(a>i)for(var n=i,o=a;n<o;n++)r.items.enumextra.push("选项"+t(n))}else{r=e(u["empty-array"]);var p=F(t[0]);r.items.properties=p.properties}return r}(t):function(t){var r="";if(O(t))r=e(u.boolean);else if(g(t))r=e(u.number);else if(y(t))r=e(u.url);else if(v(t))r=e(u.date);else if(b(t))r=e(u["date-time"]);else if(j(t))r=e(u.time);else if(N(t))r=e(u.color);else try{r=g(JSON.parse(t))?e(u.input):e(u.json)}catch(i){r=t&&t.length>30?e(u.textarea):e(u.input)}return r}(t)}function k(e){var t=e&&e.format;return t||(t=e&&e.type?e.type:"input"),t}function D(e){var t=!0;if(!e)return t;var r=k(e);return("object"===r&&e.properties&&e.propertyOrder&&e.propertyOrder.length>0||"array"===r&&e.items&&e.items.properties&&e.items.propertyOrder&&e.items.propertyOrder.length>0||e.type&&"array"!==e.type&&"object"!==e.type||e.format)&&(t=!1),t}function w(e){var t=!0;if(e&&("object"===k(e)&&e.properties&&e.propertyOrder&&e.propertyOrder.length>0)){var r=e.properties.func||{},i=e.properties.style||{},a=e.properties.data||{};(r.propertyOrder&&r.propertyOrder.length>0||i.propertyOrder&&i.propertyOrder.length>0||a.propertyOrder&&a.propertyOrder.length>0)&&(t=!1)}return t}function J(e){var t=!1;e&&("object"===k(e)&&e.properties&&e.propertyOrder&&e.properties.func&&e.properties.style&&e.properties.data&&(t=!0));return t}function $(e){var t=!1,r=e.lastUpdateTime,i=new Date("2020-07-29T07:30:00.691Z").getTime();return r&&new Date(r).getTime()>=i&&(t=!0),t}function T(e){var t=!1;return"object"!==e&&"func"!==e&&"style"!==e&&"data"!==e&&"widgets"!==e&&"func-schema"!==e&&"style-schema"!==e&&"data-schema"!==e&&"event-schema"!==e&&"widgets-schema"!==e||(t=!0),t}function A(e){var t=!1;return"func"!==e&&"style"!==e&&"data"!==e&&"props"!==e&&"event-schema"!==e&&"widgets"!==e||(t=!0),t}function U(e){var t=!0;return"object"===(e.type||k(e))&&e.propertyOrder&&e.properties?e.propertyOrder.map((function(r){var i=e.properties[r];"object"===(e.type||k(i))&&i.propertyOrder&&i.properties||(t=!1)})):t=!1,t}function I(e,t){var r=e.split("-"),i=t.split("-");return r.pop(),i.pop(),r.join("-")===i.join("-")}function W(e,t){for(var r=e.split("-"),i=t.split("-"),a="before",n=0,o=(r.length>i.length?i:r).length;n<o;n+=1){Number(r[n])>Number(i[n])&&(a="after")}return a}function B(e){var t=e.split("-");return t.pop(),t.join("-")}function H(e){var t=e.split("-"),r=t.pop(),i=Number(r)+1;return t.push(""+i),t.join("-")}function L(e){var t=e.split("-"),r=t.pop();return[t.join("-"),r]}function Z(e){var t=e.split("-"),r=t.pop();return t.push(Number(r)-1),t.join("-")}function z(e){var t=e.split("-"),r=t.pop();return t.push(Number(r)+1),t.join("-")}function C(e,t){var r=t||{};if(x(e)&&"object"===e.type&&e.properties){(e.propertyOrder?e.propertyOrder:Object.keys(e.properties)).map((function(t){var i=e.properties[t];r=E(i,r)}))}return r}function E(e,t){var r=!t,i=t||{};if(e&&"{}"!==JSON.stringify(e)){var a=k(e);"object"===a||"func"===a||"style"===a||"data"===a?(!r&&i.object?i.object+=1:r||(i.object=1),i=C(e,i)):"array"===a?(!r&&i.array?i.array+=1:r||(i.array=1),i=C(e=e.items,i)):!r&&i[a]?i[a]+=1:r||(i[a]=1)}return i}function G(t){var i=e(t);if(!i.title&&i.description&&(i.title=i.description),i.format||(i.format=k(i)),"quantity"!==i.format&&"array"!==i.format&&"datasource"!==i.format&&"event"!==i.format&&"object"!==i.format&&"radio"!==i.format&&"select"!==i.format||!r(i.default)||delete i.default,"radio"===i.format&&(i.type="string",i.enum&&i.enumextra&&(i.items={type:"string",enum:e(i.enum),enumextra:e(i.enumextra)},delete i.enum,delete i.enumextra)),"quantity"===i.format){var a=i.properties,n=e(u.quantity);if(a.quantity&&x(a.quantity)&&a.quantity.default){var o=a.quantity.default;n.properties.quantity.default="percent"===o?"%":o}i=n}if("datasource"===i.format){var p=i.properties,l=p.type&&p.type.default,d=p.data&&p.data.default,s=p.filter&&p.filter.default;"local"===l?(i=e(c.local)).properties.data.default=d?e(d):"{}":(i=e(c.remote)).properties.data.default=d?e(d):"http://xxx",i.properties.filter.default=s?e(s):"() => {}"}if("event"===i.format){var y=i.properties,m=y.type&&y.type.default;if("in"===m||"on"===m){var g=y.filter&&y.filter.default||"() => {}";i=e(f.on),y.actionFunc&&x(y.actionFunc)&&(i.properties.actionFunc.default=y.actionFunc.default||e(g))}else{var O=y.filter&&y.filter.default||"{}";i=e(f.emit),y.eventData&&x(y.eventData)&&(i.properties.eventData.default=y.eventData.default||e(O))}}return i.properties&&(i.required=Object.keys(i.properties),i.propertyOrder||(i.propertyOrder=i.required),i.propertyOrder.map((function(e){i.properties[e]=G(i.properties[e])}))),i.items&&(i.items=G(i.items)),i}function K(e,t){var i="",a=t;r(a)&&r(e.default)&&typeof a!=typeof e.default&&(a=void 0);var n=r(a)?a:e.default;switch(e.type){case"string":if("typeSelect"===e.format)i=e.default;else if("color"===e.format)"#fff"!==n&&"#FFF"!==n||(n="#ffffff"),i=n||"#ffffff";else if("json"===e.format||"widget"===e.format){var o="";if(x(t)||q(t))o=t;else if(S(t)||""===t)o={};else try{o=JSON.parse(t)}catch(e){o={}}i=o}else i=r(n)?n:"";break;case"boolean":i=!!r(n)&&n;break;case"number":i=r(n)?n:1;break;default:i=r(n)?n:""}return i}function M(t,i){var a={},n=k(t);if(x(t)&&"object"===t.type){var o=t,p=i;r(p)&&r(o.default)&&typeof p!=typeof o.default&&(p=void 0);var l=r(p)?p:o.default;if("dynamic-data"===n)a=e(s),l&&x(l)&&"{}"!==JSON.stringify(l)&&(a=Object.assign(a,l));else if("datasource"===n)o.properties&&o.properties.type&&o.properties.type.default&&"local"===o.properties.type.default?(a={data:"{}",filter:"() => {}"},l&&l.data&&(a.data=l.data),l&&l.filter&&(a.filter=l.filter),"http://xxx"===a.data&&(a.data="{}")):(a={data:"http://xxx",filter:"() => {}"},l&&l.data&&(a.data=l.data),l&&l.filter&&(a.filter=l.filter),"{}"===a.data&&(a.data="http://xxx"));else if("event"===n)o.properties&&o.properties.type&&o.properties.type.default&&"emit"===o.properties.type.default?l&&"out"===l.type?a={trigger:l&&l.filter||"eventName",eventData:"{}"}:(a={trigger:"eventName",eventData:"{}"},l&&l.trigger&&(a.trigger=l.trigger),l&&l.eventData&&(a.eventData=l.eventData)):l&&"in"===l.type?a={register:"eventName",actionFunc:l&&l.filter||"() => {}"}:(a={register:"eventName",actionFunc:"() => {}"},l&&l.register&&(a.register=l.register),l&&l.actionFunc&&(a.actionFunc=l.actionFunc));else if(t.properties){(t.propertyOrder?t.propertyOrder:Object.keys(t.properties)).map((function(e){var r=t.properties[e],n=i&&i[e];switch(r.type){case"array":a[e]=P(r,n);break;case"object":a[e]=M(r,n);break;default:a[e]=K(r,n)}}))}}return a}function P(e,t){var i=[];if(e&&"array"===e.type){var a=t;r(a)&&r(e.default)&&typeof a!=typeof e.default&&(a=void 0);var n=r(a)?a:e.default;if("array"===e.format)if(q(n))n.map((function(t){i.push(M(e.items,t))}));else{var o=M(e.items,n);i.push(o)}else i=r(n)?n:[]}return i}function Q(e,t){return"object"===e.type?M(e,t):"array"===e.type?P(e,t):K(e,t)}var V=u;function X(e,t){var i=t||[];if(e&&"{}"!==JSON.stringify(e))if(x(e))if(e.type&&"remote"===e.type&&e.config&&x(e.config)&&e.config.dataName&&r(e.localFilter)&&r(e.data)){var a=e.config.body;if(a&&!x(a))try{a=JSON.parse(a)}catch(e){a={}}i.push({id:e.config.id,dataName:e.config.dataName,body:a})}else{Object.keys(e).map((function(t){X(e[t],i)}))}else q(e)&&e.map((function(e){X(e,i)}));return i}function Y(e,t){var r=t||"data";return e.split("-").map((function(e){r=/^\d+$/.test(e)?r+"["+e+"]":r+"."+e})),r}function _(e,t){var r=[];x(e)?Object.keys(e).map((function(i){var a=e[i],n=t?t+"-"+i:i;x(a)||q(a)?r.push({title:i,value:n,key:n,children:_(a,n)}):r.push({title:i,value:n,key:n})})):q(e)&&e.map((function(e,i){var a=i.toString(),n=t?t+"-"+i:a;x(e)||q(e)?r.push({title:a,value:n,key:n,children:_(e,n)}):r.push({title:a,value:n,key:n})}));return r}function ee(e){var t=e.split("-");return t.pop(),t.join("-")}function te(e){var t=e.split("-"),r=t.pop();return[t.join("-"),r]}var re=["key","enum","enumextra","items","input","boolean","number","color","url","textarea","text-editor","radio","single-select","select","date","date-time","time","json","codearea","htmlarea","quantity","box-style","dynamic-data","datasource","event","array","object","widget","widgets","widgetUUID","embedWidgetList"];export{c as DataSourceTypeList,f as EventTypeDataList,re as KeyWordList,u as TypeDataList,Y as dataRoute2dataPath,X as dynamicDataAnalyzer,r as exitPropertie,W as getCurPosition,k as getCurrentFormat,i as getJsonDataByKeyRoute,H as getNextIndexRoute,B as getParentIndexRoute,L as getParentIndexRoute_CurIndex,ee as getParentKeyRoute,te as getParentKeyRoute_CurKey,a as getSchemaByIndexRoute,n as getSchemaByKeyRoute,o as indexRoute2keyRoute,q as isArray,O as isBoolean,T as isBoxSchemaData,N as isColor,v as isDateStr,b as isDateTimeStr,D as isEmptySchema,w as isEmptyWidgetSchema,t as isEqual,A as isFirstSchemaData,S as isFunction,$ as isNewSchemaData,g as isNumber,x as isObject,R as isQuantity,I as isSameParent,h as isSelect,m as isString,U as isStructuredSchema,j as isTimeStr,y as isURL,J as isUsedToWidgetConfig,F as json2schema,_ as json2treeData,p as keyRoute2indexRoute,E as metaElemAnalyzer,z as moveBackward,Z as moveForward,e as objClone,G as oldSchemaToNewSchema,Q as schema2json,V as schemaMetaList};
|
|
1
|
+
import{cloneDeep as e,isEqual as t}from"lodash";function r(t){return e(t)}function i(e,r){return t(e,r)}function a(e){var t=!1;return null!=e&&(t=!0),t}function n(e,t,i){var a=t;if(i&&(a=r(t)),e)for(var n=e.split("-"),o=0,p=n.length;o<p;o++){var l=n[o];l&&(a=a&&a[l])}return a}function o(e,t,i){var a=t;if(i&&(a=r(t)),e)for(var n=e.split("-"),o=0,p=n.length;o<p;o++){var l=n[o];if("0"!==l||"array"!==a.format&&"radio"!==a.format&&"single-select"!==a.format&&"select"!==a.format||!a.items){if(l){var d="0";if(a.propertyOrder)d=a.propertyOrder[l];else if(a.properties){d=Object.keys(a.properties)[l]}a=a.properties[d]}}else a=a.items}return a}function p(e,t,i){var a=t;if(i&&(a=r(t)),e&&a)for(var n=e.split("-"),o=0,p=n.length;o<p;o++){var l=n[o];l&&a.properties&&(a=a.properties[l])}return a}function l(e,t){for(var r=t,i="",a=e.split("-"),n=0,o=a.length;n<o;n++){var p=a[n];if("0"===p&&r.items)r=r.items,i=i?i+"-items":"items";else if(p){var l="0";if(r.propertyOrder)l=r.propertyOrder[p];else if(r.properties){l=Object.keys(r.properties)[p]}r=r.properties[l],i=i?i+"-"+l:l}}return i}function d(e,t){for(var r=t,i="",a=e.split("-"),n=0,o=a.length;n<o;n++){var p=a[n];if(p){var l=-1;if(r.propertyOrder)l=r.propertyOrder.indexOf(p),r=r.properties[p];else if(r.properties){l=Object.keys(r.properties).indexOf(p),r=r.properties[p]}else r.items&&(l=0,r=r.items);i=i?i+"-"+l:l.toString()}}return i}var s={type:"object",format:"event",title:"事件",isRequired:!1,readOnly:!1,properties:{type:{type:"string",default:"emit",format:"typeSelect",enum:["on","emit"],enumextra:["on","emit"],title:"事件类型",isRequired:!1,readOnly:!1},trigger:{type:"string",format:"input",default:"eventName",title:"触发事件",description:"用于输入触发事件的名称",placeholder:"请输入触发事件的名称",isRequired:!1,readOnly:!1},eventData:{type:"string",title:"事件数据",format:"json",default:"{}",description:"传递给触发事件的数据对象",isRequired:!1,readOnly:!1}},required:["type","trigger","eventData"],propertyOrder:["type","trigger","eventData"]},u={type:"object",format:"datasource",title:"数据源",readOnly:!1,properties:{type:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["local","remote"],title:"数据源类型"},data:{type:"string",title:"本地json数据",placeholder:"请输入静态json数据",format:"json",default:"{}",description:"用于设置本地的静态json数据",isRequired:!0},filter:{type:"string",title:"过滤器",format:"codearea",default:"() => {}",description:"用于定义过滤当前数据的函数",isRequired:!0}},required:["type","data","filter"],propertyOrder:["type","data","filter"]},f={type:"local",config:{dataName:"",body:{},filter:"return data;"},data:"{}",localFilter:"return data;"},c={jsonschema:{type:"object",title:"jsonSchemaObject",properties:{func:{type:"object",format:"func",title:"功能设置",readOnly:!0,properties:{a:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["a"],propertyOrder:["a"]},style:{type:"object",format:"style",title:"样式设置",readOnly:!0,properties:{b:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["b"],propertyOrder:["b"]},data:{type:"object",format:"data",title:"数据设置",readOnly:!0,properties:{c:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["c"],propertyOrder:["c"]}},required:["func","style","data"],propertyOrder:["func","style","data"]},input:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},boolean:{type:"boolean",title:"布尔值",format:"boolean",default:!1,description:"",isRequired:!1,readOnly:!1},object:{type:"object",format:"object",title:"对象Object",description:"",isRequired:!1,readOnly:!1,properties:{a:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["a"],propertyOrder:["a"]},array:{type:"array",format:"array",title:"数组Array",description:"",isRequired:!1,readOnly:!1,items:{type:"object",format:"object",title:"数组项",description:"",isRequired:!1,readOnly:!1,properties:{name:{type:"string",format:"input",title:"名字",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["name"],propertyOrder:["name"]}},"empty-array":{type:"array",format:"array",title:"数组Array",description:"",items:{type:"object",format:"object",title:"数组项",description:"",properties:{}}},"empty-object":{type:"object",format:"object",title:"对象Object",description:"",properties:{}},url:{type:"string",title:"链接地址url",format:"url",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},textarea:{type:"string",title:"多行文本框",format:"textarea",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},color:{type:"string",title:"颜色color",format:"color",default:"#ffffff",description:"",isRequired:!1,readOnly:!1},image:{type:"string",title:"图片",format:"image",default:"",description:"上传图片",imgWidth:200,imgHeight:200,imgRatioReadOnly:!0,templateId:"",isRequired:!1},number:{type:"number",title:"数量number",format:"number",default:1,minimum:0,maximum:1e3,description:"",isRequired:!1,readOnly:!1},json:{type:"string",title:"json数据",format:"json",default:"{}",description:"",isRequired:!1,readOnly:!1},codearea:{type:"string",title:"函数类型",format:"codearea",placeholder:"请输入函数方法",default:'function func() { console.log("hello, world!"); }',description:"用于定义函数方法",isRequired:!1,readOnly:!1},htmlarea:{type:"string",title:"富文本",format:"htmlarea",placeholder:"请输入html代码片段",default:"<p>hello,world!</p>",description:"用于放置html代码片段",isRequired:!1,readOnly:!1},"text-editor":{type:"string",title:"富文本",format:"text-editor",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},date:{type:"string",title:"日期Date",format:"date",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},"date-time":{type:"string",title:"日期时间",format:"date-time",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},time:{type:"string",title:"时间Time",format:"time",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},quantity:{type:"object",format:"quantity",title:"单位计量",isRequired:!1,readOnly:!1,properties:{unit:{type:"number",title:"单位数值",format:"number",default:50,minimum:0,maximum:1e3,description:"",isRequired:!1,readOnly:!1},quantity:{type:"string",format:"typeSelect",default:"px",enum:["px","rem","em","%"],enumextra:["px","rem","em","%"],title:"单位类型",isRequired:!1,readOnly:!1}},required:["unit","quantity"],propertyOrder:["unit","quantity"]},"box-style":{type:"object",format:"box-style",title:"盒子模型",isRequired:!1,readOnly:!1,properties:{unit:{type:"string",title:"单位数值",format:"string",default:"0",description:"",isRequired:!1,readOnly:!1},quantity:{type:"string",format:"typeSelect",default:"px",enum:["px","rem","em","%"],enumextra:["px","rem","em","%"],title:"单位类型",isRequired:!1,readOnly:!1}},required:["unit","quantity"],propertyOrder:["unit","quantity"]},radio:{type:"string",title:"单选",format:"radio",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},"single-select":{type:"string",title:"下拉单选",format:"single-select",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},select:{type:"array",title:"多选",format:"select",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},"dynamic-data":{type:"object",format:"dynamic-data",title:"动态数据源",readOnly:!1,properties:{type:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["本地数据","接口数据"],title:"数据类型"},config:{type:"object",title:"接口配置",format:"object",description:"用于存放接口的配置数据(url、请求参数等)",isRequired:!0,properties:{dataName:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["本地数据","接口数据"],title:"数据类型"},body:{type:"object",title:"请求参数配置",format:"object",description:"用于配置当前接口的请求参数数值",isRequired:!0},filter:{type:"string",title:"过滤器函数体",format:"codearea",default:"return data;",description:"用于定义过滤接口数据",isRequired:!0}},required:["dataName","body","filter"],propertyOrder:["dataName","body","filter"]},data:{type:"string",title:"数据内容",format:"json",default:"{}",description:"用于存放DynamicData的数据内容",isRequired:!0},localFilter:{type:"string",title:"过滤器",format:"codearea",default:"return data;",description:"用于定义过滤本地数据",isRequired:!0}},required:["type","config","data","localFilter"],propertyOrder:["type","config","data","localFilter"]},datasource:u,event:s,widget:{type:"string",title:"内嵌组件数据",format:"widget",default:"{}",description:"用于存放内嵌组件的渲染相关数据",isRequired:!1,readOnly:!0}},y={on:{type:"object",format:"event",title:"事件",isRequired:!1,readOnly:!1,properties:{type:{type:"string",default:"on",format:"typeSelect",enum:["on","emit"],enumextra:["on","emit"],title:"事件类型",isRequired:!1,readOnly:!1},register:{type:"string",format:"input",default:"eventName",title:"注册事件",description:"用于输入注册事件的名称",placeholder:"请输入注册事件的名称",isRequired:!1,readOnly:!1},actionFunc:{type:"string",title:"执行函数",format:"codearea",default:"() => {}",description:"",isRequired:!1,readOnly:!1}},required:["type","register","actionFunc"],propertyOrder:["type","register","actionFunc"]},emit:s},m={local:u,remote:{type:"object",format:"datasource",title:"数据源",readOnly:!1,properties:{type:{type:"string",default:"remote",format:"typeSelect",enum:["local","remote"],enumextra:["local","remote"],title:"数据源类型"},data:{type:"string",title:"远程json数据",placeholder:"请输入远程json数据源地址",format:"url",default:"http://xxx",isRequired:!0,description:"用于设置获取元素数据的请求地址"},filter:{type:"string",title:"过滤器",format:"codearea",default:"() => {}",description:"用于定义过滤当前数据的函数",isRequired:!0}},required:["type","data","filter"],propertyOrder:["type","data","filter"]}};function g(e){return/^http[s]?:\/\/.*/.test(e)}function O(e){return"String"===Object.prototype.toString.call(e).slice(8,-1)}function v(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function b(e){return"Boolean"===Object.prototype.toString.call(e).slice(8,-1)}function j(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)}function q(e){return/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/.test(e)||/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/.test(e)}function h(e){return/^\d{2}:\d{2}:\d{2}$/.test(e)||/^\d{2}:\d{2}$/.test(e)}function x(e){var t=!1;return"Array"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function R(e){if(!x(e))return!1;for(var t=0,r=e.length;t<r;t++){if(!O(e[t]))return!1}return!0}function N(e){var t=!1;return"Object"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function S(e){var t=!1;return c.quantity.properties.quantity.enum.indexOf(e)>=0&&(t=!0),t}function F(e){return/^#[0-9a-f]{6}$/.test(e)||/^#[0-9a-f]{3}$/.test(e)}function k(e){var t=!1;return"Function"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function D(e){var t={};return t=e&&N(e)?function(e){var t;if(N(e)){var i=Object.keys(e);e.data&&e.filter&&2===i.length?t=x(e.data)||N(e.data)?r(m.local):r(m.remote):e.trigger&&e.eventData&&2===i.length?t=r(y.emit):e.register&&e.actionFunc&&2===i.length?t=r(y.on):e.quantity&&S(e.quantity)&&2===i.length?t=r(c.quantity):(t=r(c["empty-object"]),Object.keys(e).map((function(r){var i=e[r];t.properties[r]=D(i)})))}return t}(e):e&&x(e)?function(e){var t;if(e&&x(e))if(R(e)){(t=r(c.select)).items.enum=e;var i=t.items.enumextra.length,a=e.length;if(a>i)for(var n=i,o=a;n<o;n++)t.items.enumextra.push("选项"+e(n))}else{t=r(c["empty-array"]);var p=D(e[0]);t.items.properties=p.properties}return t}(e):function(e){var t="";if(b(e))t=r(c.boolean);else if(v(e))t=r(c.number);else if(g(e))t=r(c.url);else if(j(e))t=r(c.date);else if(q(e))t=r(c["date-time"]);else if(h(e))t=r(c.time);else if(F(e))t=r(c.color);else try{t=v(JSON.parse(e))?r(c.input):r(c.json)}catch(i){t=e&&e.length>30?r(c.textarea):r(c.input)}return t}(e),t}function w(e){var t=e&&e.format;return t||(t=e&&e.type?e.type:"input"),t}function $(e){var t=!0;if(!e)return t;var r=w(e);return("object"===r&&e.properties&&e.propertyOrder&&e.propertyOrder.length>0||"array"===r&&e.items&&e.items.properties&&e.items.propertyOrder&&e.items.propertyOrder.length>0||e.type&&"array"!==e.type&&"object"!==e.type||e.format)&&(t=!1),t}function J(e){var t=!0;if(e&&("object"===w(e)&&e.properties&&e.propertyOrder&&e.propertyOrder.length>0)){var r=e.properties.func||{},i=e.properties.style||{},a=e.properties.data||{};(r.propertyOrder&&r.propertyOrder.length>0||i.propertyOrder&&i.propertyOrder.length>0||a.propertyOrder&&a.propertyOrder.length>0)&&(t=!1)}return t}function T(e){var t=!1;e&&("object"===w(e)&&e.properties&&e.propertyOrder&&e.properties.func&&e.properties.style&&e.properties.data&&(t=!0));return t}function A(e){var t=!1,r=e.lastUpdateTime,i=new Date("2020-07-29T07:30:00.691Z").getTime();return r&&new Date(r).getTime()>=i&&(t=!0),t}function U(e){var t=!1;return"object"!==e&&"func"!==e&&"style"!==e&&"data"!==e&&"widgets"!==e&&"func-schema"!==e&&"style-schema"!==e&&"data-schema"!==e&&"event-schema"!==e&&"widgets-schema"!==e||(t=!0),t}function I(e){var t=!1;return"func"!==e&&"style"!==e&&"data"!==e&&"props"!==e&&"event-schema"!==e&&"widgets"!==e||(t=!0),t}function W(e){var t=!0;return"object"===(e.type||w(e))&&e.propertyOrder&&e.properties?e.propertyOrder.map((function(r){var i=e.properties[r];"object"===(e.type||w(i))&&i.propertyOrder&&i.properties||(t=!1)})):t=!1,t}function B(e,t){var r=e.split("-"),i=t.split("-");return r.pop(),i.pop(),r.join("-")===i.join("-")}function E(e,t){for(var r=e.split("-"),i=t.split("-"),a="before",n=0,o=(r.length>i.length?i:r).length;n<o;n+=1){Number(r[n])>Number(i[n])&&(a="after")}return a}function H(e){var t=e.split("-");return t.pop(),t.join("-")}function L(e){var t=e.split("-"),r=t.pop(),i=Number(r)+1;return t.push(""+i),t.join("-")}function Z(e){var t=e.split("-"),r=t.pop();return[t.join("-"),r]}function z(e){var t=e.split("-"),r=t.pop();return t.push(Number(r)-1),t.join("-")}function C(e){var t=e.split("-"),r=t.pop();return t.push(Number(r)+1),t.join("-")}function G(e,t){var r=t||{};if(N(e)&&"object"===e.type&&e.properties){(e.propertyOrder?e.propertyOrder:Object.keys(e.properties)).map((function(t){var i=e.properties[t];r=K(i,r)}))}return r}function K(e,t){var r=!t,i=t||{};if(e&&"{}"!==JSON.stringify(e)){var a=w(e);"object"===a||"func"===a||"style"===a||"data"===a?(!r&&i.object?i.object+=1:r||(i.object=1),i=G(e,i)):"array"===a?(!r&&i.array?i.array+=1:r||(i.array=1),i=G(e=e.items,i)):!r&&i[a]?i[a]+=1:r||(i[a]=1)}return i}function M(e){var t=r(e);if(!t.title&&t.description&&(t.title=t.description),t.format||(t.format=w(t)),"quantity"!==t.format&&"array"!==t.format&&"datasource"!==t.format&&"event"!==t.format&&"object"!==t.format&&"radio"!==t.format&&"select"!==t.format||!a(t.default)||delete t.default,"radio"===t.format&&(t.type="string",t.enum&&t.enumextra&&(t.items={type:"string",enum:r(t.enum),enumextra:r(t.enumextra)},delete t.enum,delete t.enumextra)),"quantity"===t.format){var i=t.properties,n=r(c.quantity);if(i.quantity&&N(i.quantity)&&i.quantity.default){var o=i.quantity.default;n.properties.quantity.default="percent"===o?"%":o}t=n}if("datasource"===t.format){var p=t.properties,l=p.type&&p.type.default,d=p.data&&p.data.default,s=p.filter&&p.filter.default;"local"===l?(t=r(m.local)).properties.data.default=d?r(d):"{}":(t=r(m.remote)).properties.data.default=d?r(d):"http://xxx",t.properties.filter.default=s?r(s):"() => {}"}if("event"===t.format){var u=t.properties,f=u.type&&u.type.default;if("in"===f||"on"===f){var g=u.filter&&u.filter.default||"() => {}";t=r(y.on),u.actionFunc&&N(u.actionFunc)&&(t.properties.actionFunc.default=u.actionFunc.default||r(g))}else{var O=u.filter&&u.filter.default||"{}";t=r(y.emit),u.eventData&&N(u.eventData)&&(t.properties.eventData.default=u.eventData.default||r(O))}}return t.properties&&(t.required=Object.keys(t.properties),t.propertyOrder||(t.propertyOrder=t.required),t.propertyOrder.map((function(e){t.properties[e]=M(t.properties[e])}))),t.items&&(t.items=M(t.items)),t}function P(e,t){var r="",i=t;a(i)&&a(e.default)&&typeof i!=typeof e.default&&(i=void 0);var n=a(i)?i:e.default;switch(e.type){case"string":if("typeSelect"===e.format)r=e.default;else if("color"===e.format)"#fff"!==n&&"#FFF"!==n||(n="#ffffff"),r=n||"#ffffff";else if("json"===e.format||"widget"===e.format){var o="";if(N(t)||x(t))o=t;else if(k(t)||""===t)o={};else try{o=JSON.parse(t)}catch(e){o={}}r=o}else r=a(n)?n:"";break;case"boolean":r=!!a(n)&&n;break;case"number":r=a(n)?n:1;break;default:r=a(n)?n:""}return r}function Q(e,t){var i={},n=w(e);if(N(e)&&"object"===e.type){var o=e,p=t;a(p)&&a(o.default)&&typeof p!=typeof o.default&&(p=void 0);var l=a(p)?p:o.default;if("dynamic-data"===n)i=r(f),l&&N(l)&&"{}"!==JSON.stringify(l)&&(i=Object.assign(i,l));else if("datasource"===n)o.properties&&o.properties.type&&o.properties.type.default&&"local"===o.properties.type.default?(i={data:"{}",filter:"() => {}"},l&&l.data&&(i.data=l.data),l&&l.filter&&(i.filter=l.filter),"http://xxx"===i.data&&(i.data="{}")):(i={data:"http://xxx",filter:"() => {}"},l&&l.data&&(i.data=l.data),l&&l.filter&&(i.filter=l.filter),"{}"===i.data&&(i.data="http://xxx"));else if("event"===n)o.properties&&o.properties.type&&o.properties.type.default&&"emit"===o.properties.type.default?l&&"out"===l.type?i={trigger:l&&l.filter||"eventName",eventData:"{}"}:(i={trigger:"eventName",eventData:"{}"},l&&l.trigger&&(i.trigger=l.trigger),l&&l.eventData&&(i.eventData=l.eventData)):l&&"in"===l.type?i={register:"eventName",actionFunc:l&&l.filter||"() => {}"}:(i={register:"eventName",actionFunc:"() => {}"},l&&l.register&&(i.register=l.register),l&&l.actionFunc&&(i.actionFunc=l.actionFunc));else if(e.properties){(e.propertyOrder?e.propertyOrder:Object.keys(e.properties)).map((function(r){var a=e.properties[r],n=t&&t[r];switch(a.type){case"array":i[r]=V(a,n);break;case"object":i[r]=Q(a,n);break;default:i[r]=P(a,n)}}))}}return i}function V(e,t){var r=[];if(e&&"array"===e.type){var i=t;a(i)&&a(e.default)&&typeof i!=typeof e.default&&(i=void 0);var n=a(i)?i:e.default;if("array"===e.format)if(x(n))n.map((function(t){r.push(Q(e.items,t))}));else{var o=Q(e.items,n);r.push(o)}else r=a(n)?n:[]}return r}function X(e,t){return"object"===e.type?Q(e,t):"array"===e.type?V(e,t):P(e,t)}var Y=c;function _(e,t){var r=t||[];if(e&&"{}"!==JSON.stringify(e))if(N(e))if(e.type&&"remote"===e.type&&e.config&&N(e.config)&&e.config.dataName&&a(e.localFilter)&&a(e.data)){var i=e.config.body;if(i&&!N(i))try{i=JSON.parse(i)}catch(e){i={}}r.push({id:e.config.id,dataName:e.config.dataName,body:i})}else{Object.keys(e).map((function(t){_(e[t],r)}))}else x(e)&&e.map((function(e){_(e,r)}));return r}function ee(e,t){var r=t||"data";return e.split("-").map((function(e){r=/^\d+$/.test(e)?r+"["+e+"]":r+"."+e})),r}function te(e,t){var r=[];N(e)?Object.keys(e).map((function(i){var a=e[i],n=t?t+"-"+i:i;N(a)||x(a)?r.push({title:i,value:n,key:n,children:te(a,n)}):r.push({title:i,value:n,key:n})})):x(e)&&e.map((function(e,i){var a=i.toString(),n=t?t+"-"+i:a;N(e)||x(e)?r.push({title:a,value:n,key:n,children:te(e,n)}):r.push({title:a,value:n,key:n})}));return r}function re(e){var t=e.split("-");return t.pop(),t.join("-")}function ie(e){var t=e.split("-"),r=t.pop();return[t.join("-"),r]}var ae=["key","enum","enumextra","items","input","boolean","number","color","url","textarea","text-editor","radio","single-select","select","date","date-time","time","json","codearea","htmlarea","quantity","box-style","dynamic-data","datasource","event","array","object","widget","widgets","widgetUUID","embedWidgetList"];export{m as DataSourceTypeList,y as EventTypeDataList,ae as KeyWordList,c as TypeDataList,ee as dataRoute2dataPath,_ as dynamicDataAnalyzer,E as getCurPosition,w as getCurrentFormat,n as getJsonDataByKeyRoute,L as getNextIndexRoute,H as getParentIndexRoute,Z as getParentIndexRoute_CurIndex,re as getParentKeyRoute,ie as getParentKeyRoute_CurKey,o as getSchemaByIndexRoute,p as getSchemaByKeyRoute,a as hasProperties,l as indexRoute2keyRoute,x as isArray,b as isBoolean,U as isBoxSchemaData,F as isColor,j as isDateStr,q as isDateTimeStr,$ as isEmptySchema,J as isEmptyWidgetSchema,i as isEqual,I as isFirstSchemaData,k as isFunction,A as isNewSchemaData,v as isNumber,N as isObject,S as isQuantity,B as isSameParent,R as isSelect,O as isString,W as isStructuredSchema,h as isTimeStr,g as isURL,T as isUsedToWidgetConfig,D as json2schema,te as json2treeData,d as keyRoute2indexRoute,K as metaElemAnalyzer,C as moveBackward,z as moveForward,r as objClone,M as oldSchemaToNewSchema,X as schema2json,Y as schemaMetaList};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONUtils=t():e.JSONUtils=t()}(this,(function(){return function(){"use strict";var e={d:function(t,r){for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{DataSourceTypeList:function(){return g},EventTypeDataList:function(){return m},KeyWordList:function(){return ae},TypeDataList:function(){return y},dataRoute2dataPath:function(){return te},dynamicDataAnalyzer:function(){return ee},getCurPosition:function(){return A},getCurrentFormat:function(){return T},getJsonDataByKeyRoute:function(){return o},getNextIndexRoute:function(){return K},getParentIndexRoute:function(){return E},getParentIndexRoute_CurIndex:function(){return W},getParentKeyRoute:function(){return ie},getParentKeyRoute_CurKey:function(){return ne},getSchemaByIndexRoute:function(){return u},getSchemaByKeyRoute:function(){return p},hasProperties:function(){return a},indexRoute2keyRoute:function(){return l},isArray:function(){return R},isBoolean:function(){return j},isBoxSchemaData:function(){return C},isColor:function(){return F},isDateStr:function(){return h},isDateTimeStr:function(){return q},isEmptySchema:function(){return P},isEmptyWidgetSchema:function(){return J},isEqual:function(){return n},isFirstSchemaData:function(){return I},isFunction:function(){return k},isNewSchemaData:function(){return B},isNumber:function(){return v},isObject:function(){return D},isQuantity:function(){return N},isSameParent:function(){return U},isSelect:function(){return S},isString:function(){return b},isStructuredSchema:function(){return L},isTimeStr:function(){return x},isURL:function(){return O},isUsedToWidgetConfig:function(){return $},json2schema:function(){return w},json2treeData:function(){return re},keyRoute2indexRoute:function(){return d},metaElemAnalyzer:function(){return H},moveBackward:function(){return M},moveForward:function(){return _},objClone:function(){return i},oldSchemaToNewSchema:function(){return Q},schema2json:function(){return X},schemaMetaList:function(){return Y}});var r=require("lodash");function i(e){return(0,r.cloneDeep)(e)}function n(e,t){return(0,r.isEqual)(e,t)}function a(e){var t=!1;return null!=e&&(t=!0),t}function o(e,t,r){var n=t;if(r&&(n=i(t)),e)for(var a=e.split("-"),o=0,u=a.length;o<u;o++){var p=a[o];p&&(n=n&&n[p])}return n}function u(e,t,r){var n=t;if(r&&(n=i(t)),e)for(var a=e.split("-"),o=0,u=a.length;o<u;o++){var p=a[o];if("0"!==p||"array"!==n.format&&"radio"!==n.format&&"single-select"!==n.format&&"select"!==n.format||!n.items){if(p){var l="0";n.propertyOrder?l=n.propertyOrder[p]:n.properties&&(l=Object.keys(n.properties)[p]),n=n.properties[l]}}else n=n.items}return n}function p(e,t,r){var n=t;if(r&&(n=i(t)),e&&n)for(var a=e.split("-"),o=0,u=a.length;o<u;o++){var p=a[o];p&&n.properties&&(n=n.properties[p])}return n}function l(e,t){for(var r=t,i="",n=e.split("-"),a=0,o=n.length;a<o;a++){var u=n[a];if("0"===u&&r.items)r=r.items,i=i?i+"-items":"items";else if(u){var p="0";r.propertyOrder?p=r.propertyOrder[u]:r.properties&&(p=Object.keys(r.properties)[u]),r=r.properties[p],i=i?i+"-"+p:p}}return i}function d(e,t){for(var r=t,i="",n=e.split("-"),a=0,o=n.length;a<o;a++){var u=n[a];if(u){var p=-1;r.propertyOrder?(p=r.propertyOrder.indexOf(u),r=r.properties[u]):r.properties?(p=Object.keys(r.properties).indexOf(u),r=r.properties[u]):r.items&&(p=0,r=r.items),i=i?i+"-"+p:p.toString()}}return i}var s={type:"object",format:"event",title:"事件",isRequired:!1,readOnly:!1,properties:{type:{type:"string",default:"emit",format:"typeSelect",enum:["on","emit"],enumextra:["on","emit"],title:"事件类型",isRequired:!1,readOnly:!1},trigger:{type:"string",format:"input",default:"eventName",title:"触发事件",description:"用于输入触发事件的名称",placeholder:"请输入触发事件的名称",isRequired:!1,readOnly:!1},eventData:{type:"string",title:"事件数据",format:"json",default:"{}",description:"传递给触发事件的数据对象",isRequired:!1,readOnly:!1}},required:["type","trigger","eventData"],propertyOrder:["type","trigger","eventData"]},c={type:"object",format:"datasource",title:"数据源",readOnly:!1,properties:{type:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["local","remote"],title:"数据源类型"},data:{type:"string",title:"本地json数据",placeholder:"请输入静态json数据",format:"json",default:"{}",description:"用于设置本地的静态json数据",isRequired:!0},filter:{type:"string",title:"过滤器",format:"codearea",default:"() => {}",description:"用于定义过滤当前数据的函数",isRequired:!0}},required:["type","data","filter"],propertyOrder:["type","data","filter"]},f={type:"local",config:{dataName:"",body:{},filter:"return data;"},data:"{}",localFilter:"return data;"},y={jsonschema:{type:"object",title:"jsonSchemaObject",properties:{func:{type:"object",format:"func",title:"功能设置",readOnly:!0,properties:{a:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["a"],propertyOrder:["a"]},style:{type:"object",format:"style",title:"样式设置",readOnly:!0,properties:{b:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["b"],propertyOrder:["b"]},data:{type:"object",format:"data",title:"数据设置",readOnly:!0,properties:{c:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["c"],propertyOrder:["c"]}},required:["func","style","data"],propertyOrder:["func","style","data"]},input:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},boolean:{type:"boolean",title:"布尔值",format:"boolean",default:!1,description:"",isRequired:!1,readOnly:!1},object:{type:"object",format:"object",title:"对象Object",description:"",isRequired:!1,readOnly:!1,properties:{a:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["a"],propertyOrder:["a"]},array:{type:"array",format:"array",title:"数组Array",description:"",isRequired:!1,readOnly:!1,items:{type:"object",format:"object",title:"数组项",description:"",isRequired:!1,readOnly:!1,properties:{name:{type:"string",format:"input",title:"名字",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["name"],propertyOrder:["name"]}},"empty-array":{type:"array",format:"array",title:"数组Array",description:"",items:{type:"object",format:"object",title:"数组项",description:"",properties:{}}},"empty-object":{type:"object",format:"object",title:"对象Object",description:"",properties:{}},url:{type:"string",title:"链接地址url",format:"url",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},textarea:{type:"string",title:"多行文本框",format:"textarea",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},color:{type:"string",title:"颜色color",format:"color",default:"#ffffff",description:"",isRequired:!1,readOnly:!1},image:{type:"string",title:"图片",format:"image",default:"",description:"上传图片",imgWidth:200,imgHeight:200,imgRatioReadOnly:!0,templateId:"",isRequired:!1},number:{type:"number",title:"数量number",format:"number",default:1,minimum:0,maximum:1e3,description:"",isRequired:!1,readOnly:!1},json:{type:"string",title:"json数据",format:"json",default:"{}",description:"",isRequired:!1,readOnly:!1},codearea:{type:"string",title:"函数类型",format:"codearea",placeholder:"请输入函数方法",default:'function func() { console.log("hello, world!"); }',description:"用于定义函数方法",isRequired:!1,readOnly:!1},htmlarea:{type:"string",title:"富文本",format:"htmlarea",placeholder:"请输入html代码片段",default:"<p>hello,world!</p>",description:"用于放置html代码片段",isRequired:!1,readOnly:!1},"text-editor":{type:"string",title:"富文本",format:"text-editor",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},date:{type:"string",title:"日期Date",format:"date",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},"date-time":{type:"string",title:"日期时间",format:"date-time",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},time:{type:"string",title:"时间Time",format:"time",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},quantity:{type:"object",format:"quantity",title:"单位计量",isRequired:!1,readOnly:!1,properties:{unit:{type:"number",title:"单位数值",format:"number",default:50,minimum:0,maximum:1e3,description:"",isRequired:!1,readOnly:!1},quantity:{type:"string",format:"typeSelect",default:"px",enum:["px","rem","em","%"],enumextra:["px","rem","em","%"],title:"单位类型",isRequired:!1,readOnly:!1}},required:["unit","quantity"],propertyOrder:["unit","quantity"]},"box-style":{type:"object",format:"box-style",title:"盒子模型",isRequired:!1,readOnly:!1,properties:{unit:{type:"string",title:"单位数值",format:"string",default:"0",description:"",isRequired:!1,readOnly:!1},quantity:{type:"string",format:"typeSelect",default:"px",enum:["px","rem","em","%"],enumextra:["px","rem","em","%"],title:"单位类型",isRequired:!1,readOnly:!1}},required:["unit","quantity"],propertyOrder:["unit","quantity"]},radio:{type:"string",title:"单选",format:"radio",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},"single-select":{type:"string",title:"下拉单选",format:"single-select",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},select:{type:"array",title:"多选",format:"select",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},"dynamic-data":{type:"object",format:"dynamic-data",title:"动态数据源",readOnly:!1,properties:{type:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["本地数据","接口数据"],title:"数据类型"},config:{type:"object",title:"接口配置",format:"object",description:"用于存放接口的配置数据(url、请求参数等)",isRequired:!0,properties:{dataName:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["本地数据","接口数据"],title:"数据类型"},body:{type:"object",title:"请求参数配置",format:"object",description:"用于配置当前接口的请求参数数值",isRequired:!0},filter:{type:"string",title:"过滤器函数体",format:"codearea",default:"return data;",description:"用于定义过滤接口数据",isRequired:!0}},required:["dataName","body","filter"],propertyOrder:["dataName","body","filter"]},data:{type:"string",title:"数据内容",format:"json",default:"{}",description:"用于存放DynamicData的数据内容",isRequired:!0},localFilter:{type:"string",title:"过滤器",format:"codearea",default:"return data;",description:"用于定义过滤本地数据",isRequired:!0}},required:["type","config","data","localFilter"],propertyOrder:["type","config","data","localFilter"]},datasource:c,event:s,widget:{type:"string",title:"内嵌组件数据",format:"widget",default:"{}",description:"用于存放内嵌组件的渲染相关数据",isRequired:!1,readOnly:!0}},m={on:{type:"object",format:"event",title:"事件",isRequired:!1,readOnly:!1,properties:{type:{type:"string",default:"on",format:"typeSelect",enum:["on","emit"],enumextra:["on","emit"],title:"事件类型",isRequired:!1,readOnly:!1},register:{type:"string",format:"input",default:"eventName",title:"注册事件",description:"用于输入注册事件的名称",placeholder:"请输入注册事件的名称",isRequired:!1,readOnly:!1},actionFunc:{type:"string",title:"执行函数",format:"codearea",default:"() => {}",description:"",isRequired:!1,readOnly:!1}},required:["type","register","actionFunc"],propertyOrder:["type","register","actionFunc"]},emit:s},g={local:c,remote:{type:"object",format:"datasource",title:"数据源",readOnly:!1,properties:{type:{type:"string",default:"remote",format:"typeSelect",enum:["local","remote"],enumextra:["local","remote"],title:"数据源类型"},data:{type:"string",title:"远程json数据",placeholder:"请输入远程json数据源地址",format:"url",default:"http://xxx",isRequired:!0,description:"用于设置获取元素数据的请求地址"},filter:{type:"string",title:"过滤器",format:"codearea",default:"() => {}",description:"用于定义过滤当前数据的函数",isRequired:!0}},required:["type","data","filter"],propertyOrder:["type","data","filter"]}};function O(e){return/^http[s]?:\/\/.*/.test(e)}function b(e){return"String"===Object.prototype.toString.call(e).slice(8,-1)}function v(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function j(e){return"Boolean"===Object.prototype.toString.call(e).slice(8,-1)}function h(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)}function q(e){return/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/.test(e)||/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/.test(e)}function x(e){return/^\d{2}:\d{2}:\d{2}$/.test(e)||/^\d{2}:\d{2}$/.test(e)}function R(e){var t=!1;return"Array"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function S(e){if(!R(e))return!1;for(var t=0,r=e.length;t<r;t++)if(!b(e[t]))return!1;return!0}function D(e){var t=!1;return"Object"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function N(e){var t=!1;return y.quantity.properties.quantity.enum.indexOf(e)>=0&&(t=!0),t}function F(e){return/^#[0-9a-f]{6}$/.test(e)||/^#[0-9a-f]{3}$/.test(e)}function k(e){var t=!1;return"Function"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function w(e){var t;return t=e&&D(e)?function(e){var t;if(D(e)){var r=Object.keys(e);e.data&&e.filter&&2===r.length?t=R(e.data)||D(e.data)?i(g.local):i(g.remote):e.trigger&&e.eventData&&2===r.length?t=i(m.emit):e.register&&e.actionFunc&&2===r.length?t=i(m.on):e.quantity&&N(e.quantity)&&2===r.length?t=i(y.quantity):(t=i(y["empty-object"]),Object.keys(e).map((function(r){var i=e[r];t.properties[r]=w(i)})))}return t}(e):e&&R(e)?function(e){var t;if(e&&R(e))if(S(e)){(t=i(y.select)).items.enum=e;var r=t.items.enumextra.length,n=e.length;if(n>r)for(var a=r,o=n;a<o;a++)t.items.enumextra.push("选项"+e(a))}else{t=i(y["empty-array"]);var u=w(e[0]);t.items.properties=u.properties}return t}(e):function(e){var t="";if(j(e))t=i(y.boolean);else if(v(e))t=i(y.number);else if(O(e))t=i(y.url);else if(h(e))t=i(y.date);else if(q(e))t=i(y["date-time"]);else if(x(e))t=i(y.time);else if(F(e))t=i(y.color);else try{t=v(JSON.parse(e))?i(y.input):i(y.json)}catch(r){t=e&&e.length>30?i(y.textarea):i(y.input)}return t}(e),t}function T(e){var t=e&&e.format;return t||(t=e&&e.type?e.type:"input"),t}function P(e){var t=!0;if(!e)return t;var r=T(e);return("object"===r&&e.properties&&e.propertyOrder&&e.propertyOrder.length>0||"array"===r&&e.items&&e.items.properties&&e.items.propertyOrder&&e.items.propertyOrder.length>0||e.type&&"array"!==e.type&&"object"!==e.type||e.format)&&(t=!1),t}function J(e){var t=!0;if(e&&"object"===T(e)&&e.properties&&e.propertyOrder&&e.propertyOrder.length>0){var r=e.properties.func||{},i=e.properties.style||{},n=e.properties.data||{};(r.propertyOrder&&r.propertyOrder.length>0||i.propertyOrder&&i.propertyOrder.length>0||n.propertyOrder&&n.propertyOrder.length>0)&&(t=!1)}return t}function $(e){var t=!1;return e&&"object"===T(e)&&e.properties&&e.propertyOrder&&e.properties.func&&e.properties.style&&e.properties.data&&(t=!0),t}function B(e){var t=!1,r=e.lastUpdateTime,i=new Date("2020-07-29T07:30:00.691Z").getTime();return r&&new Date(r).getTime()>=i&&(t=!0),t}function C(e){var t=!1;return"object"!==e&&"func"!==e&&"style"!==e&&"data"!==e&&"widgets"!==e&&"func-schema"!==e&&"style-schema"!==e&&"data-schema"!==e&&"event-schema"!==e&&"widgets-schema"!==e||(t=!0),t}function I(e){var t=!1;return"func"!==e&&"style"!==e&&"data"!==e&&"props"!==e&&"event-schema"!==e&&"widgets"!==e||(t=!0),t}function L(e){var t=!0;return"object"===(e.type||T(e))&&e.propertyOrder&&e.properties?e.propertyOrder.map((function(r){var i=e.properties[r];"object"===(e.type||T(i))&&i.propertyOrder&&i.properties||(t=!1)})):t=!1,t}function U(e,t){var r=e.split("-"),i=t.split("-");return r.pop(),i.pop(),r.join("-")===i.join("-")}function A(e,t){for(var r=e.split("-"),i=t.split("-"),n="before",a=0,o=(r.length>i.length?i:r).length;a<o;a+=1)Number(r[a])>Number(i[a])&&(n="after");return n}function E(e){var t=e.split("-");return t.pop(),t.join("-")}function K(e){var t=e.split("-"),r=t.pop(),i=Number(r)+1;return t.push(""+i),t.join("-")}function W(e){var t=e.split("-"),r=t.pop();return[t.join("-"),r]}function _(e){var t=e.split("-"),r=t.pop();return t.push(Number(r)-1),t.join("-")}function M(e){var t=e.split("-"),r=t.pop();return t.push(Number(r)+1),t.join("-")}function z(e,t){var r=t||{};return D(e)&&"object"===e.type&&e.properties&&(e.propertyOrder?e.propertyOrder:Object.keys(e.properties)).map((function(t){var i=e.properties[t];r=H(i,r)})),r}function H(e,t){var r=!t,i=t||{};if(e&&"{}"!==JSON.stringify(e)){var n=T(e);"object"===n||"func"===n||"style"===n||"data"===n?(!r&&i.object?i.object+=1:r||(i.object=1),i=z(e,i)):"array"===n?(!r&&i.array?i.array+=1:r||(i.array=1),i=z(e=e.items,i)):!r&&i[n]?i[n]+=1:r||(i[n]=1)}return i}function Q(e){var t=i(e);if(!t.title&&t.description&&(t.title=t.description),t.format||(t.format=T(t)),"quantity"!==t.format&&"array"!==t.format&&"datasource"!==t.format&&"event"!==t.format&&"object"!==t.format&&"radio"!==t.format&&"select"!==t.format||!a(t.default)||delete t.default,"radio"===t.format&&(t.type="string",t.enum&&t.enumextra&&(t.items={type:"string",enum:i(t.enum),enumextra:i(t.enumextra)},delete t.enum,delete t.enumextra)),"quantity"===t.format){var r=t.properties,n=i(y.quantity);if(r.quantity&&D(r.quantity)&&r.quantity.default){var o=r.quantity.default;n.properties.quantity.default="percent"===o?"%":o}t=n}if("datasource"===t.format){var u=t.properties,p=u.type&&u.type.default,l=u.data&&u.data.default,d=u.filter&&u.filter.default;"local"===p?(t=i(g.local)).properties.data.default=l?i(l):"{}":(t=i(g.remote)).properties.data.default=l?i(l):"http://xxx",t.properties.filter.default=d?i(d):"() => {}"}if("event"===t.format){var s=t.properties,c=s.type&&s.type.default;if("in"===c||"on"===c){var f=s.filter&&s.filter.default||"() => {}";t=i(m.on),s.actionFunc&&D(s.actionFunc)&&(t.properties.actionFunc.default=s.actionFunc.default||i(f))}else{var O=s.filter&&s.filter.default||"{}";t=i(m.emit),s.eventData&&D(s.eventData)&&(t.properties.eventData.default=s.eventData.default||i(O))}}return t.properties&&(t.required=Object.keys(t.properties),t.propertyOrder||(t.propertyOrder=t.required),t.propertyOrder.map((function(e){t.properties[e]=Q(t.properties[e])}))),t.items&&(t.items=Q(t.items)),t}function Z(e,t){var r="",i=t;a(i)&&a(e.default)&&typeof i!=typeof e.default&&(i=void 0);var n=a(i)?i:e.default;switch(e.type){case"string":if("typeSelect"===e.format)r=e.default;else if("color"===e.format)"#fff"!==n&&"#FFF"!==n||(n="#ffffff"),r=n||"#ffffff";else if("json"===e.format||"widget"===e.format){var o="";if(D(t)||R(t))o=t;else if(k(t)||""===t)o={};else try{o=JSON.parse(t)}catch(e){o={}}r=o}else r=a(n)?n:"";break;case"boolean":r=!!a(n)&&n;break;case"number":r=a(n)?n:1;break;default:r=a(n)?n:""}return r}function G(e,t){var r={},n=T(e);if(D(e)&&"object"===e.type){var o=e,u=t;a(u)&&a(o.default)&&typeof u!=typeof o.default&&(u=void 0);var p=a(u)?u:o.default;"dynamic-data"===n?(r=i(f),p&&D(p)&&"{}"!==JSON.stringify(p)&&(r=Object.assign(r,p))):"datasource"===n?o.properties&&o.properties.type&&o.properties.type.default&&"local"===o.properties.type.default?(r={data:"{}",filter:"() => {}"},p&&p.data&&(r.data=p.data),p&&p.filter&&(r.filter=p.filter),"http://xxx"===r.data&&(r.data="{}")):(r={data:"http://xxx",filter:"() => {}"},p&&p.data&&(r.data=p.data),p&&p.filter&&(r.filter=p.filter),"{}"===r.data&&(r.data="http://xxx")):"event"===n?o.properties&&o.properties.type&&o.properties.type.default&&"emit"===o.properties.type.default?p&&"out"===p.type?r={trigger:p&&p.filter||"eventName",eventData:"{}"}:(r={trigger:"eventName",eventData:"{}"},p&&p.trigger&&(r.trigger=p.trigger),p&&p.eventData&&(r.eventData=p.eventData)):p&&"in"===p.type?r={register:"eventName",actionFunc:p&&p.filter||"() => {}"}:(r={register:"eventName",actionFunc:"() => {}"},p&&p.register&&(r.register=p.register),p&&p.actionFunc&&(r.actionFunc=p.actionFunc)):e.properties&&(e.propertyOrder?e.propertyOrder:Object.keys(e.properties)).map((function(i){var n=e.properties[i],a=t&&t[i];switch(n.type){case"array":r[i]=V(n,a);break;case"object":r[i]=G(n,a);break;default:r[i]=Z(n,a)}}))}return r}function V(e,t){var r=[];if(e&&"array"===e.type){var i=t;a(i)&&a(e.default)&&typeof i!=typeof e.default&&(i=void 0);var n=a(i)?i:e.default;if("array"===e.format)if(R(n))n.map((function(t){r.push(G(e.items,t))}));else{var o=G(e.items,n);r.push(o)}else r=a(n)?n:[]}return r}function X(e,t){return"object"===e.type?G(e,t):"array"===e.type?V(e,t):Z(e,t)}var Y=y;function ee(e,t){var r=t||[];if(e&&"{}"!==JSON.stringify(e))if(D(e))if(e.type&&"remote"===e.type&&e.config&&D(e.config)&&e.config.dataName&&a(e.localFilter)&&a(e.data)){var i=e.config.body;if(i&&!D(i))try{i=JSON.parse(i)}catch(e){i={}}r.push({id:e.config.id,dataName:e.config.dataName,body:i})}else Object.keys(e).map((function(t){ee(e[t],r)}));else R(e)&&e.map((function(e){ee(e,r)}));return r}function te(e,t){var r=t||"data";return e.split("-").map((function(e){r=/^\d+$/.test(e)?r+"["+e+"]":r+"."+e})),r}function re(e,t){var r=[];return D(e)?Object.keys(e).map((function(i){var n=e[i],a=t?t+"-"+i:i;D(n)||R(n)?r.push({title:i,value:a,key:a,children:re(n,a)}):r.push({title:i,value:a,key:a})})):R(e)&&e.map((function(e,i){var n=i.toString(),a=t?t+"-"+i:n;D(e)||R(e)?r.push({title:n,value:a,key:a,children:re(e,a)}):r.push({title:n,value:a,key:a})})),r}function ie(e){var t=e.split("-");return t.pop(),t.join("-")}function ne(e){var t=e.split("-"),r=t.pop();return[t.join("-"),r]}var ae=["key","enum","enumextra","items","input","boolean","number","color","url","textarea","text-editor","radio","single-select","select","date","date-time","time","json","codearea","htmlarea","quantity","box-style","dynamic-data","datasource","event","array","object","widget","widgets","widgetUUID","embedWidgetList"];return t}()}));
|
package/package.json
CHANGED
|
@@ -1,39 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wibetter/json-utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"description": "提供JSON相关的各类工具方法,比如schema转json、json转schema、json元数据分析等",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"json工具包",
|
|
7
7
|
"schema2json",
|
|
8
8
|
"json2schema",
|
|
9
|
-
"
|
|
9
|
+
"getJsonDataByKeyRoute",
|
|
10
10
|
"getSchemaByIndexRoute",
|
|
11
11
|
"indexRoute2keyRoute"
|
|
12
12
|
],
|
|
13
|
-
"author": "
|
|
13
|
+
"author": "wibetter",
|
|
14
14
|
"license": "MIT",
|
|
15
|
-
"main": "dist/index.
|
|
16
|
-
"module": "dist/index.esm.
|
|
15
|
+
"main": "dist/index.js",
|
|
16
|
+
"module": "dist/index.esm.js",
|
|
17
17
|
"scripts": {
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"build2esm": "akfun build2esm -n=index",
|
|
21
|
-
"format": "prettier --write \"src/**/**/*.{js,jsx,ts,tsx,vue,scss,json}\""
|
|
18
|
+
"build2lib": "akfun build2lib && npm run build2esm",
|
|
19
|
+
"build2esm": "akfun build2esm -n=index"
|
|
22
20
|
},
|
|
23
21
|
"files": [
|
|
24
22
|
"dist/*"
|
|
25
23
|
],
|
|
26
|
-
"husky": {
|
|
27
|
-
"hooks": {
|
|
28
|
-
"pre-commit": "lint-staged",
|
|
29
|
-
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"lint-staged": {
|
|
33
|
-
"src/**/**/*.{js,jsx,ts,tsx,vue,scss,json}": [
|
|
34
|
-
"prettier --write"
|
|
35
|
-
]
|
|
36
|
-
},
|
|
37
24
|
"repository": {
|
|
38
25
|
"type": "git",
|
|
39
26
|
"url": "git+http://git@github.com:wibetter/json-utils.git"
|
|
@@ -42,18 +29,10 @@
|
|
|
42
29
|
"url": "https://github.com/wibetter/json-utils/issues"
|
|
43
30
|
},
|
|
44
31
|
"dependencies": {
|
|
45
|
-
"
|
|
32
|
+
"lodash": "^4.17.21"
|
|
46
33
|
},
|
|
47
34
|
"devDependencies": {
|
|
48
|
-
"akfun": "^
|
|
49
|
-
"@commitlint/cli": "^8.3.5",
|
|
50
|
-
"@commitlint/config-conventional": "^9.1.1",
|
|
51
|
-
"husky": "^4.2.5",
|
|
52
|
-
"lint-staged": "^10.2.9",
|
|
53
|
-
"prettier": "^2.0.5",
|
|
54
|
-
"react": "^16.8.6",
|
|
55
|
-
"react-dom": "^16.8.6",
|
|
56
|
-
"@wibetter/json-editor": "^3.3.27"
|
|
35
|
+
"akfun": "^5.0.1"
|
|
57
36
|
},
|
|
58
37
|
"engines": {
|
|
59
38
|
"node": ">= 10.13.0",
|
package/dist/index.umd.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @wibetter/json-utils v1.3.1
|
|
3
|
-
* author: ldan@wibetter
|
|
4
|
-
* build tool: AKFun
|
|
5
|
-
* build time: Thu Aug 19 2021 19:32:39 GMT+0800 (China Standard Time)
|
|
6
|
-
* build tool info: https://github.com/wibetter/akfun
|
|
7
|
-
*/
|
|
8
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONUtils=t():e.JSONUtils=t()}(this,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";function i(e){var t=JSON.stringify(e);return JSON.parse(t)}function n(e,t){return JSON.stringify(e)===JSON.stringify(t)}function a(e){var t=!1;return null!=e&&(t=!0),t}function o(e,t,r){var n=t;if(r&&(n=i(t)),e)for(var a=e.split("-"),o=0,u=a.length;o<u;o++){var p=a[o];p&&(n=n&&n[p])}return n}function u(e,t,r){var n=t;if(r&&(n=i(t)),e)for(var a=e.split("-"),o=0,u=a.length;o<u;o++){var p=a[o];if("0"!==p||"array"!==n.format&&"radio"!==n.format&&"single-select"!==n.format&&"select"!==n.format||!n.items){if(p){var d="0";if(n.propertyOrder)d=n.propertyOrder[p];else if(n.properties){d=Object.keys(n.properties)[p]}n=n.properties[d]}}else n=n.items}return n}function p(e,t,r){var n=t;if(r&&(n=i(t)),e&&n)for(var a=e.split("-"),o=0,u=a.length;o<u;o++){var p=a[o];p&&n.properties&&(n=n.properties[p])}return n}function d(e,t){for(var r=t,i="",n=e.split("-"),a=0,o=n.length;a<o;a++){var u=n[a];if("0"===u&&r.items)r=r.items,i=i?i+"-items":"items";else if(u){var p="0";if(r.propertyOrder)p=r.propertyOrder[u];else if(r.properties){p=Object.keys(r.properties)[u]}r=r.properties[p],i=i?i+"-"+p:p}}return i}function l(e,t){for(var r=t,i="",n=e.split("-"),a=0,o=n.length;a<o;a++){var u=n[a];if(u){var p=-1;if(r.propertyOrder)p=r.propertyOrder.indexOf(u),r=r.properties[u];else if(r.properties){p=Object.keys(r.properties).indexOf(u),r=r.properties[u]}else r.items&&(p=u,r=r.items);i=i?i+"-"+p:p.toString()}}return i}r.r(t),r.d(t,"getJsonDataByKeyRoute",(function(){return o})),r.d(t,"getSchemaByIndexRoute",(function(){return u})),r.d(t,"getSchemaByKeyRoute",(function(){return p})),r.d(t,"indexRoute2keyRoute",(function(){return d})),r.d(t,"keyRoute2indexRoute",(function(){return l})),r.d(t,"json2schema",(function(){return w})),r.d(t,"metaElemAnalyzer",(function(){return H})),r.d(t,"oldSchemaToNewSchema",(function(){return Q})),r.d(t,"schema2json",(function(){return X})),r.d(t,"schemaMetaList",(function(){return Y})),r.d(t,"dynamicDataAnalyzer",(function(){return ee})),r.d(t,"dataRoute2dataPath",(function(){return te})),r.d(t,"json2treeData",(function(){return re})),r.d(t,"objClone",(function(){return i})),r.d(t,"isEqual",(function(){return n})),r.d(t,"exitPropertie",(function(){return a})),r.d(t,"getParentKeyRoute",(function(){return ie})),r.d(t,"getParentKeyRoute_CurKey",(function(){return ne})),r.d(t,"getCurrentFormat",(function(){return T})),r.d(t,"isEmptySchema",(function(){return J})),r.d(t,"isEmptyWidgetSchema",(function(){return P})),r.d(t,"isUsedToWidgetConfig",(function(){return $})),r.d(t,"isNewSchemaData",(function(){return _})),r.d(t,"isBoxSchemaData",(function(){return B})),r.d(t,"isFirstSchemaData",(function(){return C})),r.d(t,"isStructuredSchema",(function(){return I})),r.d(t,"isSameParent",(function(){return L})),r.d(t,"getCurPosition",(function(){return U})),r.d(t,"getParentIndexRoute",(function(){return A})),r.d(t,"getNextIndexRoute",(function(){return K})),r.d(t,"getParentIndexRoute_CurIndex",(function(){return E})),r.d(t,"moveForward",(function(){return M})),r.d(t,"moveBackward",(function(){return W})),r.d(t,"isURL",(function(){return O})),r.d(t,"isString",(function(){return b})),r.d(t,"isNumber",(function(){return v})),r.d(t,"isBoolean",(function(){return j})),r.d(t,"isDateStr",(function(){return h})),r.d(t,"isDateTimeStr",(function(){return q})),r.d(t,"isTimeStr",(function(){return x})),r.d(t,"isArray",(function(){return R})),r.d(t,"isSelect",(function(){return S})),r.d(t,"isObject",(function(){return N})),r.d(t,"isQuantity",(function(){return D})),r.d(t,"isColor",(function(){return F})),r.d(t,"isFunction",(function(){return k})),r.d(t,"KeyWordList",(function(){return ae})),r.d(t,"TypeDataList",(function(){return y})),r.d(t,"EventTypeDataList",(function(){return m})),r.d(t,"DataSourceTypeList",(function(){return g}));var s={type:"object",format:"event",title:"事件",isRequired:!1,readOnly:!1,properties:{type:{type:"string",default:"emit",format:"typeSelect",enum:["on","emit"],enumextra:["on","emit"],title:"事件类型",isRequired:!1,readOnly:!1},trigger:{type:"string",format:"input",default:"eventName",title:"触发事件",description:"用于输入触发事件的名称",placeholder:"请输入触发事件的名称",isRequired:!1,readOnly:!1},eventData:{type:"string",title:"事件数据",format:"json",default:"{}",description:"传递给触发事件的数据对象",isRequired:!1,readOnly:!1}},required:["type","trigger","eventData"],propertyOrder:["type","trigger","eventData"]},f={type:"object",format:"datasource",title:"数据源",readOnly:!1,properties:{type:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["local","remote"],title:"数据源类型"},data:{type:"string",title:"本地json数据",placeholder:"请输入静态json数据",format:"json",default:"{}",description:"用于设置本地的静态json数据",isRequired:!0},filter:{type:"string",title:"过滤器",format:"codearea",default:"() => {}",description:"用于定义过滤当前数据的函数",isRequired:!0}},required:["type","data","filter"],propertyOrder:["type","data","filter"]},c={type:"local",config:{dataName:"",body:{},filter:"return data;"},data:"{}",localFilter:"return data;"},y={jsonschema:{type:"object",title:"jsonSchemaObject",properties:{func:{type:"object",format:"func",title:"功能设置",readOnly:!0,properties:{a:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["a"],propertyOrder:["a"]},style:{type:"object",format:"style",title:"样式设置",readOnly:!0,properties:{b:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["b"],propertyOrder:["b"]},data:{type:"object",format:"data",title:"数据设置",readOnly:!0,properties:{c:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["c"],propertyOrder:["c"]}},required:["func","style","data"],propertyOrder:["func","style","data"]},input:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},boolean:{type:"boolean",title:"布尔值",format:"boolean",default:!1,description:"",isRequired:!1,readOnly:!1},object:{type:"object",format:"object",title:"对象Object",description:"",isRequired:!1,readOnly:!1,properties:{a:{type:"string",title:"单文本框",format:"input",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["a"],propertyOrder:["a"]},array:{type:"array",format:"array",title:"数组Array",description:"",isRequired:!1,readOnly:!1,items:{type:"object",format:"object",title:"数组项",description:"",isRequired:!1,readOnly:!1,properties:{name:{type:"string",format:"input",title:"名字",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1}},required:["name"],propertyOrder:["name"]}},"empty-array":{type:"array",format:"array",title:"数组Array",description:"",items:{type:"object",format:"object",title:"数组项",description:"",properties:{}}},"empty-object":{type:"object",format:"object",title:"对象Object",description:"",properties:{}},url:{type:"string",title:"链接地址url",format:"url",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},textarea:{type:"string",title:"多行文本框",format:"textarea",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},color:{type:"string",title:"颜色color",format:"color",default:"#ffffff",description:"",isRequired:!1,readOnly:!1},image:{type:"string",title:"图片",format:"image",default:"",description:"上传图片",imgWidth:200,imgHeight:200,imgRatioReadOnly:!0,templateId:"",isRequired:!1},number:{type:"number",title:"数量number",format:"number",default:1,minimum:0,maximum:1e3,description:"",isRequired:!1,readOnly:!1},json:{type:"string",title:"json数据",format:"json",default:"{}",description:"",isRequired:!1,readOnly:!1},codearea:{type:"string",title:"函数类型",format:"codearea",placeholder:"请输入函数方法",default:'function func() { console.log("hello, world!"); }',description:"用于定义函数方法",isRequired:!1,readOnly:!1},htmlarea:{type:"string",title:"富文本",format:"htmlarea",placeholder:"请输入html代码片段",default:"<p>hello,world!</p>",description:"用于放置html代码片段",isRequired:!1,readOnly:!1},"text-editor":{type:"string",title:"富文本",format:"text-editor",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},date:{type:"string",title:"日期Date",format:"date",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},"date-time":{type:"string",title:"日期时间",format:"date-time",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},time:{type:"string",title:"时间Time",format:"time",default:"",description:"",placeholder:"",isRequired:!1,readOnly:!1},quantity:{type:"object",format:"quantity",title:"单位计量",isRequired:!1,readOnly:!1,properties:{unit:{type:"number",title:"单位数值",format:"number",default:50,minimum:0,maximum:1e3,description:"",isRequired:!1,readOnly:!1},quantity:{type:"string",format:"typeSelect",default:"px",enum:["px","rem","em","%"],enumextra:["px","rem","em","%"],title:"单位类型",isRequired:!1,readOnly:!1}},required:["unit","quantity"],propertyOrder:["unit","quantity"]},"box-style":{type:"object",format:"box-style",title:"盒子模型",isRequired:!1,readOnly:!1,properties:{unit:{type:"string",title:"单位数值",format:"string",default:"0",description:"",isRequired:!1,readOnly:!1},quantity:{type:"string",format:"typeSelect",default:"px",enum:["px","rem","em","%"],enumextra:["px","rem","em","%"],title:"单位类型",isRequired:!1,readOnly:!1}},required:["unit","quantity"],propertyOrder:["unit","quantity"]},radio:{type:"string",title:"单选",format:"radio",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},"single-select":{type:"string",title:"下拉单选",format:"single-select",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},select:{type:"array",title:"多选",format:"select",items:{type:"string",enum:["a","b","c"],enumextra:["选项a","选项b","选项c"]},description:"",isRequired:!1,readOnly:!1},"dynamic-data":{type:"object",format:"dynamic-data",title:"动态数据源",readOnly:!1,properties:{type:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["本地数据","接口数据"],title:"数据类型"},config:{type:"object",title:"接口配置",format:"object",description:"用于存放接口的配置数据(url、请求参数等)",isRequired:!0,properties:{dataName:{type:"string",default:"local",format:"typeSelect",enum:["local","remote"],enumextra:["本地数据","接口数据"],title:"数据类型"},body:{type:"object",title:"请求参数配置",format:"object",description:"用于配置当前接口的请求参数数值",isRequired:!0},filter:{type:"string",title:"过滤器函数体",format:"codearea",default:"return data;",description:"用于定义过滤接口数据",isRequired:!0}},required:["dataName","body","filter"],propertyOrder:["dataName","body","filter"]},data:{type:"string",title:"数据内容",format:"json",default:"{}",description:"用于存放DynamicData的数据内容",isRequired:!0},localFilter:{type:"string",title:"过滤器",format:"codearea",default:"return data;",description:"用于定义过滤本地数据",isRequired:!0}},required:["type","config","data","localFilter"],propertyOrder:["type","config","data","localFilter"]},datasource:f,event:s,widget:{type:"string",title:"内嵌组件数据",format:"widget",default:"{}",description:"用于存放内嵌组件的渲染相关数据",isRequired:!1,readOnly:!0}},m={on:{type:"object",format:"event",title:"事件",isRequired:!1,readOnly:!1,properties:{type:{type:"string",default:"on",format:"typeSelect",enum:["on","emit"],enumextra:["on","emit"],title:"事件类型",isRequired:!1,readOnly:!1},register:{type:"string",format:"input",default:"eventName",title:"注册事件",description:"用于输入注册事件的名称",placeholder:"请输入注册事件的名称",isRequired:!1,readOnly:!1},actionFunc:{type:"string",title:"执行函数",format:"codearea",default:"() => {}",description:"",isRequired:!1,readOnly:!1}},required:["type","register","actionFunc"],propertyOrder:["type","register","actionFunc"]},emit:s},g={local:f,remote:{type:"object",format:"datasource",title:"数据源",readOnly:!1,properties:{type:{type:"string",default:"remote",format:"typeSelect",enum:["local","remote"],enumextra:["local","remote"],title:"数据源类型"},data:{type:"string",title:"远程json数据",placeholder:"请输入远程json数据源地址",format:"url",default:"http://xxx",isRequired:!0,description:"用于设置获取元素数据的请求地址"},filter:{type:"string",title:"过滤器",format:"codearea",default:"() => {}",description:"用于定义过滤当前数据的函数",isRequired:!0}},required:["type","data","filter"],propertyOrder:["type","data","filter"]}};function O(e){return/^http[s]?:\/\/.*/.test(e)}function b(e){return"String"===Object.prototype.toString.call(e).slice(8,-1)}function v(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function j(e){return"Boolean"===Object.prototype.toString.call(e).slice(8,-1)}function h(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)}function q(e){return/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/.test(e)||/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/.test(e)}function x(e){return/^\d{2}:\d{2}:\d{2}$/.test(e)||/^\d{2}:\d{2}$/.test(e)}function R(e){var t=!1;return"Array"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function S(e){if(!R(e))return!1;for(var t=0,r=e.length;t<r;t++){if(!b(e[t]))return!1}return!0}function N(e){var t=!1;return"Object"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function D(e){var t=!1;return y.quantity.properties.quantity.enum.indexOf(e)>=0&&(t=!0),t}function F(e){return/^#[0-9a-f]{6}$/.test(e)||/^#[0-9a-f]{3}$/.test(e)}function k(e){var t=!1;return"Function"===Object.prototype.toString.call(e).slice(8,-1)&&(t=!0),t}function w(e){return e&&N(e)?function(e){var t;if(N(e)){var r=Object.keys(e);e.data&&e.filter&&2===r.length?t=R(e.data)||N(e.data)?i(g.local):i(g.remote):e.trigger&&e.eventData&&2===r.length?t=i(m.emit):e.register&&e.actionFunc&&2===r.length?t=i(m.on):e.quantity&&D(e.quantity)&&2===r.length?t=i(y.quantity):(t=i(y["empty-object"]),Object.keys(e).map((function(r){var i=e[r];t.properties[r]=w(i)})))}return t}(e):e&&R(e)?function(e){var t;if(e&&R(e))if(S(e)){(t=i(y.select)).items.enum=e;var r=t.items.enumextra.length,n=e.length;if(n>r)for(var a=r,o=n;a<o;a++)t.items.enumextra.push("选项"+e(a))}else{t=i(y["empty-array"]);var u=w(e[0]);t.items.properties=u.properties}return t}(e):function(e){var t="";if(j(e))t=i(y.boolean);else if(v(e))t=i(y.number);else if(O(e))t=i(y.url);else if(h(e))t=i(y.date);else if(q(e))t=i(y["date-time"]);else if(x(e))t=i(y.time);else if(F(e))t=i(y.color);else try{t=v(JSON.parse(e))?i(y.input):i(y.json)}catch(r){t=e&&e.length>30?i(y.textarea):i(y.input)}return t}(e)}function T(e){var t=e&&e.format;return t||(t=e&&e.type?e.type:"input"),t}function J(e){var t=!0;if(!e)return t;var r=T(e);return("object"===r&&e.properties&&e.propertyOrder&&e.propertyOrder.length>0||"array"===r&&e.items&&e.items.properties&&e.items.propertyOrder&&e.items.propertyOrder.length>0||e.type&&"array"!==e.type&&"object"!==e.type||e.format)&&(t=!1),t}function P(e){var t=!0;if(e&&("object"===T(e)&&e.properties&&e.propertyOrder&&e.propertyOrder.length>0)){var r=e.properties.func||{},i=e.properties.style||{},n=e.properties.data||{};(r.propertyOrder&&r.propertyOrder.length>0||i.propertyOrder&&i.propertyOrder.length>0||n.propertyOrder&&n.propertyOrder.length>0)&&(t=!1)}return t}function $(e){var t=!1;e&&("object"===T(e)&&e.properties&&e.propertyOrder&&e.properties.func&&e.properties.style&&e.properties.data&&(t=!0));return t}function _(e){var t=!1,r=e.lastUpdateTime,i=new Date("2020-07-29T07:30:00.691Z").getTime();return r&&new Date(r).getTime()>=i&&(t=!0),t}function B(e){var t=!1;return"object"!==e&&"func"!==e&&"style"!==e&&"data"!==e&&"widgets"!==e&&"func-schema"!==e&&"style-schema"!==e&&"data-schema"!==e&&"event-schema"!==e&&"widgets-schema"!==e||(t=!0),t}function C(e){var t=!1;return"func"!==e&&"style"!==e&&"data"!==e&&"props"!==e&&"event-schema"!==e&&"widgets"!==e||(t=!0),t}function I(e){var t=!0;return"object"===(e.type||T(e))&&e.propertyOrder&&e.properties?e.propertyOrder.map((function(r){var i=e.properties[r];"object"===(e.type||T(i))&&i.propertyOrder&&i.properties||(t=!1)})):t=!1,t}function L(e,t){var r=e.split("-"),i=t.split("-");return r.pop(),i.pop(),r.join("-")===i.join("-")}function U(e,t){for(var r=e.split("-"),i=t.split("-"),n="before",a=0,o=(r.length>i.length?i:r).length;a<o;a+=1){Number(r[a])>Number(i[a])&&(n="after")}return n}function A(e){var t=e.split("-");return t.pop(),t.join("-")}function K(e){var t=e.split("-"),r=t.pop(),i=Number(r)+1;return t.push(""+i),t.join("-")}function E(e){var t=e.split("-"),r=t.pop();return[t.join("-"),r]}function M(e){var t=e.split("-"),r=t.pop();return t.push(Number(r)-1),t.join("-")}function W(e){var t=e.split("-"),r=t.pop();return t.push(Number(r)+1),t.join("-")}function z(e,t){var r=t||{};if(N(e)&&"object"===e.type&&e.properties){(e.propertyOrder?e.propertyOrder:Object.keys(e.properties)).map((function(t){var i=e.properties[t];r=H(i,r)}))}return r}function H(e,t){var r=!t,i=t||{};if(e&&"{}"!==JSON.stringify(e)){var n=T(e);"object"===n||"func"===n||"style"===n||"data"===n?(!r&&i.object?i.object+=1:r||(i.object=1),i=z(e,i)):"array"===n?(!r&&i.array?i.array+=1:r||(i.array=1),i=z(e=e.items,i)):!r&&i[n]?i[n]+=1:r||(i[n]=1)}return i}function Q(e){var t=i(e);if(!t.title&&t.description&&(t.title=t.description),t.format||(t.format=T(t)),"quantity"!==t.format&&"array"!==t.format&&"datasource"!==t.format&&"event"!==t.format&&"object"!==t.format&&"radio"!==t.format&&"select"!==t.format||!a(t.default)||delete t.default,"radio"===t.format&&(t.type="string",t.enum&&t.enumextra&&(t.items={type:"string",enum:i(t.enum),enumextra:i(t.enumextra)},delete t.enum,delete t.enumextra)),"quantity"===t.format){var r=t.properties,n=i(y.quantity);if(r.quantity&&N(r.quantity)&&r.quantity.default){var o=r.quantity.default;n.properties.quantity.default="percent"===o?"%":o}t=n}if("datasource"===t.format){var u=t.properties,p=u.type&&u.type.default,d=u.data&&u.data.default,l=u.filter&&u.filter.default;"local"===p?(t=i(g.local)).properties.data.default=d?i(d):"{}":(t=i(g.remote)).properties.data.default=d?i(d):"http://xxx",t.properties.filter.default=l?i(l):"() => {}"}if("event"===t.format){var s=t.properties,f=s.type&&s.type.default;if("in"===f||"on"===f){var c=s.filter&&s.filter.default||"() => {}";t=i(m.on),s.actionFunc&&N(s.actionFunc)&&(t.properties.actionFunc.default=s.actionFunc.default||i(c))}else{var O=s.filter&&s.filter.default||"{}";t=i(m.emit),s.eventData&&N(s.eventData)&&(t.properties.eventData.default=s.eventData.default||i(O))}}return t.properties&&(t.required=Object.keys(t.properties),t.propertyOrder||(t.propertyOrder=t.required),t.propertyOrder.map((function(e){t.properties[e]=Q(t.properties[e])}))),t.items&&(t.items=Q(t.items)),t}function Z(e,t){var r="",i=t;a(i)&&a(e.default)&&typeof i!=typeof e.default&&(i=void 0);var n=a(i)?i:e.default;switch(e.type){case"string":if("typeSelect"===e.format)r=e.default;else if("color"===e.format)"#fff"!==n&&"#FFF"!==n||(n="#ffffff"),r=n||"#ffffff";else if("json"===e.format||"widget"===e.format){var o="";if(N(t)||R(t))o=t;else if(k(t)||""===t)o={};else try{o=JSON.parse(t)}catch(e){o={}}r=o}else r=a(n)?n:"";break;case"boolean":r=!!a(n)&&n;break;case"number":r=a(n)?n:1;break;default:r=a(n)?n:""}return r}function G(e,t){var r={},n=T(e);if(N(e)&&"object"===e.type){var o=e,u=t;a(u)&&a(o.default)&&typeof u!=typeof o.default&&(u=void 0);var p=a(u)?u:o.default;if("dynamic-data"===n)r=i(c),p&&N(p)&&"{}"!==JSON.stringify(p)&&(r=Object.assign(r,p));else if("datasource"===n)o.properties&&o.properties.type&&o.properties.type.default&&"local"===o.properties.type.default?(r={data:"{}",filter:"() => {}"},p&&p.data&&(r.data=p.data),p&&p.filter&&(r.filter=p.filter),"http://xxx"===r.data&&(r.data="{}")):(r={data:"http://xxx",filter:"() => {}"},p&&p.data&&(r.data=p.data),p&&p.filter&&(r.filter=p.filter),"{}"===r.data&&(r.data="http://xxx"));else if("event"===n)o.properties&&o.properties.type&&o.properties.type.default&&"emit"===o.properties.type.default?p&&"out"===p.type?r={trigger:p&&p.filter||"eventName",eventData:"{}"}:(r={trigger:"eventName",eventData:"{}"},p&&p.trigger&&(r.trigger=p.trigger),p&&p.eventData&&(r.eventData=p.eventData)):p&&"in"===p.type?r={register:"eventName",actionFunc:p&&p.filter||"() => {}"}:(r={register:"eventName",actionFunc:"() => {}"},p&&p.register&&(r.register=p.register),p&&p.actionFunc&&(r.actionFunc=p.actionFunc));else if(e.properties){(e.propertyOrder?e.propertyOrder:Object.keys(e.properties)).map((function(i){var n=e.properties[i],a=t&&t[i];switch(n.type){case"array":r[i]=V(n,a);break;case"object":r[i]=G(n,a);break;default:r[i]=Z(n,a)}}))}}return r}function V(e,t){var r=[];if(e&&"array"===e.type){var i=t;a(i)&&a(e.default)&&typeof i!=typeof e.default&&(i=void 0);var n=a(i)?i:e.default;if("array"===e.format)if(R(n))n.map((function(t){r.push(G(e.items,t))}));else{var o=G(e.items,n);r.push(o)}else r=a(n)?n:[]}return r}function X(e,t){return"object"===e.type?G(e,t):"array"===e.type?V(e,t):Z(e,t)}var Y=y;function ee(e,t){var r=t||[];if(e&&"{}"!==JSON.stringify(e))if(N(e))if(e.type&&"remote"===e.type&&e.config&&N(e.config)&&e.config.dataName&&a(e.localFilter)&&a(e.data)){var i=e.config.body;if(i&&!N(i))try{i=JSON.parse(i)}catch(e){i={}}r.push({id:e.config.id,dataName:e.config.dataName,body:i})}else{Object.keys(e).map((function(t){ee(e[t],r)}))}else R(e)&&e.map((function(e){ee(e,r)}));return r}function te(e,t){var r=t||"data";return e.split("-").map((function(e){r=/^\d+$/.test(e)?r+"["+e+"]":r+"."+e})),r}function re(e,t){var r=[];N(e)?Object.keys(e).map((function(i){var n=e[i],a=t?t+"-"+i:i;N(n)||R(n)?r.push({title:i,value:a,key:a,children:re(n,a)}):r.push({title:i,value:a,key:a})})):R(e)&&e.map((function(e,i){var n=i.toString(),a=t?t+"-"+i:n;N(e)||R(e)?r.push({title:n,value:a,key:a,children:re(e,a)}):r.push({title:n,value:a,key:a})}));return r}function ie(e){var t=e.split("-");return t.pop(),t.join("-")}function ne(e){var t=e.split("-"),r=t.pop();return[t.join("-"),r]}var ae=["key","enum","enumextra","items","input","boolean","number","color","url","textarea","text-editor","radio","single-select","select","date","date-time","time","json","codearea","htmlarea","quantity","box-style","dynamic-data","datasource","event","array","object","widget","widgets","widgetUUID","embedWidgetList"]}])}));
|