@netless/window-manager 0.4.42 → 0.4.44
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/CHANGELOG.md +8 -0
- package/dist/View/MainView.d.ts +3 -0
- package/dist/index.cjs.js +12 -12
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +76 -28
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +12 -12
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/typings.d.ts +1 -1
- package/package.json +1 -1
- package/src/Cursor/Cursor.svelte +6 -2
- package/src/Cursor/Cursor.ts +9 -2
- package/src/Cursor/icons.ts +6 -0
- package/src/Register/index.ts +1 -1
- package/src/View/MainView.ts +9 -2
- package/src/image/pencil-eraser-1.svg +3 -0
- package/src/image/pencil-eraser-2.svg +3 -0
- package/src/image/pencil-eraser-3.svg +3 -0
- package/src/index.ts +1 -0
- package/src/style.css +14 -0
- package/src/typings.ts +1 -1
package/dist/index.es.js
CHANGED
@@ -20,7 +20,7 @@ var __spreadProps = (a2, b2) => __defProps(a2, __getOwnPropDescs(b2));
|
|
20
20
|
import pRetry from "p-retry";
|
21
21
|
import Emittery from "emittery";
|
22
22
|
import { debounce, isEqual, omit, isObject, has, get, size as size$1, mapValues, noop as noop$2, pick, isEmpty, isInteger, orderBy, isFunction, throttle, isNumber, isNull } from "lodash";
|
23
|
-
import { ScenePathType, UpdateEventKind, listenUpdated, unlistenUpdated, reaction, autorun, toJS, listenDisposed, unlistenDisposed, AnimationMode, isPlayer, isRoom, WhiteVersion, ApplianceNames, RoomPhase, InvisiblePlugin
|
23
|
+
import { ScenePathType, UpdateEventKind, listenUpdated, unlistenUpdated, reaction, autorun, toJS, listenDisposed, unlistenDisposed, ViewMode, AnimationMode, isPlayer, isRoom, WhiteVersion, ApplianceNames, RoomPhase, InvisiblePlugin } from "white-web-sdk";
|
24
24
|
import { v4 } from "uuid";
|
25
25
|
import { genUID, SideEffectManager } from "side-effect-manager";
|
26
26
|
import { ResizeObserver as ResizeObserver$3 } from "@juggle/resize-observer";
|
@@ -303,7 +303,7 @@ class AppRegister {
|
|
303
303
|
downloadApp = async () => {
|
304
304
|
let appClass = await paramSrc();
|
305
305
|
if (appClass) {
|
306
|
-
if (appClass.__esModule) {
|
306
|
+
if (appClass.__esModule || appClass.default) {
|
307
307
|
appClass = appClass.default;
|
308
308
|
}
|
309
309
|
return appClass;
|
@@ -1753,6 +1753,7 @@ class MainViewProxy {
|
|
1753
1753
|
this.started = false;
|
1754
1754
|
this.mainViewIsAddListener = false;
|
1755
1755
|
this.store = this.manager.store;
|
1756
|
+
this.viewMode = this.manager.windowManger.viewMode;
|
1756
1757
|
this.sideEffectManager = new SideEffectManager();
|
1757
1758
|
this.startListenWritableChange = () => {
|
1758
1759
|
this.sideEffectManager.add(() => {
|
@@ -1776,7 +1777,7 @@ class MainViewProxy {
|
|
1776
1777
|
}, { fireImmediately: true });
|
1777
1778
|
};
|
1778
1779
|
this.sizeChangeHandler = debounce((size2) => {
|
1779
|
-
if (size2) {
|
1780
|
+
if (size2 && this.viewMode === ViewMode.Broadcaster) {
|
1780
1781
|
this.moveCameraToContian(size2);
|
1781
1782
|
this.moveCamera(this.mainViewCamera);
|
1782
1783
|
}
|
@@ -1786,6 +1787,8 @@ class MainViewProxy {
|
|
1786
1787
|
this.sizeChangeHandler(size2);
|
1787
1788
|
};
|
1788
1789
|
this.onCameraUpdatedByDevice = (camera) => {
|
1790
|
+
if (this.viewMode === ViewMode.Follower)
|
1791
|
+
return;
|
1789
1792
|
this.store.setMainViewCamera(__spreadProps(__spreadValues({}, camera), { id: this.manager.uid }));
|
1790
1793
|
if (!isEqual(this.mainViewSize, __spreadProps(__spreadValues({}, this.mainView.size), { id: this.manager.uid }))) {
|
1791
1794
|
this.setMainViewSize(this.view.size);
|
@@ -1800,6 +1803,9 @@ class MainViewProxy {
|
|
1800
1803
|
this.onCameraOrSizeUpdated = () => {
|
1801
1804
|
callbacks$1.emit("cameraStateChange", this.cameraState);
|
1802
1805
|
};
|
1806
|
+
this.setViewMode = (mode) => {
|
1807
|
+
this.viewMode = mode;
|
1808
|
+
};
|
1803
1809
|
this.mainView = this.createMainView();
|
1804
1810
|
this.moveCameraSizeByAttributes();
|
1805
1811
|
emitter.once("mainViewMounted").then(() => {
|
@@ -1826,6 +1832,8 @@ class MainViewProxy {
|
|
1826
1832
|
});
|
1827
1833
|
}
|
1828
1834
|
ensureCameraAndSize() {
|
1835
|
+
if (this.viewMode !== ViewMode.Broadcaster)
|
1836
|
+
return;
|
1829
1837
|
if (!this.mainViewCamera || !this.mainViewSize) {
|
1830
1838
|
this.manager.dispatchInternalEvent(Events.InitMainViewCamera);
|
1831
1839
|
this.setCameraAndSize();
|
@@ -6676,8 +6684,9 @@ function create_if_block(ctx) {
|
|
6676
6684
|
let span;
|
6677
6685
|
let t1;
|
6678
6686
|
let t2;
|
6679
|
-
let
|
6680
|
-
let
|
6687
|
+
let div1_class_value;
|
6688
|
+
let if_block0 = ctx[16] && create_if_block_2(ctx);
|
6689
|
+
let if_block1 = ctx[17] && create_if_block_1(ctx);
|
6681
6690
|
return {
|
6682
6691
|
c() {
|
6683
6692
|
div1 = element("div");
|
@@ -6698,7 +6707,7 @@ function create_if_block(ctx) {
|
|
6698
6707
|
set_style(div0, "background-color", ctx[2]);
|
6699
6708
|
set_style(div0, "color", ctx[9]);
|
6700
6709
|
set_style(div0, "opacity", ctx[11]);
|
6701
|
-
attr(div1, "class", "netless-window-manager-cursor-name");
|
6710
|
+
attr(div1, "class", div1_class_value = "netless-window-manager-cursor-name " + ctx[14] + " " + ctx[13]);
|
6702
6711
|
},
|
6703
6712
|
m(target, anchor) {
|
6704
6713
|
insert(target, div1, anchor);
|
@@ -6713,7 +6722,7 @@ function create_if_block(ctx) {
|
|
6713
6722
|
if_block1.m(div0, null);
|
6714
6723
|
},
|
6715
6724
|
p(ctx2, dirty) {
|
6716
|
-
if (ctx2[
|
6725
|
+
if (ctx2[16]) {
|
6717
6726
|
if (if_block0) {
|
6718
6727
|
if_block0.p(ctx2, dirty);
|
6719
6728
|
} else {
|
@@ -6727,7 +6736,7 @@ function create_if_block(ctx) {
|
|
6727
6736
|
}
|
6728
6737
|
if (dirty & 1)
|
6729
6738
|
set_data(t1, ctx2[0]);
|
6730
|
-
if (ctx2[
|
6739
|
+
if (ctx2[17]) {
|
6731
6740
|
if (if_block1) {
|
6732
6741
|
if_block1.p(ctx2, dirty);
|
6733
6742
|
} else {
|
@@ -6751,6 +6760,9 @@ function create_if_block(ctx) {
|
|
6751
6760
|
if (dirty & 2048) {
|
6752
6761
|
set_style(div0, "opacity", ctx2[11]);
|
6753
6762
|
}
|
6763
|
+
if (dirty & 24576 && div1_class_value !== (div1_class_value = "netless-window-manager-cursor-name " + ctx2[14] + " " + ctx2[13])) {
|
6764
|
+
attr(div1, "class", div1_class_value);
|
6765
|
+
}
|
6754
6766
|
},
|
6755
6767
|
d(detaching) {
|
6756
6768
|
if (detaching)
|
@@ -6769,7 +6781,7 @@ function create_if_block_2(ctx) {
|
|
6769
6781
|
c() {
|
6770
6782
|
img = element("img");
|
6771
6783
|
attr(img, "class", "netless-window-manager-cursor-selector-avatar");
|
6772
|
-
attr(img, "style", ctx[
|
6784
|
+
attr(img, "style", ctx[18]());
|
6773
6785
|
if (!src_url_equal(img.src, img_src_value = ctx[7]))
|
6774
6786
|
attr(img, "src", img_src_value);
|
6775
6787
|
attr(img, "alt", "avatar");
|
@@ -6831,14 +6843,14 @@ function create_fragment(ctx) {
|
|
6831
6843
|
t2 = space();
|
6832
6844
|
div0 = element("div");
|
6833
6845
|
img = element("img");
|
6834
|
-
attr(img, "class", img_class_value = "netless-window-manager-cursor-" + ctx[3] + "-image");
|
6846
|
+
attr(img, "class", img_class_value = "netless-window-manager-cursor-" + ctx[3] + "-image " + ctx[13]);
|
6835
6847
|
if (!src_url_equal(img.src, img_src_value = ctx[6]))
|
6836
6848
|
attr(img, "src", img_src_value);
|
6837
6849
|
attr(img, "alt", ctx[3]);
|
6838
6850
|
attr(div0, "class", "cursor-image-wrapper");
|
6839
6851
|
attr(div1, "class", "netless-window-manager-cursor-mid");
|
6840
6852
|
set_style(div1, "transform", "translateX(" + ctx[4] + "px) translateY(" + ctx[5] + "px)");
|
6841
|
-
set_style(div1, "display", ctx[
|
6853
|
+
set_style(div1, "display", ctx[15]);
|
6842
6854
|
},
|
6843
6855
|
m(target, anchor) {
|
6844
6856
|
insert(target, div1, anchor);
|
@@ -6861,7 +6873,7 @@ function create_fragment(ctx) {
|
|
6861
6873
|
if_block.d(1);
|
6862
6874
|
if_block = null;
|
6863
6875
|
}
|
6864
|
-
if (dirty &
|
6876
|
+
if (dirty & 8200 && img_class_value !== (img_class_value = "netless-window-manager-cursor-" + ctx2[3] + "-image " + ctx2[13])) {
|
6865
6877
|
attr(img, "class", img_class_value);
|
6866
6878
|
}
|
6867
6879
|
if (dirty & 64 && !src_url_equal(img.src, img_src_value = ctx2[6])) {
|
@@ -6873,8 +6885,8 @@ function create_fragment(ctx) {
|
|
6873
6885
|
if (dirty & 48) {
|
6874
6886
|
set_style(div1, "transform", "translateX(" + ctx2[4] + "px) translateY(" + ctx2[5] + "px)");
|
6875
6887
|
}
|
6876
|
-
if (dirty &
|
6877
|
-
set_style(div1, "display", ctx2[
|
6888
|
+
if (dirty & 32768) {
|
6889
|
+
set_style(div1, "display", ctx2[15]);
|
6878
6890
|
}
|
6879
6891
|
},
|
6880
6892
|
i: noop,
|
@@ -6893,6 +6905,9 @@ function instance($$self, $$props, $$invalidate) {
|
|
6893
6905
|
let hasAvatar;
|
6894
6906
|
let display;
|
6895
6907
|
let isLaserPointer;
|
6908
|
+
let isLaserPointerPencilEraser;
|
6909
|
+
let offset;
|
6910
|
+
let pencilEraserSize3ImageOffset;
|
6896
6911
|
let { cursorName } = $$props;
|
6897
6912
|
let { tagName } = $$props;
|
6898
6913
|
let { backgroundColor } = $$props;
|
@@ -6906,6 +6921,7 @@ function instance($$self, $$props, $$invalidate) {
|
|
6906
6921
|
let { color: color2 } = $$props;
|
6907
6922
|
let { cursorTagBackgroundColor } = $$props;
|
6908
6923
|
let { opacity } = $$props;
|
6924
|
+
let { pencilEraserSize } = $$props;
|
6909
6925
|
const computedAvatarStyle = () => {
|
6910
6926
|
return Object.entries({
|
6911
6927
|
width: (hasName ? 19 : 28) + "px",
|
@@ -6931,7 +6947,7 @@ function instance($$self, $$props, $$invalidate) {
|
|
6931
6947
|
if ("src" in $$props2)
|
6932
6948
|
$$invalidate(6, src = $$props2.src);
|
6933
6949
|
if ("visible" in $$props2)
|
6934
|
-
$$invalidate(
|
6950
|
+
$$invalidate(19, visible = $$props2.visible);
|
6935
6951
|
if ("avatar" in $$props2)
|
6936
6952
|
$$invalidate(7, avatar = $$props2.avatar);
|
6937
6953
|
if ("theme" in $$props2)
|
@@ -6942,23 +6958,34 @@ function instance($$self, $$props, $$invalidate) {
|
|
6942
6958
|
$$invalidate(10, cursorTagBackgroundColor = $$props2.cursorTagBackgroundColor);
|
6943
6959
|
if ("opacity" in $$props2)
|
6944
6960
|
$$invalidate(11, opacity = $$props2.opacity);
|
6961
|
+
if ("pencilEraserSize" in $$props2)
|
6962
|
+
$$invalidate(20, pencilEraserSize = $$props2.pencilEraserSize);
|
6945
6963
|
};
|
6946
6964
|
$$self.$$.update = () => {
|
6947
6965
|
if ($$self.$$.dirty & 1) {
|
6948
6966
|
hasName = !isEmpty(cursorName);
|
6949
6967
|
}
|
6950
6968
|
if ($$self.$$.dirty & 2) {
|
6951
|
-
$$invalidate(
|
6969
|
+
$$invalidate(17, hasTagName = !isEmpty(tagName));
|
6952
6970
|
}
|
6953
6971
|
if ($$self.$$.dirty & 128) {
|
6954
|
-
$$invalidate(
|
6972
|
+
$$invalidate(16, hasAvatar = !isEmpty(avatar));
|
6955
6973
|
}
|
6956
|
-
if ($$self.$$.dirty &
|
6957
|
-
$$invalidate(
|
6974
|
+
if ($$self.$$.dirty & 524288) {
|
6975
|
+
$$invalidate(15, display = visible ? "initial" : "none");
|
6958
6976
|
}
|
6959
6977
|
if ($$self.$$.dirty & 8) {
|
6960
6978
|
$$invalidate(12, isLaserPointer = appliance === ApplianceNames.laserPointer);
|
6961
6979
|
}
|
6980
|
+
if ($$self.$$.dirty & 4104) {
|
6981
|
+
$$invalidate(21, isLaserPointerPencilEraser = isLaserPointer || appliance === ApplianceNames.pencilEraser);
|
6982
|
+
}
|
6983
|
+
if ($$self.$$.dirty & 2097152) {
|
6984
|
+
$$invalidate(14, offset = isLaserPointerPencilEraser ? "netless-window-manager-laserPointer-pencilEraser-offset" : "");
|
6985
|
+
}
|
6986
|
+
if ($$self.$$.dirty & 1048576) {
|
6987
|
+
$$invalidate(13, pencilEraserSize3ImageOffset = pencilEraserSize === 3 ? "netless-window-manager-pencilEraser-3-offset" : "");
|
6988
|
+
}
|
6962
6989
|
};
|
6963
6990
|
return [
|
6964
6991
|
cursorName,
|
@@ -6974,11 +7001,15 @@ function instance($$self, $$props, $$invalidate) {
|
|
6974
7001
|
cursorTagBackgroundColor,
|
6975
7002
|
opacity,
|
6976
7003
|
isLaserPointer,
|
7004
|
+
pencilEraserSize3ImageOffset,
|
7005
|
+
offset,
|
6977
7006
|
display,
|
6978
7007
|
hasAvatar,
|
6979
7008
|
hasTagName,
|
6980
7009
|
computedAvatarStyle,
|
6981
|
-
visible
|
7010
|
+
visible,
|
7011
|
+
pencilEraserSize,
|
7012
|
+
isLaserPointerPencilEraser
|
6982
7013
|
];
|
6983
7014
|
}
|
6984
7015
|
class Cursor$1 extends SvelteComponent {
|
@@ -6992,12 +7023,13 @@ class Cursor$1 extends SvelteComponent {
|
|
6992
7023
|
x: 4,
|
6993
7024
|
y: 5,
|
6994
7025
|
src: 6,
|
6995
|
-
visible:
|
7026
|
+
visible: 19,
|
6996
7027
|
avatar: 7,
|
6997
7028
|
theme: 8,
|
6998
7029
|
color: 9,
|
6999
7030
|
cursorTagBackgroundColor: 10,
|
7000
|
-
opacity: 11
|
7031
|
+
opacity: 11,
|
7032
|
+
pencilEraserSize: 20
|
7001
7033
|
});
|
7002
7034
|
}
|
7003
7035
|
}
|
@@ -7118,6 +7150,7 @@ class Cursor {
|
|
7118
7150
|
}
|
7119
7151
|
}
|
7120
7152
|
initProps() {
|
7153
|
+
var _a;
|
7121
7154
|
return {
|
7122
7155
|
x: 0,
|
7123
7156
|
y: 0,
|
@@ -7131,14 +7164,22 @@ class Cursor {
|
|
7131
7164
|
color: this.memberCursorTextColor,
|
7132
7165
|
cursorTagBackgroundColor: this.memberCursorTagBackgroundColor,
|
7133
7166
|
opacity: this.memberOpacity,
|
7134
|
-
tagName: this.memberTagName
|
7167
|
+
tagName: this.memberTagName,
|
7168
|
+
pencilEraserSize: (_a = this.member) == null ? void 0 : _a.memberState.pencilEraserSize
|
7135
7169
|
};
|
7136
7170
|
}
|
7137
7171
|
getIcon() {
|
7172
|
+
var _a;
|
7138
7173
|
if (this.member) {
|
7139
7174
|
const icons = this.cursorManager.applianceIcons;
|
7140
|
-
|
7141
|
-
|
7175
|
+
let applianceSrc = icons[ApplianceNames.shape];
|
7176
|
+
if (this.memberApplianceName === ApplianceNames.pencilEraser) {
|
7177
|
+
const size2 = ((_a = this.member) == null ? void 0 : _a.memberState.pencilEraserSize) || 1;
|
7178
|
+
applianceSrc = icons[`${this.memberApplianceName}${size2}`];
|
7179
|
+
} else {
|
7180
|
+
applianceSrc = icons[this.memberApplianceName || ApplianceNames.shape];
|
7181
|
+
}
|
7182
|
+
return applianceSrc;
|
7142
7183
|
}
|
7143
7184
|
}
|
7144
7185
|
updateMember() {
|
@@ -7172,13 +7213,19 @@ var eraser = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvr
|
|
7172
7213
|
var shape = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+";
|
7173
7214
|
var text = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=";
|
7174
7215
|
var laser = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4IiB2aWV3Qm94PSIwIDAgMjggMjgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU1LjEgKDc4MTM2KSAtIGh0dHBzOi8vc2tldGNoYXBwLmNvbSAtLT4KICAgIDx0aXRsZT7nvJbnu4QgMjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIgeD0iLTEyMC4wJSIgeT0iLTEyMC4wJSIgd2lkdGg9IjM0MC4wJSIgaGVpZ2h0PSIzNDAuMCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNCIgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Iue8lue7hC0yIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5LjAwMDAwMCwgOS4wMDAwMDApIiBmaWxsPSIjRkYwMTAwIj4KICAgICAgICAgICAgPGNpcmNsZSBpZD0i5qSt5ZyG5b2iIiBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiBjeD0iNSIgY3k9IjUiIHI9IjUiPjwvY2lyY2xlPgogICAgICAgICAgICA8cGF0aCBkPSJNNSw4IEM2LjY1Njg1NDI1LDggOCw2LjY1Njg1NDI1IDgsNSBDOCwzLjM0MzE0NTc1IDYuNjU2ODU0MjUsMiA1LDIgQzMuMzQzMTQ1NzUsMiAyLDMuMzQzMTQ1NzUgMiw1IEMyLDYuNjU2ODU0MjUgMy4zNDMxNDU3NSw4IDUsOCBaIE01LDYuMjg1NzE0MjkgQzQuMjg5OTE5NjEsNi4yODU3MTQyOSAzLjcxNDI4NTcxLDUuNzEwMDgwMzkgMy43MTQyODU3MSw1IEMzLjcxNDI4NTcxLDQuMjg5OTE5NjEgNC4yODk5MTk2MSwzLjcxNDI4NTcxIDUsMy43MTQyODU3MSBDNS43MTAwODAzOSwzLjcxNDI4NTcxIDYuMjg1NzE0MjksNC4yODk5MTk2MSA2LjI4NTcxNDI5LDUgQzYuMjg1NzE0MjksNS43MTAwODAzOSA1LjcxMDA4MDM5LDYuMjg1NzE0MjkgNSw2LjI4NTcxNDI5IFoiIGlkPSLmpK3lnIblvaIiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+";
|
7216
|
+
var pencilEraser1 = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAxOCAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIyNSIgcng9IjMuNSIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC4zNSIgc3Ryb2tlPSJ3aGl0ZSIvPgo8L3N2Zz4K";
|
7217
|
+
var pencilEraser2 = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMzQiIHZpZXdCb3g9IjAgMCAyNiAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIyNSIgaGVpZ2h0PSIzMyIgcng9IjMuNSIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC4zNSIgc3Ryb2tlPSJ3aGl0ZSIvPgo8L3N2Zz4K";
|
7218
|
+
var pencilEraser3 = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzQiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCAzNCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIzMyIgaGVpZ2h0PSI0OSIgcng9IjMuNSIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC4zNSIgc3Ryb2tlPSJ3aGl0ZSIvPgo8L3N2Zz4K";
|
7175
7219
|
const ApplianceMap = {
|
7176
7220
|
[ApplianceNames.pencil]: pencil,
|
7177
7221
|
[ApplianceNames.selector]: selector,
|
7178
7222
|
[ApplianceNames.eraser]: eraser,
|
7179
7223
|
[ApplianceNames.shape]: shape,
|
7180
7224
|
[ApplianceNames.text]: text,
|
7181
|
-
[ApplianceNames.laserPointer]: laser
|
7225
|
+
[ApplianceNames.laserPointer]: laser,
|
7226
|
+
["pencilEraser1"]: pencilEraser1,
|
7227
|
+
["pencilEraser2"]: pencilEraser2,
|
7228
|
+
["pencilEraser3"]: pencilEraser3
|
7182
7229
|
};
|
7183
7230
|
class CursorManager {
|
7184
7231
|
constructor(manager, enableCursor, applianceIcons) {
|
@@ -16688,7 +16735,7 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
|
|
16688
16735
|
const _WindowManager = class extends InvisiblePlugin {
|
16689
16736
|
constructor(context) {
|
16690
16737
|
super(context);
|
16691
|
-
this.version = "0.4.
|
16738
|
+
this.version = "0.4.44";
|
16692
16739
|
this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "0.2.27", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^0.1.5", "uuid": "^7.0.3", "video.js": ">=7" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.9", "@netless/app-media-player": "0.1.0-beta.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@sveltejs/vite-plugin-svelte": "^1.0.0-next.22", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.4", "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.1", "cypress": "^8.7.0", "dotenv": "^10.0.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-svelte3": "^3.2.0", "jsdom": "^19.0.0", "less": "^4.1.1", "prettier": "^2.3.2", "prettier-plugin-svelte": "^2.4.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^3.14.1", "svelte": "^3.42.4", "typescript": "^4.5.5", "vite": "^2.5.3", "vitest": "^0.14.1", "white-web-sdk": "2.16.33" } };
|
16693
16740
|
this.emitter = callbacks$1;
|
16694
16741
|
this.viewMode = ViewMode.Broadcaster;
|
@@ -17026,7 +17073,7 @@ const _WindowManager = class extends InvisiblePlugin {
|
|
17026
17073
|
addEmitterOnceListener(`destroy-${kind2}`, listener);
|
17027
17074
|
}
|
17028
17075
|
setViewMode(mode) {
|
17029
|
-
var _a, _b, _c;
|
17076
|
+
var _a, _b, _c, _d;
|
17030
17077
|
if (mode === ViewMode.Broadcaster) {
|
17031
17078
|
if (this.canOperate) {
|
17032
17079
|
(_a = this.appManager) == null ? void 0 : _a.mainViewProxy.setCameraAndSize();
|
@@ -17037,6 +17084,7 @@ const _WindowManager = class extends InvisiblePlugin {
|
|
17037
17084
|
(_c = this.appManager) == null ? void 0 : _c.mainViewProxy.stop();
|
17038
17085
|
}
|
17039
17086
|
this.viewMode = mode;
|
17087
|
+
(_d = this.appManager) == null ? void 0 : _d.mainViewProxy.setViewMode(mode);
|
17040
17088
|
}
|
17041
17089
|
setBoxState(boxState) {
|
17042
17090
|
if (!this.canOperate)
|