kritzel-stencil 0.0.121 → 0.0.122
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/dist/cjs/{index-BjLSiQIM.js → index-CFCyVs0_.js} +185 -69
- package/dist/cjs/index-CFCyVs0_.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-brush-style_18.cjs.entry.js +127 -71
- package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +1 -1
- package/dist/collection/classes/commands/remove-object.command.js +3 -0
- package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +2 -2
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +5 -5
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/history.class.js +16 -13
- package/dist/collection/classes/history.class.js.map +1 -1
- package/dist/collection/classes/objects/base-object.class.js +28 -32
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/custom-element.class.js +52 -0
- package/dist/collection/classes/objects/custom-element.class.js.map +1 -0
- package/dist/collection/classes/objects/image.class.js +1 -1
- package/dist/collection/classes/objects/image.class.js.map +1 -1
- package/dist/collection/classes/objects/path.class.js +62 -2
- package/dist/collection/classes/objects/path.class.js.map +1 -1
- package/dist/collection/classes/objects/selection-group.class.js +1 -1
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/objects/text.class.js +1 -1
- package/dist/collection/classes/objects/text.class.js.map +1 -1
- package/dist/collection/classes/reviver.class.js +4 -0
- package/dist/collection/classes/reviver.class.js.map +1 -1
- package/dist/collection/classes/store.class.js +45 -6
- package/dist/collection/classes/store.class.js.map +1 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +18 -14
- package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/image-tool.class.js +1 -1
- package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js +2 -6
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/viewport.class.js +20 -12
- package/dist/collection/classes/viewport.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +6 -6
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +38 -32
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/configs/default-engine-state.js +2 -2
- package/dist/collection/configs/default-engine-state.js.map +1 -1
- package/dist/collection/helpers/html.helper.js +7 -0
- package/dist/collection/helpers/html.helper.js.map +1 -0
- package/dist/collection/helpers/object.helper.js +6 -2
- package/dist/collection/helpers/object.helper.js.map +1 -1
- package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
- package/dist/collection/interfaces/object.interface.js.map +1 -1
- package/dist/components/index.js +2 -2
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +7 -7
- package/dist/components/kritzel-editor.js.map +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/{p-q-xqpmae.js → p-COPOzWCn.js} +211 -99
- package/dist/components/p-COPOzWCn.js.map +1 -0
- package/dist/components/{p-DC3j4P1n.js → p-Ch8eM2R8.js} +99 -39
- package/dist/components/p-Ch8eM2R8.js.map +1 -0
- package/dist/components/{p-BAMl2Ww6.js → p-DIu9OTyP.js} +3 -3
- package/dist/components/{p-BAMl2Ww6.js.map → p-DIu9OTyP.js.map} +1 -1
- package/dist/esm/{index-DsUDklEm.js → index-DYLW4hYm.js} +185 -69
- package/dist/esm/index-DYLW4hYm.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/kritzel-brush-style_18.entry.js +127 -71
- package/dist/esm/kritzel-brush-style_18.entry.js.map +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-DYLW4hYm.js +2 -0
- package/dist/stencil/p-DYLW4hYm.js.map +1 -0
- package/dist/stencil/p-fa584641.entry.js +2 -0
- package/dist/stencil/p-fa584641.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/history.class.d.ts +1 -0
- package/dist/types/classes/objects/base-object.class.d.ts +10 -6
- package/dist/types/classes/objects/custom-element.class.d.ts +26 -0
- package/dist/types/classes/objects/image.class.d.ts +1 -1
- package/dist/types/classes/objects/path.class.d.ts +5 -2
- package/dist/types/classes/objects/text.class.d.ts +1 -1
- package/dist/types/classes/store.class.d.ts +5 -0
- package/dist/types/components.d.ts +4 -4
- package/dist/types/helpers/html.helper.d.ts +3 -0
- package/dist/types/interfaces/engine-state.interface.d.ts +2 -2
- package/dist/types/interfaces/object.interface.d.ts +9 -4
- package/package.json +1 -1
- package/dist/cjs/index-BjLSiQIM.js.map +0 -1
- package/dist/components/p-DC3j4P1n.js.map +0 -1
- package/dist/components/p-q-xqpmae.js.map +0 -1
- package/dist/esm/index-DsUDklEm.js.map +0 -1
- package/dist/stencil/p-3797c300.entry.js +0 -2
- package/dist/stencil/p-3797c300.entry.js.map +0 -1
- package/dist/stencil/p-DsUDklEm.js +0 -2
- package/dist/stencil/p-DsUDklEm.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,b as t}from"./p-BPFXWTBp.js";export{s as setNonce}from"./p-BPFXWTBp.js";import{g as o}from"./p-DQuL1Twl.js";var i=()=>{const t=import.meta.url;const o={};if(t!==""){o.resourcesUrl=new URL(".",t).href}return e(o)};i().then((async e=>{await o();return t([["p-
|
|
1
|
+
import{p as e,b as t}from"./p-BPFXWTBp.js";export{s as setNonce}from"./p-BPFXWTBp.js";import{g as o}from"./p-DQuL1Twl.js";var i=()=>{const t=import.meta.url;const o={};if(t!==""){o.resourcesUrl=new URL(".",t).href}return e(o)};i().then((async e=>{await o();return t([["p-fa584641",[[256,"kritzel-editor",{scaleMax:[2,"scale-max"],scaleMin:[2,"scale-min"],controls:[16],globalContextMenuItems:[16,"global-context-menu-items"],objectContextMenuItems:[16,"object-context-menu-items"],customSvgIcons:[16,"custom-svg-icons"],isControlsVisible:[4,"is-controls-visible"],isUtilityPanelVisible:[4,"is-utility-panel-visible"],isEngineReady:[32],isControlsReady:[32],getObjectById:[64],addObject:[64],updateObject:[64],removeObject:[64],getSelectedObjects:[64],selectObjects:[64],selectAllObjectsInViewport:[64],clearSelection:[64],centerObjectInViewport:[64]},[[0,"dblclick","handleTouchStart"],[8,"keydown","handleKeyDown"]],{isEngineReady:["onIsEngineReady"],isControlsReady:["onIsControlsReady"]}],[257,"kritzel-controls",{controls:[16],activeControl:[1040,"active-control"],isUtilityPanelVisible:[4,"is-utility-panel-visible"],firstConfig:[32],isTooltipVisible:[32],isTouchDevice:[32],closeTooltip:[64]},[[4,"activeToolChange","handleActiveToolChange"],[4,"click","handleClick"]]],[257,"kritzel-engine",{activeTool:[16,"active-tool"],globalContextMenuItems:[16,"global-context-menu-items"],objectContextMenuItems:[16,"object-context-menu-items"],scaleMax:[1026,"scale-max"],scaleMin:[1026,"scale-min"],forceUpdate:[32],registerTool:[64],changeActiveTool:[64],setFocus:[64],disable:[64],enable:[64],delete:[64],copy:[64],paste:[64],bringForward:[64],sendBackward:[64],moveToTop:[64],moveToBottom:[64],undo:[64],redo:[64],hideContextMenu:[64],getObjectById:[64],addObject:[64],updateObject:[64],removeObject:[64],getSelectedObjects:[64],selectObjects:[64],selectAllObjectsInViewport:[64],clearSelection:[64],centerObjectInViewport:[64],getCopiedObjects:[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[9,"mousedown","updateFocus"]],{scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"]}],[257,"kritzel-control-text-config",{tool:[1040],isExpanded:[1028,"is-expanded"]}],[257,"kritzel-control-brush-config",{tool:[1040],isExpanded:[1028,"is-expanded"],palette:[32]},null,{tool:["handleToolChange"]}],[257,"kritzel-context-menu",{items:[16],objects:[16],disabledStates:[32],visibleItems:[32]},null,{items:["onItemsChanged"]}],[257,"kritzel-utility-panel"],[257,"kritzel-cursor-trail",{store:[16],cursorTrailPoints:[32],isLeftButtonDown:[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[257,"kritzel-tooltip",{isVisible:[4,"is-visible"],anchorElement:[16,"anchor-element"],arrowSize:[2,"arrow-size"],offsetY:[2,"offset-y"],positionX:[32],arrowOffset:[32],isMobileView:[32]},[[9,"resize","handleWindowResize"]]],[257,"kritzel-brush-style",{type:[1],brushOptions:[16,"brush-options"]}],[257,"kritzel-font-family",{fontOptions:[16,"font-options"],selectedFontFamily:[1025,"selected-font-family"]}],[257,"kritzel-font-size",{sizes:[16],selectedSize:[1026,"selected-size"],fontFamily:[1,"font-family"]}],[257,"kritzel-stroke-size",{sizes:[16],selectedSize:[1026,"selected-size"]}],[257,"kritzel-color-palette",{colors:[16],selectedColor:[1025,"selected-color"],isExpanded:[4,"is-expanded"],isOpaque:[4,"is-opaque"]}],[257,"kritzel-font",{fontFamily:[1,"font-family"],size:[2],color:[1]}],[257,"kritzel-color",{value:[1],size:[2]}],[257,"kritzel-dropdown",{options:[16],value:[1],width:[1],selectStyles:[8,"select-styles"],internalValue:[32],hasSuffixContent:[32],hasPrefixContent:[32]},null,{value:["externalValueChanged"],options:["optionsChanged"]}],[257,"kritzel-icon",{name:[1],label:[1],size:[2]}]]]],e)}));
|
|
2
2
|
//# sourceMappingURL=stencil.esm.js.map
|
|
@@ -5,8 +5,9 @@ import { KritzelSerializable } from '../../interfaces/serializable.interface';
|
|
|
5
5
|
import { KritzelStore } from '../store.class';
|
|
6
6
|
export declare class KritzelBaseObject<T extends Element = HTMLElement | SVGElement> implements KritzelObject<T>, KritzelSerializable {
|
|
7
7
|
__class__: string;
|
|
8
|
+
_store: KritzelStore;
|
|
9
|
+
_elementRef: T;
|
|
8
10
|
id: string;
|
|
9
|
-
visible: boolean;
|
|
10
11
|
x: number;
|
|
11
12
|
y: number;
|
|
12
13
|
translateX: number;
|
|
@@ -19,16 +20,16 @@ export declare class KritzelBaseObject<T extends Element = HTMLElement | SVGElem
|
|
|
19
20
|
opacity: number;
|
|
20
21
|
padding: number;
|
|
21
22
|
scale: number;
|
|
22
|
-
selected: boolean;
|
|
23
23
|
resizing: boolean;
|
|
24
24
|
rotation: number;
|
|
25
25
|
markedForRemoval: boolean;
|
|
26
|
-
isMounted: boolean;
|
|
27
26
|
zIndex: number;
|
|
27
|
+
isVisible: boolean;
|
|
28
|
+
isSelected: boolean;
|
|
29
|
+
isMounted: boolean;
|
|
28
30
|
isEditable: boolean;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
_elementRef: T;
|
|
31
|
+
isInteractive: boolean;
|
|
32
|
+
isDebugInfoVisible: boolean;
|
|
32
33
|
get totalWidth(): number;
|
|
33
34
|
get totalHeight(): number;
|
|
34
35
|
set elementRef(element: T);
|
|
@@ -47,6 +48,8 @@ export declare class KritzelBaseObject<T extends Element = HTMLElement | SVGElem
|
|
|
47
48
|
constructor();
|
|
48
49
|
static create(store: KritzelStore): KritzelBaseObject<Element>;
|
|
49
50
|
mount(element: T): void;
|
|
51
|
+
unmount(): void;
|
|
52
|
+
remount(): void;
|
|
50
53
|
generateId(): string;
|
|
51
54
|
isInViewport(): boolean;
|
|
52
55
|
centerInViewport(): void;
|
|
@@ -58,4 +61,5 @@ export declare class KritzelBaseObject<T extends Element = HTMLElement | SVGElem
|
|
|
58
61
|
revive(object: any): KritzelBaseObject<T>;
|
|
59
62
|
isClass<T extends KritzelBaseObject>(this: T, className: string): this is T;
|
|
60
63
|
edit(): void;
|
|
64
|
+
hitTest(_x: number, _y: number): boolean;
|
|
61
65
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { KritzelStore } from '../store.class';
|
|
2
|
+
import { KritzelBaseObject } from './base-object.class';
|
|
3
|
+
export declare class KritzelCustomElement extends KritzelBaseObject<HTMLElement> {
|
|
4
|
+
__class__: string;
|
|
5
|
+
element: HTMLElement;
|
|
6
|
+
isInteractive: boolean;
|
|
7
|
+
constructor(config?: {
|
|
8
|
+
element: HTMLElement;
|
|
9
|
+
translateX?: number;
|
|
10
|
+
translateY?: number;
|
|
11
|
+
scale?: number;
|
|
12
|
+
height?: number;
|
|
13
|
+
width?: number;
|
|
14
|
+
});
|
|
15
|
+
static create(store: KritzelStore, config?: {
|
|
16
|
+
element: HTMLElement;
|
|
17
|
+
translateX?: number;
|
|
18
|
+
translateY?: number;
|
|
19
|
+
scale?: number;
|
|
20
|
+
height?: number;
|
|
21
|
+
width?: number;
|
|
22
|
+
}): KritzelBaseObject<Element>;
|
|
23
|
+
mount(element: HTMLElement): void;
|
|
24
|
+
resize(x: number, y: number, width: number, height: number): void;
|
|
25
|
+
copy(): KritzelCustomElement;
|
|
26
|
+
}
|
|
@@ -6,7 +6,7 @@ export declare class KritzelImage extends KritzelBaseObject<HTMLImageElement> {
|
|
|
6
6
|
maxWidth: number;
|
|
7
7
|
maxHeight: number;
|
|
8
8
|
maxCompressionSize: number;
|
|
9
|
-
|
|
9
|
+
isDebugInfoVisible: boolean;
|
|
10
10
|
constructor(config?: Partial<KritzelImage>);
|
|
11
11
|
static create(store: KritzelStore): KritzelImage;
|
|
12
12
|
resize(x: number, y: number, width: number, height: number): void;
|
|
@@ -4,6 +4,7 @@ import { KritzelStore } from '../store.class';
|
|
|
4
4
|
export declare class KritzelPath extends KritzelBaseObject<SVGElement> {
|
|
5
5
|
__class__: string;
|
|
6
6
|
points: number[][];
|
|
7
|
+
adjustedPoints: number[][];
|
|
7
8
|
d: string;
|
|
8
9
|
stroke: string;
|
|
9
10
|
strokeWidth: number;
|
|
@@ -16,9 +17,9 @@ export declare class KritzelPath extends KritzelBaseObject<SVGElement> {
|
|
|
16
17
|
height: number;
|
|
17
18
|
width: number;
|
|
18
19
|
scale: number;
|
|
19
|
-
visible: boolean;
|
|
20
20
|
options: KritzelPathOptions | undefined;
|
|
21
|
-
|
|
21
|
+
isVisible: boolean;
|
|
22
|
+
isDebugInfoVisible: boolean;
|
|
22
23
|
get viewBox(): string;
|
|
23
24
|
constructor(config?: {
|
|
24
25
|
points: number[][];
|
|
@@ -32,6 +33,8 @@ export declare class KritzelPath extends KritzelBaseObject<SVGElement> {
|
|
|
32
33
|
static create(store: KritzelStore, options?: KritzelPathOptions): KritzelPath;
|
|
33
34
|
resize(x: number | null, y: number | null, width: number, height: number): void;
|
|
34
35
|
rotate(value: number): void;
|
|
36
|
+
hitTest(x: number, y: number): boolean;
|
|
37
|
+
private pointToLineSegmentDistance;
|
|
35
38
|
private updateDimensions;
|
|
36
39
|
private generateSvgPath;
|
|
37
40
|
private getStrokeFromPoints;
|
|
@@ -8,7 +8,7 @@ export declare class KritzelText extends KritzelBaseObject<HTMLTextAreaElement>
|
|
|
8
8
|
fontColor: string;
|
|
9
9
|
initialWidth: number;
|
|
10
10
|
isNew: boolean;
|
|
11
|
-
|
|
11
|
+
isDebugInfoVisible: boolean;
|
|
12
12
|
isEditable: boolean;
|
|
13
13
|
readonly rows: number;
|
|
14
14
|
get isReadonly(): boolean;
|
|
@@ -35,4 +35,9 @@ export declare class KritzelStore {
|
|
|
35
35
|
clearSelection(): void;
|
|
36
36
|
resetActiveText(): void;
|
|
37
37
|
getObjectFromPointerEvent(event: PointerEvent, selector?: string): KritzelBaseObject<any> | null;
|
|
38
|
+
getObjectsFromPointerEvent(event: PointerEvent, selector?: string): KritzelBaseObject<any>[];
|
|
39
|
+
getCanvasPoint(event: PointerEvent): {
|
|
40
|
+
x: number;
|
|
41
|
+
y: number;
|
|
42
|
+
};
|
|
38
43
|
}
|
|
@@ -116,7 +116,7 @@ export namespace Components {
|
|
|
116
116
|
"centerObjectInViewport": (object: KritzelBaseObject) => Promise<KritzelBaseObject<HTMLElement | SVGElement>>;
|
|
117
117
|
"clearSelection": () => Promise<void>;
|
|
118
118
|
/**
|
|
119
|
-
* @default [ { name: 'selection', type: 'tool', tool: KritzelSelectionTool, icon: 'cursor', }, { name: 'brush', type: 'tool', tool: KritzelBrushTool,
|
|
119
|
+
* @default [ { name: 'selection', type: 'tool', tool: KritzelSelectionTool, icon: 'cursor', }, { name: 'brush', type: 'tool', tool: KritzelBrushTool, icon: 'pen', isDefault: true, config: DEFAULT_BRUSH_CONFIG, }, { name: 'eraser', type: 'tool', tool: KritzelEraserTool, icon: 'eraser', }, { name: 'text', type: 'tool', tool: KritzelTextTool, icon: 'type', config: DEFAULT_TEXT_CONFIG, }, { name: 'image', type: 'tool', tool: KritzelImageTool, icon: 'image', }, { name: 'divider', type: 'divider', }, { name: 'config', type: 'config', }, ]
|
|
120
120
|
*/
|
|
121
121
|
"controls": KritzelToolbarControl[];
|
|
122
122
|
/**
|
|
@@ -138,7 +138,7 @@ export namespace Components {
|
|
|
138
138
|
*/
|
|
139
139
|
"isUtilityPanelVisible": boolean;
|
|
140
140
|
/**
|
|
141
|
-
* @default [ { label: 'Edit', icon: 'pen', visible: (_, objects) => objects.length === 1 && objects[0].isEditable, action: (_, objects) => { if (objects.length === 1) { const object = objects[0]; if (object.isEditable) { object.edit(); } } } }, { label: 'Copy', icon: 'copy', action: () => this.engineRef.copy() }, { label: 'Paste', icon: 'paste', disabled: async () => (await this.engineRef.getCopiedObjects()).length === 0, action: (menu, _) => this.engineRef.paste(menu.x, menu.y) }, { label: 'Delete', icon: 'delete', action: () => this.engineRef.delete() }, { label: 'Bring to Front', icon: 'bring-to-front', action: () => this.engineRef.moveToTop() }, { label: 'Send to Back', icon: 'send-to-back', action: () => this.engineRef.moveToBottom() }, ]
|
|
141
|
+
* @default [ { label: 'Edit', icon: 'pen', visible: (_, objects) => objects.length === 1 && objects[0].isEditable, action: (_, objects) => { if (objects.length === 1) { const object = objects[0]; if (object.isEditable) { object.edit(); } } }, }, { label: 'Copy', icon: 'copy', action: () => this.engineRef.copy() }, { label: 'Paste', icon: 'paste', disabled: async () => (await this.engineRef.getCopiedObjects()).length === 0, action: (menu, _) => this.engineRef.paste(menu.x, menu.y), }, { label: 'Delete', icon: 'delete', action: () => this.engineRef.delete() }, { label: 'Bring to Front', icon: 'bring-to-front', action: () => this.engineRef.moveToTop() }, { label: 'Send to Back', icon: 'send-to-back', action: () => this.engineRef.moveToBottom() }, ]
|
|
142
142
|
*/
|
|
143
143
|
"objectContextMenuItems": ContextMenuItem[];
|
|
144
144
|
"removeObject": <T extends KritzelBaseObject>(object: T) => Promise<T | null>;
|
|
@@ -683,7 +683,7 @@ declare namespace LocalJSX {
|
|
|
683
683
|
}
|
|
684
684
|
interface KritzelEditor {
|
|
685
685
|
/**
|
|
686
|
-
* @default [ { name: 'selection', type: 'tool', tool: KritzelSelectionTool, icon: 'cursor', }, { name: 'brush', type: 'tool', tool: KritzelBrushTool,
|
|
686
|
+
* @default [ { name: 'selection', type: 'tool', tool: KritzelSelectionTool, icon: 'cursor', }, { name: 'brush', type: 'tool', tool: KritzelBrushTool, icon: 'pen', isDefault: true, config: DEFAULT_BRUSH_CONFIG, }, { name: 'eraser', type: 'tool', tool: KritzelEraserTool, icon: 'eraser', }, { name: 'text', type: 'tool', tool: KritzelTextTool, icon: 'type', config: DEFAULT_TEXT_CONFIG, }, { name: 'image', type: 'tool', tool: KritzelImageTool, icon: 'image', }, { name: 'divider', type: 'divider', }, { name: 'config', type: 'config', }, ]
|
|
687
687
|
*/
|
|
688
688
|
"controls"?: KritzelToolbarControl[];
|
|
689
689
|
/**
|
|
@@ -703,7 +703,7 @@ declare namespace LocalJSX {
|
|
|
703
703
|
*/
|
|
704
704
|
"isUtilityPanelVisible"?: boolean;
|
|
705
705
|
/**
|
|
706
|
-
* @default [ { label: 'Edit', icon: 'pen', visible: (_, objects) => objects.length === 1 && objects[0].isEditable, action: (_, objects) => { if (objects.length === 1) { const object = objects[0]; if (object.isEditable) { object.edit(); } } } }, { label: 'Copy', icon: 'copy', action: () => this.engineRef.copy() }, { label: 'Paste', icon: 'paste', disabled: async () => (await this.engineRef.getCopiedObjects()).length === 0, action: (menu, _) => this.engineRef.paste(menu.x, menu.y) }, { label: 'Delete', icon: 'delete', action: () => this.engineRef.delete() }, { label: 'Bring to Front', icon: 'bring-to-front', action: () => this.engineRef.moveToTop() }, { label: 'Send to Back', icon: 'send-to-back', action: () => this.engineRef.moveToBottom() }, ]
|
|
706
|
+
* @default [ { label: 'Edit', icon: 'pen', visible: (_, objects) => objects.length === 1 && objects[0].isEditable, action: (_, objects) => { if (objects.length === 1) { const object = objects[0]; if (object.isEditable) { object.edit(); } } }, }, { label: 'Copy', icon: 'copy', action: () => this.engineRef.copy() }, { label: 'Paste', icon: 'paste', disabled: async () => (await this.engineRef.getCopiedObjects()).length === 0, action: (menu, _) => this.engineRef.paste(menu.x, menu.y), }, { label: 'Delete', icon: 'delete', action: () => this.engineRef.delete() }, { label: 'Bring to Front', icon: 'bring-to-front', action: () => this.engineRef.moveToTop() }, { label: 'Send to Back', icon: 'send-to-back', action: () => this.engineRef.moveToBottom() }, ]
|
|
707
707
|
*/
|
|
708
708
|
"objectContextMenuItems"?: ContextMenuItem[];
|
|
709
709
|
"onIsReady"?: (event: KritzelEditorCustomEvent<HTMLElement>) => void;
|
|
@@ -40,8 +40,8 @@ export interface KritzelEngineState {
|
|
|
40
40
|
skipContextMenu: boolean;
|
|
41
41
|
debugInfo: KritzelDebugInfo;
|
|
42
42
|
host: HTMLElement;
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
pointerX: number;
|
|
44
|
+
pointerY: number;
|
|
45
45
|
scale: number;
|
|
46
46
|
scaleMax: number;
|
|
47
47
|
scaleMin: number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { KritzelBaseObject } from '../classes/objects/base-object.class';
|
|
2
2
|
import { KritzelBoundingBox } from './bounding-box.interface';
|
|
3
3
|
export interface KritzelObject<T = Element> {
|
|
4
|
+
_elementRef: T;
|
|
4
5
|
id: string;
|
|
5
|
-
visible: boolean;
|
|
6
6
|
x: number;
|
|
7
7
|
y: number;
|
|
8
8
|
translateX: number;
|
|
@@ -14,14 +14,16 @@ export interface KritzelObject<T = Element> {
|
|
|
14
14
|
borderWidth: number;
|
|
15
15
|
opacity: number;
|
|
16
16
|
scale: number;
|
|
17
|
-
selected: boolean;
|
|
18
17
|
resizing: boolean;
|
|
19
18
|
rotation: number;
|
|
20
19
|
markedForRemoval: boolean;
|
|
21
|
-
isMounted: boolean;
|
|
22
20
|
zIndex: number;
|
|
21
|
+
isVisible: boolean;
|
|
22
|
+
isSelected: boolean;
|
|
23
|
+
isMounted: boolean;
|
|
23
24
|
isEditable: boolean;
|
|
24
|
-
|
|
25
|
+
isInteractive: boolean;
|
|
26
|
+
isDebugInfoVisible: boolean;
|
|
25
27
|
set elementRef(element: T);
|
|
26
28
|
get elementRef(): T;
|
|
27
29
|
get boundingBox(): KritzelBoundingBox;
|
|
@@ -31,6 +33,8 @@ export interface KritzelObject<T = Element> {
|
|
|
31
33
|
get centerX(): number;
|
|
32
34
|
get centerY(): number;
|
|
33
35
|
mount(element: T): void;
|
|
36
|
+
unmount(): void;
|
|
37
|
+
remount(): void;
|
|
34
38
|
generateId(): string;
|
|
35
39
|
isInViewport(viewport: KritzelBoundingBox, scale: number): boolean;
|
|
36
40
|
centerInViewport(): void;
|
|
@@ -41,4 +45,5 @@ export interface KritzelObject<T = Element> {
|
|
|
41
45
|
onSelectedClick(): void;
|
|
42
46
|
isClass<T extends KritzelBaseObject>(this: T, type: string): this is T;
|
|
43
47
|
edit(): void;
|
|
48
|
+
hitTest(x: number, y: number): boolean;
|
|
44
49
|
}
|