slate-angular 1.7.1 → 1.8.0

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": "slate-angular",
3
- "version": "1.7.1",
3
+ "version": "1.8.0",
4
4
  "peerDependencies": {
5
5
  "slate": ">= 0.63.0",
6
6
  "slate-history": "^0.62.0",
@@ -9,7 +9,9 @@ import { Key } from '../utils/key';
9
9
  */
10
10
  export interface AngularEditor extends BaseEditor {
11
11
  insertData: (data: DataTransfer) => void;
12
- setFragmentData: (data: DataTransfer) => void;
12
+ insertFragmentData: (data: DataTransfer) => boolean;
13
+ insertTextData: (data: DataTransfer) => boolean;
14
+ setFragmentData: (data: DataTransfer, originEvent?: 'drag' | 'copy' | 'cut') => void;
13
15
  deleteCutData: () => void;
14
16
  onKeydown: (event: KeyboardEvent) => void;
15
17
  onClick: (event: MouseEvent) => void;
@@ -36,8 +38,8 @@ export declare const AngularEditor: {
36
38
  */
37
39
  findPath(editor: AngularEditor, node: Node): Path;
38
40
  /**
39
- * Find the DOM node that implements DocumentOrShadowRoot for the editor.
40
- */
41
+ * Find the DOM node that implements DocumentOrShadowRoot for the editor.
42
+ */
41
43
  findDocumentOrShadowRoot(editor: AngularEditor): Document | ShadowRoot;
42
44
  /**
43
45
  * Check if the editor is focused.
@@ -73,6 +75,14 @@ export declare const AngularEditor: {
73
75
  * Insert data from a `DataTransfer` into the editor.
74
76
  */
75
77
  insertData(editor: AngularEditor, data: DataTransfer): void;
78
+ /**
79
+ * Insert fragment data from a `DataTransfer` into the editor.
80
+ */
81
+ insertFragmentData(editor: AngularEditor, data: DataTransfer): boolean;
82
+ /**
83
+ * Insert text data from a `DataTransfer` into the editor.
84
+ */
85
+ insertTextData(editor: AngularEditor, data: DataTransfer): boolean;
76
86
  /**
77
87
  * onKeydown hook.
78
88
  */
@@ -84,7 +94,7 @@ export declare const AngularEditor: {
84
94
  /**
85
95
  * Sets data from the currently selected fragment on a `DataTransfer`.
86
96
  */
87
- setFragmentData(editor: AngularEditor, data: DataTransfer): void;
97
+ setFragmentData(editor: AngularEditor, data: DataTransfer, originEvent?: 'drag' | 'copy' | 'cut'): void;
88
98
  deleteCutData(editor: AngularEditor): void;
89
99
  /**
90
100
  * Find the native DOM element from a Slate node.
package/styles/index.scss CHANGED
@@ -1,5 +1,4 @@
1
1
  @import '../components/block-card/block-card.component.scss';
2
-
3
2
  .slate-editable-container {
4
3
  display: block;
5
4
  outline: none;
@@ -8,7 +7,7 @@
8
7
  & [contenteditable="true"] {
9
8
  outline: none;
10
9
  }
11
- & [slate-placeholder] {
10
+ & [data-slate-placeholder] {
12
11
  position: absolute;
13
12
  pointer-events: none;
14
13
  width: 100%;
@@ -17,12 +16,29 @@
17
16
  opacity: 0.333;
18
17
  user-select: none;
19
18
  text-decoration: none;
19
+ top: 0;
20
+ }
21
+ & [data-slate-leaf="true"] {
22
+ &.leaf-with-placeholder {
23
+ position: relative;
24
+ display: inline-block;
25
+ width: 100%;
26
+ }
27
+ }
28
+ &.firefox {
29
+ // Compatible for firefox, there are two problems with using inline-block
30
+ // Issue-1: paragraph height becomes taller
31
+ // Issue-2: blocks focus movement on key down
32
+ .leaf-with-placeholder {
33
+ display: inline-flex !important;
34
+ }
35
+
20
36
  }
21
37
  }
38
+
22
39
  .slate-spacer {
23
40
  height: 0;
24
41
  color: transparent;
25
42
  outline: none;
26
43
  position: absolute;
27
- }
28
-
44
+ }
package/utils/dom.d.ts CHANGED
@@ -70,3 +70,9 @@ export declare const getEditableChild: (parent: DOMElement, index: number, direc
70
70
  * The domNode must be attached to the DOM.
71
71
  */
72
72
  export declare const getPlainText: (domNode: DOMNode) => string;
73
+ export declare const getSlateFragmentAttribute: (dataTransfer: DataTransfer) => string | void;
74
+ /**
75
+ * Get the x-slate-fragment attribute that exist in text/html data
76
+ * and append it to the DataTransfer object
77
+ */
78
+ export declare const getClipboardData: (dataTransfer: DataTransfer, clipboardFormatKey?: string) => DataTransfer;
@@ -1,7 +1,13 @@
1
1
  export declare const IS_IOS: boolean;
2
2
  export declare const IS_APPLE: boolean;
3
+ export declare const IS_ANDROID: boolean;
3
4
  export declare const IS_FIREFOX: boolean;
4
5
  export declare const IS_SAFARI: boolean;
5
6
  export declare const IS_EDGE_LEGACY: boolean;
6
7
  export declare const IS_CHROME: boolean;
7
8
  export declare const IS_CHROME_LEGACY: boolean;
9
+ export declare const IS_FIREFOX_LEGACY: boolean;
10
+ export declare const IS_QQBROWSER: boolean;
11
+ export declare const IS_UC_MOBILE: boolean;
12
+ export declare const IS_WECHATBROWSER: boolean;
13
+ export declare const HAS_BEFORE_INPUT_SUPPORT: boolean;
package/view/base.d.ts CHANGED
@@ -33,11 +33,14 @@ export declare abstract class BaseComponent<T = SlateTextContext | SlateLeafCont
33
33
  */
34
34
  export declare class BaseLeafComponent extends BaseComponent<SlateLeafContext> implements OnInit {
35
35
  initialized: boolean;
36
+ placeholderElement: HTMLSpanElement;
36
37
  isSlateLeaf: boolean;
37
38
  get text(): Text;
38
39
  get leaf(): Text;
39
40
  ngOnInit(): void;
40
41
  onContextChange(): void;
42
+ renderPlaceholder(): void;
43
+ destroyPlaceholder(): void;
41
44
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseLeafComponent, never>;
42
45
  static ɵdir: i0.ɵɵDirectiveDeclaration<BaseLeafComponent, never, never, {}, {}, never>;
43
46
  }