kritzel-stencil 0.0.119 → 0.0.121
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-CXT94beA.js → index-BcrLbdO1.js} +50 -10
- package/dist/cjs/index-BcrLbdO1.js.map +1 -0
- package/dist/cjs/index-BjLSiQIM.js +2342 -0
- package/dist/cjs/index-BjLSiQIM.js.map +1 -0
- package/dist/cjs/index.cjs.js +8 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/kritzel-brush-style_18.cjs.entry.js +363 -1743
- package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stencil.cjs.js +3 -3
- package/dist/cjs/stencil.cjs.js.map +1 -1
- package/dist/collection/classes/commands/add-selection-group.command.js +2 -0
- package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
- package/dist/collection/classes/objects/base-object.class.js +4 -0
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/image.class.js +23 -2
- package/dist/collection/classes/objects/image.class.js.map +1 -1
- package/dist/collection/classes/objects/path.class.js +15 -5
- package/dist/collection/classes/objects/path.class.js.map +1 -1
- package/dist/collection/classes/objects/text.class.js +2 -1
- package/dist/collection/classes/objects/text.class.js.map +1 -1
- package/dist/collection/classes/store.class.js +2 -13
- package/dist/collection/classes/store.class.js.map +1 -1
- package/dist/collection/classes/tools/image-tool.class.js +6 -23
- package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js +4 -13
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/viewport.class.js.map +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +217 -13
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +159 -68
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +104 -4
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +30 -9
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
- package/dist/collection/configs/default-brush-tool.config.js +60 -0
- package/dist/collection/configs/default-brush-tool.config.js.map +1 -0
- package/dist/collection/configs/default-engine-state.js +6 -2
- package/dist/collection/configs/default-engine-state.js.map +1 -1
- package/dist/collection/configs/default-text-tool.config.js +32 -0
- package/dist/collection/configs/default-text-tool.config.js.map +1 -0
- package/dist/collection/constants/engine.constants.js +3 -0
- package/dist/collection/constants/engine.constants.js.map +1 -0
- package/dist/collection/index.js +8 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/interfaces/context-menu-item.interface.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 +4 -4
- package/dist/components/kritzel-brush-style.js +1 -1
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.js +1 -1
- package/dist/components/kritzel-context-menu.js +1 -1
- package/dist/components/kritzel-control-brush-config.js +1 -1
- package/dist/components/kritzel-control-text-config.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-cursor-trail.js +1 -1
- package/dist/components/kritzel-dropdown.js +1 -1
- package/dist/components/kritzel-editor.js +110 -68
- package/dist/components/kritzel-editor.js.map +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-font-family.js +1 -1
- package/dist/components/kritzel-font-size.js +1 -1
- package/dist/components/kritzel-font.js +1 -1
- package/dist/components/kritzel-icon.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tooltip.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/{p-CtNzxQ7T.js → p--2FkikYE.js} +4 -4
- package/dist/components/{p-CtNzxQ7T.js.map → p--2FkikYE.js.map} +1 -1
- package/dist/components/{p-LIijWPsT.js → p--tElassI.js} +4 -4
- package/dist/components/{p-LIijWPsT.js.map → p--tElassI.js.map} +1 -1
- package/dist/components/{p-C6kzcN4b.js → p-B2wWYPH8.js} +4 -4
- package/dist/components/{p-C6kzcN4b.js.map → p-B2wWYPH8.js.map} +1 -1
- package/dist/components/{p-93b-eQ0s.js → p-BAMl2Ww6.js} +29 -27
- package/dist/components/p-BAMl2Ww6.js.map +1 -0
- package/dist/components/{p-B8nuvSxt.js → p-BSS4UREq.js} +10 -10
- package/dist/components/{p-B8nuvSxt.js.map → p-BSS4UREq.js.map} +1 -1
- package/dist/components/{p-JQA2FRVr.js → p-C3E9PtD3.js} +11 -11
- package/dist/components/{p-JQA2FRVr.js.map → p-C3E9PtD3.js.map} +1 -1
- package/dist/components/{p-B57pFHwJ.js → p-CDpq9L_H.js} +4 -4
- package/dist/components/{p-B57pFHwJ.js.map → p-CDpq9L_H.js.map} +1 -1
- package/dist/components/p-CEYRFk55.js +119 -0
- package/dist/components/p-CEYRFk55.js.map +1 -0
- package/dist/components/{p-BV9-NuyD.js → p-CIb4IA9u.js} +6 -6
- package/dist/components/{p-BV9-NuyD.js.map → p-CIb4IA9u.js.map} +1 -1
- package/dist/components/{p-eBBOf568.js → p-CqPrOhzi.js} +5 -5
- package/dist/components/{p-eBBOf568.js.map → p-CqPrOhzi.js.map} +1 -1
- package/dist/components/{p-CaQ7Iei7.js → p-CxmkJbeV.js} +4 -4
- package/dist/components/{p-CaQ7Iei7.js.map → p-CxmkJbeV.js.map} +1 -1
- package/dist/components/{p-yBnfPxIa.js → p-D-Rf05Ov.js} +5 -5
- package/dist/components/{p-yBnfPxIa.js.map → p-D-Rf05Ov.js.map} +1 -1
- package/dist/components/{p-CSSrNLad.js → p-D0L3GqSK.js} +4 -4
- package/dist/components/{p-CSSrNLad.js.map → p-D0L3GqSK.js.map} +1 -1
- package/dist/components/{p-fmNiA3Yr.js → p-D1oFXBAp.js} +5 -5
- package/dist/components/{p-fmNiA3Yr.js.map → p-D1oFXBAp.js.map} +1 -1
- package/dist/components/{p-DRuQsvUx.js → p-DC3j4P1n.js} +23 -8
- package/dist/components/p-DC3j4P1n.js.map +1 -0
- package/dist/components/{p-D04aTZsR.js → p-DbPbyRLO.js} +5 -5
- package/dist/components/{p-D04aTZsR.js.map → p-DbPbyRLO.js.map} +1 -1
- package/dist/components/{p-DoQOtXjT.js → p-dCaxwGmu.js} +44 -9
- package/dist/components/p-dCaxwGmu.js.map +1 -0
- package/dist/components/{p-BBIuV3j1.js → p-gDLg_PJJ.js} +5 -5
- package/dist/components/{p-BBIuV3j1.js.map → p-gDLg_PJJ.js.map} +1 -1
- package/dist/components/{p-DuWb7MaD.js → p-q-xqpmae.js} +137 -125
- package/dist/components/p-q-xqpmae.js.map +1 -0
- package/dist/esm/{index-CGHvfMWF.js → index-BPFXWTBp.js} +50 -10
- package/dist/esm/index-BPFXWTBp.js.map +1 -0
- package/dist/esm/index-DsUDklEm.js +2318 -0
- package/dist/esm/index-DsUDklEm.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/kritzel-brush-style_18.entry.js +333 -1713
- package/dist/esm/kritzel-brush-style_18.entry.js.map +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/stencil.js +4 -4
- package/dist/esm/stencil.js.map +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-3797c300.entry.js +2 -0
- package/dist/stencil/p-3797c300.entry.js.map +1 -0
- package/dist/stencil/p-BPFXWTBp.js +3 -0
- package/dist/stencil/p-BPFXWTBp.js.map +1 -0
- package/dist/stencil/p-DsUDklEm.js +2 -0
- package/dist/stencil/p-DsUDklEm.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/stencil/stencil.esm.js.map +1 -1
- package/dist/types/classes/objects/base-object.class.d.ts +3 -1
- package/dist/types/classes/objects/image.class.d.ts +8 -0
- package/dist/types/classes/objects/path.class.d.ts +9 -0
- package/dist/types/classes/objects/text.class.d.ts +2 -1
- package/dist/types/classes/store.class.d.ts +1 -1
- package/dist/types/classes/tools/image-tool.class.d.ts +0 -4
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +9 -3
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +12 -4
- package/dist/types/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +8 -0
- package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +2 -1
- package/dist/types/components.d.ts +77 -22
- package/dist/types/configs/default-brush-tool.config.d.ts +2 -0
- package/dist/types/configs/default-text-tool.config.d.ts +2 -0
- package/dist/types/constants/engine.constants.d.ts +2 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/interfaces/context-menu-item.interface.d.ts +13 -2
- package/dist/types/interfaces/engine-state.interface.d.ts +4 -0
- package/dist/types/interfaces/object.interface.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cjs/index-CXT94beA.js.map +0 -1
- package/dist/cjs/index-aaWestcD.js +0 -827
- package/dist/cjs/index-aaWestcD.js.map +0 -1
- package/dist/collection/configs/default-toolbar-controls.js +0 -139
- package/dist/collection/configs/default-toolbar-controls.js.map +0 -1
- package/dist/components/p-93b-eQ0s.js.map +0 -1
- package/dist/components/p-CYnE3twZ.js +0 -49
- package/dist/components/p-CYnE3twZ.js.map +0 -1
- package/dist/components/p-DRuQsvUx.js.map +0 -1
- package/dist/components/p-DoQOtXjT.js.map +0 -1
- package/dist/components/p-DuWb7MaD.js.map +0 -1
- package/dist/esm/index-CGHvfMWF.js.map +0 -1
- package/dist/esm/index-Dn7aP72S.js +0 -814
- package/dist/esm/index-Dn7aP72S.js.map +0 -1
- package/dist/stencil/p-6c35ba88.entry.js +0 -2
- package/dist/stencil/p-6c35ba88.entry.js.map +0 -1
- package/dist/stencil/p-CGHvfMWF.js +0 -3
- package/dist/stencil/p-CGHvfMWF.js.map +0 -1
- package/dist/stencil/p-Dn7aP72S.js +0 -2
- package/dist/stencil/p-Dn7aP72S.js.map +0 -1
- package/dist/types/configs/default-toolbar-controls.d.ts +0 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,b as t}from"./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-3797c300",[[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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stencil.esm.js","sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.
|
|
1
|
+
{"version":3,"file":"stencil.esm.js","sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.36.1 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACpC,EAAE,MAAM,IAAI,GAAiE,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC","x_google_ignoreList":[0]}
|
|
@@ -3,7 +3,7 @@ import { KritzelObject } from '../../interfaces/object.interface';
|
|
|
3
3
|
import { KritzelPolygon } from '../../interfaces/polygon.interface';
|
|
4
4
|
import { KritzelSerializable } from '../../interfaces/serializable.interface';
|
|
5
5
|
import { KritzelStore } from '../store.class';
|
|
6
|
-
export declare class KritzelBaseObject<T extends Element = HTMLElement> implements KritzelObject<T>, KritzelSerializable {
|
|
6
|
+
export declare class KritzelBaseObject<T extends Element = HTMLElement | SVGElement> implements KritzelObject<T>, KritzelSerializable {
|
|
7
7
|
__class__: string;
|
|
8
8
|
id: string;
|
|
9
9
|
visible: boolean;
|
|
@@ -25,6 +25,7 @@ export declare class KritzelBaseObject<T extends Element = HTMLElement> implemen
|
|
|
25
25
|
markedForRemoval: boolean;
|
|
26
26
|
isMounted: boolean;
|
|
27
27
|
zIndex: number;
|
|
28
|
+
isEditable: boolean;
|
|
28
29
|
debugInfoVisible: boolean;
|
|
29
30
|
_store: KritzelStore;
|
|
30
31
|
_elementRef: T;
|
|
@@ -56,4 +57,5 @@ export declare class KritzelBaseObject<T extends Element = HTMLElement> implemen
|
|
|
56
57
|
onSelectedClick(): void;
|
|
57
58
|
revive(object: any): KritzelBaseObject<T>;
|
|
58
59
|
isClass<T extends KritzelBaseObject>(this: T, className: string): this is T;
|
|
60
|
+
edit(): void;
|
|
59
61
|
}
|
|
@@ -3,7 +3,15 @@ import { KritzelBaseObject } from './base-object.class';
|
|
|
3
3
|
export declare class KritzelImage extends KritzelBaseObject<HTMLImageElement> {
|
|
4
4
|
__class__: string;
|
|
5
5
|
src: string;
|
|
6
|
+
maxWidth: number;
|
|
7
|
+
maxHeight: number;
|
|
8
|
+
maxCompressionSize: number;
|
|
6
9
|
debugInfoVisible: boolean;
|
|
10
|
+
constructor(config?: Partial<KritzelImage>);
|
|
7
11
|
static create(store: KritzelStore): KritzelImage;
|
|
8
12
|
resize(x: number, y: number, width: number, height: number): void;
|
|
13
|
+
calculateScaledDimensions(img: HTMLImageElement): {
|
|
14
|
+
scaledWidth: number;
|
|
15
|
+
scaledHeight: number;
|
|
16
|
+
};
|
|
9
17
|
}
|
|
@@ -20,6 +20,15 @@ export declare class KritzelPath extends KritzelBaseObject<SVGElement> {
|
|
|
20
20
|
options: KritzelPathOptions | undefined;
|
|
21
21
|
debugInfoVisible: boolean;
|
|
22
22
|
get viewBox(): string;
|
|
23
|
+
constructor(config?: {
|
|
24
|
+
points: number[][];
|
|
25
|
+
translateX?: number;
|
|
26
|
+
translateY?: number;
|
|
27
|
+
scale?: number;
|
|
28
|
+
strokeWidth?: number;
|
|
29
|
+
fill?: string;
|
|
30
|
+
lineSlack?: number;
|
|
31
|
+
});
|
|
23
32
|
static create(store: KritzelStore, options?: KritzelPathOptions): KritzelPath;
|
|
24
33
|
resize(x: number | null, y: number | null, width: number, height: number): void;
|
|
25
34
|
rotate(value: number): void;
|
|
@@ -9,6 +9,7 @@ export declare class KritzelText extends KritzelBaseObject<HTMLTextAreaElement>
|
|
|
9
9
|
initialWidth: number;
|
|
10
10
|
isNew: boolean;
|
|
11
11
|
debugInfoVisible: boolean;
|
|
12
|
+
isEditable: boolean;
|
|
12
13
|
readonly rows: number;
|
|
13
14
|
get isReadonly(): boolean;
|
|
14
15
|
constructor(config?: {
|
|
@@ -31,5 +32,5 @@ export declare class KritzelText extends KritzelBaseObject<HTMLTextAreaElement>
|
|
|
31
32
|
focus(): void;
|
|
32
33
|
selectAll(): void;
|
|
33
34
|
insertFromClipboard(): void;
|
|
34
|
-
|
|
35
|
+
edit(): void;
|
|
35
36
|
}
|
|
@@ -34,5 +34,5 @@ export declare class KritzelStore {
|
|
|
34
34
|
selectAllObjectsInViewport(): void;
|
|
35
35
|
clearSelection(): void;
|
|
36
36
|
resetActiveText(): void;
|
|
37
|
-
getObjectFromPointerEvent(event:
|
|
37
|
+
getObjectFromPointerEvent(event: PointerEvent, selector?: string): KritzelBaseObject<any> | null;
|
|
38
38
|
}
|
|
@@ -2,8 +2,6 @@ import { KritzelStore } from '../store.class';
|
|
|
2
2
|
import { KritzelBaseTool } from './base-tool.class';
|
|
3
3
|
export declare class KritzelImageTool extends KritzelBaseTool {
|
|
4
4
|
fileInput: HTMLInputElement | null;
|
|
5
|
-
maxWidth: number;
|
|
6
|
-
maxHeight: number;
|
|
7
5
|
maxCompressionSize: number;
|
|
8
6
|
constructor(store: KritzelStore);
|
|
9
7
|
onActivate(): void;
|
|
@@ -11,8 +9,6 @@ export declare class KritzelImageTool extends KritzelBaseTool {
|
|
|
11
9
|
private setupFileInput;
|
|
12
10
|
private handleFileSelect;
|
|
13
11
|
private readFile;
|
|
14
|
-
private processImage;
|
|
15
|
-
private calculateScaledDimensions;
|
|
16
12
|
private createKritzelImage;
|
|
17
13
|
private addImageToStore;
|
|
18
14
|
private handleCancel;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
2
|
import { KritzelToolbarControl } from '../../../interfaces/toolbar-control.interface';
|
|
3
3
|
import { KritzelBaseObject } from '../../../classes/objects/base-object.class';
|
|
4
|
+
import { ContextMenuItem } from '../../../interfaces/context-menu-item.interface';
|
|
4
5
|
export declare class KritzelEditor {
|
|
6
|
+
scaleMax: number;
|
|
7
|
+
scaleMin: number;
|
|
5
8
|
controls: KritzelToolbarControl[];
|
|
9
|
+
globalContextMenuItems: ContextMenuItem[];
|
|
10
|
+
objectContextMenuItems: ContextMenuItem[];
|
|
6
11
|
customSvgIcons: Record<string, string>;
|
|
7
|
-
|
|
12
|
+
isControlsVisible: boolean;
|
|
13
|
+
isUtilityPanelVisible: boolean;
|
|
8
14
|
isReady: EventEmitter<HTMLElement>;
|
|
9
15
|
host: HTMLElement;
|
|
10
16
|
isEngineReady: boolean;
|
|
@@ -19,8 +25,8 @@ export declare class KritzelEditor {
|
|
|
19
25
|
selectObjects(objects: KritzelBaseObject[]): Promise<void>;
|
|
20
26
|
selectAllObjectsInViewport(): Promise<void>;
|
|
21
27
|
clearSelection(): Promise<void>;
|
|
22
|
-
centerObjectInViewport(object: KritzelBaseObject): Promise<KritzelBaseObject<HTMLElement>>;
|
|
23
|
-
handleTouchStart(event:
|
|
28
|
+
centerObjectInViewport(object: KritzelBaseObject): Promise<KritzelBaseObject<HTMLElement | SVGElement>>;
|
|
29
|
+
handleTouchStart(event: MouseEvent): void;
|
|
24
30
|
handleKeyDown(event: any): void;
|
|
25
31
|
engineRef: HTMLKritzelEngineElement;
|
|
26
32
|
controlsRef: HTMLKritzelControlsElement;
|
|
@@ -9,13 +9,17 @@ import { KritzelBrushToolConfig, KritzelTextToolConfig } from '../../../interfac
|
|
|
9
9
|
import { KritzelContextMenuHandler } from '../../../classes/handlers/context-menu.handler';
|
|
10
10
|
import { KritzelBaseObject } from '../../../classes/objects/base-object.class';
|
|
11
11
|
export declare class KritzelEngine {
|
|
12
|
-
host: HTMLElement;
|
|
13
12
|
activeTool: KritzelTool;
|
|
14
13
|
globalContextMenuItems: ContextMenuItem[];
|
|
15
14
|
objectContextMenuItems: ContextMenuItem[];
|
|
16
|
-
|
|
15
|
+
scaleMax: number;
|
|
16
|
+
scaleMin: number;
|
|
17
17
|
isEngineReady: EventEmitter<void>;
|
|
18
18
|
activeToolChange: EventEmitter<KritzelBaseTool>;
|
|
19
|
+
host: HTMLElement;
|
|
20
|
+
forceUpdate: number;
|
|
21
|
+
validateScaleMax(newValue: number): void;
|
|
22
|
+
validateScaleMin(newValue: number): void;
|
|
19
23
|
store: KritzelStore;
|
|
20
24
|
viewport: KritzelViewport;
|
|
21
25
|
contextMenuHandler: KritzelContextMenuHandler;
|
|
@@ -24,6 +28,7 @@ export declare class KritzelEngine {
|
|
|
24
28
|
get isSelecting(): boolean;
|
|
25
29
|
get isSelectionActive(): boolean;
|
|
26
30
|
constructor();
|
|
31
|
+
componentWillLoad(): void;
|
|
27
32
|
componentDidLoad(): void;
|
|
28
33
|
handleWheel(ev: any): void;
|
|
29
34
|
handlePointerDown(ev: PointerEvent): void;
|
|
@@ -35,7 +40,6 @@ export declare class KritzelEngine {
|
|
|
35
40
|
handleKeyDown(ev: any): void;
|
|
36
41
|
handleKeyUp(ev: any): void;
|
|
37
42
|
updateFocus(ev: any): void;
|
|
38
|
-
handleContextMenuAction(event: CustomEvent<ContextMenuItem>): void;
|
|
39
43
|
registerTool(toolName: string, toolClass: any, toolConfig?: KritzelTextToolConfig | KritzelBrushToolConfig): Promise<KritzelBaseTool>;
|
|
40
44
|
changeActiveTool(tool: KritzelBaseTool): Promise<void>;
|
|
41
45
|
setFocus(): Promise<void>;
|
|
@@ -59,6 +63,10 @@ export declare class KritzelEngine {
|
|
|
59
63
|
selectObjects(objects: KritzelBaseObject[]): Promise<void>;
|
|
60
64
|
selectAllObjectsInViewport(): Promise<void>;
|
|
61
65
|
clearSelection(): Promise<void>;
|
|
62
|
-
centerObjectInViewport(object: KritzelBaseObject): Promise<KritzelBaseObject<HTMLElement>>;
|
|
66
|
+
centerObjectInViewport(object: KritzelBaseObject): Promise<KritzelBaseObject<HTMLElement | SVGElement>>;
|
|
67
|
+
getCopiedObjects(): Promise<KritzelBaseObject[]>;
|
|
68
|
+
private _registerStateChangeListeners;
|
|
69
|
+
private _handleActiveToolChange;
|
|
70
|
+
private _handleIsFocusedChange;
|
|
63
71
|
render(): any;
|
|
64
72
|
}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
2
|
import { ContextMenuItem } from '../../../interfaces/context-menu-item.interface';
|
|
3
|
+
import { KritzelBaseObject } from '../../../classes/objects/base-object.class';
|
|
3
4
|
export declare class KritzelContextMenu {
|
|
4
5
|
items: ContextMenuItem[];
|
|
6
|
+
objects: KritzelBaseObject[];
|
|
5
7
|
actionSelected: EventEmitter<ContextMenuItem>;
|
|
6
8
|
hostElement: HTMLElement;
|
|
9
|
+
private disabledStates;
|
|
10
|
+
private visibleItems;
|
|
11
|
+
componentWillLoad(): void;
|
|
12
|
+
onItemsChanged(): void;
|
|
7
13
|
private handleItemClick;
|
|
14
|
+
private resolveVisibleItems;
|
|
15
|
+
private resolveDisabledStates;
|
|
8
16
|
render(): any;
|
|
9
17
|
}
|
|
@@ -6,9 +6,10 @@ type ToolConfig = Record<string, any>;
|
|
|
6
6
|
export declare class KritzelControls {
|
|
7
7
|
controls: KritzelToolbarControl[];
|
|
8
8
|
activeControl: KritzelToolbarControl | null;
|
|
9
|
+
isUtilityPanelVisible: boolean;
|
|
9
10
|
isControlsReady: EventEmitter<void>;
|
|
10
11
|
firstConfig: ToolConfig | null;
|
|
11
|
-
|
|
12
|
+
isTooltipVisible: boolean;
|
|
12
13
|
isTouchDevice: boolean;
|
|
13
14
|
host: HTMLElement;
|
|
14
15
|
handleActiveToolChange(event: CustomEvent): Promise<void>;
|
|
@@ -7,23 +7,23 @@
|
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
8
|
import { BrushStyleOption } from "./components/shared/kritzel-brush-style/kritzel-brush-style";
|
|
9
9
|
import { ContextMenuItem } from "./interfaces/context-menu-item.interface";
|
|
10
|
+
import { KritzelBaseObject } from "./classes/objects/base-object.class";
|
|
10
11
|
import { KritzelBrushTool } from "./classes/tools/brush-tool.class";
|
|
11
12
|
import { KritzelTextTool } from "./classes/tools/text-tool.class";
|
|
12
13
|
import { KritzelBrushToolConfig, KritzelTextToolConfig, KritzelToolbarControl } from "./interfaces/toolbar-control.interface";
|
|
13
14
|
import { KritzelStore } from "./classes/store.class";
|
|
14
15
|
import { DropdownOption } from "./components/shared/kritzel-dropdown/kritzel-dropdown";
|
|
15
|
-
import { KritzelBaseObject } from "./classes/objects/base-object.class";
|
|
16
16
|
import { KritzelTool } from "./interfaces/tool.interface";
|
|
17
17
|
import { KritzelBaseTool } from "./classes/tools/base-tool.class";
|
|
18
18
|
import { FontOption } from "./components/shared/kritzel-font-family/kritzel-font-family";
|
|
19
19
|
export { BrushStyleOption } from "./components/shared/kritzel-brush-style/kritzel-brush-style";
|
|
20
20
|
export { ContextMenuItem } from "./interfaces/context-menu-item.interface";
|
|
21
|
+
export { KritzelBaseObject } from "./classes/objects/base-object.class";
|
|
21
22
|
export { KritzelBrushTool } from "./classes/tools/brush-tool.class";
|
|
22
23
|
export { KritzelTextTool } from "./classes/tools/text-tool.class";
|
|
23
24
|
export { KritzelBrushToolConfig, KritzelTextToolConfig, KritzelToolbarControl } from "./interfaces/toolbar-control.interface";
|
|
24
25
|
export { KritzelStore } from "./classes/store.class";
|
|
25
26
|
export { DropdownOption } from "./components/shared/kritzel-dropdown/kritzel-dropdown";
|
|
26
|
-
export { KritzelBaseObject } from "./classes/objects/base-object.class";
|
|
27
27
|
export { KritzelTool } from "./interfaces/tool.interface";
|
|
28
28
|
export { KritzelBaseTool } from "./classes/tools/base-tool.class";
|
|
29
29
|
export { FontOption } from "./components/shared/kritzel-font-family/kritzel-font-family";
|
|
@@ -65,6 +65,7 @@ export namespace Components {
|
|
|
65
65
|
}
|
|
66
66
|
interface KritzelContextMenu {
|
|
67
67
|
"items": ContextMenuItem[];
|
|
68
|
+
"objects": KritzelBaseObject[];
|
|
68
69
|
}
|
|
69
70
|
interface KritzelControlBrushConfig {
|
|
70
71
|
/**
|
|
@@ -90,6 +91,10 @@ export namespace Components {
|
|
|
90
91
|
* @default []
|
|
91
92
|
*/
|
|
92
93
|
"controls": KritzelToolbarControl[];
|
|
94
|
+
/**
|
|
95
|
+
* @default true
|
|
96
|
+
*/
|
|
97
|
+
"isUtilityPanelVisible": boolean;
|
|
93
98
|
}
|
|
94
99
|
interface KritzelCursorTrail {
|
|
95
100
|
"store": KritzelStore;
|
|
@@ -108,10 +113,10 @@ export namespace Components {
|
|
|
108
113
|
}
|
|
109
114
|
interface KritzelEditor {
|
|
110
115
|
"addObject": <T extends KritzelBaseObject>(object: T) => Promise<T | null>;
|
|
111
|
-
"centerObjectInViewport": (object: KritzelBaseObject) => Promise<KritzelBaseObject<HTMLElement>>;
|
|
116
|
+
"centerObjectInViewport": (object: KritzelBaseObject) => Promise<KritzelBaseObject<HTMLElement | SVGElement>>;
|
|
112
117
|
"clearSelection": () => Promise<void>;
|
|
113
118
|
/**
|
|
114
|
-
* @default
|
|
119
|
+
* @default [ { name: 'selection', type: 'tool', tool: KritzelSelectionTool, icon: 'cursor', }, { name: 'brush', type: 'tool', tool: KritzelBrushTool, isDefault: true, icon: 'pen', 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', }, ]
|
|
115
120
|
*/
|
|
116
121
|
"controls": KritzelToolbarControl[];
|
|
117
122
|
/**
|
|
@@ -121,10 +126,30 @@ export namespace Components {
|
|
|
121
126
|
"getObjectById": <T extends KritzelBaseObject>(id: string) => Promise<T | null>;
|
|
122
127
|
"getSelectedObjects": () => Promise<KritzelBaseObject[]>;
|
|
123
128
|
/**
|
|
124
|
-
* @default
|
|
129
|
+
* @default [ { label: 'Paste', icon: 'paste', disabled: async () => (await this.engineRef.getCopiedObjects()).length === 0, action: menu => this.engineRef.paste(menu.x, menu.y), }, { label: 'Select All', icon: 'select-all', action: () => this.selectAllObjectsInViewport() }, ]
|
|
125
130
|
*/
|
|
126
|
-
"
|
|
131
|
+
"globalContextMenuItems": ContextMenuItem[];
|
|
132
|
+
/**
|
|
133
|
+
* @default true
|
|
134
|
+
*/
|
|
135
|
+
"isControlsVisible": boolean;
|
|
136
|
+
/**
|
|
137
|
+
* @default true
|
|
138
|
+
*/
|
|
139
|
+
"isUtilityPanelVisible": boolean;
|
|
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() }, ]
|
|
142
|
+
*/
|
|
143
|
+
"objectContextMenuItems": ContextMenuItem[];
|
|
127
144
|
"removeObject": <T extends KritzelBaseObject>(object: T) => Promise<T | null>;
|
|
145
|
+
/**
|
|
146
|
+
* @default ABSOLUTE_SCALE_MAX
|
|
147
|
+
*/
|
|
148
|
+
"scaleMax": number;
|
|
149
|
+
/**
|
|
150
|
+
* @default ABSOLUTE_SCALE_MIN
|
|
151
|
+
*/
|
|
152
|
+
"scaleMin": number;
|
|
128
153
|
"selectAllObjectsInViewport": () => Promise<void>;
|
|
129
154
|
"selectObjects": (objects: KritzelBaseObject[]) => Promise<void>;
|
|
130
155
|
"updateObject": <T extends KritzelBaseObject>(object: T, updatedProperties: Partial<T>) => Promise<T | null>;
|
|
@@ -133,30 +158,33 @@ export namespace Components {
|
|
|
133
158
|
"activeTool": KritzelTool;
|
|
134
159
|
"addObject": <T extends KritzelBaseObject>(object: T) => Promise<T | null>;
|
|
135
160
|
"bringForward": (object?: KritzelBaseObject<any>) => Promise<void>;
|
|
136
|
-
"centerObjectInViewport": (object: KritzelBaseObject) => Promise<KritzelBaseObject<HTMLElement>>;
|
|
161
|
+
"centerObjectInViewport": (object: KritzelBaseObject) => Promise<KritzelBaseObject<HTMLElement | SVGElement>>;
|
|
137
162
|
"changeActiveTool": (tool: KritzelBaseTool) => Promise<void>;
|
|
138
163
|
"clearSelection": () => Promise<void>;
|
|
139
164
|
"copy": () => Promise<void>;
|
|
140
165
|
"delete": () => Promise<void>;
|
|
141
166
|
"disable": () => Promise<void>;
|
|
142
167
|
"enable": () => Promise<void>;
|
|
168
|
+
"getCopiedObjects": () => Promise<KritzelBaseObject[]>;
|
|
143
169
|
"getObjectById": <T extends KritzelBaseObject>(id: string) => Promise<T | null>;
|
|
144
170
|
"getSelectedObjects": () => Promise<KritzelBaseObject<any>[]>;
|
|
145
|
-
/**
|
|
146
|
-
* @default [ { label: 'Paste', icon: 'paste', disabled: () => this.store.state.copiedObjects === null, action: () => { const x = (-this.store.state.translateX + this.store.state.contextMenuX) / this.store.state.scale; const y = (-this.store.state.translateY + this.store.state.contextMenuY) / this.store.state.scale; this.paste(x, y); }, }, { label: 'Select All', icon: 'select-all', action: () => this.selectAllObjectsInViewport() }, ]
|
|
147
|
-
*/
|
|
148
171
|
"globalContextMenuItems": ContextMenuItem[];
|
|
149
172
|
"hideContextMenu": () => Promise<void>;
|
|
150
173
|
"moveToBottom": (object?: KritzelBaseObject<any>) => Promise<void>;
|
|
151
174
|
"moveToTop": (object?: KritzelBaseObject<any>) => Promise<void>;
|
|
152
|
-
/**
|
|
153
|
-
* @default [ { label: 'Copy', icon: 'copy', action: () => this.copy() }, { label: 'Paste', icon: 'paste', disabled: () => this.store.state.copiedObjects === null, action: () => { const x = (-this.store.state.translateX + this.store.state.contextMenuX) / this.store.state.scale; const y = (-this.store.state.translateY + this.store.state.contextMenuY) / this.store.state.scale; this.paste(x, y); }, }, { label: 'Delete', icon: 'delete', action: () => this.delete() }, { label: 'Bring to Front', icon: 'bring-to-front', action: () => this.moveToTop() }, { label: 'Send to Back', icon: 'send-to-back', action: () => this.moveToBottom() }, ]
|
|
154
|
-
*/
|
|
155
175
|
"objectContextMenuItems": ContextMenuItem[];
|
|
156
176
|
"paste": (x: number, y: number) => Promise<void>;
|
|
157
177
|
"redo": () => Promise<void>;
|
|
158
178
|
"registerTool": (toolName: string, toolClass: any, toolConfig?: KritzelTextToolConfig | KritzelBrushToolConfig) => Promise<KritzelBaseTool>;
|
|
159
179
|
"removeObject": <T extends KritzelBaseObject>(object: T) => Promise<T | null>;
|
|
180
|
+
/**
|
|
181
|
+
* @default ABSOLUTE_SCALE_MAX
|
|
182
|
+
*/
|
|
183
|
+
"scaleMax": number;
|
|
184
|
+
/**
|
|
185
|
+
* @default ABSOLUTE_SCALE_MIN
|
|
186
|
+
*/
|
|
187
|
+
"scaleMin": number;
|
|
160
188
|
"selectAllObjectsInViewport": () => Promise<void>;
|
|
161
189
|
"selectObjects": (objects: KritzelBaseObject[]) => Promise<void>;
|
|
162
190
|
"sendBackward": (object?: KritzelBaseObject<any>) => Promise<void>;
|
|
@@ -603,6 +631,7 @@ declare namespace LocalJSX {
|
|
|
603
631
|
}
|
|
604
632
|
interface KritzelContextMenu {
|
|
605
633
|
"items"?: ContextMenuItem[];
|
|
634
|
+
"objects"?: KritzelBaseObject[];
|
|
606
635
|
"onActionSelected"?: (event: KritzelContextMenuCustomEvent<ContextMenuItem>) => void;
|
|
607
636
|
}
|
|
608
637
|
interface KritzelControlBrushConfig {
|
|
@@ -630,6 +659,10 @@ declare namespace LocalJSX {
|
|
|
630
659
|
* @default []
|
|
631
660
|
*/
|
|
632
661
|
"controls"?: KritzelToolbarControl[];
|
|
662
|
+
/**
|
|
663
|
+
* @default true
|
|
664
|
+
*/
|
|
665
|
+
"isUtilityPanelVisible"?: boolean;
|
|
633
666
|
"onIsControlsReady"?: (event: KritzelControlsCustomEvent<void>) => void;
|
|
634
667
|
}
|
|
635
668
|
interface KritzelCursorTrail {
|
|
@@ -650,7 +683,7 @@ declare namespace LocalJSX {
|
|
|
650
683
|
}
|
|
651
684
|
interface KritzelEditor {
|
|
652
685
|
/**
|
|
653
|
-
* @default
|
|
686
|
+
* @default [ { name: 'selection', type: 'tool', tool: KritzelSelectionTool, icon: 'cursor', }, { name: 'brush', type: 'tool', tool: KritzelBrushTool, isDefault: true, icon: 'pen', 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', }, ]
|
|
654
687
|
*/
|
|
655
688
|
"controls"?: KritzelToolbarControl[];
|
|
656
689
|
/**
|
|
@@ -658,23 +691,45 @@ declare namespace LocalJSX {
|
|
|
658
691
|
*/
|
|
659
692
|
"customSvgIcons"?: Record<string, string>;
|
|
660
693
|
/**
|
|
661
|
-
* @default
|
|
694
|
+
* @default [ { label: 'Paste', icon: 'paste', disabled: async () => (await this.engineRef.getCopiedObjects()).length === 0, action: menu => this.engineRef.paste(menu.x, menu.y), }, { label: 'Select All', icon: 'select-all', action: () => this.selectAllObjectsInViewport() }, ]
|
|
662
695
|
*/
|
|
663
|
-
"
|
|
696
|
+
"globalContextMenuItems"?: ContextMenuItem[];
|
|
697
|
+
/**
|
|
698
|
+
* @default true
|
|
699
|
+
*/
|
|
700
|
+
"isControlsVisible"?: boolean;
|
|
701
|
+
/**
|
|
702
|
+
* @default true
|
|
703
|
+
*/
|
|
704
|
+
"isUtilityPanelVisible"?: boolean;
|
|
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() }, ]
|
|
707
|
+
*/
|
|
708
|
+
"objectContextMenuItems"?: ContextMenuItem[];
|
|
664
709
|
"onIsReady"?: (event: KritzelEditorCustomEvent<HTMLElement>) => void;
|
|
665
|
-
}
|
|
666
|
-
interface KritzelEngine {
|
|
667
|
-
"activeTool"?: KritzelTool;
|
|
668
710
|
/**
|
|
669
|
-
* @default
|
|
711
|
+
* @default ABSOLUTE_SCALE_MAX
|
|
670
712
|
*/
|
|
671
|
-
"
|
|
713
|
+
"scaleMax"?: number;
|
|
672
714
|
/**
|
|
673
|
-
* @default
|
|
715
|
+
* @default ABSOLUTE_SCALE_MIN
|
|
674
716
|
*/
|
|
717
|
+
"scaleMin"?: number;
|
|
718
|
+
}
|
|
719
|
+
interface KritzelEngine {
|
|
720
|
+
"activeTool"?: KritzelTool;
|
|
721
|
+
"globalContextMenuItems"?: ContextMenuItem[];
|
|
675
722
|
"objectContextMenuItems"?: ContextMenuItem[];
|
|
676
723
|
"onActiveToolChange"?: (event: KritzelEngineCustomEvent<KritzelBaseTool>) => void;
|
|
677
724
|
"onIsEngineReady"?: (event: KritzelEngineCustomEvent<void>) => void;
|
|
725
|
+
/**
|
|
726
|
+
* @default ABSOLUTE_SCALE_MAX
|
|
727
|
+
*/
|
|
728
|
+
"scaleMax"?: number;
|
|
729
|
+
/**
|
|
730
|
+
* @default ABSOLUTE_SCALE_MIN
|
|
731
|
+
*/
|
|
732
|
+
"scaleMin"?: number;
|
|
678
733
|
}
|
|
679
734
|
interface KritzelFont {
|
|
680
735
|
/**
|
package/dist/types/index.d.ts
CHANGED
|
@@ -11,3 +11,11 @@ export type * from './components';
|
|
|
11
11
|
export * from './classes/objects/text.class';
|
|
12
12
|
export * from './classes/objects/path.class';
|
|
13
13
|
export * from './classes/objects/image.class';
|
|
14
|
+
export * from './classes/tools/brush-tool.class';
|
|
15
|
+
export * from './classes/tools/eraser-tool.class';
|
|
16
|
+
export * from './classes/tools/image-tool.class';
|
|
17
|
+
export * from './classes/tools/text-tool.class';
|
|
18
|
+
export * from './classes/tools/selection-tool.class';
|
|
19
|
+
export * from './interfaces/toolbar-control.interface';
|
|
20
|
+
export * from './configs/default-brush-tool.config';
|
|
21
|
+
export * from './configs/default-text-tool.config';
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import { KritzelBaseObject } from "../classes/objects/base-object.class";
|
|
1
2
|
export interface ContextMenuItem {
|
|
2
3
|
label: string;
|
|
3
|
-
action: (
|
|
4
|
+
action: (menu: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
}, objects: KritzelBaseObject[]) => void;
|
|
4
8
|
icon?: string;
|
|
5
|
-
|
|
9
|
+
visible?: boolean | ((menu: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
}, objects: KritzelBaseObject[]) => boolean | Promise<boolean>);
|
|
13
|
+
disabled?: boolean | ((menu: {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
}, objects: KritzelBaseObject[]) => boolean | Promise<boolean>);
|
|
6
17
|
}
|
|
@@ -49,7 +49,11 @@ export interface KritzelEngineState {
|
|
|
49
49
|
startX: number;
|
|
50
50
|
startY: number;
|
|
51
51
|
translateX: number;
|
|
52
|
+
translateXMax: number;
|
|
53
|
+
translateXMin: number;
|
|
52
54
|
translateY: number;
|
|
55
|
+
translateYMax: number;
|
|
56
|
+
translateYMin: number;
|
|
53
57
|
viewportWidth: number;
|
|
54
58
|
viewportHeight: number;
|
|
55
59
|
historyBufferSize: number;
|
|
@@ -20,6 +20,7 @@ export interface KritzelObject<T = Element> {
|
|
|
20
20
|
markedForRemoval: boolean;
|
|
21
21
|
isMounted: boolean;
|
|
22
22
|
zIndex: number;
|
|
23
|
+
isEditable: boolean;
|
|
23
24
|
_elementRef: T;
|
|
24
25
|
set elementRef(element: T);
|
|
25
26
|
get elementRef(): T;
|
|
@@ -39,4 +40,5 @@ export interface KritzelObject<T = Element> {
|
|
|
39
40
|
copy(): KritzelBaseObject<Element>;
|
|
40
41
|
onSelectedClick(): void;
|
|
41
42
|
isClass<T extends KritzelBaseObject>(this: T, type: string): this is T;
|
|
43
|
+
edit(): void;
|
|
42
44
|
}
|