kritzel-stencil 0.0.119 → 0.0.120
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 +362 -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 +158 -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-DuWb7MaD.js → p-eS30Bqrc.js} +136 -125
- package/dist/components/p-eS30Bqrc.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/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 +332 -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-0ae72b0d.entry.js +2 -0
- package/dist/stencil/p-0ae72b0d.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kritzel-editor.js","sourceRoot":"","sources":["../../../../src/components/core/kritzel-editor/kritzel-editor.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Listen, Prop, Element, h, Method, Event, State, EventEmitter, Watch } from '@stencil/core';\r\nimport { KritzelIconRegistry } from '../../../classes/registries/icon-registry.class';\r\nimport { KritzelToolbarControl } from '../../../interfaces/toolbar-control.interface';\r\nimport { DEFAULT_KRITZEL_CONTROLS } from '../../../configs/default-toolbar-controls';\r\nimport { KritzelBaseObject } from '../../../classes/objects/base-object.class';\r\n@Component({\r\n tag: 'kritzel-editor',\r\n styleUrl: 'kritzel-editor.css',\r\n shadow: false,\r\n})\r\nexport class KritzelEditor {\r\n @Prop()\r\n controls: KritzelToolbarControl[] = DEFAULT_KRITZEL_CONTROLS;\r\n\r\n @Prop()\r\n customSvgIcons: Record<string, string> = {};\r\n\r\n @Prop()\r\n hideControls: boolean = false;\r\n\r\n @Event()\r\n isReady: EventEmitter<HTMLElement>;\r\n\r\n @Element()\r\n host!: HTMLElement;\r\n\r\n @State()\r\n isEngineReady: boolean = false;\r\n\r\n @State()\r\n isControlsReady: boolean = false;\r\n\r\n @Watch('isEngineReady')\r\n onIsEngineReady(newValue: boolean) {\r\n if (newValue && this.isControlsReady) {\r\n this.checkIsReady();\r\n }\r\n }\r\n\r\n @Watch('isControlsReady')\r\n onIsControlsReady(newValue: boolean) {\r\n if (newValue && this.isEngineReady) {\r\n this.checkIsReady();\r\n }\r\n }\r\n\r\n @Method()\r\n async getObjectById<T extends KritzelBaseObject>(id: string): Promise<T | null> {\r\n return this.engineRef.getObjectById(id);\r\n }\r\n\r\n @Method()\r\n async addObject<T extends KritzelBaseObject>(object: T): Promise<T | null> {\r\n return this.engineRef.addObject(object);\r\n }\r\n\r\n @Method()\r\n async updateObject<T extends KritzelBaseObject>(object: T, updatedProperties: Partial<T>): Promise<T | null> {\r\n return this.engineRef.updateObject(object, updatedProperties);\r\n }\r\n\r\n @Method()\r\n async removeObject<T extends KritzelBaseObject>(object: T): Promise<T | null> {\r\n return this.engineRef.removeObject(object);\r\n }\r\n\r\n @Method()\r\n async getSelectedObjects(): Promise<KritzelBaseObject[]> {\r\n return this.engineRef.getSelectedObjects();\r\n }\r\n\r\n @Method()\r\n async selectObjects(objects: KritzelBaseObject[]) {\r\n return this.engineRef.selectObjects(objects);\r\n }\r\n\r\n @Method()\r\n async selectAllObjectsInViewport() {\r\n return this.engineRef.selectAllObjectsInViewport();\r\n }\r\n\r\n @Method()\r\n async clearSelection() {\r\n this.engineRef.clearSelection();\r\n }\r\n\r\n @Method()\r\n async centerObjectInViewport(object: KritzelBaseObject) {\r\n return this.engineRef.centerObjectInViewport(object);\r\n }\r\n\r\n @Listen('dblclick', { passive: false })\r\n handleTouchStart(event: TouchEvent) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.controlsRef?.closeTooltip();\r\n }\r\n }\r\n\r\n engineRef!: HTMLKritzelEngineElement;\r\n\r\n controlsRef!: HTMLKritzelControlsElement;\r\n\r\n componentDidLoad() {\r\n this.registerCustomSvgIcons();\r\n }\r\n\r\n async checkIsReady() {\r\n await customElements.whenDefined('kritzel-editor');\r\n await customElements.whenDefined('kritzel-controls');\r\n await customElements.whenDefined('kritzel-engine');\r\n\r\n if (!this.isEngineReady || !this.isControlsReady) {\r\n return;\r\n }\r\n\r\n this.isReady.emit(this.host);\r\n }\r\n\r\n private registerCustomSvgIcons() {\r\n for (const [name, svg] of Object.entries(this.customSvgIcons)) {\r\n KritzelIconRegistry.register(name, svg);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <kritzel-engine ref={el => (this.engineRef = el)} onIsEngineReady={() => (this.isEngineReady = true)}></kritzel-engine>\r\n <kritzel-controls\r\n ref={el => (this.controlsRef = el)}\r\n controls={this.controls}\r\n style={this.hideControls ? { display: 'none' } : { display: 'flex' }}\r\n onIsControlsReady={() => (this.isControlsReady = true)}\r\n ></kritzel-controls>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"kritzel-editor.js","sourceRoot":"","sources":["../../../../src/components/core/kritzel-editor/kritzel-editor.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Listen, Prop, Element, h, Method, Event, State, EventEmitter, Watch } from '@stencil/core';\r\nimport { KritzelIconRegistry } from '../../../classes/registries/icon-registry.class';\r\nimport { KritzelToolbarControl } from '../../../interfaces/toolbar-control.interface';\r\nimport { KritzelBaseObject } from '../../../classes/objects/base-object.class';\r\nimport { KritzelSelectionTool } from '../../../classes/tools/selection-tool.class';\r\nimport { KritzelEraserTool } from '../../../classes/tools/eraser-tool.class';\r\nimport { KritzelImageTool } from '../../../classes/tools/image-tool.class';\r\nimport { KritzelBrushTool } from '../../../classes/tools/brush-tool.class';\r\nimport { KritzelTextTool } from '../../../classes/tools/text-tool.class';\r\nimport { ContextMenuItem } from '../../../interfaces/context-menu-item.interface';\r\nimport { DEFAULT_BRUSH_CONFIG } from '../../../configs/default-brush-tool.config';\r\nimport { DEFAULT_TEXT_CONFIG } from '../../../configs/default-text-tool.config';\r\nimport { ABSOLUTE_SCALE_MAX, ABSOLUTE_SCALE_MIN } from '../../../constants/engine.constants';\r\n\r\n@Component({\r\n tag: 'kritzel-editor',\r\n styleUrl: 'kritzel-editor.css',\r\n shadow: false,\r\n})\r\nexport class KritzelEditor {\r\n @Prop()\r\n scaleMax: number = ABSOLUTE_SCALE_MAX;\r\n\r\n @Prop()\r\n scaleMin: number = ABSOLUTE_SCALE_MIN;\r\n\r\n @Prop()\r\n controls: KritzelToolbarControl[] = [\r\n {\r\n name: 'selection',\r\n type: 'tool',\r\n tool: KritzelSelectionTool,\r\n icon: 'cursor',\r\n },\r\n {\r\n name: 'brush',\r\n type: 'tool',\r\n tool: KritzelBrushTool,\r\n isDefault: true,\r\n icon: 'pen',\r\n config: DEFAULT_BRUSH_CONFIG,\r\n },\r\n {\r\n name: 'eraser',\r\n type: 'tool',\r\n tool: KritzelEraserTool,\r\n icon: 'eraser',\r\n },\r\n {\r\n name: 'text',\r\n type: 'tool',\r\n tool: KritzelTextTool,\r\n icon: 'type',\r\n config: DEFAULT_TEXT_CONFIG,\r\n },\r\n {\r\n name: 'image',\r\n type: 'tool',\r\n tool: KritzelImageTool,\r\n icon: 'image',\r\n },\r\n {\r\n name: 'divider',\r\n type: 'divider',\r\n },\r\n {\r\n name: 'config',\r\n type: 'config',\r\n },\r\n ];\r\n\r\n @Prop()\r\n globalContextMenuItems: ContextMenuItem[] = [\r\n {\r\n label: 'Paste',\r\n icon: 'paste',\r\n disabled: async () => (await this.engineRef.getCopiedObjects()).length === 0,\r\n action: menu => this.engineRef.paste(menu.x, menu.y),\r\n },\r\n { label: 'Select All', icon: 'select-all', action: () => this.selectAllObjectsInViewport() },\r\n ];\r\n\r\n @Prop()\r\n objectContextMenuItems: ContextMenuItem[] = [\r\n {\r\n label: 'Edit',\r\n icon: 'pen',\r\n visible: (_, objects) => objects.length === 1 && objects[0].isEditable,\r\n action: (_, objects) => {\r\n if (objects.length === 1) {\r\n const object = objects[0];\r\n if (object.isEditable) {\r\n object.edit();\r\n }\r\n }\r\n }\r\n },\r\n { label: 'Copy', icon: 'copy', action: () => this.engineRef.copy() },\r\n {\r\n label: 'Paste',\r\n icon: 'paste',\r\n disabled: async () => (await this.engineRef.getCopiedObjects()).length === 0,\r\n action: menu => this.engineRef.paste(menu.x, menu.y),\r\n },\r\n { label: 'Delete', icon: 'delete', action: () => this.engineRef.delete() },\r\n { label: 'Bring to Front', icon: 'bring-to-front', action: () => this.engineRef.moveToTop() },\r\n { label: 'Send to Back', icon: 'send-to-back', action: () => this.engineRef.moveToBottom() },\r\n ];\r\n\r\n @Prop()\r\n customSvgIcons: Record<string, string> = {};\r\n\r\n @Prop()\r\n isControlsVisible: boolean = true;\r\n\r\n @Prop()\r\n isUtilityPanelVisible: boolean = true;\r\n\r\n @Event()\r\n isReady: EventEmitter<HTMLElement>;\r\n\r\n @Element()\r\n host!: HTMLElement;\r\n\r\n @State()\r\n isEngineReady: boolean = false;\r\n\r\n @State()\r\n isControlsReady: boolean = false;\r\n\r\n @Watch('isEngineReady')\r\n onIsEngineReady(newValue: boolean) {\r\n if (newValue && this.isControlsReady) {\r\n this.checkIsReady();\r\n }\r\n }\r\n\r\n @Watch('isControlsReady')\r\n onIsControlsReady(newValue: boolean) {\r\n if (newValue && this.isEngineReady) {\r\n this.checkIsReady();\r\n }\r\n }\r\n\r\n @Method()\r\n async getObjectById<T extends KritzelBaseObject>(id: string): Promise<T | null> {\r\n return this.engineRef.getObjectById(id);\r\n }\r\n\r\n @Method()\r\n async addObject<T extends KritzelBaseObject>(object: T): Promise<T | null> {\r\n return this.engineRef.addObject(object);\r\n }\r\n\r\n @Method()\r\n async updateObject<T extends KritzelBaseObject>(object: T, updatedProperties: Partial<T>): Promise<T | null> {\r\n return this.engineRef.updateObject(object, updatedProperties);\r\n }\r\n\r\n @Method()\r\n async removeObject<T extends KritzelBaseObject>(object: T): Promise<T | null> {\r\n return this.engineRef.removeObject(object);\r\n }\r\n\r\n @Method()\r\n async getSelectedObjects(): Promise<KritzelBaseObject[]> {\r\n return this.engineRef.getSelectedObjects();\r\n }\r\n\r\n @Method()\r\n async selectObjects(objects: KritzelBaseObject[]) {\r\n return this.engineRef.selectObjects(objects);\r\n }\r\n\r\n @Method()\r\n async selectAllObjectsInViewport() {\r\n return this.engineRef.selectAllObjectsInViewport();\r\n }\r\n\r\n @Method()\r\n async clearSelection() {\r\n this.engineRef.clearSelection();\r\n }\r\n\r\n @Method()\r\n async centerObjectInViewport(object: KritzelBaseObject) {\r\n return this.engineRef.centerObjectInViewport(object);\r\n }\r\n\r\n @Listen('dblclick', { passive: false })\r\n handleTouchStart(event: MouseEvent) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.controlsRef?.closeTooltip();\r\n }\r\n }\r\n\r\n engineRef!: HTMLKritzelEngineElement;\r\n\r\n controlsRef!: HTMLKritzelControlsElement;\r\n\r\n componentDidLoad() {\r\n this.registerCustomSvgIcons();\r\n }\r\n\r\n async checkIsReady() {\r\n await customElements.whenDefined('kritzel-editor');\r\n await customElements.whenDefined('kritzel-controls');\r\n await customElements.whenDefined('kritzel-engine');\r\n\r\n if (!this.isEngineReady || !this.isControlsReady) {\r\n return;\r\n }\r\n\r\n this.isReady.emit(this.host);\r\n }\r\n\r\n private registerCustomSvgIcons() {\r\n for (const [name, svg] of Object.entries(this.customSvgIcons)) {\r\n KritzelIconRegistry.register(name, svg);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <kritzel-engine\r\n ref={el => (this.engineRef = el)}\r\n onIsEngineReady={() => (this.isEngineReady = true)}\r\n scaleMax={this.scaleMax}\r\n scaleMin={this.scaleMin}\r\n globalContextMenuItems={this.globalContextMenuItems}\r\n objectContextMenuItems={this.objectContextMenuItems}\r\n ></kritzel-engine>\r\n\r\n <kritzel-controls\r\n ref={el => (this.controlsRef = el)}\r\n controls={this.controls}\r\n isUtilityPanelVisible={this.isUtilityPanelVisible}\r\n style={this.isControlsVisible ? { display: 'flex' } : { display: 'none' }}\r\n onIsControlsReady={() => (this.isControlsReady = true)}\r\n ></kritzel-controls>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -13,7 +13,28 @@ import { RemoveObjectCommand } from "../../../classes/commands/remove-object.com
|
|
|
13
13
|
import { KritzelToolRegistry } from "../../../classes/registries/tool.registry";
|
|
14
14
|
import { KritzelEventHelper } from "../../../helpers/event.helper";
|
|
15
15
|
import { KritzelClassHelper } from "../../../helpers/class.helper";
|
|
16
|
+
import { ABSOLUTE_SCALE_MAX, ABSOLUTE_SCALE_MIN } from "../../../constants/engine.constants";
|
|
16
17
|
export class KritzelEngine {
|
|
18
|
+
validateScaleMax(newValue) {
|
|
19
|
+
if (newValue > ABSOLUTE_SCALE_MAX) {
|
|
20
|
+
console.warn(`scaleMax cannot be greater than ${ABSOLUTE_SCALE_MAX}.`);
|
|
21
|
+
this.scaleMax = ABSOLUTE_SCALE_MAX;
|
|
22
|
+
this.store.state.scaleMax = this.scaleMax;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.store.state.scaleMax = newValue;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
validateScaleMin(newValue) {
|
|
29
|
+
if (newValue < ABSOLUTE_SCALE_MIN) {
|
|
30
|
+
console.warn(`scaleMin cannot be less than ${ABSOLUTE_SCALE_MIN}.`);
|
|
31
|
+
this.scaleMin = ABSOLUTE_SCALE_MIN;
|
|
32
|
+
this.store.state.scaleMin = this.scaleMin;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.store.state.scaleMin = newValue;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
17
38
|
get isSelecting() {
|
|
18
39
|
return this.store.state.activeTool instanceof KritzelSelectionTool && this.store.state.isSelecting;
|
|
19
40
|
}
|
|
@@ -21,56 +42,21 @@ export class KritzelEngine {
|
|
|
21
42
|
return this.store.state.activeTool instanceof KritzelSelectionTool && this.store.state.selectionGroup !== null;
|
|
22
43
|
}
|
|
23
44
|
constructor() {
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
label: 'Paste',
|
|
27
|
-
icon: 'paste',
|
|
28
|
-
disabled: () => this.store.state.copiedObjects === null,
|
|
29
|
-
action: () => {
|
|
30
|
-
const x = (-this.store.state.translateX + this.store.state.contextMenuX) / this.store.state.scale;
|
|
31
|
-
const y = (-this.store.state.translateY + this.store.state.contextMenuY) / this.store.state.scale;
|
|
32
|
-
this.paste(x, y);
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
{ label: 'Select All', icon: 'select-all', action: () => this.selectAllObjectsInViewport() },
|
|
36
|
-
];
|
|
37
|
-
this.objectContextMenuItems = [
|
|
38
|
-
{ label: 'Copy', icon: 'copy', action: () => this.copy() },
|
|
39
|
-
{
|
|
40
|
-
label: 'Paste',
|
|
41
|
-
icon: 'paste',
|
|
42
|
-
disabled: () => this.store.state.copiedObjects === null,
|
|
43
|
-
action: () => {
|
|
44
|
-
const x = (-this.store.state.translateX + this.store.state.contextMenuX) / this.store.state.scale;
|
|
45
|
-
const y = (-this.store.state.translateY + this.store.state.contextMenuY) / this.store.state.scale;
|
|
46
|
-
this.paste(x, y);
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
{ label: 'Delete', icon: 'delete', action: () => this.delete() },
|
|
50
|
-
{ label: 'Bring to Front', icon: 'bring-to-front', action: () => this.moveToTop() },
|
|
51
|
-
{ label: 'Send to Back', icon: 'send-to-back', action: () => this.moveToBottom() },
|
|
52
|
-
];
|
|
45
|
+
this.scaleMax = ABSOLUTE_SCALE_MAX;
|
|
46
|
+
this.scaleMin = ABSOLUTE_SCALE_MIN;
|
|
53
47
|
this.forceUpdate = 0;
|
|
54
48
|
this.contextMenuElement = null;
|
|
55
49
|
this.store = new KritzelStore(this);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
this.
|
|
59
|
-
|
|
60
|
-
this.store.clearSelection();
|
|
61
|
-
}
|
|
62
|
-
this.store.state.skipContextMenu = false;
|
|
63
|
-
this.activeToolChange.emit(activeTool);
|
|
64
|
-
KritzelKeyboardHelper.forceHideKeyboard();
|
|
65
|
-
});
|
|
66
|
-
this.store.onStateChange('isFocused', (isFocused) => {
|
|
67
|
-
if (!isFocused) {
|
|
68
|
-
this.store.resetActiveText();
|
|
69
|
-
}
|
|
70
|
-
});
|
|
50
|
+
}
|
|
51
|
+
componentWillLoad() {
|
|
52
|
+
this.validateScaleMax(this.scaleMax);
|
|
53
|
+
this.validateScaleMin(this.scaleMin);
|
|
71
54
|
}
|
|
72
55
|
componentDidLoad() {
|
|
56
|
+
this.contextMenuHandler = new KritzelContextMenuHandler(this.store, this.globalContextMenuItems, this.objectContextMenuItems);
|
|
57
|
+
this.keyHandler = new KritzelKeyHandler(this.store);
|
|
73
58
|
this.viewport = new KritzelViewport(this.store, this.host);
|
|
59
|
+
this._registerStateChangeListeners();
|
|
74
60
|
if (this.store.state.isReady === false) {
|
|
75
61
|
this.store.state.isReady = true;
|
|
76
62
|
this.isEngineReady.emit();
|
|
@@ -160,10 +146,6 @@ export class KritzelEngine {
|
|
|
160
146
|
const isInKritzelEngine = path.includes(kritzelEngineElement || this.host);
|
|
161
147
|
this.store.setState('isFocused', isInside && isInKritzelEngine);
|
|
162
148
|
}
|
|
163
|
-
handleContextMenuAction(event) {
|
|
164
|
-
event.detail.action();
|
|
165
|
-
this.hideContextMenu();
|
|
166
|
-
}
|
|
167
149
|
async registerTool(toolName, toolClass, toolConfig) {
|
|
168
150
|
if (typeof toolClass !== 'function' || !(toolClass.prototype instanceof KritzelBaseTool)) {
|
|
169
151
|
console.error(`Failed to register tool "${toolName}": Tool class must be a constructor function`);
|
|
@@ -282,21 +264,42 @@ export class KritzelEngine {
|
|
|
282
264
|
this.store.history.executeCommand(command);
|
|
283
265
|
return object;
|
|
284
266
|
}
|
|
267
|
+
async getCopiedObjects() {
|
|
268
|
+
var _a;
|
|
269
|
+
return ((_a = this.store.state.copiedObjects) === null || _a === void 0 ? void 0 : _a.objects) || [];
|
|
270
|
+
}
|
|
271
|
+
_registerStateChangeListeners() {
|
|
272
|
+
this.store.onStateChange('activeTool', this._handleActiveToolChange.bind(this));
|
|
273
|
+
this.store.onStateChange('isFocused', this._handleIsFocusedChange.bind(this));
|
|
274
|
+
}
|
|
275
|
+
_handleActiveToolChange(activeTool) {
|
|
276
|
+
if (!(activeTool instanceof KritzelSelectionTool)) {
|
|
277
|
+
this.store.clearSelection();
|
|
278
|
+
}
|
|
279
|
+
this.store.state.skipContextMenu = false;
|
|
280
|
+
this.activeToolChange.emit(activeTool);
|
|
281
|
+
KritzelKeyboardHelper.forceHideKeyboard();
|
|
282
|
+
}
|
|
283
|
+
_handleIsFocusedChange(isFocused) {
|
|
284
|
+
if (!isFocused) {
|
|
285
|
+
this.store.resetActiveText();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
285
288
|
render() {
|
|
286
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
|
|
289
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
|
|
287
290
|
const computedStyle = window.getComputedStyle(this.host);
|
|
288
291
|
const baseHandleSizePx = computedStyle.getPropertyValue('--kritzel-selection-handle-size').trim() || '6px';
|
|
289
292
|
const baseHandleSize = parseFloat(baseHandleSizePx);
|
|
290
293
|
const baseHandleTouchSize = baseHandleSize * 2 < 14 ? 14 : baseHandleSize;
|
|
291
|
-
return (h(Host, { key: '
|
|
292
|
-
_a.translateX), h("div", { key: '
|
|
293
|
-
_b.translateY), h("div", { key: '
|
|
294
|
-
_c.viewportWidth), h("div", { key: '
|
|
295
|
-
_d.viewportHeight), h("div", { key: '
|
|
296
|
-
_e.scale), h("div", { key: '
|
|
297
|
-
_g.name), h("div", { key: '
|
|
298
|
-
_m.cursorX), h("div", { key: '
|
|
299
|
-
_o.cursorY)), h("div", { key: '
|
|
294
|
+
return (h(Host, { key: 'd484b59ebdea9e7b9e8e086c39e7b3a339fb034d' }, h("div", { key: 'ea68c0a3c0020110b5aca6f3a7bdfab223b64744', class: "debug-panel", style: { display: this.store.state.debugInfo.showViewportInfo ? 'block' : 'none' } }, h("div", { key: '4a7c60073190f2123dbb6bda4e206a1b488db7ac' }, "TranslateX: ", (_a = this.store.state) === null || _a === void 0 ? void 0 :
|
|
295
|
+
_a.translateX), h("div", { key: 'c4fe558accb441fb06ff048f41b07b520ffde505' }, "TranslateY: ", (_b = this.store.state) === null || _b === void 0 ? void 0 :
|
|
296
|
+
_b.translateY), h("div", { key: '00d5fd0b0ec3c79f9ab1dc9a1032fa2f70c7c246' }, "ViewportWidth: ", (_c = this.store.state) === null || _c === void 0 ? void 0 :
|
|
297
|
+
_c.viewportWidth), h("div", { key: '87c8f03bfcc6de031e3d9d74576a6028bfc155bc' }, "ViewportHeight: ", (_d = this.store.state) === null || _d === void 0 ? void 0 :
|
|
298
|
+
_d.viewportHeight), h("div", { key: 'f4e82ddee133818b6ad60b5b6c5e9e721fce4968' }, "ObjectsInViewport. ", this.store.objects.length), h("div", { key: '4f9018ce1184b676248614d4edfdeffd49ac7ce2' }, "Scale: ", (_e = this.store.state) === null || _e === void 0 ? void 0 :
|
|
299
|
+
_e.scale), h("div", { key: 'cc5d72952bc4b80a42d26ca1b1e56bcab96ab76c' }, "ActiveTool: ", (_g = (_f = this.store.state) === null || _f === void 0 ? void 0 : _f.activeTool) === null || _g === void 0 ? void 0 :
|
|
300
|
+
_g.name), h("div", { key: '387071b0ea3f2064d1ea0e0495aa92de8072a900' }, "HasViewportChanged: ", ((_h = this.store.state) === null || _h === void 0 ? void 0 : _h.hasViewportChanged) ? 'true' : 'false'), h("div", { key: 'a386b4fb631860b94f710cb601b1809283ab9664' }, "IsEnabled: ", ((_j = this.store.state) === null || _j === void 0 ? void 0 : _j.isEnabled) ? 'true' : 'false'), h("div", { key: 'a67ad19caa6a6cafa8b19dace26c25d60347090a' }, "IsScaling: ", ((_k = this.store.state) === null || _k === void 0 ? void 0 : _k.isScaling) ? 'true' : 'false'), h("div", { key: '9fe3152ba0a3e936b6c6551673de3a67bd5de0d1' }, "IsPanning: ", ((_l = this.store.state) === null || _l === void 0 ? void 0 : _l.isPanning) ? 'true' : 'false'), h("div", { key: '8103da258c7bdede340c6c64188a2f9657af16c3' }, "IsFocused: ", this.store.state.isFocused ? 'true' : 'false'), h("div", { key: '10b315366f6cf8eb2f27a20083094c9e483c2fe3' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", { key: 'b65926aca01fe6b41f70e8d7484674f568e9945a' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", { key: '5e95a4268ab30bf06918e83aa5f7e96b5ee1dbe2' }, "IsResizeHandleSelected: ", this.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", { key: '3922b7fcb2b74ec28f515db8254f05b454ef6b12' }, "IsRotationHandleSelected: ", this.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", { key: '13c162ec56f0990948bac4569c28a6076582c7ea' }, "IsDrawing: ", this.store.state.isDrawing ? 'true' : 'false'), h("div", { key: 'f909cbc959961e47dbff28e5c620175dc04f6873' }, "IsWriting: ", this.store.state.isWriting ? 'true' : 'false'), h("div", { key: '505122e286976b8fa9e9fac5b131bcecb359eaae' }, "CursorX: ", (_m = this.store.state) === null || _m === void 0 ? void 0 :
|
|
301
|
+
_m.cursorX), h("div", { key: '116217379cf67a0a268e97912ec44d52a98c434b' }, "CursorY: ", (_o = this.store.state) === null || _o === void 0 ? void 0 :
|
|
302
|
+
_o.cursorY)), h("div", { key: 'b0bcbb90404d0cbc1281b932bd13e67df612d58d', class: "origin", style: {
|
|
300
303
|
transform: `matrix(${(_p = this.store.state) === null || _p === void 0 ? void 0 : _p.scale}, 0, 0, ${(_q = this.store.state) === null || _q === void 0 ? void 0 : _q.scale}, ${(_r = this.store.state) === null || _r === void 0 ? void 0 : _r.translateX}, ${(_s = this.store.state) === null || _s === void 0 ? void 0 : _s.translateY})`,
|
|
301
304
|
} }, (_t = this.store.objects) === null || _t === void 0 ? void 0 :
|
|
302
305
|
_t.map(object => {
|
|
@@ -393,7 +396,7 @@ export class KritzelEngine {
|
|
|
393
396
|
fill: 'transparent',
|
|
394
397
|
cursor: 'grab',
|
|
395
398
|
}, visibility: object.selected && !this.isSelecting ? 'visible' : 'hidden' }), h("g", { style: { display: this.store.state.debugInfo.showObjectInfo ? 'block' : 'none', pointerEvents: 'none' } }, h("foreignObject", { x: object.totalWidth.toString(), y: "0", width: "400px", height: "160px", style: { minHeight: '0', minWidth: '0', display: object.debugInfoVisible ? 'block' : 'none' } }, h("div", { style: { width: '100%', height: '100%' } }, h("div", { style: { whiteSpace: 'nowrap' } }, "zIndex: ", object.zIndex), h("div", { style: { whiteSpace: 'nowrap' } }, "translateX: ", object.translateX), h("div", { style: { whiteSpace: 'nowrap' } }, "translateY: ", object.translateY), h("div", { style: { whiteSpace: 'nowrap' } }, "width: ", object.width), h("div", { style: { whiteSpace: 'nowrap' } }, "height: ", object.height), h("div", { style: { whiteSpace: 'nowrap' } }, "scale: ", object.scale), h("div", { style: { whiteSpace: 'nowrap' } }, "rotation: ", object.rotation)))))));
|
|
396
|
-
}), h("svg", { key: '
|
|
399
|
+
}), h("svg", { key: '4fd9e58c617eaf428edbdc3491d3f4fabe3ce564', class: "object", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
397
400
|
height: (_u = this.store.state.currentPath) === null || _u === void 0 ? void 0 : _u.height.toString(),
|
|
398
401
|
width: (_v = this.store.state.currentPath) === null || _v === void 0 ? void 0 : _v.width.toString(),
|
|
399
402
|
left: '0',
|
|
@@ -403,12 +406,18 @@ export class KritzelEngine {
|
|
|
403
406
|
transform: (_x = this.store.state.currentPath) === null || _x === void 0 ? void 0 : _x.transformationMatrix,
|
|
404
407
|
transformOrigin: 'top left',
|
|
405
408
|
overflow: 'visible',
|
|
406
|
-
}, viewBox: (_y = this.store.state.currentPath) === null || _y === void 0 ? void 0 : _y.viewBox }, h("path", { key: '
|
|
409
|
+
}, viewBox: (_y = this.store.state.currentPath) === null || _y === void 0 ? void 0 : _y.viewBox }, h("path", { key: 'ac88c3b66d642bbe42a0ac5345b4f4d6cddef5a3', d: (_z = this.store.state.currentPath) === null || _z === void 0 ? void 0 : _z.d, fill: (_0 = this.store.state.currentPath) === null || _0 === void 0 ? void 0 : _0.fill, stroke: (_1 = this.store.state.currentPath) === null || _1 === void 0 ? void 0 : _1.stroke }))), this.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: '75d7dfe1ef3ab64ae960c69a471224095a812cb8', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.store.state.contextMenuItems, objects: ((_2 = this.store.state.selectionGroup) === null || _2 === void 0 ? void 0 : _2.objects) || [], style: {
|
|
407
410
|
position: 'fixed',
|
|
408
411
|
left: `${this.store.state.contextMenuX}px`,
|
|
409
412
|
top: `${this.store.state.contextMenuY}px`,
|
|
410
413
|
zIndex: '10000',
|
|
411
|
-
}, onActionSelected: event =>
|
|
414
|
+
}, onActionSelected: event => {
|
|
415
|
+
event.detail.action({
|
|
416
|
+
x: (-this.store.state.translateX + this.store.state.contextMenuX) / this.store.state.scale,
|
|
417
|
+
y: (-this.store.state.translateY + this.store.state.contextMenuY) / this.store.state.scale,
|
|
418
|
+
}, this.store.state.selectionGroup.objects);
|
|
419
|
+
this.hideContextMenu();
|
|
420
|
+
} })), ((_3 = this.store.state) === null || _3 === void 0 ? void 0 : _3.activeTool) instanceof KritzelEraserTool && !this.store.state.isScaling && h("kritzel-cursor-trail", { key: 'a056ea6d5c4271f6af82d259d6d8126fef07c7bd', store: this.store })));
|
|
412
421
|
}
|
|
413
422
|
static get is() { return "kritzel-engine"; }
|
|
414
423
|
static get encapsulation() { return "shadow"; }
|
|
@@ -470,8 +479,7 @@ export class KritzelEngine {
|
|
|
470
479
|
"text": ""
|
|
471
480
|
},
|
|
472
481
|
"getter": false,
|
|
473
|
-
"setter": false
|
|
474
|
-
"defaultValue": "[\r\n {\r\n label: 'Paste',\r\n icon: 'paste',\r\n disabled: () => this.store.state.copiedObjects === null,\r\n action: () => {\r\n const x = (-this.store.state.translateX + this.store.state.contextMenuX) / this.store.state.scale;\r\n const y = (-this.store.state.translateY + this.store.state.contextMenuY) / this.store.state.scale;\r\n this.paste(x, y);\r\n },\r\n },\r\n { label: 'Select All', icon: 'select-all', action: () => this.selectAllObjectsInViewport() },\r\n ]"
|
|
482
|
+
"setter": false
|
|
475
483
|
},
|
|
476
484
|
"objectContextMenuItems": {
|
|
477
485
|
"type": "unknown",
|
|
@@ -495,8 +503,47 @@ export class KritzelEngine {
|
|
|
495
503
|
"text": ""
|
|
496
504
|
},
|
|
497
505
|
"getter": false,
|
|
506
|
+
"setter": false
|
|
507
|
+
},
|
|
508
|
+
"scaleMax": {
|
|
509
|
+
"type": "number",
|
|
510
|
+
"attribute": "scale-max",
|
|
511
|
+
"mutable": true,
|
|
512
|
+
"complexType": {
|
|
513
|
+
"original": "number",
|
|
514
|
+
"resolved": "number",
|
|
515
|
+
"references": {}
|
|
516
|
+
},
|
|
517
|
+
"required": false,
|
|
518
|
+
"optional": false,
|
|
519
|
+
"docs": {
|
|
520
|
+
"tags": [],
|
|
521
|
+
"text": ""
|
|
522
|
+
},
|
|
523
|
+
"getter": false,
|
|
524
|
+
"setter": false,
|
|
525
|
+
"reflect": false,
|
|
526
|
+
"defaultValue": "ABSOLUTE_SCALE_MAX"
|
|
527
|
+
},
|
|
528
|
+
"scaleMin": {
|
|
529
|
+
"type": "number",
|
|
530
|
+
"attribute": "scale-min",
|
|
531
|
+
"mutable": true,
|
|
532
|
+
"complexType": {
|
|
533
|
+
"original": "number",
|
|
534
|
+
"resolved": "number",
|
|
535
|
+
"references": {}
|
|
536
|
+
},
|
|
537
|
+
"required": false,
|
|
538
|
+
"optional": false,
|
|
539
|
+
"docs": {
|
|
540
|
+
"tags": [],
|
|
541
|
+
"text": ""
|
|
542
|
+
},
|
|
543
|
+
"getter": false,
|
|
498
544
|
"setter": false,
|
|
499
|
-
"
|
|
545
|
+
"reflect": false,
|
|
546
|
+
"defaultValue": "ABSOLUTE_SCALE_MIN"
|
|
500
547
|
}
|
|
501
548
|
};
|
|
502
549
|
}
|
|
@@ -1036,7 +1083,7 @@ export class KritzelEngine {
|
|
|
1036
1083
|
"signature": "(objects: KritzelBaseObject[]) => Promise<void>",
|
|
1037
1084
|
"parameters": [{
|
|
1038
1085
|
"name": "objects",
|
|
1039
|
-
"type": "KritzelBaseObject<HTMLElement>[]",
|
|
1086
|
+
"type": "KritzelBaseObject<HTMLElement | SVGElement>[]",
|
|
1040
1087
|
"docs": ""
|
|
1041
1088
|
}],
|
|
1042
1089
|
"references": {
|
|
@@ -1093,10 +1140,10 @@ export class KritzelEngine {
|
|
|
1093
1140
|
},
|
|
1094
1141
|
"centerObjectInViewport": {
|
|
1095
1142
|
"complexType": {
|
|
1096
|
-
"signature": "(object: KritzelBaseObject) => Promise<KritzelBaseObject<HTMLElement>>",
|
|
1143
|
+
"signature": "(object: KritzelBaseObject) => Promise<KritzelBaseObject<HTMLElement | SVGElement>>",
|
|
1097
1144
|
"parameters": [{
|
|
1098
1145
|
"name": "object",
|
|
1099
|
-
"type": "KritzelBaseObject<HTMLElement>",
|
|
1146
|
+
"type": "KritzelBaseObject<HTMLElement | SVGElement>",
|
|
1100
1147
|
"docs": ""
|
|
1101
1148
|
}],
|
|
1102
1149
|
"references": {
|
|
@@ -1112,9 +1159,43 @@ export class KritzelEngine {
|
|
|
1112
1159
|
"HTMLElement": {
|
|
1113
1160
|
"location": "global",
|
|
1114
1161
|
"id": "global::HTMLElement"
|
|
1162
|
+
},
|
|
1163
|
+
"SVGElement": {
|
|
1164
|
+
"location": "global",
|
|
1165
|
+
"id": "global::SVGElement"
|
|
1166
|
+
}
|
|
1167
|
+
},
|
|
1168
|
+
"return": "Promise<KritzelBaseObject<HTMLElement | SVGElement>>"
|
|
1169
|
+
},
|
|
1170
|
+
"docs": {
|
|
1171
|
+
"text": "",
|
|
1172
|
+
"tags": []
|
|
1173
|
+
}
|
|
1174
|
+
},
|
|
1175
|
+
"getCopiedObjects": {
|
|
1176
|
+
"complexType": {
|
|
1177
|
+
"signature": "() => Promise<KritzelBaseObject[]>",
|
|
1178
|
+
"parameters": [],
|
|
1179
|
+
"references": {
|
|
1180
|
+
"Promise": {
|
|
1181
|
+
"location": "global",
|
|
1182
|
+
"id": "global::Promise"
|
|
1183
|
+
},
|
|
1184
|
+
"KritzelBaseObject": {
|
|
1185
|
+
"location": "import",
|
|
1186
|
+
"path": "../../../classes/objects/base-object.class",
|
|
1187
|
+
"id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
|
|
1188
|
+
},
|
|
1189
|
+
"HTMLElement": {
|
|
1190
|
+
"location": "global",
|
|
1191
|
+
"id": "global::HTMLElement"
|
|
1192
|
+
},
|
|
1193
|
+
"SVGElement": {
|
|
1194
|
+
"location": "global",
|
|
1195
|
+
"id": "global::SVGElement"
|
|
1115
1196
|
}
|
|
1116
1197
|
},
|
|
1117
|
-
"return": "Promise<KritzelBaseObject<HTMLElement
|
|
1198
|
+
"return": "Promise<KritzelBaseObject<HTMLElement | SVGElement>[]>"
|
|
1118
1199
|
},
|
|
1119
1200
|
"docs": {
|
|
1120
1201
|
"text": "",
|
|
@@ -1124,6 +1205,15 @@ export class KritzelEngine {
|
|
|
1124
1205
|
};
|
|
1125
1206
|
}
|
|
1126
1207
|
static get elementRef() { return "host"; }
|
|
1208
|
+
static get watchers() {
|
|
1209
|
+
return [{
|
|
1210
|
+
"propName": "scaleMax",
|
|
1211
|
+
"methodName": "validateScaleMax"
|
|
1212
|
+
}, {
|
|
1213
|
+
"propName": "scaleMin",
|
|
1214
|
+
"methodName": "validateScaleMin"
|
|
1215
|
+
}];
|
|
1216
|
+
}
|
|
1127
1217
|
static get listeners() {
|
|
1128
1218
|
return [{
|
|
1129
1219
|
"name": "wheel",
|