barsa-calendar 2.3.143 → 2.3.145

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
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnChanges, EventEmitter, SimpleChanges, OnInit, TemplateRef, ElementRef, WritableSignal, OnDestroy, PipeTransform, ComponentFactoryResolver } from '@angular/core';
2
+ import { OnChanges, EventEmitter, SimpleChanges, OnInit, TemplateRef, ElementRef, WritableSignal, AfterViewInit, OnDestroy, PipeTransform, ComponentFactoryResolver } from '@angular/core';
3
3
  import { Observable, BehaviorSubject } from 'rxjs';
4
4
  import * as i24 from 'barsa-novin-ray-core';
5
- import { DateInfo, CalendarMetaobjectDataModel, BaseComponent, AbbrevationDeviceSize, CultureTypes, CalendarFields, MetaobjectDataModel, ReportViewBaseComponent, UiReportViewBaseSetting, DateService, BaseModule, DynamicComponentService } from 'barsa-novin-ray-core';
5
+ import { DateInfo, CalendarMetaobjectDataModel, BaseComponent, AbbrevationDeviceSize, CultureTypes, CalendarFields, MetaobjectDataModel, ReportViewBaseComponent, UiReportViewBaseSetting, EffectiveReportLayoutPolicy, DateService, BaseModule, DynamicComponentService } from 'barsa-novin-ray-core';
6
6
  import * as i25 from '@fundamental-ngx/core';
7
7
  import { FdDate, TimeComponent, InputGroupComponent, PopoverComponent, ButtonType } from '@fundamental-ngx/core';
8
8
  import * as i22 from '@angular/common';
@@ -388,6 +388,7 @@ declare class EventPreviewComponent extends BaseComponent implements OnInit {
388
388
  }
389
389
 
