form-builder-pro 1.0.9 → 1.0.11
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.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +167 -46
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +167 -46
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -4186,6 +4186,9 @@ var cleanFormSchema = (schema) => {
|
|
|
4186
4186
|
if (field.type === "select" && field.groupName) {
|
|
4187
4187
|
cleaned.groupName = field.groupName;
|
|
4188
4188
|
}
|
|
4189
|
+
if (field.type === "select" && field.masterTypeName !== void 0) {
|
|
4190
|
+
cleaned.masterTypeName = field.masterTypeName;
|
|
4191
|
+
}
|
|
4189
4192
|
return cleaned;
|
|
4190
4193
|
};
|
|
4191
4194
|
return {
|
|
@@ -4255,32 +4258,99 @@ var formStore = createStore((set, get) => ({
|
|
|
4255
4258
|
const updatedSections = cleanedSchema.sections.map((section) => ({
|
|
4256
4259
|
...section,
|
|
4257
4260
|
fields: section.fields.map((field) => {
|
|
4258
|
-
if (field.type === "select"
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
)
|
|
4261
|
+
if (field.type === "select") {
|
|
4262
|
+
let masterType;
|
|
4263
|
+
let updatedField = { ...field };
|
|
4264
|
+
if (field.masterTypeName && !field.groupName) {
|
|
4265
|
+
masterType = state.masterTypes.find(
|
|
4266
|
+
(mt) => mt.active === true && mt.enumName === field.masterTypeName
|
|
4267
|
+
);
|
|
4268
|
+
if (masterType) {
|
|
4269
|
+
updatedField = {
|
|
4270
|
+
...updatedField,
|
|
4271
|
+
groupName: {
|
|
4272
|
+
id: masterType.id,
|
|
4273
|
+
name: masterType.name
|
|
4274
|
+
}
|
|
4275
|
+
};
|
|
4276
|
+
if (process.env.NODE_ENV === "development") {
|
|
4277
|
+
console.log(`[FormBuilder] Hydrating dropdown field "${field.id}": Resolved groupName from masterTypeName "${field.masterTypeName}"`, {
|
|
4278
|
+
fieldId: field.id,
|
|
4279
|
+
masterTypeName: field.masterTypeName,
|
|
4280
|
+
groupName: updatedField.groupName
|
|
4281
|
+
});
|
|
4282
|
+
}
|
|
4283
|
+
} else {
|
|
4284
|
+
console.warn(`[FormBuilder] Master type not found for masterTypeName: "${field.masterTypeName}"`, {
|
|
4285
|
+
fieldId: field.id,
|
|
4286
|
+
masterTypeName: field.masterTypeName
|
|
4287
|
+
});
|
|
4288
|
+
}
|
|
4289
|
+
} else if (field.groupName) {
|
|
4290
|
+
masterType = state.masterTypes.find(
|
|
4291
|
+
(mt) => mt.active === true && (mt.id === field.groupName?.id || mt.name === field.groupName?.name)
|
|
4292
|
+
);
|
|
4293
|
+
if (masterType && !field.masterTypeName && masterType.enumName) {
|
|
4294
|
+
updatedField = {
|
|
4295
|
+
...updatedField,
|
|
4296
|
+
masterTypeName: masterType.enumName
|
|
4297
|
+
};
|
|
4298
|
+
}
|
|
4299
|
+
} else if (field.masterTypeName && field.groupName) {
|
|
4300
|
+
masterType = state.masterTypes.find(
|
|
4301
|
+
(mt) => mt.active === true && mt.enumName === field.masterTypeName && (mt.id === field.groupName?.id || mt.name === field.groupName?.name)
|
|
4302
|
+
);
|
|
4303
|
+
if (!masterType) {
|
|
4304
|
+
masterType = state.masterTypes.find(
|
|
4305
|
+
(mt) => mt.active === true && mt.enumName === field.masterTypeName
|
|
4306
|
+
);
|
|
4307
|
+
if (masterType) {
|
|
4308
|
+
updatedField = {
|
|
4309
|
+
...updatedField,
|
|
4310
|
+
groupName: {
|
|
4311
|
+
id: masterType.id,
|
|
4312
|
+
name: masterType.name
|
|
4313
|
+
}
|
|
4314
|
+
};
|
|
4315
|
+
}
|
|
4316
|
+
}
|
|
4317
|
+
}
|
|
4262
4318
|
if (masterType) {
|
|
4319
|
+
let options = [];
|
|
4263
4320
|
if (masterType.enumName && state.dropdownOptionsMap && state.dropdownOptionsMap[masterType.enumName]) {
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4321
|
+
options = state.dropdownOptionsMap[masterType.enumName];
|
|
4322
|
+
if (process.env.NODE_ENV === "development") {
|
|
4323
|
+
console.log(`[FormBuilder] Hydrating dropdown field "${field.id}": Loaded ${options.length} options from dropdownOptionsMap for "${masterType.enumName}"`);
|
|
4324
|
+
}
|
|
4325
|
+
} else if (masterType.indexes && masterType.indexes.length > 0) {
|
|
4326
|
+
options = convertIndexesToOptions(masterType.indexes);
|
|
4327
|
+
if (process.env.NODE_ENV === "development") {
|
|
4328
|
+
console.log(`[FormBuilder] Hydrating dropdown field "${field.id}": Loaded ${options.length} options from master type indexes for "${masterType.displayName}"`);
|
|
4329
|
+
}
|
|
4330
|
+
} else {
|
|
4331
|
+
console.warn(`[FormBuilder] Master type "${masterType.displayName}" (${masterType.name}) has empty indexes array and no dropdownOptionsMap entry. Dropdown will have no options. Please ensure the API returns populated indexes or provide dropdownOptionsMap.`, {
|
|
4268
4332
|
masterTypeId: masterType.id,
|
|
4269
4333
|
masterTypeName: masterType.name,
|
|
4270
4334
|
enumName: masterType.enumName,
|
|
4271
|
-
indexes: masterType.indexes
|
|
4335
|
+
indexes: masterType.indexes,
|
|
4336
|
+
fieldId: field.id
|
|
4272
4337
|
});
|
|
4273
4338
|
}
|
|
4274
|
-
if (
|
|
4275
|
-
if (!
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4339
|
+
if (options.length > 0) {
|
|
4340
|
+
if (!updatedField.options || updatedField.options.length === 0 || areDefaultOptions(updatedField.options)) {
|
|
4341
|
+
updatedField = {
|
|
4342
|
+
...updatedField,
|
|
4343
|
+
options
|
|
4344
|
+
};
|
|
4279
4345
|
}
|
|
4280
4346
|
}
|
|
4281
|
-
} else {
|
|
4282
|
-
console.warn("[FormBuilder] Master type not found for groupName:", field.groupName
|
|
4347
|
+
} else if (field.groupName) {
|
|
4348
|
+
console.warn("[FormBuilder] Master type not found for groupName:", field.groupName, {
|
|
4349
|
+
fieldId: field.id,
|
|
4350
|
+
groupName: field.groupName
|
|
4351
|
+
});
|
|
4283
4352
|
}
|
|
4353
|
+
return updatedField;
|
|
4284
4354
|
}
|
|
4285
4355
|
return field;
|
|
4286
4356
|
})
|
|
@@ -4319,10 +4389,17 @@ var formStore = createStore((set, get) => ({
|
|
|
4319
4389
|
const updatedSections = state.schema.sections.map((section) => ({
|
|
4320
4390
|
...section,
|
|
4321
4391
|
fields: section.fields.map((field) => {
|
|
4322
|
-
if (field.type === "select"
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4392
|
+
if (field.type === "select") {
|
|
4393
|
+
let masterType;
|
|
4394
|
+
if (field.masterTypeName) {
|
|
4395
|
+
masterType = state.masterTypes.find(
|
|
4396
|
+
(mt) => mt.active === true && mt.enumName === field.masterTypeName
|
|
4397
|
+
);
|
|
4398
|
+
} else if (field.groupName) {
|
|
4399
|
+
masterType = state.masterTypes.find(
|
|
4400
|
+
(mt) => mt.active === true && (mt.id === field.groupName?.id || mt.name === field.groupName?.name)
|
|
4401
|
+
);
|
|
4402
|
+
}
|
|
4326
4403
|
if (masterType && masterType.indexes && masterType.indexes.length > 0) {
|
|
4327
4404
|
if (!field.options || field.options.length === 0 || areDefaultOptions(field.options)) {
|
|
4328
4405
|
const options = convertIndexesToOptions(masterType.indexes);
|
|
@@ -4360,10 +4437,17 @@ var formStore = createStore((set, get) => ({
|
|
|
4360
4437
|
const updatedSections = state.schema.sections.map((section) => ({
|
|
4361
4438
|
...section,
|
|
4362
4439
|
fields: section.fields.map((field) => {
|
|
4363
|
-
if (field.type === "select"
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4440
|
+
if (field.type === "select") {
|
|
4441
|
+
let masterType;
|
|
4442
|
+
if (field.masterTypeName) {
|
|
4443
|
+
masterType = state.masterTypes.find(
|
|
4444
|
+
(mt) => mt.active === true && mt.enumName === field.masterTypeName
|
|
4445
|
+
);
|
|
4446
|
+
} else if (field.groupName) {
|
|
4447
|
+
masterType = state.masterTypes.find(
|
|
4448
|
+
(mt) => mt.active === true && (mt.id === field.groupName?.id || mt.name === field.groupName?.name)
|
|
4449
|
+
);
|
|
4450
|
+
}
|
|
4367
4451
|
if (masterType && masterType.enumName && map[masterType.enumName]) {
|
|
4368
4452
|
return { ...field, options: map[masterType.enumName] };
|
|
4369
4453
|
}
|
|
@@ -4404,16 +4488,40 @@ var formStore = createStore((set, get) => ({
|
|
|
4404
4488
|
const updatedSections = state.schema.sections.map((section) => ({
|
|
4405
4489
|
...section,
|
|
4406
4490
|
fields: section.fields.map((field) => {
|
|
4407
|
-
if (field.type === "select"
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
)
|
|
4491
|
+
if (field.type === "select") {
|
|
4492
|
+
let masterType;
|
|
4493
|
+
let updatedField = { ...field };
|
|
4494
|
+
if (field.masterTypeName) {
|
|
4495
|
+
masterType = masterTypes.find(
|
|
4496
|
+
(mt) => mt.active === true && mt.enumName === field.masterTypeName
|
|
4497
|
+
);
|
|
4498
|
+
if (masterType && !field.groupName) {
|
|
4499
|
+
updatedField = {
|
|
4500
|
+
...updatedField,
|
|
4501
|
+
groupName: {
|
|
4502
|
+
id: masterType.id,
|
|
4503
|
+
name: masterType.name
|
|
4504
|
+
}
|
|
4505
|
+
};
|
|
4506
|
+
}
|
|
4507
|
+
} else if (field.groupName) {
|
|
4508
|
+
masterType = masterTypes.find(
|
|
4509
|
+
(mt) => mt.active === true && (mt.id === field.groupName?.id || mt.name === field.groupName?.name)
|
|
4510
|
+
);
|
|
4511
|
+
if (masterType && !field.masterTypeName && masterType.enumName) {
|
|
4512
|
+
updatedField = {
|
|
4513
|
+
...updatedField,
|
|
4514
|
+
masterTypeName: masterType.enumName
|
|
4515
|
+
};
|
|
4516
|
+
}
|
|
4517
|
+
}
|
|
4411
4518
|
if (masterType && masterType.indexes && masterType.indexes.length > 0) {
|
|
4412
|
-
if (!
|
|
4519
|
+
if (!updatedField.options || updatedField.options.length === 0 || areDefaultOptions(updatedField.options)) {
|
|
4413
4520
|
const options = convertIndexesToOptions(masterType.indexes);
|
|
4414
|
-
return { ...
|
|
4521
|
+
return { ...updatedField, options };
|
|
4415
4522
|
}
|
|
4416
4523
|
}
|
|
4524
|
+
return updatedField;
|
|
4417
4525
|
}
|
|
4418
4526
|
return field;
|
|
4419
4527
|
})
|
|
@@ -7999,6 +8107,7 @@ var FormBuilder = class {
|
|
|
7999
8107
|
id: selectedMasterType.id,
|
|
8000
8108
|
name: selectedMasterType.name
|
|
8001
8109
|
},
|
|
8110
|
+
masterTypeName: selectedEnumName,
|
|
8002
8111
|
options: options.length > 0 ? options : void 0
|
|
8003
8112
|
});
|
|
8004
8113
|
if (this.options.onGroupSelectionChange) {
|
|
@@ -8011,19 +8120,28 @@ var FormBuilder = class {
|
|
|
8011
8120
|
} else {
|
|
8012
8121
|
formStore.getState().updateField(selectedField.id, {
|
|
8013
8122
|
groupName: void 0,
|
|
8123
|
+
masterTypeName: void 0,
|
|
8014
8124
|
options: void 0
|
|
8015
8125
|
// Clear options when groupName is cleared
|
|
8016
8126
|
});
|
|
8017
8127
|
}
|
|
8018
8128
|
}
|
|
8019
8129
|
});
|
|
8130
|
+
let currentMasterType;
|
|
8131
|
+
if (selectedField.masterTypeName) {
|
|
8132
|
+
currentMasterType = activeMasterTypes.find((mt) => mt.enumName === selectedField.masterTypeName);
|
|
8133
|
+
} else if (selectedField.groupName) {
|
|
8134
|
+
currentMasterType = activeMasterTypes.find(
|
|
8135
|
+
(mt) => mt.id === selectedField.groupName?.id || mt.name === selectedField.groupName?.name
|
|
8136
|
+
);
|
|
8137
|
+
}
|
|
8020
8138
|
groupNameSelect.appendChild(createElement("option", {
|
|
8021
8139
|
value: "",
|
|
8022
8140
|
text: "None",
|
|
8023
|
-
selected: !
|
|
8141
|
+
selected: !currentMasterType
|
|
8024
8142
|
}));
|
|
8025
8143
|
activeMasterTypes.forEach((mt) => {
|
|
8026
|
-
const isSelected = selectedField.
|
|
8144
|
+
const isSelected = currentMasterType && (selectedField.masterTypeName && mt.enumName === selectedField.masterTypeName || selectedField.groupName && (mt.id === selectedField.groupName?.id || mt.name === selectedField.groupName?.name));
|
|
8027
8145
|
const optionValue = mt.enumName || mt.id || mt.name;
|
|
8028
8146
|
groupNameSelect.appendChild(createElement("option", {
|
|
8029
8147
|
value: optionValue,
|
|
@@ -8033,20 +8151,23 @@ var FormBuilder = class {
|
|
|
8033
8151
|
});
|
|
8034
8152
|
groupNameGroup.appendChild(groupNameSelect);
|
|
8035
8153
|
body.appendChild(groupNameGroup);
|
|
8036
|
-
if (
|
|
8037
|
-
|
|
8038
|
-
|
|
8039
|
-
|
|
8040
|
-
if (currentMasterType) {
|
|
8041
|
-
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8049
|
-
|
|
8154
|
+
if (currentMasterType && (!selectedField.options || selectedField.options.length === 0)) {
|
|
8155
|
+
let options = [];
|
|
8156
|
+
if (currentMasterType.enumName && dropdownOptionsMap && dropdownOptionsMap[currentMasterType.enumName]) {
|
|
8157
|
+
options = dropdownOptionsMap[currentMasterType.enumName];
|
|
8158
|
+
} else if (currentMasterType.indexes && currentMasterType.indexes.length > 0) {
|
|
8159
|
+
options = convertIndexesToOptions(currentMasterType.indexes);
|
|
8160
|
+
}
|
|
8161
|
+
if (options.length > 0) {
|
|
8162
|
+
formStore.getState().updateField(selectedField.id, { options });
|
|
8163
|
+
}
|
|
8164
|
+
if (selectedField.masterTypeName && !selectedField.groupName) {
|
|
8165
|
+
formStore.getState().updateField(selectedField.id, {
|
|
8166
|
+
groupName: {
|
|
8167
|
+
id: currentMasterType.id,
|
|
8168
|
+
name: currentMasterType.name
|
|
8169
|
+
}
|
|
8170
|
+
});
|
|
8050
8171
|
}
|
|
8051
8172
|
}
|
|
8052
8173
|
}
|