jupiter-dynamic-forms 1.9.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3939,6 +3939,44 @@ 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();
3978
+ } catch (error) {
3979
+ console.error("❌ Error changing language:", error);
3942
3980
  }
3943
3981
  }
3944
3982
  _initializeForm() {
@@ -4911,6 +4949,18 @@ let JupiterDynamicForm = class extends LitElement {
4911
4949
  getState() {
4912
4950
  return this._getFormState();
4913
4951
  }
4952
+ /**
4953
+ * Change the form language and re-render labels while preserving data
4954
+ * @param newLanguage - ISO language code (e.g., 'en', 'nl', 'de')
4955
+ */
4956
+ changeLanguage(newLanguage) {
4957
+ if (this.language === newLanguage) {
4958
+ console.log("🌐 Language already set to", newLanguage);
4959
+ return;
4960
+ }
4961
+ console.log("🌐 Changing language from", this.language, "to", newLanguage);
4962
+ this.language = newLanguage;
4963
+ }
4914
4964
  render() {
4915
4965
  const errorCount = this._errors.filter((e2) => e2.severity === "error").length;
4916
4966
  const config = this.config || {};