@infinite-canvas-tutorial/webcomponents
Version:
WebComponents UI implementation
48 lines • 2.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Comment = void 0;
const ecs_1 = require("@infinite-canvas-tutorial/ecs");
const __1 = require("..");
const COMMENT_CURSOR = 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALzSURBVHgB7VZNSxtRFH0T86WtMYlSkTZBgwQkG4noX+hC6N6FUAql3bixiy6lu1q6EAqKgroriERR/4A/wW5aoRbUCoW0NLT5ziRze840oWma2snE4iYHLm/y5t1373v33DNRqoMOOujgmtFlYY1W/zwxMeEyDKN7cnJSTk9PDfWfYQafm5vz7e/vP61UKm9E5DNMh32CvT04OHg8Ozt7o379lQY/Pj5+gECF7e1tGR4eFo/HI5g23G63jI+PGzs7O3gtXxKJxP2qn0NdAcxNTk5OXmYyGQmHw8bIyIhsbm7K+fm56LouFxcXsry8LKOjo4bf7zey2SxL8qLe3y54cm1ra+thLpcTnLSysLDAUwpq/9tYw/z8vLmOyR4dHT1S7WJ6ejqAfVOBQMDcnED9pRlq80ySN4XH4szMzIBqgw8a6vlkd3eX11u5LHhjEuQIuQJePLObAJ1c2PB9PB6XlZUVsQqWZWNjQyKRiBQKhXexWMytbKALhPKz1ch2Eq0VkKD0A1J9fX0BZUFnGtmqOZ3OboyBYrGoBgcHFTZTVjE0NKToB/S6XC7u888yNCbgQEDOmVFRCqVp1kuZTCaV1+vl47d8Pl+xk4CGBGyzd29vT6H2vIU0dKGkqgdpBe5gMBhCEjqdQSZLta91AUWJ3bO+vv4c/jeVtW9NewnUglMv4EsdSI+NjcXh71c2WtEN8QljkzITKJfLTTWgUREpQmC/gbrL4uIiT08h8iob4A3cwZ4FJsC2KpVK5k3UG2osZ2dnZt9TfPidYPDDw8ME/CKwfmVTiJw+ny8IAn1YWloyv3rqJ5H+MLBdotGoQDV5Cfrq6uorzEdht3kQZRPsioGpqam76XSaKsQ7Lv/FsCT9cW1t7XUoFLoHv1g1uKeV0zdbSPayhv09PT23MLoa1pk3A26UYDmHw5FCmdhyX2HfYbpqAc0SYOtQxXqrI3/XxElTv8pAolL28lVjEi3/RdMumXfUmTS8q+eHoWwITgc1/ACISOO+I0u03wAAAABJRU5ErkJggg==") 4 28, pointer';
class Comment extends ecs_1.System {
constructor() {
super();
this.cameras = this.query((q) => q.current.with(ecs_1.Camera));
this.query((q) => q.using(ecs_1.Canvas, ecs_1.Input, ecs_1.ComputedCamera).read.and.using(ecs_1.Cursor).write);
}
execute() {
this.cameras.current.forEach((camera) => {
const { canvas } = camera.read(ecs_1.Camera);
if (!canvas) {
return;
}
const api = canvas.read(ecs_1.Canvas).api;
const pen = api.getAppState().penbarSelected;
if (pen !== ecs_1.Pen.COMMENT) {
return;
}
const cursor = canvas.write(ecs_1.Cursor);
if (cursor.value !== COMMENT_CURSOR) {
cursor.value = COMMENT_CURSOR;
}
const input = canvas.read(ecs_1.Input);
if (input.pointerDownTrigger) {
const [viewportX, viewportY] = input.pointerViewport;
const { x: canvasX, y: canvasY } = api.viewport2Canvas({
x: viewportX,
y: viewportY,
});
api.element.dispatchEvent(new CustomEvent(__1.Event.COMMENT_ADDED, {
detail: {
canvasX,
canvasY,
viewportX,
viewportY,
},
}));
}
});
}
}
exports.Comment = Comment;
//# sourceMappingURL=Comment.js.map