390
390
  declare class MonthDaysComponent extends BaseComponent implements OnInit, OnChanges {
391
+ private static readonly DEFAULT_DAY_ROW_HEIGHT_PX;
391
392
  monthWeeksCount: {
392
393
  firstWeekIndex: number;
393
394
  weeksCount: number;
@@ -395,7 +396,12 @@ declare class MonthDaysComponent extends BaseComponent implements OnInit, OnChan
395
396
  weekDays: string[];
396
397
  weekDaysMin: string[];
397
398
  today: Date;
399
+ /**
400
+ * @deprecated No longer used for layout. Use `dayRowHeightPx` and parent scroll instead.
401
+ */
398
402
  containerHeight: number;
403
+ /** Optional week row height in px (full calendar mode). */
404
+ dayRowHeightPx: number | undefined;
399
405
  days: Day[];
400
406
  calendarFields: CalendarFields;
401
407
  rtl: boolean;
@@ -444,10 +450,10 @@ declare class MonthDaysComponent extends BaseComponent implements OnInit, OnChan
444
450
  private _fireDaySelect;
445
451
  private _openPopover;
446
452
  private prepareWeekDays;
447
- private fitToContainer;
453
+ private applyDayRowLayout;
448
454
  private _prepareDaysTasks;
449
455
  static ɵfac: i0.ɵɵFactoryDeclaration<MonthDaysComponent, never>;
450
- static ɵcmp: i0.ɵɵComponentDeclaration<MonthDaysComponent, "bc-month-days", never, { "monthWeeksCount": { "alias": "monthWeeksCount"; "required": false; }; "weekDays": { "alias": "weekDays"; "required": false; }; "weekDaysMin": { "alias": "weekDaysMin"; "required": false; }; "today": { "alias": "today"; "required": false; }; "containerHeight": { "alias": "containerHeight"; "required": false; }; "days": { "alias": "days"; "required": false; }; "calendarFields": { "alias": "calendarFields"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "deviceSize": { "alias": "deviceSize"; "required": false; }; "moDataList": { "alias": "moDataList"; "required": false; }; "datePicker": { "alias": "datePicker"; "required": false; }; "rangePicker": { "alias": "rangePicker"; "required": false; }; "startSelectedDayIndex": { "alias": "startSelectedDayIndex"; "required": false; }; "endSelectedDayIndex": { "alias": "endSelectedDayIndex"; "required": false; }; }, { "editEvent": "editEvent"; "deleteEvent": "deleteEvent"; "daySelect": "daySelect"; "dayClick": "dayClick"; "dayMouseMove": "dayMouseMove"; "dayMouseUp": "dayMouseUp"; "dayMouseDown": "dayMouseDown"; "showEvent": "showEvent"; }, never, never, false, never>;
456
+ static ɵcmp: i0.ɵɵComponentDeclaration<MonthDaysComponent, "bc-month-days", never, { "monthWeeksCount": { "alias": "monthWeeksCount"; "required": false; }; "weekDays": { "alias": "weekDays"; "required": false; }; "weekDaysMin": { "alias": "weekDaysMin"; "required": false; }; "today": { "alias": "today"; "required": false; }; "containerHeight": { "alias": "containerHeight"; "required": false; }; "dayRowHeightPx": { "alias": "dayRowHeightPx"; "required": false; }; "days": { "alias": "days"; "required": false; }; "calendarFields": { "alias": "calendarFields"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "deviceSize": { "alias": "deviceSize"; "required": false; }; "moDataList": { "alias": "moDataList"; "required": false; }; "datePicker": { "alias": "datePicker"; "required": false; }; "rangePicker": { "alias": "rangePicker"; "required": false; }; "startSelectedDayIndex": { "alias": "startSelectedDayIndex"; "required": false; }; "endSelectedDayIndex": { "alias": "endSelectedDayIndex"; "required": false; }; }, { "editEvent": "editEvent"; "deleteEvent": "deleteEvent"; "daySelect": "daySelect"; "dayClick": "dayClick"; "dayMouseMove": "dayMouseMove"; "dayMouseUp": "dayMouseUp"; "dayMouseDown": "dayMouseDown"; "showEvent": "showEvent"; }, never, never, false, never>;
451
457
  }
452
458
 
453
459
  declare class CalendarHeaderComponent extends BaseComponent {
@@ -490,11 +496,18 @@ declare class CalendarHeaderComponent extends BaseComponent {
490
496
  }
491
497
 
492
498
  declare class CalendarMonthComponent extends BaseComponent implements OnChanges, OnInit {
499
+ /** Default row height (px) for each week band in full calendar mode; parent scrolls if the month is taller than the viewport. */
500
+ private static readonly DEFAULT_DAY_ROW_HEIGHT_PX;
493
501
  monthWeeksCount: number;
494
502
  weekDays: string[];
495
503
  weekDaysMin: string[];
496
504
  today: Date;
505
+ /**
506
+ * @deprecated No longer used for layout. Row height is fixed (see `dayRowHeightPx`); use scroll on the parent shell.
507
+ */
497
508
  containerHeight: number;
509
+ /** Optional override for week row height in px (full calendar mode). When unset, a library default is used. */
510
+ dayRowHeightPx: number | undefined;
498
511
  days: Day[];
499
512
  calendarFields: CalendarFields;
500
513
  rtl: boolean;
@@ -536,7 +549,6 @@ declare class CalendarMonthComponent extends BaseComponent implements OnChanges,
536
549
  private _calendarService;
537
550
  ngOnChanges(changes: SimpleChanges): void;
538
551
  ngOnInit(): void;
539
- onVisibilityChange(e: any): void;
540
552
  onDayBoxSelect(day: Day): void;
541
553
  onDaySelect(weekIndex: number, dayIndex: number): void;
542
554
  onOpenPopoverChange(isOpen: boolean): void;
@@ -550,10 +562,12 @@ declare class CalendarMonthComponent extends BaseComponent implements OnChanges,
550
562
  private _fireDaySelect;
551
563
  private _openPopover;
552
564
  private _prepareWeekDays;
553
- private fitToContainer;
565
+ private _weeksCount;
566
+ /** Sets `numberOfWeek`, fixed `dayHeight`, and `maxTaskCount` from design defaults (not container height). */
567
+ private applyDayRowLayout;
554
568
  private _prepareDaysTasks;
555
569
  static ɵfac: i0.ɵɵFactoryDeclaration<CalendarMonthComponent, never>;
556
- static ɵcmp: i0.ɵɵComponentDeclaration<CalendarMonthComponent, "bc-calendar-month", never, { "monthWeeksCount": { "alias": "monthWeeksCount"; "required": false; }; "weekDays": { "alias": "weekDays"; "required": false; }; "weekDaysMin": { "alias": "weekDaysMin"; "required": false; }; "today": { "alias": "today"; "required": false; }; "containerHeight": { "alias": "containerHeight"; "required": false; }; "days": { "alias": "days"; "required": false; }; "calendarFields": { "alias": "calendarFields"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "deviceSize": { "alias": "deviceSize"; "required": false; }; "moDataList": { "alias": "moDataList"; "required": false; }; "datePicker": { "alias": "datePicker"; "required": false; }; "rangePicker": { "alias": "rangePicker"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "canAdd": { "alias": "canAdd"; "required": false; }; "canEdit": { "alias": "canEdit"; "required": false; }; "canView": { "alias": "canView"; "required": false; }; "selectedDate": { "alias": "selectedDate"; "required": false; }; "startSelectedDayIndex": { "alias": "startSelectedDayIndex"; "required": false; }; "endSelectedDayIndex": { "alias": "endSelectedDayIndex"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, { "editEvent": "editEvent"; "deleteEvent": "deleteEvent"; "daySelect": "daySelect"; "dayClick": "dayClick"; "dayMouseMove": "dayMouseMove"; "dayMouseUp": "dayMouseUp"; "dayMouseDown": "dayMouseDown"; "showEvent": "showEvent"; }, never, never, false, never>;
570
+ static ɵcmp: i0.ɵɵComponentDeclaration<CalendarMonthComponent, "bc-calendar-month", never, { "monthWeeksCount": { "alias": "monthWeeksCount"; "required": false; }; "weekDays": { "alias": "weekDays"; "required": false; }; "weekDaysMin": { "alias": "weekDaysMin"; "required": false; }; "today": { "alias": "today"; "required": false; }; "containerHeight": { "alias": "containerHeight"; "required": false; }; "dayRowHeightPx": { "alias": "dayRowHeightPx"; "required": false; }; "days": { "alias": "days"; "required": false; }; "calendarFields": { "alias": "calendarFields"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "deviceSize": { "alias": "deviceSize"; "required": false; }; "moDataList": { "alias": "moDataList"; "required": false; }; "datePicker": { "alias": "datePicker"; "required": false; }; "rangePicker": { "alias": "rangePicker"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "canAdd": { "alias": "canAdd"; "required": false; }; "canEdit": { "alias": "canEdit"; "required": false; }; "canView": { "alias": "canView"; "required": false; }; "selectedDate": { "alias": "selectedDate"; "required": false; }; "startSelectedDayIndex": { "alias": "startSelectedDayIndex"; "required": false; }; "endSelectedDayIndex": { "alias": "endSelectedDayIndex"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, { "editEvent": "editEvent"; "deleteEvent": "deleteEvent"; "daySelect": "daySelect"; "dayClick": "dayClick"; "dayMouseMove": "dayMouseMove"; "dayMouseUp": "dayMouseUp"; "dayMouseDown": "dayMouseDown"; "showEvent": "showEvent"; }, never, never, false, never>;
557
571
  }
558
572
 
559
573
  declare class CalendarWeekComponent extends BaseComponent implements OnChanges, OnInit {
@@ -659,7 +673,7 @@ declare class CalendarListComponent extends BaseComponent {
659
673
  static ɵcmp: i0.ɵɵComponentDeclaration<CalendarListComponent, "bc-calendar-list", never, { "moDataList": { "alias": "moDataList"; "required": false; }; }, {}, never, never, false, never>;
660
674
  }
661
675
 
662
- declare class CalendarContainerComponent extends ReportViewBaseComponent<UiReportViewBaseSetting> implements OnInit, OnChanges {
676
+ declare class CalendarContainerComponent extends ReportViewBaseComponent<UiReportViewBaseSetting> implements OnInit, OnChanges, AfterViewInit {
663
677
  _divRef: ElementRef;
664
678
  calendarFields: any;
665
679
  userCalendars: any;
@@ -698,9 +712,14 @@ declare class CalendarContainerComponent extends ReportViewBaseComponent<UiRepor
698
712
  title$: Observable<string>;
699
713
  viewMode: WritableSignal<CalendarViewType>;
700
714
  eventMoDataList$: BehaviorSubject<MetaobjectDataModel[]>;
715
+ /** Mode-driven viewport (page scroll vs internal time-grid); see `mergeCalendarViewportPolicy`. */
716
+ readonly resolvedViewportPolicy: WritableSignal<EffectiveReportLayoutPolicy>;
717
+ private readonly _parentViewportPolicy$;
701
718
  private _calendarService;
702
719
  private _dateService;
703
720
  ngOnInit(): void;
721
+ ngAfterViewInit(): void;
722
+ onVisibilityChange(e: any): void;
704
723
  ngOnChanges(changes: SimpleChanges): void;
705
724
  onViewModeChange(viewMode: CalendarViewType): void;
706
725
  onCalendarCheckChange(_calendar: MetaobjectDataModel): void;
@@ -726,9 +745,15 @@ declare class CalendarContainerComponent extends ReportViewBaseComponent<UiRepor
726
745
  }): void;
727
746
  prepareMoDataList(moDataList: MetaobjectDataModel[]): void;
728
747
  addTd(table: any[], tr: any[], event: CalendarMetaobjectDataModel, colSpan: number): void;
748
+ /** Host was hidden (e.g. inactive tab); first real layout — remeasure week grid height/width. */
749
+ protected onVisible(): void;
750
+ /** Host size changed (tab switch, split pane, window) — week view depends on measured `height`/`width`. */
751
+ protected onResize(): void;
729
752
  private _handleUserCalendarsChecked;
730
753
  private prepare;
731
754
  private _setWidthAndHeight;
755
+ /** Measure after layout; week view needs `height` / `width` for `bc-calendar-week` and `fillEmptySpace`. */
756
+ private _scheduleMeasureLayout;
732
757
  static ɵfac: i0.ɵɵFactoryDeclaration<CalendarContainerComponent, never>;
733
758
  static ɵcmp: i0.ɵɵComponentDeclaration<CalendarContainerComponent, "bc-calendar-container", never, { "calendarFields": { "alias": "calendarFields"; "required": false; }; "userCalendars": { "alias": "userCalendars"; "required": false; }; "viewSetting": { "alias": "viewSetting"; "required": false; }; }, { "deleteTask": "deleteTask"; "editTask": "editTask"; "rangeSelect": "rangeSelect"; "daySelect": "daySelect"; "loadData": "loadData"; "modeChanged": "modeChanged"; "viewModeChanged": "viewModeChanged"; }, never, never, false, never>;
734
759
  }
@@ -745,6 +770,18 @@ interface UiCalendarSettings extends UiReportViewBaseSetting {
745
770
  DefaultMode$Caption: CalendarMode;
746
771
  }
747
772
 
773
+ /**
774
+ * Maps calendar navigation mode to the same axes as {@link EffectiveReportLayoutPolicy}
775
+ * (Google Calendar-style: month uses page scroll; week/day use internal time-grid scroll).
776
+ */
777
+ declare function resolveCalendarViewportPolicy(mode: CalendarMode): EffectiveReportLayoutPolicy;
778
+ /**
779
+ * Combines mode-derived viewport with an optional parent `effectiveReportLayout`.
780
+ * Today: **mode wins** for `layout` and `scroll` so embedded calendar behavior stays predictable;
781
+ * parent input is reserved for future low-code overrides (merge rules can evolve here).
782
+ */
783
+ declare function mergeCalendarViewportPolicy(mode: CalendarMode, _parent: EffectiveReportLayoutPolicy | null | undefined): EffectiveReportLayoutPolicy;
784
+
748
785
  declare class CalendarService implements OnDestroy {
749
786
  selected$: Observable<CalendarMonthInfo>;
750
787
  days$: Observable<Day[]>;
@@ -879,5 +916,5 @@ declare class BarsaCalendarModule extends BaseModule {
879
916
  static ɵinj: i0.ɵɵInjectorDeclaration<BarsaCalendarModule>;
880
917
  }
881
918
 
882
- export { BarsaCalendarModule, CalendarContainerComponent, CalendarHeaderComponent, CalendarListComponent, CalendarListContainerComponent, CalendarListItemComponent, CalendarMonthComponent, CalendarMonthInfo, CalendarSelectionDaysComponent, CalendarService, CalendarWeekComponent, DateTimePickerComponent, DayEventListComponent, DayNumberBoxComponent, DayStatus, EventButtonComponent, EventButtonEndArrowComponent, EventButtonStartArrowComponent, EventPreviewComponent, MonthDaysComponent, TimeConfigI18n };
919
+ export { BarsaCalendarModule, CalendarContainerComponent, CalendarHeaderComponent, CalendarListComponent, CalendarListContainerComponent, CalendarListItemComponent, CalendarMonthComponent, CalendarMonthInfo, CalendarSelectionDaysComponent, CalendarService, CalendarWeekComponent, DateTimePickerComponent, DayEventListComponent, DayNumberBoxComponent, DayStatus, EventButtonComponent, EventButtonEndArrowComponent, EventButtonStartArrowComponent, EventPreviewComponent, MonthDaysComponent, TimeConfigI18n, mergeCalendarViewportPolicy, resolveCalendarViewportPolicy };
883
920
  export type { Attendee, Calendar, CalendarEvent, CalendarMode, CalendarType, CalendarViewType, Day, RecurrenceFrequency, Reminder };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "barsa-calendar",
3
- "version": "2.3.143",
3
+ "version": "2.3.145",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^20.0.6",
6
6
  "@angular/common": "^20.0.6"