lakelib 0.0.3 → 0.0.5

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.
@@ -11,8 +11,10 @@ import { History } from './managers/history';
11
11
  import { Keystroke } from './managers/keystroke';
12
12
  import { BoxManager } from './managers/box-manager';
13
13
  import { Plugin } from './managers/plugin';
14
+ import { Toolbar } from './ui/toolbar';
14
15
  type EditorConfig = {
15
16
  root: string | Nodes | NativeNode;
17
+ toolbar?: Toolbar;
16
18
  value?: string;
17
19
  readonly?: boolean;
18
20
  spellcheck?: boolean;
@@ -40,6 +42,7 @@ export declare class Editor {
40
42
  static plugin: Plugin;
41
43
  private unsavedInputData;
42
44
  root: Nodes;
45
+ toolbar: Toolbar | undefined;
43
46
  config: typeof defaultConfig;
44
47
  containerWrapper: Nodes;
45
48
  container: Nodes;
@@ -12,8 +12,10 @@ export declare class Command {
12
12
  private commandMap;
13
13
  event: EventEmitter;
14
14
  constructor(selection: Selection);
15
- add(name: string, handler: CommmandItem): void;
15
+ add(name: string, commandItem: CommmandItem): void;
16
+ delete(name: string): void;
16
17
  getNames(): string[];
18
+ has(name: string): boolean;
17
19
  getItem(name: string): CommmandItem;
18
20
  isDisabled(name: string): boolean;
19
21
  isSelected(name: string): boolean;
@@ -10,9 +10,9 @@ export declare class Range {
10
10
  get commonAncestor(): Nodes;
11
11
  get isCollapsed(): boolean;
12
12
  get isBox(): boolean;
13
- get isBoxLeft(): boolean;
13
+ get isBoxStart(): boolean;
14
14
  get isBoxCenter(): boolean;
15
- get isBoxRight(): boolean;
15
+ get isBoxEnd(): boolean;
16
16
  get isInsideBox(): boolean;
17
17
  get isInoperative(): boolean;
18
18
  get(): NativeRange;
@@ -31,8 +31,8 @@ export declare class Range {
31
31
  selectNode(node: Nodes): void;
32
32
  selectNodeContents(node: Nodes): void;
33
33
  selectBox(boxNode: Nodes): void;
34
- selectBoxLeft(boxNode: Nodes): void;
35
- selectBoxRight(boxNode: Nodes): void;
34
+ selectBoxStart(boxNode: Nodes): void;
35
+ selectBoxEnd(boxNode: Nodes): void;
36
36
  shrinkBefore(node: Nodes): void;
37
37
  shrinkAfter(node: Nodes): void;
38
38
  shrink(): void;
@@ -45,8 +45,8 @@ export declare class Range {
45
45
  getBoxes(): Nodes[];
46
46
  getBlocks(): Nodes[];
47
47
  getMarks(hasText?: boolean): Nodes[];
48
- getLeftText(): string;
49
- getRightText(): string;
48
+ getStartText(): string;
49
+ getEndText(): string;
50
50
  clone(): Range;
51
51
  cloneContents(): DocumentFragment;
52
52
  debug(): void;
@@ -0,0 +1,3 @@
1
+ import type { Editor } from '..';
2
+ declare const _default: (editor: Editor) => void;
3
+ export default _default;
@@ -3,8 +3,8 @@ export type KeyValue = {
3
3
  [key: string]: string;
4
4
  };
5
5
  export type TwoParts = {
6
- left: Nodes | null;
7
- right: Nodes | null;
6
+ start: Nodes | null;
7
+ end: Nodes | null;
8
8
  };
9
9
  export type ThreeParts = TwoParts & {
10
10
  center: Nodes | null;
@@ -1,22 +1,31 @@
1
1
  import type { Editor } from '../editor';
2
2
  import { NativeNode } from '../types/native';
3
+ import { AppliedItem } from '../types/object';
3
4
  import { ToolbarItem } from '../types/toolbar';
4
5
  import { Nodes } from '../models/nodes';
5
6
  type ToolbarConfig = {
6
- editor: Editor;
7
7
  root: string | Nodes | NativeNode;
8
8
  items?: (string | ToolbarItem)[];
9
9
  };
10
+ type StateData = {
11
+ appliedItems: AppliedItem[];
12
+ disabledNameMap: Map<string, boolean>;
13
+ selectedNameMap: Map<string, boolean>;
14
+ selectedValuesMap: Map<string, string[]>;
15
+ };
10
16
  export declare class Toolbar {
11
17
  private items;
12
- private editor;
13
18
  private root;
19
+ private allMenuMap;
20
+ private buttonItemList;
21
+ private dropdownItemList;
14
22
  container: Nodes;
15
23
  constructor(config: ToolbarConfig);
16
24
  private appendDivider;
17
25
  private appendButton;
18
26
  private appendDropdown;
19
27
  private appendUpload;
20
- render(): void;
28
+ updateState(data: StateData): void;
29
+ render(editor: Editor): void;
21
30
  }
22
31
  export {};
@@ -1,5 +1,5 @@
1
1
  import type { Nodes } from '../models/nodes';
2
2
  export declare function splitNodes(node: Nodes, offset: number, limitNode: Nodes): {
3
- left: Nodes;
4
- right: Nodes;
3
+ start: Nodes;
4
+ end: Nodes;
5
5
  } | null;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lakelib",
3
3
  "description": "Rich text editor based on the browser",
4
- "version": "0.0.3",
4
+ "version": "0.0.5",
5
5
  "author": "Luo Longhao <luolonghao@gmail.com>",
6
6
  "license": "MIT",
7
7
  "homepage": "http://lakejs.com",
@@ -9,7 +9,8 @@
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/lakejs/lake.git"
11
11
  },
12
- "main": "./lib/lake",
12
+ "main": "./lib/lake.js",
13
+ "types": "./lib/types/index.d.ts",
13
14
  "files": [
14
15
  "dist",
15
16
  "lib"