drawboard-microservice 1.0.6 → 1.0.8
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/index.css +1 -0
- package/dist/index.js +41234 -0
- package/package.json +14 -4
- package/dist-app/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist-app/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist-app/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist-app/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist-app/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist-app/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist-app/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist-app/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist-app/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist-app/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist-app/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist-app/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist-app/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist-app/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist-app/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist-app/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist-app/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist-app/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist-app/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist-app/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist-app/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist-app/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist-app/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist-app/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist-app/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist-app/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist-app/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist-app/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist-app/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist-app/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist-app/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist-app/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist-app/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist-app/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist-app/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist-app/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist-app/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist-app/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist-app/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist-app/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist-app/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist-app/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist-app/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist-app/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist-app/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist-app/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist-app/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist-app/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist-app/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist-app/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist-app/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist-app/assets/index-DxkNA4rg.js +0 -307
- package/dist-app/assets/index-DxkNA4rg.js.map +0 -1
- package/dist-app/assets/index-uvzSCXM2.css +0 -1
- package/dist-app/index.html +0 -13
- package/dockerfile +0 -14
- package/eslint.config.js +0 -23
- package/index.html +0 -12
- package/public/icon-align-64-default.png +0 -0
- package/public/icon-align-justify-64-active.png +0 -0
- package/public/icon-align-justify-64-default 1.png +0 -0
- package/public/icon-align-justify-64-default.png +0 -0
- package/public/icon-align-justify-64-hover.png +0 -0
- package/public/icon-align-left-64-active.png +0 -0
- package/public/icon-align-left-64-default 1.png +0 -0
- package/public/icon-align-left-64-default.png +0 -0
- package/public/icon-align-left-64-hover.png +0 -0
- package/public/icon-align-right-64-active.png +0 -0
- package/public/icon-align-right-64-default.png +0 -0
- package/public/icon-align-right-64-hover.png +0 -0
- package/public/icon-bold-64-active.png +0 -0
- package/public/icon-bold-64-default 1.png +0 -0
- package/public/icon-bold-64-default.png +0 -0
- package/public/icon-bold-64-hover.png +0 -0
- package/public/icon-broom-64-active.png +0 -0
- package/public/icon-broom-64-default.png +0 -0
- package/public/icon-broom-64-hover.png +0 -0
- package/public/icon-cancel-64-active.png +0 -0
- package/public/icon-cancel-64-default.png +0 -0
- package/public/icon-cancel-64-hover.png +0 -0
- package/public/icon-change-64-active.png +0 -0
- package/public/icon-change-64-default.png +0 -0
- package/public/icon-change-64-hover.png +0 -0
- package/public/icon-circle-64-active.png +0 -0
- package/public/icon-circle-64-default.png +0 -0
- package/public/icon-circle-64-hover.png +0 -0
- package/public/icon-close-64-active.png +0 -0
- package/public/icon-close-64-default.png +0 -0
- package/public/icon-close-64-hover.png +0 -0
- package/public/icon-cursor-64-active.png +0 -0
- package/public/icon-cursor-64-default.png +0 -0
- package/public/icon-cursor-64-hover.png +0 -0
- package/public/icon-delete-trash-64-active.png +0 -0
- package/public/icon-delete-trash-64-default.png +0 -0
- package/public/icon-delete-trash-64-hover.png +0 -0
- package/public/icon-done-64-active.png +0 -0
- package/public/icon-done-64-default.png +0 -0
- package/public/icon-done-64-hover.png +0 -0
- package/public/icon-edit-text-file-64-active.png +0 -0
- package/public/icon-edit-text-file-64-default 1.png +0 -0
- package/public/icon-edit-text-file-64-default.png +0 -0
- package/public/icon-edit-text-file-64-hover.png +0 -0
- package/public/icon-eraser-64-active.png +0 -0
- package/public/icon-eraser-64-default.png +0 -0
- package/public/icon-eraser-64-hover.png +0 -0
- package/public/icon-font-style-64-active.png +0 -0
- package/public/icon-font-style-64-default.png +0 -0
- package/public/icon-font-style-64-hover.png +0 -0
- package/public/icon-formula-fx-64-active.png +0 -0
- package/public/icon-formula-fx-64-default.png +0 -0
- package/public/icon-formula-fx-64-hover.png +0 -0
- package/public/icon-highlighter-64-active.png +0 -0
- package/public/icon-highlighter-64-default.png +0 -0
- package/public/icon-highlighter-64-hover.png +0 -0
- package/public/icon-installing-64-active.png +0 -0
- package/public/icon-installing-64-default.png +0 -0
- package/public/icon-installing-64-hover.png +0 -0
- package/public/icon-italic-64-active.png +0 -0
- package/public/icon-italic-64-default 1.png +0 -0
- package/public/icon-italic-64-default.png +0 -0
- package/public/icon-italic-64-hover.png +0 -0
- package/public/icon-line-64-active.png +0 -0
- package/public/icon-line-64-default.png +0 -0
- package/public/icon-line-64-hover.png +0 -0
- package/public/icon-pen-64-active.png +0 -0
- package/public/icon-pen-64-default.png +0 -0
- package/public/icon-pen-64-hover.png +0 -0
- package/public/icon-pin-64-active.png +0 -0
- package/public/icon-pin-64-default.png +0 -0
- package/public/icon-pin-64-hover.png +0 -0
- package/public/icon-redo-64-active.png +0 -0
- package/public/icon-redo-64-default.png +0 -0
- package/public/icon-redo-64-hover.png +0 -0
- package/public/icon-return-64-active.png +0 -0
- package/public/icon-return-64-default.png +0 -0
- package/public/icon-return-64-hover.png +0 -0
- package/public/icon-select-active.png +0 -0
- package/public/icon-select-default.png +0 -0
- package/public/icon-select-hover.png +0 -0
- package/public/icon-square-64-active.png +0 -0
- package/public/icon-square-64-default.png +0 -0
- package/public/icon-square-64-hover.png +0 -0
- package/public/icon-strikethrough-64-active.png +0 -0
- package/public/icon-strikethrough-64-default 1.png +0 -0
- package/public/icon-strikethrough-64-default.png +0 -0
- package/public/icon-strikethrough-64-hover.png +0 -0
- package/public/icon-text-64-active.png +0 -0
- package/public/icon-text-64-default.png +0 -0
- package/public/icon-text-64-hover.png +0 -0
- package/public/icon-u-turn-to-right-64-active.png +0 -0
- package/public/icon-u-turn-to-right-64-default.png +0 -0
- package/public/icon-u-turn-to-right-64-hover.png +0 -0
- package/public/icon-under-64-active.png +0 -0
- package/public/icon-under-64-default 1.png +0 -0
- package/public/icon-under-64-default.png +0 -0
- package/public/icon-under-64-hover.png +0 -0
- package/src/App.css +0 -887
- package/src/App.tsx +0 -1468
- package/src/assets/icon-broom-64-active.png +0 -0
- package/src/assets/icon-broom-64-default.png +0 -0
- package/src/assets/icon-broom-64-hover.png +0 -0
- package/src/assets/icon-cancel-64-active.png +0 -0
- package/src/assets/icon-cancel-64-default.png +0 -0
- package/src/assets/icon-cancel-64-hover.png +0 -0
- package/src/assets/icon-change-64-active.png +0 -0
- package/src/assets/icon-change-64-default.png +0 -0
- package/src/assets/icon-change-64-hover.png +0 -0
- package/src/assets/icon-circle-64-active.png +0 -0
- package/src/assets/icon-circle-64-default.png +0 -0
- package/src/assets/icon-circle-64-hover.png +0 -0
- package/src/assets/icon-cursor-64-active.png +0 -0
- package/src/assets/icon-cursor-64-default.png +0 -0
- package/src/assets/icon-cursor-64-hover.png +0 -0
- package/src/assets/icon-delete-trash-64-active.png +0 -0
- package/src/assets/icon-delete-trash-64-default.png +0 -0
- package/src/assets/icon-delete-trash-64-hover.png +0 -0
- package/src/assets/icon-eraser-64-active.png +0 -0
- package/src/assets/icon-eraser-64-default.png +0 -0
- package/src/assets/icon-eraser-64-hover.png +0 -0
- package/src/assets/icon-font-style-64-active.png +0 -0
- package/src/assets/icon-font-style-64-default.png +0 -0
- package/src/assets/icon-font-style-64-hover.png +0 -0
- package/src/assets/icon-formula-fx-64-active.png +0 -0
- package/src/assets/icon-formula-fx-64-default.png +0 -0
- package/src/assets/icon-formula-fx-64-hover.png +0 -0
- package/src/assets/icon-highlighter-64-active.png +0 -0
- package/src/assets/icon-highlighter-64-default.png +0 -0
- package/src/assets/icon-highlighter-64-hover.png +0 -0
- package/src/assets/icon-installing-64-active.png +0 -0
- package/src/assets/icon-installing-64-default.png +0 -0
- package/src/assets/icon-installing-64-hover.png +0 -0
- package/src/assets/icon-line-64-active.png +0 -0
- package/src/assets/icon-line-64-default.png +0 -0
- package/src/assets/icon-line-64-hover.png +0 -0
- package/src/assets/icon-minus-64-active.png +0 -0
- package/src/assets/icon-minus-64-default.png +0 -0
- package/src/assets/icon-minus-64-hover.png +0 -0
- package/src/assets/icon-pen-64-active.png +0 -0
- package/src/assets/icon-pen-64-default.png +0 -0
- package/src/assets/icon-pen-64-hover.png +0 -0
- package/src/assets/icon-pin-64-active.png +0 -0
- package/src/assets/icon-pin-64-default.png +0 -0
- package/src/assets/icon-pin-64-hover.png +0 -0
- package/src/assets/icon-plus-64-active.png +0 -0
- package/src/assets/icon-plus-64-default.png +0 -0
- package/src/assets/icon-plus-64-hover.png +0 -0
- package/src/assets/icon-return-64-active.png +0 -0
- package/src/assets/icon-return-64-default.png +0 -0
- package/src/assets/icon-return-64-hover.png +0 -0
- package/src/assets/icon-select-active.png +0 -0
- package/src/assets/icon-select-default.png +0 -0
- package/src/assets/icon-select-hover.png +0 -0
- package/src/assets/icon-square-64-active.png +0 -0
- package/src/assets/icon-square-64-default.png +0 -0
- package/src/assets/icon-square-64-hover.png +0 -0
- package/src/assets/icon-text-64-active.png +0 -0
- package/src/assets/icon-text-64-default.png +0 -0
- package/src/assets/icon-text-64-hover.png +0 -0
- package/src/assets/icon-u-turn-to-right-64-active.png +0 -0
- package/src/assets/icon-u-turn-to-right-64-default.png +0 -0
- package/src/assets/icon-u-turn-to-right-64-hover.png +0 -0
- package/src/components/BrushToolbar.tsx +0 -72
- package/src/components/LatexEditor.tsx +0 -247
- package/src/components/LatexToolbar.tsx +0 -68
- package/src/components/OCRPreview.tsx +0 -234
- package/src/components/OCRToolbar.tsx +0 -46
- package/src/components/RangeToolbar.tsx +0 -33
- package/src/components/SelDelToolbar.tsx +0 -52
- package/src/components/TextEditor.tsx +0 -38
- package/src/components/TextToolbar.tsx +0 -271
- package/src/components/ToolsToolbar.tsx +0 -114
- package/src/constants/fonts.ts +0 -14
- package/src/constants/latexCategories.ts +0 -11
- package/src/constants/latexSymbols.ts +0 -38
- package/src/hooks/useDrawingHandlers.ts +0 -675
- package/src/hooks/useDrawingState.ts +0 -59
- package/src/hooks/useHistory.ts +0 -52
- package/src/hooks/useKeyboard.ts +0 -96
- package/src/hooks/useLatexSymbols.ts +0 -79
- package/src/hooks/useOutsideClick.ts +0 -25
- package/src/hooks/useTextEditing.ts +0 -131
- package/src/hooks/useTextFormatting.ts +0 -153
- package/src/hooks/useWebSocket.ts +0 -202
- package/src/index.ts +0 -4
- package/src/main.tsx +0 -18
- package/src/services/api.ts +0 -81
- package/src/services/statsService.ts +0 -165
- package/src/services/widgetBridge.ts +0 -73
- package/src/types.ts +0 -80
- package/src/utils/colorUtils.ts +0 -6
- package/src/utils/latexUtils.ts +0 -48
- package/src/utils/shapeUtils.ts +0 -151
- package/tsconfig.app.json +0 -28
- package/tsconfig.json +0 -14
- package/tsconfig.node.json +0 -26
- package/vite.config.ts +0 -84
- /package/{dist-app → dist}/icon-align-64-default.png +0 -0
- /package/{dist-app → dist}/icon-align-justify-64-active.png +0 -0
- /package/{dist-app → dist}/icon-align-justify-64-default 1.png +0 -0
- /package/{dist-app → dist}/icon-align-justify-64-default.png +0 -0
- /package/{dist-app → dist}/icon-align-justify-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-align-left-64-active.png +0 -0
- /package/{dist-app → dist}/icon-align-left-64-default 1.png +0 -0
- /package/{dist-app → dist}/icon-align-left-64-default.png +0 -0
- /package/{dist-app → dist}/icon-align-left-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-align-right-64-active.png +0 -0
- /package/{dist-app → dist}/icon-align-right-64-default.png +0 -0
- /package/{dist-app → dist}/icon-align-right-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-bold-64-active.png +0 -0
- /package/{dist-app → dist}/icon-bold-64-default 1.png +0 -0
- /package/{dist-app → dist}/icon-bold-64-default.png +0 -0
- /package/{dist-app → dist}/icon-bold-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-broom-64-active.png +0 -0
- /package/{dist-app → dist}/icon-broom-64-default.png +0 -0
- /package/{dist-app → dist}/icon-broom-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-cancel-64-active.png +0 -0
- /package/{dist-app → dist}/icon-cancel-64-default.png +0 -0
- /package/{dist-app → dist}/icon-cancel-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-change-64-active.png +0 -0
- /package/{dist-app → dist}/icon-change-64-default.png +0 -0
- /package/{dist-app → dist}/icon-change-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-circle-64-active.png +0 -0
- /package/{dist-app → dist}/icon-circle-64-default.png +0 -0
- /package/{dist-app → dist}/icon-circle-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-close-64-active.png +0 -0
- /package/{dist-app → dist}/icon-close-64-default.png +0 -0
- /package/{dist-app → dist}/icon-close-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-cursor-64-active.png +0 -0
- /package/{dist-app → dist}/icon-cursor-64-default.png +0 -0
- /package/{dist-app → dist}/icon-cursor-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-delete-trash-64-active.png +0 -0
- /package/{dist-app → dist}/icon-delete-trash-64-default.png +0 -0
- /package/{dist-app → dist}/icon-delete-trash-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-done-64-active.png +0 -0
- /package/{dist-app → dist}/icon-done-64-default.png +0 -0
- /package/{dist-app → dist}/icon-done-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-edit-text-file-64-active.png +0 -0
- /package/{dist-app → dist}/icon-edit-text-file-64-default 1.png +0 -0
- /package/{dist-app → dist}/icon-edit-text-file-64-default.png +0 -0
- /package/{dist-app → dist}/icon-edit-text-file-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-eraser-64-active.png +0 -0
- /package/{dist-app → dist}/icon-eraser-64-default.png +0 -0
- /package/{dist-app → dist}/icon-eraser-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-font-style-64-active.png +0 -0
- /package/{dist-app → dist}/icon-font-style-64-default.png +0 -0
- /package/{dist-app → dist}/icon-font-style-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-formula-fx-64-active.png +0 -0
- /package/{dist-app → dist}/icon-formula-fx-64-default.png +0 -0
- /package/{dist-app → dist}/icon-formula-fx-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-highlighter-64-active.png +0 -0
- /package/{dist-app → dist}/icon-highlighter-64-default.png +0 -0
- /package/{dist-app → dist}/icon-highlighter-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-installing-64-active.png +0 -0
- /package/{dist-app → dist}/icon-installing-64-default.png +0 -0
- /package/{dist-app → dist}/icon-installing-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-italic-64-active.png +0 -0
- /package/{dist-app → dist}/icon-italic-64-default 1.png +0 -0
- /package/{dist-app → dist}/icon-italic-64-default.png +0 -0
- /package/{dist-app → dist}/icon-italic-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-line-64-active.png +0 -0
- /package/{dist-app → dist}/icon-line-64-default.png +0 -0
- /package/{dist-app → dist}/icon-line-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-pen-64-active.png +0 -0
- /package/{dist-app → dist}/icon-pen-64-default.png +0 -0
- /package/{dist-app → dist}/icon-pen-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-pin-64-active.png +0 -0
- /package/{dist-app → dist}/icon-pin-64-default.png +0 -0
- /package/{dist-app → dist}/icon-pin-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-redo-64-active.png +0 -0
- /package/{dist-app → dist}/icon-redo-64-default.png +0 -0
- /package/{dist-app → dist}/icon-redo-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-return-64-active.png +0 -0
- /package/{dist-app → dist}/icon-return-64-default.png +0 -0
- /package/{dist-app → dist}/icon-return-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-select-active.png +0 -0
- /package/{dist-app → dist}/icon-select-default.png +0 -0
- /package/{dist-app → dist}/icon-select-hover.png +0 -0
- /package/{dist-app → dist}/icon-square-64-active.png +0 -0
- /package/{dist-app → dist}/icon-square-64-default.png +0 -0
- /package/{dist-app → dist}/icon-square-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-strikethrough-64-active.png +0 -0
- /package/{dist-app → dist}/icon-strikethrough-64-default 1.png +0 -0
- /package/{dist-app → dist}/icon-strikethrough-64-default.png +0 -0
- /package/{dist-app → dist}/icon-strikethrough-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-text-64-active.png +0 -0
- /package/{dist-app → dist}/icon-text-64-default.png +0 -0
- /package/{dist-app → dist}/icon-text-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-u-turn-to-right-64-active.png +0 -0
- /package/{dist-app → dist}/icon-u-turn-to-right-64-default.png +0 -0
- /package/{dist-app → dist}/icon-u-turn-to-right-64-hover.png +0 -0
- /package/{dist-app → dist}/icon-under-64-active.png +0 -0
- /package/{dist-app → dist}/icon-under-64-default 1.png +0 -0
- /package/{dist-app → dist}/icon-under-64-default.png +0 -0
- /package/{dist-app → dist}/icon-under-64-hover.png +0 -0
package/src/utils/shapeUtils.ts
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import type { Shape } from '../types';
|
|
2
|
-
|
|
3
|
-
export const calculateBoundingBox = (points: number[]): { x: number, y: number, width: number, height: number } => {
|
|
4
|
-
if (points.length === 0) return { x: 0, y: 0, width: 0, height: 0 };
|
|
5
|
-
|
|
6
|
-
let minX = points[0];
|
|
7
|
-
let maxX = points[0];
|
|
8
|
-
let minY = points[1];
|
|
9
|
-
let maxY = points[1];
|
|
10
|
-
|
|
11
|
-
for (let i = 0; i < points.length; i += 2) {
|
|
12
|
-
const x = points[i];
|
|
13
|
-
const y = points[i + 1];
|
|
14
|
-
if (x < minX) minX = x;
|
|
15
|
-
if (x > maxX) maxX = x;
|
|
16
|
-
if (y < minY) minY = y;
|
|
17
|
-
if (y > maxY) maxY = y;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return {
|
|
21
|
-
x: minX,
|
|
22
|
-
y: minY,
|
|
23
|
-
width: maxX - minX,
|
|
24
|
-
height: maxY - minY
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export const transformPoints = (points: number[], oldBbox: any, newBbox: any): number[] => {
|
|
29
|
-
const newPoints: number[] = [];
|
|
30
|
-
|
|
31
|
-
for (let i = 0; i < points.length; i += 2) {
|
|
32
|
-
const x = points[i];
|
|
33
|
-
const y = points[i + 1];
|
|
34
|
-
|
|
35
|
-
const relX = oldBbox.width !== 0 ? (x - oldBbox.x) / oldBbox.width : 0;
|
|
36
|
-
const relY = oldBbox.height !== 0 ? (y - oldBbox.y) / oldBbox.height : 0;
|
|
37
|
-
|
|
38
|
-
newPoints.push(newBbox.x + relX * newBbox.width);
|
|
39
|
-
newPoints.push(newBbox.y + relY * newBbox.height);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return newPoints;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export const distanceToLineSegment = (
|
|
46
|
-
p: { x: number, y: number },
|
|
47
|
-
a: { x: number, y: number },
|
|
48
|
-
b: { x: number, y: number }
|
|
49
|
-
): number => {
|
|
50
|
-
const A = p.x - a.x;
|
|
51
|
-
const B = p.y - a.y;
|
|
52
|
-
const C = b.x - a.x;
|
|
53
|
-
const D = b.y - a.y;
|
|
54
|
-
|
|
55
|
-
const dot = A * C + B * D;
|
|
56
|
-
const lenSq = C * C + D * D;
|
|
57
|
-
let param = -1;
|
|
58
|
-
|
|
59
|
-
if (lenSq !== 0) param = dot / lenSq;
|
|
60
|
-
|
|
61
|
-
let xx, yy;
|
|
62
|
-
|
|
63
|
-
if (param < 0) {
|
|
64
|
-
xx = a.x;
|
|
65
|
-
yy = a.y;
|
|
66
|
-
} else if (param > 1) {
|
|
67
|
-
xx = b.x;
|
|
68
|
-
yy = b.y;
|
|
69
|
-
} else {
|
|
70
|
-
xx = a.x + param * C;
|
|
71
|
-
yy = a.y + param * D;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const dx = p.x - xx;
|
|
75
|
-
const dy = p.y - yy;
|
|
76
|
-
|
|
77
|
-
return Math.sqrt(dx * dx + dy * dy);
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export const isPointInShape = (shape: Shape, point: { x: number, y: number }): boolean => {
|
|
81
|
-
if (shape.type === 'path' || shape.type === 'highlighter') {
|
|
82
|
-
if (!shape.points || shape.points.length < 4) return false;
|
|
83
|
-
|
|
84
|
-
for (let i = 0; i < shape.points.length - 2; i += 2) {
|
|
85
|
-
const x1 = shape.points[i];
|
|
86
|
-
const y1 = shape.points[i + 1];
|
|
87
|
-
const x2 = shape.points[i + 2];
|
|
88
|
-
const y2 = shape.points[i + 3];
|
|
89
|
-
|
|
90
|
-
if (distanceToLineSegment(point, { x: x1, y: y1 }, { x: x2, y: y2 }) < 10) {
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (shape.type === 'rectangle' || shape.type === 'text' || shape.type === 'latex') {
|
|
98
|
-
const realX = Math.min(shape.x, shape.x + shape.width);
|
|
99
|
-
const realY = Math.min(shape.y, shape.y + shape.height);
|
|
100
|
-
const realWidth = Math.abs(shape.width);
|
|
101
|
-
const realHeight = Math.abs(shape.height);
|
|
102
|
-
|
|
103
|
-
return point.x >= realX &&
|
|
104
|
-
point.x <= realX + realWidth &&
|
|
105
|
-
point.y >= realY &&
|
|
106
|
-
point.y <= realY + realHeight;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (shape.type === 'ellipse') {
|
|
110
|
-
const centerX = shape.x + shape.width / 2;
|
|
111
|
-
const centerY = shape.y + shape.height / 2;
|
|
112
|
-
const radiusX = Math.abs(shape.width) / 2;
|
|
113
|
-
const radiusY = Math.abs(shape.height) / 2;
|
|
114
|
-
|
|
115
|
-
const normalizedX = point.x - centerX;
|
|
116
|
-
const normalizedY = point.y - centerY;
|
|
117
|
-
|
|
118
|
-
return (normalizedX * normalizedX) / (radiusX * radiusX) +
|
|
119
|
-
(normalizedY * normalizedY) / (radiusY * radiusY) <= 1;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (shape.type === 'line' && shape.points) {
|
|
123
|
-
const [x1, y1, x2, y2] = shape.points;
|
|
124
|
-
const distance = distanceToLineSegment(point, { x: x1, y: y1 }, { x: x2, y: y2 });
|
|
125
|
-
return distance < 10;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return false;
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
export const isRectInside = (
|
|
132
|
-
outer: { x: number; y: number; width: number; height: number },
|
|
133
|
-
inner: { x: number; y: number; width: number; height: number }
|
|
134
|
-
): boolean => {
|
|
135
|
-
const outerX = outer.width >= 0 ? outer.x : outer.x + outer.width;
|
|
136
|
-
const outerY = outer.height >= 0 ? outer.y : outer.y + outer.height;
|
|
137
|
-
const outerWidth = Math.abs(outer.width);
|
|
138
|
-
const outerHeight = Math.abs(outer.height);
|
|
139
|
-
|
|
140
|
-
const innerX = inner.width >= 0 ? inner.x : inner.x + inner.width;
|
|
141
|
-
const innerY = inner.height >= 0 ? inner.y : inner.y + inner.height;
|
|
142
|
-
const innerWidth = Math.abs(inner.width);
|
|
143
|
-
const innerHeight = Math.abs(inner.height);
|
|
144
|
-
|
|
145
|
-
return (
|
|
146
|
-
innerX >= outerX &&
|
|
147
|
-
innerY >= outerY &&
|
|
148
|
-
innerX + innerWidth <= outerX + outerWidth &&
|
|
149
|
-
innerY + innerHeight <= outerY + outerHeight
|
|
150
|
-
);
|
|
151
|
-
};
|
package/tsconfig.app.json
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
4
|
-
"target": "ES2022",
|
|
5
|
-
"useDefineForClassFields": true,
|
|
6
|
-
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
7
|
-
"module": "ESNext",
|
|
8
|
-
"types": ["vite/client"],
|
|
9
|
-
"skipLibCheck": true,
|
|
10
|
-
|
|
11
|
-
/* Bundler mode */
|
|
12
|
-
"moduleResolution": "bundler",
|
|
13
|
-
"allowImportingTsExtensions": true,
|
|
14
|
-
"verbatimModuleSyntax": true,
|
|
15
|
-
"moduleDetection": "force",
|
|
16
|
-
"noEmit": true,
|
|
17
|
-
"jsx": "react-jsx",
|
|
18
|
-
|
|
19
|
-
/* Linting */
|
|
20
|
-
"strict": true,
|
|
21
|
-
"noUnusedLocals": true,
|
|
22
|
-
"noUnusedParameters": true,
|
|
23
|
-
"erasableSyntaxOnly": true,
|
|
24
|
-
"noFallthroughCasesInSwitch": true,
|
|
25
|
-
"noUncheckedSideEffectImports": true
|
|
26
|
-
},
|
|
27
|
-
"include": ["src"]
|
|
28
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"files": [],
|
|
3
|
-
"references": [
|
|
4
|
-
{ "path": "./tsconfig.app.json" },
|
|
5
|
-
{ "path": "./tsconfig.node.json" }
|
|
6
|
-
],
|
|
7
|
-
"compilerOptions": {
|
|
8
|
-
"noUnusedLocals": false,
|
|
9
|
-
"noUnusedParameters": false,
|
|
10
|
-
"noImplicitAny": false,
|
|
11
|
-
"strict": false
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
package/tsconfig.node.json
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
-
"target": "ES2023",
|
|
5
|
-
"lib": ["ES2023"],
|
|
6
|
-
"module": "ESNext",
|
|
7
|
-
"types": ["node"],
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
|
|
10
|
-
/* Bundler mode */
|
|
11
|
-
"moduleResolution": "bundler",
|
|
12
|
-
"allowImportingTsExtensions": true,
|
|
13
|
-
"verbatimModuleSyntax": true,
|
|
14
|
-
"moduleDetection": "force",
|
|
15
|
-
"noEmit": true,
|
|
16
|
-
|
|
17
|
-
/* Linting */
|
|
18
|
-
"strict": true,
|
|
19
|
-
"noUnusedLocals": true,
|
|
20
|
-
"noUnusedParameters": true,
|
|
21
|
-
"erasableSyntaxOnly": true,
|
|
22
|
-
"noFallthroughCasesInSwitch": true,
|
|
23
|
-
"noUncheckedSideEffectImports": true
|
|
24
|
-
},
|
|
25
|
-
"include": ["vite.config.ts"]
|
|
26
|
-
}
|
package/vite.config.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { defineConfig, type UserConfig } from 'vite';
|
|
2
|
-
import react from '@vitejs/plugin-react';
|
|
3
|
-
import { resolve } from 'path';
|
|
4
|
-
import { existsSync } from 'fs';
|
|
5
|
-
import dts from 'vite-plugin-dts';
|
|
6
|
-
|
|
7
|
-
// Определяем режим работы
|
|
8
|
-
const isAppMode = existsSync(resolve(__dirname, 'index.html'));
|
|
9
|
-
|
|
10
|
-
// Базовые настройки, общие для всех режимов
|
|
11
|
-
const baseConfig: UserConfig = {
|
|
12
|
-
plugins: [
|
|
13
|
-
react(),
|
|
14
|
-
// Добавляем генерацию типов только в режиме библиотеки
|
|
15
|
-
...(isAppMode ? [] : [
|
|
16
|
-
dts({
|
|
17
|
-
insertTypesEntry: true,
|
|
18
|
-
outDir: 'dist',
|
|
19
|
-
exclude: ['**/*.test.ts', '**/*.spec.ts']
|
|
20
|
-
})
|
|
21
|
-
])
|
|
22
|
-
],
|
|
23
|
-
optimizeDeps: {
|
|
24
|
-
include: ['void-elements']
|
|
25
|
-
},
|
|
26
|
-
resolve: {
|
|
27
|
-
alias: {
|
|
28
|
-
'@': resolve(__dirname, 'src')
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export default defineConfig(({ command}) => {
|
|
34
|
-
if (command === 'build' && !isAppMode) {
|
|
35
|
-
// Режим сборки библиотеки
|
|
36
|
-
return {
|
|
37
|
-
...baseConfig,
|
|
38
|
-
build: {
|
|
39
|
-
lib: {
|
|
40
|
-
entry: resolve(__dirname, 'src/index.ts'),
|
|
41
|
-
formats: ['es'],
|
|
42
|
-
fileName: 'index'
|
|
43
|
-
},
|
|
44
|
-
rollupOptions: {
|
|
45
|
-
external: ['react', 'react-dom', 'react/jsx-runtime'],
|
|
46
|
-
output: {
|
|
47
|
-
globals: {
|
|
48
|
-
react: 'React',
|
|
49
|
-
'react-dom': 'ReactDOM',
|
|
50
|
-
'react/jsx-runtime': 'jsxRuntime'
|
|
51
|
-
},
|
|
52
|
-
// Сохраняем структуру директорий
|
|
53
|
-
preserveModules: false
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
sourcemap: true,
|
|
57
|
-
outDir: 'dist',
|
|
58
|
-
// Минимизируем, но оставляем читаемым
|
|
59
|
-
minify: 'esbuild',
|
|
60
|
-
// Собираем CSS внутрь JS
|
|
61
|
-
cssCodeSplit: false
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Режим приложения (разработка или сборка)
|
|
67
|
-
return {
|
|
68
|
-
...baseConfig,
|
|
69
|
-
build: {
|
|
70
|
-
outDir: 'dist-app',
|
|
71
|
-
sourcemap: true,
|
|
72
|
-
rollupOptions: {
|
|
73
|
-
input: isAppMode ? resolve(__dirname, 'index.html') : undefined,
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
server: {
|
|
77
|
-
port: 5173,
|
|
78
|
-
open: true
|
|
79
|
-
},
|
|
80
|
-
preview: {
|
|
81
|
-
port: 3001
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|