@plait/mind 0.61.2 → 0.62.0-next.1

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.
Files changed (41) hide show
  1. package/emoji/emoji-base.component.d.ts +11 -0
  2. package/{base → emoji}/index.d.ts +1 -0
  3. package/emoji/with-emoji.d.ts +15 -0
  4. package/esm2022/constants/node-topic-style.mjs +1 -1
  5. package/esm2022/emoji/emoji-base.component.mjs +21 -0
  6. package/esm2022/emoji/index.mjs +3 -0
  7. package/esm2022/emoji/with-emoji.mjs +8 -0
  8. package/esm2022/generators/node-emojis.generator.mjs +19 -33
  9. package/esm2022/interfaces/element-data.mjs +1 -1
  10. package/esm2022/interfaces/options.mjs +1 -1
  11. package/esm2022/mind-node.component.mjs +13 -14
  12. package/esm2022/plugins/with-mind-create.mjs +4 -10
  13. package/esm2022/plugins/with-mind-fragment.mjs +2 -3
  14. package/esm2022/plugins/with-mind.mjs +3 -2
  15. package/esm2022/plugins/with-node-resize.mjs +1 -1
  16. package/esm2022/public-api.mjs +2 -2
  17. package/esm2022/transforms/node.mjs +3 -4
  18. package/esm2022/utils/clipboard.mjs +25 -11
  19. package/esm2022/utils/mind.mjs +2 -2
  20. package/esm2022/utils/node/adjust-node.mjs +1 -10
  21. package/esm2022/utils/node/common.mjs +2 -6
  22. package/esm2022/utils/node/create-node.mjs +3 -2
  23. package/esm2022/utils/node/image.mjs +3 -5
  24. package/esm2022/utils/space/node-space.mjs +3 -3
  25. package/fesm2022/plait-mind.mjs +86 -118
  26. package/fesm2022/plait-mind.mjs.map +1 -1
  27. package/generators/node-emojis.generator.d.ts +7 -9
  28. package/interfaces/element-data.d.ts +1 -2
  29. package/interfaces/options.d.ts +1 -3
  30. package/mind-node.component.d.ts +1 -2
  31. package/package.json +1 -1
  32. package/plugins/with-mind-create.d.ts +1 -1
  33. package/plugins/with-mind.d.ts +1 -1
  34. package/public-api.d.ts +1 -1
  35. package/styles/mixins.scss +4 -4
  36. package/styles/styles.scss +2 -2
  37. package/utils/clipboard.d.ts +9 -0
  38. package/utils/mind.d.ts +1 -1
  39. package/base/emoji-base.component.d.ts +0 -18
  40. package/esm2022/base/emoji-base.component.mjs +0 -46
  41. package/esm2022/base/index.mjs +0 -2
@@ -1,23 +1,21 @@
1
- import { ComponentRef, ViewContainerRef } from '@angular/core';
2
1
  import { EmojiData, EmojiItem, MindElement } from '../interfaces';
3
- import { MindEmojiBaseComponent } from '../base/emoji-base.component';
2
+ import { PlaitBoard } from '@plait/core';
4
3
  import { PlaitMindBoard } from '../plugins/with-mind.board';
4
+ import { EmojiComponentRef, PlaitMindEmojiBoard } from '../emoji/with-emoji';
5
+ export declare const FOREIGN_OBJECT_EMOJI_CLASS_NAME = "foreign-object-emoji";
5
6
  declare class EmojiGenerator {
6
7
  private board;
7
- private viewContainerRef;
8
- componentRef: ComponentRef<MindEmojiBaseComponent> | null;
9
- constructor(board: PlaitMindBoard, viewContainerRef: ViewContainerRef);
10
- draw(emoji: EmojiItem, element: MindElement<EmojiData>): void;
11
- get nativeElement(): HTMLElement | null;
8
+ emojiComponentRef: EmojiComponentRef | null;
9
+ constructor(board: PlaitMindEmojiBoard & PlaitBoard);
10
+ draw(container: Element | DocumentFragment, emoji: EmojiItem, element: MindElement<EmojiData>): void;
12
11
  destroy(): void;
13
12
  }
