jedison 1.16.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";function t(e){if(null===e||"object"!=typeof e)return e;if(Array.isArray(e)){const s=e.length,i=new Array(s);for(let n=0;n<s;n++){const s=e[n];i[n]=null===s||"object"!=typeof s?s:t(s)}return i}const s=Object.keys(e),i={};for(let n=0,a=s.length;n<a;n++){const a=s[n],r=e[a],o=null===r||"object"!=typeof r?r:t(r);"__proto__"===a?Object.defineProperty(i,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):i[a]=o}return i}function e(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s(t,s,i){return t.replace(new RegExp(e(s),"g"),i)}function i(t){return s(s(t,"#","root"),"/","-").replace(/[^a-zA-Z0-9_-]/g,"")}function n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function a(t){return Object.keys(t).sort().reduce((e,s)=>(e[s]=t[s],e),{})}function r(t,e){if(t===e)return!0;if(null===t||null===e||"object"!=typeof t||"object"!=typeof e)return!1;const s=Array.isArray(t);if(s!==Array.isArray(e))return!1;if(s){const s=t.length;if(s!==e.length)return!1;for(let i=0;i<s;i++)if(!r(t[i],e[i]))return!1;return!0}const i=Object.keys(t),n=Object.keys(e);if(i.length!==n.length)return!1;for(let a=0,o=i.length;a<o;a++){const s=i[a];if(!Object.prototype.hasOwnProperty.call(e,s))return!1;if(!r(t[s],e[s]))return!1}return!0}function o(t,e){return!r(t,e)}function l(t){return null===t}function c(t){return void 0!==t}function d(t){return void 0===t}function h(t){return"number"==typeof t}function p(t){return h(t)&&t===Math.floor(t)}function u(t){return"string"==typeof t}function m(t){return"boolean"==typeof t}function g(t){return Array.isArray(t)}function f(t){return!l(t)&&!g(t)&&"object"==typeof t}function b(t){let e="any";return h(t)?e=p(t)?"integer":"number":u(t)?e="string":m(t)?e="boolean":g(t)?e="array":l(t)?e="null":f(t)&&(e="object"),e}const v=["id","class","title","name","value","disabled","always-enabled","always-disabled"],y=["aria-","data-"];const C=new Set(["__proto__","constructor","prototype"]);function E(t,...e){if(!e.length)return t;const s=e.shift();return f(t)&&f(s)&&Object.keys(s).forEach(e=>{C.has(e)||(f(s[e])?(t[e]||Object.assign(t,{[e]:{}}),E(t[e],s[e])):Object.assign(t,{[e]:s[e]}))}),E(t,...e)}function L(t,...e){if(!e.length)return t;const s=e.shift();return Array.isArray(t)&&Array.isArray(s)?t.push(...s):f(t)&&f(s)&&Object.keys(s).forEach(e=>{C.has(e)||(f(s[e])?(f(t[e])||Object.assign(t,{[e]:{}}),L(t[e],s[e])):Array.isArray(s[e])?(Array.isArray(t[e])||(t[e]=[]),t[e].push(...s[e])):Object.assign(t,{[e]:s[e]}))}),L(t,...e)}const x=(t,e)=>(Object.keys(e).forEach(s=>{s in t&&c(t[s])&&c(e[s])&&(f(t[s])&&f(e[s])||g(t[s])&&g(e[s])||u(t[s])&&u(e[s])||h(t[s])&&h(e[s])||m(t[s])&&m(e[s])||l(t[s])&&l(e[s]))&&(f(t[s])&&f(e[s])?x(t[s],e[s]):t[s]=e[s])}),t);function I(t,e){const s=e.split(".");let i=t;for(const a of s)if(Array.isArray(i)&&/^\d+$/.test(a)){const t=parseInt(a);if(!(t>=0&&t<i.length))return;i=i[t]}else{if(!n(i,a))return;i=i[a]}return i}function A(t,e){return t.replace(/{{(.*?)}}/g,(t,s)=>{const i=(s=s.trim()).indexOf("||");let n,a;if(-1!==i){n=s.slice(0,i).trim();a=s.slice(i+2).trim().replace(/^['"]|['"]$/g,"")}else n=s,a="";const r=I(e,n);return null!=r?r:a})}function w(t,e,s){return Math.max(e,Math.min(t,s))}function S(t){const e=[],s=new Set;for(const i of t){const t=JSON.stringify(i);s.has(t)||(s.add(t),e.push(i))}return e}function j(t,e){if(e.startsWith("#"))return e;const s=t.split("/");s.pop();for(const i of e.split("/"))".."===i?s.length>1&&s.pop():"."!==i&&""!==i&&s.push(i);return s.join("/")}function T(t){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let s="";for(let i=0;i<t;i++){s+=e[Math.floor(62*Math.random())]}return s}const O={clone:t,escapeRegExp:e,replaceAll:s,pathToAttribute:i,hasOwn:n,sortObject:a,equal:r,different:o,isNull:l,isSet:c,notSet:d,isNumber:h,isInteger:p,isString:u,isBoolean:m,isArray:g,isObject:f,getType:b,mergeDeep:E,combineDeep:L,overwriteExistingProperties:x,getValueByJSONPath:I,compileTemplate:A,clamp:w,removeDuplicatesFromArray:S,generateRandomID:T},k={enforceEnumDefault:"enforceEnum"};function D(t,e){return t["x-"+e]}function M(e){return f(e.additionalProperties)||m(e.additionalProperties)?t(e.additionalProperties):void 0}function P(e){return f(e.propertyNames)||m(e.propertyNames)?t(e.propertyNames):void 0}function F(e){return g(e.allOf)?t(e.allOf):void 0}function H(e){return g(e.anyOf)?t(e.anyOf):void 0}function V(e){return t(e.const)}function B(e){return f(e.contains)||m(e.contains)?t(e.contains):void 0}function R(e){return t(e.default)}function z(e){return f(e.dependentRequired)?t(e.dependentRequired):void 0}function q(e){return f(e.dependentSchemas)?t(e.dependentSchemas):void 0}function N(e){return u(e.description)?t(e.description):void 0}function U(e){return f(e.else)||m(e.else)?t(e.else):void 0}function W(e){if(g(e.enum)&&e.enum.length>0)return t(e.enum)}function J(e){return h(e.exclusiveMaximum)?t(e.exclusiveMaximum):void 0}function $(t){return h(t.exclusiveMinimum)?t.exclusiveMinimum:void 0}function _(e){return u(e.format)?t(e.format):void 0}function G(e){return f(e.if)||m(e.if)?t(e.if):void 0}function K(e){return f(e.items)||m(e.items)?t(e.items):void 0}function Z(e){return h(e.maximum)?t(e.maximum):void 0}function Q(e){if(p(e.maxContains)&&e.maxContains>=0)return t(e.maxContains)}function X(e){if(p(e.maxItems)&&e.maxItems>=0)return t(e.maxItems)}function Y(e){if(p(e.maxLength)&&e.maxLength>=0)return t(e.maxLength)}function tt(e){if(p(e.maxProperties))return t(e.maxProperties)}function et(e){return h(e.minimum)?t(e.minimum):void 0}function st(e){if(p(e.minContains)&&e.minContains>=0)return t(e.minContains)}function it(e){if(p(e.minItems)&&e.minItems>=0)return t(e.minItems)}function nt(e){if(p(e.minLength)&&e.minLength>=0)return t(e.minLength)}function at(e){if(p(e.minProperties)&&e.minProperties>=0)return t(e.minProperties)}function rt(e){if(h(e.multipleOf)&&e.multipleOf>=0)return t(e.multipleOf)}function ot(e){return f(e.not)||m(e.not)?t(e.not):void 0}function lt(t,e){const s="x-"+e;if(c(t[s]))return t[s];if(t["x-options"]&&c(t["x-options"][e]))return t["x-options"][e];if("switcherInput"===e&&!0===t["x-embedSwitcher"])return console.warn('Jedison: schema option "x-embedSwitcher" is deprecated. Use "x-switcherInput: \'select-inline\'" instead.'),"select-inline";for(const i of function(t){return Object.keys(k).filter(e=>k[e]===t)}(e)){const n="x-"+i;if(c(t[n]))return console.warn(`Jedison: schema option "${n}" is deprecated. Use "${s}" instead.`),t[n];if(t["x-options"]&&c(t["x-options"][i]))return console.warn(`Jedison: schema x-options.${i} is deprecated. Use x-options.${e} instead.`),t["x-options"][i]}}function ct(e){return u(e.pattern)?t(e.pattern):void 0}function dt(e){return f(e.patternProperties)?t(e.patternProperties):void 0}function ht(e){return g(e.prefixItems)?t(e.prefixItems):void 0}function pt(e){return f(e.properties)?t(e.properties):void 0}function ut(e){return m(e.readOnly)?t(e.readOnly):void 0}function mt(t){return g(t.required)?[...new Set(t.required)]:void 0}function gt(e){return f(e.then)||m(e.then)?t(e.then):void 0}function ft(e){return u(e.title)?t(e.title):void 0}function bt(e){if(u(e.type)||g(e.type))return t(e.type)}function vt(e){return g(e.oneOf)?t(e.oneOf):void 0}function yt(e){return m(e.unevaluatedProperties)?t(e.unevaluatedProperties):void 0}function Ct(e){return m(e.uniqueItems)?t(e.uniqueItems):void 0}const Et={getSchemaX:D,getSchemaSchema:function(e){return u(e.$schema)?t(e.$schema):void 0},getSchemaAdditionalProperties:M,getSchemaPropertyNames:P,getSchemaAllOf:F,getSchemaAnyOf:H,getSchemaConst:V,getSchemaContains:B,getSchemaDefault:R,getSchemaDependentRequired:z,getSchemaDependentSchemas:q,getSchemaDescription:N,getSchemaElse:U,getSchemaEnum:W,getSchemaExclusiveMaximum:J,getSchemaExclusiveMinimum:$,getSchemaFormat:_,getSchemaIf:G,getSchemaItems:K,getSchemaMaximum:Z,getSchemaMaxContains:Q,getSchemaMaxItems:X,getSchemaMaxLength:Y,getSchemaMaxProperties:tt,getSchemaMinimum:et,getSchemaMinContains:st,getSchemaMinItems:it,getSchemaMinLength:nt,getSchemaMinProperties:at,getSchemaMultipleOf:rt,getSchemaNot:ot,getSchemaXOption:lt,getSchemaPattern:ct,getSchemaPatternProperties:dt,getSchemaPrefixItems:ht,getSchemaProperties:pt,getSchemaReadOnly:ut,getSchemaRequired:mt,getSchemaThen:gt,getSchemaTitle:ft,getSchemaType:bt,getSchemaOneOf:vt,getSchemaUnevaluatedProperties:yt,getSchemaUniqueItems:Ct};function Lt(t){let e=[];const s=F(t.schema);if(c(s)){if(lt(t.schema,"subErrors")??t.validator.subErrors){const i=[];s.forEach((e,s)=>{const n=t.validator.getErrors(t.value,e,t.key,t.path);n.length>0&&i.push({schemaIndex:s,errors:n})}),i.length>0&&e.push({type:"error",path:t.path,constraint:"allOf",subErrors:i})}else s.forEach(s=>{const i=t.validator.getErrors(t.value,s,t.key,t.path);i.forEach(e=>{e.path=t.path}),e.push(...i)}),e=S(e)}return e}function xt(t){const e=[],s=nt(t.schema);if(u(t.value)&&c(s)){t.value=t.value.replace(/[\uDCA9]/g,"");t.value.length<s&&e.push({type:"error",path:t.path,constraint:"minLength",messages:[A(t.translator.translate("errorMinLength"),{minLength:s})]})}return e}function It(t){const e=[],s=H(t.schema);if(c(s)){const i=lt(t.schema,"subErrors")??t.validator.subErrors;let n=!1;if(i){const i=[];s.forEach((e,s)=>{const a=t.validator.getErrors(t.value,e,t.key,t.path);0===a.length&&(n=!0),i.push({schemaIndex:s,errors:a})}),n||e.push({type:"error",path:t.path,constraint:"anyOf",messages:[t.translator.translate("errorAnyOf")],subErrors:i.filter(t=>t.errors.length>0)})}else{for(const e of s){if(0===t.validator.getErrors(t.value,e,t.key,t.path).length){n=!0;break}}n||e.push({type:"error",path:t.path,constraint:"anyOf",messages:[t.translator.translate("errorAnyOf")]})}}return e}function At(t){const e=[],s=W(t.schema);if(c(s)){!s.some(e=>JSON.stringify(t.value)===JSON.stringify(e))&&e.push({type:"error",path:t.path,constraint:"enum",messages:[A(t.translator.translate("errorEnum"),{enum:JSON.stringify(s)})]})}return e}function wt(t){const e=[],s=J(t.schema);if(h(t.value)&&c(s)){t.value>=s&&e.push({type:"error",path:t.path,constraint:"exclusiveMaximum",messages:[A(t.translator.translate("errorExclusiveMaximum"),{exclusiveMaximum:s})]})}return e}function St(t){const e=[],s=$(t.schema);if(h(t.value)&&c(s)){t.value<=s&&e.push({type:"error",path:t.path,constraint:"exclusiveMinimum",messages:[A(t.translator.translate("errorExclusiveMinimum"),{exclusiveMinimum:s})]})}return e}function jt(t){const e=[],s=_(t.schema),i=lt(t.schema,"assertFormat"),n=void 0!==i?i:t.validator.assertFormat;if(c(s)&&u(t.value)&&n){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));c(i)&&!i.test(t.value)&&e.push({type:"error",path:t.path,constraint:"format",messages:[A(t.translator.translate("errorFormat"),{format:s})]})}return e}function Tt(t){const e=[],s=K(t.schema),i=ht(t.schema);if(g(t.value)&&c(s)){const n=c(i)?i.length:0;if(!1===s&&t.value.length>0&&t.value.length>n)e.push({type:"error",path:t.path,constraint:"items",messages:[t.translator.translate("errorItems")]});else if(f(s)){const i=lt(t.schema,"subErrors")??t.validator.subErrors;t.value.slice(n).forEach((a,r)=>{const o=n+r,l=t.validator.getErrors(a,s,o,t.path+"/"+o);if(l.length>0){const s={type:"error",path:t.path,constraint:"items",messages:[A(t.translator.translate("errorItems"),{index:o})]};i&&(s.subErrors=l),e.push(s)}})}}return e}function Ot(t){const e=[],s=X(t.schema);if(g(t.value)&&c(s)){t.value.length>s&&e.push({type:"error",path:t.path,constraint:"maxItems",messages:[A(t.translator.translate("errorMaxItems"),{maxItems:s})]})}return e}function kt(t){const e=[],s=Y(t.schema);if(u(t.value)&&c(s)){t.value=t.value.replace(/[\uDCA9]/g,"");t.value.length>s&&e.push({type:"error",path:t.path,constraint:"maxLength",messages:[A(t.translator.translate("errorMaxLength"),{maxLength:s})]})}return e}function Dt(t){const e=[],s=tt(t.schema);if(f(t.value)&&c(s)){Object.keys(t.value).length>s&&e.push({type:"error",path:t.path,constraint:"maxProperties",messages:[A(t.translator.translate("errorMaxProperties"),{maxProperties:s})]})}return e}function Mt(t){const e=[],s=et(t.schema);if(h(t.value)&&c(s)){t.value<s&&e.push({type:"error",path:t.path,constraint:"minimum",messages:[A(t.translator.translate("errorMinimum"),{minimum:s})]})}return e}function Pt(t){const e=[],s=it(t.schema);if(g(t.value)&&c(s)){t.value.length<s&&e.push({type:"error",path:t.path,constraint:"minItems",messages:[A(t.translator.translate("errorMinItems"),{minItems:s})]})}return e}function Ft(t){const e=[],s=at(t.schema);if(f(t.value)&&c(s)){Object.keys(t.value).length<s&&e.push({type:"error",path:t.path,constraint:"minProperties",messages:[A(t.translator.translate("errorMinProperties"),{minProperties:s})]})}return e}function Ht(t){const e=[],s=rt(t.schema);if(h(t.value)&&c(s)){if(0===t.value)return e;(!(t.value/s===Math.floor(t.value/s))||t.value.toString().includes("e"))&&e.push({type:"error",path:t.path,constraint:"multipleOf",messages:[A(t.translator.translate("errorMultipleOf"),{multipleOf:s})]})}return e}function Vt(t){const e=[],s=ot(t.schema);if(c(s)){0===t.validator.getErrors(t.value,s,t.key,t.path).length&&e.push({type:"error",path:t.path,constraint:"not",messages:[A(t.translator.translate("errorNot"))]})}return e}function Bt(t){const e=[],s=vt(t.schema);if(c(s)){let i=0;if(lt(t.schema,"subErrors")??t.validator.subErrors){const n=[];if(s.forEach((e,s)=>{const a=t.validator.getErrors(t.value,e,t.key,t.path);0===a.length?(i++,n.push({schemaIndex:s,matched:!0,errors:[]})):n.push({schemaIndex:s,matched:!1,errors:a})}),1!==i){const s={type:"error",path:t.path,constraint:"oneOf",messages:[A(t.translator.translate("errorOneOf"),{counter:i})]};0===i?s.subErrors=n.filter(t=>!t.matched).map(t=>({schemaIndex:t.schemaIndex,errors:t.errors})):s.matchingSchemas=n.filter(t=>t.matched).map(t=>t.schemaIndex),e.push(s)}}else{const n=[];if(s.forEach((e,s)=>{0===t.validator.getErrors(t.value,e,t.key,t.path).length&&(i++,n.push(s))}),1!==i){const s={type:"error",path:t.path,constraint:"oneOf",messages:[A(t.translator.translate("errorOneOf"),{counter:i})]};i>0&&(s.matchingSchemas=n),e.push(s)}}}return e}function Rt(t){const e=[],s=ct(t.schema);if(u(t.value)&&c(s)){!new RegExp(s).test(t.value)&&e.push({type:"error",path:t.path,constraint:"pattern",messages:[A(t.translator.translate("errorPattern"),{pattern:s})]})}return e}function zt(t){let e=[];const s=dt(t.schema);return f(t.value)&&c(s)&&Object.keys(t.value).forEach(i=>{Object.keys(s).forEach(n=>{if(new RegExp(n).test(i)){const a=s[n],r=t.validator.getErrors(t.value[i],a,i,t.path+"/"+i).map(e=>({type:"error",path:t.path+"/"+i,constraint:"patternProperties",messages:e.messages}));e=[...e,...r]}})}),e}function qt(t){const e=pt(t.schema),s=[],i=lt(t.schema,"subErrors")??t.validator.subErrors,a=[];if(f(t.value)&&c(e)&&Object.keys(e).forEach(r=>{if(n(t.value,r)){const n=e[r],o=t.validator.getErrors(t.value[r],n,r,t.path+"/"+r);o.length>0&&(s.push(r),i&&a.push({property:r,errors:o}))}}),s.length>0){const e={type:"error",path:t.path,constraint:"properties",messages:[A(t.translator.translate("errorProperties"),{properties:s.join(", ")})]};return i&&(e.subErrors=a),[e]}return[]}function Nt(t){const e=[],s=mt(t.schema);if(f(t.value)&&c(s)){const i=[],n=Object.keys(t.value);s.forEach(t=>{n.includes(t)||i.push(t)});i.length>0&&e.push({type:"error",path:t.path,constraint:"required",messages:[A(t.translator.translate("errorRequired"),{required:i.join(", ")})]})}return e}function Ut(t){const e=[],s=bt(t.schema);if("any"===s)return e;if(c(s)){const i={string:t=>u(t),number:t=>h(t),integer:t=>p(t),boolean:t=>m(t),array:t=>g(t),object:t=>f(t),null:t=>l(t)};let n=!0;n=g(s)?s.some(e=>i[e](t.value)):i[s](t.value),n||e.push({type:"error",path:t.path,constraint:"type",messages:[A(t.translator.translate("errorType"),{type:s,valueType:b(t.value)})]})}return e}function Wt(t){const e=[],s=Z(t.schema);if(h(t.value)&&c(s)){t.value>s&&e.push({type:"error",path:t.path,constraint:"maximum",messages:[A(t.translator.translate("errorMaximum"),{maximum:s})]})}return e}function Jt(t){const e=[],s=Ct(t.schema);if(g(t.value)&&c(s)&&!0===s){const s=[];let i=!1;for(let e=0;e<t.value.length;e++){let n=t.value[e];f(n)&&(n=a(n));const r=JSON.stringify(n);if(i=s.some(t=>t===r),i)break;s.push(r)}i&&e.push({type:"error",path:t.path,constraint:"uniqueItems",messages:[t.translator.translate("errorUniqueItems")]})}return e}function $t(t){const e=[],s=M(t.schema),i=dt(t.schema),a=pt(t.schema);if(f(t.value)&&c(s)){const r=a||{},o=s,l=i||{};Object.keys(t.value).forEach(s=>{const i=Object.keys(l).some(t=>new RegExp(t).test(s)),a=n(r,s);if(!i&&!a)if(!1===o)e.push({type:"error",path:t.path,constraint:"additionalProperties",messages:[A(t.translator.translate("errorAdditionalProperties"),{property:s})]});else if(f(o)){const i=t.validator.getErrors(t.value[s],o,s,t.path+"/"+s).map(e=>({type:"error",path:`${t.path}.${s}`,constraint:"additionalProperties",messages:e.messages}));e.push(...i)}})}return e}const _t={additionalProperties:$t,allOf:Lt,anyOf:It,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,properties:qt,required:Nt,type:Ut,uniqueItems:Jt};function Gt(t){const e=[],s=V(t.schema);if(c(s)){o(t.value,s)&&e.push({type:"error",path:t.path,constraint:"const",messages:[A(t.translator.translate("errorConst"),{const:JSON.stringify(s)})]})}return e}function Kt(t){const e=[],s=B(t.schema),i=st(t.schema),n=Q(t.schema);if(g(t.value)&&c(s)){let a=0;t.value.forEach((e,i)=>{0===t.validator.getErrors(e,s,i,t.path+"/"+i).length&&a++});const r=0===a;if(c(i)){a<i&&e.push({type:"error",path:t.path,constraint:"minContains",messages:[A(t.translator.translate("errorMinContains"),{counter:a,minContains:i})]})}else r&&e.push({type:"error",path:t.path,constraint:"contains",messages:[t.translator.translate("errorContains")]});if(c(n)){a>n&&e.push({type:"error",path:t.path,constraint:"maxContains",messages:[A(t.translator.translate("errorMaxContains"),{counter:a,maxContains:n})]})}}return e}function Zt(t){const e=[],s=z(t.schema);if(f(t.value)&&c(s)){let i=[];Object.keys(s).forEach(e=>{if(c(t.value[e])){const a=s[e];g(a)&&(i=a.filter(e=>!n(t.value,e)))}});i.length>0&&e.push({type:"error",path:t.path,constraint:"dependentRequired",messages:[A(t.translator.translate("errorDependentRequired"),{dependentRequired:i.join(", ")})]})}return e}function Qt(t){let e=[];const s=q(t.schema);return f(t.value)&&c(s)&&Object.keys(s).forEach(i=>{if(c(t.value[i])){const n=s[i],a=t.validator.getErrors(t.value,n,t.key,t.path);e=[...e,...a]}}),e}function Xt(t){const e=G(t.schema),s=gt(t.schema),i=U(t.schema);if(c(e)){if(d(s)&&d(i))return[];if(!0===e)return c(s)?t.validator.getErrors(t.value,s,t.key,t.path):[];if(!1===e)return c(i)?t.validator.getErrors(t.value,i,t.key,t.path):[];return 0===t.validator.getErrors(t.value,e,t.key,t.path).length?c(s)?t.validator.getErrors(t.value,s,t.key,t.path):[]:c(i)?t.validator.getErrors(t.value,i,t.key,t.path):[]}return[]}function Yt(t){const e=[],s=ht(t.schema);if(g(t.value)&&c(s)){const i=lt(t.schema,"subErrors")??t.validator.subErrors;s.forEach((s,n)=>{const a=t.value[n];if(c(a)){const r=t.validator.getErrors(a,s,n,t.path+"/"+n);if(r.length>0){const s={type:"error",path:t.path,constraint:"prefixItems",messages:[A(t.translator.translate("errorPrefixItems"),{index:n})]};i&&(s.subErrors=r),e.push(s)}}})}return e}const te={additionalProperties:$t,allOf:Lt,anyOf:It,const:Gt,contains:Kt,dependentRequired:Zt,dependentSchemas:Qt,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,if:Xt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,properties:qt,prefixItems:Yt,required:Nt,type:Ut,uniqueItems:Jt},ee={additionalProperties:$t,allOf:Lt,anyOf:It,const:Gt,contains:Kt,dependentRequired:Zt,dependentSchemas:Qt,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,if:Xt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,properties:qt,prefixItems:Yt,required:Nt,type:Ut,uniqueItems:Jt};function se(t){let e=[];const s=yt(t.schema),i=dt(t.schema),a=pt(t.schema),r=F(t.schema),o=H(t.schema),l=vt(t.schema);if(f(t.value)&&c(s)){let d=c(a)?a:{};const h=s,p=i;[r,o,l].forEach(t=>{c(t)&&t.forEach(t=>{c(t.properties)&&(d={...d,...t.properties})})}),d&&Object.keys(t.value).forEach(s=>{let i=!1;if(c(p)&&Object.keys(p).forEach(t=>{const e=new RegExp(t);i=e.test(s)}),i||!1!==h||n(d,s)||e.push({type:"error",path:t.path,constraint:"unevaluatedProperties",messages:[A(t.translator.translate("errorUnevaluatedProperties"),{property:s})]}),!i&&f(h)&&!n(d,s)){const i=t.validator.getErrors(t.value[s],h,s,t.path+"/"+s).map(t=>({type:"error",path:s,constraint:"unevaluatedProperties",messages:t.messages}));e=[...e,...i]}})}return e}const ie={additionalProperties:$t,allOf:Lt,anyOf:It,const:Gt,contains:Kt,dependentRequired:Zt,dependentSchemas:Qt,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,if:Xt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,propertie:qt,prefixItems:Yt,required:Nt,type:Ut,unevaluatedProperties:se,uniqueItems:Jt};const ne={additionalProperties:$t,allOf:Lt,anyOf:It,const:Gt,contains:Kt,dependentRequired:Zt,dependentSchemas:Qt,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,if:Xt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,prefixItems:Yt,propertyNames:function(t){const e=[],s=P(t.schema);return f(t.value)&&c(s)&&Object.keys(t.value).forEach(i=>{t.validator.getErrors(i,s,i,t.path).length>0&&e.push({type:"error",path:t.path,constraint:"propertyNames",messages:[A(t.translator.translate("errorPropertyNames"),{propertyName:i})]})}),e},properties:qt,required:Nt,type:Ut,unevaluatedProperties:se,uniqueItems:Jt};class ae{constructor(t={}){this.refParser=t.refParser,this.constraints=t.constraints??{},this.assertFormat=!!t.assertFormat&&t.assertFormat,this.translator=!!t.translator&&t.translator,this.subErrors=t.subErrors??!1,this.draft=ne,this.jsonSchemaDrafts={"http://json-schema.org/draft-04/schema#":_t,"http://json-schema.org/draft-06/schema#":te,"http://json-schema.org/draft-07/schema#":ee,"https://json-schema.org/draft/2019-09/schema":ie,"https://json-schema.org/draft/2020-12/schema":ne}}getErrors(t,e,s,i){let a=[];if(m(e)&&!0===e)return a;if(m(e)&&!1===e)return[{type:"error",messages:["invalid"],path:i}];this.refParser&&f(e)&&n(e,"$ref")&&(e=this.refParser.expand(e));const r={...this.draft,...this.constraints};for(const[l,c]of Object.entries(r))if(n(e,l)){const n=c({validator:this,value:t,schema:e,key:s,path:i,translator:this.translator});n&&(a=[...a,...n])}const o=lt(e,"messages");return c(o)&&(f(o)&&a.forEach(t=>{var e,s;const i=null==(s=null==o?void 0:o[null==(e=this.translator)?void 0:e.language])?void 0:s[null==t?void 0:t.constraint],n=null==o?void 0:o[null==t?void 0:t.constraint],a=i??n;return c(a)&&(t.messages=[a]),t}),g(o)&&a.length>0&&a.forEach(t=>(t.messages=o,t))),a}}class re{constructor(){this.listeners=new Map}on(t,e){let s=this.listeners.get(t);s||(s=[],this.listeners.set(t,s)),s.push(e)}off(t,e){if("function"!=typeof e)return void this.listeners.delete(t);const s=this.listeners.get(t);if(!s)return;const i=s.filter(t=>t!==e);0===i.length?this.listeners.delete(t):this.listeners.set(t,i)}emit(t,...e){const s=this.listeners.get(t);if(s)for(const n of s)try{n(...e)}catch(i){console.error(`Error in listener callback for event "${t}":`,i)}}destroy(){Object.keys(this).forEach(t=>{delete this[t]})}}class oe extends re{constructor(e){super(),this.jedison=e.jedison,this.path=e.path||this.jedison.rootName,this.schema=e.schema,this.originalSchema=e.originalSchema??t(e.schema),this.value=c(e.value)?e.value:void 0,this.isActive=!0,this.parent=e.parent||null,this.children=[],this.ui=null,this.isDirty=!1,this.watched={},this.key=this.path.split(this.jedison.pathSeparator).pop(),this.arrayTemplateData=e.arrayTemplateData||{},this.init()}init(){this.register(),this.setInitialValue(),this.prepare(),this.setDefaultValue(),this.registerWatcher(),this.setValueFormTemplate(),this.jedison.getOption("container")&&this.setUI(),this.on("notifyParent",t=>{this.parent&&(this.parent.isDirty=!0,this.parent.onChildChange(t))})}setUI(){if(this.jedison.isEditor){const t=this.jedison.uiResolver.getClass(this.schema);this.ui=new t(this)}}getKey(){return this.key}getSchema(){return this.schema}register(){if(this.jedison.register(this),0===this.children.length)return;const t=e=>{this.jedison.register(e),e.children.length>0&&e.children.forEach(t)};this.children.forEach(t)}unregister(){if(this.jedison.unregister(this),0===this.children.length)return;const t=e=>{this.jedison.unregister(e),e.children.length>0&&e.children.forEach(t)};this.children.forEach(t)}setInitialValue(){const t=lt(this.schema,"enforceEnum")??this.jedison.getOption("enforceEnum"),e=W(this.schema);if(c(e)&&!e.includes(this.getValueRaw())&&c(e[0])&&t&&this.setValue(e[0],!1),d(this.value)){let t;const e=bt(this.schema);"boolean"===e&&(t=!1),"number"===e&&(t=0),"integer"===e&&(t=0),"string"===e&&(t=""),"array"===e&&(t=[]),"object"===e&&(t={}),"null"===e&&(t=null),this.value=t}}setDefaultValue(){const t=R(this.schema);c(t)&&this.setValue(t,!1);const e=lt(this.schema,"enforceConst")??this.jedison.getOption("enforceConst");if(c(e)&&r(e,!0)){const t=V(this.schema);c(t)&&this.setValue(t,!1)}}registerWatcher(){const t=lt(this.schema,"watch");c(t)&&Object.entries(t).forEach(([t,e])=>{this.jedison.watch(e,()=>{this.updateWatchedData(t,e)})})}updateWatchedData(t,e){const s=this.jedison.getInstance(e);c(s)&&(s&&(this.watched[t]={value:s.getValue(),schema:s.getSchema(),properties:s.schema.properties?Object.keys(s.schema.properties):[]}),this.setValueFormTemplate())}setValueFormTemplate(){const t=lt(this.schema,"template");c(t)&&t&&this.setValue(A(t,this.watched))}getValue(){return t(this.value)}getValueRaw(){return this.value}getTemplateData(t){const e={...this.arrayTemplateData,value:this.getValueRaw(),settings:this.jedison.getOption("settings")};return"string"==typeof this.value&&(e.length=this.value.length,"number"==typeof this.schema.maxLength&&(e.remaining=this.schema.maxLength-this.value.length)),(null==t?void 0:t.includes("{{ functions."))&&(e.functions=this.resolveTemplateFunctions(this.jedison.getOption("functions"))),this.parent&&(e.parent=this.parent.getTemplateData()),e}resolveTemplateFunctions(t={}){const e={instance:this};return Object.fromEntries(Object.entries(t).map(([t,s])=>[t,s(e)]))}purify(t){return"string"==typeof t&&this.jedison.getOption("purifyData")&&"undefined"!=typeof window&&window.DOMPurify&&(t=window.DOMPurify.sanitize(t)),t}setValue(t,e=!0,s="api"){if(this.value===t)return this.value;const i=this.purify(t),n=t!==i;t=i;const a=lt(this.schema,"enforceConst")??this.jedison.getOption("enforceConst");if(c(a)&&r(a,!0)){const e=V(this.schema);c(e)&&(t=e)}return n||o(this.value,t)?(this.value=t,this.isDirty=!0,this.emit("set-value",t,s),this.emit("change",s),this.jedison.emit("instance-change",this,s),e&&this.emit("notifyParent",s),this.value):this.value}onChildChange(t){}getErrors(){if(!this.isActive)return[];let t=this.parent;for(;t;){if(!t.isActive)return[];t=t.parent}return S(this.jedison.validator.getErrors(this.getValueRaw(),this.originalSchema,this.getKey(),this.path))}hasNestedValidationErrors(){return 0===this.children.length?!(!this.ui||!this.ui.showingValidationErrors):this.children.some(t=>t.hasNestedValidationErrors())}prepare(){}activate(){!1===this.isActive&&(this.isActive=!0,this.emit("notifyParent"))}deactivate(){!0===this.isActive&&(this.isActive=!1,this.emit("notifyParent"))}isReadOnly(){return!0===ut(this.schema)||!!this.parent&&this.parent.isReadOnly()}destroy(){this.unregister(),this.listeners=null,this.children.length>0&&(this.children.forEach(t=>t.destroy()),this.children=[]),this.ui&&(this.ui.destroy(),this.ui=null),Object.keys(this).forEach(t=>{this[t]=null}),super.destroy()}}class le{constructor(t){this.instance=t,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.appendSchemaButtons(),this.refreshUI();("always"===this.instance.jedison.getOption("showErrors")||"always"===lt(this.instance.schema,"showErrors"))&&this.showValidationErrors(this.instance.getErrors());this.instance.on("change",()=>{this.refreshUI(),this.showValidationErrors(this.instance.getErrors())})}static resolves(t){}static providesChildHeading(){return!1}init(){this.theme=this.instance.jedison.theme,this.markdownEnabled=lt(this.instance.schema,"parseMarkdown")??this.instance.jedison.getOption("parseMarkdown"),this.purifyEnabled=lt(this.instance.schema,"purifyHtml")??this.instance.jedison.getOption("purifyHtml")}getLevel(){return(this.instance.path.match(/\//g)||[]).length}setVisibility(){const t=lt(this.instance.schema,"hidden");c(t)&&!0===t&&(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",bt(this.instance.schema));const t=lt(this.instance.schema,"containerAttributes");if(c(t)&&f(t))for(const[e,s]of Object.entries(t))if("class"===e){s.split(" ").forEach(t=>{this.control.container.classList.add(t)})}else this.control.container.setAttribute(e,s)}appendSchemaButtons(){const t=lt(this.instance.schema,"buttons");if(!g(t))return;const e=this.instance.jedison.getOption("domPurifyOptions");t.forEach(t=>{if(!f(t))return;const s=u(t.label)?t.label:"",i=this.purifyEnabled?this.purifyContent(s,e):s,n=function(t,e={}){const{allowlist:s=v,allowedPrefixes:i=y}=e,n={};if(!f(t))return n;const a=new Set(s.map(t=>t.toLowerCase()));for(const[r,o]of Object.entries(t)){const t=r.trim().toLowerCase();(a.has(t)||i.some(e=>t.startsWith(e)))&&(n[r]=o)}return n}(t.attributes),a=this.theme.getXButton({label:i,attributes:n});this.control.container.appendChild(a);const r=f(t.event)&&u(t.event.name)?t.event.name:null;if(!r)return;const o=()=>{const t=this.instance.jedison;t.emit("jedison:"+r,{jedison:t,editor:this,path:this.instance.path})};a.addEventListener("click",o),this.storedEventListeners.push({element:a,eventType:"click",handler:o})})}build(){}adaptForTable(){}adaptForHorizontal(t,e){}setAttributes(){const t=this.control.input;if(c(t)){const e=lt(this.instance.schema,"inputAttributes");if(f(e))for(const[s,i]of Object.entries(e))t.setAttribute(s,i)}}setReadOnlyAttribute(){if(this.readOnly){this.control.container.querySelectorAll("input, textarea, select").forEach(t=>{t.setAttribute("always-disabled","")})}}getIdFromPath(t){const e=this.instance.jedison.getOption("id");return e?e+"-"+i(t):i(t)}getValidationEventType(){return"input"===(lt(this.instance.schema,"showErrors")??this.instance.jedison.getOption("showErrors"))?"input":"change"}addEventListeners(){}clearStoredEventListeners(){this.storedEventListeners&&this.storedEventListeners.forEach(t=>{t.element&&t.handler&&t.element.removeEventListener(t.eventType||"click",t.handler)}),this.storedEventListeners=[]}showValidationErrors(t,e=!1){t=t.filter(t=>t.path===this.instance.path),this.control.messages.innerHTML="",this.showingValidationErrors=!1,this.setAriaInvalid(!1);if(("never"===this.instance.jedison.getOption("showErrors")||"never"===lt(this.instance.schema,"showErrors"))&&!e||0===t.length)return;const s=lt(this.instance.schema,"muteValidationMessages")??this.instance.jedison.getOption("muteValidationMessages")??[];let i=!1;t.forEach(t=>{s.includes(t.constraint)||t.messages.forEach(e=>{let s;"error"===t.type?(i=!0,s=this.getErrorFeedback({message:e})):s=this.getWarningFeedback({message:e}),this.control.messages.appendChild(s)})}),i&&this.setAriaInvalid(!0),this.showingValidationErrors=!0}setAriaInvalid(t){this.control.input&&(t?this.control.input.setAttribute("aria-invalid","true"):this.control.input.removeAttribute("aria-invalid"))}getErrorFeedback(t){return this.theme.getErrorFeedback(t)}getWarningFeedback(t){return this.theme.getWarningFeedback(t)}disable(){this.disabled=!0,this.refreshUI()}enable(){this.disabled=!1,this.refreshUI()}purifyContent(t,e){if(this.instance.jedison.getOption("purifyHtml")&&"undefined"!=typeof window&&window.DOMPurify)return window.DOMPurify.sanitize(t,e);{const e=document.createElement("div");return e.innerHTML=t,e.textContent||e.innerText}}getHtmlFromMarkdown(t){return window.marked.parse(t)}getTitle(){let t=!1;this.title=this.instance.getKey();const e=ft(this.instance.schema);if(c(e)&&(this.title=e,t=!0),t){this.title=A(this.title,this.instance.getTemplateData(this.title)),this.title=this.markdownEnabled?this.getHtmlFromMarkdown(this.title):this.title;const t=L({},this.instance.jedison.getOption("domPurifyOptions"),{FORBID_TAGS:["p"]});this.title=this.purifyEnabled?this.purifyContent(this.title,t):this.title}return this.title}getDescription(){const t=N(this.instance.schema);if(c(t)){this.description=A(t,this.instance.getTemplateData(this.description)),this.description=this.markdownEnabled?this.getHtmlFromMarkdown(this.description):this.description;const e=this.instance.jedison.getOption("domPurifyOptions");this.description=this.purifyEnabled?this.purifyContent(this.description,e):this.description}return this.description}getInfo(t=null){const e=lt(t??this.instance.schema,"info");if(!c(e))return e;const s=this.instance.jedison.getOption("domPurifyOptions");return c(e.title)&&(e.title=this.markdownEnabled?this.getHtmlFromMarkdown(e.title):e.title,e.title=this.purifyEnabled?this.purifyContent(e.title,s):e.title),c(e.content)&&(e.content=this.markdownEnabled?this.getHtmlFromMarkdown(e.content):e.content,e.content=this.purifyEnabled?this.purifyContent(e.content,s):e.content),e}refreshLegendWarning(){}refreshUI(){this.refreshDisabledState(),this.refreshTemplates()}refreshDisabledState(){this.control.container.querySelectorAll("button, input, select, textarea").forEach(t=>{this.disabled||this.readOnly||t.hasAttribute("always-disabled")?t.setAttribute("disabled",""):t.removeAttribute("disabled",""),t.hasAttribute("always-enabled")&&t.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(t){return t}refreshJsonDataInputSize(){if(this.control&&this.control.jsonData&&this.control.jsonData.input){const t=this.control.jsonData.input;t.style.height="auto",t.style.height=t.scrollHeight+"px",setTimeout(()=>{t&&(t.scrollTop=0)})}}refreshJsonData(){this.control&&this.control.jsonData&&this.control.jsonData.input&&(this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2))}getNextChildPath(t){const e=this.instance.path.split(this.instance.jedison.pathSeparator).length,s=t.split(this.instance.jedison.pathSeparator);return s.length<=e?null:s.slice(0,e+1).join(this.instance.jedison.pathSeparator)}navigateTo(t){if(t===this.instance.path)return void this.control.container.scrollIntoView({behavior:"smooth",block:"nearest"});const e=this.getNextChildPath(t);if(!e)return;const s=this.instance.children.find(t=>t.path===e);(null==s?void 0:s.ui)&&s.ui.navigateTo(t)}destroy(){this.clearStoredEventListeners(),this.control.container&&this.control.container.parentNode&&this.control.container.parentNode.removeChild(this.control.container),Object.keys(this).forEach(t=>{delete this[t]})}}class ce extends le{static resolves(t){return c(G(t))}build(){this.control=this.theme.getIfThenElseControl({title:"Options",titleHidden:lt(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),description:N(this.instance.schema)})}refreshUI(){this.refreshDisabledState(),this.control.childrenSlot.innerHTML="",this.control.childrenSlot.appendChild(this.instance.activeInstance.ui.control.container),this.control.switcherSlot=this.instance.activeInstance.ui.control.switcherSlot,this.disabled||this.instance.isReadOnly()?this.instance.activeInstance.ui.disable():this.instance.activeInstance.ui.enable()}getErrorFeedback(t){return this.theme.getAlert(t)}}class de extends oe{setUI(){this.ui=new ce(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(e=>{c(e.then)&&this.schemas.push(E({},t(this.schema),e.then)),c(e.else)&&this.schemas.push(E({},t(this.schema),e.else))});const e=t(this.schema);delete e.if,delete e.then,delete e.else,this.instanceWithoutIf=this.jedison.createInstance({jedison:this.jedison,schema:e,originalSchema:this.originalSchema,path:this.path,parent:this.parent,arrayTemplateData:this.arrayTemplateData}),this.schemas.forEach(t=>{const e=this.jedison.createInstance({jedison:this.jedison,schema:t,originalSchema:this.originalSchema,path:this.path,parent:this.parent,arrayTemplateData:this.arrayTemplateData});this.instanceStartingValues.push(e.getValue()),this.instances.push(e)}),this.on("set-value",(t,e)=>{this.changeValue(t,e)});const s=this.instanceWithoutIf.getValueRaw();this.changeValue(s)}changeValue(t,e="api"){const s=this.getWithoutIfValueFromValue(t),i=this.getFittestIndex(s),a=i!==this.index;this.index=i,this.activeInstance=this.instances[i],this.activeInstance.register(),this.instances.forEach((r,o)=>{r.off("notifyParent"),r.children&&f(t)&&r.children.forEach(e=>{e.isMultiple&&n(t,e.getKey())&&e.setValue(t[e.getKey()],!0,"api")});const l=this.instanceStartingValues[o];let c=t;if(f(l)&&f(t))if(a&&"api"!==e)c=x(l,s);else{if(this.jedison.getOption("audacity")&&"api"===e&&o===i){const e=E({},r.getValue(),t);r.setValue(e,!1,"api")}const s=r.getValue();c=x(s,t)}a&&this.jedison.updateInstancesWatchedData(),r.setValue(c,!1,e),r.on("notifyParent",t=>{const e=r.getValueRaw();this.changeValue(e,t),this.emit("notifyParent",t),this.emit("change",t)})}),"api"===e&&this.hasNullableFields(this.activeInstance)&&this.activeInstance.setValue(t,!1,"secondary"),this.activeInstance.register(),this.value=this.activeInstance.getValueRaw()}getWithoutIfValueFromValue(t){let e=this.instanceWithoutIf.getValue();return f(e)&&f(t)?(e=x(e,t),e):t}traverseSchema(t){const e=G(t);if(c(e)){const s=gt(t),i=U(t);this.ifThenElseSchemas.push({if:e,then:c(s)?s:{}}),this.ifThenElseSchemas.push({if:e,else:c(i)?i:{}})}}hasNullableFields(t){return!!t&&(!!this.isNullableSchema(t.schema)||!!t.children&&t.children.some(t=>this.hasNullableFields(t)))}isNullableSchema(t){return!!t&&(!(!t["x-format"]||!t["x-format"].includes("nullable"))||(!(!Array.isArray(t.type)||!t.type.includes("null"))||!!t.properties&&Object.values(t.properties).some(t=>this.isNullableSchema(t))))}getFittestIndex(t){let e=this.index;const s=this.getKey();return this.ifThenElseSchemas.forEach((i,n)=>{if(!0===i.if)e=0;else if(!1===i.if)e=1;else{const a=c(this.schema.type)?{...i.if,type:this.schema.type}:i.if,r=this.jedison.validator.getErrors(t,a,s,this.path);0===r.length&&i.then&&(e=n),r.length>0&&i.else&&(e=n)}}),e}hasNestedValidationErrors(){return!!this.activeInstance&&this.activeInstance.hasNestedValidationErrors()}destroy(){this.instanceWithoutIf&&this.instanceWithoutIf.destroy(),this.instances.forEach(t=>{t.destroy()}),super.destroy()}}class he extends oe{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 e=bt(this.schema);if(c(H(this.schema))||c(vt(this.schema))){const e=c(H(this.schema))?H(this.schema):vt(this.schema),s=t(this.schema);delete s.anyOf,delete s.oneOf,delete s.options,e.forEach((t,e)=>{let i="Option-"+(e+1);const n=lt(t={...s,...t},"switcherTitle"),a=ft(t),r=N(t);c(r)&&(i=r),c(a)&&(i=a),c(n)&&(i=n),this.switcherOptionValues.push(e),this.switcherOptionsLabels.push(i),this.schemas.push(t)})}else if(g(e))e.forEach((t,e)=>{const s=E(this.schema),i={...s,type:t,title:t[0].toUpperCase()+t.slice(1)};c(s.title)&&(i.title=s.title),this.switcherOptionValues.push(e),this.switcherOptionsLabels.push(t.charAt(0).toUpperCase()+t.slice(1)),this.schemas.push(i)});else if("any"===e||!e){const e=t(this.schema);this.schemas=[{...e,type:"string"},{...e,type:"boolean"},{...e,type:"integer"},{...e,type:"number"},{...e,type:"array"},{...e,type:"object"},{...e,type:"null"}],this.schemas.forEach((t,e)=>{this.switcherOptionValues.push(e)}),this.switcherOptionsLabels=["String","Boolean","Integer","Number","Array","Object","Null"]}const s=lt(this.schema,"switcherTypeLabels")??this.jedison.getOption("switcherTypeLabels");s&&"object"==typeof s&&(this.switcherOptionsLabels=this.switcherOptionsLabels.map(t=>n(s,t)?s[t]:t)),this.schemas.forEach(e=>{const s=this.jedison.createInstance({jedison:this.jedison,schema:e,path:this.path,parent:this.parent,value:t(this.value)});c(this.value)&&s.setValue(this.value,!1),s.unregister(),s.off("notifyParent"),s.on("notifyParent",t=>{this.value=this.activeInstance.getValueRaw(),this.emit("change",t),this.emit("notifyParent",t)}),this.instances.push(s),this.register()});const i=this.getFittestIndex(this.value);this.switchInstance(i,this.value)}switchInstance(t,e,s="api"){this.activeInstance&&this.activeInstance.children.forEach(t=>t.unregister()),this.index=t,this.activeInstance=this.instances[t],c(e)&&this.activeInstance.setValue(e,!1,s),this.activeInstance.children.forEach(t=>t.register());const i=this.activeInstance.getValueRaw(),n=o(this.value,i);this.setValue(i,!0,s),n||this.emit("change",s)}onSetValue(){if(o(this.activeInstance.getValueRaw(),this.value)){const t=this.getFittestIndex(this.value);this.switchInstance(t,this.value)}}getFittestIndex(t){const e=lt(this.schema,"discriminator");if(c(e)&&f(t)){const s=u(e)?e:e.propertyName,i=t[s];if(c(i))for(let t=0;t<this.schemas.length;t++){const e=this.schemas[t],n=e.properties&&e.properties[s];if(n){if(0===this.jedison.validator.getErrors(i,n,s,this.path).length)return t}}}let s,i;for(let n=0;n<this.instances.length;n++){const e=this.instances[n],a=c(t)?t:e.getValueRaw(),r=this.jedison.validator.getErrors(a,e.schema,this.getKey(),this.path);if(0===r.length){s=n;break}(void 0===s||void 0===i||r.length<i.length)&&(s=n,i=r)}return s}hasNestedValidationErrors(){return!!this.activeInstance&&this.activeInstance.hasNestedValidationErrors()}destroy(){this.instances.forEach(t=>{t.destroy()}),super.destroy()}}class pe extends oe{}class ue extends oe{prepare(){this.properties={},this.requiredProperties=new Set,this.schemaPatternProperties=dt(this.schema),this.schemaAdditionalProperties=M(this.schema);const e=pt(this.schema),s=mt(this.schema),i=t(this.value);c(e)&&Object.keys(e).forEach(t=>{const s=e[t];this.properties[t]={schema:s};let a=!0;const r=c(s["x-recursive"]),o=this.jedison.getOption("deactivateNonRequired"),l=lt(this.schema,"deactivateNonRequired"),d=lt(s,"deactivateNonRequired"),h=this.isRequired(t);!h&&c(o)&&!0===o&&(a=!1),!h&&c(l)&&!0===l&&(a=!1),!h&&c(d)&&!0===d&&(a=!1),!h&&r&&(a=!1),a&&this.createChild(s,t,n(i,t)?i[t]:void 0)}),c(s)&&this.jedison.isEditor&&!0===this.jedison.getOption("enforceRequired")&&s.forEach(t=>{this.requiredProperties.add(t),n(this.properties,t)||(this.properties[t]={},this.createChild({},t,n(i,t)?i[t]:void 0))}),this.refreshInstances(),this.on("set-value",(t,e)=>{this.addMissingRequiredPropertiesToValue(t),this.removeNotListedPropertiesFromValue(t),this.refreshInstances(e)})}removeNotListedPropertiesFromValue(t){const e=lt(this.schema,"enforceAdditionalProperties"),s=c(e)?e:this.jedison.getOption("enforceAdditionalProperties"),i=this.schemaAdditionalProperties,a=this.schemaPatternProperties||{};if(this.jedison.isEditor&&s&&c(i)&&!1===i){const e=Object.keys(a).map(t=>new RegExp(t));Object.keys(t).forEach(s=>{const i=e.some(t=>t.test(s));n(this.properties,s)||i||delete t[s]})}}addMissingRequiredPropertiesToValue(t){const e=lt(this.schema,"enforceRequired")??this.jedison.getOption("enforceRequired");this.jedison.isEditor&&e&&this.requiredProperties.forEach(e=>{n(t,e)||(t[e]=this.getChild(e).getValue())})}isRequired(t){const e=mt(this.schema),s=c(e)&&e.includes(t),i=this.isDependentRequired(t);return s||i}isDependentRequired(t){const e=z(this.schema);if(c(e)){let s=[];return Object.keys(e).forEach(t=>{if(c(this.value[t])){const i=e[t];g(i)&&(s=i.filter(t=>!n(this.value,t)))}}),s.includes(t)}return!1}createChild(e,s,i,n=!1){const a=this.jedison.createInstance({jedison:this.jedison,schema:e,path:this.path+this.jedison.pathSeparator+s,parent:this,value:t(i)});this.children.push(a),this.value[s]=a.getValue();const r=lt(this.schema,"deactivateNonRequired")??this.jedison.getOption("deactivateNonRequired");return this.isRequired(s)||!c(r)||!0!==r||n||a.deactivate(),this.onChildChange(),a}deleteChild(t){for(let e=this.children.length-1;e>=0;e--){const s=this.children[e];s.getKey()===t&&(s.destroy(),this.children.splice(e,1),this.onChildChange())}}getChild(t){return this.children.find(e=>t===e.getKey().split(this.jedison.pathSeparator).pop())}getPropertySchema(t){let e;const s=this.schemaAdditionalProperties,i=pt(this.schema),a=this.schemaPatternProperties;if(c(i)&&n(i,t))e=i[t];else if(c(a))for(const n of Object.keys(a))if(new RegExp(n).test(t)){e=a[n];break}return d(e)&&c(s)&&(e=s),d(e)&&(e={}),e}onChildChange(t){const e={};this.children.forEach(t=>{if(t.isActive){const s=t.getKey();"__proto__"===s?Object.defineProperty(e,s,{value:t.getValueRaw(),enumerable:!0}):e[s]=t.getValueRaw()}}),this.value=e,this.jedison.emit("instance-change",this,t),this.emit("change",t),this.refreshingInstances||this.emit("notifyParent",t)}sortChildrenByPropertyOrder(){this.children=this.children.sort((t,e)=>{const s=lt(t.schema,"propertyOrder"),i=lt(e.schema,"propertyOrder"),n=h(s),a=h(i);return!n&&a?1:n&&!a||s<i?-1:s>i?1:0})}refreshInstances(t){const e=this.refreshingInstances;this.refreshingInstances=!0;const s=this.getValue();if(!f(s))return void(this.refreshingInstances=e);const i=new Map;for(const n of this.children)i.set(n.getKey(),n);Object.keys(s).forEach(e=>{const n=i.get(e);if(n){n.activate();const i=n.getValueRaw(),a=s[e];if(o(i,a)){const i=n.setValue(a,!1,t);s[e]=i}}else{const t=this.getPropertySchema(e);this.createChild(t,e,s[e],!0)}});for(let n=this.children.length-1;n>=0;n--){const t=this.children[n],e=t.getKey();d(s[e])&&(i.has(e)?t.deactivate():this.deleteChild(e))}this.sortChildrenByPropertyOrder(),this.value=s,this.refreshingInstances=e}}class me extends oe{prepare(){this.schemaItems=K(this.schema),f(this.schemaItems)&&this.jedison.refParser&&this.jedison.refParser.hasRef(this.schemaItems)&&!this.schemaItems["x-recursive"]&&(this.schemaItems=this.jedison.refParser.expand(this.schemaItems),this.schema.items=this.schemaItems),this.schemaPrefixItems=ht(this.schema);const t=it(this.schema),e=lt(this.schema,"enforceMinItems"),s=c(e)?e:this.jedison.getOption("enforceMinItems"),i=this.jedison.isEditor,n=c(s)&&!0===s,a=c(t);if(i&&n&&a)for(let r=0;r<t;r++)this.addItem();this.refreshChildren(),this.on("set-value",()=>{this.refreshChildren()})}createItemInstance(t){let e;const s=this.children.length,i=this.schemaItems,n=this.schemaPrefixItems;e=c(i)?i:{};return c(n)&&c(n[s])&&(e=n[s]),this.jedison.createInstance({jedison:this.jedison,schema:e,path:this.path+this.jedison.pathSeparator+s,parent:this,arrayTemplateData:{i0:t,i1:t+1}})}setDefaultValue(){const t=R(this.schema);c(t)&&this.setValue(t)}move(e,s,i){const n=this.getValueRaw();if(!g(n))return;const a=t(n),r=a[e];a.splice(e,1),a.splice(s,0,r),this.setValue(a,!0,i),this.emit("item-move",i),this.jedison.emit("item-move",i)}addItem(e){const s=this.createItemInstance(),i=this.getValueRaw(),n=g(i)?t(i):[];n.push(s.getValueRaw()),s.destroy(),this.setValue(n,!0,e);const a=this.children[this.children.length-1];this.emit("item-add",e,a),this.jedison.emit("item-add",e,a)}addItemAfter(e,s){const i=this.createItemInstance(),n=this.getValueRaw(),a=g(n)?t(n):[];a.splice(e+1,0,i.getValueRaw()),i.destroy(),this.setValue(a,!0,s);const r=this.children[e+1];this.emit("item-add",s,r),this.jedison.emit("item-add",s,r)}deleteItem(e,s){const i=this.getValueRaw();if(!g(i))return;const n=t(i).filter((t,s)=>s!==e);this.setValue(n,!0,s),this.emit("item-delete",s),this.jedison.emit("item-delete",s)}onChildChange(t){const e=[];this.children.forEach(t=>{e.push(t.getValueRaw())}),this.value=e,this.jedison.emit("instance-change",this,t),this.emit("change",t),this.emit("notifyParent",t)}refreshChildren(){this.children=[];const t=this.getValueRaw();if(!g(t))return;const e=[];t.forEach((t,s)=>{const i=this.createItemInstance(s);this.children.push(i);const n=i.setValue(t,!1);e.push(n)}),this.value=e}}class ge extends oe{}class fe extends oe{}class be extends oe{}const ve={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",copy:"glyphicon glyphicon-copy",switcher:"glyphicon glyphicon-chevron-down"},ye={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",copy:"bi bi-clipboard",switcher:"bi bi-chevron-down"},Ce={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",copy:"icon-copy",switcher:"icon-chevron-down"},Ee={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",copy:"fa fa-clipboard",switcher:"fa fa-chevron-down"},Le={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",copy:"fas fa-clipboard",switcher:"fas fa-chevron-down"},xe={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",copy:"fa-solid fa-clipboard",switcher:"fa-solid fa-chevron-down"};class Ie extends le{sanitize(t){return Boolean(t)}}class Ae extends Ie{static resolves(t){return"boolean"===bt(t)&&("radios"===lt(t,"format")||"radios-inline"===lt(t,"format"))}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:["false","true"],titles:lt(this.instance.schema,"enumTitles")||["false","true"],id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),titleIconClass:lt(this.instance.schema,"titleIconClass"),inline:"radios-inline"===lt(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalRadiosControl(this.control,t,e)}addEventListeners(){this.control.radios.forEach(t=>{t.addEventListener("change",()=>{const e="true"===t.value;this.instance.setValue(e,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(t=>{const e="true"===t.value;t.checked=e===this.instance.getValue()})}setAriaInvalid(t){this.control.radios.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}}class we extends Ie{static resolves(t){return"boolean"===bt(t)}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:["false","true"],titles:lt(this.instance.schema,"enumTitles")||["false","true"],id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalSelectControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{const t="true"===this.control.input.value;this.instance.setValue(t,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.control.input.value=!0===this.instance.getValue()?"true":"false"}}class Se extends Ie{static resolves(t){return"boolean"===bt(t)&&"checkbox"===lt(t,"format")}build(){this.control=this.theme.getCheckboxControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),titleIconClass:lt(this.instance.schema,"titleIconClass"),info:this.getInfo()})}adaptForTable(t){this.theme.adaptForTableCheckboxControl(this.control,t)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalCheckboxControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{this.instance.setValue(this.control.input.checked,!0,"user")})}sanitize(t){return Boolean(t)}refreshUI(){this.refreshDisabledState(),this.control.input.checked=this.instance.getValue()}}class je extends le{sanitize(t){return String(t)}}class Te extends je{static resolves(t){return"string"===bt(t)&&("radios"===lt(t,"format")||"radios-inline"===lt(t,"format"))}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:W(this.instance.schema)||[]}build(){const t=this.getEnumSourceValues();this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:lt(this.instance.schema,"enumTitles")||t,id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:"radios-inline"===lt(this.instance.schema,"format"),info:this.getInfo()})}refreshOptions(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema,"enumTitles")||t,s=this.getIdFromPath(this.instance.path),i=s+"-messages"+" "+(s+"-description");this.control.radioControls.forEach(t=>{t.parentNode&&t.parentNode.removeChild(t)}),this.control.radios=[],this.control.labels=[],this.control.radioControls=[],this.control.labelTexts=[],t.forEach((t,n)=>{const a=document.createElement("div"),r=document.createElement("input"),o=document.createElement("label"),l=document.createElement("span");r.setAttribute("type","radio"),r.setAttribute("id",s+"-"+n),r.setAttribute("name",s),r.setAttribute("value",t),r.setAttribute("aria-describedby",i),o.setAttribute("for",s+"-"+n),o.classList.add("jedi-title"),o.classList.add("jedi-label"),l.textContent=e&&void 0!==e[n]?e[n]:t,a.appendChild(r),a.appendChild(o),o.appendChild(l),this.control.radios.push(r),this.control.labels.push(o),this.control.labelTexts.push(l),this.control.radioControls.push(a),this.control.fieldset.insertBefore(a,this.control.description)}),this.addEventListeners(),this.refreshUI()}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalRadiosControl(this.control,t,e)}addEventListeners(){this.control.radios.forEach(t=>{t.addEventListener("change",()=>{this.instance.setValue(t.value,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(t=>{t.checked=t.value===this.instance.getValue()})}setAriaInvalid(t){this.control.radios.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}}class Oe extends je{static resolves(t){return"string"===bt(t)&&(c(W(t))||c(lt(t,"enumSource")))}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:W(this.instance.schema)||[]}build(){const t=this.getEnumSourceValues();this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:lt(this.instance.schema,"enumTitles")||t,id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()})}refreshOptions(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema,"enumTitles")||t,s=this.control.input;s.innerHTML="",t.forEach((t,i)=>{const n=document.createElement("option");n.setAttribute("value",t),n.textContent=e&&void 0!==e[i]?e[i]:t,s.appendChild(n)}),this.refreshUI()}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalSelectControl(this.control,t,e)}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 ke extends je{static resolves(t){return"string"===bt(t)&&"textarea"===lt(t,"format")}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});if(!0===(lt(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.getOption("useConstraintAttributes"))){const t=nt(this.instance.schema),e=Y(this.instance.schema);c(t)&&this.control.input.setAttribute("minlength",t),c(e)&&this.control.input.setAttribute("maxlength",e)}}adaptForTable(){this.theme.adaptForTableTextareaControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){super.refreshUI(),this.control.input.value=this.instance.getValue()}}class De extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"awesomplete"===e&&window.Awesomplete&&"string"===bt(t)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"awesomplete")??{};this.awesomplete=new window.Awesomplete(this.control.input,t),this.control.container.querySelector(".awesomplete").style.display="block"}catch(t){console.error("Awesomplete is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,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 Me extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"emojiButton"===e&&window.EmojiButton&&"string"===bt(t)}build(){this.control=this.theme.getInputControl({type:"button",title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.control.input.classList.add("jedi-emoji-button"),this.control.input.value="😀";const t=lt(this.instance.schema,"emojiButton")??{},e=Object.assign({theme:"auto",autoHide:!0,showPreview:!1,showSearch:!0,zIndex:1e4,position:"auto"},t);this.emojiButton=new window.EmojiButton(e)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.emojiButton.on("emoji",t=>{this.control.input.value=t;let e=t;"object"==typeof t&&(e=t.emoji),this.instance.setValue(e,!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 Pe extends je{static resolves(t){return"string"===bt(t)}static getTypes(){return["hidden","color","date","datetime-local","email","number","month","password","search","time","tel","text","url","week"]}build(){const t=lt(this.instance.schema,"format");this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:Pe.getTypes().includes(t)?t:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden")||"hidden"===t,info:this.getInfo()}),"color"===t&&0===this.instance.value.length&&this.instance.setValue("#000000",!1,"user");if(!0===(lt(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.getOption("useConstraintAttributes"))){const t=nt(this.instance.schema),e=Y(this.instance.schema),s=ct(this.instance.schema);c(t)&&this.control.input.setAttribute("minlength",t),c(e)&&this.control.input.setAttribute("maxlength",e),c(s)&&this.control.input.setAttribute("pattern",s)}}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{this.instance.setValue(this.control.input.value,!0,"user")})}sanitize(t){return String(t)}refreshUI(){super.refreshUI(),this.control.input.value=this.instance.getValue()}}class Fe extends le{sanitize(t){return"integer"===bt(this.instance.schema)?Math.floor(Number(t)):Number(t)}}class He extends Fe{static resolves(t){const e=bt(t),s=W(t),i=lt(t,"format");return("number"===e||"integer"===e)&&c(s)&&("radios"===i||"radios-inline"===i)}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:W(this.instance.schema),titles:lt(this.instance.schema,"enumTitles")||W(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:"radios-inline"===lt(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalRadiosControl(this.control,t,e)}addEventListeners(){this.control.radios.forEach(t=>{t.addEventListener("change",()=>{const e=this.sanitize(t.value);this.instance.setValue(e,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(t=>{t.checked=Number(t.value)===Number(this.instance.getValue())})}setAriaInvalid(t){this.control.radios.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}}class Ve extends Fe{static resolves(t){const e=bt(t);return("number"===e||"integer"===e)&&(c(W(t))||c(lt(t,"enumSource")))}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:W(this.instance.schema)||[]}build(){const t=this.getEnumSourceValues();this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:lt(this.instance.schema,"enumTitles")||t,id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()})}refreshOptions(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema,"enumTitles")||t,s=this.control.input;s.innerHTML="",t.forEach((t,i)=>{const n=document.createElement("option");n.setAttribute("value",t),n.textContent=e&&void 0!==e[i]?e[i]:t,s.appendChild(n)}),this.refreshUI()}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalSelectControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{const t=this.sanitize(this.control.input.value);this.instance.setValue(t,!0,"user")})}refreshUI(){this.refreshDisabledState();h(this.instance.getValue())&&(this.control.input.value=this.instance.getValue())}}class Be extends Fe{static resolves(t){const e=bt(t);return"number"===e||"integer"===e}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"number",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden")||"hidden"===lt(this.instance.schema,"format"),info:this.getInfo()}),this.control.input.setAttribute("step","any");if(!0===(lt(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.getOption("useConstraintAttributes"))){const t=et(this.instance.schema),e=Z(this.instance.schema);c(t)&&this.control.input.setAttribute("min",t),c(e)&&this.control.input.setAttribute("max",e)}}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{const t=this.sanitize(this.control.input.value);this.instance.setValue(t,!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 t=this.instance.getValue();h(t)&&(this.control.input.value=t)}}class Re extends Be{static resolves(t){const e=bt(t),s=lt(t,"format");return c(s)&&"number-nullable"===s&&c(e)&&g(e)&&2===e.length&&e.includes("null")&&(e.includes("number")||e.includes("integer"))}addEventListeners(){const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{const t=this.sanitize(this.control.input.value);this.instance.setValue(t,!0,"user")})}sanitize(t){if(""===t)return null;return bt(this.instance.schema).includes("integer")?Math.floor(Number(t)):Number(t)}refreshUI(){super.refreshUI();const t=this.instance.getValue();if(null===t&&(this.control.input.value=""),h(t)){bt(this.instance.schema).includes("integer")?this.control.input.value=Math.floor(Number(t)):this.control.input.value=t}}}class ze extends le{static resolves(t){return"object"===bt(t)}getObjectControlConfig(){let t=!0;const e=M(this.instance.schema);c(e)&&!1===e&&(t=!1);const s=lt(this.instance.schema,"objectAdd")??this.instance.jedison.getOption("objectAdd");c(s)&&!1===s&&(t=!1);let i=!1;c(this.instance.jedison.getOption("enablePropertiesToggle"))&&(i=this.instance.jedison.getOption("enablePropertiesToggle"));const n=lt(this.instance.schema,"enablePropertiesToggle");return c(n)&&(i=n),{title:this.getTitle(),description:this.getDescription(),titleHidden:lt(this.instance.schema,"titleHidden")??this.isEmbeddedInParentChrome(),id:this.getIdFromPath(this.instance.path),enablePropertiesToggle:i,addProperty:t,enableCollapseToggle:lt(this.instance.schema,"enableCollapseToggle")??this.instance.jedison.getOption("enableCollapseToggle"),startCollapsed:lt(this.instance.schema,"startCollapsed")??this.instance.jedison.getOption("startCollapsed"),readOnly:this.instance.isReadOnly(),info:this.getInfo(),editJsonData:lt(this.instance.schema,"editJsonData")??this.instance.jedison.getOption("editJsonData"),propertiesToggleContent:lt(this.instance.schema,"propertiesToggleContent")??this.instance.jedison.translator.translate("propertiesToggle"),collapseToggleContent:lt(this.instance.schema,"collapseToggleContent")??this.instance.jedison.translator.translate("collapseToggle"),addPropertyContent:lt(this.instance.schema,"addPropertyContent")??this.instance.jedison.translator.translate("objectAddProperty"),isAccordion:!1,titleIconClass:lt(this.instance.schema,"titleIconClass")}}isEmbeddedInParentChrome(){var t;if(!(lt(this.instance.schema,"autoFlat")??this.instance.jedison.getOption("autoFlat")))return!1;const e=this.instance.parent;if(!e)return!1;const s=this.instance.jedison.uiResolver.getClass(e.schema);return!!(null==(t=null==s?void 0:s.providesChildHeading)?void 0:t.call(s))}build(){this.propertyActivators={};const t=lt(this.instance.schema,"card"),e=this.instance.jedison.getOption("card"),s=t??(!this.isEmbeddedInParentChrome()&&e),i=this.getObjectControlConfig();this.control=!1===s?this.theme.getObjectControlFlat(i):this.theme.getObjectControl(i),this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2)}announcePropertyAdded(t,e){const s=ft(e.schema),i=c(s)?s:t,n=this.theme.getAriaLiveMessage();n.textContent=i+" "+this.instance.jedison.translator.translate("objectPropertyAdded"),this.control.ariaLive.appendChild(n)}addProperty(t,e){const s=t.value.split(" ").join("");if(0===s.length)return;if(c(this.instance.value[s]))return;const i=this.instance.getPropertySchema(s),n=this.instance.createChild(i,s);n.activate(),this.instance.setValue(this.instance.value,!0,"user"),t.value="",this.announcePropertyAdded(s,n),e()}adaptForHorizontal(t,e){this.theme.adaptForHorizontalObjectControl(this.control,t,e,this.getTitle())}addEventListeners(){this.control.quickAddPropertyBtn.addEventListener("click",()=>{this.addProperty(this.control.quickAddPropertyControl.input,()=>{this.control.quickAddPropertyContainer.close()})}),this.control.jsonData.saveBtn.addEventListener("click",()=>{try{const t=JSON.parse(this.control.jsonData.input.value);this.instance.setValue(t,!0,"user"),this.control.jsonData.dialog.close()}catch(t){alert("Invalid JSON")}}),this.control.jsonData.copyBtn.addEventListener("click",()=>{navigator.clipboard.writeText(this.control.jsonData.input.value)}),this.control.jsonData.toggle.addEventListener("click",()=>{this.refreshJsonDataInputSize()})}sanitize(t){return f(t)?t:{}}getErrorFeedback(t){return this.theme.getAlert(t)}refreshPropertiesSlot(){if(r(lt(this.instance.schema,"enablePropertiesToggle")??this.instance.jedison.getOption("enablePropertiesToggle"),!0)){const t=Object.keys(this.instance.properties),e=this.instance.children.map(t=>t.getKey()),s=[...new Set([...t,...e])];this.control.propertiesActivators.replaceChildren();const{container:a,group:r}=this.theme.getPropertiesGroup();this.control.propertiesActivators.appendChild(a);const o={},l=this.instance.getValue();s.forEach(t=>{const e=this.instance.isRequired(t),s=this.control.ariaLive,a=this.instance.getPropertySchema(t),d=ft(a),h=i(this.instance.path+this.instance.jedison.pathSeparator+t)+"-activator",p=c(d)?d:t,m=this.theme.getCheckboxControl({id:h,title:p,titleHidden:!1}),g=m.input;this.propertyActivators[t]=g,g.addEventListener("change",()=>{s.innerHTML="";const e=this.theme.getAriaLiveMessage();if(g.checked){this.instance.getChild(t)||this.instance.createChild(a,t),this.instance.getChild(t).activate(),e.textContent=p+" "+this.instance.jedison.translator.translate("objectPropertyAdded"),s.appendChild(e)}else this.instance.getChild(t).deactivate(),e.textContent=p+" "+this.instance.jedison.translator.translate("objectPropertyRemoved"),s.appendChild(e);this.control.propertiesContainer.close(),this.control.propertiesContainer.showModal()});const f=lt(a,"propGroup");if(c(f)&&u(f)){let t=o[f];c(t)||(t=this.theme.getPropertiesGroup({name:f}),o[f]=t),t.group.appendChild(m.container),this.control.propertiesActivators.appendChild(t.container)}else r.appendChild(m.container);g.disabled=this.disabled||e,g.checked=n(l,t)});const d=lt(this.instance.schema,"propGroupOrder");if(c(d)&&Array.isArray(d)){const t=[a];d.forEach(e=>{c(o[e])&&t.push(o[e].container)}),Object.keys(o).forEach(e=>{d.includes(e)||t.push(o[e].container)}),this.control.propertiesActivators.replaceChildren(),t.forEach(t=>{this.control.propertiesActivators.appendChild(t)})}}}refreshEditors(){this.control.childrenSlot.replaceChildren(),this.instance.children.forEach(t=>{const e=this.theme.getCheckboxControl({id:t.path+"-opt-in",title:t.path+"-opt-in",titleHidden:!0});e.input.checked=t.isActive,e.input.addEventListener("change",()=>{t.isActive?t.deactivate():t.activate()}),t.isActive?(null===t.ui.control.container.parentNode&&(this.control.childrenSlot.appendChild(t.ui.control.container),t.ui.control.optInContainer&&t.ui.control.optInContainer.appendChild(e.container)),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable()):t.ui.control.container.parentNode&&t.ui.control.container.parentNode.removeChild(t.ui.control.container)})}refreshLegendWarning(){if(!this.control.legendText)return;const t=(lt(this.instance.schema,"navWarning")??!0)&&this.instance.hasNestedValidationErrors(),e=this.control.legendText.querySelector(".jedi-legend-warning");if(e&&e.parentNode.removeChild(e),t){const t=document.createElement("span");t.classList.add("jedi-legend-warning"),t.textContent="⚠";const e=lt(this.instance.schema,"navWarningMessage");e&&t.setAttribute("title",e),this.theme.styleLegendWarning(t),this.control.legendText.appendChild(t)}}showValidationErrors(t,e=!1){super.showValidationErrors(t,e),this.refreshLegendWarning()}refreshUI(){super.refreshUI(),this.refreshPropertiesSlot(),this.refreshEditors(),this.refreshJsonData(),this.refreshLegendWarning()}}class qe extends ze{static resolves(t){return"object"===bt(t)&&"grid"===lt(t,"format")}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);let t=this.theme.getRow();this.control.childrenSlot.appendChild(t),this.instance.children.forEach(e=>{if(e.isActive){const s=lt(e.schema,"grid")||{},i=lt(e.schema,"gridColumns")??void 0,n=lt(e.schema,"gridOffset")??0,a=s.columns??void 0,r=s.columnsXs??i??12,o=s.columnsSm??i??r,l=s.columnsMd??a??i??o,c=s.columnsLg??i??l,d=s.offset??n,h=this.theme.getCol(r,o,l,c,d);(s.newRow||!1)&&(t=this.theme.getRow(),this.control.childrenSlot.appendChild(t)),t.appendChild(h),h.appendChild(e.ui.control.container),this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable()}})}}class Ne extends ze{static resolves(t){const e=lt(t,"format");return"object"===bt(t)&&/^categories-(horizontal|vertical(?:-\d+)?)$/.test(e)}init(){super.init(),this.activeCategoryName=null,this.userSelectedCategory=!1}navigateTo(t){const e=this.getNextChildPath(t);if(e){const t=this.instance.children.find(t=>t.path===e);if(t){const e=lt(this.instance.schema,"categoriesDefaultLabel")??"Basic",s=bt(t.schema),i=lt(t.schema,"category");let n;if(c(i))n=i;else if("object"===s||"array"===s){const e=ft(t.schema);n=c(e)?e:t.getKey()}else n=e;this.activeCategoryName=n,this.userSelectedCategory=!0,this.refreshUI()}}super.navigateTo(t)}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);const t=lt(this.instance.schema,"format").split("-"),e=t[1],s=t[2],i="horizontal"===e?12:s??4,n=this.theme.getRow(),a=this.theme.getCol(12,12,i,i),r=this.theme.getCol(12,12,12-i,12-i),o=this.theme.getTabContent(),l=this.theme.getTabList({variant:e});this.control.childrenSlot.appendChild(n),n.appendChild(a),n.appendChild(r),a.appendChild(l),r.appendChild(o);const d=lt(this.instance.schema,"navWarning")??!0,h=lt(this.instance.schema,"navWarningMessage"),p=lt(this.instance.schema,"categoriesDefaultLabel")??"Basic",u=new Map;this.instance.children.forEach(t=>{if(!t.isActive)return;const e=lt(t.schema,"hidden");if(c(e)&&!0===e)return;const s=bt(t.schema),i=lt(t.schema,"category");let n;if(c(i))n=i;else if("object"===s||"array"===s){const e=ft(t.schema);n=c(e)?e:t.getKey()}else n=p;u.has(n)||u.set(n,{children:[],id:this.getIdFromPath(t.path)}),u.get(n).children.push(t)});const m=lt(this.instance.schema,"categoryOrder"),f=Array.from(u.keys());let b=f;if(c(m)&&g(m)){b=[...m.filter(t=>u.has(t)),...f.filter(t=>!m.includes(t))]}this.userSelectedCategory&&u.has(this.activeCategoryName)||(this.activeCategoryName=b[0]),b.forEach(t=>{const e=u.get(t),s=t===this.activeCategoryName,{children:i,id:n}=e,a=d&&i.some(t=>t.hasNestedValidationErrors()),r=this.theme.getTab({hasErrors:a,navWarningMessage:h,title:t,id:n,active:s});r.list.addEventListener("click",()=>{this.activeCategoryName=t,this.userSelectedCategory=!0});const c=document.createElement("div");this.theme.setTabPaneAttributes(c,s,n),i.forEach(t=>{c.appendChild(t.ui.control.container),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable()}),l.appendChild(r.list),o.appendChild(c)})}}class Ue extends ze{static resolves(t){const e=lt(t,"format"),s=/^nav-(horizontal|vertical(?:-\d+)?)$/.test(e);return"object"===bt(t)&&s}static providesChildHeading(){return!0}init(){super.init(),this.activeTabIndex=0}isChildVisible(t){if(!t.isActive)return!1;const e=lt(t.schema,"hidden");return!(c(e)&&!0===e)}getVisibleChildIndices(){return this.instance.children.reduce((t,e,s)=>(this.isChildVisible(e)&&t.push(s),t),[])}ensureActiveTabIsVisible(t){t.includes(this.activeTabIndex)||(this.activeTabIndex=t[0]??0)}navigateTo(t){const e=this.getNextChildPath(t);if(e){const t=this.instance.children.findIndex(t=>t.path===e);-1!==t&&(this.activeTabIndex=t,this.refreshUI())}super.navigateTo(t)}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);const t=lt(this.instance.schema,"format").split("-"),e=t[1],s=t[2],i="horizontal"===e?12:s??4,n=this.theme.getRow(),a=this.theme.getCol(12,12,i,i),r=this.theme.getCol(12,12,12-i,12-i),o=this.theme.getTabContent(),l=this.theme.getTabList({variant:e});this.control.childrenSlot.appendChild(n),n.appendChild(a),n.appendChild(r),a.appendChild(l),r.appendChild(o);const d=this.getVisibleChildIndices();this.ensureActiveTabIsVisible(d),this.instance.children.forEach((t,e)=>{if(!this.isChildVisible(t))return;const s=e===this.activeTabIndex,i=this.getIdFromPath(t.path),n=ft(t.schema),a=lt(this.instance.schema,"navWarning")??!0,r=lt(this.instance.schema,"navWarningMessage"),d=this.theme.getTab({hasErrors:a&&t.hasNestedValidationErrors(),navWarningMessage:r,title:c(n)?n:t.getKey(),id:i,active:s});d.list.addEventListener("click",()=>{this.activeTabIndex=e}),this.theme.setTabPaneAttributes(t.ui.control.container,s,i),l.appendChild(d.list),o.appendChild(t.ui.control.container),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable()})}}class We extends ze{static resolves(t){return"object"===bt(t)&&"accordion"===lt(t,"format")}static providesChildHeading(){return!0}getObjectControlConfig(){return{...super.getObjectControlConfig(),isAccordionProperties:!0}}refreshAccordionWarnings(){if(!this.accordionToggles)return;const t=lt(this.instance.schema,"navWarning")??!0,e=lt(this.instance.schema,"navWarningMessage");this.instance.children.forEach(s=>{if(!s.isActive)return;const i=this.accordionToggles[s.getKey()];if(!i)return;const n=i.querySelector(".jedi-legend-warning");if(n&&n.parentNode.removeChild(n),t&&s.hasNestedValidationErrors()){const t=document.createElement("span");t.classList.add("jedi-legend-warning"),t.textContent="⚠",e&&t.setAttribute("title",e),this.theme.styleLegendWarning(t),i.appendChild(t)}})}refreshEditors(){this.control.childrenSlot.replaceChildren(),this.accordionToggles={};const t=this.control.childrenSlot.id;this.instance.children.forEach(e=>{if(!e.isActive)return;const s=ft(e.schema),i=c(s)?s:e.getKey(),n=this.getIdFromPath(e.path),a=this.theme.getAccordionItem({title:i,id:n,accordionId:t});a.body.appendChild(e.ui.control.container),this.control.childrenSlot.appendChild(a.container),this.accordionToggles[e.getKey()]=a.toggle,this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable()}),this.refreshAccordionWarnings()}showValidationErrors(t,e=!1){super.showValidationErrors(t,e),this.refreshAccordionWarnings()}}class Je extends ze{static resolves(t){return"object"===bt(t)&&"horizontal"===lt(t,"format")}build(){super.build(),this.theme.initHorizontalObject(this.control.container)}refreshEditors(){const t=lt(this.instance.schema,"labelColumns"),e=lt(this.instance.schema,"inputColumns");super.refreshEditors(),this.instance.children.forEach(s=>{s.isActive&&s.ui.adaptForHorizontal(t,e)})}}class $e extends le{static resolves(t){const e=lt(t,"format");return"object"===bt(t)&&("radios"===e||"radios-inline"===e)&&c(W(t))}build(){const t=W(this.instance.schema),e=lt(this.instance.schema,"enumTitles")||t.map(t=>JSON.stringify(t)),s="radios-inline"===lt(this.instance.schema,"format");this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:e,titles:e,id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:s,info:this.getInfo()}),this.control.radios.forEach((e,s)=>{e._enumValue=t[s]})}addEventListeners(){this.control.radios.forEach(t=>{t.addEventListener("change",()=>{this.instance.setValue(t._enumValue,!0,"user")})})}refreshUI(){this.refreshDisabledState();const t=this.instance.getValue();this.control.radios.forEach(e=>{e.checked=r(e._enumValue,t)})}setAriaInvalid(t){this.control.radios.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalRadiosControl(this.control,t,e)}}class _e extends le{static resolves(t){return"array"===bt(t)}init(){super.init(),this.activeItemIndex=0}build(){this.control=this.theme.getArrayControl({title:this.getTitle(),description:this.getDescription(),titleHidden:lt(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),enableCollapseToggle:lt(this.instance.schema,"enableCollapseToggle")??this.instance.jedison.getOption("enableCollapseToggle"),startCollapsed:lt(this.instance.schema,"startCollapsed")??this.instance.jedison.getOption("startCollapsed"),readOnly:this.instance.isReadOnly(),info:this.getInfo(),editJsonData:lt(this.instance.schema,"editJsonData")??this.instance.jedison.getOption("editJsonData"),arrayAdd:lt(this.instance.schema,"arrayAdd")??this.instance.jedison.getOption("arrayAdd"),arrayAddContent:lt(this.instance.schema,"arrayAddContent")??this.instance.jedison.translator.translate("arrayAdd"),arrayFooterAdd:lt(this.instance.schema,"arrayFooterAdd")??this.instance.jedison.getOption("arrayFooterAdd"),arrayFooterAddContent:lt(this.instance.schema,"arrayFooterAddContent")??this.instance.jedison.translator.translate("arrayAdd"),arrayFooterButtonsPosition:lt(this.instance.schema,"arrayFooterButtonsPosition")??this.instance.jedison.getOption("arrayFooterButtonsPosition"),arrayDeleteAll:lt(this.instance.schema,"arrayDeleteAll")??this.instance.jedison.getOption("arrayDeleteAll"),arrayDeleteAllContent:lt(this.instance.schema,"arrayDeleteAllContent")??this.instance.jedison.translator.translate("arrayDeleteAll"),arrayFooterDeleteAll:lt(this.instance.schema,"arrayFooterDeleteAll")??this.instance.jedison.getOption("arrayFooterDeleteAll"),arrayFooterDeleteAllContent:lt(this.instance.schema,"arrayFooterDeleteAllContent")??this.instance.jedison.translator.translate("arrayDeleteAll"),collapseToggleContent:lt(this.instance.schema,"collapseToggleContent")??this.instance.jedison.translator.translate("collapseToggle"),titleIconClass:lt(this.instance.schema,"titleIconClass")}),this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2)}deleteAllItems(){const t=lt(this.instance.schema,"arrayDeleteConfirm"),e=this.instance.jedison.getOption("arrayDeleteConfirm"),s=()=>{this.instance.setValue([],!0,"user")};(c(t)?t:e)?window.confirm(this.instance.jedison.translator.translate("arrayConfirmDeleteAll"))&&s():s()}adaptForHorizontal(t,e){this.theme.adaptForHorizontalArrayControl(this.control,t,e,this.getTitle())}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.instance.addItem("user")}),this.control.footerAddBtn.addEventListener("click",()=>{this.instance.addItem("user")}),this.control.deleteAllBtn&&this.control.deleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.control.footerDeleteAllBtn&&this.control.footerDeleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.addJsonDataEventListeners()}addJsonDataEventListeners(){this.control.jsonData.copyBtn.addEventListener("click",()=>{navigator.clipboard.writeText(this.control.jsonData.input.value)}),this.control.jsonData.saveBtn.addEventListener("click",()=>{try{const t=JSON.parse(this.control.jsonData.input.value);this.instance.setValue(t,!0,"user"),this.control.jsonData.dialog.close()}catch(t){alert("Invalid JSON")}}),this.control.jsonData.toggle.addEventListener("click",()=>{this.refreshJsonDataInputSize()})}getErrorFeedback(t){return this.theme.getAlert(t)}sanitize(t){return g(t)?t:[]}getButtons(t){const e=lt(this.instance.schema,"arrayDeleteContent"),s=lt(this.instance.schema,"arrayMoveUpContent"),i=lt(this.instance.schema,"arrayMoveDownContent"),n=lt(this.instance.schema,"arrayDragContent"),a=lt(this.instance.schema,"arrayAddAfterContent"),r=this.theme.getDeleteItemBtn({content:e??this.instance.jedison.translator.translate("arrayDelete")}),o=this.theme.getMoveUpItemBtn({content:s??this.instance.jedison.translator.translate("arrayMoveUp")}),l=this.theme.getMoveDownItemBtn({content:i??this.instance.jedison.translator.translate("arrayMoveDown")}),d=this.theme.getDragItemBtn({content:n??this.instance.jedison.translator.translate("arrayDrag")}),h=this.theme.getAddAfterItemBtn({content:a??this.instance.jedison.translator.translate("arrayAddAfter")}),p=this.theme.getBtnGroup();return r.addEventListener("click",()=>{const e=lt(this.instance.schema,"arrayDeleteConfirm"),s=this.instance.jedison.getOption("arrayDeleteConfirm"),i=()=>{this.activeItemIndex=w(t-1,0,this.instance.value.length-1),this.instance.deleteItem(t,"user")};(c(e)?e:s)?window.confirm(this.instance.jedison.translator.translate("arrayConfirmDelete"))&&i():i()}),o.addEventListener("click",()=>{const e=t-1;this.activeItemIndex=e,this.instance.move(t,e,"user")}),l.addEventListener("click",()=>{const e=t+1;this.activeItemIndex=e,this.instance.move(t,e,"user")}),h.addEventListener("click",()=>{this.activeItemIndex=t+1,this.instance.addItemAfter(t,"user")}),0===t&&o.setAttribute("always-disabled",!0),t===this.instance.children.length-1&&l.setAttribute("always-disabled",!0),{deleteBtn:r,moveUpBtn:o,moveDownBtn:l,btnGroup:p,dragBtn:d,addAfterBtn:h}}isSortable(){return window.Sortable&&c(lt(this.instance.schema,"sortable"))}refreshSortable(t){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(t,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:t=>{this.instance.move(t.oldIndex,t.newIndex)}}))}refreshDeleteAllBtn(){if(!this.control.deleteAllBtn&&!this.control.footerDeleteAllBtn)return;const t=0===this.instance.value.length,e=[this.control.deleteAllBtn,this.control.footerDeleteAllBtn].filter(Boolean);t||this.disabled||this.readOnly?e.forEach(t=>{t.setAttribute("disabled",""),t.setAttribute("always-disabled",!0)}):this.disabled||this.readOnly||e.forEach(t=>{t.removeAttribute("disabled"),t.removeAttribute("always-disabled")})}refreshAddBtn(){const t=X(this.instance.schema),e=lt(this.instance.schema,"enforceMaxItems")??this.instance.jedison.getOption("enforceMaxItems");c(t)&&e&&t<=this.instance.value.length?(this.control.addBtn.setAttribute("disabled",""),this.control.addBtn.setAttribute("always-disabled",!0),this.control.footerAddBtn.setAttribute("disabled",""),this.control.footerAddBtn.setAttribute("always-disabled",!0),this.control.childrenSlot.querySelectorAll(".jedi-array-add-after").forEach(t=>{t.setAttribute("disabled",""),t.setAttribute("always-disabled",!0)})):this.disabled||this.readOnly||(this.control.addBtn.removeAttribute("disabled"),this.control.addBtn.removeAttribute("always-disabled"),this.control.footerAddBtn.removeAttribute("disabled"),this.control.footerAddBtn.removeAttribute("always-disabled"),this.control.childrenSlot.querySelectorAll(".jedi-array-add-after").forEach(t=>{t.removeAttribute("disabled"),t.removeAttribute("always-disabled")}))}refreshUI(){super.refreshUI();const t=it(this.instance.schema),e=lt(this.instance.schema,"arrayDelete")??this.instance.jedison.getOption("arrayDelete"),s=lt(this.instance.schema,"arrayMove")??this.instance.jedison.getOption("arrayMove"),i=lt(this.instance.schema,"arrayAddAfter")??this.instance.jedison.getOption("arrayAddAfter");this.control.childrenSlot.innerHTML="",this.instance.children.forEach((n,a)=>{const{deleteBtn:r,moveUpBtn:o,moveDownBtn:l,dragBtn:d,btnGroup:h,addAfterBtn:p}=this.getButtons(a),{container:u,arrayActions:m,body:g}=this.theme.getArrayItem({readOnly:this.instance.isReadOnly(),index:a});m.appendChild(h),c(e)&&!0===e&&h.appendChild(r),c(s)&&!0===s&&(h.appendChild(o),h.appendChild(l)),this.isSortable()&&h.appendChild(d),c(i)&&!0===i&&h.appendChild(p),this.control.childrenSlot.appendChild(u),g.appendChild(n.ui.control.container),this.disabled||this.instance.isReadOnly()?n.ui.disable():n.ui.enable(),c(t)&&this.instance.value.length<=t&&r.setAttribute("disabled","")}),this.refreshDisabledState(),this.refreshSortable(this.control.childrenSlot),this.instance.children.forEach(t=>{t.ui.refreshUI()}),this.refreshAddBtn(),this.refreshDeleteAllBtn(),this.refreshJsonData(),this.refreshLegendWarning()}refreshLegendWarning(){if(!this.control.legendText)return;const t=(lt(this.instance.schema,"navWarning")??!0)&&this.instance.hasNestedValidationErrors(),e=this.control.legendText.querySelector(".jedi-legend-warning");if(e&&e.parentNode.removeChild(e),t){const t=document.createElement("span");t.classList.add("jedi-legend-warning"),t.textContent="⚠";const e=lt(this.instance.schema,"navWarningMessage");e&&t.setAttribute("title",e),this.theme.styleLegendWarning(t),this.control.legendText.appendChild(t)}}showValidationErrors(t,e=!1){super.showValidationErrors(t,e),this.refreshLegendWarning()}}class Ge extends _e{static resolves(t){const e=bt(t),s=D(t,"format"),i=ht(t);return"array"===e&&"tuple"===s&&c(i)}build(){super.build(),this.control.addBtn.style.display="none"}addEventListeners(){this.addJsonDataEventListeners()}refreshUI(){this.control.childrenSlot.innerHTML="";const t=this.theme.getTable();this.control.childrenSlot.appendChild(t.container);ht(this.instance.schema).forEach(e=>{const s=this.theme.getTableHeader(),{label:i}=this.theme.getFakeLabel({content:ft(e)??""});s.appendChild(i),t.thead.appendChild(s)});const e=document.createElement("tr");this.instance.children.forEach(t=>{const s=this.theme.getTableDefinition();t.ui.adaptForTable(t,s),s.appendChild(t.ui.control.container),e.appendChild(s)}),t.tbody.appendChild(e),this.refreshJsonData(),this.refreshDisabledState()}}class Ke extends _e{static resolves(t,e){return"array"===bt(t)&&"table"===lt(t,"format")}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.footerAddBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.deleteAllBtn&&this.control.deleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.control.footerDeleteAllBtn&&this.control.footerDeleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.addJsonDataEventListeners()}isSortable(){return window.Sortable&&c(lt(this.instance.schema,"sortable"))}refreshUI(){this.control.childrenSlot.innerHTML="";const t=this.theme.getTable();this.control.childrenSlot.appendChild(t.container);const e=lt(this.instance.schema,"arrayDelete")??this.instance.jedison.getOption("arrayDelete"),s=lt(this.instance.schema,"arrayMove")??this.instance.jedison.getOption("arrayMove"),i=lt(this.instance.schema,"arrayButtonsPosition")??this.instance.jedison.getOption("arrayButtonsPosition"),n=lt(this.instance.schema,"arrayAddAfter")??this.instance.jedison.getOption("arrayAddAfter"),a=this.theme.getTableHeader(),{label:r}=this.theme.getFakeLabel({content:"Controls",visuallyHidden:!0});if(a.appendChild(r),"left"===i&&t.thead.appendChild(a),this.instance.children.length){const e=K(this.instance.schema),s=this.theme.getTableHeader();if(e){if(e.title){const t=this.theme.getFakeLabel({content:e.title});s.appendChild(t.label)}const t=lt(e,"info");if(c(t)){const i=this.getInfo(e),n=this.theme.getInfo(i);"modal"===t.variant&&this.theme.infoAsModal(n,this.getIdFromPath(this.instance.path)+"-item",i),s.appendChild(n.container)}}t.thead.appendChild(s)}"right"===i&&t.thead.appendChild(a),this.instance.children.forEach((a,r)=>{const o=document.createElement("tr"),l=this.theme.getTableDefinition({isButtonColumn:!0}),{deleteBtn:d,moveUpBtn:h,moveDownBtn:p,dragBtn:u,btnGroup:m,addAfterBtn:g}=this.getButtons(r);this.isSortable()&&m.appendChild(u),c(e)&&!0===e&&m.appendChild(d),c(s)&&!0===s&&(m.appendChild(h),m.appendChild(p)),c(n)&&!0===n&&m.appendChild(g),l.appendChild(m),"left"===i&&o.appendChild(l);const f=this.theme.getTableDefinition();a.ui.adaptForTable(a,f),f.appendChild(a.ui.control.container),o.appendChild(f),"right"===i&&o.appendChild(l),t.tbody.appendChild(o)}),this.refreshSortable(t.tbody),this.refreshAddBtn(),this.refreshDeleteAllBtn(),this.refreshJsonData(),this.refreshDisabledState(),this.refreshScrollPosition(t.container),t.container.addEventListener("scroll",()=>{this.lastScrollTop=t.container.scrollTop,this.lastScrollLeft=t.container.scrollLeft})}refreshScrollPosition(t){t.scroll({top:this.lastScrollTop,left:this.lastScrollLeft})}refreshSortable(t){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(t,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:t=>{this.instance.move(t.oldIndex,t.newIndex)}}))}}class Ze extends _e{static resolves(t,e){let s=K(t);if(!s)return!1;e&&(s=e.expand(s));const i=bt(s);return!!i&&("array"===bt(t)&&"object"===i&&"table-object"===lt(t,"format"))}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.footerAddBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.deleteAllBtn&&this.control.deleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.control.footerDeleteAllBtn&&this.control.footerDeleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.addJsonDataEventListeners()}isSortable(){return window.Sortable&&c(lt(this.instance.schema,"sortable"))}refreshUI(){this.control.childrenSlot.innerHTML="";const t=this.theme.getTable();this.control.childrenSlot.appendChild(t.container);const e=lt(this.instance.schema,"arrayDelete")??this.instance.jedison.getOption("arrayDelete"),s=lt(this.instance.schema,"arrayMove")??this.instance.jedison.getOption("arrayMove"),i=lt(this.instance.schema,"arrayButtonsPosition")??this.instance.jedison.getOption("arrayButtonsPosition"),n=lt(this.instance.schema,"arrayAddAfter")??this.instance.jedison.getOption("arrayAddAfter"),a=this.theme.getTableHeader(),{label:r}=this.theme.getFakeLabel({content:"Controls",visuallyHidden:!0});a.appendChild(r),"left"===i&&t.thead.appendChild(a);const o=this.instance.getValue();g(o)&&0!==o.length||t.table.removeChild(t.thead);let l=K(this.instance.schema);this.instance.jedison.refParser&&(l=this.instance.jedison.refParser.expand(l));const d=pt(l);Object.entries(d).forEach(([e,s])=>{const i=this.theme.getTableHeader();if(s.title){const t=this.theme.getFakeLabel({content:s.title});i.appendChild(t.label)}const n=lt(s,"info");if(c(n)){const t=this.getInfo(s),a=this.theme.getInfo(t);"modal"===n.variant&&this.theme.infoAsModal(a,this.getIdFromPath(this.instance.path)+"-"+e,t),i.appendChild(a.container)}t.thead.appendChild(i)}),"right"===i&&t.thead.appendChild(a),this.instance.children.forEach((a,r)=>{const o=document.createElement("tr"),l=this.theme.getTableDefinition({isButtonColumn:!0}),{deleteBtn:d,moveUpBtn:h,moveDownBtn:p,dragBtn:u,btnGroup:m,addAfterBtn:g}=this.getButtons(r);if(this.isSortable()&&m.appendChild(u),c(e)&&!0===e&&m.appendChild(d),c(s)&&!0===s&&(m.appendChild(h),m.appendChild(p)),c(n)&&!0===n&&m.appendChild(g),l.appendChild(m),"left"===i&&o.appendChild(l),a.children.length)a.children.forEach(t=>{const e=this.theme.getTableDefinition();t.ui.adaptForTable(e),e.appendChild(t.ui.control.container),o.appendChild(e)});else{const t=this.theme.getTableDefinition();a.ui.adaptForTable(t),t.appendChild(a.ui.control.container),o.appendChild(t)}"right"===i&&o.appendChild(l),t.tbody.appendChild(o)}),this.refreshSortable(t.tbody),this.refreshAddBtn(),this.refreshDeleteAllBtn(),this.refreshJsonData(),this.refreshDisabledState(),this.refreshScrollPosition(t.container),t.container.addEventListener("scroll",()=>{this.lastScrollTop=t.container.scrollTop,this.lastScrollLeft=t.container.scrollLeft})}refreshScrollPosition(t){t.scroll({top:this.lastScrollTop,left:this.lastScrollLeft})}refreshSortable(t){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(t,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:t=>{this.instance.move(t.oldIndex,t.newIndex)}}))}}class Qe extends le{static resolves(t){const e="choices"===lt(t,"format"),s=window.Choices,i=bt(t),n=K(t),a=c(n)&&bt(n),r=c(i)&&"array"===i,o=!0===Ct(t),l=c(n)&&c(a),d=["string","number","integer"],h=c(n)&&c(a)&&(d.includes(a)||g(a)&&a.some(t=>d.includes(t)));return e&&s&&r&&o&&l&&h}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:this.instance.schema.items&&this.instance.schema.items.enum||[]}refreshOptions(){if(!this.choicesInstance)return;const t=this.getEnumSourceValues(),e=this.instance.getValue(),s=lt(this.instance.schema.items||{},"enumTitles")||[],i=t.map((t,i)=>({value:t,label:s[i]||t,selected:g(e)&&e.includes(t)}));this.choicesInstance.setChoices(i,"value","label",!0)}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:[],titles:[],id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.control.input.setAttribute("multiple","");try{const t=this.instance.getValue(),e=this.getEnumSourceValues(),s=lt(this.instance.schema.items||{},"enumTitles")||[],i=lt(this.instance.schema,"choicesOptions")??{};this.choicesInstance&&this.choicesInstance.destroy(),this.choices=e.map((e,i)=>({value:e,label:s[i]||e,selected:g(t)&&t.includes(e)})),this.choicesInstance=new window.Choices(this.control.input,{duplicateItemsAllowed:!1,removeItemButton:!0,choices:this.choices,...i})}catch(t){console.error("Choices is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalSelectControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{const t=this.choicesInstance.getValue(!0);t!==this.instance.getValue()&&this.instance.setValue(t,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.choicesInstance.disable():this.choicesInstance.enable()}refreshUI(){super.refreshUI();const t=this.instance.getValue();this.choicesInstance.removeActiveItems(),Array.isArray(t)&&t.forEach(t=>{this.choicesInstance.setChoiceByValue(t)})}destroy(){this.choicesInstance.destroy(),super.destroy()}}class Xe extends _e{static resolves(t){const e=lt(t,"format"),s=/^nav-(horizontal|vertical(?:-\d+)?)$/.test(e);return"array"===bt(t)&&s}static providesChildHeading(){return!0}navigateTo(t){const e=this.getNextChildPath(t);if(e){const t=this.instance.children.findIndex(t=>t.path===e);-1!==t&&(this.activeItemIndex=t,this.refreshUI())}super.navigateTo(t)}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.footerAddBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.deleteAllBtn&&this.control.deleteAllBtn.addEventListener("click",()=>{this.activeItemIndex=0,this.deleteAllItems()}),this.control.footerDeleteAllBtn&&this.control.footerDeleteAllBtn.addEventListener("click",()=>{this.activeItemIndex=0,this.deleteAllItems()}),this.addJsonDataEventListeners()}refreshUI(){this.control.childrenSlot.innerHTML="",this.clearStoredEventListeners();const t=lt(this.instance.schema,"format").split("-"),e=t[1],s=t[2],i="horizontal"===e?12:s??4,n=this.theme.getRow(),a=this.theme.getCol(12,12,i,i),r=this.theme.getCol(12,12,12-i,12-i),o=this.theme.getTabContent(),l=this.theme.getTabList({variant:e}),d=lt(this.instance.schema,"arrayDelete")??this.instance.jedison.getOption("arrayDelete"),h=lt(this.instance.schema,"arrayMove")??this.instance.jedison.getOption("arrayMove"),p=lt(this.instance.schema,"arrayAddAfter")??this.instance.jedison.getOption("arrayAddAfter");this.control.childrenSlot.appendChild(n),n.appendChild(a),n.appendChild(r),a.appendChild(l),r.appendChild(o),this.instance.children.forEach((t,e)=>{const{deleteBtn:s,moveUpBtn:i,moveDownBtn:n,dragBtn:a,btnGroup:r,addAfterBtn:u}=this.getButtons(e);c(d)&&!0===d&&r.appendChild(s),c(h)&&!0===h&&(r.appendChild(i),r.appendChild(n)),c(p)&&!0===p&&r.appendChild(u),this.isSortable()&&r.appendChild(a),this.control.childrenSlot.appendChild(t.ui.control.container);const m=ft(t.schema),g=c(m)?m+" "+(e+1):t.getKey();let f;const b=lt(this.instance.schema,"titleTemplate");if(b){const e=b;f=A(e,t.getTemplateData(e))??g}const v=e===this.activeItemIndex,y=this.getIdFromPath(t.path),C=lt(this.instance.schema,"navWarning")??!0,E=lt(this.instance.schema,"navWarningMessage"),{list:L,arrayActions:x}=this.theme.getTab({hasErrors:C&&t.hasNestedValidationErrors(),navWarningMessage:E,title:(null==f?void 0:f.length)?f:g,id:y,active:v});x.appendChild(r);const I=()=>{this.activeItemIndex=e};L.addEventListener("click",I),this.storedEventListeners.push({element:L,handler:I,eventType:"click"}),this.theme.setTabPaneAttributes(t.ui.control.container,v,y),l.appendChild(L),o.appendChild(t.ui.control.container),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable(),0===e&&i.setAttribute("disabled",""),this.instance.value.length-1===e&&n.setAttribute("disabled","")}),this.refreshSortable(l),this.refreshDisabledState(),this.refreshAddBtn(),this.refreshDeleteAllBtn(),this.refreshJsonData()}showValidationErrors(t,e=!1){super.showValidationErrors(t,e),this.refreshUI()}refreshSortable(t){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(t,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:t=>{this.activeItemIndex=t.newIndex,this.instance.move(t.oldIndex,t.newIndex)}}))}}class Ye extends le{static resolves(t){const e=bt(t),s=vt(t);return c(H(t))||c(s)||"any"===e||g(e)||d(e)}build(){this.switcherInput=lt(this.instance.schema,"switcherInput")??this.instance.jedison.getOption("switcherInput"),this.embedSwitcher=this.instance.jedison.getOption("embedSwitcher"),this.control=this.theme.getMultipleControl({titleHidden:lt(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()}),this.embedSwitcher&&(this.control.header.style.display="none"),this.switcherWrapper=this.theme.getSwitcherOwner(),this.instance.on("change",t=>{if("api"===t)return;const e=this.instance.jedison,s=e.getErrors(["error","warning"]),i=this.instance.path+"/",n=[];for(const a of e.instances.values())a.ui&&a.path.startsWith(i)&&n.push(a);for(const a of n.reverse())a.ui.showValidationErrors(s)})}adaptForTable(t){this.theme.adaptForTableMultipleControl(this.control,t)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalMultipleControl(this.control,t,e,this.getTitle())}addEventListeners(){"select"===this.switcherInput&&this.control.switcher.input.addEventListener("change",()=>{const t=Number(this.control.switcher.input.value);this.instance.switchInstance(t,void 0,"user")}),"radios"!==this.switcherInput&&"radios-inline"!==this.switcherInput||this.control.switcher.radios.forEach(t=>{t.addEventListener("change",()=>{const e=Number(t.value);this.instance.switchInstance(e,void 0,"user")})}),"modal"===this.switcherInput&&this.control.switcher.optionButtons.forEach(t=>{t.addEventListener("click",()=>{const e=Number(t.dataset.switcherValue);this.control.switcher.dialog.close(),this.instance.switchInstance(e,void 0,"user")})}),"select-inline"===this.switcherInput&&this.control.switcher.input.addEventListener("change",()=>{const t=Number(this.control.switcher.input.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);const t=this.instance.activeInstance.ui.control.switcherSlot;this.control.switcherSlot=t,(this.embedSwitcher||"modal"===this.switcherInput||"select-inline"===this.switcherInput)&&(t?(this.switcherWrapper.innerHTML="",this.switcherWrapper.appendChild(this.control.switcher.container),this.insertBySwitcherDepth(t,this.switcherWrapper,this.getNestedSwitcherDepth(this.instance.activeInstance)),this.control.header.style.display="none"):(this.control.header.style.display="",this.control.header.appendChild(this.control.switcher.container))),"select"===this.switcherInput&&(this.control.switcher.input.value=this.instance.index),"select-inline"===this.switcherInput&&(this.control.switcher.input.value=this.instance.index),"radios"!==this.switcherInput&&"radios-inline"!==this.switcherInput||this.control.switcher.radios.forEach(t=>{const e=Number(t.value);t.checked=e===this.instance.index}),"modal"===this.switcherInput&&(this.control.switcher.triggerText.textContent=this.instance.switcherOptionsLabels[this.instance.index],this.control.switcher.optionButtons.forEach((t,e)=>{this.theme.setSwitcherOptionActive(t,e===this.instance.index)})),this.disabled||this.instance.isReadOnly()?this.instance.activeInstance.ui.disable():this.instance.activeInstance.ui.enable()}getErrorFeedback(t){return this.theme.getAlert(t)}getNestedSwitcherDepth(t){if(!t||!t.activeInstance)return 0;const e=this.getNestedSwitcherDepth(t.activeInstance);return t.ui.switcherWrapper?e+1:e}insertBySwitcherDepth(t,e,s){e.dataset.switcherDepth=s;const i=Array.from(t.children).find(t=>Number(t.dataset.switcherDepth)<s);i?t.insertBefore(e,i):t.appendChild(e)}}class ts extends le{static resolves(t){return"null"===bt(t)}build(){this.control=this.theme.getNullControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden")||"hidden"===lt(this.instance.schema,"format"),info:this.getInfo()})}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}sanitize(){return null}}class es extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"simplemde"===e&&window.SimpleMDE&&"string"===bt(t)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=t(lt(this.instance.schema,"simplemde")??{});e.element=this.control.input,this.simplemde=new window.SimpleMDE(e)}catch(e){console.error("simpleMDE is not available or not loaded correctly.",e)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){this.simplemde.codemirror.on("blur",()=>{const t=this.simplemde.value();t!==this.instance.getValue()&&this.instance.setValue(t,!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 ss extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"quill"===e&&window.Quill&&"string"===bt(t)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"quill")??{};this.quill=new window.Quill(this.control.placeholder,t)}catch(t){console.error("Quill is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.quill.root.addEventListener("blur",()=>{const t=this.quill.getText();t!==this.instance.getValue()&&this.instance.setValue(t,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.quill.disable():this.quill.enable()}refreshUI(){super.refreshUI(),this.quill.setText(this.instance.getValue())}}class is extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"jodit"===e&&window.Jodit&&"string"===bt(t)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t={showCharsCounter:!1,showWordsCounter:!1,showXPathInStatusbar:!1,toolbarAdaptive:!1,buttons:["bold","italic","underline","strikethrough","|","ul","ol","|","link","|","source","preview"]},e=lt(this.instance.schema,"jodit")??{},s=Object.assign({},t,e);this.jodit=window.Jodit.make(this.control.input,s)}catch(t){console.error("Jodit is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){this.jodit.events.on("change",()=>{const t=this.jodit.value;if(t!==this.instance.getValue()){const e=this.jodit.selection.save();this.instance.setValue(t,!0,"user"),this.jodit.selection.restore(e)}})}refreshDisabledState(){this.disabled||this.readOnly?this.jodit.setReadOnly(!0):this.jodit.setReadOnly(!1)}refreshUI(){super.refreshUI();const t=this.instance.getValue();this.jodit.value!==t&&(this.jodit.value=t)}destroy(){this.jodit.destruct(),super.destroy()}}class ns extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"pickr"===e&&window.Pickr&&"string"===bt(t)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});const t=lt(this.instance.schema,"pickr")??{};try{this.pickr=window.Pickr.create({el:this.control.placeholder,default:this.instance.getValue()||"#000000",comparison:!1,...t});const e=t=>{const e=t?t.toHEXA().toString():"";this.updatingFromPickr=!0,this.instance.setValue(e,!0,"user"),this.updatingFromPickr=!1};this.pickr.on("change",t=>{e(t),this.pickr.applyColor(!0)}),this.pickr.on("save",e),this.pickr.on("hide",()=>e(this.pickr.getColor())),this.refreshUI()}catch(e){console.error("Pickr is not available or not loaded correctly.",e)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){}refreshUI(){if(this.pickr&&(this.refreshTemplates(),this.disabled?this.pickr.disable():this.pickr.enable(),!this.updatingFromPickr)){const t=this.instance.getValue();t&&this.pickr.setColor(t,!0)}}destroy(){this.pickr&&this.pickr.destroyAndRemove(),super.destroy()}}class as extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"flatpickr"===e&&window.flatpickr&&"string"===bt(t)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"flatpickr")??{};this.flatpickr=window.flatpickr(this.control.input,t)}catch(t){console.error("Flatpickr is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,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 rs extends je{static resolves(t){const e="string"===bt(t),s=window.IMask,i=lt(t,"format");return c(i)&&"imask"===i&&e&&s}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"imask")??{},e=t["x-settings"],s=e&&this.instance.jedison.getOption("settings")[e]?this.instance.jedison.getOption("settings")[e]:{},i={...t,...s};this.imask=window.IMask(this.control.input,i),this.useMaskedValue=t["x-masked"]??!1}catch(t){console.error("IMask is not available or not loaded or configured correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.imask.on("accept",()=>{const t=this.useMaskedValue?this.imask.value:this.imask.unmaskedValue;this.instance.setValue(t,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.imask.value=this.instance.getValue()}destroy(){this.imask.destroy(),super.destroy()}}class os extends Fe{static resolves(t){const e=bt(t),s=window.IMask,i=lt(t,"format");return c(i)&&"imask"===i&&"number"===e&&s}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"imask")??{},e=t["x-settings"],s=e&&this.instance.jedison.getOption("settings")[e]?this.instance.jedison.getOption("settings")[e]:{},i={mask:Number,...t,...s};this.imask=window.IMask(this.control.input,i),this.useMaskedValue=t["x-masked"]??!1}catch(t){console.error("IMask is not available or not loaded or configured correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.imask.on("accept",()=>{const t=this.imask.typedValue;this.instance.setValue(t,!0,"user")})}refreshUI(){this.refreshDisabledState();const t=this.instance.getValue();this.imask.value=null!=t?String(t):""}destroy(){this.imask.destroy(),super.destroy()}}class ls extends Fe{static resolves(t){const e=lt(t,"format");return c(e)&&"raty"===e&&"undefined"!=typeof Raty&&"number"===bt(t)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"raty")??{};this.raty=new Raty(this.control.placeholder,Object.assign({},t,{click:t=>{this.instance.setValue(t,!0,"user")}})),this.raty.init()}catch(t){console.error("Raty is not available or not loaded correctly.",t)}}adaptForTable(){this.theme.visuallyHidden(this.control.label),this.theme.visuallyHidden(this.control.description)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}refreshDisabledState(){this.disabled||this.readOnly?this.raty.readOnly(!0):this.raty.readOnly(!1)}refreshUI(){super.refreshUI(),this.raty.score(this.instance.getValue())}}class cs extends le{static resolves(t){return"json"===lt(t,"format")}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.jsonErrorEl=document.createElement("div"),this.jsonErrorEl.style.color="red",this.control.container.appendChild(this.jsonErrorEl)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{try{const t=JSON.parse(this.control.input.value);this.jsonErrorEl.textContent="",this.instance.setValue(t,!0,"user")}catch(t){this.jsonErrorEl.textContent=t.message}})}refreshUI(){this.control.input.value=JSON.stringify(this.instance.getValue(),null,2)}}class ds extends le{static resolves(t){const e=bt(t),s=K(t),i=c(s)&&bt(s),n=c(e)&&"array"===e,a=!0===Ct(t),r=c(s)&&c(W(t.items)),o=c(s)&&c(i),l=c(lt(t,"enumSource")),d=["string","number","integer"],h=c(s)&&c(i)&&(d.includes(i)||g(i)&&i.some(t=>d.includes(t)));return n&&a&&(l||r&&o&&h)}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:W(this.instance.schema.items)||[]}isSortable(){return window.Sortable&&c(lt(this.instance.schema,"sortable"))}addDragHandles(){this.isSortable()&&this.control.checkboxControls.forEach((t,e)=>{if(t.classList.contains("jedi-checkbox-control"))return;const s=document.createElement("div");s.classList.add("jedi-checkbox-control"),s.style.display="flex",s.style.alignItems="baseline";const i=this.theme.getDragItemBtn({content:this.instance.jedison.translator.translate("arrayDrag")});t.parentNode.insertBefore(s,t),s.appendChild(i),s.appendChild(t),this.control.checkboxControls[e]=s})}refreshSortable(){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(this.control.fieldset,{animation:150,handle:".jedi-array-drag",draggable:".jedi-checkbox-control",disabled:this.disabled||this.readOnly,onEnd:()=>{const t=Array.from(this.control.fieldset.querySelectorAll(".jedi-checkbox-control"));this.control.checkboxControls=t,this.control.checkboxes=t.map(t=>t.querySelector('input[type="checkbox"]')),this.control.labels=t.map(t=>t.querySelector("label")),this.control.labelTexts=t.map(t=>t.querySelector("label span"));const e=this.control.checkboxes.filter(t=>t.checked).map(t=>t.value);this.instance.setValue(e,!0,"user")}}))}build(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema.items||{},"enumTitles")||t;this.control=this.theme.getCheckboxesControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:e,id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:"checkboxes-inline"===lt(this.instance.schema,"format"),info:this.getInfo()}),this.addDragHandles()}refreshOptions(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema.items||{},"enumTitles")||t;this.control.checkboxControls.forEach(t=>{t.parentNode&&t.parentNode.removeChild(t)});const s=this.theme.getCheckboxesControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:e,id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:"checkboxes-inline"===lt(this.instance.schema,"format"),info:this.getInfo()});this.control.checkboxes=s.checkboxes,this.control.labels=s.labels,this.control.labelTexts=s.labelTexts,this.control.checkboxControls=s.checkboxControls,this.control.checkboxControls.forEach(t=>{this.control.fieldset.insertBefore(t,this.control.description)}),this.addDragHandles(),this.addEventListeners(),this.refreshUI()}adaptForTable(t){this.theme.adaptForTableCheckboxesControl(this.control,t)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalCheckboxesControl(this.control,t,e)}addEventListeners(){this.control.checkboxes.forEach(t=>{t.addEventListener("change",()=>{let e=this.instance.getValue();if(g(e)||(e=[]),t.checked)e.push(t.value);else{const s=e.indexOf(t.value);s>-1&&e.splice(s,1)}this.instance.setValue(e,!0,"user")})})}refreshUI(){this.refreshDisabledState();const t=this.instance.getValue();g(t)&&(this.control.checkboxes.forEach(e=>{e.checked=t.includes(e.value)}),this.refreshSortable())}setAriaInvalid(t){this.control.checkboxes.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}}class hs extends Fe{static resolves(t){const e=bt(t),s="number"===e||"integer"===e;if(!s)return!1;const i="range"===lt(t,"format");return s&&i}build(){let t,e=0,s=100;c(this.instance.schema.minimum)?e=this.instance.schema.minimum:c(this.instance.schema.exclusiveMinimum)&&(e=this.instance.schema.exclusiveMinimum+.01),c(this.instance.schema.maximum)?s=this.instance.schema.maximum:c(this.instance.schema.exclusiveMaximum)&&(s=this.instance.schema.exclusiveMaximum-.01);const i=bt(this.instance.schema),n=this.instance.schema.multipleOf;t=c(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:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});!0===(lt(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.getOption("useConstraintAttributes"))&&(this.control.input.setAttribute("min",e),this.control.input.setAttribute("max",s)),this.control.input.setAttribute("step",t);const a=lt(this.instance.schema,"inputAttributes");a&&"object"==typeof a&&Object.keys(a).forEach(t=>{this.control.input.setAttribute(t,a[t])});const r=this.instance.getValue();this.control.output.textContent=void 0!==r?r:e}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("input",()=>{this.control.output.textContent=parseFloat(this.control.input.value)});const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{const t=parseFloat(this.control.input.value);this.control.output.textContent=t,this.instance.setValue(t,!0,"user")})}sanitize(t){const e=bt(this.instance.schema),s=Number(t);return"integer"===e?Math.round(s):s}refreshUI(){super.refreshUI();const t=this.instance.getValue();this.control.input.value=void 0!==t?t:0,this.control.output&&(this.control.output.textContent=void 0!==t?t:0)}}class ps extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"ace"===e&&window.ace&&"string"===bt(t)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"ace")??{},e=t.mode||"text";this.aceContainer=document.createElement("div");const s=t.height||"300px",i=t.width||"100%",n=t.minHeight,a=t.maxHeight,r=t.minWidth,o=t.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(t.theme||"ace/theme/chrome");try{this.aceEditor.session.setMode(`ace/mode/${e}`)}catch{console.warn(`Ace mode "${e}" not loaded`)}const l=this.instance.getValue();this.aceEditor.setValue("string"==typeof l?l:""),this.aceEditor.clearSelection()}catch(t){console.error("Ace editor is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){this.aceEditor&&this.aceEditor.on("blur",()=>{const t=this.aceEditor.getValue();t!==this.instance.getValue()&&this.instance.setValue(t,!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 t=this.instance.getValue(),e="string"==typeof t?t:String(t||"");this.aceEditor.getValue()!==e&&(this.aceEditor.setValue(e),this.aceEditor.clearSelection())}}class us extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"filepond"===e&&window.FilePond&&"string"===bt(t)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"file",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"filepond")??{},e=t["x-settings"],s=e&&this.instance.jedison.getOption("settings")[e]?this.instance.jedison.getOption("settings")[e]:{},i={...t,...s};this.hasServer=!!i.server,this.filepond=window.FilePond.create(this.control.input,i),this.filepond.on("processfile",(t,e)=>{if(t)return;const s=this.filepond.getFiles().filter(t=>t.serverId).map(t=>t.serverId);this.instance.setValue(s.join(", "),!0,"user")}),this.filepond.on("addfile",t=>{if(t||this.hasServer)return;const e=this.filepond.getFiles().map(t=>t.filename).join(", ");this.instance.setValue(e,!0,"user")}),this.filepond.on("processfilerevert",()=>{const t=this.filepond.getFiles().filter(t=>t.serverId).map(t=>t.serverId);this.instance.setValue(t.join(", "),!0,"user")}),this.filepond.on("removefile",()=>{const t=this.filepond.getFiles();if(this.hasServer){const e=t.filter(t=>t.serverId).map(t=>t.serverId);this.instance.setValue(e.join(", "),!0,"user")}else this.instance.setValue(t.map(t=>t.filename).join(", "),!0,"user")})}catch(t){console.error("FilePond is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){}refreshUI(){this.filepond&&(this.refreshTemplates(),this.filepond.setOptions({disabled:this.disabled||this.readOnly}))}destroy(){this.filepond&&this.filepond.destroy(),super.destroy()}}class ms{constructor(t){this.customEditors=t.customEditors??[],this.refParser=t.refParser??null,this.editors=[Re,Ye,ce,cs,Ae,Se,we,Te,Oe,ke,De,Me,es,ss,is,ns,as,rs,ps,us,Pe,os,ls,hs,He,Ve,Be,qe,Ne,Ue,We,Je,$e,ze,Qe,ds,Ge,Ze,Ke,Xe,_e,ts]}getClass(t){for(const e of this.customEditors)if(e.resolves(t,this.refParser))return e;for(const e of this.editors)if(e.resolves(t,this.refParser))return e;return null}}const gs={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",arrayAddAfter:"Add after",arrayConfirmDelete:"Are you sure you want to delete this item?",arrayDeleteAll:"Delete all items",arrayConfirmDeleteAll:"Are you sure you want to delete all items?",objectAddProperty:"Add property",objectPropertyAdded:"field was added to the form",objectPropertyRemoved:"field was removed from the form",propertiesToggle:"Properties",collapseToggle:"Collapse"},fs={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?",arrayDeleteAll:"Delete all items",arrayConfirmDeleteAll:"Are you sure you want to delete all items?",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?",arrayDeleteAll:"Alle Elemente löschen",arrayConfirmDeleteAll:"Möchten Sie wirklich alle Elemente 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?",arrayDeleteAll:"Elimina tutti gli elementi",arrayConfirmDeleteAll:"Sei sicuro di voler eliminare tutti gli elementi?",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?",arrayDeleteAll:"Eliminar todos los elementos",arrayConfirmDeleteAll:"¿Está seguro de que desea eliminar todos los elementos?",objectAddProperty:"Agregar propiedad",objectPropertyAdded:"campo fue añadido al formulario",objectPropertyRemoved:"campo fue eliminado del formulario",propertiesToggle:"Propiedades",collapseToggle:"Colapsar"}};class bs{constructor(t){this.language=t.language||"en",this.translations=E({},fs,t.translations),this.defaultTranslations=gs}translate(t){let e=this.translations[this.language][t];return d(e)&&(e=this.defaultTranslations[t]),e}destroy(){Object.keys(this).forEach(t=>{delete this[t]})}}class vs{constructor(t=200){this.maxDepth=t}traverse(t,e,s=t,i="#",n=0,a=null,r=null,o={}){if(!s||"object"!=typeof s||n>this.maxDepth)return;const l=e(s,i,a,r,n,o);void 0!==l&&(a&&null!==r?a[r]=l:"#"===i&&(Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,l)),s=l),"object"==typeof s&&null!==s&&Object.entries(s).forEach(([a,r])=>this.traverse(t,e,r,`${i}/${a}`,n+1,s,a,o))}}class ys{constructor(t=null){this.icons=t,this.useToggleEvents=!0,this.btnContents=!0,this.btnIcons=!0,this.init()}init(){this.useToggleEvents=!0}getEditorContainer(){const t=document.createElement("div");return t.classList.add("jedi-editor-container"),t}getFieldset(){const t=document.createElement("fieldset");return t.classList.add("jedi-editor-fieldset"),t.setAttribute("role","group"),t}getLegend(t){const e=document.createElement("div"),s=document.createElement("div"),i=document.createElement("legend"),n=document.createElement("label"),a=document.createElement("i"),r=document.createElement("span"),o=document.createElement("input"),l="legend-label-"+t.id,c="legend-dummy-input-"+t.id;return e.classList.add("jedi-editor-legend-left"),s.classList.add("jedi-editor-legend-right"),s.style.display="flex",s.style.alignItems="center",i.classList.add("jedi-editor-legend"),i.style.fontSize="inherit",i.setAttribute("aria-labelledby",l),n.classList.add("jedi-title"),n.classList.add("jedi-legend"),n.setAttribute("id",l),n.innerHTML=t.content,t.titleIconClass&&(this.addIconClass(a,t.titleIconClass),a.style.marginRight="4px"),n.style.marginRight="4px",r.classList.add("jedi-editor-info-container"),r.setAttribute("for",c),o.setAttribute("aria-hidden","true"),o.setAttribute("type","hidden"),o.setAttribute("id",c),this.visuallyHidden(o),t.titleHidden&&this.visuallyHidden(n),i.appendChild(e),i.appendChild(s),t.titleIconClass&&e.appendChild(a),e.appendChild(n),e.appendChild(r),n.appendChild(o),{left:e,right:s,legend:i,legendText:n,infoContainer:r}}getRadioFieldset(){const t=document.createElement("fieldset");return t.classList.add("jedi-editor-radio-fieldset"),t.setAttribute("role","group"),t.style.marginBottom="15px",t.style.fontSize="inherit",t}getRadioLegend(t){const e="legend-label-"+t.id,s=document.createElement("legend"),i=document.createElement("label"),n=document.createElement("i"),a=document.createElement("input");return s.classList.add("jedi-editor-legend"),s.style.fontSize="inherit",s.setAttribute("aria-labelledby",e),i.classList.add("jedi-title"),i.classList.add("jedi-label"),i.innerHTML=t.content,i.setAttribute("id",e),i.style.marginRight="4px",a.setAttribute("aria-hidden","true"),a.setAttribute("type","hidden"),a.setAttribute("disabled",""),this.visuallyHidden(a),t.titleIconClass&&(this.addIconClass(n,t.titleIconClass),n.style.marginRight="4px",s.appendChild(n)),s.appendChild(i),i.appendChild(a),{legend:s,legendText:i,icon:n}}getLabel(t){const e=document.createElement("label"),s=document.createElement("span"),i=document.createElement("i");return e.setAttribute("for",t.for),e.classList.add("jedi-title"),e.classList.add("jedi-label"),s.innerHTML=t.text,t.visuallyHidden&&this.visuallyHidden(e),t.titleIconClass&&(this.addIconClass(i,t.titleIconClass),i.style.marginRight="4px"),t.titleIconClass&&e.appendChild(i),s.style.marginRight="4px",e.appendChild(s),{label:e,labelText:s,icon:i}}getFakeLabel(t){const e=document.createElement("label"),s=document.createElement("span"),i=document.createElement("i"),n=document.createElement("input");return e.setAttribute("for",t.for),e.classList.add("jedi-title"),e.classList.add("jedi-label"),t.visuallyHidden&&this.visuallyHidden(e),s.innerHTML=t.content,t.titleIconClass&&(this.addIconClass(i,t.titleIconClass),i.style.marginRight="4px"),n.setAttribute("aria-hidden","true"),n.setAttribute("type","hidden"),n.setAttribute("disabled",""),n.setAttribute("id",t.for),this.visuallyHidden(n),t.titleIconClass&&e.appendChild(i),s.style.marginRight="4px",e.appendChild(s),e.appendChild(n),{label:e,labelText:s,icon:i,dummyInput:n}}addIconClass(t,e=""){let s=e.split(" ");s=s.filter(t=>t.length>0),s&&s.forEach(e=>{t.classList.add(e)})}getOptInWrapper(){const t=document.createElement("span"),e=document.createElement("span"),s=document.createElement("span");return t.classList.add("jedi-opt-in-wrapper"),t.style.display="flex",t.style.alignItems="center",e.classList.add("jedi-opt-in-container"),s.classList.add("jedi-title-container"),s.style.flexGrow="1",t.appendChild(s),t.appendChild(e),{optInWrapper:t,optInContainer:e,otherContainer:s}}getCard(){const t=document.createElement("div");return t.classList.add("jedi-editor-card"),t}getCardHeader(){const t=document.createElement("div");return t.classList.add("jedi-editor-card-header"),t}getCardBody(){const t=document.createElement("div");return t.classList.add("jedi-editor-card-body"),t}getArrayFooter(){const t=document.createElement("div");return t.classList.add("jedi-array-footer"),t.style.display="flex",t.style.alignItems="center",t}getActionsSlot(){const t=document.createElement("div");return t.classList.add("jedi-actions-slot"),t}getArrayActionsSlot(){const t=document.createElement("span");return t.classList.add("jedi-array-actions-slot"),t}getChildrenSlot(){const t=document.createElement("div");return t.classList.add("jedi-children-slot"),t}getSwitcherSlot(){const t=document.createElement("span");return t.classList.add("jedi-switcher-slot"),t}getSwitcherOwner(){const t=document.createElement("span");return t.classList.add("jedi-switcher-owner"),t.style.marginInlineStart="0.25rem",t}getMessagesSlot(t={}){const e=document.createElement("div");return e.classList.add("jedi-messages-slot"),e.setAttribute("aria-atomic","false"),e.setAttribute("aria-live","polite"),t.id&&e.setAttribute("id",t.id),e}getControlSlot(){const t=document.createElement("div");return t.classList.add("jedi-control-slot"),t}getPropertiesToggle(t){const e=this.getButton(t);return e.classList.add("jedi-properties-toggle"),e.addEventListener("click",()=>{t.propertiesContainer.open?t.propertiesContainer.close():(t.propertiesContainer.showModal(),t.propertiesContainer.focus())}),e}getQuickAddPropertyToggle(t){const e=this.getButton(t);return e.classList.add("jedi-quick-add-property-toggle"),e.addEventListener("click",()=>{t.propertiesContainer.open?t.propertiesContainer.close():t.propertiesContainer.showModal()}),e}getCollapse(t){const e=document.createElement("div");return e.classList.add("jedi-collapse"),e.setAttribute("id",t.id),this.useToggleEvents&&t.startCollapsed&&(e.style.display="none"),e}getCollapseToggle(t){const e=this.getButton(t);e.classList.add("jedi-collapse-toggle"),e.setAttribute("always-enabled",""),this.useToggleEvents&&e.addEventListener("click",()=>{"none"===t.collapse.style.display?t.collapse.style.display="block":t.collapse.style.display="none"}),e.style.transition="transform 0.1s ease",t.startCollapsed&&e.classList.add("collapsed");const s=()=>{const t=e.classList.contains("collapsed");e.setAttribute("aria-expanded",t?"false":"true"),e.style.transform=t?"rotate(90deg)":"rotate(0deg)"};return s(),this.useToggleEvents&&e.addEventListener("click",()=>e.classList.toggle("collapsed")),new MutationObserver(s).observe(e,{attributes:!0,attributeFilter:["class"]}),e}getPropertiesSlot(t){const e=this.getDialog();return e.classList.add("jedi-properties-slot"),e.setAttribute("id",t.id),e.addEventListener("click",t=>{t.target===e&&e.close()}),e}getQuickAddPropertySlot(t){const e=this.getDialog();return e.classList.add("jedi-quick-add-property-slot"),e.setAttribute("id",t.id),e.addEventListener("click",t=>{t.target===e&&e.close()}),e}getJsonData(t){const e=this.getDialog();e.classList.add("jedi-json-data"),e.setAttribute("id",t.id),e.addEventListener("click",t=>{t.target===e&&e.close()});const s=this.getButton({id:"jedi-json-data-toggle-"+t.id,icon:"edit"});s.classList.add("jedi-json-data-toggle"),s.addEventListener("click",()=>{e.open?e.close():e.showModal()});const i=document.createElement("div"),{label:n}=this.getLabel({for:"json-data-input-"+t.id,text:"JSON Data"}),a=document.createElement("textarea");a.setAttribute("id","json-data-input-"+t.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-copy-"+t.id,icon:"copy"});r.classList.add("jedi-json-data-copy");const o=this.getButton({id:"jedi-json-data-save-"+t.id,icon:"save"});return e.appendChild(i),i.appendChild(n),i.appendChild(a),e.appendChild(r),e.appendChild(o),{dialog:e,toggle:s,control:i,input:a,copyBtn:r,saveBtn:o}}getPropertiesAriaLive(){const t=document.createElement("div");return t.classList.add("jedi-properties-aria-live"),t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t}getAriaLiveMessage(t){const e=document.createElement("p");return e.classList.add("jedi-aria-live-message"),e.textContent=t,this.visuallyHidden(e),e}getPropertiesActivators(){const t=document.createElement("div");return t.classList.add("jedi-properties-activators"),t}getPropertiesGroup(t={}){if(t.accordion&&t.name){const e="jedi-prop-group-"+t.name.toLowerCase().replace(/[^a-z0-9]+/g,"-"),s=this.getAccordionItem({title:t.name,id:e});return{container:s.container,group:s.body,name:s.toggle}}const e=document.createElement("div");e.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=t.name??"",e.appendChild(i),e.appendChild(s),{container:e,group:s,name:i}}getBtnGroup(){const t=document.createElement("span");return t.classList.add("jedi-btn-group"),t}getButton(t={}){const e=document.createElement("button"),s=document.createElement("span"),i=document.createElement("i");return e.classList.add("jedi-btn"),e.setAttribute("type","button"),t.value&&(e.value=t.value),t.id&&e.setAttribute("id",t.id),s.textContent=" "+t.content,this.btnIcons&&this.icons&&t.icon&&(this.addIconClass(i,this.icons[t.icon]),i.setAttribute("title",t.content)),this.btnContents||this.visuallyHidden(s),this.icons&&t.icon&&e.appendChild(i),e.appendChild(s),e}getXButton(t={}){const e=document.createElement("button"),s=document.createElement("span");e.classList.add("jedi-x-button"),e.setAttribute("type","button"),s.classList.add("jedi-x-button-label"),s.innerHTML=t.label??"",e.appendChild(s);const i=f(t.attributes)?t.attributes:{};for(const[n,a]of Object.entries(i))"class"===n?String(a).split(" ").forEach(t=>{t&&e.classList.add(t)}):e.setAttribute(n,a);return e}getAddPropertyButton(t){const e=this.getButton(t);return e.classList.add("jedi-add-property-btn"),e}getArrayBtnAdd(t){const e=this.getButton({content:t.content,icon:"add"});return e.classList.add("jedi-array-add"),e}getArrayBtnDeleteAll(t){const e=this.getButton({content:t.content,icon:"delete"});return e.classList.add("jedi-array-delete-all"),e}getAddAfterItemBtn(t){const e=this.getButton({content:t.content,icon:"add"});return e.classList.add("jedi-array-add-after"),e}getDeleteItemBtn(t){const e=this.getButton({content:t.content,icon:"delete"});return e.classList.add("jedi-array-delete"),e}getMoveUpItemBtn(t){const e=this.getButton({content:t.content,icon:"moveUp"});return e.classList.add("jedi-array-move-up"),e}getMoveDownItemBtn(t){const e=this.getButton({content:t.content,icon:"moveDown"});return e.classList.add("jedi-array-move-down"),e}getDragItemBtn(t){const e=this.getButton({content:t.content,icon:"drag"});return e.classList.add("jedi-array-drag"),e}getDescription(t={}){const e=document.createElement("small");return e.style.display="block",e.classList.add("jedi-description"),t.content&&(e.innerHTML=t.content),t.id&&e.setAttribute("id",t.id),e}getInfo(t={}){const e=document.createElement("span"),s=document.createElement("a"),i=document.createElement("span"),n=document.createElement("i");if(e.classList.add("jedi-info-button-container"),e.style.display="inline-block",s.setAttribute("href","#"),s.classList.add("jedi-info-button"),f(t.attributes))for(const[a,r]of Object.entries(t.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),e.appendChild(s),{container:e,info:s}}getDialog(){const t=document.createElement("dialog");return t.classList.add("jedi-modal-dialog"),t.style.border="1px solid #6c757d",t.style.borderRadius="4px",t.style.minWidth="400px",t.style.maxWidth="90vw",t}infoAsModal(t,e,s={}){const i=this.getDialog(),n=document.createElement("div"),a=document.createElement("div"),r=this.getButton({content:"Close",icon:"close"});i.setAttribute("id",e+"-modal"),n.classList.add("jedi-modal-title"),u(s.title)&&(n.innerHTML=s.title),a.classList.add("jedi-modal-content"),u(s.content)&&(a.innerHTML=s.content),r.classList.add("jedi-modal-close"),r.setAttribute("always-enabled",""),i.addEventListener("click",t=>{t.target===i&&i.close()}),r.addEventListener("click",()=>{i.close()}),t.info.addEventListener("click",()=>{i.showModal()}),t.container.appendChild(i),i.appendChild(n),i.appendChild(a),i.appendChild(r)}getPlaceholderControl(t){var e;const s=t.id+"-description",i=t.id+"-messages",n=document.createElement("div"),a=document.createElement("div"),r=this.getActionsSlot(),o=this.getInfo(t.info),{label:l,labelText:c}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),d=this.getDescription({content:t.description,id:s}),h=this.getMessagesSlot({id:i}),p=this.getSwitcherSlot();return"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(o,t.id,t.info),n.appendChild(l),f(t.info)&&n.appendChild(o.container),n.appendChild(p),n.appendChild(a),n.appendChild(d),n.appendChild(h),n.appendChild(r),{container:n,placeholder:a,label:l,info:o,labelText:c,description:d,messages:h,actions:r,switcherSlot:p}}getObjectControl(t){var e;const s="collapse-"+t.id,i=document.createElement("div"),n=this.getActionsSlot(),a=this.getCardBody(),r=this.getPropertiesAriaLive(),o=this.getMessagesSlot(),l=this.getChildrenSlot();(t.isAccordion||t.isAccordionProperties)&&(l.id="accordion-"+t.id);const c=this.getPropertiesActivators(),d=this.getInfo(t.info),h=this.getDescription({content:t.description}),p=this.getJsonData({id:"json-data-"+t.id}),u=this.getPropertiesSlot({id:"properties-slot-"+t.id}),m=this.getPropertiesToggle({content:t.propertiesToggleContent,id:"properties-slot-toggle-"+t.id,icon:"properties",propertiesContainer:u}),g=this.getCollapse({id:s,startCollapsed:t.startCollapsed}),b=this.getCollapseToggle({content:t.collapseToggleContent,id:"collapse-toggle-"+t.id,icon:"collapse",collapseId:s,collapse:g,startCollapsed:t.startCollapsed}),v=this.getQuickAddPropertySlot({id:"quick-add-property-slot-"+t.id}),y=this.getInputControl({type:"text",id:"jedi-quick-add-property-input-"+t.id,title:t.addPropertyContent}),C=this.getAddPropertyButton({content:t.addPropertyContent,icon:"add"}),E=this.getQuickAddPropertyToggle({content:t.addPropertyContent,icon:"add",propertiesContainer:v}),L=this.getFieldset(),{legend:x,left:I,infoContainer:A,legendText:w,right:S}=this.getLegend({content:t.title,id:t.id,titleHidden:t.titleHidden,titleIconClass:t.titleIconClass});if("modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(d,t.id,t.info),i.appendChild(L),i.appendChild(u),i.appendChild(v),t.addProperty&&(v.appendChild(y.container),v.appendChild(C)),t.editJsonData&&i.appendChild(p.dialog),L.appendChild(x),f(t.info))for(;d.container.firstChild;)A.appendChild(d.container.firstChild);L.appendChild(g),g.appendChild(a),t.description&&a.appendChild(h),a.appendChild(o);const j=this.getSwitcherSlot();return I.appendChild(j),!1===t.readOnly&&S.appendChild(n),a.appendChild(l),t.editJsonData&&n.appendChild(p.toggle),t.addProperty&&n.appendChild(E),t.enablePropertiesToggle&&(n.appendChild(m),u.appendChild(r),u.appendChild(c)),t.enableCollapseToggle&&n.appendChild(b),{container:i,collapse:g,collapseToggle:b,description:h,body:a,actions:n,messages:o,childrenSlot:l,propertiesToggle:m,jsonData:p,propertiesContainer:u,quickAddPropertyContainer:v,quickAddPropertyControl:y,quickAddPropertyBtn:C,quickAddPropertyToggle:E,ariaLive:r,propertiesActivators:c,legend:x,legendText:w,infoContainer:A,right:S,switcherSlot:j}}getObjectControlFlat(t){var e;const s=document.createElement("div"),i=this.getActionsSlot(),n=document.createElement("div"),a=this.getPropertiesAriaLive(),r=this.getMessagesSlot(),o=this.getChildrenSlot();(t.isAccordion||t.isAccordionProperties)&&(o.id="accordion-"+t.id);const l=this.getPropertiesActivators(),c=this.getInfo(t.info),d=this.getDescription({content:t.description}),h=this.getJsonData({id:"json-data-"+t.id}),p=this.getPropertiesSlot({id:"properties-slot-"+t.id}),u=this.getPropertiesToggle({content:t.propertiesToggleContent,id:"properties-slot-toggle-"+t.id,icon:"properties",propertiesContainer:p}),m=this.getQuickAddPropertySlot({id:"quick-add-property-slot-"+t.id}),g=this.getInputControl({type:"text",id:"jedi-quick-add-property-input-"+t.id,title:t.addPropertyContent}),f=this.getAddPropertyButton({content:t.addPropertyContent,icon:"add"}),b=this.getQuickAddPropertyToggle({content:t.addPropertyContent,icon:"add",propertiesContainer:m}),v=document.createElement("div"),y=document.createElement("div"),C=document.createElement("div"),E=this.getSwitcherSlot(),L=document.createElement("div");L.classList.add("jedi-editor-legend"),L.style.display="flex",L.style.justifyContent="space-between",L.style.alignItems="center";const x=document.createElement("div");x.classList.add("jedi-editor-legend-left");const I=document.createElement("div");I.classList.add("jedi-editor-legend-right"),I.style.display="flex",I.style.alignItems="center",L.appendChild(x),L.appendChild(I);const A=document.createElement("label");A.classList.add("jedi-title","jedi-legend"),A.textContent=t.title||"",t.titleHidden&&this.visuallyHidden(A),x.appendChild(A),x.appendChild(E),"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(c,t.id,t.info),t.editJsonData&&s.appendChild(h.dialog);const w=document.createElement("div");return w.appendChild(L),s.appendChild(w),t.addProperty&&(m.appendChild(g.container),m.appendChild(f)),t.description&&n.appendChild(d),n.appendChild(r),!1===t.readOnly&&I.appendChild(i),n.appendChild(o),w.appendChild(n),w.appendChild(p),w.appendChild(m),t.editJsonData&&i.appendChild(h.toggle),t.addProperty&&i.appendChild(b),t.enablePropertiesToggle&&(i.appendChild(u),p.appendChild(a),p.appendChild(l)),t.enableCollapseToggle&&i.appendChild(y),{container:s,collapse:v,collapseToggle:y,description:d,body:n,actions:i,messages:r,childrenSlot:o,propertiesToggle:u,jsonData:h,propertiesContainer:p,quickAddPropertyContainer:m,quickAddPropertyControl:g,quickAddPropertyBtn:f,quickAddPropertyToggle:b,ariaLive:a,propertiesActivators:l,legend:L,legendText:A,infoContainer:C,right:I,switcherSlot:E,innerWrapper:w}}initHorizontalObject(t){}adaptForHorizontalInputControl(t,e,s){}adaptForHorizontalTextareaControl(t,e,s){}adaptForHorizontalSelectControl(t,e,s){}adaptForHorizontalCheckboxControl(t,e,s){}adaptForHorizontalRadiosControl(t,e,s){}adaptForHorizontalCheckboxesControl(t,e,s){}adaptForHorizontalArrayControl(t,e,s,i){}adaptForHorizontalObjectControl(t,e,s,i){}adaptForHorizontalMultipleControl(t,e,s,i){}getAccordionItem(t){const e=document.createElement("div");e.classList.add("jedi-accordion-item");const s=document.createElement("div");s.classList.add("jedi-accordion-header");const i=document.createElement("button");i.type="button",i.classList.add("jedi-accordion-toggle","collapsed");const n=document.createElement("i");n.classList.add("jedi-accordion-chevron"),this.icons&&this.icons.collapse?this.addIconClass(n,this.icons.collapse):n.textContent="▾",n.style.display="inline-block",n.style.transition="transform 0.1s ease",n.style.marginRight="0.5em";const a=document.createElement("span");a.style.marginRight="0.5em",a.textContent=t.title,i.appendChild(n),i.appendChild(a);const r=document.createElement("div");r.classList.add("jedi-accordion-collapse"),r.style.display="none";const o=document.createElement("div");o.classList.add("jedi-accordion-body");const l=()=>{const t=i.classList.contains("collapsed");n.style.transform=t?"rotate(0deg)":"rotate(-180deg)"};return l(),this.useToggleEvents&&i.addEventListener("click",()=>{"none"===r.style.display?r.style.display="block":r.style.display="none",i.classList.toggle("collapsed")}),new MutationObserver(l).observe(i,{attributes:!0,attributeFilter:["class"]}),s.appendChild(i),r.appendChild(o),e.appendChild(s),e.appendChild(r),{container:e,header:s,toggle:i,collapse:r,body:o}}getArrayControl(t){var e;const s="collapse-"+t.id,i=document.createElement("div"),n=this.getActionsSlot(),a=this.getCardBody(),r=this.getMessagesSlot(),o=this.getChildrenSlot(),l=this.getBtnGroup(),d=this.getArrayBtnAdd({content:t.arrayAddContent}),h=this.getArrayBtnAdd({content:t.arrayFooterAddContent}),p=!0===t.arrayDeleteAll?this.getArrayBtnDeleteAll({content:t.arrayDeleteAllContent}):null,u=!0===t.arrayFooterDeleteAll?this.getArrayBtnDeleteAll({content:t.arrayFooterDeleteAllContent}):null,m=this.getBtnGroup(),g=this.getArrayFooter(),b=this.getFieldset(),v=this.getInfo(t.info),{legend:y,left:C,legendText:E,infoContainer:L,right:x}=this.getLegend({content:t.title,id:t.id,titleHidden:t.titleHidden,titleIconClass:t.titleIconClass}),I=this.getDescription({content:t.description}),A=this.getJsonData({id:"json-data-"+t.id}),w=this.getCollapse({id:s,startCollapsed:t.startCollapsed}),S=this.getCollapseToggle({content:t.collapseToggleContent,id:"collapse-toggle-"+t.id,icon:"collapse",collapseId:s,collapse:w,startCollapsed:t.startCollapsed});if("modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(v,t.id,t.info),i.appendChild(b),t.editJsonData&&i.appendChild(A.dialog),b.appendChild(y),f(t.info))for(;v.container.firstChild;)L.appendChild(v.container.firstChild);b.appendChild(w),w.appendChild(a),t.description&&a.appendChild(I),a.appendChild(r);const j=this.getSwitcherSlot();C.appendChild(j),!1===t.readOnly&&x.appendChild(n),n.appendChild(l),t.editJsonData&&l.appendChild(A.toggle),p&&l.appendChild(p),c(t.arrayAdd)&&!0===t.arrayAdd&&l.appendChild(d),a.appendChild(o),t.enableCollapseToggle&&n.appendChild(S);return(!0===t.arrayFooterAdd||!0===t.arrayFooterDeleteAll)&&!1===t.readOnly&&(u&&m.appendChild(u),!0===t.arrayFooterAdd&&m.appendChild(h),"right"===t.arrayFooterButtonsPosition&&(m.style.marginLeft="auto"),g.appendChild(m),w.appendChild(g)),{container:i,collapseToggle:S,collapse:w,body:a,actions:n,messages:r,childrenSlot:o,btnGroup:l,addBtn:d,jsonData:A,legend:y,legendText:E,infoContainer:L,switcherSlot:j,footerAddBtn:h,deleteAllBtn:p,footerDeleteAllBtn:u}}getArrayItem(t={}){const e=document.createElement("div"),s=document.createElement("div"),i=this.getActionsSlot(),n=this.getArrayActionsSlot();return i.style.textAlign="right",e.classList.add("jedi-array-item"),s.classList.add("jedi-array-item-body"),c(t.index)&&e.setAttribute("jedi-array-item-index",t.index),i.appendChild(n),e.appendChild(i),e.appendChild(s),{container:e,actions:i,arrayActions:n,body:s}}getMultipleControl(t={}){const e=document.createElement("div"),s=document.createElement("div"),i=document.createElement("div"),n=this.getMessagesSlot(),a=this.getChildrenSlot(),r=T(5),o=["select","radios","radios-inline","modal","select-inline"].includes(t.switcher)?t.switcher:"select";let l;return"select"===o&&(l=this.getSwitcherSelect({values:t.switcherOptionValues,titles:t.switcherOptionsLabels,title:t.id+"-switcher",id:t.id+"-switcher-"+r,label:t.id+"-switcher-"+r,titleHidden:!0,readOnly:t.readOnly,noSpacing:!0})),"radios"!==o&&"radios-inline"!==o||(l=this.getSwitcherRadios({values:t.switcherOptionValues,titles:t.switcherOptionsLabels,title:t.id+"-switcher",id:t.id+"-switcher-"+r,label:t.id+"-switcher-"+r,titleHidden:!0,readOnly:t.readOnly,inline:"radios-inline"===o,noSpacing:!0})),"modal"===o&&(l=this.getSwitcherModal({values:t.switcherOptionValues,titles:t.switcherOptionsLabels,id:t.id+"-switcher-"+r,readOnly:t.readOnly})),"select-inline"===o&&(l=this.getSwitcherSelectInline({values:t.switcherOptionValues,titles:t.switcherOptionsLabels,id:t.id+"-switcher-"+r,readOnly:t.readOnly})),l.container.classList.add("jedi-switcher"),e.appendChild(s),e.appendChild(i),s.appendChild(l.container),i.appendChild(n),i.appendChild(a),{container:e,header:s,body:i,messages:n,childrenSlot:a,switcher:l}}adaptForTableMultipleControl(t,e){}getIfThenElseControl(t){const e=document.createElement("div"),s=this.getCard(),i=this.getActionsSlot(),n=this.getCardBody(),a=this.getMessagesSlot(),r=this.getChildrenSlot(),o=this.getCardHeader({content:t.title,titleHidden:t.titleHidden}),l=this.getDescription({content:t.description});return n.appendChild(l),e.appendChild(a),e.appendChild(r),{container:e,card:s,header:o,body:n,actions:i,messages:a,childrenSlot:r}}getNullControl(t){var e;const s=t.id+"-description",i=document.createElement("div"),n=this.getActionsSlot(),a=this.getMessagesSlot(),r=document.createElement("br"),o=this.getInfo(t.info),{label:l,labelText:c}=this.getFakeLabel({for:t.id,content:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),d=this.getDescription({content:t.description,id:s}),h=this.getSwitcherSlot();return"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(o,t.id,t.info),i.appendChild(l),f(t.info)&&i.appendChild(o.container),i.appendChild(h),i.appendChild(r),i.appendChild(d),i.appendChild(a),i.appendChild(n),{container:i,label:l,info:o,labelText:c,description:d,messages:a,actions:n,switcherSlot:h}}getTextareaControl(t){var e;const s=t.id+"-description",i=t.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("textarea"),l=this.getInfo(t.info),{label:c,labelText:d}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),h=this.getDescription({content:t.description,id:s}),p=this.getMessagesSlot({id:i}),u=this.getSwitcherSlot();return o.setAttribute("aria-describedby",n),o.setAttribute("id",t.id),o.setAttribute("name",t.id),o.style.width="100%","modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(l,t.id,t.info),a.appendChild(c),f(t.info)&&a.appendChild(l.container),a.appendChild(u),a.appendChild(o),a.appendChild(h),a.appendChild(p),a.appendChild(r),{container:a,input:o,label:c,info:l,labelText:d,description:h,messages:p,actions:r,switcherSlot:u}}adaptForTableTextareaControl(t){this.visuallyHidden(t.label),this.visuallyHidden(t.description),t.input.setAttribute("rows","1")}getInputControl(t){var e;const s=t.id+"-messages",i=t.id+"-description",n=s+" "+i,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("input"),l=this.getInfo(t.info),{label:c,labelText:d}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),h=this.getDescription({content:t.description,id:i}),p=this.getMessagesSlot({id:s}),u=this.getSwitcherSlot();return o.setAttribute("aria-describedby",n),o.setAttribute("type",t.type),o.setAttribute("id",t.id),o.setAttribute("name",t.id),o.style.width="100%",a.appendChild(c),"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(l,t.id,t.info),f(t.info)&&a.appendChild(l.container),a.appendChild(u),a.appendChild(o),a.appendChild(h),a.appendChild(p),a.appendChild(r),{container:a,input:o,label:c,info:l,labelText:d,description:h,messages:p,actions:r,switcherSlot:u}}getInputRangeControl(t){const e=this.getInputControl(t),s=document.createElement("output");return s.className="range-output",s.style.marginLeft="10px",s.style.fontWeight="bold",e.input.parentNode.insertBefore(s,e.input.nextSibling),{...e,output:s}}adaptForTableInputControl(t){this.visuallyHidden(t.label),this.visuallyHidden(t.description)}getRadiosControl(t){var e;const s=t.id+"-messages",i=t.id+"-description",n=document.createElement("div"),a=this.getRadioFieldset(),r=this.getInfo(t.info),{legend:o,legendText:l}=this.getRadioLegend({content:t.title,id:t.id,for:t.id,titleIconClass:t.titleIconClass}),d=this.getMessagesSlot({id:s}),h=this.getDescription({content:t.description,id:i});"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(r,t.id,t.info),t.titleHidden&&this.visuallyHidden(o);const p=[],u=[],m=[],g=[];t.values.forEach((e,n)=>{const a=s+" "+i,r=document.createElement("div"),o=document.createElement("input"),l=document.createElement("label"),d=document.createElement("span");o.setAttribute("type","radio"),o.setAttribute("id",t.id+"-"+n),o.setAttribute("name",t.id),o.setAttribute("value",e),o.setAttribute("aria-describedby",a),l.setAttribute("for",t.id+"-"+n),l.classList.add("jedi-title"),l.classList.add("jedi-label"),g.push(d),c(t.titles)&&c(t.titles[n])&&(d.textContent=t.titles[n]??e),p.push(r),u.push(o),m.push(l)});const b=this.getSwitcherSlot();return n.appendChild(a),a.appendChild(o),o.appendChild(b),f(t.info)&&l.after(r.container),p.forEach((t,e)=>{a.appendChild(p[e]),t.appendChild(u[e]),t.appendChild(m[e]),m[e].appendChild(g[e])}),a.appendChild(h),a.appendChild(d),{container:n,fieldset:a,legend:o,legendText:l,info:r,radios:u,labels:m,labelTexts:g,radioControls:p,description:h,messages:d,switcherSlot:b}}adaptForTableRadiosControl(t){this.visuallyHidden(t.legend),this.visuallyHidden(t.description)}getCheckboxControl(t){var e;const s=t.id+"-description",i=t.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("span"),l=document.createElement("input"),c=this.getInfo(t.info),{label:d,labelText:h}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),p=this.getDescription({content:t.description,id:s}),u=this.getMessagesSlot({id:i});l.setAttribute("type","checkbox"),l.setAttribute("id",t.id),l.setAttribute("name",t.id),l.setAttribute("aria-describedby",n);const m=this.getSwitcherSlot();return"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(c,t.id,t.info),a.appendChild(o),a.appendChild(r),o.appendChild(l),o.appendChild(d),f(t.info)&&o.appendChild(c.container),o.appendChild(m),o.appendChild(p),o.appendChild(u),{container:a,formGroup:o,input:l,label:d,info:c,labelText:h,description:p,messages:u,actions:r,switcherSlot:m}}adaptForTableCheckboxControl(t,e){this.visuallyHidden(t.label),this.visuallyHidden(t.description)}getCheckboxesControl(t){var e;const s=t.id+"-messages",i=t.id+"-description",n=document.createElement("div"),a=this.getRadioFieldset(),r=this.getInfo(t.info),{legend:o,legendText:l}=this.getRadioLegend({content:t.title,id:t.id,for:t.id,titleIconClass:t.titleIconClass}),c=this.getMessagesSlot({id:s}),d=this.getDescription({content:t.description,id:i});t.titleHidden&&this.visuallyHidden(o);const h=[],p=[],u=[],m=[];t.values.forEach((e,n)=>{const a=s+" "+i,r=t.id+"-"+n,o=document.createElement("div"),l=document.createElement("input"),c=document.createElement("label"),d=document.createElement("span");l.setAttribute("type","checkbox"),l.setAttribute("id",r),l.setAttribute("name",t.id),l.setAttribute("value",e),l.setAttribute("aria-describedby",a),c.setAttribute("for",r),t.titles&&t.titles[n]&&(d.textContent=t.titles[n]),h.push(o),p.push(l),m.push(d),u.push(c)}),"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(r,t.id,t.info);const g=this.getSwitcherSlot();return n.appendChild(a),a.appendChild(o),o.appendChild(g),f(t.info)&&l.after(r.container),h.forEach((t,e)=>{a.appendChild(h[e]),t.appendChild(p[e]),t.appendChild(u[e]),u[e].appendChild(m[e])}),a.appendChild(d),a.appendChild(c),{container:n,fieldset:a,legend:o,legendText:l,checkboxes:p,labels:u,labelTexts:m,checkboxControls:h,description:d,messages:c,switcherSlot:g}}adaptForTableCheckboxesControl(t,e){this.visuallyHidden(t.legend),this.visuallyHidden(t.description)}getSelectControl(t){var e;const s=t.id+"-description",i=t.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("select"),l=this.getInfo(t.info),{label:c,labelText:d}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),h=this.getMessagesSlot({id:i}),p=this.getDescription({content:t.description,id:s});o.setAttribute("id",t.id),o.setAttribute("name",t.id),o.setAttribute("aria-describedby",n),t.values.forEach((e,s)=>{const i=document.createElement("option");i.setAttribute("value",e),t.titles&&t.titles[s]&&(i.textContent=t.titles[s]),o.appendChild(i)});const u=this.getSwitcherSlot();return"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(l,t.id,t.info),a.appendChild(c),f(t.info)&&a.appendChild(l.container),a.appendChild(u),a.appendChild(o),a.appendChild(p),a.appendChild(h),a.appendChild(r),{container:a,input:o,label:c,info:l,labelText:d,description:p,messages:h,actions:r,switcherSlot:u}}adaptForTableSelectControl(t){this.visuallyHidden(t.label),this.visuallyHidden(t.description)}getSwitcherSelect(t){return this.getSelectControl(t)}getSwitcherRadios(t){return this.getRadiosControl(t)}getSwitcherModal(t){const e=document.createElement("span"),s=document.createElement("span"),i=this.getDialog(),n=document.createElement("div"),a=[],r=document.createElement("span"),o=document.createElement("i");return e.classList.add("jedi-switcher-modal"),s.classList.add("jedi-switcher-modal-trigger"),s.setAttribute("role","button"),s.setAttribute("tabindex","0"),s.setAttribute("aria-haspopup","dialog"),s.setAttribute("aria-label","Switch type"),s.appendChild(r),this.icons&&this.icons.switcher&&(this.addIconClass(o,this.icons.switcher),s.appendChild(document.createTextNode(" ")),s.appendChild(o)),n.classList.add("jedi-modal-content"),t.values.forEach((e,s)=>{const i=document.createElement("button");i.setAttribute("type","button"),i.setAttribute("aria-label",`Select: ${t.titles[s]}`),i.textContent=t.titles[s],i.dataset.switcherValue=e,i.classList.add("jedi-switcher-option-btn"),a.push(i),n.appendChild(i)}),s.addEventListener("click",()=>{i.showModal()}),s.addEventListener("keydown",t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i.showModal())}),i.addEventListener("click",t=>{t.target===i&&i.close()}),e.appendChild(s),e.appendChild(i),i.appendChild(n),{container:e,trigger:s,triggerText:r,dialog:i,dialogBody:n,optionButtons:a}}setSwitcherOptionActive(t,e){t.classList.toggle("jedi-switcher-option-active",e)}getSwitcherSelectInline(t){const e=document.createElement("span"),s=document.createElement("select");return e.classList.add("jedi-switcher-select-inline"),e.style.display="inline-block",s.classList.add("jedi-switcher-select-inline-input"),s.style.width="auto",s.setAttribute("aria-label","Switch type"),t.readOnly&&s.setAttribute("disabled",""),t.values.forEach((e,i)=>{const n=document.createElement("option");n.setAttribute("value",e),t.titles&&t.titles[i]&&(n.textContent=t.titles[i]),s.appendChild(n)}),e.appendChild(s),{container:e,input:s}}getAlert(t){return this.getErrorFeedback(t)}getErrorFeedback(t){const e=document.createElement("div"),s=document.createElement("small"),i=document.createElement("span");return s.textContent=t.message,i.textContent="⚠ ",i.setAttribute("aria-hidden","true"),e.classList.add("jedi-error-message"),e.appendChild(i),e.appendChild(s),e}getWarningFeedback(t){const e=document.createElement("div"),s=document.createElement("small"),i=document.createElement("span");return s.textContent=t.message,i.textContent="⚠ ",i.classList.add("jedi-warning-message"),i.setAttribute("aria-hidden","true"),e.classList.add("jedi-warning-message"),e.appendChild(i),e.appendChild(s),e}getRow(){const t=document.createElement("div");return t.classList.add("jedi-row"),t}getCol(t,e,s,i,n){const a=document.createElement("div");return a.classList.add("jedi-col"),a.classList.add("jedi-col-xs-"+t),a.classList.add("jedi-col-sm-"+e),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 t=document.createElement("div");return t.classList.add("clearfix"),t}getTabList(){const t=document.createElement("ul");return t.classList.add("jedi-nav-list"),t}styleLegendWarning(t){}getTab(t){const e=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-"+t.id),n.classList.add("jedi-nav-text"),n.textContent=t.title,t.hasErrors){const s=document.createElement("span");s.classList.add("jedi-nav-warning"),s.textContent="⚠ ",n.insertBefore(s,n.firstChild),t.navWarningMessage&&e.setAttribute("title",t.navWarningMessage)}return s.appendChild(i),s.appendChild(n),e.appendChild(s),{list:e,link:s,arrayActions:i,text:n}}getTabContent(){const t=document.createElement("div");return t.classList.add("tab-content"),t}getTable(){const t=document.createElement("div"),e=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return e.appendChild(s),e.appendChild(i),t.appendChild(e),{container:t,table:e,thead:s,tbody:i}}getTableDefinition(t={}){const e=document.createElement("td");return t.isButtonColumn&&(e.style.width="1%"),e.style.whiteSpace="nowrap",e}getTableHeader(t={}){const e=document.createElement("th");return e.style.paddingLeft="12px",e.style.paddingRight="12px",e.style.textWrap="nowrap",e.style.verticalAlign="bottom",t.minWidth&&(e.style.minWidth=t.minWidth),e}setTabPaneAttributes(t,e,s){t.setAttribute("id","tab-pane-"+s),t.classList.add("jedi-tab-pane")}visuallyHidden(t){t.style.position="absolute",t.style.width="1px",t.style.height="1px",t.style.padding="0",t.style.margin="-1px",t.style.overflow="hidden",t.style.clip="rect(0,0,0,0)",t.style.border="0"}visuallyVisible(t){t.removeAttribute("style")}physicallyHidden(t){t.style.display="none"}}const Cs={Schema:Et,Utils:O,Editor:le,EditorBoolean:Ie,EditorBooleanRadios:Ae,EditorBooleanSelect:we,EditorBooleanCheckbox:Se,EditorString:je,EditorStringRadios:Te,EditorStringSelect:Oe,EditorStringTextarea:ke,EditorStringAwesomplete:De,EditorStringPickr:ns,EditorStringInput:Pe,EditorNumberRange:hs,EditorNumber:Fe,EditorNumberRadios:He,EditorNumberSelect:Ve,EditorNumberInput:Be,EditorObjectGrid:qe,EditorObjectCategories:Ne,EditorObjectNav:Ue,EditorObjectAccordion:We,EditorObjectHorizontal:Je,EditorObjectRadios:$e,EditorObject:ze,EditorArrayChoices:Qe,EditorArrayNav:Xe,EditorArray:_e,EditorMultiple:Ye,EditorIfThenElse:ce,EditorNull:ts,Theme:ys,ThemeBootstrap3:class extends ys{init(){this.useToggleEvents=!1}getAddPropertyButton(t){const e=super.getAddPropertyButton(t);return e.classList.add("btn-primary"),e.classList.add("btn-block"),e}getCollapseToggle(t){const e=super.getCollapseToggle(t);return e.setAttribute("href","#"+t.collapseId),e.setAttribute("data-toggle","collapse"),e.setAttribute("always-enabled",""),e}getCollapse(t){const e=super.getCollapse(t);return e.classList.add("collapse"),t.startCollapsed||e.classList.add("in"),e}getObjectControl(t){const e=super.getObjectControl(t);if(t.isAccordion){const{childrenSlot:t}=e;t.classList.add("panel-group");const s=t.id,i=t.appendChild.bind(t);t.appendChild=t=>{const e=t.querySelector(".collapse");e&&(e.classList.remove("in"),e.classList.add("panel-collapse"));const n=t.querySelector(".jedi-collapse-toggle");return n&&n.setAttribute("data-parent","#"+s),i(t)}}return t.isAccordionProperties&&e.childrenSlot.classList.add("panel-group"),e}initHorizontalObject(t){t.classList.add("form-horizontal")}_adaptHorizontalControl(t,e,s){if(!t.label||t.label.classList.contains("control-label"))return;const i=e??3,n=s??6;t.container.classList.add("form-group"),t.label.classList.add("control-label",`col-sm-${i}`);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),Array.from(t.container.children).filter(e=>e!==t.label).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalInputControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalTextareaControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalSelectControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalCheckboxControl(t,e,s){if(t.formGroup.parentElement!==t.container)return;const i=e??3,n=s??6;t.container.classList.add("form-group");const a=document.createElement("div");a.classList.add(`col-sm-${n}`,`col-sm-offset-${i}`),Array.from(t.container.children).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalRadiosControl(t,e,s){if(t.legend.parentElement!==t.fieldset)return;const i=e??3,n=s??6;t.container.classList.add("form-group"),t.legend.classList.add("control-label",`col-sm-${i}`),t.container.insertBefore(t.legend,t.fieldset);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),t.fieldset.replaceWith(a),a.appendChild(t.fieldset),t.fieldset.classList.remove("panel","panel-default")}adaptForHorizontalCheckboxesControl(t,e,s){this.adaptForHorizontalRadiosControl(t,e,s)}_adaptHorizontalComplexControl(t,e,s,i){if(t.container.classList.contains("jedi-horizontal"))return;const n=e??3,a=s??6,r=document.createElement("label");r.classList.add("control-label",`col-sm-${n}`),r.textContent=i||"";const o=document.createElement("div");o.classList.add(`col-sm-${a}`),Array.from(t.container.children).forEach(t=>o.appendChild(t)),t.container.classList.add("form-group","jedi-horizontal"),t.container.appendChild(r),t.container.appendChild(o),t.legendText&&(t.legendText.style.display="none")}adaptForHorizontalArrayControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalObjectControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalMultipleControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}getAccordionItem(t){const e=t.id+"-acc-collapse",s=document.createElement("div");s.classList.add("panel","panel-default");const i=document.createElement("div");i.classList.add("panel-heading","collapsed"),i.setAttribute("data-toggle","collapse"),i.setAttribute("data-parent","#"+t.accordionId),i.setAttribute("href","#"+e),i.style.cursor="pointer";const n=document.createElement("h4");n.classList.add("panel-title");const a=document.createElement("a"),r=document.createElement("i");r.classList.add("jedi-accordion-chevron"),this.icons&&this.icons.collapse?this.addIconClass(r,this.icons.collapse):r.textContent="▾",r.style.display="inline-block",r.style.transition="transform 0.1s ease",r.style.marginRight="0.5em";const o=document.createElement("span");o.style.marginRight="0.5em",o.textContent=t.title,a.appendChild(r),a.appendChild(o);const l=document.createElement("div");l.id=e,l.classList.add("panel-collapse","collapse");const c=()=>{const t=i.classList.contains("collapsed");r.style.transform=t?"rotate(-90deg)":"rotate(0deg)"};c(),new MutationObserver(c).observe(i,{attributes:!0,attributeFilter:["class"]});const d=document.createElement("div");return d.classList.add("panel-body","p-0"),n.appendChild(a),i.appendChild(n),l.appendChild(d),s.appendChild(i),s.appendChild(l),{container:s,header:i,toggle:a,collapse:l,body:d}}getJsonData(t){const e=super.getJsonData(t);return e.control.classList.add("form-group"),e.input.classList.add("form-control"),e.copyBtn.classList.add("btn-default"),e.copyBtn.classList.add("btn-block"),e.saveBtn.classList.add("btn-primary"),e.saveBtn.classList.add("btn-block"),e}getFieldset(){const t=super.getFieldset();return t.classList.add("panel"),t.classList.add("panel-default"),t.style.marginBottom="15px",t}getLegend(t){const e=super.getLegend(t),{legend:s,infoContainer:i}=e;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",i.style.marginRight="4px",e}getRadioLegend(t){const e=super.getRadioLegend(t),{legend:s}=e;return s.style.fontWeight="inherit",s.style.border="none",s.style.marginBottom="0",e}getLabel(t){return super.getLabel(t)}getInfo(t={}){const e=super.getInfo(t);return e.container.style.marginRight="4px",e}getCard(){const t=super.getCard();return t.classList.add("panel"),t.classList.add("panel-default"),t}getCardHeader(t){const e=super.getCardHeader(t);return e.classList.add("panel-heading"),e.classList.add("text-right"),e}getCardBody(){const t=super.getCardBody();return t.classList.add("panel-body"),t.style.clear="both",t.style.paddingBottom="0",t}getArrayFooter(){const t=super.getArrayFooter();return t.classList.add("panel-footer"),t}getBtnGroup(){const t=super.getBtnGroup();return t.classList.add("btn-group"),t.style.display="inline-flex",t}getButton(t){const e=super.getButton(t);return e.classList.add("btn"),e.classList.add("btn-xs"),e.classList.add("btn-default"),e}getDescription(t){const e=super.getDescription(t);return e.classList.add("text-muted"),e.style.marginBottom="5px",e}getPropertiesGroup(t={}){const e=super.getPropertiesGroup(t),s=document.createElement("br");return e.container.appendChild(s),e.group.classList.add("pl-3"),e}getTextareaControl(t){const e=super.getTextareaControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableTextareaControl(t){super.adaptForTableTextareaControl(t),t.container.classList.remove("form-group")}getInputControl(t){const e=super.getInputControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}getInputRangeControl(t){return super.getInputRangeControl(t)}adaptForTableInputControl(t,e){super.adaptForTableInputControl(t,e),t.container.classList.remove("form-group")}getRadiosControl(t){const e=super.getRadiosControl(t),{fieldset:s,radios:i,labels:n,labelTexts:a,radioControls:r,description:o,messages:l}=e;return r.forEach((e,o)=>{e.classList.add("radio"),t.inline&&(e.style.display="inline-flex",e.style.alignItems="center",e.style.paddingLeft="0",e.style.marginRight="15px"),s.appendChild(r[o]),e.appendChild(n[o]),n[o].appendChild(i[o]),n[o].appendChild(a[o])}),s.appendChild(o),s.appendChild(l),e}adaptForTableRadiosControl(t,e){super.adaptForTableRadiosControl(t,e),t.fieldset.classList.remove("panel"),t.fieldset.classList.remove("panel-default"),t.fieldset.style.marginBottom="0"}getCheckboxesControl(t){const e=super.getCheckboxesControl(t),{fieldset:s,checkboxes:i,labels:n,labelTexts:a,checkboxControls:r}=e;return r.forEach((e,o)=>{e.classList.add("checkbox"),t.inline&&(e.style.display="inline-flex",e.style.alignItems="center",e.style.paddingLeft="0",e.style.marginRight="30px"),s.appendChild(r[o]),e.appendChild(n[o]),n[o].appendChild(i[o]),n[o].appendChild(a[o])}),e}adaptForTableCheckboxesControl(t,e){super.adaptForTableCheckboxesControl(t,e),t.fieldset.classList.remove("panel"),t.fieldset.classList.remove("panel-default"),t.body.classList.remove("panel-body")}getCheckboxControl(t){const e=super.getCheckboxControl(t),{container:s,formGroup:i,description:n,messages:a}=e;return s.appendChild(i),s.appendChild(n),s.appendChild(a),e}adaptForTableCheckboxControl(t,e){super.adaptForTableCheckboxControl(t,e)}getSelectControl(t){const e=super.getSelectControl(t),{container:s,input:i,label:n}=e;return t.noSpacing||s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableSelectControl(t,e){super.adaptForTableSelectControl(t,e),t.container.classList.remove("form-group")}getSwitcherSelect(t){const e=super.getSwitcherSelect(t);return e.input.classList.add("input-sm"),e}getSwitcherSelectInline(t){const e=super.getSwitcherSelectInline(t);return e.container.style.marginBottom="5px",e.input.classList.add("input-sm"),e}getSwitcherModal(t){const e=super.getSwitcherModal(t);return e.trigger.classList.add("label","label-primary"),e.dialogBody.classList.add("btn-group-vertical"),e.dialogBody.style.width="100%",e.optionButtons.forEach(t=>{t.classList.add("btn","btn-default","btn-block")}),e}setSwitcherOptionActive(t,e){super.setSwitcherOptionActive(t,e),t.classList.toggle("btn-primary",e),t.classList.toggle("btn-default",!e)}adaptForTableMultipleControl(t,e){super.adaptForTableMultipleControl(t,e)}getAlert(t){const e=super.getAlert(t);return e.classList.add("alert"),e.classList.add("alert-danger"),e}getErrorFeedback(t){const e=super.getErrorFeedback(t);return e.classList.add("text-danger"),e}getWarningFeedback(t){const e=super.getWarningFeedback(t);return e.classList.add("text-warning"),e}getRow(){const t=super.getRow();return t.classList.add("row"),t}getCol(t,e,s,i,n){const a=super.getCol();return a.classList.add("col-xs-"+t),a.classList.add("col-sm-"+e),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("col-md-offset-"+n),a}getTabList(t){const e=super.getTabList(t);return e.classList.add("nav"),e.style.marginBottom="1rem","horizontal"===t.variant?e.classList.add("nav-tabs"):(e.classList.add("nav-pills"),e.classList.add("nav-stacked")),e}getTab(t){const e=super.getTab(t);if(e.link.style.display="flex",e.link.style.alignItems="center",e.arrayActions.style.flexShrink="0",e.arrayActions.classList.add("text-nowrap"),e.text.style.flex="1",e.text.style.marginLeft="5px",e.text.style.marginRight="5px",t.hasErrors){const t=e.text.querySelector(".jedi-nav-warning");t&&(e.text.removeChild(t),t.style.flexShrink="0",t.classList.add("text-nowrap"),e.link.appendChild(t))}return t.active&&e.list.classList.add("active"),e.link.setAttribute("data-toggle","tab"),e}getTable(){const t=document.createElement("div"),e=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return t.classList.add("table-responsive"),e.classList.add("table"),e.appendChild(s),e.appendChild(i),t.appendChild(e),{container:t,table:e,thead:s,tbody:i}}setTabPaneAttributes(t,e,s){super.setTabPaneAttributes(t,e,s),t.classList.add("tab-pane"),t.classList.toggle("in",e),t.classList.toggle("active",e)}infoAsModal(t,e,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"),c=this.getButton({content:"Close",icon:"close"}),d=e+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",d),c.setAttribute("data-dismiss","modal"),c.setAttribute("always-enabled",""),t.info.setAttribute("data-toggle","modal"),t.info.setAttribute("data-target","#"+d),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"),c.classList.add("jedi-modal-close"),c.classList.add("close"),u(s.title)&&(o.innerHTML=s.title),u(s.content)&&(l.innerHTML=s.content),t.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(c),r.appendChild(o),a.appendChild(l)}visuallyHidden(t){t.classList.add("sr-only")}visuallyVisible(t){t.classList.remove("sr-only")}},ThemeBootstrap4:class extends ys{init(){this.useToggleEvents=!1}getAddPropertyButton(t){const e=super.getAddPropertyButton(t);return e.classList.add("btn-primary"),e.classList.add("btn-block"),e}getCollapseToggle(t){const e=super.getCollapseToggle(t);return e.setAttribute("href","#"+t.collapseId),e.setAttribute("data-toggle","collapse"),e.setAttribute("always-enabled",""),e}getCollapse(t){const e=super.getCollapse(t);return e.classList.add("collapse"),t.startCollapsed||e.classList.add("show"),e}getObjectControl(t){const e=super.getObjectControl(t);if(t.isAccordion){const{childrenSlot:t}=e,s=t.id,i=t.appendChild.bind(t);t.appendChild=t=>{const e=t.querySelector(".collapse");return e&&(e.classList.remove("show"),e.setAttribute("data-parent","#"+s)),i(t)}}return t.isAccordionProperties&&e.childrenSlot.classList.add("accordion","pb-3"),e}_adaptHorizontalControl(t,e,s){if(!t.label||t.label.classList.contains("col-form-label"))return;const i=e??3,n=s??6;t.container.classList.add("row"),t.label.classList.add("col-form-label","text-sm-right",`col-sm-${i}`);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),Array.from(t.container.children).filter(e=>e!==t.label).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalInputControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalTextareaControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalSelectControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalCheckboxControl(t,e,s){if(t.formGroup.parentElement!==t.container)return;const i=e??3,n=s??6;t.container.classList.add("row");const a=document.createElement("div");a.classList.add(`col-sm-${n}`,`offset-sm-${i}`),Array.from(t.container.children).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalRadiosControl(t,e,s){if(t.legend.parentElement!==t.fieldset)return;const i=e??3,n=s??6;t.container.classList.add("row"),t.legend.classList.add("col-form-label","text-sm-right",`col-sm-${i}`),t.container.insertBefore(t.legend,t.fieldset);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),t.fieldset.replaceWith(a),a.appendChild(t.fieldset)}adaptForHorizontalCheckboxesControl(t,e,s){this.adaptForHorizontalRadiosControl(t,e,s)}_adaptHorizontalComplexControl(t,e,s,i){if(t.container.classList.contains("jedi-horizontal"))return;const n=e??3,a=s??6,r=document.createElement("label");r.classList.add("col-form-label","text-sm-right",`col-sm-${n}`),r.textContent=i||"";const o=document.createElement("div");o.classList.add(`col-sm-${a}`),Array.from(t.container.children).forEach(t=>o.appendChild(t)),t.container.classList.add("row","jedi-horizontal"),t.container.appendChild(r),t.container.appendChild(o),t.legendText&&(t.legendText.style.display="none")}adaptForHorizontalArrayControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalObjectControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalMultipleControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}getAccordionItem(t){const e=t.id+"-acc-collapse",s=document.createElement("div");s.classList.add("card","mb-0");const i=document.createElement("div");i.classList.add("card-header","p-0");const n=document.createElement("button");n.type="button",n.classList.add("btn","btn-link","w-100","text-left"),n.setAttribute("data-toggle","collapse"),n.setAttribute("data-target","#"+e),n.setAttribute("data-parent","#"+t.accordionId),n.classList.add("collapsed");const a=document.createElement("i");a.classList.add("jedi-accordion-chevron"),this.icons&&this.icons.collapse?this.addIconClass(a,this.icons.collapse):a.textContent="▾",a.classList.add("d-inline-block","mr-2"),a.style.transition="transform 0.1s ease";const r=document.createElement("span");r.classList.add("mr-1"),r.textContent=t.title,n.appendChild(a),n.appendChild(r);const o=document.createElement("div");o.id=e,o.classList.add("collapse"),o.setAttribute("data-parent","#"+t.accordionId);const l=()=>{const t=n.classList.contains("collapsed");a.style.transform=t?"rotate(-90deg)":"rotate(0deg)"};l(),new MutationObserver(l).observe(n,{attributes:!0,attributeFilter:["class"]});const c=document.createElement("div");return c.classList.add("card-body","pb-0"),i.appendChild(n),o.appendChild(c),s.appendChild(i),s.appendChild(o),{container:s,header:i,toggle:n,collapse:o,body:c}}getJsonData(t){const e=super.getJsonData(t);return e.control.classList.add("form-group"),e.input.classList.add("form-control"),e.copyBtn.classList.add("btn-secondary"),e.copyBtn.classList.add("btn-block"),e.saveBtn.classList.add("btn-primary"),e.saveBtn.classList.add("btn-block"),e}getFieldset(){const t=document.createElement("fieldset");return t.setAttribute("role","group"),t.classList.add("card"),t.classList.add("mb-3"),t}getLegend(t){const e=super.getLegend(t),{legend:s,infoContainer:i}=e;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"),i.classList.add("mr-1"),e}getLabel(t){return super.getLabel(t)}getInfo(t={}){const e=super.getInfo(t);return e.container.classList.add("mr-1"),e}getCard(){const t=super.getCard();return t.classList.add("card"),t.classList.add("mb-3"),t}getCardHeader(t){const e=super.getCardHeader(t);return e.classList.add("card-header"),e.classList.add("d-flex"),e.classList.add("justify-content-end"),e.classList.add("align-items-center"),e.classList.add("py-1"),e}getCardBody(){const t=super.getCardBody();return t.classList.add("card-body"),t.classList.add("pb-0"),t}getArrayFooter(){const t=super.getArrayFooter();return t.classList.add("card-footer"),t}getBtnGroup(){const t=super.getBtnGroup();return t.classList.add("btn-group"),t}getButton(t){const e=super.getButton(t);return e.classList.add("btn"),e.classList.add("btn-sm"),e}getDescription(t){const e=super.getDescription(t);return e.classList.add("text-muted"),e.classList.add("fs-sm"),e.classList.add("mb-1"),e}getPropertiesGroup(t={}){const e=super.getPropertiesGroup(t);return e.group.classList.add("pl-3"),e.name.classList.add("mb-3"),e.container.classList.add("mb-4"),e}getTextareaControl(t){const e=super.getTextareaControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableTextareaControl(t){super.adaptForTableTextareaControl(t),t.container.classList.remove("form-group")}getInputControl(t){const e=super.getInputControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}getInputRangeControl(t){const e=super.getInputRangeControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("custom-range"),i.classList.remove("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableInputControl(t,e){super.adaptForTableInputControl(t,e),t.container.classList.remove("form-group")}getRadiosControl(t){const e=super.getRadiosControl(t),{container:s,fieldset:i,radios:n,labels:a,labelTexts:r,radioControls:o,description:l,messages:c}=e;return t.noSpacing||s.classList.add("form-group"),o.forEach((e,s)=>{e.classList.add("form-check"),n[s].classList.add("form-check-input"),a[s].classList.add("form-check-label"),t.inline&&e.classList.add("form-check-inline"),i.appendChild(o[s]),e.appendChild(n[s]),e.appendChild(a[s]),a[s].appendChild(r[s])}),i.appendChild(l),i.appendChild(c),e}adaptForTableRadiosControl(t,e){super.adaptForTableRadiosControl(t,e),t.container.classList.remove("form-group"),t.fieldset.classList.remove("card"),t.fieldset.classList.add("mb-0")}getCheckboxesControl(t){const e=super.getCheckboxesControl(t),{checkboxes:s,labels:i,checkboxControls:n}=e;return n.forEach((e,n)=>{e.classList.add("form-group"),e.classList.add("form-check"),s[n].classList.add("form-check-input"),i[n].classList.add("form-check-label"),t.inline&&e.classList.add("form-check-inline")}),e}adaptForTableCheckboxesControl(t,e){super.adaptForTableCheckboxesControl(t,e),t.container.classList.remove("form-group"),t.fieldset.classList.remove("card"),t.fieldset.classList.remove("mb-3"),t.body.classList.remove("card-body"),t.body.classList.remove("card-body")}getCheckboxControl(t){const e=super.getCheckboxControl(t),{container:s,formGroup:i,input:n,label:a,info:r,description:o,messages:l}=e;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(t.info)&&a.appendChild(r.container),s.appendChild(o),s.appendChild(l),e}adaptForTableCheckboxControl(t,e){super.adaptForTableCheckboxControl(t,e),t.container.classList.remove("form-group"),t.formGroup.classList.remove("form-check"),t.input.classList.remove("form-check-input"),t.label.classList.remove("form-check-label")}getSelectControl(t){const e=super.getSelectControl(t),{container:s,input:i}=e;return t.noSpacing||s.classList.add("form-group"),i.classList.add("form-control"),e}adaptForTableSelectControl(t,e){super.adaptForTableSelectControl(t,e),t.container.classList.remove("form-group")}getSwitcherSelect(t){const e=super.getSwitcherSelect(t);return e.input.classList.add("form-control-sm"),e}getSwitcherSelectInline(t){const e=super.getSwitcherSelectInline(t);return e.container.classList.add("mb-2"),e.input.classList.add("form-control","form-control-sm"),e}getSwitcherModal(t){const e=super.getSwitcherModal(t);return e.trigger.classList.add("badge","badge-primary"),e.dialogBody.classList.add("btn-group","btn-group-vertical","w-100"),e.optionButtons.forEach(t=>{t.classList.add("btn","btn-light")}),e}setSwitcherOptionActive(t,e){super.setSwitcherOptionActive(t,e),t.classList.toggle("btn-primary",e),t.classList.toggle("btn-light",!e)}adaptForTableMultipleControl(t,e){super.adaptForTableMultipleControl(t,e),t.container.classList.remove("mb-3")}getAlert(t){const e=super.getAlert(t);return e.classList.add("alert"),e.classList.add("alert-danger"),e}getErrorFeedback(t){const e=super.getErrorFeedback(t);return e.classList.add("text-danger"),e.classList.add("form-text"),e.classList.add("d-block"),e}getWarningFeedback(t){const e=super.getWarningFeedback(t);return e.classList.add("text-warning"),e.classList.add("form-text"),e.classList.add("d-block"),e}getColumnClass(t,e){return"col-"+t+"-"+e}getRow(){const t=super.getRow();return t.classList.add("row"),t}getCol(t,e,s,i,n){const a=super.getCol(t,s,n);return a.classList.add("col-"+t),a.classList.add("col-sm"+e),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("offset-md-"+n),a}getTabList(t){const e=super.getTabList();return e.classList.add("nav"),e.classList.add("mb-3"),"horizontal"===t.variant?e.classList.add("nav-tabs"):(e.classList.add("nav-pills"),e.classList.add("flex-column")),e}getTab(t){const e=super.getTab(t);if(e.list.classList.add("nav-item"),e.link.classList.add("nav-link"),e.link.classList.add("d-flex","align-items-center"),e.arrayActions.classList.add("flex-shrink-0","text-nowrap"),e.text.classList.add("flex-grow-1","mx-2"),t.hasErrors){const t=e.text.querySelector(".jedi-nav-warning");t&&(e.text.removeChild(t),t.classList.add("flex-shrink-0","text-nowrap"),e.link.appendChild(t))}return e.link.setAttribute("data-toggle","tab"),t.active&&e.link.classList.add("active"),e}getTable(){const t=document.createElement("div"),e=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return t.classList.add("table-responsive"),e.classList.add("table"),e.classList.add("table-borderless"),e.classList.add("table-sm"),e.classList.add("align-middle"),e.appendChild(s),e.appendChild(i),t.appendChild(e),{container:t,table:e,thead:s,tbody:i}}setTabPaneAttributes(t,e,s){super.setTabPaneAttributes(t,e,s),t.classList.add("tab-pane"),t.classList.toggle("active",e)}infoAsModal(t,e,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"),c=this.getButton({content:"Close",icon:"close"}),d=e+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",d),c.setAttribute("data-dismiss","modal"),c.setAttribute("always-enabled",""),t.info.setAttribute("data-toggle","modal"),t.info.setAttribute("data-target","#"+d),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"),c.classList.add("jedi-modal-close"),c.classList.add("close"),u(s.title)&&(o.innerHTML=s.title),u(s.content)&&(l.innerHTML=s.content),t.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(o),r.appendChild(c),a.appendChild(l)}visuallyHidden(t){t.classList.add("sr-only")}visuallyVisible(t){t.classList.remove("sr-only")}},ThemeBootstrap5:class extends ys{init(){this.useToggleEvents=!1}getAddPropertyButton(t){const e=super.getAddPropertyButton(t);return e.classList.add("btn-primary"),e.classList.add("w-100"),e}getCollapseToggle(t){const e=super.getCollapseToggle(t);return e.setAttribute("href","#"+t.collapseId),e.setAttribute("data-bs-toggle","collapse"),e.setAttribute("always-enabled",""),e}getCollapse(t){const e=super.getCollapse(t);return e.classList.add("collapse"),t.startCollapsed||e.classList.add("show"),e}getObjectControl(t){const e=super.getObjectControl(t);if(t.isAccordion){const{childrenSlot:t}=e,s=t.id,i=t.appendChild.bind(t);t.appendChild=t=>{const e=t.querySelector(".collapse");return e&&(e.classList.remove("show"),e.setAttribute("data-bs-parent","#"+s)),i(t)}}return t.isAccordionProperties&&e.childrenSlot.classList.add("accordion","pb-3"),e}_adaptHorizontalControl(t,e,s){if(!t.label||t.label.classList.contains("col-form-label"))return;const i=e??3,n=s??6;t.container.classList.add("row"),t.label.classList.add("col-form-label","text-sm-end",`col-sm-${i}`);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),Array.from(t.container.children).filter(e=>e!==t.label).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalInputControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalTextareaControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalSelectControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalCheckboxControl(t,e,s){if(t.formGroup.parentElement!==t.container)return;const i=e??3,n=s??6;t.container.classList.add("row");const a=document.createElement("div");a.classList.add(`col-sm-${n}`,`offset-sm-${i}`),Array.from(t.container.children).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalRadiosControl(t,e,s){if(t.legend.parentElement!==t.fieldset)return;const i=e??3,n=s??6;t.container.classList.add("row"),t.legend.classList.add("col-form-label","text-sm-end",`col-sm-${i}`),t.container.insertBefore(t.legend,t.fieldset);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),t.fieldset.replaceWith(a),a.appendChild(t.fieldset)}adaptForHorizontalCheckboxesControl(t,e,s){this.adaptForHorizontalRadiosControl(t,e,s)}_adaptHorizontalComplexControl(t,e,s,i){if(t.container.classList.contains("jedi-horizontal"))return;const n=e??3,a=s??6,r=document.createElement("label");r.classList.add("col-form-label","text-sm-end",`col-sm-${n}`),r.textContent=i||"";const o=document.createElement("div");o.classList.add(`col-sm-${a}`),Array.from(t.container.children).forEach(t=>o.appendChild(t)),t.container.classList.add("row","jedi-horizontal"),t.container.appendChild(r),t.container.appendChild(o),t.legendText&&(t.legendText.style.display="none")}adaptForHorizontalArrayControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalObjectControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalMultipleControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}getAccordionItem(t){const e=t.id+"-acc-collapse",s=document.createElement("div");s.classList.add("accordion-item");const i=document.createElement("h2");i.classList.add("accordion-header");const n=document.createElement("button");if(n.type="button",n.classList.add("accordion-button","collapsed"),n.setAttribute("data-bs-toggle","collapse"),n.setAttribute("data-bs-target","#"+e),n.setAttribute("data-bs-parent","#"+t.accordionId),n.classList.add("jedi-accordion-button"),!document.getElementById("jedi-accordion-button-style")){const t=document.createElement("style");t.id="jedi-accordion-button-style",t.textContent=".jedi-accordion-button::after { display: none !important; }",document.head.appendChild(t)}const a=document.createElement("i");a.classList.add("jedi-accordion-chevron"),this.icons&&this.icons.collapse?this.addIconClass(a,this.icons.collapse):a.textContent="▾",a.classList.add("d-inline-block","me-2"),a.style.transition="transform 0.1s ease";const r=document.createElement("span");r.classList.add("me-1"),r.textContent=t.title,n.appendChild(a),n.appendChild(r);const o=document.createElement("div");o.id=e,o.classList.add("accordion-collapse","collapse"),o.setAttribute("data-bs-parent","#"+t.accordionId);const l=()=>{const t=n.classList.contains("collapsed");a.style.transform=t?"rotate(-90deg)":"rotate(0deg)"};l(),new MutationObserver(l).observe(n,{attributes:!0,attributeFilter:["class"]});const c=document.createElement("div");return c.classList.add("accordion-body","pb-3"),i.appendChild(n),o.appendChild(c),s.appendChild(i),s.appendChild(o),{container:s,header:i,toggle:n,collapse:o,body:c}}getJsonData(t){const e=super.getJsonData(t);return e.control.classList.add("mb-3"),e.input.classList.add("form-control"),e.copyBtn.classList.add("btn-secondary"),e.copyBtn.classList.add("w-100"),e.saveBtn.classList.add("btn-primary"),e.saveBtn.classList.add("w-100"),e}getFieldset(){const t=document.createElement("fieldset");return t.setAttribute("role","group"),t.classList.add("card"),t.classList.add("mb-3"),t}getLegend(t){const e=super.getLegend(t),{legend:s,infoContainer:i}=e;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"),i.classList.add("me-1"),e}styleLegendWarning(t){t.classList.add("me-1")}getLabel(t){const e=super.getLabel(t);return e.label.classList.add("mb-1"),e}getInfo(t={}){const e=super.getInfo(t);return e.container.classList.add("me-1"),e}getCard(){const t=super.getCard();return t.classList.add("card"),t.classList.add("mb-3"),t}getCardHeader(t){const e=super.getCardHeader(t);return e.classList.add("card-header"),e.classList.add("d-flex"),e.classList.add("justify-content-end"),e.classList.add("align-items-center"),e.classList.add("py-1"),e}getCardBody(){const t=super.getCardBody();return t.classList.add("card-body"),t.classList.add("pb-0"),t}getArrayFooter(){const t=super.getArrayFooter();return t.classList.add("card-footer"),t}getControlSlot(){const t=super.getControlSlot();return t.classList.add("mb-3"),t}getBtnGroup(){const t=super.getBtnGroup();return t.classList.add("btn-group"),t}getButton(t){const e=super.getButton(t);return e.classList.add("btn"),e.classList.add("btn-sm"),e}getDescription(t){const e=super.getDescription(t);return e.classList.add("text-muted"),e.classList.add("mb-1"),e}getPropertiesGroup(t={}){const e=super.getPropertiesGroup(t);return e.group.classList.add("ps-3"),e.container.classList.add("mb-4"),e}getTextareaControl(t){const e=super.getTextareaControl(t),{container:s,input:i,label:n}=e;return s.classList.add("mb-3"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableTextareaControl(t){super.adaptForTableTextareaControl(t),t.container.classList.remove("mb-3")}getInputControl(t){const e=super.getInputControl(t),{container:s,input:i,label:n}=e;return s.classList.add("mb-3"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}getInputRangeControl(t){const e=super.getInputRangeControl(t),{container:s,input:i,label:n}=e;return s.classList.add("mb-3"),i.classList.add("form-range"),i.classList.remove("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableInputControl(t,e){super.adaptForTableInputControl(t,e),t.container.classList.remove("mb-3")}getRadiosControl(t){const e=super.getRadiosControl(t),{container:s,fieldset:i,radios:n,labels:a,labelTexts:r,radioControls:o,description:l,messages:c}=e;return t.noSpacing||s.classList.add("mb-3"),o.forEach((e,s)=>{e.classList.add("form-check"),n[s].classList.add("form-check-input"),a[s].classList.add("form-check-label"),t.inline&&e.classList.add("form-check-inline"),i.appendChild(o[s]),e.appendChild(n[s]),e.appendChild(a[s]),a[s].appendChild(r[s])}),i.appendChild(l),i.appendChild(c),e}adaptForTableRadiosControl(t,e){super.adaptForTableRadiosControl(t,e),t.container.classList.remove("mb-3"),t.fieldset.classList.remove("card"),t.fieldset.classList.add("mb-0")}getCheckboxesControl(t){const e=super.getCheckboxesControl(t),{checkboxes:s,labels:i,checkboxControls:n}=e;return n.forEach((e,n)=>{e.classList.add("mb-3"),e.classList.add("form-check"),s[n].classList.add("form-check-input"),i[n].classList.add("form-check-label"),t.inline&&e.classList.add("form-check-inline")}),e}getCheckboxControl(t){const e=super.getCheckboxControl(t),{container:s,formGroup:i,input:n,label:a,info:r,description:o,messages:l}=e;return s.classList.add("mb-3"),i.classList.add("form-check"),n.classList.add("form-check-input"),a.classList.add("form-check-label"),t.titleHidden&&this.visuallyHidden(a),s.appendChild(i),i.appendChild(n),i.appendChild(a),f(t.info)&&a.appendChild(r.container),s.appendChild(o),s.appendChild(l),e}adaptForTableCheckboxControl(t,e){super.adaptForTableCheckboxControl(t,e),t.container.classList.remove("mb-3"),t.formGroup.classList.remove("form-check")}getSelectControl(t){const e=super.getSelectControl(t),{container:s,input:i}=e;return t.noSpacing||s.classList.add("mb-3"),i.classList.add("form-select"),e}adaptForTableSelectControl(t,e){super.adaptForTableSelectControl(t,e),t.container.classList.remove("mb-3")}getSwitcherSelect(t){const e=super.getSwitcherSelect(t);return e.input.classList.add("form-select-sm"),e}getSwitcherSelectInline(t){const e=super.getSwitcherSelectInline(t);return e.container.classList.add("mb-1"),e.input.classList.add("form-select","form-select-sm"),e}getSwitcherModal(t){const e=super.getSwitcherModal(t);return e.trigger.classList.add("badge","bg-primary"),e.dialogBody.classList.add("btn-group","btn-group-vertical","w-100"),e.optionButtons.forEach(t=>{t.classList.add("btn","btn-light")}),e}setSwitcherOptionActive(t,e){super.setSwitcherOptionActive(t,e),t.classList.toggle("btn-primary",e),t.classList.toggle("btn-light",!e)}adaptForTableMultipleControl(t,e){super.adaptForTableMultipleControl(t,e),t.container.classList.remove("mb-3")}getAlert(t){const e=super.getAlert(t);return e.classList.add("alert"),e.classList.add("alert-danger"),e}getErrorFeedback(t){const e=super.getErrorFeedback(t);return e.classList.add("text-danger"),e.classList.add("d-block"),e.classList.add("form-text"),e}getWarningFeedback(t){const e=super.getWarningFeedback(t);return e.classList.add("text-warning"),e.classList.add("d-block"),e.classList.add("form-text"),e}getRow(){const t=super.getRow();return t.classList.add("row"),t}getCol(t,e,s,i,n){const a=super.getCol(t,s,n);return a.classList.add("col-"+t),a.classList.add("col-sm"+e),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("offset-md-"+n),a}getTabList(t){const e=super.getTabList(t);return e.classList.add("nav"),e.classList.add("mb-3"),"horizontal"===t.variant?e.classList.add("nav-tabs"):(e.classList.add("nav-pills"),e.classList.add("flex-column")),e}getTab(t){const e=super.getTab(t);if(e.list.classList.add("nav-item"),e.link.classList.add("nav-link"),e.link.classList.add("d-flex","align-items-center"),e.arrayActions.classList.add("flex-shrink-0","text-nowrap"),e.text.classList.add("flex-grow-1","mx-2"),t.hasErrors){const t=e.text.querySelector(".jedi-nav-warning");t&&(e.text.removeChild(t),t.classList.add("flex-shrink-0","text-nowrap"),e.link.appendChild(t))}return e.link.setAttribute("data-bs-toggle","tab"),t.active&&e.link.classList.add("active"),e}getTable(){const t=document.createElement("div"),e=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return t.classList.add("table-responsive"),e.classList.add("table"),e.classList.add("table-borderless"),e.classList.add("table-sm"),e.classList.add("align-middle"),e.appendChild(s),e.appendChild(i),t.appendChild(e),{container:t,table:e,thead:s,tbody:i}}setTabPaneAttributes(t,e,s){super.setTabPaneAttributes(t,e,s),t.classList.add("tab-pane"),t.classList.toggle("active",e)}infoAsModal(t,e,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"),c=this.getButton({content:"Close",icon:"close"}),d=e+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",d),c.setAttribute("data-bs-dismiss","modal"),c.setAttribute("always-enabled",""),t.info.setAttribute("data-bs-toggle","modal"),t.info.setAttribute("data-bs-target","#"+d),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"),c.classList.add("jedi-modal-close"),u(s.title)&&(o.innerHTML=s.title),u(s.content)&&(l.innerHTML=s.content),t.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(o),r.appendChild(c),a.appendChild(l)}visuallyHidden(t){t.classList.add("visually-hidden")}visuallyVisible(t){t.classList.remove("visually-hidden")}},RefParser:class{constructor(t={}){this.options=Object.assign({detectRecursion:!0},t),this.refs={},this.data={},this.iterations=0,this.maxIterations=1e3,this.cycles=[],this.walker=new vs}async dereference(t){for(await this.collectRefs(t);this.iterations<this.maxIterations&&!this.refsResolved();)this.iterations++,await this.collectRefs(t);const e=Object.entries(this.refs).filter(([t,e])=>null===e).map(([t])=>t);e.length&&console.warn("Missing refs:",JSON.stringify(e)),this.options.detectRecursion&&(this.cycles=this.findRecursiveRefs(this.refs),this.markRecursiveSchemas())}refsResolved(){return Object.values(this.refs).every(t=>null!==t)}async collectRefs(t,e="#"){if("object"==typeof t&&null!==t)for(const[s,i]of Object.entries(t)){const n=e?`${e}/${s}`:`/${s}`;if(this.hasRef(t)){const e=t.$ref;if(this.isExternalRef(e)){const t=await this.load(e);this.refs[e]=t,await this.collectRefs(t,n)}else this.refs[e]=this.data[e]??null}this.data[e]=t,await this.collectRefs(i,n)}}hasRef(t){return void 0!==t.$ref&&"string"==typeof t.$ref}isExternalRef(t){return"string"==typeof t&&(t.startsWith("http")||t.startsWith("https"))}isObject(t){return null!==t&&"object"==typeof t}findRecursiveRefs(t){const e=new Set;function s(i,n,a){if(n.has(i)){const t=a.indexOf(i);if(-1!==t){const s=a.slice(t).concat(i),n=s.reduce((t,e,i)=>e<s[t]?i:t,0),r=[...s.slice(n),...s.slice(0,n)].join(" → ");e.add(r)}return}t[i]&&(n.add(i),a.push(i),function t(e){if("object"==typeof e&&null!==e){e.$ref&&s(e.$ref,n,a);for(const s in e)t(e[s])}}(t[i]),n.delete(i),a.pop())}for(const i in t)s(i,new Set,[]);return[...e]}hasRefCycles(){return this.options.detectRecursion&&this.cycles.length>0}markRecursiveSchemas(){const t=new Set;this.cycles.forEach(e=>{e.split(" → ").forEach(e=>t.add(e))});for(const e of Object.values(this.data))e&&e.$ref&&t.has(e.$ref)&&(e["x-recursive"]=!0)}expand(t){const e=JSON.parse(JSON.stringify(t));if(this.isObject(e)&&this.hasRef(e)){const t=e.$ref;return delete e.$ref,this.expand(E({},this.refs[t],e))}return e}expandRecursive(t){let e=!0;for(;e;)e=!1,this.walker.traverse(t,(t,s,i,n)=>{t.$ref&&"string"==typeof t.$ref&&i&&null!==n&&(i[n]=this.expand(t),e=!0)})}async load(t){try{const e=await fetch(t);if(!e.ok)throw new Error("Network response was not ok");return await e.json()}catch(e){throw console.error("Error loading",t,e),e}}},Create:class extends re{constructor(t){super(),this.options=Object.assign({container:null,iconLib:null,theme:null,refParser:null,editJsonData:!1,enablePropertiesToggle:!1,enableCollapseToggle:!1,autoFlat:!1,btnContents:!0,btnIcons:!0,arrayDelete:!0,arrayDeleteConfirm:!0,arrayMove:!0,arrayAdd:!0,arrayAddAfter:!1,arrayFooterAdd:!1,arrayFooterButtonsPosition:"right",arrayDeleteAll:!1,arrayFooterDeleteAll:!1,objectAdd:!0,arrayButtonsPosition:"left",startCollapsed:!1,deactivateNonRequired:!1,schema:{},showErrors:"change",switcherInput:"select",embedSwitcher:!1,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,enforceAdditionalProperties:!0,enforceMinItems:!0,enforceMaxItems:!0,enforceEnum:!0,subErrors:!1,debug:!1,audacity:!0,switcherTypeLabels:{}},t),this.rootName="#",this.pathSeparator="/",this.instances=new Map,this.root=null,this.translator=new bs({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 vs,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 ms({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),c(this.options.iconLib))switch(this.options.iconLib){case"glyphicons":this.theme.icons=ve;break;case"bootstrap-icons":this.theme.icons=ye;break;case"fontawesome3":this.theme.icons=Ce;break;case"fontawesome4":this.theme.icons=Ee;break;case"fontawesome5":this.theme.icons=Le;break;case"fontawesome6":this.theme.icons=xe}this.schema=this.options.schema,this.validator=new ae({refParser:this.refParser,assertFormat:this.options.assertFormat,translator:this.translator,constraints:this.options.constraints,subErrors:this.options.subErrors}),this.root=this.createInstance({jedison:this,schema:this.options.schema,path:this.rootName}),c(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",t=>{this.emit("change",t)}),this.on("instance-change",t=>{const e=this.watched[t.path];e&&e.forEach(t=>{t()})}),this.hiddenInput&&(this.on("change",t=>{this.hiddenInput.value=JSON.stringify(this.getValue()),"user"===t&&setTimeout(()=>{this.refreshFocus()},0)}),this._onFocus=t=>{this.lastKeyEvent=null,this.lastFocusedId=t.target.id},this._onKeydown=t=>{this.lastKeyEvent=t},document.addEventListener("focus",this._onFocus,!0),document.addEventListener("keydown",this._onKeydown))}updateInstancesWatchedData(){Object.values(this.watched).forEach(t=>{t.forEach(t=>{t()})})}refreshFocus(){if(!this.lastFocusedId)return;const t=document.getElementById(this.lastFocusedId);t&&(t.focus(),this.lastKeyEvent&&"Tab"===this.lastKeyEvent.key&&this.simulateTab(t,this.lastKeyEvent.shiftKey))}simulateTab(t,e){const s=document.querySelectorAll('input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'),i=Array.prototype.indexOf.call(s,t);-1!==i&&(e?i>0&&s[i-1].focus():i+1<s.length&&s[i+1].focus())}appendHiddenInput(){const t=this.theme.getInputControl({type:"hidden",id:"jedi-hidden-input"});this.hiddenInput=t.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(t=>{this.hiddenInput.setAttribute(t,this.options.hiddenInputAttributes[t])}),this.container.appendChild(this.hiddenInput),this.hiddenInput.value=JSON.stringify(this.getValue())}register(t){this.instances.set(t.path,t)}unregister(t){this.instances.delete(t.path)}createInstance(e){if(this.refParser&&(e.schema=this.refParser.expand(e.schema),this.walker.traverse(e.schema,t=>{t.allOf&&Array.isArray(t.allOf)&&t.allOf.forEach((e,s)=>{t.allOf[s]=this.refParser.expand(e)}),t.oneOf&&Array.isArray(t.oneOf)&&t.oneOf.forEach((e,s)=>{t.oneOf[s]=this.refParser.expand(e)}),t.oneOf&&Array.isArray(t.oneOf)&&t.oneOf.forEach((e,s)=>{t.oneOf[s]=this.refParser.expand(e)})})),this.isEditor&&(this.walker.traverse(e.schema,e=>{if(e.allOf&&Array.isArray(e.allOf)){if(c(e["x-allOf-merged"]))return;const s=lt(e,"mergeAllOf")??this.options.mergeAllOf,i=[];let n=t(e);e.allOf.forEach(t=>{t.if&&t.then?i.push({if:t.if,then:t.then,else:t.else||null}):n=s?L({},n,t):n}),n["x-allOf-merged"]=!0;let a=null;for(let t=i.length-1;t>=0;t--)if(null===a)a=i[t];else{const e=a;a={if:i[t].if,then:L({},i[t].then||{},e),else:L({},i[t].else||{},e)}}return a&&Object.assign(n,a),n}}),this.walker.traverse(e.schema,e=>{if(e.oneOf&&Array.isArray(e.oneOf)){const s=t(e);delete s.oneOf,e.oneOf=e.oneOf.map(t=>L({},s,t))}}),this.walker.traverse(e.schema,e=>{if(e.anyOf&&Array.isArray(e.anyOf)){const s=t(e);delete s.anyOf,e.anyOf=e.anyOf.map(t=>L({},s,t))}}),this.walker.traverse(e.schema,e=>{if(e.not&&f(e.not)){const s=t(e);delete s.not,e.not=L({},s,e.not)}})),this.isEditor){const t=bt(e.schema);if(g(t)){const s=lt(e.schema,"inferType");if(c(s)){const i=j(e.path,s),n=this.getInstance(i),a=n?n.getValue():void 0;c(a)&&t.includes(a)&&(e.schema={...e.schema,type:a})}}}const s=vt(e.schema),i=H(e.schema),n=G(e.schema),a=bt(e.schema);return!this.debug||!d(a)||c(s)||c(i)||c(n)||console.warn("TYPE NOT SET",e.schema,e.path),c(i)||c(s)||"any"===a||g(a)||d(a)?new he(e):c(n)?new de(e):"object"===a?new ue(e):"array"===a?new me(e):"string"===a?new ge(e):"number"===a||"integer"===a?new fe(e):"boolean"===a?new pe(e):"null"===a?new be(e):void 0}getValue(){return this.root.getValue()}setValue(){this.root.setValue(...arguments),this.updateInstancesWatchedData()}getInstance(t){return this.instances.get(t)}getOption(t){const e=k[s=t]??s;var s;return e!==t&&console.warn(`Jedison: option "${t}" is deprecated. Use "${e}" instead.`),this.options[e]}navigateTo(t){this.isEditor&&this.root.ui.navigateTo(t)}disable(){this.root.ui.disable()}enable(){this.root.ui.enable()}getErrors(t=["error"]){let e=[];for(const s of this.instances.values())e=[...e,...s.getErrors()];return e.filter(e=>t.includes(e.type.toLowerCase()))}export(){const t=[];for(const e of this.instances.values())t.push({path:e.path??"-",type:e.schema.type??"-",title:e.ui.getTitle()??"-",value:e.getValue()??"-"});return t}showValidationErrors(t=null){if(!this.options.container)return!1;const e=t??this.getErrors();for(const s of this.instances.values())s.ui.showValidationErrors(e,!0)}watch(t,e){this.watched[t]||(this.watched[t]=[]),this.watched[t].push(e)}unwatch(t,e){this.watched[t]&&(this.watched[t]=this.watched[t].filter(t=>t!==e),0===this.watched[t].length&&delete this.watched[t])}destroy(){this._onFocus&&(document.removeEventListener("focus",this._onFocus,!0),document.removeEventListener("keydown",this._onKeydown)),this.root.destroy(),this.options.container&&(this.container.innerHTML=""),Object.keys(this).forEach(t=>{delete this[t]})}},SchemaGenerator:class{static inferType(t){return Array.isArray(t)?"array":null===t?"null":typeof t}static generate(t){if("object"!=typeof t||null===t)return{type:this.inferType(t)};if(Array.isArray(t)){const e=t.map(t=>this.generate(t));return{type:"array",items:e.length?e[0]:{}}}const e={};for(const s in t)e[s]=this.generate(t[s]);return{type:"object",properties:e}}}};module.exports=Cs;
1
+ "use strict";function t(e){if(null===e||"object"!=typeof e)return e;if(Array.isArray(e)){const s=e.length,i=new Array(s);for(let n=0;n<s;n++){const s=e[n];i[n]=null===s||"object"!=typeof s?s:t(s)}return i}const s=Object.keys(e),i={};for(let n=0,a=s.length;n<a;n++){const a=s[n],r=e[a],o=null===r||"object"!=typeof r?r:t(r);"__proto__"===a?Object.defineProperty(i,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):i[a]=o}return i}function e(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s(t,s,i){return t.replace(new RegExp(e(s),"g"),i)}function i(t){return s(s(t,"#","root"),"/","-").replace(/[^a-zA-Z0-9_-]/g,"")}function n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function a(t){return Object.keys(t).sort().reduce((e,s)=>(e[s]=t[s],e),{})}function r(t,e){if(t===e)return!0;if(null===t||null===e||"object"!=typeof t||"object"!=typeof e)return!1;const s=Array.isArray(t);if(s!==Array.isArray(e))return!1;if(s){const s=t.length;if(s!==e.length)return!1;for(let i=0;i<s;i++)if(!r(t[i],e[i]))return!1;return!0}const i=Object.keys(t),n=Object.keys(e);if(i.length!==n.length)return!1;for(let a=0,o=i.length;a<o;a++){const s=i[a];if(!Object.prototype.hasOwnProperty.call(e,s))return!1;if(!r(t[s],e[s]))return!1}return!0}function o(t,e){return!r(t,e)}function l(t){return null===t}function c(t){return void 0!==t}function d(t){return void 0===t}function h(t){return"number"==typeof t}function p(t){return h(t)&&t===Math.floor(t)}function u(t){return"string"==typeof t}function m(t){return"boolean"==typeof t}function g(t){return Array.isArray(t)}function f(t){return!l(t)&&!g(t)&&"object"==typeof t}function b(t){let e="any";return h(t)?e=p(t)?"integer":"number":u(t)?e="string":m(t)?e="boolean":g(t)?e="array":l(t)?e="null":f(t)&&(e="object"),e}const v=["id","class","title","name","value","disabled","always-enabled","always-disabled"],y=["aria-","data-"];const C=new Set(["__proto__","constructor","prototype"]);function E(t,...e){if(!e.length)return t;const s=e.shift();return f(t)&&f(s)&&Object.keys(s).forEach(e=>{C.has(e)||(f(s[e])?(t[e]||Object.assign(t,{[e]:{}}),E(t[e],s[e])):Object.assign(t,{[e]:s[e]}))}),E(t,...e)}function L(t,...e){if(!e.length)return t;const s=e.shift();return Array.isArray(t)&&Array.isArray(s)?t.push(...s):f(t)&&f(s)&&Object.keys(s).forEach(e=>{C.has(e)||(f(s[e])?(f(t[e])||Object.assign(t,{[e]:{}}),L(t[e],s[e])):Array.isArray(s[e])?(Array.isArray(t[e])||(t[e]=[]),t[e].push(...s[e])):Object.assign(t,{[e]:s[e]}))}),L(t,...e)}const x=(t,e)=>(Object.keys(e).forEach(s=>{s in t&&c(t[s])&&c(e[s])&&(f(t[s])&&f(e[s])||g(t[s])&&g(e[s])||u(t[s])&&u(e[s])||h(t[s])&&h(e[s])||m(t[s])&&m(e[s])||l(t[s])&&l(e[s]))&&(f(t[s])&&f(e[s])?x(t[s],e[s]):t[s]=e[s])}),t);function I(t,e){const s=e.split(".");let i=t;for(const a of s)if(Array.isArray(i)&&/^\d+$/.test(a)){const t=parseInt(a);if(!(t>=0&&t<i.length))return;i=i[t]}else{if(!n(i,a))return;i=i[a]}return i}function A(t,e){return t.replace(/{{(.*?)}}/g,(t,s)=>{const i=(s=s.trim()).indexOf("||");let n,a;if(-1!==i){n=s.slice(0,i).trim();a=s.slice(i+2).trim().replace(/^['"]|['"]$/g,"")}else n=s,a="";const r=I(e,n);return null!=r?r:a})}function w(t,e,s){return Math.max(e,Math.min(t,s))}function S(t){const e=[],s=new Set;for(const i of t){const t=JSON.stringify(i);s.has(t)||(s.add(t),e.push(i))}return e}function j(t,e){if(e.startsWith("#"))return e;const s=t.split("/");s.pop();for(const i of e.split("/"))".."===i?s.length>1&&s.pop():"."!==i&&""!==i&&s.push(i);return s.join("/")}function T(t){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let s="";for(let i=0;i<t;i++){s+=e[Math.floor(62*Math.random())]}return s}const O={clone:t,escapeRegExp:e,replaceAll:s,pathToAttribute:i,hasOwn:n,sortObject:a,equal:r,different:o,isNull:l,isSet:c,notSet:d,isNumber:h,isInteger:p,isString:u,isBoolean:m,isArray:g,isObject:f,getType:b,mergeDeep:E,combineDeep:L,overwriteExistingProperties:x,getValueByJSONPath:I,compileTemplate:A,clamp:w,removeDuplicatesFromArray:S,generateRandomID:T},k={enforceEnumDefault:"enforceEnum"};function D(t,e){return t["x-"+e]}function M(e){return f(e.additionalProperties)||m(e.additionalProperties)?t(e.additionalProperties):void 0}function P(e){return f(e.propertyNames)||m(e.propertyNames)?t(e.propertyNames):void 0}function F(e){return g(e.allOf)?t(e.allOf):void 0}function H(e){return g(e.anyOf)?t(e.anyOf):void 0}function V(e){return t(e.const)}function B(e){return f(e.contains)||m(e.contains)?t(e.contains):void 0}function R(e){return t(e.default)}function z(e){return f(e.dependentRequired)?t(e.dependentRequired):void 0}function q(e){return f(e.dependentSchemas)?t(e.dependentSchemas):void 0}function N(e){return u(e.description)?t(e.description):void 0}function U(e){return f(e.else)||m(e.else)?t(e.else):void 0}function W(e){if(g(e.enum)&&e.enum.length>0)return t(e.enum)}function J(e){return h(e.exclusiveMaximum)?t(e.exclusiveMaximum):void 0}function $(t){return h(t.exclusiveMinimum)?t.exclusiveMinimum:void 0}function _(e){return u(e.format)?t(e.format):void 0}function G(e){return f(e.if)||m(e.if)?t(e.if):void 0}function K(e){return f(e.items)||m(e.items)?t(e.items):void 0}function Z(e){return h(e.maximum)?t(e.maximum):void 0}function Q(e){if(p(e.maxContains)&&e.maxContains>=0)return t(e.maxContains)}function X(e){if(p(e.maxItems)&&e.maxItems>=0)return t(e.maxItems)}function Y(e){if(p(e.maxLength)&&e.maxLength>=0)return t(e.maxLength)}function tt(e){if(p(e.maxProperties))return t(e.maxProperties)}function et(e){return h(e.minimum)?t(e.minimum):void 0}function st(e){if(p(e.minContains)&&e.minContains>=0)return t(e.minContains)}function it(e){if(p(e.minItems)&&e.minItems>=0)return t(e.minItems)}function nt(e){if(p(e.minLength)&&e.minLength>=0)return t(e.minLength)}function at(e){if(p(e.minProperties)&&e.minProperties>=0)return t(e.minProperties)}function rt(e){if(h(e.multipleOf)&&e.multipleOf>=0)return t(e.multipleOf)}function ot(e){return f(e.not)||m(e.not)?t(e.not):void 0}function lt(t,e){const s="x-"+e;if(c(t[s]))return t[s];if(t["x-options"]&&c(t["x-options"][e]))return t["x-options"][e];if("switcherInput"===e&&!0===t["x-embedSwitcher"])return console.warn('Jedison: schema option "x-embedSwitcher" is deprecated. Use "x-switcherInput: \'select-inline\'" instead.'),"select-inline";for(const i of function(t){return Object.keys(k).filter(e=>k[e]===t)}(e)){const n="x-"+i;if(c(t[n]))return console.warn(`Jedison: schema option "${n}" is deprecated. Use "${s}" instead.`),t[n];if(t["x-options"]&&c(t["x-options"][i]))return console.warn(`Jedison: schema x-options.${i} is deprecated. Use x-options.${e} instead.`),t["x-options"][i]}}function ct(e){return u(e.pattern)?t(e.pattern):void 0}function dt(e){return f(e.patternProperties)?t(e.patternProperties):void 0}function ht(e){return g(e.prefixItems)?t(e.prefixItems):void 0}function pt(e){return f(e.properties)?t(e.properties):void 0}function ut(e){return m(e.readOnly)?t(e.readOnly):void 0}function mt(t){return g(t.required)?[...new Set(t.required)]:void 0}function gt(e){return f(e.then)||m(e.then)?t(e.then):void 0}function ft(e){return u(e.title)?t(e.title):void 0}function bt(e){if(u(e.type)||g(e.type))return t(e.type)}function vt(e){return g(e.oneOf)?t(e.oneOf):void 0}function yt(e){return m(e.unevaluatedProperties)?t(e.unevaluatedProperties):void 0}function Ct(e){return m(e.uniqueItems)?t(e.uniqueItems):void 0}const Et={getSchemaX:D,getSchemaSchema:function(e){return u(e.$schema)?t(e.$schema):void 0},getSchemaAdditionalProperties:M,getSchemaPropertyNames:P,getSchemaAllOf:F,getSchemaAnyOf:H,getSchemaConst:V,getSchemaContains:B,getSchemaDefault:R,getSchemaDependentRequired:z,getSchemaDependentSchemas:q,getSchemaDescription:N,getSchemaElse:U,getSchemaEnum:W,getSchemaExclusiveMaximum:J,getSchemaExclusiveMinimum:$,getSchemaFormat:_,getSchemaIf:G,getSchemaItems:K,getSchemaMaximum:Z,getSchemaMaxContains:Q,getSchemaMaxItems:X,getSchemaMaxLength:Y,getSchemaMaxProperties:tt,getSchemaMinimum:et,getSchemaMinContains:st,getSchemaMinItems:it,getSchemaMinLength:nt,getSchemaMinProperties:at,getSchemaMultipleOf:rt,getSchemaNot:ot,getSchemaXOption:lt,getSchemaPattern:ct,getSchemaPatternProperties:dt,getSchemaPrefixItems:ht,getSchemaProperties:pt,getSchemaReadOnly:ut,getSchemaRequired:mt,getSchemaThen:gt,getSchemaTitle:ft,getSchemaType:bt,getSchemaOneOf:vt,getSchemaUnevaluatedProperties:yt,getSchemaUniqueItems:Ct};function Lt(t){let e=[];const s=F(t.schema);if(c(s)){if(lt(t.schema,"subErrors")??t.validator.subErrors){const i=[];s.forEach((e,s)=>{const n=t.validator.getErrors(t.value,e,t.key,t.path);n.length>0&&i.push({schemaIndex:s,errors:n})}),i.length>0&&e.push({type:"error",path:t.path,constraint:"allOf",subErrors:i})}else s.forEach(s=>{const i=t.validator.getErrors(t.value,s,t.key,t.path);i.forEach(e=>{e.path=t.path}),e.push(...i)}),e=S(e)}return e}function xt(t){const e=[],s=nt(t.schema);if(u(t.value)&&c(s)){t.value=t.value.replace(/[\uDCA9]/g,"");t.value.length<s&&e.push({type:"error",path:t.path,constraint:"minLength",messages:[A(t.translator.translate("errorMinLength"),{minLength:s})]})}return e}function It(t){const e=[],s=H(t.schema);if(c(s)){const i=lt(t.schema,"subErrors")??t.validator.subErrors;let n=!1;if(i){const i=[];s.forEach((e,s)=>{const a=t.validator.getErrors(t.value,e,t.key,t.path);0===a.length&&(n=!0),i.push({schemaIndex:s,errors:a})}),n||e.push({type:"error",path:t.path,constraint:"anyOf",messages:[t.translator.translate("errorAnyOf")],subErrors:i.filter(t=>t.errors.length>0)})}else{for(const e of s){if(0===t.validator.getErrors(t.value,e,t.key,t.path).length){n=!0;break}}n||e.push({type:"error",path:t.path,constraint:"anyOf",messages:[t.translator.translate("errorAnyOf")]})}}return e}function At(t){const e=[],s=W(t.schema);if(c(s)){!s.some(e=>JSON.stringify(t.value)===JSON.stringify(e))&&e.push({type:"error",path:t.path,constraint:"enum",messages:[A(t.translator.translate("errorEnum"),{enum:JSON.stringify(s)})]})}return e}function wt(t){const e=[],s=J(t.schema);if(h(t.value)&&c(s)){t.value>=s&&e.push({type:"error",path:t.path,constraint:"exclusiveMaximum",messages:[A(t.translator.translate("errorExclusiveMaximum"),{exclusiveMaximum:s})]})}return e}function St(t){const e=[],s=$(t.schema);if(h(t.value)&&c(s)){t.value<=s&&e.push({type:"error",path:t.path,constraint:"exclusiveMinimum",messages:[A(t.translator.translate("errorExclusiveMinimum"),{exclusiveMinimum:s})]})}return e}function jt(t){const e=[],s=_(t.schema),i=lt(t.schema,"assertFormat"),n=void 0!==i?i:t.validator.assertFormat;if(c(s)&&u(t.value)&&n){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));c(i)&&!i.test(t.value)&&e.push({type:"error",path:t.path,constraint:"format",messages:[A(t.translator.translate("errorFormat"),{format:s})]})}return e}function Tt(t){const e=[],s=K(t.schema),i=ht(t.schema);if(g(t.value)&&c(s)){const n=c(i)?i.length:0;if(!1===s&&t.value.length>0&&t.value.length>n)e.push({type:"error",path:t.path,constraint:"items",messages:[t.translator.translate("errorItems")]});else if(f(s)){const i=lt(t.schema,"subErrors")??t.validator.subErrors;t.value.slice(n).forEach((a,r)=>{const o=n+r,l=t.validator.getErrors(a,s,o,t.path+"/"+o);if(l.length>0){const s={type:"error",path:t.path,constraint:"items",messages:[A(t.translator.translate("errorItems"),{index:o})]};i&&(s.subErrors=l),e.push(s)}})}}return e}function Ot(t){const e=[],s=X(t.schema);if(g(t.value)&&c(s)){t.value.length>s&&e.push({type:"error",path:t.path,constraint:"maxItems",messages:[A(t.translator.translate("errorMaxItems"),{maxItems:s})]})}return e}function kt(t){const e=[],s=Y(t.schema);if(u(t.value)&&c(s)){t.value=t.value.replace(/[\uDCA9]/g,"");t.value.length>s&&e.push({type:"error",path:t.path,constraint:"maxLength",messages:[A(t.translator.translate("errorMaxLength"),{maxLength:s})]})}return e}function Dt(t){const e=[],s=tt(t.schema);if(f(t.value)&&c(s)){Object.keys(t.value).length>s&&e.push({type:"error",path:t.path,constraint:"maxProperties",messages:[A(t.translator.translate("errorMaxProperties"),{maxProperties:s})]})}return e}function Mt(t){const e=[],s=et(t.schema);if(h(t.value)&&c(s)){t.value<s&&e.push({type:"error",path:t.path,constraint:"minimum",messages:[A(t.translator.translate("errorMinimum"),{minimum:s})]})}return e}function Pt(t){const e=[],s=it(t.schema);if(g(t.value)&&c(s)){t.value.length<s&&e.push({type:"error",path:t.path,constraint:"minItems",messages:[A(t.translator.translate("errorMinItems"),{minItems:s})]})}return e}function Ft(t){const e=[],s=at(t.schema);if(f(t.value)&&c(s)){Object.keys(t.value).length<s&&e.push({type:"error",path:t.path,constraint:"minProperties",messages:[A(t.translator.translate("errorMinProperties"),{minProperties:s})]})}return e}function Ht(t){const e=[],s=rt(t.schema);if(h(t.value)&&c(s)){if(0===t.value)return e;(!(t.value/s===Math.floor(t.value/s))||t.value.toString().includes("e"))&&e.push({type:"error",path:t.path,constraint:"multipleOf",messages:[A(t.translator.translate("errorMultipleOf"),{multipleOf:s})]})}return e}function Vt(t){const e=[],s=ot(t.schema);if(c(s)){0===t.validator.getErrors(t.value,s,t.key,t.path).length&&e.push({type:"error",path:t.path,constraint:"not",messages:[A(t.translator.translate("errorNot"))]})}return e}function Bt(t){const e=[],s=vt(t.schema);if(c(s)){let i=0;if(lt(t.schema,"subErrors")??t.validator.subErrors){const n=[];if(s.forEach((e,s)=>{const a=t.validator.getErrors(t.value,e,t.key,t.path);0===a.length?(i++,n.push({schemaIndex:s,matched:!0,errors:[]})):n.push({schemaIndex:s,matched:!1,errors:a})}),1!==i){const s={type:"error",path:t.path,constraint:"oneOf",messages:[A(t.translator.translate("errorOneOf"),{counter:i})]};0===i?s.subErrors=n.filter(t=>!t.matched).map(t=>({schemaIndex:t.schemaIndex,errors:t.errors})):s.matchingSchemas=n.filter(t=>t.matched).map(t=>t.schemaIndex),e.push(s)}}else{const n=[];if(s.forEach((e,s)=>{0===t.validator.getErrors(t.value,e,t.key,t.path).length&&(i++,n.push(s))}),1!==i){const s={type:"error",path:t.path,constraint:"oneOf",messages:[A(t.translator.translate("errorOneOf"),{counter:i})]};i>0&&(s.matchingSchemas=n),e.push(s)}}}return e}function Rt(t){const e=[],s=ct(t.schema);if(u(t.value)&&c(s)){!new RegExp(s).test(t.value)&&e.push({type:"error",path:t.path,constraint:"pattern",messages:[A(t.translator.translate("errorPattern"),{pattern:s})]})}return e}function zt(t){let e=[];const s=dt(t.schema);return f(t.value)&&c(s)&&Object.keys(t.value).forEach(i=>{Object.keys(s).forEach(n=>{if(new RegExp(n).test(i)){const a=s[n],r=t.validator.getErrors(t.value[i],a,i,t.path+"/"+i).map(e=>({type:"error",path:t.path+"/"+i,constraint:"patternProperties",messages:e.messages}));e=[...e,...r]}})}),e}function qt(t){const e=pt(t.schema),s=[],i=lt(t.schema,"subErrors")??t.validator.subErrors,a=[];if(f(t.value)&&c(e)&&Object.keys(e).forEach(r=>{if(n(t.value,r)){const n=e[r],o=t.validator.getErrors(t.value[r],n,r,t.path+"/"+r);o.length>0&&(s.push(r),i&&a.push({property:r,errors:o}))}}),s.length>0){const e={type:"error",path:t.path,constraint:"properties",messages:[A(t.translator.translate("errorProperties"),{properties:s.join(", ")})]};return i&&(e.subErrors=a),[e]}return[]}function Nt(t){const e=[],s=mt(t.schema);if(f(t.value)&&c(s)){const i=[],n=Object.keys(t.value);s.forEach(t=>{n.includes(t)||i.push(t)});i.length>0&&e.push({type:"error",path:t.path,constraint:"required",messages:[A(t.translator.translate("errorRequired"),{required:i.join(", ")})]})}return e}function Ut(t){const e=[],s=bt(t.schema);if("any"===s)return e;if(c(s)){const i={string:t=>u(t),number:t=>h(t),integer:t=>p(t),boolean:t=>m(t),array:t=>g(t),object:t=>f(t),null:t=>l(t)};let n=!0;n=g(s)?s.some(e=>i[e](t.value)):i[s](t.value),n||e.push({type:"error",path:t.path,constraint:"type",messages:[A(t.translator.translate("errorType"),{type:s,valueType:b(t.value)})]})}return e}function Wt(t){const e=[],s=Z(t.schema);if(h(t.value)&&c(s)){t.value>s&&e.push({type:"error",path:t.path,constraint:"maximum",messages:[A(t.translator.translate("errorMaximum"),{maximum:s})]})}return e}function Jt(t){const e=[],s=Ct(t.schema);if(g(t.value)&&c(s)&&!0===s){const s=[];let i=!1;for(let e=0;e<t.value.length;e++){let n=t.value[e];f(n)&&(n=a(n));const r=JSON.stringify(n);if(i=s.some(t=>t===r),i)break;s.push(r)}i&&e.push({type:"error",path:t.path,constraint:"uniqueItems",messages:[t.translator.translate("errorUniqueItems")]})}return e}function $t(t){const e=[],s=M(t.schema),i=dt(t.schema),a=pt(t.schema);if(f(t.value)&&c(s)){const r=a||{},o=s,l=i||{};Object.keys(t.value).forEach(s=>{const i=Object.keys(l).some(t=>new RegExp(t).test(s)),a=n(r,s);if(!i&&!a)if(!1===o)e.push({type:"error",path:t.path,constraint:"additionalProperties",messages:[A(t.translator.translate("errorAdditionalProperties"),{property:s})]});else if(f(o)){const i=t.validator.getErrors(t.value[s],o,s,t.path+"/"+s).map(e=>({type:"error",path:`${t.path}.${s}`,constraint:"additionalProperties",messages:e.messages}));e.push(...i)}})}return e}const _t={additionalProperties:$t,allOf:Lt,anyOf:It,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,properties:qt,required:Nt,type:Ut,uniqueItems:Jt};function Gt(t){const e=[],s=V(t.schema);if(c(s)){o(t.value,s)&&e.push({type:"error",path:t.path,constraint:"const",messages:[A(t.translator.translate("errorConst"),{const:JSON.stringify(s)})]})}return e}function Kt(t){const e=[],s=B(t.schema),i=st(t.schema),n=Q(t.schema);if(g(t.value)&&c(s)){let a=0;t.value.forEach((e,i)=>{0===t.validator.getErrors(e,s,i,t.path+"/"+i).length&&a++});const r=0===a;if(c(i)){a<i&&e.push({type:"error",path:t.path,constraint:"minContains",messages:[A(t.translator.translate("errorMinContains"),{counter:a,minContains:i})]})}else r&&e.push({type:"error",path:t.path,constraint:"contains",messages:[t.translator.translate("errorContains")]});if(c(n)){a>n&&e.push({type:"error",path:t.path,constraint:"maxContains",messages:[A(t.translator.translate("errorMaxContains"),{counter:a,maxContains:n})]})}}return e}function Zt(t){const e=[],s=z(t.schema);if(f(t.value)&&c(s)){let i=[];Object.keys(s).forEach(e=>{if(c(t.value[e])){const a=s[e];g(a)&&(i=a.filter(e=>!n(t.value,e)))}});i.length>0&&e.push({type:"error",path:t.path,constraint:"dependentRequired",messages:[A(t.translator.translate("errorDependentRequired"),{dependentRequired:i.join(", ")})]})}return e}function Qt(t){let e=[];const s=q(t.schema);return f(t.value)&&c(s)&&Object.keys(s).forEach(i=>{if(c(t.value[i])){const n=s[i],a=t.validator.getErrors(t.value,n,t.key,t.path);e=[...e,...a]}}),e}function Xt(t){const e=G(t.schema),s=gt(t.schema),i=U(t.schema);if(c(e)){if(d(s)&&d(i))return[];if(!0===e)return c(s)?t.validator.getErrors(t.value,s,t.key,t.path):[];if(!1===e)return c(i)?t.validator.getErrors(t.value,i,t.key,t.path):[];return 0===t.validator.getErrors(t.value,e,t.key,t.path).length?c(s)?t.validator.getErrors(t.value,s,t.key,t.path):[]:c(i)?t.validator.getErrors(t.value,i,t.key,t.path):[]}return[]}function Yt(t){const e=[],s=ht(t.schema);if(g(t.value)&&c(s)){const i=lt(t.schema,"subErrors")??t.validator.subErrors;s.forEach((s,n)=>{const a=t.value[n];if(c(a)){const r=t.validator.getErrors(a,s,n,t.path+"/"+n);if(r.length>0){const s={type:"error",path:t.path,constraint:"prefixItems",messages:[A(t.translator.translate("errorPrefixItems"),{index:n})]};i&&(s.subErrors=r),e.push(s)}}})}return e}const te={additionalProperties:$t,allOf:Lt,anyOf:It,const:Gt,contains:Kt,dependentRequired:Zt,dependentSchemas:Qt,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,if:Xt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,properties:qt,prefixItems:Yt,required:Nt,type:Ut,uniqueItems:Jt},ee={additionalProperties:$t,allOf:Lt,anyOf:It,const:Gt,contains:Kt,dependentRequired:Zt,dependentSchemas:Qt,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,if:Xt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,properties:qt,prefixItems:Yt,required:Nt,type:Ut,uniqueItems:Jt};function se(t){let e=[];const s=yt(t.schema),i=dt(t.schema),a=pt(t.schema),r=F(t.schema),o=H(t.schema),l=vt(t.schema);if(f(t.value)&&c(s)){let d=c(a)?a:{};const h=s,p=i;[r,o,l].forEach(t=>{c(t)&&t.forEach(t=>{c(t.properties)&&(d={...d,...t.properties})})}),d&&Object.keys(t.value).forEach(s=>{let i=!1;if(c(p)&&Object.keys(p).forEach(t=>{const e=new RegExp(t);i=e.test(s)}),i||!1!==h||n(d,s)||e.push({type:"error",path:t.path,constraint:"unevaluatedProperties",messages:[A(t.translator.translate("errorUnevaluatedProperties"),{property:s})]}),!i&&f(h)&&!n(d,s)){const i=t.validator.getErrors(t.value[s],h,s,t.path+"/"+s).map(t=>({type:"error",path:s,constraint:"unevaluatedProperties",messages:t.messages}));e=[...e,...i]}})}return e}const ie={additionalProperties:$t,allOf:Lt,anyOf:It,const:Gt,contains:Kt,dependentRequired:Zt,dependentSchemas:Qt,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,if:Xt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,propertie:qt,prefixItems:Yt,required:Nt,type:Ut,unevaluatedProperties:se,uniqueItems:Jt};const ne={additionalProperties:$t,allOf:Lt,anyOf:It,const:Gt,contains:Kt,dependentRequired:Zt,dependentSchemas:Qt,enum:At,exclusiveMaximum:wt,exclusiveMinimum:St,format:jt,if:Xt,items:Tt,maximum:Wt,maxItems:Ot,maxLength:kt,maxProperties:Dt,minimum:Mt,minItems:Pt,minLength:xt,minProperties:Ft,multipleOf:Ht,not:Vt,oneOf:Bt,pattern:Rt,patternProperties:zt,prefixItems:Yt,propertyNames:function(t){const e=[],s=P(t.schema);return f(t.value)&&c(s)&&Object.keys(t.value).forEach(i=>{t.validator.getErrors(i,s,i,t.path).length>0&&e.push({type:"error",path:t.path,constraint:"propertyNames",messages:[A(t.translator.translate("errorPropertyNames"),{propertyName:i})]})}),e},properties:qt,required:Nt,type:Ut,unevaluatedProperties:se,uniqueItems:Jt};class ae{constructor(t={}){this.refParser=t.refParser,this.constraints=t.constraints??{},this.assertFormat=!!t.assertFormat&&t.assertFormat,this.translator=!!t.translator&&t.translator,this.subErrors=t.subErrors??!1,this.draft=ne,this.jsonSchemaDrafts={"http://json-schema.org/draft-04/schema#":_t,"http://json-schema.org/draft-06/schema#":te,"http://json-schema.org/draft-07/schema#":ee,"https://json-schema.org/draft/2019-09/schema":ie,"https://json-schema.org/draft/2020-12/schema":ne}}getErrors(t,e,s,i){let a=[];if(m(e)&&!0===e)return a;if(m(e)&&!1===e)return[{type:"error",messages:["invalid"],path:i}];this.refParser&&f(e)&&n(e,"$ref")&&(e=this.refParser.expand(e));const r={...this.draft,...this.constraints};for(const[l,c]of Object.entries(r))if(n(e,l)){const n=c({validator:this,value:t,schema:e,key:s,path:i,translator:this.translator});n&&(a=[...a,...n])}const o=lt(e,"messages");return c(o)&&(f(o)&&a.forEach(t=>{var e,s;const i=null==(s=null==o?void 0:o[null==(e=this.translator)?void 0:e.language])?void 0:s[null==t?void 0:t.constraint],n=null==o?void 0:o[null==t?void 0:t.constraint],a=i??n;return c(a)&&(t.messages=[a]),t}),g(o)&&a.length>0&&a.forEach(t=>(t.messages=o,t))),a}}class re{constructor(){this.listeners=new Map}on(t,e){let s=this.listeners.get(t);s||(s=[],this.listeners.set(t,s)),s.push(e)}off(t,e){if("function"!=typeof e)return void this.listeners.delete(t);const s=this.listeners.get(t);if(!s)return;const i=s.filter(t=>t!==e);0===i.length?this.listeners.delete(t):this.listeners.set(t,i)}emit(t,...e){const s=this.listeners.get(t);if(s)for(const n of s)try{n(...e)}catch(i){console.error(`Error in listener callback for event "${t}":`,i)}}destroy(){Object.keys(this).forEach(t=>{delete this[t]})}}class oe extends re{constructor(e){super(),this.jedison=e.jedison,this.path=e.path||this.jedison.rootName,this.schema=e.schema,this.originalSchema=e.originalSchema??t(e.schema),this.value=c(e.value)?e.value:void 0,this.isActive=!0,this.parent=e.parent||null,this.children=[],this.ui=null,this.isDirty=!1,this.watched={},this.key=this.path.split(this.jedison.pathSeparator).pop(),this.arrayTemplateData=e.arrayTemplateData||{},this.init()}init(){this.register(),this.setInitialValue(),this.prepare(),this.setDefaultValue(),this.registerWatcher(),this.setValueFormTemplate(),this.jedison.getOption("container")&&this.setUI(),this.on("notifyParent",t=>{this.parent&&(this.parent.isDirty=!0,this.parent.onChildChange(t))})}setUI(){if(this.jedison.isEditor){const t=this.jedison.uiResolver.getClass(this.schema);this.ui=new t(this)}}getKey(){return this.key}getSchema(){return this.schema}register(){if(this.jedison.register(this),0===this.children.length)return;const t=e=>{this.jedison.register(e),e.children.length>0&&e.children.forEach(t)};this.children.forEach(t)}unregister(){if(this.jedison.unregister(this),0===this.children.length)return;const t=e=>{this.jedison.unregister(e),e.children.length>0&&e.children.forEach(t)};this.children.forEach(t)}setInitialValue(){const t=lt(this.schema,"enforceEnum")??this.jedison.getOption("enforceEnum"),e=W(this.schema);if(c(e)&&!e.includes(this.getValueRaw())&&c(e[0])&&t&&this.setValue(e[0],!1),d(this.value)){let t;const e=bt(this.schema);"boolean"===e&&(t=!1),"number"===e&&(t=0),"integer"===e&&(t=0),"string"===e&&(t=""),"array"===e&&(t=[]),"object"===e&&(t={}),"null"===e&&(t=null),this.value=t}}setDefaultValue(){const t=R(this.schema);c(t)&&this.setValue(t,!1);const e=lt(this.schema,"enforceConst")??this.jedison.getOption("enforceConst");if(c(e)&&r(e,!0)){const t=V(this.schema);c(t)&&this.setValue(t,!1)}}registerWatcher(){const t=lt(this.schema,"watch");c(t)&&Object.entries(t).forEach(([t,e])=>{this.jedison.watch(e,()=>{this.updateWatchedData(t,e)})})}updateWatchedData(t,e){const s=this.jedison.getInstance(e);c(s)&&(s&&(this.watched[t]={value:s.getValue(),schema:s.getSchema(),properties:s.schema.properties?Object.keys(s.schema.properties):[]}),this.setValueFormTemplate())}setValueFormTemplate(){const t=lt(this.schema,"template");c(t)&&t&&this.setValue(A(t,this.watched))}getValue(){return t(this.value)}getValueRaw(){return this.value}getTemplateData(t){const e={...this.arrayTemplateData,value:this.getValueRaw(),settings:this.jedison.getOption("settings")};return"string"==typeof this.value&&(e.length=this.value.length,"number"==typeof this.schema.maxLength&&(e.remaining=this.schema.maxLength-this.value.length)),(null==t?void 0:t.includes("{{ functions."))&&(e.functions=this.resolveTemplateFunctions(this.jedison.getOption("functions"))),this.parent&&(e.parent=this.parent.getTemplateData()),e}resolveTemplateFunctions(t={}){const e={instance:this};return Object.fromEntries(Object.entries(t).map(([t,s])=>[t,s(e)]))}purify(t){return"string"==typeof t&&this.jedison.getOption("purifyData")&&"undefined"!=typeof window&&window.DOMPurify&&(t=window.DOMPurify.sanitize(t)),t}setValue(t,e=!0,s="api"){if(this.value===t)return this.value;const i=this.purify(t),n=t!==i;t=i;const a=lt(this.schema,"enforceConst")??this.jedison.getOption("enforceConst");if(c(a)&&r(a,!0)){const e=V(this.schema);c(e)&&(t=e)}return n||o(this.value,t)?(this.value=t,this.isDirty=!0,this.emit("set-value",t,s),this.emit("change",s),this.jedison.emit("instance-change",this,s),e&&this.emit("notifyParent",s),this.value):this.value}onChildChange(t){}getErrors(){if(!this.isActive)return[];let t=this.parent;for(;t;){if(!t.isActive)return[];t=t.parent}return S(this.jedison.validator.getErrors(this.getValueRaw(),this.originalSchema,this.getKey(),this.path))}hasNestedValidationErrors(){return 0===this.children.length?!(!this.ui||!this.ui.showingValidationErrors):this.children.some(t=>t.hasNestedValidationErrors())}prepare(){}activate(){!1===this.isActive&&(this.isActive=!0,this.emit("notifyParent"))}deactivate(){!0===this.isActive&&(this.isActive=!1,this.emit("notifyParent"))}isReadOnly(){return!0===ut(this.schema)||!!this.parent&&this.parent.isReadOnly()}destroy(){this.unregister(),this.listeners=null,this.children.length>0&&(this.children.forEach(t=>t.destroy()),this.children=[]),this.ui&&(this.ui.destroy(),this.ui=null),Object.keys(this).forEach(t=>{this[t]=null}),super.destroy()}}class le{constructor(t){this.instance=t,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.appendSchemaButtons(),this.refreshUI();("always"===this.instance.jedison.getOption("showErrors")||"always"===lt(this.instance.schema,"showErrors"))&&this.showValidationErrors(this.instance.getErrors());this.instance.on("change",()=>{this.refreshUI(),this.showValidationErrors(this.instance.getErrors())})}static resolves(t){}static providesChildHeading(){return!1}init(){this.theme=this.instance.jedison.theme,this.markdownEnabled=lt(this.instance.schema,"parseMarkdown")??this.instance.jedison.getOption("parseMarkdown"),this.purifyEnabled=lt(this.instance.schema,"purifyHtml")??this.instance.jedison.getOption("purifyHtml")}getLevel(){return(this.instance.path.match(/\//g)||[]).length}setVisibility(){const t=lt(this.instance.schema,"hidden");c(t)&&!0===t&&(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",bt(this.instance.schema));const t=lt(this.instance.schema,"containerAttributes");if(c(t)&&f(t))for(const[e,s]of Object.entries(t))if("class"===e){s.split(" ").forEach(t=>{this.control.container.classList.add(t)})}else this.control.container.setAttribute(e,s)}appendSchemaButtons(){const t=lt(this.instance.schema,"buttons");if(!g(t))return;const e=this.instance.jedison.getOption("domPurifyOptions");t.forEach(t=>{if(!f(t))return;const s=u(t.label)?t.label:"",i=this.purifyEnabled?this.purifyContent(s,e):s,n=function(t,e={}){const{allowlist:s=v,allowedPrefixes:i=y}=e,n={};if(!f(t))return n;const a=new Set(s.map(t=>t.toLowerCase()));for(const[r,o]of Object.entries(t)){const t=r.trim().toLowerCase();(a.has(t)||i.some(e=>t.startsWith(e)))&&(n[r]=o)}return n}(t.attributes),a=this.theme.getXButton({label:i,attributes:n});this.control.container.appendChild(a);const r=f(t.event)&&u(t.event.name)?t.event.name:null;if(!r)return;const o=()=>{const t=this.instance.jedison;t.emit("jedison:"+r,{jedison:t,editor:this,path:this.instance.path})};a.addEventListener("click",o),this.storedEventListeners.push({element:a,eventType:"click",handler:o})})}build(){}adaptForTable(){}adaptForHorizontal(t,e){}setAttributes(){const t=this.control.input;if(c(t)){const e=lt(this.instance.schema,"inputAttributes");if(f(e))for(const[s,i]of Object.entries(e))t.setAttribute(s,i)}}setReadOnlyAttribute(){if(this.readOnly){this.control.container.querySelectorAll("input, textarea, select").forEach(t=>{t.setAttribute("always-disabled","")})}}getIdFromPath(t){const e=this.instance.jedison.getOption("id");return e?e+"-"+i(t):i(t)}getValidationEventType(){return"input"===(lt(this.instance.schema,"showErrors")??this.instance.jedison.getOption("showErrors"))?"input":"change"}addEventListeners(){}clearStoredEventListeners(){this.storedEventListeners&&this.storedEventListeners.forEach(t=>{t.element&&t.handler&&t.element.removeEventListener(t.eventType||"click",t.handler)}),this.storedEventListeners=[]}showValidationErrors(t,e=!1){t=t.filter(t=>t.path===this.instance.path),this.control.messages.innerHTML="",this.showingValidationErrors=!1,this.setAriaInvalid(!1);if(("never"===this.instance.jedison.getOption("showErrors")||"never"===lt(this.instance.schema,"showErrors"))&&!e||0===t.length)return;const s=lt(this.instance.schema,"muteValidationMessages")??this.instance.jedison.getOption("muteValidationMessages")??[];let i=!1;t.forEach(t=>{s.includes(t.constraint)||t.messages.forEach(e=>{let s;"error"===t.type?(i=!0,s=this.getErrorFeedback({message:e})):s=this.getWarningFeedback({message:e}),this.control.messages.appendChild(s)})}),i&&this.setAriaInvalid(!0),this.showingValidationErrors=!0}setAriaInvalid(t){this.control.input&&(t?this.control.input.setAttribute("aria-invalid","true"):this.control.input.removeAttribute("aria-invalid"))}getErrorFeedback(t){return this.theme.getErrorFeedback(t)}getWarningFeedback(t){return this.theme.getWarningFeedback(t)}disable(){this.disabled=!0,this.refreshUI()}enable(){this.disabled=!1,this.refreshUI()}purifyContent(t,e){if(this.instance.jedison.getOption("purifyHtml")&&"undefined"!=typeof window&&window.DOMPurify)return window.DOMPurify.sanitize(t,e);{const e=document.createElement("div");return e.innerHTML=t,e.textContent||e.innerText}}getHtmlFromMarkdown(t){return window.marked.parse(t)}getTitle(){let t=!1;this.title=this.instance.getKey();const e=ft(this.instance.schema);if(c(e)&&(this.title=e,t=!0),t){this.title=A(this.title,this.instance.getTemplateData(this.title)),this.title=this.markdownEnabled?this.getHtmlFromMarkdown(this.title):this.title;const t=L({},this.instance.jedison.getOption("domPurifyOptions"),{FORBID_TAGS:["p"]});this.title=this.purifyEnabled?this.purifyContent(this.title,t):this.title}return this.title}getDescription(){const t=N(this.instance.schema);if(c(t)){this.description=A(t,this.instance.getTemplateData(this.description)),this.description=this.markdownEnabled?this.getHtmlFromMarkdown(this.description):this.description;const e=this.instance.jedison.getOption("domPurifyOptions");this.description=this.purifyEnabled?this.purifyContent(this.description,e):this.description}return this.description}getInfo(t=null){const e=lt(t??this.instance.schema,"info");if(!c(e))return e;const s=this.instance.jedison.getOption("domPurifyOptions");return c(e.title)&&(e.title=this.markdownEnabled?this.getHtmlFromMarkdown(e.title):e.title,e.title=this.purifyEnabled?this.purifyContent(e.title,s):e.title),c(e.content)&&(e.content=this.markdownEnabled?this.getHtmlFromMarkdown(e.content):e.content,e.content=this.purifyEnabled?this.purifyContent(e.content,s):e.content),e}refreshLegendWarning(){}refreshUI(){this.refreshDisabledState(),this.refreshTemplates()}refreshDisabledState(){this.control.container.querySelectorAll("button, input, select, textarea").forEach(t=>{this.disabled||this.readOnly||t.hasAttribute("always-disabled")?t.setAttribute("disabled",""):t.removeAttribute("disabled",""),t.hasAttribute("always-enabled")&&t.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(t){return t}refreshJsonDataInputSize(){if(this.control&&this.control.jsonData&&this.control.jsonData.input){const t=this.control.jsonData.input;t.style.height="auto",t.style.height=t.scrollHeight+"px",setTimeout(()=>{t&&(t.scrollTop=0)})}}refreshJsonData(){this.control&&this.control.jsonData&&this.control.jsonData.input&&(this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2))}getNextChildPath(t){const e=this.instance.path.split(this.instance.jedison.pathSeparator).length,s=t.split(this.instance.jedison.pathSeparator);return s.length<=e?null:s.slice(0,e+1).join(this.instance.jedison.pathSeparator)}navigateTo(t){if(t===this.instance.path)return void this.control.container.scrollIntoView({behavior:"smooth",block:"nearest"});const e=this.getNextChildPath(t);if(!e)return;const s=this.instance.children.find(t=>t.path===e);(null==s?void 0:s.ui)&&s.ui.navigateTo(t)}destroy(){this.clearStoredEventListeners(),this.control.container&&this.control.container.parentNode&&this.control.container.parentNode.removeChild(this.control.container),Object.keys(this).forEach(t=>{delete this[t]})}}class ce extends le{static resolves(t){return c(G(t))}build(){this.control=this.theme.getIfThenElseControl({title:"Options",titleHidden:lt(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),description:N(this.instance.schema)})}refreshUI(){this.refreshDisabledState(),this.control.childrenSlot.innerHTML="",this.control.childrenSlot.appendChild(this.instance.activeInstance.ui.control.container),this.control.switcherSlot=this.instance.activeInstance.ui.control.switcherSlot,this.disabled||this.instance.isReadOnly()?this.instance.activeInstance.ui.disable():this.instance.activeInstance.ui.enable()}getErrorFeedback(t){return this.theme.getAlert(t)}}class de extends oe{setUI(){this.ui=new ce(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(e=>{c(e.then)&&this.schemas.push(E({},t(this.schema),e.then)),c(e.else)&&this.schemas.push(E({},t(this.schema),e.else))});const e=t(this.schema);delete e.if,delete e.then,delete e.else,this.instanceWithoutIf=this.jedison.createInstance({jedison:this.jedison,schema:e,originalSchema:this.originalSchema,path:this.path,parent:this.parent,arrayTemplateData:this.arrayTemplateData}),this.schemas.forEach(t=>{const e=this.jedison.createInstance({jedison:this.jedison,schema:t,originalSchema:this.originalSchema,path:this.path,parent:this.parent,arrayTemplateData:this.arrayTemplateData});this.instanceStartingValues.push(e.getValue()),this.instances.push(e)}),this.on("set-value",(t,e)=>{this.changeValue(t,e)});const s=this.instanceWithoutIf.getValueRaw();this.changeValue(s)}changeValue(t,e="api"){const s=this.getWithoutIfValueFromValue(t),i=this.getFittestIndex(s),a=i!==this.index;this.index=i,this.activeInstance=this.instances[i],this.activeInstance.register(),this.instances.forEach((r,o)=>{r.off("notifyParent"),r.children&&f(t)&&r.children.forEach(e=>{e.isMultiple&&n(t,e.getKey())&&e.setValue(t[e.getKey()],!0,"api")});const l=this.instanceStartingValues[o];let c=t;if(f(l)&&f(t))if(a&&"api"!==e)c=x(l,s);else{if(this.jedison.getOption("audacity")&&"api"===e&&o===i){const e=E({},r.getValue(),t);r.setValue(e,!1,"api")}const s=r.getValue();c=x(s,t)}a&&this.jedison.updateInstancesWatchedData(),r.setValue(c,!1,e),r.on("notifyParent",t=>{const e=r.getValueRaw();this.changeValue(e,t),this.emit("notifyParent",t),this.emit("change",t)})}),"api"===e&&this.hasNullableFields(this.activeInstance)&&this.activeInstance.setValue(t,!1,"secondary"),this.activeInstance.register(),this.value=this.activeInstance.getValueRaw()}getWithoutIfValueFromValue(t){let e=this.instanceWithoutIf.getValue();return f(e)&&f(t)?(e=x(e,t),e):t}traverseSchema(t){const e=G(t);if(c(e)){const s=gt(t),i=U(t);this.ifThenElseSchemas.push({if:e,then:c(s)?s:{}}),this.ifThenElseSchemas.push({if:e,else:c(i)?i:{}})}}hasNullableFields(t){return!!t&&(!!this.isNullableSchema(t.schema)||!!t.children&&t.children.some(t=>this.hasNullableFields(t)))}isNullableSchema(t){return!!t&&(!(!t["x-format"]||!t["x-format"].includes("nullable"))||(!(!Array.isArray(t.type)||!t.type.includes("null"))||!!t.properties&&Object.values(t.properties).some(t=>this.isNullableSchema(t))))}getFittestIndex(t){let e=this.index;const s=this.getKey();return this.ifThenElseSchemas.forEach((i,n)=>{if(!0===i.if)e=0;else if(!1===i.if)e=1;else{const a=c(this.schema.type)?{...i.if,type:this.schema.type}:i.if,r=this.jedison.validator.getErrors(t,a,s,this.path);0===r.length&&i.then&&(e=n),r.length>0&&i.else&&(e=n)}}),e}hasNestedValidationErrors(){return!!this.activeInstance&&this.activeInstance.hasNestedValidationErrors()}destroy(){this.instanceWithoutIf&&this.instanceWithoutIf.destroy(),this.instances.forEach(t=>{t.destroy()}),super.destroy()}}class he extends oe{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 e=bt(this.schema);if(c(H(this.schema))||c(vt(this.schema))){const e=c(H(this.schema))?H(this.schema):vt(this.schema),s=t(this.schema);delete s.anyOf,delete s.oneOf,delete s.options,e.forEach((t,e)=>{let i="Option-"+(e+1);const n=lt(t={...s,...t},"switcherTitle"),a=ft(t),r=N(t);c(r)&&(i=r),c(a)&&(i=a),c(n)&&(i=n),this.switcherOptionValues.push(e),this.switcherOptionsLabels.push(i),this.schemas.push(t)})}else if(g(e))e.forEach((t,e)=>{const s=E(this.schema),i={...s,type:t,title:t[0].toUpperCase()+t.slice(1)};c(s.title)&&(i.title=s.title),this.switcherOptionValues.push(e),this.switcherOptionsLabels.push(t.charAt(0).toUpperCase()+t.slice(1)),this.schemas.push(i)});else if("any"===e||!e){const e=t(this.schema);this.schemas=[{...e,type:"string"},{...e,type:"boolean"},{...e,type:"integer"},{...e,type:"number"},{...e,type:"array"},{...e,type:"object"},{...e,type:"null"}],this.schemas.forEach((t,e)=>{this.switcherOptionValues.push(e)}),this.switcherOptionsLabels=["String","Boolean","Integer","Number","Array","Object","Null"]}const s=lt(this.schema,"switcherTypeLabels")??this.jedison.getOption("switcherTypeLabels");s&&"object"==typeof s&&(this.switcherOptionsLabels=this.switcherOptionsLabels.map(t=>n(s,t)?s[t]:t)),this.schemas.forEach(e=>{const s=this.jedison.createInstance({jedison:this.jedison,schema:e,path:this.path,parent:this.parent,value:t(this.value)});c(this.value)&&s.setValue(this.value,!1),s.unregister(),s.off("notifyParent"),s.on("notifyParent",t=>{this.value=this.activeInstance.getValueRaw(),this.emit("change",t),this.emit("notifyParent",t)}),this.instances.push(s),this.register()});const i=this.getFittestIndex(this.value);this.switchInstance(i,this.value)}switchInstance(t,e,s="api"){this.activeInstance&&this.activeInstance.children.forEach(t=>t.unregister()),this.index=t,this.activeInstance=this.instances[t],c(e)&&this.activeInstance.setValue(e,!1,s),this.activeInstance.children.forEach(t=>t.register());const i=this.activeInstance.getValueRaw(),n=o(this.value,i);this.setValue(i,!0,s),n||this.emit("change",s)}onSetValue(){if(o(this.activeInstance.getValueRaw(),this.value)){const t=this.getFittestIndex(this.value);this.switchInstance(t,this.value)}}getFittestIndex(t){const e=lt(this.schema,"discriminator");if(c(e)&&f(t)){const s=u(e)?e:e.propertyName,i=t[s];if(c(i))for(let t=0;t<this.schemas.length;t++){const e=this.schemas[t],n=e.properties&&e.properties[s];if(n){if(0===this.jedison.validator.getErrors(i,n,s,this.path).length)return t}}}let s,i;for(let n=0;n<this.instances.length;n++){const e=this.instances[n],a=c(t)?t:e.getValueRaw(),r=this.jedison.validator.getErrors(a,e.schema,this.getKey(),this.path);if(0===r.length){s=n;break}(void 0===s||void 0===i||r.length<i.length)&&(s=n,i=r)}return s}hasNestedValidationErrors(){return!!this.activeInstance&&this.activeInstance.hasNestedValidationErrors()}destroy(){this.instances.forEach(t=>{t.destroy()}),super.destroy()}}class pe extends oe{}class ue extends oe{prepare(){this.properties={},this.requiredProperties=new Set,this.schemaPatternProperties=dt(this.schema),this.schemaAdditionalProperties=M(this.schema);const e=pt(this.schema),s=mt(this.schema),i=t(this.value);c(e)&&Object.keys(e).forEach(t=>{const s=e[t];this.properties[t]={schema:s};let a=!0;const r=c(s["x-recursive"]),o=this.jedison.getOption("deactivateNonRequired"),l=lt(this.schema,"deactivateNonRequired"),d=lt(s,"deactivateNonRequired"),h=this.isRequired(t);!h&&c(o)&&!0===o&&(a=!1),!h&&c(l)&&!0===l&&(a=!1),!h&&c(d)&&!0===d&&(a=!1),!h&&r&&(a=!1),a&&this.createChild(s,t,n(i,t)?i[t]:void 0)}),c(s)&&this.jedison.isEditor&&!0===this.jedison.getOption("enforceRequired")&&s.forEach(t=>{this.requiredProperties.add(t),n(this.properties,t)||(this.properties[t]={},this.createChild({},t,n(i,t)?i[t]:void 0))}),this.refreshInstances(),this.on("set-value",(t,e)=>{this.addMissingRequiredPropertiesToValue(t),this.removeNotListedPropertiesFromValue(t),this.refreshInstances(e)})}removeNotListedPropertiesFromValue(t){const e=lt(this.schema,"enforceAdditionalProperties"),s=c(e)?e:this.jedison.getOption("enforceAdditionalProperties"),i=this.schemaAdditionalProperties,a=this.schemaPatternProperties||{};if(this.jedison.isEditor&&s&&c(i)&&!1===i){const e=Object.keys(a).map(t=>new RegExp(t));Object.keys(t).forEach(s=>{const i=e.some(t=>t.test(s));n(this.properties,s)||i||delete t[s]})}}addMissingRequiredPropertiesToValue(t){const e=lt(this.schema,"enforceRequired")??this.jedison.getOption("enforceRequired");this.jedison.isEditor&&e&&this.requiredProperties.forEach(e=>{n(t,e)||(t[e]=this.getChild(e).getValue())})}isRequired(t){const e=mt(this.schema),s=c(e)&&e.includes(t),i=this.isDependentRequired(t);return s||i}isDependentRequired(t){const e=z(this.schema);if(c(e)){let s=[];return Object.keys(e).forEach(t=>{if(c(this.value[t])){const i=e[t];g(i)&&(s=i.filter(t=>!n(this.value,t)))}}),s.includes(t)}return!1}createChild(e,s,i,n=!1){const a=this.jedison.createInstance({jedison:this.jedison,schema:e,path:this.path+this.jedison.pathSeparator+s,parent:this,value:t(i)});this.children.push(a),this.value[s]=a.getValue();const r=lt(this.schema,"deactivateNonRequired")??this.jedison.getOption("deactivateNonRequired");return this.isRequired(s)||!c(r)||!0!==r||n||a.deactivate(),this.onChildChange(),a}deleteChild(t){for(let e=this.children.length-1;e>=0;e--){const s=this.children[e];s.getKey()===t&&(s.destroy(),this.children.splice(e,1),this.onChildChange())}}getChild(t){return this.children.find(e=>t===e.getKey().split(this.jedison.pathSeparator).pop())}getPropertySchema(t){let e;const s=this.schemaAdditionalProperties,i=pt(this.schema),a=this.schemaPatternProperties;if(c(i)&&n(i,t))e=i[t];else if(c(a))for(const n of Object.keys(a))if(new RegExp(n).test(t)){e=a[n];break}return d(e)&&c(s)&&(e=s),d(e)&&(e={}),e}onChildChange(t){const e={};this.children.forEach(t=>{if(t.isActive){const s=t.getKey();"__proto__"===s?Object.defineProperty(e,s,{value:t.getValueRaw(),enumerable:!0}):e[s]=t.getValueRaw()}}),this.value=e,this.jedison.emit("instance-change",this,t),this.emit("change",t),this.refreshingInstances||this.emit("notifyParent",t)}sortChildrenByPropertyOrder(){this.children=this.children.sort((t,e)=>{const s=lt(t.schema,"propertyOrder"),i=lt(e.schema,"propertyOrder"),n=h(s),a=h(i);return!n&&a?1:n&&!a||s<i?-1:s>i?1:0})}refreshInstances(t){const e=this.refreshingInstances;this.refreshingInstances=!0;const s=this.getValue();if(!f(s))return void(this.refreshingInstances=e);const i=new Map;for(const n of this.children)i.set(n.getKey(),n);Object.keys(s).forEach(e=>{const n=i.get(e);if(n){n.activate();const i=n.getValueRaw(),a=s[e];if(o(i,a)){const i=n.setValue(a,!1,t);s[e]=i}}else{const t=this.getPropertySchema(e);this.createChild(t,e,s[e],!0)}});for(let n=this.children.length-1;n>=0;n--){const t=this.children[n],e=t.getKey();d(s[e])&&(i.has(e)?t.deactivate():this.deleteChild(e))}this.sortChildrenByPropertyOrder(),this.value=s,this.refreshingInstances=e}}class me extends oe{prepare(){this.schemaItems=K(this.schema),f(this.schemaItems)&&this.jedison.refParser&&this.jedison.refParser.hasRef(this.schemaItems)&&!this.schemaItems["x-recursive"]&&(this.schemaItems=this.jedison.refParser.expand(this.schemaItems),this.schema.items=this.schemaItems),this.schemaPrefixItems=ht(this.schema);const t=it(this.schema),e=lt(this.schema,"enforceMinItems"),s=c(e)?e:this.jedison.getOption("enforceMinItems"),i=this.jedison.isEditor,n=c(s)&&!0===s,a=c(t);if(i&&n&&a)for(let r=0;r<t;r++)this.addItem();this.refreshChildren(),this.on("set-value",()=>{this.refreshChildren()})}createItemInstance(t){let e;const s=this.children.length,i=this.schemaItems,n=this.schemaPrefixItems;e=c(i)?i:{};return c(n)&&c(n[s])&&(e=n[s]),this.jedison.createInstance({jedison:this.jedison,schema:e,path:this.path+this.jedison.pathSeparator+s,parent:this,arrayTemplateData:{i0:t,i1:t+1}})}setDefaultValue(){const t=R(this.schema);c(t)&&this.setValue(t)}move(e,s,i){const n=this.getValueRaw();if(!g(n))return;const a=t(n),r=a[e];a.splice(e,1),a.splice(s,0,r),this.setValue(a,!0,i),this.emit("item-move",i),this.jedison.emit("item-move",i)}addItem(e){const s=this.createItemInstance(),i=this.getValueRaw(),n=g(i)?t(i):[];n.push(s.getValueRaw()),s.destroy(),this.setValue(n,!0,e);const a=this.children[this.children.length-1];this.emit("item-add",e,a),this.jedison.emit("item-add",e,a)}addItemAfter(e,s){const i=this.createItemInstance(),n=this.getValueRaw(),a=g(n)?t(n):[];a.splice(e+1,0,i.getValueRaw()),i.destroy(),this.setValue(a,!0,s);const r=this.children[e+1];this.emit("item-add",s,r),this.jedison.emit("item-add",s,r)}deleteItem(e,s){const i=this.getValueRaw();if(!g(i))return;const n=t(i).filter((t,s)=>s!==e);this.setValue(n,!0,s),this.emit("item-delete",s),this.jedison.emit("item-delete",s)}onChildChange(t){const e=[];this.children.forEach(t=>{e.push(t.getValueRaw())}),this.value=e,this.jedison.emit("instance-change",this,t),this.emit("change",t),this.emit("notifyParent",t)}refreshChildren(){this.children=[];const t=this.getValueRaw();if(!g(t))return;const e=[];t.forEach((t,s)=>{const i=this.createItemInstance(s);this.children.push(i);const n=i.setValue(t,!1);e.push(n)}),this.value=e}}class ge extends oe{}class fe extends oe{}class be extends oe{}const ve={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",copy:"glyphicon glyphicon-copy",switcher:"glyphicon glyphicon-chevron-down"},ye={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",copy:"bi bi-clipboard",switcher:"bi bi-chevron-down"},Ce={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",copy:"icon-copy",switcher:"icon-chevron-down"},Ee={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",copy:"fa fa-clipboard",switcher:"fa fa-chevron-down"},Le={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",copy:"fas fa-clipboard",switcher:"fas fa-chevron-down"},xe={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",copy:"fa-solid fa-clipboard",switcher:"fa-solid fa-chevron-down"};class Ie extends le{sanitize(t){return Boolean(t)}}class Ae extends Ie{static resolves(t){return"boolean"===bt(t)&&("radios"===lt(t,"format")||"radios-inline"===lt(t,"format"))}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:["false","true"],titles:lt(this.instance.schema,"enumTitles")||["false","true"],id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),titleIconClass:lt(this.instance.schema,"titleIconClass"),inline:"radios-inline"===lt(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalRadiosControl(this.control,t,e)}addEventListeners(){this.control.radios.forEach(t=>{t.addEventListener("change",()=>{const e="true"===t.value;this.instance.setValue(e,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(t=>{const e="true"===t.value;t.checked=e===this.instance.getValue()})}setAriaInvalid(t){this.control.radios.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}}class we extends Ie{static resolves(t){return"boolean"===bt(t)}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:["false","true"],titles:lt(this.instance.schema,"enumTitles")||["false","true"],id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalSelectControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{const t="true"===this.control.input.value;this.instance.setValue(t,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.control.input.value=!0===this.instance.getValue()?"true":"false"}}class Se extends Ie{static resolves(t){return"boolean"===bt(t)&&"checkbox"===lt(t,"format")}build(){this.control=this.theme.getCheckboxControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),titleIconClass:lt(this.instance.schema,"titleIconClass"),info:this.getInfo()})}adaptForTable(t){this.theme.adaptForTableCheckboxControl(this.control,t)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalCheckboxControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{this.instance.setValue(this.control.input.checked,!0,"user")})}sanitize(t){return Boolean(t)}refreshUI(){this.refreshDisabledState(),this.control.input.checked=this.instance.getValue()}}class je extends le{sanitize(t){return String(t)}}class Te extends je{static resolves(t){return"string"===bt(t)&&("radios"===lt(t,"format")||"radios-inline"===lt(t,"format"))}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:W(this.instance.schema)||[]}build(){const t=this.getEnumSourceValues();this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:lt(this.instance.schema,"enumTitles")||t,id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:"radios-inline"===lt(this.instance.schema,"format"),info:this.getInfo()})}refreshOptions(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema,"enumTitles")||t,s=this.getIdFromPath(this.instance.path),i=s+"-messages"+" "+(s+"-description");this.control.radioControls.forEach(t=>{t.parentNode&&t.parentNode.removeChild(t)}),this.control.radios=[],this.control.labels=[],this.control.radioControls=[],this.control.labelTexts=[],t.forEach((t,n)=>{const a=document.createElement("div"),r=document.createElement("input"),o=document.createElement("label"),l=document.createElement("span");r.setAttribute("type","radio"),r.setAttribute("id",s+"-"+n),r.setAttribute("name",s),r.setAttribute("value",t),r.setAttribute("aria-describedby",i),o.setAttribute("for",s+"-"+n),o.classList.add("jedi-title"),o.classList.add("jedi-label"),l.textContent=e&&void 0!==e[n]?e[n]:t,a.appendChild(r),a.appendChild(o),o.appendChild(l),this.control.radios.push(r),this.control.labels.push(o),this.control.labelTexts.push(l),this.control.radioControls.push(a),this.control.fieldset.insertBefore(a,this.control.description)}),this.addEventListeners(),this.refreshUI()}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalRadiosControl(this.control,t,e)}addEventListeners(){this.control.radios.forEach(t=>{t.addEventListener("change",()=>{this.instance.setValue(t.value,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(t=>{t.checked=t.value===this.instance.getValue()})}setAriaInvalid(t){this.control.radios.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}}class Oe extends je{static resolves(t){return"string"===bt(t)&&(c(W(t))||c(lt(t,"enumSource")))}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:W(this.instance.schema)||[]}build(){const t=this.getEnumSourceValues();this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:lt(this.instance.schema,"enumTitles")||t,id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()})}refreshOptions(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema,"enumTitles")||t,s=this.control.input;s.innerHTML="",t.forEach((t,i)=>{const n=document.createElement("option");n.setAttribute("value",t),n.textContent=e&&void 0!==e[i]?e[i]:t,s.appendChild(n)}),this.refreshUI()}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalSelectControl(this.control,t,e)}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 ke extends je{static resolves(t){return"string"===bt(t)&&"textarea"===lt(t,"format")}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});if(!0===(lt(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.getOption("useConstraintAttributes"))){const t=nt(this.instance.schema),e=Y(this.instance.schema);c(t)&&this.control.input.setAttribute("minlength",t),c(e)&&this.control.input.setAttribute("maxlength",e)}}adaptForTable(){this.theme.adaptForTableTextareaControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{this.instance.setValue(this.control.input.value,!0,"user")})}refreshUI(){super.refreshUI(),this.control.input.value=this.instance.getValue()}}class De extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"awesomplete"===e&&window.Awesomplete&&"string"===bt(t)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"awesomplete")??{};this.awesomplete=new window.Awesomplete(this.control.input,t),this.control.container.querySelector(".awesomplete").style.display="block"}catch(t){console.error("Awesomplete is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,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 Me extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"emojiButton"===e&&window.EmojiButton&&"string"===bt(t)}build(){this.control=this.theme.getInputControl({type:"button",title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.control.input.classList.add("jedi-emoji-button"),this.control.input.value="😀";const t=lt(this.instance.schema,"emojiButton")??{},e=Object.assign({theme:"auto",autoHide:!0,showPreview:!1,showSearch:!0,zIndex:1e4,position:"auto"},t);this.emojiButton=new window.EmojiButton(e)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.emojiButton.on("emoji",t=>{this.control.input.value=t;let e=t;"object"==typeof t&&(e=t.emoji),this.instance.setValue(e,!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 Pe extends je{static resolves(t){return"string"===bt(t)}static getTypes(){return["hidden","color","date","datetime-local","email","number","month","password","search","time","tel","text","url","week"]}build(){const t=lt(this.instance.schema,"format");this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:Pe.getTypes().includes(t)?t:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden")||"hidden"===t,info:this.getInfo()}),"color"===t&&0===this.instance.value.length&&this.instance.setValue("#000000",!1,"user");if(!0===(lt(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.getOption("useConstraintAttributes"))){const t=nt(this.instance.schema),e=Y(this.instance.schema),s=ct(this.instance.schema);c(t)&&this.control.input.setAttribute("minlength",t),c(e)&&this.control.input.setAttribute("maxlength",e),c(s)&&this.control.input.setAttribute("pattern",s)}}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{this.instance.setValue(this.control.input.value,!0,"user")})}sanitize(t){return String(t)}refreshUI(){super.refreshUI(),this.control.input.value=this.instance.getValue()}}class Fe extends le{sanitize(t){return"integer"===bt(this.instance.schema)?Math.floor(Number(t)):Number(t)}}class He extends Fe{static resolves(t){const e=bt(t),s=W(t),i=lt(t,"format");return("number"===e||"integer"===e)&&c(s)&&("radios"===i||"radios-inline"===i)}build(){this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:W(this.instance.schema),titles:lt(this.instance.schema,"enumTitles")||W(this.instance.schema),id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:"radios-inline"===lt(this.instance.schema,"format"),info:this.getInfo()})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalRadiosControl(this.control,t,e)}addEventListeners(){this.control.radios.forEach(t=>{t.addEventListener("change",()=>{const e=this.sanitize(t.value);this.instance.setValue(e,!0,"user")})})}refreshUI(){this.refreshDisabledState(),this.control.radios.forEach(t=>{t.checked=Number(t.value)===Number(this.instance.getValue())})}setAriaInvalid(t){this.control.radios.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}}class Ve extends Fe{static resolves(t){const e=bt(t);return("number"===e||"integer"===e)&&(c(W(t))||c(lt(t,"enumSource")))}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:W(this.instance.schema)||[]}build(){const t=this.getEnumSourceValues();this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:lt(this.instance.schema,"enumTitles")||t,id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()})}refreshOptions(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema,"enumTitles")||t,s=this.control.input;s.innerHTML="",t.forEach((t,i)=>{const n=document.createElement("option");n.setAttribute("value",t),n.textContent=e&&void 0!==e[i]?e[i]:t,s.appendChild(n)}),this.refreshUI()}adaptForTable(){this.theme.adaptForTableSelectControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalSelectControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{const t=this.sanitize(this.control.input.value);this.instance.setValue(t,!0,"user")})}refreshUI(){this.refreshDisabledState();h(this.instance.getValue())&&(this.control.input.value=this.instance.getValue())}}class Be extends Fe{static resolves(t){const e=bt(t);return"number"===e||"integer"===e}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"number",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden")||"hidden"===lt(this.instance.schema,"format"),info:this.getInfo()}),this.control.input.setAttribute("step","any");if(!0===(lt(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.getOption("useConstraintAttributes"))){const t=et(this.instance.schema),e=Z(this.instance.schema);c(t)&&this.control.input.setAttribute("min",t),c(e)&&this.control.input.setAttribute("max",e)}}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{const t=this.sanitize(this.control.input.value);this.instance.setValue(t,!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 t=this.instance.getValue();h(t)&&(this.control.input.value=t)}}class Re extends Be{static resolves(t){const e=bt(t),s=lt(t,"format");return c(s)&&"number-nullable"===s&&c(e)&&g(e)&&2===e.length&&e.includes("null")&&(e.includes("number")||e.includes("integer"))}addEventListeners(){const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{const t=this.sanitize(this.control.input.value);this.instance.setValue(t,!0,"user")})}sanitize(t){if(""===t)return null;return bt(this.instance.schema).includes("integer")?Math.floor(Number(t)):Number(t)}refreshUI(){super.refreshUI();const t=this.instance.getValue();if(null===t&&(this.control.input.value=""),h(t)){bt(this.instance.schema).includes("integer")?this.control.input.value=Math.floor(Number(t)):this.control.input.value=t}}}class ze extends le{static resolves(t){return"object"===bt(t)}getObjectControlConfig(){let t=!0;const e=M(this.instance.schema);c(e)&&!1===e&&(t=!1);const s=lt(this.instance.schema,"objectAdd")??this.instance.jedison.getOption("objectAdd");c(s)&&!1===s&&(t=!1);let i=!1;c(this.instance.jedison.getOption("enablePropertiesToggle"))&&(i=this.instance.jedison.getOption("enablePropertiesToggle"));const n=lt(this.instance.schema,"enablePropertiesToggle");return c(n)&&(i=n),{title:this.getTitle(),description:this.getDescription(),titleHidden:lt(this.instance.schema,"titleHidden")??this.isEmbeddedInParentChrome(),id:this.getIdFromPath(this.instance.path),enablePropertiesToggle:i,addProperty:t,enableCollapseToggle:lt(this.instance.schema,"enableCollapseToggle")??this.instance.jedison.getOption("enableCollapseToggle"),startCollapsed:lt(this.instance.schema,"startCollapsed")??this.instance.jedison.getOption("startCollapsed"),readOnly:this.instance.isReadOnly(),info:this.getInfo(),editJsonData:lt(this.instance.schema,"editJsonData")??this.instance.jedison.getOption("editJsonData"),propertiesToggleContent:lt(this.instance.schema,"propertiesToggleContent")??this.instance.jedison.translator.translate("propertiesToggle"),collapseToggleContent:lt(this.instance.schema,"collapseToggleContent")??this.instance.jedison.translator.translate("collapseToggle"),addPropertyContent:lt(this.instance.schema,"addPropertyContent")??this.instance.jedison.translator.translate("objectAddProperty"),isAccordion:!1,titleIconClass:lt(this.instance.schema,"titleIconClass")}}isEmbeddedInParentChrome(){var t;if(!(lt(this.instance.schema,"autoFlat")??this.instance.jedison.getOption("autoFlat")))return!1;const e=this.instance.parent;if(!e)return!1;const s=this.instance.jedison.uiResolver.getClass(e.schema);return!!(null==(t=null==s?void 0:s.providesChildHeading)?void 0:t.call(s))}build(){this.propertyActivators={};const t=lt(this.instance.schema,"card"),e=this.instance.jedison.getOption("card"),s=t??(!this.isEmbeddedInParentChrome()&&e),i=this.getObjectControlConfig();this.control=!1===s?this.theme.getObjectControlFlat(i):this.theme.getObjectControl(i),this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2)}announcePropertyAdded(t,e){const s=ft(e.schema),i=c(s)?s:t,n=this.theme.getAriaLiveMessage();n.textContent=i+" "+this.instance.jedison.translator.translate("objectPropertyAdded"),this.control.ariaLive.appendChild(n)}addProperty(t,e){const s=t.value.split(" ").join("");if(0===s.length)return;if(c(this.instance.value[s]))return;const i=this.instance.getPropertySchema(s),n=this.instance.createChild(i,s);n.activate(),this.instance.setValue(this.instance.value,!0,"user"),t.value="",this.announcePropertyAdded(s,n),e()}adaptForHorizontal(t,e){this.theme.adaptForHorizontalObjectControl(this.control,t,e,this.getTitle())}addEventListeners(){this.control.quickAddPropertyBtn.addEventListener("click",()=>{this.addProperty(this.control.quickAddPropertyControl.input,()=>{this.control.quickAddPropertyContainer.close()})}),this.control.jsonData.saveBtn.addEventListener("click",()=>{try{const t=JSON.parse(this.control.jsonData.input.value);this.instance.setValue(t,!0,"user"),this.control.jsonData.dialog.close()}catch(t){alert("Invalid JSON")}}),this.control.jsonData.copyBtn.addEventListener("click",()=>{navigator.clipboard.writeText(this.control.jsonData.input.value)}),this.control.jsonData.toggle.addEventListener("click",()=>{this.refreshJsonDataInputSize()})}sanitize(t){return f(t)?t:{}}getErrorFeedback(t){return this.theme.getAlert(t)}refreshPropertiesSlot(){if(r(lt(this.instance.schema,"enablePropertiesToggle")??this.instance.jedison.getOption("enablePropertiesToggle"),!0)){const t=Object.keys(this.instance.properties),e=this.instance.children.map(t=>t.getKey()),s=[...new Set([...t,...e])];this.control.propertiesActivators.replaceChildren();const{container:a,group:r}=this.theme.getPropertiesGroup();this.control.propertiesActivators.appendChild(a);const o={},l=this.instance.getValue();s.forEach(t=>{const e=this.instance.isRequired(t),s=this.control.ariaLive,a=this.instance.getPropertySchema(t),d=ft(a),h=i(this.instance.path+this.instance.jedison.pathSeparator+t)+"-activator",p=c(d)?d:t,m=this.theme.getCheckboxControl({id:h,title:p,titleHidden:!1}),g=m.input;this.propertyActivators[t]=g,g.addEventListener("change",()=>{s.innerHTML="";const e=this.theme.getAriaLiveMessage();if(g.checked){this.instance.getChild(t)||this.instance.createChild(a,t),this.instance.getChild(t).activate(),e.textContent=p+" "+this.instance.jedison.translator.translate("objectPropertyAdded"),s.appendChild(e)}else this.instance.getChild(t).deactivate(),e.textContent=p+" "+this.instance.jedison.translator.translate("objectPropertyRemoved"),s.appendChild(e);this.control.propertiesContainer.close(),this.control.propertiesContainer.showModal()});const f=lt(a,"propGroup");if(c(f)&&u(f)){let t=o[f];c(t)||(t=this.theme.getPropertiesGroup({name:f}),o[f]=t),t.group.appendChild(m.container),this.control.propertiesActivators.appendChild(t.container)}else r.appendChild(m.container);g.disabled=this.disabled||e,g.checked=n(l,t)});const d=lt(this.instance.schema,"propGroupOrder");if(c(d)&&Array.isArray(d)){const t=[a];d.forEach(e=>{c(o[e])&&t.push(o[e].container)}),Object.keys(o).forEach(e=>{d.includes(e)||t.push(o[e].container)}),this.control.propertiesActivators.replaceChildren(),t.forEach(t=>{this.control.propertiesActivators.appendChild(t)})}}}refreshEditors(){this.control.childrenSlot.replaceChildren(),this.instance.children.forEach(t=>{const e=this.theme.getCheckboxControl({id:t.path+"-opt-in",title:t.path+"-opt-in",titleHidden:!0});e.input.checked=t.isActive,e.input.addEventListener("change",()=>{t.isActive?t.deactivate():t.activate()}),t.isActive?(null===t.ui.control.container.parentNode&&(this.control.childrenSlot.appendChild(t.ui.control.container),t.ui.control.optInContainer&&t.ui.control.optInContainer.appendChild(e.container)),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable()):t.ui.control.container.parentNode&&t.ui.control.container.parentNode.removeChild(t.ui.control.container)})}refreshLegendWarning(){if(!this.control.legendText)return;const t=(lt(this.instance.schema,"navWarning")??!0)&&this.instance.hasNestedValidationErrors(),e=this.control.legendText.querySelector(".jedi-legend-warning");if(e&&e.parentNode.removeChild(e),t){const t=document.createElement("span");t.classList.add("jedi-legend-warning"),t.textContent="⚠";const e=lt(this.instance.schema,"navWarningMessage");e&&t.setAttribute("title",e),this.theme.styleLegendWarning(t),this.control.legendText.appendChild(t)}}showValidationErrors(t,e=!1){super.showValidationErrors(t,e),this.refreshLegendWarning()}refreshUI(){super.refreshUI(),this.refreshPropertiesSlot(),this.refreshEditors(),this.refreshJsonData(),this.refreshLegendWarning()}}class qe extends ze{static resolves(t){return"object"===bt(t)&&"grid"===lt(t,"format")}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);let t=this.theme.getRow();this.control.childrenSlot.appendChild(t),this.instance.children.forEach(e=>{if(e.isActive){const s=lt(e.schema,"grid")||{},i=lt(e.schema,"gridColumns")??void 0,n=lt(e.schema,"gridOffset")??0,a=s.columns??void 0,r=s.columnsXs??i??12,o=s.columnsSm??i??r,l=s.columnsMd??a??i??o,c=s.columnsLg??i??l,d=s.offset??n,h=this.theme.getCol(r,o,l,c,d);(s.newRow||!1)&&(t=this.theme.getRow(),this.control.childrenSlot.appendChild(t)),t.appendChild(h),h.appendChild(e.ui.control.container),this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable()}})}}class Ne extends ze{static resolves(t){const e=lt(t,"format");return"object"===bt(t)&&/^categories-(horizontal|vertical(?:-\d+)?)$/.test(e)}init(){super.init(),this.activeCategoryName=null,this.userSelectedCategory=!1}navigateTo(t){const e=this.getNextChildPath(t);if(e){const t=this.instance.children.find(t=>t.path===e);if(t){const e=lt(this.instance.schema,"categoriesDefaultLabel")??"Basic",s=bt(t.schema),i=lt(t.schema,"category");let n;if(c(i))n=i;else if("object"===s||"array"===s){const e=ft(t.schema);n=c(e)?e:t.getKey()}else n=e;this.activeCategoryName=n,this.userSelectedCategory=!0,this.refreshUI()}}super.navigateTo(t)}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);const t=lt(this.instance.schema,"format").split("-"),e=t[1],s=t[2],i="horizontal"===e?12:s??4,n=this.theme.getRow(),a=this.theme.getCol(12,12,i,i),r=this.theme.getCol(12,12,12-i,12-i),o=this.theme.getTabContent(),l=this.theme.getTabList({variant:e});this.control.childrenSlot.appendChild(n),n.appendChild(a),n.appendChild(r),a.appendChild(l),r.appendChild(o);const d=lt(this.instance.schema,"navWarning")??!0,h=lt(this.instance.schema,"navWarningMessage"),p=lt(this.instance.schema,"categoriesDefaultLabel")??"Basic",u=new Map;this.instance.children.forEach(t=>{if(!t.isActive)return;const e=lt(t.schema,"hidden");if(c(e)&&!0===e)return;const s=bt(t.schema),i=lt(t.schema,"category");let n;if(c(i))n=i;else if("object"===s||"array"===s){const e=ft(t.schema);n=c(e)?e:t.getKey()}else n=p;u.has(n)||u.set(n,{children:[],id:this.getIdFromPath(t.path)}),u.get(n).children.push(t)});const m=lt(this.instance.schema,"categoryOrder"),f=Array.from(u.keys());let b=f;if(c(m)&&g(m)){b=[...m.filter(t=>u.has(t)),...f.filter(t=>!m.includes(t))]}this.userSelectedCategory&&u.has(this.activeCategoryName)||(this.activeCategoryName=b[0]),b.forEach(t=>{const e=u.get(t),s=t===this.activeCategoryName,{children:i,id:n}=e,a=d&&i.some(t=>t.hasNestedValidationErrors()),r=this.theme.getTab({hasErrors:a,navWarningMessage:h,title:t,id:n,active:s});r.list.addEventListener("click",()=>{this.activeCategoryName=t,this.userSelectedCategory=!0});const c=document.createElement("div");this.theme.setTabPaneAttributes(c,s,n),i.forEach(t=>{c.appendChild(t.ui.control.container),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable()}),l.appendChild(r.list),o.appendChild(c)})}}class Ue extends ze{static resolves(t){const e=lt(t,"format"),s=/^nav-(horizontal|vertical(?:-\d+)?)$/.test(e);return"object"===bt(t)&&s}static providesChildHeading(){return!0}init(){super.init(),this.activeTabIndex=0}isChildVisible(t){if(!t.isActive)return!1;const e=lt(t.schema,"hidden");return!(c(e)&&!0===e)}getVisibleChildIndices(){return this.instance.children.reduce((t,e,s)=>(this.isChildVisible(e)&&t.push(s),t),[])}ensureActiveTabIsVisible(t){t.includes(this.activeTabIndex)||(this.activeTabIndex=t[0]??0)}navigateTo(t){const e=this.getNextChildPath(t);if(e){const t=this.instance.children.findIndex(t=>t.path===e);-1!==t&&(this.activeTabIndex=t,this.refreshUI())}super.navigateTo(t)}refreshEditors(){for(;this.control.childrenSlot.firstChild;)this.control.childrenSlot.removeChild(this.control.childrenSlot.lastChild);const t=lt(this.instance.schema,"format").split("-"),e=t[1],s=t[2],i="horizontal"===e?12:s??4,n=this.theme.getRow(),a=this.theme.getCol(12,12,i,i),r=this.theme.getCol(12,12,12-i,12-i),o=this.theme.getTabContent(),l=this.theme.getTabList({variant:e});this.control.childrenSlot.appendChild(n),n.appendChild(a),n.appendChild(r),a.appendChild(l),r.appendChild(o);const d=this.getVisibleChildIndices();this.ensureActiveTabIsVisible(d),this.instance.children.forEach((t,e)=>{if(!this.isChildVisible(t))return;const s=e===this.activeTabIndex,i=this.getIdFromPath(t.path),n=ft(t.schema),a=lt(this.instance.schema,"navWarning")??!0,r=lt(this.instance.schema,"navWarningMessage"),d=this.theme.getTab({hasErrors:a&&t.hasNestedValidationErrors(),navWarningMessage:r,title:c(n)?n:t.getKey(),id:i,active:s});d.list.addEventListener("click",()=>{this.activeTabIndex=e}),this.theme.setTabPaneAttributes(t.ui.control.container,s,i),l.appendChild(d.list),o.appendChild(t.ui.control.container),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable()})}}class We extends ze{static resolves(t){return"object"===bt(t)&&"accordion"===lt(t,"format")}static providesChildHeading(){return!0}getObjectControlConfig(){return{...super.getObjectControlConfig(),isAccordionProperties:!0}}refreshAccordionWarnings(){if(!this.accordionToggles)return;const t=lt(this.instance.schema,"navWarning")??!0,e=lt(this.instance.schema,"navWarningMessage");this.instance.children.forEach(s=>{if(!s.isActive)return;const i=this.accordionToggles[s.getKey()];if(!i)return;const n=i.querySelector(".jedi-legend-warning");if(n&&n.parentNode.removeChild(n),t&&s.hasNestedValidationErrors()){const t=document.createElement("span");t.classList.add("jedi-legend-warning"),t.textContent="⚠",e&&t.setAttribute("title",e),this.theme.styleLegendWarning(t),i.appendChild(t)}})}refreshEditors(){this.control.childrenSlot.replaceChildren(),this.accordionToggles={};const t=this.control.childrenSlot.id;this.instance.children.forEach(e=>{if(!e.isActive)return;const s=ft(e.schema),i=c(s)?s:e.getKey(),n=this.getIdFromPath(e.path),a=this.theme.getAccordionItem({title:i,id:n,accordionId:t});a.body.appendChild(e.ui.control.container),this.control.childrenSlot.appendChild(a.container),this.accordionToggles[e.getKey()]=a.toggle,this.disabled||this.instance.isReadOnly()?e.ui.disable():e.ui.enable()}),this.refreshAccordionWarnings()}showValidationErrors(t,e=!1){super.showValidationErrors(t,e),this.refreshAccordionWarnings()}}class Je extends ze{static resolves(t){return"object"===bt(t)&&"horizontal"===lt(t,"format")}build(){super.build(),this.theme.initHorizontalObject(this.control.container)}refreshEditors(){const t=lt(this.instance.schema,"labelColumns"),e=lt(this.instance.schema,"inputColumns");super.refreshEditors(),this.instance.children.forEach(s=>{s.isActive&&s.ui.adaptForHorizontal(t,e)})}}class $e extends le{static resolves(t){const e=lt(t,"format");return"object"===bt(t)&&("radios"===e||"radios-inline"===e)&&c(W(t))}build(){const t=W(this.instance.schema),e=lt(this.instance.schema,"enumTitles")||t.map(t=>JSON.stringify(t)),s="radios-inline"===lt(this.instance.schema,"format");this.control=this.theme.getRadiosControl({title:this.getTitle(),description:this.getDescription(),values:e,titles:e,id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:s,info:this.getInfo()}),this.control.radios.forEach((e,s)=>{e._enumValue=t[s]})}addEventListeners(){this.control.radios.forEach(t=>{t.addEventListener("change",()=>{this.instance.setValue(t._enumValue,!0,"user")})})}refreshUI(){this.refreshDisabledState();const t=this.instance.getValue();this.control.radios.forEach(e=>{e.checked=r(e._enumValue,t)})}setAriaInvalid(t){this.control.radios.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}adaptForTable(){this.theme.adaptForTableRadiosControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalRadiosControl(this.control,t,e)}}class _e extends le{static resolves(t){return"array"===bt(t)}init(){super.init(),this.activeItemIndex=0}build(){this.control=this.theme.getArrayControl({title:this.getTitle(),description:this.getDescription(),titleHidden:lt(this.instance.schema,"titleHidden"),id:this.getIdFromPath(this.instance.path),enableCollapseToggle:lt(this.instance.schema,"enableCollapseToggle")??this.instance.jedison.getOption("enableCollapseToggle"),startCollapsed:lt(this.instance.schema,"startCollapsed")??this.instance.jedison.getOption("startCollapsed"),readOnly:this.instance.isReadOnly(),info:this.getInfo(),editJsonData:lt(this.instance.schema,"editJsonData")??this.instance.jedison.getOption("editJsonData"),arrayAdd:lt(this.instance.schema,"arrayAdd")??this.instance.jedison.getOption("arrayAdd"),arrayAddContent:lt(this.instance.schema,"arrayAddContent")??this.instance.jedison.translator.translate("arrayAdd"),arrayFooterAdd:lt(this.instance.schema,"arrayFooterAdd")??this.instance.jedison.getOption("arrayFooterAdd"),arrayFooterAddContent:lt(this.instance.schema,"arrayFooterAddContent")??this.instance.jedison.translator.translate("arrayAdd"),arrayFooterButtonsPosition:lt(this.instance.schema,"arrayFooterButtonsPosition")??this.instance.jedison.getOption("arrayFooterButtonsPosition"),arrayDeleteAll:lt(this.instance.schema,"arrayDeleteAll")??this.instance.jedison.getOption("arrayDeleteAll"),arrayDeleteAllContent:lt(this.instance.schema,"arrayDeleteAllContent")??this.instance.jedison.translator.translate("arrayDeleteAll"),arrayFooterDeleteAll:lt(this.instance.schema,"arrayFooterDeleteAll")??this.instance.jedison.getOption("arrayFooterDeleteAll"),arrayFooterDeleteAllContent:lt(this.instance.schema,"arrayFooterDeleteAllContent")??this.instance.jedison.translator.translate("arrayDeleteAll"),collapseToggleContent:lt(this.instance.schema,"collapseToggleContent")??this.instance.jedison.translator.translate("collapseToggle"),titleIconClass:lt(this.instance.schema,"titleIconClass")}),this.control.jsonData.input.value=JSON.stringify(this.instance.getValue(),null,2)}deleteAllItems(){const t=lt(this.instance.schema,"arrayDeleteConfirm"),e=this.instance.jedison.getOption("arrayDeleteConfirm"),s=()=>{this.instance.setValue([],!0,"user")};(c(t)?t:e)?window.confirm(this.instance.jedison.translator.translate("arrayConfirmDeleteAll"))&&s():s()}adaptForHorizontal(t,e){this.theme.adaptForHorizontalArrayControl(this.control,t,e,this.getTitle())}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.instance.addItem("user")}),this.control.footerAddBtn.addEventListener("click",()=>{this.instance.addItem("user")}),this.control.deleteAllBtn&&this.control.deleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.control.footerDeleteAllBtn&&this.control.footerDeleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.addJsonDataEventListeners()}addJsonDataEventListeners(){this.control.jsonData.copyBtn.addEventListener("click",()=>{navigator.clipboard.writeText(this.control.jsonData.input.value)}),this.control.jsonData.saveBtn.addEventListener("click",()=>{try{const t=JSON.parse(this.control.jsonData.input.value);this.instance.setValue(t,!0,"user"),this.control.jsonData.dialog.close()}catch(t){alert("Invalid JSON")}}),this.control.jsonData.toggle.addEventListener("click",()=>{this.refreshJsonDataInputSize()})}getErrorFeedback(t){return this.theme.getAlert(t)}sanitize(t){return g(t)?t:[]}getButtons(t){const e=lt(this.instance.schema,"arrayDeleteContent"),s=lt(this.instance.schema,"arrayMoveUpContent"),i=lt(this.instance.schema,"arrayMoveDownContent"),n=lt(this.instance.schema,"arrayDragContent"),a=lt(this.instance.schema,"arrayAddAfterContent"),r=this.theme.getDeleteItemBtn({content:e??this.instance.jedison.translator.translate("arrayDelete")}),o=this.theme.getMoveUpItemBtn({content:s??this.instance.jedison.translator.translate("arrayMoveUp")}),l=this.theme.getMoveDownItemBtn({content:i??this.instance.jedison.translator.translate("arrayMoveDown")}),d=this.theme.getDragItemBtn({content:n??this.instance.jedison.translator.translate("arrayDrag")}),h=this.theme.getAddAfterItemBtn({content:a??this.instance.jedison.translator.translate("arrayAddAfter")}),p=this.theme.getBtnGroup();return r.addEventListener("click",()=>{const e=lt(this.instance.schema,"arrayDeleteConfirm"),s=this.instance.jedison.getOption("arrayDeleteConfirm"),i=()=>{this.activeItemIndex=w(t-1,0,this.instance.value.length-1),this.instance.deleteItem(t,"user")};(c(e)?e:s)?window.confirm(this.instance.jedison.translator.translate("arrayConfirmDelete"))&&i():i()}),o.addEventListener("click",()=>{const e=t-1;this.activeItemIndex=e,this.instance.move(t,e,"user")}),l.addEventListener("click",()=>{const e=t+1;this.activeItemIndex=e,this.instance.move(t,e,"user")}),h.addEventListener("click",()=>{this.activeItemIndex=t+1,this.instance.addItemAfter(t,"user")}),0===t&&o.setAttribute("always-disabled",!0),t===this.instance.children.length-1&&l.setAttribute("always-disabled",!0),{deleteBtn:r,moveUpBtn:o,moveDownBtn:l,btnGroup:p,dragBtn:d,addAfterBtn:h}}isSortable(){return window.Sortable&&c(lt(this.instance.schema,"sortable"))}refreshSortable(t){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(t,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:t=>{this.instance.move(t.oldIndex,t.newIndex)}}))}refreshDeleteAllBtn(){if(!this.control.deleteAllBtn&&!this.control.footerDeleteAllBtn)return;const t=0===this.instance.value.length,e=[this.control.deleteAllBtn,this.control.footerDeleteAllBtn].filter(Boolean);t||this.disabled||this.readOnly?e.forEach(t=>{t.setAttribute("disabled",""),t.setAttribute("always-disabled",!0)}):this.disabled||this.readOnly||e.forEach(t=>{t.removeAttribute("disabled"),t.removeAttribute("always-disabled")})}refreshAddBtn(){const t=X(this.instance.schema),e=lt(this.instance.schema,"enforceMaxItems")??this.instance.jedison.getOption("enforceMaxItems");c(t)&&e&&t<=this.instance.value.length?(this.control.addBtn.setAttribute("disabled",""),this.control.addBtn.setAttribute("always-disabled",!0),this.control.footerAddBtn.setAttribute("disabled",""),this.control.footerAddBtn.setAttribute("always-disabled",!0),this.control.childrenSlot.querySelectorAll(".jedi-array-add-after").forEach(t=>{t.setAttribute("disabled",""),t.setAttribute("always-disabled",!0)})):this.disabled||this.readOnly||(this.control.addBtn.removeAttribute("disabled"),this.control.addBtn.removeAttribute("always-disabled"),this.control.footerAddBtn.removeAttribute("disabled"),this.control.footerAddBtn.removeAttribute("always-disabled"),this.control.childrenSlot.querySelectorAll(".jedi-array-add-after").forEach(t=>{t.removeAttribute("disabled"),t.removeAttribute("always-disabled")}))}refreshUI(){super.refreshUI();const t=it(this.instance.schema),e=lt(this.instance.schema,"arrayDelete")??this.instance.jedison.getOption("arrayDelete"),s=lt(this.instance.schema,"arrayMove")??this.instance.jedison.getOption("arrayMove"),i=lt(this.instance.schema,"arrayAddAfter")??this.instance.jedison.getOption("arrayAddAfter");this.control.childrenSlot.innerHTML="",this.instance.children.forEach((n,a)=>{const{deleteBtn:r,moveUpBtn:o,moveDownBtn:l,dragBtn:d,btnGroup:h,addAfterBtn:p}=this.getButtons(a),{container:u,arrayActions:m,body:g}=this.theme.getArrayItem({readOnly:this.instance.isReadOnly(),index:a});m.appendChild(h),c(e)&&!0===e&&h.appendChild(r),c(s)&&!0===s&&(h.appendChild(o),h.appendChild(l)),this.isSortable()&&h.appendChild(d),c(i)&&!0===i&&h.appendChild(p),this.control.childrenSlot.appendChild(u),g.appendChild(n.ui.control.container),this.disabled||this.instance.isReadOnly()?n.ui.disable():n.ui.enable(),c(t)&&this.instance.value.length<=t&&r.setAttribute("disabled","")}),this.refreshDisabledState(),this.refreshSortable(this.control.childrenSlot),this.instance.children.forEach(t=>{t.ui.refreshUI()}),this.refreshAddBtn(),this.refreshDeleteAllBtn(),this.refreshJsonData(),this.refreshLegendWarning()}refreshLegendWarning(){if(!this.control.legendText)return;const t=(lt(this.instance.schema,"navWarning")??!0)&&this.instance.hasNestedValidationErrors(),e=this.control.legendText.querySelector(".jedi-legend-warning");if(e&&e.parentNode.removeChild(e),t){const t=document.createElement("span");t.classList.add("jedi-legend-warning"),t.textContent="⚠";const e=lt(this.instance.schema,"navWarningMessage");e&&t.setAttribute("title",e),this.theme.styleLegendWarning(t),this.control.legendText.appendChild(t)}}showValidationErrors(t,e=!1){super.showValidationErrors(t,e),this.refreshLegendWarning()}}class Ge extends _e{static resolves(t){const e=bt(t),s=D(t,"format"),i=ht(t);return"array"===e&&"tuple"===s&&c(i)}build(){super.build(),this.control.addBtn.style.display="none"}addEventListeners(){this.addJsonDataEventListeners()}refreshUI(){this.control.childrenSlot.innerHTML="";const t=this.theme.getTable();this.control.childrenSlot.appendChild(t.container);ht(this.instance.schema).forEach(e=>{const s=this.theme.getTableHeader(),{label:i}=this.theme.getFakeLabel({content:ft(e)??""});s.appendChild(i),t.thead.appendChild(s)});const e=document.createElement("tr");this.instance.children.forEach(t=>{const s=this.theme.getTableDefinition();t.ui.adaptForTable(t,s),s.appendChild(t.ui.control.container),e.appendChild(s)}),t.tbody.appendChild(e),this.refreshJsonData(),this.refreshDisabledState()}}class Ke extends _e{static resolves(t,e){return"array"===bt(t)&&"table"===lt(t,"format")}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.footerAddBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.deleteAllBtn&&this.control.deleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.control.footerDeleteAllBtn&&this.control.footerDeleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.addJsonDataEventListeners()}isSortable(){return window.Sortable&&c(lt(this.instance.schema,"sortable"))}refreshUI(){this.control.childrenSlot.innerHTML="";const t=this.theme.getTable();this.control.childrenSlot.appendChild(t.container);const e=lt(this.instance.schema,"arrayDelete")??this.instance.jedison.getOption("arrayDelete"),s=lt(this.instance.schema,"arrayMove")??this.instance.jedison.getOption("arrayMove"),i=lt(this.instance.schema,"arrayButtonsPosition")??this.instance.jedison.getOption("arrayButtonsPosition"),n=lt(this.instance.schema,"arrayAddAfter")??this.instance.jedison.getOption("arrayAddAfter"),a=this.theme.getTableHeader(),{label:r}=this.theme.getFakeLabel({content:"Controls",visuallyHidden:!0});if(a.appendChild(r),"left"===i&&t.thead.appendChild(a),this.instance.children.length){const e=K(this.instance.schema),s=this.theme.getTableHeader();if(e){if(e.title){const t=this.theme.getFakeLabel({content:e.title});s.appendChild(t.label)}const t=lt(e,"info");if(c(t)){const i=this.getInfo(e),n=this.theme.getInfo(i);"modal"===t.variant&&this.theme.infoAsModal(n,this.getIdFromPath(this.instance.path)+"-item",i),s.appendChild(n.container)}}t.thead.appendChild(s)}"right"===i&&t.thead.appendChild(a),this.instance.children.forEach((a,r)=>{var o,l;const d=document.createElement("tr"),h=this.theme.getTableDefinition({isButtonColumn:!0}),{deleteBtn:p,moveUpBtn:u,moveDownBtn:m,dragBtn:g,btnGroup:f,addAfterBtn:b}=this.getButtons(r);this.isSortable()&&f.appendChild(g),c(e)&&!0===e&&f.appendChild(p),c(s)&&!0===s&&(f.appendChild(u),f.appendChild(m)),c(n)&&!0===n&&f.appendChild(b),h.appendChild(f),"left"===i&&d.appendChild(h);const v=this.theme.getTableDefinition();a.ui.adaptForTable(a,v),null==(l=null==(o=a.ui.control.info)?void 0:o.container)||l.remove(),v.appendChild(a.ui.control.container),d.appendChild(v),"right"===i&&d.appendChild(h),t.tbody.appendChild(d)}),this.refreshSortable(t.tbody),this.refreshAddBtn(),this.refreshDeleteAllBtn(),this.refreshJsonData(),this.refreshDisabledState(),this.refreshScrollPosition(t.container),t.container.addEventListener("scroll",()=>{this.lastScrollTop=t.container.scrollTop,this.lastScrollLeft=t.container.scrollLeft})}refreshScrollPosition(t){t.scroll({top:this.lastScrollTop,left:this.lastScrollLeft})}refreshSortable(t){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(t,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:t=>{this.instance.move(t.oldIndex,t.newIndex)}}))}}class Ze extends _e{static resolves(t,e){let s=K(t);if(!s)return!1;e&&(s=e.expand(s));const i=bt(s);return!!i&&("array"===bt(t)&&"object"===i&&"table-object"===lt(t,"format"))}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.footerAddBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.deleteAllBtn&&this.control.deleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.control.footerDeleteAllBtn&&this.control.footerDeleteAllBtn.addEventListener("click",()=>{this.deleteAllItems()}),this.addJsonDataEventListeners()}isSortable(){return window.Sortable&&c(lt(this.instance.schema,"sortable"))}refreshUI(){this.control.childrenSlot.innerHTML="";const t=this.theme.getTable();this.control.childrenSlot.appendChild(t.container);const e=lt(this.instance.schema,"arrayDelete")??this.instance.jedison.getOption("arrayDelete"),s=lt(this.instance.schema,"arrayMove")??this.instance.jedison.getOption("arrayMove"),i=lt(this.instance.schema,"arrayButtonsPosition")??this.instance.jedison.getOption("arrayButtonsPosition"),n=lt(this.instance.schema,"arrayAddAfter")??this.instance.jedison.getOption("arrayAddAfter"),a=this.theme.getTableHeader(),{label:r}=this.theme.getFakeLabel({content:"Controls",visuallyHidden:!0});a.appendChild(r),"left"===i&&t.thead.appendChild(a);const o=this.instance.getValue();g(o)&&0!==o.length||t.table.removeChild(t.thead);let l=K(this.instance.schema);this.instance.jedison.refParser&&(l=this.instance.jedison.refParser.expand(l));const d=pt(l);Object.entries(d).forEach(([e,s])=>{const i=this.theme.getTableHeader();if(s.title){const t=this.theme.getFakeLabel({content:s.title});i.appendChild(t.label)}const n=lt(s,"info");if(c(n)){const t=this.getInfo(s),a=this.theme.getInfo(t);"modal"===n.variant&&this.theme.infoAsModal(a,this.getIdFromPath(this.instance.path)+"-"+e,t),i.appendChild(a.container)}t.thead.appendChild(i)}),"right"===i&&t.thead.appendChild(a),this.instance.children.forEach((a,r)=>{var o,l;const d=document.createElement("tr"),h=this.theme.getTableDefinition({isButtonColumn:!0}),{deleteBtn:p,moveUpBtn:u,moveDownBtn:m,dragBtn:g,btnGroup:f,addAfterBtn:b}=this.getButtons(r);if(this.isSortable()&&f.appendChild(g),c(e)&&!0===e&&f.appendChild(p),c(s)&&!0===s&&(f.appendChild(u),f.appendChild(m)),c(n)&&!0===n&&f.appendChild(b),h.appendChild(f),"left"===i&&d.appendChild(h),a.children.length)a.children.forEach(t=>{var e,s;const i=this.theme.getTableDefinition();t.ui.adaptForTable(i),null==(s=null==(e=t.ui.control.info)?void 0:e.container)||s.remove(),i.appendChild(t.ui.control.container),d.appendChild(i)});else{const t=this.theme.getTableDefinition();a.ui.adaptForTable(t),null==(l=null==(o=a.ui.control.info)?void 0:o.container)||l.remove(),t.appendChild(a.ui.control.container),d.appendChild(t)}"right"===i&&d.appendChild(h),t.tbody.appendChild(d)}),this.refreshSortable(t.tbody),this.refreshAddBtn(),this.refreshDeleteAllBtn(),this.refreshJsonData(),this.refreshDisabledState(),this.refreshScrollPosition(t.container),t.container.addEventListener("scroll",()=>{this.lastScrollTop=t.container.scrollTop,this.lastScrollLeft=t.container.scrollLeft})}refreshScrollPosition(t){t.scroll({top:this.lastScrollTop,left:this.lastScrollLeft})}refreshSortable(t){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(t,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:t=>{this.instance.move(t.oldIndex,t.newIndex)}}))}}class Qe extends le{static resolves(t){const e="choices"===lt(t,"format"),s=window.Choices,i=bt(t),n=K(t),a=c(n)&&bt(n),r=c(i)&&"array"===i,o=!0===Ct(t),l=c(n)&&c(a),d=["string","number","integer"],h=c(n)&&c(a)&&(d.includes(a)||g(a)&&a.some(t=>d.includes(t)));return e&&s&&r&&o&&l&&h}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:this.instance.schema.items&&this.instance.schema.items.enum||[]}refreshOptions(){if(!this.choicesInstance)return;const t=this.getEnumSourceValues(),e=this.instance.getValue(),s=lt(this.instance.schema.items||{},"enumTitles")||[],i=t.map((t,i)=>({value:t,label:s[i]||t,selected:g(e)&&e.includes(t)}));this.choicesInstance.setChoices(i,"value","label",!0)}build(){this.control=this.theme.getSelectControl({title:this.getTitle(),description:this.getDescription(),values:[],titles:[],id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.control.input.setAttribute("multiple","");try{const t=this.instance.getValue(),e=this.getEnumSourceValues(),s=lt(this.instance.schema.items||{},"enumTitles")||[],i=lt(this.instance.schema,"choicesOptions")??{};this.choicesInstance&&this.choicesInstance.destroy(),this.choices=e.map((e,i)=>({value:e,label:s[i]||e,selected:g(t)&&t.includes(e)})),this.choicesInstance=new window.Choices(this.control.input,{duplicateItemsAllowed:!1,removeItemButton:!0,choices:this.choices,...i})}catch(t){console.error("Choices is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalSelectControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{const t=this.choicesInstance.getValue(!0);t!==this.instance.getValue()&&this.instance.setValue(t,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.choicesInstance.disable():this.choicesInstance.enable()}refreshUI(){super.refreshUI();const t=this.instance.getValue();this.choicesInstance.removeActiveItems(),Array.isArray(t)&&t.forEach(t=>{this.choicesInstance.setChoiceByValue(t)})}destroy(){this.choicesInstance.destroy(),super.destroy()}}class Xe extends _e{static resolves(t){const e=lt(t,"format"),s=/^nav-(horizontal|vertical(?:-\d+)?)$/.test(e);return"array"===bt(t)&&s}static providesChildHeading(){return!0}navigateTo(t){const e=this.getNextChildPath(t);if(e){const t=this.instance.children.findIndex(t=>t.path===e);-1!==t&&(this.activeItemIndex=t,this.refreshUI())}super.navigateTo(t)}addEventListeners(){this.control.addBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.footerAddBtn.addEventListener("click",()=>{this.activeItemIndex=this.instance.value.length,this.instance.addItem("user")}),this.control.deleteAllBtn&&this.control.deleteAllBtn.addEventListener("click",()=>{this.activeItemIndex=0,this.deleteAllItems()}),this.control.footerDeleteAllBtn&&this.control.footerDeleteAllBtn.addEventListener("click",()=>{this.activeItemIndex=0,this.deleteAllItems()}),this.addJsonDataEventListeners()}refreshUI(){this.control.childrenSlot.innerHTML="",this.clearStoredEventListeners();const t=lt(this.instance.schema,"format").split("-"),e=t[1],s=t[2],i="horizontal"===e?12:s??4,n=this.theme.getRow(),a=this.theme.getCol(12,12,i,i),r=this.theme.getCol(12,12,12-i,12-i),o=this.theme.getTabContent(),l=this.theme.getTabList({variant:e}),d=lt(this.instance.schema,"arrayDelete")??this.instance.jedison.getOption("arrayDelete"),h=lt(this.instance.schema,"arrayMove")??this.instance.jedison.getOption("arrayMove"),p=lt(this.instance.schema,"arrayAddAfter")??this.instance.jedison.getOption("arrayAddAfter");this.control.childrenSlot.appendChild(n),n.appendChild(a),n.appendChild(r),a.appendChild(l),r.appendChild(o),this.instance.children.forEach((t,e)=>{const{deleteBtn:s,moveUpBtn:i,moveDownBtn:n,dragBtn:a,btnGroup:r,addAfterBtn:u}=this.getButtons(e);c(d)&&!0===d&&r.appendChild(s),c(h)&&!0===h&&(r.appendChild(i),r.appendChild(n)),c(p)&&!0===p&&r.appendChild(u),this.isSortable()&&r.appendChild(a),this.control.childrenSlot.appendChild(t.ui.control.container);const m=ft(t.schema),g=c(m)?m+" "+(e+1):t.getKey();let f;const b=lt(this.instance.schema,"titleTemplate");if(b){const e=b;f=A(e,t.getTemplateData(e))??g}const v=e===this.activeItemIndex,y=this.getIdFromPath(t.path),C=lt(this.instance.schema,"navWarning")??!0,E=lt(this.instance.schema,"navWarningMessage"),{list:L,arrayActions:x}=this.theme.getTab({hasErrors:C&&t.hasNestedValidationErrors(),navWarningMessage:E,title:(null==f?void 0:f.length)?f:g,id:y,active:v});x.appendChild(r);const I=()=>{this.activeItemIndex=e};L.addEventListener("click",I),this.storedEventListeners.push({element:L,handler:I,eventType:"click"}),this.theme.setTabPaneAttributes(t.ui.control.container,v,y),l.appendChild(L),o.appendChild(t.ui.control.container),this.disabled||this.instance.isReadOnly()?t.ui.disable():t.ui.enable(),0===e&&i.setAttribute("disabled",""),this.instance.value.length-1===e&&n.setAttribute("disabled","")}),this.refreshSortable(l),this.refreshDisabledState(),this.refreshAddBtn(),this.refreshDeleteAllBtn(),this.refreshJsonData()}showValidationErrors(t,e=!1){super.showValidationErrors(t,e),this.refreshUI()}refreshSortable(t){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(t,{animation:150,handle:".jedi-array-drag",disabled:this.disabled||this.readOnly,onEnd:t=>{this.activeItemIndex=t.newIndex,this.instance.move(t.oldIndex,t.newIndex)}}))}}class Ye extends le{static resolves(t){const e=bt(t),s=vt(t);return c(H(t))||c(s)||"any"===e||g(e)||d(e)}build(){this.switcherInput=lt(this.instance.schema,"switcherInput")??this.instance.jedison.getOption("switcherInput"),this.embedSwitcher=this.instance.jedison.getOption("embedSwitcher"),this.control=this.theme.getMultipleControl({titleHidden:lt(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()}),this.embedSwitcher&&(this.control.header.style.display="none"),this.switcherWrapper=this.theme.getSwitcherOwner(),this.instance.on("change",t=>{if("api"===t)return;const e=this.instance.jedison,s=e.getErrors(["error","warning"]),i=this.instance.path+"/",n=[];for(const a of e.instances.values())a.ui&&a.path.startsWith(i)&&n.push(a);for(const a of n.reverse())a.ui.showValidationErrors(s)})}adaptForTable(t){this.theme.adaptForTableMultipleControl(this.control,t)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalMultipleControl(this.control,t,e,this.getTitle())}addEventListeners(){"select"===this.switcherInput&&this.control.switcher.input.addEventListener("change",()=>{const t=Number(this.control.switcher.input.value);this.instance.switchInstance(t,void 0,"user")}),"radios"!==this.switcherInput&&"radios-inline"!==this.switcherInput||this.control.switcher.radios.forEach(t=>{t.addEventListener("change",()=>{const e=Number(t.value);this.instance.switchInstance(e,void 0,"user")})}),"modal"===this.switcherInput&&this.control.switcher.optionButtons.forEach(t=>{t.addEventListener("click",()=>{const e=Number(t.dataset.switcherValue);this.control.switcher.dialog.close(),this.instance.switchInstance(e,void 0,"user")})}),"select-inline"===this.switcherInput&&this.control.switcher.input.addEventListener("change",()=>{const t=Number(this.control.switcher.input.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);const t=this.instance.activeInstance.ui.control.switcherSlot;this.control.switcherSlot=t,(this.embedSwitcher||"modal"===this.switcherInput||"select-inline"===this.switcherInput)&&(t?(this.switcherWrapper.innerHTML="",this.switcherWrapper.appendChild(this.control.switcher.container),this.insertBySwitcherDepth(t,this.switcherWrapper,this.getNestedSwitcherDepth(this.instance.activeInstance)),this.control.header.style.display="none"):(this.control.header.style.display="",this.control.header.appendChild(this.control.switcher.container))),"select"===this.switcherInput&&(this.control.switcher.input.value=this.instance.index),"select-inline"===this.switcherInput&&(this.control.switcher.input.value=this.instance.index),"radios"!==this.switcherInput&&"radios-inline"!==this.switcherInput||this.control.switcher.radios.forEach(t=>{const e=Number(t.value);t.checked=e===this.instance.index}),"modal"===this.switcherInput&&(this.control.switcher.triggerText.textContent=this.instance.switcherOptionsLabels[this.instance.index],this.control.switcher.optionButtons.forEach((t,e)=>{this.theme.setSwitcherOptionActive(t,e===this.instance.index)})),this.disabled||this.instance.isReadOnly()?this.instance.activeInstance.ui.disable():this.instance.activeInstance.ui.enable()}getErrorFeedback(t){return this.theme.getAlert(t)}getNestedSwitcherDepth(t){if(!t||!t.activeInstance)return 0;const e=this.getNestedSwitcherDepth(t.activeInstance);return t.ui.switcherWrapper?e+1:e}insertBySwitcherDepth(t,e,s){e.dataset.switcherDepth=s;const i=Array.from(t.children).find(t=>Number(t.dataset.switcherDepth)<s);i?t.insertBefore(e,i):t.appendChild(e)}}class ts extends le{static resolves(t){return"null"===bt(t)}build(){this.control=this.theme.getNullControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden")||"hidden"===lt(this.instance.schema,"format"),info:this.getInfo()})}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}sanitize(){return null}}class es extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"simplemde"===e&&window.SimpleMDE&&"string"===bt(t)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const e=t(lt(this.instance.schema,"simplemde")??{});e.element=this.control.input,this.simplemde=new window.SimpleMDE(e)}catch(e){console.error("simpleMDE is not available or not loaded correctly.",e)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){this.simplemde.codemirror.on("blur",()=>{const t=this.simplemde.value();t!==this.instance.getValue()&&this.instance.setValue(t,!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 ss extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"quill"===e&&window.Quill&&"string"===bt(t)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"quill")??{};this.quill=new window.Quill(this.control.placeholder,t)}catch(t){console.error("Quill is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.quill.root.addEventListener("blur",()=>{const t=this.quill.getText();t!==this.instance.getValue()&&this.instance.setValue(t,!0,"user")})}refreshDisabledState(){this.disabled||this.readOnly?this.quill.disable():this.quill.enable()}refreshUI(){super.refreshUI(),this.quill.setText(this.instance.getValue())}}class is extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"jodit"===e&&window.Jodit&&"string"===bt(t)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t={showCharsCounter:!1,showWordsCounter:!1,showXPathInStatusbar:!1,toolbarAdaptive:!1,buttons:["bold","italic","underline","strikethrough","|","ul","ol","|","link","|","source","preview"]},e=lt(this.instance.schema,"jodit")??{},s=Object.assign({},t,e);this.jodit=window.Jodit.make(this.control.input,s)}catch(t){console.error("Jodit is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){this.jodit.events.on("change",()=>{const t=this.jodit.value;if(t!==this.instance.getValue()){const e=this.jodit.selection.save();this.instance.setValue(t,!0,"user"),this.jodit.selection.restore(e)}})}refreshDisabledState(){this.disabled||this.readOnly?this.jodit.setReadOnly(!0):this.jodit.setReadOnly(!1)}refreshUI(){super.refreshUI();const t=this.instance.getValue();this.jodit.value!==t&&(this.jodit.value=t)}destroy(){this.jodit.destruct(),super.destroy()}}class ns extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"pickr"===e&&window.Pickr&&"string"===bt(t)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});const t=lt(this.instance.schema,"pickr")??{};try{this.pickr=window.Pickr.create({el:this.control.placeholder,default:this.instance.getValue()||"#000000",comparison:!1,...t});const e=t=>{const e=t?t.toHEXA().toString():"";this.updatingFromPickr=!0,this.instance.setValue(e,!0,"user"),this.updatingFromPickr=!1};this.pickr.on("change",t=>{e(t),this.pickr.applyColor(!0)}),this.pickr.on("save",e),this.pickr.on("hide",()=>e(this.pickr.getColor())),this.refreshUI()}catch(e){console.error("Pickr is not available or not loaded correctly.",e)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){}refreshUI(){if(this.pickr&&(this.refreshTemplates(),this.disabled?this.pickr.disable():this.pickr.enable(),!this.updatingFromPickr)){const t=this.instance.getValue();t&&this.pickr.setColor(t,!0)}}destroy(){this.pickr&&this.pickr.destroyAndRemove(),super.destroy()}}class as extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"flatpickr"===e&&window.flatpickr&&"string"===bt(t)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"flatpickr")??{};this.flatpickr=window.flatpickr(this.control.input,t)}catch(t){console.error("Flatpickr is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,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 rs extends je{static resolves(t){const e="string"===bt(t),s=window.IMask,i=lt(t,"format");return c(i)&&"imask"===i&&e&&s}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"imask")??{},e=t["x-settings"],s=e&&this.instance.jedison.getOption("settings")[e]?this.instance.jedison.getOption("settings")[e]:{},i={...t,...s};this.imask=window.IMask(this.control.input,i),this.useMaskedValue=t["x-masked"]??!1}catch(t){console.error("IMask is not available or not loaded or configured correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.imask.on("accept",()=>{const t=this.useMaskedValue?this.imask.value:this.imask.unmaskedValue;this.instance.setValue(t,!0,"user")})}refreshUI(){this.refreshDisabledState(),this.imask.value=this.instance.getValue()}destroy(){this.imask.destroy(),super.destroy()}}class os extends Fe{static resolves(t){const e=bt(t),s=window.IMask,i=lt(t,"format");return c(i)&&"imask"===i&&"number"===e&&s}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"text",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"imask")??{},e=t["x-settings"],s=e&&this.instance.jedison.getOption("settings")[e]?this.instance.jedison.getOption("settings")[e]:{},i={mask:Number,...t,...s};this.imask=window.IMask(this.control.input,i),this.useMaskedValue=t["x-masked"]??!1}catch(t){console.error("IMask is not available or not loaded or configured correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.imask.on("accept",()=>{const t=this.imask.typedValue;this.instance.setValue(t,!0,"user")})}refreshUI(){this.refreshDisabledState();const t=this.instance.getValue();this.imask.value=null!=t?String(t):""}destroy(){this.imask.destroy(),super.destroy()}}class ls extends Fe{static resolves(t){const e=lt(t,"format");return c(e)&&"raty"===e&&"undefined"!=typeof Raty&&"number"===bt(t)}build(){this.control=this.theme.getPlaceholderControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"raty")??{};this.raty=new Raty(this.control.placeholder,Object.assign({},t,{click:t=>{this.instance.setValue(t,!0,"user")}})),this.raty.init()}catch(t){console.error("Raty is not available or not loaded correctly.",t)}}adaptForTable(){this.theme.visuallyHidden(this.control.label),this.theme.visuallyHidden(this.control.description)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}refreshDisabledState(){this.disabled||this.readOnly?this.raty.readOnly(!0):this.raty.readOnly(!1)}refreshUI(){super.refreshUI(),this.raty.score(this.instance.getValue())}}class cs extends le{static resolves(t){return"json"===lt(t,"format")}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()}),this.jsonErrorEl=document.createElement("div"),this.jsonErrorEl.style.color="red",this.control.container.appendChild(this.jsonErrorEl)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("change",()=>{try{const t=JSON.parse(this.control.input.value);this.jsonErrorEl.textContent="",this.instance.setValue(t,!0,"user")}catch(t){this.jsonErrorEl.textContent=t.message}})}refreshUI(){this.control.input.value=JSON.stringify(this.instance.getValue(),null,2)}}class ds extends le{static resolves(t){const e=bt(t),s=K(t),i=c(s)&&bt(s),n=c(e)&&"array"===e,a=!0===Ct(t),r=c(s)&&c(W(t.items)),o=c(s)&&c(i),l=c(lt(t,"enumSource")),d=["string","number","integer"],h=c(s)&&c(i)&&(d.includes(i)||g(i)&&i.some(t=>d.includes(t)));return n&&a&&(l||r&&o&&h)}init(){super.init(),this.setupEnumSource()}setupEnumSource(){const t=lt(this.instance.schema,"enumSource");if(!c(t))return;const e=j(this.instance.path,t),s=this.instance.jedison.getInstance(e);s&&(this.enumSourceValues=s.getValue()),this.instance.jedison.watch(e,()=>{if(!this.control)return;const t=this.instance.jedison.getInstance(e);t&&(this.enumSourceValues=t.getValue(),this.refreshOptions())})}getEnumSourceValues(){return void 0!==this.enumSourceValues?g(this.enumSourceValues)?this.enumSourceValues:f(this.enumSourceValues)?Object.keys(this.enumSourceValues):[]:W(this.instance.schema.items)||[]}isSortable(){return window.Sortable&&c(lt(this.instance.schema,"sortable"))}addDragHandles(){this.isSortable()&&this.control.checkboxControls.forEach((t,e)=>{if(t.classList.contains("jedi-checkbox-control"))return;const s=document.createElement("div");s.classList.add("jedi-checkbox-control"),s.style.display="flex",s.style.alignItems="baseline";const i=this.theme.getDragItemBtn({content:this.instance.jedison.translator.translate("arrayDrag")});t.parentNode.insertBefore(s,t),s.appendChild(i),s.appendChild(t),this.control.checkboxControls[e]=s})}refreshSortable(){this.isSortable()&&(this.sortable&&this.sortable.destroy(),this.sortable=window.Sortable.create(this.control.fieldset,{animation:150,handle:".jedi-array-drag",draggable:".jedi-checkbox-control",disabled:this.disabled||this.readOnly,onEnd:()=>{const t=Array.from(this.control.fieldset.querySelectorAll(".jedi-checkbox-control"));this.control.checkboxControls=t,this.control.checkboxes=t.map(t=>t.querySelector('input[type="checkbox"]')),this.control.labels=t.map(t=>t.querySelector("label")),this.control.labelTexts=t.map(t=>t.querySelector("label span"));const e=this.control.checkboxes.filter(t=>t.checked).map(t=>t.value);this.instance.setValue(e,!0,"user")}}))}build(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema.items||{},"enumTitles")||t;this.control=this.theme.getCheckboxesControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:e,id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:"checkboxes-inline"===lt(this.instance.schema,"format"),info:this.getInfo()}),this.addDragHandles()}refreshOptions(){const t=this.getEnumSourceValues(),e=lt(this.instance.schema.items||{},"enumTitles")||t;this.control.checkboxControls.forEach(t=>{t.parentNode&&t.parentNode.removeChild(t)});const s=this.theme.getCheckboxesControl({title:this.getTitle(),description:this.getDescription(),values:t,titles:e,id:this.getIdFromPath(this.instance.path),titleHidden:lt(this.instance.schema,"titleHidden"),inline:"checkboxes-inline"===lt(this.instance.schema,"format"),info:this.getInfo()});this.control.checkboxes=s.checkboxes,this.control.labels=s.labels,this.control.labelTexts=s.labelTexts,this.control.checkboxControls=s.checkboxControls,this.control.checkboxControls.forEach(t=>{this.control.fieldset.insertBefore(t,this.control.description)}),this.addDragHandles(),this.addEventListeners(),this.refreshUI()}adaptForTable(t){this.theme.adaptForTableCheckboxesControl(this.control,t)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalCheckboxesControl(this.control,t,e)}addEventListeners(){this.control.checkboxes.forEach(t=>{t.addEventListener("change",()=>{let e=this.instance.getValue();if(g(e)||(e=[]),t.checked)e.push(t.value);else{const s=e.indexOf(t.value);s>-1&&e.splice(s,1)}this.instance.setValue(e,!0,"user")})})}refreshUI(){this.refreshDisabledState();const t=this.instance.getValue();g(t)&&(this.control.checkboxes.forEach(e=>{e.checked=t.includes(e.value)}),this.refreshSortable())}setAriaInvalid(t){this.control.checkboxes.forEach(e=>{t?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid")})}}class hs extends Fe{static resolves(t){const e=bt(t),s="number"===e||"integer"===e;if(!s)return!1;const i="range"===lt(t,"format");return s&&i}build(){let t,e=0,s=100;c(this.instance.schema.minimum)?e=this.instance.schema.minimum:c(this.instance.schema.exclusiveMinimum)&&(e=this.instance.schema.exclusiveMinimum+.01),c(this.instance.schema.maximum)?s=this.instance.schema.maximum:c(this.instance.schema.exclusiveMaximum)&&(s=this.instance.schema.exclusiveMaximum-.01);const i=bt(this.instance.schema),n=this.instance.schema.multipleOf;t=c(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:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});!0===(lt(this.instance.schema,"useConstraintAttributes")??this.instance.jedison.getOption("useConstraintAttributes"))&&(this.control.input.setAttribute("min",e),this.control.input.setAttribute("max",s)),this.control.input.setAttribute("step",t);const a=lt(this.instance.schema,"inputAttributes");a&&"object"==typeof a&&Object.keys(a).forEach(t=>{this.control.input.setAttribute(t,a[t])});const r=this.instance.getValue();this.control.output.textContent=void 0!==r?r:e}adaptForTable(){this.theme.adaptForTableInputControl(this.control)}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){this.control.input.addEventListener("input",()=>{this.control.output.textContent=parseFloat(this.control.input.value)});const t=this.getValidationEventType();this.control.input.addEventListener(t,()=>{const t=parseFloat(this.control.input.value);this.control.output.textContent=t,this.instance.setValue(t,!0,"user")})}sanitize(t){const e=bt(this.instance.schema),s=Number(t);return"integer"===e?Math.round(s):s}refreshUI(){super.refreshUI();const t=this.instance.getValue();this.control.input.value=void 0!==t?t:0,this.control.output&&(this.control.output.textContent=void 0!==t?t:0)}}class ps extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"ace"===e&&window.ace&&"string"===bt(t)}build(){this.control=this.theme.getTextareaControl({title:this.getTitle(),description:this.getDescription(),id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"ace")??{},e=t.mode||"text";this.aceContainer=document.createElement("div");const s=t.height||"300px",i=t.width||"100%",n=t.minHeight,a=t.maxHeight,r=t.minWidth,o=t.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(t.theme||"ace/theme/chrome");try{this.aceEditor.session.setMode(`ace/mode/${e}`)}catch{console.warn(`Ace mode "${e}" not loaded`)}const l=this.instance.getValue();this.aceEditor.setValue("string"==typeof l?l:""),this.aceEditor.clearSelection()}catch(t){console.error("Ace editor is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalTextareaControl(this.control,t,e)}addEventListeners(){this.aceEditor&&this.aceEditor.on("blur",()=>{const t=this.aceEditor.getValue();t!==this.instance.getValue()&&this.instance.setValue(t,!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 t=this.instance.getValue(),e="string"==typeof t?t:String(t||"");this.aceEditor.getValue()!==e&&(this.aceEditor.setValue(e),this.aceEditor.clearSelection())}}class us extends je{static resolves(t){const e=lt(t,"format");return c(e)&&"filepond"===e&&window.FilePond&&"string"===bt(t)}build(){this.control=this.theme.getInputControl({title:this.getTitle(),description:this.getDescription(),type:"file",id:this.getIdFromPath(this.instance.path),titleIconClass:lt(this.instance.schema,"titleIconClass"),titleHidden:lt(this.instance.schema,"titleHidden"),info:this.getInfo()});try{const t=lt(this.instance.schema,"filepond")??{},e=t["x-settings"],s=e&&this.instance.jedison.getOption("settings")[e]?this.instance.jedison.getOption("settings")[e]:{},i={...t,...s};this.hasServer=!!i.server,this.filepond=window.FilePond.create(this.control.input,i),this.filepond.on("processfile",(t,e)=>{if(t)return;const s=this.filepond.getFiles().filter(t=>t.serverId).map(t=>t.serverId);this.instance.setValue(s.join(", "),!0,"user")}),this.filepond.on("addfile",t=>{if(t||this.hasServer)return;const e=this.filepond.getFiles().map(t=>t.filename).join(", ");this.instance.setValue(e,!0,"user")}),this.filepond.on("processfilerevert",()=>{const t=this.filepond.getFiles().filter(t=>t.serverId).map(t=>t.serverId);this.instance.setValue(t.join(", "),!0,"user")}),this.filepond.on("removefile",()=>{const t=this.filepond.getFiles();if(this.hasServer){const e=t.filter(t=>t.serverId).map(t=>t.serverId);this.instance.setValue(e.join(", "),!0,"user")}else this.instance.setValue(t.map(t=>t.filename).join(", "),!0,"user")})}catch(t){console.error("FilePond is not available or not loaded correctly.",t)}}adaptForHorizontal(t,e){this.theme.adaptForHorizontalInputControl(this.control,t,e)}addEventListeners(){}refreshUI(){this.filepond&&(this.refreshTemplates(),this.filepond.setOptions({disabled:this.disabled||this.readOnly}))}destroy(){this.filepond&&this.filepond.destroy(),super.destroy()}}class ms{constructor(t){this.customEditors=t.customEditors??[],this.refParser=t.refParser??null,this.editors=[Re,Ye,ce,cs,Ae,Se,we,Te,Oe,ke,De,Me,es,ss,is,ns,as,rs,ps,us,Pe,os,ls,hs,He,Ve,Be,qe,Ne,Ue,We,Je,$e,ze,Qe,ds,Ge,Ze,Ke,Xe,_e,ts]}getClass(t){for(const e of this.customEditors)if(e.resolves(t,this.refParser))return e;for(const e of this.editors)if(e.resolves(t,this.refParser))return e;return null}}const gs={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",arrayAddAfter:"Add after",arrayConfirmDelete:"Are you sure you want to delete this item?",arrayDeleteAll:"Delete all items",arrayConfirmDeleteAll:"Are you sure you want to delete all items?",objectAddProperty:"Add property",objectPropertyAdded:"field was added to the form",objectPropertyRemoved:"field was removed from the form",propertiesToggle:"Properties",collapseToggle:"Collapse"},fs={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?",arrayDeleteAll:"Delete all items",arrayConfirmDeleteAll:"Are you sure you want to delete all items?",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?",arrayDeleteAll:"Alle Elemente löschen",arrayConfirmDeleteAll:"Möchten Sie wirklich alle Elemente 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?",arrayDeleteAll:"Elimina tutti gli elementi",arrayConfirmDeleteAll:"Sei sicuro di voler eliminare tutti gli elementi?",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?",arrayDeleteAll:"Eliminar todos los elementos",arrayConfirmDeleteAll:"¿Está seguro de que desea eliminar todos los elementos?",objectAddProperty:"Agregar propiedad",objectPropertyAdded:"campo fue añadido al formulario",objectPropertyRemoved:"campo fue eliminado del formulario",propertiesToggle:"Propiedades",collapseToggle:"Colapsar"}};class bs{constructor(t){this.language=t.language||"en",this.translations=E({},fs,t.translations),this.defaultTranslations=gs}translate(t){let e=this.translations[this.language][t];return d(e)&&(e=this.defaultTranslations[t]),e}destroy(){Object.keys(this).forEach(t=>{delete this[t]})}}class vs{constructor(t=200){this.maxDepth=t}traverse(t,e,s=t,i="#",n=0,a=null,r=null,o={}){if(!s||"object"!=typeof s||n>this.maxDepth)return;const l=e(s,i,a,r,n,o);void 0!==l&&(a&&null!==r?a[r]=l:"#"===i&&(Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,l)),s=l),"object"==typeof s&&null!==s&&Object.entries(s).forEach(([a,r])=>this.traverse(t,e,r,`${i}/${a}`,n+1,s,a,o))}}class ys{constructor(t=null){this.icons=t,this.useToggleEvents=!0,this.btnContents=!0,this.btnIcons=!0,this.init()}init(){this.useToggleEvents=!0}getEditorContainer(){const t=document.createElement("div");return t.classList.add("jedi-editor-container"),t}getFieldset(){const t=document.createElement("fieldset");return t.classList.add("jedi-editor-fieldset"),t.setAttribute("role","group"),t}getLegend(t){const e=document.createElement("div"),s=document.createElement("div"),i=document.createElement("legend"),n=document.createElement("label"),a=document.createElement("i"),r=document.createElement("span"),o=document.createElement("input"),l="legend-label-"+t.id,c="legend-dummy-input-"+t.id;return e.classList.add("jedi-editor-legend-left"),s.classList.add("jedi-editor-legend-right"),s.style.display="flex",s.style.alignItems="center",i.classList.add("jedi-editor-legend"),i.style.fontSize="inherit",i.setAttribute("aria-labelledby",l),n.classList.add("jedi-title"),n.classList.add("jedi-legend"),n.setAttribute("id",l),n.innerHTML=t.content,t.titleIconClass&&(this.addIconClass(a,t.titleIconClass),a.style.marginRight="4px"),n.style.marginRight="4px",r.classList.add("jedi-editor-info-container"),r.setAttribute("for",c),o.setAttribute("aria-hidden","true"),o.setAttribute("type","hidden"),o.setAttribute("id",c),this.visuallyHidden(o),t.titleHidden&&this.visuallyHidden(n),i.appendChild(e),i.appendChild(s),t.titleIconClass&&e.appendChild(a),e.appendChild(n),e.appendChild(r),n.appendChild(o),{left:e,right:s,legend:i,legendText:n,infoContainer:r}}getRadioFieldset(){const t=document.createElement("fieldset");return t.classList.add("jedi-editor-radio-fieldset"),t.setAttribute("role","group"),t.style.marginBottom="15px",t.style.fontSize="inherit",t}getRadioLegend(t){const e="legend-label-"+t.id,s=document.createElement("legend"),i=document.createElement("label"),n=document.createElement("i"),a=document.createElement("input");return s.classList.add("jedi-editor-legend"),s.style.fontSize="inherit",s.setAttribute("aria-labelledby",e),i.classList.add("jedi-title"),i.classList.add("jedi-label"),i.innerHTML=t.content,i.setAttribute("id",e),i.style.marginRight="4px",a.setAttribute("aria-hidden","true"),a.setAttribute("type","hidden"),a.setAttribute("disabled",""),this.visuallyHidden(a),t.titleIconClass&&(this.addIconClass(n,t.titleIconClass),n.style.marginRight="4px",s.appendChild(n)),s.appendChild(i),i.appendChild(a),{legend:s,legendText:i,icon:n}}getLabel(t){const e=document.createElement("label"),s=document.createElement("span"),i=document.createElement("i");return e.setAttribute("for",t.for),e.classList.add("jedi-title"),e.classList.add("jedi-label"),s.innerHTML=t.text,t.visuallyHidden&&this.visuallyHidden(e),t.titleIconClass&&(this.addIconClass(i,t.titleIconClass),i.style.marginRight="4px"),t.titleIconClass&&e.appendChild(i),s.style.marginRight="4px",e.appendChild(s),{label:e,labelText:s,icon:i}}getFakeLabel(t){const e=document.createElement("label"),s=document.createElement("span"),i=document.createElement("i"),n=document.createElement("input");return e.setAttribute("for",t.for),e.classList.add("jedi-title"),e.classList.add("jedi-label"),t.visuallyHidden&&this.visuallyHidden(e),s.innerHTML=t.content,t.titleIconClass&&(this.addIconClass(i,t.titleIconClass),i.style.marginRight="4px"),n.setAttribute("aria-hidden","true"),n.setAttribute("type","hidden"),n.setAttribute("disabled",""),n.setAttribute("id",t.for),this.visuallyHidden(n),t.titleIconClass&&e.appendChild(i),s.style.marginRight="4px",e.appendChild(s),e.appendChild(n),{label:e,labelText:s,icon:i,dummyInput:n}}addIconClass(t,e=""){let s=e.split(" ");s=s.filter(t=>t.length>0),s&&s.forEach(e=>{t.classList.add(e)})}getOptInWrapper(){const t=document.createElement("span"),e=document.createElement("span"),s=document.createElement("span");return t.classList.add("jedi-opt-in-wrapper"),t.style.display="flex",t.style.alignItems="center",e.classList.add("jedi-opt-in-container"),s.classList.add("jedi-title-container"),s.style.flexGrow="1",t.appendChild(s),t.appendChild(e),{optInWrapper:t,optInContainer:e,otherContainer:s}}getCard(){const t=document.createElement("div");return t.classList.add("jedi-editor-card"),t}getCardHeader(){const t=document.createElement("div");return t.classList.add("jedi-editor-card-header"),t}getCardBody(){const t=document.createElement("div");return t.classList.add("jedi-editor-card-body"),t}getArrayFooter(){const t=document.createElement("div");return t.classList.add("jedi-array-footer"),t.style.display="flex",t.style.alignItems="center",t}getActionsSlot(){const t=document.createElement("div");return t.classList.add("jedi-actions-slot"),t}getArrayActionsSlot(){const t=document.createElement("span");return t.classList.add("jedi-array-actions-slot"),t}getChildrenSlot(){const t=document.createElement("div");return t.classList.add("jedi-children-slot"),t}getSwitcherSlot(){const t=document.createElement("span");return t.classList.add("jedi-switcher-slot"),t}getSwitcherOwner(){const t=document.createElement("span");return t.classList.add("jedi-switcher-owner"),t.style.marginInlineStart="0.25rem",t}getMessagesSlot(t={}){const e=document.createElement("div");return e.classList.add("jedi-messages-slot"),e.setAttribute("aria-atomic","false"),e.setAttribute("aria-live","polite"),t.id&&e.setAttribute("id",t.id),e}getControlSlot(){const t=document.createElement("div");return t.classList.add("jedi-control-slot"),t}getPropertiesToggle(t){const e=this.getButton(t);return e.classList.add("jedi-properties-toggle"),e.addEventListener("click",()=>{t.propertiesContainer.open?t.propertiesContainer.close():(t.propertiesContainer.showModal(),t.propertiesContainer.focus())}),e}getQuickAddPropertyToggle(t){const e=this.getButton(t);return e.classList.add("jedi-quick-add-property-toggle"),e.addEventListener("click",()=>{t.propertiesContainer.open?t.propertiesContainer.close():t.propertiesContainer.showModal()}),e}getCollapse(t){const e=document.createElement("div");return e.classList.add("jedi-collapse"),e.setAttribute("id",t.id),this.useToggleEvents&&t.startCollapsed&&(e.style.display="none"),e}getCollapseToggle(t){const e=this.getButton(t);e.classList.add("jedi-collapse-toggle"),e.setAttribute("always-enabled",""),this.useToggleEvents&&e.addEventListener("click",()=>{"none"===t.collapse.style.display?t.collapse.style.display="block":t.collapse.style.display="none"}),e.style.transition="transform 0.1s ease",t.startCollapsed&&e.classList.add("collapsed");const s=()=>{const t=e.classList.contains("collapsed");e.setAttribute("aria-expanded",t?"false":"true"),e.style.transform=t?"rotate(90deg)":"rotate(0deg)"};return s(),this.useToggleEvents&&e.addEventListener("click",()=>e.classList.toggle("collapsed")),new MutationObserver(s).observe(e,{attributes:!0,attributeFilter:["class"]}),e}getPropertiesSlot(t){const e=this.getDialog();return e.classList.add("jedi-properties-slot"),e.setAttribute("id",t.id),e.addEventListener("click",t=>{t.target===e&&e.close()}),e}getQuickAddPropertySlot(t){const e=this.getDialog();return e.classList.add("jedi-quick-add-property-slot"),e.setAttribute("id",t.id),e.addEventListener("click",t=>{t.target===e&&e.close()}),e}getJsonData(t){const e=this.getDialog();e.classList.add("jedi-json-data"),e.setAttribute("id",t.id),e.addEventListener("click",t=>{t.target===e&&e.close()});const s=this.getButton({id:"jedi-json-data-toggle-"+t.id,icon:"edit"});s.classList.add("jedi-json-data-toggle"),s.addEventListener("click",()=>{e.open?e.close():e.showModal()});const i=document.createElement("div"),{label:n}=this.getLabel({for:"json-data-input-"+t.id,text:"JSON Data"}),a=document.createElement("textarea");a.setAttribute("id","json-data-input-"+t.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-copy-"+t.id,icon:"copy"});r.classList.add("jedi-json-data-copy");const o=this.getButton({id:"jedi-json-data-save-"+t.id,icon:"save"});return e.appendChild(i),i.appendChild(n),i.appendChild(a),e.appendChild(r),e.appendChild(o),{dialog:e,toggle:s,control:i,input:a,copyBtn:r,saveBtn:o}}getPropertiesAriaLive(){const t=document.createElement("div");return t.classList.add("jedi-properties-aria-live"),t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t}getAriaLiveMessage(t){const e=document.createElement("p");return e.classList.add("jedi-aria-live-message"),e.textContent=t,this.visuallyHidden(e),e}getPropertiesActivators(){const t=document.createElement("div");return t.classList.add("jedi-properties-activators"),t}getPropertiesGroup(t={}){if(t.accordion&&t.name){const e="jedi-prop-group-"+t.name.toLowerCase().replace(/[^a-z0-9]+/g,"-"),s=this.getAccordionItem({title:t.name,id:e});return{container:s.container,group:s.body,name:s.toggle}}const e=document.createElement("div");e.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=t.name??"",e.appendChild(i),e.appendChild(s),{container:e,group:s,name:i}}getBtnGroup(){const t=document.createElement("span");return t.classList.add("jedi-btn-group"),t}getButton(t={}){const e=document.createElement("button"),s=document.createElement("span"),i=document.createElement("i");return e.classList.add("jedi-btn"),e.setAttribute("type","button"),t.value&&(e.value=t.value),t.id&&e.setAttribute("id",t.id),s.textContent=" "+t.content,this.btnIcons&&this.icons&&t.icon&&(this.addIconClass(i,this.icons[t.icon]),i.setAttribute("title",t.content)),this.btnContents||this.visuallyHidden(s),this.icons&&t.icon&&e.appendChild(i),e.appendChild(s),e}getXButton(t={}){const e=document.createElement("button"),s=document.createElement("span");e.classList.add("jedi-x-button"),e.setAttribute("type","button"),s.classList.add("jedi-x-button-label"),s.innerHTML=t.label??"",e.appendChild(s);const i=f(t.attributes)?t.attributes:{};for(const[n,a]of Object.entries(i))"class"===n?String(a).split(" ").forEach(t=>{t&&e.classList.add(t)}):e.setAttribute(n,a);return e}getAddPropertyButton(t){const e=this.getButton(t);return e.classList.add("jedi-add-property-btn"),e}getArrayBtnAdd(t){const e=this.getButton({content:t.content,icon:"add"});return e.classList.add("jedi-array-add"),e}getArrayBtnDeleteAll(t){const e=this.getButton({content:t.content,icon:"delete"});return e.classList.add("jedi-array-delete-all"),e}getAddAfterItemBtn(t){const e=this.getButton({content:t.content,icon:"add"});return e.classList.add("jedi-array-add-after"),e}getDeleteItemBtn(t){const e=this.getButton({content:t.content,icon:"delete"});return e.classList.add("jedi-array-delete"),e}getMoveUpItemBtn(t){const e=this.getButton({content:t.content,icon:"moveUp"});return e.classList.add("jedi-array-move-up"),e}getMoveDownItemBtn(t){const e=this.getButton({content:t.content,icon:"moveDown"});return e.classList.add("jedi-array-move-down"),e}getDragItemBtn(t){const e=this.getButton({content:t.content,icon:"drag"});return e.classList.add("jedi-array-drag"),e}getDescription(t={}){const e=document.createElement("small");return e.style.display="block",e.classList.add("jedi-description"),t.content&&(e.innerHTML=t.content),t.id&&e.setAttribute("id",t.id),e}getInfo(t={}){const e=document.createElement("span"),s=document.createElement("a"),i=document.createElement("span"),n=document.createElement("i");if(e.classList.add("jedi-info-button-container"),e.style.display="inline-block",s.setAttribute("href","#"),s.classList.add("jedi-info-button"),f(t.attributes))for(const[a,r]of Object.entries(t.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),e.appendChild(s),{container:e,info:s}}getDialog(){const t=document.createElement("dialog");return t.classList.add("jedi-modal-dialog"),t.style.border="1px solid #6c757d",t.style.borderRadius="4px",t.style.minWidth="400px",t.style.maxWidth="90vw",t}infoAsModal(t,e,s={}){const i=this.getDialog(),n=document.createElement("div"),a=document.createElement("div"),r=this.getButton({content:"Close",icon:"close"});i.setAttribute("id",e+"-modal"),n.classList.add("jedi-modal-title"),u(s.title)&&(n.innerHTML=s.title),a.classList.add("jedi-modal-content"),u(s.content)&&(a.innerHTML=s.content),r.classList.add("jedi-modal-close"),r.setAttribute("always-enabled",""),i.addEventListener("click",t=>{t.target===i&&i.close()}),r.addEventListener("click",()=>{i.close()}),t.info.addEventListener("click",()=>{i.showModal()}),t.container.appendChild(i),i.appendChild(n),i.appendChild(a),i.appendChild(r)}getPlaceholderControl(t){var e;const s=t.id+"-description",i=t.id+"-messages",n=document.createElement("div"),a=document.createElement("div"),r=this.getActionsSlot(),o=this.getInfo(t.info),{label:l,labelText:c}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),d=this.getDescription({content:t.description,id:s}),h=this.getMessagesSlot({id:i}),p=this.getSwitcherSlot();return"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(o,t.id,t.info),n.appendChild(l),f(t.info)&&n.appendChild(o.container),n.appendChild(p),n.appendChild(a),n.appendChild(d),n.appendChild(h),n.appendChild(r),{container:n,placeholder:a,label:l,info:o,labelText:c,description:d,messages:h,actions:r,switcherSlot:p}}getObjectControl(t){var e;const s="collapse-"+t.id,i=document.createElement("div"),n=this.getActionsSlot(),a=this.getCardBody(),r=this.getPropertiesAriaLive(),o=this.getMessagesSlot(),l=this.getChildrenSlot();(t.isAccordion||t.isAccordionProperties)&&(l.id="accordion-"+t.id);const c=this.getPropertiesActivators(),d=this.getInfo(t.info),h=this.getDescription({content:t.description}),p=this.getJsonData({id:"json-data-"+t.id}),u=this.getPropertiesSlot({id:"properties-slot-"+t.id}),m=this.getPropertiesToggle({content:t.propertiesToggleContent,id:"properties-slot-toggle-"+t.id,icon:"properties",propertiesContainer:u}),g=this.getCollapse({id:s,startCollapsed:t.startCollapsed}),b=this.getCollapseToggle({content:t.collapseToggleContent,id:"collapse-toggle-"+t.id,icon:"collapse",collapseId:s,collapse:g,startCollapsed:t.startCollapsed}),v=this.getQuickAddPropertySlot({id:"quick-add-property-slot-"+t.id}),y=this.getInputControl({type:"text",id:"jedi-quick-add-property-input-"+t.id,title:t.addPropertyContent}),C=this.getAddPropertyButton({content:t.addPropertyContent,icon:"add"}),E=this.getQuickAddPropertyToggle({content:t.addPropertyContent,icon:"add",propertiesContainer:v}),L=this.getFieldset(),{legend:x,left:I,infoContainer:A,legendText:w,right:S}=this.getLegend({content:t.title,id:t.id,titleHidden:t.titleHidden,titleIconClass:t.titleIconClass});if("modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(d,t.id,t.info),i.appendChild(L),i.appendChild(u),i.appendChild(v),t.addProperty&&(v.appendChild(y.container),v.appendChild(C)),t.editJsonData&&i.appendChild(p.dialog),L.appendChild(x),f(t.info))for(;d.container.firstChild;)A.appendChild(d.container.firstChild);L.appendChild(g),g.appendChild(a),t.description&&a.appendChild(h),a.appendChild(o);const j=this.getSwitcherSlot();return I.appendChild(j),!1===t.readOnly&&S.appendChild(n),a.appendChild(l),t.editJsonData&&n.appendChild(p.toggle),t.addProperty&&n.appendChild(E),t.enablePropertiesToggle&&(n.appendChild(m),u.appendChild(r),u.appendChild(c)),t.enableCollapseToggle&&n.appendChild(b),{container:i,collapse:g,collapseToggle:b,description:h,body:a,actions:n,messages:o,childrenSlot:l,propertiesToggle:m,jsonData:p,propertiesContainer:u,quickAddPropertyContainer:v,quickAddPropertyControl:y,quickAddPropertyBtn:C,quickAddPropertyToggle:E,ariaLive:r,propertiesActivators:c,legend:x,legendText:w,infoContainer:A,right:S,switcherSlot:j}}getObjectControlFlat(t){var e;const s=document.createElement("div"),i=this.getActionsSlot(),n=document.createElement("div"),a=this.getPropertiesAriaLive(),r=this.getMessagesSlot(),o=this.getChildrenSlot();(t.isAccordion||t.isAccordionProperties)&&(o.id="accordion-"+t.id);const l=this.getPropertiesActivators(),c=this.getInfo(t.info),d=this.getDescription({content:t.description}),h=this.getJsonData({id:"json-data-"+t.id}),p=this.getPropertiesSlot({id:"properties-slot-"+t.id}),u=this.getPropertiesToggle({content:t.propertiesToggleContent,id:"properties-slot-toggle-"+t.id,icon:"properties",propertiesContainer:p}),m=this.getQuickAddPropertySlot({id:"quick-add-property-slot-"+t.id}),g=this.getInputControl({type:"text",id:"jedi-quick-add-property-input-"+t.id,title:t.addPropertyContent}),f=this.getAddPropertyButton({content:t.addPropertyContent,icon:"add"}),b=this.getQuickAddPropertyToggle({content:t.addPropertyContent,icon:"add",propertiesContainer:m}),v=document.createElement("div"),y=document.createElement("div"),C=document.createElement("div"),E=this.getSwitcherSlot(),L=document.createElement("div");L.classList.add("jedi-editor-legend"),L.style.display="flex",L.style.justifyContent="space-between",L.style.alignItems="center";const x=document.createElement("div");x.classList.add("jedi-editor-legend-left");const I=document.createElement("div");I.classList.add("jedi-editor-legend-right"),I.style.display="flex",I.style.alignItems="center",L.appendChild(x),L.appendChild(I);const A=document.createElement("label");A.classList.add("jedi-title","jedi-legend"),A.textContent=t.title||"",t.titleHidden&&this.visuallyHidden(A),x.appendChild(A),x.appendChild(E),"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(c,t.id,t.info),t.editJsonData&&s.appendChild(h.dialog);const w=document.createElement("div");return w.appendChild(L),s.appendChild(w),t.addProperty&&(m.appendChild(g.container),m.appendChild(f)),t.description&&n.appendChild(d),n.appendChild(r),!1===t.readOnly&&I.appendChild(i),n.appendChild(o),w.appendChild(n),w.appendChild(p),w.appendChild(m),t.editJsonData&&i.appendChild(h.toggle),t.addProperty&&i.appendChild(b),t.enablePropertiesToggle&&(i.appendChild(u),p.appendChild(a),p.appendChild(l)),t.enableCollapseToggle&&i.appendChild(y),{container:s,collapse:v,collapseToggle:y,description:d,body:n,actions:i,messages:r,childrenSlot:o,propertiesToggle:u,jsonData:h,propertiesContainer:p,quickAddPropertyContainer:m,quickAddPropertyControl:g,quickAddPropertyBtn:f,quickAddPropertyToggle:b,ariaLive:a,propertiesActivators:l,legend:L,legendText:A,infoContainer:C,right:I,switcherSlot:E,innerWrapper:w}}initHorizontalObject(t){}adaptForHorizontalInputControl(t,e,s){}adaptForHorizontalTextareaControl(t,e,s){}adaptForHorizontalSelectControl(t,e,s){}adaptForHorizontalCheckboxControl(t,e,s){}adaptForHorizontalRadiosControl(t,e,s){}adaptForHorizontalCheckboxesControl(t,e,s){}adaptForHorizontalArrayControl(t,e,s,i){}adaptForHorizontalObjectControl(t,e,s,i){}adaptForHorizontalMultipleControl(t,e,s,i){}getAccordionItem(t){const e=document.createElement("div");e.classList.add("jedi-accordion-item");const s=document.createElement("div");s.classList.add("jedi-accordion-header");const i=document.createElement("button");i.type="button",i.classList.add("jedi-accordion-toggle","collapsed");const n=document.createElement("i");n.classList.add("jedi-accordion-chevron"),this.icons&&this.icons.collapse?this.addIconClass(n,this.icons.collapse):n.textContent="▾",n.style.display="inline-block",n.style.transition="transform 0.1s ease",n.style.marginRight="0.5em";const a=document.createElement("span");a.style.marginRight="0.5em",a.textContent=t.title,i.appendChild(n),i.appendChild(a);const r=document.createElement("div");r.classList.add("jedi-accordion-collapse"),r.style.display="none";const o=document.createElement("div");o.classList.add("jedi-accordion-body");const l=()=>{const t=i.classList.contains("collapsed");n.style.transform=t?"rotate(0deg)":"rotate(-180deg)"};return l(),this.useToggleEvents&&i.addEventListener("click",()=>{"none"===r.style.display?r.style.display="block":r.style.display="none",i.classList.toggle("collapsed")}),new MutationObserver(l).observe(i,{attributes:!0,attributeFilter:["class"]}),s.appendChild(i),r.appendChild(o),e.appendChild(s),e.appendChild(r),{container:e,header:s,toggle:i,collapse:r,body:o}}getArrayControl(t){var e;const s="collapse-"+t.id,i=document.createElement("div"),n=this.getActionsSlot(),a=this.getCardBody(),r=this.getMessagesSlot(),o=this.getChildrenSlot(),l=this.getBtnGroup(),d=this.getArrayBtnAdd({content:t.arrayAddContent}),h=this.getArrayBtnAdd({content:t.arrayFooterAddContent}),p=!0===t.arrayDeleteAll?this.getArrayBtnDeleteAll({content:t.arrayDeleteAllContent}):null,u=!0===t.arrayFooterDeleteAll?this.getArrayBtnDeleteAll({content:t.arrayFooterDeleteAllContent}):null,m=this.getBtnGroup(),g=this.getArrayFooter(),b=this.getFieldset(),v=this.getInfo(t.info),{legend:y,left:C,legendText:E,infoContainer:L,right:x}=this.getLegend({content:t.title,id:t.id,titleHidden:t.titleHidden,titleIconClass:t.titleIconClass}),I=this.getDescription({content:t.description}),A=this.getJsonData({id:"json-data-"+t.id}),w=this.getCollapse({id:s,startCollapsed:t.startCollapsed}),S=this.getCollapseToggle({content:t.collapseToggleContent,id:"collapse-toggle-"+t.id,icon:"collapse",collapseId:s,collapse:w,startCollapsed:t.startCollapsed});if("modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(v,t.id,t.info),i.appendChild(b),t.editJsonData&&i.appendChild(A.dialog),b.appendChild(y),f(t.info))for(;v.container.firstChild;)L.appendChild(v.container.firstChild);b.appendChild(w),w.appendChild(a),t.description&&a.appendChild(I),a.appendChild(r);const j=this.getSwitcherSlot();C.appendChild(j),!1===t.readOnly&&x.appendChild(n),n.appendChild(l),t.editJsonData&&l.appendChild(A.toggle),p&&l.appendChild(p),c(t.arrayAdd)&&!0===t.arrayAdd&&l.appendChild(d),a.appendChild(o),t.enableCollapseToggle&&n.appendChild(S);return(!0===t.arrayFooterAdd||!0===t.arrayFooterDeleteAll)&&!1===t.readOnly&&(u&&m.appendChild(u),!0===t.arrayFooterAdd&&m.appendChild(h),"right"===t.arrayFooterButtonsPosition&&(m.style.marginLeft="auto"),g.appendChild(m),w.appendChild(g)),{container:i,collapseToggle:S,collapse:w,body:a,actions:n,messages:r,childrenSlot:o,btnGroup:l,addBtn:d,jsonData:A,legend:y,legendText:E,infoContainer:L,switcherSlot:j,footerAddBtn:h,deleteAllBtn:p,footerDeleteAllBtn:u}}getArrayItem(t={}){const e=document.createElement("div"),s=document.createElement("div"),i=this.getActionsSlot(),n=this.getArrayActionsSlot();return i.style.textAlign="right",e.classList.add("jedi-array-item"),s.classList.add("jedi-array-item-body"),c(t.index)&&e.setAttribute("jedi-array-item-index",t.index),i.appendChild(n),e.appendChild(i),e.appendChild(s),{container:e,actions:i,arrayActions:n,body:s}}getMultipleControl(t={}){const e=document.createElement("div"),s=document.createElement("div"),i=document.createElement("div"),n=this.getMessagesSlot(),a=this.getChildrenSlot(),r=T(5),o=["select","radios","radios-inline","modal","select-inline"].includes(t.switcher)?t.switcher:"select";let l;return"select"===o&&(l=this.getSwitcherSelect({values:t.switcherOptionValues,titles:t.switcherOptionsLabels,title:t.id+"-switcher",id:t.id+"-switcher-"+r,label:t.id+"-switcher-"+r,titleHidden:!0,readOnly:t.readOnly,noSpacing:!0})),"radios"!==o&&"radios-inline"!==o||(l=this.getSwitcherRadios({values:t.switcherOptionValues,titles:t.switcherOptionsLabels,title:t.id+"-switcher",id:t.id+"-switcher-"+r,label:t.id+"-switcher-"+r,titleHidden:!0,readOnly:t.readOnly,inline:"radios-inline"===o,noSpacing:!0})),"modal"===o&&(l=this.getSwitcherModal({values:t.switcherOptionValues,titles:t.switcherOptionsLabels,id:t.id+"-switcher-"+r,readOnly:t.readOnly})),"select-inline"===o&&(l=this.getSwitcherSelectInline({values:t.switcherOptionValues,titles:t.switcherOptionsLabels,id:t.id+"-switcher-"+r,readOnly:t.readOnly})),l.container.classList.add("jedi-switcher"),e.appendChild(s),e.appendChild(i),s.appendChild(l.container),i.appendChild(n),i.appendChild(a),{container:e,header:s,body:i,messages:n,childrenSlot:a,switcher:l}}adaptForTableMultipleControl(t,e){}getIfThenElseControl(t){const e=document.createElement("div"),s=this.getCard(),i=this.getActionsSlot(),n=this.getCardBody(),a=this.getMessagesSlot(),r=this.getChildrenSlot(),o=this.getCardHeader({content:t.title,titleHidden:t.titleHidden}),l=this.getDescription({content:t.description});return n.appendChild(l),e.appendChild(a),e.appendChild(r),{container:e,card:s,header:o,body:n,actions:i,messages:a,childrenSlot:r}}getNullControl(t){var e;const s=t.id+"-description",i=document.createElement("div"),n=this.getActionsSlot(),a=this.getMessagesSlot(),r=document.createElement("br"),o=this.getInfo(t.info),{label:l,labelText:c}=this.getFakeLabel({for:t.id,content:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),d=this.getDescription({content:t.description,id:s}),h=this.getSwitcherSlot();return"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(o,t.id,t.info),i.appendChild(l),f(t.info)&&i.appendChild(o.container),i.appendChild(h),i.appendChild(r),i.appendChild(d),i.appendChild(a),i.appendChild(n),{container:i,label:l,info:o,labelText:c,description:d,messages:a,actions:n,switcherSlot:h}}getTextareaControl(t){var e;const s=t.id+"-description",i=t.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("textarea"),l=this.getInfo(t.info),{label:c,labelText:d}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),h=this.getDescription({content:t.description,id:s}),p=this.getMessagesSlot({id:i}),u=this.getSwitcherSlot();return o.setAttribute("aria-describedby",n),o.setAttribute("id",t.id),o.setAttribute("name",t.id),o.style.width="100%","modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(l,t.id,t.info),a.appendChild(c),f(t.info)&&a.appendChild(l.container),a.appendChild(u),a.appendChild(o),a.appendChild(h),a.appendChild(p),a.appendChild(r),{container:a,input:o,label:c,info:l,labelText:d,description:h,messages:p,actions:r,switcherSlot:u}}adaptForTableTextareaControl(t){this.visuallyHidden(t.label),this.visuallyHidden(t.description),t.input.setAttribute("rows","1")}getInputControl(t){var e;const s=t.id+"-messages",i=t.id+"-description",n=s+" "+i,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("input"),l=this.getInfo(t.info),{label:c,labelText:d}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),h=this.getDescription({content:t.description,id:i}),p=this.getMessagesSlot({id:s}),u=this.getSwitcherSlot();return o.setAttribute("aria-describedby",n),o.setAttribute("type",t.type),o.setAttribute("id",t.id),o.setAttribute("name",t.id),o.style.width="100%",a.appendChild(c),"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(l,t.id,t.info),f(t.info)&&a.appendChild(l.container),a.appendChild(u),a.appendChild(o),a.appendChild(h),a.appendChild(p),a.appendChild(r),{container:a,input:o,label:c,info:l,labelText:d,description:h,messages:p,actions:r,switcherSlot:u}}getInputRangeControl(t){const e=this.getInputControl(t),s=document.createElement("output");return s.className="range-output",s.style.marginLeft="10px",s.style.fontWeight="bold",e.input.parentNode.insertBefore(s,e.input.nextSibling),{...e,output:s}}adaptForTableInputControl(t){this.visuallyHidden(t.label),this.visuallyHidden(t.description)}getRadiosControl(t){var e;const s=t.id+"-messages",i=t.id+"-description",n=document.createElement("div"),a=this.getRadioFieldset(),r=this.getInfo(t.info),{legend:o,legendText:l}=this.getRadioLegend({content:t.title,id:t.id,for:t.id,titleIconClass:t.titleIconClass}),d=this.getMessagesSlot({id:s}),h=this.getDescription({content:t.description,id:i});"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(r,t.id,t.info),t.titleHidden&&this.visuallyHidden(o);const p=[],u=[],m=[],g=[];t.values.forEach((e,n)=>{const a=s+" "+i,r=document.createElement("div"),o=document.createElement("input"),l=document.createElement("label"),d=document.createElement("span");o.setAttribute("type","radio"),o.setAttribute("id",t.id+"-"+n),o.setAttribute("name",t.id),o.setAttribute("value",e),o.setAttribute("aria-describedby",a),l.setAttribute("for",t.id+"-"+n),l.classList.add("jedi-title"),l.classList.add("jedi-label"),g.push(d),c(t.titles)&&c(t.titles[n])&&(d.textContent=t.titles[n]??e),p.push(r),u.push(o),m.push(l)});const b=this.getSwitcherSlot();return n.appendChild(a),a.appendChild(o),o.appendChild(b),f(t.info)&&l.after(r.container),p.forEach((t,e)=>{a.appendChild(p[e]),t.appendChild(u[e]),t.appendChild(m[e]),m[e].appendChild(g[e])}),a.appendChild(h),a.appendChild(d),{container:n,fieldset:a,legend:o,legendText:l,info:r,radios:u,labels:m,labelTexts:g,radioControls:p,description:h,messages:d,switcherSlot:b}}adaptForTableRadiosControl(t){this.visuallyHidden(t.legend),this.visuallyHidden(t.description)}getCheckboxControl(t){var e;const s=t.id+"-description",i=t.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("span"),l=document.createElement("input"),c=this.getInfo(t.info),{label:d,labelText:h}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),p=this.getDescription({content:t.description,id:s}),u=this.getMessagesSlot({id:i});l.setAttribute("type","checkbox"),l.setAttribute("id",t.id),l.setAttribute("name",t.id),l.setAttribute("aria-describedby",n);const m=this.getSwitcherSlot();return"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(c,t.id,t.info),a.appendChild(o),a.appendChild(r),o.appendChild(l),o.appendChild(d),f(t.info)&&o.appendChild(c.container),o.appendChild(m),o.appendChild(p),o.appendChild(u),{container:a,formGroup:o,input:l,label:d,info:c,labelText:h,description:p,messages:u,actions:r,switcherSlot:m}}adaptForTableCheckboxControl(t,e){this.visuallyHidden(t.label),this.visuallyHidden(t.description)}getCheckboxesControl(t){var e;const s=t.id+"-messages",i=t.id+"-description",n=document.createElement("div"),a=this.getRadioFieldset(),r=this.getInfo(t.info),{legend:o,legendText:l}=this.getRadioLegend({content:t.title,id:t.id,for:t.id,titleIconClass:t.titleIconClass}),c=this.getMessagesSlot({id:s}),d=this.getDescription({content:t.description,id:i});t.titleHidden&&this.visuallyHidden(o);const h=[],p=[],u=[],m=[];t.values.forEach((e,n)=>{const a=s+" "+i,r=t.id+"-"+n,o=document.createElement("div"),l=document.createElement("input"),c=document.createElement("label"),d=document.createElement("span");l.setAttribute("type","checkbox"),l.setAttribute("id",r),l.setAttribute("name",t.id),l.setAttribute("value",e),l.setAttribute("aria-describedby",a),c.setAttribute("for",r),t.titles&&t.titles[n]&&(d.textContent=t.titles[n]),h.push(o),p.push(l),m.push(d),u.push(c)}),"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(r,t.id,t.info);const g=this.getSwitcherSlot();return n.appendChild(a),a.appendChild(o),o.appendChild(g),f(t.info)&&l.after(r.container),h.forEach((t,e)=>{a.appendChild(h[e]),t.appendChild(p[e]),t.appendChild(u[e]),u[e].appendChild(m[e])}),a.appendChild(d),a.appendChild(c),{container:n,fieldset:a,legend:o,legendText:l,checkboxes:p,labels:u,labelTexts:m,checkboxControls:h,description:d,messages:c,switcherSlot:g}}adaptForTableCheckboxesControl(t,e){this.visuallyHidden(t.legend),this.visuallyHidden(t.description)}getSelectControl(t){var e;const s=t.id+"-description",i=t.id+"-messages",n=i+" "+s,a=document.createElement("div"),r=this.getActionsSlot(),o=document.createElement("select"),l=this.getInfo(t.info),{label:c,labelText:d}=this.getLabel({for:t.id,text:t.title,visuallyHidden:t.titleHidden,titleIconClass:t.titleIconClass}),h=this.getMessagesSlot({id:i}),p=this.getDescription({content:t.description,id:s});o.setAttribute("id",t.id),o.setAttribute("name",t.id),o.setAttribute("aria-describedby",n),t.values.forEach((e,s)=>{const i=document.createElement("option");i.setAttribute("value",e),t.titles&&t.titles[s]&&(i.textContent=t.titles[s]),o.appendChild(i)});const u=this.getSwitcherSlot();return"modal"===(null==(e=null==t?void 0:t.info)?void 0:e.variant)&&this.infoAsModal(l,t.id,t.info),a.appendChild(c),f(t.info)&&a.appendChild(l.container),a.appendChild(u),a.appendChild(o),a.appendChild(p),a.appendChild(h),a.appendChild(r),{container:a,input:o,label:c,info:l,labelText:d,description:p,messages:h,actions:r,switcherSlot:u}}adaptForTableSelectControl(t){this.visuallyHidden(t.label),this.visuallyHidden(t.description)}getSwitcherSelect(t){return this.getSelectControl(t)}getSwitcherRadios(t){return this.getRadiosControl(t)}getSwitcherModal(t){const e=document.createElement("span"),s=document.createElement("span"),i=this.getDialog(),n=document.createElement("div"),a=[],r=document.createElement("span"),o=document.createElement("i");return e.classList.add("jedi-switcher-modal"),s.classList.add("jedi-switcher-modal-trigger"),s.setAttribute("role","button"),s.setAttribute("tabindex","0"),s.setAttribute("aria-haspopup","dialog"),s.setAttribute("aria-label","Switch type"),s.appendChild(r),this.icons&&this.icons.switcher&&(this.addIconClass(o,this.icons.switcher),s.appendChild(document.createTextNode(" ")),s.appendChild(o)),n.classList.add("jedi-modal-content"),t.values.forEach((e,s)=>{const i=document.createElement("button");i.setAttribute("type","button"),i.setAttribute("aria-label",`Select: ${t.titles[s]}`),i.textContent=t.titles[s],i.dataset.switcherValue=e,i.classList.add("jedi-switcher-option-btn"),a.push(i),n.appendChild(i)}),s.addEventListener("click",()=>{i.showModal()}),s.addEventListener("keydown",t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i.showModal())}),i.addEventListener("click",t=>{t.target===i&&i.close()}),e.appendChild(s),e.appendChild(i),i.appendChild(n),{container:e,trigger:s,triggerText:r,dialog:i,dialogBody:n,optionButtons:a}}setSwitcherOptionActive(t,e){t.classList.toggle("jedi-switcher-option-active",e)}getSwitcherSelectInline(t){const e=document.createElement("span"),s=document.createElement("select");return e.classList.add("jedi-switcher-select-inline"),e.style.display="inline-block",s.classList.add("jedi-switcher-select-inline-input"),s.style.width="auto",s.setAttribute("aria-label","Switch type"),t.readOnly&&s.setAttribute("disabled",""),t.values.forEach((e,i)=>{const n=document.createElement("option");n.setAttribute("value",e),t.titles&&t.titles[i]&&(n.textContent=t.titles[i]),s.appendChild(n)}),e.appendChild(s),{container:e,input:s}}getAlert(t){return this.getErrorFeedback(t)}getErrorFeedback(t){const e=document.createElement("div"),s=document.createElement("small"),i=document.createElement("span");return s.textContent=t.message,i.textContent="⚠ ",i.setAttribute("aria-hidden","true"),e.classList.add("jedi-error-message"),e.appendChild(i),e.appendChild(s),e}getWarningFeedback(t){const e=document.createElement("div"),s=document.createElement("small"),i=document.createElement("span");return s.textContent=t.message,i.textContent="⚠ ",i.classList.add("jedi-warning-message"),i.setAttribute("aria-hidden","true"),e.classList.add("jedi-warning-message"),e.appendChild(i),e.appendChild(s),e}getRow(){const t=document.createElement("div");return t.classList.add("jedi-row"),t}getCol(t,e,s,i,n){const a=document.createElement("div");return a.classList.add("jedi-col"),a.classList.add("jedi-col-xs-"+t),a.classList.add("jedi-col-sm-"+e),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 t=document.createElement("div");return t.classList.add("clearfix"),t}getTabList(){const t=document.createElement("ul");return t.classList.add("jedi-nav-list"),t}styleLegendWarning(t){}getTab(t){const e=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-"+t.id),n.classList.add("jedi-nav-text"),n.textContent=t.title,t.hasErrors){const s=document.createElement("span");s.classList.add("jedi-nav-warning"),s.textContent="⚠ ",n.insertBefore(s,n.firstChild),t.navWarningMessage&&e.setAttribute("title",t.navWarningMessage)}return s.appendChild(i),s.appendChild(n),e.appendChild(s),{list:e,link:s,arrayActions:i,text:n}}getTabContent(){const t=document.createElement("div");return t.classList.add("tab-content"),t}getTable(){const t=document.createElement("div"),e=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return e.appendChild(s),e.appendChild(i),t.appendChild(e),{container:t,table:e,thead:s,tbody:i}}getTableDefinition(t={}){const e=document.createElement("td");return t.isButtonColumn&&(e.style.width="1%"),e.style.whiteSpace="nowrap",e}getTableHeader(t={}){const e=document.createElement("th");return e.style.paddingLeft="12px",e.style.paddingRight="12px",e.style.textWrap="nowrap",e.style.verticalAlign="bottom",t.minWidth&&(e.style.minWidth=t.minWidth),e}setTabPaneAttributes(t,e,s){t.setAttribute("id","tab-pane-"+s),t.classList.add("jedi-tab-pane")}visuallyHidden(t){t.style.position="absolute",t.style.width="1px",t.style.height="1px",t.style.padding="0",t.style.margin="-1px",t.style.overflow="hidden",t.style.clip="rect(0,0,0,0)",t.style.border="0"}visuallyVisible(t){t.removeAttribute("style")}physicallyHidden(t){t.style.display="none"}}const Cs={Schema:Et,Utils:O,Editor:le,EditorBoolean:Ie,EditorBooleanRadios:Ae,EditorBooleanSelect:we,EditorBooleanCheckbox:Se,EditorString:je,EditorStringRadios:Te,EditorStringSelect:Oe,EditorStringTextarea:ke,EditorStringAwesomplete:De,EditorStringPickr:ns,EditorStringInput:Pe,EditorNumberRange:hs,EditorNumber:Fe,EditorNumberRadios:He,EditorNumberSelect:Ve,EditorNumberInput:Be,EditorObjectGrid:qe,EditorObjectCategories:Ne,EditorObjectNav:Ue,EditorObjectAccordion:We,EditorObjectHorizontal:Je,EditorObjectRadios:$e,EditorObject:ze,EditorArrayChoices:Qe,EditorArrayNav:Xe,EditorArray:_e,EditorMultiple:Ye,EditorIfThenElse:ce,EditorNull:ts,Theme:ys,ThemeBootstrap3:class extends ys{init(){this.useToggleEvents=!1}getAddPropertyButton(t){const e=super.getAddPropertyButton(t);return e.classList.add("btn-primary"),e.classList.add("btn-block"),e}getCollapseToggle(t){const e=super.getCollapseToggle(t);return e.setAttribute("href","#"+t.collapseId),e.setAttribute("data-toggle","collapse"),e.setAttribute("always-enabled",""),e}getCollapse(t){const e=super.getCollapse(t);return e.classList.add("collapse"),t.startCollapsed||e.classList.add("in"),e}getObjectControl(t){const e=super.getObjectControl(t);if(t.isAccordion){const{childrenSlot:t}=e;t.classList.add("panel-group");const s=t.id,i=t.appendChild.bind(t);t.appendChild=t=>{const e=t.querySelector(".collapse");e&&(e.classList.remove("in"),e.classList.add("panel-collapse"));const n=t.querySelector(".jedi-collapse-toggle");return n&&n.setAttribute("data-parent","#"+s),i(t)}}return t.isAccordionProperties&&e.childrenSlot.classList.add("panel-group"),e}initHorizontalObject(t){t.classList.add("form-horizontal")}_adaptHorizontalControl(t,e,s){if(!t.label||t.label.classList.contains("control-label"))return;const i=e??3,n=s??6;t.container.classList.add("form-group"),t.label.classList.add("control-label",`col-sm-${i}`);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),Array.from(t.container.children).filter(e=>e!==t.label).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalInputControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalTextareaControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalSelectControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalCheckboxControl(t,e,s){if(t.formGroup.parentElement!==t.container)return;const i=e??3,n=s??6;t.container.classList.add("form-group");const a=document.createElement("div");a.classList.add(`col-sm-${n}`,`col-sm-offset-${i}`),Array.from(t.container.children).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalRadiosControl(t,e,s){if(t.legend.parentElement!==t.fieldset)return;const i=e??3,n=s??6;t.container.classList.add("form-group"),t.legend.classList.add("control-label",`col-sm-${i}`),t.container.insertBefore(t.legend,t.fieldset);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),t.fieldset.replaceWith(a),a.appendChild(t.fieldset),t.fieldset.classList.remove("panel","panel-default")}adaptForHorizontalCheckboxesControl(t,e,s){this.adaptForHorizontalRadiosControl(t,e,s)}_adaptHorizontalComplexControl(t,e,s,i){if(t.container.classList.contains("jedi-horizontal"))return;const n=e??3,a=s??6,r=document.createElement("label");r.classList.add("control-label",`col-sm-${n}`),r.textContent=i||"";const o=document.createElement("div");o.classList.add(`col-sm-${a}`),Array.from(t.container.children).forEach(t=>o.appendChild(t)),t.container.classList.add("form-group","jedi-horizontal"),t.container.appendChild(r),t.container.appendChild(o),t.legendText&&(t.legendText.style.display="none")}adaptForHorizontalArrayControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalObjectControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalMultipleControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}getAccordionItem(t){const e=t.id+"-acc-collapse",s=document.createElement("div");s.classList.add("panel","panel-default");const i=document.createElement("div");i.classList.add("panel-heading","collapsed"),i.setAttribute("data-toggle","collapse"),i.setAttribute("data-parent","#"+t.accordionId),i.setAttribute("href","#"+e),i.style.cursor="pointer";const n=document.createElement("h4");n.classList.add("panel-title");const a=document.createElement("a"),r=document.createElement("i");r.classList.add("jedi-accordion-chevron"),this.icons&&this.icons.collapse?this.addIconClass(r,this.icons.collapse):r.textContent="▾",r.style.display="inline-block",r.style.transition="transform 0.1s ease",r.style.marginRight="0.5em";const o=document.createElement("span");o.style.marginRight="0.5em",o.textContent=t.title,a.appendChild(r),a.appendChild(o);const l=document.createElement("div");l.id=e,l.classList.add("panel-collapse","collapse");const c=()=>{const t=i.classList.contains("collapsed");r.style.transform=t?"rotate(-90deg)":"rotate(0deg)"};c(),new MutationObserver(c).observe(i,{attributes:!0,attributeFilter:["class"]});const d=document.createElement("div");return d.classList.add("panel-body","p-0"),n.appendChild(a),i.appendChild(n),l.appendChild(d),s.appendChild(i),s.appendChild(l),{container:s,header:i,toggle:a,collapse:l,body:d}}getJsonData(t){const e=super.getJsonData(t);return e.control.classList.add("form-group"),e.input.classList.add("form-control"),e.copyBtn.classList.add("btn-default"),e.copyBtn.classList.add("btn-block"),e.saveBtn.classList.add("btn-primary"),e.saveBtn.classList.add("btn-block"),e}getFieldset(){const t=super.getFieldset();return t.classList.add("panel"),t.classList.add("panel-default"),t.style.marginBottom="15px",t}getLegend(t){const e=super.getLegend(t),{legend:s,infoContainer:i}=e;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",i.style.marginRight="4px",e}getRadioLegend(t){const e=super.getRadioLegend(t),{legend:s}=e;return s.style.fontWeight="inherit",s.style.border="none",s.style.marginBottom="0",e}getLabel(t){return super.getLabel(t)}getInfo(t={}){const e=super.getInfo(t);return e.container.style.marginRight="4px",e}getCard(){const t=super.getCard();return t.classList.add("panel"),t.classList.add("panel-default"),t}getCardHeader(t){const e=super.getCardHeader(t);return e.classList.add("panel-heading"),e.classList.add("text-right"),e}getCardBody(){const t=super.getCardBody();return t.classList.add("panel-body"),t.style.clear="both",t.style.paddingBottom="0",t}getArrayFooter(){const t=super.getArrayFooter();return t.classList.add("panel-footer"),t}getBtnGroup(){const t=super.getBtnGroup();return t.classList.add("btn-group"),t.style.display="inline-flex",t}getButton(t){const e=super.getButton(t);return e.classList.add("btn"),e.classList.add("btn-xs"),e.classList.add("btn-default"),e}getDescription(t){const e=super.getDescription(t);return e.classList.add("text-muted"),e.style.marginBottom="5px",e}getPropertiesGroup(t={}){const e=super.getPropertiesGroup(t),s=document.createElement("br");return e.container.appendChild(s),e.group.classList.add("pl-3"),e}getTextareaControl(t){const e=super.getTextareaControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableTextareaControl(t){super.adaptForTableTextareaControl(t),t.container.classList.remove("form-group")}getInputControl(t){const e=super.getInputControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}getInputRangeControl(t){return super.getInputRangeControl(t)}adaptForTableInputControl(t,e){super.adaptForTableInputControl(t,e),t.container.classList.remove("form-group")}getRadiosControl(t){const e=super.getRadiosControl(t),{fieldset:s,radios:i,labels:n,labelTexts:a,radioControls:r,description:o,messages:l}=e;return r.forEach((e,o)=>{e.classList.add("radio"),t.inline&&(e.style.display="inline-flex",e.style.alignItems="center",e.style.paddingLeft="0",e.style.marginRight="15px"),s.appendChild(r[o]),e.appendChild(n[o]),n[o].appendChild(i[o]),n[o].appendChild(a[o])}),s.appendChild(o),s.appendChild(l),e}adaptForTableRadiosControl(t,e){super.adaptForTableRadiosControl(t,e),t.fieldset.classList.remove("panel"),t.fieldset.classList.remove("panel-default"),t.fieldset.style.marginBottom="0"}getCheckboxesControl(t){const e=super.getCheckboxesControl(t),{fieldset:s,checkboxes:i,labels:n,labelTexts:a,checkboxControls:r}=e;return r.forEach((e,o)=>{e.classList.add("checkbox"),t.inline&&(e.style.display="inline-flex",e.style.alignItems="center",e.style.paddingLeft="0",e.style.marginRight="30px"),s.appendChild(r[o]),e.appendChild(n[o]),n[o].appendChild(i[o]),n[o].appendChild(a[o])}),e}adaptForTableCheckboxesControl(t,e){super.adaptForTableCheckboxesControl(t,e),t.fieldset.classList.remove("panel"),t.fieldset.classList.remove("panel-default"),t.body.classList.remove("panel-body")}getCheckboxControl(t){const e=super.getCheckboxControl(t),{container:s,formGroup:i,description:n,messages:a}=e;return s.appendChild(i),s.appendChild(n),s.appendChild(a),e}adaptForTableCheckboxControl(t,e){super.adaptForTableCheckboxControl(t,e)}getSelectControl(t){const e=super.getSelectControl(t),{container:s,input:i,label:n}=e;return t.noSpacing||s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableSelectControl(t,e){super.adaptForTableSelectControl(t,e),t.container.classList.remove("form-group")}getSwitcherSelect(t){const e=super.getSwitcherSelect(t);return e.input.classList.add("input-sm"),e}getSwitcherSelectInline(t){const e=super.getSwitcherSelectInline(t);return e.container.style.marginBottom="5px",e.input.classList.add("input-sm"),e}getSwitcherModal(t){const e=super.getSwitcherModal(t);return e.trigger.classList.add("label","label-primary"),e.dialogBody.classList.add("btn-group-vertical"),e.dialogBody.style.width="100%",e.optionButtons.forEach(t=>{t.classList.add("btn","btn-default","btn-block")}),e}setSwitcherOptionActive(t,e){super.setSwitcherOptionActive(t,e),t.classList.toggle("btn-primary",e),t.classList.toggle("btn-default",!e)}adaptForTableMultipleControl(t,e){super.adaptForTableMultipleControl(t,e)}getAlert(t){const e=super.getAlert(t);return e.classList.add("alert"),e.classList.add("alert-danger"),e}getErrorFeedback(t){const e=super.getErrorFeedback(t);return e.classList.add("text-danger"),e}getWarningFeedback(t){const e=super.getWarningFeedback(t);return e.classList.add("text-warning"),e}getRow(){const t=super.getRow();return t.classList.add("row"),t}getCol(t,e,s,i,n){const a=super.getCol();return a.classList.add("col-xs-"+t),a.classList.add("col-sm-"+e),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("col-md-offset-"+n),a}getTabList(t){const e=super.getTabList(t);return e.classList.add("nav"),e.style.marginBottom="1rem","horizontal"===t.variant?e.classList.add("nav-tabs"):(e.classList.add("nav-pills"),e.classList.add("nav-stacked")),e}getTab(t){const e=super.getTab(t);if(e.link.style.display="flex",e.link.style.alignItems="center",e.arrayActions.style.flexShrink="0",e.arrayActions.classList.add("text-nowrap"),e.text.style.flex="1",e.text.style.marginLeft="5px",e.text.style.marginRight="5px",t.hasErrors){const t=e.text.querySelector(".jedi-nav-warning");t&&(e.text.removeChild(t),t.style.flexShrink="0",t.classList.add("text-nowrap"),e.link.appendChild(t))}return t.active&&e.list.classList.add("active"),e.link.setAttribute("data-toggle","tab"),e}getTable(){const t=document.createElement("div"),e=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return t.classList.add("table-responsive"),e.classList.add("table"),e.appendChild(s),e.appendChild(i),t.appendChild(e),{container:t,table:e,thead:s,tbody:i}}setTabPaneAttributes(t,e,s){super.setTabPaneAttributes(t,e,s),t.classList.add("tab-pane"),t.classList.toggle("in",e),t.classList.toggle("active",e)}infoAsModal(t,e,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"),c=this.getButton({content:"Close",icon:"close"}),d=e+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",d),c.setAttribute("data-dismiss","modal"),c.setAttribute("always-enabled",""),t.info.setAttribute("data-toggle","modal"),t.info.setAttribute("data-target","#"+d),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"),c.classList.add("jedi-modal-close"),c.classList.add("close"),u(s.title)&&(o.innerHTML=s.title),u(s.content)&&(l.innerHTML=s.content),t.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(c),r.appendChild(o),a.appendChild(l)}visuallyHidden(t){t.classList.add("sr-only")}visuallyVisible(t){t.classList.remove("sr-only")}},ThemeBootstrap4:class extends ys{init(){this.useToggleEvents=!1}getAddPropertyButton(t){const e=super.getAddPropertyButton(t);return e.classList.add("btn-primary"),e.classList.add("btn-block"),e}getCollapseToggle(t){const e=super.getCollapseToggle(t);return e.setAttribute("href","#"+t.collapseId),e.setAttribute("data-toggle","collapse"),e.setAttribute("always-enabled",""),e}getCollapse(t){const e=super.getCollapse(t);return e.classList.add("collapse"),t.startCollapsed||e.classList.add("show"),e}getObjectControl(t){const e=super.getObjectControl(t);if(t.isAccordion){const{childrenSlot:t}=e,s=t.id,i=t.appendChild.bind(t);t.appendChild=t=>{const e=t.querySelector(".collapse");return e&&(e.classList.remove("show"),e.setAttribute("data-parent","#"+s)),i(t)}}return t.isAccordionProperties&&e.childrenSlot.classList.add("accordion","pb-3"),e}_adaptHorizontalControl(t,e,s){if(!t.label||t.label.classList.contains("col-form-label"))return;const i=e??3,n=s??6;t.container.classList.add("row"),t.label.classList.add("col-form-label","text-sm-right",`col-sm-${i}`);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),Array.from(t.container.children).filter(e=>e!==t.label).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalInputControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalTextareaControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalSelectControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalCheckboxControl(t,e,s){if(t.formGroup.parentElement!==t.container)return;const i=e??3,n=s??6;t.container.classList.add("row");const a=document.createElement("div");a.classList.add(`col-sm-${n}`,`offset-sm-${i}`),Array.from(t.container.children).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalRadiosControl(t,e,s){if(t.legend.parentElement!==t.fieldset)return;const i=e??3,n=s??6;t.container.classList.add("row"),t.legend.classList.add("col-form-label","text-sm-right",`col-sm-${i}`),t.container.insertBefore(t.legend,t.fieldset);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),t.fieldset.replaceWith(a),a.appendChild(t.fieldset)}adaptForHorizontalCheckboxesControl(t,e,s){this.adaptForHorizontalRadiosControl(t,e,s)}_adaptHorizontalComplexControl(t,e,s,i){if(t.container.classList.contains("jedi-horizontal"))return;const n=e??3,a=s??6,r=document.createElement("label");r.classList.add("col-form-label","text-sm-right",`col-sm-${n}`),r.textContent=i||"";const o=document.createElement("div");o.classList.add(`col-sm-${a}`),Array.from(t.container.children).forEach(t=>o.appendChild(t)),t.container.classList.add("row","jedi-horizontal"),t.container.appendChild(r),t.container.appendChild(o),t.legendText&&(t.legendText.style.display="none")}adaptForHorizontalArrayControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalObjectControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalMultipleControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}getAccordionItem(t){const e=t.id+"-acc-collapse",s=document.createElement("div");s.classList.add("card","mb-0");const i=document.createElement("div");i.classList.add("card-header","p-0");const n=document.createElement("button");n.type="button",n.classList.add("btn","btn-link","w-100","text-left"),n.setAttribute("data-toggle","collapse"),n.setAttribute("data-target","#"+e),n.setAttribute("data-parent","#"+t.accordionId),n.classList.add("collapsed");const a=document.createElement("i");a.classList.add("jedi-accordion-chevron"),this.icons&&this.icons.collapse?this.addIconClass(a,this.icons.collapse):a.textContent="▾",a.classList.add("d-inline-block","mr-2"),a.style.transition="transform 0.1s ease";const r=document.createElement("span");r.classList.add("mr-1"),r.textContent=t.title,n.appendChild(a),n.appendChild(r);const o=document.createElement("div");o.id=e,o.classList.add("collapse"),o.setAttribute("data-parent","#"+t.accordionId);const l=()=>{const t=n.classList.contains("collapsed");a.style.transform=t?"rotate(-90deg)":"rotate(0deg)"};l(),new MutationObserver(l).observe(n,{attributes:!0,attributeFilter:["class"]});const c=document.createElement("div");return c.classList.add("card-body","pb-0"),i.appendChild(n),o.appendChild(c),s.appendChild(i),s.appendChild(o),{container:s,header:i,toggle:n,collapse:o,body:c}}getJsonData(t){const e=super.getJsonData(t);return e.control.classList.add("form-group"),e.input.classList.add("form-control"),e.copyBtn.classList.add("btn-secondary"),e.copyBtn.classList.add("btn-block"),e.saveBtn.classList.add("btn-primary"),e.saveBtn.classList.add("btn-block"),e}getFieldset(){const t=document.createElement("fieldset");return t.setAttribute("role","group"),t.classList.add("card"),t.classList.add("mb-3"),t}getLegend(t){const e=super.getLegend(t),{legend:s,infoContainer:i}=e;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"),i.classList.add("mr-1"),e}getLabel(t){return super.getLabel(t)}getInfo(t={}){const e=super.getInfo(t);return e.container.classList.add("mr-1"),e}getCard(){const t=super.getCard();return t.classList.add("card"),t.classList.add("mb-3"),t}getCardHeader(t){const e=super.getCardHeader(t);return e.classList.add("card-header"),e.classList.add("d-flex"),e.classList.add("justify-content-end"),e.classList.add("align-items-center"),e.classList.add("py-1"),e}getCardBody(){const t=super.getCardBody();return t.classList.add("card-body"),t.classList.add("pb-0"),t}getArrayFooter(){const t=super.getArrayFooter();return t.classList.add("card-footer"),t}getBtnGroup(){const t=super.getBtnGroup();return t.classList.add("btn-group"),t}getButton(t){const e=super.getButton(t);return e.classList.add("btn"),e.classList.add("btn-sm"),e}getDescription(t){const e=super.getDescription(t);return e.classList.add("text-muted"),e.classList.add("fs-sm"),e.classList.add("mb-1"),e}getPropertiesGroup(t={}){const e=super.getPropertiesGroup(t);return e.group.classList.add("pl-3"),e.name.classList.add("mb-3"),e.container.classList.add("mb-4"),e}getTextareaControl(t){const e=super.getTextareaControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableTextareaControl(t){super.adaptForTableTextareaControl(t),t.container.classList.remove("form-group")}getInputControl(t){const e=super.getInputControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}getInputRangeControl(t){const e=super.getInputRangeControl(t),{container:s,input:i,label:n}=e;return s.classList.add("form-group"),i.classList.add("custom-range"),i.classList.remove("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableInputControl(t,e){super.adaptForTableInputControl(t,e),t.container.classList.remove("form-group")}getRadiosControl(t){const e=super.getRadiosControl(t),{container:s,fieldset:i,radios:n,labels:a,labelTexts:r,radioControls:o,description:l,messages:c}=e;return t.noSpacing||s.classList.add("form-group"),o.forEach((e,s)=>{e.classList.add("form-check"),n[s].classList.add("form-check-input"),a[s].classList.add("form-check-label"),t.inline&&e.classList.add("form-check-inline"),i.appendChild(o[s]),e.appendChild(n[s]),e.appendChild(a[s]),a[s].appendChild(r[s])}),i.appendChild(l),i.appendChild(c),e}adaptForTableRadiosControl(t,e){super.adaptForTableRadiosControl(t,e),t.container.classList.remove("form-group"),t.fieldset.classList.remove("card"),t.fieldset.classList.add("mb-0")}getCheckboxesControl(t){const e=super.getCheckboxesControl(t),{checkboxes:s,labels:i,checkboxControls:n}=e;return n.forEach((e,n)=>{e.classList.add("form-group"),e.classList.add("form-check"),s[n].classList.add("form-check-input"),i[n].classList.add("form-check-label"),t.inline&&e.classList.add("form-check-inline")}),e}adaptForTableCheckboxesControl(t,e){super.adaptForTableCheckboxesControl(t,e),t.container.classList.remove("form-group"),t.fieldset.classList.remove("card"),t.fieldset.classList.remove("mb-3"),t.body.classList.remove("card-body"),t.body.classList.remove("card-body")}getCheckboxControl(t){const e=super.getCheckboxControl(t),{container:s,formGroup:i,input:n,label:a,info:r,description:o,messages:l}=e;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(t.info)&&a.appendChild(r.container),s.appendChild(o),s.appendChild(l),e}adaptForTableCheckboxControl(t,e){super.adaptForTableCheckboxControl(t,e),t.container.classList.remove("form-group"),t.formGroup.classList.remove("form-check"),t.input.classList.remove("form-check-input"),t.label.classList.remove("form-check-label")}getSelectControl(t){const e=super.getSelectControl(t),{container:s,input:i}=e;return t.noSpacing||s.classList.add("form-group"),i.classList.add("form-control"),e}adaptForTableSelectControl(t,e){super.adaptForTableSelectControl(t,e),t.container.classList.remove("form-group")}getSwitcherSelect(t){const e=super.getSwitcherSelect(t);return e.input.classList.add("form-control-sm"),e}getSwitcherSelectInline(t){const e=super.getSwitcherSelectInline(t);return e.container.classList.add("mb-2"),e.input.classList.add("form-control","form-control-sm"),e}getSwitcherModal(t){const e=super.getSwitcherModal(t);return e.trigger.classList.add("badge","badge-primary"),e.dialogBody.classList.add("btn-group","btn-group-vertical","w-100"),e.optionButtons.forEach(t=>{t.classList.add("btn","btn-light")}),e}setSwitcherOptionActive(t,e){super.setSwitcherOptionActive(t,e),t.classList.toggle("btn-primary",e),t.classList.toggle("btn-light",!e)}adaptForTableMultipleControl(t,e){super.adaptForTableMultipleControl(t,e),t.container.classList.remove("mb-3")}getAlert(t){const e=super.getAlert(t);return e.classList.add("alert"),e.classList.add("alert-danger"),e}getErrorFeedback(t){const e=super.getErrorFeedback(t);return e.classList.add("text-danger"),e.classList.add("form-text"),e.classList.add("d-block"),e}getWarningFeedback(t){const e=super.getWarningFeedback(t);return e.classList.add("text-warning"),e.classList.add("form-text"),e.classList.add("d-block"),e}getColumnClass(t,e){return"col-"+t+"-"+e}getRow(){const t=super.getRow();return t.classList.add("row"),t}getCol(t,e,s,i,n){const a=super.getCol(t,s,n);return a.classList.add("col-"+t),a.classList.add("col-sm"+e),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("offset-md-"+n),a}getTabList(t){const e=super.getTabList();return e.classList.add("nav"),e.classList.add("mb-3"),"horizontal"===t.variant?e.classList.add("nav-tabs"):(e.classList.add("nav-pills"),e.classList.add("flex-column")),e}getTab(t){const e=super.getTab(t);if(e.list.classList.add("nav-item"),e.link.classList.add("nav-link"),e.link.classList.add("d-flex","align-items-center"),e.arrayActions.classList.add("flex-shrink-0","text-nowrap"),e.text.classList.add("flex-grow-1","mx-2"),t.hasErrors){const t=e.text.querySelector(".jedi-nav-warning");t&&(e.text.removeChild(t),t.classList.add("flex-shrink-0","text-nowrap"),e.link.appendChild(t))}return e.link.setAttribute("data-toggle","tab"),t.active&&e.link.classList.add("active"),e}getTable(){const t=document.createElement("div"),e=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return t.classList.add("table-responsive"),e.classList.add("table"),e.classList.add("table-borderless"),e.classList.add("table-sm"),e.classList.add("align-middle"),e.appendChild(s),e.appendChild(i),t.appendChild(e),{container:t,table:e,thead:s,tbody:i}}setTabPaneAttributes(t,e,s){super.setTabPaneAttributes(t,e,s),t.classList.add("tab-pane"),t.classList.toggle("active",e)}infoAsModal(t,e,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"),c=this.getButton({content:"Close",icon:"close"}),d=e+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",d),c.setAttribute("data-dismiss","modal"),c.setAttribute("always-enabled",""),t.info.setAttribute("data-toggle","modal"),t.info.setAttribute("data-target","#"+d),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"),c.classList.add("jedi-modal-close"),c.classList.add("close"),u(s.title)&&(o.innerHTML=s.title),u(s.content)&&(l.innerHTML=s.content),t.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(o),r.appendChild(c),a.appendChild(l)}visuallyHidden(t){t.classList.add("sr-only")}visuallyVisible(t){t.classList.remove("sr-only")}},ThemeBootstrap5:class extends ys{init(){this.useToggleEvents=!1}getAddPropertyButton(t){const e=super.getAddPropertyButton(t);return e.classList.add("btn-primary"),e.classList.add("w-100"),e}getCollapseToggle(t){const e=super.getCollapseToggle(t);return e.setAttribute("href","#"+t.collapseId),e.setAttribute("data-bs-toggle","collapse"),e.setAttribute("always-enabled",""),e}getCollapse(t){const e=super.getCollapse(t);return e.classList.add("collapse"),t.startCollapsed||e.classList.add("show"),e}getObjectControl(t){const e=super.getObjectControl(t);if(t.isAccordion){const{childrenSlot:t}=e,s=t.id,i=t.appendChild.bind(t);t.appendChild=t=>{const e=t.querySelector(".collapse");return e&&(e.classList.remove("show"),e.setAttribute("data-bs-parent","#"+s)),i(t)}}return t.isAccordionProperties&&e.childrenSlot.classList.add("accordion","pb-3"),e}_adaptHorizontalControl(t,e,s){if(!t.label||t.label.classList.contains("col-form-label"))return;const i=e??3,n=s??6;t.container.classList.add("row"),t.label.classList.add("col-form-label","text-sm-end",`col-sm-${i}`);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),Array.from(t.container.children).filter(e=>e!==t.label).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalInputControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalTextareaControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalSelectControl(t,e,s){this._adaptHorizontalControl(t,e,s)}adaptForHorizontalCheckboxControl(t,e,s){if(t.formGroup.parentElement!==t.container)return;const i=e??3,n=s??6;t.container.classList.add("row");const a=document.createElement("div");a.classList.add(`col-sm-${n}`,`offset-sm-${i}`),Array.from(t.container.children).forEach(t=>a.appendChild(t)),t.container.appendChild(a)}adaptForHorizontalRadiosControl(t,e,s){if(t.legend.parentElement!==t.fieldset)return;const i=e??3,n=s??6;t.container.classList.add("row"),t.legend.classList.add("col-form-label","text-sm-end",`col-sm-${i}`),t.container.insertBefore(t.legend,t.fieldset);const a=document.createElement("div");a.classList.add(`col-sm-${n}`),t.fieldset.replaceWith(a),a.appendChild(t.fieldset)}adaptForHorizontalCheckboxesControl(t,e,s){this.adaptForHorizontalRadiosControl(t,e,s)}_adaptHorizontalComplexControl(t,e,s,i){if(t.container.classList.contains("jedi-horizontal"))return;const n=e??3,a=s??6,r=document.createElement("label");r.classList.add("col-form-label","text-sm-end",`col-sm-${n}`),r.textContent=i||"";const o=document.createElement("div");o.classList.add(`col-sm-${a}`),Array.from(t.container.children).forEach(t=>o.appendChild(t)),t.container.classList.add("row","jedi-horizontal"),t.container.appendChild(r),t.container.appendChild(o),t.legendText&&(t.legendText.style.display="none")}adaptForHorizontalArrayControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalObjectControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}adaptForHorizontalMultipleControl(t,e,s,i){this._adaptHorizontalComplexControl(t,e,s,i)}getAccordionItem(t){const e=t.id+"-acc-collapse",s=document.createElement("div");s.classList.add("accordion-item");const i=document.createElement("h2");i.classList.add("accordion-header");const n=document.createElement("button");if(n.type="button",n.classList.add("accordion-button","collapsed"),n.setAttribute("data-bs-toggle","collapse"),n.setAttribute("data-bs-target","#"+e),n.setAttribute("data-bs-parent","#"+t.accordionId),n.classList.add("jedi-accordion-button"),!document.getElementById("jedi-accordion-button-style")){const t=document.createElement("style");t.id="jedi-accordion-button-style",t.textContent=".jedi-accordion-button::after { display: none !important; }",document.head.appendChild(t)}const a=document.createElement("i");a.classList.add("jedi-accordion-chevron"),this.icons&&this.icons.collapse?this.addIconClass(a,this.icons.collapse):a.textContent="▾",a.classList.add("d-inline-block","me-2"),a.style.transition="transform 0.1s ease";const r=document.createElement("span");r.classList.add("me-1"),r.textContent=t.title,n.appendChild(a),n.appendChild(r);const o=document.createElement("div");o.id=e,o.classList.add("accordion-collapse","collapse"),o.setAttribute("data-bs-parent","#"+t.accordionId);const l=()=>{const t=n.classList.contains("collapsed");a.style.transform=t?"rotate(-90deg)":"rotate(0deg)"};l(),new MutationObserver(l).observe(n,{attributes:!0,attributeFilter:["class"]});const c=document.createElement("div");return c.classList.add("accordion-body","pb-3"),i.appendChild(n),o.appendChild(c),s.appendChild(i),s.appendChild(o),{container:s,header:i,toggle:n,collapse:o,body:c}}getJsonData(t){const e=super.getJsonData(t);return e.control.classList.add("mb-3"),e.input.classList.add("form-control"),e.copyBtn.classList.add("btn-secondary"),e.copyBtn.classList.add("w-100"),e.saveBtn.classList.add("btn-primary"),e.saveBtn.classList.add("w-100"),e}getFieldset(){const t=document.createElement("fieldset");return t.setAttribute("role","group"),t.classList.add("card"),t.classList.add("mb-3"),t}getLegend(t){const e=super.getLegend(t),{legend:s,infoContainer:i}=e;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"),i.classList.add("me-1"),e}styleLegendWarning(t){t.classList.add("me-1")}getLabel(t){const e=super.getLabel(t);return e.label.classList.add("mb-1"),e}getInfo(t={}){const e=super.getInfo(t);return e.container.classList.add("me-1"),e}getCard(){const t=super.getCard();return t.classList.add("card"),t.classList.add("mb-3"),t}getCardHeader(t){const e=super.getCardHeader(t);return e.classList.add("card-header"),e.classList.add("d-flex"),e.classList.add("justify-content-end"),e.classList.add("align-items-center"),e.classList.add("py-1"),e}getCardBody(){const t=super.getCardBody();return t.classList.add("card-body"),t.classList.add("pb-0"),t}getArrayFooter(){const t=super.getArrayFooter();return t.classList.add("card-footer"),t}getControlSlot(){const t=super.getControlSlot();return t.classList.add("mb-3"),t}getBtnGroup(){const t=super.getBtnGroup();return t.classList.add("btn-group"),t}getButton(t){const e=super.getButton(t);return e.classList.add("btn"),e.classList.add("btn-sm"),e}getDescription(t){const e=super.getDescription(t);return e.classList.add("text-muted"),e.classList.add("mb-1"),e}getPropertiesGroup(t={}){const e=super.getPropertiesGroup(t);return e.group.classList.add("ps-3"),e.container.classList.add("mb-4"),e}getTextareaControl(t){const e=super.getTextareaControl(t),{container:s,input:i,label:n}=e;return s.classList.add("mb-3"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableTextareaControl(t){super.adaptForTableTextareaControl(t),t.container.classList.remove("mb-3")}getInputControl(t){const e=super.getInputControl(t),{container:s,input:i,label:n}=e;return s.classList.add("mb-3"),i.classList.add("form-control"),t.titleHidden&&this.visuallyHidden(n),e}getInputRangeControl(t){const e=super.getInputRangeControl(t),{container:s,input:i,label:n}=e;return s.classList.add("mb-3"),i.classList.add("form-range"),i.classList.remove("form-control"),t.titleHidden&&this.visuallyHidden(n),e}adaptForTableInputControl(t,e){super.adaptForTableInputControl(t,e),t.container.classList.remove("mb-3")}getRadiosControl(t){const e=super.getRadiosControl(t),{container:s,fieldset:i,radios:n,labels:a,labelTexts:r,radioControls:o,description:l,messages:c}=e;return t.noSpacing||s.classList.add("mb-3"),o.forEach((e,s)=>{e.classList.add("form-check"),n[s].classList.add("form-check-input"),a[s].classList.add("form-check-label"),t.inline&&e.classList.add("form-check-inline"),i.appendChild(o[s]),e.appendChild(n[s]),e.appendChild(a[s]),a[s].appendChild(r[s])}),i.appendChild(l),i.appendChild(c),e}adaptForTableRadiosControl(t,e){super.adaptForTableRadiosControl(t,e),t.container.classList.remove("mb-3"),t.fieldset.classList.remove("card"),t.fieldset.classList.add("mb-0")}getCheckboxesControl(t){const e=super.getCheckboxesControl(t),{checkboxes:s,labels:i,checkboxControls:n}=e;return n.forEach((e,n)=>{e.classList.add("mb-3"),e.classList.add("form-check"),s[n].classList.add("form-check-input"),i[n].classList.add("form-check-label"),t.inline&&e.classList.add("form-check-inline")}),e}getCheckboxControl(t){const e=super.getCheckboxControl(t),{container:s,formGroup:i,input:n,label:a,info:r,description:o,messages:l}=e;return s.classList.add("mb-3"),i.classList.add("form-check"),n.classList.add("form-check-input"),a.classList.add("form-check-label"),t.titleHidden&&this.visuallyHidden(a),s.appendChild(i),i.appendChild(n),i.appendChild(a),f(t.info)&&a.appendChild(r.container),s.appendChild(o),s.appendChild(l),e}adaptForTableCheckboxControl(t,e){super.adaptForTableCheckboxControl(t,e),t.container.classList.remove("mb-3"),t.formGroup.classList.remove("form-check")}getSelectControl(t){const e=super.getSelectControl(t),{container:s,input:i}=e;return t.noSpacing||s.classList.add("mb-3"),i.classList.add("form-select"),e}adaptForTableSelectControl(t,e){super.adaptForTableSelectControl(t,e),t.container.classList.remove("mb-3")}getSwitcherSelect(t){const e=super.getSwitcherSelect(t);return e.input.classList.add("form-select-sm"),e}getSwitcherSelectInline(t){const e=super.getSwitcherSelectInline(t);return e.container.classList.add("mb-1"),e.input.classList.add("form-select","form-select-sm"),e}getSwitcherModal(t){const e=super.getSwitcherModal(t);return e.trigger.classList.add("badge","bg-primary"),e.dialogBody.classList.add("btn-group","btn-group-vertical","w-100"),e.optionButtons.forEach(t=>{t.classList.add("btn","btn-light")}),e}setSwitcherOptionActive(t,e){super.setSwitcherOptionActive(t,e),t.classList.toggle("btn-primary",e),t.classList.toggle("btn-light",!e)}adaptForTableMultipleControl(t,e){super.adaptForTableMultipleControl(t,e),t.container.classList.remove("mb-3")}getAlert(t){const e=super.getAlert(t);return e.classList.add("alert"),e.classList.add("alert-danger"),e}getErrorFeedback(t){const e=super.getErrorFeedback(t);return e.classList.add("text-danger"),e.classList.add("d-block"),e.classList.add("form-text"),e}getWarningFeedback(t){const e=super.getWarningFeedback(t);return e.classList.add("text-warning"),e.classList.add("d-block"),e.classList.add("form-text"),e}getRow(){const t=super.getRow();return t.classList.add("row"),t}getCol(t,e,s,i,n){const a=super.getCol(t,s,n);return a.classList.add("col-"+t),a.classList.add("col-sm"+e),a.classList.add("col-md-"+s),a.classList.add("col-lg-"+i),n&&a.classList.add("offset-md-"+n),a}getTabList(t){const e=super.getTabList(t);return e.classList.add("nav"),e.classList.add("mb-3"),"horizontal"===t.variant?e.classList.add("nav-tabs"):(e.classList.add("nav-pills"),e.classList.add("flex-column")),e}getTab(t){const e=super.getTab(t);if(e.list.classList.add("nav-item"),e.link.classList.add("nav-link"),e.link.classList.add("d-flex","align-items-center"),e.arrayActions.classList.add("flex-shrink-0","text-nowrap"),e.text.classList.add("flex-grow-1","mx-2"),t.hasErrors){const t=e.text.querySelector(".jedi-nav-warning");t&&(e.text.removeChild(t),t.classList.add("flex-shrink-0","text-nowrap"),e.link.appendChild(t))}return e.link.setAttribute("data-bs-toggle","tab"),t.active&&e.link.classList.add("active"),e}getTable(){const t=document.createElement("div"),e=document.createElement("table"),s=document.createElement("thead"),i=document.createElement("tbody");return t.classList.add("table-responsive"),e.classList.add("table"),e.classList.add("table-borderless"),e.classList.add("table-sm"),e.classList.add("align-middle"),e.appendChild(s),e.appendChild(i),t.appendChild(e),{container:t,table:e,thead:s,tbody:i}}setTabPaneAttributes(t,e,s){super.setTabPaneAttributes(t,e,s),t.classList.add("tab-pane"),t.classList.toggle("active",e)}infoAsModal(t,e,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"),c=this.getButton({content:"Close",icon:"close"}),d=e+"-modal";i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("id",d),c.setAttribute("data-bs-dismiss","modal"),c.setAttribute("always-enabled",""),t.info.setAttribute("data-bs-toggle","modal"),t.info.setAttribute("data-bs-target","#"+d),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"),c.classList.add("jedi-modal-close"),u(s.title)&&(o.innerHTML=s.title),u(s.content)&&(l.innerHTML=s.content),t.container.appendChild(i),i.appendChild(n),n.appendChild(a),a.appendChild(r),r.appendChild(o),r.appendChild(c),a.appendChild(l)}visuallyHidden(t){t.classList.add("visually-hidden")}visuallyVisible(t){t.classList.remove("visually-hidden")}},RefParser:class{constructor(t={}){this.options=Object.assign({detectRecursion:!0},t),this.refs={},this.data={},this.iterations=0,this.maxIterations=1e3,this.cycles=[],this.walker=new vs}async dereference(t){for(await this.collectRefs(t);this.iterations<this.maxIterations&&!this.refsResolved();)this.iterations++,await this.collectRefs(t);const e=Object.entries(this.refs).filter(([t,e])=>null===e).map(([t])=>t);e.length&&console.warn("Missing refs:",JSON.stringify(e)),this.options.detectRecursion&&(this.cycles=this.findRecursiveRefs(this.refs),this.markRecursiveSchemas())}refsResolved(){return Object.values(this.refs).every(t=>null!==t)}async collectRefs(t,e="#"){if("object"==typeof t&&null!==t)for(const[s,i]of Object.entries(t)){const n=e?`${e}/${s}`:`/${s}`;if(this.hasRef(t)){const e=t.$ref;if(this.isExternalRef(e)){const t=await this.load(e);this.refs[e]=t,await this.collectRefs(t,n)}else this.refs[e]=this.data[e]??null}this.data[e]=t,await this.collectRefs(i,n)}}hasRef(t){return void 0!==t.$ref&&"string"==typeof t.$ref}isExternalRef(t){return"string"==typeof t&&(t.startsWith("http")||t.startsWith("https"))}isObject(t){return null!==t&&"object"==typeof t}findRecursiveRefs(t){const e=new Set;function s(i,n,a){if(n.has(i)){const t=a.indexOf(i);if(-1!==t){const s=a.slice(t).concat(i),n=s.reduce((t,e,i)=>e<s[t]?i:t,0),r=[...s.slice(n),...s.slice(0,n)].join(" → ");e.add(r)}return}t[i]&&(n.add(i),a.push(i),function t(e){if("object"==typeof e&&null!==e){e.$ref&&s(e.$ref,n,a);for(const s in e)t(e[s])}}(t[i]),n.delete(i),a.pop())}for(const i in t)s(i,new Set,[]);return[...e]}hasRefCycles(){return this.options.detectRecursion&&this.cycles.length>0}markRecursiveSchemas(){const t=new Set;this.cycles.forEach(e=>{e.split(" → ").forEach(e=>t.add(e))});for(const e of Object.values(this.data))e&&e.$ref&&t.has(e.$ref)&&(e["x-recursive"]=!0)}expand(t){const e=JSON.parse(JSON.stringify(t));if(this.isObject(e)&&this.hasRef(e)){const t=e.$ref;return delete e.$ref,this.expand(E({},this.refs[t],e))}return e}expandRecursive(t){let e=!0;for(;e;)e=!1,this.walker.traverse(t,(t,s,i,n)=>{t.$ref&&"string"==typeof t.$ref&&i&&null!==n&&(i[n]=this.expand(t),e=!0)})}async load(t){try{const e=await fetch(t);if(!e.ok)throw new Error("Network response was not ok");return await e.json()}catch(e){throw console.error("Error loading",t,e),e}}},Create:class extends re{constructor(t){super(),this.options=Object.assign({container:null,iconLib:null,theme:null,refParser:null,editJsonData:!1,enablePropertiesToggle:!1,enableCollapseToggle:!1,autoFlat:!1,btnContents:!0,btnIcons:!0,arrayDelete:!0,arrayDeleteConfirm:!0,arrayMove:!0,arrayAdd:!0,arrayAddAfter:!1,arrayFooterAdd:!1,arrayFooterButtonsPosition:"right",arrayDeleteAll:!1,arrayFooterDeleteAll:!1,objectAdd:!0,arrayButtonsPosition:"left",startCollapsed:!1,deactivateNonRequired:!1,schema:{},showErrors:"change",switcherInput:"select",embedSwitcher:!1,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,enforceAdditionalProperties:!0,enforceMinItems:!0,enforceMaxItems:!0,enforceEnum:!0,subErrors:!1,debug:!1,audacity:!0,switcherTypeLabels:{}},t),this.rootName="#",this.pathSeparator="/",this.instances=new Map,this.root=null,this.translator=new bs({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 vs,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 ms({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),c(this.options.iconLib))switch(this.options.iconLib){case"glyphicons":this.theme.icons=ve;break;case"bootstrap-icons":this.theme.icons=ye;break;case"fontawesome3":this.theme.icons=Ce;break;case"fontawesome4":this.theme.icons=Ee;break;case"fontawesome5":this.theme.icons=Le;break;case"fontawesome6":this.theme.icons=xe}this.schema=this.options.schema,this.validator=new ae({refParser:this.refParser,assertFormat:this.options.assertFormat,translator:this.translator,constraints:this.options.constraints,subErrors:this.options.subErrors}),this.root=this.createInstance({jedison:this,schema:this.options.schema,path:this.rootName}),c(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",t=>{this.emit("change",t)}),this.on("instance-change",t=>{const e=this.watched[t.path];e&&e.forEach(t=>{t()})}),this.hiddenInput&&(this.on("change",t=>{this.hiddenInput.value=JSON.stringify(this.getValue()),"user"===t&&setTimeout(()=>{this.refreshFocus()},0)}),this._onFocus=t=>{this.lastKeyEvent=null,this.lastFocusedId=t.target.id},this._onKeydown=t=>{this.lastKeyEvent=t},document.addEventListener("focus",this._onFocus,!0),document.addEventListener("keydown",this._onKeydown))}updateInstancesWatchedData(){Object.values(this.watched).forEach(t=>{t.forEach(t=>{t()})})}refreshFocus(){if(!this.lastFocusedId)return;const t=document.getElementById(this.lastFocusedId);t&&(t.focus(),this.lastKeyEvent&&"Tab"===this.lastKeyEvent.key&&this.simulateTab(t,this.lastKeyEvent.shiftKey))}simulateTab(t,e){const s=document.querySelectorAll('input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'),i=Array.prototype.indexOf.call(s,t);-1!==i&&(e?i>0&&s[i-1].focus():i+1<s.length&&s[i+1].focus())}appendHiddenInput(){const t=this.theme.getInputControl({type:"hidden",id:"jedi-hidden-input"});this.hiddenInput=t.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(t=>{this.hiddenInput.setAttribute(t,this.options.hiddenInputAttributes[t])}),this.container.appendChild(this.hiddenInput),this.hiddenInput.value=JSON.stringify(this.getValue())}register(t){this.instances.set(t.path,t)}unregister(t){this.instances.delete(t.path)}createInstance(e){if(this.refParser&&(e.schema=this.refParser.expand(e.schema),this.walker.traverse(e.schema,t=>{t.allOf&&Array.isArray(t.allOf)&&t.allOf.forEach((e,s)=>{t.allOf[s]=this.refParser.expand(e)}),t.oneOf&&Array.isArray(t.oneOf)&&t.oneOf.forEach((e,s)=>{t.oneOf[s]=this.refParser.expand(e)}),t.oneOf&&Array.isArray(t.oneOf)&&t.oneOf.forEach((e,s)=>{t.oneOf[s]=this.refParser.expand(e)})})),this.isEditor&&(this.walker.traverse(e.schema,e=>{if(e.allOf&&Array.isArray(e.allOf)){if(c(e["x-allOf-merged"]))return;const s=lt(e,"mergeAllOf")??this.options.mergeAllOf,i=[];let n=t(e);e.allOf.forEach(t=>{t.if&&t.then?i.push({if:t.if,then:t.then,else:t.else||null}):n=s?L({},n,t):n}),n["x-allOf-merged"]=!0;let a=null;for(let t=i.length-1;t>=0;t--)if(null===a)a=i[t];else{const e=a;a={if:i[t].if,then:L({},i[t].then||{},e),else:L({},i[t].else||{},e)}}return a&&Object.assign(n,a),n}}),this.walker.traverse(e.schema,e=>{if(e.oneOf&&Array.isArray(e.oneOf)){const s=t(e);delete s.oneOf,e.oneOf=e.oneOf.map(t=>L({},s,t))}}),this.walker.traverse(e.schema,e=>{if(e.anyOf&&Array.isArray(e.anyOf)){const s=t(e);delete s.anyOf,e.anyOf=e.anyOf.map(t=>L({},s,t))}}),this.walker.traverse(e.schema,e=>{if(e.not&&f(e.not)){const s=t(e);delete s.not,e.not=L({},s,e.not)}})),this.isEditor){const t=bt(e.schema);if(g(t)){const s=lt(e.schema,"inferType");if(c(s)){const i=j(e.path,s),n=this.getInstance(i),a=n?n.getValue():void 0;c(a)&&t.includes(a)&&(e.schema={...e.schema,type:a})}}}const s=vt(e.schema),i=H(e.schema),n=G(e.schema),a=bt(e.schema);return!this.debug||!d(a)||c(s)||c(i)||c(n)||console.warn("TYPE NOT SET",e.schema,e.path),c(i)||c(s)||"any"===a||g(a)||d(a)?new he(e):c(n)?new de(e):"object"===a?new ue(e):"array"===a?new me(e):"string"===a?new ge(e):"number"===a||"integer"===a?new fe(e):"boolean"===a?new pe(e):"null"===a?new be(e):void 0}getValue(){return this.root.getValue()}setValue(){this.root.setValue(...arguments),this.updateInstancesWatchedData()}getInstance(t){return this.instances.get(t)}getOption(t){const e=k[s=t]??s;var s;return e!==t&&console.warn(`Jedison: option "${t}" is deprecated. Use "${e}" instead.`),this.options[e]}navigateTo(t){this.isEditor&&this.root.ui.navigateTo(t)}disable(){this.root.ui.disable()}enable(){this.root.ui.enable()}getErrors(t=["error"]){let e=[];for(const s of this.instances.values())e=[...e,...s.getErrors()];return e.filter(e=>t.includes(e.type.toLowerCase()))}export(){const t=[];for(const e of this.instances.values())t.push({path:e.path??"-",type:e.schema.type??"-",title:e.ui.getTitle()??"-",value:e.getValue()??"-"});return t}showValidationErrors(t=null){if(!this.options.container)return!1;const e=t??this.getErrors();for(const s of this.instances.values())s.ui.showValidationErrors(e,!0)}watch(t,e){this.watched[t]||(this.watched[t]=[]),this.watched[t].push(e)}unwatch(t,e){this.watched[t]&&(this.watched[t]=this.watched[t].filter(t=>t!==e),0===this.watched[t].length&&delete this.watched[t])}destroy(){this._onFocus&&(document.removeEventListener("focus",this._onFocus,!0),document.removeEventListener("keydown",this._onKeydown)),this.root.destroy(),this.options.container&&(this.container.innerHTML=""),Object.keys(this).forEach(t=>{delete this[t]})}},SchemaGenerator:class{static inferType(t){return Array.isArray(t)?"array":null===t?"null":typeof t}static generate(t){if("object"!=typeof t||null===t)return{type:this.inferType(t)};if(Array.isArray(t)){const e=t.map(t=>this.generate(t));return{type:"array",items:e.length?e[0]:{}}}const e={};for(const s in t)e[s]=this.generate(t[s]);return{type:"object",properties:e}}}};module.exports=Cs;
2
2
  //# sourceMappingURL=jedison.cjs.map