jupiter-dynamic-forms 1.9.3 → 1.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,12 +3,12 @@
3
3
  * @license
4
4
  * Copyright 2017 Google LLC
5
5
  * SPDX-License-Identifier: BSD-3-Clause
6
- */let n=class{constructor(e,t,i){if(this._$cssResult$=!0,i!==r)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(o&&void 0===e){const i=void 0!==t&&1===t.length;i&&(e=s.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),i&&s.set(t,e))}return e}toString(){return this.cssText}};const a=o?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const i of e.cssRules)t+=i.cssText;return(e=>new n("string"==typeof e?e:e+"",void 0,r))(t)})(e):e,{is:l,defineProperty:d,getOwnPropertyDescriptor:c,getOwnPropertyNames:p,getOwnPropertySymbols:h,getPrototypeOf:m}=Object,u=globalThis,b=u.trustedTypes,f=b?b.emptyScript:"",y=u.reactiveElementPolyfillSupport,g=(e,t)=>e,v={toAttribute(e,t){switch(t){case Boolean:e=e?f:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let i=e;switch(t){case Boolean:i=null!==e;break;case Number:i=null===e?null:Number(e);break;case Object:case Array:try{i=JSON.parse(e)}catch(o){i=null}}return i}},x=(e,t)=>!l(e,t),_={attribute:!0,type:String,converter:v,reflect:!1,useDefault:!1,hasChanged:x};
6
+ */let n=class{constructor(e,t,i){if(this._$cssResult$=!0,i!==r)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(o&&void 0===e){const i=void 0!==t&&1===t.length;i&&(e=s.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),i&&s.set(t,e))}return e}toString(){return this.cssText}};const a=o?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const i of e.cssRules)t+=i.cssText;return(e=>new n("string"==typeof e?e:e+"",void 0,r))(t)})(e):e,{is:l,defineProperty:d,getOwnPropertyDescriptor:c,getOwnPropertyNames:p,getOwnPropertySymbols:h,getPrototypeOf:m}=Object,u=globalThis,b=u.trustedTypes,f=b?b.emptyScript:"",g=u.reactiveElementPolyfillSupport,y=(e,t)=>e,v={toAttribute(e,t){switch(t){case Boolean:e=e?f:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let i=e;switch(t){case Boolean:i=null!==e;break;case Number:i=null===e?null:Number(e);break;case Object:case Array:try{i=JSON.parse(e)}catch(o){i=null}}return i}},x=(e,t)=>!l(e,t),_={attribute:!0,type:String,converter:v,reflect:!1,useDefault:!1,hasChanged:x};
7
7
  /**
8
8
  * @license
9
9
  * Copyright 2017 Google LLC
10
10
  * SPDX-License-Identifier: BSD-3-Clause
11
- */Symbol.metadata??(Symbol.metadata=Symbol("metadata")),u.litPropertyMetadata??(u.litPropertyMetadata=new WeakMap);class $ extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??(this.l=[])).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=_){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const i=Symbol(),o=this.getPropertyDescriptor(e,i,t);void 0!==o&&d(this.prototype,e,o)}}static getPropertyDescriptor(e,t,i){const{get:o,set:r}=c(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:o,set(t){const s=null==o?void 0:o.call(this);null==r||r.call(this,t),this.requestUpdate(e,s,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??_}static _$Ei(){if(this.hasOwnProperty(g("elementProperties")))return;const e=m(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(g("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(g("properties"))){const e=this.properties,t=[...p(e),...h(e)];for(const i of t)this.createProperty(i,e[i])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,i]of t)this.elementProperties.set(e,i)}this._$Eh=new Map;for(const[t,i]of this.elementProperties){const e=this._$Eu(t,i);void 0!==e&&this._$Eh.set(e,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const i=new Set(e.flat(1/0).reverse());for(const e of i)t.unshift(a(e))}else void 0!==e&&t.push(a(e));return t}static _$Eu(e,t){const i=t.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var e;this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),null==(e=this.constructor.l)||e.forEach(e=>e(this))}addController(e){var t;(this._$EO??(this._$EO=new Set)).add(e),void 0!==this.renderRoot&&this.isConnected&&(null==(t=e.hostConnected)||t.call(e))}removeController(e){var t;null==(t=this._$EO)||t.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const i of t.keys())this.hasOwnProperty(i)&&(e.set(i,this[i]),delete this[i]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(o)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const o of t){const t=document.createElement("style"),r=i.litNonce;void 0!==r&&t.setAttribute("nonce",r),t.textContent=o.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){var e;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null==(e=this._$EO)||e.forEach(e=>{var t;return null==(t=e.hostConnected)?void 0:t.call(e)})}enableUpdating(e){}disconnectedCallback(){var e;null==(e=this._$EO)||e.forEach(e=>{var t;return null==(t=e.hostDisconnected)?void 0:t.call(e)})}attributeChangedCallback(e,t,i){this._$AK(e,i)}_$ET(e,t){var i;const o=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,o);if(void 0!==r&&!0===o.reflect){const s=(void 0!==(null==(i=o.converter)?void 0:i.toAttribute)?o.converter:v).toAttribute(t,o.type);this._$Em=e,null==s?this.removeAttribute(r):this.setAttribute(r,s),this._$Em=null}}_$AK(e,t){var i,o;const r=this.constructor,s=r._$Eh.get(e);if(void 0!==s&&this._$Em!==s){const e=r.getPropertyOptions(s),n="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null==(i=e.converter)?void 0:i.fromAttribute)?e.converter:v;this._$Em=s;const a=n.fromAttribute(t,e.type);this[s]=a??(null==(o=this._$Ej)?void 0:o.get(s))??a,this._$Em=null}}requestUpdate(e,t,i){var o;if(void 0!==e){const r=this.constructor,s=this[e];if(i??(i=r.getPropertyOptions(e)),!((i.hasChanged??x)(s,t)||i.useDefault&&i.reflect&&s===(null==(o=this._$Ej)?void 0:o.get(e))&&!this.hasAttribute(r._$Eu(e,i))))return;this.C(e,t,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:i,reflect:o,wrapped:r},s){i&&!(this._$Ej??(this._$Ej=new Map)).has(e)&&(this._$Ej.set(e,s??t??this[e]),!0!==r||void 0!==s)||(this._$AL.has(e)||(this.hasUpdated||i||(t=void 0),this._$AL.set(e,t)),!0===o&&this._$Em!==e&&(this._$Eq??(this._$Eq=new Set)).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,i]of e){const{wrapped:e}=i,o=this[t];!0!==e||this._$AL.has(t)||void 0===o||this.C(t,void 0,i,o)}}let t=!1;const i=this._$AL;try{t=this.shouldUpdate(i),t?(this.willUpdate(i),null==(e=this._$EO)||e.forEach(e=>{var t;return null==(t=e.hostUpdate)?void 0:t.call(e)}),this.update(i)):this._$EM()}catch(o){throw t=!1,this._$EM(),o}t&&this._$AE(i)}willUpdate(e){}_$AE(e){var t;null==(t=this._$EO)||t.forEach(e=>{var t;return null==(t=e.hostUpdated)?void 0:t.call(e)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&(this._$Eq=this._$Eq.forEach(e=>this._$ET(e,this[e]))),this._$EM()}updated(e){}firstUpdated(e){}}$.elementStyles=[],$.shadowRootOptions={mode:"open"},$[g("elementProperties")]=new Map,$[g("finalized")]=new Map,null==y||y({ReactiveElement:$}),(u.reactiveElementVersions??(u.reactiveElementVersions=[])).push("2.1.1");
11
+ */Symbol.metadata??(Symbol.metadata=Symbol("metadata")),u.litPropertyMetadata??(u.litPropertyMetadata=new WeakMap);class $ extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??(this.l=[])).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=_){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const i=Symbol(),o=this.getPropertyDescriptor(e,i,t);void 0!==o&&d(this.prototype,e,o)}}static getPropertyDescriptor(e,t,i){const{get:o,set:r}=c(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:o,set(t){const s=null==o?void 0:o.call(this);null==r||r.call(this,t),this.requestUpdate(e,s,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??_}static _$Ei(){if(this.hasOwnProperty(y("elementProperties")))return;const e=m(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(y("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(y("properties"))){const e=this.properties,t=[...p(e),...h(e)];for(const i of t)this.createProperty(i,e[i])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,i]of t)this.elementProperties.set(e,i)}this._$Eh=new Map;for(const[t,i]of this.elementProperties){const e=this._$Eu(t,i);void 0!==e&&this._$Eh.set(e,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const i=new Set(e.flat(1/0).reverse());for(const e of i)t.unshift(a(e))}else void 0!==e&&t.push(a(e));return t}static _$Eu(e,t){const i=t.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var e;this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),null==(e=this.constructor.l)||e.forEach(e=>e(this))}addController(e){var t;(this._$EO??(this._$EO=new Set)).add(e),void 0!==this.renderRoot&&this.isConnected&&(null==(t=e.hostConnected)||t.call(e))}removeController(e){var t;null==(t=this._$EO)||t.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const i of t.keys())this.hasOwnProperty(i)&&(e.set(i,this[i]),delete this[i]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(o)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const o of t){const t=document.createElement("style"),r=i.litNonce;void 0!==r&&t.setAttribute("nonce",r),t.textContent=o.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){var e;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null==(e=this._$EO)||e.forEach(e=>{var t;return null==(t=e.hostConnected)?void 0:t.call(e)})}enableUpdating(e){}disconnectedCallback(){var e;null==(e=this._$EO)||e.forEach(e=>{var t;return null==(t=e.hostDisconnected)?void 0:t.call(e)})}attributeChangedCallback(e,t,i){this._$AK(e,i)}_$ET(e,t){var i;const o=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,o);if(void 0!==r&&!0===o.reflect){const s=(void 0!==(null==(i=o.converter)?void 0:i.toAttribute)?o.converter:v).toAttribute(t,o.type);this._$Em=e,null==s?this.removeAttribute(r):this.setAttribute(r,s),this._$Em=null}}_$AK(e,t){var i,o;const r=this.constructor,s=r._$Eh.get(e);if(void 0!==s&&this._$Em!==s){const e=r.getPropertyOptions(s),n="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null==(i=e.converter)?void 0:i.fromAttribute)?e.converter:v;this._$Em=s;const a=n.fromAttribute(t,e.type);this[s]=a??(null==(o=this._$Ej)?void 0:o.get(s))??a,this._$Em=null}}requestUpdate(e,t,i){var o;if(void 0!==e){const r=this.constructor,s=this[e];if(i??(i=r.getPropertyOptions(e)),!((i.hasChanged??x)(s,t)||i.useDefault&&i.reflect&&s===(null==(o=this._$Ej)?void 0:o.get(e))&&!this.hasAttribute(r._$Eu(e,i))))return;this.C(e,t,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:i,reflect:o,wrapped:r},s){i&&!(this._$Ej??(this._$Ej=new Map)).has(e)&&(this._$Ej.set(e,s??t??this[e]),!0!==r||void 0!==s)||(this._$AL.has(e)||(this.hasUpdated||i||(t=void 0),this._$AL.set(e,t)),!0===o&&this._$Em!==e&&(this._$Eq??(this._$Eq=new Set)).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,i]of e){const{wrapped:e}=i,o=this[t];!0!==e||this._$AL.has(t)||void 0===o||this.C(t,void 0,i,o)}}let t=!1;const i=this._$AL;try{t=this.shouldUpdate(i),t?(this.willUpdate(i),null==(e=this._$EO)||e.forEach(e=>{var t;return null==(t=e.hostUpdate)?void 0:t.call(e)}),this.update(i)):this._$EM()}catch(o){throw t=!1,this._$EM(),o}t&&this._$AE(i)}willUpdate(e){}_$AE(e){var t;null==(t=this._$EO)||t.forEach(e=>{var t;return null==(t=e.hostUpdated)?void 0:t.call(e)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&(this._$Eq=this._$Eq.forEach(e=>this._$ET(e,this[e]))),this._$EM()}updated(e){}firstUpdated(e){}}$.elementStyles=[],$.shadowRootOptions={mode:"open"},$[y("elementProperties")]=new Map,$[y("finalized")]=new Map,null==g||g({ReactiveElement:$}),(u.reactiveElementVersions??(u.reactiveElementVersions=[])).push("2.1.1");
12
12
  /**
13
13
  * @license
14
14
  * Copyright 2017 Google LLC
@@ -19,7 +19,7 @@ const D={attribute:!0,type:String,converter:v,reflect:!1,hasChanged:x},I=(e=D,t,
19
19
  * @license
20
20
  * Copyright 2017 Google LLC
21
21
  * SPDX-License-Identifier: BSD-3-Clause
22
- */function S(e){return w({...e,state:!0,attribute:!1})}class C{static validateField(e,t,i,o,r,s=[]){const n=[];for(const a of s){const s=this.validateRule(e,t,i,o,r,a);s&&n.push(s)}return n}static validateRule(e,t,i,o,r,s){const n=null==o||""===o;switch(s.type){case"required":if(n)return this.createError(e,t,i,s);break;case"min":if(!n&&"number"==typeof o&&o<s.value)return this.createError(e,t,i,s);break;case"max":if(!n&&"number"==typeof o&&o>s.value)return this.createError(e,t,i,s);break;case"minLength":if(!n&&"string"==typeof o&&o.length<s.value)return this.createError(e,t,i,s);break;case"maxLength":if(!n&&"string"==typeof o&&o.length>s.value)return this.createError(e,t,i,s);break;case"pattern":if(!n&&"string"==typeof o){if(!new RegExp(s.value).test(o))return this.createError(e,t,i,s)}break;case"email":if(!n&&"string"==typeof o){if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o))return this.createError(e,t,i,s)}break;case"url":if(!n&&"string"==typeof o)try{new URL(o)}catch{return this.createError(e,t,i,s)}break;case"custom":break;default:console.warn(`Unknown validation rule type: ${s.type}`)}return null}static createError(e,t,i,o){return{fieldId:e,conceptId:t,columnId:i,message:o.message,severity:o.severity||"error",rule:o}}static validateDataType(e,t){if(null==e||""===e)return{valid:!0,convertedValue:e};switch(t){case"number":case"decimal":case"currency":case"percentage":{const t=Number(e);return isNaN(t)?{valid:!1,error:"Invalid number format"}:{valid:!0,convertedValue:t}}case"date":{const t=new Date(e);return isNaN(t.getTime())?{valid:!1,error:"Invalid date format"}:{valid:!0,convertedValue:t.toISOString().split("T")[0]}}case"datetime":{const t=new Date(e);return isNaN(t.getTime())?{valid:!1,error:"Invalid datetime format"}:{valid:!0,convertedValue:t.toISOString()}}case"boolean":if("boolean"==typeof e)return{valid:!0,convertedValue:e};if("string"==typeof e){const t=e.toLowerCase();if("true"===t||"1"===t)return{valid:!0,convertedValue:!0};if("false"===t||"0"===t)return{valid:!0,convertedValue:!1}}return{valid:!1,error:"Invalid boolean format"};case"text":case"textarea":case"email":case"url":case"tel":return{valid:!0,convertedValue:String(e)};default:return{valid:!0,convertedValue:e}}}static formatValue(e,t,i="en-US"){if(null==e)return"";switch(t){case"number":return new Intl.NumberFormat(i).format(Number(e));case"decimal":return new Intl.NumberFormat(i,{minimumFractionDigits:2,maximumFractionDigits:2}).format(Number(e));case"currency":return new Intl.NumberFormat(i,{style:"currency",currency:"USD"}).format(Number(e));case"percentage":return new Intl.NumberFormat(i,{style:"percent",minimumFractionDigits:2}).format(Number(e)/100);case"date":return new Date(e).toLocaleDateString(i);case"datetime":return new Date(e).toLocaleString(i);default:return String(e)}}}class F{static createUniqueConceptId(e,t){let i=e.id;if(e.preferredLabel&&""!==e.preferredLabel.trim()){const t=e.preferredLabel.match(/\/([^\/]+)$/),o=t?t[1]:e.preferredLabel.replace(/[^a-zA-Z0-9]/g,"_");i=`${e.id}_${o}`}if(t){return`${i}__${this.createSectionHash(t)}`}return i}static createSectionHash(e){let t=0;for(let i=0;i<e.length;i++){t=(t<<5)-t+e.charCodeAt(i),t&=t}return Math.abs(t).toString(36).substr(0,6)}static buildFormSchema(e,t,i,o="en"){var r;if(!e.presentation||0===e.presentation.length)throw new Error("XBRL presentation data is required");const s=e.presentation[0],n=null==(r=e.hypercubes)?void 0:r[0],a=[];return[...s.roles].sort((e,t)=>e.role.localeCompare(t.role)).forEach(e=>{const r=this.buildSectionFromRole(e,t,i,n,o);this.assignFieldColumnIds(r),a.push(r)}),{formId:`xbrl-form-${Date.now()}`,title:`XBRL Form - ${this.extractEntityName(s.entrypoint)}`,description:"Dynamic form generated from XBRL taxonomy data",version:"1.0.0",sections:a}}static buildSectionFromRole(e,t,i,o,r="en"){var s;const n=this.extractRoleTitle(e.role),a=this.getAllNonAbstractConcepts(e),l=new Set(a.filter(e=>e.periodType).map(e=>e.periodType)),d=null==o?void 0:o.roles.find(t=>t.roleId===e.id),c=this.generateDefaultColumnsForRole(e,t||"2025-01-01",i||"2025-12-31",d,a,l),p={periodTypes:l,availableColumnIds:c.map(e=>e.id)},h=[];return(null==(s=e.presentationLinkbase)?void 0:s.concepts)&&e.presentationLinkbase.concepts.forEach(o=>{const s=this.buildConceptTree(o,0,t,i,p,e.id,r);s&&h.push(s)}),{id:e.id,title:n,description:e.description||`Section for ${n}`,concepts:h,columns:c,expanded:!1,metadata:{roleURI:e.roleURI,originalRole:e.role}}}static buildConceptTree(e,t,i,o,r,s,n="en"){const a=this.getPreferredLabel(e.labels,n),l=[];if(!e.elementAbstract){let t=[];(null==r?void 0:r.availableColumnIds)&&r.availableColumnIds.length>0?(t=r.availableColumnIds.filter(t=>"instant"===e.periodType?t.includes("instant")||"instant"===t:"duration"!==e.periodType||(t.includes("duration")||"duration"===t)),0===t.length&&(t=r.availableColumnIds)):t=(null==r?void 0:r.periodTypes)&&0!==r.periodTypes.size?1===r.periodTypes.size&&r.periodTypes.has("instant")?["instant"]:1===r.periodTypes.size&&r.periodTypes.has("duration")?["duration"]:"instant"===e.periodType?["instant"]:"duration"===e.periodType?["duration"]:["duration","instant"]:["default"],t.forEach(t=>{const r=this.createFieldFromConcept(e,i,o,t,n);r&&l.push(r)})}const d=[];e.children&&e.children.length>0&&e.children.forEach(e=>{const a=this.buildConceptTree(e,t+1,i,o,r,s,n);a&&d.push(a)});return l.length>0||d.length>0?{id:this.createUniqueConceptId(e,s),originalConceptId:e.id,name:e.conceptName,label:a,description:`${e.conceptName} (${e.type})`,level:t,children:d,fields:l,collapsed:t>0,abstract:e.elementAbstract,periodType:e.periodType}:null}static createFieldFromConcept(e,t,i,o,r="en"){const s=this.mapXBRLTypeToFieldType(e.type),n=this.getPreferredLabel(e.labels,r);let a;a=o||("instant"===e.periodType?"instant":"duration"===e.periodType?"duration":"default");const l={id:`${e.id}_${a}_field`,conceptId:e.id,columnId:a,type:s,label:n,placeholder:`Enter ${n.toLowerCase()}`,required:!1,disabled:e.elementAbstract,defaultValue:null};return"duration"!==e.periodType&&"instant"!==e.periodType||(l.periodStartDate=t||"2025-01-01",l.periodEndDate=i||"2025-12-31"),l}static mapXBRLTypeToFieldType(e){return{"xbrli:stringItemType":"text","xbrli:monetaryItemType":"currency","xbrli:integerItemType":"number","xbrli:decimalItemType":"decimal","xbrli:percentItemType":"percentage","xbrli:dateItemType":"date","xbrli:booleanItemType":"boolean","dtr-types:domainItemType":"select","bw2-titel9:chamberOfCommerceRegistrationNumberItemType":"text"}[e]||"text"}static getPreferredLabel(e,t="en"){if(!e||0===e.length)return"Unnamed Concept";const i=e.filter(e=>e.lang===t),o=i.length>0?i:e,r=o.find(e=>e.preferredLabel);if(r)return r.label;const s=o.find(e=>"http://www.xbrl.org/2003/role/label"===e.role);if(s)return s.label;const n=o.find(e=>"http://www.xbrl.org/2003/role/terseLabel"===e.role);return n?n.label:o.length>0?o[0].label:e[0].label}static assignFieldColumnIds(e){if(!e.columns||0===e.columns.length)return;const t=e.columns.map(e=>e.id);e.concepts.forEach(e=>{this.assignColumnIdsToConceptFields(e,t)})}static assignColumnIdsToConceptFields(e,t){e.fields=e.fields.filter(e=>t.includes(e.columnId)),e.children&&e.children.forEach(e=>{this.assignColumnIdsToConceptFields(e,t)})}static countFieldsInTree(e){let t=e.fields.length;return e.children&&e.children.forEach(e=>{t+=this.countFieldsInTree(e)}),t}static getAllNonAbstractConcepts(e){var t;const i=[];return(null==(t=e.presentationLinkbase)?void 0:t.concepts)&&e.presentationLinkbase.concepts.forEach(e=>{this.collectNonAbstractConcepts(e,i)}),i}static collectNonAbstractConcepts(e,t){e.elementAbstract||t.push(e),e.children&&e.children.length>0&&e.children.forEach(e=>{this.collectNonAbstractConcepts(e,t)})}static generateDefaultColumnsForRole(e,t,i,o,r,s){var n,a;const l=r||this.getAllNonAbstractConcepts(e),d=s||new Set(l.filter(e=>e.periodType).map(e=>e.periodType));if(0===l.length)return[{id:"default",title:"Value",description:"Default value column",type:"base",order:0,removable:!1}];let c=[];if(1===(null==(n=null==o?void 0:o.items)?void 0:n.length)){const e=o.items[0];1===e.dimensions.length?c=this.generateSingleDimensionColumns(e.dimensions[0],t,i,d):e.dimensions.length>1&&(c=this.generateMultiDimensionColumns(e.dimensions,t,i,d))}else(null==(a=null==o?void 0:o.items)?void 0:a.length)&&o.items.length;const p=[];return c.length>0?p.push(...c):0===d.size?p.push({id:"default",title:"Value",description:"Default value column",type:"base",order:0,removable:!1}):1===d.size&&d.has("instant")?p.push({id:"instant",title:"Current",description:`Values as of ${t}`,type:"base",order:0,removable:!1}):1===d.size&&d.has("duration")?p.push({id:"duration",title:"Current Period",description:`Period: ${t} to ${i}`,type:"base",order:0,removable:!1}):(p.push({id:"duration",title:"Current Period",description:`Period: ${t} to ${i}`,type:"base",order:0,removable:!1}),p.push({id:"instant",title:"Current",description:`Values as of ${t}`,type:"base",order:1,removable:!1})),p}static generateSingleDimensionColumns(e,t,i,o){var r,s,n;if(e.typedMember&&(!e.members||0===e.members.length)){const s=(null==(r=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:r.label)||e.conceptName,n={axisId:e.id,axisLabel:s,typedMemberId:e.typedMember.id,dimensionKey:`${s} | [Typed Input]`,dimensionIdKey:`${e.id}|[typed]`},a=[];return 0===o.size?a.push({id:"typed-default",title:s,description:"Typed dimension input column",type:"dimension",dimensionData:{dimensionId:"typed-default",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:0,removable:!1}):1===o.size&&o.has("instant")?a.push({id:"typed-instant",title:`${s} [Typed Input Available]`,description:`Typed values as of ${t}`,type:"dimension",dimensionData:{dimensionId:"typed-instant",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:0,removable:!1}):1===o.size&&o.has("duration")?a.push({id:"typed-duration",title:`${s} [Typed Input Available]`,description:`Typed values for period ${t} to ${i}`,type:"dimension",dimensionData:{dimensionId:"typed-duration",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:0,removable:!1}):(a.push({id:"typed-duration",title:`${s} [Typed Input Available]`,description:`Typed values for period ${t} to ${i}`,type:"dimension",dimensionData:{dimensionId:"typed-duration",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:0,removable:!1}),a.push({id:"typed-instant",title:`${s} [Typed Input Available]`,description:`Typed values as of ${t}`,type:"dimension",dimensionData:{dimensionId:"typed-instant",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:1,removable:!1})),a}if(!e.members||!Array.isArray(e.members))return[];if(0===e.members.length)return[];const a=(null==(s=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:s.label)||e.conceptName,l=e.members[0],d=(null==(n=l.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:n.label)||l.conceptName,c={axisId:e.id,axisLabel:a,memberId:l.id,memberLabel:d,dimensionKey:`${a} | ${d}`,dimensionIdKey:`${e.id} | ${l.id}`},p=[];return 0===o.size?p.push({id:"default",title:c.memberLabel,description:"Default value column",type:"dimension",dimensionData:{dimensionId:"default",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:0,removable:!1}):1===o.size&&o.has("instant")?p.push({id:"instant",title:`${c.memberLabel}`,description:`Values as of ${t}`,type:"dimension",dimensionData:{dimensionId:"instant",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:0,removable:!1}):1===o.size&&o.has("duration")?p.push({id:"duration",title:`${c.memberLabel}`,description:`Period: ${t} to ${i}`,type:"dimension",dimensionData:{dimensionId:"duration",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:0,removable:!1}):(p.push({id:"duration",title:`${c.memberLabel}`,description:`Period: ${t} to ${i}`,type:"dimension",dimensionData:{dimensionId:"duration",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:0,removable:!1}),p.push({id:"instant",title:`${c.memberLabel}`,description:`Values as of ${t}`,type:"dimension",dimensionData:{dimensionId:"instant",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:1,removable:!1})),p}static generateMultiDimensionColumns(e,t,i,o){e.some(e=>e.typedMember);const r=e.filter(e=>!!e.typedMember||!!(e.members&&Array.isArray(e.members)&&e.members.length>0));if(0===r.length)return[];const s=r.map(e=>{var t;const i=(null==(t=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:t.label)||e.conceptName;if(e.typedMember)return{id:e.id,axisLabel:i,isTyped:!0,typedMemberId:e.typedMember.id,members:[{id:"[typed]",label:`${i} [Typed Input Available]`}]};const o=this.getAllDimensionMembers(e.members);return{id:e.id,axisLabel:i,isTyped:!1,members:o.map(e=>{var t;return{id:e.id,label:(null==(t=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:t.label)||e.conceptName}})}}),n=this.generateDimensionCombinations(s),a=[];return n.forEach((e,r)=>{const s=e.map(e=>e.memberLabel).join(" | "),n=e.filter(e=>e.isTyped),l=e.filter(e=>!e.isTyped),d={dimensionId:`multi_${r}`,memberValue:s,memberLabel:s,combinations:l.map(e=>({axisId:e.axisId,axisLabel:e.axisLabel,memberId:e.memberId,memberLabel:e.memberLabel})),typedMembers:n.map(e=>({axisId:e.axisId,axisLabel:e.axisLabel,typedMemberId:e.typedMemberId,memberLabel:e.memberLabel})),hasTypedMembers:n.length>0,memberKey:s,dimensionIdKey:[...l.map(e=>`${e.axisId}|${e.memberId}`),...n.map(e=>`${e.axisId}|[typed]`)].join("::")};0===o.size||1===o.size&&o.has("duration")?a.push({id:`duration_${r}`,title:`${s}`,description:`Period: ${t} to ${i}`,type:"dimension",dimensionData:{...d,dimensionId:`duration_${r}`},order:2*r,removable:!1}):1===o.size&&o.has("instant")?a.push({id:`instant_${r}`,title:`${s}`,description:`Values as of ${t}`,type:"dimension",dimensionData:{...d,dimensionId:`instant_${r}`},order:2*r,removable:!1}):(a.push({id:`duration_${r}`,title:`${s}`,description:`Period: ${t} to ${i}`,type:"dimension",dimensionData:{...d,dimensionId:`duration_${r}`},order:2*r,removable:!1}),a.push({id:`instant_${r}`,title:`${s}`,description:`Values as of ${t}`,type:"dimension",dimensionData:{...d,dimensionId:`instant_${r}`},order:2*r+1,removable:!1}))}),a}static getAllDimensionMembers(e){if(!e||!Array.isArray(e))return[];const t=[];return e.forEach(e=>{t.push(e),e.children&&e.children.length>0&&t.push(...this.getAllDimensionMembers(e.children))}),t}static generateDimensionCombinations(e){if(0===e.length)return[];if(1===e.length)return e[0].members.map(t=>[{axisId:e[0].id,axisLabel:e[0].axisLabel,memberId:t.id,memberLabel:t.label,isTyped:e[0].isTyped||!1,typedMemberId:e[0].typedMemberId}]);const[t,...i]=e,o=this.generateDimensionCombinations(i),r=[];return t.members.forEach(e=>{0===o.length?r.push([{axisId:t.id,axisLabel:t.axisLabel,memberId:e.id,memberLabel:e.label,isTyped:t.isTyped||!1,typedMemberId:t.typedMemberId}]):o.forEach(i=>{r.push([{axisId:t.id,axisLabel:t.axisLabel,memberId:e.id,memberLabel:e.label,isTyped:t.isTyped||!1,typedMemberId:t.typedMemberId},...i])})}),r}static formatDateForDisplay(e){try{return new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}catch{return e}}static extractEntityName(e){try{const t=new URL(e).pathname.split("/");return t[t.length-1].replace(".xsd","").replace(/[^a-zA-Z0-9]/g," ").trim()||"Entity"}catch{return"Entity"}}static extractRoleTitle(e){const t=e.match(/^\[[\d]+\]\s*(.+)$/);return t?t[1].trim():e}static extractRoleOrder(e){const t=e.match(/^\[([\d]+)\]/);return t?parseInt(t[1],10):0}static buildColumnsFromHypercubes(){return[{id:"default",label:"Values",type:"data"}]}}var T=Object.defineProperty,E=Object.getOwnPropertyDescriptor,k=(e,t,i,o)=>{for(var r,s=o>1?void 0:o?E(t,i):t,n=e.length-1;n>=0;n--)(r=e[n])&&(s=(o?r(t,i,s):r(s))||s);return o&&s&&T(t,i,s),s};exports.JupiterFormField=class extends e.LitElement{constructor(){super(...arguments),this.value=null,this.disabled=!1,this.locale="en-US",this.hideLabel=!1,this._errors=[],this._touched=!1}willUpdate(e){(e.has("value")||e.has("field"))&&this._validateField()}_validateField(){var e;(null==(e=this.field)?void 0:e.validation)&&(this._errors=C.validateField(this.field.id,this.conceptId,this.columnId,this.value,this.field.type,this.field.validation))}_handleInput(e){const t=e.target;let i=t.value;"number"===this.field.type||"decimal"===this.field.type?i=""===i?null:Number(i):"boolean"===this.field.type&&(i=t.checked),this.value=i,this._touched=!0,this.dispatchEvent(new CustomEvent("field-change",{detail:{fieldId:this.field.id,conceptId:this.conceptId,columnId:this.columnId,value:i,oldValue:this.value},bubbles:!0}))}_handleFocus(){this.dispatchEvent(new CustomEvent("field-focus",{detail:{fieldId:this.field.id,conceptId:this.conceptId,columnId:this.columnId},bubbles:!0}))}_handleBlur(){this._touched=!0,this.dispatchEvent(new CustomEvent("field-blur",{detail:{fieldId:this.field.id,conceptId:this.conceptId,columnId:this.columnId},bubbles:!0}))}_renderInput(){var t;const i=this._errors.some(e=>"error"===e.severity),o=this._errors.some(e=>"warning"===e.severity),r="field-input "+(i?"error":o?"warning":""),s=`${this.conceptId}__${this.columnId}`,n=`data[${this.conceptId}][${this.columnId}]`;switch(this.field.type){case"textarea":return e.html`
22
+ */function S(e){return w({...e,state:!0,attribute:!1})}class C{static validateField(e,t,i,o,r,s=[]){const n=[];for(const a of s){const s=this.validateRule(e,t,i,o,r,a);s&&n.push(s)}return n}static validateRule(e,t,i,o,r,s){const n=null==o||""===o;switch(s.type){case"required":if(n)return this.createError(e,t,i,s);break;case"min":if(!n&&"number"==typeof o&&o<s.value)return this.createError(e,t,i,s);break;case"max":if(!n&&"number"==typeof o&&o>s.value)return this.createError(e,t,i,s);break;case"minLength":if(!n&&"string"==typeof o&&o.length<s.value)return this.createError(e,t,i,s);break;case"maxLength":if(!n&&"string"==typeof o&&o.length>s.value)return this.createError(e,t,i,s);break;case"pattern":if(!n&&"string"==typeof o){if(!new RegExp(s.value).test(o))return this.createError(e,t,i,s)}break;case"email":if(!n&&"string"==typeof o){if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o))return this.createError(e,t,i,s)}break;case"url":if(!n&&"string"==typeof o)try{new URL(o)}catch{return this.createError(e,t,i,s)}break;case"custom":break;default:console.warn(`Unknown validation rule type: ${s.type}`)}return null}static createError(e,t,i,o){return{fieldId:e,conceptId:t,columnId:i,message:o.message,severity:o.severity||"error",rule:o}}static validateDataType(e,t){if(null==e||""===e)return{valid:!0,convertedValue:e};switch(t){case"number":case"decimal":case"currency":case"percentage":{const t=Number(e);return isNaN(t)?{valid:!1,error:"Invalid number format"}:{valid:!0,convertedValue:t}}case"date":{const t=new Date(e);return isNaN(t.getTime())?{valid:!1,error:"Invalid date format"}:{valid:!0,convertedValue:t.toISOString().split("T")[0]}}case"datetime":{const t=new Date(e);return isNaN(t.getTime())?{valid:!1,error:"Invalid datetime format"}:{valid:!0,convertedValue:t.toISOString()}}case"boolean":if("boolean"==typeof e)return{valid:!0,convertedValue:e};if("string"==typeof e){const t=e.toLowerCase();if("true"===t||"1"===t)return{valid:!0,convertedValue:!0};if("false"===t||"0"===t)return{valid:!0,convertedValue:!1}}return{valid:!1,error:"Invalid boolean format"};case"text":case"textarea":case"email":case"url":case"tel":return{valid:!0,convertedValue:String(e)};default:return{valid:!0,convertedValue:e}}}static formatValue(e,t,i="en-US"){if(null==e)return"";switch(t){case"number":return new Intl.NumberFormat(i).format(Number(e));case"decimal":return new Intl.NumberFormat(i,{minimumFractionDigits:2,maximumFractionDigits:2}).format(Number(e));case"currency":return new Intl.NumberFormat(i,{style:"currency",currency:"USD"}).format(Number(e));case"percentage":return new Intl.NumberFormat(i,{style:"percent",minimumFractionDigits:2}).format(Number(e)/100);case"date":return new Date(e).toLocaleDateString(i);case"datetime":return new Date(e).toLocaleString(i);default:return String(e)}}}class F{static createUniqueConceptId(e,t){let i=e.id;if(e.preferredLabel&&""!==e.preferredLabel.trim()){const t=e.preferredLabel.match(/\/([^\/]+)$/),o=t?t[1]:e.preferredLabel.replace(/[^a-zA-Z0-9]/g,"_");i=`${e.id}_${o}`}if(t){return`${i}__${this.createSectionHash(t)}`}return i}static createSectionHash(e){let t=0;for(let i=0;i<e.length;i++){t=(t<<5)-t+e.charCodeAt(i),t&=t}return Math.abs(t).toString(36).substr(0,6)}static buildFormSchema(e,t,i,o="en"){var r;if(!e.presentation||0===e.presentation.length)throw new Error("XBRL presentation data is required");const s=e.presentation[0],n=null==(r=e.hypercubes)?void 0:r[0],a=[];return[...s.roles].sort((e,t)=>e.role.localeCompare(t.role)).forEach(e=>{const r=this.buildSectionFromRole(e,t,i,n,o);this.assignFieldColumnIds(r),a.push(r)}),{formId:`xbrl-form-${Date.now()}`,title:`XBRL Form - ${this.extractEntityName(s.entrypoint)}`,description:"Dynamic form generated from XBRL taxonomy data",version:"1.0.0",sections:a}}static buildSectionFromRole(e,t,i,o,r="en"){var s;const n=this.extractRoleTitle(e.role),a=this.getAllNonAbstractConcepts(e),l=new Set(a.filter(e=>e.periodType).map(e=>e.periodType)),d=null==o?void 0:o.roles.find(t=>t.roleId===e.id),c=this.generateDefaultColumnsForRole(e,t||"2025-01-01",i||"2025-12-31",d,a,l),p={periodTypes:l,availableColumnIds:c.map(e=>e.id)},h=[];return(null==(s=e.presentationLinkbase)?void 0:s.concepts)&&e.presentationLinkbase.concepts.forEach(o=>{const s=this.buildConceptTree(o,0,t,i,p,e.id,r);s&&h.push(s)}),{id:e.id,title:n,description:e.description||`Section for ${n}`,concepts:h,columns:c,expanded:!1,metadata:{roleURI:e.roleURI,originalRole:e.role}}}static buildConceptTree(e,t,i,o,r,s,n="en"){const a=this.getPreferredLabel(e.labels,n),l=[];if(!e.elementAbstract){let t=[];(null==r?void 0:r.availableColumnIds)&&r.availableColumnIds.length>0?(t=r.availableColumnIds.filter(t=>"instant"===e.periodType?t.includes("instant")||"instant"===t:"duration"!==e.periodType||(t.includes("duration")||"duration"===t)),0===t.length&&(t=r.availableColumnIds)):t=(null==r?void 0:r.periodTypes)&&0!==r.periodTypes.size?1===r.periodTypes.size&&r.periodTypes.has("instant")?["instant"]:1===r.periodTypes.size&&r.periodTypes.has("duration")?["duration"]:"instant"===e.periodType?["instant"]:"duration"===e.periodType?["duration"]:["duration","instant"]:["default"],t.forEach(t=>{const r=this.createFieldFromConcept(e,i,o,t,n);r&&l.push(r)})}const d=[];e.children&&e.children.length>0&&e.children.forEach(e=>{const a=this.buildConceptTree(e,t+1,i,o,r,s,n);a&&d.push(a)});return l.length>0||d.length>0?{id:this.createUniqueConceptId(e,s),originalConceptId:e.id,name:e.conceptName,label:a,description:`${e.conceptName} (${e.type})`,level:t,children:d,fields:l,collapsed:t>0,abstract:e.elementAbstract,periodType:e.periodType}:null}static createFieldFromConcept(e,t,i,o,r="en"){const s=this.mapXBRLTypeToFieldType(e.type),n=this.getPreferredLabel(e.labels,r);let a;a=o||("instant"===e.periodType?"instant":"duration"===e.periodType?"duration":"default");const l={id:`${e.id}_${a}_field`,conceptId:e.id,columnId:a,type:s,label:n,placeholder:`Enter ${n.toLowerCase()}`,required:!1,disabled:e.elementAbstract,defaultValue:null};return"duration"!==e.periodType&&"instant"!==e.periodType||(l.periodStartDate=t||"2025-01-01",l.periodEndDate=i||"2025-12-31"),l}static mapXBRLTypeToFieldType(e){return{"xbrli:stringItemType":"text","xbrli:monetaryItemType":"currency","xbrli:integerItemType":"number","xbrli:decimalItemType":"decimal","xbrli:percentItemType":"percentage","xbrli:dateItemType":"date","xbrli:booleanItemType":"boolean","dtr-types:domainItemType":"select","bw2-titel9:chamberOfCommerceRegistrationNumberItemType":"text"}[e]||"text"}static getPreferredLabel(e,t="en"){if(!e||0===e.length)return"Unnamed Concept";Math.random()<.01&&console.log("🔍 [getPreferredLabel] Language:",t,"Available labels:",e.map(e=>({lang:e.lang,label:e.label})));const i=e.filter(e=>e.lang===t),o=i.length>0?i:e,r=o.find(e=>e.preferredLabel);if(r)return r.label;const s=o.find(e=>"http://www.xbrl.org/2003/role/label"===e.role);if(s)return s.label;const n=o.find(e=>"http://www.xbrl.org/2003/role/terseLabel"===e.role);return n?n.label:o.length>0?o[0].label:e[0].label}static assignFieldColumnIds(e){if(!e.columns||0===e.columns.length)return;const t=e.columns.map(e=>e.id);e.concepts.forEach(e=>{this.assignColumnIdsToConceptFields(e,t)})}static assignColumnIdsToConceptFields(e,t){e.fields=e.fields.filter(e=>t.includes(e.columnId)),e.children&&e.children.forEach(e=>{this.assignColumnIdsToConceptFields(e,t)})}static countFieldsInTree(e){let t=e.fields.length;return e.children&&e.children.forEach(e=>{t+=this.countFieldsInTree(e)}),t}static getAllNonAbstractConcepts(e){var t;const i=[];return(null==(t=e.presentationLinkbase)?void 0:t.concepts)&&e.presentationLinkbase.concepts.forEach(e=>{this.collectNonAbstractConcepts(e,i)}),i}static collectNonAbstractConcepts(e,t){e.elementAbstract||t.push(e),e.children&&e.children.length>0&&e.children.forEach(e=>{this.collectNonAbstractConcepts(e,t)})}static generateDefaultColumnsForRole(e,t,i,o,r,s){var n,a;const l=r||this.getAllNonAbstractConcepts(e),d=s||new Set(l.filter(e=>e.periodType).map(e=>e.periodType));if(0===l.length)return[{id:"default",title:"Value",description:"Default value column",type:"base",order:0,removable:!1}];let c=[];if(1===(null==(n=null==o?void 0:o.items)?void 0:n.length)){const e=o.items[0];1===e.dimensions.length?c=this.generateSingleDimensionColumns(e.dimensions[0],t,i,d):e.dimensions.length>1&&(c=this.generateMultiDimensionColumns(e.dimensions,t,i,d))}else(null==(a=null==o?void 0:o.items)?void 0:a.length)&&o.items.length;const p=[];return c.length>0?p.push(...c):0===d.size?p.push({id:"default",title:"Value",description:"Default value column",type:"base",order:0,removable:!1}):1===d.size&&d.has("instant")?p.push({id:"instant",title:"Current",description:`Values as of ${t}`,type:"base",order:0,removable:!1}):1===d.size&&d.has("duration")?p.push({id:"duration",title:"Current Period",description:`Period: ${t} to ${i}`,type:"base",order:0,removable:!1}):(p.push({id:"duration",title:"Current Period",description:`Period: ${t} to ${i}`,type:"base",order:0,removable:!1}),p.push({id:"instant",title:"Current",description:`Values as of ${t}`,type:"base",order:1,removable:!1})),p}static generateSingleDimensionColumns(e,t,i,o){var r,s,n;if(e.typedMember&&(!e.members||0===e.members.length)){const s=(null==(r=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:r.label)||e.conceptName,n={axisId:e.id,axisLabel:s,typedMemberId:e.typedMember.id,dimensionKey:`${s} | [Typed Input]`,dimensionIdKey:`${e.id}|[typed]`},a=[];return 0===o.size?a.push({id:"typed-default",title:s,description:"Typed dimension input column",type:"dimension",dimensionData:{dimensionId:"typed-default",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:0,removable:!1}):1===o.size&&o.has("instant")?a.push({id:"typed-instant",title:`${s} [Typed Input Available]`,description:`Typed values as of ${t}`,type:"dimension",dimensionData:{dimensionId:"typed-instant",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:0,removable:!1}):1===o.size&&o.has("duration")?a.push({id:"typed-duration",title:`${s} [Typed Input Available]`,description:`Typed values for period ${t} to ${i}`,type:"dimension",dimensionData:{dimensionId:"typed-duration",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:0,removable:!1}):(a.push({id:"typed-duration",title:`${s} [Typed Input Available]`,description:`Typed values for period ${t} to ${i}`,type:"dimension",dimensionData:{dimensionId:"typed-duration",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:0,removable:!1}),a.push({id:"typed-instant",title:`${s} [Typed Input Available]`,description:`Typed values as of ${t}`,type:"dimension",dimensionData:{dimensionId:"typed-instant",axisId:n.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:n.axisLabel,axisLabel:n.axisLabel,memberKey:n.dimensionKey,dimensionIdKey:n.dimensionIdKey,hasTypedMembers:!0,typedMemberId:n.typedMemberId,typedMembers:[{axisId:n.axisId,axisLabel:n.axisLabel,typedMemberId:n.typedMemberId,memberLabel:n.axisLabel}]},order:1,removable:!1})),a}if(!e.members||!Array.isArray(e.members))return[];if(0===e.members.length)return[];const a=(null==(s=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:s.label)||e.conceptName,l=e.members[0],d=(null==(n=l.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:n.label)||l.conceptName,c={axisId:e.id,axisLabel:a,memberId:l.id,memberLabel:d,dimensionKey:`${a} | ${d}`,dimensionIdKey:`${e.id} | ${l.id}`},p=[];return 0===o.size?p.push({id:"default",title:c.memberLabel,description:"Default value column",type:"dimension",dimensionData:{dimensionId:"default",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:0,removable:!1}):1===o.size&&o.has("instant")?p.push({id:"instant",title:`${c.memberLabel}`,description:`Values as of ${t}`,type:"dimension",dimensionData:{dimensionId:"instant",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:0,removable:!1}):1===o.size&&o.has("duration")?p.push({id:"duration",title:`${c.memberLabel}`,description:`Period: ${t} to ${i}`,type:"dimension",dimensionData:{dimensionId:"duration",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:0,removable:!1}):(p.push({id:"duration",title:`${c.memberLabel}`,description:`Period: ${t} to ${i}`,type:"dimension",dimensionData:{dimensionId:"duration",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:0,removable:!1}),p.push({id:"instant",title:`${c.memberLabel}`,description:`Values as of ${t}`,type:"dimension",dimensionData:{dimensionId:"instant",axisId:c.axisId,memberId:c.memberId,memberValue:c.memberLabel,memberLabel:c.memberLabel,axis:c.axisLabel,axisLabel:c.axisLabel,memberKey:c.dimensionKey,dimensionIdKey:c.dimensionIdKey},order:1,removable:!1})),p}static generateMultiDimensionColumns(e,t,i,o){e.some(e=>e.typedMember);const r=e.filter(e=>!!e.typedMember||!!(e.members&&Array.isArray(e.members)&&e.members.length>0));if(0===r.length)return[];const s=r.map(e=>{var t;const i=(null==(t=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:t.label)||e.conceptName;if(e.typedMember)return{id:e.id,axisLabel:i,isTyped:!0,typedMemberId:e.typedMember.id,members:[{id:"[typed]",label:`${i} [Typed Input Available]`}]};const o=this.getAllDimensionMembers(e.members);return{id:e.id,axisLabel:i,isTyped:!1,members:o.map(e=>{var t;return{id:e.id,label:(null==(t=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:t.label)||e.conceptName}})}}),n=this.generateDimensionCombinations(s),a=[];return n.forEach((e,r)=>{const s=e.map(e=>e.memberLabel).join(" | "),n=e.filter(e=>e.isTyped),l=e.filter(e=>!e.isTyped),d={dimensionId:`multi_${r}`,memberValue:s,memberLabel:s,combinations:l.map(e=>({axisId:e.axisId,axisLabel:e.axisLabel,memberId:e.memberId,memberLabel:e.memberLabel})),typedMembers:n.map(e=>({axisId:e.axisId,axisLabel:e.axisLabel,typedMemberId:e.typedMemberId,memberLabel:e.memberLabel})),hasTypedMembers:n.length>0,memberKey:s,dimensionIdKey:[...l.map(e=>`${e.axisId}|${e.memberId}`),...n.map(e=>`${e.axisId}|[typed]`)].join("::")};0===o.size||1===o.size&&o.has("duration")?a.push({id:`duration_${r}`,title:`${s}`,description:`Period: ${t} to ${i}`,type:"dimension",dimensionData:{...d,dimensionId:`duration_${r}`},order:2*r,removable:!1}):1===o.size&&o.has("instant")?a.push({id:`instant_${r}`,title:`${s}`,description:`Values as of ${t}`,type:"dimension",dimensionData:{...d,dimensionId:`instant_${r}`},order:2*r,removable:!1}):(a.push({id:`duration_${r}`,title:`${s}`,description:`Period: ${t} to ${i}`,type:"dimension",dimensionData:{...d,dimensionId:`duration_${r}`},order:2*r,removable:!1}),a.push({id:`instant_${r}`,title:`${s}`,description:`Values as of ${t}`,type:"dimension",dimensionData:{...d,dimensionId:`instant_${r}`},order:2*r+1,removable:!1}))}),a}static getAllDimensionMembers(e){if(!e||!Array.isArray(e))return[];const t=[];return e.forEach(e=>{t.push(e),e.children&&e.children.length>0&&t.push(...this.getAllDimensionMembers(e.children))}),t}static generateDimensionCombinations(e){if(0===e.length)return[];if(1===e.length)return e[0].members.map(t=>[{axisId:e[0].id,axisLabel:e[0].axisLabel,memberId:t.id,memberLabel:t.label,isTyped:e[0].isTyped||!1,typedMemberId:e[0].typedMemberId}]);const[t,...i]=e,o=this.generateDimensionCombinations(i),r=[];return t.members.forEach(e=>{0===o.length?r.push([{axisId:t.id,axisLabel:t.axisLabel,memberId:e.id,memberLabel:e.label,isTyped:t.isTyped||!1,typedMemberId:t.typedMemberId}]):o.forEach(i=>{r.push([{axisId:t.id,axisLabel:t.axisLabel,memberId:e.id,memberLabel:e.label,isTyped:t.isTyped||!1,typedMemberId:t.typedMemberId},...i])})}),r}static formatDateForDisplay(e){try{return new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}catch{return e}}static extractEntityName(e){try{const t=new URL(e).pathname.split("/");return t[t.length-1].replace(".xsd","").replace(/[^a-zA-Z0-9]/g," ").trim()||"Entity"}catch{return"Entity"}}static extractRoleTitle(e){const t=e.match(/^\[[\d]+\]\s*(.+)$/);return t?t[1].trim():e}static extractRoleOrder(e){const t=e.match(/^\[([\d]+)\]/);return t?parseInt(t[1],10):0}static buildColumnsFromHypercubes(){return[{id:"default",label:"Values",type:"data"}]}}var T=Object.defineProperty,E=Object.getOwnPropertyDescriptor,k=(e,t,i,o)=>{for(var r,s=o>1?void 0:o?E(t,i):t,n=e.length-1;n>=0;n--)(r=e[n])&&(s=(o?r(t,i,s):r(s))||s);return o&&s&&T(t,i,s),s};exports.JupiterFormField=class extends e.LitElement{constructor(){super(...arguments),this.value=null,this.disabled=!1,this.locale="en-US",this.hideLabel=!1,this._errors=[],this._touched=!1}willUpdate(e){(e.has("value")||e.has("field"))&&this._validateField()}_validateField(){var e;(null==(e=this.field)?void 0:e.validation)&&(this._errors=C.validateField(this.field.id,this.conceptId,this.columnId,this.value,this.field.type,this.field.validation))}_handleInput(e){const t=e.target;let i=t.value;"number"===this.field.type||"decimal"===this.field.type?i=""===i?null:Number(i):"boolean"===this.field.type&&(i=t.checked),this.value=i,this._touched=!0,this.dispatchEvent(new CustomEvent("field-change",{detail:{fieldId:this.field.id,conceptId:this.conceptId,columnId:this.columnId,value:i,oldValue:this.value},bubbles:!0}))}_handleFocus(){this.dispatchEvent(new CustomEvent("field-focus",{detail:{fieldId:this.field.id,conceptId:this.conceptId,columnId:this.columnId},bubbles:!0}))}_handleBlur(){this._touched=!0,this.dispatchEvent(new CustomEvent("field-blur",{detail:{fieldId:this.field.id,conceptId:this.conceptId,columnId:this.columnId},bubbles:!0}))}_renderInput(){var t;const i=this._errors.some(e=>"error"===e.severity),o=this._errors.some(e=>"warning"===e.severity),r="field-input "+(i?"error":o?"warning":""),s=`${this.conceptId}__${this.columnId}`,n=`data[${this.conceptId}][${this.columnId}]`;switch(this.field.type){case"textarea":return e.html`
23
23
  <textarea
24
24
  id="${s}"
25
25
  name="${n}"