14
13
  export declare class NodeEmojisGenerator {
15
14
  private board;
16
- private viewContainerRef;
17
15
  static key: string;
18
16
  emojiGenerators: EmojiGenerator[];
19
17
  g?: SVGGElement;
20
- constructor(board: PlaitMindBoard, viewContainerRef: ViewContainerRef);
18
+ constructor(board: PlaitMindBoard);
21
19
  drawEmojis(element: MindElement): SVGGElement | undefined;
22
20
  destroy(): void;
23
21
  }
@@ -1,5 +1,4 @@
1
- import { CommonImageItem } from '@plait/common';
2
- import { ParagraphElement } from '@plait/text';
1
+ import { CommonImageItem, ParagraphElement } from '@plait/common';
3
2
  export interface EmojiItem {
4
3
  name: string;
5
4
  }
@@ -1,7 +1,5 @@
1
- import { ComponentType, WithPluginOptions } from '@plait/core';
2
- import { MindEmojiBaseComponent } from '../base/emoji-base.component';
1
+ import { WithPluginOptions } from '@plait/core';
3
2
  export interface WithMindOptions extends WithPluginOptions {
4
3
  emojiPadding: number;
5
4
  spaceBetweenEmojis: number;
6
- emojiComponentType?: ComponentType<MindEmojiBaseComponent>;
7
5
  }
@@ -1,5 +1,4 @@
1
1
  import { PlaitPluginElementContext, OnContextChanged } from '@plait/core';
2
- import { TextManage } from '@plait/text';
3
2
  import { RoughSVG } from 'roughjs/bin/svg';
4
3
  import { MindElement } from './interfaces/element';
5
4
  import { MindNode } from './interfaces/node';
@@ -8,7 +7,7 @@ import { NodePlusGenerator } from './generators/node-plus.generator';
8
7
  import { PlaitMindBoard } from './plugins/with-mind.board';
9
8
  import { NodeActiveGenerator } from './generators/node-active.generator';
10
9
  import { CollapseGenerator } from './generators/node-collapse.generator';
11
- import { CommonElementFlavour, ImageGenerator } from '@plait/common';
10
+ import { CommonElementFlavour, ImageGenerator, TextManage } from '@plait/common';
12
11
  import { NodeShapeGenerator } from './generators/node-shape.generator';
13
12
  import { ImageData } from './interfaces';
14
13
  export declare class MindNodeComponent extends CommonElementFlavour<MindElement, PlaitMindBoard> implements OnContextChanged<MindElement, PlaitMindBoard> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plait/mind",
3
- "version": "0.61.2",
3
+ "version": "0.62.0-next.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.2.4",
6
6
  "@angular/core": "^17.2.4"
@@ -1,6 +1,6 @@
1
1
  import { PlaitBoard } from '@plait/core';
2
2
  import { PlaitMindBoard } from './with-mind.board';
