mn-angular-lib 1.0.25 → 1.0.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mn-angular-lib",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.3",
6
6
  "@angular/core": "^21.1.3"
@@ -2343,6 +2343,11 @@ type ModalInputMap = Record<string, unknown>;
2343
2343
  * whether the field should be visible.
2344
2344
  */
2345
2345
  type FieldVisibilityCondition<TModel = any> = (formValue: Partial<TModel>) => boolean;
2346
+ /**
2347
+ * A condition function that receives the current form values and returns
2348
+ * whether the field should be required.
2349
+ */
2350
+ type FieldRequiredCondition<TModel = any> = (formValue: Partial<TModel>) => boolean;
2346
2351
  /**
2347
2352
  * A form-level validator that receives the entire form value
2348
2353
  * and returns an error map or null.
@@ -2441,6 +2446,8 @@ interface TextFieldConfig<TModel = unknown> {
2441
2446
  disabled?: boolean;
2442
2447
  /** Condition to show/hide this field based on other field values */
2443
2448
  visible?: FieldVisibilityCondition<TModel>;
2449
+ /** Condition to dynamically mark this field as required based on other field values */
2450
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2444
2451
  /** Input mask (e.g., '(000) 000-0000') */
2445
2452
  mask?: string;
2446
2453
  /** Autocomplete attribute */
@@ -2463,6 +2470,8 @@ interface NumberFieldConfig<TModel = unknown> {
2463
2470
  readOnly?: boolean;
2464
2471
  disabled?: boolean;
2465
2472
  visible?: FieldVisibilityCondition<TModel>;
2473
+ /** Condition to dynamically mark this field as required based on other field values */
2474
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2466
2475
  autoFocus?: boolean;
2467
2476
  updateOn?: 'change' | 'blur' | 'submit';
2468
2477
  }
