angular2-json-schema-form
Version:
Angular JSON Schema Form builder
1 lines • 249 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("lodash"),require("@angular/forms"),require("ajv"),require("@angular/platform-browser"),require("@angular/common"),require("@angular/flex-layout"),require("@angular/material")):"function"==typeof define&&define.amd?define(["exports","@angular/core","lodash","@angular/forms","ajv","@angular/platform-browser","@angular/common","@angular/flex-layout","@angular/material"],e):e(t.angular2JsonSchemaForm={},t.ng.core,t._,t.ng.forms,t.Ajv,t.ng.platformBrowser,t.ng.common,t.ng.flexLayout,t.ng.material)}(this,function(t,e,o,n,i,r,s,a,l){"use strict";function u(t,e){return e={exports:{}},t(e,e.exports),e.exports}function p(){try{return St.apply(this,arguments)}catch(t){return _t.errorObject.e=t,_t.errorObject}}function d(t){return t.reduce(function(t,e){return t.concat(e instanceof Ht.UnsubscriptionError?e.errors:e)},[])}function c(t){return t?1===t.length?t[0]:function(e){return t.reduce(function(t,e){return e(t)},e)}:Qt.noop}function f(t){var e=t.value,o=t.subscriber;o.closed||(o.next(e),o.complete())}function m(t){var e=t.err,o=t.subscriber;o.closed||o.error(e)}function h(t,e,o){return void 0===o&&(o=!1),e.map(function(e){return e(t,o)})}function y(t,e,o){return void 0===o&&(o=!1),e.map(function(e){return e(t,o)})}function g(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var o={},n=0,i=t;n<i.length;n++){var r=i[n];if(F(r))for(var s=0,a=Object.keys(r);s<a.length;s++){var l=a[s],u=r[l],p=o[l];o[l]=v(p)?"not"===l&&j(p,"strict")&&j(u,"strict")?q(p,u):"object"===P(p)&&"object"===P(u)?g(p,u):u:u}}return o}function b(t){var e=g.apply(void 0,t);return I(e)?null:e}function v(t){return void 0!==t&&null!==t}function x(t){return void 0!==t&&null!==t&&""!==t}function I(t){return k(t)?!t.length:F(t)?!Object.keys(t).length:void 0===t||null===t||""===t}function w(t){return"string"==typeof t}function C(t,e){return void 0===e&&(e=!1),(!e||"number"==typeof t)&&(!isNaN(t)&&t!==t/0)}function O(t,e){return void 0===e&&(e=!1),(!e||"number"==typeof t)&&(!isNaN(t)&&t!==t/0&&t%1==0)}function j(t,e){return void 0===e&&(e=null),"strict"===e?!0===t||!1===t:!0===e?!0===t||1===t||"true"===t||"1"===t:!1===e?!1===t||0===t||"false"===t||"0"===t:!0===t||1===t||"true"===t||"1"===t||!1===t||0===t||"false"===t||"0"===t}function F(t){return null!==t&&"object"==typeof t&&"[object Object]"===Object.prototype.toString.call(t)}function k(t){return Array.isArray(t)||"[object Array]"===Object.prototype.toString.call(t)}function N(t){return"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t)}function M(t){return"object"==typeof t&&"[object Map]"===Object.prototype.toString.call(t)}function D(t){return"object"==typeof t&&"[object Set]"===Object.prototype.toString.call(t)}function P(t,e){return void 0===e&&(e=!1),v(t)?k(t)?"array":F(t)?"object":j(t,"strict")?"boolean":O(t,e)?"integer":C(t,e)?"number":w(t)||!e&&N(t)?"string":null:"null"}function L(t,e){switch(e){case"string":return w(t)||N(t);case"number":return C(t);case"integer":return O(t);case"boolean":return j(t);case"null":return!x(t);default:return console.error('isType error: "'+e+'" is not a recognized type.'),null}}function S(t){return w(t)||C(t)||j(t,"strict")||null===t}function A(t,e,o){if(void 0===o&&(o=!0),!v(t))return null;if(w(e)&&(e=[e]),o&&R("integer",e)){if(O(t,"strict"))return t;if(O(t))return parseInt(t,10)}if(R("number",e)||!o&&R("integer",e)){if(C(t,"strict"))return t;if(C(t))return parseFloat(t)}if(R("string",e)){if(w(t))return t;if(N(t))return t.toISOString().slice(0,10);if(C(t))return t.toString()}if(N(t)&&(R("integer",e)||R("number",e)))return t.getTime();if(R("boolean",e)){if(j(t,!0))return!0;if(j(t,!1))return!1}return null}function E(t,e){if(k(e)||(e=[e]),e.includes("null")&&!x(t))return null;if(e.includes("boolean")&&!j(t,"strict"))return t;if(e.includes("integer")&&null!==(o=A(t,"integer")))return+o;if(e.includes("number")&&null!==(o=A(t,"number")))return+o;if((w(t)||C(t,"strict"))&&e.includes("string"))return A(t,"string");if(e.includes("boolean")&&j(t))return A(t,"boolean");if(e.includes("string")){if(null===t)return"";if(null!==(o=A(t,"string")))return o}if(e.includes("number")||e.includes("integer")){if(!0===t)return 1;if(!1===t||null===t||""===t)return 0}if(e.includes("number")&&(o=parseFloat(t)))return o;if(e.includes("integer")){var o=parseInt(t,10);if(o)return o}return e.includes("boolean")?!!t:!e.includes("number")&&!e.includes("integer")||e.includes("null")?void 0:0}function T(t){return!!t&&"function"==typeof t.then}function V(t){return!!t&&"function"==typeof t.subscribe}function _(t){var e=T(t)?ne(t):t;return V(e)?e:(console.error("toObservable error: Expected validator to return Promise or Observable."),new te)}function R(t,e,o){return void 0===o&&(o=!1),!(!v(t)||!k(e))&&(k(t)?t[o?"every":"some"](function(t){return e.includes(t)}):e.includes(t))}function q(t,e){return!!t&&!e||!t&&!!e}function H(t,e){var o=function(t){return!D(t)&&!k(t)&&!w(t)};if(o(e))return t;o(t)&&(t="");var n=function(t){return D(t)?t:k(t)?new Set(t):new Set(t.split(" "))},i=n(t);return n(e).forEach(function(t){return i.add(t)}),D(t)?i:k(t)?Array.from(i):Array.from(i).join(" ")}function $(t,e){return void 0===e&&(e=!1),"object"!=typeof t||null===t?t:M(t)?new Map(t):D(t)?new Set(t):k(t)?t.slice():F(t)?re({},t):(e&&console.error("copy error: Object to copy must be a JavaScript object or value."),t)}function z(t,e,o,n,i){if(void 0===o&&(o=!1),void 0===n&&(n=t),void 0===i&&(i=!1),!I(t)){if((F(t)||k(t))&&"function"==typeof e)for(var r=0,s=Object.keys(t);r<s.length;r++){var a=s[r],l=t[a];"bottom-up"===o&&(F(l)||k(l))&&z(l,e,o,n),e(l,a,t,n),"top-down"===o&&(F(l)||k(l))&&z(l,e,o,n)}i&&("function"!=typeof e&&(console.error("forEach error: Iterator must be a function."),console.error("function",e)),F(t)||k(t)||(console.error("forEach error: Input object must be an object or array."),console.error("object",t)))}}function W(t,e,o){if(void 0===o&&(o=!1),x(t)){if((F(t)||k(t))&&"function"!=typeof e){for(var n=k(t)?[]:{},i=0,r=Object.keys(t);i<r.length;i++){var s=r[i];n[s]=e(t[s],s,t)}return n}o&&("function"!=typeof e&&(console.error("forEachCopy error: Iterator must be a function."),console.error("function",e)),F(t)||k(t)||(console.error("forEachCopy error: Input object must be an object or array."),console.error("object",t)))}}function J(t,e){if(!(t&&["number","string","symbol"].includes(typeof e)&&(F(t)||k(t)||M(t)||D(t))))return!1;if(M(t)||D(t))return t.has(e);if("number"==typeof e){if(k(t))return t[e];e+=""}return t.hasOwnProperty(e)}function B(t,e,o,n,i){if(void 0===o&&(o=[]),void 0===n&&(n=function(t){return t}),void 0===i&&(i=function(t){return t}),!F(e))return t;F(t)||(t={});for(var r=0,s=Object.keys(e);r<s.length;r++){var a=s[r];!R(a,o)&&v(e[a])&&(t[n(a)]=i(e[a]))}return t}function G(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var o=[],n=0,i=t;n<i.length;n++){var r=i[n];o.includes(r)||o.push(r)}return o}function U(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var o=null,n=0,i=t;n<i.length;n++){var r=function(t){if(w(t)&&(t=[t]),!(o=null===o?t.slice():o.filter(function(e){return t.includes(e)})).length)return{value:[]}}(i[n]);if("object"==typeof r)return r.value}return o}function Y(t){return t&&Z(t.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/_/g," "))}function Z(t,e){if(!w(t))return t;var o=["a","an","and","as","at","but","by","en","for","if","in","nor","of","on","or","per","the","to","v","v.","vs","vs.","via"];w(e)&&(e=e.split("|")),k(e)&&(o=o.concat(e));var n=o.map(function(t){return t.toLowerCase()}),i=t===t.toUpperCase()||t===t.toLowerCase(),r="";return(t=t.trim()).replace(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g,function(e,s){if(i||-1===e.slice(1).search(/[A-Z]|\../)){var a=void 0,l=o[n.indexOf(e.toLowerCase())];return a=l?l===l.toLowerCase()&&(0===s||s+e.length===t.length||":"===r||-1!==t[s-1].search(/[^\s-]/)||"-"!==t[s-1]&&"-"===t[s+e.length])?l[0].toUpperCase()+l.slice(1):l:i?-1!==e.slice(1).search(/\../)?e.toLowerCase():e[0].toUpperCase()+e.slice(1).toLowerCase():e[0].toUpperCase()+e.slice(1),r=e.slice(-1),a}return e})}function K(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if((t=t.filter(function(t){return!I(t)})).some(function(t){return!F(t)}))return null;for(var n={},i=0,r=t;i<r.length;i++)for(var s=r[i],a=0,l=Object.keys(s);a<l.length;a++){var u=function(e){var i=n[e],r=s[e];if(!J(n,e)||o.isEqual(i,r))n[e]=r;else switch(e){case"allOf":if(!k(i)||!k(r))return{value:{allOf:t.slice()}};n.allOf=K.apply(void 0,i.concat(r));break;case"additionalItems":case"additionalProperties":case"contains":case"propertyNames":if(F(i)&&F(r))n[e]=K(i,r);else{if("additionalProperties"!==e||!1!==i&&!1!==r)return{value:{allOf:t.slice()}};n.combinedSchema=!1}break;case"anyOf":case"oneOf":case"enum":if(!k(i)||!k(r))return{value:{allOf:t.slice()}};if(n[e]=i.filter(function(t){return r.findIndex(function(e){return o.isEqual(t,e)})>-1}),!n[e].length)return{value:{allOf:t.slice()}};break;case"definitions":if(!F(i)||!F(r))return{value:{allOf:t.slice()}};for(var a=De({},i),l=0,u=Object.keys(r);l<u.length;l++){if(J(a,O=u[l])&&!o.isEqual(a[O],r[O]))return{value:{allOf:t.slice()}};a[O]=r[O]}n.definitions=a;break;case"dependencies":if(!F(i)||!F(r))return{value:{allOf:t.slice()}};for(var a=De({},i),p=0,d=Object.keys(r);p<d.length;p++)if(!J(a,O=d[p])||o.isEqual(a[O],r[O]))a[O]=r[O];else if(k(r[O])&&k(a[O]))a[O]=G.apply(void 0,a[O].concat(r[O]));else{if(!k(r[O])&&!F(r[O])||!k(a[O])&&!F(a[O]))return{value:{allOf:t.slice()}};var c=k(n.required)?n.required:[],f=k(a[O])?{required:G.apply(void 0,c.concat([a[O]]))}:a[O],m=k(r[O])?{required:G.apply(void 0,c.concat([r[O]]))}:r[O];a[O]=K(f,m)}n.dependencies=a;break;case"items":if(k(i)&&k(r)){if(n.items=i.filter(function(t){return r.findIndex(function(e){return o.isEqual(t,e)})>-1}),!n.items.length)return{value:{allOf:t.slice()}}}else if(F(i)&&F(r))n.items=K(i,r);else if(k(i)&&F(r))n.items=i.map(function(t){return K(t,r)});else{if(!F(i)||!k(r))return{value:{allOf:t.slice()}};n.items=r.map(function(t){return K(t,i)})}break;case"multipleOf":if(!C(i)||!C(r))return{value:{allOf:t.slice()}};var h=function(t,e){return e?h(e,t%e):t};n.multipleOf=function(t,e){return t*e/h(t,e)}(i,r);break;case"maximum":case"exclusiveMaximum":case"maxLength":case"maxItems":case"maxProperties":if(!C(i)||!C(r))return{value:{allOf:t.slice()}};n[e]=Math.min(i,r);break;case"minimum":case"exclusiveMinimum":case"minLength":case"minItems":case"minProperties":if(!C(i)||!C(r))return{value:{allOf:t.slice()}};n[e]=Math.max(i,r);break;case"not":if(!F(i)||!F(r))return{value:{allOf:t.slice()}};var y=[i,r].reduce(function(t,e){return k(e.anyOf)&&1===Object.keys(e).length?t.concat(e.anyOf):t.concat([e])},[]);n.not={anyOf:y};break;case"patternProperties":if(!F(i)||!F(r))return{value:{allOf:t.slice()}};for(var a=De({},i),g=0,b=Object.keys(r);g<b.length;g++)if(!J(a,O=b[g])||o.isEqual(a[O],r[O]))a[O]=r[O];else{if(!F(r[O])||!F(a[O]))return{value:{allOf:t.slice()}};a[O]=K(a[O],r[O])}n.patternProperties=a;break;case"properties":if(!F(i)||!F(r))return{value:{allOf:t.slice()}};var v=De({},i);J(r,"additionalProperties")&&Object.keys(i).filter(function(t){return!Object.keys(r).includes(t)}).forEach(function(t){!1===r.additionalProperties?delete v[t]:F(r.additionalProperties)&&(v[t]=K(v[t],r.additionalProperties))});for(var x=0,I=Object.keys(r);x<I.length;x++){var O=I[x];if(o.isEqual(v[O],r[O])||!J(v,O)&&!J(v,"additionalProperties"))v[O]=r[O];else if(!J(v,O)&&J(v,"additionalProperties"))F(v.additionalProperties)&&(v[O]=K(v.additionalProperties,r[O]));else{if(!F(r[O])||!F(v[O]))return{value:{allOf:t.slice()}};v[O]=K(v[O],r[O])}}n.properties=v;break;case"required":if(k(i)&&k(r))n.required=G.apply(void 0,i.concat(r));else{if("boolean"!=typeof r||"boolean"!=typeof i)return{value:{allOf:t.slice()}};n.required=!!i||!!r}break;case"$schema":case"$id":case"id":break;case"title":case"description":n[e]=r;break;case"type":if(!k(r)&&!w(r)||!k(i)&&!w(i))return{value:{allOf:t.slice()}};var j=U(i,r);if(!j.length)return{value:{allOf:t.slice()}};n.type=j.length>1?j:j[0];break;case"uniqueItems":n.uniqueItems=!!i||!!r;break;default:return{value:{allOf:t.slice()}}}}(l[a]);if("object"==typeof u)return u.value}return n}function Q(t){}function X(t,e,o){void 0===e&&(e=!1),void 0===o&&(o=!0);var n={},i=function(t){var e=P(t,"strict");return{integer:"number",null:"string"}[e]||e},r=function(t){return X(t,e,!1)};if(o&&(n.$schema="http://json-schema.org/draft-06/schema#"),n.type=i(t),"object"===n.type){n.properties={},e&&(n.required=[]);for(var s=0,a=Object.keys(t);s<a.length;s++){var l=a[s];n.properties[l]=r(t[l]),e&&n.required.push(l)}}else"array"===n.type&&(n.items=t.map(r),1===new Set(t.map(i)).size&&(n.items=n.items.reduce(function(t,e){return Pe({},t,e)},{})),e&&(n.minItems=1));return n}function tt(t,e,o){void 0===o&&(o="schema");var n=ae.parse(e);if(null===n)return console.error("getFromSchema error: Invalid JSON Pointer: "+e),null;var i=t,r=[],s=n.length;"parent"===o.slice(0,6)&&n.length--;for(var a=0;a<s;++a){var l=n[a],u=!1;if("object"!=typeof i)return console.error('getFromSchema error: Unable to find "'+l+'" key in schema.'),console.error(t),console.error(e),null;if("array"!==i.type||isNaN(l)&&"-"!==l?"object"===i.type&&(F(i.properties)&&J(i.properties,l)?(u=!0,i=i.properties[l],r.push("properties",l)):F(i.additionalProperties)?(u=!0,i=i.additionalProperties,r.push("additionalProperties")):!1!==i.additionalProperties&&(u=!0,i={},r.push("additionalProperties"))):(J(i,"items")&&(F(i.items)?(u=!0,i=i.items,r.push("items")):k(i.items)&&!isNaN(l)&&i.items.length>=+l&&(u=!0,i=i.items[+l],r.push("items",l))),!u&&F(i.additionalItems)?(u=!0,i=i.additionalItems,r.push("additionalItems")):!1!==i.additionalItems&&(u=!0,i={},r.push("additionalItems"))),!u)return console.error('getFromSchema error: Unable to find "'+l+'" item in schema.'),console.error(t),void console.error(e)}return"Pointer"===o.slice(-7)?r:i}function et(t,e,o){if(void 0===o&&(o=new Map),!t)return"";var n=ae.toGenericPointer(ae.compile(t),o);if(-1===n.indexOf("/"))return n;for(var i=!0;i;)i=!1,e.forEach(function(t,e){if(ae.isSubPointer(t,e))for(;ae.isSubPointer(e,n,!0);)n=ae.toGenericPointer(t+n.slice(e.length),o),i=!0});return n}function ot(t,e){void 0===e&&(e=null);var o=ae.getFirst([[t,"/x-schema-form/type"],[t,"/x-schema-form/widget/component"],[t,"/x-schema-form/widget"],[t,"/widget/component"],[t,"/widget"]]);if(w(o))return nt(o,t,e);var n=t.type;if(n){if(k(n)&&(n=R("object",n)&&J(t,"properties")?"object":R("array",n)&&J(t,"items")?"array":R("array",n)&&J(t,"additionalItems")?"array":R("string",n)?"string":R("number",n)?"number":R("integer",n)?"integer":R("boolean",n)?"boolean":"unknown"),"boolean"===n)return"checkbox";if("object"===n){if(J(t,"properties")||J(t,"additionalProperties"))return"section";if(J(t,"$ref"))return"$ref"}if("array"===n)return J(ae.getFirst([[t,"/items"],[t,"/additionalItems"]])||{},"enum")&&1!==t.maxItems?nt("checkboxes",t,e):"array";if("null"===n)return"none";if(ae.has(e,"/options/titleMap")||J(t,"enum")||st(t,null,!0))return"select";if("number"===n||"integer"===n)return("integer"===n||J(t,"multipleOf"))&&J(t,"maximum")&&J(t,"minimum")?"range":n;if("string"===n)return{color:"color",date:"date","date-time":"datetime-local",email:"email",uri:"url"}[t.format]||"text"}return J(t,"$ref")?"$ref":k(t.oneOf)||k(t.anyOf)?"one-of":(console.error("getInputType error: Unable to determine input type for "+n),console.error("schema",t),e&&console.error("layoutNode",e),"none")}function nt(t,e,o){return void 0===o&&(o=null),!w(t)||"checkbox"!==t.slice(0,8)&&"radio"!==t.slice(0,5)?t:!0===ae.getFirst([[o,"/inline"],[o,"/options/inline"],[e,"/inline"],[e,"/x-schema-form/inline"],[e,"/x-schema-form/options/inline"],[e,"/x-schema-form/widget/inline"],[e,"/x-schema-form/widget/component/inline"],[e,"/x-schema-form/widget/component/options/inline"],[e,"/widget/inline"],[e,"/widget/component/inline"],[e,"/widget/component/options/inline"]])?"radio"===t.slice(0,5)?"radios-inline":"checkboxes-inline":t}function it(t,e){if(!F(t))return console.error("isInputRequired error: Input schema must be an object."),!1;var o=ae.parse(e);if(k(o)){if(!o.length)return!0===t.required;var n=o.pop(),i=o[o.length-1];["properties","additionalProperties","patternProperties","items","additionalItems"].includes(i)&&o.pop();var r=ae.get(t,o)||{};if(k(r.required))return r.required.includes(n);if("array"===r.type)return J(r,"minItems")&&C(n)&&+r.minItems>+n}return!1}function rt(t,e,o){if(F(t)&&F(t.options)){var n={},i=function(t){return"ui:"===t.slice(0,3).toLowerCase()?t.slice(3):t};if(B(n,o.formOptions.defautWidgetOptions,[],i),[[ae.get(e,"/ui:widget/options"),[]],[ae.get(e,"/ui:widget"),[]],[e,["additionalProperties","additionalItems","properties","items","required","type","x-schema-form","$ref"]],[ae.get(e,"/x-schema-form/options"),[]],[ae.get(e,"/x-schema-form"),["items","options"]],[t,["_id","$ref","arrayItem","arrayItemType","dataPointer","dataType","items","key","name","options","recursiveReference","type","widget"]],[t.options,[]]].forEach(function(t){var e=t[0],o=t[1];return B(n,e,o,i)}),!J(n,"titleMap")){var r=null;(r=st(e,n.flatList))&&(n.titleMap=r),J(n,"titleMap")||J(n,"enum")||!J(e,"items")||(ae.has(e,"/items/titleMap")?n.titleMap=e.items.titleMap:ae.has(e,"/items/enum")?(n.enum=e.items.enum,!J(n,"enumNames")&&ae.has(e,"/items/enumNames")&&(n.enumNames=e.items.enumNames)):ae.has(e,"/items/oneOf")&&(r=st(e.items,n.flatList))&&(n.titleMap=r))}"integer"!==e.type||x(n.multipleOf)||(n.multipleOf=1),ae.has(n,"/autocomplete/source")?n.typeahead=n.autocomplete:ae.has(n,"/tagsinput/source")?n.typeahead=n.tagsinput:ae.has(n,"/tagsinput/typeahead/source")&&(n.typeahead=n.tagsinput.typeahead),t.options=n}}function st(t,e,o){void 0===t&&(t={}),void 0===e&&(e=null),void 0===o&&(o=!1);var n=null,i=t.oneOf||t.anyOf||null;if(k(i)&&i.every(function(t){return t.title})){if(i.every(function(t){return k(t.enum)&&1===t.enum.length})){if(o)return!0;n=i.map(function(t){return{name:t.title,value:t.enum[0]}})}else if(i.every(function(t){return t.const})){if(o)return!0;n=i.map(function(t){return{name:t.title,value:t.const}})}if(!1!==e&&(n||[]).filter(function(t){return((t||{}).name||"").indexOf(": ")}).length>1){var r=n.map(function(t){var e=t.name.split(/: (.+)/),o=e[0],n=e[1];return o&&n?Pe({},t,{group:o,name:n}):t});(!0===e||r.some(function(t,e){return e&&J(t,"group")&&t.group===r[e-1].group}))&&(n=r)}}return!o&&n}function at(t){if(!F(t))return null;var e={};if(J(t,"type"))switch(t.type){case"string":z(["pattern","format","minLength","maxLength"],function(o){J(t,o)&&(e[o]=[t[o]])});break;case"number":case"integer":z(["Minimum","Maximum"],function(o){var n="exclusive"+o,i=o.toLowerCase();if(J(t,i)){var r=J(t,n)&&!0===t[n];e[i]=[t[i],r]}}),z(["multipleOf","type"],function(o){J(t,o)&&(e[o]=[t[o]])});break;case"object":z(["minProperties","maxProperties","dependencies"],function(o){J(t,o)&&(e[o]=[t[o]])});break;case"array":z(["minItems","maxItems","uniqueItems"],function(o){J(t,o)&&(e[o]=[t[o]])})}return J(t,"enum")&&(e.enum=[t.enum]),e}function lt(t,e,o,n,i){if(F(t)){var r=new Set,s=new Set,a=new Map,l=new Map,u={};ae.forEachDeep(t,function(t,e){if(J(t,"$ref")&&w(t.$ref)){var o=ae.compile(t.$ref);r.add(o),s.add(e+"~~"+o),a.set(e,o)}}),r.forEach(function(e){return u[e]=ut(t,e)});for(var p=!0;p;)p=!1,Array.from(a).forEach(function(t){var e=t[0],o=t[1];return Array.from(a).filter(function(t){var n=t[0],i=t[1];return ae.isSubPointer(o,n,!0)&&!ae.isSubPointer(i,o,!0)&&!s.has(e+n.slice(o.length)+"~~"+i)}).forEach(function(t){var n=t[0],i=t[1];s.add(e+n.slice(o.length)+"~~"+i),p=!0})});Array.from(s).map(function(t){return t.split("~~")}).filter(function(t){var e=t[0],o=t[1];return ae.isSubPointer(o,e)}).forEach(function(t){var e=t[0],o=t[1];return l.set(e,o)}),Array.from(a).filter(function(t){var e=t[0];t[1];return Array.from(l.keys()).every(function(t){return!ae.isSubPointer(e,t,!0)})}).forEach(function(t){var e=t[0],o=t[1];return Array.from(l).filter(function(t){var n=t[0];t[1];return!l.has(e+n.slice(o.length))&&ae.isSubPointer(o,n,!0)&&!ae.isSubPointer(o,e,!0)}).forEach(function(t){var n=t[0],i=t[1];return l.set(e+n.slice(o.length),e+i.slice(o.length))})});var d=Pe({},t);return delete d.definitions,d=ut(d,"",u,l),ae.forEachDeep(d,function(t,r){if(w(t.$ref)){var s=ae.compile(t.$ref);ae.isSubPointer(s,r,!0)||(s=et(r,l),ae.set(d,r,{$ref:"#"+s})),J(e,"refPointer")||(e[s]=s.length?ut(d,s,e,l):d),o.has(r)||o.set(r,s);var a=ae.toDataPointer(r,d);if(!n.has(a)){var u=ae.toDataPointer(s,d);n.set(a,u)}}if("array"===t.type&&(J(t,"items")||J(t,"additionalItems"))){var p=ae.toDataPointer(r,d);if(!i.has(p)){var c=k(t.items)?t.items.length:0;i.set(p,c)}}},!0),d}console.error("resolveSchemaReferences error: schema must be an object.")}function ut(t,e,n,i,r){if(void 0===n&&(n=null),void 0===i&&(i=null),void 0===r&&(r=[]),!n||!i)return ae.getCopy(t,e);"string"!=typeof e&&(e=ae.compile(e)),r=r.concat([e]);var s=null;if(""===e)s=o.cloneDeep(t);else{var a=et(e,i);a!==e&&(r=r.concat([a])),s=ae.getFirstCopy([[n,[a]],[t,e],[t,a]])}return ae.forEachDeepCopy(s,function(e,o){if(F(e)){if(w(e.$ref)){var s=ae.compile(e.$ref);if(s.length&&r.every(function(t){return!ae.isSubPointer(s,t,!0)})){var a=ut(t,s,n,i,r);if(1===Object.keys(e).length)return a;var l=Pe({},e);return delete l.$ref,K(a,l)}}if(k(e.allOf))return pt(e);if("array"===e.type&&k(e.required))return dt(e)}return e},!0,e)}function pt(t){if(!F(t)||!k(t.allOf))return t;var e=K.apply(void 0,t.allOf);if(Object.keys(t).length>1){var o=Pe({},t);delete o.allOf,e=K(e,o)}return e}function dt(t){if("array"===t.type&&k(t.required)){var e=J(t.items,"properties")?"items":J(t.additionalItems,"properties")?"additionalItems":null;e&&!J(t[e],"required")&&(J(t[e],"additionalProperties")||t.required.every(function(o){return J(t[e].properties,o)}))&&((t=o.cloneDeep(t))[e].required=t.required,delete t.required)}return t}function ct(t,e){void 0===e&&(e={});var o=e.draft||null,n=e.changed||!1;if("object"!=typeof t)return t;if("function"==typeof t.map)return t.map(function(t){return ct(t,{changed:n,draft:o})}).slice();var i=Le({},t),r=["array","boolean","integer","null","number","object","string"];if("string"==typeof i.$schema&&/http\:\/\/json\-schema\.org\/draft\-0\d\/schema\#/.test(i.$schema)&&(o=i.$schema[30]),i.contentEncoding&&(i.media={binaryEncoding:i.contentEncoding},delete i.contentEncoding,n=!0),"object"==typeof i.extends&&(i.allOf="function"==typeof i.extends.map?i.extends.map(function(t){return ct(t,{changed:n,draft:o})}):[ct(i.extends,{changed:n,draft:o})],delete i.extends,n=!0),i.disallow&&("string"==typeof i.disallow?i.not={type:i.disallow}:"function"==typeof i.disallow.map&&(i.not={anyOf:i.disallow.map(function(t){return"object"==typeof t?t:{type:t}})}),delete i.disallow,n=!0),"object"==typeof i.dependencies&&Object.keys(i.dependencies).some(function(t){return"string"==typeof i.dependencies[t]})&&(i.dependencies=Le({},i.dependencies),Object.keys(i.dependencies).filter(function(t){return"string"==typeof i.dependencies[t]}).forEach(function(t){return i.dependencies[t]=[i.dependencies[t]]}),n=!0),"number"==typeof i.maxDecimal&&(i.multipleOf=1/Math.pow(10,i.maxDecimal),delete i.divisibleBy,n=!0,o&&2!==o||(o=1)),"number"==typeof i.divisibleBy&&(i.multipleOf=i.divisibleBy,delete i.divisibleBy,n=!0),"number"==typeof i.minimum&&!1===i.minimumCanEqual?(i.exclusiveMinimum=i.minimum,delete i.minimum,n=!0,o||(o=2)):"boolean"==typeof i.minimumCanEqual&&(delete i.minimumCanEqual,n=!0,o||(o=2)),"number"==typeof i.minimum&&!0===i.exclusiveMinimum?(i.exclusiveMinimum=i.minimum,delete i.minimum,n=!0):"boolean"==typeof i.exclusiveMinimum&&(delete i.exclusiveMinimum,n=!0),"number"==typeof i.maximum&&!1===i.maximumCanEqual?(i.exclusiveMaximum=i.maximum,delete i.maximum,n=!0,o||(o=2)):"boolean"==typeof i.maximumCanEqual&&(delete i.maximumCanEqual,n=!0,o||(o=2)),"number"==typeof i.maximum&&!0===i.exclusiveMaximum?(i.exclusiveMaximum=i.maximum,delete i.maximum,n=!0):"boolean"==typeof i.exclusiveMaximum&&(delete i.exclusiveMaximum,n=!0),"object"==typeof i.properties){var s=Le({},i.properties),a=Array.isArray(i.required)?new Set(i.required):new Set;if((1===o||2===o||Object.keys(s).some(function(t){return!0===s[t].optional}))&&(Object.keys(s).filter(function(t){return!0!==s[t].optional}).forEach(function(t){return a.add(t)}),n=!0,o||(o=2)),Object.keys(s).some(function(t){return!0===s[t].required})&&(Object.keys(s).filter(function(t){return!0===s[t].required}).forEach(function(t){return a.add(t)}),n=!0),a.size&&(i.required=Array.from(a)),Object.keys(s).some(function(t){return s[t].requires})){var l="object"==typeof i.dependencies?Le({},i.dependencies):{};Object.keys(s).filter(function(t){return s[t].requires}).forEach(function(t){return l[t]="string"==typeof s[t].requires?[s[t].requires]:s[t].requires}),i.dependencies=l,n=!0,o||(o=2)}i.properties=s}if("boolean"==typeof i.optional&&(delete i.optional,n=!0,o||(o=2)),i.requires&&delete i.requires,"boolean"==typeof i.required&&delete i.required,"string"!=typeof i.id||i.$id||("#"===i.id.slice(-1)&&(i.id=i.id.slice(0,-1)),i.$id=i.id+"-CONVERTED-TO-DRAFT-06#",delete i.id,n=!0),!i.type||("function"==typeof i.type.every?i.type.every(function(t){return r.includes(t)}):r.includes(i.type))||(n=!0),"string"==typeof i.$schema&&/http\:\/\/json\-schema\.org\/draft\-0[1-4]\/schema\#/.test(i.$schema))i.$schema="http://json-schema.org/draft-06/schema#",n=!0;else if(n&&"string"==typeof i.$schema){var u="Converted to draft 6 from "+i.$schema;"string"==typeof i.description&&i.description.length?i.description+="\n"+u:i.description=u,delete i.$schema}if(i.type&&("function"==typeof i.type.every?!i.type.every(function(t){return r.includes(t)}):!r.includes(i.type)))if(1===i.type.length&&(i.type=i.type[0]),"string"==typeof i.type)"any"===i.type?i.type=r:delete i.type;else if("object"==typeof i.type){if("function"==typeof i.type.every)if(i.type.every(function(t){return"string"==typeof t}))i.type=i.type.some(function(t){return"any"===t})?i.type=r:i.type.filter(function(t){return r.includes(t)});else if(i.type.length>1){for(var p=["additionalItems","items","maxItems","minItems","uniqueItems","contains"],d=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"],c=["maxProperties","minProperties","required","additionalProperties","properties","patternProperties","dependencies","propertyNames"],f=["maxLength","minLength","pattern","format"],m={array:d.concat(c,f),integer:p.concat(c,f),number:p.concat(c,f),object:p.concat(d,f),string:p.concat(d,c),all:p.concat(d,c,f)},h=[],y=0,g=i.type;y<g.length;y++)!function(t){var e="string"==typeof t?{type:t}:Le({},t);Object.keys(i).filter(function(t){return!e.hasOwnProperty(t)&&!(m[e.type]||m.all).concat(["type","default"]).includes(t)}).forEach(function(t){return e[t]=i[t]}),h.push(e)}(g[y]);i=i.hasOwnProperty("default")?{anyOf:h,default:i.default}:{anyOf:h}}else{var b=i.type;delete i.type,Object.assign(i,b)}}else delete i.type;return Object.keys(i).filter(function(t){return"object"==typeof i[t]}).forEach(function(t){if(["definitions","dependencies","properties","patternProperties"].includes(t)&&"function"!=typeof i[t].map){var e={};Object.keys(i[t]).forEach(function(r){return e[r]=ct(i[t][r],{changed:n,draft:o})}),i[t]=e}else if(["items","additionalItems","additionalProperties","allOf","anyOf","oneOf","not"].includes(t))i[t]=ct(i[t],{changed:n,draft:o});else{var r=function(t){return"object"!=typeof r?t:"function"==typeof t.map?t.map(function(t){return r(t)}).slice():Object.keys(t).reduce(function(e,o){return Object.assign(e,(n={},n[o]=r(t[o]),n));var n},{})};i[t]=r(i[t])}}),i}function ft(t,e,n,i,r,s){void 0===e&&(e=null),void 0===n&&(n=!0),void 0===i&&(i=""),void 0===r&&(r=""),void 0===s&&(s="");var a=ae.get(t.schema,i);n?!v(e)&&(!0===t.formOptions.setSchemaDefaults||"auto"===t.formOptions.setSchemaDefaults&&I(t.formValues))&&(e=ae.get(t.schema,i+"/default")):e=null;var l=ae.get(a,"/type"),u=(J(a,"properties")||J(a,"additionalProperties"))&&"object"===l?"FormGroup":(J(a,"items")||J(a,"additionalItems"))&&"array"===l?"FormArray":!l&&J(a,"$ref")?"$ref":"FormControl",p=et(r,t.dataRecursiveRefMap,t.arrayMap);t.dataMap.has(p)||t.dataMap.set(p,new Map);var d=t.dataMap.get(p);d.has("schemaType")||(d.set("schemaPointer",i),d.set("schemaType",a.type),a.format&&(d.set("schemaFormat",a.format),a.type||d.set("schemaType","string")),u&&(d.set("templatePointer",s),d.set("templateType",u)));var c,f=at(a);switch(u){case"FormGroup":if(c={},J(a,"ui:order")||J(a,"properties")){var m=a["ui:order"]||Object.keys(a.properties);if(m.includes("*")&&!J(a.properties,"*"))for(var h=Object.keys(a.properties).filter(function(t){return!m.includes(t)}),y=m.length-1;y>=0;y--)"*"===m[y]&&m.splice.apply(m,[y,1].concat(h));m.filter(function(t){return J(a.properties,t)||J(a,"additionalProperties")}).forEach(function(o){return c[o]=ft(t,ae.get(e,[o]),n,i+(J(a.properties,o)?"/properties/"+o:"/additionalProperties"),r+"/"+o,s+"/controls/"+o)}),t.formOptions.fieldsRequired=ht(a,c)}return{controlType:u,controls:c,validators:f};case"FormArray":c=[];var g=Math.max(a.minItems||0,d.get("minItems")||0),b=Math.min(a.maxItems||1e3,d.get("maxItems")||1e3),x=null;if(k(a.items)){for(var w=d.get("tupleItems")||(k(a.items)?Math.min(a.items.length,b):0),y=0;y<w;y++)if(y<g)c.push(ft(t,k(e)?e[y]:e,n,i+"/items/"+y,r+"/"+y,s+"/controls/"+y));else{var C=et(i+"/items/"+y,t.schemaRecursiveRefMap),O=(j=et(p+"/"+y,t.dataRecursiveRefMap,t.arrayMap))!==p+"/"+y;J(t.templateRefLibrary,j)||(t.templateRefLibrary[j]=null,t.templateRefLibrary[j]=ft(t,null,n,C,j,s+"/controls/"+y)),c.push(k(e)?ft(t,e[y],n,i+"/items/"+y,r+"/"+y,s+"/controls/"+y):O?null:o.cloneDeep(t.templateRefLibrary[j]))}a.items.length<b&&F(a.additionalItems)&&(x=i+"/additionalItems")}else x=i+"/items";if(x){var C=et(x,t.schemaRecursiveRefMap),j=et(p+"/-",t.dataRecursiveRefMap,t.arrayMap),O=j!==p+"/-";J(t.templateRefLibrary,j)||(t.templateRefLibrary[j]=null,t.templateRefLibrary[j]=ft(t,null,n,C,j,s+"/controls/-"));var N=d;if(!O||J(f,"required"))for(var M=Math.min(Math.max(O?0:N.get("tupleItems")+N.get("listItems")||0,k(e)?e.length:0),b),y=c.length;y<M;y++)c.push(k(e)?ft(t,e[y],n,C,r+"/-",s+"/controls/-"):O?null:o.cloneDeep(t.templateRefLibrary[j]))}return{controlType:u,controls:c,validators:f};case"$ref":var D=ae.compile(a.$ref),P=et(ae.toDataPointer(D,a),t.dataRecursiveRefMap,t.arrayMap);if(P&&!J(t.templateRefLibrary,P)){t.templateRefLibrary[P]=null;var L=ft(t,n,n,D);L?t.templateRefLibrary[P]=L:delete t.templateRefLibrary[P]}return null;case"FormControl":return{controlType:u,value:{value:n&&S(e)?e:null,disabled:d.get("disabled")||!1},validators:f};default:return null}}function mt(t){var e=[],i=null;if(J(t,"validators")&&(z(t.validators,function(t,o){"function"==typeof Me[o]&&e.push(Me[o].apply(null,t))}),e.length&&R(t.controlType,["FormGroup","FormArray"])&&(i=e.length>1?Me.compose(e):e[0])),J(t,"controlType"))switch(t.controlType){case"FormGroup":var r={};return z(t.controls,function(t,e){var o=mt(t);o&&(r[e]=o)}),new n.FormGroup(r,i);case"FormArray":return new n.FormArray(o.filter(o.map(t.controls,function(t){return mt(t)})),i);case"FormControl":return new n.FormControl(t.value,e)}return null}function ht(t,e){var o=!1;if(J(t,"required")&&!I(t.required)){o=!0;var n=k(t.required)?t.required:[t.required];n=z(n,function(t){return ae.set(e,"/"+t+"/validators/required",[])})}return o}function yt(t,e,o,n,i,r){if(void 0===i&&(i=!1),void 0===r&&(r=!1),null===t||"object"!=typeof t)return t;var s=k(t)?[]:{};return ae.forEachDeep(t,function(t,a){if(i&&k(t))ae.set(s,a,[]);else if(i&&F(t)&&!N(t))ae.set(s,a,{});else{var l=ae.has(e,[a,"schemaType"])?a:et(a,o,n);if(ae.has(e,[l,"schemaType"])){var u=e.get(l).get("schemaType");if("null"===u)ae.set(s,a,null);else if((x(t)||i)&&R(u,["string","integer","number","boolean"])){var p=r||null===t&&i?E(t,u):A(t,u);(v(p)||i)&&ae.set(s,a,p)}else"object"!==u||i||(e.get(l).get("required")||[]).forEach(function(t){var o=e.get(l+"/"+t).get("schemaType");"array"===o?ae.set(s,a+"/"+t,[]):"object"===o&&ae.set(s,a+"/"+t,{})});"date-time"===e.get(l).get("schemaFormat")&&(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?$/i.test(t)?ae.set(s,a,t+"Z"):/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d$/i.test(t)?ae.set(s,a,t+":00Z"):r&&/^\d\d\d\d-[0-1]\d-[0-3]\d$/i.test(t)&&ae.set(s,a,t+":00:00:00Z"))}else("object"!=typeof t||N(t)||null===t&&i)&&(console.error("formatFormData error: Schema type not found for form value at "+l),console.error("dataMap",e),console.error("recursiveRefMap",o),console.error("genericPointer",l))}}),s}function gt(t,e,o){if(void 0===o&&(o=!1),!F(t)||!ae.isJsonPointer(e)){if(!ae.isJsonPointer(e)){if("string"==typeof e&&(i=t.get(e)))return i;console.error("getControl error: Invalid JSON Pointer: "+e)}return F(t)||console.error("getControl error: Invalid formGroup: "+t),null}var n=ae.parse(e);if(o&&(n=n.slice(0,-1)),"function"==typeof t.get&&n.every(function(t){return-1===t.indexOf(".")})){var i=t.get(n.join("."));if(i)return i}for(var r=t,s=0,a=n;s<a.length;s++){var l=a[s];if(J(r,"controls")&&(r=r.controls),k(r)&&"-"===l)r=r[r.length-1];else{if(!J(r,l))return console.error('getControl error: Unable to find "'+l+'" item in FormGroup.'),console.error(e),void console.error(t);r=r[l]}}return r}function bt(t,e){var n=!ae.get(t,"/formOptions/addSubmit"),i=xt(t.layout,function(i,r,s){var a={_id:o.uniqueId(),options:{}};if(F(i))Object.assign(a,i),Object.keys(a).filter(function(t){return!R(t,["_id","$ref","arrayItem","arrayItemType","dataPointer","dataType","items","key","name","options","recursiveReference","type","widget"])}).forEach(function(t){a.options[t]=a[t],delete a[t]}),!J(a,"type")&&w(a.widget)&&(a.type=a.widget,delete a.widget),J(a.options,"title")||J(a.options,"legend")&&(a.options.title=a.options.legend,delete a.options.legend),J(a.options,"validationMessages")||(J(a.options,"errorMessages")?(a.options.validationMessages=a.options.errorMessages,delete a.options.errorMessages):J(a.options,"validationMessage")&&("string"==typeof a.options.validationMessage?a.options.validationMessages=a.options.validationMessage:(a.options.validationMessages={},Object.keys(a.options.validationMessage).forEach(function(t){var e=t+"",o="0"===e?"type":"1"===e?"enum":"100"===e?"multipleOf":"101"===e?"minimum":"102"===e?"exclusiveMinimum":"103"===e?"maximum":"104"===e?"exclusiveMaximum":"200"===e?"minLength":"201"===e?"maxLength":"202"===e?"pattern":"300"===e?"minProperties":"301"===e?"maxProperties":"302"===e?"required":"304"===e?"dependencies":"400"===e?"minItems":"401"===e?"maxItems":"402"===e?"uniqueItems":"500"===e?"format":e+"";a.options.validationMessages[o]=a.options.validationMessage[t]})),delete a.options.validationMessage));else if(ae.isJsonPointer(i))a.dataPointer=i;else{if(!w(i))return console.error("buildLayout error: Form layout element not recognized:"),console.error(i),null;a.key=i}var l=null;if(!J(a,"dataPointer"))if(J(a,"key"))a.dataPointer="*"===a.key?a.key:ae.compile(ae.parseObjectPath(a.key),"-"),delete a.key;else if(J(a,"type")&&"array"===a.type.slice(-5)){var u=function(t){if(null!==t&&"object"==typeof t){if(J(t,"dataPointer"))return t.dataPointer;if(k(t.items))for(var e=0,o=t.items;e<o.length;e++){var n=o[e];if(J(n,"dataPointer")&&-1!==n.dataPointer.indexOf("/-"))return n.dataPointer;if(J(n,"items")){var i=u(n);if(i)return i}}}},p=u(a);p&&(a.dataPointer=p.slice(0,p.lastIndexOf("/-")))}if(J(a,"dataPointer")){if("*"===a.dataPointer)return vt(t,e,t.formValues);var d=ae.get(t.formValues,a.dataPointer.replace(/\/-/g,"/1"));a.dataPointer=ae.toGenericPointer(a.dataPointer,t.arrayMap);var c=ae.toKey(a.dataPointer);!a.name&&w(c)&&"-"!==c&&(a.name=c);var f=et(a.dataPointer,t.dataRecursiveRefMap,t.arrayMap),m=!f.length||f!==a.dataPointer,h=void 0;t.dataMap.has(f)||t.dataMap.set(f,new Map);var y=t.dataMap.get(f);if(y.has("schemaPointer")?h=y.get("schemaPointer"):(h=ae.toSchemaPointer(f,t.schema),y.set("schemaPointer",h)),y.set("disabled",!!a.options.disabled),l=ae.get(t.schema,h)){if(J(a,"type"))if(e.hasWidget(a.type))a.type=nt(a.type,l,a);else{var g=a.type;a.type=ot(l,a),console.error('error: widget type "'+g+'" not found in library. Replacing with "'+a.type+'".')}else a.type=ot(l,a);"object"===l.type&&k(l.required)&&y.set("required",l.required),a.dataType=l.type||(J(l,"$ref")?"$ref":null),rt(a,l,t),"checkboxes"===a.type&&J(l,"items")?rt(a,l.items,t):"array"===a.dataType&&(a.options.maxItems=Math.min(l.maxItems||1e3,a.options.maxItems||1e3),a.options.minItems=Math.max(l.minItems||0,a.options.minItems||0),a.options.listItems=Math.max(a.options.listItems||0,k(d)?d.length:0),a.options.tupleItems=k(l.items)?l.items.length:0,a.options.maxItems<a.options.tupleItems?(a.options.tupleItems=a.options.maxItems,a.options.listItems=0):a.options.maxItems<a.options.tupleItems+a.options.listItems?a.options.listItems=a.options.maxItems-a.options.tupleItems:a.options.minItems>a.options.tupleItems+a.options.listItems&&(a.options.listItems=a.options.minItems-a.options.tupleItems),y.has("maxItems")||(y.set("maxItems",a.options.maxItems),y.set("minItems",a.options.minItems),y.set("tupleItems",a.options.tupleItems),y.set("listItems",a.options.listItems)),t.arrayMap.has(f)||t.arrayMap.set(f,a.options.tupleItems)),it(t.schema,h)&&(a.options.required=!0,t.fieldsRequired=!0)}else rt(a,{},t);if(a.options.title||/^\d+$/.test(a.name)||(a.options.title=Y(a.name)),J(a.options,"copyValueTo")&&("string"==typeof a.options.copyValueTo&&(a.options.copyValueTo=[a.options.copyValueTo]),k(a.options.copyValueTo)&&(a.options.copyValueTo=a.options.copyValueTo.map(function(t){return ae.compile(ae.parseObjectPath(t),"-")}))),a.widget=e.getWidget(a.type),y.set("inputType",a.type),y.set("widget",a.widget),"array"===a.dataType&&(J(a,"items")||J(a,"additionalItems"))){var b=et(a.dataPointer+"/-",t.dataRecursiveRefMap,t.arrayMap);if(t.dataMap.has(b)||t.dataMap.set(b,new Map),t.dataMap.get(b).set("inputType","section"),a.items.length>1){for(var v=[],x=a.items.length-1;x>=0;x--){var C=a.items[x];if(J(C,"dataPointer")&&C.dataPointer.slice(0,b.length)===b){var O=a.items.splice(x,1)[0];O.dataPointer=a.dataPointer+"/-"+O.dataPointer.slice(b.length),v.unshift(O)}else C.arrayItem=!0,C.arrayItemType="list",C.removable=!1!==a.options.removable}v.length&&a.items.push({_id:o.uniqueId(),arrayItem:!0,arrayItemType:a.options.tupleItems>a.items.length?"tuple":"list",items:v,options:{removable:!1!==a.options.removable},dataPointer:a.dataPointer+"/-",type:"section",widget:e.getWidget("section")})}else a.items[0].arrayItem=!0,a.items[0].dataPointer||(a.items[0].dataPointer=ae.toGenericPointer(b,t.arrayMap)),ae.has(a,"/items/0/options/removable")||(a.items[0].options.removable=!0),!1===a.options.orderable&&(a.items[0].options.orderable=!1),a.items[0].arrayItemType=a.options.tupleItems?"tuple":"list";if(k(a.items)){var j=a.items.filter(function(t){return"$ref"!==t.type}).length-a.options.tupleItems;j>a.options.listItems&&(a.options.listItems=j,y.set("listItems",j))}if(J(t.layoutRefLibrary,b)||(t.layoutRefLibrary[b]=o.cloneDeep(a.items[a.items.length-1]),m&&(t.layoutRefLibrary[b].recursiveReference=!0),z(t.layoutRefLibrary[b],function(t,e){J(t,"_id")&&(t._id=null),m&&J(t,"dataPointer")&&(t.dataPointer=t.dataPointer.slice(b.length))},"top-down")),!a.recursiveReference||a.options.required)for(var N=Math.min(Math.max(a.options.tupleItems+a.options.listItems,k(d)?d.length:0),a.options.maxItems),x=a.items.length;x<N;x++)a.items.push(It({$ref:b,dataPointer:a.dataPointer,recursiveReference:a.recursiveReference},t,e));if(!1!==a.options.addable&&a.options.minItems<a.options.maxItems&&"$ref"!==(a.items[a.items.length-1]||{}).type){var M="Add";if(a.options.title)/^add\b/i.test(a.options.title)?M=a.options.title:M+=" "+a.options.title;else if(a.name&&!/^\d+$/.test(a.name))/^add\b/i.test(a.name)?M+=" "+Y(a.name):M=Y(a.name);else{var D=tt(t.schema,a.dataPointer,"parentSchema");if(J(D,"title"))M+=" to "+D.title;else{var P=ae.parse(a.dataPointer);M+=" to "+Y(P[P.length-2])}}a.items.push({_id:o.uniqueId(),arrayItem:!0,arrayItemType:"list",dataPointer:a.dataPointer+"/-",options:{listItems:a.options.listItems,maxItems:a.options.maxItems,minItems:a.options.minItems,removable:!1,title:M,tupleItems:a.options.tupleItems},recursiveReference:m,type:"$ref",widget:e.getWidget("$ref"),$ref:b}),w(ae.get(a,"/style/add"))&&(a.items[a.items.length-1].options.fieldStyle=a.style.add,delete a.style.add,I(a.style)&&delete a.style)}}else a.arrayItem=!1}else if(J(a,"type")||J(a,"items")){var L=ae.get(t.layout,s,0,-2).type;J(a,"type")||(a.type=R(L,["tabs","tabarray"])?"tab":"array"),a.arrayItem="array"===L,a.widget=e.getWidget(a.type),rt(a,{},t)}return"submit"===a.type&&(n=!0),a});if(t.hasRootReference){var r=o.cloneDeep(i);"submit"===r[r.length-1].type&&r.pop(),t.layoutRefLibrary[""]={_id:null,dataPointer:"",dataType:"object",items:r,name:"",options:o.cloneDeep(t.formOptions.defautWidgetOptions),recursiveReference:!0,required:!1,type:"section",widget:e.getWidget("section")}}return n||i.push({_id:o.uniqueId(),options:{title:"Submit"},type:"submit",widget:e.getWidget("submit")}),i}function vt(t,e,n,i,r,s,a,l,u,p){void 0===n&&(n=null),void 0===i&&(i=""),void 0===r&&(r=""),void 0===s&&(s=!1),void 0===a&&(a=null),void 0===l&&(l=null),void 0===u&&(u=!1),void 0===p&&(p="");var d=ae.get(t.schema,i);if(!J(d,"type")&&!J(d,"$ref")&&!J(d,"x-schema-form"))return null;var c=ot(d);!v(n)&&(!0===t.formOptions.setSchemaDefaults||"auto"===t.formOptions.setSchemaDefaults&&I(t.formValues))&&(n=ae.get(t.schema,i+"/default"));var f={_id:u?null:o.uniqueId(),arrayItem:s,dataPointer:ae.toGenericPointer(r,t.arrayMap),dataType:d.type||(J(d,"$ref")?"$ref":null),options:{},required:it(t.schema,i),type:c,widget:e.getWidget(c)},m=ae.toKey(f.dataPointer);"-"!==m&&(f.name=m),f.arrayItem&&(f.arrayItemType=a,f.options.removable=!1!==l);var h=et(p+r,t.dataRecursiveRefMap,t.arrayMap);h.length;t.dataMap.has(h)||t.dataMap.set(h,new Map);var y=t.dataMap.get(h);if(y.has("inputType")||(y.set("schemaPointer",i),y.set("inputType",f.type),y.set("widget",f.widget),y.set("disabled",!!f.options.disabled)),rt(f,d,t),f.options.title||!f.name||/^\d+$/.test(f.name)||(f.options.title=Y(f.name)),"object"===f.dataType){if(k(d.required)&&!y.has("required")&&y.set("required",d.required),F(d.properties)){var g=[],b=d["ui:order"]||Object.keys(d.properties);if(b.includes("*")&&!J(d.properties,"*"))for(var x=Object.keys(d.properties).filter(function(t){return!b.includes(t)}),w=b.length-1;w>=0;w--)"*"===b[w]&&b.splice.apply(b,[w,1].concat(x));b.filter(function(t){return J(d.properties,t)||J(d,"additionalProperties")}).forEach(function(o){var s=J(d.properties,o)?"/properties/"+o:"/additionalProperties",a=vt(t,e,F(n)?n[o]:null,i+s,r+"/"+o,!1,null,null,u,p);a&&(it(d,"/"+o)&&(a.options.required=!0,t.fieldsRequired=!0),g.push(a))}),""!==r||u?f.items=g:f=g}}else if("array"===f.dataType){f.items=[],f.options.maxItems=Math.min(d.maxItems||1e3,f.options.maxItems||1e3),f.options.minItems=Math.max(d.minItems||0,f.options.minItems||0),!f.options.minItems&&it(t.schema,i)&&(f.options.minItems=1),J(f.options,"listItems")||(f.options.listItems=1),f.options.tupleItems=k(d.items)?d.items.length:0,f.options.maxItems<=f.options.tupleItems?(f.options.tupleItems=f.options.maxItems,f.options.listItems=0):f.options.maxItems<f.options.tupleItems+f.options.listItems?f.options.listItems=f.options.maxItems-f.options.tupleItems:f.options.minItems>f.options.tupleItems+f.options.listItems&&(f.options.listItems=f.options.minItems-f.options.tupleItems),y.has("maxItems")||(y.set("maxItems",f.options.maxItems),y.set("minItems",f.options.minItems),y.set("tupleItems",f.options.tupleItems),y.set("listItems",f.options.listItems)),t.arrayMap.has(h)||t.arrayMap.set(h,f.options.tupleItems),l=!1!==f.options.removable;var O=null;if(k(d.items)){f.items=[];for(w=0;w<f.options.tupleItems;w++){var j=void 0,N=!(M=et(h+"/"+w,t.dataRecursiveRefMap,t.arrayMap)).length||M!==h+"/"+w;l&&w>=f.options.minItems?(J(t.layoutRefLibrary,M)||(t.layoutRefLibrary[M]=null,t.layoutRefLibrary[M]=vt(t,e,k(n)?n[w]:null,i+"/items/"+w,N?"":r+"/"+w,!0,"tuple",!0,!0,N?r+"/"+w:""),N&&(t.layoutRefLibrary[M].recursiveReference=!0)),j=It({$ref:M,dataPointer:r+"/"+w,recursiveReference:N},t,e,k(n)?n[w]:null)):j=vt(t,e,k(n)?n[w]:null,i+"/items/"+w,r+"/"+w,!0,"tuple",!1,u,p),j&&f.items.push(j)}F(d.additionalItems)&&(O=i+"/additionalItems")}else F(d.items)&&(O=i+"/items");if(O){var M=et(h+"/-",t.dataRecursiveRefMap,t.arrayMap),N=!M.length||M!==h+"/-",D=et(O,t.schemaRecursiveRefMap,t.arrayMap);if(M.length&&!J(t.layoutRefLibrary,M)&&(t.layoutRefLibrary[M]=null,t.layoutRefLibrary[M]=vt(t,e,null,D,N?"":r+"/-",!0,"list",l,!0,N?r+"/-":""),N&&(t.layoutRefLibrary[M].recursiveReference=!0)),!N||f.options.required){var P=Math.min(Math.max(N?0:f.options.tupleItems+f.options.listItems,k(n)?n.length:0),f.options.maxItems);if(f.items.length<P)for(w=f.items.length;w<P;w++)f.items.push(It({$ref:M,dataPointer:r+"/-",recursiveReference:N},t,e,k(n)?n[w]:null))}if(!1!==f.options.addable&&f.options.minItems<f.options.maxItems&&"$ref"!==(f.items[f.items.length-1]||{}).type){var L=(E=((t.layoutRefLibrary[M]||{}).options||{}).title)?"Add ":"Add to ";E||(E=d.title||Y(ae.toKey(r))),/^add\b/i.test(E)||(E=L+E),f.items.push({_id:o.uniqueId(),arrayItem:!0,arrayItemType:"list",dataPointer:f.dataPointer+"/-",options:{listItems:f.options.listItems,maxItems:f.options.maxItems,minItems:f.options.minItems,removable:!1,title:E,tupleItems:f.options.tupleItems},recursiveReference:N,type:"$ref",widget:e.getWidget("$ref"),$ref:M})}}}else if("$ref"===f.dataType){var S=ae.compile(d.$ref),A=ae.toDataPointer(S,t.schema),E="";if(f.options.add)E=f.options.add;else if(f.name&&!/^\d+$/.test(f.name))E=(/^add\b/i.test(f.name)?"":"Add ")+Y(f.name);else{var T=ae.get(t.schema,i,0,-1);if(J(T,"title"))E="Add to "+T.title;else{var V=ae.parse(f.dataPointer);E="Add to "+Y(V[V.length-2])}}if(Object.assign(f,{recursiveReference:!0,widget:e.getWidget("$ref"),$ref:A}),Object.assign(f.options,{removable:!1,title:E}),C(ae.get(t.schema,i,0,-1).maxItems)&&(f.options.maxItems=ae.get(t.schema,i,0,-1).maxItems),A.length)if(J(t.layoutRefLibrary,A))t.layoutRefLibrary[A].recursiveReference||(t.layoutRefLibrary[A].recursiveReference=!0);else{t.layoutRefLibrary[A]=null;var _=vt(t,e,null,S,"",f.arrayItem,f.arrayItemType,!0,!0,r);_?(_.recursiveReference=!0,t.layoutRefLibrary[A]=_):delete t.layoutRefLibrary[A]}}return f}function xt(t,e,o,n){void 0===o&&(o=""),void 0===n&&(n=t);var i=0,r=[];return z(t,function(t,s){var a=+s+i,l=o+"/"+a,u=$(t),p=[];F(t)&&(J(t,"tabs")&&(t.items=t.tabs,delete t.tabs),J(t,"items")&&(p=k(t.items)?t.items:[t.items])),p.length&&(u.items=xt(p,e,l+"/items",n)),v(u=e(u,a,l,n))?(k(u)&&(i+=u.length-1),r=r.concat(u)):i--}),r}function It(t,e,n,i){if(void 0===n&&(n=null),void 0===i&&(i=null),t.recursiveReference&&n)return(r=o.cloneDeep(t)).options||(r.options={}),Object.assign(r,{recursiveReference:!0,widget:n.getWidget("$ref")}),Object.assign(r.options,{removable:!1,title:"Add "+r.$ref}),r;var r=e.layoutRefLibrary[t.$ref];return v(i)?r=vt(e,n,i,ae.toSchemaPointer(t.$ref,e.schema),t.$ref,r.arrayItem,r.arrayItemType,r.options.removable,!1):(r=o.cloneDeep(r),ae.forEachDeep(r,function(e,n){J(e,"_id")&&(e._id=o.uniqueId()),t.recursiveReference&&J(e,"dataPointer")&&(e.dataPointer=t.dataPointer+e.dataPointer)})),r}function wt(t,e,o,n){void 0===o&&(o=!0),void 0===n&&(n=!0);var i=[],r=!1;if(t)if(k(t))if(e){for(var s=0,a=Object.keys(t);s<a.length;s++)if(F(t[v=a[s]])){p=t[v].value;if(e.includes(p)){var l=t[v].name;i.push({name:l,value:p}),void 0!==p&&null!==p||(r=!0)}}else if(w(t[v])&&v<e.length){var u=t[v],p=e[v];i.push({name:u,value:p}),void 0!==p&&null!==p||(r=!0)}}else i=t,o||(r=!!i.filter(function(t){return void 0===t.value||null===t.value}).length);else if(e){for(var d=0,c=Object.keys(e);d<c.length;d++)if(J(t,p=e[v=c[d]])){var f=t[p];i.push({name:f,value:p}),void 0!==p&&null!==p||(r=!0)}}else for(var m=0,h=Object.keys(t);m<h.length;m++){var y=t[p=h[m]];i.push({name:y,value:p}),void 0!==p&&null!==p||(r=!0)}else if(e)for(var g=0,b=Object.keys(e);g<b.length;g++){var v=b[g],x=e[v],p=e[v];i.push({name:x,value:p}),void 0!==p&&null!==p||(r=!0)}else i=[{name:"True",value:!0},{name:"False",value:!1}];return i.some(function(t){return J(t,"group")})&&(r=!1,i=n?i.reduce(function(t,e){return J(e,"group")?(k(e.items)&&(t=t.concat(e.items.map(function(t){return Se({},t,{name:e.group+": "+t.name})})),e.items.some(function(t){return void 0===t.value||null===t.value})&&(r=!0)),J(e,"name")&&J(e,"value")&&(e.name=e.group+": "+e.name,delete e.group,t.push(e),void 0!==e.value&&null!==e.value||(r=!0))):(t.push(e),void 0!==e.value&&null!==e.value||(r=!0)),t},[]):i.reduce(function(t,e){return J(e,"group")?(e.group!==(t[t.length-1]||{}).group&&t.push({group:e.group,items:e.items||[]}),J(e,"name")&&J(e,"value")&&(t[t.length-1].items.push({name:e.name,value:e.value}),void 0!==e.value&&null!==e.value||(r=!0))):(t.push(e),void 0!==e.value&&null!==e.value||(r=!0)),t},[])),o||r||i.unshift({name:"<em>None</em>",value:null}),i}function Ct(t,e){void 0===e&&(e={});var o=e.dateFormat||"YYYY-MM-DD";if("string"==typeof t&&(t=jt(t)),"[object Date]"!==Object.prototype.toString.call(t))return null;var n=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],s=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];return o.replace(/YYYY/gi,t.getFullYear()+"").replace(/YY/gi,(t.getFullYear()+"").slice(-2)).replace(/MMMM/gi,n[t.getMonth()]).replace(/MMM/gi,i[t.getMonth()]).replace(/MM/gi,("0"+(t.getMonth()+1)).slice(-2)).replace(/M/gi,t.getMonth()+1+"").replace(/DDDD/gi,r[t.getDay()]).replace(/DDD/gi,s[t.getDay()]).replace(/DD/gi,("0"+t.ge