jupiter-dynamic-forms 1.0.1 → 1.2.0
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/core/dynamic-form.d.ts +2 -0
- package/dist/core/dynamic-form.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +197 -13
- package/dist/index.mjs.map +1 -1
- package/dist/schema/types.d.ts +3 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/utils/xbrl-form-builder.d.ts +27 -3
- package/dist/utils/xbrl-form-builder.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../src/utils/validation.ts","../src/utils/xbrl-form-builder.ts","../src/core/form-field.ts","../src/core/concept-tree.ts","../src/core/form-section.ts","../src/core/dynamic-form.ts","../src/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import { ValidationRule, ValidationError, FieldType } from '../schema/types';\n\nexport class FormValidator {\n /**\n * Validates a field value against its validation rules\n */\n static validateField(\n fieldId: string,\n conceptId: string,\n columnId: string,\n value: any,\n fieldType: FieldType,\n rules: ValidationRule[] = []\n ): ValidationError[] {\n const errors: ValidationError[] = [];\n\n for (const rule of rules) {\n const error = this.validateRule(fieldId, conceptId, columnId, value, fieldType, rule);\n if (error) {\n errors.push(error);\n }\n }\n\n return errors;\n }\n\n /**\n * Validates a single rule against a value\n */\n private static validateRule(\n fieldId: string,\n conceptId: string,\n columnId: string,\n value: any,\n _fieldType: FieldType,\n rule: ValidationRule\n ): ValidationError | null {\n const isEmpty = value === null || value === undefined || value === '';\n\n switch (rule.type) {\n case 'required':\n if (isEmpty) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'min':\n if (!isEmpty && typeof value === 'number' && value < rule.value) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'max':\n if (!isEmpty && typeof value === 'number' && value > rule.value) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'minLength':\n if (!isEmpty && typeof value === 'string' && value.length < rule.value) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'maxLength':\n if (!isEmpty && typeof value === 'string' && value.length > rule.value) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'pattern':\n if (!isEmpty && typeof value === 'string') {\n const regex = new RegExp(rule.value);\n if (!regex.test(value)) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n }\n break;\n\n case 'email':\n if (!isEmpty && typeof value === 'string') {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(value)) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n }\n break;\n\n case 'url':\n if (!isEmpty && typeof value === 'string') {\n try {\n new URL(value);\n } catch {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n }\n break;\n\n case 'custom':\n // Custom validation would be handled by consuming application\n break;\n\n default:\n console.warn(`Unknown validation rule type: ${rule.type}`);\n }\n\n return null;\n }\n\n /**\n * Creates a validation error object\n */\n private static createError(\n fieldId: string,\n conceptId: string,\n columnId: string,\n rule: ValidationRule\n ): ValidationError {\n return {\n fieldId,\n conceptId,\n columnId,\n message: rule.message,\n severity: rule.severity || 'error',\n rule\n };\n }\n\n /**\n * Validates data type conversion\n */\n static validateDataType(value: any, fieldType: FieldType): { valid: boolean; convertedValue?: any; error?: string } {\n if (value === null || value === undefined || value === '') {\n return { valid: true, convertedValue: value };\n }\n\n switch (fieldType) {\n case 'number':\n case 'decimal':\n case 'currency':\n case 'percentage': {\n const numValue = Number(value);\n if (isNaN(numValue)) {\n return { valid: false, error: 'Invalid number format' };\n }\n return { valid: true, convertedValue: numValue };\n }\n\n case 'date': {\n const dateValue = new Date(value);\n if (isNaN(dateValue.getTime())) {\n return { valid: false, error: 'Invalid date format' };\n }\n return { valid: true, convertedValue: dateValue.toISOString().split('T')[0] };\n }\n\n case 'datetime': {\n const datetimeValue = new Date(value);\n if (isNaN(datetimeValue.getTime())) {\n return { valid: false, error: 'Invalid datetime format' };\n }\n return { valid: true, convertedValue: datetimeValue.toISOString() };\n }\n\n case 'boolean':\n if (typeof value === 'boolean') {\n return { valid: true, convertedValue: value };\n }\n if (typeof value === 'string') {\n const boolValue = value.toLowerCase();\n if (boolValue === 'true' || boolValue === '1') {\n return { valid: true, convertedValue: true };\n }\n if (boolValue === 'false' || boolValue === '0') {\n return { valid: true, convertedValue: false };\n }\n }\n return { valid: false, error: 'Invalid boolean format' };\n\n case 'text':\n case 'textarea':\n case 'email':\n case 'url':\n case 'tel':\n return { valid: true, convertedValue: String(value) };\n\n case 'select':\n case 'multiselect':\n return { valid: true, convertedValue: value };\n\n default:\n return { valid: true, convertedValue: value };\n }\n }\n\n /**\n * Formats value for display based on field type\n */\n static formatValue(value: any, fieldType: FieldType, locale = 'en-US'): string {\n if (value === null || value === undefined) return '';\n\n switch (fieldType) {\n case 'number':\n return new Intl.NumberFormat(locale).format(Number(value));\n\n case 'decimal':\n return new Intl.NumberFormat(locale, { \n minimumFractionDigits: 2,\n maximumFractionDigits: 2 \n }).format(Number(value));\n\n case 'currency':\n return new Intl.NumberFormat(locale, { \n style: 'currency',\n currency: 'USD' // Should be configurable\n }).format(Number(value));\n\n case 'percentage':\n return new Intl.NumberFormat(locale, { \n style: 'percent',\n minimumFractionDigits: 2\n }).format(Number(value) / 100);\n\n case 'date':\n return new Date(value).toLocaleDateString(locale);\n\n case 'datetime':\n return new Date(value).toLocaleString(locale);\n\n default:\n return String(value);\n }\n }\n}\n","import { \n XBRLFormInput, \n XBRLPresentationRole,\n XBRLPresentationConcept,\n XBRLLabel\n} from '../schema/xbrl-types';\nimport { \n XBRLFormSchema, \n FormSection, \n FormField, \n ConceptTree,\n FieldType \n} from '../schema/types';\n\n/**\n * XBRL Form Builder Service\n * Transforms XBRL taxonomy data into Jupiter Dynamic Form schemas\n * Updated to handle actual presentation.json structure with roles\n */\nexport class XBRLFormBuilder {\n \n /**\n * Build form schema from XBRL input data\n * Creates accordion sections for each presentation role\n */\n static buildFormSchema(xbrlInput: XBRLFormInput): XBRLFormSchema {\n if (!xbrlInput.presentation || xbrlInput.presentation.length === 0) {\n throw new Error('XBRL presentation data is required');\n }\n\n // Use the first entrypoint (typically there's only one)\n const presentationData = xbrlInput.presentation[0];\n \n const sections: FormSection[] = [];\n\n // Create a form section for each presentation role\n presentationData.roles.forEach(role => {\n const section = this.buildSectionFromRole(role);\n sections.push(section);\n });\n\n return {\n formId: `xbrl-form-${Date.now()}`,\n title: `XBRL Form - ${this.extractEntityName(presentationData.entrypoint)}`,\n description: `Dynamic form generated from XBRL taxonomy data`,\n version: '1.0.0',\n sections: sections\n };\n }\n\n /**\n * Build a form section from a presentation role\n */\n private static buildSectionFromRole(role: XBRLPresentationRole): FormSection {\n // Extract section title from role name (remove role number prefix)\n const title = this.extractRoleTitle(role.role);\n \n const conceptTrees: ConceptTree[] = [];\n\n // Process root concepts and build tree structure (if any exist)\n if (role.presentationLinkbase?.concepts) {\n role.presentationLinkbase.concepts.forEach(concept => {\n const conceptTree = this.buildConceptTree(concept, 0);\n if (conceptTree) {\n conceptTrees.push(conceptTree);\n }\n });\n }\n\n return {\n id: role.id,\n title: title,\n description: `Section for ${title}`,\n concepts: conceptTrees,\n expanded: false\n };\n }\n\n /**\n * Build concept tree from XBRL presentation concept\n */\n private static buildConceptTree(concept: XBRLPresentationConcept, level: number): ConceptTree | null {\n const label = this.getPreferredLabel(concept.labels);\n \n // Build fields for this concept (if not abstract)\n const fields: FormField[] = [];\n if (!concept.elementAbstract) {\n const field = this.createFieldFromConcept(concept);\n if (field) {\n fields.push(field);\n }\n }\n\n // Process children recursively\n const children: ConceptTree[] = [];\n if (concept.children && concept.children.length > 0) {\n concept.children.forEach(child => {\n const childTree = this.buildConceptTree(child, level + 1);\n if (childTree) {\n children.push(childTree);\n }\n });\n }\n\n return {\n id: concept.id,\n name: concept.conceptName,\n label: label,\n description: `${concept.conceptName} (${concept.type})`,\n level: level,\n children: children,\n fields: fields,\n collapsed: level > 0 // Collapse nested levels by default\n };\n }\n\n /**\n * Create form field from XBRL concept\n */\n private static createFieldFromConcept(concept: XBRLPresentationConcept): FormField | null {\n const fieldType = this.mapXBRLTypeToFieldType(concept.type);\n const label = this.getPreferredLabel(concept.labels);\n\n return {\n id: `${concept.id}_field`,\n conceptId: concept.id,\n columnId: 'default', // Default column, will be expanded later\n type: fieldType,\n label: label,\n placeholder: `Enter ${label.toLowerCase()}`,\n required: false, // Will be determined by validation rules\n disabled: concept.elementAbstract,\n defaultValue: null\n };\n }\n\n /**\n * Map XBRL data type to form field type\n */\n private static mapXBRLTypeToFieldType(xbrlType: string): FieldType {\n const typeMap: Record<string, FieldType> = {\n 'xbrli:stringItemType': 'text',\n 'xbrli:monetaryItemType': 'currency',\n 'xbrli:integerItemType': 'number',\n 'xbrli:decimalItemType': 'decimal',\n 'xbrli:percentItemType': 'percentage',\n 'xbrli:dateItemType': 'date',\n 'xbrli:booleanItemType': 'boolean',\n 'dtr-types:domainItemType': 'select',\n 'bw2-titel9:chamberOfCommerceRegistrationNumberItemType': 'text'\n };\n\n return typeMap[xbrlType] || 'text';\n }\n\n /**\n * Get preferred label from labels array\n */\n private static getPreferredLabel(labels: XBRLLabel[]): string {\n if (!labels || labels.length === 0) return 'Unnamed Concept';\n\n // Try to find preferred label\n const preferred = labels.find(l => l.preferredLabel);\n if (preferred) return preferred.label;\n\n // Try to find standard label\n const standard = labels.find(l => l.role === 'http://www.xbrl.org/2003/role/label');\n if (standard) return standard.label;\n\n // Try to find terse label\n const terse = labels.find(l => l.role === 'http://www.xbrl.org/2003/role/terseLabel');\n if (terse) return terse.label;\n\n // Return first available label\n return labels[0].label;\n }\n\n /**\n * Extract entity name from entrypoint URL\n */\n private static extractEntityName(entrypoint: string): string {\n try {\n const url = new URL(entrypoint);\n const pathParts = url.pathname.split('/');\n const filename = pathParts[pathParts.length - 1];\n return filename.replace('.xsd', '').replace(/[^a-zA-Z0-9]/g, ' ').trim() || 'Entity';\n } catch {\n return 'Entity';\n }\n }\n\n /**\n * Extract role title from role string\n */\n private static extractRoleTitle(role: string): string {\n // Remove role number prefix like \"[000001] \" and return the title\n const match = role.match(/^\\[[\\d]+\\]\\s*(.+)$/);\n return match ? match[1].trim() : role;\n }\n\n /**\n * Extract role order from role string\n */\n private static extractRoleOrder(role: string): number {\n const match = role.match(/^\\[([\\d]+)\\]/);\n return match ? parseInt(match[1], 10) : 0;\n }\n\n /**\n * Build columns from XBRL hypercube data (placeholder for now)\n */\n static buildColumnsFromHypercubes(/* _hypercubes: any[] */): any[] {\n // For now, return default column structure\n // This will be expanded when we implement hypercube support\n return [{\n id: 'default',\n label: 'Values',\n type: 'data'\n }];\n }\n}\n","import { LitElement, html, css, PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { FormField, ValidationError } from '../schema/types';\nimport { FormValidator } from '../utils/validation';\n\n@customElement('jupiter-form-field')\nexport class JupiterFormField extends LitElement {\n @property({ type: Object }) field!: FormField;\n @property({ type: String }) conceptId!: string;\n @property({ type: String }) columnId!: string;\n @property() value: any = null;\n @property({ type: Boolean }) disabled = false;\n @property({ type: String }) locale = 'en-US';\n\n @state() private _errors: ValidationError[] = [];\n @state() private _touched = false;\n\n static styles = css`\n :host {\n display: block;\n margin-bottom: 8px;\n }\n\n .field-container {\n position: relative;\n }\n\n .field-label {\n display: block;\n font-weight: 500;\n margin-bottom: 4px;\n color: var(--jupiter-text-primary, #333);\n font-size: 14px;\n }\n\n .field-label.required::after {\n content: ' *';\n color: var(--jupiter-error-color, #d32f2f);\n }\n\n .field-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--jupiter-border-color, #ddd);\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background: var(--jupiter-input-background, #fff);\n color: var(--jupiter-text-primary, #333);\n box-sizing: border-box;\n }\n\n .field-input:focus {\n outline: none;\n border-color: var(--jupiter-primary-color, #1976d2);\n box-shadow: 0 0 0 2px var(--jupiter-primary-color-light, rgba(25, 118, 210, 0.2));\n }\n\n .field-input:disabled {\n background: var(--jupiter-disabled-background, #f5f5f5);\n color: var(--jupiter-disabled-text, #999);\n cursor: not-allowed;\n }\n\n .field-input.error {\n border-color: var(--jupiter-error-color, #d32f2f);\n }\n\n .field-input.warning {\n border-color: var(--jupiter-warning-color, #ff9800);\n }\n\n .field-errors {\n margin-top: 4px;\n }\n\n .field-error {\n display: block;\n font-size: 12px;\n margin-bottom: 2px;\n }\n\n .field-error.error {\n color: var(--jupiter-error-color, #d32f2f);\n }\n\n .field-error.warning {\n color: var(--jupiter-warning-color, #ff9800);\n }\n\n .field-error.info {\n color: var(--jupiter-info-color, #2196f3);\n }\n\n select.field-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 8px center;\n background-repeat: no-repeat;\n background-size: 16px;\n padding-right: 32px;\n }\n\n textarea.field-input {\n resize: vertical;\n min-height: 60px;\n }\n\n .checkbox-container {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .checkbox-container input[type=\"checkbox\"] {\n margin: 0;\n width: auto;\n }\n `;\n\n protected willUpdate(changedProperties: PropertyValues) {\n if (changedProperties.has('value') || changedProperties.has('field')) {\n this._validateField();\n }\n }\n\n private _validateField() {\n if (this.field?.validation) {\n this._errors = FormValidator.validateField(\n this.field.id,\n this.conceptId,\n this.columnId,\n this.value,\n this.field.type,\n this.field.validation\n );\n }\n }\n\n private _handleInput(event: Event) {\n const target = event.target as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n let value: any = target.value;\n\n // Convert value based on field type\n if (this.field.type === 'number' || this.field.type === 'decimal') {\n value = value === '' ? null : Number(value);\n } else if (this.field.type === 'boolean') {\n value = (target as HTMLInputElement).checked;\n }\n\n this.value = value;\n this._touched = true;\n \n this.dispatchEvent(new CustomEvent('field-change', {\n detail: {\n fieldId: this.field.id,\n conceptId: this.conceptId,\n columnId: this.columnId,\n value,\n oldValue: this.value\n },\n bubbles: true\n }));\n }\n\n private _handleFocus() {\n this.dispatchEvent(new CustomEvent('field-focus', {\n detail: {\n fieldId: this.field.id,\n conceptId: this.conceptId,\n columnId: this.columnId\n },\n bubbles: true\n }));\n }\n\n private _handleBlur() {\n this._touched = true;\n this.dispatchEvent(new CustomEvent('field-blur', {\n detail: {\n fieldId: this.field.id,\n conceptId: this.conceptId,\n columnId: this.columnId\n },\n bubbles: true\n }));\n }\n\n private _renderInput() {\n const hasErrors = this._errors.some(e => e.severity === 'error');\n const hasWarnings = this._errors.some(e => e.severity === 'warning');\n const cssClass = `field-input ${hasErrors ? 'error' : hasWarnings ? 'warning' : ''}`;\n\n switch (this.field.type) {\n case 'textarea':\n return html`\n <textarea\n class=\"${cssClass}\"\n .value=\"${this.value || ''}\"\n ?disabled=\"${this.disabled || this.field.disabled}\"\n placeholder=\"${this.field.placeholder || ''}\"\n @input=\"${this._handleInput}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n ></textarea>\n `;\n\n case 'select':\n return html`\n <select\n class=\"${cssClass}\"\n .value=\"${this.value || ''}\"\n ?disabled=\"${this.disabled || this.field.disabled}\"\n @change=\"${this._handleInput}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n >\n <option value=\"\">Select...</option>\n ${this.field.options?.map(option => html`\n <option \n value=\"${option.value}\"\n ?disabled=\"${option.disabled}\"\n ?selected=\"${this.value === option.value}\"\n >\n ${option.label}\n </option>\n `)}\n </select>\n `;\n\n case 'boolean':\n return html`\n <div class=\"checkbox-container\">\n <input\n type=\"checkbox\"\n class=\"field-input\"\n .checked=\"${Boolean(this.value)}\"\n ?disabled=\"${this.disabled || this.field.disabled}\"\n @change=\"${this._handleInput}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n />\n <span>${this.field.label}</span>\n </div>\n `;\n\n default:\n return html`\n <input\n type=\"${this._getInputType()}\"\n class=\"${cssClass}\"\n .value=\"${this.value || ''}\"\n ?disabled=\"${this.disabled || this.field.disabled}\"\n placeholder=\"${this.field.placeholder || ''}\"\n @input=\"${this._handleInput}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n />\n `;\n }\n }\n\n private _getInputType(): string {\n switch (this.field.type) {\n case 'number':\n case 'decimal':\n case 'currency':\n case 'percentage':\n return 'number';\n case 'date':\n return 'date';\n case 'datetime':\n return 'datetime-local';\n case 'email':\n return 'email';\n case 'url':\n return 'url';\n case 'tel':\n return 'tel';\n default:\n return 'text';\n }\n }\n\n render() {\n const showLabel = this.field.type !== 'boolean';\n\n return html`\n <div class=\"field-container\">\n ${showLabel ? html`\n <label class=\"field-label ${this.field.required ? 'required' : ''}\">\n ${this.field.label}\n </label>\n ` : ''}\n \n ${this._renderInput()}\n \n ${this._errors.length > 0 && this._touched ? html`\n <div class=\"field-errors\">\n ${this._errors.map(error => html`\n <span class=\"field-error ${error.severity}\">\n ${error.message}\n </span>\n `)}\n </div>\n ` : ''}\n </div>\n `;\n }\n}\n","import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ConceptTree, FormColumn, FormField } from '../schema/types';\nimport './form-field';\n\n@customElement('jupiter-concept-tree')\nexport class JupiterConceptTree extends LitElement {\n @property({ type: Object }) concept!: ConceptTree;\n @property({ type: Array }) columns: FormColumn[] = [];\n @property({ type: Object }) formData: Record<string, any> = {};\n @property({ type: Boolean }) disabled = false;\n @property({ type: String }) locale = 'en-US';\n\n @state() private _expanded = true;\n\n static styles = css`\n :host {\n display: block;\n }\n\n .concept-row {\n display: contents;\n }\n\n .concept-header {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n background: var(--jupiter-concept-background, #f8f9fa);\n border: 1px solid var(--jupiter-border-color, #ddd);\n border-bottom: none;\n font-weight: 500;\n cursor: pointer;\n user-select: none;\n }\n\n .concept-header:hover {\n background: var(--jupiter-concept-hover-background, #e9ecef);\n }\n\n .concept-indent {\n width: calc(var(--level, 0) * 20px);\n flex-shrink: 0;\n }\n\n .concept-toggle {\n width: 16px;\n height: 16px;\n margin-right: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n transition: transform 0.2s ease;\n }\n\n .concept-toggle.expanded {\n transform: rotate(90deg);\n }\n\n .concept-toggle.no-children {\n visibility: hidden;\n }\n\n .concept-label {\n flex: 1;\n color: var(--jupiter-text-primary, #333);\n }\n\n .concept-description {\n font-size: 12px;\n color: var(--jupiter-text-secondary, #666);\n font-weight: normal;\n margin-left: 8px;\n }\n\n .concept-fields {\n display: contents;\n }\n\n .field-cell {\n border: 1px solid var(--jupiter-border-color, #ddd);\n border-bottom: none;\n padding: 8px;\n background: var(--jupiter-cell-background, #fff);\n min-height: 40px;\n display: flex;\n align-items: center;\n }\n\n .field-cell:last-child {\n border-right: 1px solid var(--jupiter-border-color, #ddd);\n }\n\n .field-cell.empty {\n background: var(--jupiter-empty-cell-background, #f8f9fa);\n }\n\n .children {\n display: contents;\n }\n\n .children.collapsed {\n display: none;\n }\n\n .concept-row:last-of-type .concept-header,\n .concept-row:last-of-type .field-cell {\n border-bottom: 1px solid var(--jupiter-border-color, #ddd);\n }\n `;\n\n connectedCallback() {\n super.connectedCallback();\n this._expanded = !this.concept.collapsed;\n }\n\n private _toggleExpanded() {\n this._expanded = !this._expanded;\n \n this.dispatchEvent(new CustomEvent('concept-expand', {\n detail: {\n conceptId: this.concept.id,\n expanded: this._expanded\n },\n bubbles: true\n }));\n }\n\n private _getFieldForColumn(columnId: string): FormField | undefined {\n return this.concept.fields.find(field => field.columnId === columnId);\n }\n\n private _getFieldValue(field: FormField): any {\n return this.formData[this.concept.id]?.[field.columnId];\n }\n\n private _handleFieldChange(event: CustomEvent) {\n event.stopPropagation();\n // Re-dispatch with updated detail\n this.dispatchEvent(new CustomEvent('field-change', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n render() {\n const hasChildren = this.concept.children && this.concept.children.length > 0;\n const level = this.concept.level || 0;\n\n return html`\n <div class=\"concept-row\" style=\"--level: ${level}\">\n <!-- Concept Label Column -->\n <div class=\"concept-header\" @click=\"${this._toggleExpanded}\">\n <div class=\"concept-indent\"></div>\n <div class=\"concept-toggle ${hasChildren ? (this._expanded ? 'expanded' : '') : 'no-children'}\">\n ${hasChildren ? '▶' : ''}\n </div>\n <div class=\"concept-label\">\n ${this.concept.label}\n ${this.concept.description ? html`\n <span class=\"concept-description\">${this.concept.description}</span>\n ` : ''}\n </div>\n </div>\n\n <!-- Field Columns -->\n ${this.columns.map(column => {\n const field = this._getFieldForColumn(column.id);\n \n return html`\n <div class=\"field-cell ${!field ? 'empty' : ''}\">\n ${field ? html`\n <jupiter-form-field\n .field=\"${field}\"\n .conceptId=\"${this.concept.id}\"\n .columnId=\"${column.id}\"\n .value=\"${this._getFieldValue(field)}\"\n .disabled=\"${this.disabled}\"\n .locale=\"${this.locale}\"\n @field-change=\"${this._handleFieldChange}\"\n ></jupiter-form-field>\n ` : ''}\n </div>\n `;\n })}\n </div>\n\n <!-- Children Concepts -->\n ${hasChildren ? html`\n <div class=\"children ${!this._expanded ? 'collapsed' : ''}\">\n ${this.concept.children!.map(child => html`\n <jupiter-concept-tree\n .concept=\"${child}\"\n .columns=\"${this.columns}\"\n .formData=\"${this.formData}\"\n .disabled=\"${this.disabled}\"\n .locale=\"${this.locale}\"\n @field-change=\"${this._handleFieldChange}\"\n @concept-expand=\"${(e: CustomEvent) => { \n e.stopPropagation(); \n this.dispatchEvent(new CustomEvent('concept-expand', { detail: e.detail, bubbles: true })); \n }}\"\n ></jupiter-concept-tree>\n `)}\n </div>\n ` : ''}\n `;\n }\n}\n","import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { FormSection, FormColumn } from '../schema/types';\nimport './concept-tree';\n\n@customElement('jupiter-form-section')\nexport class JupiterFormSection extends LitElement {\n @property({ type: Object }) section!: FormSection;\n @property({ type: Array }) columns: FormColumn[] = [];\n @property({ type: Object }) formData: Record<string, any> = {};\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) collapsible = true;\n @property({ type: String }) locale = 'en-US';\n\n @state() private _expanded = true;\n\n static styles = css`\n :host {\n display: block;\n margin-bottom: 16px;\n border: 1px solid var(--jupiter-border-color, #ddd);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .section-header {\n background: var(--jupiter-section-header-background, #f0f2f5);\n padding: 16px;\n border-bottom: 1px solid var(--jupiter-border-color, #ddd);\n cursor: pointer;\n user-select: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .section-header:hover {\n background: var(--jupiter-section-header-hover-background, #e4e7ea);\n }\n\n .section-header.not-collapsible {\n cursor: default;\n }\n\n .section-header.not-collapsible:hover {\n background: var(--jupiter-section-header-background, #f0f2f5);\n }\n\n .section-title {\n font-size: 18px;\n font-weight: 600;\n color: var(--jupiter-text-primary, #333);\n margin: 0;\n }\n\n .section-description {\n font-size: 14px;\n color: var(--jupiter-text-secondary, #666);\n margin: 4px 0 0 0;\n }\n\n .section-toggle {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n transition: transform 0.2s ease;\n color: var(--jupiter-text-secondary, #666);\n }\n\n .section-toggle.expanded {\n transform: rotate(90deg);\n }\n\n .section-toggle.hidden {\n visibility: hidden;\n }\n\n .section-content {\n display: block;\n transition: max-height 0.3s ease;\n overflow: hidden;\n }\n\n .section-content.collapsed {\n display: none;\n }\n\n .table-container {\n overflow-x: auto;\n }\n\n .form-table {\n width: 100%;\n border-collapse: collapse;\n background: var(--jupiter-table-background, #fff);\n }\n\n .table-header {\n background: var(--jupiter-header-background, #f8f9fa);\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .header-cell {\n padding: 12px;\n text-align: left;\n font-weight: 600;\n color: var(--jupiter-text-primary, #333);\n border: 1px solid var(--jupiter-border-color, #ddd);\n background: var(--jupiter-header-background, #f8f9fa);\n min-width: 150px;\n }\n\n .header-cell.concept-column {\n min-width: 300px;\n position: sticky;\n left: 0;\n z-index: 2;\n }\n\n .header-cell.removable {\n position: relative;\n }\n\n .remove-column-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n border: none;\n background: var(--jupiter-error-color, #d32f2f);\n color: white;\n border-radius: 50%;\n font-size: 12px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .remove-column-btn:hover {\n background: var(--jupiter-error-color-dark, #b71c1c);\n }\n\n .table-body {\n display: table-row-group;\n }\n\n .empty-section {\n padding: 24px;\n text-align: center;\n color: var(--jupiter-text-secondary, #666);\n font-style: italic;\n }\n `;\n\n connectedCallback() {\n super.connectedCallback();\n this._expanded = this.section.expanded !== false;\n }\n\n private _toggleExpanded() {\n if (!this.collapsible) return;\n \n this._expanded = !this._expanded;\n \n this.dispatchEvent(new CustomEvent('section-expand', {\n detail: {\n sectionId: this.section.id,\n expanded: this._expanded\n },\n bubbles: true\n }));\n }\n\n private _handleRemoveColumn(columnId: string) {\n this.dispatchEvent(new CustomEvent('column-remove', {\n detail: { columnId },\n bubbles: true\n }));\n }\n\n private _handleFieldChange(event: CustomEvent) {\n event.stopPropagation();\n this.dispatchEvent(new CustomEvent('field-change', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n private _handleConceptExpand(event: CustomEvent) {\n event.stopPropagation();\n this.dispatchEvent(new CustomEvent('concept-expand', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n render() {\n if (!this.section.concepts || this.section.concepts.length === 0) {\n return html`\n <div class=\"section-header ${!this.collapsible ? 'not-collapsible' : ''}\" \n @click=\"${this._toggleExpanded}\">\n <div>\n <h3 class=\"section-title\">${this.section.title}</h3>\n ${this.section.description ? html`\n <p class=\"section-description\">${this.section.description}</p>\n ` : ''}\n </div>\n <div class=\"section-toggle ${this.collapsible ? (this._expanded ? 'expanded' : '') : 'hidden'}\">\n ${this.collapsible ? '▶' : ''}\n </div>\n </div>\n \n <div class=\"section-content ${!this._expanded ? 'collapsed' : ''}\">\n <div class=\"empty-section\">\n No concepts defined for this section.\n </div>\n </div>\n `;\n }\n\n return html`\n <div class=\"section-header ${!this.collapsible ? 'not-collapsible' : ''}\" \n @click=\"${this._toggleExpanded}\">\n <div>\n <h3 class=\"section-title\">${this.section.title}</h3>\n ${this.section.description ? html`\n <p class=\"section-description\">${this.section.description}</p>\n ` : ''}\n </div>\n <div class=\"section-toggle ${this.collapsible ? (this._expanded ? 'expanded' : '') : 'hidden'}\">\n ${this.collapsible ? '▶' : ''}\n </div>\n </div>\n\n <div class=\"section-content ${!this._expanded ? 'collapsed' : ''}\">\n <div class=\"table-container\">\n <table class=\"form-table\">\n <thead class=\"table-header\">\n <tr>\n <th class=\"header-cell concept-column\">Concept</th>\n ${this.columns.map(column => html`\n <th class=\"header-cell ${column.removable ? 'removable' : ''}\">\n ${column.title}\n ${column.description ? html`<div style=\"font-weight: normal; font-size: 12px; color: var(--jupiter-text-secondary, #666);\">${column.description}</div>` : ''}\n ${column.removable ? html`\n <button \n class=\"remove-column-btn\"\n @click=\"${(e: Event) => {\n e.stopPropagation();\n this._handleRemoveColumn(column.id);\n }}\"\n title=\"Remove column\"\n >×</button>\n ` : ''}\n </th>\n `)}\n </tr>\n </thead>\n <tbody class=\"table-body\">\n ${this.section.concepts.map(concept => html`\n <jupiter-concept-tree\n .concept=\"${concept}\"\n .columns=\"${this.columns}\"\n .formData=\"${this.formData}\"\n .disabled=\"${this.disabled}\"\n .locale=\"${this.locale}\"\n @field-change=\"${this._handleFieldChange}\"\n @concept-expand=\"${this._handleConceptExpand}\"\n ></jupiter-concept-tree>\n `)}\n </tbody>\n </table>\n </div>\n </div>\n `;\n }\n}\n","import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { \n XBRLFormSchema, \n FormData, \n FormColumn, \n ValidationError, \n FormState,\n ComponentConfig\n} from '../schema/types';\nimport { XBRLFormInput } from '../schema/xbrl-types';\nimport { FormValidator } from '../utils/validation';\nimport { XBRLFormBuilder } from '../utils/xbrl-form-builder';\nimport './form-section';\n\n@customElement('jupiter-dynamic-form')\nexport class JupiterDynamicForm extends LitElement {\n @property({ type: Object }) schema?: XBRLFormSchema;\n @property({ type: Object }) xbrlInput?: XBRLFormInput;\n @property({ type: Object }) config: ComponentConfig = {};\n @property({ type: Object }) initialData: FormData = {};\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) readonly = false;\n\n @state() private _formData: FormData = {};\n @state() private _columns: FormColumn[] = [];\n @state() private _errors: ValidationError[] = [];\n @state() private _touched = new Set<string>();\n @state() private _dirty = false;\n @state() private _valid = true;\n @state() private _submitted = false;\n @state() private _currentSchema?: XBRLFormSchema;\n\n static styles = css`\n :host {\n display: block;\n font-family: var(--jupiter-font-family, system-ui, -apple-system, sans-serif);\n color: var(--jupiter-text-primary, #333);\n background: var(--jupiter-background, #fff);\n }\n\n .form-container {\n width: 100%;\n max-width: var(--jupiter-max-width, none);\n margin: 0 auto;\n }\n\n .form-header {\n padding: 24px;\n border-bottom: 1px solid var(--jupiter-border-color, #ddd);\n background: var(--jupiter-form-header-background, #fff);\n }\n\n .form-title {\n font-size: 24px;\n font-weight: 600;\n margin: 0 0 8px 0;\n color: var(--jupiter-text-primary, #333);\n }\n\n .form-description {\n font-size: 16px;\n color: var(--jupiter-text-secondary, #666);\n margin: 0;\n line-height: 1.5;\n }\n\n .form-actions {\n padding: 16px 24px;\n border-top: 1px solid var(--jupiter-border-color, #ddd);\n background: var(--jupiter-form-actions-background, #f8f9fa);\n display: flex;\n gap: 12px;\n align-items: center;\n }\n\n .add-column-container {\n padding: 16px 24px;\n border-bottom: 1px solid var(--jupiter-border-color, #ddd);\n background: var(--jupiter-form-actions-background, #f8f9fa);\n }\n\n .add-column-btn {\n padding: 8px 16px;\n background: var(--jupiter-primary-color, #1976d2);\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n }\n\n .add-column-btn:hover {\n background: var(--jupiter-primary-color-dark, #1565c0);\n }\n\n .add-column-btn:disabled {\n background: var(--jupiter-disabled-background, #ccc);\n cursor: not-allowed;\n }\n\n .form-sections {\n padding: 24px;\n }\n\n .validation-summary {\n margin-bottom: 16px;\n padding: 16px;\n border-radius: 4px;\n background: var(--jupiter-error-background, #ffebee);\n border: 1px solid var(--jupiter-error-color, #d32f2f);\n }\n\n .validation-summary-title {\n font-weight: 600;\n color: var(--jupiter-error-color, #d32f2f);\n margin: 0 0 8px 0;\n }\n\n .validation-summary-list {\n margin: 0;\n padding-left: 20px;\n }\n\n .validation-summary-item {\n color: var(--jupiter-error-color, #d32f2f);\n margin-bottom: 4px;\n }\n\n .form-actions button {\n padding: 10px 20px;\n border: none;\n border-radius: 4px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.2s ease;\n }\n\n .btn-primary {\n background: var(--jupiter-primary-color, #1976d2);\n color: white;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: var(--jupiter-primary-color-dark, #1565c0);\n }\n\n .btn-secondary {\n background: var(--jupiter-secondary-color, #757575);\n color: white;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: var(--jupiter-secondary-color-dark, #616161);\n }\n\n .btn-outline {\n background: transparent;\n color: var(--jupiter-primary-color, #1976d2);\n border: 1px solid var(--jupiter-primary-color, #1976d2);\n }\n\n .btn-outline:hover:not(:disabled) {\n background: var(--jupiter-primary-color, #1976d2);\n color: white;\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .form-meta {\n display: flex;\n gap: 16px;\n align-items: center;\n font-size: 12px;\n color: var(--jupiter-text-secondary, #666);\n margin-left: auto;\n }\n `;\n\n connectedCallback() {\n super.connectedCallback();\n this._initializeForm();\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has('xbrlInput') || changedProperties.has('schema')) {\n this._initializeForm();\n }\n }\n\n private _initializeForm() {\n // Generate schema from XBRL input if provided, otherwise use provided schema\n if (this.xbrlInput) {\n try {\n console.log('🔄 Initializing form from XBRL input:', this.xbrlInput);\n this._currentSchema = XBRLFormBuilder.buildFormSchema(this.xbrlInput);\n console.log('✅ Generated schema with sections:', this._currentSchema.sections.length);\n \n // Use simple column structure for now\n this._columns = [\n {\n id: 'base',\n title: 'Value',\n description: 'Base values for concepts',\n type: 'base',\n order: 0,\n removable: false\n }\n ];\n } catch (error) {\n console.error('❌ Error building form from XBRL input:', error);\n this._currentSchema = this._getDefaultSchema();\n this._columns = this._getDefaultColumns();\n }\n } else if (this.schema) {\n this._currentSchema = this.schema;\n this._columns = this._getDefaultColumns();\n } else {\n this._currentSchema = this._getDefaultSchema();\n this._columns = this._getDefaultColumns();\n }\n\n // Initialize form data\n this._formData = { ...this.initialData };\n if (this.xbrlInput?.initialData) {\n this._formData = { ...this._formData, ...this.xbrlInput.initialData };\n }\n \n // Validate initial data\n this._validateForm();\n }\n\n private _getDefaultSchema(): XBRLFormSchema {\n return {\n version: '1.0',\n formId: 'default-form',\n title: 'Dynamic Form',\n description: 'Please provide form schema or XBRL input data',\n sections: []\n };\n }\n\n private _getDefaultColumns(): FormColumn[] {\n return [\n {\n id: 'base',\n title: 'Value',\n description: 'Base values for concepts',\n type: 'base',\n order: 0,\n removable: false\n }\n ];\n }\n\n private _validateForm() {\n const errors: ValidationError[] = [];\n \n // Use current schema for validation\n const schema = this._currentSchema;\n if (!schema) return;\n \n // Validate each section and its concepts\n for (const section of schema.sections) {\n for (const concept of section.concepts) {\n for (const field of concept.fields) {\n const value = this._formData[concept.id]?.[field.columnId];\n const fieldErrors = FormValidator.validateField(\n field.id,\n concept.id,\n field.columnId,\n value,\n field.type,\n field.validation || []\n );\n errors.push(...fieldErrors);\n }\n }\n }\n\n this._errors = errors;\n this._valid = errors.filter(e => e.severity === 'error').length === 0;\n }\n\n private _handleFieldChange(event: CustomEvent) {\n const { fieldId, conceptId, columnId, value } = event.detail;\n \n // Update form data\n if (!this._formData[conceptId]) {\n this._formData[conceptId] = {};\n }\n const oldValue = this._formData[conceptId][columnId];\n this._formData[conceptId][columnId] = value;\n \n // Mark as touched and dirty\n this._touched.add(`${conceptId}-${columnId}`);\n this._dirty = true;\n \n // Re-validate\n this._validateForm();\n \n // Trigger update\n this.requestUpdate();\n \n // Dispatch change event\n this.dispatchEvent(new CustomEvent('field-change', {\n detail: { fieldId, conceptId, columnId, value, oldValue },\n bubbles: true\n }));\n }\n\n private _handleSectionExpand(event: CustomEvent) {\n this.dispatchEvent(new CustomEvent('section-expand', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n private _handleConceptExpand(event: CustomEvent) {\n this.dispatchEvent(new CustomEvent('concept-expand', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n private _handleColumnRemove(event: CustomEvent) {\n const { columnId } = event.detail;\n \n // Remove column\n this._columns = this._columns.filter(col => col.id !== columnId);\n \n // Remove data for this column\n for (const conceptId in this._formData) {\n if (this._formData[conceptId][columnId] !== undefined) {\n delete this._formData[conceptId][columnId];\n }\n }\n \n this._dirty = true;\n this._validateForm();\n this.requestUpdate();\n \n this.dispatchEvent(new CustomEvent('column-remove', {\n detail: { columnId },\n bubbles: true\n }));\n }\n\n private _addColumn() {\n // This would typically open a dialog to configure the new dimension column\n // For now, we'll add a generic dimension column\n const newColumnId = `dim-${Date.now()}`;\n const newColumn: FormColumn = {\n id: newColumnId,\n title: `Dimension ${this._columns.length}`,\n description: 'Additional dimension column',\n type: 'dimension',\n order: this._columns.length,\n removable: true,\n dimensionData: {\n dimensionId: 'custom',\n memberValue: 'default',\n memberLabel: 'Default Member',\n }\n };\n \n this._columns = [...this._columns, newColumn];\n this.requestUpdate();\n \n this.dispatchEvent(new CustomEvent('column-add', {\n detail: { column: newColumn },\n bubbles: true\n }));\n }\n\n private _handleSubmit() {\n this._submitted = true;\n this._validateForm();\n \n this.dispatchEvent(new CustomEvent('form-submit', {\n detail: {\n data: this._formData,\n valid: this._valid,\n errors: this._errors\n },\n bubbles: true\n }));\n }\n\n private _handleReset() {\n this._formData = { ...this.initialData };\n this._touched.clear();\n this._dirty = false;\n this._submitted = false;\n this._validateForm();\n this.requestUpdate();\n \n this.dispatchEvent(new CustomEvent('form-reset', {\n detail: {},\n bubbles: true\n }));\n }\n\n private _getFormState(): FormState {\n return {\n data: this._formData,\n errors: this._errors,\n touched: this._touched,\n dirty: this._dirty,\n valid: this._valid,\n submitted: this._submitted\n };\n }\n\n // Public API methods\n public getData(): FormData {\n return { ...this._formData };\n }\n\n public setData(data: FormData) {\n this._formData = { ...data };\n this._dirty = true;\n this._validateForm();\n this.requestUpdate();\n }\n\n public validate(): boolean {\n this._validateForm();\n return this._valid;\n }\n\n public reset() {\n this._handleReset();\n }\n\n public getState(): FormState {\n return this._getFormState();\n }\n\n render() {\n const errorCount = this._errors.filter(e => e.severity === 'error').length;\n const config = this.config || {};\n const showValidationSummary = config.showValidationSummary !== false && \n errorCount > 0 && \n this._submitted;\n\n const schema = this._currentSchema;\n if (!schema) {\n return html`<div>Loading form...</div>`;\n }\n\n return html`\n <div class=\"form-container\">\n <!-- Form Header -->\n <div class=\"form-header\">\n <h1 class=\"form-title\">${schema.title}</h1>\n ${schema.description ? html`\n <p class=\"form-description\">${schema.description}</p>\n ` : ''}\n </div>\n\n <!-- Add Column Section -->\n ${config.enableColumnManagement !== false ? html`\n <div class=\"add-column-container\">\n <button \n class=\"add-column-btn\"\n @click=\"${this._addColumn}\"\n ?disabled=\"${this.disabled || this.readonly || (config.maxColumns && this._columns.length >= config.maxColumns)}\"\n >\n Add Dimension Column\n </button>\n </div>\n ` : ''}\n\n <!-- Form Content -->\n <div class=\"form-sections\">\n <!-- Validation Summary -->\n ${showValidationSummary ? html`\n <div class=\"validation-summary\">\n <h4 class=\"validation-summary-title\">Please fix the following errors:</h4>\n <ul class=\"validation-summary-list\">\n ${this._errors\n .filter(e => e.severity === 'error')\n .map(error => html`\n <li class=\"validation-summary-item\">${error.message}</li>\n `)}\n </ul>\n </div>\n ` : ''}\n\n <!-- Form Sections -->\n ${schema.sections.map(section => html`\n <jupiter-form-section\n .section=\"${section}\"\n .columns=\"${this._columns}\"\n .formData=\"${this._formData}\"\n .disabled=\"${this.disabled || this.readonly}\"\n .collapsible=\"${config.collapsibleSections !== false}\"\n .locale=\"${config.locale || 'en-US'}\"\n @field-change=\"${this._handleFieldChange}\"\n @section-expand=\"${this._handleSectionExpand}\"\n @concept-expand=\"${this._handleConceptExpand}\"\n @column-remove=\"${this._handleColumnRemove}\"\n ></jupiter-form-section>\n `)}\n </div>\n\n <!-- Form Actions -->\n <div class=\"form-actions\">\n <button \n class=\"btn-primary\"\n @click=\"${this._handleSubmit}\"\n ?disabled=\"${this.disabled || this.readonly}\"\n >\n Submit\n </button>\n \n <button \n class=\"btn-outline\"\n @click=\"${this._handleReset}\"\n ?disabled=\"${this.disabled || !this._dirty}\"\n >\n Reset\n </button>\n\n <div class=\"form-meta\">\n <span>Errors: ${errorCount}</span>\n <span>Modified: ${this._dirty ? 'Yes' : 'No'}</span>\n <span>Valid: ${this._valid ? 'Yes' : 'No'}</span>\n </div>\n </div>\n </div>\n `;\n }\n}\n","// Main entry point for Jupiter Dynamic Forms\nexport * from './core/dynamic-form';\nexport * from './core/form-section';\nexport * from './core/concept-tree';\nexport * from './core/form-field';\nexport * from './schema/types';\nexport * from './utils/validation';\n\n// Register all custom elements\nimport './core/dynamic-form';\nimport './core/form-section';\nimport './core/concept-tree';\nimport './core/form-field';\n\n// Version export\nexport const version = '1.0.0';\n"],"names":["t","e","o","s","r","n","c","i","h","_a","l","__decorateClass","property","state","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../src/utils/validation.ts","../src/utils/xbrl-form-builder.ts","../src/core/form-field.ts","../src/core/concept-tree.ts","../src/core/form-section.ts","../src/core/dynamic-form.ts","../src/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import { ValidationRule, ValidationError, FieldType } from '../schema/types';\n\nexport class FormValidator {\n /**\n * Validates a field value against its validation rules\n */\n static validateField(\n fieldId: string,\n conceptId: string,\n columnId: string,\n value: any,\n fieldType: FieldType,\n rules: ValidationRule[] = []\n ): ValidationError[] {\n const errors: ValidationError[] = [];\n\n for (const rule of rules) {\n const error = this.validateRule(fieldId, conceptId, columnId, value, fieldType, rule);\n if (error) {\n errors.push(error);\n }\n }\n\n return errors;\n }\n\n /**\n * Validates a single rule against a value\n */\n private static validateRule(\n fieldId: string,\n conceptId: string,\n columnId: string,\n value: any,\n _fieldType: FieldType,\n rule: ValidationRule\n ): ValidationError | null {\n const isEmpty = value === null || value === undefined || value === '';\n\n switch (rule.type) {\n case 'required':\n if (isEmpty) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'min':\n if (!isEmpty && typeof value === 'number' && value < rule.value) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'max':\n if (!isEmpty && typeof value === 'number' && value > rule.value) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'minLength':\n if (!isEmpty && typeof value === 'string' && value.length < rule.value) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'maxLength':\n if (!isEmpty && typeof value === 'string' && value.length > rule.value) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n break;\n\n case 'pattern':\n if (!isEmpty && typeof value === 'string') {\n const regex = new RegExp(rule.value);\n if (!regex.test(value)) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n }\n break;\n\n case 'email':\n if (!isEmpty && typeof value === 'string') {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(value)) {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n }\n break;\n\n case 'url':\n if (!isEmpty && typeof value === 'string') {\n try {\n new URL(value);\n } catch {\n return this.createError(fieldId, conceptId, columnId, rule);\n }\n }\n break;\n\n case 'custom':\n // Custom validation would be handled by consuming application\n break;\n\n default:\n console.warn(`Unknown validation rule type: ${rule.type}`);\n }\n\n return null;\n }\n\n /**\n * Creates a validation error object\n */\n private static createError(\n fieldId: string,\n conceptId: string,\n columnId: string,\n rule: ValidationRule\n ): ValidationError {\n return {\n fieldId,\n conceptId,\n columnId,\n message: rule.message,\n severity: rule.severity || 'error',\n rule\n };\n }\n\n /**\n * Validates data type conversion\n */\n static validateDataType(value: any, fieldType: FieldType): { valid: boolean; convertedValue?: any; error?: string } {\n if (value === null || value === undefined || value === '') {\n return { valid: true, convertedValue: value };\n }\n\n switch (fieldType) {\n case 'number':\n case 'decimal':\n case 'currency':\n case 'percentage': {\n const numValue = Number(value);\n if (isNaN(numValue)) {\n return { valid: false, error: 'Invalid number format' };\n }\n return { valid: true, convertedValue: numValue };\n }\n\n case 'date': {\n const dateValue = new Date(value);\n if (isNaN(dateValue.getTime())) {\n return { valid: false, error: 'Invalid date format' };\n }\n return { valid: true, convertedValue: dateValue.toISOString().split('T')[0] };\n }\n\n case 'datetime': {\n const datetimeValue = new Date(value);\n if (isNaN(datetimeValue.getTime())) {\n return { valid: false, error: 'Invalid datetime format' };\n }\n return { valid: true, convertedValue: datetimeValue.toISOString() };\n }\n\n case 'boolean':\n if (typeof value === 'boolean') {\n return { valid: true, convertedValue: value };\n }\n if (typeof value === 'string') {\n const boolValue = value.toLowerCase();\n if (boolValue === 'true' || boolValue === '1') {\n return { valid: true, convertedValue: true };\n }\n if (boolValue === 'false' || boolValue === '0') {\n return { valid: true, convertedValue: false };\n }\n }\n return { valid: false, error: 'Invalid boolean format' };\n\n case 'text':\n case 'textarea':\n case 'email':\n case 'url':\n case 'tel':\n return { valid: true, convertedValue: String(value) };\n\n case 'select':\n case 'multiselect':\n return { valid: true, convertedValue: value };\n\n default:\n return { valid: true, convertedValue: value };\n }\n }\n\n /**\n * Formats value for display based on field type\n */\n static formatValue(value: any, fieldType: FieldType, locale = 'en-US'): string {\n if (value === null || value === undefined) return '';\n\n switch (fieldType) {\n case 'number':\n return new Intl.NumberFormat(locale).format(Number(value));\n\n case 'decimal':\n return new Intl.NumberFormat(locale, { \n minimumFractionDigits: 2,\n maximumFractionDigits: 2 \n }).format(Number(value));\n\n case 'currency':\n return new Intl.NumberFormat(locale, { \n style: 'currency',\n currency: 'USD' // Should be configurable\n }).format(Number(value));\n\n case 'percentage':\n return new Intl.NumberFormat(locale, { \n style: 'percent',\n minimumFractionDigits: 2\n }).format(Number(value) / 100);\n\n case 'date':\n return new Date(value).toLocaleDateString(locale);\n\n case 'datetime':\n return new Date(value).toLocaleString(locale);\n\n default:\n return String(value);\n }\n }\n}\n","import { \n XBRLFormInput, \n XBRLPresentationRole,\n XBRLPresentationConcept,\n XBRLLabel\n} from '../schema/xbrl-types';\nimport { \n XBRLFormSchema, \n FormSection, \n FormField, \n FormColumn,\n ConceptTree,\n FieldType \n} from '../schema/types';\n\n/**\n * XBRL Form Builder Service\n * Transforms XBRL taxonomy data into Jupiter Dynamic Form schemas\n * Updated to handle actual presentation.json structure with roles\n */\nexport class XBRLFormBuilder {\n \n /**\n * Build form schema from XBRL input data\n * Creates accordion sections for each presentation role\n */\n static buildFormSchema(\n xbrlInput: XBRLFormInput, \n periodStartDate?: string, \n periodEndDate?: string\n ): XBRLFormSchema {\n if (!xbrlInput.presentation || xbrlInput.presentation.length === 0) {\n throw new Error('XBRL presentation data is required');\n }\n\n // Use the first entrypoint (typically there's only one)\n const presentationData = xbrlInput.presentation[0];\n \n const sections: FormSection[] = [];\n\n // Create a form section for each presentation role\n presentationData.roles.forEach(role => {\n const section = this.buildSectionFromRole(role, periodStartDate, periodEndDate);\n \n // Post-process fields to assign correct column IDs based on generated columns\n this.assignFieldColumnIds(section);\n \n sections.push(section);\n });\n\n return {\n formId: `xbrl-form-${Date.now()}`,\n title: `XBRL Form - ${this.extractEntityName(presentationData.entrypoint)}`,\n description: `Dynamic form generated from XBRL taxonomy data`,\n version: '1.0.0',\n sections: sections\n };\n }\n\n /**\n * Build a form section from a presentation role\n */\n private static buildSectionFromRole(\n role: XBRLPresentationRole, \n periodStartDate?: string, \n periodEndDate?: string\n ): FormSection {\n // Extract section title from role name (remove role number prefix)\n const title = this.extractRoleTitle(role.role);\n \n const conceptTrees: ConceptTree[] = [];\n\n // Process root concepts and build tree structure (if any exist)\n if (role.presentationLinkbase?.concepts) {\n role.presentationLinkbase.concepts.forEach(concept => {\n const conceptTree = this.buildConceptTree(concept, 0, periodStartDate, periodEndDate);\n if (conceptTree) {\n conceptTrees.push(conceptTree);\n }\n });\n }\n\n // Generate appropriate columns based on concept period types\n const columns = this.generateDefaultColumnsForRole(role, periodStartDate || '2025-01-01', periodEndDate || '2025-12-31');\n\n return {\n id: role.id,\n title: title,\n description: `Section for ${title}`,\n concepts: conceptTrees,\n columns: columns,\n expanded: false\n };\n }\n\n /**\n * Build concept tree from XBRL presentation concept\n */\n private static buildConceptTree(\n concept: XBRLPresentationConcept, \n level: number, \n periodStartDate?: string, \n periodEndDate?: string\n ): ConceptTree | null {\n const label = this.getPreferredLabel(concept.labels);\n \n // Build fields for this concept (if not abstract)\n const fields: FormField[] = [];\n if (!concept.elementAbstract) {\n const field = this.createFieldFromConcept(concept, periodStartDate, periodEndDate);\n if (field) {\n fields.push(field);\n }\n }\n\n // Process children recursively\n const children: ConceptTree[] = [];\n if (concept.children && concept.children.length > 0) {\n concept.children.forEach(child => {\n const childTree = this.buildConceptTree(child, level + 1, periodStartDate, periodEndDate);\n if (childTree) {\n children.push(childTree);\n }\n });\n }\n\n return {\n id: concept.id,\n name: concept.conceptName,\n label: label,\n description: `${concept.conceptName} (${concept.type})`,\n level: level,\n children: children,\n fields: fields,\n collapsed: level > 0 // Collapse nested levels by default\n };\n }\n\n /**\n * Create form field from XBRL concept\n */\n private static createFieldFromConcept(\n concept: XBRLPresentationConcept, \n periodStartDate?: string, \n periodEndDate?: string\n ): FormField | null {\n const fieldType = this.mapXBRLTypeToFieldType(concept.type);\n const label = this.getPreferredLabel(concept.labels);\n\n // Determine appropriate column ID based on concept's period type\n let columnId = 'default';\n if (concept.periodType === 'instant') {\n columnId = 'instant';\n } else if (concept.periodType === 'duration') {\n columnId = 'duration_start'; // Default to start column for duration\n } else {\n columnId = 'default';\n }\n\n const field: FormField = {\n id: `${concept.id}_field`,\n conceptId: concept.id,\n columnId: columnId,\n type: fieldType,\n label: label,\n placeholder: `Enter ${label.toLowerCase()}`,\n required: false, // Will be determined by validation rules\n disabled: concept.elementAbstract,\n defaultValue: null\n };\n\n // Add period information if the concept is period-specific\n if (concept.periodType === 'duration' || concept.periodType === 'instant') {\n field.periodStartDate = periodStartDate || '2025-01-01';\n field.periodEndDate = periodEndDate || '2025-12-31';\n }\n\n return field;\n }\n\n /**\n * Map XBRL data type to form field type\n */\n private static mapXBRLTypeToFieldType(xbrlType: string): FieldType {\n const typeMap: Record<string, FieldType> = {\n 'xbrli:stringItemType': 'text',\n 'xbrli:monetaryItemType': 'currency',\n 'xbrli:integerItemType': 'number',\n 'xbrli:decimalItemType': 'decimal',\n 'xbrli:percentItemType': 'percentage',\n 'xbrli:dateItemType': 'date',\n 'xbrli:booleanItemType': 'boolean',\n 'dtr-types:domainItemType': 'select',\n 'bw2-titel9:chamberOfCommerceRegistrationNumberItemType': 'text'\n };\n\n return typeMap[xbrlType] || 'text';\n }\n\n /**\n * Get preferred label from labels array\n */\n private static getPreferredLabel(labels: XBRLLabel[]): string {\n if (!labels || labels.length === 0) return 'Unnamed Concept';\n\n // Try to find preferred label\n const preferred = labels.find(l => l.preferredLabel);\n if (preferred) return preferred.label;\n\n // Try to find standard label\n const standard = labels.find(l => l.role === 'http://www.xbrl.org/2003/role/label');\n if (standard) return standard.label;\n\n // Try to find terse label\n const terse = labels.find(l => l.role === 'http://www.xbrl.org/2003/role/terseLabel');\n if (terse) return terse.label;\n\n // Return first available label\n return labels[0].label;\n }\n\n /**\n * Assign appropriate column IDs to fields based on section's generated columns\n */\n private static assignFieldColumnIds(section: FormSection): void {\n if (!section.columns || section.columns.length === 0) {\n return;\n }\n\n // Get available column IDs\n const columnIds = section.columns.map(col => col.id);\n \n // Process all fields in all concept trees\n section.concepts.forEach(conceptTree => {\n this.assignColumnIdsToConceptFields(conceptTree, columnIds);\n });\n }\n\n /**\n * Recursively assign column IDs to fields in a concept tree\n */\n private static assignColumnIdsToConceptFields(conceptTree: ConceptTree, columnIds: string[]): void {\n // Process fields in this concept\n conceptTree.fields.forEach(field => {\n // Reassign column ID based on available columns and field's period type\n if (columnIds.includes('instant') && field.columnId === 'instant') {\n // Keep instant assignment\n field.columnId = 'instant';\n } else if (columnIds.includes('duration_start') && field.columnId === 'duration_start') {\n // Keep duration start assignment\n field.columnId = 'duration_start';\n } else if (columnIds.includes('period_start') && (field.columnId === 'duration_start' || field.columnId === 'instant')) {\n // Mixed period types - assign to start column\n field.columnId = 'period_start';\n } else if (columnIds.length > 0) {\n // Fallback to first available column\n field.columnId = columnIds[0];\n }\n });\n\n // Process children recursively\n if (conceptTree.children) {\n conceptTree.children.forEach(child => {\n this.assignColumnIdsToConceptFields(child, columnIds);\n });\n }\n }\n\n /**\n * Get all non-abstract concepts from a role recursively\n */\n static getAllNonAbstractConcepts(role: XBRLPresentationRole): XBRLPresentationConcept[] {\n const nonAbstractConcepts: XBRLPresentationConcept[] = [];\n \n if (role.presentationLinkbase?.concepts) {\n role.presentationLinkbase.concepts.forEach(concept => {\n this.collectNonAbstractConcepts(concept, nonAbstractConcepts);\n });\n }\n \n return nonAbstractConcepts;\n }\n\n /**\n * Recursively collect non-abstract concepts from a concept tree\n */\n private static collectNonAbstractConcepts(\n concept: XBRLPresentationConcept, \n collection: XBRLPresentationConcept[]\n ): void {\n // Add this concept if it's not abstract\n if (!concept.elementAbstract) {\n collection.push(concept);\n }\n \n // Recursively process children\n if (concept.children && concept.children.length > 0) {\n concept.children.forEach(child => {\n this.collectNonAbstractConcepts(child, collection);\n });\n }\n }\n\n /**\n * Generate default columns based on period types of non-abstract concepts in a role\n */\n static generateDefaultColumnsForRole(\n role: XBRLPresentationRole, \n periodStartDate: string, \n periodEndDate: string\n ): FormColumn[] {\n const nonAbstractConcepts = this.getAllNonAbstractConcepts(role);\n \n console.log(`📊 Analyzing role \"${role.role}\" with ${nonAbstractConcepts.length} non-abstract concepts`);\n \n if (nonAbstractConcepts.length === 0) {\n // No non-abstract concepts, return single default column\n console.log('📊 No non-abstract concepts found, using default column');\n return [{\n id: 'default',\n title: 'Value',\n description: 'Default value column',\n type: 'base',\n order: 0,\n removable: false\n }];\n }\n \n // Analyze period types\n const periodTypes = new Set(\n nonAbstractConcepts\n .filter(concept => concept.periodType) // Only concepts with period type\n .map(concept => concept.periodType)\n );\n \n console.log(`📅 Found period types: ${Array.from(periodTypes).join(', ')}`);\n \n const columns: FormColumn[] = [];\n \n if (periodTypes.size === 0) {\n // No period types specified, use single default column\n console.log('📅 No period types found, using default column');\n columns.push({\n id: 'default',\n title: 'Value',\n description: 'Default value column',\n type: 'base',\n order: 0,\n removable: false\n });\n } else if (periodTypes.size === 1 && periodTypes.has('instant')) {\n // All concepts are instant - single column with start date\n console.log('📅 All concepts are instant type, creating single column');\n columns.push({\n id: 'instant',\n title: `As of ${this.formatDateForDisplay(periodStartDate)}`,\n description: `Values as of ${periodStartDate}`,\n type: 'base',\n order: 0,\n removable: false\n });\n } else if (periodTypes.size === 1 && periodTypes.has('duration')) {\n // All concepts are duration - two columns for period range\n console.log('📅 All concepts are duration type, creating two columns');\n columns.push({\n id: 'duration_start',\n title: `From ${this.formatDateForDisplay(periodStartDate)}`,\n description: `Period start: ${periodStartDate}`,\n type: 'base',\n order: 0,\n removable: false\n });\n columns.push({\n id: 'duration_end',\n title: `To ${this.formatDateForDisplay(periodEndDate)}`,\n description: `Period end: ${periodEndDate}`,\n type: 'base',\n order: 1,\n removable: false\n });\n } else {\n // Mixed period types - two columns for full period range\n console.log('📅 Mixed period types found, creating two columns for full range');\n columns.push({\n id: 'period_start',\n title: `From ${this.formatDateForDisplay(periodStartDate)}`,\n description: `Period start: ${periodStartDate}`,\n type: 'base',\n order: 0,\n removable: false\n });\n columns.push({\n id: 'period_end',\n title: `To ${this.formatDateForDisplay(periodEndDate)}`,\n description: `Period end: ${periodEndDate}`,\n type: 'base',\n order: 1,\n removable: false\n });\n }\n \n console.log(`📊 Generated ${columns.length} columns for role \"${role.role}\":`, columns.map(c => c.title));\n return columns;\n }\n\n /**\n * Format date for display in column headers\n */\n private static formatDateForDisplay(dateString: string): string {\n try {\n const date = new Date(dateString);\n return date.toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n });\n } catch {\n return dateString;\n }\n }\n\n /**\n * Extract entity name from entrypoint URL\n */\n private static extractEntityName(entrypoint: string): string {\n try {\n const url = new URL(entrypoint);\n const pathParts = url.pathname.split('/');\n const filename = pathParts[pathParts.length - 1];\n return filename.replace('.xsd', '').replace(/[^a-zA-Z0-9]/g, ' ').trim() || 'Entity';\n } catch {\n return 'Entity';\n }\n }\n\n /**\n * Extract role title from role string\n */\n private static extractRoleTitle(role: string): string {\n // Remove role number prefix like \"[000001] \" and return the title\n const match = role.match(/^\\[[\\d]+\\]\\s*(.+)$/);\n return match ? match[1].trim() : role;\n }\n\n /**\n * Extract role order from role string\n */\n private static extractRoleOrder(role: string): number {\n const match = role.match(/^\\[([\\d]+)\\]/);\n return match ? parseInt(match[1], 10) : 0;\n }\n\n /**\n * Build columns from XBRL hypercube data (placeholder for now)\n */\n static buildColumnsFromHypercubes(/* _hypercubes: any[] */): any[] {\n // For now, return default column structure\n // This will be expanded when we implement hypercube support\n return [{\n id: 'default',\n label: 'Values',\n type: 'data'\n }];\n }\n}\n","import { LitElement, html, css, PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { FormField, ValidationError } from '../schema/types';\nimport { FormValidator } from '../utils/validation';\n\n@customElement('jupiter-form-field')\nexport class JupiterFormField extends LitElement {\n @property({ type: Object }) field!: FormField;\n @property({ type: String }) conceptId!: string;\n @property({ type: String }) columnId!: string;\n @property() value: any = null;\n @property({ type: Boolean }) disabled = false;\n @property({ type: String }) locale = 'en-US';\n\n @state() private _errors: ValidationError[] = [];\n @state() private _touched = false;\n\n static styles = css`\n :host {\n display: block;\n margin-bottom: 8px;\n }\n\n .field-container {\n position: relative;\n }\n\n .field-label {\n display: block;\n font-weight: 500;\n margin-bottom: 4px;\n color: var(--jupiter-text-primary, #333);\n font-size: 14px;\n }\n\n .field-label.required::after {\n content: ' *';\n color: var(--jupiter-error-color, #d32f2f);\n }\n\n .field-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--jupiter-border-color, #ddd);\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background: var(--jupiter-input-background, #fff);\n color: var(--jupiter-text-primary, #333);\n box-sizing: border-box;\n }\n\n .field-input:focus {\n outline: none;\n border-color: var(--jupiter-primary-color, #1976d2);\n box-shadow: 0 0 0 2px var(--jupiter-primary-color-light, rgba(25, 118, 210, 0.2));\n }\n\n .field-input:disabled {\n background: var(--jupiter-disabled-background, #f5f5f5);\n color: var(--jupiter-disabled-text, #999);\n cursor: not-allowed;\n }\n\n .field-input.error {\n border-color: var(--jupiter-error-color, #d32f2f);\n }\n\n .field-input.warning {\n border-color: var(--jupiter-warning-color, #ff9800);\n }\n\n .field-errors {\n margin-top: 4px;\n }\n\n .field-error {\n display: block;\n font-size: 12px;\n margin-bottom: 2px;\n }\n\n .field-error.error {\n color: var(--jupiter-error-color, #d32f2f);\n }\n\n .field-error.warning {\n color: var(--jupiter-warning-color, #ff9800);\n }\n\n .field-error.info {\n color: var(--jupiter-info-color, #2196f3);\n }\n\n select.field-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 8px center;\n background-repeat: no-repeat;\n background-size: 16px;\n padding-right: 32px;\n }\n\n textarea.field-input {\n resize: vertical;\n min-height: 60px;\n }\n\n .checkbox-container {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .checkbox-container input[type=\"checkbox\"] {\n margin: 0;\n width: auto;\n }\n `;\n\n protected willUpdate(changedProperties: PropertyValues) {\n if (changedProperties.has('value') || changedProperties.has('field')) {\n this._validateField();\n }\n }\n\n private _validateField() {\n if (this.field?.validation) {\n this._errors = FormValidator.validateField(\n this.field.id,\n this.conceptId,\n this.columnId,\n this.value,\n this.field.type,\n this.field.validation\n );\n }\n }\n\n private _handleInput(event: Event) {\n const target = event.target as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n let value: any = target.value;\n\n // Convert value based on field type\n if (this.field.type === 'number' || this.field.type === 'decimal') {\n value = value === '' ? null : Number(value);\n } else if (this.field.type === 'boolean') {\n value = (target as HTMLInputElement).checked;\n }\n\n this.value = value;\n this._touched = true;\n \n this.dispatchEvent(new CustomEvent('field-change', {\n detail: {\n fieldId: this.field.id,\n conceptId: this.conceptId,\n columnId: this.columnId,\n value,\n oldValue: this.value\n },\n bubbles: true\n }));\n }\n\n private _handleFocus() {\n this.dispatchEvent(new CustomEvent('field-focus', {\n detail: {\n fieldId: this.field.id,\n conceptId: this.conceptId,\n columnId: this.columnId\n },\n bubbles: true\n }));\n }\n\n private _handleBlur() {\n this._touched = true;\n this.dispatchEvent(new CustomEvent('field-blur', {\n detail: {\n fieldId: this.field.id,\n conceptId: this.conceptId,\n columnId: this.columnId\n },\n bubbles: true\n }));\n }\n\n private _renderInput() {\n const hasErrors = this._errors.some(e => e.severity === 'error');\n const hasWarnings = this._errors.some(e => e.severity === 'warning');\n const cssClass = `field-input ${hasErrors ? 'error' : hasWarnings ? 'warning' : ''}`;\n\n switch (this.field.type) {\n case 'textarea':\n return html`\n <textarea\n class=\"${cssClass}\"\n .value=\"${this.value || ''}\"\n ?disabled=\"${this.disabled || this.field.disabled}\"\n placeholder=\"${this.field.placeholder || ''}\"\n @input=\"${this._handleInput}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n ></textarea>\n `;\n\n case 'select':\n return html`\n <select\n class=\"${cssClass}\"\n .value=\"${this.value || ''}\"\n ?disabled=\"${this.disabled || this.field.disabled}\"\n @change=\"${this._handleInput}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n >\n <option value=\"\">Select...</option>\n ${this.field.options?.map(option => html`\n <option \n value=\"${option.value}\"\n ?disabled=\"${option.disabled}\"\n ?selected=\"${this.value === option.value}\"\n >\n ${option.label}\n </option>\n `)}\n </select>\n `;\n\n case 'boolean':\n return html`\n <div class=\"checkbox-container\">\n <input\n type=\"checkbox\"\n class=\"field-input\"\n .checked=\"${Boolean(this.value)}\"\n ?disabled=\"${this.disabled || this.field.disabled}\"\n @change=\"${this._handleInput}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n />\n <span>${this.field.label}</span>\n </div>\n `;\n\n default:\n return html`\n <input\n type=\"${this._getInputType()}\"\n class=\"${cssClass}\"\n .value=\"${this.value || ''}\"\n ?disabled=\"${this.disabled || this.field.disabled}\"\n placeholder=\"${this.field.placeholder || ''}\"\n @input=\"${this._handleInput}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n />\n `;\n }\n }\n\n private _getInputType(): string {\n switch (this.field.type) {\n case 'number':\n case 'decimal':\n case 'currency':\n case 'percentage':\n return 'number';\n case 'date':\n return 'date';\n case 'datetime':\n return 'datetime-local';\n case 'email':\n return 'email';\n case 'url':\n return 'url';\n case 'tel':\n return 'tel';\n default:\n return 'text';\n }\n }\n\n render() {\n const showLabel = this.field.type !== 'boolean';\n\n return html`\n <div class=\"field-container\">\n ${showLabel ? html`\n <label class=\"field-label ${this.field.required ? 'required' : ''}\">\n ${this.field.label}\n </label>\n ` : ''}\n \n ${this._renderInput()}\n \n ${this._errors.length > 0 && this._touched ? html`\n <div class=\"field-errors\">\n ${this._errors.map(error => html`\n <span class=\"field-error ${error.severity}\">\n ${error.message}\n </span>\n `)}\n </div>\n ` : ''}\n </div>\n `;\n }\n}\n","import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ConceptTree, FormColumn, FormField } from '../schema/types';\nimport './form-field';\n\n@customElement('jupiter-concept-tree')\nexport class JupiterConceptTree extends LitElement {\n @property({ type: Object }) concept!: ConceptTree;\n @property({ type: Array }) columns: FormColumn[] = [];\n @property({ type: Object }) formData: Record<string, any> = {};\n @property({ type: Boolean }) disabled = false;\n @property({ type: String }) locale = 'en-US';\n\n @state() private _expanded = true;\n\n static styles = css`\n :host {\n display: block;\n }\n\n .concept-row {\n display: contents;\n }\n\n .concept-header {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n background: var(--jupiter-concept-background, #f8f9fa);\n border: 1px solid var(--jupiter-border-color, #ddd);\n border-bottom: none;\n font-weight: 500;\n cursor: pointer;\n user-select: none;\n }\n\n .concept-header:hover {\n background: var(--jupiter-concept-hover-background, #e9ecef);\n }\n\n .concept-indent {\n width: calc(var(--level, 0) * 20px);\n flex-shrink: 0;\n }\n\n .concept-toggle {\n width: 16px;\n height: 16px;\n margin-right: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n transition: transform 0.2s ease;\n }\n\n .concept-toggle.expanded {\n transform: rotate(90deg);\n }\n\n .concept-toggle.no-children {\n visibility: hidden;\n }\n\n .concept-label {\n flex: 1;\n color: var(--jupiter-text-primary, #333);\n }\n\n .concept-description {\n font-size: 12px;\n color: var(--jupiter-text-secondary, #666);\n font-weight: normal;\n margin-left: 8px;\n }\n\n .concept-fields {\n display: contents;\n }\n\n .field-cell {\n border: 1px solid var(--jupiter-border-color, #ddd);\n border-bottom: none;\n padding: 8px;\n background: var(--jupiter-cell-background, #fff);\n min-height: 40px;\n display: flex;\n align-items: center;\n }\n\n .field-cell:last-child {\n border-right: 1px solid var(--jupiter-border-color, #ddd);\n }\n\n .field-cell.empty {\n background: var(--jupiter-empty-cell-background, #f8f9fa);\n }\n\n .children {\n display: contents;\n }\n\n .children.collapsed {\n display: none;\n }\n\n .concept-row:last-of-type .concept-header,\n .concept-row:last-of-type .field-cell {\n border-bottom: 1px solid var(--jupiter-border-color, #ddd);\n }\n `;\n\n connectedCallback() {\n super.connectedCallback();\n this._expanded = !this.concept.collapsed;\n }\n\n private _toggleExpanded() {\n this._expanded = !this._expanded;\n \n this.dispatchEvent(new CustomEvent('concept-expand', {\n detail: {\n conceptId: this.concept.id,\n expanded: this._expanded\n },\n bubbles: true\n }));\n }\n\n private _getFieldForColumn(columnId: string): FormField | undefined {\n return this.concept.fields.find(field => field.columnId === columnId);\n }\n\n private _getFieldValue(field: FormField): any {\n return this.formData[this.concept.id]?.[field.columnId];\n }\n\n private _handleFieldChange(event: CustomEvent) {\n event.stopPropagation();\n // Re-dispatch with updated detail\n this.dispatchEvent(new CustomEvent('field-change', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n render() {\n const hasChildren = this.concept.children && this.concept.children.length > 0;\n const level = this.concept.level || 0;\n\n return html`\n <div class=\"concept-row\" style=\"--level: ${level}\">\n <!-- Concept Label Column -->\n <div class=\"concept-header\" @click=\"${this._toggleExpanded}\">\n <div class=\"concept-indent\"></div>\n <div class=\"concept-toggle ${hasChildren ? (this._expanded ? 'expanded' : '') : 'no-children'}\">\n ${hasChildren ? '▶' : ''}\n </div>\n <div class=\"concept-label\">\n ${this.concept.label}\n ${this.concept.description ? html`\n <span class=\"concept-description\">${this.concept.description}</span>\n ` : ''}\n </div>\n </div>\n\n <!-- Field Columns -->\n ${this.columns.map(column => {\n const field = this._getFieldForColumn(column.id);\n \n return html`\n <div class=\"field-cell ${!field ? 'empty' : ''}\">\n ${field ? html`\n <jupiter-form-field\n .field=\"${field}\"\n .conceptId=\"${this.concept.id}\"\n .columnId=\"${column.id}\"\n .value=\"${this._getFieldValue(field)}\"\n .disabled=\"${this.disabled}\"\n .locale=\"${this.locale}\"\n @field-change=\"${this._handleFieldChange}\"\n ></jupiter-form-field>\n ` : ''}\n </div>\n `;\n })}\n </div>\n\n <!-- Children Concepts -->\n ${hasChildren ? html`\n <div class=\"children ${!this._expanded ? 'collapsed' : ''}\">\n ${this.concept.children!.map(child => html`\n <jupiter-concept-tree\n .concept=\"${child}\"\n .columns=\"${this.columns}\"\n .formData=\"${this.formData}\"\n .disabled=\"${this.disabled}\"\n .locale=\"${this.locale}\"\n @field-change=\"${this._handleFieldChange}\"\n @concept-expand=\"${(e: CustomEvent) => { \n e.stopPropagation(); \n this.dispatchEvent(new CustomEvent('concept-expand', { detail: e.detail, bubbles: true })); \n }}\"\n ></jupiter-concept-tree>\n `)}\n </div>\n ` : ''}\n `;\n }\n}\n","import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { FormSection, FormColumn } from '../schema/types';\nimport './concept-tree';\n\n@customElement('jupiter-form-section')\nexport class JupiterFormSection extends LitElement {\n @property({ type: Object }) section!: FormSection;\n @property({ type: Array }) columns: FormColumn[] = [];\n @property({ type: Object }) formData: Record<string, any> = {};\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) collapsible = true;\n @property({ type: String }) locale = 'en-US';\n\n @state() private _expanded = true;\n\n static styles = css`\n :host {\n display: block;\n margin-bottom: 16px;\n border: 1px solid var(--jupiter-border-color, #ddd);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .section-header {\n background: var(--jupiter-section-header-background, #f0f2f5);\n padding: 16px;\n border-bottom: 1px solid var(--jupiter-border-color, #ddd);\n cursor: pointer;\n user-select: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .section-header:hover {\n background: var(--jupiter-section-header-hover-background, #e4e7ea);\n }\n\n .section-header.not-collapsible {\n cursor: default;\n }\n\n .section-header.not-collapsible:hover {\n background: var(--jupiter-section-header-background, #f0f2f5);\n }\n\n .section-title {\n font-size: 18px;\n font-weight: 600;\n color: var(--jupiter-text-primary, #333);\n margin: 0;\n }\n\n .section-description {\n font-size: 14px;\n color: var(--jupiter-text-secondary, #666);\n margin: 4px 0 0 0;\n }\n\n .section-toggle {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n transition: transform 0.2s ease;\n color: var(--jupiter-text-secondary, #666);\n }\n\n .section-toggle.expanded {\n transform: rotate(90deg);\n }\n\n .section-toggle.hidden {\n visibility: hidden;\n }\n\n .section-content {\n display: block;\n transition: max-height 0.3s ease;\n overflow: hidden;\n }\n\n .section-content.collapsed {\n display: none;\n }\n\n .table-container {\n overflow-x: auto;\n }\n\n .form-table {\n width: 100%;\n border-collapse: collapse;\n background: var(--jupiter-table-background, #fff);\n }\n\n .table-header {\n background: var(--jupiter-header-background, #f8f9fa);\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .header-cell {\n padding: 12px;\n text-align: left;\n font-weight: 600;\n color: var(--jupiter-text-primary, #333);\n border: 1px solid var(--jupiter-border-color, #ddd);\n background: var(--jupiter-header-background, #f8f9fa);\n min-width: 150px;\n }\n\n .header-cell.concept-column {\n min-width: 300px;\n position: sticky;\n left: 0;\n z-index: 2;\n }\n\n .header-cell.removable {\n position: relative;\n }\n\n .remove-column-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n border: none;\n background: var(--jupiter-error-color, #d32f2f);\n color: white;\n border-radius: 50%;\n font-size: 12px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .remove-column-btn:hover {\n background: var(--jupiter-error-color-dark, #b71c1c);\n }\n\n .table-body {\n display: table-row-group;\n }\n\n .empty-section {\n padding: 24px;\n text-align: center;\n color: var(--jupiter-text-secondary, #666);\n font-style: italic;\n }\n `;\n\n connectedCallback() {\n super.connectedCallback();\n this._expanded = this.section.expanded !== false;\n }\n\n private _toggleExpanded() {\n if (!this.collapsible) return;\n \n this._expanded = !this._expanded;\n \n this.dispatchEvent(new CustomEvent('section-expand', {\n detail: {\n sectionId: this.section.id,\n expanded: this._expanded\n },\n bubbles: true\n }));\n }\n\n private _handleRemoveColumn(columnId: string) {\n this.dispatchEvent(new CustomEvent('column-remove', {\n detail: { columnId },\n bubbles: true\n }));\n }\n\n private _handleFieldChange(event: CustomEvent) {\n event.stopPropagation();\n this.dispatchEvent(new CustomEvent('field-change', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n private _handleConceptExpand(event: CustomEvent) {\n event.stopPropagation();\n this.dispatchEvent(new CustomEvent('concept-expand', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n render() {\n if (!this.section.concepts || this.section.concepts.length === 0) {\n return html`\n <div class=\"section-header ${!this.collapsible ? 'not-collapsible' : ''}\" \n @click=\"${this._toggleExpanded}\">\n <div>\n <h3 class=\"section-title\">${this.section.title}</h3>\n ${this.section.description ? html`\n <p class=\"section-description\">${this.section.description}</p>\n ` : ''}\n </div>\n <div class=\"section-toggle ${this.collapsible ? (this._expanded ? 'expanded' : '') : 'hidden'}\">\n ${this.collapsible ? '▶' : ''}\n </div>\n </div>\n \n <div class=\"section-content ${!this._expanded ? 'collapsed' : ''}\">\n <div class=\"empty-section\">\n No concepts defined for this section.\n </div>\n </div>\n `;\n }\n\n return html`\n <div class=\"section-header ${!this.collapsible ? 'not-collapsible' : ''}\" \n @click=\"${this._toggleExpanded}\">\n <div>\n <h3 class=\"section-title\">${this.section.title}</h3>\n ${this.section.description ? html`\n <p class=\"section-description\">${this.section.description}</p>\n ` : ''}\n </div>\n <div class=\"section-toggle ${this.collapsible ? (this._expanded ? 'expanded' : '') : 'hidden'}\">\n ${this.collapsible ? '▶' : ''}\n </div>\n </div>\n\n <div class=\"section-content ${!this._expanded ? 'collapsed' : ''}\">\n <div class=\"table-container\">\n <table class=\"form-table\">\n <thead class=\"table-header\">\n <tr>\n <th class=\"header-cell concept-column\">Concept</th>\n ${this.columns.map(column => html`\n <th class=\"header-cell ${column.removable ? 'removable' : ''}\">\n ${column.title}\n ${column.description ? html`<div style=\"font-weight: normal; font-size: 12px; color: var(--jupiter-text-secondary, #666);\">${column.description}</div>` : ''}\n ${column.removable ? html`\n <button \n class=\"remove-column-btn\"\n @click=\"${(e: Event) => {\n e.stopPropagation();\n this._handleRemoveColumn(column.id);\n }}\"\n title=\"Remove column\"\n >×</button>\n ` : ''}\n </th>\n `)}\n </tr>\n </thead>\n <tbody class=\"table-body\">\n ${this.section.concepts.map(concept => html`\n <jupiter-concept-tree\n .concept=\"${concept}\"\n .columns=\"${this.columns}\"\n .formData=\"${this.formData}\"\n .disabled=\"${this.disabled}\"\n .locale=\"${this.locale}\"\n @field-change=\"${this._handleFieldChange}\"\n @concept-expand=\"${this._handleConceptExpand}\"\n ></jupiter-concept-tree>\n `)}\n </tbody>\n </table>\n </div>\n </div>\n `;\n }\n}\n","import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { \n XBRLFormSchema, \n FormData, \n FormColumn, \n ValidationError, \n FormState,\n ComponentConfig\n} from '../schema/types';\nimport { XBRLFormInput } from '../schema/xbrl-types';\nimport { FormValidator } from '../utils/validation';\nimport { XBRLFormBuilder } from '../utils/xbrl-form-builder';\nimport './form-section';\n\n@customElement('jupiter-dynamic-form')\nexport class JupiterDynamicForm extends LitElement {\n @property({ type: Object }) schema?: XBRLFormSchema;\n @property({ type: Object }) xbrlInput?: XBRLFormInput;\n @property({ type: Object }) config: ComponentConfig = {};\n @property({ type: Object }) initialData: FormData = {};\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) readonly = false;\n @property({ type: String }) periodStartDate = '2025-01-01';\n @property({ type: String }) periodEndDate = '2025-12-31';\n\n @state() private _formData: FormData = {};\n @state() private _columns: FormColumn[] = [];\n @state() private _errors: ValidationError[] = [];\n @state() private _touched = new Set<string>();\n @state() private _dirty = false;\n @state() private _valid = true;\n @state() private _submitted = false;\n @state() private _currentSchema?: XBRLFormSchema;\n\n static styles = css`\n :host {\n display: block;\n font-family: var(--jupiter-font-family, system-ui, -apple-system, sans-serif);\n color: var(--jupiter-text-primary, #333);\n background: var(--jupiter-background, #fff);\n }\n\n .form-container {\n width: 100%;\n max-width: var(--jupiter-max-width, none);\n margin: 0 auto;\n }\n\n .form-header {\n padding: 24px;\n border-bottom: 1px solid var(--jupiter-border-color, #ddd);\n background: var(--jupiter-form-header-background, #fff);\n }\n\n .form-title {\n font-size: 24px;\n font-weight: 600;\n margin: 0 0 8px 0;\n color: var(--jupiter-text-primary, #333);\n }\n\n .form-description {\n font-size: 16px;\n color: var(--jupiter-text-secondary, #666);\n margin: 0;\n line-height: 1.5;\n }\n\n .form-actions {\n padding: 16px 24px;\n border-top: 1px solid var(--jupiter-border-color, #ddd);\n background: var(--jupiter-form-actions-background, #f8f9fa);\n display: flex;\n gap: 12px;\n align-items: center;\n }\n\n .add-column-container {\n padding: 16px 24px;\n border-bottom: 1px solid var(--jupiter-border-color, #ddd);\n background: var(--jupiter-form-actions-background, #f8f9fa);\n }\n\n .add-column-btn {\n padding: 8px 16px;\n background: var(--jupiter-primary-color, #1976d2);\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n }\n\n .add-column-btn:hover {\n background: var(--jupiter-primary-color-dark, #1565c0);\n }\n\n .add-column-btn:disabled {\n background: var(--jupiter-disabled-background, #ccc);\n cursor: not-allowed;\n }\n\n .form-sections {\n padding: 24px;\n }\n\n .validation-summary {\n margin-bottom: 16px;\n padding: 16px;\n border-radius: 4px;\n background: var(--jupiter-error-background, #ffebee);\n border: 1px solid var(--jupiter-error-color, #d32f2f);\n }\n\n .validation-summary-title {\n font-weight: 600;\n color: var(--jupiter-error-color, #d32f2f);\n margin: 0 0 8px 0;\n }\n\n .validation-summary-list {\n margin: 0;\n padding-left: 20px;\n }\n\n .validation-summary-item {\n color: var(--jupiter-error-color, #d32f2f);\n margin-bottom: 4px;\n }\n\n .form-actions button {\n padding: 10px 20px;\n border: none;\n border-radius: 4px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.2s ease;\n }\n\n .btn-primary {\n background: var(--jupiter-primary-color, #1976d2);\n color: white;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: var(--jupiter-primary-color-dark, #1565c0);\n }\n\n .btn-secondary {\n background: var(--jupiter-secondary-color, #757575);\n color: white;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: var(--jupiter-secondary-color-dark, #616161);\n }\n\n .btn-outline {\n background: transparent;\n color: var(--jupiter-primary-color, #1976d2);\n border: 1px solid var(--jupiter-primary-color, #1976d2);\n }\n\n .btn-outline:hover:not(:disabled) {\n background: var(--jupiter-primary-color, #1976d2);\n color: white;\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .form-meta {\n display: flex;\n gap: 16px;\n align-items: center;\n font-size: 12px;\n color: var(--jupiter-text-secondary, #666);\n margin-left: auto;\n }\n `;\n\n connectedCallback() {\n super.connectedCallback();\n this._initializeForm();\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has('xbrlInput') || changedProperties.has('schema')) {\n this._initializeForm();\n }\n }\n\n private _initializeForm() {\n // Generate schema from XBRL input if provided, otherwise use provided schema\n if (this.xbrlInput) {\n try {\n console.log('🔄 Initializing form from XBRL input:', this.xbrlInput);\n console.log('📅 Using period dates:', this.periodStartDate, 'to', this.periodEndDate);\n this._currentSchema = XBRLFormBuilder.buildFormSchema(\n this.xbrlInput, \n this.periodStartDate, \n this.periodEndDate\n );\n console.log('✅ Generated schema with sections:', this._currentSchema.sections.length);\n \n // Use simple column structure for now\n this._columns = [\n {\n id: 'base',\n title: 'Value',\n description: 'Base values for concepts',\n type: 'base',\n order: 0,\n removable: false\n }\n ];\n } catch (error) {\n console.error('❌ Error building form from XBRL input:', error);\n this._currentSchema = this._getDefaultSchema();\n this._columns = this._getDefaultColumns();\n }\n } else if (this.schema) {\n this._currentSchema = this.schema;\n this._columns = this._getDefaultColumns();\n } else {\n this._currentSchema = this._getDefaultSchema();\n this._columns = this._getDefaultColumns();\n }\n\n // Initialize form data\n this._formData = { ...this.initialData };\n if (this.xbrlInput?.initialData) {\n this._formData = { ...this._formData, ...this.xbrlInput.initialData };\n }\n \n // Validate initial data\n this._validateForm();\n }\n\n private _getDefaultSchema(): XBRLFormSchema {\n return {\n version: '1.0',\n formId: 'default-form',\n title: 'Dynamic Form',\n description: 'Please provide form schema or XBRL input data',\n sections: []\n };\n }\n\n private _getDefaultColumns(): FormColumn[] {\n return [\n {\n id: 'base',\n title: 'Value',\n description: 'Base values for concepts',\n type: 'base',\n order: 0,\n removable: false\n }\n ];\n }\n\n private _validateForm() {\n const errors: ValidationError[] = [];\n \n // Use current schema for validation\n const schema = this._currentSchema;\n if (!schema) return;\n \n // Validate each section and its concepts\n for (const section of schema.sections) {\n for (const concept of section.concepts) {\n for (const field of concept.fields) {\n const value = this._formData[concept.id]?.[field.columnId];\n const fieldErrors = FormValidator.validateField(\n field.id,\n concept.id,\n field.columnId,\n value,\n field.type,\n field.validation || []\n );\n errors.push(...fieldErrors);\n }\n }\n }\n\n this._errors = errors;\n this._valid = errors.filter(e => e.severity === 'error').length === 0;\n }\n\n private _handleFieldChange(event: CustomEvent) {\n const { fieldId, conceptId, columnId, value } = event.detail;\n \n // Update form data\n if (!this._formData[conceptId]) {\n this._formData[conceptId] = {};\n }\n const oldValue = this._formData[conceptId][columnId];\n this._formData[conceptId][columnId] = value;\n \n // Mark as touched and dirty\n this._touched.add(`${conceptId}-${columnId}`);\n this._dirty = true;\n \n // Re-validate\n this._validateForm();\n \n // Trigger update\n this.requestUpdate();\n \n // Dispatch change event\n this.dispatchEvent(new CustomEvent('field-change', {\n detail: { fieldId, conceptId, columnId, value, oldValue },\n bubbles: true\n }));\n }\n\n private _handleSectionExpand(event: CustomEvent) {\n this.dispatchEvent(new CustomEvent('section-expand', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n private _handleConceptExpand(event: CustomEvent) {\n this.dispatchEvent(new CustomEvent('concept-expand', {\n detail: event.detail,\n bubbles: true\n }));\n }\n\n private _handleColumnRemove(event: CustomEvent) {\n const { columnId } = event.detail;\n \n // Remove column\n this._columns = this._columns.filter(col => col.id !== columnId);\n \n // Remove data for this column\n for (const conceptId in this._formData) {\n if (this._formData[conceptId][columnId] !== undefined) {\n delete this._formData[conceptId][columnId];\n }\n }\n \n this._dirty = true;\n this._validateForm();\n this.requestUpdate();\n \n this.dispatchEvent(new CustomEvent('column-remove', {\n detail: { columnId },\n bubbles: true\n }));\n }\n\n private _addColumn() {\n // This would typically open a dialog to configure the new dimension column\n // For now, we'll add a generic dimension column\n const newColumnId = `dim-${Date.now()}`;\n const newColumn: FormColumn = {\n id: newColumnId,\n title: `Dimension ${this._columns.length}`,\n description: 'Additional dimension column',\n type: 'dimension',\n order: this._columns.length,\n removable: true,\n dimensionData: {\n dimensionId: 'custom',\n memberValue: 'default',\n memberLabel: 'Default Member',\n }\n };\n \n this._columns = [...this._columns, newColumn];\n this.requestUpdate();\n \n this.dispatchEvent(new CustomEvent('column-add', {\n detail: { column: newColumn },\n bubbles: true\n }));\n }\n\n private _handleSubmit() {\n this._submitted = true;\n this._validateForm();\n \n this.dispatchEvent(new CustomEvent('form-submit', {\n detail: {\n data: this._formData,\n valid: this._valid,\n errors: this._errors\n },\n bubbles: true\n }));\n }\n\n private _handleReset() {\n this._formData = { ...this.initialData };\n this._touched.clear();\n this._dirty = false;\n this._submitted = false;\n this._validateForm();\n this.requestUpdate();\n \n this.dispatchEvent(new CustomEvent('form-reset', {\n detail: {},\n bubbles: true\n }));\n }\n\n private _getFormState(): FormState {\n return {\n data: this._formData,\n errors: this._errors,\n touched: this._touched,\n dirty: this._dirty,\n valid: this._valid,\n submitted: this._submitted\n };\n }\n\n // Public API methods\n public getData(): FormData {\n return { ...this._formData };\n }\n\n public setData(data: FormData) {\n this._formData = { ...data };\n this._dirty = true;\n this._validateForm();\n this.requestUpdate();\n }\n\n public validate(): boolean {\n this._validateForm();\n return this._valid;\n }\n\n public reset() {\n this._handleReset();\n }\n\n public getState(): FormState {\n return this._getFormState();\n }\n\n render() {\n const errorCount = this._errors.filter(e => e.severity === 'error').length;\n const config = this.config || {};\n const showValidationSummary = config.showValidationSummary !== false && \n errorCount > 0 && \n this._submitted;\n\n const schema = this._currentSchema;\n if (!schema) {\n return html`<div>Loading form...</div>`;\n }\n\n return html`\n <div class=\"form-container\">\n <!-- Form Header -->\n <div class=\"form-header\">\n <h1 class=\"form-title\">${schema.title}</h1>\n ${schema.description ? html`\n <p class=\"form-description\">${schema.description}</p>\n ` : ''}\n </div>\n\n <!-- Add Column Section -->\n ${config.enableColumnManagement !== false ? html`\n <div class=\"add-column-container\">\n <button \n class=\"add-column-btn\"\n @click=\"${this._addColumn}\"\n ?disabled=\"${this.disabled || this.readonly || (config.maxColumns && this._columns.length >= config.maxColumns)}\"\n >\n Add Dimension Column\n </button>\n </div>\n ` : ''}\n\n <!-- Form Content -->\n <div class=\"form-sections\">\n <!-- Validation Summary -->\n ${showValidationSummary ? html`\n <div class=\"validation-summary\">\n <h4 class=\"validation-summary-title\">Please fix the following errors:</h4>\n <ul class=\"validation-summary-list\">\n ${this._errors\n .filter(e => e.severity === 'error')\n .map(error => html`\n <li class=\"validation-summary-item\">${error.message}</li>\n `)}\n </ul>\n </div>\n ` : ''}\n\n <!-- Form Sections -->\n ${schema.sections.map(section => html`\n <jupiter-form-section\n .section=\"${section}\"\n .columns=\"${section.columns || this._columns}\"\n .formData=\"${this._formData}\"\n .disabled=\"${this.disabled || this.readonly}\"\n .collapsible=\"${config.collapsibleSections !== false}\"\n .locale=\"${config.locale || 'en-US'}\"\n @field-change=\"${this._handleFieldChange}\"\n @section-expand=\"${this._handleSectionExpand}\"\n @concept-expand=\"${this._handleConceptExpand}\"\n @column-remove=\"${this._handleColumnRemove}\"\n ></jupiter-form-section>\n `)}\n </div>\n\n <!-- Form Actions -->\n <div class=\"form-actions\">\n <button \n class=\"btn-primary\"\n @click=\"${this._handleSubmit}\"\n ?disabled=\"${this.disabled || this.readonly}\"\n >\n Submit\n </button>\n \n <button \n class=\"btn-outline\"\n @click=\"${this._handleReset}\"\n ?disabled=\"${this.disabled || !this._dirty}\"\n >\n Reset\n </button>\n\n <div class=\"form-meta\">\n <span>Errors: ${errorCount}</span>\n <span>Modified: ${this._dirty ? 'Yes' : 'No'}</span>\n <span>Valid: ${this._valid ? 'Yes' : 'No'}</span>\n </div>\n </div>\n </div>\n `;\n }\n}\n","// Main entry point for Jupiter Dynamic Forms\nexport * from './core/dynamic-form';\nexport * from './core/form-section';\nexport * from './core/concept-tree';\nexport * from './core/form-field';\nexport * from './schema/types';\nexport * from './utils/validation';\n\n// Register all custom elements\nimport './core/dynamic-form';\nimport './core/form-section';\nimport './core/concept-tree';\nimport './core/form-field';\n\n// Version export\nexport const version = '1.0.0';\n"],"names":["t","e","o","s","r","n","c","i","h","_a","l","__decorateClass","property","state","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
package/dist/schema/types.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface FormSection {
|
|
|
17
17
|
description?: string;
|
|
18
18
|
expanded?: boolean;
|
|
19
19
|
concepts: ConceptTree[];
|
|
20
|
+
columns?: FormColumn[];
|
|
20
21
|
validation?: ValidationRule[];
|
|
21
22
|
}
|
|
22
23
|
export interface ConceptTree {
|
|
@@ -43,6 +44,8 @@ export interface FormField {
|
|
|
43
44
|
defaultValue?: any;
|
|
44
45
|
options?: FieldOption[];
|
|
45
46
|
attributes?: Record<string, any>;
|
|
47
|
+
periodStartDate?: string;
|
|
48
|
+
periodEndDate?: string;
|
|
46
49
|
}
|
|
47
50
|
export interface FormColumn {
|
|
48
51
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
|