@flogeez/angular-tiptap-editor 0.3.1 → 0.3.3

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
@@ -456,6 +456,48 @@ declare class ImageService {
456
456
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ImageService>;
457
457
  }
458
458
 
459
+ declare class EditorCommandsService {
460
+ isActive(editor: Editor, name: string, attributes?: Record<string, any>): boolean;
461
+ canExecute(editor: Editor, command: string): boolean;
462
+ toggleBold(editor: Editor): void;
463
+ toggleItalic(editor: Editor): void;
464
+ toggleStrike(editor: Editor): void;
465
+ toggleCode(editor: Editor): void;
466
+ toggleHeading(editor: Editor, level: 1 | 2 | 3): void;
467
+ toggleBulletList(editor: Editor): void;
468
+ toggleOrderedList(editor: Editor): void;
469
+ toggleBlockquote(editor: Editor): void;
470
+ undo(editor: Editor): void;
471
+ redo(editor: Editor): void;
472
+ toggleUnderline(editor: Editor): void;
473
+ toggleSuperscript(editor: Editor): void;
474
+ toggleSubscript(editor: Editor): void;
475
+ setTextAlign(editor: Editor, alignment: "left" | "center" | "right" | "justify"): void;
476
+ toggleLink(editor: Editor, url?: string): void;
477
+ insertHorizontalRule(editor: Editor): void;
478
+ toggleHighlight(editor: Editor, color?: string): void;
479
+ insertTable(editor: Editor, rows?: number, cols?: number): void;
480
+ addColumnBefore(editor: Editor): void;
481
+ addColumnAfter(editor: Editor): void;
482
+ deleteColumn(editor: Editor): void;
483
+ addRowBefore(editor: Editor): void;
484
+ addRowAfter(editor: Editor): void;
485
+ deleteRow(editor: Editor): void;
486
+ deleteTable(editor: Editor): void;
487
+ mergeCells(editor: Editor): void;
488
+ splitCell(editor: Editor): void;
489
+ toggleHeaderColumn(editor: Editor): void;
490
+ toggleHeaderRow(editor: Editor): void;
491
+ toggleHeaderCell(editor: Editor): void;
492
+ clearContent(editor: Editor): void;
493
+ focus(editor: Editor): void;
494
+ blur(editor: Editor): void;
495
+ setContent(editor: Editor, content: string, emitUpdate?: boolean): void;
496
+ setEditable(editor: Editor, editable: boolean): void;
497
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EditorCommandsService, never>;
498
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<EditorCommandsService>;
499
+ }
500
+
459
501
  interface ToolbarConfig {
460
502
  bold?: boolean;
461
503
  italic?: boolean;
@@ -571,11 +613,16 @@ declare class AngularTiptapEditorComponent implements AfterViewInit, OnDestroy {
571
613
  event: FocusEvent;
572
614
  }>;
573
615
  editorElement: _angular_core.Signal<ElementRef<any>>;
574
- editor: _angular_core.WritableSignal<Editor | null>;
575
- characterCount: _angular_core.WritableSignal<number>;
576
- wordCount: _angular_core.WritableSignal<number>;
577
- isDragOver: _angular_core.WritableSignal<boolean>;
578
- editorFullyInitialized: _angular_core.WritableSignal<boolean>;
616
+ private _editor;
617
+ private _characterCount;
618
+ private _wordCount;
619
+ private _isDragOver;
620
+ private _editorFullyInitialized;
621
+ readonly editor: _angular_core.Signal<Editor | null>;
622
+ readonly characterCount: _angular_core.Signal<number>;
623
+ readonly wordCount: _angular_core.Signal<number>;
624
+ readonly isDragOver: _angular_core.Signal<boolean>;
625
+ readonly editorFullyInitialized: _angular_core.Signal<boolean>;
579
626
  isEditorReady: _angular_core.Signal<boolean>;
580
627
  toolbarConfig: _angular_core.Signal<ToolbarConfig>;
581
628
  bubbleMenuConfig: _angular_core.Signal<BubbleMenuConfig>;
@@ -611,6 +658,7 @@ declare class AngularTiptapEditorComponent implements AfterViewInit, OnDestroy {
611
658
  private ngControl;
612
659
  readonly i18nService: TiptapI18nService;
613
660
  readonly imageService: ImageService;
661
+ readonly editorCommandsService: EditorCommandsService;
614
662
  constructor();
615
663
  ngAfterViewInit(): void;
616
664
  ngOnDestroy(): void;
@@ -629,6 +677,7 @@ declare class AngularTiptapEditorComponent implements AfterViewInit, OnDestroy {
629
677
  focus(): void;
630
678
  blur(): void;
631
679
  clearContent(): void;
680
+ getEditor(): Editor | null;
632
681
  private setupFormControlSubscription;
633
682
  setDisabledState(isDisabled: boolean): void;
634
683
  onEditorClick(event: MouseEvent): void;
@@ -636,10 +685,18 @@ declare class AngularTiptapEditorComponent implements AfterViewInit, OnDestroy {
636
685
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AngularTiptapEditorComponent, "angular-tiptap-editor", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "showCharacterCount": { "alias": "showCharacterCount"; "required": false; "isSignal": true; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; "isSignal": true; }; "enableOfficePaste": { "alias": "enableOfficePaste"; "required": false; "isSignal": true; }; "enableSlashCommands": { "alias": "enableSlashCommands"; "required": false; "isSignal": true; }; "slashCommandsConfig": { "alias": "slashCommandsConfig"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "showBubbleMenu": { "alias": "showBubbleMenu"; "required": false; "isSignal": true; }; "bubbleMenu": { "alias": "bubbleMenu"; "required": false; "isSignal": true; }; "showImageBubbleMenu": { "alias": "showImageBubbleMenu"; "required": false; "isSignal": true; }; "imageBubbleMenu": { "alias": "imageBubbleMenu"; "required": false; "isSignal": true; }; "toolbar": { "alias": "toolbar"; "required": false; "isSignal": true; }; "imageUpload": { "alias": "imageUpload"; "required": false; "isSignal": true; }; }, { "contentChange": "contentChange"; "editorCreated": "editorCreated"; "editorUpdate": "editorUpdate"; "editorFocus": "editorFocus"; "editorBlur": "editorBlur"; }, never, never, true, [{ directive: typeof NoopValueAccessorDirective; inputs: {}; outputs: {}; }]>;
637
686
  }
638
687
 
688
+ /**
689
+ * Clés des commandes dans l'ordre de création
690
+ */
691
+ declare const SLASH_COMMAND_KEYS: readonly ["heading1", "heading2", "heading3", "bulletList", "orderedList", "blockquote", "code", "image", "horizontalRule", "table"];
639
692
  /**
640
693
  * Factory function pour créer les slash commands traduits
641
694
  */
642
695
  declare function createI18nSlashCommands(i18nService: TiptapI18nService): SlashCommandItem[];
696
+ /**
697
+ * Fonction utilitaire pour filtrer les slash commands selon les commandes actives
698
+ */
699
+ declare function filterSlashCommands(activeCommands: Set<string>, i18nService: TiptapI18nService): SlashCommandItem[];
643
700
 
644
701
  type HeightConfig = {
645
702
  minHeight?: number;
@@ -647,5 +704,5 @@ type HeightConfig = {
647
704
  maxHeight?: number;
648
705
  };
649
706
 
650
- export { AngularTiptapEditorComponent, DEFAULT_BUBBLE_MENU_CONFIG, DEFAULT_CELL_MENU_CONFIG, DEFAULT_IMAGE_BUBBLE_MENU_CONFIG, DEFAULT_SLASH_COMMANDS, DEFAULT_TABLE_MENU_CONFIG, DEFAULT_TOOLBAR_CONFIG, NoopValueAccessorDirective, TiptapI18nService, createI18nSlashCommands };
651
- export type { BubbleMenuConfig, CellBubbleMenuConfig, HeightConfig, ImageBubbleMenuConfig, SlashCommandItem, SlashCommandsConfig, SupportedLocale, TableBubbleMenuConfig, TiptapTranslations, ToolbarConfig };
707
+ export { AngularTiptapEditorComponent, DEFAULT_BUBBLE_MENU_CONFIG, DEFAULT_CELL_MENU_CONFIG, DEFAULT_IMAGE_BUBBLE_MENU_CONFIG, DEFAULT_SLASH_COMMANDS, DEFAULT_TABLE_MENU_CONFIG, DEFAULT_TOOLBAR_CONFIG, EditorCommandsService, ImageService, NoopValueAccessorDirective, SLASH_COMMAND_KEYS, TiptapI18nService, createI18nSlashCommands, filterSlashCommands };
708
+ export type { BubbleMenuConfig, CellBubbleMenuConfig, HeightConfig, ImageBubbleMenuConfig, ImageData, ImageUploadResult, ResizeOptions, SlashCommandItem, SlashCommandsConfig, SupportedLocale, TableBubbleMenuConfig, TiptapTranslations, ToolbarConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flogeez/angular-tiptap-editor",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "A modern, customizable rich-text editor for Angular (18+), built with Tiptap and featuring complete internationalization support",
5
5
  "keywords": [
6
6
  "angular",