nexheal-lib 0.0.30 → 0.0.32

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
@@ -81,7 +81,6 @@ declare class CalendarControl implements ControlValueAccessor, OnInit, OnDestroy
81
81
  deFocus: boolean;
82
82
  error: boolean;
83
83
  errorMessage: string;
84
- inputLoader: boolean;
85
84
  hourFormat: string;
86
85
  selectionMode: string;
87
86
  timeOnly: boolean;
@@ -191,7 +190,7 @@ declare class CalendarControl implements ControlValueAccessor, OnInit, OnDestroy
191
190
  closeCalendar(): void;
192
191
  clearDate(event: Event): void;
193
192
  static ɵfac: i0.ɵɵFactoryDeclaration<CalendarControl, never>;
194
- 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; }; "inputLoader": { "alias": "inputLoader"; "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; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "submitted": { "alias": "submitted"; "required": false; }; "inputPlaceholder": { "alias": "inputPlaceholder"; "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"; }, never, never, true, never>;
193
+ 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; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "submitted": { "alias": "submitted"; "required": false; }; "inputPlaceholder": { "alias": "inputPlaceholder"; "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"; }, never, never, true, never>;
195
194
  }
196
195
 
197
196
  declare class CheckboxControl implements ControlValueAccessor {
@@ -543,7 +542,7 @@ declare class SwitchControl implements ControlValueAccessor {
543
542
  * `formControlName` and `[formControl]`. The emitted value is the editor's
544
543
  * inner HTML string.
545
544
  */
546
- declare class TextEditor implements ControlValueAccessor, AfterViewInit {
545
+ declare class RichTextEditor implements ControlValueAccessor, AfterViewInit {
547
546
  header: boolean;
548
547
  media: boolean;
549
548
  link: boolean;
@@ -559,6 +558,13 @@ declare class TextEditor implements ControlValueAccessor, AfterViewInit {
559
558
  private viewInitialized;
560
559
  /** Last selection range observed inside the editor (restored before commands). */
561
560
  private savedRange;
561
+ /** Which color popover is open, if any. */
562
+ colorMenu: 'text' | 'background' | null;
563
+ /** Preset swatches shown in the color popovers. */
564
+ readonly palette: string[];
565
+ showModal: boolean;
566
+ modalType: 'link' | 'image';
567
+ modalUrls: string[];
562
568
  ngAfterViewInit(): void;
563
569
  writeValue(value: string): void;
564
570
  registerOnChange(fn: (value: string) => void): void;
@@ -568,22 +574,30 @@ declare class TextEditor implements ControlValueAccessor, AfterViewInit {
568
574
  onTouched(): void;
569
575
  /** Remember the caret/selection whenever it sits inside the editor. */
570
576
  saveSelection(): void;
577
+ /** Close the color popover when a press starts outside any color tool. */
578
+ onDocumentMouseDown(event: Event): void;
571
579
  applyInlineStyle(style: 'bold' | 'italic' | 'underline'): void;
572
580
  applyBlockFormat(block: 'h1' | 'h2' | 'p'): void;
573
581
  applyList(listType: 'ul' | 'ol'): void;
574
582
  indent(): void;
575
583
  outdent(): void;
576
584
  setAlignment(alignment: 'left' | 'center' | 'right' | 'justify'): void;
577
- applyColor(event: Event): void;
578
- applyHighlight(event: Event): void;
579
- showModal: boolean;
580
- modalType: 'link' | 'image';
581
- modalUrls: string[];
585
+ toggleColorMenu(type: 'text' | 'background'): void;
586
+ /** Apply a preset swatch. */
587
+ pickColor(type: 'text' | 'background', color: string): void;
588
+ /** Apply a custom color from the native color input. */
589
+ pickCustomColor(type: 'text' | 'background', event: Event): void;
582
590
  createLink(): void;
583
591
  insertImage(): void;
584
592
  private openModal;
585
593
  addUrlRow(): void;
586
594
  removeUrlRow(index: number): void;
595
+ /** A single URL is valid for the current modal type. */
596
+ isValidUrl(url: string): boolean;
597
+ /** Show a row as invalid only once the user has typed something wrong. */
598
+ isRowInvalid(url: string): boolean;
599
+ /** Whether the modal has at least one valid URL (enables "Insert"). */
600
+ get hasValidUrl(): boolean;
587
601
  confirmModal(): void;
588
602
  cancelModal(): void;
589
603
  trackByIndex(index: number): number;
@@ -596,8 +610,8 @@ declare class TextEditor implements ControlValueAccessor, AfterViewInit {
596
610
  */
597
611
  private exec;
598
612
  private restoreSelection;
599
- static ɵfac: i0.ɵɵFactoryDeclaration<TextEditor, never>;
600
- static ɵcmp: i0.ɵɵComponentDeclaration<TextEditor, "app-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>;
613
+ static ɵfac: i0.ɵɵFactoryDeclaration<RichTextEditor, never>;
614
+ 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>;
601
615
  }
602
616
 
603
617
  declare class TextareaControl {
@@ -627,4 +641,4 @@ declare class TextareaControl {
627
641
  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>;
628
642
  }
629
643
 
630
- export { AutocompleteControl, CalendarControl, CheckboxControl, ColorPicker, InputControl, MultiselectControl, SelectControl, SwitchControl, TextEditor, TextareaControl };
644
+ export { AutocompleteControl, CalendarControl, CheckboxControl, ColorPicker, InputControl, MultiselectControl, RichTextEditor, SelectControl, SwitchControl, TextareaControl };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexheal-lib",
3
- "version": "0.0.30",
3
+ "version": "0.0.32",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0"