@earthranger/react-native-jsonforms-formatter
Version:
Converts JTD into JSON Schema
1 lines • 14.5 kB
JavaScript
(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{void 0!==f&&f.toStringTag&&Object.defineProperty(e,f.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{generateUISchema:()=>Ge,v1:()=>r,validateJSONSchema:()=>st});var r={};e.r(r),e.d(r,{generateUISchema:()=>Ge,validateJSONSchema:()=>st});var n=Object.prototype;const i=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)},o=(a=Object.keys,c=Object,function(e){return a(c(e))});var a,c,u=Object.prototype.hasOwnProperty;const s="object"==typeof global&&global&&global.Object===Object&&global;var l="object"==typeof self&&self&&self.Object===Object&&self;const p=s||l||Function("return this")();var f=p.Symbol;const m=f;var d=Object.prototype,h=d.hasOwnProperty,v=d.toString,y=m?m.toStringTag:void 0;var b=Object.prototype.toString;var j=m?m.toStringTag:void 0;const g=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":j&&j in Object(e)?function(e){var t=h.call(e,y),r=e[y];try{e[y]=void 0;var n=!0}catch(e){}var i=v.call(e);return n&&(t?e[y]=r:delete e[y]),i}(e):function(e){return b.call(e)}(e)},O=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},k=function(e){if(!O(e))return!1;var t=g(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},w=p["__core-js_shared__"];var S,x=(S=/[^.]+$/.exec(w&&w.keys&&w.keys.IE_PROTO||""))?"Symbol(src)_1."+S:"";var A=Function.prototype.toString;const M=function(e){if(null!=e){try{return A.call(e)}catch(e){}try{return e+""}catch(e){}}return""};var _=/^\[object .+?Constructor\]$/,E=Function.prototype,q=Object.prototype,N=E.toString,D=q.hasOwnProperty,F=RegExp("^"+N.call(D).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const P=function(e){return!(!O(e)||function(e){return!!x&&x in e}(e))&&(k(e)?F:_).test(M(e))},T=function(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return P(r)?r:void 0},C=T(p,"DataView"),H=T(p,"Map"),I=T(p,"Promise"),$=T(p,"Set"),R=T(p,"WeakMap");var U="[object Map]",B="[object Promise]",L="[object Set]",J="[object WeakMap]",V="[object DataView]",W=M(C),z=M(H),G=M(I),K=M($),Q=M(R),X=g;(C&&X(new C(new ArrayBuffer(1)))!=V||H&&X(new H)!=U||I&&X(I.resolve())!=B||$&&X(new $)!=L||R&&X(new R)!=J)&&(X=function(e){var t=g(e),r="[object Object]"==t?e.constructor:void 0,n=r?M(r):"";if(n)switch(n){case W:return V;case z:return U;case G:return B;case K:return L;case Q:return J}return t});const Y=X,Z=function(e){return null!=e&&"object"==typeof e},ee=function(e){return Z(e)&&"[object Arguments]"==g(e)};var te=Object.prototype,re=te.hasOwnProperty,ne=te.propertyIsEnumerable;const ie=ee(function(){return arguments}())?ee:function(e){return Z(e)&&re.call(e,"callee")&&!ne.call(e,"callee")},oe=Array.isArray,ae=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991};var ce="object"==typeof exports&&exports&&!exports.nodeType&&exports,ue=ce&&"object"==typeof module&&module&&!module.nodeType&&module,se=ue&&ue.exports===ce?p.Buffer:void 0;const le=(se?se.isBuffer:void 0)||function(){return!1};var pe={};pe["[object Float32Array]"]=pe["[object Float64Array]"]=pe["[object Int8Array]"]=pe["[object Int16Array]"]=pe["[object Int32Array]"]=pe["[object Uint8Array]"]=pe["[object Uint8ClampedArray]"]=pe["[object Uint16Array]"]=pe["[object Uint32Array]"]=!0,pe["[object Arguments]"]=pe["[object Array]"]=pe["[object ArrayBuffer]"]=pe["[object Boolean]"]=pe["[object DataView]"]=pe["[object Date]"]=pe["[object Error]"]=pe["[object Function]"]=pe["[object Map]"]=pe["[object Number]"]=pe["[object Object]"]=pe["[object RegExp]"]=pe["[object Set]"]=pe["[object String]"]=pe["[object WeakMap]"]=!1;var fe="object"==typeof exports&&exports&&!exports.nodeType&&exports,me=fe&&"object"==typeof module&&module&&!module.nodeType&&module,de=me&&me.exports===fe&&s.process,he=function(){try{return me&&me.require&&me.require("util").types||de&&de.binding&&de.binding("util")}catch(e){}}(),ve=he&&he.isTypedArray;const ye=ve?function(e){return function(t){return e(t)}}(ve):function(e){return Z(e)&&ae(e.length)&&!!pe[g(e)]};var be=Object.prototype.hasOwnProperty;const je=function(e){if(null==e)return!0;if(function(e){return null!=e&&ae(e.length)&&!k(e)}(e)&&(oe(e)||"string"==typeof e||"function"==typeof e.splice||le(e)||ye(e)||ie(e)))return!e.length;var t=Y(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(i(e))return!function(e){if(!i(e))return o(e);var t=[];for(var r in Object(e))u.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e).length;for(var r in e)if(be.call(e,r))return!1;return!0};var ge,Oe,ke,we=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))},Se="fieldset",xe="checkboxes",Ae="string";!function(e){e.DateTime="date-time",e.Date="date"}(ge||(ge={})),function(e){e.DateTime="date-time",e.MultiSelect="multiselect",e.RepeatableField="repeatable-field",e.FormLabel="form-label"}(Oe||(Oe={})),function(e){e.Header="header"}(ke||(ke={}));var Me,_e=function(e){var t=e.toLowerCase().replace(/[\s\\/\\%]/gi,"_");return"fieldset__title_".concat(t)},Ee=function(e){return new Set(e).size!==e.length},qe=function(e){return Te(e)&&e.type===xe},Ne=function(e){return null==e||0===e.trim().length},De=function(e){return Te(e)&&e.type===Se&&!je(e.title)},Fe=function(e){return Te(e)&&e.type===Se&&e.items.length>0},Pe=function(e){var t,r;return e.type===Ae&&(null===(t=e.enum)||void 0===t?void 0:t.length)>0&&(null===(r=e.inactive_enum)||void 0===r?void 0:r.length)>0},Te=function(e){return e instanceof Object},Ce=function(e){return!je(e.key)},He=function(e){return 0!==e.length&&void 0!==e.find((function(e){return Te(e)&&e&&(e.type||"")===Se}))},Ie=function(e){return typeof e===Ae},$e=function(e){if("number"==typeof e)return e;if("string"!=typeof e)return e;var t=e.trim();if(""===t)return e;if(/^-?\d+,\d+$/.test(t)){var r=t.replace(",","."),n=parseFloat(r);if(!isNaN(n))return r}return e},Re=function(e,t,r){void 0===r&&(r=[]),"object"==typeof e&&null!==e&&(t(e,r),Array.isArray(e)?e.forEach((function(e,n){return Re(e,t,we(we([],r,!0),[n.toString()],!1))})):Object.entries(e).forEach((function(e){var n=e[0],i=e[1];return Re(i,t,we(we([],r,!0),[n],!1))})))},Ue=function(e){return e.includes(xe)},Be=function(e){return e.includes("inactive_enum")},Le=function(e){return e.includes("inactive_titleMap")},Je=function(e){return e.includes("enum")},Ve=function(){return Ve=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},Ve.apply(this,arguments)};!function(e){e.Number="number",e.String="string",e.Array="array"}(Me||(Me={}));var We=function(e,t,r){return void 0===r&&(r={}),Ve({type:"Control",scope:"#/properties/".concat(e),label:t},r&&{options:r})},ze=function(e,t,r){void 0===r&&(r=void 0);try{var n=r||t.definition.find((function(t){return t.key===e}));if("date-time-picker json-schema"===n.fieldHtmlClass||n&&"datetime"===(n.type||""))return"date"===t.schema.properties[e].format?ge.Date:ge.DateTime;if("date-picker json-schema"===n.fieldHtmlClass||"date"===t.schema.properties[e].format)return ge.Date}catch(e){return}},Ge=function(e){var t=[];return He(e.definition)?t.push.apply(t,Ke(e)):Object.keys(e.schema.properties).forEach((function(r){var n=Xe(r,e);je(n)||t.push(n)})),{type:"Category",elements:t}},Ke=function(e){var t=[];return e.definition.forEach((function(r){if("string"==typeof r)t.push(We(r,e.schema.properties[r].title||""));else if(r instanceof Object)switch(!0){case function(e){return Te(e)&&e.type===Se&&0===e.items.length&&!je(e.title)}(r):t.push(We(_e(r.title),r.title,Qe(Oe.FormLabel)));break;case Fe(r):r.title&&t.push(We(_e(r.title),r.title,Qe(Oe.FormLabel))),r.items.forEach((function(r){if(r instanceof Object){var n=Xe(r.key||"",e,r);n&&t.push(n)}else if("string"==typeof r){var i=Xe(r,e);i&&t.push(i)}}));break;case Ce(r):var n=Xe(r.key,e);n&&t.push(n)}})),t},Qe=function(e,t){if(void 0===e&&(e=""),void 0===t&&(t=""),je(e))return{};var r={format:e};return je(t)||(r.display=t),r},Xe=function(e,t,r){void 0===r&&(r=void 0);var n={};switch(t.schema.properties[e].type){case Me.Number:return We(e,t.schema.properties[e].title||"");case Me.String:var i=ze(e,t,r);return Ne(i)?t.schema.properties[e].display&&t.schema.properties[e].display===ke.Header&&(n=Qe(Oe.FormLabel)):n=Qe(Oe.DateTime,i),We(e,t.schema.properties[e].title||"",n);case Me.Array:return t.schema.properties[e].items.enum&&t.schema.properties[e].items.enumNames?n=Qe(Oe.MultiSelect):t.schema.properties[e].items&&(n=Qe(Oe.RepeatableField)),We(e,t.schema.properties[e].title||"",n);case void 0:var o=function(e,t){try{var r=t.definition.find((function(t){return t.key===e}));return"json-schema-checkbox-wrapper"===r.fieldHtmlClass||"checkboxes"===r.type?r:void 0}catch(e){return}}(e,t);return o?(n=Qe(Oe.MultiSelect),We(e,o.title||"",n)):(i=ze(e,t,r),Ne(i)?void 0:(n=Qe(Oe.DateTime,i),We(e,t.schema.properties[e].title||"",n)))}},Ye=function(){return Ye=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},Ye.apply(this,arguments)},Ze=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))},et=/[^\w\n\s_"](?=[^:\n\s{}[]]*:[\t\n\s]*(\{|\[)+)/g,tt=/"minimum"(?:[^\\"]|\\\\|\\")*"\d+\.*\d*"/g,rt=/"maximum"(?:[^\\"]|\\\\|\\")*"\d+\.*\d*"/g,nt=/"(?=[^"]*(?:"[^"]*)?$)/g,it=function(e){return{type:"string",readOnly:!0,isHidden:!1,display:ke.Header,title:e}},ot=function(e){return(null==e?void 0:e.isHidden)||!1},at=function(e){return e.enum.filter((function(t){return!e.inactive_enum.includes(t)}))},ct=function(e){return e.titleMap.filter((function(t){return!e.inactive_titleMap.includes(t.value)}))},ut=function(e,t,r,n){var i,o,a,c,u=e.hasCheckboxes,s=e.hasDisabledChoices;if(Ie(t)&&r.schema.properties[t])r.schema.properties[t].isHidden=ot(r.schema.properties[t]);else{if((Te(t)||Ce(t))&&t.key&&r.schema.properties[t.key]&&(r.schema.properties[t.key].isHidden=ot(r.schema.properties[t.key])),s&&function(e){var t,r;return Te(e)&&e.type===xe&&(null===(t=e.inactive_titleMap)||void 0===t?void 0:t.length)>0&&(null===(r=e.titleMap)||void 0===r?void 0:r.length)>0}(t))if(n){var l=r.definition.indexOf(n),p=r.definition[l].items.indexOf(t);r.definition[l].items[p].titleMap=ct(t)}else r.definition[r.definition.indexOf(t)].titleMap=ct(t);u&&qe(t)&&(r.schema.properties[t.key]=(i=t,o=r.schema.properties[t.key].title||"",a=r.schema.properties[t.key].required||!1,c=r.schema.properties[t.key].default||!1,Ye(Ye(Ye({type:"array",uniqueItems:!0,isHidden:!1},a&&{required:a}),{title:o||i.title,items:{enum:i.titleMap.map((function(e){return e.value})),enumNames:i.titleMap.map((function(e){return e.name}))}}),c&&{default:c})))}},st=function(e){var t;e=function(e){if(null!==e.match(et))throw Error("Special characters not supported in JSON Schema");return(e=(e=(e=(e=(e=e.replace(/([“”])/g,'"')).replace(new RegExp('\\"enum\\"\\n*\\s*\\:\\n*\\s*\\[\\n*\\s*\\]',"g"),'"enum": ["0"]')).replace(new RegExp('\\"enumNames\\"\\n*\\s*\\:\\n*\\s*\\{\\n*\\s*\\}',"g"),'"enumNames": {"0":"No Options"}')).replace(new RegExp('\\"titleMap\\"\\n*\\s*\\:\\n*\\s*\\[\\n*\\s*\\]',"g"),'"titleMap": [{"value":"no_option", "name":"No Option"}]')).replace(tt,(function(e){return e.replace(nt,"")}))).replace(rt,(function(e){return e.replace(nt,"")}))}(e);var r=JSON.parse(e);delete r.schema.$schema,delete r.schema.id,function(e){if(e.schema.definition){var t=e.schema.definition;delete e.schema.definition,e.definition=t}}(r);var n=function(e){return{hasCheckboxes:Ue(e),hasInactiveChoices:Be(e),hasDisabledChoices:Le(e),hasEnums:Je(e)}}(e);if(function(e){Re(e,(function(e){"object"===e.type&&e.properties&&Object.entries(e.properties).forEach((function(e){var t=e[1];"number"===t.type&&(void 0!==t.default&&(t.default=$e(t.default)),void 0!==t.minimum&&(t.minimum=$e(t.minimum)),void 0!==t.maximum&&(t.maximum=$e(t.maximum)))}))}))}(r.schema),function(e,t){var r=e.hasInactiveChoices,n=e.hasEnums;if(r)for(var i=0,o=Object.keys(t.schema.properties);i<o.length;i++){var a=o[i],c=t.schema.properties[a];Pe(c)&&(t.schema.properties[a].enum=at(c),je(t.schema.properties[a].enum)&&(t.schema.properties[a].enum=["0"],t.schema.properties[a].enumNames={0:"No Options"}))}if(n)for(var u=0,s=Object.keys(t.schema.properties);u<s.length;u++)if(a=s[u],!je(t.schema.properties[a].enum)&&Ee(t.schema.properties[a].enum))throw new Error("Duplicated enum items")}(n,r),function(e,t){var r;if(He(t.definition))!function(e,t){for(var r=0,n=t.definition;r<n.length;r++){var i=n[r];switch(!0){case Ie(i):break;case De(i):var o=_e(i.title);t.schema.properties[o]=it(i.title);break;case Fe(i):for(var a=0,c=i.items;a<c.length;a++){var u=c[a];ut(e,u,t,i)}break;case qe(i):ut(e,i,t)}}}(e,t);else if((null===(r=t.definition)||void 0===r?void 0:r.length)>0)for(var n=0,i=t.definition;n<i.length;n++){var o=i[n];ut(e,o,t)}}(n,r),e.includes("helpvalue")&&function(e){for(var t={},r=0,n=0,i=e.definition;n<i.length;n++){var o=i[n];if(Ie(o))t[o]=e.schema.properties[o],delete e.schema.properties[o];else if(Te(o))if(o.helpvalue){var a="help_value_".concat(r);r+=1,t[a]=it((o.helpvalue||"").replace(/(<.+?>)/g,""))}else o.key&&(t[o.key]=e.schema.properties[o.key],delete e.schema.properties[o.key])}e.schema.properties=Object.assign(t,e.schema.properties)}(r),e.includes("required")){if((null===(t=r.schema.required)||void 0===t?void 0:t.length)>0&&Ee(r.schema.required))throw new Error("Duplicated required properties");r.schema=function(e){var t=Array.isArray(e.required)?Ze([],e.required,!0):null;return Re(e,(function(e,r){if("object"===e.type&&e.properties){var n=[];if(Object.entries(e.properties).forEach((function(e){var t=e[0],r=e[1];(function(e){return"true"===e.required||e.required>0})(r)&&(n.push(t),delete r.required)})),je(n))r.length>0&&e.required&&delete e.required;else if(0===r.length&&t){var i=Ze(Ze([],t,!0),n,!0);e.required=Array.from(new Set(i))}else e.required=n}})),e}(r.schema)}return r};module.exports=t})();