nexheal-lib 0.0.55 → 0.0.57

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
@@ -80,6 +80,10 @@ interface CalendarCell {
80
80
  selected: boolean;
81
81
  today: boolean;
82
82
  }
83
+ interface DateRange {
84
+ start: Date;
85
+ end: Date;
86
+ }
83
87
  declare class CalendarControl implements ControlValueAccessor, OnInit, OnDestroy {
84
88
  datePipe: DatePipe;
85
89
  title: string;
@@ -111,6 +115,8 @@ declare class CalendarControl implements ControlValueAccessor, OnInit, OnDestroy
111
115
  start: Date;
112
116
  end: Date;
113
117
  } | null>;
118
+ /** Emitted in `selectionMode="range"` with the selected start/end (or null when cleared). */
119
+ rangeSelected: EventEmitter<DateRange | null>;
114
120
  private _defaultDate?;
115
121
  get defaultDate(): string | undefined;
116
122
  set defaultDate(value: string | undefined);
@@ -137,6 +143,11 @@ declare class CalendarControl implements ControlValueAccessor, OnInit, OnDestroy
137
143
  selectedWeekEnd: Date | null;
138
144
  private hoverWeekStart;
139
145
  private hoverWeekEnd;
146
+ rangeStart: Date | null;
147
+ rangeEnd: Date | null;
148
+ private hoverDate;
149
+ private committedRangeStart;
150
+ private committedRangeEnd;
140
151
  today: Date;
141
152
  todayYear: number;
142
153
  todayMonth: number;
@@ -176,6 +187,25 @@ declare class CalendarControl implements ControlValueAccessor, OnInit, OnDestroy
176
187
  onDayLeave(): void;
177
188
  /** Stable identity for day cells so they aren't re-created every change-detection. */
178
189
  trackByDate: (_: number, cell: CalendarCell) => number;
190
+ private isCellSelected;
191
+ isRangeStart(date: Date): boolean;
192
+ isRangeEnd(date: Date): boolean;
193
+ isInSelectedRange(date: Date): boolean;
194
+ isInHoverRange(date: Date): boolean;
195
+ private selectRangeDay;
196
+ private onRangeBlur;
197
+ private applyDateRange;
198
+ private formatInProgressRange;
199
+ private formatCommittedRangeInput;
200
+ private parseIncomingRange;
201
+ private orderDateRange;
202
+ private startOfDay;
203
+ private toDayKey;
204
+ private isSameDay;
205
+ private isWithinDayRange;
206
+ private rangeCoversMonth;
207
+ private rangeCoversYear;
208
+ private restoreIncompleteRange;
179
209
  goToMonthView(): void;
180
210
  months: string[];
181
211
  selectMonth(index: number): void;
@@ -213,7 +243,7 @@ declare class CalendarControl implements ControlValueAccessor, OnInit, OnDestroy
213
243
  closeCalendar(): void;
214
244
  clearDate(event: Event): void;
215
245
  static ɵfac: i0.ɵɵFactoryDeclaration<CalendarControl, never>;
