@dwelle/excalidraw 0.3.38 → 0.3.39
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.
|
@@ -1922,7 +1922,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1922
1922
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1923
1923
|
|
|
1924
1924
|
"use strict";
|
|
1925
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MobileMenu\": () => (/* binding */ MobileMenu)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _FixedSideContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedSideContainer */ \"../../components/FixedSideContainer.tsx\");\n/* harmony import */ var _Island__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Island */ \"../../components/Island.tsx\");\n/* harmony import */ var _HintViewer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./HintViewer */ \"../../components/HintViewer.tsx\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Actions */ \"../../components/Actions.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Section */ \"../../components/Section.tsx\");\n/* harmony import */ var _CollabButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./CollabButton */ \"../../components/CollabButton.tsx\");\n/* harmony import */ var _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../scene/scrollbars */ \"../../scene/scrollbars.ts\");\n/* harmony import */ var _LockButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./LockButton */ \"../../components/LockButton.tsx\");\n/* harmony import */ var _UserList__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./UserList */ \"../../components/UserList.tsx\");\n/* harmony import */ var _BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./BackgroundPickerAndDarkModeToggle */ \"../../components/BackgroundPickerAndDarkModeToggle.tsx\");\n/* harmony import */ var _LibraryButton__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./LibraryButton */ \"../../components/LibraryButton.tsx\");\n/* harmony import */ var _PenModeButton__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./PenModeButton */ \"../../components/PenModeButton.tsx\");\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./icons */ \"../../components/icons.tsx\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst MobileMenu = ({ onHomeButtonClick, appState, elements, libraryMenu, actionManager, renderJSONExportDialog, renderImageExportDialog, setAppState, onCollabButtonClick, onLockToggle, onPenModeToggle, canvas, isCollaborating, renderCustomFooter, viewModeEnabled, showThemeBtn, onImageAction, renderTopRightUI, UIOptions, }) => {\r\n const renderToolbar = () => {\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_FixedSideContainer__WEBPACK_IMPORTED_MODULE_5__.FixedSideContainer, Object.assign({ side: \"top\", className: \"App-top-bar\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {}, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ heading: \"shapes\" }, { children: (heading) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Col, Object.assign({ gap: 4, align: \"center\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Row, Object.assign({ gap: 1, className: \"App-toolbar-container\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_6__.Island, Object.assign({ padding: 1, className: \"App-toolbar\" }, { children: [heading, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Row, Object.assign({ gap: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.ShapesSwitcher, { canvas: canvas, elementType: appState.elementType, setAppState: setAppState, onImageAction: ({ pointerType }) => {\r\n onImageAction({\r\n insertOnCanvasDirectly: pointerType !== \"mouse\",\r\n });\r\n } }, void 0) }), void 0)] }), void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_18__.ToolButton, { type: \"button\", className: \"HomeButton ToolIcon_type_floating\", title: \"Home\", \"aria-label\": \"Home\", icon: _icons__WEBPACK_IMPORTED_MODULE_19__.home, onClick: onHomeButtonClick }, \"home\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LockButton__WEBPACK_IMPORTED_MODULE_13__.LockButton, { checked: appState.elementLocked, onChange: onLockToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"toolBar.lock\"), isMobile: true }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LibraryButton__WEBPACK_IMPORTED_MODULE_16__.LibraryButton, { appState: appState, setAppState: setAppState, isMobile: true }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PenModeButton__WEBPACK_IMPORTED_MODULE_17__.PenModeButton, { checked: appState.penMode, onChange: onPenModeToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"toolBar.penMode\"), isMobile: true, penDetected: appState.penDetected }, void 0)] }), void 0), libraryMenu] }), void 0)) }), void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ style: { display: \"flex\" } }, { children: renderTopRightUI === null || renderTopRightUI === void 0 ? void 0 : renderTopRightUI(true, appState, canvas) }), void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HintViewer__WEBPACK_IMPORTED_MODULE_7__.HintViewer, { appState: appState, elements: elements, isMobile: true }, void 0)] }), void 0));\r\n };\r\n const renderAppToolbar = () => {\r\n if (viewModeEnabled) {\r\n return UIOptions.canvasActions ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"App-toolbar-content\" }, { children: actionManager.renderAction(\"toggleCanvasMenu\") }), void 0)) : ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { children: \"Excalidraw\" }, void 0));\r\n }\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"App-toolbar-content\" }, { children: [UIOptions.canvasActions &&\r\n actionManager.renderAction(\"toggleCanvasMenu\"), actionManager.renderAction(\"toggleEditMenu\"), actionManager.renderAction(\"undo\"), actionManager.renderAction(\"redo\"), actionManager.renderAction(appState.multiElement ? \"finalize\" : \"duplicateSelection\"), actionManager.renderAction(\"deleteSelectedElements\")] }), void 0));\r\n };\r\n const renderCanvasActions = () => {\r\n if (viewModeEnabled) {\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderJSONExportDialog(), renderImageExportDialog()] }, void 0));\r\n }\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [actionManager.renderAction(\"clearCanvas\"), actionManager.renderAction(\"loadScene\"), renderJSONExportDialog(), renderImageExportDialog(), onCollabButtonClick && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CollabButton__WEBPACK_IMPORTED_MODULE_11__[\"default\"], { isCollaborating: isCollaborating, collaboratorCount: appState.collaborators.size, onClick: onCollabButtonClick }, void 0)), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_15__.BackgroundPickerAndDarkModeToggle, { actionManager: actionManager, appState: appState, setAppState: setAppState, showThemeBtn: showThemeBtn }, void 0)] }, void 0));\r\n };\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [!viewModeEnabled && renderToolbar(), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"App-bottom-bar\", style: {\r\n marginBottom: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\r\n marginLeft: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\r\n marginRight: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\r\n } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_6__.Island, Object.assign({ padding: 0 }, { children: [UIOptions.canvasActions && appState.openMenu === \"canvas\" ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ className: \"App-mobile-menu\", heading: \"canvasActions\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"panelColumn\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Col, Object.assign({ gap: 4 }, { children: [renderCanvasActions(), renderCustomFooter === null || renderCustomFooter === void 0 ? void 0 : renderCustomFooter(true, appState), appState.collaborators.size > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"fieldset\", { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"legend\", { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"labels.collaborators\") }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UserList__WEBPACK_IMPORTED_MODULE_14__.UserList, { mobile: true, layout: \"horizontal\", collaborators: appState.collaborators, actionManager: actionManager }, void 0)] }, void 0))] }), void 0) }), void 0) }), void 0)) : appState.openMenu === \"shape\" &&\r\n !viewModeEnabled &&\r\n (0,_element__WEBPACK_IMPORTED_MODULE_4__.showSelectedShapeActions)(appState, elements) ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ className: \"App-mobile-menu\", heading: \"selectedShapeActions\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.SelectedShapeActions, { appState: appState, elements: elements, renderAction: actionManager.renderAction, elementType: appState.elementType }, void 0) }), void 0)) : null, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"footer\", Object.assign({ className: \"App-toolbar\" }, { children: [renderAppToolbar(), appState.scrolledOutside && !appState.openMenu && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", Object.assign({ className: \"scroll-back-to-content\", onClick: () => {\r\n setAppState(Object.assign({}, (0,_scene__WEBPACK_IMPORTED_MODULE_8__.calculateScrollCenter)(elements, appState, canvas)));\r\n } }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"buttons.scrollBackToContent\") }), void 0))] }), void 0)] }), void 0) }), void 0)] }, void 0));\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQyxXQUFVLEVBQzVDLHVEQUFDLGdEQUFRLElBQ1AsTUFBTSxRQUNOLE1BQU0sRUFBQyxZQUFZLEVBQ25CLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUNyQyxhQUFhLEVBQUUsYUFBYSxXQUM1QixZQUNPLENBQ1osYUFDUyxZQUNSLFlBQ0UsQ0FDWCxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLE9BQU87NEJBQy9CLENBQUMsZUFBZTs0QkFDaEIsa0VBQXdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMvQyx1REFBQyw4Q0FBTyxrQkFBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLHNCQUFzQixnQkFDakUsdURBQUMsMERBQW9CLElBQ25CLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsV0FDakMsWUFDTSxDQUNYLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDUixrRkFBUSxTQUFTLEVBQUMsYUFBYSxpQkFDNUIsZ0JBQWdCLEVBQUUsRUFDbEIsUUFBUSxDQUFDLGVBQWUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksQ0FDakQsaUZBQ0UsU0FBUyxFQUFDLHdCQUF3QixFQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFO3dDQUNaLFdBQVcsbUJBQ04sNkRBQXFCLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFDcEQsQ0FBQztvQ0FDTCxDQUFDLGdCQUVBLHdDQUFDLENBQUMsNkJBQTZCLENBQUMsWUFDMUIsQ0FDVixhQUNNLGFBQ0YsWUFDTCxZQUNMLENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL01vYmlsZU1lbnUudHN4PzA4YzQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQXBwUHJvcHMsIEFwcFN0YXRlIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBBY3Rpb25NYW5hZ2VyIH0gZnJvbSBcIi4uL2FjdGlvbnMvbWFuYWdlclwiO1xuaW1wb3J0IHsgdCB9IGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIi4vU3RhY2tcIjtcbmltcG9ydCB7IHNob3dTZWxlY3RlZFNoYXBlQWN0aW9ucyB9IGZyb20gXCIuLi9lbGVtZW50XCI7XG5pbXBvcnQgeyBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgRml4ZWRTaWRlQ29udGFpbmVyIH0gZnJvbSBcIi4vRml4ZWRTaWRlQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBJc2xhbmQgfSBmcm9tIFwiLi9Jc2xhbmRcIjtcbmltcG9ydCB7IEhpbnRWaWV3ZXIgfSBmcm9tIFwiLi9IaW50Vmlld2VyXCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVTY3JvbGxDZW50ZXIgfSBmcm9tIFwiLi4vc2NlbmVcIjtcbmltcG9ydCB7IFNlbGVjdGVkU2hhcGVBY3Rpb25zLCBTaGFwZXNTd2l0Y2hlciB9IGZyb20gXCIuL0FjdGlvbnNcIjtcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi9TZWN0aW9uXCI7XG5pbXBvcnQgQ29sbGFiQnV0dG9uIGZyb20gXCIuL0NvbGxhYkJ1dHRvblwiO1xuaW1wb3J0IHsgU0NST0xMQkFSX1dJRFRILCBTQ1JPTExCQVJfTUFSR0lOIH0gZnJvbSBcIi4uL3NjZW5lL3Njcm9sbGJhcnNcIjtcbmltcG9ydCB7IExvY2tCdXR0b24gfSBmcm9tIFwiLi9Mb2NrQnV0dG9uXCI7XG5pbXBvcnQgeyBVc2VyTGlzdCB9IGZyb20gXCIuL1VzZXJMaXN0XCI7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUgfSBmcm9tIFwiLi9CYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGVcIjtcbmltcG9ydCB7IExpYnJhcnlCdXR0b24gfSBmcm9tIFwiLi9MaWJyYXJ5QnV0dG9uXCI7XG5pbXBvcnQgeyBQZW5Nb2RlQnV0dG9uIH0gZnJvbSBcIi4vUGVuTW9kZUJ1dHRvblwiO1xuaW1wb3J0IHsgVG9vbEJ1dHRvbiB9IGZyb20gXCIuL1Rvb2xCdXR0b25cIjtcbmltcG9ydCB7IGhvbWUgfSBmcm9tIFwiLi9pY29uc1wiO1xuXG50eXBlIE1vYmlsZU1lbnVQcm9wcyA9IHtcbiAgb25Ib21lQnV0dG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG4gIGFjdGlvbk1hbmFnZXI6IEFjdGlvbk1hbmFnZXI7XG4gIHJlbmRlckpTT05FeHBvcnREaWFsb2c6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcmVuZGVySW1hZ2VFeHBvcnREaWFsb2c6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgc2V0QXBwU3RhdGU6IFJlYWN0LkNvbXBvbmVudDxhbnksIEFwcFN0YXRlPltcInNldFN0YXRlXCJdO1xuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W107XG4gIGxpYnJhcnlNZW51OiBKU1guRWxlbWVudCB8IG51bGw7XG4gIG9uQ29sbGFiQnV0dG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBvbkxvY2tUb2dnbGU6ICgpID0+IHZvaWQ7XG4gIG9uUGVuTW9kZVRvZ2dsZTogKCkgPT4gdm9pZDtcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gIGlzQ29sbGFib3JhdGluZzogYm9vbGVhbjtcbiAgcmVuZGVyQ3VzdG9tRm9vdGVyPzogKGlzTW9iaWxlOiBib29sZWFuLCBhcHBTdGF0ZTogQXBwU3RhdGUpID0+IEpTWC5FbGVtZW50O1xuICB2aWV3TW9kZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHNob3dUaGVtZUJ0bjogYm9vbGVhbjtcbiAgb25JbWFnZUFjdGlvbjogKGRhdGE6IHsgaW5zZXJ0T25DYW52YXNEaXJlY3RseTogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICByZW5kZXJUb3BSaWdodFVJPzogKFxuICAgIGlzTW9iaWxlOiBib29sZWFuLFxuICAgIGFwcFN0YXRlOiBBcHBTdGF0ZSxcbiAgICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCxcbiAgKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG4gIFVJT3B0aW9uczogQXBwUHJvcHNbXCJVSU9wdGlvbnNcIl07XG59O1xuXG5leHBvcnQgY29uc3QgTW9iaWxlTWVudSA9ICh7XG4gIG9uSG9tZUJ1dHRvbkNsaWNrLFxuICBhcHBTdGF0ZSxcbiAgZWxlbWVudHMsXG4gIGxpYnJhcnlNZW51LFxuICBhY3Rpb25NYW5hZ2VyLFxuICByZW5kZXJKU09ORXhwb3J0RGlhbG9nLFxuICByZW5kZXJJbWFnZUV4cG9ydERpYWxvZyxcbiAgc2V0QXBwU3RhdGUsXG4gIG9uQ29sbGFiQnV0dG9uQ2xpY2ssXG4gIG9uTG9ja1RvZ2dsZSxcbiAgb25QZW5Nb2RlVG9nZ2xlLFxuICBjYW52YXMsXG4gIGlzQ29sbGFib3JhdGluZyxcbiAgcmVuZGVyQ3VzdG9tRm9vdGVyLFxuICB2aWV3TW9kZUVuYWJsZWQsXG4gIHNob3dUaGVtZUJ0bixcbiAgb25JbWFnZUFjdGlvbixcbiAgcmVuZGVyVG9wUmlnaHRVSSxcbiAgVUlPcHRpb25zLFxufTogTW9iaWxlTWVudVByb3BzKSA9PiB7XG4gIGNvbnN0IHJlbmRlclRvb2xiYXIgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxGaXhlZFNpZGVDb250YWluZXIgc2lkZT1cInRvcFwiIGNsYXNzTmFtZT1cIkFwcC10b3AtYmFyXCI+XG4gICAgICAgIHsvKiBwbGFjZWhvbGRlciBmb3IgZ3JpZCAzLWNvbHVtbiB0ZW1wbGF0ZSAqL31cbiAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgPFNlY3Rpb24gaGVhZGluZz1cInNoYXBlc1wiPlxuICAgICAgICAgIHsoaGVhZGluZykgPT4gKFxuICAgICAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezR9IGFsaWduPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsxfSBjbGFzc05hbWU9XCJBcHAtdG9vbGJhci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8SXNsYW5kIHBhZGRpbmc9ezF9IGNsYXNzTmFtZT1cIkFwcC10b29sYmFyXCI+XG4gICAgICAgICAgICAgICAgICB7aGVhZGluZ31cbiAgICAgICAgICAgICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgICAgPFNoYXBlc1N3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgICAgY2FudmFzPXtjYW52YXN9XG4gICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFR5cGU9e2FwcFN0YXRlLmVsZW1lbnRUeXBlfVxuICAgICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uPXsoeyBwb2ludGVyVHlwZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0T25DYW52YXNEaXJlY3RseTogcG9pbnRlclR5cGUgIT09IFwibW91c2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrLlJvdz5cbiAgICAgICAgICAgICAgICA8L0lzbGFuZD5cbiAgICAgICAgICAgICAgICA8VG9vbEJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PVwiaG9tZVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIkhvbWVCdXR0b24gVG9vbEljb25fdHlwZV9mbG9hdGluZ1wiXG4gICAgICAgICAgICAgICAgICB0aXRsZT17XCJIb21lXCJ9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtcIkhvbWVcIn1cbiAgICAgICAgICAgICAgICAgIGljb249e2hvbWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkhvbWVCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxMb2NrQnV0dG9uXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXthcHBTdGF0ZS5lbGVtZW50TG9ja2VkfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uTG9ja1RvZ2dsZX1cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXt0KFwidG9vbEJhci5sb2NrXCIpfVxuICAgICAgICAgICAgICAgICAgaXNNb2JpbGVcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxMaWJyYXJ5QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgICBzZXRBcHBTdGF0ZT17c2V0QXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgICBpc01vYmlsZVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBlbk1vZGVCdXR0b25cbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FwcFN0YXRlLnBlbk1vZGV9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25QZW5Nb2RlVG9nZ2xlfVxuICAgICAgICAgICAgICAgICAgdGl0bGU9e3QoXCJ0b29sQmFyLnBlbk1vZGVcIil9XG4gICAgICAgICAgICAgICAgICBpc01vYmlsZVxuICAgICAgICAgICAgICAgICAgcGVuRGV0ZWN0ZWQ9e2FwcFN0YXRlLnBlbkRldGVjdGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2suUm93PlxuICAgICAgICAgICAgICB7bGlicmFyeU1lbnV9XG4gICAgICAgICAgICA8L1N0YWNrLkNvbD5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XG4gICAgICAgICAge3JlbmRlclRvcFJpZ2h0VUk/Lih0cnVlLCBhcHBTdGF0ZSwgY2FudmFzKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxIaW50Vmlld2VyIGFwcFN0YXRlPXthcHBTdGF0ZX0gZWxlbWVudHM9e2VsZW1lbnRzfSBpc01vYmlsZT17dHJ1ZX0gLz5cbiAgICAgIDwvRml4ZWRTaWRlQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyQXBwVG9vbGJhciA9ICgpID0+IHtcbiAgICBpZiAodmlld01vZGVFbmFibGVkKSB7XG4gICAgICByZXR1cm4gVUlPcHRpb25zLmNhbnZhc0FjdGlvbnMgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiQXBwLXRvb2xiYXItY29udGVudFwiPlxuICAgICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInRvZ2dsZUNhbnZhc01lbnVcIil9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPGRpdj5FeGNhbGlkcmF3PC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJBcHAtdG9vbGJhci1jb250ZW50XCI+XG4gICAgICAgIHtVSU9wdGlvbnMuY2FudmFzQWN0aW9ucyAmJlxuICAgICAgICAgIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwidG9nZ2xlQ2FudmFzTWVudVwiKX1cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwidG9nZ2xlRWRpdE1lbnVcIil9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInVuZG9cIil9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInJlZG9cIil9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcbiAgICAgICAgICBhcHBTdGF0ZS5tdWx0aUVsZW1lbnQgPyBcImZpbmFsaXplXCIgOiBcImR1cGxpY2F0ZVNlbGVjdGlvblwiLFxuICAgICAgICApfVxuICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJkZWxldGVTZWxlY3RlZEVsZW1lbnRzXCIpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJDYW52YXNBY3Rpb25zID0gKCkgPT4ge1xuICAgIGlmICh2aWV3TW9kZUVuYWJsZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge3JlbmRlckpTT05FeHBvcnREaWFsb2coKX1cbiAgICAgICAgICB7cmVuZGVySW1hZ2VFeHBvcnREaWFsb2coKX1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiY2xlYXJDYW52YXNcIil9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcImxvYWRTY2VuZVwiKX1cbiAgICAgICAge3JlbmRlckpTT05FeHBvcnREaWFsb2coKX1cbiAgICAgICAge3JlbmRlckltYWdlRXhwb3J0RGlhbG9nKCl9XG4gICAgICAgIHtvbkNvbGxhYkJ1dHRvbkNsaWNrICYmIChcbiAgICAgICAgICA8Q29sbGFiQnV0dG9uXG4gICAgICAgICAgICBpc0NvbGxhYm9yYXRpbmc9e2lzQ29sbGFib3JhdGluZ31cbiAgICAgICAgICAgIGNvbGxhYm9yYXRvckNvdW50PXthcHBTdGF0ZS5jb2xsYWJvcmF0b3JzLnNpemV9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNvbGxhYkJ1dHRvbkNsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtcbiAgICAgICAgICA8QmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlXG4gICAgICAgICAgICBhY3Rpb25NYW5hZ2VyPXthY3Rpb25NYW5hZ2VyfVxuICAgICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgICAgc2V0QXBwU3RhdGU9e3NldEFwcFN0YXRlfVxuICAgICAgICAgICAgc2hvd1RoZW1lQnRuPXtzaG93VGhlbWVCdG59XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgeyF2aWV3TW9kZUVuYWJsZWQgJiYgcmVuZGVyVG9vbGJhcigpfVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJBcHAtYm90dG9tLWJhclwiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgbWFyZ2luQm90dG9tOiBTQ1JPTExCQVJfV0lEVEggKyBTQ1JPTExCQVJfTUFSR0lOICogMixcbiAgICAgICAgICBtYXJnaW5MZWZ0OiBTQ1JPTExCQVJfV0lEVEggKyBTQ1JPTExCQVJfTUFSR0lOICogMixcbiAgICAgICAgICBtYXJnaW5SaWdodDogU0NST0xMQkFSX1dJRFRIICsgU0NST0xMQkFSX01BUkdJTiAqIDIsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxJc2xhbmQgcGFkZGluZz17MH0+XG4gICAgICAgICAge1VJT3B0aW9ucy5jYW52YXNBY3Rpb25zICYmIGFwcFN0YXRlLm9wZW5NZW51ID09PSBcImNhbnZhc1wiID8gKFxuICAgICAgICAgICAgPFNlY3Rpb24gY2xhc3NOYW1lPVwiQXBwLW1vYmlsZS1tZW51XCIgaGVhZGluZz1cImNhbnZhc0FjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYW5lbENvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxTdGFjay5Db2wgZ2FwPXs0fT5cbiAgICAgICAgICAgICAgICAgIHtyZW5kZXJDYW52YXNBY3Rpb25zKCl9XG4gICAgICAgICAgICAgICAgICB7cmVuZGVyQ3VzdG9tRm9vdGVyPy4odHJ1ZSwgYXBwU3RhdGUpfVxuICAgICAgICAgICAgICAgICAge2FwcFN0YXRlLmNvbGxhYm9yYXRvcnMuc2l6ZSA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQ+XG4gICAgICAgICAgICAgICAgICAgICAgPGxlZ2VuZD57dChcImxhYmVscy5jb2xsYWJvcmF0b3JzXCIpfTwvbGVnZW5kPlxuICAgICAgICAgICAgICAgICAgICAgIDxVc2VyTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9iaWxlXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ9XCJob3Jpem9udGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhYm9yYXRvcnM9e2FwcFN0YXRlLmNvbGxhYm9yYXRvcnN9XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25NYW5hZ2VyPXthY3Rpb25NYW5hZ2VyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2suQ29sPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApIDogYXBwU3RhdGUub3Blbk1lbnUgPT09IFwic2hhcGVcIiAmJlxuICAgICAgICAgICAgIXZpZXdNb2RlRW5hYmxlZCAmJlxuICAgICAgICAgICAgc2hvd1NlbGVjdGVkU2hhcGVBY3Rpb25zKGFwcFN0YXRlLCBlbGVtZW50cykgPyAoXG4gICAgICAgICAgICA8U2VjdGlvbiBjbGFzc05hbWU9XCJBcHAtbW9iaWxlLW1lbnVcIiBoZWFkaW5nPVwic2VsZWN0ZWRTaGFwZUFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPFNlbGVjdGVkU2hhcGVBY3Rpb25zXG4gICAgICAgICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgICAgICAgIGVsZW1lbnRzPXtlbGVtZW50c31cbiAgICAgICAgICAgICAgICByZW5kZXJBY3Rpb249e2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9ufVxuICAgICAgICAgICAgICAgIGVsZW1lbnRUeXBlPXthcHBTdGF0ZS5lbGVtZW50VHlwZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cIkFwcC10b29sYmFyXCI+XG4gICAgICAgICAgICB7cmVuZGVyQXBwVG9vbGJhcigpfVxuICAgICAgICAgICAge2FwcFN0YXRlLnNjcm9sbGVkT3V0c2lkZSAmJiAhYXBwU3RhdGUub3Blbk1lbnUgJiYgKFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2Nyb2xsLWJhY2stdG8tY29udGVudFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0QXBwU3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jYWxjdWxhdGVTY3JvbGxDZW50ZXIoZWxlbWVudHMsIGFwcFN0YXRlLCBjYW52YXMpLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KFwiYnV0dG9ucy5zY3JvbGxCYWNrVG9Db250ZW50XCIpfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgIDwvSXNsYW5kPlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../components/MobileMenu.tsx\n");
|
|
1925
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MobileMenu\": () => (/* binding */ MobileMenu)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _FixedSideContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedSideContainer */ \"../../components/FixedSideContainer.tsx\");\n/* harmony import */ var _Island__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Island */ \"../../components/Island.tsx\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Actions */ \"../../components/Actions.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Section */ \"../../components/Section.tsx\");\n/* harmony import */ var _CollabButton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CollabButton */ \"../../components/CollabButton.tsx\");\n/* harmony import */ var _scene_scrollbars__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../scene/scrollbars */ \"../../scene/scrollbars.ts\");\n/* harmony import */ var _LockButton__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./LockButton */ \"../../components/LockButton.tsx\");\n/* harmony import */ var _UserList__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./UserList */ \"../../components/UserList.tsx\");\n/* harmony import */ var _BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./BackgroundPickerAndDarkModeToggle */ \"../../components/BackgroundPickerAndDarkModeToggle.tsx\");\n/* harmony import */ var _LibraryButton__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./LibraryButton */ \"../../components/LibraryButton.tsx\");\n/* harmony import */ var _PenModeButton__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./PenModeButton */ \"../../components/PenModeButton.tsx\");\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./icons */ \"../../components/icons.tsx\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst MobileMenu = ({ onHomeButtonClick, appState, elements, libraryMenu, actionManager, renderJSONExportDialog, renderImageExportDialog, setAppState, onCollabButtonClick, onLockToggle, onPenModeToggle, canvas, isCollaborating, renderCustomFooter, viewModeEnabled, showThemeBtn, onImageAction, renderTopRightUI, UIOptions, }) => {\r\n const renderToolbar = () => {\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_FixedSideContainer__WEBPACK_IMPORTED_MODULE_5__.FixedSideContainer, Object.assign({ side: \"top\", className: \"App-top-bar\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {}, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_9__.Section, Object.assign({ heading: \"shapes\" }, { children: (heading) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Col, Object.assign({ gap: 4, align: \"center\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Row, Object.assign({ gap: 1, className: \"App-toolbar-container\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_6__.Island, Object.assign({ padding: 1, className: \"App-toolbar\" }, { children: [heading, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Row, Object.assign({ gap: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_8__.ShapesSwitcher, { canvas: canvas, elementType: appState.elementType, setAppState: setAppState, onImageAction: ({ pointerType }) => {\r\n onImageAction({\r\n insertOnCanvasDirectly: pointerType !== \"mouse\",\r\n });\r\n } }, void 0) }), void 0)] }), void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_17__.ToolButton, { type: \"button\", className: \"HomeButton ToolIcon_type_floating\", title: \"Home\", \"aria-label\": \"Home\", icon: _icons__WEBPACK_IMPORTED_MODULE_18__.home, onClick: onHomeButtonClick }, \"home\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LockButton__WEBPACK_IMPORTED_MODULE_12__.LockButton, { checked: appState.elementLocked, onChange: onLockToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"toolBar.lock\"), isMobile: true }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LibraryButton__WEBPACK_IMPORTED_MODULE_15__.LibraryButton, { appState: appState, setAppState: setAppState, isMobile: true }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PenModeButton__WEBPACK_IMPORTED_MODULE_16__.PenModeButton, { checked: appState.penMode, onChange: onPenModeToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"toolBar.penMode\"), isMobile: true, penDetected: appState.penDetected }, void 0)] }), void 0), libraryMenu] }), void 0)) }), void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ style: { display: \"flex\" } }, { children: renderTopRightUI === null || renderTopRightUI === void 0 ? void 0 : renderTopRightUI(true, appState, canvas) }), void 0)] }), void 0));\r\n };\r\n const renderAppToolbar = () => {\r\n if (viewModeEnabled) {\r\n return UIOptions.canvasActions ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"App-toolbar-content\" }, { children: actionManager.renderAction(\"toggleCanvasMenu\") }), void 0)) : ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { children: \"Excalidraw\" }, void 0));\r\n }\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"App-toolbar-content\" }, { children: [UIOptions.canvasActions &&\r\n actionManager.renderAction(\"toggleCanvasMenu\"), actionManager.renderAction(\"toggleEditMenu\"), actionManager.renderAction(\"undo\"), actionManager.renderAction(\"redo\"), actionManager.renderAction(appState.multiElement ? \"finalize\" : \"duplicateSelection\"), actionManager.renderAction(\"deleteSelectedElements\")] }), void 0));\r\n };\r\n const renderCanvasActions = () => {\r\n if (viewModeEnabled) {\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderJSONExportDialog(), renderImageExportDialog()] }, void 0));\r\n }\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [actionManager.renderAction(\"clearCanvas\"), actionManager.renderAction(\"loadScene\"), renderJSONExportDialog(), renderImageExportDialog(), onCollabButtonClick && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CollabButton__WEBPACK_IMPORTED_MODULE_10__[\"default\"], { isCollaborating: isCollaborating, collaboratorCount: appState.collaborators.size, onClick: onCollabButtonClick }, void 0)), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_14__.BackgroundPickerAndDarkModeToggle, { actionManager: actionManager, appState: appState, setAppState: setAppState, showThemeBtn: showThemeBtn }, void 0)] }, void 0));\r\n };\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [!viewModeEnabled && renderToolbar(), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"App-bottom-bar\", style: {\r\n marginBottom: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_11__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_11__.SCROLLBAR_MARGIN * 2,\r\n marginLeft: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_11__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_11__.SCROLLBAR_MARGIN * 2,\r\n marginRight: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_11__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_11__.SCROLLBAR_MARGIN * 2,\r\n } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_6__.Island, Object.assign({ padding: 0 }, { children: [UIOptions.canvasActions && appState.openMenu === \"canvas\" ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_9__.Section, Object.assign({ className: \"App-mobile-menu\", heading: \"canvasActions\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"panelColumn\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Col, Object.assign({ gap: 4 }, { children: [renderCanvasActions(), renderCustomFooter === null || renderCustomFooter === void 0 ? void 0 : renderCustomFooter(true, appState), appState.collaborators.size > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"fieldset\", { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"legend\", { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"labels.collaborators\") }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UserList__WEBPACK_IMPORTED_MODULE_13__.UserList, { mobile: true, layout: \"horizontal\", collaborators: appState.collaborators, actionManager: actionManager }, void 0)] }, void 0))] }), void 0) }), void 0) }), void 0)) : appState.openMenu === \"shape\" &&\r\n !viewModeEnabled &&\r\n (0,_element__WEBPACK_IMPORTED_MODULE_4__.showSelectedShapeActions)(appState, elements) ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_9__.Section, Object.assign({ className: \"App-mobile-menu\", heading: \"selectedShapeActions\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_8__.SelectedShapeActions, { appState: appState, elements: elements, renderAction: actionManager.renderAction, elementType: appState.elementType }, void 0) }), void 0)) : null, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"footer\", Object.assign({ className: \"App-toolbar\" }, { children: [renderAppToolbar(), appState.scrolledOutside && !appState.openMenu && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", Object.assign({ className: \"scroll-back-to-content\", onClick: () => {\r\n setAppState(Object.assign({}, (0,_scene__WEBPACK_IMPORTED_MODULE_7__.calculateScrollCenter)(elements, appState, canvas)));\r\n } }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"buttons.scrollBackToContent\") }), void 0))] }), void 0)] }), void 0) }), void 0)] }, void 0));\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFDckMsYUFBYSxFQUFFLGFBQWEsV0FDNUIsWUFDTyxDQUNaLGFBQ1MsWUFDUixZQUNFLENBQ1gsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxPQUFPOzRCQUMvQixDQUFDLGVBQWU7NEJBQ2hCLGtFQUF3QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDL0MsdURBQUMsNkNBQU8sa0JBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxzQkFBc0IsZ0JBQ2pFLHVEQUFDLDBEQUFvQixJQUNuQixRQUFRLEVBQUUsUUFBUSxFQUNsQixRQUFRLEVBQUUsUUFBUSxFQUNsQixZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFDeEMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXLFdBQ2pDLFlBQ00sQ0FDWCxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ1Isa0ZBQVEsU0FBUyxFQUFDLGFBQWEsaUJBQzVCLGdCQUFnQixFQUFFLEVBQ2xCLFFBQVEsQ0FBQyxlQUFlLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQ2pELGlGQUNFLFNBQVMsRUFBQyx3QkFBd0IsRUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRTt3Q0FDWixXQUFXLG1CQUNOLDZEQUFxQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQ3BELENBQUM7b0NBQ0wsQ0FBQyxnQkFFQSx3Q0FBQyxDQUFDLDZCQUE2QixDQUFDLFlBQzFCLENBQ1YsYUFDTSxhQUNGLFlBQ0wsWUFDTCxDQUNKLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Nb2JpbGVNZW51LnRzeD8wOGM0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEFwcFByb3BzLCBBcHBTdGF0ZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgQWN0aW9uTWFuYWdlciB9IGZyb20gXCIuLi9hY3Rpb25zL21hbmFnZXJcIjtcbmltcG9ydCB7IHQgfSBmcm9tIFwiLi4vaTE4blwiO1xuaW1wb3J0IFN0YWNrIGZyb20gXCIuL1N0YWNrXCI7XG5pbXBvcnQgeyBzaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMgfSBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IHsgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50IH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IEZpeGVkU2lkZUNvbnRhaW5lciB9IGZyb20gXCIuL0ZpeGVkU2lkZUNvbnRhaW5lclwiO1xuaW1wb3J0IHsgSXNsYW5kIH0gZnJvbSBcIi4vSXNsYW5kXCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVTY3JvbGxDZW50ZXIgfSBmcm9tIFwiLi4vc2NlbmVcIjtcbmltcG9ydCB7IFNlbGVjdGVkU2hhcGVBY3Rpb25zLCBTaGFwZXNTd2l0Y2hlciB9IGZyb20gXCIuL0FjdGlvbnNcIjtcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi9TZWN0aW9uXCI7XG5pbXBvcnQgQ29sbGFiQnV0dG9uIGZyb20gXCIuL0NvbGxhYkJ1dHRvblwiO1xuaW1wb3J0IHsgU0NST0xMQkFSX1dJRFRILCBTQ1JPTExCQVJfTUFSR0lOIH0gZnJvbSBcIi4uL3NjZW5lL3Njcm9sbGJhcnNcIjtcbmltcG9ydCB7IExvY2tCdXR0b24gfSBmcm9tIFwiLi9Mb2NrQnV0dG9uXCI7XG5pbXBvcnQgeyBVc2VyTGlzdCB9IGZyb20gXCIuL1VzZXJMaXN0XCI7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUgfSBmcm9tIFwiLi9CYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGVcIjtcbmltcG9ydCB7IExpYnJhcnlCdXR0b24gfSBmcm9tIFwiLi9MaWJyYXJ5QnV0dG9uXCI7XG5pbXBvcnQgeyBQZW5Nb2RlQnV0dG9uIH0gZnJvbSBcIi4vUGVuTW9kZUJ1dHRvblwiO1xuaW1wb3J0IHsgVG9vbEJ1dHRvbiB9IGZyb20gXCIuL1Rvb2xCdXR0b25cIjtcbmltcG9ydCB7IGhvbWUgfSBmcm9tIFwiLi9pY29uc1wiO1xuXG50eXBlIE1vYmlsZU1lbnVQcm9wcyA9IHtcbiAgb25Ib21lQnV0dG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG4gIGFjdGlvbk1hbmFnZXI6IEFjdGlvbk1hbmFnZXI7XG4gIHJlbmRlckpTT05FeHBvcnREaWFsb2c6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcmVuZGVySW1hZ2VFeHBvcnREaWFsb2c6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgc2V0QXBwU3RhdGU6IFJlYWN0LkNvbXBvbmVudDxhbnksIEFwcFN0YXRlPltcInNldFN0YXRlXCJdO1xuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W107XG4gIGxpYnJhcnlNZW51OiBKU1guRWxlbWVudCB8IG51bGw7XG4gIG9uQ29sbGFiQnV0dG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBvbkxvY2tUb2dnbGU6ICgpID0+IHZvaWQ7XG4gIG9uUGVuTW9kZVRvZ2dsZTogKCkgPT4gdm9pZDtcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gIGlzQ29sbGFib3JhdGluZzogYm9vbGVhbjtcbiAgcmVuZGVyQ3VzdG9tRm9vdGVyPzogKGlzTW9iaWxlOiBib29sZWFuLCBhcHBTdGF0ZTogQXBwU3RhdGUpID0+IEpTWC5FbGVtZW50O1xuICB2aWV3TW9kZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHNob3dUaGVtZUJ0bjogYm9vbGVhbjtcbiAgb25JbWFnZUFjdGlvbjogKGRhdGE6IHsgaW5zZXJ0T25DYW52YXNEaXJlY3RseTogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICByZW5kZXJUb3BSaWdodFVJPzogKFxuICAgIGlzTW9iaWxlOiBib29sZWFuLFxuICAgIGFwcFN0YXRlOiBBcHBTdGF0ZSxcbiAgICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCxcbiAgKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG4gIFVJT3B0aW9uczogQXBwUHJvcHNbXCJVSU9wdGlvbnNcIl07XG59O1xuXG5leHBvcnQgY29uc3QgTW9iaWxlTWVudSA9ICh7XG4gIG9uSG9tZUJ1dHRvbkNsaWNrLFxuICBhcHBTdGF0ZSxcbiAgZWxlbWVudHMsXG4gIGxpYnJhcnlNZW51LFxuICBhY3Rpb25NYW5hZ2VyLFxuICByZW5kZXJKU09ORXhwb3J0RGlhbG9nLFxuICByZW5kZXJJbWFnZUV4cG9ydERpYWxvZyxcbiAgc2V0QXBwU3RhdGUsXG4gIG9uQ29sbGFiQnV0dG9uQ2xpY2ssXG4gIG9uTG9ja1RvZ2dsZSxcbiAgb25QZW5Nb2RlVG9nZ2xlLFxuICBjYW52YXMsXG4gIGlzQ29sbGFib3JhdGluZyxcbiAgcmVuZGVyQ3VzdG9tRm9vdGVyLFxuICB2aWV3TW9kZUVuYWJsZWQsXG4gIHNob3dUaGVtZUJ0bixcbiAgb25JbWFnZUFjdGlvbixcbiAgcmVuZGVyVG9wUmlnaHRVSSxcbiAgVUlPcHRpb25zLFxufTogTW9iaWxlTWVudVByb3BzKSA9PiB7XG4gIGNvbnN0IHJlbmRlclRvb2xiYXIgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxGaXhlZFNpZGVDb250YWluZXIgc2lkZT1cInRvcFwiIGNsYXNzTmFtZT1cIkFwcC10b3AtYmFyXCI+XG4gICAgICAgIHsvKiBwbGFjZWhvbGRlciBmb3IgZ3JpZCAzLWNvbHVtbiB0ZW1wbGF0ZSAqL31cbiAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgPFNlY3Rpb24gaGVhZGluZz1cInNoYXBlc1wiPlxuICAgICAgICAgIHsoaGVhZGluZykgPT4gKFxuICAgICAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezR9IGFsaWduPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsxfSBjbGFzc05hbWU9XCJBcHAtdG9vbGJhci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8SXNsYW5kIHBhZGRpbmc9ezF9IGNsYXNzTmFtZT1cIkFwcC10b29sYmFyXCI+XG4gICAgICAgICAgICAgICAgICB7aGVhZGluZ31cbiAgICAgICAgICAgICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgICAgPFNoYXBlc1N3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgICAgY2FudmFzPXtjYW52YXN9XG4gICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFR5cGU9e2FwcFN0YXRlLmVsZW1lbnRUeXBlfVxuICAgICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uPXsoeyBwb2ludGVyVHlwZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0T25DYW52YXNEaXJlY3RseTogcG9pbnRlclR5cGUgIT09IFwibW91c2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrLlJvdz5cbiAgICAgICAgICAgICAgICA8L0lzbGFuZD5cbiAgICAgICAgICAgICAgICA8VG9vbEJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PVwiaG9tZVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIkhvbWVCdXR0b24gVG9vbEljb25fdHlwZV9mbG9hdGluZ1wiXG4gICAgICAgICAgICAgICAgICB0aXRsZT17XCJIb21lXCJ9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtcIkhvbWVcIn1cbiAgICAgICAgICAgICAgICAgIGljb249e2hvbWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkhvbWVCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxMb2NrQnV0dG9uXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXthcHBTdGF0ZS5lbGVtZW50TG9ja2VkfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uTG9ja1RvZ2dsZX1cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXt0KFwidG9vbEJhci5sb2NrXCIpfVxuICAgICAgICAgICAgICAgICAgaXNNb2JpbGVcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxMaWJyYXJ5QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgICBzZXRBcHBTdGF0ZT17c2V0QXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgICBpc01vYmlsZVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBlbk1vZGVCdXR0b25cbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FwcFN0YXRlLnBlbk1vZGV9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25QZW5Nb2RlVG9nZ2xlfVxuICAgICAgICAgICAgICAgICAgdGl0bGU9e3QoXCJ0b29sQmFyLnBlbk1vZGVcIil9XG4gICAgICAgICAgICAgICAgICBpc01vYmlsZVxuICAgICAgICAgICAgICAgICAgcGVuRGV0ZWN0ZWQ9e2FwcFN0YXRlLnBlbkRldGVjdGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2suUm93PlxuICAgICAgICAgICAgICB7bGlicmFyeU1lbnV9XG4gICAgICAgICAgICA8L1N0YWNrLkNvbD5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XG4gICAgICAgICAge3JlbmRlclRvcFJpZ2h0VUk/Lih0cnVlLCBhcHBTdGF0ZSwgY2FudmFzKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0ZpeGVkU2lkZUNvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckFwcFRvb2xiYXIgPSAoKSA9PiB7XG4gICAgaWYgKHZpZXdNb2RlRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIFVJT3B0aW9ucy5jYW52YXNBY3Rpb25zID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIkFwcC10b29sYmFyLWNvbnRlbnRcIj5cbiAgICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJ0b2dnbGVDYW52YXNNZW51XCIpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxkaXY+RXhjYWxpZHJhdzwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiQXBwLXRvb2xiYXItY29udGVudFwiPlxuICAgICAgICB7VUlPcHRpb25zLmNhbnZhc0FjdGlvbnMgJiZcbiAgICAgICAgICBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInRvZ2dsZUNhbnZhc01lbnVcIil9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInRvZ2dsZUVkaXRNZW51XCIpfVxuICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJ1bmRvXCIpfVxuICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJyZWRvXCIpfVxuICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXG4gICAgICAgICAgYXBwU3RhdGUubXVsdGlFbGVtZW50ID8gXCJmaW5hbGl6ZVwiIDogXCJkdXBsaWNhdGVTZWxlY3Rpb25cIixcbiAgICAgICAgKX1cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiZGVsZXRlU2VsZWN0ZWRFbGVtZW50c1wiKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyQ2FudmFzQWN0aW9ucyA9ICgpID0+IHtcbiAgICBpZiAodmlld01vZGVFbmFibGVkKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIHtyZW5kZXJKU09ORXhwb3J0RGlhbG9nKCl9XG4gICAgICAgICAge3JlbmRlckltYWdlRXhwb3J0RGlhbG9nKCl9XG4gICAgICAgIDwvPlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcImNsZWFyQ2FudmFzXCIpfVxuICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJsb2FkU2NlbmVcIil9XG4gICAgICAgIHtyZW5kZXJKU09ORXhwb3J0RGlhbG9nKCl9XG4gICAgICAgIHtyZW5kZXJJbWFnZUV4cG9ydERpYWxvZygpfVxuICAgICAgICB7b25Db2xsYWJCdXR0b25DbGljayAmJiAoXG4gICAgICAgICAgPENvbGxhYkJ1dHRvblxuICAgICAgICAgICAgaXNDb2xsYWJvcmF0aW5nPXtpc0NvbGxhYm9yYXRpbmd9XG4gICAgICAgICAgICBjb2xsYWJvcmF0b3JDb3VudD17YXBwU3RhdGUuY29sbGFib3JhdG9ycy5zaXplfVxuICAgICAgICAgICAgb25DbGljaz17b25Db2xsYWJCdXR0b25DbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7XG4gICAgICAgICAgPEJhY2tncm91bmRQaWNrZXJBbmREYXJrTW9kZVRvZ2dsZVxuICAgICAgICAgICAgYWN0aW9uTWFuYWdlcj17YWN0aW9uTWFuYWdlcn1cbiAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgICAgIHNob3dUaGVtZUJ0bj17c2hvd1RoZW1lQnRufVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHshdmlld01vZGVFbmFibGVkICYmIHJlbmRlclRvb2xiYXIoKX1cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwiQXBwLWJvdHRvbS1iYXJcIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIG1hcmdpbkJvdHRvbTogU0NST0xMQkFSX1dJRFRIICsgU0NST0xMQkFSX01BUkdJTiAqIDIsXG4gICAgICAgICAgbWFyZ2luTGVmdDogU0NST0xMQkFSX1dJRFRIICsgU0NST0xMQkFSX01BUkdJTiAqIDIsXG4gICAgICAgICAgbWFyZ2luUmlnaHQ6IFNDUk9MTEJBUl9XSURUSCArIFNDUk9MTEJBUl9NQVJHSU4gKiAyLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8SXNsYW5kIHBhZGRpbmc9ezB9PlxuICAgICAgICAgIHtVSU9wdGlvbnMuY2FudmFzQWN0aW9ucyAmJiBhcHBTdGF0ZS5vcGVuTWVudSA9PT0gXCJjYW52YXNcIiA/IChcbiAgICAgICAgICAgIDxTZWN0aW9uIGNsYXNzTmFtZT1cIkFwcC1tb2JpbGUtbWVudVwiIGhlYWRpbmc9XCJjYW52YXNBY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFuZWxDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8U3RhY2suQ29sIGdhcD17NH0+XG4gICAgICAgICAgICAgICAgICB7cmVuZGVyQ2FudmFzQWN0aW9ucygpfVxuICAgICAgICAgICAgICAgICAge3JlbmRlckN1c3RvbUZvb3Rlcj8uKHRydWUsIGFwcFN0YXRlKX1cbiAgICAgICAgICAgICAgICAgIHthcHBTdGF0ZS5jb2xsYWJvcmF0b3JzLnNpemUgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0PlxuICAgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQ+e3QoXCJsYWJlbHMuY29sbGFib3JhdG9yc1wiKX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgICAgICAgICA8VXNlckxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0PVwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsYWJvcmF0b3JzPXthcHBTdGF0ZS5jb2xsYWJvcmF0b3JzfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uTWFuYWdlcj17YWN0aW9uTWFuYWdlcn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrLkNvbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgICAgKSA6IGFwcFN0YXRlLm9wZW5NZW51ID09PSBcInNoYXBlXCIgJiZcbiAgICAgICAgICAgICF2aWV3TW9kZUVuYWJsZWQgJiZcbiAgICAgICAgICAgIHNob3dTZWxlY3RlZFNoYXBlQWN0aW9ucyhhcHBTdGF0ZSwgZWxlbWVudHMpID8gKFxuICAgICAgICAgICAgPFNlY3Rpb24gY2xhc3NOYW1lPVwiQXBwLW1vYmlsZS1tZW51XCIgaGVhZGluZz1cInNlbGVjdGVkU2hhcGVBY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxTZWxlY3RlZFNoYXBlQWN0aW9uc1xuICAgICAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uPXthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbn1cbiAgICAgICAgICAgICAgICBlbGVtZW50VHlwZT17YXBwU3RhdGUuZWxlbWVudFR5cGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPGZvb3RlciBjbGFzc05hbWU9XCJBcHAtdG9vbGJhclwiPlxuICAgICAgICAgICAge3JlbmRlckFwcFRvb2xiYXIoKX1cbiAgICAgICAgICAgIHthcHBTdGF0ZS5zY3JvbGxlZE91dHNpZGUgJiYgIWFwcFN0YXRlLm9wZW5NZW51ICYmIChcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNjcm9sbC1iYWNrLXRvLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2FsY3VsYXRlU2Nyb2xsQ2VudGVyKGVsZW1lbnRzLCBhcHBTdGF0ZSwgY2FudmFzKSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dChcImJ1dHRvbnMuc2Nyb2xsQmFja1RvQ29udGVudFwiKX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICA8L0lzbGFuZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/MobileMenu.tsx\n");
|
|
1926
1926
|
|
|
1927
1927
|
/***/ }),
|
|
1928
1928
|
|
|
@@ -2923,7 +2923,7 @@ module.exports = JSON.parse('{"ar-SA":88,"bg-BG":62,"bn-BD":0,"ca-ES":97,"cs-CZ"
|
|
|
2923
2923
|
/***/ ((module) => {
|
|
2924
2924
|
|
|
2925
2925
|
"use strict";
|
|
2926
|
-
module.exports = JSON.parse('{"name":"@dwelle/excalidraw","version":"0.3.
|
|
2926
|
+
module.exports = JSON.parse('{"name":"@dwelle/excalidraw","version":"0.3.38","main":"main.js","types":"types/packages/excalidraw/index.d.ts","files":["dist/*","types/*"],"publishConfig":{"access":"public"},"description":"Excalidraw as a React component","license":"MIT","keywords":[],"browserslist":{"production":[">0.2%","not dead","not ie <= 11","not op_mini all","not safari < 12","not kaios <= 2.5","not edge < 79","not chrome < 70","not and_uc < 13","not samsung < 10"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@babel/core":"7.16.7","@babel/plugin-transform-arrow-functions":"7.16.7","@babel/plugin-transform-async-to-generator":"7.16.0","@babel/plugin-transform-runtime":"7.16.8","@babel/plugin-transform-typescript":"7.16.1","@babel/preset-env":"7.16.7","@babel/preset-react":"7.16.7","@babel/preset-typescript":"7.16.7","autoprefixer":"10.4.2","babel-loader":"8.2.3","babel-plugin-transform-class-properties":"6.24.1","cross-env":"7.0.3","css-loader":"6.5.1","mini-css-extract-plugin":"2.4.6","postcss-loader":"6.2.1","sass-loader":"12.4.0","terser-webpack-plugin":"5.3.0","ts-loader":"9.2.6","typescript":"4.5.4","webpack":"5.65.0","webpack-bundle-analyzer":"4.5.0","webpack-cli":"4.9.1","webpack-dev-server":"4.7.3","webpack-merge":"5.8.0"},"repository":"https://github.com/dwelle/excalidraw","homepage":"https://github.com/excalidraw/excalidraw/tree/master/src/packages/excalidraw","scripts":{"gen:types":"tsc --project ../../../tsconfig-types.json","build:umd":"rm -rf dist && cross-env NODE_ENV=production webpack --config webpack.prod.config.js && cross-env NODE_ENV=development webpack --config webpack.dev.config.js && yarn gen:types","build:umd:withAnalyzer":"cross-env NODE_ENV=production ANALYZER=true webpack --config webpack.prod.config.js","pack":"yarn build:umd && yarn pack","start":"webpack serve --config webpack.dev-server.config.js "},"dependencies":{"dotenv":"10.0.0"}}');
|
|
2927
2927
|
|
|
2928
2928
|
/***/ })
|
|
2929
2929
|
|