kritzel-stencil 0.0.139 → 0.0.141
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-BKstgWru.js +16981 -0
- package/dist/cjs/index-BKstgWru.js.map +1 -0
- package/dist/cjs/{index-nzUNdMPh.js → index-DcTwXs_q.js} +47 -22
- package/dist/cjs/index-DcTwXs_q.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +205 -157
- 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 +4 -4
- package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/move-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/remove-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/resize-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/rotate-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/update-viewport.command.js +6 -6
- package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
- package/dist/collection/classes/core/core.class.js +52 -29
- package/dist/collection/classes/core/core.class.js.map +1 -1
- package/dist/collection/classes/core/history.class.js +3 -3
- package/dist/collection/classes/core/history.class.js.map +1 -1
- package/dist/collection/classes/core/store.class.js +4 -1
- package/dist/collection/classes/core/store.class.js.map +1 -1
- package/dist/collection/classes/core/viewport.class.js +63 -44
- package/dist/collection/classes/core/viewport.class.js.map +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +16 -8
- package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
- package/dist/collection/classes/handlers/key.handler.js +4 -4
- package/dist/collection/classes/handlers/key.handler.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +30 -8
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/resize.handler.js +6 -6
- package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
- package/dist/collection/classes/handlers/rotation.handler.js +6 -6
- package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +56 -28
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/objects/base-object.class.js +9 -3
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/selection-group.class.js +3 -1
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/objects/text.class.js +123 -75
- package/dist/collection/classes/objects/text.class.js.map +1 -1
- package/dist/collection/classes/tools/brush-tool.class.js +16 -16
- package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +4 -4
- package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js +7 -7
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/text-tool.class.js +8 -10
- package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -2
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +5 -9
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +21 -8
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +30 -38
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +1 -2
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +1 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +5 -5
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +4 -5
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +1 -1
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +5 -6
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +1 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +4 -4
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +3 -4
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +3 -4
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +1 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +5 -5
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -3
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -4
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +1 -1
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +6 -7
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +5 -6
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +2 -3
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +7 -8
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +1 -1
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -3
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +3 -4
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +1 -1
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +3 -4
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +1 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +4 -6
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +1 -3
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
- package/dist/components/index.js +3 -3
- package/dist/components/kritzel-brush-style.js +4 -4
- 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 +26 -26
- 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-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-split-button.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/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-BlPlPpUy.js → p-BEKicPnH.js} +4 -4
- package/dist/components/{p-BlPlPpUy.js.map → p-BEKicPnH.js.map} +1 -1
- package/dist/components/{p-DCx3703u.js → p-BFNwskCY.js} +5 -5
- package/dist/components/{p-DCx3703u.js.map → p-BFNwskCY.js.map} +1 -1
- package/dist/components/{p-BorT6g39.js → p-BJbN3vca.js} +7 -7
- package/dist/components/{p-BorT6g39.js.map → p-BJbN3vca.js.map} +1 -1
- package/dist/components/p-BuDVaqTF.js +15302 -0
- package/dist/components/p-BuDVaqTF.js.map +1 -0
- package/dist/components/{p-Db3kxVe2.js → p-ByAzDzS5.js} +4 -4
- package/dist/components/{p-Db3kxVe2.js.map → p-ByAzDzS5.js.map} +1 -1
- package/dist/components/{p-sreNwi0N.js → p-BycHaC-9.js} +5 -5
- package/dist/components/{p-sreNwi0N.js.map → p-BycHaC-9.js.map} +1 -1
- package/dist/components/{p-KudVTtHk.js → p-C4nj29RW.js} +310 -210
- package/dist/components/p-C4nj29RW.js.map +1 -0
- package/dist/components/{p-BYanlgdq.js → p-C9hrbrUN.js} +27 -14
- package/dist/components/p-C9hrbrUN.js.map +1 -0
- package/dist/components/{p-BgpsMYcw.js → p-CEn1WeG3.js} +8 -8
- package/dist/components/p-CEn1WeG3.js.map +1 -0
- package/dist/components/{p-BM9IjvnD.js → p-CGb-8cK4.js} +4 -4
- package/dist/components/{p-BM9IjvnD.js.map → p-CGb-8cK4.js.map} +1 -1
- package/dist/components/{p-B7kZ1_RH.js → p-C_hSH2nN.js} +5 -5
- package/dist/components/{p-B7kZ1_RH.js.map → p-C_hSH2nN.js.map} +1 -1
- package/dist/components/{p-CHdJi6b4.js → p-ChLi4Ufe.js} +20 -20
- package/dist/components/{p-CHdJi6b4.js.map → p-ChLi4Ufe.js.map} +1 -1
- package/dist/components/{p-BPsQrpzN.js → p-CieOx1XL.js} +8 -8
- package/dist/components/{p-BPsQrpzN.js.map → p-CieOx1XL.js.map} +1 -1
- package/dist/components/{p-DjU7p3od.js → p-Co5lU_7h.js} +12 -12
- package/dist/components/{p-DjU7p3od.js.map → p-Co5lU_7h.js.map} +1 -1
- package/dist/components/{p-sq9jgfX0.js → p-D27d2rKT.js} +3 -3
- package/dist/components/{p-sq9jgfX0.js.map → p-D27d2rKT.js.map} +1 -1
- package/dist/components/{p-DFO-6kuA.js → p-DPxzgBs0.js} +3 -3
- package/dist/components/{p-DFO-6kuA.js.map → p-DPxzgBs0.js.map} +1 -1
- package/dist/components/{p-0iJh9Z6m.js → p-D_RcVGj0.js} +5 -5
- package/dist/components/{p-0iJh9Z6m.js.map → p-D_RcVGj0.js.map} +1 -1
- package/dist/components/{p-DOPuq6gn.js → p-DqsgZIHC.js} +5 -5
- package/dist/components/{p-DOPuq6gn.js.map → p-DqsgZIHC.js.map} +1 -1
- package/dist/components/{p-BehchtaT.js → p-DzyZA2GT.js} +8 -8
- package/dist/components/{p-BehchtaT.js.map → p-DzyZA2GT.js.map} +1 -1
- package/dist/components/{p-Ddlbt3Bj.js → p-dcR2uxM3.js} +6 -6
- package/dist/components/{p-Ddlbt3Bj.js.map → p-dcR2uxM3.js.map} +1 -1
- package/dist/components/{p-B7w19kIk.js → p-fiFoOjv0.js} +9 -9
- package/dist/components/{p-B7w19kIk.js.map → p-fiFoOjv0.js.map} +1 -1
- package/dist/components/{p-CsyM5q2M.js → p-gCHmJzc2.js} +5 -5
- package/dist/components/{p-CsyM5q2M.js.map → p-gCHmJzc2.js.map} +1 -1
- package/dist/esm/{index-oCOlsFCN.js → index-Cw77zP6g.js} +47 -22
- package/dist/esm/index-Cw77zP6g.js.map +1 -0
- package/dist/esm/index-D0Q2MKPn.js +16953 -0
- package/dist/esm/index-D0Q2MKPn.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/kritzel-brush-style.entry.js +1 -1
- package/dist/esm/kritzel-color_22.entry.js +205 -157
- 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-73784709.entry.js +2 -0
- package/dist/stencil/p-73784709.entry.js.map +1 -0
- package/dist/stencil/{p-25d1e040.entry.js → p-8b831c94.entry.js} +2 -2
- package/dist/stencil/p-Cw77zP6g.js +3 -0
- package/dist/stencil/p-Cw77zP6g.js.map +1 -0
- package/dist/stencil/p-D0Q2MKPn.js +2 -0
- package/dist/stencil/p-D0Q2MKPn.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/core/store.class.d.ts +2 -1
- package/dist/types/classes/core/viewport.class.d.ts +3 -0
- package/dist/types/classes/handlers/move.handler.d.ts +2 -0
- package/dist/types/classes/handlers/selection.handler.d.ts +3 -0
- package/dist/types/classes/objects/text.class.d.ts +20 -10
- package/dist/types/stencil-public-runtime.d.ts +36 -12
- package/package.json +7 -2
- package/dist/cjs/index-DgZMn9B_.js +0 -2791
- package/dist/cjs/index-DgZMn9B_.js.map +0 -1
- package/dist/cjs/index-nzUNdMPh.js.map +0 -1
- package/dist/components/p-BYanlgdq.js.map +0 -1
- package/dist/components/p-BbGgijCS.js +0 -1164
- package/dist/components/p-BbGgijCS.js.map +0 -1
- package/dist/components/p-BgpsMYcw.js.map +0 -1
- package/dist/components/p-KudVTtHk.js.map +0 -1
- package/dist/esm/index-CxieEK_G.js +0 -2763
- package/dist/esm/index-CxieEK_G.js.map +0 -1
- package/dist/esm/index-oCOlsFCN.js.map +0 -1
- package/dist/stencil/p-CxieEK_G.js +0 -2
- package/dist/stencil/p-CxieEK_G.js.map +0 -1
- package/dist/stencil/p-ab074e87.entry.js +0 -2
- package/dist/stencil/p-ab074e87.entry.js.map +0 -1
- package/dist/stencil/p-oCOlsFCN.js +0 -3
- package/dist/stencil/p-oCOlsFCN.js.map +0 -1
- /package/dist/stencil/{p-25d1e040.entry.js.map → p-8b831c94.entry.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var index$1 = require('./index-
|
|
3
|
+
var index = require('./index-DcTwXs_q.js');
|
|
4
|
+
var index$1 = require('./index-BKstgWru.js');
|
|
5
5
|
|
|
6
6
|
const kritzelColorCss = ":host{display:flex}.checkerboard-bg{background:repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;position:relative;overflow:hidden}.color-circle{width:24px;height:24px;border-radius:50%;box-sizing:border-box;display:block}.color-circle.white{border:1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc)}";
|
|
7
7
|
|
|
@@ -37,13 +37,13 @@ const KritzelColor = class {
|
|
|
37
37
|
}
|
|
38
38
|
render() {
|
|
39
39
|
const isColorVeryLight = this.isLightColor(this.value);
|
|
40
|
-
return (index.h(index.Host, { key: '
|
|
40
|
+
return (index.h(index.Host, { key: '000e54c604c8ceca2c44365e95ec1f5bfb1b729a' }, index.h("div", { key: '77b2abeae70e4a80714e1364eb4e11e67f16d066', class: "checkerboard-bg", style: {
|
|
41
41
|
width: `${this.size}px`,
|
|
42
42
|
height: `${this.size}px`,
|
|
43
43
|
borderRadius: '50%',
|
|
44
44
|
display: 'inline-block',
|
|
45
45
|
position: 'relative',
|
|
46
|
-
} }, index.h("div", { key: '
|
|
46
|
+
} }, index.h("div", { key: 'df71720cf51d845a36598499adb900a30770c503', class: {
|
|
47
47
|
'color-circle': true,
|
|
48
48
|
'white': isColorVeryLight,
|
|
49
49
|
}, style: {
|
|
@@ -86,7 +86,7 @@ const KritzelColorPalette = class {
|
|
|
86
86
|
render() {
|
|
87
87
|
const displayedColors = this.isExpanded ? this.colors : this.colors.slice(0, 6);
|
|
88
88
|
const expandedHeight = this.isExpanded ? this.calculateHeight() : '32px';
|
|
89
|
-
return (index.h(index.Host, { key: '
|
|
89
|
+
return (index.h(index.Host, { key: 'd533725a8ab2019ae963959727283fbbf833c56a' }, index.h("div", { key: '7fb50c16d79e9b7330100b0f4e116f8f07b20827', class: {
|
|
90
90
|
'color-grid': true,
|
|
91
91
|
'expanded': this.isExpanded,
|
|
92
92
|
}, style: {
|
|
@@ -151,7 +151,7 @@ const KritzelContextMenu = class {
|
|
|
151
151
|
return defaultValue;
|
|
152
152
|
}
|
|
153
153
|
render() {
|
|
154
|
-
return (index.h(index.Host, { key: '
|
|
154
|
+
return (index.h(index.Host, { key: '45b9652285f9c3fe7568cbe222667d23c151622f' }, index.h("div", { key: '9aecc01027f297fa4d991780efaaf51b8d4542dc', class: "menu-container" }, this.processedItems.map(({ item, isDisabled }, index$1) => (index.h("button", { key: `${item.label}-${index$1}`, class: { 'menu-item': true, 'disabled': isDisabled }, onClick: () => this.handleItemClick(item, isDisabled), disabled: isDisabled }, item.icon && index.h("kritzel-icon", { name: item.icon, size: 16 }), index.h("span", { class: "label" }, item.label)))))));
|
|
155
155
|
}
|
|
156
156
|
static get watchers() { return {
|
|
157
157
|
"items": ["onItemsChanged"]
|
|
@@ -194,14 +194,14 @@ const KritzelControlBrushConfig = class {
|
|
|
194
194
|
this.toolChange.emit(this.tool);
|
|
195
195
|
}
|
|
196
196
|
render() {
|
|
197
|
-
return (index.h(index.Host, { key: '
|
|
197
|
+
return (index.h(index.Host, { key: '4b060826312e6d5a2117f5ba9522553af9b02d6f' }, index.h("div", { key: '0975a250184d5bb2d38cc60263bd718157230d8c', style: {
|
|
198
198
|
display: 'flex',
|
|
199
199
|
flexDirection: 'row',
|
|
200
200
|
alignItems: this.isExpanded ? 'flex-start' : 'center',
|
|
201
201
|
justifyContent: 'flex-start',
|
|
202
202
|
width: '100%',
|
|
203
203
|
gap: '8px',
|
|
204
|
-
} }, index.h("kritzel-color-palette", { key: '
|
|
204
|
+
} }, index.h("kritzel-color-palette", { key: 'df84a6fdda01bc7bf3aff42e3b88c4bd9dca500f', colors: this.palette, selectedColor: this.tool.color, isExpanded: this.isExpanded, isOpaque: true, onColorChange: color => this.handleColorChange(color) }), index.h("button", { key: 'e43c19612807fc4f9cd1bf04f4fb79a048cfd62b', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand', style: this.palette.length > 6 ? { visibillity: 'visible' } : { visibility: 'hidden' } }, index.h("kritzel-icon", { key: '915cce6c4744ad175f3836c946330882de840880', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), index.h("kritzel-stroke-size", { key: 'c07eebae3ba1785e2644c6b5a22d23f76be950fb', selectedSize: this.tool.size, onSizeChange: event => this.handleSizeChange(event) })));
|
|
205
205
|
}
|
|
206
206
|
static get watchers() { return {
|
|
207
207
|
"tool": ["handleToolChange"]
|
|
@@ -235,14 +235,14 @@ const KritzelControlTextConfig = class {
|
|
|
235
235
|
this.toolChange.emit(this.tool);
|
|
236
236
|
}
|
|
237
237
|
render() {
|
|
238
|
-
return (index.h(index.Host, { key: '
|
|
238
|
+
return (index.h(index.Host, { key: '82e611092700f057bd36823e7f7503fe7a0423ed' }, index.h("div", { key: '37ed39adeeeb58981a917918cd185e96d589e973', style: {
|
|
239
239
|
display: 'flex',
|
|
240
240
|
flexDirection: 'row',
|
|
241
241
|
alignItems: 'center',
|
|
242
242
|
justifyContent: 'flex-start',
|
|
243
243
|
width: '100%',
|
|
244
244
|
gap: '8px',
|
|
245
|
-
} }, index.h("kritzel-font-family", { key: '
|
|
245
|
+
} }, index.h("kritzel-font-family", { key: 'cd8afc5c4a1eee087610cd3d5a6c05210cfda6b3', selectedFontFamily: this.tool.fontFamily, onFontFamilyChange: event => this.handleFamilyChange(event) }), index.h("button", { key: '085f1bba060bde27a7b64dc5477bb51305b76235', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand' }, index.h("kritzel-icon", { key: '3ff8fec207120e67f43315c6dace72fc2f6bd0f1', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), index.h("kritzel-color-palette", { key: '2e29d01a6b5c0e4a8ec347e63b6a2698c282db40', colors: this.tool.palette, selectedColor: this.tool.fontColor, isExpanded: this.isExpanded, onColorChange: event => this.handleColorChange(event) }), index.h("kritzel-font-size", { key: 'c972068f1251d66e756b8de72fbdd1b6002d1daa', selectedSize: this.tool.fontSize, fontFamily: this.tool.fontFamily, onSizeChange: event => this.handleSizeChange(event) })));
|
|
246
246
|
}
|
|
247
247
|
};
|
|
248
248
|
KritzelControlTextConfig.style = kritzelControlTextConfigCss;
|
|
@@ -376,13 +376,13 @@ const KritzelControls = class {
|
|
|
376
376
|
}
|
|
377
377
|
render() {
|
|
378
378
|
const hasNoConfig = this.activeControl?.config === undefined || this.activeControl?.config === null;
|
|
379
|
-
return (index.h(index.Host, { key: '
|
|
379
|
+
return (index.h(index.Host, { key: 'ab3e5f078d6d197c6e10c9dee180c04ef85281bf', class: {
|
|
380
380
|
mobile: this.isTouchDevice,
|
|
381
|
-
} }, this.isUtilityPanelVisible && (index.h("kritzel-utility-panel", { key: '
|
|
381
|
+
} }, this.isUtilityPanelVisible && (index.h("kritzel-utility-panel", { key: '290ceb6f2c46eb7e869a4741dd6600bc7c47bbb4', style: {
|
|
382
382
|
position: 'absolute',
|
|
383
383
|
bottom: '56px',
|
|
384
384
|
left: '12px',
|
|
385
|
-
}, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), index.h("div", { key: '
|
|
385
|
+
}, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), index.h("div", { key: 'd2590bc56b709e77910e7159296741c8859158d7', class: "kritzel-controls" }, this.controls.map(control => {
|
|
386
386
|
if (control.type === 'tool') {
|
|
387
387
|
return (index.h("button", { class: {
|
|
388
388
|
'kritzel-control': true,
|
|
@@ -479,7 +479,7 @@ const KritzelCursorTrail = class {
|
|
|
479
479
|
}
|
|
480
480
|
}
|
|
481
481
|
render() {
|
|
482
|
-
return (index.h(index.Host, { key: '
|
|
482
|
+
return (index.h(index.Host, { key: '10ef620f19d72a8a5c3a12d0d98686bc69308a30' }, this.cursorTrailPoints.length > 1 && (index.h("svg", { key: 'd03403051e53422aaa28d6360aaa9c0391e3ef6a', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
483
483
|
position: 'absolute',
|
|
484
484
|
left: '0',
|
|
485
485
|
top: '0',
|
|
@@ -850,7 +850,7 @@ const KritzelEditor = class {
|
|
|
850
850
|
}
|
|
851
851
|
}
|
|
852
852
|
render() {
|
|
853
|
-
return (index.h(index.Host, { key: '
|
|
853
|
+
return (index.h(index.Host, { key: '8dc4fa4d4c3512d3a0ac40d5ab67566720b8a3e4' }, index.h("kritzel-workspace-manager", { key: 'b7a032b8bb01b27af192719b46a3891037770a28', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), index.h("kritzel-engine", { key: '163c4aea9d07290c89e63931ed4a4cf0184757be', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, scaleMax: this.scaleMax, scaleMin: this.scaleMin, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => (this.workspaces = event.detail) }), index.h("kritzel-controls", { key: '4c9307c3831f2b179a446265f3226b0ae1541afc', class: { 'keyboard-open': this.isVirtualKeyboardOpen }, style: { display: this.isControlsVisible ? 'flex' : 'none' }, ref: el => (this.controlsRef = el), controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, onIsControlsReady: () => (this.isControlsReady = true) })));
|
|
854
854
|
}
|
|
855
855
|
static get watchers() { return {
|
|
856
856
|
"isEngineReady": ["onIsEngineReady"],
|
|
@@ -866,18 +866,18 @@ class KritzelViewport {
|
|
|
866
866
|
startY = 0;
|
|
867
867
|
constructor(core, host) {
|
|
868
868
|
this._core = core;
|
|
869
|
-
this._core.store.
|
|
870
|
-
this._core.store.
|
|
871
|
-
this._core.store.
|
|
872
|
-
this._core.store.
|
|
873
|
-
this._core.store.
|
|
874
|
-
this._core.store.
|
|
875
|
-
this._core.store.
|
|
869
|
+
this._core.store.state.host = host;
|
|
870
|
+
this._core.store.state.viewportWidth = host.clientWidth;
|
|
871
|
+
this._core.store.state.viewportHeight = host.clientHeight;
|
|
872
|
+
this._core.store.state.startX = 0;
|
|
873
|
+
this._core.store.state.startY = 0;
|
|
874
|
+
this._core.store.state.translateX = 0;
|
|
875
|
+
this._core.store.state.translateY = 0;
|
|
876
876
|
}
|
|
877
877
|
handleResize() {
|
|
878
|
-
this._core.store.
|
|
879
|
-
this._core.store.
|
|
880
|
-
this._core.store.
|
|
878
|
+
this._core.store.state.viewportWidth = this._core.store.state.host.clientWidth;
|
|
879
|
+
this._core.store.state.viewportHeight = this._core.store.state.host.clientHeight;
|
|
880
|
+
this._core.store.state.hasViewportChanged = true;
|
|
881
881
|
this._core.rerender();
|
|
882
882
|
}
|
|
883
883
|
handlePointerDown(event) {
|
|
@@ -885,16 +885,16 @@ class KritzelViewport {
|
|
|
885
885
|
const adjustedClientX = event.clientX - this._core.store.offsetX;
|
|
886
886
|
const adjustedClientY = event.clientY - this._core.store.offsetY;
|
|
887
887
|
if (event.button === index$1.KritzelMouseButton.Right) {
|
|
888
|
-
this._core.store.
|
|
889
|
-
this._core.store.
|
|
890
|
-
this._core.store.
|
|
888
|
+
this._core.store.state.isPanning = true;
|
|
889
|
+
this._core.store.state.startX = adjustedClientX;
|
|
890
|
+
this._core.store.state.startY = adjustedClientY;
|
|
891
891
|
}
|
|
892
892
|
}
|
|
893
893
|
if (event.pointerType === 'touch') {
|
|
894
894
|
const activePointers = Array.from(this._core.store.state.pointers.values());
|
|
895
895
|
if (activePointers.length === 2) {
|
|
896
|
-
this._core.store.
|
|
897
|
-
this._core.store.
|
|
896
|
+
this._core.store.state.currentPath = null;
|
|
897
|
+
this._core.store.state.isScaling = true;
|
|
898
898
|
const firstTouchX = activePointers[0].clientX - this._core.store.offsetX;
|
|
899
899
|
const firstTouchY = activePointers[0].clientY - this._core.store.offsetY;
|
|
900
900
|
const secondTouchX = activePointers[1].clientX - this._core.store.offsetX;
|
|
@@ -911,17 +911,17 @@ class KritzelViewport {
|
|
|
911
911
|
const hostRect = this._core.store.state.host.getBoundingClientRect();
|
|
912
912
|
const xRelativeToHost = event.clientX - hostRect.left;
|
|
913
913
|
const yRelativeToHost = event.clientY - hostRect.top;
|
|
914
|
-
this._core.store.
|
|
915
|
-
this._core.store.
|
|
914
|
+
this._core.store.state.pointerX = (xRelativeToHost - this._core.store.state.translateX) / this._core.store.state.scale;
|
|
915
|
+
this._core.store.state.pointerY = (yRelativeToHost - this._core.store.state.translateY) / this._core.store.state.scale;
|
|
916
916
|
if (this._core.store.state.isPanning) {
|
|
917
917
|
const dx = xRelativeToHost - this._core.store.state.startX;
|
|
918
918
|
const dy = yRelativeToHost - this._core.store.state.startY;
|
|
919
|
-
this._core.store.
|
|
920
|
-
this._core.store.
|
|
921
|
-
this._core.store.
|
|
922
|
-
this._core.store.
|
|
923
|
-
this._core.store.
|
|
924
|
-
this._core.store.
|
|
919
|
+
this._core.store.state.translateX += dx;
|
|
920
|
+
this._core.store.state.translateY += dy;
|
|
921
|
+
this._core.store.state.startX = xRelativeToHost;
|
|
922
|
+
this._core.store.state.startY = yRelativeToHost;
|
|
923
|
+
this._core.store.state.hasViewportChanged = true;
|
|
924
|
+
this._core.store.state.skipContextMenu = true;
|
|
925
925
|
this._core.rerender();
|
|
926
926
|
this._core.updateWorkspaceViewport(this._core.store.state.translateX, this._core.store.state.translateY, this._core.store.state.scale);
|
|
927
927
|
}
|
|
@@ -930,8 +930,8 @@ class KritzelViewport {
|
|
|
930
930
|
const hostRect = this._core.store.state.host.getBoundingClientRect();
|
|
931
931
|
const xRelativeToHost = event.clientX - hostRect.left;
|
|
932
932
|
const yRelativeToHost = event.clientY - hostRect.top;
|
|
933
|
-
this._core.store.
|
|
934
|
-
this._core.store.
|
|
933
|
+
this._core.store.state.pointerX = (xRelativeToHost - this._core.store.state.translateX) / this._core.store.state.scale;
|
|
934
|
+
this._core.store.state.pointerY = (yRelativeToHost - this._core.store.state.translateY) / this._core.store.state.scale;
|
|
935
935
|
const activePointers = Array.from(this._core.store.state.pointers.values());
|
|
936
936
|
if (activePointers.length === 2) {
|
|
937
937
|
const firstTouchX = activePointers[0].clientX - this._core.store.offsetX;
|
|
@@ -944,20 +944,20 @@ class KritzelViewport {
|
|
|
944
944
|
const scaleRatio = currentTouchDistance / this.initialTouchDistance;
|
|
945
945
|
const newScale = this._core.store.state.scale * scaleRatio;
|
|
946
946
|
if (newScale > this._core.store.state.scaleMax || newScale < this._core.store.state.scaleMin) {
|
|
947
|
-
this._core.store.
|
|
948
|
-
this._core.store.
|
|
947
|
+
this._core.store.state.translateX = this._core.store.state.translateX + midpointX - this.startX;
|
|
948
|
+
this._core.store.state.translateY = this._core.store.state.translateY + midpointY - this.startY;
|
|
949
949
|
}
|
|
950
950
|
else {
|
|
951
951
|
const translateXAdjustment = (midpointX - this._core.store.state.translateX) * (scaleRatio - 1);
|
|
952
952
|
const translateYAdjustment = (midpointY - this._core.store.state.translateY) * (scaleRatio - 1);
|
|
953
|
-
this._core.store.
|
|
954
|
-
this._core.store.
|
|
955
|
-
this._core.store.
|
|
953
|
+
this._core.store.state.translateX = this._core.store.state.translateX + midpointX - this.startX - translateXAdjustment;
|
|
954
|
+
this._core.store.state.translateY = this._core.store.state.translateY + midpointY - this.startY - translateYAdjustment;
|
|
955
|
+
this._core.store.state.scale = newScale;
|
|
956
956
|
this.initialTouchDistance = currentTouchDistance;
|
|
957
957
|
}
|
|
958
958
|
this.startX = midpointX;
|
|
959
959
|
this.startY = midpointY;
|
|
960
|
-
this._core.store.
|
|
960
|
+
this._core.store.state.hasViewportChanged = true;
|
|
961
961
|
this._core.rerender();
|
|
962
962
|
this._core.updateWorkspaceViewport(this._core.store.state.translateX, this._core.store.state.translateY, this._core.store.state.scale);
|
|
963
963
|
}
|
|
@@ -966,12 +966,12 @@ class KritzelViewport {
|
|
|
966
966
|
handlePointerUp(event) {
|
|
967
967
|
if (event.pointerType === 'mouse') {
|
|
968
968
|
if (this._core.store.state.isPanning) {
|
|
969
|
-
this._core.store.
|
|
969
|
+
this._core.store.state.isPanning = false;
|
|
970
970
|
this._core.rerender();
|
|
971
971
|
}
|
|
972
972
|
}
|
|
973
973
|
if (event.pointerType === 'touch') {
|
|
974
|
-
this._core.store.
|
|
974
|
+
this._core.store.state.isScaling = false;
|
|
975
975
|
this._core.rerender();
|
|
976
976
|
}
|
|
977
977
|
}
|
|
@@ -984,33 +984,52 @@ class KritzelViewport {
|
|
|
984
984
|
this.handlePan(event);
|
|
985
985
|
}
|
|
986
986
|
}
|
|
987
|
+
centerInViewport(object) {
|
|
988
|
+
const { scale, viewportWidth, viewportHeight } = this._core.store.state;
|
|
989
|
+
const { x, y, width, height } = object.rotatedBoundingBox;
|
|
990
|
+
const objectCenterX = x + width / 2;
|
|
991
|
+
const objectCenterY = y + height / 2;
|
|
992
|
+
this._core.store.state.translateX = viewportWidth / 2 - objectCenterX * scale;
|
|
993
|
+
this._core.store.state.translateY = viewportHeight / 2 - objectCenterY * scale;
|
|
994
|
+
this._core.store.state.hasViewportChanged = true;
|
|
995
|
+
this._core.rerender();
|
|
996
|
+
this._core.updateWorkspaceViewport(this._core.store.state.translateX, this._core.store.state.translateY, this._core.store.state.scale);
|
|
997
|
+
}
|
|
998
|
+
centerFitInViewport(object) {
|
|
999
|
+
const scaleX = this._core.store.state.viewportWidth / (object.rotatedBoundingBox.width * 1.1);
|
|
1000
|
+
const scaleY = this._core.store.state.viewportHeight / (object.rotatedBoundingBox.height * 1.1);
|
|
1001
|
+
const newScale = Math.min(scaleX, scaleY, this._core.store.state.scaleMax);
|
|
1002
|
+
const clampedScale = Math.max(newScale, this._core.store.state.scaleMin);
|
|
1003
|
+
this._core.store.state.scale = clampedScale;
|
|
1004
|
+
this.centerInViewport(object);
|
|
1005
|
+
}
|
|
987
1006
|
handleZoom(event) {
|
|
988
|
-
this._core.store.
|
|
1007
|
+
this._core.store.state.isScaling = true;
|
|
989
1008
|
const rect = this._core.store.state.host.getBoundingClientRect();
|
|
990
1009
|
const xRelativeToHost = event.clientX - rect.left;
|
|
991
1010
|
const yRelativeToHost = event.clientY - rect.top;
|
|
992
|
-
this._core.store.
|
|
993
|
-
this._core.store.
|
|
1011
|
+
this._core.store.state.pointerX = (xRelativeToHost - this._core.store.state.translateX) / this._core.store.state.scale;
|
|
1012
|
+
this._core.store.state.pointerY = (yRelativeToHost - this._core.store.state.translateY) / this._core.store.state.scale;
|
|
994
1013
|
const delta = event.deltaY > 0 ? -this._core.store.state.scaleStep * this._core.store.state.scale : this._core.store.state.scaleStep * this._core.store.state.scale;
|
|
995
1014
|
const newScale = Math.min(this._core.store.state.scaleMax, Math.max(this._core.store.state.scaleMin, this._core.store.state.scale + delta));
|
|
996
1015
|
const scaleRatio = newScale / this._core.store.state.scale;
|
|
997
1016
|
const translateXAdjustment = (xRelativeToHost - this._core.store.state.translateX) * (scaleRatio - 1);
|
|
998
1017
|
const translateYAdjustment = (yRelativeToHost - this._core.store.state.translateY) * (scaleRatio - 1);
|
|
999
|
-
this._core.store.
|
|
1000
|
-
this._core.store.
|
|
1001
|
-
this._core.store.
|
|
1002
|
-
this._core.store.
|
|
1018
|
+
this._core.store.state.scale = newScale;
|
|
1019
|
+
this._core.store.state.translateX = this._core.store.state.translateX - translateXAdjustment;
|
|
1020
|
+
this._core.store.state.translateY = this._core.store.state.translateY - translateYAdjustment;
|
|
1021
|
+
this._core.store.state.hasViewportChanged = true;
|
|
1003
1022
|
this._core.rerender();
|
|
1004
1023
|
this._core.updateWorkspaceViewport(this._core.store.state.translateX, this._core.store.state.translateY, this._core.store.state.scale);
|
|
1005
1024
|
setTimeout(() => {
|
|
1006
|
-
this._core.store.
|
|
1025
|
+
this._core.store.state.isScaling = false;
|
|
1007
1026
|
}, 300);
|
|
1008
1027
|
}
|
|
1009
1028
|
handlePan(event) {
|
|
1010
1029
|
const panSpeed = 0.8;
|
|
1011
|
-
this._core.store.
|
|
1012
|
-
this._core.store.
|
|
1013
|
-
this._core.store.
|
|
1030
|
+
this._core.store.state.translateX = this._core.store.state.translateX - event.deltaX * panSpeed;
|
|
1031
|
+
this._core.store.state.translateY = this._core.store.state.translateY - event.deltaY * panSpeed;
|
|
1032
|
+
this._core.store.state.hasViewportChanged = true;
|
|
1014
1033
|
this._core.rerender();
|
|
1015
1034
|
this._core.updateWorkspaceViewport(this._core.store.state.translateX, this._core.store.state.translateY, this._core.store.state.scale);
|
|
1016
1035
|
}
|
|
@@ -1042,8 +1061,8 @@ class KritzelKeyHandler extends index$1.KritzelBaseHandler {
|
|
|
1042
1061
|
},
|
|
1043
1062
|
{ key: 'v', ctrl: true, condition: c => !!c.store.state.copiedObjects && !c.store.state.activeText, action: c => c.paste() },
|
|
1044
1063
|
// Text editing
|
|
1045
|
-
{ key: 'a', ctrl: true, condition: c => !!c.store.state.activeText, action: c => c.store.state.activeText.selectAll() },
|
|
1046
|
-
{ key: 'v', ctrl: true, condition: c => !!c.store.state.activeText, action: c => c.store.state.activeText.insertFromClipboard() },
|
|
1064
|
+
// { key: 'a', ctrl: true, condition: c => !!c.store.state.activeText, action: c => c.store.state.activeText.selectAll() },
|
|
1065
|
+
// { key: 'v', ctrl: true, condition: c => !!c.store.state.activeText, action: c => c.store.state.activeText.insertFromClipboard() },
|
|
1047
1066
|
// Object layering
|
|
1048
1067
|
{ key: '+', ctrl: true, condition: c => !!c.store.state.selectionGroup, action: c => c.bringForward() },
|
|
1049
1068
|
{ key: '-', ctrl: true, condition: c => !!c.store.state.selectionGroup, action: c => c.sendBackward() },
|
|
@@ -1060,7 +1079,7 @@ class KritzelKeyHandler extends index$1.KritzelBaseHandler {
|
|
|
1060
1079
|
toolInstance.onActivate();
|
|
1061
1080
|
}
|
|
1062
1081
|
handleKeyDown(event) {
|
|
1063
|
-
this._core.store.
|
|
1082
|
+
this._core.store.state.isCtrlKeyPressed = event.ctrlKey;
|
|
1064
1083
|
const shortcut = this.shortcuts.find(s => s.key === event.key && !!s.ctrl === event.ctrlKey && !!s.shift === event.shiftKey && (!s.condition || s.condition(this._core)));
|
|
1065
1084
|
if (shortcut) {
|
|
1066
1085
|
event.preventDefault();
|
|
@@ -1068,7 +1087,7 @@ class KritzelKeyHandler extends index$1.KritzelBaseHandler {
|
|
|
1068
1087
|
}
|
|
1069
1088
|
}
|
|
1070
1089
|
handleKeyUp(event) {
|
|
1071
|
-
this._core.store.
|
|
1090
|
+
this._core.store.state.isCtrlKeyPressed = event.ctrlKey;
|
|
1072
1091
|
}
|
|
1073
1092
|
}
|
|
1074
1093
|
|
|
@@ -1085,23 +1104,30 @@ class KritzelContextMenuHandler extends index$1.KritzelBaseHandler {
|
|
|
1085
1104
|
return;
|
|
1086
1105
|
}
|
|
1087
1106
|
if (this._core.store.state.skipContextMenu) {
|
|
1088
|
-
this._core.store.
|
|
1107
|
+
this._core.store.state.skipContextMenu = false;
|
|
1089
1108
|
return;
|
|
1090
1109
|
}
|
|
1110
|
+
const selectionTool = this._core.store.state.activeTool;
|
|
1111
|
+
selectionTool?.moveHandler?.cancelPendingDrag();
|
|
1112
|
+
if (this._core.store.state.selectionBox) {
|
|
1113
|
+
this._core.store.state.objectsMap.remove(object => object instanceof index$1.KrtizelSelectionBox);
|
|
1114
|
+
this._core.store.state.selectionBox = null;
|
|
1115
|
+
this._core.store.state.isSelecting = false;
|
|
1116
|
+
}
|
|
1091
1117
|
const selectedObject = this._core.getObjectFromPointerEvent(event, '.object');
|
|
1092
|
-
if (selectedObject && !(selectedObject instanceof index$1.KritzelSelectionGroup)) {
|
|
1118
|
+
if (selectedObject && !(selectedObject instanceof index$1.KritzelSelectionGroup) && !(selectedObject instanceof index$1.KrtizelSelectionBox)) {
|
|
1093
1119
|
const selectionGroup = index$1.KritzelSelectionGroup.create(this._core);
|
|
1094
1120
|
selectionGroup.addOrRemove(selectedObject);
|
|
1095
1121
|
selectionGroup.isSelected = true;
|
|
1096
1122
|
selectionGroup.rotation = selectedObject.rotation;
|
|
1097
|
-
this._core.store.
|
|
1123
|
+
this._core.store.state.isSelecting = false;
|
|
1098
1124
|
const batch = new index$1.BatchCommand(this._core, this, [
|
|
1099
1125
|
new index$1.RemoveSelectionGroupCommand(this._core, this._core.store.state.selectionGroup),
|
|
1100
1126
|
new index$1.AddSelectionGroupCommand(this._core, this, selectionGroup),
|
|
1101
1127
|
]);
|
|
1102
1128
|
this._core.history.executeCommand(batch);
|
|
1103
1129
|
}
|
|
1104
|
-
this._core.store.
|
|
1130
|
+
this._core.store.state.contextMenuItems = this._core.store.state.selectionGroup ? this.objectContextMenuItems : this.globalContextMenuItems;
|
|
1105
1131
|
let x = event.clientX - this._core.store.offsetX;
|
|
1106
1132
|
let y = event.clientY - this._core.store.offsetY;
|
|
1107
1133
|
const menuWidthEstimate = 150;
|
|
@@ -1115,10 +1141,10 @@ class KritzelContextMenuHandler extends index$1.KritzelBaseHandler {
|
|
|
1115
1141
|
}
|
|
1116
1142
|
x = Math.max(margin, x);
|
|
1117
1143
|
y = Math.max(margin, y);
|
|
1118
|
-
this._core.store.
|
|
1119
|
-
this._core.store.
|
|
1120
|
-
this._core.store.
|
|
1121
|
-
this._core.store.
|
|
1144
|
+
this._core.store.state.contextMenuX = x;
|
|
1145
|
+
this._core.store.state.contextMenuY = y;
|
|
1146
|
+
this._core.store.state.isContextMenuVisible = true;
|
|
1147
|
+
this._core.store.state.isEnabled = false;
|
|
1122
1148
|
this._core.rerender();
|
|
1123
1149
|
}
|
|
1124
1150
|
}
|
|
@@ -1439,14 +1465,14 @@ class UpdateViewportCommand extends index$1.KritzelBaseCommand {
|
|
|
1439
1465
|
};
|
|
1440
1466
|
}
|
|
1441
1467
|
execute() {
|
|
1442
|
-
this._core.store.
|
|
1443
|
-
this._core.store.
|
|
1444
|
-
this._core.store.
|
|
1468
|
+
this._core.store.state.scale = this.currentViewport.scale;
|
|
1469
|
+
this._core.store.state.translateX = this.currentViewport.translateX;
|
|
1470
|
+
this._core.store.state.translateY = this.currentViewport.translateY;
|
|
1445
1471
|
}
|
|
1446
1472
|
undo() {
|
|
1447
|
-
this._core.store.
|
|
1448
|
-
this._core.store.
|
|
1449
|
-
this._core.store.
|
|
1473
|
+
this._core.store.state.scale = this.previousViewport.scale;
|
|
1474
|
+
this._core.store.state.translateX = this.previousViewport.translateX;
|
|
1475
|
+
this._core.store.state.translateY = this.previousViewport.translateY;
|
|
1450
1476
|
}
|
|
1451
1477
|
}
|
|
1452
1478
|
|
|
@@ -1544,7 +1570,7 @@ class KritzelHistory {
|
|
|
1544
1570
|
if (this._core.store.state.hasViewportChanged) {
|
|
1545
1571
|
const command = new UpdateViewportCommand(this._core, this, this.previousViewport);
|
|
1546
1572
|
command.undo();
|
|
1547
|
-
this._core.store.
|
|
1573
|
+
this._core.store.state.hasViewportChanged = false;
|
|
1548
1574
|
this._core.rerender();
|
|
1549
1575
|
return;
|
|
1550
1576
|
}
|
|
@@ -1555,7 +1581,7 @@ class KritzelHistory {
|
|
|
1555
1581
|
console.info('undo', command);
|
|
1556
1582
|
this.redoStack.add(command);
|
|
1557
1583
|
}
|
|
1558
|
-
this._core.store.
|
|
1584
|
+
this._core.store.state.copiedObjects = null;
|
|
1559
1585
|
this._core.rerender();
|
|
1560
1586
|
}
|
|
1561
1587
|
redo() {
|
|
@@ -1575,7 +1601,7 @@ class KritzelHistory {
|
|
|
1575
1601
|
if (this.redoStack.isEmpty() === false) {
|
|
1576
1602
|
this.redoStack.clear();
|
|
1577
1603
|
}
|
|
1578
|
-
this._core.store.
|
|
1604
|
+
this._core.store.state.hasViewportChanged = false;
|
|
1579
1605
|
this.previousViewport = {
|
|
1580
1606
|
scale: this._core.store.state.scale,
|
|
1581
1607
|
scaleStep: this._core.store.state.scaleStep,
|
|
@@ -1635,11 +1661,14 @@ class KritzelStore {
|
|
|
1635
1661
|
return this._state;
|
|
1636
1662
|
}
|
|
1637
1663
|
get currentZIndex() {
|
|
1638
|
-
return this._state.objectsMap.filter(o => !(o instanceof index$1.KritzelSelectionGroup) && !(o instanceof index$1.KrtizelSelectionBox)).
|
|
1664
|
+
return Math.max(0, ...this._state.objectsMap.filter(o => !(o instanceof index$1.KritzelSelectionGroup) && !(o instanceof index$1.KrtizelSelectionBox)).map(o => o.zIndex)) + 1;
|
|
1639
1665
|
}
|
|
1640
1666
|
get allObjects() {
|
|
1641
1667
|
return this._state.objectsMap.allObjects();
|
|
1642
1668
|
}
|
|
1669
|
+
get allNonSelectionObjects() {
|
|
1670
|
+
return this._state.objectsMap.allObjects().filter(o => !(o instanceof index$1.KritzelSelectionGroup) && !(o instanceof index$1.KrtizelSelectionBox));
|
|
1671
|
+
}
|
|
1643
1672
|
get selectedObjects() {
|
|
1644
1673
|
return this.allObjects.filter(o => !(o instanceof index$1.KritzelSelectionGroup)).filter(o => o.isSelected);
|
|
1645
1674
|
}
|
|
@@ -1713,18 +1742,21 @@ class KritzelCore {
|
|
|
1713
1742
|
const workspaces = await this.getWorkspaces();
|
|
1714
1743
|
const mostRecentWorkspace = [...workspaces].sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime())[0];
|
|
1715
1744
|
const fallbackWorkspace = new index$1.KritzelWorkspace(index$1.ObjectHelper.generateUUID(), 'New Workspace');
|
|
1716
|
-
|
|
1717
|
-
const
|
|
1718
|
-
if (
|
|
1745
|
+
const candidateWorkspace = workspace ?? mostRecentWorkspace ?? fallbackWorkspace;
|
|
1746
|
+
const existingWorkspace = await this.getWorkspace(candidateWorkspace.id);
|
|
1747
|
+
if (existingWorkspace) {
|
|
1748
|
+
this._store.state.activeWorkspace = existingWorkspace;
|
|
1719
1749
|
await this.updateWorkspace(this._store.state.activeWorkspace);
|
|
1720
1750
|
}
|
|
1721
1751
|
else {
|
|
1752
|
+
this._store.state.activeWorkspace = candidateWorkspace;
|
|
1722
1753
|
await this.createWorkspace(this._store.state.activeWorkspace);
|
|
1723
1754
|
}
|
|
1724
|
-
this._store.
|
|
1725
|
-
|
|
1726
|
-
this._store.
|
|
1727
|
-
this._store.
|
|
1755
|
+
this._store.state.workspaces = await this.getWorkspaces();
|
|
1756
|
+
const viewport = this._store.state.activeWorkspace.viewport ?? { translateX: 0, translateY: 0, scale: 1 };
|
|
1757
|
+
this._store.state.translateX = viewport.translateX ?? 0;
|
|
1758
|
+
this._store.state.translateY = viewport.translateY ?? 0;
|
|
1759
|
+
this._store.state.scale = viewport.scale ?? 1;
|
|
1728
1760
|
await this.initializeWorkspaceObjects(this._store.state.activeWorkspace.id);
|
|
1729
1761
|
}
|
|
1730
1762
|
async initializeWorkspaceObjects(workspaceId) {
|
|
@@ -1819,7 +1851,7 @@ class KritzelCore {
|
|
|
1819
1851
|
const index = workspaces.findIndex(w => w.id === workspace.id);
|
|
1820
1852
|
if (index !== -1) {
|
|
1821
1853
|
workspaces[index] = workspace;
|
|
1822
|
-
this._store.
|
|
1854
|
+
this._store.state.workspaces = workspaces;
|
|
1823
1855
|
}
|
|
1824
1856
|
}
|
|
1825
1857
|
async deleteWorkspace(workspace) {
|
|
@@ -1829,7 +1861,7 @@ class KritzelCore {
|
|
|
1829
1861
|
const objectRange = IDBKeyRange.bound([workspace.id], [workspace.id, '\uffff']);
|
|
1830
1862
|
await this._database.deleteByRange('objects', objectRange);
|
|
1831
1863
|
await this._database.delete('workspaces', workspace.id);
|
|
1832
|
-
this._store.
|
|
1864
|
+
this._store.state.workspaces = this._store.state.workspaces.filter(ws => ws.id !== workspace.id);
|
|
1833
1865
|
}
|
|
1834
1866
|
rerender() {
|
|
1835
1867
|
if (this._kritzelEngine) {
|
|
@@ -1866,18 +1898,27 @@ class KritzelCore {
|
|
|
1866
1898
|
}
|
|
1867
1899
|
}
|
|
1868
1900
|
copy() {
|
|
1869
|
-
this._store.
|
|
1901
|
+
this._store.state.copiedObjects = this._store.state.selectionGroup.copy();
|
|
1870
1902
|
}
|
|
1871
1903
|
paste(x, y) {
|
|
1872
1904
|
const copiedObjects = this._store.state.copiedObjects;
|
|
1873
1905
|
copiedObjects.isSelected = true;
|
|
1874
|
-
this._store.
|
|
1906
|
+
this._store.state.copiedObjects = copiedObjects;
|
|
1875
1907
|
const adjustedX = x !== undefined ? x : this._store.state.copiedObjects.translateX + 25 / this._store.state.scale;
|
|
1876
1908
|
const adjustedY = y !== undefined ? y : this._store.state.copiedObjects.translateY + 25 / this._store.state.scale;
|
|
1877
1909
|
this._store.state.copiedObjects.updatePosition(adjustedX, adjustedY);
|
|
1910
|
+
this._store.state.copiedObjects.updateZIndices(this._store.currentZIndex);
|
|
1878
1911
|
const activeWorkspace = this._store.state.activeWorkspace;
|
|
1879
|
-
this.store.state.copiedObjects.
|
|
1880
|
-
|
|
1912
|
+
if (this.store.state.copiedObjects.workspaceId !== activeWorkspace.id) {
|
|
1913
|
+
this.store.state.copiedObjects.updateWorkspaceId(activeWorkspace.id);
|
|
1914
|
+
if (x !== undefined && y !== undefined) {
|
|
1915
|
+
this._store.state.copiedObjects.updatePosition(x, y);
|
|
1916
|
+
}
|
|
1917
|
+
else {
|
|
1918
|
+
this.store.state.copiedObjects.centerInViewport();
|
|
1919
|
+
}
|
|
1920
|
+
this.engine.viewport.centerFitInViewport(copiedObjects);
|
|
1921
|
+
}
|
|
1881
1922
|
const commands = [];
|
|
1882
1923
|
let previousSelectionGroup = null;
|
|
1883
1924
|
if (this._store.state.selectionGroup !== null) {
|
|
@@ -1888,13 +1929,14 @@ class KritzelCore {
|
|
|
1888
1929
|
const addCopiedObjectsAsSelectionGroupCommand = new index$1.AddSelectionGroupCommand(this, this, this._store.state.copiedObjects, previousSelectionGroup);
|
|
1889
1930
|
commands.push(...addCopiedObjectsCommands, addCopiedObjectsAsSelectionGroupCommand);
|
|
1890
1931
|
this.history.executeCommand(new index$1.BatchCommand(this, this, commands));
|
|
1891
|
-
this._store.
|
|
1892
|
-
this._store.
|
|
1932
|
+
this._store.state.isSelecting = false;
|
|
1933
|
+
this._store.state.copiedObjects = this._store.state.selectionGroup.copy();
|
|
1893
1934
|
this._store.setState('activeTool', index$1.KritzelToolRegistry.getTool('selection'));
|
|
1894
1935
|
}
|
|
1895
1936
|
bringForward(object) {
|
|
1896
|
-
const max = this._store.allObjects.length + 1;
|
|
1897
1937
|
const objects = object ? [object] : this._store.state.selectionGroup.objects;
|
|
1938
|
+
const allNonSelectionObjectsWithoutCurrent = this._store.allNonSelectionObjects.filter(o => objects.findIndex(obj => obj.id === o.id) === -1);
|
|
1939
|
+
const max = allNonSelectionObjectsWithoutCurrent.length > 0 ? Math.max(...allNonSelectionObjectsWithoutCurrent.map(obj => obj.zIndex)) + 1 : 0;
|
|
1898
1940
|
const increaseZIndexCommands = objects.map(obj => {
|
|
1899
1941
|
if (obj.zIndex === max) {
|
|
1900
1942
|
return;
|
|
@@ -1904,8 +1946,9 @@ class KritzelCore {
|
|
|
1904
1946
|
this.history.executeCommand(new index$1.BatchCommand(this, this, increaseZIndexCommands));
|
|
1905
1947
|
}
|
|
1906
1948
|
sendBackward(object) {
|
|
1907
|
-
const min = 0;
|
|
1908
1949
|
const objects = object ? [object] : this._store.state.selectionGroup.objects;
|
|
1950
|
+
const allNonSelectionObjectsWithoutCurrent = this._store.allNonSelectionObjects.filter(o => objects.findIndex(obj => obj.id === o.id) === -1);
|
|
1951
|
+
const min = allNonSelectionObjectsWithoutCurrent.length > 0 ? Math.min(...allNonSelectionObjectsWithoutCurrent.map(obj => obj.zIndex)) - 1 : 0;
|
|
1909
1952
|
const decreaseZIndexCommands = objects.map(obj => {
|
|
1910
1953
|
if (obj.zIndex === min) {
|
|
1911
1954
|
return;
|
|
@@ -1915,16 +1958,18 @@ class KritzelCore {
|
|
|
1915
1958
|
this.history.executeCommand(new index$1.BatchCommand(this, this, decreaseZIndexCommands));
|
|
1916
1959
|
}
|
|
1917
1960
|
bringToFront(object) {
|
|
1918
|
-
const max = Math.max(...this._store.allObjects.map(obj => obj.zIndex)) + 1;
|
|
1919
1961
|
const objects = object ? [object] : this._store.state.selectionGroup.objects;
|
|
1962
|
+
const allNonSelectionObjectsWithoutCurrent = this._store.allNonSelectionObjects.filter(o => objects.findIndex(obj => obj.id === o.id) === -1);
|
|
1963
|
+
const max = Math.max(...allNonSelectionObjectsWithoutCurrent.map(obj => obj.zIndex)) + 1;
|
|
1920
1964
|
const increaseZIndexCommands = objects.map(obj => {
|
|
1921
1965
|
return new index$1.UpdateObjectCommand(this, this, obj, { zIndex: max });
|
|
1922
1966
|
});
|
|
1923
1967
|
this.history.executeCommand(new index$1.BatchCommand(this, this, increaseZIndexCommands));
|
|
1924
1968
|
}
|
|
1925
1969
|
sendToBack(object) {
|
|
1926
|
-
const min = Math.min(...this._store.allObjects.map(obj => obj.zIndex)) - 1;
|
|
1927
1970
|
const objects = object ? [object] : this._store.state.selectionGroup.objects;
|
|
1971
|
+
const allNonSelectionObjectsWithoutCurrent = this._store.allNonSelectionObjects.filter(o => objects.findIndex(obj => obj.id === o.id) === -1);
|
|
1972
|
+
const min = Math.min(...allNonSelectionObjectsWithoutCurrent.map(obj => obj.zIndex)) - 1;
|
|
1928
1973
|
const decreaseZIndexCommands = objects.map(obj => {
|
|
1929
1974
|
return new index$1.UpdateObjectCommand(this, this, obj, { zIndex: min });
|
|
1930
1975
|
});
|
|
@@ -1940,7 +1985,7 @@ class KritzelCore {
|
|
|
1940
1985
|
selectionGroup.addOrRemove(obj);
|
|
1941
1986
|
});
|
|
1942
1987
|
selectionGroup.isSelected = true;
|
|
1943
|
-
this._store.
|
|
1988
|
+
this._store.state.selectionBox = selectionGroup;
|
|
1944
1989
|
if (objects.length === 1) {
|
|
1945
1990
|
selectionGroup.rotation = selectionGroup.objects[0].rotation;
|
|
1946
1991
|
}
|
|
@@ -1957,7 +2002,7 @@ class KritzelCore {
|
|
|
1957
2002
|
selectionGroup.addOrRemove(obj);
|
|
1958
2003
|
});
|
|
1959
2004
|
selectionGroup.isSelected = true;
|
|
1960
|
-
this._store.
|
|
2005
|
+
this._store.state.isSelecting = false;
|
|
1961
2006
|
if (objectsInViewport.length === 1) {
|
|
1962
2007
|
selectionGroup.rotation = selectionGroup.objects[0].rotation;
|
|
1963
2008
|
}
|
|
@@ -1968,18 +2013,25 @@ class KritzelCore {
|
|
|
1968
2013
|
clearSelection() {
|
|
1969
2014
|
const command = new index$1.RemoveSelectionGroupCommand(this, this._store.state.selectionGroup);
|
|
1970
2015
|
this.history.executeCommand(command);
|
|
1971
|
-
this._store.
|
|
1972
|
-
this._store.
|
|
1973
|
-
this._store.
|
|
1974
|
-
this._store.
|
|
1975
|
-
this._store.
|
|
2016
|
+
this._store.state.selectionGroup = null;
|
|
2017
|
+
this._store.state.selectionBox = null;
|
|
2018
|
+
this._store.state.isSelecting = false;
|
|
2019
|
+
this._store.state.isResizeHandleSelected = false;
|
|
2020
|
+
this._store.state.isRotationHandleSelected = false;
|
|
1976
2021
|
this.rerender();
|
|
1977
2022
|
}
|
|
1978
2023
|
resetActiveText() {
|
|
1979
|
-
if (this._store.state.activeText
|
|
1980
|
-
|
|
2024
|
+
if (this._store.state.activeText) {
|
|
2025
|
+
if (this._store.state.activeText.isEmpty) {
|
|
2026
|
+
console.log('Deleting empty text object', this._store.state.activeText.id);
|
|
2027
|
+
this.deleteObject(this._store.state.activeText.id, true);
|
|
2028
|
+
}
|
|
2029
|
+
else {
|
|
2030
|
+
console.log('Saving active text object before resetting', this._store.state.activeText.id);
|
|
2031
|
+
this._store.state.activeText.save();
|
|
2032
|
+
}
|
|
1981
2033
|
}
|
|
1982
|
-
this._store.
|
|
2034
|
+
this._store.state.activeText = null;
|
|
1983
2035
|
}
|
|
1984
2036
|
getObjectFromPointerEvent(event, selector = '.object') {
|
|
1985
2037
|
const shadowRoot = this._store.state.host?.shadowRoot;
|
|
@@ -2034,7 +2086,7 @@ class KritzelCore {
|
|
|
2034
2086
|
}
|
|
2035
2087
|
}
|
|
2036
2088
|
|
|
2037
|
-
const kritzelEngineCss = ":host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.debug-panel{position:absolute;pointer-events:none;top:0;right:0}.origin{position:relative;top:0;left:0;height:0;width:0;pointer-events:none;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top left;overflow:visible}.object{overflow:visible}
|
|
2089
|
+
const kritzelEngineCss = ":host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.ProseMirror{outline:none}p{margin:0;padding:0}.debug-panel{position:absolute;pointer-events:none;top:0;right:0}.origin{position:relative;top:0;left:0;height:0;width:0;pointer-events:none;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top left;overflow:visible}.object{overflow:visible}.resize-handle-overlay.top-left,.resize-handle-overlay.bottom-right{cursor:nwse-resize}.resize-handle-overlay.top-right,.resize-handle-overlay.bottom-left{cursor:nesw-resize}.rotation-handle-overlay{cursor:grab}.PlaygroundEditorTheme__quote{margin:0;margin-left:20px;margin-bottom:10px;font-size:15px;color:rgb(101, 103, 107);border-left-color:rgb(206, 208, 212);border-left-width:4px;border-left-style:solid;padding-left:16px}";
|
|
2038
2090
|
|
|
2039
2091
|
const KritzelEngine = class {
|
|
2040
2092
|
get host() { return index.getElement(this); }
|
|
@@ -2052,10 +2104,10 @@ const KritzelEngine = class {
|
|
|
2052
2104
|
if (newValue > ABSOLUTE_SCALE_MAX) {
|
|
2053
2105
|
console.warn(`scaleMax cannot be greater than ${ABSOLUTE_SCALE_MAX}.`);
|
|
2054
2106
|
this.scaleMax = ABSOLUTE_SCALE_MAX;
|
|
2055
|
-
this.core.store.
|
|
2107
|
+
this.core.store.state.scaleMax = this.scaleMax;
|
|
2056
2108
|
}
|
|
2057
2109
|
else {
|
|
2058
|
-
this.core.store.
|
|
2110
|
+
this.core.store.state.scaleMax = newValue;
|
|
2059
2111
|
}
|
|
2060
2112
|
}
|
|
2061
2113
|
scaleMin = ABSOLUTE_SCALE_MIN;
|
|
@@ -2063,10 +2115,10 @@ const KritzelEngine = class {
|
|
|
2063
2115
|
if (newValue < ABSOLUTE_SCALE_MIN) {
|
|
2064
2116
|
console.warn(`scaleMin cannot be less than ${ABSOLUTE_SCALE_MIN}.`);
|
|
2065
2117
|
this.scaleMin = ABSOLUTE_SCALE_MIN;
|
|
2066
|
-
this.core.store.
|
|
2118
|
+
this.core.store.state.scaleMin = this.scaleMin;
|
|
2067
2119
|
}
|
|
2068
2120
|
else {
|
|
2069
|
-
this.core.store.
|
|
2121
|
+
this.core.store.state.scaleMin = newValue;
|
|
2070
2122
|
}
|
|
2071
2123
|
}
|
|
2072
2124
|
isEngineReady;
|
|
@@ -2173,11 +2225,11 @@ const KritzelEngine = class {
|
|
|
2173
2225
|
tool?.onActivate();
|
|
2174
2226
|
}
|
|
2175
2227
|
async disable() {
|
|
2176
|
-
this.core.store.
|
|
2228
|
+
this.core.store.state.isEnabled = false;
|
|
2177
2229
|
this.core.rerender();
|
|
2178
2230
|
}
|
|
2179
2231
|
async enable() {
|
|
2180
|
-
this.core.store.
|
|
2232
|
+
this.core.store.state.isEnabled = true;
|
|
2181
2233
|
this.core.rerender();
|
|
2182
2234
|
}
|
|
2183
2235
|
async delete() {
|
|
@@ -2209,10 +2261,10 @@ const KritzelEngine = class {
|
|
|
2209
2261
|
}
|
|
2210
2262
|
async hideContextMenu() {
|
|
2211
2263
|
this.core.store.state.pointers.clear();
|
|
2212
|
-
this.core.store.
|
|
2213
|
-
this.core.store.
|
|
2214
|
-
this.core.store.
|
|
2215
|
-
this.core.store.
|
|
2264
|
+
this.core.store.state.isContextMenuVisible = false;
|
|
2265
|
+
this.core.store.state.selectionBox = null;
|
|
2266
|
+
this.core.store.state.isSelecting = false;
|
|
2267
|
+
this.core.store.state.isEnabled = true;
|
|
2216
2268
|
this.core.rerender();
|
|
2217
2269
|
}
|
|
2218
2270
|
async getObjectById(id) {
|
|
@@ -2319,7 +2371,7 @@ const KritzelEngine = class {
|
|
|
2319
2371
|
await this.core.initializeWorkspace(this.workspace);
|
|
2320
2372
|
this._registerStateChangeListeners();
|
|
2321
2373
|
if (this.core.store.state.isReady === false) {
|
|
2322
|
-
this.core.store.
|
|
2374
|
+
this.core.store.state.isReady = true;
|
|
2323
2375
|
this.isEngineReady.emit(this.core.store.state);
|
|
2324
2376
|
}
|
|
2325
2377
|
}
|
|
@@ -2330,8 +2382,8 @@ const KritzelEngine = class {
|
|
|
2330
2382
|
if (!(activeTool instanceof index$1.KritzelSelectionTool)) {
|
|
2331
2383
|
this.core.clearSelection();
|
|
2332
2384
|
}
|
|
2333
|
-
this.core.store.
|
|
2334
|
-
this.core.store.
|
|
2385
|
+
this.core.store.state.skipContextMenu = false;
|
|
2386
|
+
this.core.store.state.copiedObjects = null;
|
|
2335
2387
|
this.activeToolChange.emit(activeTool);
|
|
2336
2388
|
index$1.KritzelKeyboardHelper.forceHideKeyboard();
|
|
2337
2389
|
}
|
|
@@ -2340,7 +2392,9 @@ const KritzelEngine = class {
|
|
|
2340
2392
|
const baseHandleSizePx = computedStyle.getPropertyValue('--kritzel-selection-handle-size').trim() || '6px';
|
|
2341
2393
|
const baseHandleSize = parseFloat(baseHandleSizePx);
|
|
2342
2394
|
const baseHandleTouchSize = baseHandleSize * 2 < 14 ? 14 : baseHandleSize;
|
|
2343
|
-
|
|
2395
|
+
const viewportCenterX = this.core.store.state.viewportWidth / 2 + this.core.store.state.translateX;
|
|
2396
|
+
const viewportCenterY = this.core.store.state.viewportHeight / 2 + this.core.store.state.translateY;
|
|
2397
|
+
return (index.h(index.Host, { key: 'caabd1ecbf2faccdf7fa50d087a8957df4dd1039' }, index.h("div", { key: 'd757e7133ed9dd190c17c383fb716f760f2b3906', class: "debug-panel", style: { display: this.core.store.state.debugInfo.showViewportInfo ? 'block' : 'none' } }, index.h("div", { key: '00ced12dd956b6eecff7ac80429c0fd05cc7d1c3' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), index.h("div", { key: '771f3269627fbe1ef962027f017cf6bdec7bcf8f' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), index.h("div", { key: '0e49a60afdfb776a61f46b53bd6488786778bf77' }, "TranslateX: ", this.core.store.state?.translateX), index.h("div", { key: 'e0438479bc9e950ef2cbe88ed0aa0b8ec1888890' }, "TranslateY: ", this.core.store.state?.translateY), index.h("div", { key: '41d7261ed6b893a97fefb4bb6b199ffea51bd5fe' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), index.h("div", { key: '7b6470008968eeebc5097252b3b9e3d172fd5d22' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), index.h("div", { key: '4012ebdc3234ee2775021b38f385dfa0917736cb' }, "Scale: ", this.core.store.state?.scale), index.h("div", { key: '964d26a0ff4ff93dfa1cc928330c4fbdb0ec9b3d' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), index.h("div", { key: 'cd68a81778d3e0f83f9453cd813538b2223541e8' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), index.h("div", { key: '2ea80f3b4216a5e3d727c6c94d8b1782fbde80eb' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), index.h("div", { key: '02966d69182e95a8e91d5252f3dcfc19237caafd' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), index.h("div", { key: '85c06265f3af2b793d1827a40bb74b8837690ce3' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), index.h("div", { key: '1a2847a815fabc37cae3b7659844975df0c79a81' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), index.h("div", { key: 'd1482aa165ed6b430ec0e640971c47e233103e87' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), index.h("div", { key: '3534e455918183d822374edbc80b621939100bd1' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), index.h("div", { key: '7b061a4b08956660ee305316eea2e1d13d66d5de' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), index.h("div", { key: '61998d0f4ffc65f5bb155dfe434a3a07667ca5ee' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), index.h("div", { key: 'bdaeb0af59e844351eb46caf7bbe7e246174ccfe' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), index.h("div", { key: '47518514eb67c486583ee61e6747104b4720924a' }, "PointerX: ", this.core.store.state?.pointerX), index.h("div", { key: '9b2ef1c30ecb09bc7df7f765e099f87ea836d697' }, "PointerY: ", this.core.store.state?.pointerY), index.h("div", { key: '72a65218942809918fb5fa1978af83f9442c3ed8' }, "SelectedObjects: ", this.core.store.state.selectionGroup?.objects.length || 0), index.h("div", { key: '1f2ad6b79f28306becd7e83f21ca877c7d15941d' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")")), index.h("div", { key: 'ae8afa17ce2a1c0a06a3579091d6f1616fe9b9a7', id: "origin", class: "origin", style: {
|
|
2344
2398
|
transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
|
|
2345
2399
|
} }, this.core.store.state.objectsMap.allObjects()?.map(object => {
|
|
2346
2400
|
return (index.h("div", { key: object.id, style: {
|
|
@@ -2378,22 +2432,16 @@ const KritzelEngine = class {
|
|
|
2378
2432
|
height: '100%',
|
|
2379
2433
|
userSelect: 'none',
|
|
2380
2434
|
pointerEvents: 'none',
|
|
2381
|
-
}, draggable: false, onDragStart: e => e.preventDefault() })), KritzelClassHelper.isInstanceOf(object, 'KritzelText') && (index.h("
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
overflow: '
|
|
2391
|
-
display: 'block',
|
|
2392
|
-
padding: '1px',
|
|
2393
|
-
whiteSpace: 'nowrap',
|
|
2394
|
-
pointerEvents: object.isReadonly ? 'none' : 'auto',
|
|
2395
|
-
cursor: object.isReadonly ? 'default' : 'text',
|
|
2396
|
-
caretColor: object.isReadonly ? 'transparent' : 'auto',
|
|
2435
|
+
}, draggable: false, onDragStart: e => e.preventDefault() })), KritzelClassHelper.isInstanceOf(object, 'KritzelText') && (index.h("div", { ref: el => (el ? object.mount(el) : object.unmount()), onPointerDown: e => object.handlePointerDown(e), onPointerMove: e => object.handlePointerMove(e), onPointerUp: e => object.handlePointerUp(e), style: {
|
|
2436
|
+
minWidth: object.initialWidth + 'px',
|
|
2437
|
+
minHeight: object.initialHeight + 'px',
|
|
2438
|
+
maxWidth: '500px',
|
|
2439
|
+
height: 'auto',
|
|
2440
|
+
width: 'max-content',
|
|
2441
|
+
transformOrigin: 'top left',
|
|
2442
|
+
transform: `scale(${object.scaleFactor})`,
|
|
2443
|
+
backgroundColor: object.backgroundColor,
|
|
2444
|
+
overflow: 'visible'
|
|
2397
2445
|
} })), KritzelClassHelper.isInstanceOf(object, 'KritzelCustomElement') && (index.h("div", { ref: el => (el ? object.mount(el) : object.unmount()), style: {
|
|
2398
2446
|
width: '100%',
|
|
2399
2447
|
height: '100%',
|
|
@@ -2459,7 +2507,7 @@ const KritzelEngine = class {
|
|
|
2459
2507
|
transform: this.core.store.state.currentPath?.transformationMatrix,
|
|
2460
2508
|
transformOrigin: 'top left',
|
|
2461
2509
|
overflow: 'visible',
|
|
2462
|
-
}, viewBox: this.core.store.state.currentPath?.viewBox }, index.h("path", { key: '
|
|
2510
|
+
}, viewBox: this.core.store.state.currentPath?.viewBox }, index.h("path", { key: '9428a1401021b38b8b811fd68af9e24d53301c08', d: this.core.store.state.currentPath?.d, fill: this.core.store.state.currentPath?.fill, stroke: this.core.store.state.currentPath?.stroke }))), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: '1ccc963df66e4210886717644503be6304c6c99f', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.state.selectionGroup?.objects || [], style: {
|
|
2463
2511
|
position: 'fixed',
|
|
2464
2512
|
left: `${this.core.store.state.contextMenuX}px`,
|
|
2465
2513
|
top: `${this.core.store.state.contextMenuY}px`,
|
|
@@ -2470,7 +2518,7 @@ const KritzelEngine = class {
|
|
|
2470
2518
|
y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
|
|
2471
2519
|
}, this.core.store.state.selectionGroup?.objects);
|
|
2472
2520
|
this.hideContextMenu();
|
|
2473
|
-
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof index$1.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '
|
|
2521
|
+
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof index$1.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '9b51e52c76f21be679491c21d1921d389d6619fc', core: this.core })));
|
|
2474
2522
|
}
|
|
2475
2523
|
static get watchers() { return {
|
|
2476
2524
|
"workspace": ["onWorkspaceChange"],
|
|
@@ -2490,7 +2538,7 @@ const KritzelFont = class {
|
|
|
2490
2538
|
size = 24;
|
|
2491
2539
|
color = '#000000';
|
|
2492
2540
|
render() {
|
|
2493
|
-
return (index.h(index.Host, { key: '
|
|
2541
|
+
return (index.h(index.Host, { key: '0a6f1d1326e9dde84a4122d79f75dc1c75ffe0fb' }, index.h("div", { key: '88a342d01c4150cd4fc5dacca23f7b9904edca52', class: "font-preview", style: {
|
|
2494
2542
|
fontFamily: this.fontFamily,
|
|
2495
2543
|
fontSize: `${this.size}px`,
|
|
2496
2544
|
color: this.color
|
|
@@ -2537,7 +2585,7 @@ const KritzelFontFamily = class {
|
|
|
2537
2585
|
label: option.label,
|
|
2538
2586
|
style: { fontFamily: option.value },
|
|
2539
2587
|
}));
|
|
2540
|
-
return (index.h(index.Host, { key: '
|
|
2588
|
+
return (index.h(index.Host, { key: '27d14ddb4a57b9cd7b936047b6ea6a9251a1ab27' }, index.h("kritzel-dropdown", { key: '20ea042c9a907dc1ac5e16a589a8856f87389e36', options: dropdownOptions, value: this.selectedFontFamily, onValueChanged: this.handleDropdownValueChange, selectStyles: { fontFamily: this.selectedFontFamily } }, index.h("button", { key: 'f63fed16477a327aadaeb54feefe35df1780e37d', class: "font-style-button", slot: "suffix" }, "B"), index.h("button", { key: '13b3089606c2e83b256ed2cec6513a9911016754', class: "font-style-button italic-text", slot: "suffix" }, "I"))));
|
|
2541
2589
|
}
|
|
2542
2590
|
};
|
|
2543
2591
|
KritzelFontFamily.style = kritzelFontFamilyCss;
|
|
@@ -2558,7 +2606,7 @@ const KritzelFontSize = class {
|
|
|
2558
2606
|
this.sizeChange.emit(size);
|
|
2559
2607
|
}
|
|
2560
2608
|
render() {
|
|
2561
|
-
return (index.h(index.Host, { key: '
|
|
2609
|
+
return (index.h(index.Host, { key: '9f3d851d443352f7437116cf91eff8d8de41e322' }, this.sizes.map(size => (index.h("div", { class: {
|
|
2562
2610
|
'size-container': true,
|
|
2563
2611
|
'selected': this.selectedSize === size,
|
|
2564
2612
|
}, onClick: () => this.handleSizeClick(size) }, index.h("kritzel-font", { fontFamily: this.fontFamily, size: size }))))));
|
|
@@ -2653,7 +2701,7 @@ const KritzelMenu = class {
|
|
|
2653
2701
|
this.itemCloseChildMenu.emit(event.detail);
|
|
2654
2702
|
};
|
|
2655
2703
|
render() {
|
|
2656
|
-
return (index.h(index.Host, { key: '
|
|
2704
|
+
return (index.h(index.Host, { key: 'be122cb0ecff3227d9e69997de76a73940a61860', tabIndex: 0, onClick: e => e.stopPropagation() }, this.openChildMenuItem && index.h("div", { key: 'ae10bec61e5c5e1a29b444cb7378f15c6692f3b6', class: "has-open-child-overlay", onClick: this.onOverlayClick }), this.items.map(item => (index.h("kritzel-menu-item", { key: item.id, item: item, parent: this.parent, style: { pointerEvents: this.editingMenuItem && !item.isEditing ? 'none' : 'auto' }, onItemSelect: this.handleItemSelect, onItemSave: this.handleSave, onItemCancel: this.handleCancel, onItemToggleChildMenu: this.handleToggleChildMenu, onItemCloseChildMenu: this.handleCloseChildMenu })))));
|
|
2657
2705
|
}
|
|
2658
2706
|
};
|
|
2659
2707
|
KritzelMenu.style = kritzelMenuCss;
|
|
@@ -2754,12 +2802,12 @@ const KritzelMenuItem = class {
|
|
|
2754
2802
|
];
|
|
2755
2803
|
}
|
|
2756
2804
|
render() {
|
|
2757
|
-
return (index.h(index.Host, { key: '
|
|
2805
|
+
return (index.h(index.Host, { key: '9df3acdaff753e3ed910f848c98e8ad73e2b5f5c', tabIndex: this.item.isDisabled ? -1 : 0, class: {
|
|
2758
2806
|
'selected': this.item.isSelected,
|
|
2759
2807
|
'editing': this.item.isEditing,
|
|
2760
2808
|
'disabled': this.item.isDisabled,
|
|
2761
2809
|
'child-open': this.item.isChildMenuOpen,
|
|
2762
|
-
}, onClick: this.handleItemSelect }, index.h("div", { key: '
|
|
2810
|
+
}, onClick: this.handleItemSelect }, index.h("div", { key: 'bb73e5c0c3dd87efabcaa0b53d20c7c477b34aa1', class: "menu-item-overlay" }), this.item.isEditing ? this.renderEditMode() : this.renderViewMode()));
|
|
2763
2811
|
}
|
|
2764
2812
|
static get watchers() { return {
|
|
2765
2813
|
"item": ["onItemChange"]
|
|
@@ -3000,7 +3048,7 @@ const KritzelPortal = class {
|
|
|
3000
3048
|
this.portal.style.left = `${left}px`;
|
|
3001
3049
|
}
|
|
3002
3050
|
render() {
|
|
3003
|
-
return (index.h(index.Host, { key: '
|
|
3051
|
+
return (index.h(index.Host, { key: '9c5cdf7126ff1148dd2364cce9d2524862e27d13', style: { display: this.anchor ? 'block' : 'none' } }, index.h("slot", { key: '209a77246fedcea0c24882605487452ff5cc62ce' })));
|
|
3004
3052
|
}
|
|
3005
3053
|
static get watchers() { return {
|
|
3006
3054
|
"anchor": ["anchorChanged"]
|
|
@@ -3100,7 +3148,7 @@ const KritzelSplitButton = class {
|
|
|
3100
3148
|
this.menuScrollTop = event.target.scrollTop;
|
|
3101
3149
|
};
|
|
3102
3150
|
render() {
|
|
3103
|
-
return (index.h(index.Host, { key: '
|
|
3151
|
+
return (index.h(index.Host, { key: '4ff7809dd62c1dd60600fda592aeac43cd9bc74c', class: { mobile: this.isTouchDevice } }, index.h("button", { key: 'db6485fabcffdd75a25d178aca7b653af499a90c', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.mainButtonDisabled }, this.buttonIcon && index.h("kritzel-icon", { key: '4001a4e23ef53bec2a578310de8c8b593d7b266c', name: this.buttonIcon })), index.h("div", { key: '8ff86d3c01a48b06afca77dd066518efa3589cb1', class: "split-divider" }), index.h("button", { key: 'f1c40edbec3756a7f3681de4e8d0f1981dd312a4', ref: el => (this.splitMenuButtonRef = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.menuButtonDisabled }, index.h("kritzel-icon", { key: '0ddb89976632ae7454e66504f8bab3fd5072c252', name: this.dropdownIcon })), index.h("kritzel-portal", { key: '64531ffd6ac847fd1a99e32aceefea9f18088992', anchor: this.anchorElement, offsetY: 4, onClose: this.closeMenu }, index.h("kritzel-menu", { key: 'f3b86cb71e5ba39e8f98e26b3669416e2cdb4802', ref: el => (this.menuRef = el), items: this.items, onItemSelect: this.handleItemSelect, onItemSave: this.handleItemSave, onItemCancel: this.handleItemCancel, onItemToggleChildMenu: this.handleItemToggleChildMenu, onItemCloseChildMenu: this.handleItemCloseChildMenu, onClose: this.closeMenu, onScroll: this.handleScroll }))));
|
|
3104
3152
|
}
|
|
3105
3153
|
};
|
|
3106
3154
|
KritzelSplitButton.style = kritzelSplitButtonCss;
|
|
@@ -3120,7 +3168,7 @@ const KritzelStrokeSize = class {
|
|
|
3120
3168
|
this.sizeChange.emit(size);
|
|
3121
3169
|
}
|
|
3122
3170
|
render() {
|
|
3123
|
-
return (index.h(index.Host, { key: '
|
|
3171
|
+
return (index.h(index.Host, { key: '74579e34c23725e22927afe371c1f7925903720a' }, this.sizes.map(size => (index.h("div", { tabIndex: 0, class: {
|
|
3124
3172
|
'size-container': true,
|
|
3125
3173
|
'selected': this.selectedSize === size,
|
|
3126
3174
|
}, onClick: () => this.handleSizeClick(size) }, index.h("kritzel-color", { value: '#000000', size: size }))))));
|
|
@@ -3197,23 +3245,23 @@ const KritzelTooltip = class {
|
|
|
3197
3245
|
}
|
|
3198
3246
|
}
|
|
3199
3247
|
render() {
|
|
3200
|
-
return (index.h(index.Host, { key: '
|
|
3248
|
+
return (index.h(index.Host, { key: '72a6356a43a15a7abc9a46b0d22c3c62217791e8', style: {
|
|
3201
3249
|
position: 'fixed',
|
|
3202
3250
|
zIndex: '9999',
|
|
3203
3251
|
transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
|
|
3204
3252
|
visibility: this.isVisible ? 'visible' : 'hidden',
|
|
3205
3253
|
left: !this.isMobileView ? `${this.positionX}px` : '50%',
|
|
3206
3254
|
marginBottom: `${this.offsetY + this.arrowSize}px`,
|
|
3207
|
-
} }, index.h("div", { key: '
|
|
3255
|
+
} }, index.h("div", { key: '75f5350f23ada0eee009279eddd7d25273ad3740', class: "tooltip-content", onClick: event => event.stopPropagation() }, index.h("slot", { key: 'ad999154289e933cac1fdc13392de2aec78811a8' }), index.h("div", { key: '6be3f5c24d42898920c339be2cd2f3dd8a82fa80', class: "tooltip-arrow-wrapper", style: {
|
|
3208
3256
|
position: 'fixed',
|
|
3209
3257
|
left: this.arrowOffset,
|
|
3210
3258
|
bottom: `-${this.arrowSize * 2}px`,
|
|
3211
|
-
} }, index.h("div", { key: '
|
|
3259
|
+
} }, index.h("div", { key: '37397c6245dd6b0def23e2611d118e0c4f5860ef', class: "tooltip-arrow", style: {
|
|
3212
3260
|
borderLeft: `${this.arrowSize}px solid transparent`,
|
|
3213
3261
|
borderRight: `${this.arrowSize}px solid transparent`,
|
|
3214
3262
|
borderTop: `${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,
|
|
3215
3263
|
filter: 'drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))',
|
|
3216
|
-
} }), index.h("div", { key: '
|
|
3264
|
+
} }), index.h("div", { key: 'dbf009c371d46ef0a36e27771758c66e817d9b22', class: "tooltip-arrow-rect", style: {
|
|
3217
3265
|
position: 'relative',
|
|
3218
3266
|
width: `${this.arrowSize * 2}px`,
|
|
3219
3267
|
height: `${this.arrowSize}px`,
|
|
@@ -3249,7 +3297,7 @@ const KritzelUtilityPanel = class {
|
|
|
3249
3297
|
this.redo.emit();
|
|
3250
3298
|
}
|
|
3251
3299
|
render() {
|
|
3252
|
-
return (index.h(index.Host, { key: '
|
|
3300
|
+
return (index.h(index.Host, { key: '8e2eb13668d8787827b10cee7c9daf2abdecc2c6' }, index.h("button", { key: '0773e7ef81bc972ba589333f4ac7e85d98737770', class: "utility-button", onClick: event => this.handleUndo(event) }, index.h("kritzel-icon", { key: 'fa69c1a2535d44bfb871a4d719079d0f900cc6c7', name: "undo" })), index.h("button", { key: 'edc28968f3ec92467d6b4aaa095a71770413d657', class: "utility-button", onClick: event => this.handleRedo(event) }, index.h("kritzel-icon", { key: 'd4cf72e2bda411fe9942d473c5e1ceae62a76074', name: "redo" })), index.h("div", { key: '8927237c6099a147495564657cdef97e7d35d7c1', class: "utility-separator" }), index.h("button", { key: 'e089819f7dd870165130322c3c4a9d754d4ed023', class: "utility-button" }, index.h("kritzel-icon", { key: 'a143770d1b3f8fdbe5c5b36c5d7eaab511cd8a4b', name: "delete", onClick: () => this.delete.emit() }))));
|
|
3253
3301
|
}
|
|
3254
3302
|
};
|
|
3255
3303
|
KritzelUtilityPanel.style = kritzelUtilityPanelCss;
|