3
- import { TextManage } from '@plait/text';
3
+ import { TextManage } from '@plait/common';
4
4
  export interface FakeCreateNodeRef {
5
5
  g: SVGGElement;
6
6
  nodeG: SVGGElement;
@@ -1,2 +1,2 @@
1
1
  import { PlaitBoard } from '@plait/core';
2
- export declare const withMind: (baseBoard: PlaitBoard) => PlaitBoard;
2
+ export declare const withMind: (baseBoard: PlaitBoard) => PlaitBoard & import("../emoji/with-emoji").PlaitMindEmojiBoard;
package/public-api.d.ts CHANGED
@@ -7,6 +7,6 @@ export * from './plugins/with-mind-extend';
7
7
  export * from './constants';
8
8
  export * from './queries/index';
9
9
  export * from './transforms/index';
10
- export * from './base';
10
+ export * from './emoji';
11
11
  export * from './plugins/with-mind.board';
12
12
  export * from './plugins/with-abstract-resize.board';
@@ -1,7 +1,7 @@
1
1
  @mixin node-color {
2
2
  &.theme-default,
3
3
  &.theme-soft {
4
- .plait-richtext-container {
4
+ .plait-text-container {
5
5
  color: #333333;
6
6
  }
7
7
  }
@@ -9,7 +9,7 @@
9
9
  &.theme-colorful,
10
10
  &.theme-retro {
11
11
  .root {
12
- .plait-richtext-container {
12
+ .plait-text-container {
13
13
  color: #ffffff;
14
14
  }
15
15
  }
@@ -17,11 +17,11 @@
17
17
 
18
18
  &.theme-dark,
19
19
  &.theme-starry {
20
- .plait-richtext-container {
20
+ .plait-text-container {
21
21
  color: #ffffff;
22
22
  }
23
23
  .root {
24
- .plait-richtext-container {
24
+ .plait-text-container {
25
25
  color: #333333;
26
26
  }
27
27
  }
@@ -134,14 +134,14 @@ $primary: #4e8afa;
134
134
  opacity: 0.6;
135
135
  // Compact: Safari
136
136
  // Opacity property will cause text position warning
137
- // .plait-richtext-container {
137
+ // .plait-text-container {
138
138
  // opacity: 0.6;
139
139
  // }
140
140
  }
141
141
  }
142
142
 
143
143
  .root {
144
- .plait-richtext-container {
144
+ .plait-text-container {
145
145
  font-size: 18px;
146
146
  min-height: 25px;
147
147
  line-height: 25px;
@@ -2,6 +2,15 @@ import { PlaitBoard, PlaitElement, Point, WritableClipboardOperationType } from
2
2
  import { MindElement } from '../interfaces';
3
3
  import { Element } from 'slate';
4
4
  import { PlaitMindBoard } from '../plugins/with-mind.board';
5
+ import { ParagraphElement } from '@plait/common';
5
6
  export declare const buildClipboardData: (board: PlaitBoard, selectedElements: MindElement[], startPoint: Point) => MindElement<import("../interfaces").BaseData>[];
6
7
  export declare const insertClipboardData: (board: PlaitMindBoard, elements: PlaitElement[], targetPoint: Point, operationType?: WritableClipboardOperationType) => void;
7
8
  export declare const insertClipboardText: (board: PlaitMindBoard, targetParent: PlaitElement, text: string | Element) => void;
9
+ export declare const getTopicSizeByElement: (element: MindElement, parentElement?: MindElement) => {
10
+ width: number;
11
+ height: number;
12
+ };
13
+ export declare const getTopicSize: (isRoot: boolean, isBranch: boolean, topic: ParagraphElement, manualWidth?: number) => {
14
+ width: number;
15
+ height: number;
16
+ };
package/utils/mind.d.ts CHANGED
@@ -14,4 +14,4 @@ export declare const divideElementByParent: (elements: MindElement[]) => {
14
14
  parentElements: MindElement<import("@plait/mind").BaseData>[];
15
15
  abstractIncludedGroups: MindElement<import("@plait/mind").BaseData>[][];
16
16
  };
17
- export declare const getDefaultMindElementFontSize: (board: PlaitBoard, element: MindElement) => 14 | 18;
17
+ export declare const getDefaultMindElementFontSize: (board: PlaitBoard, element: MindElement) => 18 | 14;
@@ -1,18 +0,0 @@
1
- import { ElementRef, OnInit } from '@angular/core';
2
- import { EmojiData, EmojiItem } from '../interfaces/element-data';
3
- import { PlaitBoard } from '@plait/core';
4
- import { MindElement } from '../interfaces';
5
- import * as i0 from "@angular/core";
6
- export declare class MindEmojiBaseComponent implements OnInit {
7
- protected elementRef: ElementRef<HTMLElement>;
8
- fontSize: number;
9
- emojiItem: EmojiItem;
10
- board: PlaitBoard;
11
- element: MindElement<EmojiData>;
12
- get nativeElement(): HTMLElement;
13
- handlePointerDown(): void;
14
- constructor(elementRef: ElementRef<HTMLElement>);
15
- ngOnInit(): void;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<MindEmojiBaseComponent, never>;
17
- static ɵdir: i0.ɵɵDirectiveDeclaration<MindEmojiBaseComponent, never, never, { "fontSize": { "alias": "fontSize"; "required": false; }; "emojiItem": { "alias": "emojiItem"; "required": false; }; "board": { "alias": "board"; "required": false; }; "element": { "alias": "element"; "required": false; }; }, {}, never, never, false, never>;
18
- }
@@ -1,46 +0,0 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
2
- import { PlaitPluginKey } from '@plait/core';
3
- import * as i0 from "@angular/core";
4
- export class MindEmojiBaseComponent {
5
- get nativeElement() {
6
- return this.elementRef.nativeElement;
7
- }
8
- handlePointerDown() {
9
- const currentOptions = this.board.getPluginOptions(PlaitPluginKey.withSelection);
10
- this.board.setPluginOptions(PlaitPluginKey.withSelection, {
11
- isDisabledSelect: true
12
- });
13
- setTimeout(() => {
14
- this.board.setPluginOptions(PlaitPluginKey.withSelection, { ...currentOptions });
15
- }, 0);
16
- }
17
- constructor(elementRef) {
18
- this.elementRef = elementRef;
19
- this.fontSize = 14;
20
- }
21
- ngOnInit() {
22
- this.elementRef.nativeElement.style.fontSize = `${this.fontSize}px`;
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MindEmojiBaseComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
25
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: MindEmojiBaseComponent, inputs: { fontSize: "fontSize", emojiItem: "emojiItem", board: "board", element: "element" }, host: { listeners: { "pointerdown": "handlePointerDown()" }, classAttribute: "mind-node-emoji" }, ngImport: i0 }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MindEmojiBaseComponent, decorators: [{
28
- type: Directive,
29
- args: [{
30
- host: {
31
- class: 'mind-node-emoji'
32
- }
33
- }]
34
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fontSize: [{
35
- type: Input
36
- }], emojiItem: [{
37
- type: Input
38
- }], board: [{
39
- type: Input
40
- }], element: [{
41
- type: Input
42
- }], handlePointerDown: [{
43
- type: HostListener,
44
- args: ['pointerdown']
45
- }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9iYXNlL2Vtb2ppLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQWlDLGNBQWMsRUFBcUIsTUFBTSxhQUFhLENBQUM7O0FBUS9GLE1BQU0sT0FBTyxzQkFBc0I7SUFhL0IsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBR0QsaUJBQWlCO1FBQ2IsTUFBTSxjQUFjLEdBQUksSUFBSSxDQUFDLEtBQTJCLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxLQUEyQixDQUFDLGdCQUFnQixDQUFvQixjQUFjLENBQUMsYUFBYSxFQUFFO1lBQ2hHLGdCQUFnQixFQUFFLElBQUk7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxLQUEyQixDQUFDLGdCQUFnQixDQUFvQixjQUFjLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQy9ILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxZQUFzQixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQTFCekQsYUFBUSxHQUFXLEVBQUUsQ0FBQztJQTBCc0MsQ0FBQztJQUU3RCxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQztJQUN4RSxDQUFDOzhHQWhDUSxzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGlCQUFpQjtxQkFDM0I7aUJBQ0o7K0VBR0csUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQVFOLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVtb2ppRGF0YSwgRW1vamlJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRPcHRpb25zQm9hcmQsIFBsYWl0UGx1Z2luS2V5LCBXaXRoUGx1Z2luT3B0aW9ucyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdtaW5kLW5vZGUtZW1vamknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBNaW5kRW1vamlCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGZvbnRTaXplOiBudW1iZXIgPSAxNDtcblxuICAgIEBJbnB1dCgpXG4gICAgZW1vamlJdGVtITogRW1vamlJdGVtO1xuXG4gICAgQElucHV0KClcbiAgICBib2FyZCE6IFBsYWl0Qm9hcmQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGVsZW1lbnQhOiBNaW5kRWxlbWVudDxFbW9qaURhdGE+O1xuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicpXG4gICAgaGFuZGxlUG9pbnRlckRvd24oKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gKHRoaXMuYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLmdldFBsdWdpbk9wdGlvbnMoUGxhaXRQbHVnaW5LZXkud2l0aFNlbGVjdGlvbik7XG4gICAgICAgICh0aGlzLmJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5zZXRQbHVnaW5PcHRpb25zPFdpdGhQbHVnaW5PcHRpb25zPihQbGFpdFBsdWdpbktleS53aXRoU2VsZWN0aW9uLCB7XG4gICAgICAgICAgICBpc0Rpc2FibGVkU2VsZWN0OiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICh0aGlzLmJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5zZXRQbHVnaW5PcHRpb25zPFdpdGhQbHVnaW5PcHRpb25zPihQbGFpdFBsdWdpbktleS53aXRoU2VsZWN0aW9uLCB7IC4uLmN1cnJlbnRPcHRpb25zIH0pO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZm9udFNpemUgPSBgJHt0aGlzLmZvbnRTaXplfXB4YDtcbiAgICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './emoji-base.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9iYXNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vtb2ppLWJhc2UuY29tcG9uZW50JztcbiJdfQ==