216
- static ɵcmp: i0.ɵɵComponentDeclaration<CalendarControl, "calendar-control", never, { "title": { "alias": "title"; "required": false; }; "required": { "alias": "required"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "clearVal": { "alias": "clearVal"; "required": false; }; "deFocus": { "alias": "deFocus"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "hourFormat": { "alias": "hourFormat"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "timeOnly": { "alias": "timeOnly"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "inputLoader": { "alias": "inputLoader"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "submitted": { "alias": "submitted"; "required": false; }; "closeVal": { "alias": "close-val"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "defaultDate": { "alias": "defaultDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "selectionCleared": "selectionCleared"; "blurEvent": "blurEvent"; "dateSelected": "dateSelected"; "weekSelected": "weekSelected"; }, never, never, true, never>;
246
+ static ɵcmp: i0.ɵɵComponentDeclaration<CalendarControl, "calendar-control", never, { "title": { "alias": "title"; "required": false; }; "required": { "alias": "required"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "clearVal": { "alias": "clearVal"; "required": false; }; "deFocus": { "alias": "deFocus"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "hourFormat": { "alias": "hourFormat"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "timeOnly": { "alias": "timeOnly"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "inputLoader": { "alias": "inputLoader"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "submitted": { "alias": "submitted"; "required": false; }; "closeVal": { "alias": "close-val"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "defaultDate": { "alias": "defaultDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "selectionCleared": "selectionCleared"; "blurEvent": "blurEvent"; "dateSelected": "dateSelected"; "weekSelected": "weekSelected"; "rangeSelected": "rangeSelected"; }, never, never, true, never>;
217
247
  }
218
248
 
219
249
  declare class CheckboxControl implements ControlValueAccessor {
@@ -712,6 +742,32 @@ declare class SwitchControl implements ControlValueAccessor {
712
742
  static ɵcmp: i0.ɵɵComponentDeclaration<SwitchControl, "switch-control", never, { "title": { "alias": "title"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; }, { "switchChange": "switchChange"; "blurEvent": "blurEvent"; }, never, never, true, never>;
713
743
  }
714
744
 
745
+ /** Toolbar items that can be shown or hidden individually. */
746
+ interface RichTextEditorFeatures {
747
+ bold: boolean;
748
+ italic: boolean;
749
+ underline: boolean;
750
+ h1: boolean;
751
+ h2: boolean;
752
+ textColor: boolean;
753
+ backgroundColor: boolean;
754
+ alignLeft: boolean;
755
+ alignCenter: boolean;
756
+ alignRight: boolean;
757
+ justify: boolean;
758
+ indent: boolean;
759
+ outdent: boolean;
760
+ unorderedList: boolean;
761
+ orderedList: boolean;
762
+ link: boolean;
763
+ image: boolean;
764
+ undo: boolean;
765
+ redo: boolean;
766
+ clearFormatting: boolean;
767
+ }
768
+ type RichTextEditorFeature = keyof RichTextEditorFeatures;
769
+ declare const RICH_TEXT_EDITOR_DEFAULT_FEATURES: RichTextEditorFeatures;
770
+
715
771
  /**
716
772
  * Lightweight rich-text editor built on a `contenteditable` element and the
717
773
  * browser's `document.execCommand` rich-editing API (the de-facto standard for
@@ -722,9 +778,8 @@ declare class SwitchControl implements ControlValueAccessor {
722
778
  * inner HTML string.
723
779
  */
724
780
  declare class RichTextEditor implements ControlValueAccessor, AfterViewInit {
725
- header: boolean;
726
- media: boolean;
727
- link: boolean;
781
+ /** Per-item toolbar visibility. Omitted keys default to visible. */
782
+ features: Partial<RichTextEditorFeatures>;
728
783
  placeholder: string;
729
784
  readonly: boolean;
730
785
  /** Disabled state, set by Reactive Forms through `setDisabledState`. */
@@ -780,6 +835,10 @@ declare class RichTextEditor implements ControlValueAccessor, AfterViewInit {
780
835
  confirmModal(): void;
781
836
  cancelModal(): void;
782
837
  trackByIndex(index: number): number;
838
+ /** Whether a toolbar item is visible (defaults to true when not configured). */
839
+ isVisible(feature: RichTextEditorFeature): boolean;
840
+ /** Whether any of the given toolbar items are visible (for group separators). */
841
+ hasAny(...features: RichTextEditorFeature[]): boolean;
783
842
  undo(): void;
784
843
  redo(): void;
785
844
  clearFormatting(): void;
@@ -790,7 +849,7 @@ declare class RichTextEditor implements ControlValueAccessor, AfterViewInit {
790
849
  private exec;
791
850
  private restoreSelection;
792
851
  static ɵfac: i0.ɵɵFactoryDeclaration<RichTextEditor, never>;
793
- static ɵcmp: i0.ɵɵComponentDeclaration<RichTextEditor, "rich-text-editor", never, { "header": { "alias": "header"; "required": false; }; "media": { "alias": "media"; "required": false; }; "link": { "alias": "link"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; }, {}, never, never, true, never>;
852
+ static ɵcmp: i0.ɵɵComponentDeclaration<RichTextEditor, "rich-text-editor", never, { "features": { "alias": "features"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; }, {}, never, never, true, never>;
794
853
  }
795
854
 
796
855
  declare class TextareaControl {
@@ -820,5 +879,5 @@ declare class TextareaControl {
820
879
  static ɵcmp: i0.ɵɵComponentDeclaration<TextareaControl, "textarea-control", never, { "title": { "alias": "title"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "clearVal": { "alias": "clearVal"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; }, { "textareaChange": "textareaChange"; "selectionCleared": "selectionCleared"; "blurEvent": "blurEvent"; }, never, never, true, never>;
821
880
  }
822
881
 
823
- export { AutocompleteControl, CalendarControl, CheckboxControl, ColorPicker, InputControl, MultiselectControl, PaginatedAutocompleteControl, RadioControl, RichTextEditor, SelectControl, SwitchControl, TextareaControl };
824
- export type { PageChangeEvent };
882
+ export { AutocompleteControl, CalendarControl, CheckboxControl, ColorPicker, InputControl, MultiselectControl, PaginatedAutocompleteControl, RICH_TEXT_EDITOR_DEFAULT_FEATURES, RadioControl, RichTextEditor, SelectControl, SwitchControl, TextareaControl };
883
+ export type { DateRange, PageChangeEvent, RichTextEditorFeature, RichTextEditorFeatures };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexheal-lib",
3
- "version": "0.0.55",
3
+ "version": "0.0.57",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0"