@dwelle/excalidraw 0.3.13 → 0.3.14
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.
|
@@ -1466,7 +1466,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1466
1466
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1467
1467
|
|
|
1468
1468
|
"use strict";
|
|
1469
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SelectedShapeActions\": () => (/* binding */ SelectedShapeActions),\n/* harmony export */ \"ShapesSwitcher\": () => (/* binding */ ShapesSwitcher),\n/* harmony export */ \"ZoomActions\": () => (/* binding */ ZoomActions)\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 _element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _shapes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../shapes */ \"../../shapes.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _scene_comparisons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../scene/comparisons */ \"../../scene/comparisons.ts\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst SelectedShapeActions = ({ appState, elements, renderAction, elementType, }) => {\r\n const targetElements = (0,_scene__WEBPACK_IMPORTED_MODULE_5__.getTargetElements)((0,_element__WEBPACK_IMPORTED_MODULE_2__.getNonDeletedElements)(elements), appState);\r\n const isEditing = Boolean(appState.editingElement);\r\n const isMobile = (0,_components_App__WEBPACK_IMPORTED_MODULE_4__.useIsMobile)();\r\n const isRTL = document.documentElement.getAttribute(\"dir\") === \"rtl\";\r\n const showFillIcons = (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasBackground)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasBackground)(element.type) && !(0,_utils__WEBPACK_IMPORTED_MODULE_7__.isTransparent)(element.backgroundColor));\r\n const showChangeBackgroundIcons = (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasBackground)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasBackground)(element.type));\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"panelColumn\" }, { children: [(((0,_scene_comparisons__WEBPACK_IMPORTED_MODULE_10__.hasStrokeColor)(elementType) && elementType !== \"image\") ||\r\n targetElements.some((element) => (0,_scene_comparisons__WEBPACK_IMPORTED_MODULE_10__.hasStrokeColor)(element.type))) &&\r\n renderAction(\"changeStrokeColor\"), showChangeBackgroundIcons && renderAction(\"changeBackgroundColor\"), showFillIcons && renderAction(\"changeFillStyle\"), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasStrokeWidth)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasStrokeWidth)(element.type))) &&\r\n renderAction(\"changeStrokeWidth\"), (elementType === \"freedraw\" ||\r\n targetElements.some((element) => element.type === \"freedraw\")) &&\r\n renderAction(\"changeStrokeShape\"), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasStrokeStyle)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasStrokeStyle)(element.type))) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderAction(\"changeStrokeStyle\"), renderAction(\"changeSloppiness\")] }, void 0)), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.canChangeSharpness)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.canChangeSharpness)(element.type))) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: renderAction(\"changeSharpness\") }, void 0)), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasText)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasText)(element.type))) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderAction(\"changeFontSize\"), renderAction(\"changeFontFamily\"), renderAction(\"changeTextAlign\")] }, void 0)), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.canHaveArrowheads)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.canHaveArrowheads)(element.type))) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: renderAction(\"changeArrowhead\") }, void 0)), renderAction(\"changeOpacity\"), (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_3__.t)(\"labels.layers\") }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"buttonList\" }, { children: [renderAction(\"sendToBack\"), renderAction(\"sendBackward\"), renderAction(\"bringToFront\"), renderAction(\"bringForward\")] }), void 0)] }, void 0), targetElements.length > 1 && ((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_3__.t)(\"labels.align\") }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"buttonList\" }, { children: [isRTL ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderAction(\"alignRight\"), renderAction(\"alignHorizontallyCentered\"), renderAction(\"alignLeft\")] }, void 0)) : ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderAction(\"alignLeft\"), renderAction(\"alignHorizontallyCentered\"), renderAction(\"alignRight\")] }, void 0)), targetElements.length > 2 &&\r\n renderAction(\"distributeHorizontally\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"iconRow\" }, { children: [renderAction(\"alignTop\"), renderAction(\"alignVerticallyCentered\"), renderAction(\"alignBottom\"), targetElements.length > 2 &&\r\n renderAction(\"distributeVertically\")] }), void 0)] }), void 0)] }, void 0)), !isMobile && !isEditing && targetElements.length > 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_3__.t)(\"labels.actions\") }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"buttonList\" }, { children: [renderAction(\"duplicateSelection\"), renderAction(\"deleteSelectedElements\"), renderAction(\"group\"), renderAction(\"ungroup\")] }), void 0)] }, void 0))] }), void 0));\r\n};\r\nconst ShapesSwitcher = ({ canvas, elementType, setAppState, onImageAction, }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: _shapes__WEBPACK_IMPORTED_MODULE_6__.SHAPES.map(({ value, icon, key }, index) => {\r\n const label = (0,_i18n__WEBPACK_IMPORTED_MODULE_3__.t)(`toolBar.${value}`);\r\n const letter = key && (typeof key === \"string\" ? key : key[0]);\r\n const shortcut = letter\r\n ? `${(0,_utils__WEBPACK_IMPORTED_MODULE_7__.capitalizeString)(letter)} ${(0,_i18n__WEBPACK_IMPORTED_MODULE_3__.t)(\"helpDialog.or\")} ${index + 1}`\r\n : `${index + 1}`;\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_9__.ToolButton, { className: \"Shape\", type: \"radio\", icon: icon, checked: elementType === value, name: \"editor-current-shape\", title: `${(0,_utils__WEBPACK_IMPORTED_MODULE_7__.capitalizeString)(label)} — ${shortcut}`, keyBindingLabel: `${index + 1}`, \"aria-label\": (0,_utils__WEBPACK_IMPORTED_MODULE_7__.capitalizeString)(label), \"aria-keyshortcuts\": shortcut, \"data-testid\": value, onChange: ({ pointerType }) => {\r\n setAppState({\r\n elementType: value,\r\n multiElement: null,\r\n selectedElementIds: {},\r\n });\r\n (0,_utils__WEBPACK_IMPORTED_MODULE_7__.setCursorForShape)(canvas, value);\r\n if (value === \"image\") {\r\n onImageAction({ pointerType });\r\n }\r\n } }, value));\r\n }) }, void 0));\r\nconst ZoomActions = ({ renderAction, zoom, }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_8__.default.Col, Object.assign({ gap: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_8__.default.Row, Object.assign({ gap: 1, align: \"center\" }, { children: [renderAction(\"zoomOut\"), renderAction(\"zoomIn\"), renderAction(\"resetZoom\")] }), void 0) }), void 0));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUMsZ0JBQ2Ysd0RBQUMsK0NBQVMsa0JBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUMsUUFBUSxpQkFDOUIsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUN2QixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQ3RCLFlBQVksQ0FBQyxXQUFXLENBQUMsYUFDaEIsWUFDRixDQUNiLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9BY3Rpb25zLnRzeD9iMTI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEFjdGlvbk1hbmFnZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy9tYW5hZ2VyXCI7XG5pbXBvcnQgeyBnZXROb25EZWxldGVkRWxlbWVudHMgfSBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IHsgRXhjYWxpZHJhd0VsZW1lbnQsIFBvaW50ZXJUeXBlIH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IHQgfSBmcm9tIFwiLi4vaTE4blwiO1xuaW1wb3J0IHsgdXNlSXNNb2JpbGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9BcHBcIjtcbmltcG9ydCB7XG4gIGNhbkNoYW5nZVNoYXJwbmVzcyxcbiAgY2FuSGF2ZUFycm93aGVhZHMsXG4gIGdldFRhcmdldEVsZW1lbnRzLFxuICBoYXNCYWNrZ3JvdW5kLFxuICBoYXNTdHJva2VTdHlsZSxcbiAgaGFzU3Ryb2tlV2lkdGgsXG4gIGhhc1RleHQsXG59IGZyb20gXCIuLi9zY2VuZVwiO1xuaW1wb3J0IHsgU0hBUEVTIH0gZnJvbSBcIi4uL3NoYXBlc1wiO1xuaW1wb3J0IHsgQXBwU3RhdGUsIFpvb20gfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGNhcGl0YWxpemVTdHJpbmcsIGlzVHJhbnNwYXJlbnQsIHNldEN1cnNvckZvclNoYXBlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIi4vU3RhY2tcIjtcbmltcG9ydCB7IFRvb2xCdXR0b24gfSBmcm9tIFwiLi9Ub29sQnV0dG9uXCI7XG5pbXBvcnQgeyBoYXNTdHJva2VDb2xvciB9IGZyb20gXCIuLi9zY2VuZS9jb21wYXJpc29uc1wiO1xuXG5leHBvcnQgY29uc3QgU2VsZWN0ZWRTaGFwZUFjdGlvbnMgPSAoe1xuICBhcHBTdGF0ZSxcbiAgZWxlbWVudHMsXG4gIHJlbmRlckFjdGlvbixcbiAgZWxlbWVudFR5cGUsXG59OiB7XG4gIGFwcFN0YXRlOiBBcHBTdGF0ZTtcbiAgZWxlbWVudHM6IHJlYWRvbmx5IEV4Y2FsaWRyYXdFbGVtZW50W107XG4gIHJlbmRlckFjdGlvbjogQWN0aW9uTWFuYWdlcltcInJlbmRlckFjdGlvblwiXTtcbiAgZWxlbWVudFR5cGU6IEV4Y2FsaWRyYXdFbGVtZW50W1widHlwZVwiXTtcbn0pID0+IHtcbiAgY29uc3QgdGFyZ2V0RWxlbWVudHMgPSBnZXRUYXJnZXRFbGVtZW50cyhcbiAgICBnZXROb25EZWxldGVkRWxlbWVudHMoZWxlbWVudHMpLFxuICAgIGFwcFN0YXRlLFxuICApO1xuICBjb25zdCBpc0VkaXRpbmcgPSBCb29sZWFuKGFwcFN0YXRlLmVkaXRpbmdFbGVtZW50KTtcbiAgY29uc3QgaXNNb2JpbGUgPSB1c2VJc01vYmlsZSgpO1xuICBjb25zdCBpc1JUTCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkaXJcIikgPT09IFwicnRsXCI7XG5cbiAgY29uc3Qgc2hvd0ZpbGxJY29ucyA9XG4gICAgaGFzQmFja2dyb3VuZChlbGVtZW50VHlwZSkgfHxcbiAgICB0YXJnZXRFbGVtZW50cy5zb21lKFxuICAgICAgKGVsZW1lbnQpID0+XG4gICAgICAgIGhhc0JhY2tncm91bmQoZWxlbWVudC50eXBlKSAmJiAhaXNUcmFuc3BhcmVudChlbGVtZW50LmJhY2tncm91bmRDb2xvciksXG4gICAgKTtcbiAgY29uc3Qgc2hvd0NoYW5nZUJhY2tncm91bmRJY29ucyA9XG4gICAgaGFzQmFja2dyb3VuZChlbGVtZW50VHlwZSkgfHxcbiAgICB0YXJnZXRFbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiBoYXNCYWNrZ3JvdW5kKGVsZW1lbnQudHlwZSkpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwYW5lbENvbHVtblwiPlxuICAgICAgeygoaGFzU3Ryb2tlQ29sb3IoZWxlbWVudFR5cGUpICYmIGVsZW1lbnRUeXBlICE9PSBcImltYWdlXCIpIHx8XG4gICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IGhhc1N0cm9rZUNvbG9yKGVsZW1lbnQudHlwZSkpKSAmJlxuICAgICAgICByZW5kZXJBY3Rpb24oXCJjaGFuZ2VTdHJva2VDb2xvclwiKX1cbiAgICAgIHtzaG93Q2hhbmdlQmFja2dyb3VuZEljb25zICYmIHJlbmRlckFjdGlvbihcImNoYW5nZUJhY2tncm91bmRDb2xvclwiKX1cbiAgICAgIHtzaG93RmlsbEljb25zICYmIHJlbmRlckFjdGlvbihcImNoYW5nZUZpbGxTdHlsZVwiKX1cblxuICAgICAgeyhoYXNTdHJva2VXaWR0aChlbGVtZW50VHlwZSkgfHxcbiAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gaGFzU3Ryb2tlV2lkdGgoZWxlbWVudC50eXBlKSkpICYmXG4gICAgICAgIHJlbmRlckFjdGlvbihcImNoYW5nZVN0cm9rZVdpZHRoXCIpfVxuXG4gICAgICB7KGVsZW1lbnRUeXBlID09PSBcImZyZWVkcmF3XCIgfHxcbiAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gZWxlbWVudC50eXBlID09PSBcImZyZWVkcmF3XCIpKSAmJlxuICAgICAgICByZW5kZXJBY3Rpb24oXCJjaGFuZ2VTdHJva2VTaGFwZVwiKX1cblxuICAgICAgeyhoYXNTdHJva2VTdHlsZShlbGVtZW50VHlwZSkgfHxcbiAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gaGFzU3Ryb2tlU3R5bGUoZWxlbWVudC50eXBlKSkpICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiY2hhbmdlU3Ryb2tlU3R5bGVcIil9XG4gICAgICAgICAge3JlbmRlckFjdGlvbihcImNoYW5nZVNsb3BwaW5lc3NcIil9XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgeyhjYW5DaGFuZ2VTaGFycG5lc3MoZWxlbWVudFR5cGUpIHx8XG4gICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IGNhbkNoYW5nZVNoYXJwbmVzcyhlbGVtZW50LnR5cGUpKSkgJiYgKFxuICAgICAgICA8PntyZW5kZXJBY3Rpb24oXCJjaGFuZ2VTaGFycG5lc3NcIil9PC8+XG4gICAgICApfVxuXG4gICAgICB7KGhhc1RleHQoZWxlbWVudFR5cGUpIHx8XG4gICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IGhhc1RleHQoZWxlbWVudC50eXBlKSkpICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiY2hhbmdlRm9udFNpemVcIil9XG5cbiAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiY2hhbmdlRm9udEZhbWlseVwiKX1cblxuICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJjaGFuZ2VUZXh0QWxpZ25cIil9XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgeyhjYW5IYXZlQXJyb3doZWFkcyhlbGVtZW50VHlwZSkgfHxcbiAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gY2FuSGF2ZUFycm93aGVhZHMoZWxlbWVudC50eXBlKSkpICYmIChcbiAgICAgICAgPD57cmVuZGVyQWN0aW9uKFwiY2hhbmdlQXJyb3doZWFkXCIpfTwvPlxuICAgICAgKX1cblxuICAgICAge3JlbmRlckFjdGlvbihcImNoYW5nZU9wYWNpdHlcIil9XG5cbiAgICAgIDxmaWVsZHNldD5cbiAgICAgICAgPGxlZ2VuZD57dChcImxhYmVscy5sYXllcnNcIil9PC9sZWdlbmQ+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uTGlzdFwiPlxuICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJzZW5kVG9CYWNrXCIpfVxuICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJzZW5kQmFja3dhcmRcIil9XG4gICAgICAgICAge3JlbmRlckFjdGlvbihcImJyaW5nVG9Gcm9udFwiKX1cbiAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYnJpbmdGb3J3YXJkXCIpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgIHt0YXJnZXRFbGVtZW50cy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgPGZpZWxkc2V0PlxuICAgICAgICAgIDxsZWdlbmQ+e3QoXCJsYWJlbHMuYWxpZ25cIil9PC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b25MaXN0XCI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC8vIHN3YXAgdGhpcyBvcmRlciBmb3IgUlRMIHNvIHRoZSBidXR0b24gcG9zaXRpb25zIGFsd2F5cyBtYXRjaCB0aGVpciBhY3Rpb25cbiAgICAgICAgICAgICAgLy8gKGkuZS4gdGhlIGxlZnRtb3N0IGJ1dHRvbiBhbGlnbnMgbGVmdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHtpc1JUTCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25SaWdodFwiKX1cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25Ib3Jpem9udGFsbHlDZW50ZXJlZFwiKX1cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25MZWZ0XCIpfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge3JlbmRlckFjdGlvbihcImFsaWduTGVmdFwiKX1cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25Ib3Jpem9udGFsbHlDZW50ZXJlZFwiKX1cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25SaWdodFwiKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3RhcmdldEVsZW1lbnRzLmxlbmd0aCA+IDIgJiZcbiAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uKFwiZGlzdHJpYnV0ZUhvcml6b250YWxseVwiKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvblJvd1wiPlxuICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25Ub3BcIil9XG4gICAgICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJhbGlnblZlcnRpY2FsbHlDZW50ZXJlZFwiKX1cbiAgICAgICAgICAgICAge3JlbmRlckFjdGlvbihcImFsaWduQm90dG9tXCIpfVxuICAgICAgICAgICAgICB7dGFyZ2V0RWxlbWVudHMubGVuZ3RoID4gMiAmJlxuICAgICAgICAgICAgICAgIHJlbmRlckFjdGlvbihcImRpc3RyaWJ1dGVWZXJ0aWNhbGx5XCIpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICApfVxuICAgICAgeyFpc01vYmlsZSAmJiAhaXNFZGl0aW5nICYmIHRhcmdldEVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZmllbGRzZXQ+XG4gICAgICAgICAgPGxlZ2VuZD57dChcImxhYmVscy5hY3Rpb25zXCIpfTwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uTGlzdFwiPlxuICAgICAgICAgICAge3JlbmRlckFjdGlvbihcImR1cGxpY2F0ZVNlbGVjdGlvblwiKX1cbiAgICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJkZWxldGVTZWxlY3RlZEVsZW1lbnRzXCIpfVxuICAgICAgICAgICAge3JlbmRlckFjdGlvbihcImdyb3VwXCIpfVxuICAgICAgICAgICAge3JlbmRlckFjdGlvbihcInVuZ3JvdXBcIil9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFNoYXBlc1N3aXRjaGVyID0gKHtcbiAgY2FudmFzLFxuICBlbGVtZW50VHlwZSxcbiAgc2V0QXBwU3RhdGUsXG4gIG9uSW1hZ2VBY3Rpb24sXG59OiB7XG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsO1xuICBlbGVtZW50VHlwZTogRXhjYWxpZHJhd0VsZW1lbnRbXCJ0eXBlXCJdO1xuICBzZXRBcHBTdGF0ZTogUmVhY3QuQ29tcG9uZW50PGFueSwgQXBwU3RhdGU+W1wic2V0U3RhdGVcIl07XG4gIG9uSW1hZ2VBY3Rpb246IChkYXRhOiB7IHBvaW50ZXJUeXBlOiBQb2ludGVyVHlwZSB8IG51bGwgfSkgPT4gdm9pZDtcbn0pID0+IChcbiAgPD5cbiAgICB7U0hBUEVTLm1hcCgoeyB2YWx1ZSwgaWNvbiwga2V5IH0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBsYWJlbCA9IHQoYHRvb2xCYXIuJHt2YWx1ZX1gKTtcbiAgICAgIGNvbnN0IGxldHRlciA9IGtleSAmJiAodHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIiA/IGtleSA6IGtleVswXSk7XG4gICAgICBjb25zdCBzaG9ydGN1dCA9IGxldHRlclxuICAgICAgICA/IGAke2NhcGl0YWxpemVTdHJpbmcobGV0dGVyKX0gJHt0KFwiaGVscERpYWxvZy5vclwiKX0gJHtpbmRleCArIDF9YFxuICAgICAgICA6IGAke2luZGV4ICsgMX1gO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2xCdXR0b25cbiAgICAgICAgICBjbGFzc05hbWU9XCJTaGFwZVwiXG4gICAgICAgICAga2V5PXt2YWx1ZX1cbiAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgIGljb249e2ljb259XG4gICAgICAgICAgY2hlY2tlZD17ZWxlbWVudFR5cGUgPT09IHZhbHVlfVxuICAgICAgICAgIG5hbWU9XCJlZGl0b3ItY3VycmVudC1zaGFwZVwiXG4gICAgICAgICAgdGl0bGU9e2Ake2NhcGl0YWxpemVTdHJpbmcobGFiZWwpfSDigJQgJHtzaG9ydGN1dH1gfVxuICAgICAgICAgIGtleUJpbmRpbmdMYWJlbD17YCR7aW5kZXggKyAxfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17Y2FwaXRhbGl6ZVN0cmluZyhsYWJlbCl9XG4gICAgICAgICAgYXJpYS1rZXlzaG9ydGN1dHM9e3Nob3J0Y3V0fVxuICAgICAgICAgIGRhdGEtdGVzdGlkPXt2YWx1ZX1cbiAgICAgICAgICBvbkNoYW5nZT17KHsgcG9pbnRlclR5cGUgfSkgPT4ge1xuICAgICAgICAgICAgc2V0QXBwU3RhdGUoe1xuICAgICAgICAgICAgICBlbGVtZW50VHlwZTogdmFsdWUsXG4gICAgICAgICAgICAgIG11bHRpRWxlbWVudDogbnVsbCxcbiAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0Q3Vyc29yRm9yU2hhcGUoY2FudmFzLCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IFwiaW1hZ2VcIikge1xuICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uKHsgcG9pbnRlclR5cGUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfSl9XG4gIDwvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFpvb21BY3Rpb25zID0gKHtcbiAgcmVuZGVyQWN0aW9uLFxuICB6b29tLFxufToge1xuICByZW5kZXJBY3Rpb246IEFjdGlvbk1hbmFnZXJbXCJyZW5kZXJBY3Rpb25cIl07XG4gIHpvb206IFpvb207XG59KSA9PiAoXG4gIDxTdGFjay5Db2wgZ2FwPXsxfT5cbiAgICA8U3RhY2suUm93IGdhcD17MX0gYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgIHtyZW5kZXJBY3Rpb24oXCJ6b29tT3V0XCIpfVxuICAgICAge3JlbmRlckFjdGlvbihcInpvb21JblwiKX1cbiAgICAgIHtyZW5kZXJBY3Rpb24oXCJyZXNldFpvb21cIil9XG4gICAgPC9TdGFjay5Sb3c+XG4gIDwvU3RhY2suQ29sPlxuKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/Actions.tsx\n");
|
|
1469
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SelectedShapeActions\": () => (/* binding */ SelectedShapeActions),\n/* harmony export */ \"ShapesSwitcher\": () => (/* binding */ ShapesSwitcher),\n/* harmony export */ \"ZoomActions\": () => (/* binding */ ZoomActions)\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 _element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _shapes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../shapes */ \"../../shapes.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _scene_comparisons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../scene/comparisons */ \"../../scene/comparisons.ts\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst SelectedShapeActions = ({ appState, elements, renderAction, elementType, }) => {\r\n var _a;\r\n const targetElements = (0,_scene__WEBPACK_IMPORTED_MODULE_5__.getTargetElements)((0,_element__WEBPACK_IMPORTED_MODULE_2__.getNonDeletedElements)(elements), appState);\r\n const isEditing = Boolean(appState.editingElement);\r\n const isMobile = (0,_components_App__WEBPACK_IMPORTED_MODULE_4__.useIsMobile)();\r\n const isRTL = document.documentElement.getAttribute(\"dir\") === \"rtl\";\r\n const showFillIcons = (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasBackground)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasBackground)(element.type) && !(0,_utils__WEBPACK_IMPORTED_MODULE_7__.isTransparent)(element.backgroundColor));\r\n const showChangeBackgroundIcons = (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasBackground)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasBackground)(element.type));\r\n let commonSelectedType = ((_a = targetElements[0]) === null || _a === void 0 ? void 0 : _a.type) || null;\r\n for (const element of targetElements) {\r\n if (element.type !== commonSelectedType) {\r\n commonSelectedType = null;\r\n break;\r\n }\r\n }\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"panelColumn\" }, { children: [(((0,_scene_comparisons__WEBPACK_IMPORTED_MODULE_10__.hasStrokeColor)(elementType) &&\r\n elementType !== \"image\" &&\r\n commonSelectedType !== \"image\") ||\r\n targetElements.some((element) => (0,_scene_comparisons__WEBPACK_IMPORTED_MODULE_10__.hasStrokeColor)(element.type))) &&\r\n renderAction(\"changeStrokeColor\"), showChangeBackgroundIcons && renderAction(\"changeBackgroundColor\"), showFillIcons && renderAction(\"changeFillStyle\"), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasStrokeWidth)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasStrokeWidth)(element.type))) &&\r\n renderAction(\"changeStrokeWidth\"), (elementType === \"freedraw\" ||\r\n targetElements.some((element) => element.type === \"freedraw\")) &&\r\n renderAction(\"changeStrokeShape\"), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasStrokeStyle)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasStrokeStyle)(element.type))) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderAction(\"changeStrokeStyle\"), renderAction(\"changeSloppiness\")] }, void 0)), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.canChangeSharpness)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.canChangeSharpness)(element.type))) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: renderAction(\"changeSharpness\") }, void 0)), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasText)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.hasText)(element.type))) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderAction(\"changeFontSize\"), renderAction(\"changeFontFamily\"), renderAction(\"changeTextAlign\")] }, void 0)), ((0,_scene__WEBPACK_IMPORTED_MODULE_5__.canHaveArrowheads)(elementType) ||\r\n targetElements.some((element) => (0,_scene__WEBPACK_IMPORTED_MODULE_5__.canHaveArrowheads)(element.type))) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: renderAction(\"changeArrowhead\") }, void 0)), renderAction(\"changeOpacity\"), (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_3__.t)(\"labels.layers\") }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"buttonList\" }, { children: [renderAction(\"sendToBack\"), renderAction(\"sendBackward\"), renderAction(\"bringToFront\"), renderAction(\"bringForward\")] }), void 0)] }, void 0), targetElements.length > 1 && ((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_3__.t)(\"labels.align\") }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"buttonList\" }, { children: [isRTL ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderAction(\"alignRight\"), renderAction(\"alignHorizontallyCentered\"), renderAction(\"alignLeft\")] }, void 0)) : ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderAction(\"alignLeft\"), renderAction(\"alignHorizontallyCentered\"), renderAction(\"alignRight\")] }, void 0)), targetElements.length > 2 &&\r\n renderAction(\"distributeHorizontally\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"iconRow\" }, { children: [renderAction(\"alignTop\"), renderAction(\"alignVerticallyCentered\"), renderAction(\"alignBottom\"), targetElements.length > 2 &&\r\n renderAction(\"distributeVertically\")] }), void 0)] }), void 0)] }, void 0)), !isMobile && !isEditing && targetElements.length > 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_3__.t)(\"labels.actions\") }, void 0), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"buttonList\" }, { children: [renderAction(\"duplicateSelection\"), renderAction(\"deleteSelectedElements\"), renderAction(\"group\"), renderAction(\"ungroup\")] }), void 0)] }, void 0))] }), void 0));\r\n};\r\nconst ShapesSwitcher = ({ canvas, elementType, setAppState, onImageAction, }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: _shapes__WEBPACK_IMPORTED_MODULE_6__.SHAPES.map(({ value, icon, key }, index) => {\r\n const label = (0,_i18n__WEBPACK_IMPORTED_MODULE_3__.t)(`toolBar.${value}`);\r\n const letter = key && (typeof key === \"string\" ? key : key[0]);\r\n const shortcut = letter\r\n ? `${(0,_utils__WEBPACK_IMPORTED_MODULE_7__.capitalizeString)(letter)} ${(0,_i18n__WEBPACK_IMPORTED_MODULE_3__.t)(\"helpDialog.or\")} ${index + 1}`\r\n : `${index + 1}`;\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_9__.ToolButton, { className: \"Shape\", type: \"radio\", icon: icon, checked: elementType === value, name: \"editor-current-shape\", title: `${(0,_utils__WEBPACK_IMPORTED_MODULE_7__.capitalizeString)(label)} — ${shortcut}`, keyBindingLabel: `${index + 1}`, \"aria-label\": (0,_utils__WEBPACK_IMPORTED_MODULE_7__.capitalizeString)(label), \"aria-keyshortcuts\": shortcut, \"data-testid\": value, onChange: ({ pointerType }) => {\r\n setAppState({\r\n elementType: value,\r\n multiElement: null,\r\n selectedElementIds: {},\r\n });\r\n (0,_utils__WEBPACK_IMPORTED_MODULE_7__.setCursorForShape)(canvas, value);\r\n if (value === \"image\") {\r\n onImageAction({ pointerType });\r\n }\r\n } }, value));\r\n }) }, void 0));\r\nconst ZoomActions = ({ renderAction, zoom, }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_8__.default.Col, Object.assign({ gap: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_8__.default.Row, Object.assign({ gap: 1, align: \"center\" }, { children: [renderAction(\"zoomOut\"), renderAction(\"zoomIn\"), renderAction(\"resetZoom\")] }), void 0) }), void 0));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LE9BQU8sRUFBRTtvQkFDckIsYUFBYSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztpQkFDaEM7WUFDSCxDQUFDLElBcEJJLEtBQUssQ0FxQlYsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDLFdBQ0QsQ0FDSixDQUFDO0FBRUssTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUMxQixZQUFZLEVBQ1osSUFBSSxHQUlMLEVBQUUsRUFBRSxDQUFDLENBQ0osdURBQUMsK0NBQVMsa0JBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQ2Ysd0RBQUMsK0NBQVMsa0JBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUMsUUFBUSxpQkFDOUIsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUN2QixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQ3RCLFlBQVksQ0FBQyxXQUFXLENBQUMsYUFDaEIsWUFDRixDQUNiLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9BY3Rpb25zLnRzeD9iMTI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEFjdGlvbk1hbmFnZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy9tYW5hZ2VyXCI7XG5pbXBvcnQgeyBnZXROb25EZWxldGVkRWxlbWVudHMgfSBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IHsgRXhjYWxpZHJhd0VsZW1lbnQsIFBvaW50ZXJUeXBlIH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IHQgfSBmcm9tIFwiLi4vaTE4blwiO1xuaW1wb3J0IHsgdXNlSXNNb2JpbGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9BcHBcIjtcbmltcG9ydCB7XG4gIGNhbkNoYW5nZVNoYXJwbmVzcyxcbiAgY2FuSGF2ZUFycm93aGVhZHMsXG4gIGdldFRhcmdldEVsZW1lbnRzLFxuICBoYXNCYWNrZ3JvdW5kLFxuICBoYXNTdHJva2VTdHlsZSxcbiAgaGFzU3Ryb2tlV2lkdGgsXG4gIGhhc1RleHQsXG59IGZyb20gXCIuLi9zY2VuZVwiO1xuaW1wb3J0IHsgU0hBUEVTIH0gZnJvbSBcIi4uL3NoYXBlc1wiO1xuaW1wb3J0IHsgQXBwU3RhdGUsIFpvb20gfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGNhcGl0YWxpemVTdHJpbmcsIGlzVHJhbnNwYXJlbnQsIHNldEN1cnNvckZvclNoYXBlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIi4vU3RhY2tcIjtcbmltcG9ydCB7IFRvb2xCdXR0b24gfSBmcm9tIFwiLi9Ub29sQnV0dG9uXCI7XG5pbXBvcnQgeyBoYXNTdHJva2VDb2xvciB9IGZyb20gXCIuLi9zY2VuZS9jb21wYXJpc29uc1wiO1xuXG5leHBvcnQgY29uc3QgU2VsZWN0ZWRTaGFwZUFjdGlvbnMgPSAoe1xuICBhcHBTdGF0ZSxcbiAgZWxlbWVudHMsXG4gIHJlbmRlckFjdGlvbixcbiAgZWxlbWVudFR5cGUsXG59OiB7XG4gIGFwcFN0YXRlOiBBcHBTdGF0ZTtcbiAgZWxlbWVudHM6IHJlYWRvbmx5IEV4Y2FsaWRyYXdFbGVtZW50W107XG4gIHJlbmRlckFjdGlvbjogQWN0aW9uTWFuYWdlcltcInJlbmRlckFjdGlvblwiXTtcbiAgZWxlbWVudFR5cGU6IEV4Y2FsaWRyYXdFbGVtZW50W1widHlwZVwiXTtcbn0pID0+IHtcbiAgY29uc3QgdGFyZ2V0RWxlbWVudHMgPSBnZXRUYXJnZXRFbGVtZW50cyhcbiAgICBnZXROb25EZWxldGVkRWxlbWVudHMoZWxlbWVudHMpLFxuICAgIGFwcFN0YXRlLFxuICApO1xuICBjb25zdCBpc0VkaXRpbmcgPSBCb29sZWFuKGFwcFN0YXRlLmVkaXRpbmdFbGVtZW50KTtcbiAgY29uc3QgaXNNb2JpbGUgPSB1c2VJc01vYmlsZSgpO1xuICBjb25zdCBpc1JUTCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkaXJcIikgPT09IFwicnRsXCI7XG5cbiAgY29uc3Qgc2hvd0ZpbGxJY29ucyA9XG4gICAgaGFzQmFja2dyb3VuZChlbGVtZW50VHlwZSkgfHxcbiAgICB0YXJnZXRFbGVtZW50cy5zb21lKFxuICAgICAgKGVsZW1lbnQpID0+XG4gICAgICAgIGhhc0JhY2tncm91bmQoZWxlbWVudC50eXBlKSAmJiAhaXNUcmFuc3BhcmVudChlbGVtZW50LmJhY2tncm91bmRDb2xvciksXG4gICAgKTtcbiAgY29uc3Qgc2hvd0NoYW5nZUJhY2tncm91bmRJY29ucyA9XG4gICAgaGFzQmFja2dyb3VuZChlbGVtZW50VHlwZSkgfHxcbiAgICB0YXJnZXRFbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiBoYXNCYWNrZ3JvdW5kKGVsZW1lbnQudHlwZSkpO1xuXG4gIGxldCBjb21tb25TZWxlY3RlZFR5cGU6IHN0cmluZyB8IG51bGwgPSB0YXJnZXRFbGVtZW50c1swXT8udHlwZSB8fCBudWxsO1xuXG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiB0YXJnZXRFbGVtZW50cykge1xuICAgIGlmIChlbGVtZW50LnR5cGUgIT09IGNvbW1vblNlbGVjdGVkVHlwZSkge1xuICAgICAgY29tbW9uU2VsZWN0ZWRUeXBlID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwYW5lbENvbHVtblwiPlxuICAgICAgeygoaGFzU3Ryb2tlQ29sb3IoZWxlbWVudFR5cGUpICYmXG4gICAgICAgIGVsZW1lbnRUeXBlICE9PSBcImltYWdlXCIgJiZcbiAgICAgICAgY29tbW9uU2VsZWN0ZWRUeXBlICE9PSBcImltYWdlXCIpIHx8XG4gICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IGhhc1N0cm9rZUNvbG9yKGVsZW1lbnQudHlwZSkpKSAmJlxuICAgICAgICByZW5kZXJBY3Rpb24oXCJjaGFuZ2VTdHJva2VDb2xvclwiKX1cbiAgICAgIHtzaG93Q2hhbmdlQmFja2dyb3VuZEljb25zICYmIHJlbmRlckFjdGlvbihcImNoYW5nZUJhY2tncm91bmRDb2xvclwiKX1cbiAgICAgIHtzaG93RmlsbEljb25zICYmIHJlbmRlckFjdGlvbihcImNoYW5nZUZpbGxTdHlsZVwiKX1cblxuICAgICAgeyhoYXNTdHJva2VXaWR0aChlbGVtZW50VHlwZSkgfHxcbiAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gaGFzU3Ryb2tlV2lkdGgoZWxlbWVudC50eXBlKSkpICYmXG4gICAgICAgIHJlbmRlckFjdGlvbihcImNoYW5nZVN0cm9rZVdpZHRoXCIpfVxuXG4gICAgICB7KGVsZW1lbnRUeXBlID09PSBcImZyZWVkcmF3XCIgfHxcbiAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gZWxlbWVudC50eXBlID09PSBcImZyZWVkcmF3XCIpKSAmJlxuICAgICAgICByZW5kZXJBY3Rpb24oXCJjaGFuZ2VTdHJva2VTaGFwZVwiKX1cblxuICAgICAgeyhoYXNTdHJva2VTdHlsZShlbGVtZW50VHlwZSkgfHxcbiAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gaGFzU3Ryb2tlU3R5bGUoZWxlbWVudC50eXBlKSkpICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiY2hhbmdlU3Ryb2tlU3R5bGVcIil9XG4gICAgICAgICAge3JlbmRlckFjdGlvbihcImNoYW5nZVNsb3BwaW5lc3NcIil9XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgeyhjYW5DaGFuZ2VTaGFycG5lc3MoZWxlbWVudFR5cGUpIHx8XG4gICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IGNhbkNoYW5nZVNoYXJwbmVzcyhlbGVtZW50LnR5cGUpKSkgJiYgKFxuICAgICAgICA8PntyZW5kZXJBY3Rpb24oXCJjaGFuZ2VTaGFycG5lc3NcIil9PC8+XG4gICAgICApfVxuXG4gICAgICB7KGhhc1RleHQoZWxlbWVudFR5cGUpIHx8XG4gICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IGhhc1RleHQoZWxlbWVudC50eXBlKSkpICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiY2hhbmdlRm9udFNpemVcIil9XG5cbiAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiY2hhbmdlRm9udEZhbWlseVwiKX1cblxuICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJjaGFuZ2VUZXh0QWxpZ25cIil9XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgeyhjYW5IYXZlQXJyb3doZWFkcyhlbGVtZW50VHlwZSkgfHxcbiAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gY2FuSGF2ZUFycm93aGVhZHMoZWxlbWVudC50eXBlKSkpICYmIChcbiAgICAgICAgPD57cmVuZGVyQWN0aW9uKFwiY2hhbmdlQXJyb3doZWFkXCIpfTwvPlxuICAgICAgKX1cblxuICAgICAge3JlbmRlckFjdGlvbihcImNoYW5nZU9wYWNpdHlcIil9XG5cbiAgICAgIDxmaWVsZHNldD5cbiAgICAgICAgPGxlZ2VuZD57dChcImxhYmVscy5sYXllcnNcIil9PC9sZWdlbmQ+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uTGlzdFwiPlxuICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJzZW5kVG9CYWNrXCIpfVxuICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJzZW5kQmFja3dhcmRcIil9XG4gICAgICAgICAge3JlbmRlckFjdGlvbihcImJyaW5nVG9Gcm9udFwiKX1cbiAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYnJpbmdGb3J3YXJkXCIpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgIHt0YXJnZXRFbGVtZW50cy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgPGZpZWxkc2V0PlxuICAgICAgICAgIDxsZWdlbmQ+e3QoXCJsYWJlbHMuYWxpZ25cIil9PC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b25MaXN0XCI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC8vIHN3YXAgdGhpcyBvcmRlciBmb3IgUlRMIHNvIHRoZSBidXR0b24gcG9zaXRpb25zIGFsd2F5cyBtYXRjaCB0aGVpciBhY3Rpb25cbiAgICAgICAgICAgICAgLy8gKGkuZS4gdGhlIGxlZnRtb3N0IGJ1dHRvbiBhbGlnbnMgbGVmdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHtpc1JUTCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25SaWdodFwiKX1cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25Ib3Jpem9udGFsbHlDZW50ZXJlZFwiKX1cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25MZWZ0XCIpfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge3JlbmRlckFjdGlvbihcImFsaWduTGVmdFwiKX1cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25Ib3Jpem9udGFsbHlDZW50ZXJlZFwiKX1cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25SaWdodFwiKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3RhcmdldEVsZW1lbnRzLmxlbmd0aCA+IDIgJiZcbiAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uKFwiZGlzdHJpYnV0ZUhvcml6b250YWxseVwiKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvblJvd1wiPlxuICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uKFwiYWxpZ25Ub3BcIil9XG4gICAgICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJhbGlnblZlcnRpY2FsbHlDZW50ZXJlZFwiKX1cbiAgICAgICAgICAgICAge3JlbmRlckFjdGlvbihcImFsaWduQm90dG9tXCIpfVxuICAgICAgICAgICAgICB7dGFyZ2V0RWxlbWVudHMubGVuZ3RoID4gMiAmJlxuICAgICAgICAgICAgICAgIHJlbmRlckFjdGlvbihcImRpc3RyaWJ1dGVWZXJ0aWNhbGx5XCIpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICApfVxuICAgICAgeyFpc01vYmlsZSAmJiAhaXNFZGl0aW5nICYmIHRhcmdldEVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZmllbGRzZXQ+XG4gICAgICAgICAgPGxlZ2VuZD57dChcImxhYmVscy5hY3Rpb25zXCIpfTwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uTGlzdFwiPlxuICAgICAgICAgICAge3JlbmRlckFjdGlvbihcImR1cGxpY2F0ZVNlbGVjdGlvblwiKX1cbiAgICAgICAgICAgIHtyZW5kZXJBY3Rpb24oXCJkZWxldGVTZWxlY3RlZEVsZW1lbnRzXCIpfVxuICAgICAgICAgICAge3JlbmRlckFjdGlvbihcImdyb3VwXCIpfVxuICAgICAgICAgICAge3JlbmRlckFjdGlvbihcInVuZ3JvdXBcIil9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFNoYXBlc1N3aXRjaGVyID0gKHtcbiAgY2FudmFzLFxuICBlbGVtZW50VHlwZSxcbiAgc2V0QXBwU3RhdGUsXG4gIG9uSW1hZ2VBY3Rpb24sXG59OiB7XG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsO1xuICBlbGVtZW50VHlwZTogRXhjYWxpZHJhd0VsZW1lbnRbXCJ0eXBlXCJdO1xuICBzZXRBcHBTdGF0ZTogUmVhY3QuQ29tcG9uZW50PGFueSwgQXBwU3RhdGU+W1wic2V0U3RhdGVcIl07XG4gIG9uSW1hZ2VBY3Rpb246IChkYXRhOiB7IHBvaW50ZXJUeXBlOiBQb2ludGVyVHlwZSB8IG51bGwgfSkgPT4gdm9pZDtcbn0pID0+IChcbiAgPD5cbiAgICB7U0hBUEVTLm1hcCgoeyB2YWx1ZSwgaWNvbiwga2V5IH0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBsYWJlbCA9IHQoYHRvb2xCYXIuJHt2YWx1ZX1gKTtcbiAgICAgIGNvbnN0IGxldHRlciA9IGtleSAmJiAodHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIiA/IGtleSA6IGtleVswXSk7XG4gICAgICBjb25zdCBzaG9ydGN1dCA9IGxldHRlclxuICAgICAgICA/IGAke2NhcGl0YWxpemVTdHJpbmcobGV0dGVyKX0gJHt0KFwiaGVscERpYWxvZy5vclwiKX0gJHtpbmRleCArIDF9YFxuICAgICAgICA6IGAke2luZGV4ICsgMX1gO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2xCdXR0b25cbiAgICAgICAgICBjbGFzc05hbWU9XCJTaGFwZVwiXG4gICAgICAgICAga2V5PXt2YWx1ZX1cbiAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgIGljb249e2ljb259XG4gICAgICAgICAgY2hlY2tlZD17ZWxlbWVudFR5cGUgPT09IHZhbHVlfVxuICAgICAgICAgIG5hbWU9XCJlZGl0b3ItY3VycmVudC1zaGFwZVwiXG4gICAgICAgICAgdGl0bGU9e2Ake2NhcGl0YWxpemVTdHJpbmcobGFiZWwpfSDigJQgJHtzaG9ydGN1dH1gfVxuICAgICAgICAgIGtleUJpbmRpbmdMYWJlbD17YCR7aW5kZXggKyAxfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17Y2FwaXRhbGl6ZVN0cmluZyhsYWJlbCl9XG4gICAgICAgICAgYXJpYS1rZXlzaG9ydGN1dHM9e3Nob3J0Y3V0fVxuICAgICAgICAgIGRhdGEtdGVzdGlkPXt2YWx1ZX1cbiAgICAgICAgICBvbkNoYW5nZT17KHsgcG9pbnRlclR5cGUgfSkgPT4ge1xuICAgICAgICAgICAgc2V0QXBwU3RhdGUoe1xuICAgICAgICAgICAgICBlbGVtZW50VHlwZTogdmFsdWUsXG4gICAgICAgICAgICAgIG11bHRpRWxlbWVudDogbnVsbCxcbiAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0Q3Vyc29yRm9yU2hhcGUoY2FudmFzLCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IFwiaW1hZ2VcIikge1xuICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uKHsgcG9pbnRlclR5cGUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfSl9XG4gIDwvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFpvb21BY3Rpb25zID0gKHtcbiAgcmVuZGVyQWN0aW9uLFxuICB6b29tLFxufToge1xuICByZW5kZXJBY3Rpb246IEFjdGlvbk1hbmFnZXJbXCJyZW5kZXJBY3Rpb25cIl07XG4gIHpvb206IFpvb207XG59KSA9PiAoXG4gIDxTdGFjay5Db2wgZ2FwPXsxfT5cbiAgICA8U3RhY2suUm93IGdhcD17MX0gYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgIHtyZW5kZXJBY3Rpb24oXCJ6b29tT3V0XCIpfVxuICAgICAge3JlbmRlckFjdGlvbihcInpvb21JblwiKX1cbiAgICAgIHtyZW5kZXJBY3Rpb24oXCJyZXNldFpvb21cIil9XG4gICAgPC9TdGFjay5Sb3c+XG4gIDwvU3RhY2suQ29sPlxuKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/Actions.tsx\n");
|
|
1470
1470
|
|
|
1471
1471
|
/***/ }),
|
|
1472
1472
|
|
|
@@ -2742,7 +2742,7 @@ module.exports = JSON.parse('{"ar-SA":100,"bg-BG":68,"ca-ES":84,"cs-CZ":29,"da-D
|
|
|
2742
2742
|
/***/ ((module) => {
|
|
2743
2743
|
|
|
2744
2744
|
"use strict";
|
|
2745
|
-
module.exports = JSON.parse('{"name":"@dwelle/excalidraw","version":"0.3.
|
|
2745
|
+
module.exports = JSON.parse('{"name":"@dwelle/excalidraw","version":"0.3.14","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.14.8","@babel/plugin-transform-arrow-functions":"7.14.5","@babel/plugin-transform-async-to-generator":"7.14.5","@babel/plugin-transform-runtime":"7.15.8","@babel/plugin-transform-typescript":"7.14.6","@babel/preset-env":"7.14.9","@babel/preset-react":"7.14.5","@babel/preset-typescript":"7.14.5","autoprefixer":"10.3.1","babel-loader":"8.2.2","babel-plugin-transform-class-properties":"6.24.1","cross-env":"7.0.3","css-loader":"5.2.6","file-loader":"6.2.0","mini-css-extract-plugin":"1.6.1","postcss-loader":"6.1.1","sass-loader":"12.1.0","terser-webpack-plugin":"5.1.4","ts-loader":"9.2.4","typescript":"4.3.5","webpack":"5.50.0","webpack-bundle-analyzer":"4.4.2","webpack-cli":"4.7.2"},"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":"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"}}');
|
|
2746
2746
|
|
|
2747
2747
|
/***/ })
|
|
2748
2748
|
|