commons-shared-web-ui 0.0.40 → 0.0.41

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/index.d.ts CHANGED
@@ -887,6 +887,12 @@ declare class FieldConfiguratorComponent implements OnChanges {
887
887
  * Defaults to true (show everything).
888
888
  */
889
889
  showOptionConfig: boolean;
890
+ /**
891
+ * Field names that must always remain enabled and cannot be toggled off.
892
+ * When a locked field is selected, the IS ENABLED / READ ONLY / DISABLED
893
+ * controls are hidden so the user cannot accidentally disable the field.
894
+ */
895
+ lockedFieldNames: string[];
890
896
  readonly store: FieldConfiguratorService;
891
897
  private readonly cdr;
892
898
  private readonly schemaMapOverride;
@@ -903,7 +909,7 @@ declare class FieldConfiguratorComponent implements OnChanges {
903
909
  onTypeChange(builderType: string): void;
904
910
  private _emitChange;
905
911
  static ɵfac: i0.ɵɵFactoryDeclaration<FieldConfiguratorComponent, never>;
906
- static ɵcmp: i0.ɵɵComponentDeclaration<FieldConfiguratorComponent, "lib-field-configurator", never, { "schema": { "alias": "schema"; "required": true; }; "showOptionConfig": { "alias": "showOptionConfig"; "required": false; }; }, { "schemaChange": "schemaChange"; }, never, never, false, never>;
912
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldConfiguratorComponent, "lib-field-configurator", never, { "schema": { "alias": "schema"; "required": true; }; "showOptionConfig": { "alias": "showOptionConfig"; "required": false; }; "lockedFieldNames": { "alias": "lockedFieldNames"; "required": false; }; }, { "schemaChange": "schemaChange"; }, never, never, false, never>;
907
913
  }
908
914
 
909
915
  declare class GroupNodeComponent {
@@ -1027,6 +1033,12 @@ declare class ConfiguratorConfigPanelComponent implements OnChanges {
1027
1033
  * option URLs — these are pre-filled by the developer in the master JSON.
1028
1034
  */
1029
1035
  showOptionConfig: boolean;
1036
+ /**
1037
+ * Field names that are mandatory and cannot be disabled.
1038
+ * When the currently selected field is in this list, IS ENABLED / READ ONLY /
1039
+ * DISABLED controls are hidden from the Field State step.
1040
+ */
1041
+ lockedFieldNames: string[];
1030
1042
  /** Exposed to the template for the native type-switcher select */
1031
1043
  readonly switchableFieldTypes: {
1032
1044
  label: string;
@@ -1073,10 +1085,15 @@ declare class ConfiguratorConfigPanelComponent implements OnChanges {
1073
1085
  * Also removes entire sections that become empty after filtering.
1074
1086
  */
1075
1087
  private _filterSchemaForOptionConfig;
1088
+ /**
1089
+ * Remove IS ENABLED, READ ONLY, and DISABLED controls from the config schema
1090
+ * when the selected field is a mandatory/locked field.
1091
+ */
1092
+ private _filterSchemaForLockedField;
1076
1093
  private _extractInitialValuesFromField;
1077
1094
  private _buildPatchFromFormData;
1078
1095
  static ɵfac: i0.ɵɵFactoryDeclaration<ConfiguratorConfigPanelComponent, never>;
1079
- static ɵcmp: i0.ɵɵComponentDeclaration<ConfiguratorConfigPanelComponent, "lib-configurator-config-panel", never, { "selectedField": { "alias": "selectedField"; "required": false; }; "selectedFieldInfo": { "alias": "selectedFieldInfo"; "required": false; }; "builderFieldType": { "alias": "builderFieldType"; "required": false; }; "fieldTypeSchemaMap": { "alias": "fieldTypeSchemaMap"; "required": false; }; "showOptionConfig": { "alias": "showOptionConfig"; "required": false; }; }, { "configChange": "configChange"; "typeChange": "typeChange"; }, never, never, false, never>;
1096
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConfiguratorConfigPanelComponent, "lib-configurator-config-panel", never, { "selectedField": { "alias": "selectedField"; "required": false; }; "selectedFieldInfo": { "alias": "selectedFieldInfo"; "required": false; }; "builderFieldType": { "alias": "builderFieldType"; "required": false; }; "fieldTypeSchemaMap": { "alias": "fieldTypeSchemaMap"; "required": false; }; "showOptionConfig": { "alias": "showOptionConfig"; "required": false; }; "lockedFieldNames": { "alias": "lockedFieldNames"; "required": false; }; }, { "configChange": "configChange"; "typeChange": "typeChange"; }, never, never, false, never>;
1080
1097
  }
1081
1098
 
1082
1099
  declare class SmartFormController {
@@ -1207,7 +1224,10 @@ declare class SmartFormComponent implements OnInit, OnChanges, OnDestroy {
1207
1224
  private _markReady;
1208
1225
  ngOnChanges(changes: SimpleChanges): void;
1209
1226
  ngOnDestroy(): void;
1227
+ /** Public backward-compatible entry point — delegates to _startForm. */
1210
1228
  parseFormJson(): void;
1229
+ private _startForm;
1230
+ private _applySchema;
1211
1231
  initializeForm(): void;
1212
1232
  collectFields(fields: FieldConfig[]): void;
1213
1233
  handleSubmit(): void;
@@ -1272,6 +1292,16 @@ declare class SmartFormComponent implements OnInit, OnChanges, OnDestroy {
1272
1292
  isButtonDisabled(btn: ActionButtonConfig): boolean;
1273
1293
  private getButtonByActionKind;
1274
1294
  private navigateTo;
1295
+ private _hasHierarchyDynamic;
1296
+ private _expandHierarchyNodes;
1297
+ private _expandNodeRecursive;
1298
+ private _expandSingleNode;
1299
+ private _normalizeHierarchyCfg;
1300
+ private _fetchHierarchyTemplate;
1301
+ private _buildHierarchyFields;
1302
+ private _getPathValue;
1303
+ private _codeToFieldName;
1304
+ private _codeToLabel;
1275
1305
  static ɵfac: i0.ɵɵFactoryDeclaration<SmartFormComponent, never>;
1276
1306
  static ɵcmp: i0.ɵɵComponentDeclaration<SmartFormComponent, "lib-smart-form", never, { "formJson": { "alias": "formJson"; "required": false; }; "initialValues": { "alias": "initialValues"; "required": false; }; "enableDraftAutoSave": { "alias": "enableDraftAutoSave"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; }, { "submit": "submit"; "draftSave": "draftSave"; "actionClick": "actionClick"; "valueChange": "valueChange"; "fileAdded": "fileAdded"; "fileUploadFinished": "fileUploadFinished"; "fileRemoved": "fileRemoved"; "stepChange": "stepChange"; }, never, never, false, never>;
1277
1307
  }
@@ -1430,6 +1460,12 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
1430
1460
  label: string;
1431
1461
  code: any;
1432
1462
  }[];
1463
+ /**
1464
+ * Component-local option list for DROPDOWN/RADIO/CHECKBOX/CHIP fields.
1465
+ * Using a local copy prevents shared-config mutation when the same field config
1466
+ * object is reused across multiple allowMulti repeater instances.
1467
+ */
1468
+ localOptionList: any[];
1433
1469
  /** Cache of the latest dependency parameters for server-side autocomplete filtering */
1434
1470
  private _latestDependencyValues;
1435
1471
  /** For GROUP fields with allowMulti = true */
@@ -1443,6 +1479,8 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
1443
1479
  * cached values from bleeding into new instances.
1444
1480
  *
1445
1481
  * Enhanced with isEditing and isSaved flags for the 'multiSave' card UI.
1482
+ * Each instance gets its own rowController so cascading dropdowns work
1483
+ * independently within each repeater row.
1446
1484
  */
1447
1485
  instanceList: {
1448
1486
  id: number;
@@ -1451,6 +1489,7 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
1451
1489
  isEditing?: boolean;
1452
1490
  isSaved?: boolean;
1453
1491
  isExpanded?: boolean;
1492
+ rowController: SmartFormController;
1454
1493
  }[];
1455
1494
  private _nextInstanceId;
1456
1495
  /** Tracks open accordion panels for standard (non-multiSave) GROUP repeaters. */
@@ -1941,6 +1980,7 @@ interface DropdownConfig {
1941
1980
  }
1942
1981
 
1943
1982
  declare class DropdownComponent implements ControlValueAccessor, OnInit, OnChanges {
1983
+ private el;
1944
1984
  config?: DropdownConfig;
1945
1985
  labels?: DropdownLabels;
1946
1986
  options: DropdownOption[];
@@ -1976,13 +2016,20 @@ declare class DropdownComponent implements ControlValueAccessor, OnInit, OnChang
1976
2016
  selectionChange: EventEmitter<any>;
1977
2017
  viewport?: CdkVirtualScrollViewport;
1978
2018
  searchInput?: ElementRef;
2019
+ triggerEl?: ElementRef;
1979
2020
  filteredOptions: DropdownOption[];
1980
2021
  searchTerm: string;
1981
2022
  value: any;
1982
2023
  isOpen: boolean;
1983
2024
  focusedIndex: number;
2025
+ menuPosition: {
2026
+ top: number;
2027
+ left: number;
2028
+ width: number;
2029
+ };
1984
2030
  onChange: (value: any) => void;
1985
2031
  onTouched: () => void;
2032
+ constructor(el: ElementRef);
1986
2033
  ngOnInit(): void;
1987
2034
  ngOnChanges(changes: SimpleChanges): void;
1988
2035
  private get validOptions();
@@ -3918,6 +3965,28 @@ declare const DEFAULT_SIDE_NAV_TOOLTIP_POSITION = "right";
3918
3965
 
3919
3966
  declare function appendBaseUrlRecursively(obj: any, baseURL: string): void;
3920
3967
 
3968
+ interface HierarchyCfg {
3969
+ templateApiUrl: string;
3970
+ templateListPath: string | null;
3971
+ templateSelect: 'default' | 'first' | 'byCode';
3972
+ templateSelectField: string;
3973
+ templateSelectCode?: string;
3974
+ rootCodePath: string;
3975
+ templateCodePath: string;
3976
+ hierarchyListPath: string;
3977
+ parentField: string;
3978
+ childField: string;
3979
+ dataApiUrl: string;
3980
+ dataPath: string;
3981
+ labelPath: string;
3982
+ valuePath: string;
3983
+ colSpan: number;
3984
+ payloadPrefix: string;
3985
+ dependencyParam: string;
3986
+ nodes: Record<string, any>;
3987
+ branchSubType: string;
3988
+ }
3989
+
3921
3990
  declare class ValidationUtils {
3922
3991
  static email(): ValidatorFn;
3923
3992
  static phone(): ValidatorFn;
@@ -3966,4 +4035,4 @@ declare class SnackbarModule {
3966
4035
  }
3967
4036
 
3968
4037
  export { AlertComponent, AlertModule, ButtonComponent, ButtonDropdownComponent, ButtonDropdownModule, ButtonModule, CheckboxComponent, ConfigurableFormComponent, configurableForm_examples_d as ConfigurableFormExamples, ConfigurableFormModule, ConfirmationModalComponent, ConfirmationModalModule, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_SIDE_NAV_TOOLTIP_POSITION, DatepickerComponent, DropdownComponent, ExpressionService, FieldConfiguratorComponent, FieldSelectionComponent, FilterComponent, FilterModule, FilterSidebarComponent, FilterSidebarModule, FilterTableSelectorComponent, FilterTableSelectorModule, FormBuilderModule, FormComponentsModule, InputComponent, MaterialModule, NAV_ORIENTATION_DEFAULT, NAV_VARIANT_DEFAULT, NavComponent, NavModule, PAGINATION_THEME_DARK, PAGINATION_THEME_DEFAULT, PaginationComponent, PaginationModule, RadioComponent, SearchComponent, SharedUiModule, SideNavComponent, SideNavModule, SmartFormComponent, SmartFormController, smartForm_examples_d as SmartFormExamples, SmartFormModule, SmartTableComponent, SmartTableModule, SnackbarComponent, SnackbarModule, SnackbarService, StringUtils, SummaryCardComponent, SummaryCardModule, ToggleComponent, ValidationUtils, appendBaseUrlRecursively, clearLocalStorage, clearSessionStorage, getLocalStorageItem, getSessionStorageItem, removeLocalStorageItem, removeSessionStorageItem, setLocalStorageItem, setSessionStorageItem, translateConfig };
3969
- export type { AlertLabels, AlertVariant, AttachmentConfig, ButtonLabels, ButtonVariant, CheckboxConfig, CheckboxLabels, CheckboxOption, ConfirmationModalConfig, DateConfig, DatePickerConfig, DatepickerLabels, DropdownAction, DropdownConfig, DropdownLabels, DropdownOption, EmailConfig, FieldConfig, FieldType, FilterChangeEvent, FilterConfig, FilterItem, FilterItemType, FilterOutput, FilterPanelConfig, FilterParamMap, FilterSearchConfig, FilterSidebarChangeEvent, FilterSidebarConfig, FilterSidebarOutput, FilterTableConfig, FilterTableSelectorConfig, FormConfig, FormField, FormOption, FormSchema, FormSection, GeneratedConfig, IconInput, InputConfig, InputLabels, InputType, JsonFieldConfig, JsonFormConfig, KeyType, LengthConstraint, LocationConfig, NavItem, NavStyleConfig, NestedStringConfig, NumberConfig, OptionConfig, OptionDTO, OptionItem, PaginationConfig, PaginationLabels, PhoneConfig, QueryParamsConfig, RadioConfig, RadioLabels, RadioOption, RangeConfig, RatingConfig, SearchConfig, SearchLabels, SectionConfig, SelectionConfig, SideNavItem, SideNavSection, SideNavStyleConfig, SnackbarConfig, SnackbarVariant, StepperConfig, SubmitConfig, SummaryCardConfig, SummaryCardLabels, SummaryCardMeta, TableAction, TableActionItem, TableColumn, TableColumnSubField, TableConfig, TableDataChangeEvent, TableFilter, TableFilterChangeEvent, TableFilterColumn, TableFilterConfig, TableFilterItem, TableFilterLabels, TableFilterOutput, TableLabels, TableOption, TableRowSaveEvent, TableTheme, TextConfig, ToggleConfig, ToggleLabels, UIConfig, UISubType, UIType, UploadedFile, ValidationResult, ValidationRules };
4038
+ export type { AlertLabels, AlertVariant, AttachmentConfig, ButtonLabels, ButtonVariant, CheckboxConfig, CheckboxLabels, CheckboxOption, ConfirmationModalConfig, DateConfig, DatePickerConfig, DatepickerLabels, DropdownAction, DropdownConfig, DropdownLabels, DropdownOption, EmailConfig, FieldConfig, FieldType, FilterChangeEvent, FilterConfig, FilterItem, FilterItemType, FilterOutput, FilterPanelConfig, FilterParamMap, FilterSearchConfig, FilterSidebarChangeEvent, FilterSidebarConfig, FilterSidebarOutput, FilterTableConfig, FilterTableSelectorConfig, FormConfig, FormField, FormOption, FormSchema, FormSection, GeneratedConfig, HierarchyCfg, IconInput, InputConfig, InputLabels, InputType, JsonFieldConfig, JsonFormConfig, KeyType, LengthConstraint, LocationConfig, NavItem, NavStyleConfig, NestedStringConfig, NumberConfig, OptionConfig, OptionDTO, OptionItem, PaginationConfig, PaginationLabels, PhoneConfig, QueryParamsConfig, RadioConfig, RadioLabels, RadioOption, RangeConfig, RatingConfig, SearchConfig, SearchLabels, SectionConfig, SelectionConfig, SideNavItem, SideNavSection, SideNavStyleConfig, SnackbarConfig, SnackbarVariant, StepperConfig, SubmitConfig, SummaryCardConfig, SummaryCardLabels, SummaryCardMeta, TableAction, TableActionItem, TableColumn, TableColumnSubField, TableConfig, TableDataChangeEvent, TableFilter, TableFilterChangeEvent, TableFilterColumn, TableFilterConfig, TableFilterItem, TableFilterLabels, TableFilterOutput, TableLabels, TableOption, TableRowSaveEvent, TableTheme, TextConfig, ToggleConfig, ToggleLabels, UIConfig, UISubType, UIType, UploadedFile, ValidationResult, ValidationRules };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commons-shared-web-ui",
3
- "version": "0.0.40",
3
+ "version": "0.0.41",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "20.3.15",
6
6
  "@angular/cdk": "20.2.14",