kritzel-stencil 0.0.106 → 0.0.108
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/kritzel-brush-style_18.cjs.entry.js +84 -82
- package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +1 -1
- package/dist/collection/classes/handlers/key.handler.js +1 -1
- package/dist/collection/classes/handlers/key.handler.js.map +1 -1
- package/dist/collection/classes/registries/icon-registry.class.js.map +1 -0
- package/dist/collection/classes/registries/tool.registry.js.map +1 -0
- package/dist/collection/classes/store.class.js +3 -54
- package/dist/collection/classes/store.class.js.map +1 -1
- package/dist/collection/classes/tools/image-tool.class.js +1 -1
- package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/text-tool.class.js +4 -1
- package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +2 -43
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +18 -16
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +1 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +2 -2
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
- package/dist/collection/configs/default-engine-state.js +53 -0
- package/dist/collection/configs/default-engine-state.js.map +1 -0
- package/dist/collection/helpers/event.helper.js +14 -0
- package/dist/collection/helpers/event.helper.js.map +1 -1
- package/dist/collection/helpers/keyboard.helper.js +23 -0
- package/dist/collection/helpers/keyboard.helper.js.map +1 -1
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.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-editor.js +13 -53
- package/dist/components/kritzel-editor.js.map +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-font-size.js +1 -1
- package/dist/components/kritzel-font.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-BcQCX1Z6.js → p-BNfHRlWL.js} +50 -3
- package/dist/components/p-BNfHRlWL.js.map +1 -0
- package/dist/components/{p-BFlJumTk.js → p-BXJ8s30N.js} +8 -8
- package/dist/components/{p-BFlJumTk.js.map → p-BXJ8s30N.js.map} +1 -1
- package/dist/components/{p-DIxwvThL.js → p-Box62paJ.js} +14 -14
- package/dist/components/{p-DIxwvThL.js.map → p-Box62paJ.js.map} +1 -1
- package/dist/components/{p-CF5pcRGS.js → p-CPjl7Inl.js} +4 -4
- package/dist/components/{p-CF5pcRGS.js.map → p-CPjl7Inl.js.map} +1 -1
- package/dist/components/p-CZkSABuJ.js.map +1 -1
- package/dist/components/{p-D9nf_Yw4.js → p-CmckGlXt.js} +3 -3
- package/dist/components/{p-D9nf_Yw4.js.map → p-CmckGlXt.js.map} +1 -1
- package/dist/components/{p-CkPd1oL1.js → p-CqJr3YCp.js} +22 -27
- package/dist/components/{p-CkPd1oL1.js.map → p-CqJr3YCp.js.map} +1 -1
- package/dist/components/{p-Bhfk_puI.js → p-DFhbw-Fr.js} +4 -4
- package/dist/components/{p-Bhfk_puI.js.map → p-DFhbw-Fr.js.map} +1 -1
- package/dist/components/{p-wUZba7Vi.js → p-DHT5gK0E.js} +4 -4
- package/dist/components/{p-wUZba7Vi.js.map → p-DHT5gK0E.js.map} +1 -1
- package/dist/components/{p-9IX8ss5J.js → p-DInF8Iby.js} +6 -6
- package/dist/components/{p-9IX8ss5J.js.map → p-DInF8Iby.js.map} +1 -1
- package/dist/components/{p-B1tJ3Woq.js → p-Ddfewfv9.js} +3 -3
- package/dist/components/{p-B1tJ3Woq.js.map → p-Ddfewfv9.js.map} +1 -1
- package/dist/components/{p-I1jXruHK.js → p-DfMdBA8L.js} +4 -4
- package/dist/components/{p-I1jXruHK.js.map → p-DfMdBA8L.js.map} +1 -1
- package/dist/components/{p-JvUh5Cky.js → p-maiDeBe9.js} +7 -7
- package/dist/components/{p-JvUh5Cky.js.map → p-maiDeBe9.js.map} +1 -1
- package/dist/esm/kritzel-brush-style_18.entry.js +84 -82
- package/dist/esm/kritzel-brush-style_18.entry.js.map +1 -1
- package/dist/stencil/p-3a7d7b58.entry.js +2 -0
- package/dist/stencil/p-3a7d7b58.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/{tool.registry.d.ts → registries/tool.registry.d.ts} +2 -2
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +1 -6
- package/dist/types/configs/default-engine-state.d.ts +2 -0
- package/dist/types/helpers/event.helper.d.ts +5 -3
- package/dist/types/helpers/keyboard.helper.d.ts +2 -0
- package/package.json +1 -1
- package/dist/collection/classes/icon-registry.class.js.map +0 -1
- package/dist/collection/classes/tool.registry.js.map +0 -1
- package/dist/components/p-BcQCX1Z6.js.map +0 -1
- package/dist/stencil/p-7aaf3e49.entry.js +0 -2
- package/dist/stencil/p-7aaf3e49.entry.js.map +0 -1
- /package/dist/collection/classes/{icon-registry.class.js → registries/icon-registry.class.js} +0 -0
- /package/dist/collection/classes/{tool.registry.js → registries/tool.registry.js} +0 -0
- /package/dist/types/classes/{icon-registry.class.d.ts → registries/icon-registry.class.d.ts} +0 -0
|
@@ -60,13 +60,13 @@ const KritzelColor = class {
|
|
|
60
60
|
}
|
|
61
61
|
render() {
|
|
62
62
|
const isColorVeryLight = this.isLightColor(this.value);
|
|
63
|
-
return (index.h(index.Host, { key: '
|
|
63
|
+
return (index.h(index.Host, { key: '19ad3872a132c885c612dc3b96698a0c8dc7214d' }, index.h("div", { key: 'f67108e82396cbaa3d070c8dfc83da2b080ddf47', class: "checkerboard-bg", style: {
|
|
64
64
|
width: `${this.size}px`,
|
|
65
65
|
height: `${this.size}px`,
|
|
66
66
|
borderRadius: '50%',
|
|
67
67
|
display: 'inline-block',
|
|
68
68
|
position: 'relative',
|
|
69
|
-
} }, index.h("div", { key: '
|
|
69
|
+
} }, index.h("div", { key: '1af0cc3e9f6eebc04cae2367510ef3b98420a818', class: {
|
|
70
70
|
'color-circle': true,
|
|
71
71
|
'white': isColorVeryLight,
|
|
72
72
|
}, style: {
|
|
@@ -108,7 +108,7 @@ const KritzelColorPalette = class {
|
|
|
108
108
|
render() {
|
|
109
109
|
const displayedColors = this.isExpanded ? this.colors : this.colors.slice(0, 6);
|
|
110
110
|
const expandedHeight = this.isExpanded ? this.calculateHeight() : '32px';
|
|
111
|
-
return (index.h(index.Host, { key: '
|
|
111
|
+
return (index.h(index.Host, { key: '0f0d176e1c8b199a973dbdb23b84e4a8d4d57f59' }, index.h("div", { key: '1d4707cdb30752d21a5058dbbef5fb32934bd3bd', class: {
|
|
112
112
|
'color-grid': true,
|
|
113
113
|
'expanded': this.isExpanded,
|
|
114
114
|
}, style: {
|
|
@@ -175,14 +175,14 @@ const KritzelControlBrushConfig = class {
|
|
|
175
175
|
this.toolChange.emit(this.tool);
|
|
176
176
|
}
|
|
177
177
|
render() {
|
|
178
|
-
return (index.h(index.Host, { key: '
|
|
178
|
+
return (index.h(index.Host, { key: '8e7930fcc093f7277ed088d8ec5e54e4cd051b86' }, index.h("div", { key: '08bd37b90decc9054c05d646aabbba0a4985d04c', style: {
|
|
179
179
|
display: 'flex',
|
|
180
180
|
flexDirection: 'row',
|
|
181
181
|
alignItems: 'center',
|
|
182
182
|
justifyContent: 'flex-start',
|
|
183
183
|
width: '100%',
|
|
184
184
|
gap: '8px',
|
|
185
|
-
} }, index.h("kritzel-brush-style", { key: '
|
|
185
|
+
} }, index.h("kritzel-brush-style", { key: 'f79744fb6523d0b4fa67c324cbf8ff3eb8a0308d', type: this.tool.type, onTypeChange: event => this.handleTypeChange(event) }), index.h("button", { key: 'dc3bdd90cebb29f2357e13dbc8d2dcaf02ae056e', 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: '6e9e6de7fc7c708aad700498e030d2ad7364a9f3', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), index.h("kritzel-color-palette", { key: 'c1ffd48a475754bb1447e9d866b494fd3476f050', colors: this.palette, selectedColor: this.tool.color, isExpanded: this.isExpanded, isOpaque: true, onColorChange: color => this.handleColorChange(color) }), index.h("kritzel-stroke-size", { key: '38e265b42fe09d0105e0385d7ec8e7d8d318abb0', selectedSize: this.tool.size, onSizeChange: event => this.handleSizeChange(event) })));
|
|
186
186
|
}
|
|
187
187
|
static get watchers() { return {
|
|
188
188
|
"tool": ["handleToolChange"]
|
|
@@ -214,14 +214,14 @@ const KritzelControlTextConfig = class {
|
|
|
214
214
|
this.toolChange.emit(this.tool);
|
|
215
215
|
}
|
|
216
216
|
render() {
|
|
217
|
-
return (index.h(index.Host, { key: '
|
|
217
|
+
return (index.h(index.Host, { key: '27d47c47987fb7644313a4face4a7023dfbe454d' }, index.h("div", { key: '835b8072267da18b39a5c02a6c989e1f7b81e9a5', style: {
|
|
218
218
|
display: 'flex',
|
|
219
219
|
flexDirection: 'row',
|
|
220
220
|
alignItems: 'center',
|
|
221
221
|
justifyContent: 'flex-start',
|
|
222
222
|
width: '100%',
|
|
223
223
|
gap: '8px',
|
|
224
|
-
} }, index.h("kritzel-font-family", { key: '
|
|
224
|
+
} }, index.h("kritzel-font-family", { key: 'b7a0bde2e9cf53c9ae7c3a32b424825ca9f757c4', selectedFontFamily: this.tool.fontFamily, onFontFamilyChange: event => this.handleFamilyChange(event) }), index.h("button", { key: '41aba583656195c4825a15ddc12c5e1efed0d8d2', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand' }, index.h("kritzel-icon", { key: '5ff979420066703b5d5e886d12f89687392006e3', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), index.h("kritzel-color-palette", { key: '30fbcc05f80b15fba7f1f5ac6413732d0149ee9b', colors: this.tool.palette, selectedColor: this.tool.fontColor, isExpanded: this.isExpanded, onColorChange: event => this.handleColorChange(event) }), index.h("kritzel-font-size", { key: '2a0d3c4578316b37bc1a25b6e065ecf565eca2b3', selectedSize: this.tool.fontSize, fontFamily: this.tool.fontFamily, onSizeChange: event => this.handleSizeChange(event) })));
|
|
225
225
|
}
|
|
226
226
|
};
|
|
227
227
|
KritzelControlTextConfig.style = kritzelControlTextConfigCss;
|
|
@@ -246,6 +246,15 @@ class KritzelEventHelper {
|
|
|
246
246
|
static detectDoubleTap() {
|
|
247
247
|
const currentTime = Date.now();
|
|
248
248
|
const tapLength = currentTime - KritzelEventHelper.lastTapTimestamp;
|
|
249
|
+
if (KritzelEventHelper.twoFingerTouchDetected) {
|
|
250
|
+
KritzelEventHelper.lastTapTimestamp = 0;
|
|
251
|
+
KritzelEventHelper.twoFingerTouchDetected = false;
|
|
252
|
+
if (KritzelEventHelper.tapTimeoutId) {
|
|
253
|
+
clearTimeout(KritzelEventHelper.tapTimeoutId);
|
|
254
|
+
KritzelEventHelper.tapTimeoutId = null;
|
|
255
|
+
}
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
249
258
|
if (KritzelEventHelper.tapTimeoutId) {
|
|
250
259
|
clearTimeout(KritzelEventHelper.tapTimeoutId);
|
|
251
260
|
KritzelEventHelper.tapTimeoutId = null;
|
|
@@ -258,14 +267,19 @@ class KritzelEventHelper {
|
|
|
258
267
|
KritzelEventHelper.lastTapTimestamp = currentTime;
|
|
259
268
|
KritzelEventHelper.tapTimeoutId = setTimeout(() => {
|
|
260
269
|
KritzelEventHelper.tapTimeoutId = null;
|
|
270
|
+
KritzelEventHelper.twoFingerTouchDetected = false;
|
|
261
271
|
}, KritzelEventHelper.doubleTapTimeout);
|
|
262
272
|
return false;
|
|
263
273
|
}
|
|
264
274
|
}
|
|
275
|
+
static notifyTwoFingerTouch() {
|
|
276
|
+
KritzelEventHelper.twoFingerTouchDetected = true;
|
|
277
|
+
}
|
|
265
278
|
}
|
|
266
279
|
KritzelEventHelper.lastTapTimestamp = 0;
|
|
267
280
|
KritzelEventHelper.tapTimeoutId = null;
|
|
268
281
|
KritzelEventHelper.doubleTapTimeout = 300;
|
|
282
|
+
KritzelEventHelper.twoFingerTouchDetected = false;
|
|
269
283
|
|
|
270
284
|
class KritzelBaseCommand {
|
|
271
285
|
constructor(store, initiator) {
|
|
@@ -918,6 +932,37 @@ class KritzelText extends KritzelBaseObject {
|
|
|
918
932
|
}
|
|
919
933
|
}
|
|
920
934
|
|
|
935
|
+
class KritzelKeyboardHelper {
|
|
936
|
+
static forceHideKeyboard() {
|
|
937
|
+
if (document.activeElement instanceof HTMLElement) {
|
|
938
|
+
document.activeElement.blur();
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
static enableInteractiveWidget() {
|
|
942
|
+
const meta = document.querySelector('meta[name="viewport"][content*="interactive-widget=resizes-content"]');
|
|
943
|
+
if (meta) {
|
|
944
|
+
let currentContent = meta.getAttribute('content');
|
|
945
|
+
if (!currentContent.includes('interactive-widget=resizes-content')) {
|
|
946
|
+
currentContent += ', interactive-widget=resizes-content';
|
|
947
|
+
}
|
|
948
|
+
meta.setAttribute('content', currentContent);
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
static disableInteractiveWidget() {
|
|
952
|
+
const meta = document.querySelector('meta[name="viewport"][content*="interactive-widget=resizes-content"]');
|
|
953
|
+
if (meta) {
|
|
954
|
+
let currentContent = meta.getAttribute('content');
|
|
955
|
+
let newContent = currentContent.replace(/\s*interactive-widget=resizes-content\s*[,;]?/g, '');
|
|
956
|
+
newContent = newContent
|
|
957
|
+
.replace(/,(\s*,)+/g, ',')
|
|
958
|
+
.replace(/^,/, '')
|
|
959
|
+
.replace(/,$/, '')
|
|
960
|
+
.trim();
|
|
961
|
+
meta.setAttribute('content', newContent);
|
|
962
|
+
}
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
|
|
921
966
|
class KritzelToolRegistry {
|
|
922
967
|
static registerTool(toolName, constructor, store) {
|
|
923
968
|
const toolInstance = new constructor(store);
|
|
@@ -1018,6 +1063,7 @@ class KritzelTextTool extends KritzelBaseTool {
|
|
|
1018
1063
|
if (this._store.state.touchCount > 1) {
|
|
1019
1064
|
return;
|
|
1020
1065
|
}
|
|
1066
|
+
KritzelKeyboardHelper.disableInteractiveWidget();
|
|
1021
1067
|
const clientX = Math.round(event.touches[0].clientX - this._store.offsetX);
|
|
1022
1068
|
const clientY = Math.round(event.touches[0].clientY - this._store.offsetY);
|
|
1023
1069
|
const text = KritzelText.create(this._store, this.fontSize, this.fontFamily);
|
|
@@ -1032,6 +1078,7 @@ class KritzelTextTool extends KritzelBaseTool {
|
|
|
1032
1078
|
var _a, _b;
|
|
1033
1079
|
(_a = this._store.state.activeText) === null || _a === void 0 ? void 0 : _a.focus();
|
|
1034
1080
|
(_b = this._store.state.activeText) === null || _b === void 0 ? void 0 : _b.adjustTextareaSize();
|
|
1081
|
+
KritzelKeyboardHelper.enableInteractiveWidget();
|
|
1035
1082
|
}
|
|
1036
1083
|
}
|
|
1037
1084
|
|
|
@@ -1125,11 +1172,11 @@ const KritzelControls = class {
|
|
|
1125
1172
|
render() {
|
|
1126
1173
|
var _a, _b;
|
|
1127
1174
|
const hasNoConfig = ((_a = this.activeControl) === null || _a === void 0 ? void 0 : _a.config) === undefined || ((_b = this.activeControl) === null || _b === void 0 ? void 0 : _b.config) === null;
|
|
1128
|
-
return (index.h(index.Host, { key: '
|
|
1175
|
+
return (index.h(index.Host, { key: '2b13783ef0f1638ad76bfcef22c17c3eeb849d67' }, index.h("kritzel-utility-panel", { key: '1babeb88133cebc9057c85723b812b99152316c6', style: {
|
|
1129
1176
|
position: 'absolute',
|
|
1130
1177
|
bottom: '56px',
|
|
1131
1178
|
left: '12px',
|
|
1132
|
-
}, onUndo: () => { var _a; return (_a = this.kritzelEngine) === null || _a === void 0 ? void 0 : _a.undo(); }, onRedo: () => { var _a; return (_a = this.kritzelEngine) === null || _a === void 0 ? void 0 : _a.redo(); }, onDelete: () => { var _a; return (_a = this.kritzelEngine) === null || _a === void 0 ? void 0 : _a.delete(); } }), index.h("div", { key: '
|
|
1179
|
+
}, onUndo: () => { var _a; return (_a = this.kritzelEngine) === null || _a === void 0 ? void 0 : _a.undo(); }, onRedo: () => { var _a; return (_a = this.kritzelEngine) === null || _a === void 0 ? void 0 : _a.redo(); }, onDelete: () => { var _a; return (_a = this.kritzelEngine) === null || _a === void 0 ? void 0 : _a.delete(); } }), index.h("div", { key: '8fafebdf6726dd2bffe85cb2b3ada5f4885a2bf8', class: "kritzel-controls" }, this.controls.map(control => {
|
|
1133
1180
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1134
1181
|
if (control.type === 'tool') {
|
|
1135
1182
|
return (index.h("button", { class: {
|
|
@@ -2812,7 +2859,6 @@ const KritzelEditor = class {
|
|
|
2812
2859
|
this.controls = DEFAULT_KRITZEL_CONTROLS;
|
|
2813
2860
|
this.customSvgIcons = {};
|
|
2814
2861
|
this.hideControls = false;
|
|
2815
|
-
this.text = null;
|
|
2816
2862
|
}
|
|
2817
2863
|
handleTouchStart(event) {
|
|
2818
2864
|
if (event.cancelable) {
|
|
@@ -2822,52 +2868,13 @@ const KritzelEditor = class {
|
|
|
2822
2868
|
componentWillLoad() {
|
|
2823
2869
|
this.registerCustomSvgIcons();
|
|
2824
2870
|
}
|
|
2825
|
-
addTextObject() {
|
|
2826
|
-
const obj = new KritzelText({
|
|
2827
|
-
translateX: 100,
|
|
2828
|
-
translateY: 100,
|
|
2829
|
-
width: 200,
|
|
2830
|
-
height: 50,
|
|
2831
|
-
value: 'New Text',
|
|
2832
|
-
fontSize: 16,
|
|
2833
|
-
fontFamily: 'Arial',
|
|
2834
|
-
fontColor: '#000000',
|
|
2835
|
-
scale: 1,
|
|
2836
|
-
});
|
|
2837
|
-
this.engineRef.addObject(obj).then((text) => this.text = text);
|
|
2838
|
-
}
|
|
2839
|
-
getTextObject() {
|
|
2840
|
-
var _a;
|
|
2841
|
-
this.engineRef.getObjectById(((_a = this.text) === null || _a === void 0 ? void 0 : _a.id) || '').then((object) => {
|
|
2842
|
-
console.log('Retrieved Text Object:', object);
|
|
2843
|
-
});
|
|
2844
|
-
}
|
|
2845
|
-
updateTextObject() {
|
|
2846
|
-
const updatedText = {
|
|
2847
|
-
value: 'Updated Text',
|
|
2848
|
-
translateX: 150,
|
|
2849
|
-
translateY: 150,
|
|
2850
|
-
rotation: Math.PI / 2
|
|
2851
|
-
};
|
|
2852
|
-
this.engineRef.updateObject(this.text, updatedText)
|
|
2853
|
-
.then((text) => {
|
|
2854
|
-
this.text = text;
|
|
2855
|
-
console.log('Updated Text Object:', text);
|
|
2856
|
-
});
|
|
2857
|
-
}
|
|
2858
|
-
removeTextObject() {
|
|
2859
|
-
this.engineRef.removeObject(this.text).then((text) => {
|
|
2860
|
-
console.log('Text Object removed', text);
|
|
2861
|
-
this.text = null;
|
|
2862
|
-
});
|
|
2863
|
-
}
|
|
2864
2871
|
registerCustomSvgIcons() {
|
|
2865
2872
|
for (const [name, svg] of Object.entries(this.customSvgIcons)) {
|
|
2866
2873
|
KritzelIconRegistry.register(name, svg);
|
|
2867
2874
|
}
|
|
2868
2875
|
}
|
|
2869
2876
|
render() {
|
|
2870
|
-
return (index.h(index.Host, { key: '
|
|
2877
|
+
return (index.h(index.Host, { key: '74206218105a7675872539955729e9329573b83b' }, index.h("kritzel-engine", { key: '596be73738bdfcbd04472a3ffef2e7ace393c94e', ref: el => (this.engineRef = el) }), index.h("kritzel-controls", { key: '95701130a74395c27c07c56eb74294074261a8be', ref: el => (this.controlsRef = el), controls: this.controls, style: this.hideControls ? { display: 'none' } : { display: 'flex' } })));
|
|
2871
2878
|
}
|
|
2872
2879
|
get host() { return index.getElement(this); }
|
|
2873
2880
|
};
|
|
@@ -3278,7 +3285,7 @@ class UpdateObjectCommand extends KritzelBaseCommand {
|
|
|
3278
3285
|
}
|
|
3279
3286
|
}
|
|
3280
3287
|
|
|
3281
|
-
const
|
|
3288
|
+
const DEFAULT_ENGINE_STATE = {
|
|
3282
3289
|
activeTool: null,
|
|
3283
3290
|
activeText: null,
|
|
3284
3291
|
currentPath: null,
|
|
@@ -3330,6 +3337,7 @@ const initialState = {
|
|
|
3330
3337
|
longTouchTimeout: null,
|
|
3331
3338
|
longTouchDelay: 300,
|
|
3332
3339
|
};
|
|
3340
|
+
|
|
3333
3341
|
class KritzelStore {
|
|
3334
3342
|
get history() {
|
|
3335
3343
|
return this._history;
|
|
@@ -3355,7 +3363,7 @@ class KritzelStore {
|
|
|
3355
3363
|
constructor(kritzelEngine) {
|
|
3356
3364
|
this._listeners = new Map();
|
|
3357
3365
|
this.objects = [];
|
|
3358
|
-
this._state =
|
|
3366
|
+
this._state = DEFAULT_ENGINE_STATE;
|
|
3359
3367
|
this._kritzelEngine = kritzelEngine;
|
|
3360
3368
|
this._history = new KritzelHistory(this);
|
|
3361
3369
|
this._state.objectsOctree = new KritzelOctree({
|
|
@@ -3650,14 +3658,6 @@ class KritzelKeyHandler extends KritzelBaseHandler {
|
|
|
3650
3658
|
}
|
|
3651
3659
|
}
|
|
3652
3660
|
|
|
3653
|
-
class KritzelKeyboardHelper {
|
|
3654
|
-
static forceHideKeyboard() {
|
|
3655
|
-
if (document.activeElement instanceof HTMLElement) {
|
|
3656
|
-
document.activeElement.blur();
|
|
3657
|
-
}
|
|
3658
|
-
}
|
|
3659
|
-
}
|
|
3660
|
-
|
|
3661
3661
|
class KritzelContextMenuHandler extends KritzelBaseHandler {
|
|
3662
3662
|
constructor(store, globalContextMenuItems, objectContextMenuItems) {
|
|
3663
3663
|
super(store);
|
|
@@ -3861,6 +3861,9 @@ const KritzelEngine = class {
|
|
|
3861
3861
|
if (this.store.state.isEnabled === false) {
|
|
3862
3862
|
return;
|
|
3863
3863
|
}
|
|
3864
|
+
if (ev.touches.length === 2) {
|
|
3865
|
+
KritzelEventHelper.notifyTwoFingerTouch();
|
|
3866
|
+
}
|
|
3864
3867
|
if (KritzelEventHelper.detectDoubleTap()) {
|
|
3865
3868
|
const doubleTapEvent = new CustomEvent('doubletap', { detail: event, bubbles: true, composed: true });
|
|
3866
3869
|
this.host.dispatchEvent(doubleTapEvent);
|
|
@@ -4036,20 +4039,20 @@ const KritzelEngine = class {
|
|
|
4036
4039
|
const baseHandleSizePx = computedStyle.getPropertyValue('--kritzel-selection-handle-size').trim() || '6px';
|
|
4037
4040
|
const baseHandleSize = parseFloat(baseHandleSizePx);
|
|
4038
4041
|
const baseHandleTouchSize = baseHandleSize * 2 < 14 ? 14 : baseHandleSize;
|
|
4039
|
-
return (index.h(index.Host, { key: '
|
|
4040
|
-
_a.translateX), index.h("div", { key: '
|
|
4041
|
-
_b.translateY), index.h("div", { key: '
|
|
4042
|
-
_c.viewportWidth), index.h("div", { key: '
|
|
4043
|
-
_d.viewportHeight), index.h("div", { key: '
|
|
4044
|
-
_e.scale), index.h("div", { key: '
|
|
4045
|
-
_g.name), index.h("div", { key: '
|
|
4046
|
-
_m.cursorX), index.h("div", { key: '
|
|
4047
|
-
_o.cursorY)), index.h("div", { key: '
|
|
4042
|
+
return (index.h(index.Host, { key: '7592f0cc9b3c4f5c2c68b8a69151e57e254e1bcd' }, index.h("div", { key: '83d550a8b257c6c30915b4125633410b935df1c7', class: "debug-panel", style: { display: this.store.state.debugInfo.showViewportInfo ? 'block' : 'none' } }, index.h("div", { key: 'aaebf84d2344cf117d7e2b221f4675abfa3e2423' }, "TranslateX: ", (_a = this.store.state) === null || _a === void 0 ? void 0 :
|
|
4043
|
+
_a.translateX), index.h("div", { key: '0dff156e5b57abe1919af5a14da374ee86f62821' }, "TranslateY: ", (_b = this.store.state) === null || _b === void 0 ? void 0 :
|
|
4044
|
+
_b.translateY), index.h("div", { key: 'bb7fe1f8442c70e1bd7655ea222f37ed55c0cf8f' }, "ViewportWidth: ", (_c = this.store.state) === null || _c === void 0 ? void 0 :
|
|
4045
|
+
_c.viewportWidth), index.h("div", { key: 'c0399a368afa2186ba45e7be6fa69495f77912b2' }, "ViewportHeight: ", (_d = this.store.state) === null || _d === void 0 ? void 0 :
|
|
4046
|
+
_d.viewportHeight), index.h("div", { key: '2506ae215413710417a9b494dfeaa06a95381e1e' }, "ObjectsInViewport. ", this.store.objects.length), index.h("div", { key: '858e6cff62c24d97f36560ca57c59eb90d7fe253' }, "Scale: ", (_e = this.store.state) === null || _e === void 0 ? void 0 :
|
|
4047
|
+
_e.scale), index.h("div", { key: 'b7dd1926a2a374b34ccb0f1af2f5100bb256a323' }, "ActiveTool: ", (_g = (_f = this.store.state) === null || _f === void 0 ? void 0 : _f.activeTool) === null || _g === void 0 ? void 0 :
|
|
4048
|
+
_g.name), index.h("div", { key: 'e75a98de366a36b9e4a478119db1754df85ce149' }, "HasViewportChanged: ", ((_h = this.store.state) === null || _h === void 0 ? void 0 : _h.hasViewportChanged) ? 'true' : 'false'), index.h("div", { key: 'c78c09fbb6efc97be8cde8bc55d2c9ca724d913e' }, "IsEnabled: ", ((_j = this.store.state) === null || _j === void 0 ? void 0 : _j.isEnabled) ? 'true' : 'false'), index.h("div", { key: '7864d38c808ff8fa01fc24d150ac03ec56eb2111' }, "IsScaling: ", ((_k = this.store.state) === null || _k === void 0 ? void 0 : _k.isScaling) ? 'true' : 'false'), index.h("div", { key: '8ce8b3522065ad221d0cac69366199fa78e6c985' }, "IsPanning: ", ((_l = this.store.state) === null || _l === void 0 ? void 0 : _l.isPanning) ? 'true' : 'false'), index.h("div", { key: 'f2dc96d374c66798ab0ec6f4759a851448375def' }, "IsFocused: ", this.store.state.isFocused ? 'true' : 'false'), index.h("div", { key: '7a8642ee44c2c6d6419da80c2a27b0370c51c67d' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), index.h("div", { key: '9f819435c8ad8c2f836edca397918bd98e2ed34d' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), index.h("div", { key: '252201d35275563594bfe13ae19ded7289d4860a' }, "IsResizeHandleSelected: ", this.store.state.isResizeHandleSelected ? 'true' : 'false'), index.h("div", { key: '45056c11f0733c433f9a91008d021702df660063' }, "IsRotationHandleSelected: ", this.store.state.isRotationHandleSelected ? 'true' : 'false'), index.h("div", { key: 'a6fedfe47aac88ffa4df90da060a28d83f8bf1cf' }, "IsDrawing: ", this.store.state.isDrawing ? 'true' : 'false'), index.h("div", { key: '30b311e5dee2174ba0baea6e5bc9f1fca1a01fac' }, "IsWriting: ", this.store.state.isWriting ? 'true' : 'false'), index.h("div", { key: 'e2d1936e16dd5a268dd1efab8b7e67b567170e9b' }, "CursorX: ", (_m = this.store.state) === null || _m === void 0 ? void 0 :
|
|
4049
|
+
_m.cursorX), index.h("div", { key: 'bb1e751d01b31ca727c01537927808daec4425e9' }, "CursorY: ", (_o = this.store.state) === null || _o === void 0 ? void 0 :
|
|
4050
|
+
_o.cursorY)), index.h("div", { key: 'a5ccd3e025b425660a1dd9ef523db203fcbde610', class: "origin", style: {
|
|
4048
4051
|
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})`,
|
|
4049
4052
|
} }, (_t = this.store.objects) === null || _t === void 0 ? void 0 :
|
|
4050
4053
|
_t.map(object => {
|
|
4051
4054
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
4052
|
-
return (index.h("div", { style: { transform: object === null || object === void 0 ? void 0 : object.transformationMatrix, transformOrigin: 'top left' } }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", key: object.id, id: object.id, class: "object", style: {
|
|
4055
|
+
return (index.h("div", { style: { transform: object === null || object === void 0 ? void 0 : object.transformationMatrix, transformOrigin: 'top left', zIndex: object.zIndex.toString(), position: 'absolute' } }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", key: object.id, id: object.id, class: "object", style: {
|
|
4053
4056
|
height: object === null || object === void 0 ? void 0 : object.totalHeight.toString(),
|
|
4054
4057
|
width: object === null || object === void 0 ? void 0 : object.totalWidth.toString(),
|
|
4055
4058
|
left: '0',
|
|
@@ -4059,7 +4062,6 @@ const KritzelEngine = class {
|
|
|
4059
4062
|
transformOrigin: 'center',
|
|
4060
4063
|
opacity: object.markedForRemoval ? '0.5' : object.opacity.toString(),
|
|
4061
4064
|
pointerEvents: object.markedForRemoval ? 'none' : 'auto',
|
|
4062
|
-
zIndex: object.zIndex.toString(),
|
|
4063
4065
|
} }, index.h("foreignObject", { x: "0", y: "0", width: object.totalWidth.toString(), height: object.totalHeight.toString(), style: {
|
|
4064
4066
|
minHeight: '0',
|
|
4065
4067
|
minWidth: '0',
|
|
@@ -4141,7 +4143,7 @@ const KritzelEngine = class {
|
|
|
4141
4143
|
fill: 'transparent',
|
|
4142
4144
|
cursor: 'grab',
|
|
4143
4145
|
}, visibility: object.selected && !this.isSelecting ? 'visible' : 'hidden' }), index.h("g", { style: { display: this.store.state.debugInfo.showObjectInfo ? 'block' : 'none', pointerEvents: 'none' } }, index.h("foreignObject", { x: object.totalWidth.toString(), y: "0", width: "400px", height: "160px", style: { minHeight: '0', minWidth: '0', display: object.debugInfoVisible ? 'block' : 'none' } }, index.h("div", { style: { width: '100%', height: '100%' } }, index.h("div", { style: { whiteSpace: 'nowrap' } }, "zIndex: ", object.zIndex), index.h("div", { style: { whiteSpace: 'nowrap' } }, "translateX: ", object.translateX), index.h("div", { style: { whiteSpace: 'nowrap' } }, "translateY: ", object.translateY), index.h("div", { style: { whiteSpace: 'nowrap' } }, "width: ", object.width), index.h("div", { style: { whiteSpace: 'nowrap' } }, "height: ", object.height), index.h("div", { style: { whiteSpace: 'nowrap' } }, "scale: ", object.scale), index.h("div", { style: { whiteSpace: 'nowrap' } }, "rotation: ", object.rotation)))))));
|
|
4144
|
-
}), index.h("svg", { key: '
|
|
4146
|
+
}), index.h("svg", { key: 'c2b10893d4bea0e25c98058e640ad8eef6135a80', class: "object", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
4145
4147
|
height: (_u = this.store.state.currentPath) === null || _u === void 0 ? void 0 : _u.height.toString(),
|
|
4146
4148
|
width: (_v = this.store.state.currentPath) === null || _v === void 0 ? void 0 : _v.width.toString(),
|
|
4147
4149
|
left: '0',
|
|
@@ -4151,12 +4153,12 @@ const KritzelEngine = class {
|
|
|
4151
4153
|
transform: (_x = this.store.state.currentPath) === null || _x === void 0 ? void 0 : _x.transformationMatrix,
|
|
4152
4154
|
transformOrigin: 'top left',
|
|
4153
4155
|
overflow: 'visible',
|
|
4154
|
-
}, viewBox: (_y = this.store.state.currentPath) === null || _y === void 0 ? void 0 : _y.viewBox }, index.h("path", { key: '
|
|
4156
|
+
}, viewBox: (_y = this.store.state.currentPath) === null || _y === void 0 ? void 0 : _y.viewBox }, index.h("path", { key: '84b018b26b93e0f382062ac2e24efbce8bc07e3f', 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 && (index.h("kritzel-context-menu", { key: 'c372bd8595656b35d7eed2e38400490e7d71808b', ref: el => (this.contextMenuElement = el), items: this.store.state.contextMenuItems, style: {
|
|
4155
4157
|
position: 'fixed',
|
|
4156
4158
|
left: `${this.store.state.contextMenuX}px`,
|
|
4157
4159
|
top: `${this.store.state.contextMenuY}px`,
|
|
4158
4160
|
zIndex: '10000',
|
|
4159
|
-
}, onActionSelected: event => this.handleContextMenuAction(event) })), ((_2 = this.store.state) === null || _2 === void 0 ? void 0 : _2.activeTool) instanceof KritzelEraserTool && !this.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '
|
|
4161
|
+
}, onActionSelected: event => this.handleContextMenuAction(event) })), ((_2 = this.store.state) === null || _2 === void 0 ? void 0 : _2.activeTool) instanceof KritzelEraserTool && !this.store.state.isScaling && index.h("kritzel-cursor-trail", { key: 'ce67e9df4714a9585bb1a8db3780baff6faeb66d' })));
|
|
4160
4162
|
}
|
|
4161
4163
|
get host() { return index.getElement(this); }
|
|
4162
4164
|
};
|
|
@@ -4172,7 +4174,7 @@ const KritzelFont = class {
|
|
|
4172
4174
|
this.color = '#000000';
|
|
4173
4175
|
}
|
|
4174
4176
|
render() {
|
|
4175
|
-
return (index.h(index.Host, { key: '
|
|
4177
|
+
return (index.h(index.Host, { key: 'd0378237899c5641ae4354f3bffb14e3f8bafb59' }, index.h("div", { key: '1475a6ae39ffc97eb780b30c85015c22cecafa6e', class: "font-preview", style: {
|
|
4176
4178
|
fontFamily: this.fontFamily,
|
|
4177
4179
|
fontSize: `${this.size}px`,
|
|
4178
4180
|
color: this.color
|
|
@@ -4237,7 +4239,7 @@ const KritzelFontSize = class {
|
|
|
4237
4239
|
this.sizeChange.emit(size);
|
|
4238
4240
|
}
|
|
4239
4241
|
render() {
|
|
4240
|
-
return (index.h(index.Host, { key: '
|
|
4242
|
+
return (index.h(index.Host, { key: '1c09a403f1e8278d30b2675c3a6e17e12ec79afa' }, this.sizes.map(size => (index.h("div", { class: {
|
|
4241
4243
|
'size-container': true,
|
|
4242
4244
|
'selected': this.selectedSize === size,
|
|
4243
4245
|
}, onClick: () => this.handleSizeClick(size) }, index.h("kritzel-font", { fontFamily: this.fontFamily, size: size }))))));
|
|
@@ -4281,7 +4283,7 @@ const KritzelStrokeSize = class {
|
|
|
4281
4283
|
this.sizeChange.emit(size);
|
|
4282
4284
|
}
|
|
4283
4285
|
render() {
|
|
4284
|
-
return (index.h(index.Host, { key: '
|
|
4286
|
+
return (index.h(index.Host, { key: '2e2a4d38920e25e1e60788deabe4912b510d0b10' }, this.sizes.map(size => (index.h("div", { class: {
|
|
4285
4287
|
'size-container': true,
|
|
4286
4288
|
'selected': this.selectedSize === size,
|
|
4287
4289
|
}, onClick: () => this.handleSizeClick(size) }, index.h("kritzel-color", { value: '#000000', size: size }))))));
|
|
@@ -4330,23 +4332,23 @@ const KritzelTooltip = class {
|
|
|
4330
4332
|
}
|
|
4331
4333
|
}
|
|
4332
4334
|
render() {
|
|
4333
|
-
return (index.h(index.Host, { key: '
|
|
4335
|
+
return (index.h(index.Host, { key: '3161826337f6957d2e568f52cfe3f57d705af0ed', style: {
|
|
4334
4336
|
position: 'fixed',
|
|
4335
4337
|
zIndex: '9999',
|
|
4336
4338
|
transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
|
|
4337
4339
|
visibility: this.isVisible ? 'visible' : 'hidden',
|
|
4338
4340
|
left: !this.isMobileView ? `${this.positionX}px` : '50%',
|
|
4339
4341
|
marginBottom: `${this.offsetY + this.arrowSize}px`,
|
|
4340
|
-
} }, index.h("div", { key: '
|
|
4342
|
+
} }, index.h("div", { key: '12fc4bc05b7be756102ce3779c9be1d51f3fe13b', class: "tooltip-content", onClick: event => event.stopPropagation() }, index.h("slot", { key: '90f645f8f7cec371aaeda7207a9fb420b02b2ae4' }), index.h("div", { key: '73380e2c6df22bc4a97479a52315e7b34d069fa1', class: "tooltip-arrow-wrapper", style: {
|
|
4341
4343
|
position: 'fixed',
|
|
4342
4344
|
left: this.arrowOffset,
|
|
4343
4345
|
bottom: `-${this.arrowSize * 2}px`,
|
|
4344
|
-
} }, index.h("div", { key: '
|
|
4346
|
+
} }, index.h("div", { key: '2e13cb01a3282e161d3212f4970a93b20ca1a0fe', class: "tooltip-arrow", style: {
|
|
4345
4347
|
borderLeft: `${this.arrowSize}px solid transparent`,
|
|
4346
4348
|
borderRight: `${this.arrowSize}px solid transparent`,
|
|
4347
4349
|
borderTop: `${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,
|
|
4348
4350
|
filter: 'drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))',
|
|
4349
|
-
} }), index.h("div", { key: '
|
|
4351
|
+
} }), index.h("div", { key: '30ddbd00b928c0c734656d6309eaefbae5baf264', class: "tooltip-arrow-rect", style: {
|
|
4350
4352
|
position: 'relative',
|
|
4351
4353
|
width: `${this.arrowSize * 2}px`,
|
|
4352
4354
|
height: `${this.arrowSize}px`,
|
|
@@ -4380,7 +4382,7 @@ const KritzelUtilityPanel = class {
|
|
|
4380
4382
|
this.redo.emit();
|
|
4381
4383
|
}
|
|
4382
4384
|
render() {
|
|
4383
|
-
return (index.h(index.Host, { key: '
|
|
4385
|
+
return (index.h(index.Host, { key: '496ed78323c9899ad363e7f7732a1464d99e1b3b' }, index.h("button", { key: '7b6b9cd238a8d254f032d5752f184d567e9a3096', class: "utility-button", onClick: event => this.handleUndo(event) }, index.h("kritzel-icon", { key: '8ac19f36c6b82f7cc4a0249e60cf429f75c09218', name: "undo" })), index.h("button", { key: '1164727510a968356042507c1e302b85a135baf8', class: "utility-button", onClick: event => this.handleRedo(event) }, index.h("kritzel-icon", { key: '1c6cc414d5841a06853f99316eee7a0a609d5c92', name: "redo" })), index.h("div", { key: 'e6f3342569b1c6b5a6b267cc215bc8e5d259e302', class: "utility-separator" }), index.h("button", { key: '0aa486a543df924c224f3637857cdcdb06f995ea', class: "utility-button" }, index.h("kritzel-icon", { key: '9ee324e03f5df5297916549743539f7f19950768', name: "delete", onClick: () => this.delete.emit() }))));
|
|
4384
4386
|
}
|
|
4385
4387
|
};
|
|
4386
4388
|
KritzelUtilityPanel.style = kritzelUtilityPanelCss;
|