jupiter-dynamic-forms 1.10.0 → 1.10.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 +1 @@
1
- {"version":3,"file":"filter-roles-dialog.d.ts","sourceRoot":"","sources":["../../src/core/filter-roles-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAe,MAAM,iBAAiB,CAAC;AAG3D,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED,qBACa,wBAAyB,SAAQ,UAAU;IACV,IAAI,UAAS;IAC9B,cAAc,EAAE,WAAW,EAAE,CAAM;IACnC,eAAe,EAAE,MAAM,EAAE,CAAM;IAC9B,iBAAiB,EAAE,qBAAqB,CAAM;IAEjE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,sBAAsB,CAA6B;IAEpE,MAAM,CAAC,MAAM,0BAqUX;IAEF,iBAAiB;IAMjB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAY3C,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,2BAA2B;IAqBnC,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,oBAAoB;IAM5B,MAAM;CAiLP"}
1
+ {"version":3,"file":"filter-roles-dialog.d.ts","sourceRoot":"","sources":["../../src/core/filter-roles-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAe,MAAM,iBAAiB,CAAC;AAG3D,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED,qBACa,wBAAyB,SAAQ,UAAU;IACV,IAAI,UAAS;IAC9B,cAAc,EAAE,WAAW,EAAE,CAAM;IACnC,eAAe,EAAE,MAAM,EAAE,CAAM;IAC9B,iBAAiB,EAAE,qBAAqB,CAAM;IAEjE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,sBAAsB,CAA6B;IAEpE,MAAM,CAAC,MAAM,0BAqUX;IAEF,iBAAiB;IAMjB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAY3C,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,2BAA2B;IAqBnC,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,oBAAoB;IAM5B,MAAM;CAgLP"}
package/dist/index.js CHANGED
@@ -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,r,o,n=[]){const s=[];for(const a of n){const n=this.validateRule(e,t,i,r,o,a);n&&s.push(n)}return s}static validateRule(e,t,i,r,o,n){const s=null==r||""===r;switch(n.type){case"required":if(s)return this.createError(e,t,i,n);break;case"min":if(!s&&"number"==typeof r&&r<n.value)return this.createError(e,t,i,n);break;case"max":if(!s&&"number"==typeof r&&r>n.value)return this.createError(e,t,i,n);break;case"minLength":if(!s&&"string"==typeof r&&r.length<n.value)return this.createError(e,t,i,n);break;case"maxLength":if(!s&&"string"==typeof r&&r.length>n.value)return this.createError(e,t,i,n);break;case"pattern":if(!s&&"string"==typeof r){if(!new RegExp(n.value).test(r))return this.createError(e,t,i,n)}break;case"email":if(!s&&"string"==typeof r){if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r))return this.createError(e,t,i,n)}break;case"url":if(!s&&"string"==typeof r)try{new URL(r)}catch{return this.createError(e,t,i,n)}break;case"custom":break;default:console.warn(`Unknown validation rule type: ${n.type}`)}return null}static createError(e,t,i,r){return{fieldId:e,conceptId:t,columnId:i,message:r.message,severity:r.severity||"error",rule:r}}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 T{static createUniqueConceptId(e,t){let i=e.id;if(e.preferredLabel&&""!==e.preferredLabel.trim()){const t=e.preferredLabel.match(/\/([^\/]+)$/),r=t?t[1]:e.preferredLabel.replace(/[^a-zA-Z0-9]/g,"_");i=`${e.id}_${r}`}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,r="en",o){var n;if(!e.presentation||0===e.presentation.length)throw new Error("XBRL presentation data is required");const s=e.presentation[0],a=null==(n=e.hypercubes)?void 0:n[0],l=[];return[...s.roles].sort((e,t)=>e.role.localeCompare(t.role)).forEach(e=>{const n=this.buildSectionFromRole(e,t,i,a,r,o);this.assignFieldColumnIds(n),l.push(n)}),{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:l}}static buildSectionFromRole(e,t,i,r,o="en",n){var s;const a=this.extractRoleTitle(e.role),l=this.getAllNonAbstractConcepts(e),d=new Set(l.filter(e=>e.periodType).map(e=>e.periodType)),c=null==r?void 0:r.roles.find(t=>t.roleId===e.id),p=null==n?void 0:n[e.id],m=this.generateDefaultColumnsForRole(e,t||"2025-01-01",i||"2025-12-31",c,l,d,p),h={periodTypes:d,availableColumnIds:m.map(e=>e.id)},u=[];return(null==(s=e.presentationLinkbase)?void 0:s.concepts)&&e.presentationLinkbase.concepts.forEach(r=>{const n=this.buildConceptTree(r,0,t,i,h,e.id,o);n&&u.push(n)}),{id:e.id,title:a,description:e.description||`Section for ${a}`,concepts:u,columns:m,expanded:!1,metadata:{roleURI:e.roleURI,originalRole:e.role},showPeriodControl:d.size>1,showPreviousYear:!0===e.showPreviousYear,instant:!0===e.instant,duration:!0===e.duration}}static buildConceptTree(e,t,i,r,o,n,s="en"){const a=this.getPreferredLabel(e.labels,s),l=[];if(!e.elementAbstract){let t=[];if((null==o?void 0:o.availableColumnIds)&&o.availableColumnIds.length>0){if(t=o.availableColumnIds.filter(t=>{const i=t.includes("instant")||"instant"===t,r=t.includes("duration")||"duration"===t;return"instant"===e.periodType?i:"duration"===e.periodType?r:!i&&!r}),0===t.length&&o.availableColumnIds.length>0){o.availableColumnIds.some(e=>e.includes("instant")||e.includes("duration"))||(t=o.availableColumnIds)}}else t=(null==o?void 0:o.periodTypes)&&0!==o.periodTypes.size?1===o.periodTypes.size&&o.periodTypes.has("instant")?["instant"]:1===o.periodTypes.size&&o.periodTypes.has("duration")?["duration"]:"instant"===e.periodType?["instant"]:"duration"===e.periodType?["duration"]:["duration","instant"]:["default"];t.forEach(t=>{const o=this.createFieldFromConcept(e,i,r,t);o&&l.push(o)})}const d=[];e.children&&e.children.length>0&&e.children.forEach(e=>{const a=this.buildConceptTree(e,t+1,i,r,o,n,s);a&&d.push(a)});return l.length>0||d.length>0?{id:this.createUniqueConceptId(e,n),originalConceptId:e.id,name:e.conceptName,label:a,description:`${e.conceptName} (${e.type})`,type:e.type,level:t,children:d,fields:l,collapsed:t>0,abstract:e.elementAbstract,periodType:e.periodType}:null}static createFieldFromConcept(e,t,i,r){const o=this.mapXBRLTypeToFieldType(e.type),n=this.getPreferredLabel(e.labels);let s;s=r||("instant"===e.periodType?"instant":"duration"===e.periodType?"duration":"default");const a={id:`${e.id}_${s}_field`,conceptId:e.id,columnId:s,type:o,label:n,placeholder:`Enter ${n.toLowerCase()}`,required:!1,disabled:e.elementAbstract,defaultValue:null};return"duration"!==e.periodType&&"instant"!==e.periodType||(a.periodStartDate=t||"2025-01-01",a.periodEndDate=i||"2025-12-31"),a}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),r=i.length>0?i:e,o=r.find(e=>e.preferredLabel);if(o)return o.label;const n=r.find(e=>"http://www.xbrl.org/2003/role/label"===e.role);if(n)return n.label;const s=r.find(e=>"http://www.xbrl.org/2003/role/terseLabel"===e.role);return s?s.label:r.length>0?r[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,r,o,n,s){var a,l;const d=o||this.getAllNonAbstractConcepts(e),c=n||new Set(d.filter(e=>e.periodType).map(e=>e.periodType));if(0===d.length)return[{id:"default",title:"Value",description:"Default value column",type:"base",order:0,removable:!1}];let p=[];if(1===(null==(a=null==r?void 0:r.items)?void 0:a.length)){const e=r.items[0];1===e.dimensions.length?p=this.generateSingleDimensionColumns(e.dimensions[0],t,i,c):e.dimensions.length>1&&(p=this.generateMultiDimensionColumns(e.dimensions,t,i,c)),s&&(p=this.filterColumnsByPeriodPreferences(p,s))}else(null==(l=null==r?void 0:r.items)?void 0:l.length)&&r.items.length;const m=[];p.length>0?m.push(...p):0===c.size?m.push({id:"default",title:"Value",description:"Default value column",type:"base",order:0,removable:!1}):1===c.size&&c.has("instant")?m.push({id:"instant",title:i,description:"",type:"base",order:0,removable:!1}):1===c.size&&c.has("duration")?m.push({id:"duration",title:`${t} / ${i}`,description:"",type:"base",order:0,removable:!1}):(m.push({id:"duration",title:`${t} / ${i}`,description:"",type:"base",order:0,removable:!1}),m.push({id:"instant",title:i,description:"",type:"base",order:1,removable:!1}));let h=m;if(s&&(h=this.filterColumnsByPeriodPreferences(m,s)),null==s?void 0:s.showPreviousYear){const e=this.generatePreviousYearColumns(h,t,i);h=[...h,...e]}return h}static getPreviousYearDate(e){try{const t=new Date(e);return t.setFullYear(t.getFullYear()-1),t.toISOString().split("T")[0]}catch(t){return console.error(`Error calculating previous year for date ${e}:`,t),e}}static generatePreviousYearColumns(e,t,i){const r=[],o=this.getPreviousYearDate(t),n=this.getPreviousYearDate(i);return e.forEach((e,t)=>{let i=e.title,s="",a="";e.dimensionData?(i=e.title,s=e.description&&e.description.includes("/")?`${o} / ${n}`:n,a=`${e.id}_prev`):"instant"===e.id||e.id.includes("instant")?(i=n,s="",a=`instant_prev_${t}`):"duration"===e.id||e.id.includes("duration")?(i=`${o} / ${n}`,s="",a=`duration_prev_${t}`):e.title.includes("/")?(i=`${o} / ${n}`,s="",a=`${e.id}_prev`):(i=n,s="",a=`${e.id}_prev`),r.push({...e,id:a,title:i,description:s,order:e.order+100,removable:!0,periodStartDate:o,periodEndDate:n,dimensionData:e.dimensionData?{...e.dimensionData,dimensionId:`${e.dimensionData.dimensionId}_prev`}:void 0})}),r}static filterColumnsByPeriodPreferences(e,t){return e.filter(e=>{var i,r,o,n;const s=e.id.includes("duration")||(null==(r=null==(i=e.dimensionData)?void 0:i.dimensionId)?void 0:r.includes("duration")),a=e.id.includes("instant")||(null==(n=null==(o=e.dimensionData)?void 0:o.dimensionId)?void 0:n.includes("instant"));return!s&&!a||!(s&&!t.showDuration)&&!(a&&!t.showInstant)})}static generateSingleDimensionColumns(e,t,i,r){var o,n,s;if(e.typedMember&&(!e.members||0===e.members.length)){const n=(null==(o=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:o.label)||e.conceptName,s={axisId:e.id,axisLabel:n,typedMemberId:e.typedMember.id,dimensionKey:`${n} | [Typed Input]`,dimensionIdKey:`${e.id}|[typed]`},a=[];return 0===r.size?a.push({id:"typed-default",title:n,description:"Typed dimension input column",type:"dimension",dimensionData:{dimensionId:"typed-default",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:0,removable:!1}):1===r.size&&r.has("instant")?a.push({id:"typed-instant",title:`${n} [Typed Input Available]`,description:i,type:"dimension",dimensionData:{dimensionId:"typed-instant",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:0,removable:!1}):1===r.size&&r.has("duration")?a.push({id:"typed-duration",title:`${n} [Typed Input Available]`,description:`${t} / ${i}`,type:"dimension",dimensionData:{dimensionId:"typed-duration",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:0,removable:!1}):(a.push({id:"typed-duration",title:`${n} [Typed Input Available]`,description:`${t} / ${i}`,type:"dimension",dimensionData:{dimensionId:"typed-duration",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:0,removable:!1}),a.push({id:"typed-instant",title:`${n} [Typed Input Available]`,description:i,type:"dimension",dimensionData:{dimensionId:"typed-instant",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:1,removable:!1})),a}if(!e.members||!Array.isArray(e.members))return[];if(0===e.members.length)return[];const a=(null==(n=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:n.label)||e.conceptName,l=e.members[0],d=(null==(s=l.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:s.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===r.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===r.size&&r.has("instant")?p.push({id:"instant",title:`${c.memberLabel}`,description:i,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===r.size&&r.has("duration")?p.push({id:"duration",title:`${c.memberLabel}`,description:`${t} / ${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:`${t} / ${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:i,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,r){e.some(e=>e.typedMember);const o=e.filter(e=>!!e.typedMember||!!(e.members&&Array.isArray(e.members)&&e.members.length>0));if(0===o.length)return[];const n=o.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 r=this.getAllDimensionMembers(e.members);return{id:e.id,axisLabel:i,isTyped:!1,members:r.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}})}}),s=this.generateDimensionCombinations(n),a=[];return s.forEach((e,o)=>{const n=e.map(e=>e.memberLabel).join(" | "),s=e.filter(e=>e.isTyped),l=e.filter(e=>!e.isTyped),d={dimensionId:`multi_${o}`,memberValue:n,memberLabel:n,combinations:l.map(e=>({axisId:e.axisId,axisLabel:e.axisLabel,memberId:e.memberId,memberLabel:e.memberLabel})),typedMembers:s.map(e=>({axisId:e.axisId,axisLabel:e.axisLabel,typedMemberId:e.typedMemberId,memberLabel:e.memberLabel})),hasTypedMembers:s.length>0,memberKey:n,dimensionIdKey:[...l.map(e=>`${e.axisId}|${e.memberId}`),...s.map(e=>`${e.axisId}|[typed]`)].join("::")};0===r.size||1===r.size&&r.has("duration")?a.push({id:`duration_${o}`,title:`${n}`,description:`${t} / ${i}`,type:"dimension",dimensionData:{...d,dimensionId:`duration_${o}`},order:2*o,removable:!1}):1===r.size&&r.has("instant")?a.push({id:`instant_${o}`,title:`${n}`,description:i,type:"dimension",dimensionData:{...d,dimensionId:`instant_${o}`},order:2*o,removable:!1}):(a.push({id:`duration_${o}`,title:`${n}`,description:`${t} / ${i}`,type:"dimension",dimensionData:{...d,dimensionId:`duration_${o}`},order:2*o,removable:!1}),a.push({id:`instant_${o}`,title:`${n}`,description:i,type:"dimension",dimensionData:{...d,dimensionId:`instant_${o}`},order:2*o+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,r=this.generateDimensionCombinations(i),o=[];return t.members.forEach(e=>{0===r.length?o.push([{axisId:t.id,axisLabel:t.axisLabel,memberId:e.id,memberLabel:e.label,isTyped:t.isTyped||!1,typedMemberId:t.typedMemberId}]):r.forEach(i=>{o.push([{axisId:t.id,axisLabel:t.axisLabel,memberId:e.id,memberLabel:e.label,isTyped:t.isTyped||!1,typedMemberId:t.typedMemberId},...i])})}),o}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"}]}}const k={en:{form:{loading:"Loading form...",submit:"Submit",saveDraft:"Save Draft",errors:"Errors",modified:"Modified",valid:"Valid",yes:"Yes",no:"No",noRoleSelected:"No Role Selected",pleaseSelectRole:"Please select a role from the list on the left."},filter:{selectRoles:"Select Roles",filterRoles:"Filter Roles",title:"Filter Roles",searchPlaceholder:"Search roles by name, ID, or URI...",clearSearch:"Clear search",showingResults:"Showing",of:"of",roles:"roles",matching:"matching",selectAll:"Select All",selectNone:"Select None",selectFiltered:"Select Filtered",deselectFiltered:"Deselect Filtered",deselectAll:"Deselect All",reset:"Reset",noRolesFound:"No roles found matching",tryDifferentSearch:"Try a different search term or clear the search.",noRolesAvailable:"No roles available.",cancel:"Cancel",applyFilter:"Apply Filter",showPeriodColumn:"Show Period Column:",additionalOptions:"Additional Options:",showPreviousYear:"Show previous year",duration:"Duration",instant:"Instant",uri:"URI"},column:{addColumn:"Add Column",columnType:"Column Type",instantSingleDate:"Instant (single date)",durationDates:"Duration (start and end dates)",instantDate:"Instant Date",startPeriodDate:"Start Period Date",endPeriodDate:"End Period Date",availableDimensions:"Available Dimensions",dimensionsDescription:"Select dimensions to include in the column. Domain members can be selected here, while typed dimension values will be entered directly in the column header.",enterValue:"Enter value for",enterValuePlaceholder:"Enter value...",selectMember:"Select member:",noMembersAvailable:"No members available for this dimension",cancel:"Cancel",removeColumn:"Remove column",required:"required"},section:{enterPlaceholder:"Enter"},admin:{title:"Configure Roles",description:"Select which roles should display the 'Show Previous Year' checkbox and configure period type columns."},validation:{summary:"Please fix the following errors before submitting:",errorsFound:"errors found"}},nl:{form:{loading:"Formulier laden...",submit:"Indienen",saveDraft:"Concept opslaan",errors:"Fouten",modified:"Gewijzigd",valid:"Geldig",yes:"Ja",no:"Nee",noRoleSelected:"Geen rol geselecteerd",pleaseSelectRole:"Selecteer een rol uit de lijst aan de linkerkant."},filter:{selectRoles:"Rollen selecteren",filterRoles:"Rollen filteren",title:"Rollen filteren",searchPlaceholder:"Zoek rollen op naam, ID of URI...",clearSearch:"Zoekopdracht wissen",showingResults:"Weergeven",of:"van",roles:"rollen",matching:"overeenkomend met",selectAll:"Alles selecteren",selectNone:"Niets selecteren",selectFiltered:"Gefilterd selecteren",deselectFiltered:"Gefilterd deselecteren",deselectAll:"Alles deselecteren",reset:"Resetten",noRolesFound:"Geen rollen gevonden die overeenkomen met",tryDifferentSearch:"Probeer een andere zoekterm of wis de zoekopdracht.",noRolesAvailable:"Geen rollen beschikbaar.",cancel:"Annuleren",applyFilter:"Filter toepassen",showPeriodColumn:"Periodekolom weergeven:",additionalOptions:"Aanvullende opties:",showPreviousYear:"Vorig jaar weergeven",duration:"Duur",instant:"Moment",uri:"URI"},column:{addColumn:"Kolom toevoegen",columnType:"Kolomtype",instantSingleDate:"Moment (enkele datum)",durationDates:"Duur (begin- en einddatum)",instantDate:"Momentdatum",startPeriodDate:"Startdatum periode",endPeriodDate:"Einddatum periode",availableDimensions:"Beschikbare dimensies",dimensionsDescription:"Selecteer dimensies om in de kolom op te nemen. Domeinleden kunnen hier worden geselecteerd, terwijl getypte dimensiewaarden direct in de kolomkop worden ingevoerd.",enterValue:"Voer waarde in voor",enterValuePlaceholder:"Voer waarde in...",selectMember:"Selecteer lid:",noMembersAvailable:"Geen leden beschikbaar voor deze dimensie",cancel:"Annuleren",removeColumn:"Kolom verwijderen",required:"verplicht"},section:{enterPlaceholder:"Invoeren"},admin:{title:"Rollen configureren",description:"Selecteer welke rollen het selectievakje 'Vorig jaar weergeven' moeten weergeven en configureer periodetype kolommen."},validation:{summary:"Corrigeer de volgende fouten voordat u indient:",errorsFound:"fouten gevonden"}}};class F{static setLanguage(e){k[e]?this.currentLanguage=e:(console.warn(`Language '${e}' not supported, falling back to 'en'`),this.currentLanguage="en")}static getLanguage(){return this.currentLanguage}static t(e,t){const i=e.split(".");let r=k[this.currentLanguage];for(const o of i){if(!r||"object"!=typeof r||!(o in r))return console.warn(`Translation key '${e}' not found for language '${this.currentLanguage}'`),e;r=r[o]}return t&&"string"==typeof r?this.interpolate(r,t):r}static interpolate(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,i)=>i in t?String(t[i]):e)}static has(e){const t=e.split(".");let i=k[this.currentLanguage];for(const r of t){if(!i||"object"!=typeof i||!(r in i))return!1;i=i[r]}return void 0!==i}static getAvailableLanguages(){return Object.keys(k)}}F.currentLanguage="en";const E={"nl-types:formattedExplanationItemType":{fieldType:"textarea",placeholder:"Enter detailed explanation..."},"nl-types:monetaryNoDecimals20ItemType":{fieldType:"number",htmlInputType:"number",allowDecimals:!1,step:1,placeholder:"Enter amount (no decimals)"},"xbrli:monetaryItemType":{fieldType:"currency",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"0.00"},"xbrli:stringItemType":{fieldType:"text",htmlInputType:"text",placeholder:"Enter text"},"xbrli:dateItemType":{fieldType:"date",htmlInputType:"date"},"xbrli:dateTimeItemType":{fieldType:"datetime",htmlInputType:"datetime-local"},"xbrli:integerItemType":{fieldType:"integer",htmlInputType:"number",allowDecimals:!1,step:1,placeholder:"Enter whole number"},"xbrli:nonNegativeIntegerItemType":{fieldType:"integer",htmlInputType:"number",allowDecimals:!1,min:0,step:1,placeholder:"Enter positive number"},"xbrli:positiveIntegerItemType":{fieldType:"integer",htmlInputType:"number",allowDecimals:!1,min:1,step:1,placeholder:"Enter positive number"},"xbrli:decimalItemType":{fieldType:"decimal",htmlInputType:"number",allowDecimals:!0,step:"any",placeholder:"Enter decimal value"},"xbrli:sharesItemType":{fieldType:"number",htmlInputType:"number",allowDecimals:!0,min:0,step:.01,placeholder:"Enter number of shares"},"xbrli:shares":{fieldType:"number",htmlInputType:"number",allowDecimals:!0,min:0,step:.01,placeholder:"Enter number of shares"},"xbrli:gYearItemType":{fieldType:"number",htmlInputType:"number",allowDecimals:!1,min:1900,max:2100,step:1,placeholder:"YYYY"},"xbrli:booleanItemType":{fieldType:"boolean"},"xbrli:pureItemType":{fieldType:"percentage",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"Enter percentage"},"xbrli:percentItemType":{fieldType:"percentage",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"Enter percentage"},"xbrli:emailItemType":{fieldType:"email",htmlInputType:"email",placeholder:"email@example.com"},"xbrli:urlItemType":{fieldType:"url",htmlInputType:"url",placeholder:"https://example.com"},"xbrli:telephoneItemType":{fieldType:"tel",htmlInputType:"tel",placeholder:"+1 (555) 000-0000"}};function j(e){if(!e)return{fieldType:"text",htmlInputType:"text",placeholder:"Enter value"};if(E[e])return E[e];const t=e.toLowerCase();if(t.includes("monetary"))return t.includes("nodecimals")||t.includes("no-decimals")?{fieldType:"number",htmlInputType:"number",allowDecimals:!1,step:1,placeholder:"Enter amount (no decimals)"}:{fieldType:"currency",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"0.00"};if(t.includes("explanation")||t.includes("description")||t.includes("notes")||t.includes("formatted"))return{fieldType:"textarea",placeholder:"Enter detailed information..."};if(t.includes("date"))return t.includes("time")?{fieldType:"datetime",htmlInputType:"datetime-local"}:{fieldType:"date",htmlInputType:"date"};if(t.includes("boolean")||t.includes("bool"))return{fieldType:"boolean"};if(t.includes("integer")||t.includes("int")){const e=t.includes("nonnegative")||t.includes("non-negative");return{fieldType:"integer",htmlInputType:"number",allowDecimals:!1,min:t.includes("positive")?1:e?0:void 0,step:1,placeholder:"Enter whole number"}}return t.includes("decimal")||t.includes("numeric")||t.includes("number")?{fieldType:"decimal",htmlInputType:"number",allowDecimals:!0,step:"any",placeholder:"Enter decimal value"}:t.includes("percent")||t.includes("pure")?{fieldType:"percentage",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"Enter percentage"}:{fieldType:"text",htmlInputType:"text",placeholder:"Enter value"}}function P(e){return"textarea"===e}function R(e){return"boolean"===e}function A(e){return["number","decimal","integer","currency","percentage"].includes(e)}var L=Object.defineProperty,M=Object.getOwnPropertyDescriptor,z=(e,t,i,r)=>{for(var o,n=r>1?void 0:r?M(t,i):t,s=e.length-1;s>=0;s--)(o=e[s])&&(n=(r?o(t,i,n):o(n))||n);return r&&n&&L(t,i,n),n};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),r=this._errors.some(e=>"warning"===e.severity),o="field-input "+(i?"error":r?"warning":""),n=`${this.conceptId}__${this.columnId}`,s=`data[${this.conceptId}][${this.columnId}]`,a=j(this.conceptType);this.conceptType;const l=a.fieldType||this.field.type||"text";if("textarea"===l||P(l))return e.html`
22
+ */function S(e){return w({...e,state:!0,attribute:!1})}class C{static validateField(e,t,i,r,o,n=[]){const s=[];for(const a of n){const n=this.validateRule(e,t,i,r,o,a);n&&s.push(n)}return s}static validateRule(e,t,i,r,o,n){const s=null==r||""===r;switch(n.type){case"required":if(s)return this.createError(e,t,i,n);break;case"min":if(!s&&"number"==typeof r&&r<n.value)return this.createError(e,t,i,n);break;case"max":if(!s&&"number"==typeof r&&r>n.value)return this.createError(e,t,i,n);break;case"minLength":if(!s&&"string"==typeof r&&r.length<n.value)return this.createError(e,t,i,n);break;case"maxLength":if(!s&&"string"==typeof r&&r.length>n.value)return this.createError(e,t,i,n);break;case"pattern":if(!s&&"string"==typeof r){if(!new RegExp(n.value).test(r))return this.createError(e,t,i,n)}break;case"email":if(!s&&"string"==typeof r){if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r))return this.createError(e,t,i,n)}break;case"url":if(!s&&"string"==typeof r)try{new URL(r)}catch{return this.createError(e,t,i,n)}break;case"custom":break;default:console.warn(`Unknown validation rule type: ${n.type}`)}return null}static createError(e,t,i,r){return{fieldId:e,conceptId:t,columnId:i,message:r.message,severity:r.severity||"error",rule:r}}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 T{static createUniqueConceptId(e,t){let i=e.id;if(e.preferredLabel&&""!==e.preferredLabel.trim()){const t=e.preferredLabel.match(/\/([^\/]+)$/),r=t?t[1]:e.preferredLabel.replace(/[^a-zA-Z0-9]/g,"_");i=`${e.id}_${r}`}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,r="en",o){var n;if(!e.presentation||0===e.presentation.length)throw new Error("XBRL presentation data is required");const s=e.presentation[0],a=null==(n=e.hypercubes)?void 0:n[0],l=[];return[...s.roles].sort((e,t)=>e.role.localeCompare(t.role)).forEach(e=>{const n=this.buildSectionFromRole(e,t,i,a,r,o);this.assignFieldColumnIds(n),l.push(n)}),{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:l}}static buildSectionFromRole(e,t,i,r,o="en",n){var s;const a=this.extractRoleTitle(e.role),l=this.getAllNonAbstractConcepts(e),d=new Set(l.filter(e=>e.periodType).map(e=>e.periodType)),c=null==r?void 0:r.roles.find(t=>t.roleId===e.id),p=null==n?void 0:n[e.id],m=this.generateDefaultColumnsForRole(e,t||"2025-01-01",i||"2025-12-31",c,l,d,p),h={periodTypes:d,availableColumnIds:m.map(e=>e.id)},u=[];return(null==(s=e.presentationLinkbase)?void 0:s.concepts)&&e.presentationLinkbase.concepts.forEach(r=>{const n=this.buildConceptTree(r,0,t,i,h,e.id,o);n&&u.push(n)}),{id:e.id,title:a,description:e.description||`Section for ${a}`,concepts:u,columns:m,expanded:!1,metadata:{roleURI:e.roleURI,originalRole:e.role},showPeriodControl:d.size>1,showPreviousYear:!0===e.showPreviousYear,instant:!0===e.instant,duration:!0===e.duration}}static buildConceptTree(e,t,i,r,o,n,s="en"){const a=this.getPreferredLabel(e.labels,s),l=[];if(!e.elementAbstract){let t=[];if((null==o?void 0:o.availableColumnIds)&&o.availableColumnIds.length>0){if(t=o.availableColumnIds.filter(t=>{const i=t.includes("instant")||"instant"===t,r=t.includes("duration")||"duration"===t;return"instant"===e.periodType?i:"duration"===e.periodType?r:!i&&!r}),0===t.length&&o.availableColumnIds.length>0){o.availableColumnIds.some(e=>e.includes("instant")||e.includes("duration"))||(t=o.availableColumnIds)}}else t=(null==o?void 0:o.periodTypes)&&0!==o.periodTypes.size?1===o.periodTypes.size&&o.periodTypes.has("instant")?["instant"]:1===o.periodTypes.size&&o.periodTypes.has("duration")?["duration"]:"instant"===e.periodType?["instant"]:"duration"===e.periodType?["duration"]:["duration","instant"]:["default"];t.forEach(t=>{const o=this.createFieldFromConcept(e,i,r,t);o&&l.push(o)})}const d=[];e.children&&e.children.length>0&&e.children.forEach(e=>{const a=this.buildConceptTree(e,t+1,i,r,o,n,s);a&&d.push(a)});return l.length>0||d.length>0?{id:this.createUniqueConceptId(e,n),originalConceptId:e.id,name:e.conceptName,label:a,description:`${e.conceptName} (${e.type})`,type:e.type,level:t,children:d,fields:l,collapsed:t>0,abstract:e.elementAbstract,periodType:e.periodType}:null}static createFieldFromConcept(e,t,i,r){const o=this.mapXBRLTypeToFieldType(e.type),n=this.getPreferredLabel(e.labels);let s;s=r||("instant"===e.periodType?"instant":"duration"===e.periodType?"duration":"default");const a={id:`${e.id}_${s}_field`,conceptId:e.id,columnId:s,type:o,label:n,placeholder:`Enter ${n.toLowerCase()}`,required:!1,disabled:e.elementAbstract,defaultValue:null};return"duration"!==e.periodType&&"instant"!==e.periodType||(a.periodStartDate=t||"2025-01-01",a.periodEndDate=i||"2025-12-31"),a}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),r=i.length>0?i:e,o=r.find(e=>e.preferredLabel);if(o)return o.label;const n=r.find(e=>"http://www.xbrl.org/2003/role/label"===e.role);if(n)return n.label;const s=r.find(e=>"http://www.xbrl.org/2003/role/terseLabel"===e.role);return s?s.label:r.length>0?r[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,r,o,n,s){var a,l;const d=o||this.getAllNonAbstractConcepts(e),c=n||new Set(d.filter(e=>e.periodType).map(e=>e.periodType));if(0===d.length)return[{id:"default",title:"Value",description:"Default value column",type:"base",order:0,removable:!1}];let p=[];if(1===(null==(a=null==r?void 0:r.items)?void 0:a.length)){const e=r.items[0];1===e.dimensions.length?p=this.generateSingleDimensionColumns(e.dimensions[0],t,i,c):e.dimensions.length>1&&(p=this.generateMultiDimensionColumns(e.dimensions,t,i,c)),s&&(p=this.filterColumnsByPeriodPreferences(p,s))}else(null==(l=null==r?void 0:r.items)?void 0:l.length)&&r.items.length;const m=[];p.length>0?m.push(...p):0===c.size?m.push({id:"default",title:"Value",description:"Default value column",type:"base",order:0,removable:!1}):1===c.size&&c.has("instant")?m.push({id:"instant",title:i,description:"",type:"base",order:0,removable:!1}):1===c.size&&c.has("duration")?m.push({id:"duration",title:`${t} / ${i}`,description:"",type:"base",order:0,removable:!1}):(m.push({id:"duration",title:`${t} / ${i}`,description:"",type:"base",order:0,removable:!1}),m.push({id:"instant",title:i,description:"",type:"base",order:1,removable:!1}));let h=m;if(s&&(h=this.filterColumnsByPeriodPreferences(m,s)),null==s?void 0:s.showPreviousYear){const e=this.generatePreviousYearColumns(h,t,i);h=[...h,...e]}return h}static getPreviousYearDate(e){try{const t=new Date(e);return t.setFullYear(t.getFullYear()-1),t.toISOString().split("T")[0]}catch(t){return console.error(`Error calculating previous year for date ${e}:`,t),e}}static generatePreviousYearColumns(e,t,i){const r=[],o=this.getPreviousYearDate(t),n=this.getPreviousYearDate(i);return e.forEach((e,t)=>{let i=e.title,s="",a="";e.dimensionData?(i=e.title,s=e.description&&e.description.includes("/")?`${o} / ${n}`:n,a=`${e.id}_prev`):"instant"===e.id||e.id.includes("instant")?(i=n,s="",a=`instant_prev_${t}`):"duration"===e.id||e.id.includes("duration")?(i=`${o} / ${n}`,s="",a=`duration_prev_${t}`):e.title.includes("/")?(i=`${o} / ${n}`,s="",a=`${e.id}_prev`):(i=n,s="",a=`${e.id}_prev`),r.push({...e,id:a,title:i,description:s,order:e.order+100,removable:!0,periodStartDate:o,periodEndDate:n,dimensionData:e.dimensionData?{...e.dimensionData,dimensionId:`${e.dimensionData.dimensionId}_prev`}:void 0})}),r}static filterColumnsByPeriodPreferences(e,t){return e.filter(e=>{var i,r,o,n;const s=e.id.includes("duration")||(null==(r=null==(i=e.dimensionData)?void 0:i.dimensionId)?void 0:r.includes("duration")),a=e.id.includes("instant")||(null==(n=null==(o=e.dimensionData)?void 0:o.dimensionId)?void 0:n.includes("instant"));return!s&&!a||!(s&&!t.showDuration)&&!(a&&!t.showInstant)})}static generateSingleDimensionColumns(e,t,i,r){var o,n,s;if(e.typedMember&&(!e.members||0===e.members.length)){const n=(null==(o=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:o.label)||e.conceptName,s={axisId:e.id,axisLabel:n,typedMemberId:e.typedMember.id,dimensionKey:`${n} | [Typed Input]`,dimensionIdKey:`${e.id}|[typed]`},a=[];return 0===r.size?a.push({id:"typed-default",title:n,description:"Typed dimension input column",type:"dimension",dimensionData:{dimensionId:"typed-default",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:0,removable:!1}):1===r.size&&r.has("instant")?a.push({id:"typed-instant",title:`${n} [Typed Input Available]`,description:i,type:"dimension",dimensionData:{dimensionId:"typed-instant",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:0,removable:!1}):1===r.size&&r.has("duration")?a.push({id:"typed-duration",title:`${n} [Typed Input Available]`,description:`${t} / ${i}`,type:"dimension",dimensionData:{dimensionId:"typed-duration",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:0,removable:!1}):(a.push({id:"typed-duration",title:`${n} [Typed Input Available]`,description:`${t} / ${i}`,type:"dimension",dimensionData:{dimensionId:"typed-duration",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:0,removable:!1}),a.push({id:"typed-instant",title:`${n} [Typed Input Available]`,description:i,type:"dimension",dimensionData:{dimensionId:"typed-instant",axisId:s.axisId,memberId:"[typed]",memberValue:"Typed Input",memberLabel:"Typed Input",axis:s.axisLabel,axisLabel:s.axisLabel,memberKey:s.dimensionKey,dimensionIdKey:s.dimensionIdKey,hasTypedMembers:!0,typedMemberId:s.typedMemberId,typedMembers:[{axisId:s.axisId,axisLabel:s.axisLabel,typedMemberId:s.typedMemberId,memberLabel:s.axisLabel}]},order:1,removable:!1})),a}if(!e.members||!Array.isArray(e.members))return[];if(0===e.members.length)return[];const a=(null==(n=e.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:n.label)||e.conceptName,l=e.members[0],d=(null==(s=l.labels.find(e=>"http://www.xbrl.org/2003/role/label"===e.role))?void 0:s.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===r.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===r.size&&r.has("instant")?p.push({id:"instant",title:`${c.memberLabel}`,description:i,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===r.size&&r.has("duration")?p.push({id:"duration",title:`${c.memberLabel}`,description:`${t} / ${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:`${t} / ${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:i,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,r){e.some(e=>e.typedMember);const o=e.filter(e=>!!e.typedMember||!!(e.members&&Array.isArray(e.members)&&e.members.length>0));if(0===o.length)return[];const n=o.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 r=this.getAllDimensionMembers(e.members);return{id:e.id,axisLabel:i,isTyped:!1,members:r.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}})}}),s=this.generateDimensionCombinations(n),a=[];return s.forEach((e,o)=>{const n=e.map(e=>e.memberLabel).join(" | "),s=e.filter(e=>e.isTyped),l=e.filter(e=>!e.isTyped),d={dimensionId:`multi_${o}`,memberValue:n,memberLabel:n,combinations:l.map(e=>({axisId:e.axisId,axisLabel:e.axisLabel,memberId:e.memberId,memberLabel:e.memberLabel})),typedMembers:s.map(e=>({axisId:e.axisId,axisLabel:e.axisLabel,typedMemberId:e.typedMemberId,memberLabel:e.memberLabel})),hasTypedMembers:s.length>0,memberKey:n,dimensionIdKey:[...l.map(e=>`${e.axisId}|${e.memberId}`),...s.map(e=>`${e.axisId}|[typed]`)].join("::")};0===r.size||1===r.size&&r.has("duration")?a.push({id:`duration_${o}`,title:`${n}`,description:`${t} / ${i}`,type:"dimension",dimensionData:{...d,dimensionId:`duration_${o}`},order:2*o,removable:!1}):1===r.size&&r.has("instant")?a.push({id:`instant_${o}`,title:`${n}`,description:i,type:"dimension",dimensionData:{...d,dimensionId:`instant_${o}`},order:2*o,removable:!1}):(a.push({id:`duration_${o}`,title:`${n}`,description:`${t} / ${i}`,type:"dimension",dimensionData:{...d,dimensionId:`duration_${o}`},order:2*o,removable:!1}),a.push({id:`instant_${o}`,title:`${n}`,description:i,type:"dimension",dimensionData:{...d,dimensionId:`instant_${o}`},order:2*o+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,r=this.generateDimensionCombinations(i),o=[];return t.members.forEach(e=>{0===r.length?o.push([{axisId:t.id,axisLabel:t.axisLabel,memberId:e.id,memberLabel:e.label,isTyped:t.isTyped||!1,typedMemberId:t.typedMemberId}]):r.forEach(i=>{o.push([{axisId:t.id,axisLabel:t.axisLabel,memberId:e.id,memberLabel:e.label,isTyped:t.isTyped||!1,typedMemberId:t.typedMemberId},...i])})}),o}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"}]}}const k={en:{form:{loading:"Loading form...",submit:"Submit",saveDraft:"Save Draft",errors:"Errors",modified:"Modified",valid:"Valid",yes:"Yes",no:"No",noRoleSelected:"No Role Selected",pleaseSelectRole:"Please select a role from the list on the left."},filter:{selectRoles:"Select Roles",filterRoles:"Filter Roles",title:"Filter Roles",description:"Select the roles you want to display in the form. You can search and choose specific roles to focus on or manage all available roles.",searchPlaceholder:"Search roles by name, ID, or URI...",clearSearch:"Clear search",showingResults:"Showing",of:"of",roles:"roles",matching:"matching",selectAll:"Select All",selectNone:"Select None",selectFiltered:"Select Filtered",deselectFiltered:"Deselect Filtered",deselectAll:"Deselect All",reset:"Reset",noRolesFound:"No roles found matching",tryDifferentSearch:"Try a different search term or clear the search.",noRolesAvailable:"No roles available.",cancel:"Cancel",applyFilter:"Apply Filter",showPeriodColumn:"Show Period Column:",additionalOptions:"Additional Options:",showPreviousYear:"Show previous year",duration:"Duration",instant:"Instant",uri:"URI"},column:{addColumn:"Add Column",columnType:"Column Type",instantSingleDate:"Instant (single date)",durationDates:"Duration (start and end dates)",instantDate:"Instant Date",startPeriodDate:"Start Period Date",endPeriodDate:"End Period Date",availableDimensions:"Available Dimensions",dimensionsDescription:"Select dimensions to include in the column. Domain members can be selected here, while typed dimension values will be entered directly in the column header.",enterValue:"Enter value for",enterValuePlaceholder:"Enter value...",selectMember:"Select member:",noMembersAvailable:"No members available for this dimension",cancel:"Cancel",removeColumn:"Remove column",required:"required"},section:{enterPlaceholder:"Enter"},admin:{title:"Configure Roles",description:"Select which roles should display the 'Show Previous Year' checkbox and configure period type columns."},validation:{summary:"Please fix the following errors before submitting:",errorsFound:"errors found"}},nl:{form:{loading:"Formulier laden...",submit:"Indienen",saveDraft:"Concept opslaan",errors:"Fouten",modified:"Gewijzigd",valid:"Geldig",yes:"Ja",no:"Nee",noRoleSelected:"Geen rol geselecteerd",pleaseSelectRole:"Selecteer een rol uit de lijst aan de linkerkant."},filter:{selectRoles:"Rollen selecteren",filterRoles:"Rollen filteren",title:"Rollen filteren",description:"Selecteer de rollen die u in het formulier wilt weergeven. U kunt zoeken en specifieke rollen kiezen om op te focussen of alle beschikbare rollen beheren.",searchPlaceholder:"Zoek rollen op naam, ID of URI...",clearSearch:"Zoekopdracht wissen",showingResults:"Weergeven",of:"van",roles:"rollen",matching:"overeenkomend met",selectAll:"Alles selecteren",selectNone:"Niets selecteren",selectFiltered:"Gefilterd selecteren",deselectFiltered:"Gefilterd deselecteren",deselectAll:"Alles deselecteren",reset:"Resetten",noRolesFound:"Geen rollen gevonden die overeenkomen met",tryDifferentSearch:"Probeer een andere zoekterm of wis de zoekopdracht.",noRolesAvailable:"Geen rollen beschikbaar.",cancel:"Annuleren",applyFilter:"Filter toepassen",showPeriodColumn:"Periodekolom weergeven:",additionalOptions:"Aanvullende opties:",showPreviousYear:"Vorig jaar weergeven",duration:"Duur",instant:"Moment",uri:"URI"},column:{addColumn:"Kolom toevoegen",columnType:"Kolomtype",instantSingleDate:"Moment (enkele datum)",durationDates:"Duur (begin- en einddatum)",instantDate:"Momentdatum",startPeriodDate:"Startdatum periode",endPeriodDate:"Einddatum periode",availableDimensions:"Beschikbare dimensies",dimensionsDescription:"Selecteer dimensies om in de kolom op te nemen. Domeinleden kunnen hier worden geselecteerd, terwijl getypte dimensiewaarden direct in de kolomkop worden ingevoerd.",enterValue:"Voer waarde in voor",enterValuePlaceholder:"Voer waarde in...",selectMember:"Selecteer lid:",noMembersAvailable:"Geen leden beschikbaar voor deze dimensie",cancel:"Annuleren",removeColumn:"Kolom verwijderen",required:"verplicht"},section:{enterPlaceholder:"Invoeren"},admin:{title:"Rollen configureren",description:"Selecteer welke rollen het selectievakje 'Vorig jaar weergeven' moeten weergeven en configureer periodetype kolommen."},validation:{summary:"Corrigeer de volgende fouten voordat u indient:",errorsFound:"fouten gevonden"}}};class F{static setLanguage(e){k[e]?this.currentLanguage=e:(console.warn(`Language '${e}' not supported, falling back to 'en'`),this.currentLanguage="en")}static getLanguage(){return this.currentLanguage}static t(e,t){const i=e.split(".");let r=k[this.currentLanguage];for(const o of i){if(!r||"object"!=typeof r||!(o in r))return console.warn(`Translation key '${e}' not found for language '${this.currentLanguage}'`),e;r=r[o]}return t&&"string"==typeof r?this.interpolate(r,t):r}static interpolate(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,i)=>i in t?String(t[i]):e)}static has(e){const t=e.split(".");let i=k[this.currentLanguage];for(const r of t){if(!i||"object"!=typeof i||!(r in i))return!1;i=i[r]}return void 0!==i}static getAvailableLanguages(){return Object.keys(k)}}F.currentLanguage="en";const E={"nl-types:formattedExplanationItemType":{fieldType:"textarea",placeholder:"Enter detailed explanation..."},"nl-types:monetaryNoDecimals20ItemType":{fieldType:"number",htmlInputType:"number",allowDecimals:!1,step:1,placeholder:"Enter amount (no decimals)"},"xbrli:monetaryItemType":{fieldType:"currency",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"0.00"},"xbrli:stringItemType":{fieldType:"text",htmlInputType:"text",placeholder:"Enter text"},"xbrli:dateItemType":{fieldType:"date",htmlInputType:"date"},"xbrli:dateTimeItemType":{fieldType:"datetime",htmlInputType:"datetime-local"},"xbrli:integerItemType":{fieldType:"integer",htmlInputType:"number",allowDecimals:!1,step:1,placeholder:"Enter whole number"},"xbrli:nonNegativeIntegerItemType":{fieldType:"integer",htmlInputType:"number",allowDecimals:!1,min:0,step:1,placeholder:"Enter positive number"},"xbrli:positiveIntegerItemType":{fieldType:"integer",htmlInputType:"number",allowDecimals:!1,min:1,step:1,placeholder:"Enter positive number"},"xbrli:decimalItemType":{fieldType:"decimal",htmlInputType:"number",allowDecimals:!0,step:"any",placeholder:"Enter decimal value"},"xbrli:sharesItemType":{fieldType:"number",htmlInputType:"number",allowDecimals:!0,min:0,step:.01,placeholder:"Enter number of shares"},"xbrli:shares":{fieldType:"number",htmlInputType:"number",allowDecimals:!0,min:0,step:.01,placeholder:"Enter number of shares"},"xbrli:gYearItemType":{fieldType:"number",htmlInputType:"number",allowDecimals:!1,min:1900,max:2100,step:1,placeholder:"YYYY"},"xbrli:booleanItemType":{fieldType:"boolean"},"xbrli:pureItemType":{fieldType:"percentage",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"Enter percentage"},"xbrli:percentItemType":{fieldType:"percentage",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"Enter percentage"},"xbrli:emailItemType":{fieldType:"email",htmlInputType:"email",placeholder:"email@example.com"},"xbrli:urlItemType":{fieldType:"url",htmlInputType:"url",placeholder:"https://example.com"},"xbrli:telephoneItemType":{fieldType:"tel",htmlInputType:"tel",placeholder:"+1 (555) 000-0000"}};function j(e){if(!e)return{fieldType:"text",htmlInputType:"text",placeholder:"Enter value"};if(E[e])return E[e];const t=e.toLowerCase();if(t.includes("monetary"))return t.includes("nodecimals")||t.includes("no-decimals")?{fieldType:"number",htmlInputType:"number",allowDecimals:!1,step:1,placeholder:"Enter amount (no decimals)"}:{fieldType:"currency",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"0.00"};if(t.includes("explanation")||t.includes("description")||t.includes("notes")||t.includes("formatted"))return{fieldType:"textarea",placeholder:"Enter detailed information..."};if(t.includes("date"))return t.includes("time")?{fieldType:"datetime",htmlInputType:"datetime-local"}:{fieldType:"date",htmlInputType:"date"};if(t.includes("boolean")||t.includes("bool"))return{fieldType:"boolean"};if(t.includes("integer")||t.includes("int")){const e=t.includes("nonnegative")||t.includes("non-negative");return{fieldType:"integer",htmlInputType:"number",allowDecimals:!1,min:t.includes("positive")?1:e?0:void 0,step:1,placeholder:"Enter whole number"}}return t.includes("decimal")||t.includes("numeric")||t.includes("number")?{fieldType:"decimal",htmlInputType:"number",allowDecimals:!0,step:"any",placeholder:"Enter decimal value"}:t.includes("percent")||t.includes("pure")?{fieldType:"percentage",htmlInputType:"number",allowDecimals:!0,step:.01,placeholder:"Enter percentage"}:{fieldType:"text",htmlInputType:"text",placeholder:"Enter value"}}function P(e){return"textarea"===e}function R(e){return"boolean"===e}function A(e){return["number","decimal","integer","currency","percentage"].includes(e)}var L=Object.defineProperty,M=Object.getOwnPropertyDescriptor,z=(e,t,i,r)=>{for(var o,n=r>1?void 0:r?M(t,i):t,s=e.length-1;s>=0;s--)(o=e[s])&&(n=(r?o(t,i,n):o(n))||n);return r&&n&&L(t,i,n),n};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),r=this._errors.some(e=>"warning"===e.severity),o="field-input "+(i?"error":r?"warning":""),n=`${this.conceptId}__${this.columnId}`,s=`data[${this.conceptId}][${this.columnId}]`,a=j(this.conceptType);this.conceptType;const l=a.fieldType||this.field.type||"text";if("textarea"===l||P(l))return e.html`
23
23
  <textarea
24
24
  id="${n}"
25
25
  name="${s}"
@@ -1107,8 +1107,7 @@ const D={attribute:!0,type:String,converter:v,reflect:!1,hasChanged:x},I=(e=D,t,
1107
1107
  <!-- Dialog Content -->
1108
1108
  <div class="dialog-content">
1109
1109
  <p class="description">
1110
- Select the roles you want to display in the form. You can search and choose specific roles
1111
- to focus on or manage all ${i} available roles.
1110
+ ${F.t("filter.description")}
1112
1111
  </p>
1113
1112
 
1114
1113
  <!-- Search Input -->