@@ -2477,6 +2486,8 @@ interface SelectFieldConfig<TModel = unknown, TValue = unknown> {
2477
2486
  readOnly?: boolean;
2478
2487
  disabled?: boolean;
2479
2488
  visible?: FieldVisibilityCondition<TModel>;
2489
+ /** Condition to dynamically mark this field as required based on other field values */
2490
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2480
2491
  autoFocus?: boolean;
2481
2492
  updateOn?: 'change' | 'blur' | 'submit';
2482
2493
  /** Async data source for loading options dynamically */
@@ -2492,6 +2503,8 @@ interface CheckboxFieldConfig<TModel = unknown> {
2492
2503
  readOnly?: boolean;
2493
2504
  disabled?: boolean;
2494
2505
  visible?: FieldVisibilityCondition<TModel>;
2506
+ /** Condition to dynamically mark this field as required based on other field values */
2507
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2495
2508
  autoFocus?: boolean;
2496
2509
  updateOn?: 'change' | 'blur' | 'submit';
2497
2510
  }
@@ -2507,6 +2520,8 @@ interface DateFieldConfig<TModel = unknown> {
2507
2520
  readOnly?: boolean;
2508
2521
  disabled?: boolean;
2509
2522
  visible?: FieldVisibilityCondition<TModel>;
2523
+ /** Condition to dynamically mark this field as required based on other field values */
2524
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2510
2525
  autoFocus?: boolean;
2511
2526
  updateOn?: 'change' | 'blur' | 'submit';
2512
2527
  }
@@ -2521,6 +2536,8 @@ interface TextareaFieldConfig<TModel = unknown> {
2521
2536
  readOnly?: boolean;
2522
2537
  disabled?: boolean;
2523
2538
  visible?: FieldVisibilityCondition<TModel>;
2539
+ /** Condition to dynamically mark this field as required based on other field values */
2540
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2524
2541
  autoFocus?: boolean;
2525
2542
  updateOn?: 'change' | 'blur' | 'submit';
2526
2543
  }
@@ -2538,6 +2555,8 @@ interface DatetimeFieldConfig<TModel = unknown> {
2538
2555
  readOnly?: boolean;
2539
2556
  disabled?: boolean;
2540
2557
  visible?: FieldVisibilityCondition<TModel>;
2558
+ /** Condition to dynamically mark this field as required based on other field values */
2559
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2541
2560
  autoFocus?: boolean;
2542
2561
  updateOn?: 'change' | 'blur' | 'submit';
2543
2562
  }
@@ -2554,6 +2573,8 @@ interface MultiSelectFieldConfig<TModel = unknown, TValue = unknown> {
2554
2573
  readOnly?: boolean;
2555
2574
  disabled?: boolean;
2556
2575
  visible?: FieldVisibilityCondition<TModel>;
2576
+ /** Condition to dynamically mark this field as required based on other field values */
2577
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2557
2578
  autoFocus?: boolean;
2558
2579
  updateOn?: 'change' | 'blur' | 'submit';
2559
2580
  /** Async data source for loading options dynamically */
@@ -2569,6 +2590,8 @@ interface PasswordFieldConfig<TModel = unknown> {
2569
2590
  readOnly?: boolean;
2570
2591
  disabled?: boolean;
2571
2592
  visible?: FieldVisibilityCondition<TModel>;
2593
+ /** Condition to dynamically mark this field as required based on other field values */
2594
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2572
2595
  autoFocus?: boolean;
2573
2596
  updateOn?: 'change' | 'blur' | 'submit';
2574
2597
  }
@@ -2585,6 +2608,8 @@ interface MultiSelectTableFieldConfig<TModel = unknown, TRow = any> {
2585
2608
  readOnly?: boolean;
2586
2609
  disabled?: boolean;
2587
2610
  visible?: FieldVisibilityCondition<TModel>;
2611
+ /** Condition to dynamically mark this field as required based on other field values */
2612
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2588
2613
  autoFocus?: boolean;
2589
2614
  updateOn?: 'change' | 'blur' | 'submit';
2590
2615
  }
@@ -2601,6 +2626,8 @@ interface SingleSelectTableFieldConfig<TModel = unknown, TRow = any> {
2601
2626
  readOnly?: boolean;
2602
2627
  disabled?: boolean;
2603
2628
  visible?: FieldVisibilityCondition<TModel>;
2629
+ /** Condition to dynamically mark this field as required based on other field values */
2630
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2604
2631
  autoFocus?: boolean;
2605
2632
  updateOn?: 'change' | 'blur' | 'submit';
2606
2633
  }
@@ -2617,6 +2644,8 @@ interface ColorFieldConfig<TModel = unknown> {
2617
2644
  readOnly?: boolean;
2618
2645
  disabled?: boolean;
2619
2646
  visible?: FieldVisibilityCondition<TModel>;
2647
+ /** Condition to dynamically mark this field as required based on other field values */
2648
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2620
2649
  autoFocus?: boolean;
2621
2650
  updateOn?: 'change' | 'blur' | 'submit';
2622
2651
  }
@@ -2635,6 +2664,8 @@ interface RatingFieldConfig<TModel = unknown> {
2635
2664
  readOnly?: boolean;
2636
2665
  disabled?: boolean;
2637
2666
  visible?: FieldVisibilityCondition<TModel>;
2667
+ /** Condition to dynamically mark this field as required based on other field values */
2668
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2638
2669
  autoFocus?: boolean;
2639
2670
  updateOn?: 'change' | 'blur' | 'submit';
2640
2671
  }
@@ -2657,6 +2688,8 @@ interface SliderFieldConfig<TModel = unknown> {
2657
2688
  readOnly?: boolean;
2658
2689
  disabled?: boolean;
2659
2690
  visible?: FieldVisibilityCondition<TModel>;
2691
+ /** Condition to dynamically mark this field as required based on other field values */
2692
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2660
2693
  autoFocus?: boolean;
2661
2694
  updateOn?: 'change' | 'blur' | 'submit';
2662
2695
  }
@@ -2677,6 +2710,8 @@ interface FileFieldConfig<TModel = unknown> {
2677
2710
  readOnly?: boolean;
2678
2711
  disabled?: boolean;
2679
2712
  visible?: FieldVisibilityCondition<TModel>;
2713
+ /** Condition to dynamically mark this field as required based on other field values */
2714
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2680
2715
  autoFocus?: boolean;
2681
2716
  updateOn?: 'change' | 'blur' | 'submit';
2682
2717
  }
@@ -2689,6 +2724,8 @@ interface CustomFieldConfig<TModel = unknown> {
2689
2724
  validators?: any[];
2690
2725
  asyncValidators?: any[];
2691
2726
  visible?: FieldVisibilityCondition<TModel>;
2727
+ /** Condition to dynamically mark this field as required based on other field values */
2728
+ conditionallyRequired?: FieldRequiredCondition<TModel>;
2692
2729
  autoFocus?: boolean;
2693
2730
  updateOn?: 'change' | 'blur' | 'submit';
2694
2731
  }
@@ -3296,6 +3333,8 @@ declare class MnFormBodyComponent<TModel = any, TResult = TModel> implements OnI
3296
3333
  formErrors: Record<string, string>;
3297
3334
  /** Track which fields are currently visible (for conditional fields) */
3298
3335
  fieldVisibility: Record<string, boolean>;
3336
+ /** Track which fields are currently conditionally required */
3337
+ fieldConditionallyRequired: Record<string, boolean>;
3299
3338
  /** Track loading state per field for async data sources */
3300
3339
  fieldLoading: Record<string, boolean>;
3301
3340
  /** Dynamic options loaded from data sources */
@@ -3339,6 +3378,19 @@ declare class MnFormBodyComponent<TModel = any, TResult = TModel> implements OnI
3339
3378
  isGroupVisible(group: FormFieldGroup<TModel>): boolean;
3340
3379
  private initializeVisibility;
3341
3380
  private updateVisibility;
3381
+ /**
3382
+ * Builds the full validator array for a field, including conditionallyRequired.
3383
+ * @param fieldAny The field configuration.
3384
+ * @param formValue The current form values.
3385
+ * @returns Array of validators to apply.
3386
+ */
3387
+ private buildValidators;
3388
+ /**
3389
+ * Updates the conditionallyRequired state for a single field and adjusts validators.
3390
+ * @param fieldAny The field configuration.
3391
+ * @param formValue The current form values.
3392
+ */
3393
+ private updateConditionallyRequired;
3342
3394
  isFieldVisible(field: FormFieldConfig<TModel>): boolean;
3343
3395
  private runFormValidators;
3344
3396
  getFieldError(key: string): string | null;
@@ -5032,4 +5084,4 @@ interface MnPreviewMessage {
5032
5084
  declare function enableMnPreviewMode(configService: MnConfigService, langService: MnLanguageService, allowedOrigins?: string[]): void;
5033
5085
 
5034
5086
  export { API_BASE_URL, ActionStyle, BackdropMode, BaseModalBuilder, CALENDAR_CONFIG, CALENDAR_DATE_FORMATTER, CalendarDayComponent, CalendarEventComponent, CalendarEventDefaultComponent, CalendarEventLayoutService, CalendarMonthComponent, CalendarUtility, CalendarView, CalendarViewComponent, CalendarWeekComponent, CloseMode, ColumnSortType, ConfirmationModalBuilder, ConfirmationTone, CrudService, CustomModalBuilder, DEFAULT_CALENDAR_CONFIG, DEFAULT_MN_ALERT_CONFIG, DefaultCalendarDateFormatter, FieldAppearance, FieldKind, FormLayoutMode, FormModalBuilder, KeyboardMode, MN_ALERT_CONFIG, MN_CALENDAR_COMPONENT_NAME, MN_CALENDAR_CONFIG, MN_CHECKBOX_CONFIG, MN_DATETIME_CONFIG, MN_INPUT_FIELD_CONFIG, MN_INSTANCE_ID, MN_LIB_DUAL_HORIZONTAL_IMAGE, MN_MULTI_SELECT_CONFIG, MN_SECTION_PATH, MN_SELECT_CONFIG, MN_TEXTAREA_CONFIG, MnAlertOutletComponent, MnAlertService, MnAlertStore, MnBadge, MnButton, MnCheckbox, MnConfigService, MnConfirmationBodyComponent, MnCustomBodyHostComponent, MnDatetime, MnDualHorizontalImage, MnFormBodyComponent, MnHiddenBelowDirective, MnInformationCard, MnInputField, MnInstanceDirective, MnLanguageService, MnList, MnModalRef, MnModalService, MnModalShellComponent, MnMultiSelect, MnSectionDirective, MnSelect, MnTabComponent, MnTable, MnTextarea, MnTranslatePipe, MnWizardBodyComponent, ModalBuilder, ModalCloseReason, ModalIntent, ModalKind, ModalSize, NavigationDirection, OptionState, SelectionMode, StepBuilder, StepState, SubmitMode, UpcomingEventRowComponent, UpcomingEventsComponent, ValidationCode, ValidationStatus, WizardFlowMode, WizardModalBuilder, dateTimeAdapter, defaultTextAdapter, enableMnPreviewMode, isTranslatable, mnAlertVariants, mnBadgeVariants, mnButtonVariants, mnCheckboxVariants, mnCheckboxWrapperVariants, mnDatetimeVariants, mnInformationCardVariants, mnInputFieldVariants, mnMultiSelectVariants, mnSelectVariants, mnTextareaVariants, numberAdapter, pickAdapter, provideMnAlerts, provideMnCalendarConfig, provideMnComponentConfig, provideMnConfig, provideMnLanguage, resolveCalendarConfig };
5035
- export type { AnimationOptions, ApiError, BaseModalConfig, CalendarButton, CalendarConfig, CalendarDateFormatter, CalendarEvent, CalendarEventData, CancellationActionConfig, CheckboxFieldConfig, ColorFieldConfig, ColorPreset, ColumnDay, ColumnDefinition, ColumnFilterOption, ColumnFilterState, ColumnFilterType, ConfirmationActionConfig, ConfirmationModalConfig, CrudConfig, CurrentTimeCalendarEvent, CursorPaginationStrategy, CustomFieldConfig, CustomModalConfig, DateFieldConfig, DatetimeFieldConfig, FailureResult, FieldDataSource, FieldValidator, FieldVisibilityCondition, FileFieldConfig, FormFieldConfig, FormFieldGroup, FormModalConfig, FormRow, FormRowField, FormValidator, HourRow, ListAppearance, ListDataSource, ListLabels, MnAlert, MnAlertConfig, MnAlertId, MnAlertKind, MnAlertTemplateContext, MnAlertVariants, MnBadgeTypes, MnBadgeVariants, MnButtonTypes, MnButtonVariants, MnCheckboxErrorMessageData, MnCheckboxErrorMessagesData, MnCheckboxProps, MnCheckboxUIConfig, MnCheckboxVariants, MnCheckboxWrapperVariants, MnConfigFile, MnConfigSettings, MnConfigValue, MnDatetimeErrorMessageData, MnDatetimeErrorMessagesData, MnDatetimeMode, MnDatetimeProps, MnDatetimeUIConfig, MnDatetimeVariants, MnDomAttrs, MnDualHorizontalImageConfig, MnDualHorizontalImageTypes, MnErrorMessageData, MnErrorMessagesData, MnImageType, MnInformationCardBaseData, MnInformationCardData, MnInformationCardVariants, MnInputAdapter, MnInputBaseProps, MnInputDateTimeProps, MnInputFieldProps, MnInputFieldUIConfig, MnInputProps, MnInputType, MnInputVariants, MnLanguageConfig, MnMultiSelectErrorMessageData, MnMultiSelectErrorMessagesData, MnMultiSelectOption, MnMultiSelectProps, MnMultiSelectUIConfig, MnMultiSelectVariants, MnPreviewMessage, MnSelectErrorMessageData, MnSelectErrorMessagesData, MnSelectOption, MnSelectProps, MnSelectUIConfig, MnSelectVariants, MnShowInput, MnTabDataSource, MnTabItem, MnTextareaErrorMessageData, MnTextareaErrorMessagesData, MnTextareaProps, MnTextareaUIConfig, MnTextareaVariants, MnTranslatable, MnTranslationMap, MnTranslations, ModalCancelHandler, ModalCloseEvent, ModalConfig, ModalFooterAction, ModalI18nLabels, ModalInputMap, ModalPollingConfig, ModalRef, ModalResultHandler, ModalStepId, MonthItem, MultiSelectFieldConfig, MultiSelectTableFieldConfig, NumberFieldConfig, OffsetPaginationStrategy, PaginationStrategy, PasswordFieldConfig, Primitive, QueryParams, QueryValue, RatingFieldConfig, Result, ResultMeta, SelectFieldConfig, SelectOption, SingleSelectTableFieldConfig, SliderFieldConfig, SortState, StepBodyConfig, StepGuard, StepValidator, SuccessResult, TableAppearance, TableDataSource, TableLabels, TextFieldConfig, TextareaFieldConfig, ValidationResult, WizardBeforeCompleteValidator, WizardModalConfig, WizardResult, WizardStepChangeEvent, WizardStepChangeHandler, WizardStepConfig };
5087
+ export type { AnimationOptions, ApiError, BaseModalConfig, CalendarButton, CalendarConfig, CalendarDateFormatter, CalendarEvent, CalendarEventData, CancellationActionConfig, CheckboxFieldConfig, ColorFieldConfig, ColorPreset, ColumnDay, ColumnDefinition, ColumnFilterOption, ColumnFilterState, ColumnFilterType, ConfirmationActionConfig, ConfirmationModalConfig, CrudConfig, CurrentTimeCalendarEvent, CursorPaginationStrategy, CustomFieldConfig, CustomModalConfig, DateFieldConfig, DatetimeFieldConfig, FailureResult, FieldDataSource, FieldRequiredCondition, FieldValidator, FieldVisibilityCondition, FileFieldConfig, FormFieldConfig, FormFieldGroup, FormModalConfig, FormRow, FormRowField, FormValidator, HourRow, ListAppearance, ListDataSource, ListLabels, MnAlert, MnAlertConfig, MnAlertId, MnAlertKind, MnAlertTemplateContext, MnAlertVariants, MnBadgeTypes, MnBadgeVariants, MnButtonTypes, MnButtonVariants, MnCheckboxErrorMessageData, MnCheckboxErrorMessagesData, MnCheckboxProps, MnCheckboxUIConfig, MnCheckboxVariants, MnCheckboxWrapperVariants, MnConfigFile, MnConfigSettings, MnConfigValue, MnDatetimeErrorMessageData, MnDatetimeErrorMessagesData, MnDatetimeMode, MnDatetimeProps, MnDatetimeUIConfig, MnDatetimeVariants, MnDomAttrs, MnDualHorizontalImageConfig, MnDualHorizontalImageTypes, MnErrorMessageData, MnErrorMessagesData, MnImageType, MnInformationCardBaseData, MnInformationCardData, MnInformationCardVariants, MnInputAdapter, MnInputBaseProps, MnInputDateTimeProps, MnInputFieldProps, MnInputFieldUIConfig, MnInputProps, MnInputType, MnInputVariants, MnLanguageConfig, MnMultiSelectErrorMessageData, MnMultiSelectErrorMessagesData, MnMultiSelectOption, MnMultiSelectProps, MnMultiSelectUIConfig, MnMultiSelectVariants, MnPreviewMessage, MnSelectErrorMessageData, MnSelectErrorMessagesData, MnSelectOption, MnSelectProps, MnSelectUIConfig, MnSelectVariants, MnShowInput, MnTabDataSource, MnTabItem, MnTextareaErrorMessageData, MnTextareaErrorMessagesData, MnTextareaProps, MnTextareaUIConfig, MnTextareaVariants, MnTranslatable, MnTranslationMap, MnTranslations, ModalCancelHandler, ModalCloseEvent, ModalConfig, ModalFooterAction, ModalI18nLabels, ModalInputMap, ModalPollingConfig, ModalRef, ModalResultHandler, ModalStepId, MonthItem, MultiSelectFieldConfig, MultiSelectTableFieldConfig, NumberFieldConfig, OffsetPaginationStrategy, PaginationStrategy, PasswordFieldConfig, Primitive, QueryParams, QueryValue, RatingFieldConfig, Result, ResultMeta, SelectFieldConfig, SelectOption, SingleSelectTableFieldConfig, SliderFieldConfig, SortState, StepBodyConfig, StepGuard, StepValidator, SuccessResult, TableAppearance, TableDataSource, TableLabels, TextFieldConfig, TextareaFieldConfig, ValidationResult, WizardBeforeCompleteValidator, WizardModalConfig, WizardResult, WizardStepChangeEvent, WizardStepChangeHandler, WizardStepConfig };