jupiter-dynamic-forms 1.9.0 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -0
- package/dist/core/DynamicFormRefactored.d.ts +9 -0
- package/dist/core/DynamicFormRefactored.d.ts.map +1 -1
- package/dist/core/dynamic-form.d.ts +9 -0
- package/dist/core/dynamic-form.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +52 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -3939,6 +3939,45 @@ let JupiterDynamicForm = class extends LitElement {
|
|
|
3939
3939
|
updated(changedProperties) {
|
|
3940
3940
|
if (changedProperties.has("xbrlInput") || changedProperties.has("schema")) {
|
|
3941
3941
|
this._initializeForm();
|
|
3942
|
+
} else if (changedProperties.has("language")) {
|
|
3943
|
+
console.log("🌐 Language changed from", changedProperties.get("language"), "to", this.language);
|
|
3944
|
+
this._handleLanguageChange();
|
|
3945
|
+
}
|
|
3946
|
+
}
|
|
3947
|
+
/**
|
|
3948
|
+
* Handle language change - rebuild schema with new language while preserving form data
|
|
3949
|
+
*/
|
|
3950
|
+
_handleLanguageChange() {
|
|
3951
|
+
if (!this.xbrlInput) {
|
|
3952
|
+
console.warn("⚠️ Cannot change language without XBRL input data");
|
|
3953
|
+
return;
|
|
3954
|
+
}
|
|
3955
|
+
try {
|
|
3956
|
+
const currentFormData = { ...this._formData };
|
|
3957
|
+
const currentPreservedData = { ...this._preservedFormData };
|
|
3958
|
+
const currentTypedMemberData = { ...this._typedMemberData };
|
|
3959
|
+
const currentPreservedTypedMemberData = { ...this._preservedTypedMemberData };
|
|
3960
|
+
const currentSelectedRoles = [...this._selectedRoleIds];
|
|
3961
|
+
console.log("💾 Preserving form data during language change:", currentFormData);
|
|
3962
|
+
console.log("🔄 Rebuilding form schema with language:", this.language);
|
|
3963
|
+
this._currentSchema = XBRLFormBuilder.buildFormSchema(
|
|
3964
|
+
this.xbrlInput,
|
|
3965
|
+
this.periodStartDate,
|
|
3966
|
+
this.periodEndDate,
|
|
3967
|
+
this.language
|
|
3968
|
+
);
|
|
3969
|
+
this._allSections = [...this._currentSchema.sections];
|
|
3970
|
+
this._selectedRoleIds = currentSelectedRoles;
|
|
3971
|
+
this._applyRoleFilter();
|
|
3972
|
+
this._formData = currentFormData;
|
|
3973
|
+
this._preservedFormData = currentPreservedData;
|
|
3974
|
+
this._typedMemberData = currentTypedMemberData;
|
|
3975
|
+
this._preservedTypedMemberData = currentPreservedTypedMemberData;
|
|
3976
|
+
console.log("✅ Language changed successfully, form data preserved");
|
|
3977
|
+
this.requestUpdate("_currentSchema");
|
|
3978
|
+
this.requestUpdate("language");
|
|
3979
|
+
} catch (error) {
|
|
3980
|
+
console.error("❌ Error changing language:", error);
|
|
3942
3981
|
}
|
|
3943
3982
|
}
|
|
3944
3983
|
_initializeForm() {
|
|
@@ -4911,6 +4950,18 @@ let JupiterDynamicForm = class extends LitElement {
|
|
|
4911
4950
|
getState() {
|
|
4912
4951
|
return this._getFormState();
|
|
4913
4952
|
}
|
|
4953
|
+
/**
|
|
4954
|
+
* Change the form language and re-render labels while preserving data
|
|
4955
|
+
* @param newLanguage - ISO language code (e.g., 'en', 'nl', 'de')
|
|
4956
|
+
*/
|
|
4957
|
+
changeLanguage(newLanguage) {
|
|
4958
|
+
if (this.language === newLanguage) {
|
|
4959
|
+
console.log("🌐 Language already set to", newLanguage);
|
|
4960
|
+
return;
|
|
4961
|
+
}
|
|
4962
|
+
console.log("🌐 Changing language from", this.language, "to", newLanguage);
|
|
4963
|
+
this.language = newLanguage;
|
|
4964
|
+
}
|
|
4914
4965
|
render() {
|
|
4915
4966
|
const errorCount = this._errors.filter((e2) => e2.severity === "error").length;
|
|
4916
4967
|
const config = this.config || {};
|
|
@@ -4952,6 +5003,7 @@ let JupiterDynamicForm = class extends LitElement {
|
|
|
4952
5003
|
</div>
|
|
4953
5004
|
` : schema.sections.map((section, index) => html`
|
|
4954
5005
|
<jupiter-form-section
|
|
5006
|
+
.key="${section.id}-${this.language}"
|
|
4955
5007
|
.section="${section}"
|
|
4956
5008
|
.columns="${section.columns || this._columns}"
|
|
4957
5009
|
.formData="${this._formData}"
|