jedison 1.3.0 → 1.3.2

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.
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){if(void 0!==e)return JSON.parse(JSON.stringify(e))}function t(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s(e,s,i){return e.replace(new RegExp(t(s),"g"),i)}function i(e){return s(s(e,"#","root"),"/","-")}function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function a(e){return Object.keys(e).sort().reduce((t,s)=>(t[s]=e[s],t),{})}function r(e,t){return e===t||(f(e)&&f(t)&&(e=a(e),t=a(t)),JSON.stringify(e)===JSON.stringify(t))}function o(e,t){return!r(e,t)}function l(e){return null===e}function d(e){return void 0!==e}function c(e){return void 0===e}function h(e){return"number"==typeof e}function u(e){return h(e)&&e===Math.floor(e)}function p(e){return"string"==typeof e}function m(e){return"boolean"==typeof e}function g(e){return Array.isArray(e)}function f(e){return!l(e)&&!g(e)&&"object"==typeof e}function b(e){let t="any";return h(e)?t=u(e)?"integer":"number":p(e)?t="string":m(e)?t="boolean":g(e)?t="array":l(e)?t="null":f(e)&&(t="object"),t}function v(e,...t){if(!t.length)return e;const s=t.shift();return f(e)&&f(s)&&Object.keys(s).forEach(t=>{f(s[t])?(e[t]||Object.assign(e,{[t]:{}}),v(e[t],s[t])):Object.assign(e,{[t]:s[t]})}),v(e,...t)}function y(e,...t){if(!t.length)return e;const s=t.shift();return Array.isArray(e)&&Array.isArray(s)?e.push(...s):f(e)&&f(s)&&Object.keys(s).forEach(t=>{f(s[t])?(e[t]||Object.assign(e,{[t]:{}}),y(e[t],s[t])):Array.isArray(s[t])?(e[t]||(e[t]=[]),e[t].push(...s[t])):Object.assign(e,{[t]:s[t]})}),y(e,...t)}const C=(e,t)=>(Object.keys(t).forEach(s=>{s in e&&d(e[s])&&d(t[s])&&(f(e[s])&&f(t[s])||g(e[s])&&g(t[s])||p(e[s])&&p(t[s])||h(e[s])&&h(t[s])||m(e[s])&&m(t[s])||l(e[s])&&l(t[s]))&&(f(e[s])&&f(t[s])?C(e[s],t[s]):e[s]=t[s])}),e);function L(e,t){const s=t.split(".");let i=e;for(const a of s)if(Array.isArray(i)&&/^\d+$/.test(a)){const e=parseInt(a);if(!(e>=0&&e<i.length))return;i=i[e]}else{if(!n(i,a))return;i=i[a]}return i}function E(e,t){return e.replace(/{{(.*?)}}/g,e=>{const s=(e=e.replace(/\s/g,"")).split(/{{|}}/)[1];return L(t,s)})}function x(e,t,s){return Math.max(t,Math.min(e,s))}function I(e){const t=[],s=new Set;for(const i of e){const e=JSON.stringify(i);s.has(e)||(s.add(e),t.push(i))}return t}function w(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let s="";for(let i=0;i<e;i++){s+=t[Math.floor(62*Math.random())]}return s}const A={clone:e,escapeRegExp:t,replaceAll:s,pathToAttribute:i,hasOwn:n,sortObject:a,equal:r,different:o,isNull:l,isSet:d,notSet:c,isNumber:h,isInteger:u,isString:p,isBoolean:m,isArray:g,isObject:f,getType:b,mergeDeep:v,combineDeep:y,overwriteExistingProperties:C,getValueByJSONPath:L,compileTemplate:E,clamp:x,removeDuplicatesFromArray:I,generateRandomID:w};function T(t){return f(t.additionalProperties)||m(t.additionalProperties)?e(t.additionalProperties):void 0}function j(t){return f(t.propertyNames)||m(t.propertyNames)?e(t.propertyNames):void 0}function M(t){return g(t.allOf)?e(t.allOf):void 0}function S(t){return g(t.anyOf)?e(t.anyOf):void 0}function P(t){return e(t.const)}function D(t){return f(t.contains)||m(t.contains)?e(t.contains):void 0}function k(t){return e(t.default)}function O(t){return f(t.dependentRequired)?e(t.dependentRequired):void 0}function F(t){return f(t.dependentSchemas)?e(t.dependentSchemas):void 0}function H(t){return p(t.description)?e(t.description):void 0}function V(t){return f(t.else)||m(t.else)?e(t.else):void 0}function R(t){if(g(t.enum)&&t.enum.length>0)return e(t.enum)}function B(t){return h(t.exclusiveMaximum)?e(t.exclusiveMaximum):void 0}function q(e){return h(e.exclusiveMinimum)?e.exclusiveMinimum:void 0}function N(t){return p(t.format)?e(t.format):void 0}function U(t){return f(t.if)||m(t.if)?e(t.if):void 0}function J(t){return f(t.items)||m(t.items)?e(t.items):void 0}function z(t){return h(t.maximum)?e(t.maximum):void 0}function W(t){if(u(t.maxContains)&&t.maxContains>=0)return e(t.maxContains)}function G(t){if(u(t.maxItems)&&t.maxItems>=0)return e(t.maxItems)}function $(t){if(u(t.maxLength)&&t.maxLength>=0)return e(t.maxLength)}function K(t){if(u(t.maxProperties))return e(t.maxProperties)}function Z(t){return h(t.minimum)?e(t.minimum):void 0}function _(t){if(u(t.minContains)&&t.minContains>=0)return e(t.minContains)}function X(t){if(u(t.minItems)&&t.minItems>=0)return e(t.minItems)}function Q(t){if(u(t.minLength)&&t.minLength>=0)return e(t.minLength)}function Y(t){if(u(t.minProperties)&&t.minProperties>=0)return e(t.minProperties)}function ee(t){if(h(t.multipleOf)&&t.multipleOf>=0)return e(t.multipleOf)}function te(t){return f(t.not)||m(t.not)?e(t.not):void 0}function se(e,t){const s="x-"+t;return d(e[s])?e[s]:e["x-options"]&&d(e["x-options"][t])?e["x-options"][t]:void 0}function ie(t){return p(t.pattern)?e(t.pattern):void 0}function ne(t){return f(t.patternProperties)?e(t.patternProperties):void 0}function ae(t){return g(t.prefixItems)?e(t.prefixItems):void 0}function re(t){return f(t.properties)?e(t.properties):void 0}function oe(t){return m(t.readOnly)?e(t.readOnly):void 0}function le(e){return g(e.required)?[...new Set(e.required)]:void 0}function de(t){return f(t.then)||m(t.then)?e(t.then):void 0}function ce(t){return p(t.title)?e(t.title):void 0}function he(t){if(p(t.type)||g(t.type))return e(t.type)}function ue(t){return g(t.oneOf)?e(t.oneOf):void 0}function pe(t){return m(t.unevaluatedProperties)?e(t.unevaluatedProperties):void 0}function me(t){return m(t.uniqueItems)?e(t.uniqueItems):void 0}const ge={getSchemaX:function(e,t){return e["x-"+t]},getSchemaSchema:function(t){return p(t.$schema)?e(t.$schema):void 0},getSchemaAdditionalProperties:T,getSchemaPropertyNames:j,getSchemaAllOf:M,getSchemaAnyOf:S,getSchemaConst:P,getSchemaContains:D,getSchemaDefault:k,getSchemaDependentRequired:O,getSchemaDependentSchemas:F,getSchemaDescription:H,getSchemaElse:V,getSchemaEnum:R,getSchemaExclusiveMaximum:B,getSchemaExclusiveMinimum:q,getSchemaFormat:N,getSchemaIf:U,getSchemaItems:J,getSchemaMaximum:z,getSchemaMaxContains:W,getSchemaMaxItems:G,getSchemaMaxLength:$,getSchemaMaxProperties:K,getSchemaMinimum:Z,getSchemaMinContains:_,getSchemaMinItems:X,getSchemaMinLength:Q,getSchemaMinProperties:Y,getSchemaMultipleOf:ee,getSchemaNot:te,getSchemaXOption:se,getSchemaPattern:ie,getSchemaPatternProperties:ne,getSchemaPrefixItems:ae,getSchemaProperties:re,getSchemaReadOnly:oe,getSchemaRequired:le,getSchemaThen:de,getSchemaTitle:ce,getSchemaType:he,getSchemaOneOf:ue,getSchemaUnevaluatedProperties:pe,getSchemaUniqueItems:me};function fe(e){let t=[];const s=M(e.schema);return d(s)&&(s.forEach(s=>{const i=new as({refParser:e.validator.refParser,schema:s,data:e.value,rootName:e.key}),n=i.getErrors();i.destroy(),n.forEach(t=>{t.path=e.path}),t.push(...n)}),t=I(t)),t}function be(e){const t=[],s=Q(e.schema);if(p(e.value)&&d(s)){e.value=e.value.replace(/[\uDCA9]/g,"");e.value.length<s&&t.push({type:"error",path:e.path,constraint:"minLength",messages:[E(e.translator.translate("errorMinLength"),{minLength:s})]})}return t}function ve(e){const t=[],s=S(e.schema);if(d(s)){let i=!1;s.forEach(t=>{const s=new as({refParser:e.validator.refParser,schema:t,data:e.value}),n=s.getErrors();s.destroy(),0===n.length&&(i=!0)}),i||t.push({type:"error",path:e.path,constraint:"anyOf",messages:[e.translator.translate("errorAnyOf")]})}return t}function ye(e){const t=[],s=R(e.schema);if(d(s)){!s.some(t=>JSON.stringify(e.value)===JSON.stringify(t))&&t.push({type:"error",path:e.path,constraint:"enum",messages:[E(e.translator.translate("errorEnum"),{enum:JSON.stringify(s)})]})}return t}function Ce(e){const t=[],s=B(e.schema);if(h(e.value)&&d(s)){e.value>=s&&t.push({type:"error",path:e.path,constraint:"exclusiveMaximum",messages:[E(e.translator.translate("errorExclusiveMaximum"),{exclusiveMaximum:s})]})}return t}function Le(e){const t=[],s=q(e.schema);if(h(e.value)&&d(s)){e.value<=s&&t.push({type:"error",path:e.path,constraint:"exclusiveMinimum",messages:[E(e.translator.translate("errorExclusiveMinimum"),{exclusiveMinimum:s})]})}return t}function Ee(e){const t=[],s=N(e.schema);let i=e.validator.assertFormat;if(se(e.schema,"assertFormat")&&(i=e.schema.options.assertFormat),d(s)&&p(e.value)&&i){let i;"email"===s&&(i=new RegExp(/^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/i)),"url"===s&&(i=new RegExp(/^(?:https?|ftp):\/\/(?:[^\s:@]+(?::[^\s:@]*)?@)?(?:(?:[^\s:@]+(?::[^\s:@]*)?@)?(?:[^\s:@](?:[^\s:@-]*[^\s:@])?\.?)+[a-zA-Z]{2,}|(?:\d{1,3}\.){3}\d{1,3})(?::\d{2,5})?(?:\/[^\s]*)?$/i)),"uuid"===s&&(i=new RegExp(/^(?:urn:uuid:)?[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$/i));d(i)&&!i.test(e.value)&&t.push({type:"error",path:e.path,constraint:"format",messages:[E(e.translator.translate("errorFormat"),{format:s})]})}return t}function xe(e){const t=[],s=J(e.schema),i=ae(e.schema);if(g(e.value)&&d(s)){const n=d(i)?i.length:0;!1===s&&e.value.length>0&&e.value.length>n&&t.push({type:"error",path:e.path,constraint:"items",messages:[e.translator.translate("errorItems")]})}return t}function Ie(e){const t=[],s=G(e.schema);if(g(e.value)&&d(s)){e.value.length>s&&t.push({type:"error",path:e.path,constraint:"maxItems",messages:[E(e.translator.translate("errorMaxItems"),{maxItems:s})]})}return t}function we(e){const t=[],s=$(e.schema);if(p(e.value)&&d(s)){e.value=e.value.replace(/[\uDCA9]/g,"");e.value.length>s&&t.push({type:"error",path:e.path,constraint:"maxLength",messages:[E(e.translator.translate("errorMaxLength"),{maxLength:s})]})}return t}function Ae(e){const t=[],s=K(e.schema);if(f(e.value)&&d(s)){Object.keys(e.value).length>s&&t.push({type:"error",path:e.path,constraint:"maxProperties",messages:[E(e.translator.translate("errorMaxProperties"),{maxProperties:s})]})}return t}function Te(e){const t=[],s=Z(e.schema);if(h(e.value)&&d(s)){e.value<s&&t.push({type:"error",path:e.path,constraint:"minimum",messages:[E(e.translator.translate("errorMinimum"),{minimum:s})]})}return t}function je(e){const t=[],s=X(e.schema);if(g(e.value)&&d(s)){e.value.length<s&&t.push({type:"error",path:e.path,constraint:"minItems",messages:[E(e.translator.translate("errorMinItems"),{minItems:s})]})}return t}function Me(e){const t=[],s=Y(e.schema);if(f(e.value)&&d(s)){Object.keys(e.value).length<s&&t.push({type:"error",path:e.path,constraint:"minProperties",messages:[E(e.translator.translate("errorMinProperties"),{minProperties:s})]})}return t}function Se(e){const t=[],s=ee(e.schema);if(h(e.value)&&d(s)){if(0===e.value)return t;(!(e.value/s===Math.floor(e.value/s))||e.value.toString().includes("e"))&&t.push({type:"error",path:e.path,constraint:"multipleOf",messages:[E(e.translator.translate("errorMultipleOf"),{multipleOf:s})]})}return t}function Pe(e){const t=[],s=te(e.schema);if(d(s)){const i=new as({refParser:e.validator.refParser,schema:s,data:e.value}),n=i.getErrors();i.destroy();0===n.length&&t.push({type:"error",path:e.path,constraint:"not",messages:[E(e.translator.translate("errorNot"))]})}return t}function De(e){const t=[],s=ue(e.schema);if(d(s)){let i=0;s.forEach(t=>{const s=new as({refParser:e.validator.refParser,schema:t,data:e.value}),n=s.getErrors();s.destroy(),0===n.length&&i++}),1!==i&&t.push({type:"error",path:e.path,constraint:"oneOf",messages:[E(e.translator.translate("errorOneOf"),{counter:i})]})}return t}function ke(e){const t=[],s=ie(e.schema);if(p(e.value)&&d(s)){!new RegExp(s).test(e.value)&&t.push({type:"error",path:e.path,constraint:"pattern",messages:[E(e.translator.translate("errorPattern"),{pattern:s})]})}return t}function Oe(e){let t=[];const s=ne(e.schema);return f(e.value)&&d(s)&&Object.keys(e.value).forEach(i=>{Object.keys(s).forEach(n=>{if(new RegExp(n).test(i)){const a=s[n],r=new as({refParser:e.validator.refParser,schema:a,data:e.value[i]}),o=r.getErrors().map(t=>({type:"error",path:e.path+"/"+i,constraint:"patternProperties",messages:t.messages}));t=[...t,...o],r.destroy()}})}),t}function Fe(e){const t=re(e.schema),s=[];return f(e.value)&&d(t)&&Object.keys(t).forEach(i=>{if(n(e.value,i)){const n=t[i];e.validator.getErrors(e.value[i],n,i,e.path+"/"+i).length>0&&s.push(i)}}),s.length>0?[{type:"error",path:e.path,constraint:"properties",messages:[E(e.translator.translate("errorProperties"),{properties:s.join(", ")})]}]:[]}function He(e){const t=[],s=le(e.schema);if(f(e.value)&&d(s)){const i=[],n=Object.keys(e.value);s.forEach(e=>{n.includes(e)||i.push(e)});i.length>0&&t.push({type:"error",path:e.path,constraint:"required",messages:[E(e.translator.translate("errorRequired"),{required:i.join(", ")})]})}return t}function Ve(e){const t=[],s=he(e.schema);if("any"===s)return t;if(d(s)){const i={string:e=>p(e),number:e=>h(e),integer:e=>u(e),boolean:e=>m(e),array:e=>g(e),object:e=>f(e),null:e=>l(e)};let n=!0;n=g(s)?s.some(t=>i[t](e.value)):i[s](e.value),n||t.push({type:"error",path:e.path,constraint:"type",messages:[E(e.translator.translate("errorType"),{type:s,valueType:b(e.value)})]})}return t}function Re(e){const t=[],s=z(e.schema);if(h(e.value)&&d(s)){e.value>s&&t.push({type:"error",path:e.path,constraint:"maximum",messages:[E(e.translator.translate("errorMaximum"),{maximum:s})]})}return t}function Be(e){const t=[],s=me(e.schema);if(g(e.value)&&d(s)&&!0===s){const s=[];let i=!1;for(let t=0;t<e.value.length;t++){let n=e.value[t];f(n)&&(n=a(n));const r=JSON.stringify(n);if(i=s.some(e=>e===r),i)break;s.push(r)}i&&t.push({type:"error",path:e.path,constraint:"uniqueItems",messages:[e.translator.translate("errorUniqueItems")]})}return t}function qe(e){const t=[],s=T(e.schema),i=ne(e.schema),a=re(e.schema);if(f(e.value)&&d(s)){const r=a||{},o=s,l=i||{};Object.keys(e.value).forEach(s=>{const i=Object.keys(l).some(e=>new RegExp(e).test(s)),a=n(r,s);if(!i&&!a)if(!1===o)t.push({type:"error",path:e.path,constraint:"additionalProperties",messages:[E(e.translator.translate("errorAdditionalProperties"),{property:s})]});else if(f(o)){const i=new as({refParser:e.validator.refParser,schema:o,data:e.value[s]}),n=i.getErrors().map(t=>({type:"error",path:`${e.path}.${s}`,constraint:"additionalProperties",messages:t.messages}));t.push(...n),i.destroy()}})}return t}const Ne={additionalProperties:qe,allOf:fe,anyOf:ve,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,properties:Fe,required:He,type:Ve,uniqueItems:Be};function Ue(e){const t=[],s=P(e.schema);if(d(s)){o(e.value,s)&&t.push({type:"error",path:e.path,constraint:"const",messages:[E(e.translator.translate("errorConst"),{const:JSON.stringify(s)})]})}return t}function Je(e){const t=[],s=D(e.schema),i=_(e.schema),n=W(e.schema);if(g(e.value)&&d(s)){let a=0;e.value.forEach(t=>{const i=new as({refParser:e.validator.refParser,schema:s,data:t});0===i.getErrors().length&&a++,i.destroy()});const r=0===a;if(d(i)){a<i&&t.push({type:"error",path:e.path,constraint:"minContains",messages:[E(e.translator.translate("errorMinContains"),{counter:a,minContains:i})]})}else r&&t.push({type:"error",path:e.path,constraint:"contains",messages:[e.translator.translate("errorContains")]});if(d(n)){a>n&&t.push({type:"error",path:e.path,constraint:"maxContains",messages:[E(e.translator.translate("errorMaxContains"),{counter:a,maxContains:n})]})}}return t}function ze(e){const t=[],s=O(e.schema);if(f(e.value)&&d(s)){let i=[];Object.keys(s).forEach(t=>{if(d(e.value[t])){const a=s[t];i=a.filter(t=>!n(e.value,t))}});i.length>0&&t.push({type:"error",path:e.path,constraint:"dependentRequired",messages:[E(e.translator.translate("errorDependentRequired"),{dependentRequired:i.join(", ")})]})}return t}function We(e){let t=[];const s=F(e.schema);return f(e.value)&&d(s)&&Object.keys(s).forEach(i=>{if(d(e.value[i])){const n=s[i],a=new as({refParser:e.validator.refParser,schema:n,data:e.value}),r=a.getErrors();a.destroy(),t=[...t,...r]}}),t}function Ge(e){const t=[],s=U(e.schema),i=de(e.schema),n=V(e.schema);if(d(s)){if(c(i)&&c(n))return t;const a=new as({refParser:e.validator.refParser,schema:s,data:e.value}),r=a.getErrors();a.destroy();let o=[],l=[];if(d(i)){const t=new as({refParser:e.validator.refParser,schema:i,data:e.value});o=t.getErrors(),t.destroy()}if(d(n)){const t=new as({refParser:e.validator.refParser,schema:n,data:e.value});l=t.getErrors(),t.destroy()}if(!0===s)return o;if(!1===s)return l;if(0===r.length)return o;if(r.length>0)return l}return t}function $e(e){const t=[],s=ae(e.schema);return g(e.value)&&d(s)&&s.forEach((s,i)=>{const n=e.value[i];if(d(n)){const a=new as({refParser:e.validator.refParser,schema:s,data:n}),r=a.getErrors();a.destroy(),r.length>0&&t.push({type:"error",path:e.path,constraint:"prefixItems",messages:[E(e.translator.translate("errorPrefixItems"),{index:i})]})}}),t}const Ke={additionalProperties:qe,allOf:fe,anyOf:ve,const:Ue,contains:Je,dependentRequired:ze,dependentSchemas:We,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,if:Ge,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,properties:Fe,prefixItems:$e,required:He,type:Ve,uniqueItems:Be},Ze={additionalProperties:qe,allOf:fe,anyOf:ve,const:Ue,contains:Je,dependentRequired:ze,dependentSchemas:We,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,if:Ge,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,properties:Fe,prefixItems:$e,required:He,type:Ve,uniqueItems:Be};function _e(e){let t=[];const s=pe(e.schema),i=ne(e.schema),a=re(e.schema),r=M(e.schema),o=S(e.schema),l=ue(e.schema);if(f(e.value)&&d(s)){let c=d(a)?a:{};const h=s,u=i;[r,o,l].forEach(e=>{d(e)&&e.forEach(e=>{d(e.properties)&&(c={...c,...e.properties})})}),c&&Object.keys(e.value).forEach(s=>{let i=!1;if(d(u)&&Object.keys(u).forEach(e=>{const t=new RegExp(e);i=t.test(s)}),i||!1!==h||n(c,s)||t.push({type:"error",path:e.path,constraint:"unevaluatedProperties",messages:[E(e.translator.translate("errorUnevaluatedProperties"),{property:s})]}),!i&&f(h)&&!n(c,s)){const i=new as({refParser:e.validator.refParser,schema:h,data:e.value[s]}),n=i.getErrors().map(e=>({type:"error",path:s,constraint:"unevaluatedProperties",messages:e.messages}));t=[...t,...n],i.destroy()}})}return t}const Xe={additionalProperties:qe,allOf:fe,anyOf:ve,const:Ue,contains:Je,dependentRequired:ze,dependentSchemas:We,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,if:Ge,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,propertie:Fe,prefixItems:$e,required:He,type:Ve,unevaluatedProperties:_e,uniqueItems:Be};const Qe={additionalProperties:qe,allOf:fe,anyOf:ve,const:Ue,contains:Je,dependentRequired:ze,dependentSchemas:We,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,if:Ge,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,prefixItems:$e,propertyNames:function(e){const t=[],s=j(e.schema);return f(e.value)&&d(s)&&Object.keys(e.value).forEach(i=>{new as({refParser:e.validator.refParser,schema:s,data:i}).getErrors().length>0&&t.push({type:"error",path:e.path,constraint:"propertyNames",messages:[E(e.translator.translate("errorPropertyNames"),{propertyName:i})]})}),t},properties:Fe,required:He,type:Ve,unevaluatedProperties:_e,uniqueItems:Be};class Ye{constructor(e={}){this.refParser=e.refParser,this.constraints=e.constraints??{},this.assertFormat=!!e.assertFormat&&e.assertFormat,this.translator=!!e.translator&&e.translator,this.draft=Qe,this.jsonSchemaDrafts={"http://json-schema.org/draft-04/schema#":Ne,"http://json-schema.org/draft-06/schema#":Ke,"http://json-schema.org/draft-07/schema#":Ze,"https://json-schema.org/draft/2019-09/schema":Xe,"https://json-schema.org/draft/2020-12/schema":Qe}}getErrors(t,s,i,a){let r=[];const o=e(s);if(m(o)&&!0===o)return r;if(m(o)&&!1===o)return[{type:"error",messages:["invalid"],path:a}];const l={...this.draft,...this.constraints};for(const[e,d]of Object.entries(l))if(n(o,e)){const e=d({validator:this,value:t,schema:o,key:i,path:a,translator:this.translator});e&&(r=[...r,...e])}const c=se(s,"messages");return d(c)&&(f(c)&&r.forEach(e=>{var t,s;const i=null==(s=null==c?void 0:c[null==(t=this.translator)?void 0:t.language])?void 0:s[null==e?void 0:e.constraint],n=null==c?void 0:c[null==e?void 0:e.constraint],a=i??n;return d(a)&&(e.messages=[a]),e}),g(c)&&r.length>0&&r.forEach(e=>(e.messages=c,e))),r}}class et{constructor(){this.listeners=[]}on(e,t){this.listeners.push({name:e,callback:t})}off(e){this.listeners=this.listeners.filter(t=>t.name!==e)}emit(e,...t){this.listeners.filter(t=>t.name===e).forEach(s=>{try{s.callback(...t)}catch(i){console.error(`Error in listener callback for event "${e}":`,i)}})}destroy(){Object.keys(this).forEach(e=>{delete this[e]})}}class tt extends et{constructor(t){super(),this.jedison=t.jedison,this.path=t.path||this.jedison.rootName,this.schema=t.schema,this.originalSchema=t.originalSchema??e(t.schema),this.value=d(t.value)?t.value:void 0,this.isActive=!0,this.parent=t.parent||null,this.children=[],this.ui=null,this.isDirty=!1,this.watched={},this.key=this.path.split(this.jedison.pathSeparator).pop(),this.arrayTemplateData=t.arrayTemplateData||{},this.init()}init(){this.register(),this.setInitialValue(),this.prepare(),this.setDefaultValue(),this.registerWatcher(),this.setValueFormTemplate(),this.jedison.options.container&&this.setUI(),this.on("notifyParent",e=>{this.parent&&(this.parent.isDirty=!0,this.parent.onChildChange(e))})}setUI(){if(this.jedison.isEditor){const e=this.jedison.uiResolver.getClass(this.schema);this.ui=new e(this)}}getKey(){return this.key}getSchema(){return this.schema}register(){if(this.jedison.register(this),0===this.children.length)return;const e=t=>{this.jedison.register(t),t.children.length>0&&t.children.forEach(e)};this.children.forEach(e)}unregister(){if(this.jedison.unregister(this),0===this.children.length)return;const e=t=>{this.jedison.unregister(t),t.children.length>0&&t.children.forEach(e)};this.children.forEach(e)}setInitialValue(){const e=se(this.schema,"enforceEnumDefault"),t=se(this.schema,"enforceEnum"),s=e??this.jedison.options.enforceEnumDefault,i=t??this.jedison.options.enforceEnum,n=d(t)?i:s,a=R(this.schema);if(d(a)&&!a.includes(this.getValue())&&d(a[0])&&n&&this.setValue(a[0],!1),c(this.value)){let e;const t=he(this.schema);"boolean"===t&&(e=!1),"number"===t&&(e=0),"integer"===t&&(e=0),"string"===t&&(e=""),"array"===t&&(e=[]),"object"===t&&(e={}),"null"===t&&(e=null),this.value=e}}setDefaultValue(){const e=k(this.schema);d(e)&&this.setValue(e,!1);const t=se(this.schema,"enforceConst")??this.jedison.options.enforceConst;if(d(t)&&r(t,!0)){const e=P(this.schema);d(e)&&this.setValue(e,!1)}}registerWatcher(){const e=se(this.schema,"watch");d(e)&&Object.entries(e).forEach(([e,t])=>{this.jedison.watch(t,()=>{this.updateWatchedData(e,t)})})}updateWatchedData(e,t){const s=this.jedison.getInstance(t);d(s)&&(s&&(this.watched[e]={value:s.getValue(),schema:s.getSchema(),properties:s.schema.properties?Object.keys(s.schema.properties):[]}),this.setValueFormTemplate())}setValueFormTemplate(){const e=se(this.schema,"template");d(e)&&e&&this.setValue(E(e,this.watched))}getValue(){return e(this.value)}getTemplateData(e){const t={...this.arrayTemplateData,value:this.getValue(),settings:this.jedison.options.settings};return"string"==typeof this.value&&(t.length=this.value.length,"number"==typeof this.schema.maxLength&&(t.remaining=this.schema.maxLength-this.value.length)),(null==e?void 0:e.includes("{{ functions."))&&(t.functions=this.resolveTemplateFunctions(this.jedison.options.functions)),this.parent&&(t.parent=this.parent.getTemplateData()),t}resolveTemplateFunctions(e={}){const t={instance:this};return Object.fromEntries(Object.entries(e).map(([e,s])=>[e,s(t)]))}purify(e){return"string"==typeof e&&this.jedison.options.purifyData&&"undefined"!=typeof window&&window.DOMPurify&&(e=window.DOMPurify.sanitize(e)),e}setValue(e,t=!0,s="api"){if(this.value===e)return this.value;const i=this.purify(e),n=e!==i;e=i;const a=se(this.schema,"enforceConst")??this.jedison.options.enforceConst;if(d(a)&&r(a,!0)){const t=P(this.schema);d(t)&&(e=t)}return n||o(this.value,e)?(this.value=e,this.isDirty=!0,this.emit("set-value",e,s),this.emit("change",s),this.jedison.emit("instance-change",this,s),t&&this.emit("notifyParent",s),this.value):this.value}onChildChange(e){}getErrors(){if(!this.isActive)return[];return I(this.jedison.validator.getErrors(this.getValue(),this.originalSchema,this.getKey(),this.path))}prepare(){}activate(){!1===this.isActive&&(this.isActive=!0,this.emit("notifyParent"))}deactivate(){!0===this.isActive&&(this.isActive=!1,this.emit("notifyParent"))}isReadOnly(){return!0===oe(this.schema)||!!this.parent&&this.parent.isReadOnly()}destroy(){this.unregister(),this.listeners=null,this.children.length>0&&(this.children.forEach(e=>e.destroy()),this.children=[]),this.ui&&(this.ui.destroy(),this.ui=null),Object.keys(this).forEach(e=>{this[e]=null}),super.destroy()}}class st{constructor(e){this.instance=e,this.theme=null,this.control=null,this.disabled=!1,this.readOnly=this.instance.isReadOnly(),this.showingValidationErrors=!1,this.markdownEnabled=!1,this.purifyEnabled=!1,this.title=null,this.description=null,this.storedEventListeners=[],this.init(),this.build(),this.setAttributes(),this.setReadOnlyAttribute(),this.addEventListeners(),this.setVisibility(),this.setContainerAttributes(),this.refreshUI();("always"===this.instance.jedison.options.showErrors||"always"===se(this.instance.schema,"showErrors"))&&this.showValidationErrors(this.instance.getErrors());this.instance.on("change",()=>{this.refreshUI(),this.showValidationErrors(this.instance.getErrors())})}static resolves(e){}init(){this.theme=this.instance.jedison.theme,this.markdownEnabled=se(this.instance.schema,"parseMarkdown")??this.instance.jedison.options.parseMarkdown,this.purifyEnabled=se(this.instance.schema,"purifyHtml")??this.instance.jedison.options.purifyHtml}getLevel(){return(this.instance.path.match(/\//g)||[]).length}setVisibility(){const e=se(this.instance.schema,"hidden");d(e)&&!0===e&&(this.control.container.style.display="none",this.control.container.setAttribute("aria-hidden","true"))}setContainerAttributes(){this.control.container.setAttribute("data-level",this.getLevel()),this.control.container.setAttribute("data-path",this.instance.path),this.control.container.setAttribute("data-type",he(this.instance.schema));const e=se(this.instance.schema,"containerAttributes");if(d(e)&&f(e))for(const[t,s]of Object.entries(e))if("class"===t){s.split(" ").forEach(e=>{this.control.container.classList.add(e)})}else this.control.container.setAttribute(t,s)}build(){}adaptForTable(){}setAttributes(){const e=this.control.input;if(d(e)){const t=se(this.instance.schema,"inputAttributes");if(f(t))for(const[s,i]of Object.entries(t))e.setAttribute(s,i)}}setReadOnlyAttribute(){if(this.readOnly){this.control.container.querySelectorAll("input, textarea, select").forEach(e=>{e.setAttribute("always-disabled","")})}}getIdFromPath(e){const t=this.instance.jedison.options.id;return t?t+"-"+i(e):i(e)}getValidationEventType(){return"input"===(se(this.instance.schema,"showErrors")??this.instance.jedison.options.showErrors)?"input":"change"}addEventListeners(){}clearStoredEventListeners(){this.storedEventListeners&&this.storedEventListeners.forEach(e=>{e.element&&e.handler&&e.element.removeEventListener(e.eventType||"click",e.handler)}),this.storedEventListeners=[]}showValidationErrors(e,t=!1){e=e.filter(e=>e.path===this.instance.path),this.control.messages.innerHTML="",this.showingValidationErrors=!1;("never"===this.instance.jedison.options.showErrors||"never"===se(this.instance.schema,"showErrors"))&&!t||0===e.length||(e.forEach(e=>{"properties"!==e.constraint&&e.messages.forEach(t=>{let s;s="error"===e.type?this.getErrorFeedback({message:t}):this.getWarningFeedback({message:t}),this.control.messages.appendChild(s)})}),this.showingValidationErrors=!0)}getErrorFeedback(e){return this.theme.getErrorFeedback(e)}getWarningFeedback(e){return this.theme.getWarningFeedback(e)}disable(){this.disabled=!0,this.refreshUI()}enable(){this.disabled=!1,this.refreshUI()}purifyContent(e,t){if(this.instance.jedison.options.purifyHtml&&"undefined"!=typeof window&&window.DOMPurify)return window.DOMPurify.sanitize(e,t);{const t=document.createElement("div");return t.innerHTML=e,t.textContent||t.innerText}}getHtmlFromMarkdown(e){return window.marked.parse(e)}getTitle(){let e=!1;this.title=this.instance.getKey();const t=ce(this.instance.schema);if(d(t)&&(this.title=t,e=!0),e){this.title=E(this.title,this.instance.getTemplateData(this.title)),this.title=this.markdownEnabled?this.getHtmlFromMarkdown(this.title):this.title;const e=y({},this.instance.jedison.options.domPurifyOptions,{FORBID_TAGS:["p"]});this.title=this.purifyEnabled?this.purifyContent(this.title,e):this.title}return this.title}getDescription(){const e=H(this.instance.schema);if(d(e)){this.description=E(e,this.instance.getTemplateData(this.description)),this.description=this.markdownEnabled?this.getHtmlFromMarkdown(this.description):this.description;const t=this.instance.jedison.options.domPurifyOptions;this.description=this.purifyEnabled?this.purifyContent(this.description,t):this.description}return this.description}getInfo(e=null){const t=se(e??this.instance.schema,"info");if(!d(t))return t;const s=this.instance.jedison.options.domPurifyOptions;return d(t.title)&&(t.title=this.markdownEnabled?this.getHtmlFromMarkdown(t.title):t.title,t.title=this.purifyEnabled?this.purifyContent(t.title,s):t.title),d(t.content)&&(t.content=this.markdownEnabled?this.getHtmlFromMarkdown(t.content):t.content,t.content=this.purifyEnabled?this.purifyContent(t.content,s):t.content),t}refreshUI(){this.refreshDisabledState(),this.refreshTemplates()}refreshDisabledState(){this.control.container.querySelectorAll("button, input, select, textarea").forEach(e=>{this.disabled||this.readOnly||e.hasAttribute("always-disabled")?e.setAttribute("disabled",""):e.removeAttribute("disabled",""),e.hasAttribute("always-enabled")&&e.removeAttribute("disabled","")})}refreshTemplates(){this.control.legendText&&this.getTitle()&&(this.control.legendText.innerHTML=this.getTitle()),this.control.labelText&&this.getTitle()&&(this.control.labelText.innerHTML=this.getTitle()),this.control.description&&this.getDescription()&&(this.control.description.innerHTML=this.getDescription())}sanitize(e){return e}refreshJsonDataInputSize(){if(this.control&&this.control.jsonData&&this.control.jsonData.input){const e=this.control.jsonData.input;e.style.height="auto",e.style.height=e.scrollHeight+"px",setTimeout(()=>{e&&(e.scrollTop=0)})}}refreshJsonData(){this.control&&this.control.jsonData&&this.control.jsonData.input&&(this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2))}destroy(){this.control.container&&this.control.container.parentNode&&this.control.container.parentNode.removeChild(this.control.container),Object.keys(this).forEach(e=>{delete this[e]})}}class it extends st{static resolves(e){return d(U(e))}build(){this.control=this.theme.getIfThenElseControl({title:"Options",titleHidden:se(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),description:H(this.instance.schema)})}refreshUI(){this.refreshDisabledState(),this.control.childrenSlot.innerHTML="",this.control.childrenSlot.appendChild(this.instance.activeInstance.ui.control.container),this.disabled||this.instance.isReadOnly()?this.instance.activeInstance.ui.disable():this.instance.activeInstance.ui.enable()}getErrorFeedback(e){return this.theme.getAlert(e)}}class nt extends tt{setUI(){this.ui=new it(this)}prepare(){this.instances=[],this.instanceStartingValues=[],this.instanceWithoutIf=null,this.activeInstance=null,this.index=0,this.schemas=[],this.ifThenElseSchemas=[],this.traverseSchema(this.schema),delete this.schema.if,delete this.schema.then,delete this.schema.else,this.ifThenElseSchemas.forEach(t=>{d(t.then)&&this.schemas.push(v({},e(this.schema),t.then)),d(t.else)&&this.schemas.push(v({},e(this.schema),t.else))});const t=e(this.schema);delete t.if,delete t.then,delete t.else,this.instanceWithoutIf=this.jedison.createInstance({jedison:this.jedison,schema:t,originalSchema:this.originalSchema,path:this.path,parent:this.parent}),this.schemas.forEach(e=>{const t=this.jedison.createInstance({jedison:this.jedison,schema:e,originalSchema:this.originalSchema,path:this.path,parent:this.parent});this.instanceStartingValues.push(t.getValue()),this.instances.push(t)}),this.on("set-value",(e,t)=>{this.changeValue(e,t)});const s=this.instanceWithoutIf.getValue();this.changeValue(s)}changeValue(e,t="api"){const s=this.getWithoutIfValueFromValue(e),i=this.getFittestIndex(s),a=i!==this.index;this.index=i,this.activeInstance=this.instances[i],this.activeInstance.register(),this.instances.forEach((i,r)=>{i.off("notifyParent"),i.children&&f(e)&&i.children.forEach(t=>{t.isMultiple&&n(e,t.getKey())&&t.setValue(e[t.getKey()],!0,"api")});const o=this.instanceStartingValues[r],l=i.getValue();let d=e;f(o)&&f(e)&&(a?(d=C(o,s),this.jedison.updateInstancesWatchedData()):d=C(l,e),"api"===t&&(d=C(l,e))),i.setValue(d,!1,t),i.on("notifyParent",e=>{const t=i.getValue();this.changeValue(t,e),this.emit("notifyParent",e),this.emit("change",e)})}),"api"===t&&this.hasNullableFields(this.activeInstance)&&this.activeInstance.setValue(e,!1,"secondary"),this.value=this.activeInstance.getValue()}getWithoutIfValueFromValue(e){let t=this.instanceWithoutIf.getValue();return f(t)&&f(e)?(t=C(t,e),t):e}traverseSchema(e){const t=U(e);if(d(t)){const s=de(e),i=V(e);this.ifThenElseSchemas.push({if:t,then:d(s)?s:{}}),this.ifThenElseSchemas.push({if:t,else:d(i)?i:{}})}}hasNullableFields(e){return!!e&&(!!this.isNullableSchema(e.schema)||!!e.children&&e.children.some(e=>this.hasNullableFields(e)))}isNullableSchema(e){return!!e&&(!(!e["x-format"]||!e["x-format"].includes("nullable"))||(!(!Array.isArray(e.type)||!e.type.includes("null"))||!!e.properties&&Object.values(e.properties).some(e=>this.isNullableSchema(e))))}getFittestIndex(t){let s=this.index;return this.ifThenElseSchemas.forEach((i,n)=>{if(!0===i.if)s=0;else if(!1===i.if)s=1;else{const a=e(i.if);d(this.schema.type)&&(a.type=this.schema.type);const r=new as({schema:a,data:t,refParser:this.jedison.refParser}),o=r.getErrors();r.destroy(),0===o.length&&i.then&&(s=n),o.length>0&&i.else&&(s=n)}}),s}destroy(){this.instances.forEach(e=>{e.destroy()}),super.destroy()}}class at extends tt{prepare(){this.instances=[],this.activeInstance=null,this.index=0,this.schemas=[],this.switcherOptionValues=[],this.switcherOptionsLabels=[],this.isMultiple=!0,this.on("set-value",()=>{this.onSetValue()});const t=he(this.schema);if(d(S(this.schema))||d(ue(this.schema))){const t=d(S(this.schema))?S(this.schema):ue(this.schema),s=e(this.schema);delete s.anyOf,delete s.oneOf,delete s.options,t.forEach((e,t)=>{let i="Option-"+(t+1);const n=se(e={...s,...e},"switcherTitle"),a=ce(e),r=H(e);d(r)&&(i=r),d(a)&&(i=a),d(n)&&(i=n),this.switcherOptionValues.push(t),this.switcherOptionsLabels.push(i),this.schemas.push(e)})}else if(g(t))t.forEach((e,t)=>{const s=v(this.schema),i={...s,type:e,title:e[0].toUpperCase()+e.slice(1)};d(s.title)&&(i.title=s.title),this.switcherOptionValues.push(t),this.switcherOptionsLabels.push(e.charAt(0).toUpperCase()+e.slice(1)),this.schemas.push(i)});else if("any"===t||!t){const t=e(this.schema);this.schemas=[{...t,type:"string"},{...t,type:"boolean"},{...t,type:"integer"},{...t,type:"number"},{...t,type:"array"},{...t,type:"object"},{...t,type:"null"}],this.schemas.forEach((e,t)=>{this.switcherOptionValues.push(t)}),this.switcherOptionsLabels=["String","Boolean","Integer","Number","Array","Object","Null"]}this.schemas.forEach(t=>{const s=this.jedison.createInstance({jedison:this.jedison,schema:t,path:this.path,parent:this.parent,value:e(this.value)});d(this.value)&&s.setValue(this.value,!1),s.unregister(),s.off("notifyParent"),s.on("notifyParent",e=>{this.value=this.activeInstance.getValue(),this.emit("notifyParent",e),this.emit("change",e)}),this.instances.push(s),this.register()});const s=this.getFittestIndex(this.value);this.switchInstance(s,this.value)}switchInstance(e,t,s="api"){this.index=e,this.activeInstance=this.instances[e],d(t)&&this.activeInstance.setValue(t,!1,s),this.setValue(this.activeInstance.getValue(),!0,s)}onSetValue(){if(o(this.activeInstance.getValue(),this.value)){const e=this.getFittestIndex(this.value);this.switchInstance(e,this.value)}}getFittestIndex(e){let t,s;for(let i=0;i<this.instances.length;i++){const n=this.instances[i],a=this.jedison.validator.getErrors(e,n.schema,n.getKey(),n.path);if(0===a.length){t=i;break}(void 0===t||void 0===s||a.length<s.length)&&(t=i,s=a)}return t}destroy(){this.instances.forEach(e=>{e.destroy()}),super.destroy()}}class rt extends tt{}class ot extends tt{prepare(){this.properties={},this.requiredProperties=new Set;const e=re(this.schema),t=le(this.schema);d(e)&&Object.keys(e).forEach(t=>{const s=e[t];this.properties[t]={schema:s};let i=!0;const n=d(s["x-recursive"]),a=this.jedison.options.deactivateNonRequired,r=se(this.schema,"deactivateNonRequired"),o=se(s,"deactivateNonRequired");!this.isRequired(t)&&d(a)&&!0===a&&(i=!1),!this.isRequired(t)&&d(r)&&!0===r&&(i=!1),!this.isRequired(t)&&d(o)&&!0===o&&(i=!1),!this.isRequired(t)&&n&&(i=!1),i&&this.createChild(s,t)}),d(t)&&this.jedison.isEditor&&!0===this.jedison.options.enforceRequired&&t.forEach(e=>{this.requiredProperties.add(e),n(this.properties,e)||(this.properties[e]={},this.createChild({},e))}),this.refreshInstances(),this.on("set-value",(e,t)=>{this.addMissingRequiredPropertiesToValue(e),this.removeNotListedPropertiesFromValue(e),this.refreshInstances(t)})}removeNotListedPropertiesFromValue(e){const t=se(this.schema,"enforceAdditionalProperties"),s=d(t)?t:this.jedison.options.enforceAdditionalProperties,i=T(this.schema),a=ne(this.schema)||{};this.jedison.isEditor&&s&&d(i)&&!1===i&&Object.keys(e).forEach(t=>{const s=Object.keys(a).some(e=>new RegExp(e).test(t));n(this.properties,t)||s||(console.warn("deleting",t),delete e[t])})}addMissingRequiredPropertiesToValue(e){const t=se(this.schema,"enforceRequired")??this.jedison.options.enforceRequired;this.jedison.isEditor&&t&&this.requiredProperties.forEach(t=>{n(e,t)||(e[t]=this.getChild(t).getValue())})}isRequired(e){const t=le(this.schema),s=d(t)&&t.includes(e),i=this.isDependentRequired(e);return s||i}isDependentRequired(e){const t=O(this.schema);if(d(t)){let s=[];return Object.keys(t).forEach(e=>{if(d(this.value[e])){const i=t[e];s=i.filter(e=>!n(this.value,e))}}),s.includes(e)}return!1}createChild(t,s,i,n=!1){const a=this.jedison.createInstance({jedison:this.jedison,schema:t,path:this.path+this.jedison.pathSeparator+s,parent:this,value:e(i)});this.children.push(a),this.value[s]=a.getValue();const r=se(this.schema,"deactivateNonRequired")??this.jedison.options.deactivateNonRequired;return this.isRequired(s)||!d(r)||!0!==r||n||a.deactivate(),this.onChildChange(),a}deleteChild(e){for(let t=this.children.length-1;t>=0;t--){const s=this.children[t];s.getKey()===e&&(s.destroy(),this.children.splice(t,1),this.onChildChange())}}getChild(e){return this.children.find(t=>e===t.getKey().split(this.jedison.pathSeparator).pop())}getPropertySchema(e){let t;const s=T(this.schema),i=re(this.schema),a=ne(this.schema);return d(i)&&n(i,e)?t=i[e]:d(a)&&Object.keys(a).forEach(s=>{new RegExp(s).test(e)&&(t=a[s])}),c(t)&&d(s)&&(t=s),c(t)&&(t={}),t}onChildChange(e){const t={};this.children.forEach(e=>{if(e.isActive){const s=e.getKey();"__proto__"===s?Object.defineProperty(t,s,{value:e.getValue(),enumerable:!0}):t[s]=e.getValue()}}),this.value=t,this.jedison.emit("instance-change",this,e),this.emit("notifyParent",e),this.emit("change",e)}sortChildrenByPropertyOrder(){this.children=this.children.sort((e,t)=>{const s=se(e.schema,"propertyOrder"),i=se(t.schema,"propertyOrder"),n=h(s),a=h(i);return!n&&a?1:n&&!a||s<i?-1:s>i?1:0})}refreshInstances(e){const t=this.getValue();if(f(t)){Object.keys(t).forEach(s=>{const i=this.getChild(s);if(i){i.activate();const s=i.getValue(),n=t[i.getKey()];if(o(s,n)){const s=i.setValue(n,!1,e);t[i.getKey()]=s}}else{const e=this.getPropertySchema(s);this.createChild(e,s,t[s],!0)}});for(let e=this.children.length-1;e>=0;e--){const s=this.children[e],i=s.getKey();c(t[i])&&(this.getChild(i)?s.deactivate():this.deleteChild(i))}this.sortChildrenByPropertyOrder(),this.value=t}}}class lt extends tt{prepare(){const e=X(this.schema),t=se(this.schema,"enforceMinItems"),s=d(t)?t:this.jedison.options.enforceMinItems,i=this.jedison.isEditor,n=d(s)&&!0===s,a=d(e);if(i&&n&&a)for(let r=0;r<e;r++)this.addItem();this.refreshChildren(),this.on("set-value",()=>{this.refreshChildren()})}createItemInstance(e){let t;const s=this.children.length,i=J(this.schema),n=ae(this.schema);t=d(i)?i:{};return d(n)&&d(n[s])&&(t=n[s]),this.jedison.createInstance({jedison:this.jedison,schema:t,path:this.path+this.jedison.pathSeparator+s,parent:this,arrayTemplateData:{i0:e,i1:e+1}})}setDefaultValue(){const e=k(this.schema);d(e)&&this.setValue(e)}move(t,s,i){const n=e(this.getValue()),a=n[t];n.splice(t,1),n.splice(s,0,a),this.setValue(n,!0,i),this.emit("item-move",i),this.jedison.emit("item-move",i)}addItem(t){const s=this.createItemInstance(),i=e(this.getValue());i.push(s.getValue()),s.destroy(),this.setValue(i,!0,t);const n=this.children[this.children.length-1];this.emit("item-add",t,n),this.jedison.emit("item-add",t,n)}deleteItem(t,s){const i=e(this.getValue()).filter((e,s)=>s!==t);this.setValue(i,!0,s),this.emit("item-delete",s),this.jedison.emit("item-delete",s)}onChildChange(e){const t=[];this.children.forEach(e=>{t.push(e.getValue())}),this.value=t,this.jedison.emit("instance-change",this,e),this.emit("notifyParent",e),this.emit("change",e)}refreshChildren(){this.children=[];const e=this.getValue();if(!g(e))return;const t=[];e.forEach((e,s)=>{const i=this.createItemInstance(s);this.children.push(i);const n=i.setValue(e,!1);t.push(n)}),this.value=t}}class dt extends tt{}class ct extends tt{}class ht extends tt{}const ut={properties:"glyphicon glyphicon-list",delete:"glyphicon glyphicon-trash",add:"glyphicon glyphicon-plus",moveUp:"glyphicon glyphicon-arrow-up",moveDown:"glyphicon glyphicon-arrow-down",collapse:"glyphicon glyphicon-chevron-down",expand:"glyphicon glyphicon-plus",drag:"glyphicon glyphicon-th",info:"glyphicon glyphicon-question-sign",close:"glyphicon glyphicon-remove",edit:"glyphicon glyphicon-pencil",save:"glyphicon glyphicon-floppy-disk"},pt={properties:"bi bi-card-list",delete:"bi bi-trash2",add:"bi bi-plus",moveUp:"bi bi-arrow-up",moveDown:"bi bi-arrow-down",collapse:"bi bi-chevron-down",expand:"bi bi-plus",drag:"bi bi-grip-vertical",info:"bi bi-question-circle",close:"bi bi-x",edit:"bi bi-pencil",save:"bi bi-floppy"},mt={properties:"icon-list",delete:"icon-trash",add:"icon-plus",moveUp:"icon-arrow-up",moveDown:"icon-arrow-down",collapse:"icon-chevron-down",expand:"icon-plus",drag:"icon-th",info:"icon-question-sign",close:"icon-remove",edit:"icon-pencil",save:"icon-save"},gt={properties:"fa fa-list",delete:"fa fa-trash-o",add:"fa fa-plus",moveUp:"fa fa-arrow-up",moveDown:"fa fa-arrow-down",collapse:"fa fa-chevron-down",expand:"fa fa-plus",drag:"fa fa-th",info:"fa fa-question-circle",close:"fa fa-times",edit:"fa fa-pencil",save:"fa fa-floppy-o"},ft={properties:"fas fa-list",delete:"fas fa-trash",add:"fas fa-plus",moveUp:"fas fa-arrow-up",moveDown:"fas fa-arrow-down",collapse:"fas fa-chevron-down",expand:"fas fa-plus",drag:"fas fa-grip-vertical",info:"fas fa-question-circle",close:"fas fa-times",edit:"fas fa-pencil-alt",save:"fas fa-save"},bt={properties:"fa-solid fa-list",delete:"fa-solid fa-trash",add:"fa-solid fa-plus",moveUp:"fa-solid fa-arrow-up",moveDown:"fa-solid fa-arrow-down",collapse:"fa-solid fa-chevron-down",expand:"fa-solid fa-plus",drag:"fa-solid fa-grip-vertical",info:"fa-solid fa-circle-question",close:"fa-solid fa-xmark",edit:"fa-solid fa-pencil",save:"fa-solid fa-floppy-disk"};class vt extends st{sanitize(e){return Boolean(e)}}class yt extends vt{static resolves(e){return"boolean"===he(e)&&("radios"===se(e,"format")||"radios-inline"===se(e,"format"))}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:["false","true"],titles:se(this.instance.schema,"enumTitles")||["false","true"],id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),inline:"radios-inline"===se(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}addEventListeners(){this.control.radios.forEach(e=>{e.addEventListener("change",()=>{const t="true"===e.value;this.instance.setValue(t,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(e=>{const t="true"===e.value;e.checked=t===this.instance.getValue()})}}class Ct extends vt{static resolves(e){return"boolean"===he(e)}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:["false","true"],titles:se(this.instance.schema,"enumTitles")||["false","true"],id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}addEventListeners(){this.control.input.addEventListener("change",()=>{const e="true"===this.control.input.value;this.instance.setValue(e,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.control.input.value=!0===this.instance.getValue()?"true":"false"}}class Lt extends vt{static resolves(e){return"boolean"===he(e)&&"checkbox"===se(e,"format")}build(){this.control=this.theme.getCheckboxControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(e){this.theme.adaptForTableCheckboxControl(this.control,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{this.instance.setValue(this.control.input.checked,!0,"user")})}sanitize(e){return Boolean(e)}refreshUI(){this.refreshDisabledState(),this.control.input.checked=this.instance.getValue()}}class Et extends st{sanitize(e){return String(e)}}class xt extends Et{static resolves(e){return"string"===he(e)&&("radios"===se(e,"format")||"radios-inline"===se(e,"format"))}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema),titles:se(this.instance.schema,"enumTitles")||R(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),inline:"radios-inline"===se(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}addEventListeners(){this.control.radios.forEach(e=>{e.addEventListener("change",()=>{this.instance.setValue(e.value,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(e=>{e.checked=e.value===this.instance.getValue()})}}class It extends Et{static resolves(e){return"string"===he(e)&&d(R(e))}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema),titles:se(this.instance.schema,"enumTitles")||R(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}addEventListeners(){this.control.input.addEventListener("change",()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.control.input.value=this.instance.getValue()}}class wt extends Et{static resolves(e){return"string"===he(e)&&"textarea"===se(e,"format")}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});if(!0===(se(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.options.useConstraintAttributes)){const e=Q(this.instance.schema),t=$(this.instance.schema);d(e)&&this.control.input.setAttribute("minlength",e),d(t)&&this.control.input.setAttribute("maxlength",t)}}adaptForTable(){this.theme.adaptForTableTextareaControl(this.control)}addEventListeners(){const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){super.refreshUI(),this.control.input.value=this.instance.getValue()}}class At extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"awesomplete"===t&&window.Awesomplete&&"string"===he(e)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"awesomplete")??{};this.awesomplete=new window.Awesomplete(this.control.input,e),this.control.container.querySelector(".awesomplete").style.display="block"}catch(e){console.error("Awesomplete is not available or not loaded correctly.",e)}}addEventListeners(){this.control.input.addEventListener("awesomplete-selectcomplete",()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.control.input.value=this.instance.getValue()}destroy(){this.awesomplete.destroy(),super.destroy()}}class Tt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"emojiButton"===t&&window.EmojiButton&&"string"===he(e)}build(){this.control=this.theme.getInputControl({type:"button",title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.control.input.classList.add("jedi-emoji-button"),this.control.input.value="😀";const e=se(this.instance.schema,"emojiButton")??{},t=Object.assign({theme:"auto",autoHide:!0,showPreview:!1,showSearch:!0,zIndex:1e4,position:"auto"},e);this.emojiButton=new window.EmojiButton(t)}addEventListeners(){this.emojiButton.on("emoji",e=>{this.control.input.value=e;let t=e;"object"==typeof e&&(t=e.emoji),this.instance.setValue(t,!0,"user")}),this.control.input.addEventListener("click",()=>{this.emojiButton.togglePicker(this.control.input)})}refreshUI(){this.refreshDisabledState(),this.control.input.value=this.instance.getValue()}destroy(){this.emojiButton&&(this.emojiButton=null),super.destroy()}}class jt extends Et{static resolves(e){return"string"===he(e)}static getTypes(){return["hidden","color","date","datetime-local","email","number","month","password","search","time","tel","text","url","week"]}build(){const e=se(this.instance.schema,"format");this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:jt.getTypes().includes(e)?e:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden")||"hidden"===e,info:this.getInfo()}),"color"===e&&0===this.instance.value.length&&this.instance.setValue("#000000",!1,"user");if(!0===(se(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.options.useConstraintAttributes)){const e=Q(this.instance.schema),t=$(this.instance.schema),s=ie(this.instance.schema);d(e)&&this.control.input.setAttribute("minlength",e),d(t)&&this.control.input.setAttribute("maxlength",t),d(s)&&this.control.input.setAttribute("pattern",s)}}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}addEventListeners(){const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{this.instance.setValue(this.control.input.value,!0,"user")})}sanitize(e){return String(e)}refreshUI(){super.refreshUI(),this.control.input.value=this.instance.getValue()}}class Mt extends st{sanitize(e){return"integer"===he(this.instance.schema)?Math.floor(Number(e)):Number(e)}}class St extends Mt{static resolves(e){const t=he(e),s=R(e),i=se(e,"format");return("number"===t||"integer"===t)&&d(s)&&("radios"===i||"radios-inline"===i)}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema),titles:se(this.instance.schema,"enumTitles")||R(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),inline:"radios-inline"===se(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}addEventListeners(){this.control.radios.forEach(e=>{e.addEventListener("change",()=>{const t=this.sanitize(e.value);this.instance.setValue(t,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(e=>{e.checked=Number(e.value)===Number(this.instance.getValue())})}}class Pt extends Mt{static resolves(e){const t=he(e);return("number"===t||"integer"===t)&&d(R(e))}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema),titles:se(this.instance.schema,"enumTitles")||R(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}addEventListeners(){this.control.input.addEventListener("change",()=>{const e=this.sanitize(this.control.input.value);this.instance.setValue(e,!0,"user")})}refreshUI(){this.refreshDisabledState();h(this.instance.getValue())&&(this.control.input.value=this.instance.getValue())}}class Dt extends Mt{static resolves(e){const t=he(e);return"number"===t||"integer"===t}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"number",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden")||"hidden"===se(this.instance.schema,"format"),info:this.getInfo()}),this.control.input.setAttribute("step","any");if(!0===(se(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.options.useConstraintAttributes)){const e=Z(this.instance.schema),t=z(this.instance.schema);d(e)&&this.control.input.setAttribute("min",e),d(t)&&this.control.input.setAttribute("max",t)}}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}addEventListeners(){const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{const e=this.sanitize(this.control.input.value);this.instance.setValue(e,!0,"user")}),this.control.input.addEventListener("focus",()=>{"0"===this.control.input.value&&(this.control.input.value=this.instance.getValue().toString())}),this.control.input.addEventListener("blur",()=>{this.refreshUI()})}refreshUI(){super.refreshUI();const e=this.instance.getValue();h(e)&&(this.control.input.value=e)}}class kt extends Dt{static resolves(e){const t=he(e),s=se(e,"format");return d(s)&&"number-nullable"===s&&d(t)&&g(t)&&2===t.length&&t.includes("null")&&(t.includes("number")||t.includes("integer"))}addEventListeners(){const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{const e=this.sanitize(this.control.input.value);this.instance.setValue(e,!0,"user")})}sanitize(e){if(""===e)return null;return he(this.instance.schema).includes("integer")?Math.floor(Number(e)):Number(e)}refreshUI(){super.refreshUI();const e=this.instance.getValue();if(null===e&&(this.control.input.value=""),h(e)){he(this.instance.schema).includes("integer")?this.control.input.value=Math.floor(Number(e)):this.control.input.value=e}}}class Ot extends st{static resolves(e){return"object"===he(e)}build(){this.propertyActivators={};let e=!0;const t=T(this.instance.schema);d(t)&&!1===t&&(e=!1);let s=!1;d(this.instance.jedison.options.enablePropertiesToggle)&&(s=this.instance.jedison.options.enablePropertiesToggle);const i=se(this.instance.schema,"enablePropertiesToggle");d(i)&&(s=i),this.control=this.theme.getObjectControl({title:this.getTitle(),description:this.getDescription(),titleHidden:se(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),enablePropertiesToggle:s,addProperty:e,enableCollapseToggle:se(this.instance.schema,"enableCollapseToggle")??this.instance.jedison.options.enableCollapseToggle,startCollapsed:se(this.instance.schema,"startCollapsed")??this.instance.jedison.options.startCollapsed,readOnly:this.instance.isReadOnly(),info:this.getInfo(),editJsonData:se(this.instance.schema,"editJsonData")??this.instance.jedison.options.editJsonData,propertiesToggleContent:se(this.instance.schema,"propertiesToggleContent")??this.instance.jedison.translator.translate("propertiesToggle"),collapseToggleContent:se(this.instance.schema,"collapseToggleContent")??this.instance.jedison.translator.translate("collapseToggle"),addPropertyContent:se(this.instance.schema,"addPropertyContent")??this.instance.jedison.translator.translate("objectAddProperty")}),this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2)}addEventListeners(){this.control.addPropertyBtn.addEventListener("click",()=>{const e=this.control.addPropertyControl.input.value.split(" ").join("");if(0===e.length)return;if(d(this.instance.value[e]))return;const t=this.instance.getPropertySchema(e),s=this.instance.createChild(t,e);s.activate(),this.instance.setValue(this.instance.value,!0,"user"),this.control.addPropertyControl.input.value="";const i=this.control.ariaLive,n=ce(s.schema),a=d(n)?n:e,r=this.theme.getAriaLiveMessage();r.textContent=a+" "+this.instance.jedison.translator.translate("objectPropertyAdded"),i.appendChild(r),this.control.propertiesContainer.close(),this.control.propertiesContainer.showModal()}),this.control.jsonData.saveBtn.addEventListener("click",()=>{try{const e=JSON.parse(this.control.jsonData.input.value);this.instance.setValue(e,!0,"user"),this.control.jsonData.dialog.close()}catch(e){alert("Invalid JSON")}}),this.control.jsonData.toggle.addEventListener("click",()=>{this.refreshJsonDataInputSize()})}sanitize(e){return f(e)?e:{}}getErrorFeedback(e){return this.theme.getAlert(e)}refreshPropertiesSlot(){if(r(se(this.instance.schema,"enablePropertiesToggle")??this.instance.jedison.options.enablePropertiesToggle,!0)){const e=Object.keys(this.instance.properties),t=this.instance.children.map(e=>e.getKey()),s=[...new Set([...e,...t])];for(;this.control.propertiesActivators.firstChild;)this.control.propertiesActivators.removeChild(this.control.propertiesActivators.firstChild);const{container:a,group:r}=this.theme.getPropertiesGroup();this.control.propertiesActivators.appendChild(a);const o={};s.forEach(e=>{const t=this.instance.isRequired(e),s=this.control.ariaLive,a=this.instance.getPropertySchema(e),l=ce(a),c=i(this.instance.path+this.instance.jedison.pathSeparator+e)+"-activator",h=d(l)?l:e,u=this.theme.getCheckboxControl({id:c,title:h,titleHidden:!1}),m=u.input;this.propertyActivators[e]=m,m.addEventListener("change",()=>{s.innerHTML="";const t=this.theme.getAriaLiveMessage();if(m.checked){this.instance.getChild(e)||this.instance.createChild(a,e),this.instance.getChild(e).activate(),t.textContent=h+" "+this.instance.jedison.translator.translate("objectPropertyAdded"),s.appendChild(t)}else this.instance.getChild(e).deactivate(),t.textContent=h+" "+this.instance.jedison.translator.translate("objectPropertyRemoved"),s.appendChild(t);this.control.propertiesContainer.close(),this.control.propertiesContainer.showModal()});const g=se(a,"propGroup");if(d(g)&&p(g)){let e=o[g];d(e)||(e=this.theme.getPropertiesGroup({name:g}),o[g]=e),e.group.appendChild(u.container),this.control.propertiesActivators.appendChild(e.container)}else r.appendChild(u.container);m.disabled=this.disabled||t,m.checked=n(this.instance.getValue(),e)})}}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.firstChild);this.instance.children.forEach(e=>{const t=this.theme.getCheckboxControl({id:e.path+"-opt-in",title:e.path+"-opt-in",titleHidden:!0});t.input.checked=e.isActive,t.input.addEventListener("change",()=>{e.isActive?e.deactivate():e.activate()}),e.isActive?(null===e.ui.control.container.parentNode&&(this.control.childrenSlot.appendChild(e.ui.control.container),e.ui.control.optInContainer&&e.ui.control.optInContainer.appendChild(t.container)),this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable()):e.ui.control.container.parentNode&&e.ui.control.container.parentNode.removeChild(e.ui.control.container)})}refreshUI(){super.refreshUI(),this.refreshPropertiesSlot(),this.refreshEditors(),this.refreshJsonData()}}class Ft extends Ot{static resolves(e){return"object"===he(e)&&"grid"===se(e,"format")}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);let e=this.theme.getRow();this.control.childrenSlot.appendChild(e),this.instance.children.forEach(t=>{if(t.isActive){const s=se(t.schema,"grid")||{},i=se(t.schema,"gridColumns")??void 0,n=se(t.schema,"gridOffset")??0,a=s.columns??void 0,r=s.columnsXs??i??12,o=s.columnsSm??i??r,l=s.columnsMd??a??i??o,d=s.columnsLg??i??l,c=s.offset??n,h=this.theme.getCol(r,o,l,d,c);(s.newRow||!1)&&(e=this.theme.getRow(),this.control.childrenSlot.appendChild(e)),e.appendChild(h),h.appendChild(t.ui.control.container),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable()}})}}class Ht extends Ot{static resolves(e){const t=se(e,"format"),s=/^nav-(horizontal|vertical(?:-\d+)?)$/.test(t);return"object"===he(e)&&s}init(){super.init(),this.activeTabIndex=0}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);const e=se(this.instance.schema,"format").split("-"),t=e[1],s=e[2],n="horizontal"===t?12:s??4,a=this.theme.getRow(),r=this.theme.getCol(12,12,n,n),o=this.theme.getCol(12,12,12-n,12-n),l=this.theme.getTabContent(),c=this.theme.getTabList({variant:t});this.control.childrenSlot.appendChild(a),a.appendChild(r),a.appendChild(o),r.appendChild(c),o.appendChild(l),this.instance.children.forEach((e,t)=>{if(e.isActive){const s=t===this.activeTabIndex,n=i(e.path),a=ce(e.schema),r=this.theme.getTab({hasErrors:e.children.some(e=>e.ui.showingValidationErrors),title:d(a)?a:e.getKey(),id:n,active:s});r.list.addEventListener("click",()=>{this.activeTabIndex=t}),this.theme.setTabPaneAttributes(e.ui.control.container,s,n),c.appendChild(r.list),l.appendChild(e.ui.control.container),this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable()}})}}class Vt extends st{static resolves(e){return"array"===he(e)}init(){super.init(),this.activeItemIndex=0}build(){this.control=this.theme.getArrayControl({title:this.getTitle(),description:this.getDescription(),titleHidden:se(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),enableCollapseToggle:se(this.instance.schema,"enableCollapseToggle")??this.instance.jedison.options.enableCollapseToggle,startCollapsed:se(this.instance.schema,"startCollapsed")??this.instance.jedison.options.startCollapsed,readOnly:this.instance.isReadOnly(),info:this.getInfo(),editJsonData:se(this.instance.schema,"editJsonData")??this.instance.jedison.options.editJsonData,arrayAdd:se(this.instance.schema,"arrayAdd")??this.instance.jedison.options.arrayAdd,arrayAddContent:se(this.instance.schema,"arrayAddContent")??this.instance.jedison.translator.translate("arrayAdd"),collapseToggleContent:se(this.instance.schema,"collapseToggleContent")??this.instance.jedison.translator.translate("collapseToggle")}),this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2)}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.instance.addItem("user")}),this.addJsonDataEventListeners()}addJsonDataEventListeners(){this.control.jsonData.saveBtn.addEventListener("click",()=>{try{const e=JSON.parse(this.control.jsonData.input.value);this.instance.setValue(e,!0,"user"),this.control.jsonData.dialog.close()}catch(e){alert("Invalid JSON")}}),this.control.jsonData.toggle.addEventListener("click",()=>{this.refreshJsonDataInputSize()})}getErrorFeedback(e){return this.theme.getAlert(e)}sanitize(e){return g(e)?e:[]}getButtons(e){const t=se(this.instance.schema,"arrayDeleteContent"),s=se(this.instance.schema,"arrayMoveUpContent"),i=se(this.instance.schema,"arrayMoveDownContent"),n=se(this.instance.schema,"arrayDragContent"),a=this.theme.getDeleteItemBtn({content:t??this.instance.jedison.translator.translate("arrayDelete")}),r=this.theme.getMoveUpItemBtn({content:s??this.instance.jedison.translator.translate("arrayMoveUp")}),o=this.theme.getMoveDownItemBtn({content:i??this.instance.jedison.translator.translate("arrayMoveDown")}),l=this.theme.getDragItemBtn({content:n??this.instance.jedison.translator.translate("arrayDrag")}),d=this.theme.getBtnGroup();return a.addEventListener("click",()=>{window.confirm(this.instance.jedison.translator.translate("arrayConfirmDelete"))&&(this.activeItemIndex=x(e-1,0,this.instance.value.length-1),this.instance.deleteItem(e,"user"))}),r.addEventListener("click",()=>{const t=e-1;this.activeItemIndex=t,this.instance.move(e,t,"user")}),o.addEventListener("click",()=>{const t=e+1;this.activeItemIndex=t,this.instance.move(e,t,"user")}),0===e&&r.setAttribute("always-disabled",!0),e===this.instance.children.length-1&&o.setAttribute("always-disabled",!0),{deleteBtn:a,moveUpBtn:r,moveDownBtn:o,btnGroup:d,dragBtn:l}}isSortable(){return window.Sortable&&d(se(this.instance.schema,"sortable"))}refreshSortable(e){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(e,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:e=>{this.instance.move(e.oldIndex,e.newIndex)}}))}refreshAddBtn(){const e=G(this.instance.schema),t=se(this.instance.schema,"enforceMaxItems")??this.instance.jedison.options.enforceMaxItems;d(e)&&t&&e<=this.instance.value.length?(this.control.addBtn.setAttribute("disabled",""),this.control.addBtn.setAttribute("always-disabled",!0)):this.disabled||this.readOnly||(this.control.addBtn.removeAttribute("disabled"),this.control.addBtn.removeAttribute("always-disabled"))}refreshUI(){super.refreshUI();const e=X(this.instance.schema),t=se(this.instance.schema,"arrayDelete")??this.instance.jedison.options.arrayDelete,s=se(this.instance.schema,"arrayMove")??this.instance.jedison.options.arrayMove;this.control.childrenSlot.innerHTML="",this.instance.children.forEach((i,n)=>{const{deleteBtn:a,moveUpBtn:r,moveDownBtn:o,dragBtn:l,btnGroup:c}=this.getButtons(n),{container:h,arrayActions:u,body:p}=this.theme.getArrayItem({readOnly:this.instance.isReadOnly(),index:n});u.appendChild(c),d(t)&&!0===t&&c.appendChild(a),d(s)&&!0===s&&(c.appendChild(r),c.appendChild(o)),this.isSortable()&&c.appendChild(l),this.control.childrenSlot.appendChild(h),p.appendChild(i.ui.control.container),this.disabled||this.instance.isReadOnly()?i.ui.disable():i.ui.enable(),d(e)&&this.instance.value.length<=e&&a.setAttribute("disabled","")}),this.refreshDisabledState(),this.refreshSortable(this.control.childrenSlot),this.instance.children.forEach(e=>{e.ui.refreshUI()}),this.refreshAddBtn(),this.refreshJsonData()}}class Rt extends Vt{static resolves(e,t){return"array"===he(e)&&"table"===se(e,"format")}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.addJsonDataEventListeners()}isSortable(){return window.Sortable&&d(se(this.instance.schema,"sortable"))}refreshUI(){this.control.childrenSlot.innerHTML="";const e=this.theme.getTable();this.control.childrenSlot.appendChild(e.container);const t=se(this.instance.schema,"arrayDelete")??this.instance.jedison.options.arrayDelete,s=se(this.instance.schema,"arrayMove")??this.instance.jedison.options.arrayMove,i=se(this.instance.schema,"arrayButtonsPosition")??this.instance.jedison.options.arrayButtonsPosition,n=this.theme.getTableHeader(),{label:a}=this.theme.getFakeLabel({content:"Controls",visuallyHidden:!0});if(n.appendChild(a),"left"===i&&e.thead.appendChild(n),this.instance.children.length){const t=J(this.instance.schema),s=this.theme.getTableHeader();if(t.title){const e=this.theme.getFakeLabel({content:t.title});s.appendChild(e.label)}const i=se(t,"info");if(d(i)){const e=this.getInfo(t),n=this.theme.getInfo(e);"modal"===i.variant&&this.theme.infoAsModal(n,this.getIdFromPath(this.instance.path),e),s.appendChild(n.container)}e.thead.appendChild(s)}"right"===i&&e.thead.appendChild(n),this.instance.children.forEach((n,a)=>{const r=document.createElement("tr"),o=this.theme.getTableDefinition({isButtonColumn:!0}),{deleteBtn:l,moveUpBtn:c,moveDownBtn:h,dragBtn:u,btnGroup:p}=this.getButtons(a);this.isSortable()&&p.appendChild(u),d(t)&&!0===t&&p.appendChild(l),d(s)&&!0===s&&(p.appendChild(c),p.appendChild(h)),o.appendChild(p),"left"===i&&r.appendChild(o);const m=this.theme.getTableDefinition();n.ui.adaptForTable(n,m),m.appendChild(n.ui.control.container),r.appendChild(m),"right"===i&&r.appendChild(o),e.tbody.appendChild(r)}),this.refreshSortable(e.tbody),this.refreshAddBtn(),this.refreshJsonData(),this.refreshDisabledState(),this.refreshScrollPosition(e.container),e.container.addEventListener("scroll",()=>{this.lastScrollTop=e.container.scrollTop,this.lastScrollLeft=e.container.scrollLeft})}refreshScrollPosition(e){e.scroll({top:this.lastScrollTop,left:this.lastScrollLeft})}refreshSortable(e){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(e,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:e=>{this.instance.move(e.oldIndex,e.newIndex)}}))}}class Bt extends Vt{static resolves(e,t){let s=J(e);if(!s)return!1;t&&(s=t.expand(s));const i=he(s);return!!i&&("array"===he(e)&&"object"===i&&"table-object"===se(e,"format"))}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.addJsonDataEventListeners()}isSortable(){return window.Sortable&&d(se(this.instance.schema,"sortable"))}refreshUI(){this.control.childrenSlot.innerHTML="";const e=this.theme.getTable();this.control.childrenSlot.appendChild(e.container);const t=se(this.instance.schema,"arrayDelete")??this.instance.jedison.options.arrayDelete,s=se(this.instance.schema,"arrayMove")??this.instance.jedison.options.arrayMove,i=se(this.instance.schema,"arrayButtonsPosition")??this.instance.jedison.options.arrayButtonsPosition,n=this.theme.getTableHeader(),{label:a}=this.theme.getFakeLabel({content:"Controls",visuallyHidden:!0});n.appendChild(a),"left"===i&&e.thead.appendChild(n),0===this.instance.getValue().length&&e.table.removeChild(e.thead);let r=J(this.instance.schema);this.instance.jedison.refParser&&(r=this.instance.jedison.refParser.expand(r));const o=re(r);Object.values(o).forEach(t=>{const s=this.theme.getTableHeader();if(t.title){const e=this.theme.getFakeLabel({content:t.title});s.appendChild(e.label)}const i=se(t,"info");if(d(i)){const e=this.getInfo(t),n=this.theme.getInfo(e);"modal"===i.variant&&this.theme.infoAsModal(n,this.getIdFromPath(this.instance.path),e),s.appendChild(n.container)}e.thead.appendChild(s)}),"right"===i&&e.thead.appendChild(n),this.instance.children.forEach((n,a)=>{const r=document.createElement("tr"),o=this.theme.getTableDefinition({isButtonColumn:!0}),{deleteBtn:l,moveUpBtn:c,moveDownBtn:h,dragBtn:u,btnGroup:p}=this.getButtons(a);if(this.isSortable()&&p.appendChild(u),d(t)&&!0===t&&p.appendChild(l),d(s)&&!0===s&&(p.appendChild(c),p.appendChild(h)),o.appendChild(p),"left"===i&&r.appendChild(o),n.children.length)n.children.forEach(e=>{const t=this.theme.getTableDefinition();e.ui.adaptForTable(t),t.appendChild(e.ui.control.container),r.appendChild(t)});else{const e=this.theme.getTableDefinition();n.ui.adaptForTable(e),e.appendChild(n.ui.control.container),r.appendChild(e)}"right"===i&&r.appendChild(o),e.tbody.appendChild(r)}),this.refreshSortable(e.tbody),this.refreshAddBtn(),this.refreshJsonData(),this.refreshDisabledState(),this.refreshScrollPosition(e.container),e.container.addEventListener("scroll",()=>{this.lastScrollTop=e.container.scrollTop,this.lastScrollLeft=e.container.scrollLeft})}refreshScrollPosition(e){e.scroll({top:this.lastScrollTop,left:this.lastScrollLeft})}refreshSortable(e){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(e,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:e=>{this.instance.move(e.oldIndex,e.newIndex)}}))}}class qt extends st{static resolves(e){const t="choices"===se(e,"format"),s=window.Choices,i=he(e),n=J(e),a=d(n)&&he(n),r=d(i)&&"array"===i,o=!0===me(e),l=d(n)&&d(a),c=["string","number","integer"],h=d(n)&&d(a)&&(c.includes(a)||g(a)&&a.some(e=>c.includes(e)));return t&&s&&r&&o&&l&&h}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:[],titles:[],id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.control.input.setAttribute("multiple","");try{const e=this.instance.getValue(),t=this.instance.schema.items.enum??[],s=se(this.instance.schema.items,"enumTitles")??this.instance.getValue(),i=se(this.instance.schema,"choicesOptions")??{};this.choicesInstance&&this.choicesInstance.destroy(),this.choices=t.map((t,i)=>({value:t,label:s[i]||t,selected:e.includes(t)})),this.choicesInstance=new window.Choices(this.control.input,{duplicateItemsAllowed:!1,removeItemButton:!0,choices:this.choices,...i})}catch(e){console.error("Choices is not available or not loaded correctly.",e)}}addEventListeners(){this.control.input.addEventListener("change",()=>{const e=this.choicesInstance.getValue(!0);e!==this.instance.getValue()&&this.instance.setValue(e,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.choicesInstance.disable():this.choicesInstance.enable()}refreshUI(){super.refreshUI();const e=this.instance.getValue();this.choicesInstance.removeActiveItems(),Array.isArray(e)&&e.forEach(e=>{this.choicesInstance.setChoiceByValue(e)})}destroy(){this.choicesInstance.destroy(),super.destroy()}}class Nt extends Vt{static resolves(e){const t=se(e,"format"),s=/^nav-(horizontal|vertical(?:-\d+)?)$/.test(t);return"array"===he(e)&&s}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.addJsonDataEventListeners()}refreshUI(){this.control.childrenSlot.innerHTML="",this.clearStoredEventListeners();const e=se(this.instance.schema,"format").split("-"),t=e[1],s=e[2],n="horizontal"===t?12:s??4,a=this.theme.getRow(),r=this.theme.getCol(12,12,n,n),o=this.theme.getCol(12,12,12-n,12-n),l=this.theme.getTabContent(),c=this.theme.getTabList({variant:t}),h=se(this.instance.schema,"arrayDelete")??this.instance.jedison.options.arrayDelete,u=se(this.instance.schema,"arrayMove")??this.instance.jedison.options.arrayMove;this.control.childrenSlot.appendChild(a),a.appendChild(r),a.appendChild(o),r.appendChild(c),o.appendChild(l),this.instance.children.forEach((e,t)=>{const{deleteBtn:s,moveUpBtn:n,moveDownBtn:a,btnGroup:r}=this.getButtons(t);d(h)&&!0===h&&r.appendChild(s),d(u)&&!0===u&&(r.appendChild(n),r.appendChild(a)),this.control.childrenSlot.appendChild(e.ui.control.container);const o=ce(e.schema),p=d(o)?o+" "+(t+1):e.getKey();let m;const g=se(this.instance.schema,"titleTemplate");if(g){const t=g;m=E(t,e.getTemplateData(t))??p}const f=t===this.activeItemIndex,b=i(e.path),{list:v,arrayActions:y}=this.theme.getTab({hasErrors:e.children.some(e=>e.ui.showingValidationErrors),title:(null==m?void 0:m.length)?m:p,id:b,active:f});y.appendChild(r);const C=()=>{this.activeItemIndex=t};v.addEventListener("click",C),this.storedEventListeners.push({element:v,handler:C,eventType:"click"}),this.theme.setTabPaneAttributes(e.ui.control.container,f,b),c.appendChild(v),l.appendChild(e.ui.control.container),this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable(),0===t&&n.setAttribute("disabled",""),this.instance.value.length-1===t&&a.setAttribute("disabled","")}),this.refreshDisabledState(),this.refreshAddBtn(),this.refreshJsonData()}}class Ut extends st{static resolves(e){const t=he(e),s=ue(e);return d(S(e))||d(s)||"any"===t||g(t)||c(t)}build(){this.switcherInput=se(this.instance.schema,"switcherInput")??this.instance.jedison.options.switcherInput,this.control=this.theme.getMultipleControl({titleHidden:se(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),switcherOptionValues:this.instance.switcherOptionValues,switcherOptionsLabels:this.instance.switcherOptionsLabels,switcher:this.switcherInput,readOnly:this.instance.isReadOnly()})}adaptForTable(e){this.theme.adaptForTableMultipleControl(this.control,e)}addEventListeners(){"select"===this.switcherInput&&this.control.switcher.input.addEventListener("change",()=>{const e=Number(this.control.switcher.input.value);this.instance.switchInstance(e,void 0,"user")}),"radios"!==this.switcherInput&&"radios-inline"!==this.switcherInput||this.control.switcher.radios.forEach(e=>{e.addEventListener("change",()=>{const t=Number(e.value);this.instance.switchInstance(t,void 0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.childrenSlot.innerHTML="",this.control.childrenSlot.appendChild(this.instance.activeInstance.ui.control.container),"select"===this.switcherInput&&(this.control.switcher.input.value=this.instance.index),"radios"!==this.switcherInput&&"radios-inline"!==this.switcherInput||this.control.switcher.radios.forEach(e=>{const t=Number(e.value);e.checked=t===this.instance.index}),this.disabled||this.instance.isReadOnly()?this.instance.activeInstance.ui.disable():this.instance.activeInstance.ui.enable()}getErrorFeedback(e){return this.theme.getAlert(e)}}class Jt extends st{static resolves(e){return"null"===he(e)}build(){this.control=this.theme.getNullControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden")||"hidden"===se(this.instance.schema,"format"),info:this.getInfo()})}sanitize(){return null}}class zt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"simplemde"===t&&window.SimpleMDE&&"string"===he(e)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=e(se(this.instance.schema,"simplemde")??{});t.element=this.control.input,this.simplemde=new window.SimpleMDE(t)}catch(t){console.error("simpleMDE is not available or not loaded correctly.",t)}}addEventListeners(){this.simplemde.codemirror.on("blur",()=>{const e=this.simplemde.value();e!==this.instance.getValue()&&this.instance.setValue(e,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.simplemde.isPreviewActive()||(this.simplemde.togglePreview(),this.control.container.querySelector(".editor-toolbar").style.display="none"):this.simplemde.isPreviewActive()&&(this.simplemde.togglePreview(),this.control.container.querySelector(".editor-toolbar").style.display="block")}refreshUI(){super.refreshUI(),this.simplemde.value(this.instance.getValue())}destroy(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor.container.remove()),super.destroy()}}class Wt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"quill"===t&&window.Quill&&"string"===he(e)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"quill")??{};this.quill=new window.Quill(this.control.placeholder,e)}catch(e){console.error("Quill is not available or not loaded correctly.",e)}}addEventListeners(){this.quill.root.addEventListener("blur",()=>{const e=this.quill.getText();e!==this.instance.getValue()&&this.instance.setValue(e,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.quill.disable():this.quill.enable()}refreshUI(){super.refreshUI(),this.quill.setText(this.instance.getValue())}}class Gt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"jodit"===t&&window.Jodit&&"string"===he(e)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e={showCharsCounter:!1,showWordsCounter:!1,showXPathInStatusbar:!1,toolbarAdaptive:!1,buttons:["bold","italic","underline","strikethrough","|","ul","ol","|","link","|","source","preview"]},t=se(this.instance.schema,"jodit")??{},s=Object.assign({},e,t);this.jodit=window.Jodit.make(this.control.input,s)}catch(e){console.error("Jodit is not available or not loaded correctly.",e)}}addEventListeners(){this.jodit.events.on("change",()=>{const e=this.jodit.value;if(e!==this.instance.getValue()){const t=this.jodit.selection.save();this.instance.setValue(e,!0,"user"),this.jodit.selection.restore(t)}})}refreshDisabledState(){this.disabled||this.readOnly?this.jodit.setReadOnly(!0):this.jodit.setReadOnly(!1)}refreshUI(){super.refreshUI();const e=this.instance.getValue();this.jodit.value!==e&&(this.jodit.value=e)}destroy(){this.jodit.destruct(),super.destroy()}}class $t extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"flatpickr"===t&&window.flatpickr&&"string"===he(e)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"flatpickr")??{};this.flatpickr=window.flatpickr(this.control.input,e)}catch(e){console.error("Flatpickr is not available or not loaded correctly.",e)}}addEventListeners(){this.control.input.addEventListener("change",()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.flatpickr.setDate(this.instance.getValue())}destroy(){this.flatpickr.destroy(),super.destroy()}}class Kt extends Et{static resolves(e){const t="string"===he(e),s=window.IMask,i=se(e,"format");return d(i)&&"imask"===i&&t&&s}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"imask")??{},t=e["x-settings"],s=t&&this.instance.jedison.options.settings[t]?this.instance.jedison.options.settings[t]:{},i={...e,...s};this.imask=window.IMask(this.control.input,i),this.useMaskedValue=e["x-masked"]??!1}catch(e){console.error("IMask is not available or not loaded or configured correctly.",e)}}addEventListeners(){this.imask.on("accept",()=>{const e=this.useMaskedValue?this.imask.value:this.imask.unmaskedValue;this.instance.setValue(e,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.imask.value=this.instance.getValue()}destroy(){this.imask.destroy(),super.destroy()}}class Zt extends Mt{static resolves(e){const t=he(e),s=window.IMask,i=se(e,"format");return d(i)&&"imask"===i&&"number"===t&&s}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"imask")??{},t=e["x-settings"],s=t&&this.instance.jedison.options.settings[t]?this.instance.jedison.options.settings[t]:{},i={mask:Number,...e,...s};this.imask=window.IMask(this.control.input,i),this.useMaskedValue=e["x-masked"]??!1}catch(e){console.error("IMask is not available or not loaded or configured correctly.",e)}}addEventListeners(){this.imask.on("accept",()=>{const e=this.imask.typedValue;this.instance.setValue(e,!0,"user")})}refreshUI(){this.refreshDisabledState();const e=this.instance.getValue();this.imask.value=null!=e?String(e):""}destroy(){this.imask.destroy(),super.destroy()}}class _t extends Mt{static resolves(e){const t=se(e,"format");return d(t)&&"raty"===t&&"undefined"!=typeof Raty&&"number"===he(e)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"raty")??{};this.raty=new Raty(this.control.placeholder,Object.assign({},e),{click:e=>{this.instance.setValue(e,!0,"user")}}),this.raty.init()}catch(e){console.error("Raty is not available or not loaded correctly.",e)}}refreshDisabledState(){this.disabled||this.readOnly?this.raty.readOnly(!0):this.raty.readOnly(!1)}refreshUI(){super.refreshUI(),this.raty.score(this.instance.getValue())}}class Xt extends st{static resolves(e){const t=he(e),s=J(e),i=d(s)&&he(s),n=d(t)&&"array"===t,a=!0===me(e),r=d(s)&&d(R(e.items)),o=d(s)&&d(i),l=["string","number","integer"],c=d(s)&&d(i)&&(l.includes(i)||g(i)&&i.some(e=>l.includes(e)));return n&&a&&r&&o&&c}build(){this.control=this.theme.getCheckboxesControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema.items),titles:se(this.instance.schema.items,"enumTitles")||R(this.instance.schema.items),id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),inline:"checkboxes-inline"===se(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(e){this.theme.adaptForTableCheckboxesControl(this.control,e)}addEventListeners(){this.control.checkboxes.forEach(e=>{e.addEventListener("change",()=>{const t=this.instance.getValue();if(e.checked)t.push(e.value);else{const s=t.indexOf(e.value);s>-1&&t.splice(s,1)}this.instance.setValue(t,!0,"user")})})}refreshUI(){this.refreshDisabledState();const e=this.instance.getValue();this.control.checkboxes.forEach(t=>{t.checked=e.includes(t.value)})}}class Qt extends Mt{static resolves(e){const t=he(e),s="number"===t||"integer"===t;if(!s)return!1;const i="range"===se(e,"format");return s&&i}build(){let e,t=0,s=100;d(this.instance.schema.minimum)?t=this.instance.schema.minimum:d(this.instance.schema.exclusiveMinimum)&&(t=this.instance.schema.exclusiveMinimum+.01),d(this.instance.schema.maximum)?s=this.instance.schema.maximum:d(this.instance.schema.exclusiveMaximum)&&(s=this.instance.schema.exclusiveMaximum-.01);const i=he(this.instance.schema),n=this.instance.schema.multipleOf;e=d(n)?n:"integer"===i?1:.01,this.control=this.theme.getInputRangeControl({title:this.getTitle(),description:this.getDescription(),type:"range",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});!0===(se(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.options.useConstraintAttributes)&&(this.control.input.setAttribute("min",t),this.control.input.setAttribute("max",s)),this.control.input.setAttribute("step",e);const a=se(this.instance.schema,"inputAttributes");a&&"object"==typeof a&&Object.keys(a).forEach(e=>{this.control.input.setAttribute(e,a[e])});const r=this.instance.getValue();this.control.output.textContent=void 0!==r?r:t}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}addEventListeners(){this.control.input.addEventListener("input",()=>{this.control.output.textContent=parseFloat(this.control.input.value)});const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{const e=parseFloat(this.control.input.value);this.control.output.textContent=e,this.instance.setValue(e,!0,"user")})}sanitize(e){const t=he(this.instance.schema),s=Number(e);return"integer"===t?Math.round(s):s}refreshUI(){super.refreshUI();const e=this.instance.getValue();this.control.input.value=void 0!==e?e:0,this.control.output&&(this.control.output.textContent=void 0!==e?e:0)}}class Yt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"ace"===t&&window.ace&&"string"===he(e)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"ace")??{},t=e.mode||"text";this.aceContainer=document.createElement("div");const s=e.height||"300px",i=e.width||"100%",n=e.minHeight,a=e.maxHeight,r=e.minWidth,o=e.maxWidth;this.aceContainer.style.height=s,this.aceContainer.style.width=i,n&&(this.aceContainer.style.minHeight=n),a&&(this.aceContainer.style.maxHeight=a),r&&(this.aceContainer.style.minWidth=r),o&&(this.aceContainer.style.maxWidth=o),this.control.input.style.display="none",this.control.input.parentNode.insertBefore(this.aceContainer,this.control.input),this.aceEditor=window.ace.edit(this.aceContainer),this.aceEditor.setTheme(e.theme||"ace/theme/chrome");try{this.aceEditor.session.setMode(`ace/mode/${t}`)}catch{console.warn(`Ace mode "${t}" not loaded`)}const l=this.instance.getValue();this.aceEditor.setValue("string"==typeof l?l:""),this.aceEditor.clearSelection()}catch(e){console.error("Ace editor is not available or not loaded correctly.",e)}}addEventListeners(){this.aceEditor&&this.aceEditor.on("blur",()=>{const e=this.aceEditor.getValue();e!==this.instance.getValue()&&this.instance.setValue(e,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?(this.aceEditor.setReadOnly(!0),this.aceContainer.style.opacity="0.6",this.aceContainer.classList.add("ace-disabled")):(this.aceEditor.setReadOnly(!1),this.aceContainer.style.opacity="1",this.aceContainer.classList.remove("ace-disabled"))}refreshUI(){super.refreshUI();const e=this.instance.getValue(),t="string"==typeof e?e:String(e||"");this.aceEditor.getValue()!==t&&(this.aceEditor.setValue(t),this.aceEditor.clearSelection())}}class es{constructor(e){this.customEditors=e.customEditors??[],this.refParser=e.refParser??null,this.editors=[kt,Ut,it,yt,Lt,Ct,xt,It,wt,At,Tt,zt,Wt,Gt,$t,Kt,Yt,jt,Zt,_t,Qt,St,Pt,Dt,Ft,Ht,Ot,qt,Xt,Bt,Rt,Nt,Vt,Jt]}getClass(e){for(const t of this.customEditors)if(t.resolves(e,this.refParser))return t;for(const t of this.editors)if(t.resolves(e,this.refParser))return t;return null}}const ts={errorAdditionalProperties:'Has additional property "{{ property }}" but no additional properties are allowed.',errorAnyOf:"Must validate against at least one of the provided schemas.",errorConst:"Must have value of: {{ const }}.",errorContains:"Must contain at least one item matching the provided schema.",errorDependentRequired:"Must have the required properties: {{ dependentRequired }}.",errorEnum:"Must be one of the enumerated values: {{ enum }}.",errorExclusiveMaximum:"Must be less than {{ exclusiveMaximum }}.",errorExclusiveMinimum:"Must be greater than {{ exclusiveMinimum }}.",errorFormat:"Must be a valid {{ format }}.",errorItems:"Must have items that validate against the provided schema.",errorMaximum:"Must be at most {{ maximum }}.",errorMaxItems:"Must have at most {{ maxItems }} items.",errorMaxLength:"Must be at most {{ maxLength }} characters long.",errorMaxProperties:"Must have at most {{ maxProperties }} properties.",errorMaxContains:"Must contain at most {{ maxContains }} items matching the provided schema. It currently contains {{ counter }}.",errorMinContains:"Must contain at least {{ minContains }} items matching the provided schema. It currently contains {{ counter }}.",errorMinimum:"Must be at least {{ minimum }}.",errorMinItems:"Must have at least {{ minItems }} items.",errorMinLength:"Must be at least {{ minLength }} characters long.",errorMinProperties:"Must have at least {{ minProperties }} properties.",errorMultipleOf:"Must be multiple of {{ multipleOf }}.",errorNot:"Must not validate against the provided schema.",errorOneOf:"Must validate against exactly one of the provided schemas. It currently validates against {{ counter }} of the schemas.",errorPattern:'Must match the pattern: "{{ pattern }}".',errorPrefixItems:"Item {{ index }} fails validation.",errorPropertyNames:'Property name "{{ propertyName }}" fails validation.',errorProperties:"The following properties do not comply with their schemas: {{ properties }}",errorRequired:"Must have the required properties: {{ required }}.",errorType:"Must be of type {{ type }}.",errorUnevaluatedProperties:'Has invalid unevaluated property "{{ property }}"',errorUniqueItems:"Must have unique items.",arrayDelete:"Delete item",arrayMoveUp:"Move up",arrayMoveDown:"Move down",arrayDrag:"Drag",arrayAdd:"Add item",arrayConfirmDelete:"Are you sure you want to delete this item?",objectAddProperty:"Add property",objectPropertyAdded:"field was added to the form",objectPropertyRemoved:"field was removed from the form",propertiesToggle:"Properties",collapseToggle:"Collapse"},ss={en:{errorAdditionalProperties:'Has additional property "{{ property }}" but no additional properties are allowed.',errorAnyOf:"Must validate against at least one of the provided schemas.",errorConst:"Must have value of: {{ const }}.",errorContains:"Must contain at least one item matching the provided schema.",errorDependentRequired:"Must have the required properties: {{ dependentRequired }}.",errorEnum:"Must be one of the enumerated values: {{ enum }}.",errorExclusiveMaximum:"Must be less than {{ exclusiveMaximum }}.",errorExclusiveMinimum:"Must be greater than {{ exclusiveMinimum }}.",errorFormat:"Invalid format: {{ format }}.",errorItems:"Must have items that validate against the provided schema.",errorMaximum:"Must be at most {{ maximum }}.",errorMaxItems:"Must have at most {{ maxItems }} items.",errorMaxLength:"Must be at most {{ maxLength }} characters long.",errorMaxProperties:"Must have at most {{ maxProperties }} properties.",errorMaxContains:"Must contain at most {{ maxContains }} items matching the provided schema. It currently contains {{ counter }}.",errorMinContains:"Must contain at least {{ minContains }} items matching the provided schema. It currently contains {{ counter }}.",errorMinimum:"Must be at least {{ minimum }}.",errorMinItems:"Must have at least {{ minItems }} items.",errorMinLength:"Must be at least {{ minLength }} characters long.",errorMinProperties:"Must have at least {{ minProperties }} properties.",errorMultipleOf:"Must be multiple of {{ multipleOf }}.",errorNot:"Must not validate against the provided schema.",errorOneOf:"Must validate against exactly one of the provided schemas. It currently validates against {{ counter }} of the schemas.",errorPattern:'Must match the pattern: "{{ pattern }}".',errorPrefixItems:"Item {{ index }} fails validation.",errorPropertyNames:'Property name "{{ propertyName }}" fails validation.',errorProperties:"The following properties do not comply with their schemas: {{ properties }}",errorRequired:"Must have the required properties: {{ required }}.",errorType:"Must be of type {{ type }}.",errorUnevaluatedProperties:'Has invalid unevaluated property "{{ property }}"',errorUniqueItems:"Must have unique items.",arrayDelete:"Delete item",arrayMoveUp:"Move up",arrayMoveDown:"Move down",arrayDrag:"Drag",arrayAdd:"Add item",arrayConfirmDelete:"Are you sure you want to delete this item?",objectAddProperty:"Add property",objectPropertyAdded:"field was added to the form",objectPropertyRemoved:"field was removed from the form",propertiesToggle:"Properties",collapseToggle:"Collapse"},de:{errorAdditionalProperties:'Hat die zusätzliche Eigenschaft "{{ property }}", aber keine zusätzlichen Eigenschaften sind erlaubt.',errorAnyOf:"Muss mindestens einem der bereitgestellten Schemata entsprechen.",errorConst:"Muss den Wert {{ const }} haben.",errorContains:"Muss mindestens ein Element enthalten, das dem bereitgestellten Schema entspricht.",errorDependentRequired:"Muss die erforderlichen Eigenschaften haben: {{ dependentRequired }}.",errorEnum:"Muss einer der aufgeführten Werte sein: {{ enum }}.",errorExclusiveMaximum:"Muss kleiner als {{ exclusiveMaximum }} sein.",errorExclusiveMinimum:"Muss größer als {{ exclusiveMinimum }} sein.",errorFormat:"Ungültiges Format: {{ format }}.",errorItems:"Muss Elemente enthalten, die dem bereitgestellten Schema entsprechen.",errorMaximum:"Darf höchstens {{ maximum }} sein.",errorMaxItems:"Darf höchstens {{ maxItems }} Elemente enthalten.",errorMaxLength:"Darf höchstens {{ maxLength }} Zeichen lang sein.",errorMaxProperties:"Darf höchstens {{ maxProperties }} Eigenschaften haben.",errorMaxContains:"Darf höchstens {{ maxContains }} Elemente enthalten, die dem bereitgestellten Schema entsprechen. Aktuell enthält es {{ counter }}.",errorMinContains:"Muss mindestens {{ minContains }} Elemente enthalten, die dem bereitgestellten Schema entsprechen. Aktuell enthält es {{ counter }}.",errorMinimum:"Muss mindestens {{ minimum }} sein.",errorMinItems:"Muss mindestens {{ minItems }} Elemente enthalten.",errorMinLength:"Muss mindestens {{ minLength }} Zeichen lang sein.",errorMinProperties:"Muss mindestens {{ minProperties }} Eigenschaften haben.",errorMultipleOf:"Muss ein Vielfaches von {{ multipleOf }} sein.",errorNot:"Darf nicht dem bereitgestellten Schema entsprechen.",errorOneOf:"Muss genau einem der bereitgestellten Schemata entsprechen. Derzeit entspricht es {{ counter }} der Schemata.",errorPattern:'Muss dem Muster "{{ pattern }}" entsprechen.',errorPrefixItems:"Element {{ index }} entspricht nicht der Validierung.",errorPropertyNames:'Der Eigenschaftsname "{{ propertyName }}" entspricht nicht der Validierung.',errorProperties:"Die folgenden Eigenschaften entsprechen nicht ihren Schemata: {{ properties }}",errorRequired:"Muss die erforderlichen Eigenschaften haben: {{ required }}.",errorType:"Muss vom Typ {{ type }} sein.",errorUnevaluatedProperties:'Hat eine ungültige nicht bewertete Eigenschaft "{{ property }}"',errorUniqueItems:"Muss eindeutige Elemente haben.",arrayDelete:"Element löschen",arrayMoveUp:"Nach oben verschieben",arrayMoveDown:"Nach unten verschieben",arrayDrag:"Ziehen",arrayAdd:"Element hinzufügen",arrayConfirmDelete:"Möchten Sie dieses Element wirklich löschen?",objectAddProperty:"Eigenschaft hinzufügen",objectPropertyAdded:"Feld wurde dem Formular hinzugefügt",objectPropertyRemoved:"Feld wurde aus dem Formular entfernt",propertiesToggle:"Eigenschaften",collapseToggle:"Einklappen"},it:{errorAdditionalProperties:'Ha la proprietà aggiuntiva "{{ property }}" ma non sono consentite proprietà aggiuntive.',errorAnyOf:"Deve rispettare almeno uno degli schemi forniti.",errorConst:"Deve avere il valore: {{ const }}.",errorContains:"Deve contenere almeno un elemento che rispetti lo schema fornito.",errorDependentRequired:"Deve avere le proprietà richieste: {{ dependentRequired }}.",errorEnum:"Deve essere uno dei valori elencati: {{ enum }}.",errorExclusiveMaximum:"Deve essere inferiore a {{ exclusiveMaximum }}.",errorExclusiveMinimum:"Deve essere maggiore di {{ exclusiveMinimum }}.",errorFormat:"Formato non valido: {{ format }}.",errorItems:"Deve avere elementi che rispettano lo schema fornito.",errorMaximum:"Deve essere al massimo {{ maximum }}.",errorMaxItems:"Deve avere al massimo {{ maxItems }} elementi.",errorMaxLength:"Deve avere al massimo {{ maxLength }} caratteri.",errorMaxProperties:"Deve avere al massimo {{ maxProperties }} proprietà.",errorMaxContains:"Deve contenere al massimo {{ maxContains }} elementi che rispettano lo schema fornito. Attualmente ne contiene {{ counter }}.",errorMinContains:"Deve contenere almeno {{ minContains }} elementi che rispettano lo schema fornito. Attualmente ne contiene {{ counter }}.",errorMinimum:"Deve essere almeno {{ minimum }}.",errorMinItems:"Deve avere almeno {{ minItems }} elementi.",errorMinLength:"Deve avere almeno {{ minLength }} caratteri.",errorMinProperties:"Deve avere almeno {{ minProperties }} proprietà.",errorMultipleOf:"Deve essere un multiplo di {{ multipleOf }}.",errorNot:"Non deve rispettare lo schema fornito.",errorOneOf:"Deve rispettare esattamente uno degli schemi forniti. Attualmente rispetta {{ counter }} degli schemi.",errorPattern:'Deve rispettare il modello: "{{ pattern }}".',errorPrefixItems:"L'elemento {{ index }} non è valido.",errorPropertyNames:'Il nome della proprietà "{{ propertyName }}" non è valido.',errorProperties:"Le seguenti proprietà non rispettano i loro schemi: {{ properties }}",errorRequired:"Deve avere le proprietà richieste: {{ required }}.",errorType:"Deve essere di tipo {{ type }}.",errorUnevaluatedProperties:'Ha una proprietà non valutata non valida "{{ property }}"',errorUniqueItems:"Deve avere elementi univoci.",arrayDelete:"Elimina elemento",arrayMoveUp:"Sposta su",arrayMoveDown:"Sposta giù",arrayDrag:"Trascina",arrayAdd:"Aggiungi elemento",arrayConfirmDelete:"Sei sicuro di voler eliminare questo elemento?",objectAddProperty:"Aggiungi proprietà",objectPropertyAdded:"Campo aggiunto al modulo",objectPropertyRemoved:"Campo rimosso dal modulo",propertiesToggle:"Proprietà",collapseToggle:"Comprimi"},es:{errorAdditionalProperties:'Tiene la propiedad adicional "{{ property }}" pero no se permiten propiedades adicionales.',errorAnyOf:"Debe cumplir con al menos uno de los esquemas proporcionados.",errorConst:"Debe tener el valor: {{ const }}.",errorContains:"Debe contener al menos un elemento que cumpla con el esquema proporcionado.",errorDependentRequired:"Debe tener las propiedades requeridas: {{ dependentRequired }}.",errorEnum:"Debe ser uno de los valores enumerados: {{ enum }}.",errorExclusiveMaximum:"Debe ser menor que {{ exclusiveMaximum }}.",errorExclusiveMinimum:"Debe ser mayor que {{ exclusiveMinimum }}.",errorFormat:"Formato no válido: {{ format }}.",errorItems:"Debe tener elementos que cumplan con el esquema proporcionado.",errorMaximum:"Debe ser como máximo {{ maximum }}.",errorMaxItems:"Debe tener como máximo {{ maxItems }} elementos.",errorMaxLength:"Debe tener como máximo {{ maxLength }} caracteres.",errorMaxProperties:"Debe tener como máximo {{ maxProperties }} propiedades.",errorMaxContains:"Debe contener como máximo {{ maxContains }} elementos que cumplan con el esquema proporcionado. Actualmente contiene {{ counter }}.",errorMinContains:"Debe contener al menos {{ minContains }} elementos que cumplan con el esquema proporcionado. Actualmente contiene {{ counter }}.",errorMinimum:"Debe ser al menos {{ minimum }}.",errorMinItems:"Debe tener al menos {{ minItems }} elementos.",errorMinLength:"Debe tener al menos {{ minLength }} caracteres.",errorMinProperties:"Debe tener al menos {{ minProperties }} propiedades.",errorMultipleOf:"Debe ser múltiplo de {{ multipleOf }}.",errorNot:"No debe cumplir con el esquema proporcionado.",errorOneOf:"Debe cumplir con exactamente uno de los esquemas proporcionados. Actualmente cumple con {{ counter }} de los esquemas.",errorPattern:'Debe coincidir con el patrón: "{{ pattern }}".',errorPrefixItems:"El elemento {{ index }} no es válido.",errorPropertyNames:'El nombre de la propiedad "{{ propertyName }}" no es válido.',errorProperties:"Las siguientes propiedades no cumplen con sus esquemas: {{ properties }}",errorRequired:"Debe tener las propiedades requeridas: {{ required }}.",errorType:"Debe ser del tipo {{ type }}.",errorUnevaluatedProperties:'Tiene una propiedad no evaluada no válida "{{ property }}"',errorUniqueItems:"Debe tener elementos únicos.",arrayDelete:"Eliminar elemento",arrayMoveUp:"Mover hacia arriba",arrayMoveDown:"Mover hacia abajo",arrayDrag:"Arrastrar",arrayAdd:"Agregar elemento",arrayConfirmDelete:"¿Estás seguro de que deseas eliminar este elemento?",objectAddProperty:"Agregar propiedad",objectPropertyAdded:"campo fue añadido al formulario",objectPropertyRemoved:"campo fue eliminado del formulario",propertiesToggle:"Propiedades",collapseToggle:"Colapsar"}};class is{constructor(e){this.language=e.language||"en",this.translations=v({},ss,e.translations),this.defaultTranslations=ts}translate(e){let t=this.translations[this.language][e];return c(t)&&(t=this.defaultTranslations[e]),t}destroy(){Object.keys(this).forEach(e=>{delete this[e]})}}class ns{constructor(e=200){this.maxDepth=e}traverse(e,t,s=e,i="#",n=0,a=null,r=null,o={}){if(!s||"object"!=typeof s||n>this.maxDepth)return;const l=t(s,i,a,r,n,o);void 0!==l&&(a&&null!==r?a[r]=l:"#"===i&&(Object.keys(e).forEach(t=>delete e[t]),Object.assign(e,l)),s=l),"object"==typeof s&&null!==s&&Object.entries(s).forEach(([a,r])=>this.traverse(e,t,r,`${i}/${a}`,n+1,s,a,o))}}class as extends et{constructor(e){super(),this.options=Object.assign({container:null,iconLib:null,theme:null,refParser:null,editJsonData:!1,enablePropertiesToggle:!1,enableCollapseToggle:!1,btnContents:!0,btnIcons:!0,arrayDelete:!0,arrayMove:!0,arrayAdd:!0,arrayButtonsPosition:"left",startCollapsed:!1,deactivateNonRequired:!1,schema:{},showErrors:"change",switcherInput:"select",data:void 0,assertFormat:!1,customEditors:[],constraints:[],hiddenInputAttributes:{},id:"",radiosInline:!1,language:"en",translations:{},settings:{},useConstraintAttributes:!0,parseMarkdown:!1,purifyHtml:!0,purifyData:!0,domPurifyOptions:{},mergeAllOf:!1,enforceConst:!1,enforceRequired:!0,enforceEnumDefault:!0,enforceAdditionalProperties:!0,enforceMinItems:!0,enforceMaxItems:!0,enforceEnum:!0,debug:!1},e),this.rootName="#",this.pathSeparator="/",this.instances=new Map,this.root=null,this.translator=new is({language:this.options.language,translations:this.options.translations}),this.validator=null,this.schema={},this.watched={},this.theme=null,this.uiResolver=null,this.refParser=this.options.refParser?this.options.refParser:null,this.walker=new ns,this.lastFocusedId=null,this.isEditor=!1,this.debug=!1,this.init(),this.bindEventListeners(),this.updateInstancesWatchedData()}init(){if(this.options.container&&(this.isEditor=!0),this.uiResolver=new es({customEditors:this.options.customEditors,refParser:this.refParser}),this.theme=this.options.theme,this.theme&&(this.theme.btnContents=this.options.btnContents,this.theme.btnIcons=this.options.btnIcons),d(this.options.iconLib))switch(this.options.iconLib){case"glyphicons":this.theme.icons=ut;break;case"bootstrap-icons":this.theme.icons=pt;break;case"fontawesome3":this.theme.icons=mt;break;case"fontawesome4":this.theme.icons=gt;break;case"fontawesome5":this.theme.icons=ft;break;case"fontawesome6":this.theme.icons=bt}this.schema=this.options.schema,this.validator=new Ye({refParser:this.refParser,assertFormat:this.options.assertFormat,translator:this.translator,constraints:this.options.constraints}),this.root=this.createInstance({jedison:this,schema:this.options.schema,path:this.rootName}),d(this.options.data)&&this.root.setValue(this.options.data,!1),this.options.container&&(this.isEditor=!0,this.container=this.options.container,this.appendHiddenInput(),this.container.appendChild(this.root.ui.control.container),this.container.classList.add("jedi-ready"))}bindEventListeners(){this.root&&this.root.on("change",e=>{this.emit("change",e)}),this.on("instance-change",e=>{for(const[t,s]of Object.entries(this.watched))e.path===t&&s.forEach(e=>{e()})}),this.hiddenInput&&(this.on("change",e=>{this.hiddenInput.value=JSON.stringify(this.getValue()),"user"===e&&setTimeout(()=>{this.refreshFocus()},0)}),document.addEventListener("focus",e=>{this.lastKeyEvent=null,this.lastFocusedId=e.target.id},!0),document.addEventListener("keydown",e=>{this.lastKeyEvent=e}))}updateInstancesWatchedData(){Object.values(this.watched).forEach(e=>{e.forEach(e=>{e()})})}refreshFocus(){if(!this.lastFocusedId)return;const e=document.getElementById(this.lastFocusedId);e&&(e.focus(),this.lastKeyEvent&&"Tab"===this.lastKeyEvent.key&&this.simulateTab(e,this.lastKeyEvent.shiftKey))}simulateTab(e,t){const s=document.querySelectorAll('input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'),i=Array.prototype.indexOf.call(s,e);-1!==i&&(t?i>0&&s[i-1].focus():i+1<s.length&&s[i+1].focus())}appendHiddenInput(){const e=this.theme.getInputControl({type:"hidden",id:"jedi-hidden-input"});this.hiddenInput=e.input,this.hiddenInput.setAttribute("name","json"),this.hiddenInput.removeAttribute("aria-describedby"),this.hiddenInput.removeAttribute("aria-hidden","true"),this.options.hiddenInputAttributes&&f(this.options.hiddenInputAttributes)&&Object.keys(this.options.hiddenInputAttributes).forEach(e=>{this.hiddenInput.setAttribute(e,this.options.hiddenInputAttributes[e])}),this.container.appendChild(this.hiddenInput),this.hiddenInput.value=JSON.stringify(this.getValue())}register(e){this.instances.set(e.path,e)}unregister(e){this.instances.delete(e.path)}createInstance(t){this.refParser&&(t.schema=this.refParser.expand(t.schema),this.walker.traverse(t.schema,e=>{e.allOf&&Array.isArray(e.allOf)&&e.allOf.forEach((t,s)=>{e.allOf[s]=this.refParser.expand(t)}),e.oneOf&&Array.isArray(e.oneOf)&&e.oneOf.forEach((t,s)=>{e.oneOf[s]=this.refParser.expand(t)}),e.oneOf&&Array.isArray(e.oneOf)&&e.oneOf.forEach((t,s)=>{e.oneOf[s]=this.refParser.expand(t)})})),this.isEditor&&(this.walker.traverse(t.schema,t=>{if(t.allOf&&Array.isArray(t.allOf)){if(d(t["x-allOf-merged"]))return;const s=se(t,"mergeAllOf")??this.options.mergeAllOf,i=[];let n=e(t);t.allOf.forEach(e=>{e.if&&e.then?i.push({if:e.if,then:e.then,else:e.else||null}):n=s?y({},n,e):n}),n["x-allOf-merged"]=!0;let a=null;for(let e=i.length-1;e>=0;e--)a=null===a?i[e]:{if:i[e].if,then:i[e].then,else:a};return a&&Object.assign(n,a),n}}),this.walker.traverse(t.schema,t=>{if(t.oneOf&&Array.isArray(t.oneOf)){const s=e(t);return delete s.oneOf,t.oneOf=t.oneOf.map(e=>y({},s,e)),{oneOf:t.oneOf}}}),this.walker.traverse(t.schema,t=>{if(t.anyOf&&Array.isArray(t.anyOf)){const s=e(t);return delete s.anyOf,t.anyOf=t.anyOf.map(e=>y({},s,e)),{anyOf:t.anyOf}}}),this.walker.traverse(t.schema,t=>{if(t.not&&f(t.not)){const s=e(t);delete s.not,t.not=y({},s,t.not)}}));const s=ue(t.schema),i=S(t.schema),n=U(t.schema),a=he(t.schema);return!this.debug||!c(a)||d(s)||d(i)||d(n)||console.warn("TYPE NOT SET",t.schema,t.path),d(i)||d(s)||"any"===a||g(a)||c(a)?new at(t):d(n)?new nt(t):"object"===a?new ot(t):"array"===a?new lt(t):"string"===a?new dt(t):"number"===a||"integer"===a?new ct(t):"boolean"===a?new rt(t):"null"===a?new ht(t):void 0}getValue(){return this.root.getValue()}setValue(){this.root.setValue(...arguments),this.updateInstancesWatchedData()}getInstance(e){return this.instances.get(e)}disable(){this.root.ui.disable()}enable(){this.root.ui.enable()}getErrors(e=["error"]){let t=[];for(const s of this.instances.values())t=[...t,...s.getErrors()];return t.filter(t=>e.includes(t.type.toLowerCase()))}export(){const e=[];for(const t of this.instances.values())e.push({path:t.path??"-",type:t.schema.type??"-",title:t.ui.getTitle()??"-",value:t.getValue()??"-"});return e}showValidationErrors(e=null){if(!this.options.container)return!1;const t=e??this.getErrors();for(const s of this.instances.values())s.ui.showValidationErrors(t,!0)}watch(e,t){this.watched[e]||(this.watched[e]=[]),this.watched[e].push(t)}unwatch(e,t){this.watched[e]&&(this.watched[e]=this.watched[e].filter(e=>e!==t),0===this.watched[e].length&&delete this.watched[e])}destroy(){this.root.destroy(),this.options.container&&(this.container.innerHTML=""),Object.keys(this).forEach(e=>{delete this[e]})}}class rs{constructor(e=null){this.icons=e,this.useToggleEvents=!0,this.btnContents=!0,this.btnIcons=!0,this.init()}init(){this.useToggleEvents=!0}getEditorContainer(){const e=document.createElement("div");return e.classList.add("jedi-editor-container"),e}getFieldset(){const e=document.createElement("fieldset");return e.classList.add("jedi-editor-fieldset"),e.setAttribute("role","group"),e}getLegend(e){const t=document.createElement("div"),s=document.createElement("div"),i=document.createElement("legend"),n=document.createElement("label"),a=document.createElement("span"),r=document.createElement("input"),o="legend-label-"+e.id,l="legend-dummy-input-"+e.id;return t.classList.add("jedi-editor-legend-left"),s.classList.add("jedi-editor-legend-right"),i.classList.add("jedi-editor-legend"),i.style.fontSize="inherit",i.setAttribute("aria-labelledby",o),n.classList.add("jedi-title"),n.classList.add("jedi-legend"),n.setAttribute("id",o),n.innerHTML=e.content,a.classList.add("jedi-editor-info-container"),a.setAttribute("for",l),r.setAttribute("aria-hidden","true"),r.setAttribute("type","hidden"),r.setAttribute("id",l),this.visuallyHidden(r),e.titleHidden&&this.visuallyHidden(n),i.appendChild(t),i.appendChild(s),t.appendChild(n),t.appendChild(a),n.appendChild(r),{left:t,right:s,legend:i,legendText:n,infoContainer:a}}getRadioFieldset(){const e=document.createElement("fieldset");return e.classList.add("jedi-editor-radio-fieldset"),e.setAttribute("role","group"),e.style.marginBottom="15px",e.style.fontSize="inherit",e}getRadioLegend(e){const t="legend-label-"+e.id,s=document.createElement("legend"),i=document.createElement("label"),n=document.createElement("input");return s.classList.add("jedi-editor-legend"),s.style.fontSize="inherit",s.setAttribute("aria-labelledby",t),i.classList.add("jedi-title"),i.classList.add("jedi-label"),i.innerHTML=e.content,i.setAttribute("id",t),n.setAttribute("aria-hidden","true"),n.setAttribute("type","hidden"),n.setAttribute("disabled",""),this.visuallyHidden(n),s.appendChild(i),i.appendChild(n),{legend:s,legendText:i}}getLabel(e){const t=document.createElement("label"),s=document.createElement("span"),i=document.createElement("i");return t.setAttribute("for",e.for),t.classList.add("jedi-title"),t.classList.add("jedi-label"),s.innerHTML=e.text,e.visuallyHidden&&this.visuallyHidden(t),e.titleIconClass&&this.addIconClass(i,e.titleIconClass),e.titleIconClass&&t.appendChild(i),t.appendChild(s),{label:t,labelText:s,icon:i}}getFakeLabel(e){const t=document.createElement("label"),s=document.createElement("span"),i=document.createElement("i"),n=document.createElement("input");return t.setAttribute("for",e.for),t.classList.add("jedi-title"),t.classList.add("jedi-label"),e.visuallyHidden&&this.visuallyHidden(t),s.innerHTML=e.content,e.titleIconClass&&this.addIconClass(i,e.titleIconClass),n.setAttribute("aria-hidden","true"),n.setAttribute("type","hidden"),n.setAttribute("disabled",""),n.setAttribute("id",e.for),this.visuallyHidden(n),t.appendChild(i),t.appendChild(s),t.appendChild(n),{label:t,labelText:s,icon:i,dummyInput:n}}addIconClass(e,t=""){let s=t.split(" ");s=s.filter(e=>e.length>0),s&&s.forEach(t=>{e.classList.add(t)})}getOptInWrapper(){const e=document.createElement("span"),t=document.createElement("span"),s=document.createElement("span");return e.classList.add("jedi-opt-in-wrapper"),e.style.display="flex",e.style.alignItems="center",t.classList.add("jedi-opt-in-container"),s.classList.add("jedi-title-container"),s.style.flexGrow="1",e.appendChild(s),e.appendChild(t),{optInWrapper:e,optInContainer:t,otherContainer:s}}getCard(){const e=document.createElement("div");return e.classList.add("jedi-editor-card"),e}getCardHeader(){const e=document.createElement("div");return e.classList.add("jedi-editor-card-header"),e}getCardBody(){const e=document.createElement("div");return e.classList.add("jedi-editor-card-body"),e}getActionsSlot(){const e=document.createElement("div");return e.classList.add("jedi-actions-slot"),e}getArrayActionsSlot(){const e=document.createElement("span");return e.classList.add("jedi-array-actions-slot"),e}getChildrenSlot(){const e=document.createElement("div");return e.classList.add("jedi-children-slot"),e}getMessagesSlot(e={}){const t=document.createElement("div");return t.classList.add("jedi-messages-slot"),t.setAttribute("aria-atomic","false"),t.setAttribute("aria-live","polite"),e.id&&t.setAttribute("id",e.id),t}getControlSlot(){const e=document.createElement("div");return e.classList.add("jedi-control-slot"),e}getPropertiesToggle(e){const t=this.getButton(e);return t.classList.add("jedi-properties-toggle"),t.addEventListener("click",()=>{e.propertiesContainer.open?e.propertiesContainer.close():e.propertiesContainer.showModal()}),t}getCollapse(e){const t=document.createElement("div");return t.classList.add("jedi-collapse"),t.setAttribute("id",e.id),this.useToggleEvents&&e.startCollapsed&&(t.style.display="none"),t}getCollapseToggle(e){const t=this.getButton(e);t.classList.add("jedi-collapse-toggle"),t.setAttribute("always-enabled",""),this.useToggleEvents&&t.addEventListener("click",()=>{"none"===e.collapse.style.display?e.collapse.style.display="block":e.collapse.style.display="none"});let s=e.startCollapsed;return s?t.setAttribute("aria-expanded","false"):t.setAttribute("aria-expanded","true"),t.style.transition="transform 0.1s ease",s&&(t.style.transform="rotate(90deg)"),t.addEventListener("click",()=>{t.style.transform=s?"rotate(0deg)":"rotate(90deg)",s=!s}),t}getPropertiesSlot(e){const t=document.createElement("dialog");return t.classList.add("jedi-properties-slot"),t.setAttribute("id",e.id),window.addEventListener("click",e=>{e.target===t&&t.close()}),t}getJsonData(e){const t=document.createElement("dialog");t.classList.add("jedi-json-data"),t.setAttribute("id",e.id),window.addEventListener("click",e=>{e.target===t&&t.close()});const s=this.getButton({id:"jedi-json-data-toggle-"+e.id,icon:"edit"});s.classList.add("jedi-json-data-toggle"),s.addEventListener("click",()=>{t.open?t.close():t.showModal()});const i=document.createElement("div"),{label:n}=this.getLabel({for:"json-data-input-"+e.id,text:"JSON Data"}),a=document.createElement("textarea");a.setAttribute("id","json-data-input-"+e.id),a.cols=60,a.style.whiteSpace="pre",a.style.overflowX="auto",a.style.resize="both",a.style.maxHeight="60vh";const r=this.getButton({id:"jedi-json-data-save-"+e.id,icon:"save"});return t.appendChild(i),i.appendChild(n),i.appendChild(a),t.appendChild(r),{dialog:t,toggle:s,control:i,input:a,saveBtn:r}}getPropertiesAriaLive(){const e=document.createElement("div");return e.classList.add("jedi-properties-aria-live"),e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e}getAriaLiveMessage(e){const t=document.createElement("p");return t.classList.add("jedi-aria-live-message"),t.textContent=e,this.visuallyHidden(t),t}getPropertiesActivators(){const e=document.createElement("div");return e.classList.add("jedi-properties-activators"),e}getPropertiesGroup(e={}){const t=document.createElement("div");t.classList.add("jedi-properties-group-container");const s=document.createElement("div");s.classList.add("jedi-properties-group");const i=document.createElement("p");return i.classList.add("jedi-properties-group-name"),i.textContent=e.name??"",t.appendChild(i),t.appendChild(s),{container:t,group:s,name:i}}getBtnGroup(){const e=document.createElement("span");return e.classList.add("jedi-btn-group"),e}getButton(e={}){const t=document.createElement("button"),s=document.createElement("span"),i=document.createElement("i");return t.classList.add("jedi-btn"),t.setAttribute("type","button"),e.value&&(t.value=e.value),e.id&&t.setAttribute("id",e.id),s.textContent=" "+e.content,this.btnIcons&&this.icons&&e.icon&&(this.addIconClass(i,this.icons[e.icon]),i.setAttribute("title",e.content)),this.btnContents||this.visuallyHidden(s),this.icons&&e.icon&&t.appendChild(i),t.appendChild(s),t}getAddPropertyButton(e){const t=this.getButton(e);return t.classList.add("jedi-add-property-btn"),t}getArrayBtnAdd(e){const t=this.getButton({content:e.content,icon:"add"});return t.classList.add("jedi-array-add"),t}getDeleteItemBtn(e){const t=this.getButton({content:e.content,icon:"delete"});return t.classList.add("jedi-array-delete"),t}getMoveUpItemBtn(e){const t=this.getButton({content:e.content,icon:"moveUp"});return t.classList.add("jedi-array-move-up"),t}getMoveDownItemBtn(e){const t=this.getButton({content:e.content,icon:"moveDown"});return t.classList.add("jedi-array-move-down"),t}getDragItemBtn(e){const t=this.getButton({content:e.content,icon:"drag"});return t.classList.add("jedi-array-drag"),t}getDescription(e={}){const t=document.createElement("small");return t.style.display="block",t.classList.add("jedi-description"),e.content&&(t.innerHTML=e.content),e.id&&t.setAttribute("id",e.id),t}getInfo(e={}){const t=document.createElement("span"),s=document.createElement("a"),i=document.createElement("span"),n=document.createElement("i");if(t.classList.add("jedi-info-button-container"),t.style.display="inline-block",s.setAttribute("href","#"),s.classList.add("jedi-info-button"),s.style.marginLeft="4px",f(e.attributes))for(const[a,r]of Object.entries(e.attributes))s.setAttribute(a,r);return i.textContent="Info",!this.btnContents&&this.btnIcons&&this.visuallyHidden(i),n.setAttribute("title","More information"),this.icons&&this.addIconClass(n,this.icons.info),s.appendChild(n),s.appendChild(i),t.appendChild(s),{container:t,info:s}}infoAsModal(e,t,s={}){const i=document.createElement("dialog"),n=document.createElement("div"),a=document.createElement("div"),r=this.getButton({content:"Close",icon:"close"});i.classList.add("jedi-modal-dialog"),n.classList.add("jedi-modal-title"),p(s.title)&&(n.innerHTML=s.title),a.classList.add("jedi-modal-content"),p(s.content)&&(a.innerHTML=s.content),r.classList.add("jedi-modal-close"),r.setAttribute("always-enabled",""),window.addEventListener("click",e=>{e.target===i&&i.close()}),r.addEventListener("click",()=>{i.close()}),e.info.addEventListener("click",()=>{i.showModal()}),e.container.appendChild(i),i.appendChild(n),i.appendChild(a),i.appendChild(r)}getPlaceholderControl(e){var t;const s=e.id+"-description",i=e.id+"-messages",n=document.createElement("div"),a=document.createElement("div"),r=this.getActionsSlot(),o=this.getInfo(e.info),{label:l,labelText:d}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden,titleIconClass:e.titleIconClass}),c=this.getDescription({content:e.description,id:s}),h=this.getMessagesSlot({id:i});return"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(o,e.id,e.info),n.appendChild(l),f(e.info)&&l.appendChild(o.container),n.appendChild(a),n.appendChild(c),n.appendChild(h),n.appendChild(r),{container:n,placeholder:a,label:l,labelText:d,description:c,messages:h,actions:r}}getObjectControl(e){var t;const s="collapse-"+e.id,i=document.createElement("div"),n=this.getActionsSlot(),a=this.getCardBody(),r=this.getPropertiesAriaLive(),o=this.getMessagesSlot(),l=this.getChildrenSlot(),d=this.getPropertiesActivators(),c=this.getInfo(e.info),h=this.getDescription({content:e.description}),u=this.getJsonData({id:"json-data-"+e.id}),p=this.getPropertiesSlot({id:"properties-slot-"+e.id}),m=this.getPropertiesToggle({content:e.propertiesToggleContent,id:"properties-slot-toggle-"+e.id,icon:"properties",propertiesContainer:p}),g=this.getCollapse({id:s,startCollapsed:e.startCollapsed}),b=this.getCollapseToggle({content:e.collapseToggleContent,id:"collapse-toggle-"+e.id,icon:"collapse",collapseId:s,collapse:g,startCollapsed:e.startCollapsed}),v=this.getInputControl({type:"text",id:"jedi-add-property-input-"+e.id,title:e.addPropertyContent}),y=this.getAddPropertyButton({content:e.addPropertyContent,icon:"add"}),C=this.getFieldset(),{legend:L,infoContainer:E,legendText:x}=this.getLegend({content:e.title,id:e.id,titleHidden:e.titleHidden});return"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(c,e.id,e.info),y.classList.add("jedi-object-add"),i.appendChild(C),i.appendChild(p),e.editJsonData&&i.appendChild(u.dialog),C.appendChild(L),f(e.info)&&E.appendChild(c.container),C.appendChild(g),g.appendChild(a),e.description&&a.appendChild(h),a.appendChild(o),!1===e.readOnly&&L.appendChild(n),a.appendChild(l),e.addProperty&&(p.appendChild(v.container),p.appendChild(y),p.appendChild(document.createElement("hr"))),e.editJsonData&&n.appendChild(u.toggle),e.enablePropertiesToggle&&(n.appendChild(m),p.appendChild(r),p.appendChild(d)),e.enableCollapseToggle&&n.appendChild(b),{container:i,collapse:g,collapseToggle:b,description:h,body:a,actions:n,messages:o,childrenSlot:l,propertiesToggle:m,jsonData:u,propertiesContainer:p,addPropertyControl:v,addPropertyBtn:y,ariaLive:r,propertiesActivators:d,legend:L,legendText:x,infoContainer:E}}getArrayControl(e){var t;const s="collapse-"+e.id,i=document.createElement("div"),n=this.getActionsSlot(),a=this.getCardBody(),r=this.getMessagesSlot(),o=this.getChildrenSlot(),l=this.getBtnGroup(),c=this.getArrayBtnAdd({content:e.arrayAddContent}),h=this.getFieldset(),u=this.getInfo(e.info),{legend:p,legendText:m,infoContainer:g}=this.getLegend({content:e.title,id:e.id,titleHidden:e.titleHidden}),b=this.getDescription({content:e.description}),v=this.getJsonData({id:"json-data-"+e.id}),y=this.getCollapse({id:s,startCollapsed:e.startCollapsed}),C=this.getCollapseToggle({content:e.collapseToggleContent,id:"collapse-toggle-"+e.id,icon:"collapse",collapseId:s,collapse:y,startCollapsed:e.startCollapsed});return"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(u,e.id,e.info),i.appendChild(h),e.editJsonData&&i.appendChild(v.dialog),h.appendChild(p),f(e.info)&&g.appendChild(u.container),h.appendChild(y),y.appendChild(a),e.description&&a.appendChild(b),a.appendChild(r),p.appendChild(n),n.appendChild(l),e.editJsonData&&l.appendChild(v.toggle),d(e.arrayAdd)&&!0===e.arrayAdd&&l.appendChild(c),a.appendChild(o),e.enableCollapseToggle&&n.appendChild(C),{container:i,collapseToggle:C,collapse:y,body:a,actions:n,messages:r,childrenSlot:o,btnGroup:l,addBtn:c,jsonData:v,legend:p,legendText:m}}getArrayItem(e={}){const t=document.createElement("div"),s=document.createElement("div"),i=this.getActionsSlot(),n=this.getArrayActionsSlot();return i.style.textAlign="right",t.classList.add("jedi-array-item"),s.classList.add("jedi-array-item-body"),d(e.index)&&t.setAttribute("jedi-array-item-index",e.index),i.appendChild(n),t.appendChild(i),t.appendChild(s),{container:t,actions:i,arrayActions:n,body:s}}getMultipleControl(e={}){const t=document.createElement("div"),s=document.createElement("div"),i=document.createElement("div"),n=this.getMessagesSlot(),a=this.getChildrenSlot(),r=w(5);let o;return"select"===e.switcher&&(o=this.getSwitcherSelect({values:e.switcherOptionValues,titles:e.switcherOptionsLabels,title:e.id+"-switcher",id:e.id+"-switcher-"+r,label:e.id+"-switcher-"+r,titleHidden:!0,readOnly:e.readOnly})),"radios"!==e.switcher&&"radios-inline"!==e.switcher||(o=this.getSwitcherRadios({values:e.switcherOptionValues,titles:e.switcherOptionsLabels,title:e.id+"-switcher",id:e.id+"-switcher-"+r,label:e.id+"-switcher-"+r,titleHidden:!0,readOnly:e.readOnly,inline:"radios-inline"===e.switcher})),o.container.classList.add("jedi-switcher"),t.appendChild(s),t.appendChild(i),s.appendChild(o.container),i.appendChild(n),i.appendChild(a),{container:t,header:s,body:i,messages:n,childrenSlot:a,switcher:o}}adaptForTableMultipleControl(e,t){}getIfThenElseControl(e){const t=document.createElement("div"),s=this.getCard(),i=this.getActionsSlot(),n=this.getCardBody(),a=this.getMessagesSlot(),r=this.getChildrenSlot(),o=this.getCardHeader({content:e.title,titleHidden:e.titleHidden}),l=this.getDescription({content:e.description});return n.appendChild(l),t.appendChild(a),t.appendChild(r),{container:t,card:s,header:o,body:n,actions:i,messages:a,childrenSlot:r}}getNullControl(e){var t;const s=e.id+"-description",i=document.createElement("div"),n=this.getActionsSlot(),a=this.getMessagesSlot(),r=document.createElement("br"),o=this.getInfo(e.info),{label:l,labelText:d}=this.getFakeLabel({for:e.id,content:e.title,visuallyHidden:e.titleHidden,titleIconClass:e.titleIconClass}),c=this.getDescription({content:e.description,id:s});return"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(o,e.id,e.info),i.appendChild(l),f(e.info)&&l.appendChild(o.container),i.appendChild(r),i.appendChild(c),i.appendChild(a),i.appendChild(n),{container:i,label:l,labelText:d,description:c,messages:a,actions:n}}getTextareaControl(e){var t;const s=e.id+"-description",i=e.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("textarea"),l=this.getInfo(e.info),{label:d,labelText:c}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden}),h=this.getDescription({content:e.description,id:s}),u=this.getMessagesSlot({id:i});return o.setAttribute("aria-describedby",n),o.setAttribute("id",e.id),o.setAttribute("name",e.id),o.style.width="100%","modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(l,e.id,e.info),a.appendChild(d),f(e.info)&&d.appendChild(l.container),a.appendChild(o),a.appendChild(h),a.appendChild(u),a.appendChild(r),{container:a,input:o,label:d,labelText:c,description:h,messages:u,actions:r}}adaptForTableTextareaControl(e){this.visuallyHidden(e.label),this.visuallyHidden(e.description),e.input.setAttribute("rows","1")}getInputControl(e){var t;const s=e.id+"-messages",i=e.id+"-description",n=s+" "+i,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("input"),l=this.getInfo(e.info),{label:d,labelText:c}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden,titleIconClass:e.titleIconClass}),h=this.getDescription({content:e.description,id:i}),u=this.getMessagesSlot({id:s});return o.setAttribute("aria-describedby",n),o.setAttribute("type",e.type),o.setAttribute("id",e.id),o.setAttribute("name",e.id),o.style.width="100%",a.appendChild(d),"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(l,e.id,e.info),f(e.info)&&d.appendChild(l.container),a.appendChild(o),a.appendChild(h),a.appendChild(u),a.appendChild(r),{container:a,input:o,label:d,info:l,labelText:c,description:h,messages:u,actions:r}}getInputRangeControl(e){const t=this.getInputControl(e),s=document.createElement("output");return s.className="range-output",s.style.marginLeft="10px",s.style.fontWeight="bold",t.input.parentNode.insertBefore(s,t.input.nextSibling),{...t,output:s}}adaptForTableInputControl(e){this.visuallyHidden(e.label),this.visuallyHidden(e.description)}getRadiosControl(e){var t;const s=e.id+"-messages",i=e.id+"-description",n=document.createElement("div"),a=this.getRadioFieldset(),r=this.getInfo(e.info),{legend:o,legendText:l}=this.getRadioLegend({content:e.title,id:e.id,for:e.id}),c=this.getMessagesSlot({id:s}),h=this.getDescription({content:e.description,id:i});"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(r,e.id,e.info),e.titleHidden&&this.visuallyHidden(o);const u=[],p=[],m=[],g=[];return e.values.forEach((t,n)=>{const a=s+" "+i,r=document.createElement("div"),o=document.createElement("input"),l=document.createElement("label"),c=document.createElement("span");o.setAttribute("type","radio"),o.setAttribute("id",e.id+"-"+n),o.setAttribute("name",e.id),o.setAttribute("value",t),o.setAttribute("aria-describedby",a),l.setAttribute("for",e.id+"-"+n),l.classList.add("jedi-title"),l.classList.add("jedi-label"),g.push(c),d(e.titles)&&d(e.titles[n])&&(c.textContent=e.titles[n]??t),u.push(r),p.push(o),m.push(l)}),n.appendChild(a),a.appendChild(o),f(e.info)&&l.appendChild(r.container),u.forEach((e,t)=>{a.appendChild(u[t]),e.appendChild(p[t]),e.appendChild(m[t]),m[t].appendChild(g[t])}),a.appendChild(h),a.appendChild(c),{container:n,fieldset:a,legend:o,legendText:l,info:r,radios:p,labels:m,labelTexts:g,radioControls:u,description:h,messages:c}}adaptForTableRadiosControl(e){this.visuallyHidden(e.legend),this.visuallyHidden(e.description)}getCheckboxControl(e){var t;const s=e.id+"-description",i=e.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("span"),l=document.createElement("input"),d=this.getInfo(e.info),{label:c,labelText:h}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden}),u=this.getDescription({content:e.description,id:s}),p=this.getMessagesSlot({id:i});return l.setAttribute("type","checkbox"),l.setAttribute("id",e.id),l.setAttribute("name",e.id),l.setAttribute("aria-describedby",n),"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(d,e.id,e.info),a.appendChild(o),a.appendChild(r),o.appendChild(l),o.appendChild(c),f(e.info)&&c.appendChild(d.container),o.appendChild(u),o.appendChild(p),{container:a,formGroup:o,input:l,label:c,info:d,labelText:h,description:u,messages:p,actions:r}}adaptForTableCheckboxControl(e,t){this.visuallyHidden(e.label),this.visuallyHidden(e.description)}getCheckboxesControl(e){var t;const s=e.id+"-messages",i=e.id+"-description",n=document.createElement("div"),a=this.getRadioFieldset(),r=this.getInfo(e.info),{legend:o,legendText:l}=this.getRadioLegend({content:e.title,id:e.id,for:e.id}),d=this.getMessagesSlot({id:s}),c=this.getDescription({content:e.description,id:i});e.titleHidden&&this.visuallyHidden(o);const h=[],u=[],p=[],m=[];return e.values.forEach((t,n)=>{const a=s+" "+i,r=e.id+"-"+n,o=document.createElement("div"),l=document.createElement("input"),d=document.createElement("label"),c=document.createElement("span");l.setAttribute("type","checkbox"),l.setAttribute("id",r),l.setAttribute("name",e.id),l.setAttribute("value",t),l.setAttribute("aria-describedby",a),d.setAttribute("for",r),e.titles&&e.titles[n]&&(c.textContent=e.titles[n]),h.push(o),u.push(l),m.push(c),p.push(d)}),"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(r,e.id,e.info),n.appendChild(a),a.appendChild(o),f(e.info)&&l.appendChild(r.container),h.forEach((e,t)=>{a.appendChild(h[t]),e.appendChild(u[t]),e.appendChild(p[t]),p[t].appendChild(m[t])}),a.appendChild(c),a.appendChild(d),{container:n,fieldset:a,legend:o,legendText:l,checkboxes:u,labels:p,labelTexts:m,checkboxControls:h,description:c,messages:d}}adaptForTableCheckboxesControl(e,t){this.visuallyHidden(e.legend),this.visuallyHidden(e.description)}getSelectControl(e){var t;const s=e.id+"-description",i=e.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("select"),l=this.getInfo(e.info),{label:d,labelText:c}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden}),h=this.getMessagesSlot({id:i}),u=this.getDescription({content:e.description,id:s});return o.setAttribute("id",e.id),o.setAttribute("name",e.id),o.setAttribute("aria-describedby",n),e.values.forEach((t,s)=>{const i=document.createElement("option");i.setAttribute("value",t),e.titles&&e.titles[s]&&(i.textContent=e.titles[s]),o.appendChild(i)}),"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(l,e.id,e.info),a.appendChild(d),f(e.info)&&d.appendChild(l.container),a.appendChild(o),a.appendChild(u),a.appendChild(h),a.appendChild(r),{container:a,input:o,label:d,info:l,labelText:c,description:u,messages:h,actions:r}}adaptForTableSelectControl(e){this.visuallyHidden(e.label),this.visuallyHidden(e.description)}getSwitcherSelect(e){return this.getSelectControl(e)}getSwitcherRadios(e){return this.getRadiosControl(e)}getAlert(e){return this.getErrorFeedback(e)}getErrorFeedback(e){const t=document.createElement("div"),s=document.createElement("small"),i=document.createElement("span");return s.textContent=e.message,i.textContent="⚠ ",i.classList.add("jedi-error-message"),i.setAttribute("aria-hidden","true"),t.classList.add("jedi-error-message"),t.appendChild(i),t.appendChild(s),t}getWarningFeedback(e){const t=document.createElement("div"),s=document.createElement("small"),i=document.createElement("span");return s.textContent=e.message,i.textContent="⚠ ",i.classList.add("jedi-warning-message"),i.setAttribute("aria-hidden","true"),t.classList.add("jedi-warning-message"),t.appendChild(i),t.appendChild(s),t}getRow(){const e=document.createElement("div");return e.classList.add("jedi-row"),e}getCol(e,t,s,i,n){const a=document.createElement("div");return a.classList.add("jedi-col"),a.classList.add("jedi-col-xs-"+e),a.classList.add("jedi-col-sm-"+t),a.classList.add("jedi-col-md-"+s),a.classList.add("jedi-col-lg-"+i),n&&a.classList.add("jedi-col-md-offset-"+n),a}getClearfix(){const e=document.createElement("div");return e.classList.add("clearfix"),e}getTabList(){const e=document.createElement("ul");return e.classList.add("jedi-nav-list"),e}getTab(e){const t=document.createElement("li"),s=document.createElement("a"),i=document.createElement("span"),n=document.createElement("span");return s.classList.add("jedi-nav-link"),s.setAttribute("href","#tab-pane-"+e.id),n.classList.add("jedi-nav-text"),n.textContent=e.hasErrors?"⚠ "+e.title:e.title,s.appendChild(i),s.appendChild(n),t.appendChild(s),{list:t,link:s,arrayActions:i,text:n}}getTabContent(){const e=document.createElement("div");return e.classList.add("tab-content"),e}getTable(){const e=document.createElement("div"),t=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return t.appendChild(s),t.appendChild(i),e.appendChild(t),{container:e,table:t,thead:s,tbody:i}}getTableDefinition(e={}){const t=document.createElement("td");return e.isButtonColumn&&(t.style.width="1%"),t.style.whiteSpace="nowrap",t}getTableHeader(e={}){const t=document.createElement("th");return t.style.paddingLeft="12px",t.style.paddingRight="12px",t.style.textWrap="nowrap",t.style.verticalAlign="bottom",e.minWidth&&(t.style.minWidth=e.minWidth),t}setTabPaneAttributes(e,t,s){e.setAttribute("id","tab-pane-"+s),e.classList.add("jedi-tab-pane")}visuallyHidden(e){e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.padding="0",e.style.margin="-1px",e.style.overflow="hidden",e.style.clip="rect(0,0,0,0)",e.style.border="0"}visuallyVisible(e){e.removeAttribute("style")}physicallyHidden(e){e.style.display="none"}}const os={Schema:ge,Utils:A,Editor:st,EditorBoolean:vt,EditorBooleanRadios:yt,EditorBooleanSelect:Ct,EditorBooleanCheckbox:Lt,EditorString:Et,EditorStringRadios:xt,EditorStringSelect:It,EditorStringTextarea:wt,EditorStringAwesomplete:At,EditorStringInput:jt,EditorNumberRange:Qt,EditorNumber:Mt,EditorNumberRadios:St,EditorNumberSelect:Pt,EditorNumberInput:Dt,EditorObjectGrid:Ft,EditorObjectNav:Ht,EditorObject:Ot,EditorArrayChoices:qt,EditorArrayNav:Nt,EditorArray:Vt,EditorMultiple:Ut,EditorIfThenElse:it,EditorNull:Jt,Theme:rs,ThemeBootstrap3:class extends rs{init(){this.useToggleEvents=!1}getAddPropertyButton(e){const t=super.getAddPropertyButton(e);return t.classList.add("btn-primary"),t.classList.add("btn-block"),t}getCollapseToggle(e){const t=super.getCollapseToggle(e);return t.setAttribute("href","#"+e.collapseId),t.setAttribute("data-toggle","collapse"),t.setAttribute("always-enabled",""),t}getCollapse(e){const t=super.getCollapse(e);return t.classList.add("collapse"),e.startCollapsed||t.classList.add("in"),t}getJsonData(e){const t=super.getJsonData(e);return t.control.classList.add("form-group"),t.input.classList.add("form-control"),t.saveBtn.classList.add("btn-primary"),t.saveBtn.classList.add("btn-block"),t}getFieldset(){const e=super.getFieldset();return e.classList.add("panel"),e.classList.add("panel-default"),e.style.marginBottom="15px",e}getLegend(e){const t=super.getLegend(e),{legend:s}=t;return s.classList.add("panel-heading"),s.classList.add("pull-left"),s.style.margin="0",s.style.display="flex",s.style.justifyContent="space-between",s.style.alignItems="center",t}getRadioLegend(e){const t=super.getRadioLegend(e),{legend:s}=t;return s.style.fontWeight="inherit",s.style.border="none",s.style.marginBottom="0",t}getLabel(e){const t=super.getLabel(e);return t.icon.classList&&(t.icon.style.marginRight="5px"),t}getCard(){const e=super.getCard();return e.classList.add("panel"),e.classList.add("panel-default"),e}getCardHeader(e){const t=super.getCardHeader(e);return t.classList.add("panel-heading"),t.classList.add("text-right"),t}getCardBody(){const e=super.getCardBody();return e.classList.add("panel-body"),e.style.clear="both",e.style.paddingBottom="0",e}getBtnGroup(){const e=super.getBtnGroup();return e.classList.add("btn-group"),e.style.display="inline-flex",e}getButton(e){const t=super.getButton(e);return t.classList.add("btn"),t.classList.add("btn-xs"),t.classList.add("btn-default"),t}getDescription(e){const t=super.getDescription(e);return t.classList.add("text-muted"),t.style.marginBottom="5px",t}getPropertiesGroup(e={}){const t=super.getPropertiesGroup(e),s=document.createElement("br");return t.container.appendChild(s),t.group.classList.add("pl-3"),t}getTextareaControl(e){const t=super.getTextareaControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableTextareaControl(e){super.adaptForTableTextareaControl(e),e.container.classList.remove("form-group")}getInputControl(e){const t=super.getInputControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}getInputRangeControl(e){return super.getInputRangeControl(e)}adaptForTableInputControl(e,t){super.adaptForTableInputControl(e,t),e.container.classList.remove("form-group")}getRadiosControl(e){const t=super.getRadiosControl(e),{fieldset:s,radios:i,labels:n,labelTexts:a,radioControls:r,description:o,messages:l}=t;return r.forEach((t,o)=>{t.classList.add("radio"),e.inline&&(t.style.display="inline-flex",t.style.alignItems="center",t.style.paddingLeft="0",t.style.marginRight="15px"),s.appendChild(r[o]),t.appendChild(n[o]),n[o].appendChild(i[o]),n[o].appendChild(a[o])}),s.appendChild(o),s.appendChild(l),t}adaptForTableRadiosControl(e,t){super.adaptForTableRadiosControl(e,t),e.fieldset.classList.remove("panel"),e.fieldset.classList.remove("panel-default"),e.fieldset.style.marginBottom="0"}getCheckboxesControl(e){const t=super.getCheckboxesControl(e),{fieldset:s,checkboxes:i,labels:n,labelTexts:a,checkboxControls:r}=t;return r.forEach((t,o)=>{t.classList.add("checkbox"),e.inline&&(t.style.display="inline-flex",t.style.alignItems="center",t.style.paddingLeft="0",t.style.marginRight="30px"),s.appendChild(r[o]),t.appendChild(n[o]),n[o].appendChild(i[o]),n[o].appendChild(a[o])}),t}adaptForTableCheckboxesControl(e,t){super.adaptForTableCheckboxesControl(e,t),e.fieldset.classList.remove("panel"),e.fieldset.classList.remove("panel-default"),e.body.classList.remove("panel-body")}getCheckboxControl(e){const t=super.getCheckboxControl(e),{container:s,formGroup:i,description:n,messages:a}=t;return s.appendChild(i),s.appendChild(n),s.appendChild(a),t}adaptForTableCheckboxControl(e,t){super.adaptForTableCheckboxControl(e,t)}getSelectControl(e){const t=super.getSelectControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableSelectControl(e,t){super.adaptForTableSelectControl(e,t),e.container.classList.remove("form-group")}adaptForTableMultipleControl(e,t){super.adaptForTableMultipleControl(e,t)}getAlert(e){const t=super.getAlert(e);return t.classList.add("alert"),t.classList.add("alert-danger"),t}getErrorFeedback(e){const t=super.getErrorFeedback(e);return t.classList.add("text-danger"),t}getWarningFeedback(e){const t=super.getWarningFeedback(e);return t.classList.add("text-warning"),t}getRow(){const e=super.getRow();return e.classList.add("row"),e}getCol(e,t,s,i,n){const a=super.getCol();return a.classList.add("col-xs-"+e),a.classList.add("col-sm-"+t),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("col-md-offset-"+n),a}getTabList(e){const t=super.getTabList(e);return t.classList.add("nav"),"horizontal"===e.variant?t.classList.add("nav-tabs"):(t.classList.add("nav-pills"),t.classList.add("nav-stacked")),t}getTab(e){const t=super.getTab(e);return t.text.style.marginLeft="15px",e.active&&t.list.classList.add("active"),t.link.setAttribute("data-toggle","tab"),t}getTable(){const e=document.createElement("div"),t=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return e.classList.add("table-responsive"),t.classList.add("table"),t.appendChild(s),t.appendChild(i),e.appendChild(t),{container:e,table:t,thead:s,tbody:i}}setTabPaneAttributes(e,t,s){super.setTabPaneAttributes(e,t,s),e.classList.add("tab-pane"),t&&(e.classList.add("in"),e.classList.add("active"))}infoAsModal(e,t,s={}){const i=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),l=document.createElement("div"),d=this.getButton({content:"Close",icon:"close"}),c=t+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",c),d.setAttribute("data-dismiss","modal"),d.setAttribute("always-enabled",""),e.info.setAttribute("data-toggle","modal"),e.info.setAttribute("data-target","#"+c),i.classList.add("modal"),i.classList.add("fade"),n.classList.add("modal-dialog"),a.classList.add("modal-content"),r.classList.add("modal-header"),o.classList.add("modal-title"),l.classList.add("modal-body"),d.classList.add("jedi-modal-close"),d.classList.add("close"),p(s.title)&&(o.innerHTML=s.title),p(s.content)&&(l.innerHTML=s.content),e.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(d),r.appendChild(o),a.appendChild(l)}visuallyHidden(e){e.classList.add("sr-only")}visuallyVisible(e){e.classList.remove("sr-only")}},ThemeBootstrap4:class extends rs{init(){this.useToggleEvents=!1}getAddPropertyButton(e){const t=super.getAddPropertyButton(e);return t.classList.add("btn-primary"),t.classList.add("btn-block"),t}getCollapseToggle(e){const t=super.getCollapseToggle(e);return t.setAttribute("href","#"+e.collapseId),t.setAttribute("data-toggle","collapse"),t.setAttribute("always-enabled",""),t}getCollapse(e){const t=super.getCollapse(e);return t.classList.add("collapse"),e.startCollapsed||t.classList.add("show"),t}getJsonData(e){const t=super.getJsonData(e);return t.control.classList.add("form-group"),t.input.classList.add("form-control"),t.saveBtn.classList.add("btn-primary"),t.saveBtn.classList.add("btn-block"),t}getFieldset(){const e=document.createElement("fieldset");return e.setAttribute("role","group"),e.classList.add("card"),e.classList.add("mb-3"),e}getLegend(e){const t=super.getLegend(e),{legend:s}=t;return s.classList.add("card-header"),s.classList.add("d-flex"),s.classList.add("justify-content-between"),s.classList.add("align-items-center"),s.classList.add("float-left"),s.classList.add("py-2"),t}getLabel(e){const t=super.getLabel(e);return t.icon.classList&&t.icon.classList.add("mr-1"),t}getCard(){const e=super.getCard();return e.classList.add("card"),e.classList.add("mb-3"),e}getCardHeader(e){const t=super.getCardHeader(e);return t.classList.add("card-header"),t.classList.add("d-flex"),t.classList.add("justify-content-end"),t.classList.add("align-items-center"),t.classList.add("py-1"),t}getCardBody(){const e=super.getCardBody();return e.classList.add("card-body"),e.classList.add("pb-0"),e}getBtnGroup(){const e=super.getBtnGroup();return e.classList.add("btn-group"),e}getButton(e){const t=super.getButton(e);return t.classList.add("btn"),t.classList.add("btn-sm"),t}getDescription(e){const t=super.getDescription(e);return t.classList.add("text-muted"),t.classList.add("fs-sm"),t.classList.add("mb-1"),t}getPropertiesGroup(e={}){const t=super.getPropertiesGroup(e);return t.group.classList.add("pl-3"),t.name.classList.add("mb-3"),t.container.classList.add("mb-4"),t}getTextareaControl(e){const t=super.getTextareaControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableTextareaControl(e){super.adaptForTableTextareaControl(e),e.container.classList.remove("form-group")}getInputControl(e){const t=super.getInputControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}getInputRangeControl(e){const t=super.getInputRangeControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("custom-range"),i.classList.remove("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableInputControl(e,t){super.adaptForTableInputControl(e,t),e.container.classList.remove("form-group")}getRadiosControl(e){const t=super.getRadiosControl(e),{container:s,fieldset:i,radios:n,labels:a,labelTexts:r,radioControls:o,description:l,messages:d}=t;return s.classList.add("form-group"),o.forEach((t,s)=>{t.classList.add("form-check"),n[s].classList.add("form-check-input"),a[s].classList.add("form-check-label"),e.inline&&t.classList.add("form-check-inline"),i.appendChild(o[s]),t.appendChild(n[s]),t.appendChild(a[s]),a[s].appendChild(r[s])}),i.appendChild(l),i.appendChild(d),t}adaptForTableRadiosControl(e,t){super.adaptForTableRadiosControl(e,t),e.container.classList.remove("form-group"),e.fieldset.classList.remove("card"),e.fieldset.style.marginBottom="0"}getCheckboxesControl(e){const t=super.getCheckboxesControl(e),{checkboxes:s,labels:i,checkboxControls:n}=t;return n.forEach((t,n)=>{t.classList.add("form-group"),t.classList.add("form-check"),s[n].classList.add("form-check-input"),i[n].classList.add("form-check-label"),e.inline&&t.classList.add("form-check-inline")}),t}adaptForTableCheckboxesControl(e,t){super.adaptForTableCheckboxesControl(e,t),e.container.classList.remove("form-group"),e.fieldset.classList.remove("card"),e.fieldset.classList.remove("mb-3"),e.body.classList.remove("card-body"),e.body.classList.remove("card-body")}getCheckboxControl(e){const t=super.getCheckboxControl(e),{container:s,formGroup:i,input:n,label:a,info:r,description:o,messages:l}=t;return s.classList.add("form-group"),i.classList.add("form-check"),n.classList.add("form-check-input"),a.classList.add("form-check-label"),s.appendChild(i),i.appendChild(n),i.appendChild(a),f(e.info)&&a.appendChild(r.container),s.appendChild(o),s.appendChild(l),t}adaptForTableCheckboxControl(e,t){super.adaptForTableCheckboxControl(e,t),e.container.classList.remove("form-group"),e.formGroup.classList.remove("form-check"),e.input.classList.remove("form-check-input"),e.label.classList.remove("form-check-label")}getSelectControl(e){const t=super.getSelectControl(e),{container:s,input:i}=t;return s.classList.add("form-group"),i.classList.add("form-control"),t}adaptForTableSelectControl(e,t){super.adaptForTableSelectControl(e,t),e.container.classList.remove("form-group")}adaptForTableMultipleControl(e,t){super.adaptForTableMultipleControl(e,t),e.container.classList.remove("mb-3")}getAlert(e){const t=super.getAlert(e);return t.classList.add("alert"),t.classList.add("alert-danger"),t}getErrorFeedback(e){const t=super.getErrorFeedback(e);return t.classList.add("text-danger"),t.classList.add("form-text"),t.classList.add("d-block"),t}getWarningFeedback(e){const t=super.getWarningFeedback(e);return t.classList.add("text-warning"),t.classList.add("form-text"),t.classList.add("d-block"),t}getColumnClass(e,t){return"col-"+e+"-"+t}getRow(){const e=super.getRow();return e.classList.add("row"),e}getCol(e,t,s,i,n){const a=super.getCol(e,s,n);return a.classList.add("col-"+e),a.classList.add("col-sm"+t),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("offset-md-"+n),a}getTabList(e){const t=super.getTabList();return t.classList.add("nav"),"horizontal"===e.variant?t.classList.add("nav-tabs"):(t.classList.add("nav-pills"),t.classList.add("flex-column")),t}getTab(e){const t=super.getTab(e);return t.list.classList.add("nav-item"),t.list.classList.add("mb-3"),t.text.classList.add("ml-3"),t.link.classList.add("nav-link"),t.link.setAttribute("data-toggle","tab"),e.active&&t.link.classList.add("active"),t}getTable(){const e=document.createElement("div"),t=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return e.classList.add("table-responsive"),t.classList.add("table"),t.classList.add("table-borderless"),t.classList.add("table-sm"),t.classList.add("align-middle"),t.appendChild(s),t.appendChild(i),e.appendChild(t),{container:e,table:t,thead:s,tbody:i}}setTabPaneAttributes(e,t,s){super.setTabPaneAttributes(e,t,s),e.classList.add("tab-pane"),t&&e.classList.add("active")}infoAsModal(e,t,s={}){const i=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),l=document.createElement("div"),d=this.getButton({content:"Close",icon:"close"}),c=t+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",c),d.setAttribute("data-dismiss","modal"),d.setAttribute("always-enabled",""),e.info.setAttribute("data-toggle","modal"),e.info.setAttribute("data-target","#"+c),e.container.classList.add("ml-1"),i.classList.add("modal"),i.classList.add("fade"),n.classList.add("modal-dialog"),a.classList.add("modal-content"),r.classList.add("modal-header"),o.classList.add("modal-title"),l.classList.add("modal-body"),d.classList.add("jedi-modal-close"),d.classList.add("close"),p(s.title)&&(o.innerHTML=s.title),p(s.content)&&(l.innerHTML=s.content),e.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(o),r.appendChild(d),a.appendChild(l)}visuallyHidden(e){e.classList.add("sr-only")}visuallyVisible(e){e.classList.remove("sr-only")}},ThemeBootstrap5:class extends rs{init(){this.useToggleEvents=!1}getAddPropertyButton(e){const t=super.getAddPropertyButton(e);return t.classList.add("btn-primary"),t.classList.add("w-100"),t}getCollapseToggle(e){const t=super.getCollapseToggle(e);return t.setAttribute("href","#"+e.collapseId),t.setAttribute("data-bs-toggle","collapse"),t.setAttribute("always-enabled",""),t}getCollapse(e){const t=super.getCollapse(e);return t.classList.add("collapse"),e.startCollapsed||t.classList.add("show"),t}getJsonData(e){const t=super.getJsonData(e);return t.control.classList.add("mb-3"),t.input.classList.add("form-control"),t.saveBtn.classList.add("btn-primary"),t.saveBtn.classList.add("w-100"),t}getFieldset(){const e=document.createElement("fieldset");return e.setAttribute("role","group"),e.classList.add("card"),e.classList.add("mb-3"),e}getLegend(e){const t=super.getLegend(e),{legend:s}=t;return s.classList.add("card-header"),s.classList.add("d-flex"),s.classList.add("justify-content-between"),s.classList.add("align-items-center"),s.classList.add("py-2"),t}getLabel(e){const t=super.getLabel(e);return t.icon.classList&&t.icon.classList.add("me-1"),t}getCard(){const e=super.getCard();return e.classList.add("card"),e.classList.add("mb-3"),e}getCardHeader(e){const t=super.getCardHeader(e);return t.classList.add("card-header"),t.classList.add("d-flex"),t.classList.add("justify-content-end"),t.classList.add("align-items-center"),t.classList.add("py-1"),t}getCardBody(){const e=super.getCardBody();return e.classList.add("card-body"),e.classList.add("pb-0"),e}getControlSlot(){const e=super.getControlSlot();return e.classList.add("mb-3"),e}getBtnGroup(){const e=super.getBtnGroup();return e.classList.add("btn-group"),e}getButton(e){const t=super.getButton(e);return t.classList.add("btn"),t.classList.add("btn-sm"),t}getDescription(e){const t=super.getDescription(e);return t.classList.add("text-muted"),t.classList.add("mb-1"),t}getPropertiesGroup(e={}){const t=super.getPropertiesGroup(e);return t.group.classList.add("ps-3"),t.container.classList.add("mb-4"),t}getTextareaControl(e){const t=super.getTextareaControl(e),{container:s,input:i,label:n}=t;return s.classList.add("mb-3"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableTextareaControl(e){super.adaptForTableTextareaControl(e),e.container.classList.remove("mb-3")}getInputControl(e){const t=super.getInputControl(e),{container:s,input:i,label:n}=t;return s.classList.add("mb-3"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}getInputRangeControl(e){const t=super.getInputRangeControl(e),{container:s,input:i,label:n}=t;return s.classList.add("mb-3"),i.classList.add("form-range"),i.classList.remove("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableInputControl(e,t){super.adaptForTableInputControl(e,t),e.container.classList.remove("mb-3")}getRadiosControl(e){const t=super.getRadiosControl(e),{container:s,fieldset:i,radios:n,labels:a,labelTexts:r,radioControls:o,description:l,messages:d}=t;return s.classList.add("mb-3"),o.forEach((t,s)=>{t.classList.add("form-check"),n[s].classList.add("form-check-input"),a[s].classList.add("form-check-label"),e.inline&&t.classList.add("form-check-inline"),i.appendChild(o[s]),t.appendChild(n[s]),t.appendChild(a[s]),a[s].appendChild(r[s])}),i.appendChild(l),i.appendChild(d),t}adaptForTableRadiosControl(e,t){super.adaptForTableRadiosControl(e,t),e.container.classList.remove("mb-3"),e.fieldset.classList.remove("card"),e.fieldset.style.marginBottom="0"}getCheckboxesControl(e){const t=super.getCheckboxesControl(e),{checkboxes:s,labels:i,checkboxControls:n}=t;return n.forEach((t,n)=>{t.classList.add("mb-3"),t.classList.add("form-check"),s[n].classList.add("form-check-input"),i[n].classList.add("form-check-label"),e.inline&&t.classList.add("form-check-inline")}),t}getCheckboxControl(e){const t=super.getCheckboxControl(e),{container:s,formGroup:i,input:n,label:a,info:r,description:o,messages:l}=t;return s.classList.add("mb-3"),i.classList.add("form-check"),n.classList.add("form-check-input"),a.classList.add("form-check-label"),e.titleHidden&&this.visuallyHidden(a),s.appendChild(i),i.appendChild(n),i.appendChild(a),f(e.info)&&a.appendChild(r.container),s.appendChild(o),s.appendChild(l),t}adaptForTableCheckboxControl(e,t){super.adaptForTableCheckboxControl(e,t),e.container.classList.remove("mb-3"),e.formGroup.classList.remove("form-check")}getSelectControl(e){const t=super.getSelectControl(e),{container:s,input:i}=t;return s.classList.add("mb-3"),i.classList.add("form-select"),t}adaptForTableSelectControl(e,t){super.adaptForTableSelectControl(e,t),e.container.classList.remove("mb-3")}adaptForTableMultipleControl(e,t){super.adaptForTableMultipleControl(e,t),e.container.classList.remove("mb-3")}getAlert(e){const t=super.getAlert(e);return t.classList.add("alert"),t.classList.add("alert-danger"),t}getErrorFeedback(e){const t=super.getErrorFeedback(e);return t.classList.add("text-danger"),t.classList.add("d-block"),t.classList.add("form-text"),t}getWarningFeedback(e){const t=super.getWarningFeedback(e);return t.classList.add("text-warning"),t.classList.add("d-block"),t.classList.add("form-text"),t}getRow(){const e=super.getRow();return e.classList.add("row"),e}getCol(e,t,s,i,n){const a=super.getCol(e,s,n);return a.classList.add("col-"+e),a.classList.add("col-sm"+t),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("offset-md-"+n),a}getTabList(e){const t=super.getTabList(e);return t.classList.add("nav"),"horizontal"===e.variant?t.classList.add("nav-tabs"):(t.classList.add("nav-pills"),t.classList.add("flex-column")),t}getTab(e){const t=super.getTab(e);return t.list.classList.add("nav-item"),t.list.classList.add("mb-3"),t.text.classList.add("ms-3"),t.link.classList.add("nav-link"),t.link.setAttribute("data-bs-toggle","tab"),e.active&&t.link.classList.add("active"),t}getTable(){const e=document.createElement("div"),t=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return e.classList.add("table-responsive"),t.classList.add("table"),t.classList.add("table-borderless"),t.classList.add("table-sm"),t.classList.add("align-middle"),t.appendChild(s),t.appendChild(i),e.appendChild(t),{container:e,table:t,thead:s,tbody:i}}setTabPaneAttributes(e,t,s){super.setTabPaneAttributes(e,t,s),e.classList.add("tab-pane"),t&&e.classList.add("active")}infoAsModal(e,t,s={}){const i=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),l=document.createElement("div"),d=this.getButton({content:"Close",icon:"close"}),c=t+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",c),d.setAttribute("data-bs-dismiss","modal"),d.setAttribute("always-enabled",""),e.info.setAttribute("data-bs-toggle","modal"),e.info.setAttribute("data-bs-target","#"+c),e.container.classList.add("ms-1"),i.classList.add("modal"),i.classList.add("fade"),n.classList.add("modal-dialog"),a.classList.add("modal-content"),r.classList.add("modal-header"),o.classList.add("modal-title"),l.classList.add("modal-body"),d.classList.add("jedi-modal-close"),p(s.title)&&(o.innerHTML=s.title),p(s.content)&&(l.innerHTML=s.content),e.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(o),r.appendChild(d),a.appendChild(l)}visuallyHidden(e){e.classList.add("visually-hidden")}visuallyVisible(e){e.classList.remove("visually-hidden")}},RefParser:class{constructor(e={}){this.options=Object.assign({detectRecursion:!0},e),this.refs={},this.data={},this.iterations=0,this.maxIterations=1e3,this.cycles=[],this.walker=new ns}async dereference(e){for(await this.collectRefs(e);this.iterations<this.maxIterations&&!this.refsResolved();)this.iterations++,await this.collectRefs(e);const t=Object.entries(this.refs).filter(([e,t])=>null===t).map(([e])=>e);t.length&&console.warn("Missing refs:",JSON.stringify(t)),this.options.detectRecursion&&(this.cycles=this.findRecursiveRefs(this.refs),this.markRecursiveSchemas())}refsResolved(){return Object.values(this.refs).every(e=>null!==e)}async collectRefs(e,t="#"){if("object"==typeof e&&null!==e)for(const[s,i]of Object.entries(e)){const n=t?`${t}/${s}`:`/${s}`;if(this.hasRef(e)){const t=e.$ref;if(this.isExternalRef(t)){const e=await this.load(t);this.refs[t]=e,await this.collectRefs(e,n)}else this.refs[t]=this.data[t]??null}this.data[t]=e,await this.collectRefs(i,n)}}hasRef(e){return void 0!==e.$ref&&"string"==typeof e.$ref}isExternalRef(e){return"string"==typeof e&&(e.startsWith("http")||e.startsWith("https"))}isObject(e){return null!==e&&"object"==typeof e}findRecursiveRefs(e){const t=new Set;function s(i,n,a){if(n.has(i)){const e=a.indexOf(i);if(-1!==e){const s=a.slice(e).concat(i),n=s.reduce((e,t,i)=>t<s[e]?i:e,0),r=[...s.slice(n),...s.slice(0,n)].join(" → ");t.add(r)}return}e[i]&&(n.add(i),a.push(i),function e(t){if("object"==typeof t&&null!==t){t.$ref&&s(t.$ref,n,a);for(const s in t)e(t[s])}}(e[i]),n.delete(i),a.pop())}for(const i in e)s(i,new Set,[]);return[...t]}hasRefCycles(){return this.options.detectRecursion&&this.cycles.length>0}markRecursiveSchemas(){const e=new Set;this.cycles.forEach(t=>{t.split(" → ").forEach(t=>e.add(t))});for(const t of Object.values(this.data))t&&t.$ref&&e.has(t.$ref)&&(t["x-recursive"]=!0)}expand(e){const t=JSON.parse(JSON.stringify(e));if(this.isObject(t)&&this.hasRef(t)){const e=t.$ref;return delete t.$ref,this.expand(v({},this.refs[e],t))}return t}expandRecursive(e){let t=!0;for(;t;)t=!1,this.walker.traverse(e,(e,s,i,n)=>{e.$ref&&"string"==typeof e.$ref&&i&&null!==n&&(i[n]=this.expand(e),t=!0)})}async load(e){try{const t=await fetch(e);if(!t.ok)throw new Error("Network response was not ok");return await t.json()}catch(t){throw console.error("Error loading",e,t),t}}},Create:as,SchemaGenerator:class{static inferType(e){return Array.isArray(e)?"array":null===e?"null":typeof e}static generate(e){if("object"!=typeof e||null===e)return{type:this.inferType(e)};if(Array.isArray(e)){const t=e.map(e=>this.generate(e));return{type:"array",items:t.length?t[0]:{}}}const t={};for(const s in e)t[s]=this.generate(e[s]);return{type:"object",properties:t}}}};module.exports=os;
1
+ "use strict";function e(e){if(void 0!==e)return JSON.parse(JSON.stringify(e))}function t(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s(e,s,i){return e.replace(new RegExp(t(s),"g"),i)}function i(e){return s(s(e,"#","root"),"/","-")}function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function a(e){return Object.keys(e).sort().reduce((t,s)=>(t[s]=e[s],t),{})}function r(e,t){return e===t||(f(e)&&f(t)&&(e=a(e),t=a(t)),JSON.stringify(e)===JSON.stringify(t))}function o(e,t){return!r(e,t)}function l(e){return null===e}function d(e){return void 0!==e}function c(e){return void 0===e}function h(e){return"number"==typeof e}function u(e){return h(e)&&e===Math.floor(e)}function p(e){return"string"==typeof e}function m(e){return"boolean"==typeof e}function g(e){return Array.isArray(e)}function f(e){return!l(e)&&!g(e)&&"object"==typeof e}function b(e){let t="any";return h(e)?t=u(e)?"integer":"number":p(e)?t="string":m(e)?t="boolean":g(e)?t="array":l(e)?t="null":f(e)&&(t="object"),t}function v(e,...t){if(!t.length)return e;const s=t.shift();return f(e)&&f(s)&&Object.keys(s).forEach(t=>{f(s[t])?(e[t]||Object.assign(e,{[t]:{}}),v(e[t],s[t])):Object.assign(e,{[t]:s[t]})}),v(e,...t)}function y(e,...t){if(!t.length)return e;const s=t.shift();return Array.isArray(e)&&Array.isArray(s)?e.push(...s):f(e)&&f(s)&&Object.keys(s).forEach(t=>{f(s[t])?(e[t]||Object.assign(e,{[t]:{}}),y(e[t],s[t])):Array.isArray(s[t])?(e[t]||(e[t]=[]),e[t].push(...s[t])):Object.assign(e,{[t]:s[t]})}),y(e,...t)}const C=(e,t)=>(Object.keys(t).forEach(s=>{s in e&&d(e[s])&&d(t[s])&&(f(e[s])&&f(t[s])||g(e[s])&&g(t[s])||p(e[s])&&p(t[s])||h(e[s])&&h(t[s])||m(e[s])&&m(t[s])||l(e[s])&&l(t[s]))&&(f(e[s])&&f(t[s])?C(e[s],t[s]):e[s]=t[s])}),e);function L(e,t){const s=t.split(".");let i=e;for(const a of s)if(Array.isArray(i)&&/^\d+$/.test(a)){const e=parseInt(a);if(!(e>=0&&e<i.length))return;i=i[e]}else{if(!n(i,a))return;i=i[a]}return i}function E(e,t){return e.replace(/{{(.*?)}}/g,e=>{const s=(e=e.replace(/\s/g,"")).split(/{{|}}/)[1];return L(t,s)})}function x(e,t,s){return Math.max(t,Math.min(e,s))}function I(e){const t=[],s=new Set;for(const i of e){const e=JSON.stringify(i);s.has(e)||(s.add(e),t.push(i))}return t}function w(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let s="";for(let i=0;i<e;i++){s+=t[Math.floor(62*Math.random())]}return s}const A={clone:e,escapeRegExp:t,replaceAll:s,pathToAttribute:i,hasOwn:n,sortObject:a,equal:r,different:o,isNull:l,isSet:d,notSet:c,isNumber:h,isInteger:u,isString:p,isBoolean:m,isArray:g,isObject:f,getType:b,mergeDeep:v,combineDeep:y,overwriteExistingProperties:C,getValueByJSONPath:L,compileTemplate:E,clamp:x,removeDuplicatesFromArray:I,generateRandomID:w};function T(t){return f(t.additionalProperties)||m(t.additionalProperties)?e(t.additionalProperties):void 0}function j(t){return f(t.propertyNames)||m(t.propertyNames)?e(t.propertyNames):void 0}function M(t){return g(t.allOf)?e(t.allOf):void 0}function S(t){return g(t.anyOf)?e(t.anyOf):void 0}function P(t){return e(t.const)}function D(t){return f(t.contains)||m(t.contains)?e(t.contains):void 0}function k(t){return e(t.default)}function O(t){return f(t.dependentRequired)?e(t.dependentRequired):void 0}function F(t){return f(t.dependentSchemas)?e(t.dependentSchemas):void 0}function H(t){return p(t.description)?e(t.description):void 0}function V(t){return f(t.else)||m(t.else)?e(t.else):void 0}function R(t){if(g(t.enum)&&t.enum.length>0)return e(t.enum)}function B(t){return h(t.exclusiveMaximum)?e(t.exclusiveMaximum):void 0}function q(e){return h(e.exclusiveMinimum)?e.exclusiveMinimum:void 0}function N(t){return p(t.format)?e(t.format):void 0}function U(t){return f(t.if)||m(t.if)?e(t.if):void 0}function J(t){return f(t.items)||m(t.items)?e(t.items):void 0}function W(t){return h(t.maximum)?e(t.maximum):void 0}function z(t){if(u(t.maxContains)&&t.maxContains>=0)return e(t.maxContains)}function G(t){if(u(t.maxItems)&&t.maxItems>=0)return e(t.maxItems)}function $(t){if(u(t.maxLength)&&t.maxLength>=0)return e(t.maxLength)}function K(t){if(u(t.maxProperties))return e(t.maxProperties)}function Z(t){return h(t.minimum)?e(t.minimum):void 0}function _(t){if(u(t.minContains)&&t.minContains>=0)return e(t.minContains)}function X(t){if(u(t.minItems)&&t.minItems>=0)return e(t.minItems)}function Q(t){if(u(t.minLength)&&t.minLength>=0)return e(t.minLength)}function Y(t){if(u(t.minProperties)&&t.minProperties>=0)return e(t.minProperties)}function ee(t){if(h(t.multipleOf)&&t.multipleOf>=0)return e(t.multipleOf)}function te(t){return f(t.not)||m(t.not)?e(t.not):void 0}function se(e,t){const s="x-"+t;return d(e[s])?e[s]:e["x-options"]&&d(e["x-options"][t])?e["x-options"][t]:void 0}function ie(t){return p(t.pattern)?e(t.pattern):void 0}function ne(t){return f(t.patternProperties)?e(t.patternProperties):void 0}function ae(t){return g(t.prefixItems)?e(t.prefixItems):void 0}function re(t){return f(t.properties)?e(t.properties):void 0}function oe(t){return m(t.readOnly)?e(t.readOnly):void 0}function le(e){return g(e.required)?[...new Set(e.required)]:void 0}function de(t){return f(t.then)||m(t.then)?e(t.then):void 0}function ce(t){return p(t.title)?e(t.title):void 0}function he(t){if(p(t.type)||g(t.type))return e(t.type)}function ue(t){return g(t.oneOf)?e(t.oneOf):void 0}function pe(t){return m(t.unevaluatedProperties)?e(t.unevaluatedProperties):void 0}function me(t){return m(t.uniqueItems)?e(t.uniqueItems):void 0}const ge={getSchemaX:function(e,t){return e["x-"+t]},getSchemaSchema:function(t){return p(t.$schema)?e(t.$schema):void 0},getSchemaAdditionalProperties:T,getSchemaPropertyNames:j,getSchemaAllOf:M,getSchemaAnyOf:S,getSchemaConst:P,getSchemaContains:D,getSchemaDefault:k,getSchemaDependentRequired:O,getSchemaDependentSchemas:F,getSchemaDescription:H,getSchemaElse:V,getSchemaEnum:R,getSchemaExclusiveMaximum:B,getSchemaExclusiveMinimum:q,getSchemaFormat:N,getSchemaIf:U,getSchemaItems:J,getSchemaMaximum:W,getSchemaMaxContains:z,getSchemaMaxItems:G,getSchemaMaxLength:$,getSchemaMaxProperties:K,getSchemaMinimum:Z,getSchemaMinContains:_,getSchemaMinItems:X,getSchemaMinLength:Q,getSchemaMinProperties:Y,getSchemaMultipleOf:ee,getSchemaNot:te,getSchemaXOption:se,getSchemaPattern:ie,getSchemaPatternProperties:ne,getSchemaPrefixItems:ae,getSchemaProperties:re,getSchemaReadOnly:oe,getSchemaRequired:le,getSchemaThen:de,getSchemaTitle:ce,getSchemaType:he,getSchemaOneOf:ue,getSchemaUnevaluatedProperties:pe,getSchemaUniqueItems:me};function fe(e){let t=[];const s=M(e.schema);return d(s)&&(s.forEach(s=>{const i=new as({refParser:e.validator.refParser,schema:s,data:e.value,rootName:e.key}),n=i.getErrors();i.destroy(),n.forEach(t=>{t.path=e.path}),t.push(...n)}),t=I(t)),t}function be(e){const t=[],s=Q(e.schema);if(p(e.value)&&d(s)){e.value=e.value.replace(/[\uDCA9]/g,"");e.value.length<s&&t.push({type:"error",path:e.path,constraint:"minLength",messages:[E(e.translator.translate("errorMinLength"),{minLength:s})]})}return t}function ve(e){const t=[],s=S(e.schema);if(d(s)){let i=!1;s.forEach(t=>{const s=new as({refParser:e.validator.refParser,schema:t,data:e.value}),n=s.getErrors();s.destroy(),0===n.length&&(i=!0)}),i||t.push({type:"error",path:e.path,constraint:"anyOf",messages:[e.translator.translate("errorAnyOf")]})}return t}function ye(e){const t=[],s=R(e.schema);if(d(s)){!s.some(t=>JSON.stringify(e.value)===JSON.stringify(t))&&t.push({type:"error",path:e.path,constraint:"enum",messages:[E(e.translator.translate("errorEnum"),{enum:JSON.stringify(s)})]})}return t}function Ce(e){const t=[],s=B(e.schema);if(h(e.value)&&d(s)){e.value>=s&&t.push({type:"error",path:e.path,constraint:"exclusiveMaximum",messages:[E(e.translator.translate("errorExclusiveMaximum"),{exclusiveMaximum:s})]})}return t}function Le(e){const t=[],s=q(e.schema);if(h(e.value)&&d(s)){e.value<=s&&t.push({type:"error",path:e.path,constraint:"exclusiveMinimum",messages:[E(e.translator.translate("errorExclusiveMinimum"),{exclusiveMinimum:s})]})}return t}function Ee(e){const t=[],s=N(e.schema);let i=e.validator.assertFormat;if(se(e.schema,"assertFormat")&&(i=e.schema.options.assertFormat),d(s)&&p(e.value)&&i){let i;"email"===s&&(i=new RegExp(/^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/i)),"url"===s&&(i=new RegExp(/^(?:https?|ftp):\/\/(?:[^\s:@]+(?::[^\s:@]*)?@)?(?:(?:[^\s:@]+(?::[^\s:@]*)?@)?(?:[^\s:@](?:[^\s:@-]*[^\s:@])?\.?)+[a-zA-Z]{2,}|(?:\d{1,3}\.){3}\d{1,3})(?::\d{2,5})?(?:\/[^\s]*)?$/i)),"uuid"===s&&(i=new RegExp(/^(?:urn:uuid:)?[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$/i));d(i)&&!i.test(e.value)&&t.push({type:"error",path:e.path,constraint:"format",messages:[E(e.translator.translate("errorFormat"),{format:s})]})}return t}function xe(e){const t=[],s=J(e.schema),i=ae(e.schema);if(g(e.value)&&d(s)){const n=d(i)?i.length:0;!1===s&&e.value.length>0&&e.value.length>n&&t.push({type:"error",path:e.path,constraint:"items",messages:[e.translator.translate("errorItems")]})}return t}function Ie(e){const t=[],s=G(e.schema);if(g(e.value)&&d(s)){e.value.length>s&&t.push({type:"error",path:e.path,constraint:"maxItems",messages:[E(e.translator.translate("errorMaxItems"),{maxItems:s})]})}return t}function we(e){const t=[],s=$(e.schema);if(p(e.value)&&d(s)){e.value=e.value.replace(/[\uDCA9]/g,"");e.value.length>s&&t.push({type:"error",path:e.path,constraint:"maxLength",messages:[E(e.translator.translate("errorMaxLength"),{maxLength:s})]})}return t}function Ae(e){const t=[],s=K(e.schema);if(f(e.value)&&d(s)){Object.keys(e.value).length>s&&t.push({type:"error",path:e.path,constraint:"maxProperties",messages:[E(e.translator.translate("errorMaxProperties"),{maxProperties:s})]})}return t}function Te(e){const t=[],s=Z(e.schema);if(h(e.value)&&d(s)){e.value<s&&t.push({type:"error",path:e.path,constraint:"minimum",messages:[E(e.translator.translate("errorMinimum"),{minimum:s})]})}return t}function je(e){const t=[],s=X(e.schema);if(g(e.value)&&d(s)){e.value.length<s&&t.push({type:"error",path:e.path,constraint:"minItems",messages:[E(e.translator.translate("errorMinItems"),{minItems:s})]})}return t}function Me(e){const t=[],s=Y(e.schema);if(f(e.value)&&d(s)){Object.keys(e.value).length<s&&t.push({type:"error",path:e.path,constraint:"minProperties",messages:[E(e.translator.translate("errorMinProperties"),{minProperties:s})]})}return t}function Se(e){const t=[],s=ee(e.schema);if(h(e.value)&&d(s)){if(0===e.value)return t;(!(e.value/s===Math.floor(e.value/s))||e.value.toString().includes("e"))&&t.push({type:"error",path:e.path,constraint:"multipleOf",messages:[E(e.translator.translate("errorMultipleOf"),{multipleOf:s})]})}return t}function Pe(e){const t=[],s=te(e.schema);if(d(s)){const i=new as({refParser:e.validator.refParser,schema:s,data:e.value}),n=i.getErrors();i.destroy();0===n.length&&t.push({type:"error",path:e.path,constraint:"not",messages:[E(e.translator.translate("errorNot"))]})}return t}function De(e){const t=[],s=ue(e.schema);if(d(s)){let i=0;s.forEach(t=>{const s=new as({refParser:e.validator.refParser,schema:t,data:e.value}),n=s.getErrors();s.destroy(),0===n.length&&i++}),1!==i&&t.push({type:"error",path:e.path,constraint:"oneOf",messages:[E(e.translator.translate("errorOneOf"),{counter:i})]})}return t}function ke(e){const t=[],s=ie(e.schema);if(p(e.value)&&d(s)){!new RegExp(s).test(e.value)&&t.push({type:"error",path:e.path,constraint:"pattern",messages:[E(e.translator.translate("errorPattern"),{pattern:s})]})}return t}function Oe(e){let t=[];const s=ne(e.schema);return f(e.value)&&d(s)&&Object.keys(e.value).forEach(i=>{Object.keys(s).forEach(n=>{if(new RegExp(n).test(i)){const a=s[n],r=new as({refParser:e.validator.refParser,schema:a,data:e.value[i]}),o=r.getErrors().map(t=>({type:"error",path:e.path+"/"+i,constraint:"patternProperties",messages:t.messages}));t=[...t,...o],r.destroy()}})}),t}function Fe(e){const t=re(e.schema),s=[];return f(e.value)&&d(t)&&Object.keys(t).forEach(i=>{if(n(e.value,i)){const n=t[i];e.validator.getErrors(e.value[i],n,i,e.path+"/"+i).length>0&&s.push(i)}}),s.length>0?[{type:"error",path:e.path,constraint:"properties",messages:[E(e.translator.translate("errorProperties"),{properties:s.join(", ")})]}]:[]}function He(e){const t=[],s=le(e.schema);if(f(e.value)&&d(s)){const i=[],n=Object.keys(e.value);s.forEach(e=>{n.includes(e)||i.push(e)});i.length>0&&t.push({type:"error",path:e.path,constraint:"required",messages:[E(e.translator.translate("errorRequired"),{required:i.join(", ")})]})}return t}function Ve(e){const t=[],s=he(e.schema);if("any"===s)return t;if(d(s)){const i={string:e=>p(e),number:e=>h(e),integer:e=>u(e),boolean:e=>m(e),array:e=>g(e),object:e=>f(e),null:e=>l(e)};let n=!0;n=g(s)?s.some(t=>i[t](e.value)):i[s](e.value),n||t.push({type:"error",path:e.path,constraint:"type",messages:[E(e.translator.translate("errorType"),{type:s,valueType:b(e.value)})]})}return t}function Re(e){const t=[],s=W(e.schema);if(h(e.value)&&d(s)){e.value>s&&t.push({type:"error",path:e.path,constraint:"maximum",messages:[E(e.translator.translate("errorMaximum"),{maximum:s})]})}return t}function Be(e){const t=[],s=me(e.schema);if(g(e.value)&&d(s)&&!0===s){const s=[];let i=!1;for(let t=0;t<e.value.length;t++){let n=e.value[t];f(n)&&(n=a(n));const r=JSON.stringify(n);if(i=s.some(e=>e===r),i)break;s.push(r)}i&&t.push({type:"error",path:e.path,constraint:"uniqueItems",messages:[e.translator.translate("errorUniqueItems")]})}return t}function qe(e){const t=[],s=T(e.schema),i=ne(e.schema),a=re(e.schema);if(f(e.value)&&d(s)){const r=a||{},o=s,l=i||{};Object.keys(e.value).forEach(s=>{const i=Object.keys(l).some(e=>new RegExp(e).test(s)),a=n(r,s);if(!i&&!a)if(!1===o)t.push({type:"error",path:e.path,constraint:"additionalProperties",messages:[E(e.translator.translate("errorAdditionalProperties"),{property:s})]});else if(f(o)){const i=new as({refParser:e.validator.refParser,schema:o,data:e.value[s]}),n=i.getErrors().map(t=>({type:"error",path:`${e.path}.${s}`,constraint:"additionalProperties",messages:t.messages}));t.push(...n),i.destroy()}})}return t}const Ne={additionalProperties:qe,allOf:fe,anyOf:ve,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,properties:Fe,required:He,type:Ve,uniqueItems:Be};function Ue(e){const t=[],s=P(e.schema);if(d(s)){o(e.value,s)&&t.push({type:"error",path:e.path,constraint:"const",messages:[E(e.translator.translate("errorConst"),{const:JSON.stringify(s)})]})}return t}function Je(e){const t=[],s=D(e.schema),i=_(e.schema),n=z(e.schema);if(g(e.value)&&d(s)){let a=0;e.value.forEach(t=>{const i=new as({refParser:e.validator.refParser,schema:s,data:t});0===i.getErrors().length&&a++,i.destroy()});const r=0===a;if(d(i)){a<i&&t.push({type:"error",path:e.path,constraint:"minContains",messages:[E(e.translator.translate("errorMinContains"),{counter:a,minContains:i})]})}else r&&t.push({type:"error",path:e.path,constraint:"contains",messages:[e.translator.translate("errorContains")]});if(d(n)){a>n&&t.push({type:"error",path:e.path,constraint:"maxContains",messages:[E(e.translator.translate("errorMaxContains"),{counter:a,maxContains:n})]})}}return t}function We(e){const t=[],s=O(e.schema);if(f(e.value)&&d(s)){let i=[];Object.keys(s).forEach(t=>{if(d(e.value[t])){const a=s[t];i=a.filter(t=>!n(e.value,t))}});i.length>0&&t.push({type:"error",path:e.path,constraint:"dependentRequired",messages:[E(e.translator.translate("errorDependentRequired"),{dependentRequired:i.join(", ")})]})}return t}function ze(e){let t=[];const s=F(e.schema);return f(e.value)&&d(s)&&Object.keys(s).forEach(i=>{if(d(e.value[i])){const n=s[i],a=new as({refParser:e.validator.refParser,schema:n,data:e.value}),r=a.getErrors();a.destroy(),t=[...t,...r]}}),t}function Ge(e){const t=[],s=U(e.schema),i=de(e.schema),n=V(e.schema);if(d(s)){if(c(i)&&c(n))return t;const a=new as({refParser:e.validator.refParser,schema:s,data:e.value}),r=a.getErrors();a.destroy();let o=[],l=[];if(d(i)){const t=new as({refParser:e.validator.refParser,schema:i,data:e.value});o=t.getErrors(),t.destroy()}if(d(n)){const t=new as({refParser:e.validator.refParser,schema:n,data:e.value});l=t.getErrors(),t.destroy()}if(!0===s)return o;if(!1===s)return l;if(0===r.length)return o;if(r.length>0)return l}return t}function $e(e){const t=[],s=ae(e.schema);return g(e.value)&&d(s)&&s.forEach((s,i)=>{const n=e.value[i];if(d(n)){const a=new as({refParser:e.validator.refParser,schema:s,data:n}),r=a.getErrors();a.destroy(),r.length>0&&t.push({type:"error",path:e.path,constraint:"prefixItems",messages:[E(e.translator.translate("errorPrefixItems"),{index:i})]})}}),t}const Ke={additionalProperties:qe,allOf:fe,anyOf:ve,const:Ue,contains:Je,dependentRequired:We,dependentSchemas:ze,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,if:Ge,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,properties:Fe,prefixItems:$e,required:He,type:Ve,uniqueItems:Be},Ze={additionalProperties:qe,allOf:fe,anyOf:ve,const:Ue,contains:Je,dependentRequired:We,dependentSchemas:ze,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,if:Ge,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,properties:Fe,prefixItems:$e,required:He,type:Ve,uniqueItems:Be};function _e(e){let t=[];const s=pe(e.schema),i=ne(e.schema),a=re(e.schema),r=M(e.schema),o=S(e.schema),l=ue(e.schema);if(f(e.value)&&d(s)){let c=d(a)?a:{};const h=s,u=i;[r,o,l].forEach(e=>{d(e)&&e.forEach(e=>{d(e.properties)&&(c={...c,...e.properties})})}),c&&Object.keys(e.value).forEach(s=>{let i=!1;if(d(u)&&Object.keys(u).forEach(e=>{const t=new RegExp(e);i=t.test(s)}),i||!1!==h||n(c,s)||t.push({type:"error",path:e.path,constraint:"unevaluatedProperties",messages:[E(e.translator.translate("errorUnevaluatedProperties"),{property:s})]}),!i&&f(h)&&!n(c,s)){const i=new as({refParser:e.validator.refParser,schema:h,data:e.value[s]}),n=i.getErrors().map(e=>({type:"error",path:s,constraint:"unevaluatedProperties",messages:e.messages}));t=[...t,...n],i.destroy()}})}return t}const Xe={additionalProperties:qe,allOf:fe,anyOf:ve,const:Ue,contains:Je,dependentRequired:We,dependentSchemas:ze,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,if:Ge,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,propertie:Fe,prefixItems:$e,required:He,type:Ve,unevaluatedProperties:_e,uniqueItems:Be};const Qe={additionalProperties:qe,allOf:fe,anyOf:ve,const:Ue,contains:Je,dependentRequired:We,dependentSchemas:ze,enum:ye,exclusiveMaximum:Ce,exclusiveMinimum:Le,format:Ee,if:Ge,items:xe,maximum:Re,maxItems:Ie,maxLength:we,maxProperties:Ae,minimum:Te,minItems:je,minLength:be,minProperties:Me,multipleOf:Se,not:Pe,oneOf:De,pattern:ke,patternProperties:Oe,prefixItems:$e,propertyNames:function(e){const t=[],s=j(e.schema);return f(e.value)&&d(s)&&Object.keys(e.value).forEach(i=>{new as({refParser:e.validator.refParser,schema:s,data:i}).getErrors().length>0&&t.push({type:"error",path:e.path,constraint:"propertyNames",messages:[E(e.translator.translate("errorPropertyNames"),{propertyName:i})]})}),t},properties:Fe,required:He,type:Ve,unevaluatedProperties:_e,uniqueItems:Be};class Ye{constructor(e={}){this.refParser=e.refParser,this.constraints=e.constraints??{},this.assertFormat=!!e.assertFormat&&e.assertFormat,this.translator=!!e.translator&&e.translator,this.draft=Qe,this.jsonSchemaDrafts={"http://json-schema.org/draft-04/schema#":Ne,"http://json-schema.org/draft-06/schema#":Ke,"http://json-schema.org/draft-07/schema#":Ze,"https://json-schema.org/draft/2019-09/schema":Xe,"https://json-schema.org/draft/2020-12/schema":Qe}}getErrors(t,s,i,a){let r=[];const o=e(s);if(m(o)&&!0===o)return r;if(m(o)&&!1===o)return[{type:"error",messages:["invalid"],path:a}];const l={...this.draft,...this.constraints};for(const[e,d]of Object.entries(l))if(n(o,e)){const e=d({validator:this,value:t,schema:o,key:i,path:a,translator:this.translator});e&&(r=[...r,...e])}const c=se(s,"messages");return d(c)&&(f(c)&&r.forEach(e=>{var t,s;const i=null==(s=null==c?void 0:c[null==(t=this.translator)?void 0:t.language])?void 0:s[null==e?void 0:e.constraint],n=null==c?void 0:c[null==e?void 0:e.constraint],a=i??n;return d(a)&&(e.messages=[a]),e}),g(c)&&r.length>0&&r.forEach(e=>(e.messages=c,e))),r}}class et{constructor(){this.listeners=[]}on(e,t){this.listeners.push({name:e,callback:t})}off(e){this.listeners=this.listeners.filter(t=>t.name!==e)}emit(e,...t){this.listeners.filter(t=>t.name===e).forEach(s=>{try{s.callback(...t)}catch(i){console.error(`Error in listener callback for event "${e}":`,i)}})}destroy(){Object.keys(this).forEach(e=>{delete this[e]})}}class tt extends et{constructor(t){super(),this.jedison=t.jedison,this.path=t.path||this.jedison.rootName,this.schema=t.schema,this.originalSchema=t.originalSchema??e(t.schema),this.value=d(t.value)?t.value:void 0,this.isActive=!0,this.parent=t.parent||null,this.children=[],this.ui=null,this.isDirty=!1,this.watched={},this.key=this.path.split(this.jedison.pathSeparator).pop(),this.arrayTemplateData=t.arrayTemplateData||{},this.init()}init(){this.register(),this.setInitialValue(),this.prepare(),this.setDefaultValue(),this.registerWatcher(),this.setValueFormTemplate(),this.jedison.options.container&&this.setUI(),this.on("notifyParent",e=>{this.parent&&(this.parent.isDirty=!0,this.parent.onChildChange(e))})}setUI(){if(this.jedison.isEditor){const e=this.jedison.uiResolver.getClass(this.schema);this.ui=new e(this)}}getKey(){return this.key}getSchema(){return this.schema}register(){if(this.jedison.register(this),0===this.children.length)return;const e=t=>{this.jedison.register(t),t.children.length>0&&t.children.forEach(e)};this.children.forEach(e)}unregister(){if(this.jedison.unregister(this),0===this.children.length)return;const e=t=>{this.jedison.unregister(t),t.children.length>0&&t.children.forEach(e)};this.children.forEach(e)}setInitialValue(){const e=se(this.schema,"enforceEnumDefault"),t=se(this.schema,"enforceEnum"),s=e??this.jedison.options.enforceEnumDefault,i=t??this.jedison.options.enforceEnum,n=d(t)?i:s,a=R(this.schema);if(d(a)&&!a.includes(this.getValue())&&d(a[0])&&n&&this.setValue(a[0],!1),c(this.value)){let e;const t=he(this.schema);"boolean"===t&&(e=!1),"number"===t&&(e=0),"integer"===t&&(e=0),"string"===t&&(e=""),"array"===t&&(e=[]),"object"===t&&(e={}),"null"===t&&(e=null),this.value=e}}setDefaultValue(){const e=k(this.schema);d(e)&&this.setValue(e,!1);const t=se(this.schema,"enforceConst")??this.jedison.options.enforceConst;if(d(t)&&r(t,!0)){const e=P(this.schema);d(e)&&this.setValue(e,!1)}}registerWatcher(){const e=se(this.schema,"watch");d(e)&&Object.entries(e).forEach(([e,t])=>{this.jedison.watch(t,()=>{this.updateWatchedData(e,t)})})}updateWatchedData(e,t){const s=this.jedison.getInstance(t);d(s)&&(s&&(this.watched[e]={value:s.getValue(),schema:s.getSchema(),properties:s.schema.properties?Object.keys(s.schema.properties):[]}),this.setValueFormTemplate())}setValueFormTemplate(){const e=se(this.schema,"template");d(e)&&e&&this.setValue(E(e,this.watched))}getValue(){return e(this.value)}getTemplateData(e){const t={...this.arrayTemplateData,value:this.getValue(),settings:this.jedison.options.settings};return"string"==typeof this.value&&(t.length=this.value.length,"number"==typeof this.schema.maxLength&&(t.remaining=this.schema.maxLength-this.value.length)),(null==e?void 0:e.includes("{{ functions."))&&(t.functions=this.resolveTemplateFunctions(this.jedison.options.functions)),this.parent&&(t.parent=this.parent.getTemplateData()),t}resolveTemplateFunctions(e={}){const t={instance:this};return Object.fromEntries(Object.entries(e).map(([e,s])=>[e,s(t)]))}purify(e){return"string"==typeof e&&this.jedison.options.purifyData&&"undefined"!=typeof window&&window.DOMPurify&&(e=window.DOMPurify.sanitize(e)),e}setValue(e,t=!0,s="api"){if(this.value===e)return this.value;const i=this.purify(e),n=e!==i;e=i;const a=se(this.schema,"enforceConst")??this.jedison.options.enforceConst;if(d(a)&&r(a,!0)){const t=P(this.schema);d(t)&&(e=t)}return n||o(this.value,e)?(this.value=e,this.isDirty=!0,this.emit("set-value",e,s),this.emit("change",s),this.jedison.emit("instance-change",this,s),t&&this.emit("notifyParent",s),this.value):this.value}onChildChange(e){}getErrors(){if(!this.isActive)return[];return I(this.jedison.validator.getErrors(this.getValue(),this.originalSchema,this.getKey(),this.path))}prepare(){}activate(){!1===this.isActive&&(this.isActive=!0,this.emit("notifyParent"))}deactivate(){!0===this.isActive&&(this.isActive=!1,this.emit("notifyParent"))}isReadOnly(){return!0===oe(this.schema)||!!this.parent&&this.parent.isReadOnly()}destroy(){this.unregister(),this.listeners=null,this.children.length>0&&(this.children.forEach(e=>e.destroy()),this.children=[]),this.ui&&(this.ui.destroy(),this.ui=null),Object.keys(this).forEach(e=>{this[e]=null}),super.destroy()}}class st{constructor(e){this.instance=e,this.theme=null,this.control=null,this.disabled=!1,this.readOnly=this.instance.isReadOnly(),this.showingValidationErrors=!1,this.markdownEnabled=!1,this.purifyEnabled=!1,this.title=null,this.description=null,this.storedEventListeners=[],this.init(),this.build(),this.setAttributes(),this.setReadOnlyAttribute(),this.addEventListeners(),this.setVisibility(),this.setContainerAttributes(),this.refreshUI();("always"===this.instance.jedison.options.showErrors||"always"===se(this.instance.schema,"showErrors"))&&this.showValidationErrors(this.instance.getErrors());this.instance.on("change",()=>{this.refreshUI(),this.showValidationErrors(this.instance.getErrors())})}static resolves(e){}init(){this.theme=this.instance.jedison.theme,this.markdownEnabled=se(this.instance.schema,"parseMarkdown")??this.instance.jedison.options.parseMarkdown,this.purifyEnabled=se(this.instance.schema,"purifyHtml")??this.instance.jedison.options.purifyHtml}getLevel(){return(this.instance.path.match(/\//g)||[]).length}setVisibility(){const e=se(this.instance.schema,"hidden");d(e)&&!0===e&&(this.control.container.style.display="none",this.control.container.setAttribute("aria-hidden","true"))}setContainerAttributes(){this.control.container.setAttribute("data-level",this.getLevel()),this.control.container.setAttribute("data-path",this.instance.path),this.control.container.setAttribute("data-type",he(this.instance.schema));const e=se(this.instance.schema,"containerAttributes");if(d(e)&&f(e))for(const[t,s]of Object.entries(e))if("class"===t){s.split(" ").forEach(e=>{this.control.container.classList.add(e)})}else this.control.container.setAttribute(t,s)}build(){}adaptForTable(){}setAttributes(){const e=this.control.input;if(d(e)){const t=se(this.instance.schema,"inputAttributes");if(f(t))for(const[s,i]of Object.entries(t))e.setAttribute(s,i)}}setReadOnlyAttribute(){if(this.readOnly){this.control.container.querySelectorAll("input, textarea, select").forEach(e=>{e.setAttribute("always-disabled","")})}}getIdFromPath(e){const t=this.instance.jedison.options.id;return t?t+"-"+i(e):i(e)}getValidationEventType(){return"input"===(se(this.instance.schema,"showErrors")??this.instance.jedison.options.showErrors)?"input":"change"}addEventListeners(){}clearStoredEventListeners(){this.storedEventListeners&&this.storedEventListeners.forEach(e=>{e.element&&e.handler&&e.element.removeEventListener(e.eventType||"click",e.handler)}),this.storedEventListeners=[]}showValidationErrors(e,t=!1){e=e.filter(e=>e.path===this.instance.path),this.control.messages.innerHTML="",this.showingValidationErrors=!1;if(("never"===this.instance.jedison.options.showErrors||"never"===se(this.instance.schema,"showErrors"))&&!t||0===e.length)return;let s=0;e.forEach(e=>{"properties"!==e.constraint&&(s+=1,e.messages.forEach(t=>{let s;s="error"===e.type?this.getErrorFeedback({message:t}):this.getWarningFeedback({message:t}),this.control.messages.appendChild(s)}))}),this.showingValidationErrors=s>0}getErrorFeedback(e){return this.theme.getErrorFeedback(e)}getWarningFeedback(e){return this.theme.getWarningFeedback(e)}disable(){this.disabled=!0,this.refreshUI()}enable(){this.disabled=!1,this.refreshUI()}purifyContent(e,t){if(this.instance.jedison.options.purifyHtml&&"undefined"!=typeof window&&window.DOMPurify)return window.DOMPurify.sanitize(e,t);{const t=document.createElement("div");return t.innerHTML=e,t.textContent||t.innerText}}getHtmlFromMarkdown(e){return window.marked.parse(e)}getTitle(){let e=!1;this.title=this.instance.getKey();const t=ce(this.instance.schema);if(d(t)&&(this.title=t,e=!0),e){this.title=E(this.title,this.instance.getTemplateData(this.title)),this.title=this.markdownEnabled?this.getHtmlFromMarkdown(this.title):this.title;const e=y({},this.instance.jedison.options.domPurifyOptions,{FORBID_TAGS:["p"]});this.title=this.purifyEnabled?this.purifyContent(this.title,e):this.title}return this.title}getDescription(){const e=H(this.instance.schema);if(d(e)){this.description=E(e,this.instance.getTemplateData(this.description)),this.description=this.markdownEnabled?this.getHtmlFromMarkdown(this.description):this.description;const t=this.instance.jedison.options.domPurifyOptions;this.description=this.purifyEnabled?this.purifyContent(this.description,t):this.description}return this.description}getInfo(e=null){const t=se(e??this.instance.schema,"info");if(!d(t))return t;const s=this.instance.jedison.options.domPurifyOptions;return d(t.title)&&(t.title=this.markdownEnabled?this.getHtmlFromMarkdown(t.title):t.title,t.title=this.purifyEnabled?this.purifyContent(t.title,s):t.title),d(t.content)&&(t.content=this.markdownEnabled?this.getHtmlFromMarkdown(t.content):t.content,t.content=this.purifyEnabled?this.purifyContent(t.content,s):t.content),t}refreshUI(){this.refreshDisabledState(),this.refreshTemplates()}refreshDisabledState(){this.control.container.querySelectorAll("button, input, select, textarea").forEach(e=>{this.disabled||this.readOnly||e.hasAttribute("always-disabled")?e.setAttribute("disabled",""):e.removeAttribute("disabled",""),e.hasAttribute("always-enabled")&&e.removeAttribute("disabled","")})}refreshTemplates(){this.control.legendText&&this.getTitle()&&(this.control.legendText.innerHTML=this.getTitle()),this.control.labelText&&this.getTitle()&&(this.control.labelText.innerHTML=this.getTitle()),this.control.description&&this.getDescription()&&(this.control.description.innerHTML=this.getDescription())}sanitize(e){return e}refreshJsonDataInputSize(){if(this.control&&this.control.jsonData&&this.control.jsonData.input){const e=this.control.jsonData.input;e.style.height="auto",e.style.height=e.scrollHeight+"px",setTimeout(()=>{e&&(e.scrollTop=0)})}}refreshJsonData(){this.control&&this.control.jsonData&&this.control.jsonData.input&&(this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2))}destroy(){this.control.container&&this.control.container.parentNode&&this.control.container.parentNode.removeChild(this.control.container),Object.keys(this).forEach(e=>{delete this[e]})}}class it extends st{static resolves(e){return d(U(e))}build(){this.control=this.theme.getIfThenElseControl({title:"Options",titleHidden:se(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),description:H(this.instance.schema)})}refreshUI(){this.refreshDisabledState(),this.control.childrenSlot.innerHTML="",this.control.childrenSlot.appendChild(this.instance.activeInstance.ui.control.container),this.disabled||this.instance.isReadOnly()?this.instance.activeInstance.ui.disable():this.instance.activeInstance.ui.enable()}getErrorFeedback(e){return this.theme.getAlert(e)}}class nt extends tt{setUI(){this.ui=new it(this)}prepare(){this.instances=[],this.instanceStartingValues=[],this.instanceWithoutIf=null,this.activeInstance=null,this.index=0,this.schemas=[],this.ifThenElseSchemas=[],this.traverseSchema(this.schema),delete this.schema.if,delete this.schema.then,delete this.schema.else,this.ifThenElseSchemas.forEach(t=>{d(t.then)&&this.schemas.push(v({},e(this.schema),t.then)),d(t.else)&&this.schemas.push(v({},e(this.schema),t.else))});const t=e(this.schema);delete t.if,delete t.then,delete t.else,this.instanceWithoutIf=this.jedison.createInstance({jedison:this.jedison,schema:t,originalSchema:this.originalSchema,path:this.path,parent:this.parent}),this.schemas.forEach(e=>{const t=this.jedison.createInstance({jedison:this.jedison,schema:e,originalSchema:this.originalSchema,path:this.path,parent:this.parent});this.instanceStartingValues.push(t.getValue()),this.instances.push(t)}),this.on("set-value",(e,t)=>{this.changeValue(e,t)});const s=this.instanceWithoutIf.getValue();this.changeValue(s)}changeValue(e,t="api"){const s=this.getWithoutIfValueFromValue(e),i=this.getFittestIndex(s),a=i!==this.index;this.index=i,this.activeInstance=this.instances[i],this.activeInstance.register(),this.instances.forEach((i,r)=>{i.off("notifyParent"),i.children&&f(e)&&i.children.forEach(t=>{t.isMultiple&&n(e,t.getKey())&&t.setValue(e[t.getKey()],!0,"api")});const o=this.instanceStartingValues[r],l=i.getValue();let d=e;f(o)&&f(e)&&(a?(d=C(o,s),this.jedison.updateInstancesWatchedData()):d=C(l,e),"api"===t&&(d=C(l,e))),i.setValue(d,!1,t),i.on("notifyParent",e=>{const t=i.getValue();this.changeValue(t,e),this.emit("notifyParent",e),this.emit("change",e)})}),"api"===t&&this.hasNullableFields(this.activeInstance)&&this.activeInstance.setValue(e,!1,"secondary"),this.value=this.activeInstance.getValue()}getWithoutIfValueFromValue(e){let t=this.instanceWithoutIf.getValue();return f(t)&&f(e)?(t=C(t,e),t):e}traverseSchema(e){const t=U(e);if(d(t)){const s=de(e),i=V(e);this.ifThenElseSchemas.push({if:t,then:d(s)?s:{}}),this.ifThenElseSchemas.push({if:t,else:d(i)?i:{}})}}hasNullableFields(e){return!!e&&(!!this.isNullableSchema(e.schema)||!!e.children&&e.children.some(e=>this.hasNullableFields(e)))}isNullableSchema(e){return!!e&&(!(!e["x-format"]||!e["x-format"].includes("nullable"))||(!(!Array.isArray(e.type)||!e.type.includes("null"))||!!e.properties&&Object.values(e.properties).some(e=>this.isNullableSchema(e))))}getFittestIndex(t){let s=this.index;return this.ifThenElseSchemas.forEach((i,n)=>{if(!0===i.if)s=0;else if(!1===i.if)s=1;else{const a=e(i.if);d(this.schema.type)&&(a.type=this.schema.type);const r=new as({schema:a,data:t,refParser:this.jedison.refParser}),o=r.getErrors();r.destroy(),0===o.length&&i.then&&(s=n),o.length>0&&i.else&&(s=n)}}),s}destroy(){this.instances.forEach(e=>{e.destroy()}),super.destroy()}}class at extends tt{prepare(){this.instances=[],this.activeInstance=null,this.index=0,this.schemas=[],this.switcherOptionValues=[],this.switcherOptionsLabels=[],this.isMultiple=!0,this.on("set-value",()=>{this.onSetValue()});const t=he(this.schema);if(d(S(this.schema))||d(ue(this.schema))){const t=d(S(this.schema))?S(this.schema):ue(this.schema),s=e(this.schema);delete s.anyOf,delete s.oneOf,delete s.options,t.forEach((e,t)=>{let i="Option-"+(t+1);const n=se(e={...s,...e},"switcherTitle"),a=ce(e),r=H(e);d(r)&&(i=r),d(a)&&(i=a),d(n)&&(i=n),this.switcherOptionValues.push(t),this.switcherOptionsLabels.push(i),this.schemas.push(e)})}else if(g(t))t.forEach((e,t)=>{const s=v(this.schema),i={...s,type:e,title:e[0].toUpperCase()+e.slice(1)};d(s.title)&&(i.title=s.title),this.switcherOptionValues.push(t),this.switcherOptionsLabels.push(e.charAt(0).toUpperCase()+e.slice(1)),this.schemas.push(i)});else if("any"===t||!t){const t=e(this.schema);this.schemas=[{...t,type:"string"},{...t,type:"boolean"},{...t,type:"integer"},{...t,type:"number"},{...t,type:"array"},{...t,type:"object"},{...t,type:"null"}],this.schemas.forEach((e,t)=>{this.switcherOptionValues.push(t)}),this.switcherOptionsLabels=["String","Boolean","Integer","Number","Array","Object","Null"]}this.schemas.forEach(t=>{const s=this.jedison.createInstance({jedison:this.jedison,schema:t,path:this.path,parent:this.parent,value:e(this.value)});d(this.value)&&s.setValue(this.value,!1),s.unregister(),s.off("notifyParent"),s.on("notifyParent",e=>{this.value=this.activeInstance.getValue(),this.emit("notifyParent",e),this.emit("change",e)}),this.instances.push(s),this.register()});const s=this.getFittestIndex(this.value);this.switchInstance(s,this.value)}switchInstance(e,t,s="api"){this.index=e,this.activeInstance=this.instances[e],d(t)&&this.activeInstance.setValue(t,!1,s),this.setValue(this.activeInstance.getValue(),!0,s)}onSetValue(){if(o(this.activeInstance.getValue(),this.value)){const e=this.getFittestIndex(this.value);this.switchInstance(e,this.value)}}getFittestIndex(e){let t,s;for(let i=0;i<this.instances.length;i++){const n=this.instances[i],a=this.jedison.validator.getErrors(e,n.schema,n.getKey(),n.path);if(0===a.length){t=i;break}(void 0===t||void 0===s||a.length<s.length)&&(t=i,s=a)}return t}destroy(){this.instances.forEach(e=>{e.destroy()}),super.destroy()}}class rt extends tt{}class ot extends tt{prepare(){this.properties={},this.requiredProperties=new Set;const e=re(this.schema),t=le(this.schema);d(e)&&Object.keys(e).forEach(t=>{const s=e[t];this.properties[t]={schema:s};let i=!0;const n=d(s["x-recursive"]),a=this.jedison.options.deactivateNonRequired,r=se(this.schema,"deactivateNonRequired"),o=se(s,"deactivateNonRequired");!this.isRequired(t)&&d(a)&&!0===a&&(i=!1),!this.isRequired(t)&&d(r)&&!0===r&&(i=!1),!this.isRequired(t)&&d(o)&&!0===o&&(i=!1),!this.isRequired(t)&&n&&(i=!1),i&&this.createChild(s,t)}),d(t)&&this.jedison.isEditor&&!0===this.jedison.options.enforceRequired&&t.forEach(e=>{this.requiredProperties.add(e),n(this.properties,e)||(this.properties[e]={},this.createChild({},e))}),this.refreshInstances(),this.on("set-value",(e,t)=>{this.addMissingRequiredPropertiesToValue(e),this.removeNotListedPropertiesFromValue(e),this.refreshInstances(t)})}removeNotListedPropertiesFromValue(e){const t=se(this.schema,"enforceAdditionalProperties"),s=d(t)?t:this.jedison.options.enforceAdditionalProperties,i=T(this.schema),a=ne(this.schema)||{};this.jedison.isEditor&&s&&d(i)&&!1===i&&Object.keys(e).forEach(t=>{const s=Object.keys(a).some(e=>new RegExp(e).test(t));n(this.properties,t)||s||(console.warn("deleting",t),delete e[t])})}addMissingRequiredPropertiesToValue(e){const t=se(this.schema,"enforceRequired")??this.jedison.options.enforceRequired;this.jedison.isEditor&&t&&this.requiredProperties.forEach(t=>{n(e,t)||(e[t]=this.getChild(t).getValue())})}isRequired(e){const t=le(this.schema),s=d(t)&&t.includes(e),i=this.isDependentRequired(e);return s||i}isDependentRequired(e){const t=O(this.schema);if(d(t)){let s=[];return Object.keys(t).forEach(e=>{if(d(this.value[e])){const i=t[e];s=i.filter(e=>!n(this.value,e))}}),s.includes(e)}return!1}createChild(t,s,i,n=!1){const a=this.jedison.createInstance({jedison:this.jedison,schema:t,path:this.path+this.jedison.pathSeparator+s,parent:this,value:e(i)});this.children.push(a),this.value[s]=a.getValue();const r=se(this.schema,"deactivateNonRequired")??this.jedison.options.deactivateNonRequired;return this.isRequired(s)||!d(r)||!0!==r||n||a.deactivate(),this.onChildChange(),a}deleteChild(e){for(let t=this.children.length-1;t>=0;t--){const s=this.children[t];s.getKey()===e&&(s.destroy(),this.children.splice(t,1),this.onChildChange())}}getChild(e){return this.children.find(t=>e===t.getKey().split(this.jedison.pathSeparator).pop())}getPropertySchema(e){let t;const s=T(this.schema),i=re(this.schema),a=ne(this.schema);return d(i)&&n(i,e)?t=i[e]:d(a)&&Object.keys(a).forEach(s=>{new RegExp(s).test(e)&&(t=a[s])}),c(t)&&d(s)&&(t=s),c(t)&&(t={}),t}onChildChange(e){const t={};this.children.forEach(e=>{if(e.isActive){const s=e.getKey();"__proto__"===s?Object.defineProperty(t,s,{value:e.getValue(),enumerable:!0}):t[s]=e.getValue()}}),this.value=t,this.jedison.emit("instance-change",this,e),this.emit("notifyParent",e),this.emit("change",e)}sortChildrenByPropertyOrder(){this.children=this.children.sort((e,t)=>{const s=se(e.schema,"propertyOrder"),i=se(t.schema,"propertyOrder"),n=h(s),a=h(i);return!n&&a?1:n&&!a||s<i?-1:s>i?1:0})}refreshInstances(e){const t=this.getValue();if(f(t)){Object.keys(t).forEach(s=>{const i=this.getChild(s);if(i){i.activate();const s=i.getValue(),n=t[i.getKey()];if(o(s,n)){const s=i.setValue(n,!1,e);t[i.getKey()]=s}}else{const e=this.getPropertySchema(s);this.createChild(e,s,t[s],!0)}});for(let e=this.children.length-1;e>=0;e--){const s=this.children[e],i=s.getKey();c(t[i])&&(this.getChild(i)?s.deactivate():this.deleteChild(i))}this.sortChildrenByPropertyOrder(),this.value=t}}}class lt extends tt{prepare(){const e=X(this.schema),t=se(this.schema,"enforceMinItems"),s=d(t)?t:this.jedison.options.enforceMinItems,i=this.jedison.isEditor,n=d(s)&&!0===s,a=d(e);if(i&&n&&a)for(let r=0;r<e;r++)this.addItem();this.refreshChildren(),this.on("set-value",()=>{this.refreshChildren()})}createItemInstance(e){let t;const s=this.children.length,i=J(this.schema),n=ae(this.schema);t=d(i)?i:{};return d(n)&&d(n[s])&&(t=n[s]),this.jedison.createInstance({jedison:this.jedison,schema:t,path:this.path+this.jedison.pathSeparator+s,parent:this,arrayTemplateData:{i0:e,i1:e+1}})}setDefaultValue(){const e=k(this.schema);d(e)&&this.setValue(e)}move(t,s,i){const n=e(this.getValue());if(!g(n))return;const a=n[t];n.splice(t,1),n.splice(s,0,a),this.setValue(n,!0,i),this.emit("item-move",i),this.jedison.emit("item-move",i)}addItem(t){const s=this.createItemInstance();let i=e(this.getValue());g(i)||(i=[]),i.push(s.getValue()),s.destroy(),this.setValue(i,!0,t);const n=this.children[this.children.length-1];this.emit("item-add",t,n),this.jedison.emit("item-add",t,n)}deleteItem(t,s){const i=e(this.getValue());if(!g(i))return;const n=i.filter((e,s)=>s!==t);this.setValue(n,!0,s),this.emit("item-delete",s),this.jedison.emit("item-delete",s)}onChildChange(e){const t=[];this.children.forEach(e=>{t.push(e.getValue())}),this.value=t,this.jedison.emit("instance-change",this,e),this.emit("notifyParent",e),this.emit("change",e)}refreshChildren(){this.children=[];const e=this.getValue();if(!g(e))return;const t=[];e.forEach((e,s)=>{const i=this.createItemInstance(s);this.children.push(i);const n=i.setValue(e,!1);t.push(n)}),this.value=t}}class dt extends tt{}class ct extends tt{}class ht extends tt{}const ut={properties:"glyphicon glyphicon-list",delete:"glyphicon glyphicon-trash",add:"glyphicon glyphicon-plus",moveUp:"glyphicon glyphicon-arrow-up",moveDown:"glyphicon glyphicon-arrow-down",collapse:"glyphicon glyphicon-chevron-down",expand:"glyphicon glyphicon-plus",drag:"glyphicon glyphicon-th",info:"glyphicon glyphicon-question-sign",close:"glyphicon glyphicon-remove",edit:"glyphicon glyphicon-pencil",save:"glyphicon glyphicon-floppy-disk"},pt={properties:"bi bi-card-list",delete:"bi bi-trash2",add:"bi bi-plus",moveUp:"bi bi-arrow-up",moveDown:"bi bi-arrow-down",collapse:"bi bi-chevron-down",expand:"bi bi-plus",drag:"bi bi-grip-vertical",info:"bi bi-question-circle",close:"bi bi-x",edit:"bi bi-pencil",save:"bi bi-floppy"},mt={properties:"icon-list",delete:"icon-trash",add:"icon-plus",moveUp:"icon-arrow-up",moveDown:"icon-arrow-down",collapse:"icon-chevron-down",expand:"icon-plus",drag:"icon-th",info:"icon-question-sign",close:"icon-remove",edit:"icon-pencil",save:"icon-save"},gt={properties:"fa fa-list",delete:"fa fa-trash-o",add:"fa fa-plus",moveUp:"fa fa-arrow-up",moveDown:"fa fa-arrow-down",collapse:"fa fa-chevron-down",expand:"fa fa-plus",drag:"fa fa-th",info:"fa fa-question-circle",close:"fa fa-times",edit:"fa fa-pencil",save:"fa fa-floppy-o"},ft={properties:"fas fa-list",delete:"fas fa-trash",add:"fas fa-plus",moveUp:"fas fa-arrow-up",moveDown:"fas fa-arrow-down",collapse:"fas fa-chevron-down",expand:"fas fa-plus",drag:"fas fa-grip-vertical",info:"fas fa-question-circle",close:"fas fa-times",edit:"fas fa-pencil-alt",save:"fas fa-save"},bt={properties:"fa-solid fa-list",delete:"fa-solid fa-trash",add:"fa-solid fa-plus",moveUp:"fa-solid fa-arrow-up",moveDown:"fa-solid fa-arrow-down",collapse:"fa-solid fa-chevron-down",expand:"fa-solid fa-plus",drag:"fa-solid fa-grip-vertical",info:"fa-solid fa-circle-question",close:"fa-solid fa-xmark",edit:"fa-solid fa-pencil",save:"fa-solid fa-floppy-disk"};class vt extends st{sanitize(e){return Boolean(e)}}class yt extends vt{static resolves(e){return"boolean"===he(e)&&("radios"===se(e,"format")||"radios-inline"===se(e,"format"))}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:["false","true"],titles:se(this.instance.schema,"enumTitles")||["false","true"],id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),inline:"radios-inline"===se(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}addEventListeners(){this.control.radios.forEach(e=>{e.addEventListener("change",()=>{const t="true"===e.value;this.instance.setValue(t,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(e=>{const t="true"===e.value;e.checked=t===this.instance.getValue()})}}class Ct extends vt{static resolves(e){return"boolean"===he(e)}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:["false","true"],titles:se(this.instance.schema,"enumTitles")||["false","true"],id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}addEventListeners(){this.control.input.addEventListener("change",()=>{const e="true"===this.control.input.value;this.instance.setValue(e,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.control.input.value=!0===this.instance.getValue()?"true":"false"}}class Lt extends vt{static resolves(e){return"boolean"===he(e)&&"checkbox"===se(e,"format")}build(){this.control=this.theme.getCheckboxControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(e){this.theme.adaptForTableCheckboxControl(this.control,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{this.instance.setValue(this.control.input.checked,!0,"user")})}sanitize(e){return Boolean(e)}refreshUI(){this.refreshDisabledState(),this.control.input.checked=this.instance.getValue()}}class Et extends st{sanitize(e){return String(e)}}class xt extends Et{static resolves(e){return"string"===he(e)&&("radios"===se(e,"format")||"radios-inline"===se(e,"format"))}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema),titles:se(this.instance.schema,"enumTitles")||R(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),inline:"radios-inline"===se(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}addEventListeners(){this.control.radios.forEach(e=>{e.addEventListener("change",()=>{this.instance.setValue(e.value,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(e=>{e.checked=e.value===this.instance.getValue()})}}class It extends Et{static resolves(e){return"string"===he(e)&&d(R(e))}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema),titles:se(this.instance.schema,"enumTitles")||R(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}addEventListeners(){this.control.input.addEventListener("change",()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.control.input.value=this.instance.getValue()}}class wt extends Et{static resolves(e){return"string"===he(e)&&"textarea"===se(e,"format")}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});if(!0===(se(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.options.useConstraintAttributes)){const e=Q(this.instance.schema),t=$(this.instance.schema);d(e)&&this.control.input.setAttribute("minlength",e),d(t)&&this.control.input.setAttribute("maxlength",t)}}adaptForTable(){this.theme.adaptForTableTextareaControl(this.control)}addEventListeners(){const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){super.refreshUI(),this.control.input.value=this.instance.getValue()}}class At extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"awesomplete"===t&&window.Awesomplete&&"string"===he(e)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"awesomplete")??{};this.awesomplete=new window.Awesomplete(this.control.input,e),this.control.container.querySelector(".awesomplete").style.display="block"}catch(e){console.error("Awesomplete is not available or not loaded correctly.",e)}}addEventListeners(){this.control.input.addEventListener("awesomplete-selectcomplete",()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.control.input.value=this.instance.getValue()}destroy(){this.awesomplete.destroy(),super.destroy()}}class Tt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"emojiButton"===t&&window.EmojiButton&&"string"===he(e)}build(){this.control=this.theme.getInputControl({type:"button",title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.control.input.classList.add("jedi-emoji-button"),this.control.input.value="😀";const e=se(this.instance.schema,"emojiButton")??{},t=Object.assign({theme:"auto",autoHide:!0,showPreview:!1,showSearch:!0,zIndex:1e4,position:"auto"},e);this.emojiButton=new window.EmojiButton(t)}addEventListeners(){this.emojiButton.on("emoji",e=>{this.control.input.value=e;let t=e;"object"==typeof e&&(t=e.emoji),this.instance.setValue(t,!0,"user")}),this.control.input.addEventListener("click",()=>{this.emojiButton.togglePicker(this.control.input)})}refreshUI(){this.refreshDisabledState(),this.control.input.value=this.instance.getValue()}destroy(){this.emojiButton&&(this.emojiButton=null),super.destroy()}}class jt extends Et{static resolves(e){return"string"===he(e)}static getTypes(){return["hidden","color","date","datetime-local","email","number","month","password","search","time","tel","text","url","week"]}build(){const e=se(this.instance.schema,"format");this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:jt.getTypes().includes(e)?e:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden")||"hidden"===e,info:this.getInfo()}),"color"===e&&0===this.instance.value.length&&this.instance.setValue("#000000",!1,"user");if(!0===(se(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.options.useConstraintAttributes)){const e=Q(this.instance.schema),t=$(this.instance.schema),s=ie(this.instance.schema);d(e)&&this.control.input.setAttribute("minlength",e),d(t)&&this.control.input.setAttribute("maxlength",t),d(s)&&this.control.input.setAttribute("pattern",s)}}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}addEventListeners(){const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{this.instance.setValue(this.control.input.value,!0,"user")})}sanitize(e){return String(e)}refreshUI(){super.refreshUI(),this.control.input.value=this.instance.getValue()}}class Mt extends st{sanitize(e){return"integer"===he(this.instance.schema)?Math.floor(Number(e)):Number(e)}}class St extends Mt{static resolves(e){const t=he(e),s=R(e),i=se(e,"format");return("number"===t||"integer"===t)&&d(s)&&("radios"===i||"radios-inline"===i)}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema),titles:se(this.instance.schema,"enumTitles")||R(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),inline:"radios-inline"===se(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}addEventListeners(){this.control.radios.forEach(e=>{e.addEventListener("change",()=>{const t=this.sanitize(e.value);this.instance.setValue(t,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(e=>{e.checked=Number(e.value)===Number(this.instance.getValue())})}}class Pt extends Mt{static resolves(e){const t=he(e);return("number"===t||"integer"===t)&&d(R(e))}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema),titles:se(this.instance.schema,"enumTitles")||R(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}addEventListeners(){this.control.input.addEventListener("change",()=>{const e=this.sanitize(this.control.input.value);this.instance.setValue(e,!0,"user")})}refreshUI(){this.refreshDisabledState();h(this.instance.getValue())&&(this.control.input.value=this.instance.getValue())}}class Dt extends Mt{static resolves(e){const t=he(e);return"number"===t||"integer"===t}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"number",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden")||"hidden"===se(this.instance.schema,"format"),info:this.getInfo()}),this.control.input.setAttribute("step","any");if(!0===(se(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.options.useConstraintAttributes)){const e=Z(this.instance.schema),t=W(this.instance.schema);d(e)&&this.control.input.setAttribute("min",e),d(t)&&this.control.input.setAttribute("max",t)}}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}addEventListeners(){const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{const e=this.sanitize(this.control.input.value);this.instance.setValue(e,!0,"user")}),this.control.input.addEventListener("focus",()=>{"0"===this.control.input.value&&(this.control.input.value=this.instance.getValue().toString())}),this.control.input.addEventListener("blur",()=>{this.refreshUI()})}refreshUI(){super.refreshUI();const e=this.instance.getValue();h(e)&&(this.control.input.value=e)}}class kt extends Dt{static resolves(e){const t=he(e),s=se(e,"format");return d(s)&&"number-nullable"===s&&d(t)&&g(t)&&2===t.length&&t.includes("null")&&(t.includes("number")||t.includes("integer"))}addEventListeners(){const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{const e=this.sanitize(this.control.input.value);this.instance.setValue(e,!0,"user")})}sanitize(e){if(""===e)return null;return he(this.instance.schema).includes("integer")?Math.floor(Number(e)):Number(e)}refreshUI(){super.refreshUI();const e=this.instance.getValue();if(null===e&&(this.control.input.value=""),h(e)){he(this.instance.schema).includes("integer")?this.control.input.value=Math.floor(Number(e)):this.control.input.value=e}}}class Ot extends st{static resolves(e){return"object"===he(e)}build(){this.propertyActivators={};let e=!0;const t=T(this.instance.schema);d(t)&&!1===t&&(e=!1);let s=!1;d(this.instance.jedison.options.enablePropertiesToggle)&&(s=this.instance.jedison.options.enablePropertiesToggle);const i=se(this.instance.schema,"enablePropertiesToggle");d(i)&&(s=i),this.control=this.theme.getObjectControl({title:this.getTitle(),description:this.getDescription(),titleHidden:se(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),enablePropertiesToggle:s,addProperty:e,enableCollapseToggle:se(this.instance.schema,"enableCollapseToggle")??this.instance.jedison.options.enableCollapseToggle,startCollapsed:se(this.instance.schema,"startCollapsed")??this.instance.jedison.options.startCollapsed,readOnly:this.instance.isReadOnly(),info:this.getInfo(),editJsonData:se(this.instance.schema,"editJsonData")??this.instance.jedison.options.editJsonData,propertiesToggleContent:se(this.instance.schema,"propertiesToggleContent")??this.instance.jedison.translator.translate("propertiesToggle"),collapseToggleContent:se(this.instance.schema,"collapseToggleContent")??this.instance.jedison.translator.translate("collapseToggle"),addPropertyContent:se(this.instance.schema,"addPropertyContent")??this.instance.jedison.translator.translate("objectAddProperty")}),this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2)}addEventListeners(){this.control.addPropertyBtn.addEventListener("click",()=>{const e=this.control.addPropertyControl.input.value.split(" ").join("");if(0===e.length)return;if(d(this.instance.value[e]))return;const t=this.instance.getPropertySchema(e),s=this.instance.createChild(t,e);s.activate(),this.instance.setValue(this.instance.value,!0,"user"),this.control.addPropertyControl.input.value="";const i=this.control.ariaLive,n=ce(s.schema),a=d(n)?n:e,r=this.theme.getAriaLiveMessage();r.textContent=a+" "+this.instance.jedison.translator.translate("objectPropertyAdded"),i.appendChild(r),this.control.propertiesContainer.close(),this.control.propertiesContainer.showModal()}),this.control.jsonData.saveBtn.addEventListener("click",()=>{try{const e=JSON.parse(this.control.jsonData.input.value);this.instance.setValue(e,!0,"user"),this.control.jsonData.dialog.close()}catch(e){alert("Invalid JSON")}}),this.control.jsonData.toggle.addEventListener("click",()=>{this.refreshJsonDataInputSize()})}sanitize(e){return f(e)?e:{}}getErrorFeedback(e){return this.theme.getAlert(e)}refreshPropertiesSlot(){if(r(se(this.instance.schema,"enablePropertiesToggle")??this.instance.jedison.options.enablePropertiesToggle,!0)){const e=Object.keys(this.instance.properties),t=this.instance.children.map(e=>e.getKey()),s=[...new Set([...e,...t])];for(;this.control.propertiesActivators.firstChild;)this.control.propertiesActivators.removeChild(this.control.propertiesActivators.firstChild);const{container:a,group:r}=this.theme.getPropertiesGroup();this.control.propertiesActivators.appendChild(a);const o={};s.forEach(e=>{const t=this.instance.isRequired(e),s=this.control.ariaLive,a=this.instance.getPropertySchema(e),l=ce(a),c=i(this.instance.path+this.instance.jedison.pathSeparator+e)+"-activator",h=d(l)?l:e,u=this.theme.getCheckboxControl({id:c,title:h,titleHidden:!1}),m=u.input;this.propertyActivators[e]=m,m.addEventListener("change",()=>{s.innerHTML="";const t=this.theme.getAriaLiveMessage();if(m.checked){this.instance.getChild(e)||this.instance.createChild(a,e),this.instance.getChild(e).activate(),t.textContent=h+" "+this.instance.jedison.translator.translate("objectPropertyAdded"),s.appendChild(t)}else this.instance.getChild(e).deactivate(),t.textContent=h+" "+this.instance.jedison.translator.translate("objectPropertyRemoved"),s.appendChild(t);this.control.propertiesContainer.close(),this.control.propertiesContainer.showModal()});const g=se(a,"propGroup");if(d(g)&&p(g)){let e=o[g];d(e)||(e=this.theme.getPropertiesGroup({name:g}),o[g]=e),e.group.appendChild(u.container),this.control.propertiesActivators.appendChild(e.container)}else r.appendChild(u.container);m.disabled=this.disabled||t,m.checked=n(this.instance.getValue(),e)})}}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.firstChild);this.instance.children.forEach(e=>{const t=this.theme.getCheckboxControl({id:e.path+"-opt-in",title:e.path+"-opt-in",titleHidden:!0});t.input.checked=e.isActive,t.input.addEventListener("change",()=>{e.isActive?e.deactivate():e.activate()}),e.isActive?(null===e.ui.control.container.parentNode&&(this.control.childrenSlot.appendChild(e.ui.control.container),e.ui.control.optInContainer&&e.ui.control.optInContainer.appendChild(t.container)),this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable()):e.ui.control.container.parentNode&&e.ui.control.container.parentNode.removeChild(e.ui.control.container)})}refreshUI(){super.refreshUI(),this.refreshPropertiesSlot(),this.refreshEditors(),this.refreshJsonData()}}class Ft extends Ot{static resolves(e){return"object"===he(e)&&"grid"===se(e,"format")}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);let e=this.theme.getRow();this.control.childrenSlot.appendChild(e),this.instance.children.forEach(t=>{if(t.isActive){const s=se(t.schema,"grid")||{},i=se(t.schema,"gridColumns")??void 0,n=se(t.schema,"gridOffset")??0,a=s.columns??void 0,r=s.columnsXs??i??12,o=s.columnsSm??i??r,l=s.columnsMd??a??i??o,d=s.columnsLg??i??l,c=s.offset??n,h=this.theme.getCol(r,o,l,d,c);(s.newRow||!1)&&(e=this.theme.getRow(),this.control.childrenSlot.appendChild(e)),e.appendChild(h),h.appendChild(t.ui.control.container),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable()}})}}class Ht extends Ot{static resolves(e){const t=se(e,"format"),s=/^nav-(horizontal|vertical(?:-\d+)?)$/.test(t);return"object"===he(e)&&s}init(){super.init(),this.activeTabIndex=0}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);const e=se(this.instance.schema,"format").split("-"),t=e[1],s=e[2],n="horizontal"===t?12:s??4,a=this.theme.getRow(),r=this.theme.getCol(12,12,n,n),o=this.theme.getCol(12,12,12-n,12-n),l=this.theme.getTabContent(),c=this.theme.getTabList({variant:t});this.control.childrenSlot.appendChild(a),a.appendChild(r),a.appendChild(o),r.appendChild(c),o.appendChild(l),this.instance.children.forEach((e,t)=>{if(e.isActive){const s=t===this.activeTabIndex,n=i(e.path),a=ce(e.schema),r=se(this.instance.schema,"navWarning")??!0,o=se(this.instance.schema,"navWarningMessage"),h=this.theme.getTab({hasErrors:r&&e.children.some(e=>e.ui.showingValidationErrors),navWarningMessage:o,title:d(a)?a:e.getKey(),id:n,active:s});h.list.addEventListener("click",()=>{this.activeTabIndex=t}),this.theme.setTabPaneAttributes(e.ui.control.container,s,n),c.appendChild(h.list),l.appendChild(e.ui.control.container),this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable()}})}}class Vt extends st{static resolves(e){return"array"===he(e)}init(){super.init(),this.activeItemIndex=0}build(){this.control=this.theme.getArrayControl({title:this.getTitle(),description:this.getDescription(),titleHidden:se(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),enableCollapseToggle:se(this.instance.schema,"enableCollapseToggle")??this.instance.jedison.options.enableCollapseToggle,startCollapsed:se(this.instance.schema,"startCollapsed")??this.instance.jedison.options.startCollapsed,readOnly:this.instance.isReadOnly(),info:this.getInfo(),editJsonData:se(this.instance.schema,"editJsonData")??this.instance.jedison.options.editJsonData,arrayAdd:se(this.instance.schema,"arrayAdd")??this.instance.jedison.options.arrayAdd,arrayAddContent:se(this.instance.schema,"arrayAddContent")??this.instance.jedison.translator.translate("arrayAdd"),collapseToggleContent:se(this.instance.schema,"collapseToggleContent")??this.instance.jedison.translator.translate("collapseToggle")}),this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2)}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.instance.addItem("user")}),this.addJsonDataEventListeners()}addJsonDataEventListeners(){this.control.jsonData.saveBtn.addEventListener("click",()=>{try{const e=JSON.parse(this.control.jsonData.input.value);this.instance.setValue(e,!0,"user"),this.control.jsonData.dialog.close()}catch(e){alert("Invalid JSON")}}),this.control.jsonData.toggle.addEventListener("click",()=>{this.refreshJsonDataInputSize()})}getErrorFeedback(e){return this.theme.getAlert(e)}sanitize(e){return g(e)?e:[]}getButtons(e){const t=se(this.instance.schema,"arrayDeleteContent"),s=se(this.instance.schema,"arrayMoveUpContent"),i=se(this.instance.schema,"arrayMoveDownContent"),n=se(this.instance.schema,"arrayDragContent"),a=this.theme.getDeleteItemBtn({content:t??this.instance.jedison.translator.translate("arrayDelete")}),r=this.theme.getMoveUpItemBtn({content:s??this.instance.jedison.translator.translate("arrayMoveUp")}),o=this.theme.getMoveDownItemBtn({content:i??this.instance.jedison.translator.translate("arrayMoveDown")}),l=this.theme.getDragItemBtn({content:n??this.instance.jedison.translator.translate("arrayDrag")}),d=this.theme.getBtnGroup();return a.addEventListener("click",()=>{window.confirm(this.instance.jedison.translator.translate("arrayConfirmDelete"))&&(this.activeItemIndex=x(e-1,0,this.instance.value.length-1),this.instance.deleteItem(e,"user"))}),r.addEventListener("click",()=>{const t=e-1;this.activeItemIndex=t,this.instance.move(e,t,"user")}),o.addEventListener("click",()=>{const t=e+1;this.activeItemIndex=t,this.instance.move(e,t,"user")}),0===e&&r.setAttribute("always-disabled",!0),e===this.instance.children.length-1&&o.setAttribute("always-disabled",!0),{deleteBtn:a,moveUpBtn:r,moveDownBtn:o,btnGroup:d,dragBtn:l}}isSortable(){return window.Sortable&&d(se(this.instance.schema,"sortable"))}refreshSortable(e){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(e,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:e=>{this.instance.move(e.oldIndex,e.newIndex)}}))}refreshAddBtn(){const e=G(this.instance.schema),t=se(this.instance.schema,"enforceMaxItems")??this.instance.jedison.options.enforceMaxItems;d(e)&&t&&e<=this.instance.value.length?(this.control.addBtn.setAttribute("disabled",""),this.control.addBtn.setAttribute("always-disabled",!0)):this.disabled||this.readOnly||(this.control.addBtn.removeAttribute("disabled"),this.control.addBtn.removeAttribute("always-disabled"))}refreshUI(){super.refreshUI();const e=X(this.instance.schema),t=se(this.instance.schema,"arrayDelete")??this.instance.jedison.options.arrayDelete,s=se(this.instance.schema,"arrayMove")??this.instance.jedison.options.arrayMove;this.control.childrenSlot.innerHTML="",this.instance.children.forEach((i,n)=>{const{deleteBtn:a,moveUpBtn:r,moveDownBtn:o,dragBtn:l,btnGroup:c}=this.getButtons(n),{container:h,arrayActions:u,body:p}=this.theme.getArrayItem({readOnly:this.instance.isReadOnly(),index:n});u.appendChild(c),d(t)&&!0===t&&c.appendChild(a),d(s)&&!0===s&&(c.appendChild(r),c.appendChild(o)),this.isSortable()&&c.appendChild(l),this.control.childrenSlot.appendChild(h),p.appendChild(i.ui.control.container),this.disabled||this.instance.isReadOnly()?i.ui.disable():i.ui.enable(),d(e)&&this.instance.value.length<=e&&a.setAttribute("disabled","")}),this.refreshDisabledState(),this.refreshSortable(this.control.childrenSlot),this.instance.children.forEach(e=>{e.ui.refreshUI()}),this.refreshAddBtn(),this.refreshJsonData()}}class Rt extends Vt{static resolves(e,t){return"array"===he(e)&&"table"===se(e,"format")}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.addJsonDataEventListeners()}isSortable(){return window.Sortable&&d(se(this.instance.schema,"sortable"))}refreshUI(){this.control.childrenSlot.innerHTML="";const e=this.theme.getTable();this.control.childrenSlot.appendChild(e.container);const t=se(this.instance.schema,"arrayDelete")??this.instance.jedison.options.arrayDelete,s=se(this.instance.schema,"arrayMove")??this.instance.jedison.options.arrayMove,i=se(this.instance.schema,"arrayButtonsPosition")??this.instance.jedison.options.arrayButtonsPosition,n=this.theme.getTableHeader(),{label:a}=this.theme.getFakeLabel({content:"Controls",visuallyHidden:!0});if(n.appendChild(a),"left"===i&&e.thead.appendChild(n),this.instance.children.length){const t=J(this.instance.schema),s=this.theme.getTableHeader();if(t.title){const e=this.theme.getFakeLabel({content:t.title});s.appendChild(e.label)}const i=se(t,"info");if(d(i)){const e=this.getInfo(t),n=this.theme.getInfo(e);"modal"===i.variant&&this.theme.infoAsModal(n,this.getIdFromPath(this.instance.path),e),s.appendChild(n.container)}e.thead.appendChild(s)}"right"===i&&e.thead.appendChild(n),this.instance.children.forEach((n,a)=>{const r=document.createElement("tr"),o=this.theme.getTableDefinition({isButtonColumn:!0}),{deleteBtn:l,moveUpBtn:c,moveDownBtn:h,dragBtn:u,btnGroup:p}=this.getButtons(a);this.isSortable()&&p.appendChild(u),d(t)&&!0===t&&p.appendChild(l),d(s)&&!0===s&&(p.appendChild(c),p.appendChild(h)),o.appendChild(p),"left"===i&&r.appendChild(o);const m=this.theme.getTableDefinition();n.ui.adaptForTable(n,m),m.appendChild(n.ui.control.container),r.appendChild(m),"right"===i&&r.appendChild(o),e.tbody.appendChild(r)}),this.refreshSortable(e.tbody),this.refreshAddBtn(),this.refreshJsonData(),this.refreshDisabledState(),this.refreshScrollPosition(e.container),e.container.addEventListener("scroll",()=>{this.lastScrollTop=e.container.scrollTop,this.lastScrollLeft=e.container.scrollLeft})}refreshScrollPosition(e){e.scroll({top:this.lastScrollTop,left:this.lastScrollLeft})}refreshSortable(e){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(e,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:e=>{this.instance.move(e.oldIndex,e.newIndex)}}))}}class Bt extends Vt{static resolves(e,t){let s=J(e);if(!s)return!1;t&&(s=t.expand(s));const i=he(s);return!!i&&("array"===he(e)&&"object"===i&&"table-object"===se(e,"format"))}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.addJsonDataEventListeners()}isSortable(){return window.Sortable&&d(se(this.instance.schema,"sortable"))}refreshUI(){this.control.childrenSlot.innerHTML="";const e=this.theme.getTable();this.control.childrenSlot.appendChild(e.container);const t=se(this.instance.schema,"arrayDelete")??this.instance.jedison.options.arrayDelete,s=se(this.instance.schema,"arrayMove")??this.instance.jedison.options.arrayMove,i=se(this.instance.schema,"arrayButtonsPosition")??this.instance.jedison.options.arrayButtonsPosition,n=this.theme.getTableHeader(),{label:a}=this.theme.getFakeLabel({content:"Controls",visuallyHidden:!0});n.appendChild(a),"left"===i&&e.thead.appendChild(n),0===this.instance.getValue().length&&e.table.removeChild(e.thead);let r=J(this.instance.schema);this.instance.jedison.refParser&&(r=this.instance.jedison.refParser.expand(r));const o=re(r);Object.values(o).forEach(t=>{const s=this.theme.getTableHeader();if(t.title){const e=this.theme.getFakeLabel({content:t.title});s.appendChild(e.label)}const i=se(t,"info");if(d(i)){const e=this.getInfo(t),n=this.theme.getInfo(e);"modal"===i.variant&&this.theme.infoAsModal(n,this.getIdFromPath(this.instance.path),e),s.appendChild(n.container)}e.thead.appendChild(s)}),"right"===i&&e.thead.appendChild(n),this.instance.children.forEach((n,a)=>{const r=document.createElement("tr"),o=this.theme.getTableDefinition({isButtonColumn:!0}),{deleteBtn:l,moveUpBtn:c,moveDownBtn:h,dragBtn:u,btnGroup:p}=this.getButtons(a);if(this.isSortable()&&p.appendChild(u),d(t)&&!0===t&&p.appendChild(l),d(s)&&!0===s&&(p.appendChild(c),p.appendChild(h)),o.appendChild(p),"left"===i&&r.appendChild(o),n.children.length)n.children.forEach(e=>{const t=this.theme.getTableDefinition();e.ui.adaptForTable(t),t.appendChild(e.ui.control.container),r.appendChild(t)});else{const e=this.theme.getTableDefinition();n.ui.adaptForTable(e),e.appendChild(n.ui.control.container),r.appendChild(e)}"right"===i&&r.appendChild(o),e.tbody.appendChild(r)}),this.refreshSortable(e.tbody),this.refreshAddBtn(),this.refreshJsonData(),this.refreshDisabledState(),this.refreshScrollPosition(e.container),e.container.addEventListener("scroll",()=>{this.lastScrollTop=e.container.scrollTop,this.lastScrollLeft=e.container.scrollLeft})}refreshScrollPosition(e){e.scroll({top:this.lastScrollTop,left:this.lastScrollLeft})}refreshSortable(e){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(e,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:e=>{this.instance.move(e.oldIndex,e.newIndex)}}))}}class qt extends st{static resolves(e){const t="choices"===se(e,"format"),s=window.Choices,i=he(e),n=J(e),a=d(n)&&he(n),r=d(i)&&"array"===i,o=!0===me(e),l=d(n)&&d(a),c=["string","number","integer"],h=d(n)&&d(a)&&(c.includes(a)||g(a)&&a.some(e=>c.includes(e)));return t&&s&&r&&o&&l&&h}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:[],titles:[],id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.control.input.setAttribute("multiple","");try{const e=this.instance.getValue(),t=this.instance.schema.items.enum??[],s=se(this.instance.schema.items,"enumTitles")??this.instance.getValue(),i=se(this.instance.schema,"choicesOptions")??{};this.choicesInstance&&this.choicesInstance.destroy(),this.choices=t.map((t,i)=>({value:t,label:s[i]||t,selected:e.includes(t)})),this.choicesInstance=new window.Choices(this.control.input,{duplicateItemsAllowed:!1,removeItemButton:!0,choices:this.choices,...i})}catch(e){console.error("Choices is not available or not loaded correctly.",e)}}addEventListeners(){this.control.input.addEventListener("change",()=>{const e=this.choicesInstance.getValue(!0);e!==this.instance.getValue()&&this.instance.setValue(e,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.choicesInstance.disable():this.choicesInstance.enable()}refreshUI(){super.refreshUI();const e=this.instance.getValue();this.choicesInstance.removeActiveItems(),Array.isArray(e)&&e.forEach(e=>{this.choicesInstance.setChoiceByValue(e)})}destroy(){this.choicesInstance.destroy(),super.destroy()}}class Nt extends Vt{static resolves(e){const t=se(e,"format"),s=/^nav-(horizontal|vertical(?:-\d+)?)$/.test(t);return"array"===he(e)&&s}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.addJsonDataEventListeners()}refreshUI(){this.control.childrenSlot.innerHTML="",this.clearStoredEventListeners();const e=se(this.instance.schema,"format").split("-"),t=e[1],s=e[2],n="horizontal"===t?12:s??4,a=this.theme.getRow(),r=this.theme.getCol(12,12,n,n),o=this.theme.getCol(12,12,12-n,12-n),l=this.theme.getTabContent(),c=this.theme.getTabList({variant:t}),h=se(this.instance.schema,"arrayDelete")??this.instance.jedison.options.arrayDelete,u=se(this.instance.schema,"arrayMove")??this.instance.jedison.options.arrayMove;this.control.childrenSlot.appendChild(a),a.appendChild(r),a.appendChild(o),r.appendChild(c),o.appendChild(l),this.instance.children.forEach((e,t)=>{const{deleteBtn:s,moveUpBtn:n,moveDownBtn:a,btnGroup:r}=this.getButtons(t);d(h)&&!0===h&&r.appendChild(s),d(u)&&!0===u&&(r.appendChild(n),r.appendChild(a)),this.control.childrenSlot.appendChild(e.ui.control.container);const o=ce(e.schema),p=d(o)?o+" "+(t+1):e.getKey();let m;const g=se(this.instance.schema,"titleTemplate");if(g){const t=g;m=E(t,e.getTemplateData(t))??p}const f=t===this.activeItemIndex,b=i(e.path),v=se(this.instance.schema,"navWarning")??!0,y=se(this.instance.schema,"navWarningMessage"),{list:C,arrayActions:L}=this.theme.getTab({hasErrors:v&&e.children.some(e=>e.ui.showingValidationErrors),navWarningMessage:y,title:(null==m?void 0:m.length)?m:p,id:b,active:f});L.appendChild(r);const x=()=>{this.activeItemIndex=t};C.addEventListener("click",x),this.storedEventListeners.push({element:C,handler:x,eventType:"click"}),this.theme.setTabPaneAttributes(e.ui.control.container,f,b),c.appendChild(C),l.appendChild(e.ui.control.container),this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable(),0===t&&n.setAttribute("disabled",""),this.instance.value.length-1===t&&a.setAttribute("disabled","")}),this.refreshDisabledState(),this.refreshAddBtn(),this.refreshJsonData()}}class Ut extends st{static resolves(e){const t=he(e),s=ue(e);return d(S(e))||d(s)||"any"===t||g(t)||c(t)}build(){this.switcherInput=se(this.instance.schema,"switcherInput")??this.instance.jedison.options.switcherInput,this.control=this.theme.getMultipleControl({titleHidden:se(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),switcherOptionValues:this.instance.switcherOptionValues,switcherOptionsLabels:this.instance.switcherOptionsLabels,switcher:this.switcherInput,readOnly:this.instance.isReadOnly()})}adaptForTable(e){this.theme.adaptForTableMultipleControl(this.control,e)}addEventListeners(){"select"===this.switcherInput&&this.control.switcher.input.addEventListener("change",()=>{const e=Number(this.control.switcher.input.value);this.instance.switchInstance(e,void 0,"user")}),"radios"!==this.switcherInput&&"radios-inline"!==this.switcherInput||this.control.switcher.radios.forEach(e=>{e.addEventListener("change",()=>{const t=Number(e.value);this.instance.switchInstance(t,void 0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.childrenSlot.innerHTML="",this.control.childrenSlot.appendChild(this.instance.activeInstance.ui.control.container),"select"===this.switcherInput&&(this.control.switcher.input.value=this.instance.index),"radios"!==this.switcherInput&&"radios-inline"!==this.switcherInput||this.control.switcher.radios.forEach(e=>{const t=Number(e.value);e.checked=t===this.instance.index}),this.disabled||this.instance.isReadOnly()?this.instance.activeInstance.ui.disable():this.instance.activeInstance.ui.enable()}getErrorFeedback(e){return this.theme.getAlert(e)}}class Jt extends st{static resolves(e){return"null"===he(e)}build(){this.control=this.theme.getNullControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden")||"hidden"===se(this.instance.schema,"format"),info:this.getInfo()})}sanitize(){return null}}class Wt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"simplemde"===t&&window.SimpleMDE&&"string"===he(e)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=e(se(this.instance.schema,"simplemde")??{});t.element=this.control.input,this.simplemde=new window.SimpleMDE(t)}catch(t){console.error("simpleMDE is not available or not loaded correctly.",t)}}addEventListeners(){this.simplemde.codemirror.on("blur",()=>{const e=this.simplemde.value();e!==this.instance.getValue()&&this.instance.setValue(e,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.simplemde.isPreviewActive()||(this.simplemde.togglePreview(),this.control.container.querySelector(".editor-toolbar").style.display="none"):this.simplemde.isPreviewActive()&&(this.simplemde.togglePreview(),this.control.container.querySelector(".editor-toolbar").style.display="block")}refreshUI(){super.refreshUI(),this.simplemde.value(this.instance.getValue())}destroy(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor.container.remove()),super.destroy()}}class zt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"quill"===t&&window.Quill&&"string"===he(e)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"quill")??{};this.quill=new window.Quill(this.control.placeholder,e)}catch(e){console.error("Quill is not available or not loaded correctly.",e)}}addEventListeners(){this.quill.root.addEventListener("blur",()=>{const e=this.quill.getText();e!==this.instance.getValue()&&this.instance.setValue(e,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.quill.disable():this.quill.enable()}refreshUI(){super.refreshUI(),this.quill.setText(this.instance.getValue())}}class Gt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"jodit"===t&&window.Jodit&&"string"===he(e)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e={showCharsCounter:!1,showWordsCounter:!1,showXPathInStatusbar:!1,toolbarAdaptive:!1,buttons:["bold","italic","underline","strikethrough","|","ul","ol","|","link","|","source","preview"]},t=se(this.instance.schema,"jodit")??{},s=Object.assign({},e,t);this.jodit=window.Jodit.make(this.control.input,s)}catch(e){console.error("Jodit is not available or not loaded correctly.",e)}}addEventListeners(){this.jodit.events.on("change",()=>{const e=this.jodit.value;if(e!==this.instance.getValue()){const t=this.jodit.selection.save();this.instance.setValue(e,!0,"user"),this.jodit.selection.restore(t)}})}refreshDisabledState(){this.disabled||this.readOnly?this.jodit.setReadOnly(!0):this.jodit.setReadOnly(!1)}refreshUI(){super.refreshUI();const e=this.instance.getValue();this.jodit.value!==e&&(this.jodit.value=e)}destroy(){this.jodit.destruct(),super.destroy()}}class $t extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"flatpickr"===t&&window.flatpickr&&"string"===he(e)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"flatpickr")??{};this.flatpickr=window.flatpickr(this.control.input,e)}catch(e){console.error("Flatpickr is not available or not loaded correctly.",e)}}addEventListeners(){this.control.input.addEventListener("change",()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.flatpickr.setDate(this.instance.getValue())}destroy(){this.flatpickr.destroy(),super.destroy()}}class Kt extends Et{static resolves(e){const t="string"===he(e),s=window.IMask,i=se(e,"format");return d(i)&&"imask"===i&&t&&s}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"imask")??{},t=e["x-settings"],s=t&&this.instance.jedison.options.settings[t]?this.instance.jedison.options.settings[t]:{},i={...e,...s};this.imask=window.IMask(this.control.input,i),this.useMaskedValue=e["x-masked"]??!1}catch(e){console.error("IMask is not available or not loaded or configured correctly.",e)}}addEventListeners(){this.imask.on("accept",()=>{const e=this.useMaskedValue?this.imask.value:this.imask.unmaskedValue;this.instance.setValue(e,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.imask.value=this.instance.getValue()}destroy(){this.imask.destroy(),super.destroy()}}class Zt extends Mt{static resolves(e){const t=he(e),s=window.IMask,i=se(e,"format");return d(i)&&"imask"===i&&"number"===t&&s}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"imask")??{},t=e["x-settings"],s=t&&this.instance.jedison.options.settings[t]?this.instance.jedison.options.settings[t]:{},i={mask:Number,...e,...s};this.imask=window.IMask(this.control.input,i),this.useMaskedValue=e["x-masked"]??!1}catch(e){console.error("IMask is not available or not loaded or configured correctly.",e)}}addEventListeners(){this.imask.on("accept",()=>{const e=this.imask.typedValue;this.instance.setValue(e,!0,"user")})}refreshUI(){this.refreshDisabledState();const e=this.instance.getValue();this.imask.value=null!=e?String(e):""}destroy(){this.imask.destroy(),super.destroy()}}class _t extends Mt{static resolves(e){const t=se(e,"format");return d(t)&&"raty"===t&&"undefined"!=typeof Raty&&"number"===he(e)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"raty")??{};this.raty=new Raty(this.control.placeholder,Object.assign({},e),{click:e=>{this.instance.setValue(e,!0,"user")}}),this.raty.init()}catch(e){console.error("Raty is not available or not loaded correctly.",e)}}refreshDisabledState(){this.disabled||this.readOnly?this.raty.readOnly(!0):this.raty.readOnly(!1)}refreshUI(){super.refreshUI(),this.raty.score(this.instance.getValue())}}class Xt extends st{static resolves(e){const t=he(e),s=J(e),i=d(s)&&he(s),n=d(t)&&"array"===t,a=!0===me(e),r=d(s)&&d(R(e.items)),o=d(s)&&d(i),l=["string","number","integer"],c=d(s)&&d(i)&&(l.includes(i)||g(i)&&i.some(e=>l.includes(e)));return n&&a&&r&&o&&c}build(){this.control=this.theme.getCheckboxesControl({title:this.getTitle(),description:this.getDescription(),values:R(this.instance.schema.items),titles:se(this.instance.schema.items,"enumTitles")||R(this.instance.schema.items),id:this.getIdFromPath(this.instance.path),titleHidden:se(this.instance.schema,"titleHidden"),inline:"checkboxes-inline"===se(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(e){this.theme.adaptForTableCheckboxesControl(this.control,e)}addEventListeners(){this.control.checkboxes.forEach(e=>{e.addEventListener("change",()=>{const t=this.instance.getValue();if(e.checked)t.push(e.value);else{const s=t.indexOf(e.value);s>-1&&t.splice(s,1)}this.instance.setValue(t,!0,"user")})})}refreshUI(){this.refreshDisabledState();const e=this.instance.getValue();this.control.checkboxes.forEach(t=>{t.checked=e.includes(t.value)})}}class Qt extends Mt{static resolves(e){const t=he(e),s="number"===t||"integer"===t;if(!s)return!1;const i="range"===se(e,"format");return s&&i}build(){let e,t=0,s=100;d(this.instance.schema.minimum)?t=this.instance.schema.minimum:d(this.instance.schema.exclusiveMinimum)&&(t=this.instance.schema.exclusiveMinimum+.01),d(this.instance.schema.maximum)?s=this.instance.schema.maximum:d(this.instance.schema.exclusiveMaximum)&&(s=this.instance.schema.exclusiveMaximum-.01);const i=he(this.instance.schema),n=this.instance.schema.multipleOf;e=d(n)?n:"integer"===i?1:.01,this.control=this.theme.getInputRangeControl({title:this.getTitle(),description:this.getDescription(),type:"range",id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});!0===(se(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.options.useConstraintAttributes)&&(this.control.input.setAttribute("min",t),this.control.input.setAttribute("max",s)),this.control.input.setAttribute("step",e);const a=se(this.instance.schema,"inputAttributes");a&&"object"==typeof a&&Object.keys(a).forEach(e=>{this.control.input.setAttribute(e,a[e])});const r=this.instance.getValue();this.control.output.textContent=void 0!==r?r:t}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}addEventListeners(){this.control.input.addEventListener("input",()=>{this.control.output.textContent=parseFloat(this.control.input.value)});const e=this.getValidationEventType();this.control.input.addEventListener(e,()=>{const e=parseFloat(this.control.input.value);this.control.output.textContent=e,this.instance.setValue(e,!0,"user")})}sanitize(e){const t=he(this.instance.schema),s=Number(e);return"integer"===t?Math.round(s):s}refreshUI(){super.refreshUI();const e=this.instance.getValue();this.control.input.value=void 0!==e?e:0,this.control.output&&(this.control.output.textContent=void 0!==e?e:0)}}class Yt extends Et{static resolves(e){const t=se(e,"format");return d(t)&&"ace"===t&&window.ace&&"string"===he(e)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:se(this.instance.schema,"titleIconClass"),titleHidden:se(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=se(this.instance.schema,"ace")??{},t=e.mode||"text";this.aceContainer=document.createElement("div");const s=e.height||"300px",i=e.width||"100%",n=e.minHeight,a=e.maxHeight,r=e.minWidth,o=e.maxWidth;this.aceContainer.style.height=s,this.aceContainer.style.width=i,n&&(this.aceContainer.style.minHeight=n),a&&(this.aceContainer.style.maxHeight=a),r&&(this.aceContainer.style.minWidth=r),o&&(this.aceContainer.style.maxWidth=o),this.control.input.style.display="none",this.control.input.parentNode.insertBefore(this.aceContainer,this.control.input),this.aceEditor=window.ace.edit(this.aceContainer),this.aceEditor.setTheme(e.theme||"ace/theme/chrome");try{this.aceEditor.session.setMode(`ace/mode/${t}`)}catch{console.warn(`Ace mode "${t}" not loaded`)}const l=this.instance.getValue();this.aceEditor.setValue("string"==typeof l?l:""),this.aceEditor.clearSelection()}catch(e){console.error("Ace editor is not available or not loaded correctly.",e)}}addEventListeners(){this.aceEditor&&this.aceEditor.on("blur",()=>{const e=this.aceEditor.getValue();e!==this.instance.getValue()&&this.instance.setValue(e,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?(this.aceEditor.setReadOnly(!0),this.aceContainer.style.opacity="0.6",this.aceContainer.classList.add("ace-disabled")):(this.aceEditor.setReadOnly(!1),this.aceContainer.style.opacity="1",this.aceContainer.classList.remove("ace-disabled"))}refreshUI(){super.refreshUI();const e=this.instance.getValue(),t="string"==typeof e?e:String(e||"");this.aceEditor.getValue()!==t&&(this.aceEditor.setValue(t),this.aceEditor.clearSelection())}}class es{constructor(e){this.customEditors=e.customEditors??[],this.refParser=e.refParser??null,this.editors=[kt,Ut,it,yt,Lt,Ct,xt,It,wt,At,Tt,Wt,zt,Gt,$t,Kt,Yt,jt,Zt,_t,Qt,St,Pt,Dt,Ft,Ht,Ot,qt,Xt,Bt,Rt,Nt,Vt,Jt]}getClass(e){for(const t of this.customEditors)if(t.resolves(e,this.refParser))return t;for(const t of this.editors)if(t.resolves(e,this.refParser))return t;return null}}const ts={errorAdditionalProperties:'Has additional property "{{ property }}" but no additional properties are allowed.',errorAnyOf:"Must validate against at least one of the provided schemas.",errorConst:"Must have value of: {{ const }}.",errorContains:"Must contain at least one item matching the provided schema.",errorDependentRequired:"Must have the required properties: {{ dependentRequired }}.",errorEnum:"Must be one of the enumerated values: {{ enum }}.",errorExclusiveMaximum:"Must be less than {{ exclusiveMaximum }}.",errorExclusiveMinimum:"Must be greater than {{ exclusiveMinimum }}.",errorFormat:"Must be a valid {{ format }}.",errorItems:"Must have items that validate against the provided schema.",errorMaximum:"Must be at most {{ maximum }}.",errorMaxItems:"Must have at most {{ maxItems }} items.",errorMaxLength:"Must be at most {{ maxLength }} characters long.",errorMaxProperties:"Must have at most {{ maxProperties }} properties.",errorMaxContains:"Must contain at most {{ maxContains }} items matching the provided schema. It currently contains {{ counter }}.",errorMinContains:"Must contain at least {{ minContains }} items matching the provided schema. It currently contains {{ counter }}.",errorMinimum:"Must be at least {{ minimum }}.",errorMinItems:"Must have at least {{ minItems }} items.",errorMinLength:"Must be at least {{ minLength }} characters long.",errorMinProperties:"Must have at least {{ minProperties }} properties.",errorMultipleOf:"Must be multiple of {{ multipleOf }}.",errorNot:"Must not validate against the provided schema.",errorOneOf:"Must validate against exactly one of the provided schemas. It currently validates against {{ counter }} of the schemas.",errorPattern:'Must match the pattern: "{{ pattern }}".',errorPrefixItems:"Item {{ index }} fails validation.",errorPropertyNames:'Property name "{{ propertyName }}" fails validation.',errorProperties:"The following properties do not comply with their schemas: {{ properties }}",errorRequired:"Must have the required properties: {{ required }}.",errorType:"Must be of type {{ type }}.",errorUnevaluatedProperties:'Has invalid unevaluated property "{{ property }}"',errorUniqueItems:"Must have unique items.",arrayDelete:"Delete item",arrayMoveUp:"Move up",arrayMoveDown:"Move down",arrayDrag:"Drag",arrayAdd:"Add item",arrayConfirmDelete:"Are you sure you want to delete this item?",objectAddProperty:"Add property",objectPropertyAdded:"field was added to the form",objectPropertyRemoved:"field was removed from the form",propertiesToggle:"Properties",collapseToggle:"Collapse"},ss={en:{errorAdditionalProperties:'Has additional property "{{ property }}" but no additional properties are allowed.',errorAnyOf:"Must validate against at least one of the provided schemas.",errorConst:"Must have value of: {{ const }}.",errorContains:"Must contain at least one item matching the provided schema.",errorDependentRequired:"Must have the required properties: {{ dependentRequired }}.",errorEnum:"Must be one of the enumerated values: {{ enum }}.",errorExclusiveMaximum:"Must be less than {{ exclusiveMaximum }}.",errorExclusiveMinimum:"Must be greater than {{ exclusiveMinimum }}.",errorFormat:"Invalid format: {{ format }}.",errorItems:"Must have items that validate against the provided schema.",errorMaximum:"Must be at most {{ maximum }}.",errorMaxItems:"Must have at most {{ maxItems }} items.",errorMaxLength:"Must be at most {{ maxLength }} characters long.",errorMaxProperties:"Must have at most {{ maxProperties }} properties.",errorMaxContains:"Must contain at most {{ maxContains }} items matching the provided schema. It currently contains {{ counter }}.",errorMinContains:"Must contain at least {{ minContains }} items matching the provided schema. It currently contains {{ counter }}.",errorMinimum:"Must be at least {{ minimum }}.",errorMinItems:"Must have at least {{ minItems }} items.",errorMinLength:"Must be at least {{ minLength }} characters long.",errorMinProperties:"Must have at least {{ minProperties }} properties.",errorMultipleOf:"Must be multiple of {{ multipleOf }}.",errorNot:"Must not validate against the provided schema.",errorOneOf:"Must validate against exactly one of the provided schemas. It currently validates against {{ counter }} of the schemas.",errorPattern:'Must match the pattern: "{{ pattern }}".',errorPrefixItems:"Item {{ index }} fails validation.",errorPropertyNames:'Property name "{{ propertyName }}" fails validation.',errorProperties:"The following properties do not comply with their schemas: {{ properties }}",errorRequired:"Must have the required properties: {{ required }}.",errorType:"Must be of type {{ type }}.",errorUnevaluatedProperties:'Has invalid unevaluated property "{{ property }}"',errorUniqueItems:"Must have unique items.",arrayDelete:"Delete item",arrayMoveUp:"Move up",arrayMoveDown:"Move down",arrayDrag:"Drag",arrayAdd:"Add item",arrayConfirmDelete:"Are you sure you want to delete this item?",objectAddProperty:"Add property",objectPropertyAdded:"field was added to the form",objectPropertyRemoved:"field was removed from the form",propertiesToggle:"Properties",collapseToggle:"Collapse"},de:{errorAdditionalProperties:'Hat die zusätzliche Eigenschaft "{{ property }}", aber keine zusätzlichen Eigenschaften sind erlaubt.',errorAnyOf:"Muss mindestens einem der bereitgestellten Schemata entsprechen.",errorConst:"Muss den Wert {{ const }} haben.",errorContains:"Muss mindestens ein Element enthalten, das dem bereitgestellten Schema entspricht.",errorDependentRequired:"Muss die erforderlichen Eigenschaften haben: {{ dependentRequired }}.",errorEnum:"Muss einer der aufgeführten Werte sein: {{ enum }}.",errorExclusiveMaximum:"Muss kleiner als {{ exclusiveMaximum }} sein.",errorExclusiveMinimum:"Muss größer als {{ exclusiveMinimum }} sein.",errorFormat:"Ungültiges Format: {{ format }}.",errorItems:"Muss Elemente enthalten, die dem bereitgestellten Schema entsprechen.",errorMaximum:"Darf höchstens {{ maximum }} sein.",errorMaxItems:"Darf höchstens {{ maxItems }} Elemente enthalten.",errorMaxLength:"Darf höchstens {{ maxLength }} Zeichen lang sein.",errorMaxProperties:"Darf höchstens {{ maxProperties }} Eigenschaften haben.",errorMaxContains:"Darf höchstens {{ maxContains }} Elemente enthalten, die dem bereitgestellten Schema entsprechen. Aktuell enthält es {{ counter }}.",errorMinContains:"Muss mindestens {{ minContains }} Elemente enthalten, die dem bereitgestellten Schema entsprechen. Aktuell enthält es {{ counter }}.",errorMinimum:"Muss mindestens {{ minimum }} sein.",errorMinItems:"Muss mindestens {{ minItems }} Elemente enthalten.",errorMinLength:"Muss mindestens {{ minLength }} Zeichen lang sein.",errorMinProperties:"Muss mindestens {{ minProperties }} Eigenschaften haben.",errorMultipleOf:"Muss ein Vielfaches von {{ multipleOf }} sein.",errorNot:"Darf nicht dem bereitgestellten Schema entsprechen.",errorOneOf:"Muss genau einem der bereitgestellten Schemata entsprechen. Derzeit entspricht es {{ counter }} der Schemata.",errorPattern:'Muss dem Muster "{{ pattern }}" entsprechen.',errorPrefixItems:"Element {{ index }} entspricht nicht der Validierung.",errorPropertyNames:'Der Eigenschaftsname "{{ propertyName }}" entspricht nicht der Validierung.',errorProperties:"Die folgenden Eigenschaften entsprechen nicht ihren Schemata: {{ properties }}",errorRequired:"Muss die erforderlichen Eigenschaften haben: {{ required }}.",errorType:"Muss vom Typ {{ type }} sein.",errorUnevaluatedProperties:'Hat eine ungültige nicht bewertete Eigenschaft "{{ property }}"',errorUniqueItems:"Muss eindeutige Elemente haben.",arrayDelete:"Element löschen",arrayMoveUp:"Nach oben verschieben",arrayMoveDown:"Nach unten verschieben",arrayDrag:"Ziehen",arrayAdd:"Element hinzufügen",arrayConfirmDelete:"Möchten Sie dieses Element wirklich löschen?",objectAddProperty:"Eigenschaft hinzufügen",objectPropertyAdded:"Feld wurde dem Formular hinzugefügt",objectPropertyRemoved:"Feld wurde aus dem Formular entfernt",propertiesToggle:"Eigenschaften",collapseToggle:"Einklappen"},it:{errorAdditionalProperties:'Ha la proprietà aggiuntiva "{{ property }}" ma non sono consentite proprietà aggiuntive.',errorAnyOf:"Deve rispettare almeno uno degli schemi forniti.",errorConst:"Deve avere il valore: {{ const }}.",errorContains:"Deve contenere almeno un elemento che rispetti lo schema fornito.",errorDependentRequired:"Deve avere le proprietà richieste: {{ dependentRequired }}.",errorEnum:"Deve essere uno dei valori elencati: {{ enum }}.",errorExclusiveMaximum:"Deve essere inferiore a {{ exclusiveMaximum }}.",errorExclusiveMinimum:"Deve essere maggiore di {{ exclusiveMinimum }}.",errorFormat:"Formato non valido: {{ format }}.",errorItems:"Deve avere elementi che rispettano lo schema fornito.",errorMaximum:"Deve essere al massimo {{ maximum }}.",errorMaxItems:"Deve avere al massimo {{ maxItems }} elementi.",errorMaxLength:"Deve avere al massimo {{ maxLength }} caratteri.",errorMaxProperties:"Deve avere al massimo {{ maxProperties }} proprietà.",errorMaxContains:"Deve contenere al massimo {{ maxContains }} elementi che rispettano lo schema fornito. Attualmente ne contiene {{ counter }}.",errorMinContains:"Deve contenere almeno {{ minContains }} elementi che rispettano lo schema fornito. Attualmente ne contiene {{ counter }}.",errorMinimum:"Deve essere almeno {{ minimum }}.",errorMinItems:"Deve avere almeno {{ minItems }} elementi.",errorMinLength:"Deve avere almeno {{ minLength }} caratteri.",errorMinProperties:"Deve avere almeno {{ minProperties }} proprietà.",errorMultipleOf:"Deve essere un multiplo di {{ multipleOf }}.",errorNot:"Non deve rispettare lo schema fornito.",errorOneOf:"Deve rispettare esattamente uno degli schemi forniti. Attualmente rispetta {{ counter }} degli schemi.",errorPattern:'Deve rispettare il modello: "{{ pattern }}".',errorPrefixItems:"L'elemento {{ index }} non è valido.",errorPropertyNames:'Il nome della proprietà "{{ propertyName }}" non è valido.',errorProperties:"Le seguenti proprietà non rispettano i loro schemi: {{ properties }}",errorRequired:"Deve avere le proprietà richieste: {{ required }}.",errorType:"Deve essere di tipo {{ type }}.",errorUnevaluatedProperties:'Ha una proprietà non valutata non valida "{{ property }}"',errorUniqueItems:"Deve avere elementi univoci.",arrayDelete:"Elimina elemento",arrayMoveUp:"Sposta su",arrayMoveDown:"Sposta giù",arrayDrag:"Trascina",arrayAdd:"Aggiungi elemento",arrayConfirmDelete:"Sei sicuro di voler eliminare questo elemento?",objectAddProperty:"Aggiungi proprietà",objectPropertyAdded:"Campo aggiunto al modulo",objectPropertyRemoved:"Campo rimosso dal modulo",propertiesToggle:"Proprietà",collapseToggle:"Comprimi"},es:{errorAdditionalProperties:'Tiene la propiedad adicional "{{ property }}" pero no se permiten propiedades adicionales.',errorAnyOf:"Debe cumplir con al menos uno de los esquemas proporcionados.",errorConst:"Debe tener el valor: {{ const }}.",errorContains:"Debe contener al menos un elemento que cumpla con el esquema proporcionado.",errorDependentRequired:"Debe tener las propiedades requeridas: {{ dependentRequired }}.",errorEnum:"Debe ser uno de los valores enumerados: {{ enum }}.",errorExclusiveMaximum:"Debe ser menor que {{ exclusiveMaximum }}.",errorExclusiveMinimum:"Debe ser mayor que {{ exclusiveMinimum }}.",errorFormat:"Formato no válido: {{ format }}.",errorItems:"Debe tener elementos que cumplan con el esquema proporcionado.",errorMaximum:"Debe ser como máximo {{ maximum }}.",errorMaxItems:"Debe tener como máximo {{ maxItems }} elementos.",errorMaxLength:"Debe tener como máximo {{ maxLength }} caracteres.",errorMaxProperties:"Debe tener como máximo {{ maxProperties }} propiedades.",errorMaxContains:"Debe contener como máximo {{ maxContains }} elementos que cumplan con el esquema proporcionado. Actualmente contiene {{ counter }}.",errorMinContains:"Debe contener al menos {{ minContains }} elementos que cumplan con el esquema proporcionado. Actualmente contiene {{ counter }}.",errorMinimum:"Debe ser al menos {{ minimum }}.",errorMinItems:"Debe tener al menos {{ minItems }} elementos.",errorMinLength:"Debe tener al menos {{ minLength }} caracteres.",errorMinProperties:"Debe tener al menos {{ minProperties }} propiedades.",errorMultipleOf:"Debe ser múltiplo de {{ multipleOf }}.",errorNot:"No debe cumplir con el esquema proporcionado.",errorOneOf:"Debe cumplir con exactamente uno de los esquemas proporcionados. Actualmente cumple con {{ counter }} de los esquemas.",errorPattern:'Debe coincidir con el patrón: "{{ pattern }}".',errorPrefixItems:"El elemento {{ index }} no es válido.",errorPropertyNames:'El nombre de la propiedad "{{ propertyName }}" no es válido.',errorProperties:"Las siguientes propiedades no cumplen con sus esquemas: {{ properties }}",errorRequired:"Debe tener las propiedades requeridas: {{ required }}.",errorType:"Debe ser del tipo {{ type }}.",errorUnevaluatedProperties:'Tiene una propiedad no evaluada no válida "{{ property }}"',errorUniqueItems:"Debe tener elementos únicos.",arrayDelete:"Eliminar elemento",arrayMoveUp:"Mover hacia arriba",arrayMoveDown:"Mover hacia abajo",arrayDrag:"Arrastrar",arrayAdd:"Agregar elemento",arrayConfirmDelete:"¿Estás seguro de que deseas eliminar este elemento?",objectAddProperty:"Agregar propiedad",objectPropertyAdded:"campo fue añadido al formulario",objectPropertyRemoved:"campo fue eliminado del formulario",propertiesToggle:"Propiedades",collapseToggle:"Colapsar"}};class is{constructor(e){this.language=e.language||"en",this.translations=v({},ss,e.translations),this.defaultTranslations=ts}translate(e){let t=this.translations[this.language][e];return c(t)&&(t=this.defaultTranslations[e]),t}destroy(){Object.keys(this).forEach(e=>{delete this[e]})}}class ns{constructor(e=200){this.maxDepth=e}traverse(e,t,s=e,i="#",n=0,a=null,r=null,o={}){if(!s||"object"!=typeof s||n>this.maxDepth)return;const l=t(s,i,a,r,n,o);void 0!==l&&(a&&null!==r?a[r]=l:"#"===i&&(Object.keys(e).forEach(t=>delete e[t]),Object.assign(e,l)),s=l),"object"==typeof s&&null!==s&&Object.entries(s).forEach(([a,r])=>this.traverse(e,t,r,`${i}/${a}`,n+1,s,a,o))}}class as extends et{constructor(e){super(),this.options=Object.assign({container:null,iconLib:null,theme:null,refParser:null,editJsonData:!1,enablePropertiesToggle:!1,enableCollapseToggle:!1,btnContents:!0,btnIcons:!0,arrayDelete:!0,arrayMove:!0,arrayAdd:!0,arrayButtonsPosition:"left",startCollapsed:!1,deactivateNonRequired:!1,schema:{},showErrors:"change",switcherInput:"select",data:void 0,assertFormat:!1,customEditors:[],constraints:[],hiddenInputAttributes:{},id:"",radiosInline:!1,language:"en",translations:{},settings:{},useConstraintAttributes:!0,parseMarkdown:!1,purifyHtml:!0,purifyData:!0,domPurifyOptions:{},mergeAllOf:!1,enforceConst:!1,enforceRequired:!0,enforceEnumDefault:!0,enforceAdditionalProperties:!0,enforceMinItems:!0,enforceMaxItems:!0,enforceEnum:!0,debug:!1},e),this.rootName="#",this.pathSeparator="/",this.instances=new Map,this.root=null,this.translator=new is({language:this.options.language,translations:this.options.translations}),this.validator=null,this.schema={},this.watched={},this.theme=null,this.uiResolver=null,this.refParser=this.options.refParser?this.options.refParser:null,this.walker=new ns,this.lastFocusedId=null,this.isEditor=!1,this.debug=!1,this.init(),this.bindEventListeners(),this.updateInstancesWatchedData()}init(){if(this.options.container&&(this.isEditor=!0),this.uiResolver=new es({customEditors:this.options.customEditors,refParser:this.refParser}),this.theme=this.options.theme,this.theme&&(this.theme.btnContents=this.options.btnContents,this.theme.btnIcons=this.options.btnIcons),d(this.options.iconLib))switch(this.options.iconLib){case"glyphicons":this.theme.icons=ut;break;case"bootstrap-icons":this.theme.icons=pt;break;case"fontawesome3":this.theme.icons=mt;break;case"fontawesome4":this.theme.icons=gt;break;case"fontawesome5":this.theme.icons=ft;break;case"fontawesome6":this.theme.icons=bt}this.schema=this.options.schema,this.validator=new Ye({refParser:this.refParser,assertFormat:this.options.assertFormat,translator:this.translator,constraints:this.options.constraints}),this.root=this.createInstance({jedison:this,schema:this.options.schema,path:this.rootName}),d(this.options.data)&&this.root.setValue(this.options.data,!1),this.options.container&&(this.isEditor=!0,this.container=this.options.container,this.appendHiddenInput(),this.container.appendChild(this.root.ui.control.container),this.container.classList.add("jedi-ready"))}bindEventListeners(){this.root&&this.root.on("change",e=>{this.emit("change",e)}),this.on("instance-change",e=>{for(const[t,s]of Object.entries(this.watched))e.path===t&&s.forEach(e=>{e()})}),this.hiddenInput&&(this.on("change",e=>{this.hiddenInput.value=JSON.stringify(this.getValue()),"user"===e&&setTimeout(()=>{this.refreshFocus()},0)}),document.addEventListener("focus",e=>{this.lastKeyEvent=null,this.lastFocusedId=e.target.id},!0),document.addEventListener("keydown",e=>{this.lastKeyEvent=e}))}updateInstancesWatchedData(){Object.values(this.watched).forEach(e=>{e.forEach(e=>{e()})})}refreshFocus(){if(!this.lastFocusedId)return;const e=document.getElementById(this.lastFocusedId);e&&(e.focus(),this.lastKeyEvent&&"Tab"===this.lastKeyEvent.key&&this.simulateTab(e,this.lastKeyEvent.shiftKey))}simulateTab(e,t){const s=document.querySelectorAll('input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'),i=Array.prototype.indexOf.call(s,e);-1!==i&&(t?i>0&&s[i-1].focus():i+1<s.length&&s[i+1].focus())}appendHiddenInput(){const e=this.theme.getInputControl({type:"hidden",id:"jedi-hidden-input"});this.hiddenInput=e.input,this.hiddenInput.setAttribute("name","json"),this.hiddenInput.removeAttribute("aria-describedby"),this.hiddenInput.removeAttribute("aria-hidden","true"),this.options.hiddenInputAttributes&&f(this.options.hiddenInputAttributes)&&Object.keys(this.options.hiddenInputAttributes).forEach(e=>{this.hiddenInput.setAttribute(e,this.options.hiddenInputAttributes[e])}),this.container.appendChild(this.hiddenInput),this.hiddenInput.value=JSON.stringify(this.getValue())}register(e){this.instances.set(e.path,e)}unregister(e){this.instances.delete(e.path)}createInstance(t){this.refParser&&(t.schema=this.refParser.expand(t.schema),this.walker.traverse(t.schema,e=>{e.allOf&&Array.isArray(e.allOf)&&e.allOf.forEach((t,s)=>{e.allOf[s]=this.refParser.expand(t)}),e.oneOf&&Array.isArray(e.oneOf)&&e.oneOf.forEach((t,s)=>{e.oneOf[s]=this.refParser.expand(t)}),e.oneOf&&Array.isArray(e.oneOf)&&e.oneOf.forEach((t,s)=>{e.oneOf[s]=this.refParser.expand(t)})})),this.isEditor&&(this.walker.traverse(t.schema,t=>{if(t.allOf&&Array.isArray(t.allOf)){if(d(t["x-allOf-merged"]))return;const s=se(t,"mergeAllOf")??this.options.mergeAllOf,i=[];let n=e(t);t.allOf.forEach(e=>{e.if&&e.then?i.push({if:e.if,then:e.then,else:e.else||null}):n=s?y({},n,e):n}),n["x-allOf-merged"]=!0;let a=null;for(let e=i.length-1;e>=0;e--)a=null===a?i[e]:{if:i[e].if,then:i[e].then,else:a};return a&&Object.assign(n,a),n}}),this.walker.traverse(t.schema,t=>{if(t.oneOf&&Array.isArray(t.oneOf)){const s=e(t);return delete s.oneOf,t.oneOf=t.oneOf.map(e=>y({},s,e)),{oneOf:t.oneOf}}}),this.walker.traverse(t.schema,t=>{if(t.anyOf&&Array.isArray(t.anyOf)){const s=e(t);return delete s.anyOf,t.anyOf=t.anyOf.map(e=>y({},s,e)),{anyOf:t.anyOf}}}),this.walker.traverse(t.schema,t=>{if(t.not&&f(t.not)){const s=e(t);delete s.not,t.not=y({},s,t.not)}}));const s=ue(t.schema),i=S(t.schema),n=U(t.schema),a=he(t.schema);return!this.debug||!c(a)||d(s)||d(i)||d(n)||console.warn("TYPE NOT SET",t.schema,t.path),d(i)||d(s)||"any"===a||g(a)||c(a)?new at(t):d(n)?new nt(t):"object"===a?new ot(t):"array"===a?new lt(t):"string"===a?new dt(t):"number"===a||"integer"===a?new ct(t):"boolean"===a?new rt(t):"null"===a?new ht(t):void 0}getValue(){return this.root.getValue()}setValue(){this.root.setValue(...arguments),this.updateInstancesWatchedData()}getInstance(e){return this.instances.get(e)}disable(){this.root.ui.disable()}enable(){this.root.ui.enable()}getErrors(e=["error"]){let t=[];for(const s of this.instances.values())t=[...t,...s.getErrors()];return t.filter(t=>e.includes(t.type.toLowerCase()))}export(){const e=[];for(const t of this.instances.values())e.push({path:t.path??"-",type:t.schema.type??"-",title:t.ui.getTitle()??"-",value:t.getValue()??"-"});return e}showValidationErrors(e=null){if(!this.options.container)return!1;const t=e??this.getErrors();for(const s of this.instances.values())s.ui.showValidationErrors(t,!0)}watch(e,t){this.watched[e]||(this.watched[e]=[]),this.watched[e].push(t)}unwatch(e,t){this.watched[e]&&(this.watched[e]=this.watched[e].filter(e=>e!==t),0===this.watched[e].length&&delete this.watched[e])}destroy(){this.root.destroy(),this.options.container&&(this.container.innerHTML=""),Object.keys(this).forEach(e=>{delete this[e]})}}class rs{constructor(e=null){this.icons=e,this.useToggleEvents=!0,this.btnContents=!0,this.btnIcons=!0,this.init()}init(){this.useToggleEvents=!0}getEditorContainer(){const e=document.createElement("div");return e.classList.add("jedi-editor-container"),e}getFieldset(){const e=document.createElement("fieldset");return e.classList.add("jedi-editor-fieldset"),e.setAttribute("role","group"),e}getLegend(e){const t=document.createElement("div"),s=document.createElement("div"),i=document.createElement("legend"),n=document.createElement("label"),a=document.createElement("span"),r=document.createElement("input"),o="legend-label-"+e.id,l="legend-dummy-input-"+e.id;return t.classList.add("jedi-editor-legend-left"),s.classList.add("jedi-editor-legend-right"),i.classList.add("jedi-editor-legend"),i.style.fontSize="inherit",i.setAttribute("aria-labelledby",o),n.classList.add("jedi-title"),n.classList.add("jedi-legend"),n.setAttribute("id",o),n.innerHTML=e.content,a.classList.add("jedi-editor-info-container"),a.setAttribute("for",l),r.setAttribute("aria-hidden","true"),r.setAttribute("type","hidden"),r.setAttribute("id",l),this.visuallyHidden(r),e.titleHidden&&this.visuallyHidden(n),i.appendChild(t),i.appendChild(s),t.appendChild(n),t.appendChild(a),n.appendChild(r),{left:t,right:s,legend:i,legendText:n,infoContainer:a}}getRadioFieldset(){const e=document.createElement("fieldset");return e.classList.add("jedi-editor-radio-fieldset"),e.setAttribute("role","group"),e.style.marginBottom="15px",e.style.fontSize="inherit",e}getRadioLegend(e){const t="legend-label-"+e.id,s=document.createElement("legend"),i=document.createElement("label"),n=document.createElement("input");return s.classList.add("jedi-editor-legend"),s.style.fontSize="inherit",s.setAttribute("aria-labelledby",t),i.classList.add("jedi-title"),i.classList.add("jedi-label"),i.innerHTML=e.content,i.setAttribute("id",t),n.setAttribute("aria-hidden","true"),n.setAttribute("type","hidden"),n.setAttribute("disabled",""),this.visuallyHidden(n),s.appendChild(i),i.appendChild(n),{legend:s,legendText:i}}getLabel(e){const t=document.createElement("label"),s=document.createElement("span"),i=document.createElement("i");return t.setAttribute("for",e.for),t.classList.add("jedi-title"),t.classList.add("jedi-label"),s.innerHTML=e.text,e.visuallyHidden&&this.visuallyHidden(t),e.titleIconClass&&this.addIconClass(i,e.titleIconClass),e.titleIconClass&&t.appendChild(i),t.appendChild(s),{label:t,labelText:s,icon:i}}getFakeLabel(e){const t=document.createElement("label"),s=document.createElement("span"),i=document.createElement("i"),n=document.createElement("input");return t.setAttribute("for",e.for),t.classList.add("jedi-title"),t.classList.add("jedi-label"),e.visuallyHidden&&this.visuallyHidden(t),s.innerHTML=e.content,e.titleIconClass&&this.addIconClass(i,e.titleIconClass),n.setAttribute("aria-hidden","true"),n.setAttribute("type","hidden"),n.setAttribute("disabled",""),n.setAttribute("id",e.for),this.visuallyHidden(n),t.appendChild(i),t.appendChild(s),t.appendChild(n),{label:t,labelText:s,icon:i,dummyInput:n}}addIconClass(e,t=""){let s=t.split(" ");s=s.filter(e=>e.length>0),s&&s.forEach(t=>{e.classList.add(t)})}getOptInWrapper(){const e=document.createElement("span"),t=document.createElement("span"),s=document.createElement("span");return e.classList.add("jedi-opt-in-wrapper"),e.style.display="flex",e.style.alignItems="center",t.classList.add("jedi-opt-in-container"),s.classList.add("jedi-title-container"),s.style.flexGrow="1",e.appendChild(s),e.appendChild(t),{optInWrapper:e,optInContainer:t,otherContainer:s}}getCard(){const e=document.createElement("div");return e.classList.add("jedi-editor-card"),e}getCardHeader(){const e=document.createElement("div");return e.classList.add("jedi-editor-card-header"),e}getCardBody(){const e=document.createElement("div");return e.classList.add("jedi-editor-card-body"),e}getActionsSlot(){const e=document.createElement("div");return e.classList.add("jedi-actions-slot"),e}getArrayActionsSlot(){const e=document.createElement("span");return e.classList.add("jedi-array-actions-slot"),e}getChildrenSlot(){const e=document.createElement("div");return e.classList.add("jedi-children-slot"),e}getMessagesSlot(e={}){const t=document.createElement("div");return t.classList.add("jedi-messages-slot"),t.setAttribute("aria-atomic","false"),t.setAttribute("aria-live","polite"),e.id&&t.setAttribute("id",e.id),t}getControlSlot(){const e=document.createElement("div");return e.classList.add("jedi-control-slot"),e}getPropertiesToggle(e){const t=this.getButton(e);return t.classList.add("jedi-properties-toggle"),t.addEventListener("click",()=>{e.propertiesContainer.open?e.propertiesContainer.close():e.propertiesContainer.showModal()}),t}getCollapse(e){const t=document.createElement("div");return t.classList.add("jedi-collapse"),t.setAttribute("id",e.id),this.useToggleEvents&&e.startCollapsed&&(t.style.display="none"),t}getCollapseToggle(e){const t=this.getButton(e);t.classList.add("jedi-collapse-toggle"),t.setAttribute("always-enabled",""),this.useToggleEvents&&t.addEventListener("click",()=>{"none"===e.collapse.style.display?e.collapse.style.display="block":e.collapse.style.display="none"});let s=e.startCollapsed;return s?t.setAttribute("aria-expanded","false"):t.setAttribute("aria-expanded","true"),t.style.transition="transform 0.1s ease",s&&(t.style.transform="rotate(90deg)"),t.addEventListener("click",()=>{t.style.transform=s?"rotate(0deg)":"rotate(90deg)",s=!s}),t}getPropertiesSlot(e){const t=document.createElement("dialog");return t.classList.add("jedi-properties-slot"),t.setAttribute("id",e.id),window.addEventListener("click",e=>{e.target===t&&t.close()}),t}getJsonData(e){const t=document.createElement("dialog");t.classList.add("jedi-json-data"),t.setAttribute("id",e.id),window.addEventListener("click",e=>{e.target===t&&t.close()});const s=this.getButton({id:"jedi-json-data-toggle-"+e.id,icon:"edit"});s.classList.add("jedi-json-data-toggle"),s.addEventListener("click",()=>{t.open?t.close():t.showModal()});const i=document.createElement("div"),{label:n}=this.getLabel({for:"json-data-input-"+e.id,text:"JSON Data"}),a=document.createElement("textarea");a.setAttribute("id","json-data-input-"+e.id),a.cols=60,a.style.whiteSpace="pre",a.style.overflowX="auto",a.style.resize="both",a.style.maxHeight="60vh";const r=this.getButton({id:"jedi-json-data-save-"+e.id,icon:"save"});return t.appendChild(i),i.appendChild(n),i.appendChild(a),t.appendChild(r),{dialog:t,toggle:s,control:i,input:a,saveBtn:r}}getPropertiesAriaLive(){const e=document.createElement("div");return e.classList.add("jedi-properties-aria-live"),e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e}getAriaLiveMessage(e){const t=document.createElement("p");return t.classList.add("jedi-aria-live-message"),t.textContent=e,this.visuallyHidden(t),t}getPropertiesActivators(){const e=document.createElement("div");return e.classList.add("jedi-properties-activators"),e}getPropertiesGroup(e={}){const t=document.createElement("div");t.classList.add("jedi-properties-group-container");const s=document.createElement("div");s.classList.add("jedi-properties-group");const i=document.createElement("p");return i.classList.add("jedi-properties-group-name"),i.textContent=e.name??"",t.appendChild(i),t.appendChild(s),{container:t,group:s,name:i}}getBtnGroup(){const e=document.createElement("span");return e.classList.add("jedi-btn-group"),e}getButton(e={}){const t=document.createElement("button"),s=document.createElement("span"),i=document.createElement("i");return t.classList.add("jedi-btn"),t.setAttribute("type","button"),e.value&&(t.value=e.value),e.id&&t.setAttribute("id",e.id),s.textContent=" "+e.content,this.btnIcons&&this.icons&&e.icon&&(this.addIconClass(i,this.icons[e.icon]),i.setAttribute("title",e.content)),this.btnContents||this.visuallyHidden(s),this.icons&&e.icon&&t.appendChild(i),t.appendChild(s),t}getAddPropertyButton(e){const t=this.getButton(e);return t.classList.add("jedi-add-property-btn"),t}getArrayBtnAdd(e){const t=this.getButton({content:e.content,icon:"add"});return t.classList.add("jedi-array-add"),t}getDeleteItemBtn(e){const t=this.getButton({content:e.content,icon:"delete"});return t.classList.add("jedi-array-delete"),t}getMoveUpItemBtn(e){const t=this.getButton({content:e.content,icon:"moveUp"});return t.classList.add("jedi-array-move-up"),t}getMoveDownItemBtn(e){const t=this.getButton({content:e.content,icon:"moveDown"});return t.classList.add("jedi-array-move-down"),t}getDragItemBtn(e){const t=this.getButton({content:e.content,icon:"drag"});return t.classList.add("jedi-array-drag"),t}getDescription(e={}){const t=document.createElement("small");return t.style.display="block",t.classList.add("jedi-description"),e.content&&(t.innerHTML=e.content),e.id&&t.setAttribute("id",e.id),t}getInfo(e={}){const t=document.createElement("span"),s=document.createElement("a"),i=document.createElement("span"),n=document.createElement("i");if(t.classList.add("jedi-info-button-container"),t.style.display="inline-block",s.setAttribute("href","#"),s.classList.add("jedi-info-button"),s.style.marginLeft="4px",f(e.attributes))for(const[a,r]of Object.entries(e.attributes))s.setAttribute(a,r);return i.textContent="Info",!this.btnContents&&this.btnIcons&&this.visuallyHidden(i),n.setAttribute("title","More information"),this.icons&&this.addIconClass(n,this.icons.info),s.appendChild(n),s.appendChild(i),t.appendChild(s),{container:t,info:s}}infoAsModal(e,t,s={}){const i=document.createElement("dialog"),n=document.createElement("div"),a=document.createElement("div"),r=this.getButton({content:"Close",icon:"close"});i.classList.add("jedi-modal-dialog"),n.classList.add("jedi-modal-title"),p(s.title)&&(n.innerHTML=s.title),a.classList.add("jedi-modal-content"),p(s.content)&&(a.innerHTML=s.content),r.classList.add("jedi-modal-close"),r.setAttribute("always-enabled",""),window.addEventListener("click",e=>{e.target===i&&i.close()}),r.addEventListener("click",()=>{i.close()}),e.info.addEventListener("click",()=>{i.showModal()}),e.container.appendChild(i),i.appendChild(n),i.appendChild(a),i.appendChild(r)}getPlaceholderControl(e){var t;const s=e.id+"-description",i=e.id+"-messages",n=document.createElement("div"),a=document.createElement("div"),r=this.getActionsSlot(),o=this.getInfo(e.info),{label:l,labelText:d}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden,titleIconClass:e.titleIconClass}),c=this.getDescription({content:e.description,id:s}),h=this.getMessagesSlot({id:i});return"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(o,e.id,e.info),n.appendChild(l),f(e.info)&&l.appendChild(o.container),n.appendChild(a),n.appendChild(c),n.appendChild(h),n.appendChild(r),{container:n,placeholder:a,label:l,labelText:d,description:c,messages:h,actions:r}}getObjectControl(e){var t;const s="collapse-"+e.id,i=document.createElement("div"),n=this.getActionsSlot(),a=this.getCardBody(),r=this.getPropertiesAriaLive(),o=this.getMessagesSlot(),l=this.getChildrenSlot(),d=this.getPropertiesActivators(),c=this.getInfo(e.info),h=this.getDescription({content:e.description}),u=this.getJsonData({id:"json-data-"+e.id}),p=this.getPropertiesSlot({id:"properties-slot-"+e.id}),m=this.getPropertiesToggle({content:e.propertiesToggleContent,id:"properties-slot-toggle-"+e.id,icon:"properties",propertiesContainer:p}),g=this.getCollapse({id:s,startCollapsed:e.startCollapsed}),b=this.getCollapseToggle({content:e.collapseToggleContent,id:"collapse-toggle-"+e.id,icon:"collapse",collapseId:s,collapse:g,startCollapsed:e.startCollapsed}),v=this.getInputControl({type:"text",id:"jedi-add-property-input-"+e.id,title:e.addPropertyContent}),y=this.getAddPropertyButton({content:e.addPropertyContent,icon:"add"}),C=this.getFieldset(),{legend:L,infoContainer:E,legendText:x}=this.getLegend({content:e.title,id:e.id,titleHidden:e.titleHidden});return"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(c,e.id,e.info),y.classList.add("jedi-object-add"),i.appendChild(C),i.appendChild(p),e.editJsonData&&i.appendChild(u.dialog),C.appendChild(L),f(e.info)&&E.appendChild(c.container),C.appendChild(g),g.appendChild(a),e.description&&a.appendChild(h),a.appendChild(o),!1===e.readOnly&&L.appendChild(n),a.appendChild(l),e.addProperty&&(p.appendChild(v.container),p.appendChild(y),p.appendChild(document.createElement("hr"))),e.editJsonData&&n.appendChild(u.toggle),e.enablePropertiesToggle&&(n.appendChild(m),p.appendChild(r),p.appendChild(d)),e.enableCollapseToggle&&n.appendChild(b),{container:i,collapse:g,collapseToggle:b,description:h,body:a,actions:n,messages:o,childrenSlot:l,propertiesToggle:m,jsonData:u,propertiesContainer:p,addPropertyControl:v,addPropertyBtn:y,ariaLive:r,propertiesActivators:d,legend:L,legendText:x,infoContainer:E}}getArrayControl(e){var t;const s="collapse-"+e.id,i=document.createElement("div"),n=this.getActionsSlot(),a=this.getCardBody(),r=this.getMessagesSlot(),o=this.getChildrenSlot(),l=this.getBtnGroup(),c=this.getArrayBtnAdd({content:e.arrayAddContent}),h=this.getFieldset(),u=this.getInfo(e.info),{legend:p,legendText:m,infoContainer:g}=this.getLegend({content:e.title,id:e.id,titleHidden:e.titleHidden}),b=this.getDescription({content:e.description}),v=this.getJsonData({id:"json-data-"+e.id}),y=this.getCollapse({id:s,startCollapsed:e.startCollapsed}),C=this.getCollapseToggle({content:e.collapseToggleContent,id:"collapse-toggle-"+e.id,icon:"collapse",collapseId:s,collapse:y,startCollapsed:e.startCollapsed});return"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(u,e.id,e.info),i.appendChild(h),e.editJsonData&&i.appendChild(v.dialog),h.appendChild(p),f(e.info)&&g.appendChild(u.container),h.appendChild(y),y.appendChild(a),e.description&&a.appendChild(b),a.appendChild(r),p.appendChild(n),n.appendChild(l),e.editJsonData&&l.appendChild(v.toggle),d(e.arrayAdd)&&!0===e.arrayAdd&&l.appendChild(c),a.appendChild(o),e.enableCollapseToggle&&n.appendChild(C),{container:i,collapseToggle:C,collapse:y,body:a,actions:n,messages:r,childrenSlot:o,btnGroup:l,addBtn:c,jsonData:v,legend:p,legendText:m}}getArrayItem(e={}){const t=document.createElement("div"),s=document.createElement("div"),i=this.getActionsSlot(),n=this.getArrayActionsSlot();return i.style.textAlign="right",t.classList.add("jedi-array-item"),s.classList.add("jedi-array-item-body"),d(e.index)&&t.setAttribute("jedi-array-item-index",e.index),i.appendChild(n),t.appendChild(i),t.appendChild(s),{container:t,actions:i,arrayActions:n,body:s}}getMultipleControl(e={}){const t=document.createElement("div"),s=document.createElement("div"),i=document.createElement("div"),n=this.getMessagesSlot(),a=this.getChildrenSlot(),r=w(5);let o;return"select"===e.switcher&&(o=this.getSwitcherSelect({values:e.switcherOptionValues,titles:e.switcherOptionsLabels,title:e.id+"-switcher",id:e.id+"-switcher-"+r,label:e.id+"-switcher-"+r,titleHidden:!0,readOnly:e.readOnly})),"radios"!==e.switcher&&"radios-inline"!==e.switcher||(o=this.getSwitcherRadios({values:e.switcherOptionValues,titles:e.switcherOptionsLabels,title:e.id+"-switcher",id:e.id+"-switcher-"+r,label:e.id+"-switcher-"+r,titleHidden:!0,readOnly:e.readOnly,inline:"radios-inline"===e.switcher})),o.container.classList.add("jedi-switcher"),t.appendChild(s),t.appendChild(i),s.appendChild(o.container),i.appendChild(n),i.appendChild(a),{container:t,header:s,body:i,messages:n,childrenSlot:a,switcher:o}}adaptForTableMultipleControl(e,t){}getIfThenElseControl(e){const t=document.createElement("div"),s=this.getCard(),i=this.getActionsSlot(),n=this.getCardBody(),a=this.getMessagesSlot(),r=this.getChildrenSlot(),o=this.getCardHeader({content:e.title,titleHidden:e.titleHidden}),l=this.getDescription({content:e.description});return n.appendChild(l),t.appendChild(a),t.appendChild(r),{container:t,card:s,header:o,body:n,actions:i,messages:a,childrenSlot:r}}getNullControl(e){var t;const s=e.id+"-description",i=document.createElement("div"),n=this.getActionsSlot(),a=this.getMessagesSlot(),r=document.createElement("br"),o=this.getInfo(e.info),{label:l,labelText:d}=this.getFakeLabel({for:e.id,content:e.title,visuallyHidden:e.titleHidden,titleIconClass:e.titleIconClass}),c=this.getDescription({content:e.description,id:s});return"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(o,e.id,e.info),i.appendChild(l),f(e.info)&&l.appendChild(o.container),i.appendChild(r),i.appendChild(c),i.appendChild(a),i.appendChild(n),{container:i,label:l,labelText:d,description:c,messages:a,actions:n}}getTextareaControl(e){var t;const s=e.id+"-description",i=e.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("textarea"),l=this.getInfo(e.info),{label:d,labelText:c}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden}),h=this.getDescription({content:e.description,id:s}),u=this.getMessagesSlot({id:i});return o.setAttribute("aria-describedby",n),o.setAttribute("id",e.id),o.setAttribute("name",e.id),o.style.width="100%","modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(l,e.id,e.info),a.appendChild(d),f(e.info)&&d.appendChild(l.container),a.appendChild(o),a.appendChild(h),a.appendChild(u),a.appendChild(r),{container:a,input:o,label:d,labelText:c,description:h,messages:u,actions:r}}adaptForTableTextareaControl(e){this.visuallyHidden(e.label),this.visuallyHidden(e.description),e.input.setAttribute("rows","1")}getInputControl(e){var t;const s=e.id+"-messages",i=e.id+"-description",n=s+" "+i,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("input"),l=this.getInfo(e.info),{label:d,labelText:c}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden,titleIconClass:e.titleIconClass}),h=this.getDescription({content:e.description,id:i}),u=this.getMessagesSlot({id:s});return o.setAttribute("aria-describedby",n),o.setAttribute("type",e.type),o.setAttribute("id",e.id),o.setAttribute("name",e.id),o.style.width="100%",a.appendChild(d),"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(l,e.id,e.info),f(e.info)&&d.appendChild(l.container),a.appendChild(o),a.appendChild(h),a.appendChild(u),a.appendChild(r),{container:a,input:o,label:d,info:l,labelText:c,description:h,messages:u,actions:r}}getInputRangeControl(e){const t=this.getInputControl(e),s=document.createElement("output");return s.className="range-output",s.style.marginLeft="10px",s.style.fontWeight="bold",t.input.parentNode.insertBefore(s,t.input.nextSibling),{...t,output:s}}adaptForTableInputControl(e){this.visuallyHidden(e.label),this.visuallyHidden(e.description)}getRadiosControl(e){var t;const s=e.id+"-messages",i=e.id+"-description",n=document.createElement("div"),a=this.getRadioFieldset(),r=this.getInfo(e.info),{legend:o,legendText:l}=this.getRadioLegend({content:e.title,id:e.id,for:e.id}),c=this.getMessagesSlot({id:s}),h=this.getDescription({content:e.description,id:i});"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(r,e.id,e.info),e.titleHidden&&this.visuallyHidden(o);const u=[],p=[],m=[],g=[];return e.values.forEach((t,n)=>{const a=s+" "+i,r=document.createElement("div"),o=document.createElement("input"),l=document.createElement("label"),c=document.createElement("span");o.setAttribute("type","radio"),o.setAttribute("id",e.id+"-"+n),o.setAttribute("name",e.id),o.setAttribute("value",t),o.setAttribute("aria-describedby",a),l.setAttribute("for",e.id+"-"+n),l.classList.add("jedi-title"),l.classList.add("jedi-label"),g.push(c),d(e.titles)&&d(e.titles[n])&&(c.textContent=e.titles[n]??t),u.push(r),p.push(o),m.push(l)}),n.appendChild(a),a.appendChild(o),f(e.info)&&l.appendChild(r.container),u.forEach((e,t)=>{a.appendChild(u[t]),e.appendChild(p[t]),e.appendChild(m[t]),m[t].appendChild(g[t])}),a.appendChild(h),a.appendChild(c),{container:n,fieldset:a,legend:o,legendText:l,info:r,radios:p,labels:m,labelTexts:g,radioControls:u,description:h,messages:c}}adaptForTableRadiosControl(e){this.visuallyHidden(e.legend),this.visuallyHidden(e.description)}getCheckboxControl(e){var t;const s=e.id+"-description",i=e.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("span"),l=document.createElement("input"),d=this.getInfo(e.info),{label:c,labelText:h}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden}),u=this.getDescription({content:e.description,id:s}),p=this.getMessagesSlot({id:i});return l.setAttribute("type","checkbox"),l.setAttribute("id",e.id),l.setAttribute("name",e.id),l.setAttribute("aria-describedby",n),"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(d,e.id,e.info),a.appendChild(o),a.appendChild(r),o.appendChild(l),o.appendChild(c),f(e.info)&&c.appendChild(d.container),o.appendChild(u),o.appendChild(p),{container:a,formGroup:o,input:l,label:c,info:d,labelText:h,description:u,messages:p,actions:r}}adaptForTableCheckboxControl(e,t){this.visuallyHidden(e.label),this.visuallyHidden(e.description)}getCheckboxesControl(e){var t;const s=e.id+"-messages",i=e.id+"-description",n=document.createElement("div"),a=this.getRadioFieldset(),r=this.getInfo(e.info),{legend:o,legendText:l}=this.getRadioLegend({content:e.title,id:e.id,for:e.id}),d=this.getMessagesSlot({id:s}),c=this.getDescription({content:e.description,id:i});e.titleHidden&&this.visuallyHidden(o);const h=[],u=[],p=[],m=[];return e.values.forEach((t,n)=>{const a=s+" "+i,r=e.id+"-"+n,o=document.createElement("div"),l=document.createElement("input"),d=document.createElement("label"),c=document.createElement("span");l.setAttribute("type","checkbox"),l.setAttribute("id",r),l.setAttribute("name",e.id),l.setAttribute("value",t),l.setAttribute("aria-describedby",a),d.setAttribute("for",r),e.titles&&e.titles[n]&&(c.textContent=e.titles[n]),h.push(o),u.push(l),m.push(c),p.push(d)}),"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(r,e.id,e.info),n.appendChild(a),a.appendChild(o),f(e.info)&&l.appendChild(r.container),h.forEach((e,t)=>{a.appendChild(h[t]),e.appendChild(u[t]),e.appendChild(p[t]),p[t].appendChild(m[t])}),a.appendChild(c),a.appendChild(d),{container:n,fieldset:a,legend:o,legendText:l,checkboxes:u,labels:p,labelTexts:m,checkboxControls:h,description:c,messages:d}}adaptForTableCheckboxesControl(e,t){this.visuallyHidden(e.legend),this.visuallyHidden(e.description)}getSelectControl(e){var t;const s=e.id+"-description",i=e.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("select"),l=this.getInfo(e.info),{label:d,labelText:c}=this.getLabel({for:e.id,text:e.title,visuallyHidden:e.titleHidden}),h=this.getMessagesSlot({id:i}),u=this.getDescription({content:e.description,id:s});return o.setAttribute("id",e.id),o.setAttribute("name",e.id),o.setAttribute("aria-describedby",n),e.values.forEach((t,s)=>{const i=document.createElement("option");i.setAttribute("value",t),e.titles&&e.titles[s]&&(i.textContent=e.titles[s]),o.appendChild(i)}),"modal"===(null==(t=null==e?void 0:e.info)?void 0:t.variant)&&this.infoAsModal(l,e.id,e.info),a.appendChild(d),f(e.info)&&d.appendChild(l.container),a.appendChild(o),a.appendChild(u),a.appendChild(h),a.appendChild(r),{container:a,input:o,label:d,info:l,labelText:c,description:u,messages:h,actions:r}}adaptForTableSelectControl(e){this.visuallyHidden(e.label),this.visuallyHidden(e.description)}getSwitcherSelect(e){return this.getSelectControl(e)}getSwitcherRadios(e){return this.getRadiosControl(e)}getAlert(e){return this.getErrorFeedback(e)}getErrorFeedback(e){const t=document.createElement("div"),s=document.createElement("small"),i=document.createElement("span");return s.textContent=e.message,i.textContent="⚠ ",i.classList.add("jedi-error-message"),i.setAttribute("aria-hidden","true"),t.classList.add("jedi-error-message"),t.appendChild(i),t.appendChild(s),t}getWarningFeedback(e){const t=document.createElement("div"),s=document.createElement("small"),i=document.createElement("span");return s.textContent=e.message,i.textContent="⚠ ",i.classList.add("jedi-warning-message"),i.setAttribute("aria-hidden","true"),t.classList.add("jedi-warning-message"),t.appendChild(i),t.appendChild(s),t}getRow(){const e=document.createElement("div");return e.classList.add("jedi-row"),e}getCol(e,t,s,i,n){const a=document.createElement("div");return a.classList.add("jedi-col"),a.classList.add("jedi-col-xs-"+e),a.classList.add("jedi-col-sm-"+t),a.classList.add("jedi-col-md-"+s),a.classList.add("jedi-col-lg-"+i),n&&a.classList.add("jedi-col-md-offset-"+n),a}getClearfix(){const e=document.createElement("div");return e.classList.add("clearfix"),e}getTabList(){const e=document.createElement("ul");return e.classList.add("jedi-nav-list"),e}getTab(e){const t=document.createElement("li"),s=document.createElement("a"),i=document.createElement("span"),n=document.createElement("span");if(s.classList.add("jedi-nav-link"),s.setAttribute("href","#tab-pane-"+e.id),n.classList.add("jedi-nav-text"),n.textContent=e.title,e.hasErrors){const t=document.createElement("span");t.classList.add("jedi-nav-warning"),t.textContent="⚠ ",e.navWarningMessage&&t.setAttribute("title",e.navWarningMessage),n.insertBefore(t,n.firstChild)}return s.appendChild(i),s.appendChild(n),t.appendChild(s),{list:t,link:s,arrayActions:i,text:n}}getTabContent(){const e=document.createElement("div");return e.classList.add("tab-content"),e}getTable(){const e=document.createElement("div"),t=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return t.appendChild(s),t.appendChild(i),e.appendChild(t),{container:e,table:t,thead:s,tbody:i}}getTableDefinition(e={}){const t=document.createElement("td");return e.isButtonColumn&&(t.style.width="1%"),t.style.whiteSpace="nowrap",t}getTableHeader(e={}){const t=document.createElement("th");return t.style.paddingLeft="12px",t.style.paddingRight="12px",t.style.textWrap="nowrap",t.style.verticalAlign="bottom",e.minWidth&&(t.style.minWidth=e.minWidth),t}setTabPaneAttributes(e,t,s){e.setAttribute("id","tab-pane-"+s),e.classList.add("jedi-tab-pane")}visuallyHidden(e){e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.padding="0",e.style.margin="-1px",e.style.overflow="hidden",e.style.clip="rect(0,0,0,0)",e.style.border="0"}visuallyVisible(e){e.removeAttribute("style")}physicallyHidden(e){e.style.display="none"}}const os={Schema:ge,Utils:A,Editor:st,EditorBoolean:vt,EditorBooleanRadios:yt,EditorBooleanSelect:Ct,EditorBooleanCheckbox:Lt,EditorString:Et,EditorStringRadios:xt,EditorStringSelect:It,EditorStringTextarea:wt,EditorStringAwesomplete:At,EditorStringInput:jt,EditorNumberRange:Qt,EditorNumber:Mt,EditorNumberRadios:St,EditorNumberSelect:Pt,EditorNumberInput:Dt,EditorObjectGrid:Ft,EditorObjectNav:Ht,EditorObject:Ot,EditorArrayChoices:qt,EditorArrayNav:Nt,EditorArray:Vt,EditorMultiple:Ut,EditorIfThenElse:it,EditorNull:Jt,Theme:rs,ThemeBootstrap3:class extends rs{init(){this.useToggleEvents=!1}getAddPropertyButton(e){const t=super.getAddPropertyButton(e);return t.classList.add("btn-primary"),t.classList.add("btn-block"),t}getCollapseToggle(e){const t=super.getCollapseToggle(e);return t.setAttribute("href","#"+e.collapseId),t.setAttribute("data-toggle","collapse"),t.setAttribute("always-enabled",""),t}getCollapse(e){const t=super.getCollapse(e);return t.classList.add("collapse"),e.startCollapsed||t.classList.add("in"),t}getJsonData(e){const t=super.getJsonData(e);return t.control.classList.add("form-group"),t.input.classList.add("form-control"),t.saveBtn.classList.add("btn-primary"),t.saveBtn.classList.add("btn-block"),t}getFieldset(){const e=super.getFieldset();return e.classList.add("panel"),e.classList.add("panel-default"),e.style.marginBottom="15px",e}getLegend(e){const t=super.getLegend(e),{legend:s}=t;return s.classList.add("panel-heading"),s.classList.add("pull-left"),s.style.margin="0",s.style.display="flex",s.style.justifyContent="space-between",s.style.alignItems="center",t}getRadioLegend(e){const t=super.getRadioLegend(e),{legend:s}=t;return s.style.fontWeight="inherit",s.style.border="none",s.style.marginBottom="0",t}getLabel(e){const t=super.getLabel(e);return t.icon.classList&&(t.icon.style.marginRight="5px"),t}getCard(){const e=super.getCard();return e.classList.add("panel"),e.classList.add("panel-default"),e}getCardHeader(e){const t=super.getCardHeader(e);return t.classList.add("panel-heading"),t.classList.add("text-right"),t}getCardBody(){const e=super.getCardBody();return e.classList.add("panel-body"),e.style.clear="both",e.style.paddingBottom="0",e}getBtnGroup(){const e=super.getBtnGroup();return e.classList.add("btn-group"),e.style.display="inline-flex",e}getButton(e){const t=super.getButton(e);return t.classList.add("btn"),t.classList.add("btn-xs"),t.classList.add("btn-default"),t}getDescription(e){const t=super.getDescription(e);return t.classList.add("text-muted"),t.style.marginBottom="5px",t}getPropertiesGroup(e={}){const t=super.getPropertiesGroup(e),s=document.createElement("br");return t.container.appendChild(s),t.group.classList.add("pl-3"),t}getTextareaControl(e){const t=super.getTextareaControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableTextareaControl(e){super.adaptForTableTextareaControl(e),e.container.classList.remove("form-group")}getInputControl(e){const t=super.getInputControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}getInputRangeControl(e){return super.getInputRangeControl(e)}adaptForTableInputControl(e,t){super.adaptForTableInputControl(e,t),e.container.classList.remove("form-group")}getRadiosControl(e){const t=super.getRadiosControl(e),{fieldset:s,radios:i,labels:n,labelTexts:a,radioControls:r,description:o,messages:l}=t;return r.forEach((t,o)=>{t.classList.add("radio"),e.inline&&(t.style.display="inline-flex",t.style.alignItems="center",t.style.paddingLeft="0",t.style.marginRight="15px"),s.appendChild(r[o]),t.appendChild(n[o]),n[o].appendChild(i[o]),n[o].appendChild(a[o])}),s.appendChild(o),s.appendChild(l),t}adaptForTableRadiosControl(e,t){super.adaptForTableRadiosControl(e,t),e.fieldset.classList.remove("panel"),e.fieldset.classList.remove("panel-default"),e.fieldset.style.marginBottom="0"}getCheckboxesControl(e){const t=super.getCheckboxesControl(e),{fieldset:s,checkboxes:i,labels:n,labelTexts:a,checkboxControls:r}=t;return r.forEach((t,o)=>{t.classList.add("checkbox"),e.inline&&(t.style.display="inline-flex",t.style.alignItems="center",t.style.paddingLeft="0",t.style.marginRight="30px"),s.appendChild(r[o]),t.appendChild(n[o]),n[o].appendChild(i[o]),n[o].appendChild(a[o])}),t}adaptForTableCheckboxesControl(e,t){super.adaptForTableCheckboxesControl(e,t),e.fieldset.classList.remove("panel"),e.fieldset.classList.remove("panel-default"),e.body.classList.remove("panel-body")}getCheckboxControl(e){const t=super.getCheckboxControl(e),{container:s,formGroup:i,description:n,messages:a}=t;return s.appendChild(i),s.appendChild(n),s.appendChild(a),t}adaptForTableCheckboxControl(e,t){super.adaptForTableCheckboxControl(e,t)}getSelectControl(e){const t=super.getSelectControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableSelectControl(e,t){super.adaptForTableSelectControl(e,t),e.container.classList.remove("form-group")}adaptForTableMultipleControl(e,t){super.adaptForTableMultipleControl(e,t)}getAlert(e){const t=super.getAlert(e);return t.classList.add("alert"),t.classList.add("alert-danger"),t}getErrorFeedback(e){const t=super.getErrorFeedback(e);return t.classList.add("text-danger"),t}getWarningFeedback(e){const t=super.getWarningFeedback(e);return t.classList.add("text-warning"),t}getRow(){const e=super.getRow();return e.classList.add("row"),e}getCol(e,t,s,i,n){const a=super.getCol();return a.classList.add("col-xs-"+e),a.classList.add("col-sm-"+t),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("col-md-offset-"+n),a}getTabList(e){const t=super.getTabList(e);return t.classList.add("nav"),"horizontal"===e.variant?t.classList.add("nav-tabs"):(t.classList.add("nav-pills"),t.classList.add("nav-stacked")),t}getTab(e){const t=super.getTab(e);return t.text.style.marginLeft="15px",e.active&&t.list.classList.add("active"),t.link.setAttribute("data-toggle","tab"),t}getTable(){const e=document.createElement("div"),t=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return e.classList.add("table-responsive"),t.classList.add("table"),t.appendChild(s),t.appendChild(i),e.appendChild(t),{container:e,table:t,thead:s,tbody:i}}setTabPaneAttributes(e,t,s){super.setTabPaneAttributes(e,t,s),e.classList.add("tab-pane"),t&&(e.classList.add("in"),e.classList.add("active"))}infoAsModal(e,t,s={}){const i=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),l=document.createElement("div"),d=this.getButton({content:"Close",icon:"close"}),c=t+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",c),d.setAttribute("data-dismiss","modal"),d.setAttribute("always-enabled",""),e.info.setAttribute("data-toggle","modal"),e.info.setAttribute("data-target","#"+c),i.classList.add("modal"),i.classList.add("fade"),n.classList.add("modal-dialog"),a.classList.add("modal-content"),r.classList.add("modal-header"),o.classList.add("modal-title"),l.classList.add("modal-body"),d.classList.add("jedi-modal-close"),d.classList.add("close"),p(s.title)&&(o.innerHTML=s.title),p(s.content)&&(l.innerHTML=s.content),e.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(d),r.appendChild(o),a.appendChild(l)}visuallyHidden(e){e.classList.add("sr-only")}visuallyVisible(e){e.classList.remove("sr-only")}},ThemeBootstrap4:class extends rs{init(){this.useToggleEvents=!1}getAddPropertyButton(e){const t=super.getAddPropertyButton(e);return t.classList.add("btn-primary"),t.classList.add("btn-block"),t}getCollapseToggle(e){const t=super.getCollapseToggle(e);return t.setAttribute("href","#"+e.collapseId),t.setAttribute("data-toggle","collapse"),t.setAttribute("always-enabled",""),t}getCollapse(e){const t=super.getCollapse(e);return t.classList.add("collapse"),e.startCollapsed||t.classList.add("show"),t}getJsonData(e){const t=super.getJsonData(e);return t.control.classList.add("form-group"),t.input.classList.add("form-control"),t.saveBtn.classList.add("btn-primary"),t.saveBtn.classList.add("btn-block"),t}getFieldset(){const e=document.createElement("fieldset");return e.setAttribute("role","group"),e.classList.add("card"),e.classList.add("mb-3"),e}getLegend(e){const t=super.getLegend(e),{legend:s}=t;return s.classList.add("card-header"),s.classList.add("d-flex"),s.classList.add("justify-content-between"),s.classList.add("align-items-center"),s.classList.add("float-left"),s.classList.add("py-2"),t}getLabel(e){const t=super.getLabel(e);return t.icon.classList&&t.icon.classList.add("mr-1"),t}getCard(){const e=super.getCard();return e.classList.add("card"),e.classList.add("mb-3"),e}getCardHeader(e){const t=super.getCardHeader(e);return t.classList.add("card-header"),t.classList.add("d-flex"),t.classList.add("justify-content-end"),t.classList.add("align-items-center"),t.classList.add("py-1"),t}getCardBody(){const e=super.getCardBody();return e.classList.add("card-body"),e.classList.add("pb-0"),e}getBtnGroup(){const e=super.getBtnGroup();return e.classList.add("btn-group"),e}getButton(e){const t=super.getButton(e);return t.classList.add("btn"),t.classList.add("btn-sm"),t}getDescription(e){const t=super.getDescription(e);return t.classList.add("text-muted"),t.classList.add("fs-sm"),t.classList.add("mb-1"),t}getPropertiesGroup(e={}){const t=super.getPropertiesGroup(e);return t.group.classList.add("pl-3"),t.name.classList.add("mb-3"),t.container.classList.add("mb-4"),t}getTextareaControl(e){const t=super.getTextareaControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableTextareaControl(e){super.adaptForTableTextareaControl(e),e.container.classList.remove("form-group")}getInputControl(e){const t=super.getInputControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}getInputRangeControl(e){const t=super.getInputRangeControl(e),{container:s,input:i,label:n}=t;return s.classList.add("form-group"),i.classList.add("custom-range"),i.classList.remove("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableInputControl(e,t){super.adaptForTableInputControl(e,t),e.container.classList.remove("form-group")}getRadiosControl(e){const t=super.getRadiosControl(e),{container:s,fieldset:i,radios:n,labels:a,labelTexts:r,radioControls:o,description:l,messages:d}=t;return s.classList.add("form-group"),o.forEach((t,s)=>{t.classList.add("form-check"),n[s].classList.add("form-check-input"),a[s].classList.add("form-check-label"),e.inline&&t.classList.add("form-check-inline"),i.appendChild(o[s]),t.appendChild(n[s]),t.appendChild(a[s]),a[s].appendChild(r[s])}),i.appendChild(l),i.appendChild(d),t}adaptForTableRadiosControl(e,t){super.adaptForTableRadiosControl(e,t),e.container.classList.remove("form-group"),e.fieldset.classList.remove("card"),e.fieldset.style.marginBottom="0"}getCheckboxesControl(e){const t=super.getCheckboxesControl(e),{checkboxes:s,labels:i,checkboxControls:n}=t;return n.forEach((t,n)=>{t.classList.add("form-group"),t.classList.add("form-check"),s[n].classList.add("form-check-input"),i[n].classList.add("form-check-label"),e.inline&&t.classList.add("form-check-inline")}),t}adaptForTableCheckboxesControl(e,t){super.adaptForTableCheckboxesControl(e,t),e.container.classList.remove("form-group"),e.fieldset.classList.remove("card"),e.fieldset.classList.remove("mb-3"),e.body.classList.remove("card-body"),e.body.classList.remove("card-body")}getCheckboxControl(e){const t=super.getCheckboxControl(e),{container:s,formGroup:i,input:n,label:a,info:r,description:o,messages:l}=t;return s.classList.add("form-group"),i.classList.add("form-check"),n.classList.add("form-check-input"),a.classList.add("form-check-label"),s.appendChild(i),i.appendChild(n),i.appendChild(a),f(e.info)&&a.appendChild(r.container),s.appendChild(o),s.appendChild(l),t}adaptForTableCheckboxControl(e,t){super.adaptForTableCheckboxControl(e,t),e.container.classList.remove("form-group"),e.formGroup.classList.remove("form-check"),e.input.classList.remove("form-check-input"),e.label.classList.remove("form-check-label")}getSelectControl(e){const t=super.getSelectControl(e),{container:s,input:i}=t;return s.classList.add("form-group"),i.classList.add("form-control"),t}adaptForTableSelectControl(e,t){super.adaptForTableSelectControl(e,t),e.container.classList.remove("form-group")}adaptForTableMultipleControl(e,t){super.adaptForTableMultipleControl(e,t),e.container.classList.remove("mb-3")}getAlert(e){const t=super.getAlert(e);return t.classList.add("alert"),t.classList.add("alert-danger"),t}getErrorFeedback(e){const t=super.getErrorFeedback(e);return t.classList.add("text-danger"),t.classList.add("form-text"),t.classList.add("d-block"),t}getWarningFeedback(e){const t=super.getWarningFeedback(e);return t.classList.add("text-warning"),t.classList.add("form-text"),t.classList.add("d-block"),t}getColumnClass(e,t){return"col-"+e+"-"+t}getRow(){const e=super.getRow();return e.classList.add("row"),e}getCol(e,t,s,i,n){const a=super.getCol(e,s,n);return a.classList.add("col-"+e),a.classList.add("col-sm"+t),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("offset-md-"+n),a}getTabList(e){const t=super.getTabList();return t.classList.add("nav"),"horizontal"===e.variant?t.classList.add("nav-tabs"):(t.classList.add("nav-pills"),t.classList.add("flex-column")),t}getTab(e){const t=super.getTab(e);return t.list.classList.add("nav-item"),t.list.classList.add("mb-3"),t.text.classList.add("ml-3"),t.link.classList.add("nav-link"),t.link.setAttribute("data-toggle","tab"),e.active&&t.link.classList.add("active"),t}getTable(){const e=document.createElement("div"),t=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return e.classList.add("table-responsive"),t.classList.add("table"),t.classList.add("table-borderless"),t.classList.add("table-sm"),t.classList.add("align-middle"),t.appendChild(s),t.appendChild(i),e.appendChild(t),{container:e,table:t,thead:s,tbody:i}}setTabPaneAttributes(e,t,s){super.setTabPaneAttributes(e,t,s),e.classList.add("tab-pane"),t&&e.classList.add("active")}infoAsModal(e,t,s={}){const i=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),l=document.createElement("div"),d=this.getButton({content:"Close",icon:"close"}),c=t+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",c),d.setAttribute("data-dismiss","modal"),d.setAttribute("always-enabled",""),e.info.setAttribute("data-toggle","modal"),e.info.setAttribute("data-target","#"+c),e.container.classList.add("ml-1"),i.classList.add("modal"),i.classList.add("fade"),n.classList.add("modal-dialog"),a.classList.add("modal-content"),r.classList.add("modal-header"),o.classList.add("modal-title"),l.classList.add("modal-body"),d.classList.add("jedi-modal-close"),d.classList.add("close"),p(s.title)&&(o.innerHTML=s.title),p(s.content)&&(l.innerHTML=s.content),e.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(o),r.appendChild(d),a.appendChild(l)}visuallyHidden(e){e.classList.add("sr-only")}visuallyVisible(e){e.classList.remove("sr-only")}},ThemeBootstrap5:class extends rs{init(){this.useToggleEvents=!1}getAddPropertyButton(e){const t=super.getAddPropertyButton(e);return t.classList.add("btn-primary"),t.classList.add("w-100"),t}getCollapseToggle(e){const t=super.getCollapseToggle(e);return t.setAttribute("href","#"+e.collapseId),t.setAttribute("data-bs-toggle","collapse"),t.setAttribute("always-enabled",""),t}getCollapse(e){const t=super.getCollapse(e);return t.classList.add("collapse"),e.startCollapsed||t.classList.add("show"),t}getJsonData(e){const t=super.getJsonData(e);return t.control.classList.add("mb-3"),t.input.classList.add("form-control"),t.saveBtn.classList.add("btn-primary"),t.saveBtn.classList.add("w-100"),t}getFieldset(){const e=document.createElement("fieldset");return e.setAttribute("role","group"),e.classList.add("card"),e.classList.add("mb-3"),e}getLegend(e){const t=super.getLegend(e),{legend:s}=t;return s.classList.add("card-header"),s.classList.add("d-flex"),s.classList.add("justify-content-between"),s.classList.add("align-items-center"),s.classList.add("py-2"),t}getLabel(e){const t=super.getLabel(e);return t.icon.classList&&t.icon.classList.add("me-1"),t}getCard(){const e=super.getCard();return e.classList.add("card"),e.classList.add("mb-3"),e}getCardHeader(e){const t=super.getCardHeader(e);return t.classList.add("card-header"),t.classList.add("d-flex"),t.classList.add("justify-content-end"),t.classList.add("align-items-center"),t.classList.add("py-1"),t}getCardBody(){const e=super.getCardBody();return e.classList.add("card-body"),e.classList.add("pb-0"),e}getControlSlot(){const e=super.getControlSlot();return e.classList.add("mb-3"),e}getBtnGroup(){const e=super.getBtnGroup();return e.classList.add("btn-group"),e}getButton(e){const t=super.getButton(e);return t.classList.add("btn"),t.classList.add("btn-sm"),t}getDescription(e){const t=super.getDescription(e);return t.classList.add("text-muted"),t.classList.add("mb-1"),t}getPropertiesGroup(e={}){const t=super.getPropertiesGroup(e);return t.group.classList.add("ps-3"),t.container.classList.add("mb-4"),t}getTextareaControl(e){const t=super.getTextareaControl(e),{container:s,input:i,label:n}=t;return s.classList.add("mb-3"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableTextareaControl(e){super.adaptForTableTextareaControl(e),e.container.classList.remove("mb-3")}getInputControl(e){const t=super.getInputControl(e),{container:s,input:i,label:n}=t;return s.classList.add("mb-3"),i.classList.add("form-control"),e.titleHidden&&this.visuallyHidden(n),t}getInputRangeControl(e){const t=super.getInputRangeControl(e),{container:s,input:i,label:n}=t;return s.classList.add("mb-3"),i.classList.add("form-range"),i.classList.remove("form-control"),e.titleHidden&&this.visuallyHidden(n),t}adaptForTableInputControl(e,t){super.adaptForTableInputControl(e,t),e.container.classList.remove("mb-3")}getRadiosControl(e){const t=super.getRadiosControl(e),{container:s,fieldset:i,radios:n,labels:a,labelTexts:r,radioControls:o,description:l,messages:d}=t;return s.classList.add("mb-3"),o.forEach((t,s)=>{t.classList.add("form-check"),n[s].classList.add("form-check-input"),a[s].classList.add("form-check-label"),e.inline&&t.classList.add("form-check-inline"),i.appendChild(o[s]),t.appendChild(n[s]),t.appendChild(a[s]),a[s].appendChild(r[s])}),i.appendChild(l),i.appendChild(d),t}adaptForTableRadiosControl(e,t){super.adaptForTableRadiosControl(e,t),e.container.classList.remove("mb-3"),e.fieldset.classList.remove("card"),e.fieldset.style.marginBottom="0"}getCheckboxesControl(e){const t=super.getCheckboxesControl(e),{checkboxes:s,labels:i,checkboxControls:n}=t;return n.forEach((t,n)=>{t.classList.add("mb-3"),t.classList.add("form-check"),s[n].classList.add("form-check-input"),i[n].classList.add("form-check-label"),e.inline&&t.classList.add("form-check-inline")}),t}getCheckboxControl(e){const t=super.getCheckboxControl(e),{container:s,formGroup:i,input:n,label:a,info:r,description:o,messages:l}=t;return s.classList.add("mb-3"),i.classList.add("form-check"),n.classList.add("form-check-input"),a.classList.add("form-check-label"),e.titleHidden&&this.visuallyHidden(a),s.appendChild(i),i.appendChild(n),i.appendChild(a),f(e.info)&&a.appendChild(r.container),s.appendChild(o),s.appendChild(l),t}adaptForTableCheckboxControl(e,t){super.adaptForTableCheckboxControl(e,t),e.container.classList.remove("mb-3"),e.formGroup.classList.remove("form-check")}getSelectControl(e){const t=super.getSelectControl(e),{container:s,input:i}=t;return s.classList.add("mb-3"),i.classList.add("form-select"),t}adaptForTableSelectControl(e,t){super.adaptForTableSelectControl(e,t),e.container.classList.remove("mb-3")}adaptForTableMultipleControl(e,t){super.adaptForTableMultipleControl(e,t),e.container.classList.remove("mb-3")}getAlert(e){const t=super.getAlert(e);return t.classList.add("alert"),t.classList.add("alert-danger"),t}getErrorFeedback(e){const t=super.getErrorFeedback(e);return t.classList.add("text-danger"),t.classList.add("d-block"),t.classList.add("form-text"),t}getWarningFeedback(e){const t=super.getWarningFeedback(e);return t.classList.add("text-warning"),t.classList.add("d-block"),t.classList.add("form-text"),t}getRow(){const e=super.getRow();return e.classList.add("row"),e}getCol(e,t,s,i,n){const a=super.getCol(e,s,n);return a.classList.add("col-"+e),a.classList.add("col-sm"+t),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("offset-md-"+n),a}getTabList(e){const t=super.getTabList(e);return t.classList.add("nav"),"horizontal"===e.variant?t.classList.add("nav-tabs"):(t.classList.add("nav-pills"),t.classList.add("flex-column")),t}getTab(e){const t=super.getTab(e);return t.list.classList.add("nav-item"),t.list.classList.add("mb-3"),t.text.classList.add("ms-3"),t.link.classList.add("nav-link"),t.link.setAttribute("data-bs-toggle","tab"),e.active&&t.link.classList.add("active"),t}getTable(){const e=document.createElement("div"),t=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return e.classList.add("table-responsive"),t.classList.add("table"),t.classList.add("table-borderless"),t.classList.add("table-sm"),t.classList.add("align-middle"),t.appendChild(s),t.appendChild(i),e.appendChild(t),{container:e,table:t,thead:s,tbody:i}}setTabPaneAttributes(e,t,s){super.setTabPaneAttributes(e,t,s),e.classList.add("tab-pane"),t&&e.classList.add("active")}infoAsModal(e,t,s={}){const i=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),l=document.createElement("div"),d=this.getButton({content:"Close",icon:"close"}),c=t+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",c),d.setAttribute("data-bs-dismiss","modal"),d.setAttribute("always-enabled",""),e.info.setAttribute("data-bs-toggle","modal"),e.info.setAttribute("data-bs-target","#"+c),e.container.classList.add("ms-1"),i.classList.add("modal"),i.classList.add("fade"),n.classList.add("modal-dialog"),a.classList.add("modal-content"),r.classList.add("modal-header"),o.classList.add("modal-title"),l.classList.add("modal-body"),d.classList.add("jedi-modal-close"),p(s.title)&&(o.innerHTML=s.title),p(s.content)&&(l.innerHTML=s.content),e.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(o),r.appendChild(d),a.appendChild(l)}visuallyHidden(e){e.classList.add("visually-hidden")}visuallyVisible(e){e.classList.remove("visually-hidden")}},RefParser:class{constructor(e={}){this.options=Object.assign({detectRecursion:!0},e),this.refs={},this.data={},this.iterations=0,this.maxIterations=1e3,this.cycles=[],this.walker=new ns}async dereference(e){for(await this.collectRefs(e);this.iterations<this.maxIterations&&!this.refsResolved();)this.iterations++,await this.collectRefs(e);const t=Object.entries(this.refs).filter(([e,t])=>null===t).map(([e])=>e);t.length&&console.warn("Missing refs:",JSON.stringify(t)),this.options.detectRecursion&&(this.cycles=this.findRecursiveRefs(this.refs),this.markRecursiveSchemas())}refsResolved(){return Object.values(this.refs).every(e=>null!==e)}async collectRefs(e,t="#"){if("object"==typeof e&&null!==e)for(const[s,i]of Object.entries(e)){const n=t?`${t}/${s}`:`/${s}`;if(this.hasRef(e)){const t=e.$ref;if(this.isExternalRef(t)){const e=await this.load(t);this.refs[t]=e,await this.collectRefs(e,n)}else this.refs[t]=this.data[t]??null}this.data[t]=e,await this.collectRefs(i,n)}}hasRef(e){return void 0!==e.$ref&&"string"==typeof e.$ref}isExternalRef(e){return"string"==typeof e&&(e.startsWith("http")||e.startsWith("https"))}isObject(e){return null!==e&&"object"==typeof e}findRecursiveRefs(e){const t=new Set;function s(i,n,a){if(n.has(i)){const e=a.indexOf(i);if(-1!==e){const s=a.slice(e).concat(i),n=s.reduce((e,t,i)=>t<s[e]?i:e,0),r=[...s.slice(n),...s.slice(0,n)].join(" → ");t.add(r)}return}e[i]&&(n.add(i),a.push(i),function e(t){if("object"==typeof t&&null!==t){t.$ref&&s(t.$ref,n,a);for(const s in t)e(t[s])}}(e[i]),n.delete(i),a.pop())}for(const i in e)s(i,new Set,[]);return[...t]}hasRefCycles(){return this.options.detectRecursion&&this.cycles.length>0}markRecursiveSchemas(){const e=new Set;this.cycles.forEach(t=>{t.split(" → ").forEach(t=>e.add(t))});for(const t of Object.values(this.data))t&&t.$ref&&e.has(t.$ref)&&(t["x-recursive"]=!0)}expand(e){const t=JSON.parse(JSON.stringify(e));if(this.isObject(t)&&this.hasRef(t)){const e=t.$ref;return delete t.$ref,this.expand(v({},this.refs[e],t))}return t}expandRecursive(e){let t=!0;for(;t;)t=!1,this.walker.traverse(e,(e,s,i,n)=>{e.$ref&&"string"==typeof e.$ref&&i&&null!==n&&(i[n]=this.expand(e),t=!0)})}async load(e){try{const t=await fetch(e);if(!t.ok)throw new Error("Network response was not ok");return await t.json()}catch(t){throw console.error("Error loading",e,t),t}}},Create:as,SchemaGenerator:class{static inferType(e){return Array.isArray(e)?"array":null===e?"null":typeof e}static generate(e){if("object"!=typeof e||null===e)return{type:this.inferType(e)};if(Array.isArray(e)){const t=e.map(e=>this.generate(e));return{type:"array",items:t.length?t[0]:{}}}const t={};for(const s in e)t[s]=this.generate(e[s]);return{type:"object",properties:t}}}};module.exports=os;
2
2
  //# sourceMappingURL=jedison.cjs.map