@excalidraw/excalidraw 0.15.2-6546-7560b59 → 0.15.2-6546-5841e6a

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.
@@ -2845,7 +2845,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2845
2845
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2846
2846
 
2847
2847
  "use strict";
2848
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"trackEvent\": () => (/* binding */ trackEvent)\n/* harmony export */ });\nconst trackEvent = (category, action, label, value) => {\n try {\n // Uncomment the next line to track locally\n // console.log(\"Track Event\", { category, action, label, value });\n if (typeof window === \"undefined\" || ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"FAST_REFRESH\":\"false\",\"REACT_APP_MATOMO_URL\":\"\",\"REACT_APP_CDN_MATOMO_TRACKER_URL\":\"\",\"REACT_APP_MATOMO_SITE_ID\":\"\",\"REACT_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.15.2-6546-7560b59\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true}).JEST_WORKER_ID) {\n return;\n }\n if (({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"FAST_REFRESH\":\"false\",\"REACT_APP_MATOMO_URL\":\"\",\"REACT_APP_CDN_MATOMO_TRACKER_URL\":\"\",\"REACT_APP_MATOMO_SITE_ID\":\"\",\"REACT_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.15.2-6546-7560b59\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true}).REACT_APP_GOOGLE_ANALYTICS_ID && window.gtag) {\n window.gtag(\"event\", action, {\n event_category: category,\n event_label: label,\n value,\n });\n }\n if (window.sa_event) {\n window.sa_event(action, {\n category,\n label,\n value,\n });\n }\n if (window.fathom) {\n window.fathom.trackEvent(action, {\n category,\n label,\n value,\n });\n }\n }\n catch (error) {\n console.error(\"error during analytics\", error);\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vYW5hbHl0aWNzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNLFVBQVUsR0FBRyxDQUN4QixRQUFnQixFQUNoQixNQUFjLEVBQ2QsS0FBYyxFQUNkLEtBQWMsRUFDZCxFQUFFO0lBQ0YsSUFBSTtRQUNGLDJDQUEyQztRQUMzQyxrRUFBa0U7UUFFbEUsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksNmlDQUFXLENBQUMsY0FBYyxFQUFFO1lBQy9ELE9BQU87U0FDUjtRQUVELElBQUksNmlDQUFXLENBQUMsNkJBQTZCLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtZQUM1RCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQzNCLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixXQUFXLEVBQUUsS0FBSztnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUN0QixRQUFRO2dCQUNSLEtBQUs7Z0JBQ0wsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtnQkFDL0IsUUFBUTtnQkFDUixLQUFLO2dCQUNMLEtBQUs7YUFDTixDQUFDLENBQUM7U0FDSjtLQUNGO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2hEO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2FuYWx5dGljcy50cz81ZjBjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB0cmFja0V2ZW50ID0gKFxuICBjYXRlZ29yeTogc3RyaW5nLFxuICBhY3Rpb246IHN0cmluZyxcbiAgbGFiZWw/OiBzdHJpbmcsXG4gIHZhbHVlPzogbnVtYmVyLFxuKSA9PiB7XG4gIHRyeSB7XG4gICAgLy8gVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gdHJhY2sgbG9jYWxseVxuICAgIC8vIGNvbnNvbGUubG9nKFwiVHJhY2sgRXZlbnRcIiwgeyBjYXRlZ29yeSwgYWN0aW9uLCBsYWJlbCwgdmFsdWUgfSk7XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCBwcm9jZXNzLmVudi5KRVNUX1dPUktFUl9JRCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5SRUFDVF9BUFBfR09PR0xFX0FOQUxZVElDU19JRCAmJiB3aW5kb3cuZ3RhZykge1xuICAgICAgd2luZG93Lmd0YWcoXCJldmVudFwiLCBhY3Rpb24sIHtcbiAgICAgICAgZXZlbnRfY2F0ZWdvcnk6IGNhdGVnb3J5LFxuICAgICAgICBldmVudF9sYWJlbDogbGFiZWwsXG4gICAgICAgIHZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5zYV9ldmVudCkge1xuICAgICAgd2luZG93LnNhX2V2ZW50KGFjdGlvbiwge1xuICAgICAgICBjYXRlZ29yeSxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5mYXRob20pIHtcbiAgICAgIHdpbmRvdy5mYXRob20udHJhY2tFdmVudChhY3Rpb24sIHtcbiAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgIGxhYmVsLFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiZXJyb3IgZHVyaW5nIGFuYWx5dGljc1wiLCBlcnJvcik7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../analytics.ts\n");
2848
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"trackEvent\": () => (/* binding */ trackEvent)\n/* harmony export */ });\nconst trackEvent = (category, action, label, value) => {\n try {\n // Uncomment the next line to track locally\n // console.log(\"Track Event\", { category, action, label, value });\n if (typeof window === \"undefined\" || ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"FAST_REFRESH\":\"false\",\"REACT_APP_MATOMO_URL\":\"\",\"REACT_APP_CDN_MATOMO_TRACKER_URL\":\"\",\"REACT_APP_MATOMO_SITE_ID\":\"\",\"REACT_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.15.2-6546-5841e6a\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true}).JEST_WORKER_ID) {\n return;\n }\n if (({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"FAST_REFRESH\":\"false\",\"REACT_APP_MATOMO_URL\":\"\",\"REACT_APP_CDN_MATOMO_TRACKER_URL\":\"\",\"REACT_APP_MATOMO_SITE_ID\":\"\",\"REACT_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.15.2-6546-5841e6a\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true}).REACT_APP_GOOGLE_ANALYTICS_ID && window.gtag) {\n window.gtag(\"event\", action, {\n event_category: category,\n event_label: label,\n value,\n });\n }\n if (window.sa_event) {\n window.sa_event(action, {\n category,\n label,\n value,\n });\n }\n if (window.fathom) {\n window.fathom.trackEvent(action, {\n category,\n label,\n value,\n });\n }\n }\n catch (error) {\n console.error(\"error during analytics\", error);\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vYW5hbHl0aWNzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNLFVBQVUsR0FBRyxDQUN4QixRQUFnQixFQUNoQixNQUFjLEVBQ2QsS0FBYyxFQUNkLEtBQWMsRUFDZCxFQUFFO0lBQ0YsSUFBSTtRQUNGLDJDQUEyQztRQUMzQyxrRUFBa0U7UUFFbEUsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksNmlDQUFXLENBQUMsY0FBYyxFQUFFO1lBQy9ELE9BQU87U0FDUjtRQUVELElBQUksNmlDQUFXLENBQUMsNkJBQTZCLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtZQUM1RCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQzNCLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixXQUFXLEVBQUUsS0FBSztnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUN0QixRQUFRO2dCQUNSLEtBQUs7Z0JBQ0wsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtnQkFDL0IsUUFBUTtnQkFDUixLQUFLO2dCQUNMLEtBQUs7YUFDTixDQUFDLENBQUM7U0FDSjtLQUNGO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2hEO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2FuYWx5dGljcy50cz81ZjBjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB0cmFja0V2ZW50ID0gKFxuICBjYXRlZ29yeTogc3RyaW5nLFxuICBhY3Rpb246IHN0cmluZyxcbiAgbGFiZWw/OiBzdHJpbmcsXG4gIHZhbHVlPzogbnVtYmVyLFxuKSA9PiB7XG4gIHRyeSB7XG4gICAgLy8gVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gdHJhY2sgbG9jYWxseVxuICAgIC8vIGNvbnNvbGUubG9nKFwiVHJhY2sgRXZlbnRcIiwgeyBjYXRlZ29yeSwgYWN0aW9uLCBsYWJlbCwgdmFsdWUgfSk7XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCBwcm9jZXNzLmVudi5KRVNUX1dPUktFUl9JRCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5SRUFDVF9BUFBfR09PR0xFX0FOQUxZVElDU19JRCAmJiB3aW5kb3cuZ3RhZykge1xuICAgICAgd2luZG93Lmd0YWcoXCJldmVudFwiLCBhY3Rpb24sIHtcbiAgICAgICAgZXZlbnRfY2F0ZWdvcnk6IGNhdGVnb3J5LFxuICAgICAgICBldmVudF9sYWJlbDogbGFiZWwsXG4gICAgICAgIHZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5zYV9ldmVudCkge1xuICAgICAgd2luZG93LnNhX2V2ZW50KGFjdGlvbiwge1xuICAgICAgICBjYXRlZ29yeSxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5mYXRob20pIHtcbiAgICAgIHdpbmRvdy5mYXRob20udHJhY2tFdmVudChhY3Rpb24sIHtcbiAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgIGxhYmVsLFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiZXJyb3IgZHVyaW5nIGFuYWx5dGljc1wiLCBlcnJvcik7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../analytics.ts\n");
2849
2849
 
2850
2850
  /***/ }),
2851
2851
 
@@ -4055,7 +4055,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
4055
4055
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4056
4056
 
4057
4057
  "use strict";
4058
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ELEMENTS_SUPPORTING_PROGRAMMATIC_API\": () => (/* binding */ ELEMENTS_SUPPORTING_PROGRAMMATIC_API),\n/* harmony export */ \"convertToExcalidrawElements\": () => (/* binding */ convertToExcalidrawElements)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _element_binding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element/binding */ \"../../element/binding.ts\");\n/* harmony import */ var _element_mutateElement__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../element/mutateElement */ \"../../element/mutateElement.ts\");\n/* harmony import */ var _element_newElement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../element/newElement */ \"../../element/newElement.ts\");\n/* harmony import */ var _element_textElement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../element/textElement */ \"../../element/textElement.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\nconst ELEMENTS_SUPPORTING_PROGRAMMATIC_API = [\n \"rectangle\",\n \"ellipse\",\n \"diamond\",\n \"text\",\n \"arrow\",\n \"line\",\n];\nconst bindTextToContainer = (containerProps, textProps) => {\n let container;\n if (containerProps.type === \"arrow\") {\n const width = containerProps.width || 300;\n const height = containerProps.height || 24;\n container = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newLinearElement)(Object.assign({ width,\n height, \n //@ts-ignore\n type: containerProps.type, \n //@ts-ignore,\n endArrowhead: containerProps.type === \"arrow\" ? \"arrow\" : null, \n //@ts-ignore\n points: [\n [0, 0],\n [width, height],\n ] }, containerProps));\n }\n else {\n //@ts-ignore\n container = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newElement)(Object.assign({}, containerProps));\n }\n const textElement = (0,_element_newElement__WEBPACK_IMPORTED_MODULE_4__.newTextElement)(Object.assign(Object.assign({ x: 0, y: 0, textAlign: _constants__WEBPACK_IMPORTED_MODULE_0__.TEXT_ALIGN.CENTER, verticalAlign: _constants__WEBPACK_IMPORTED_MODULE_0__.VERTICAL_ALIGN.MIDDLE }, textProps), { containerId: container.id }));\n (0,_element_mutateElement__WEBPACK_IMPORTED_MODULE_3__.mutateElement)(container, {\n boundElements: (container.boundElements || []).concat({\n type: \"text\",\n id: textElement.id,\n }),\n });\n (0,_element__WEBPACK_IMPORTED_MODULE_1__.redrawTextBoundingBox)(textElement, container);\n return [container, textElement];\n};\nconst bindLinearElementToElement = (linearElement) => {\n var _a, _b, _c, _d;\n const { start, end, type, endArrowhead = linearElement.type === \"arrow\" ? \"arrow\" : null } = linearElement, rest = __rest(linearElement, [\"start\", \"end\", \"type\", \"endArrowhead\"]);\n const width = linearElement.width || 300;\n const height = linearElement.height || 24;\n const excliadrawLinearElement = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newLinearElement)(Object.assign({ type,\n width,\n height, points: [\n [0, 0],\n [width, height],\n ], endArrowhead }, rest));\n let startBoundElement;\n let endBoundElement;\n (0,_element_mutateElement__WEBPACK_IMPORTED_MODULE_3__.mutateElement)(excliadrawLinearElement, {\n startBinding: (linearElement === null || linearElement === void 0 ? void 0 : linearElement.startBinding) || null,\n endBinding: linearElement.endBinding || null,\n });\n if (start) {\n const width = (_a = start === null || start === void 0 ? void 0 : start.width) !== null && _a !== void 0 ? _a : 100;\n const height = (_b = start === null || start === void 0 ? void 0 : start.height) !== null && _b !== void 0 ? _b : 100;\n const existingElement = start.id\n ? excalidrawElements.get().find((ele) => (ele === null || ele === void 0 ? void 0 : ele.id) === start.id)\n : undefined;\n startBoundElement = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newElement)(Object.assign(Object.assign({ x: start.x || excliadrawLinearElement.x - width, y: start.y || excliadrawLinearElement.y - height / 2, width,\n height }, existingElement), start));\n (0,_element_binding__WEBPACK_IMPORTED_MODULE_2__.bindLinearElement)(excliadrawLinearElement, startBoundElement, \"start\");\n }\n if (end) {\n const height = (_c = end === null || end === void 0 ? void 0 : end.height) !== null && _c !== void 0 ? _c : 100;\n const existingElement = end.id\n ? excalidrawElements.get().find((ele) => (ele === null || ele === void 0 ? void 0 : ele.id) === end.id)\n : undefined;\n endBoundElement = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newElement)(Object.assign(Object.assign({ x: end.x || excliadrawLinearElement.x + excliadrawLinearElement.width, y: end.y || excliadrawLinearElement.y - height / 2, width: (_d = end === null || end === void 0 ? void 0 : end.width) !== null && _d !== void 0 ? _d : 100, height }, existingElement), end));\n (0,_element_binding__WEBPACK_IMPORTED_MODULE_2__.bindLinearElement)(excliadrawLinearElement, endBoundElement, \"end\");\n }\n return {\n linearElement: excliadrawLinearElement,\n //@ts-ignore\n startBoundElement,\n //@ts-ignore\n endBoundElement,\n };\n};\nconst excalidrawElements = (() => {\n const res = [];\n const elementMap = new Map();\n const push = (ele) => {\n if (!ele) {\n return;\n }\n const index = elementMap.get(ele.id);\n if (index !== undefined && index >= 0) {\n res[index] = ele;\n }\n else {\n res.push(ele);\n const index = res.length - 1;\n elementMap.set(ele.id, index);\n }\n };\n const clear = () => {\n res.length = 0;\n elementMap.clear();\n };\n const get = () => {\n return res;\n };\n const hasElementWithId = (id) => {\n const index = elementMap.get(id);\n return index !== undefined && index >= 0;\n };\n return {\n push,\n clear,\n get,\n hasElementWithId,\n };\n})();\nconst convertToExcalidrawElements = (elements) => {\n excalidrawElements.clear();\n if (!elements) {\n return [];\n }\n elements.forEach((element) => {\n var _a, _b;\n if (!element) {\n return;\n }\n let elementId = element.id || (0,_element_newElement__WEBPACK_IMPORTED_MODULE_4__.regenerateId)(null);\n // To make sure every element has a unique id\n while (excalidrawElements.hasElementWithId(elementId)) {\n elementId = (0,_element_newElement__WEBPACK_IMPORTED_MODULE_4__.regenerateId)(elementId);\n }\n const elementWithid = Object.assign(Object.assign({}, element), { id: elementId });\n if (!ELEMENTS_SUPPORTING_PROGRAMMATIC_API.includes(element.type)) {\n excalidrawElements.push(element);\n return;\n }\n //@ts-ignore\n if (_element_textElement__WEBPACK_IMPORTED_MODULE_5__.VALID_CONTAINER_TYPES.has(element.type) && ((_a = element === null || element === void 0 ? void 0 : element.label) === null || _a === void 0 ? void 0 : _a.text)) {\n //@ts-ignore\n let [container, text] = bindTextToContainer(elementWithid, element.label);\n excalidrawElements.push(container);\n excalidrawElements.push(text);\n if (container.type === \"arrow\") {\n const { linearElement, startBoundElement, endBoundElement } = bindLinearElementToElement(Object.assign(Object.assign({}, container), { \n //@ts-ignore\n start: element === null || element === void 0 ? void 0 : element.start, \n //@ts-ignore\n end: element === null || element === void 0 ? void 0 : element.end }));\n container = linearElement;\n excalidrawElements.push(linearElement);\n excalidrawElements.push(startBoundElement);\n excalidrawElements.push(endBoundElement);\n }\n }\n else {\n let excalidrawElement;\n if (element.type === \"text\") {\n const fontFamily = (element === null || element === void 0 ? void 0 : element.fontFamily) || _constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_FONT_FAMILY;\n const fontSize = (element === null || element === void 0 ? void 0 : element.fontSize) || _constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_FONT_SIZE;\n const lineHeight = (element === null || element === void 0 ? void 0 : element.lineHeight) || (0,_element_textElement__WEBPACK_IMPORTED_MODULE_5__.getDefaultLineHeight)(fontFamily);\n const text = (_b = element.text) !== null && _b !== void 0 ? _b : \"\";\n const normalizedText = (0,_element_textElement__WEBPACK_IMPORTED_MODULE_5__.normalizeText)(text);\n const metrics = (0,_element_textElement__WEBPACK_IMPORTED_MODULE_5__.measureText)(normalizedText, (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getFontString)({ fontFamily, fontSize }), lineHeight);\n excalidrawElement = Object.assign({ width: metrics.width, height: metrics.height }, elementWithid);\n excalidrawElements.push(excalidrawElement);\n }\n else if (element.type === \"arrow\" || element.type === \"line\") {\n const { linearElement, startBoundElement, endBoundElement } = \n //@ts-ignore\n bindLinearElementToElement(elementWithid);\n excalidrawElements.push(linearElement);\n excalidrawElements.push(startBoundElement);\n excalidrawElements.push(endBoundElement);\n //@ts-ignore\n if (startBoundElement && !element.start.id) {\n //@ts-ignore\n excalidrawElements.push(startBoundElement);\n }\n //@ts-ignore\n if (endBoundElement && !element.end.id) {\n //@ts-ignore\n excalidrawElements.push(endBoundElement);\n }\n }\n else {\n excalidrawElement = Object.assign(Object.assign({}, elementWithid), { width: (element === null || element === void 0 ? void 0 : element.width) ||\n (ELEMENTS_SUPPORTING_PROGRAMMATIC_API.includes(element.type)\n ? 100\n : 0), height: (element === null || element === void 0 ? void 0 : element.height) ||\n (ELEMENTS_SUPPORTING_PROGRAMMATIC_API.includes(element.type)\n ? 100\n : 0) });\n excalidrawElements.push(excalidrawElement);\n }\n }\n });\n return excalidrawElements.get();\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNILE9BQU8sa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2RhdGEvdHJhbnNmb3JtLnRzP2Q2NjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREVGQVVMVF9GT05UX0ZBTUlMWSxcbiAgREVGQVVMVF9GT05UX1NJWkUsXG4gIFRFWFRfQUxJR04sXG4gIFZFUlRJQ0FMX0FMSUdOLFxufSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQge1xuICBuZXdFbGVtZW50LFxuICBuZXdMaW5lYXJFbGVtZW50LFxuICByZWRyYXdUZXh0Qm91bmRpbmdCb3gsXG59IGZyb20gXCIuLi9lbGVtZW50XCI7XG5pbXBvcnQgeyBiaW5kTGluZWFyRWxlbWVudCB9IGZyb20gXCIuLi9lbGVtZW50L2JpbmRpbmdcIjtcbmltcG9ydCB7IG11dGF0ZUVsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50XCI7XG5pbXBvcnQge1xuICBFbGVtZW50Q29uc3RydWN0b3JPcHRzLFxuICBuZXdUZXh0RWxlbWVudCxcbiAgcmVnZW5lcmF0ZUlkLFxufSBmcm9tIFwiLi4vZWxlbWVudC9uZXdFbGVtZW50XCI7XG5pbXBvcnQge1xuICBWQUxJRF9DT05UQUlORVJfVFlQRVMsXG4gIGdldERlZmF1bHRMaW5lSGVpZ2h0LFxuICBtZWFzdXJlVGV4dCxcbiAgbm9ybWFsaXplVGV4dCxcbn0gZnJvbSBcIi4uL2VsZW1lbnQvdGV4dEVsZW1lbnRcIjtcbmltcG9ydCB7XG4gIEV4Y2FsaWRyYXdCaW5kYWJsZUVsZW1lbnQsXG4gIEV4Y2FsaWRyYXdFbGVtZW50LFxuICBFeGNhbGlkcmF3R2VuZXJpY0VsZW1lbnQsXG4gIEV4Y2FsaWRyYXdMaW5lYXJFbGVtZW50LFxuICBFeGNhbGlkcmF3VGV4dEVsZW1lbnQsXG4gIEZvbnRGYW1pbHlWYWx1ZXMsXG4gIFRleHRBbGlnbixcbiAgVmVydGljYWxBbGlnbixcbn0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IE1hcmtPcHRpb25hbCB9IGZyb20gXCIuLi91dGlsaXR5LXR5cGVzXCI7XG5pbXBvcnQgeyBnZXRGb250U3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBJbXBvcnRlZERhdGFTdGF0ZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UU19TVVBQT1JUSU5HX1BST0dSQU1NQVRJQ19BUEkgPSBbXG4gIFwicmVjdGFuZ2xlXCIsXG4gIFwiZWxsaXBzZVwiLFxuICBcImRpYW1vbmRcIixcbiAgXCJ0ZXh0XCIsXG4gIFwiYXJyb3dcIixcbiAgXCJsaW5lXCIsXG5dO1xuXG5jb25zdCBiaW5kVGV4dFRvQ29udGFpbmVyID0gKFxuICBjb250YWluZXJQcm9wczpcbiAgICB8IHtcbiAgICAgICAgdHlwZTpcbiAgICAgICAgICB8IEV4Y2x1ZGU8RXhjYWxpZHJhd0dlbmVyaWNFbGVtZW50W1widHlwZVwiXSwgXCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICB8IEV4Y2FsaWRyYXdMaW5lYXJFbGVtZW50W1widHlwZVwiXTtcbiAgICAgIH0gJiBNYXJrT3B0aW9uYWw8RWxlbWVudENvbnN0cnVjdG9yT3B0cywgXCJ4XCIgfCBcInlcIj4sXG4gIHRleHRQcm9wczogeyB0ZXh0OiBzdHJpbmcgfSAmIE1hcmtPcHRpb25hbDxFbGVtZW50Q29uc3RydWN0b3JPcHRzLCBcInhcIiB8IFwieVwiPixcbikgPT4ge1xuICBsZXQgY29udGFpbmVyO1xuICBpZiAoY29udGFpbmVyUHJvcHMudHlwZSA9PT0gXCJhcnJvd1wiKSB7XG4gICAgY29uc3Qgd2lkdGggPSBjb250YWluZXJQcm9wcy53aWR0aCB8fCAzMDA7XG4gICAgY29uc3QgaGVpZ2h0ID0gY29udGFpbmVyUHJvcHMuaGVpZ2h0IHx8IDI0O1xuICAgIGNvbnRhaW5lciA9IG5ld0xpbmVhckVsZW1lbnQoe1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICAvL0B0cy1pZ25vcmVcbiAgICAgIHR5cGU6IGNvbnRhaW5lclByb3BzLnR5cGUsXG4gICAgICAvL0B0cy1pZ25vcmUsXG4gICAgICBlbmRBcnJvd2hlYWQ6IGNvbnRhaW5lclByb3BzLnR5cGUgPT09IFwiYXJyb3dcIiA/IFwiYXJyb3dcIiA6IG51bGwsXG4gICAgICAvL0B0cy1pZ25vcmVcbiAgICAgIHBvaW50czogW1xuICAgICAgICBbMCwgMF0sXG4gICAgICAgIFt3aWR0aCwgaGVpZ2h0XSxcbiAgICAgIF0sXG4gICAgICAuLi5jb250YWluZXJQcm9wcyxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICBjb250YWluZXIgPSBuZXdFbGVtZW50KHtcbiAgICAgIC4uLmNvbnRhaW5lclByb3BzLFxuICAgIH0pO1xuICB9XG4gIGNvbnN0IHRleHRFbGVtZW50OiBFeGNhbGlkcmF3VGV4dEVsZW1lbnQgPSBuZXdUZXh0RWxlbWVudCh7XG4gICAgeDogMCxcbiAgICB5OiAwLFxuICAgIHRleHRBbGlnbjogVEVYVF9BTElHTi5DRU5URVIsXG4gICAgdmVydGljYWxBbGlnbjogVkVSVElDQUxfQUxJR04uTUlERExFLFxuICAgIC4uLnRleHRQcm9wcyxcbiAgICBjb250YWluZXJJZDogY29udGFpbmVyLmlkLFxuICB9KTtcblxuICBtdXRhdGVFbGVtZW50KGNvbnRhaW5lciwge1xuICAgIGJvdW5kRWxlbWVudHM6IChjb250YWluZXIuYm91bmRFbGVtZW50cyB8fCBbXSkuY29uY2F0KHtcbiAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgaWQ6IHRleHRFbGVtZW50LmlkLFxuICAgIH0pLFxuICB9KTtcblxuICByZWRyYXdUZXh0Qm91bmRpbmdCb3godGV4dEVsZW1lbnQsIGNvbnRhaW5lcik7XG5cbiAgcmV0dXJuIFtjb250YWluZXIsIHRleHRFbGVtZW50XTtcbn07XG5cbmNvbnN0IGJpbmRMaW5lYXJFbGVtZW50VG9FbGVtZW50ID0gKFxuICBsaW5lYXJFbGVtZW50OiB7XG4gICAgdHlwZTogRXhjYWxpZHJhd0xpbmVhckVsZW1lbnRbXCJ0eXBlXCJdO1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgbGFiZWw/OiB7XG4gICAgICB0ZXh0OiBzdHJpbmc7XG4gICAgICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAgIGZvbnRGYW1pbHk/OiBGb250RmFtaWx5VmFsdWVzO1xuICAgICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAgICAgdmVydGljYWxBbGlnbj86IFZlcnRpY2FsQWxpZ247XG4gICAgfSAmIE1hcmtPcHRpb25hbDxFbGVtZW50Q29uc3RydWN0b3JPcHRzLCBcInhcIiB8IFwieVwiPjtcbiAgICBzdGFydD86IHtcbiAgICAgIHR5cGU6IEV4Y2x1ZGU8XG4gICAgICAgIEV4Y2FsaWRyYXdCaW5kYWJsZUVsZW1lbnRbXCJ0eXBlXCJdLFxuICAgICAgICBcImltYWdlXCIgfCBcInNlbGVjdGlvblwiIHwgXCJ0ZXh0XCJcbiAgICAgID47XG4gICAgICBpZD86IEV4Y2FsaWRyYXdHZW5lcmljRWxlbWVudFtcImlkXCJdO1xuICAgIH0gJiBNYXJrT3B0aW9uYWw8RWxlbWVudENvbnN0cnVjdG9yT3B0cywgXCJ4XCIgfCBcInlcIj47XG4gICAgZW5kPzoge1xuICAgICAgdHlwZTogRXhjYWxpZHJhd0dlbmVyaWNFbGVtZW50W1widHlwZVwiXTtcbiAgICAgIGlkPzogRXhjYWxpZHJhd0dlbmVyaWNFbGVtZW50W1wiaWRcIl07XG4gICAgfSAmIE1hcmtPcHRpb25hbDxFbGVtZW50Q29uc3RydWN0b3JPcHRzLCBcInhcIiB8IFwieVwiPjtcbiAgfSAmIFBhcnRpYWw8RXhjYWxpZHJhd0xpbmVhckVsZW1lbnQ+LFxuKToge1xuICBsaW5lYXJFbGVtZW50OiBFeGNhbGlkcmF3TGluZWFyRWxlbWVudDtcbiAgc3RhcnRCb3VuZEVsZW1lbnQ/OiBFeGNhbGlkcmF3RWxlbWVudDtcbiAgZW5kQm91bmRFbGVtZW50PzogRXhjYWxpZHJhd0VsZW1lbnQ7XG59ID0+IHtcbiAgY29uc3Qge1xuICAgIHN0YXJ0LFxuICAgIGVuZCxcbiAgICB0eXBlLFxuICAgIGVuZEFycm93aGVhZCA9IGxpbmVhckVsZW1lbnQudHlwZSA9PT0gXCJhcnJvd1wiID8gXCJhcnJvd1wiIDogbnVsbCxcbiAgICAuLi5yZXN0XG4gIH0gPSBsaW5lYXJFbGVtZW50O1xuICBjb25zdCB3aWR0aCA9IGxpbmVhckVsZW1lbnQud2lkdGggfHwgMzAwO1xuICBjb25zdCBoZWlnaHQgPSBsaW5lYXJFbGVtZW50LmhlaWdodCB8fCAyNDtcbiAgY29uc3QgZXhjbGlhZHJhd0xpbmVhckVsZW1lbnQgPSBuZXdMaW5lYXJFbGVtZW50KHtcbiAgICB0eXBlLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBwb2ludHM6IFtcbiAgICAgIFswLCAwXSxcbiAgICAgIFt3aWR0aCwgaGVpZ2h0XSxcbiAgICBdLFxuICAgIGVuZEFycm93aGVhZCxcbiAgICAuLi5yZXN0LFxuICB9KTtcblxuICBsZXQgc3RhcnRCb3VuZEVsZW1lbnQ7XG4gIGxldCBlbmRCb3VuZEVsZW1lbnQ7XG5cbiAgbXV0YXRlRWxlbWVudChleGNsaWFkcmF3TGluZWFyRWxlbWVudCwge1xuICAgIHN0YXJ0QmluZGluZzogbGluZWFyRWxlbWVudD8uc3RhcnRCaW5kaW5nIHx8IG51bGwsXG4gICAgZW5kQmluZGluZzogbGluZWFyRWxlbWVudC5lbmRCaW5kaW5nIHx8IG51bGwsXG4gIH0pO1xuXG4gIGlmIChzdGFydCkge1xuICAgIGNvbnN0IHdpZHRoID0gc3RhcnQ/LndpZHRoID8/IDEwMDtcbiAgICBjb25zdCBoZWlnaHQgPSBzdGFydD8uaGVpZ2h0ID8/IDEwMDtcbiAgICBjb25zdCBleGlzdGluZ0VsZW1lbnQgPSBzdGFydC5pZFxuICAgICAgPyBleGNhbGlkcmF3RWxlbWVudHMuZ2V0KCkuZmluZCgoZWxlKSA9PiBlbGU/LmlkID09PSBzdGFydC5pZClcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHN0YXJ0Qm91bmRFbGVtZW50ID0gbmV3RWxlbWVudCh7XG4gICAgICB4OiBzdGFydC54IHx8IGV4Y2xpYWRyYXdMaW5lYXJFbGVtZW50LnggLSB3aWR0aCxcbiAgICAgIHk6IHN0YXJ0LnkgfHwgZXhjbGlhZHJhd0xpbmVhckVsZW1lbnQueSAtIGhlaWdodCAvIDIsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIC4uLmV4aXN0aW5nRWxlbWVudCxcbiAgICAgIC4uLnN0YXJ0LFxuICAgIH0pO1xuXG4gICAgYmluZExpbmVhckVsZW1lbnQoXG4gICAgICBleGNsaWFkcmF3TGluZWFyRWxlbWVudCxcbiAgICAgIHN0YXJ0Qm91bmRFbGVtZW50IGFzIEV4Y2FsaWRyYXdCaW5kYWJsZUVsZW1lbnQsXG4gICAgICBcInN0YXJ0XCIsXG4gICAgKTtcbiAgfVxuICBpZiAoZW5kKSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gZW5kPy5oZWlnaHQgPz8gMTAwO1xuICAgIGNvbnN0IGV4aXN0aW5nRWxlbWVudCA9IGVuZC5pZFxuICAgICAgPyBleGNhbGlkcmF3RWxlbWVudHMuZ2V0KCkuZmluZCgoZWxlKSA9PiBlbGU/LmlkID09PSBlbmQuaWQpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBlbmRCb3VuZEVsZW1lbnQgPSBuZXdFbGVtZW50KHtcbiAgICAgIHg6IGVuZC54IHx8IGV4Y2xpYWRyYXdMaW5lYXJFbGVtZW50LnggKyBleGNsaWFkcmF3TGluZWFyRWxlbWVudC53aWR0aCxcbiAgICAgIHk6IGVuZC55IHx8IGV4Y2xpYWRyYXdMaW5lYXJFbGVtZW50LnkgLSBoZWlnaHQgLyAyLFxuICAgICAgd2lkdGg6IGVuZD8ud2lkdGggPz8gMTAwLFxuICAgICAgaGVpZ2h0LFxuICAgICAgLi4uZXhpc3RpbmdFbGVtZW50LFxuICAgICAgLi4uZW5kLFxuICAgIH0pIGFzIEV4Y2FsaWRyYXdCaW5kYWJsZUVsZW1lbnQ7XG5cbiAgICBiaW5kTGluZWFyRWxlbWVudChcbiAgICAgIGV4Y2xpYWRyYXdMaW5lYXJFbGVtZW50LFxuICAgICAgZW5kQm91bmRFbGVtZW50IGFzIEV4Y2FsaWRyYXdCaW5kYWJsZUVsZW1lbnQsXG4gICAgICBcImVuZFwiLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBsaW5lYXJFbGVtZW50OiBleGNsaWFkcmF3TGluZWFyRWxlbWVudCxcbiAgICAvL0B0cy1pZ25vcmVcbiAgICBzdGFydEJvdW5kRWxlbWVudCxcbiAgICAvL0B0cy1pZ25vcmVcbiAgICBlbmRCb3VuZEVsZW1lbnQsXG4gIH07XG59O1xuXG5jb25zdCBleGNhbGlkcmF3RWxlbWVudHMgPSAoKCkgPT4ge1xuICBjb25zdCByZXM6IEV4Y2FsaWRyYXdFbGVtZW50W10gPSBbXTtcbiAgY29uc3QgZWxlbWVudE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG5cbiAgY29uc3QgcHVzaCA9IChlbGU/OiBFeGNhbGlkcmF3RWxlbWVudCkgPT4ge1xuICAgIGlmICghZWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudE1hcC5nZXQoZWxlLmlkKTtcbiAgICBpZiAoaW5kZXggIT09IHVuZGVmaW5lZCAmJiBpbmRleCA+PSAwKSB7XG4gICAgICByZXNbaW5kZXhdID0gZWxlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMucHVzaChlbGUpO1xuICAgICAgY29uc3QgaW5kZXggPSByZXMubGVuZ3RoIC0gMTtcbiAgICAgIGVsZW1lbnRNYXAuc2V0KGVsZS5pZCwgaW5kZXgpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgY2xlYXIgPSAoKSA9PiB7XG4gICAgcmVzLmxlbmd0aCA9IDA7XG4gICAgZWxlbWVudE1hcC5jbGVhcigpO1xuICB9O1xuICBjb25zdCBnZXQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcbiAgY29uc3QgaGFzRWxlbWVudFdpdGhJZCA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBlbGVtZW50TWFwLmdldChpZCk7XG4gICAgcmV0dXJuIGluZGV4ICE9PSB1bmRlZmluZWQgJiYgaW5kZXggPj0gMDtcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBwdXNoLFxuICAgIGNsZWFyLFxuICAgIGdldCxcbiAgICBoYXNFbGVtZW50V2l0aElkLFxuICB9O1xufSkoKTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRUb0V4Y2FsaWRyYXdFbGVtZW50cyA9IChcbiAgZWxlbWVudHM6IEltcG9ydGVkRGF0YVN0YXRlW1wiZWxlbWVudHNcIl0sXG4pOiBFeGNhbGlkcmF3RWxlbWVudFtdID0+IHtcbiAgZXhjYWxpZHJhd0VsZW1lbnRzLmNsZWFyKCk7XG4gIGlmICghZWxlbWVudHMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBlbGVtZW50SWQgPSBlbGVtZW50LmlkIHx8IHJlZ2VuZXJhdGVJZChudWxsKTtcblxuICAgIC8vIFRvIG1ha2Ugc3VyZSBldmVyeSBlbGVtZW50IGhhcyBhIHVuaXF1ZSBpZFxuICAgIHdoaWxlIChleGNhbGlkcmF3RWxlbWVudHMuaGFzRWxlbWVudFdpdGhJZChlbGVtZW50SWQpKSB7XG4gICAgICBlbGVtZW50SWQgPSByZWdlbmVyYXRlSWQoZWxlbWVudElkKTtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudFdpdGhpZCA9IHsgLi4uZWxlbWVudCwgaWQ6IGVsZW1lbnRJZCB9O1xuXG4gICAgaWYgKCFFTEVNRU5UU19TVVBQT1JUSU5HX1BST0dSQU1NQVRJQ19BUEkuaW5jbHVkZXMoZWxlbWVudC50eXBlKSkge1xuICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goZWxlbWVudCBhcyBFeGNhbGlkcmF3RWxlbWVudCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy9AdHMtaWdub3JlXG4gICAgaWYgKFZBTElEX0NPTlRBSU5FUl9UWVBFUy5oYXMoZWxlbWVudC50eXBlKSAmJiBlbGVtZW50Py5sYWJlbD8udGV4dCkge1xuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICBsZXQgW2NvbnRhaW5lciwgdGV4dF0gPSBiaW5kVGV4dFRvQ29udGFpbmVyKGVsZW1lbnRXaXRoaWQsIGVsZW1lbnQubGFiZWwpO1xuICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goY29udGFpbmVyKTtcbiAgICAgIGV4Y2FsaWRyYXdFbGVtZW50cy5wdXNoKHRleHQpO1xuXG4gICAgICBpZiAoY29udGFpbmVyLnR5cGUgPT09IFwiYXJyb3dcIikge1xuICAgICAgICBjb25zdCB7IGxpbmVhckVsZW1lbnQsIHN0YXJ0Qm91bmRFbGVtZW50LCBlbmRCb3VuZEVsZW1lbnQgfSA9XG4gICAgICAgICAgYmluZExpbmVhckVsZW1lbnRUb0VsZW1lbnQoe1xuICAgICAgICAgICAgLi4uY29udGFpbmVyLFxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICBzdGFydDogZWxlbWVudD8uc3RhcnQsXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIGVuZDogZWxlbWVudD8uZW5kLFxuICAgICAgICAgIH0pO1xuICAgICAgICBjb250YWluZXIgPSBsaW5lYXJFbGVtZW50O1xuICAgICAgICBleGNhbGlkcmF3RWxlbWVudHMucHVzaChsaW5lYXJFbGVtZW50KTtcbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goc3RhcnRCb3VuZEVsZW1lbnQpO1xuICAgICAgICBleGNhbGlkcmF3RWxlbWVudHMucHVzaChlbmRCb3VuZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgZXhjYWxpZHJhd0VsZW1lbnQ7XG4gICAgICBpZiAoZWxlbWVudC50eXBlID09PSBcInRleHRcIikge1xuICAgICAgICBjb25zdCBmb250RmFtaWx5ID0gZWxlbWVudD8uZm9udEZhbWlseSB8fCBERUZBVUxUX0ZPTlRfRkFNSUxZO1xuICAgICAgICBjb25zdCBmb250U2l6ZSA9IGVsZW1lbnQ/LmZvbnRTaXplIHx8IERFRkFVTFRfRk9OVF9TSVpFO1xuICAgICAgICBjb25zdCBsaW5lSGVpZ2h0ID1cbiAgICAgICAgICBlbGVtZW50Py5saW5lSGVpZ2h0IHx8IGdldERlZmF1bHRMaW5lSGVpZ2h0KGZvbnRGYW1pbHkpO1xuICAgICAgICBjb25zdCB0ZXh0ID0gZWxlbWVudC50ZXh0ID8/IFwiXCI7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRUZXh0ID0gbm9ybWFsaXplVGV4dCh0ZXh0KTtcbiAgICAgICAgY29uc3QgbWV0cmljcyA9IG1lYXN1cmVUZXh0KFxuICAgICAgICAgIG5vcm1hbGl6ZWRUZXh0LFxuICAgICAgICAgIGdldEZvbnRTdHJpbmcoeyBmb250RmFtaWx5LCBmb250U2l6ZSB9KSxcbiAgICAgICAgICBsaW5lSGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgICBleGNhbGlkcmF3RWxlbWVudCA9IHtcbiAgICAgICAgICB3aWR0aDogbWV0cmljcy53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IG1ldHJpY3MuaGVpZ2h0LFxuICAgICAgICAgIC4uLmVsZW1lbnRXaXRoaWQsXG4gICAgICAgIH07XG5cbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goZXhjYWxpZHJhd0VsZW1lbnQgYXMgRXhjYWxpZHJhd1RleHRFbGVtZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC50eXBlID09PSBcImFycm93XCIgfHwgZWxlbWVudC50eXBlID09PSBcImxpbmVcIikge1xuICAgICAgICBjb25zdCB7IGxpbmVhckVsZW1lbnQsIHN0YXJ0Qm91bmRFbGVtZW50LCBlbmRCb3VuZEVsZW1lbnQgfSA9XG4gICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgYmluZExpbmVhckVsZW1lbnRUb0VsZW1lbnQoZWxlbWVudFdpdGhpZCk7XG4gICAgICAgIGV4Y2FsaWRyYXdFbGVtZW50cy5wdXNoKGxpbmVhckVsZW1lbnQpO1xuICAgICAgICBleGNhbGlkcmF3RWxlbWVudHMucHVzaChzdGFydEJvdW5kRWxlbWVudCk7XG4gICAgICAgIGV4Y2FsaWRyYXdFbGVtZW50cy5wdXNoKGVuZEJvdW5kRWxlbWVudCk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBpZiAoc3RhcnRCb3VuZEVsZW1lbnQgJiYgIWVsZW1lbnQuc3RhcnQuaWQpIHtcbiAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICBleGNhbGlkcmF3RWxlbWVudHMucHVzaChzdGFydEJvdW5kRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIGlmIChlbmRCb3VuZEVsZW1lbnQgJiYgIWVsZW1lbnQuZW5kLmlkKSB7XG4gICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goZW5kQm91bmRFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnQgPSB7XG4gICAgICAgICAgLi4uZWxlbWVudFdpdGhpZCxcbiAgICAgICAgICB3aWR0aDpcbiAgICAgICAgICAgIGVsZW1lbnQ/LndpZHRoIHx8XG4gICAgICAgICAgICAoRUxFTUVOVFNfU1VQUE9SVElOR19QUk9HUkFNTUFUSUNfQVBJLmluY2x1ZGVzKGVsZW1lbnQudHlwZSlcbiAgICAgICAgICAgICAgPyAxMDBcbiAgICAgICAgICAgICAgOiAwKSxcbiAgICAgICAgICBoZWlnaHQ6XG4gICAgICAgICAgICBlbGVtZW50Py5oZWlnaHQgfHxcbiAgICAgICAgICAgIChFTEVNRU5UU19TVVBQT1JUSU5HX1BST0dSQU1NQVRJQ19BUEkuaW5jbHVkZXMoZWxlbWVudC50eXBlKVxuICAgICAgICAgICAgICA/IDEwMFxuICAgICAgICAgICAgICA6IDApLFxuICAgICAgICB9IGFzIEV4Y2FsaWRyYXdHZW5lcmljRWxlbWVudDtcbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goZXhjYWxpZHJhd0VsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBleGNhbGlkcmF3RWxlbWVudHMuZ2V0KCk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../data/transform.ts\n");
4058
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ELEMENTS_SUPPORTING_PROGRAMMATIC_API\": () => (/* binding */ ELEMENTS_SUPPORTING_PROGRAMMATIC_API),\n/* harmony export */ \"convertToExcalidrawElements\": () => (/* binding */ convertToExcalidrawElements)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _element_binding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element/binding */ \"../../element/binding.ts\");\n/* harmony import */ var _element_mutateElement__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../element/mutateElement */ \"../../element/mutateElement.ts\");\n/* harmony import */ var _element_newElement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../element/newElement */ \"../../element/newElement.ts\");\n/* harmony import */ var _element_textElement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../element/textElement */ \"../../element/textElement.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\nconst ELEMENTS_SUPPORTING_PROGRAMMATIC_API = [\n \"rectangle\",\n \"ellipse\",\n \"diamond\",\n \"text\",\n \"arrow\",\n \"line\",\n];\nconst bindTextToContainer = (containerProps, textProps) => {\n let container;\n if (containerProps.type === \"arrow\") {\n const width = containerProps.width || 300;\n const height = containerProps.height || 0;\n container = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newLinearElement)(Object.assign({ width,\n height, \n //@ts-ignore\n type: containerProps.type, \n //@ts-ignore,\n endArrowhead: containerProps.type === \"arrow\" ? \"arrow\" : null, \n //@ts-ignore\n points: [\n [0, 0],\n [width, height],\n ] }, containerProps));\n }\n else {\n //@ts-ignore\n container = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newElement)(Object.assign({}, containerProps));\n }\n const textElement = (0,_element_newElement__WEBPACK_IMPORTED_MODULE_4__.newTextElement)(Object.assign(Object.assign({ x: 0, y: 0, textAlign: _constants__WEBPACK_IMPORTED_MODULE_0__.TEXT_ALIGN.CENTER, verticalAlign: _constants__WEBPACK_IMPORTED_MODULE_0__.VERTICAL_ALIGN.MIDDLE }, textProps), { containerId: container.id, strokeColor: textProps.strokeColor || container.strokeColor }));\n (0,_element_mutateElement__WEBPACK_IMPORTED_MODULE_3__.mutateElement)(container, {\n boundElements: (container.boundElements || []).concat({\n type: \"text\",\n id: textElement.id,\n }),\n });\n (0,_element__WEBPACK_IMPORTED_MODULE_1__.redrawTextBoundingBox)(textElement, container);\n return [container, textElement];\n};\nconst bindLinearElementToElement = (linearElement) => {\n var _a, _b, _c, _d;\n const { start, end, type, endArrowhead = linearElement.type === \"arrow\" ? \"arrow\" : null } = linearElement, rest = __rest(linearElement, [\"start\", \"end\", \"type\", \"endArrowhead\"]);\n const width = linearElement.width || 300;\n const height = linearElement.height || 0;\n const excliadrawLinearElement = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newLinearElement)(Object.assign({ type,\n width,\n height, points: [\n [0, 0],\n [width, height],\n ], endArrowhead }, rest));\n let startBoundElement;\n let endBoundElement;\n (0,_element_mutateElement__WEBPACK_IMPORTED_MODULE_3__.mutateElement)(excliadrawLinearElement, {\n startBinding: (linearElement === null || linearElement === void 0 ? void 0 : linearElement.startBinding) || null,\n endBinding: linearElement.endBinding || null,\n });\n if (start) {\n const width = (_a = start === null || start === void 0 ? void 0 : start.width) !== null && _a !== void 0 ? _a : 100;\n const height = (_b = start === null || start === void 0 ? void 0 : start.height) !== null && _b !== void 0 ? _b : 100;\n const existingElement = start.id\n ? excalidrawElements.get().find((ele) => (ele === null || ele === void 0 ? void 0 : ele.id) === start.id)\n : undefined;\n const startX = start.x || excliadrawLinearElement.x - width;\n const startY = start.y || excliadrawLinearElement.y - height / 2;\n if (start.type === \"text\") {\n startBoundElement = (0,_element_newElement__WEBPACK_IMPORTED_MODULE_4__.newTextElement)(Object.assign(Object.assign({ x: startX, y: startY }, existingElement), start));\n // to position the text correctly when coordinates not provided\n (0,_element_mutateElement__WEBPACK_IMPORTED_MODULE_3__.mutateElement)(startBoundElement, {\n x: start.x || excliadrawLinearElement.x - startBoundElement.width,\n y: start.y || excliadrawLinearElement.y - startBoundElement.height / 2,\n });\n }\n else {\n startBoundElement = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newElement)(Object.assign(Object.assign({ x: startX, y: startY, width,\n height }, existingElement), start));\n }\n (0,_element_binding__WEBPACK_IMPORTED_MODULE_2__.bindLinearElement)(excliadrawLinearElement, startBoundElement, \"start\");\n }\n if (end) {\n const height = (_c = end === null || end === void 0 ? void 0 : end.height) !== null && _c !== void 0 ? _c : 100;\n const width = (_d = end === null || end === void 0 ? void 0 : end.width) !== null && _d !== void 0 ? _d : 100;\n const existingElement = end.id\n ? excalidrawElements.get().find((ele) => (ele === null || ele === void 0 ? void 0 : ele.id) === end.id)\n : undefined;\n const endX = end.x || excliadrawLinearElement.x + excliadrawLinearElement.width;\n const endY = end.y || excliadrawLinearElement.y - height / 2;\n if (end.type === \"text\") {\n endBoundElement = (0,_element_newElement__WEBPACK_IMPORTED_MODULE_4__.newTextElement)(Object.assign(Object.assign({ x: endX, y: endY }, existingElement), end));\n // to position the text correctly when coordinates not provided\n (0,_element_mutateElement__WEBPACK_IMPORTED_MODULE_3__.mutateElement)(endBoundElement, {\n y: end.y || excliadrawLinearElement.y - endBoundElement.height / 2,\n });\n }\n else {\n endBoundElement = (0,_element__WEBPACK_IMPORTED_MODULE_1__.newElement)(Object.assign(Object.assign({ x: endX, y: endY, width,\n height }, existingElement), end));\n }\n (0,_element_binding__WEBPACK_IMPORTED_MODULE_2__.bindLinearElement)(excliadrawLinearElement, endBoundElement, \"end\");\n }\n return {\n linearElement: excliadrawLinearElement,\n //@ts-ignore\n startBoundElement,\n //@ts-ignore\n endBoundElement,\n };\n};\nconst excalidrawElements = (() => {\n const res = [];\n const elementMap = new Map();\n const push = (ele) => {\n if (!ele) {\n return;\n }\n const index = elementMap.get(ele.id);\n if (index !== undefined && index >= 0) {\n res[index] = ele;\n }\n else {\n res.push(ele);\n const index = res.length - 1;\n elementMap.set(ele.id, index);\n }\n };\n const clear = () => {\n res.length = 0;\n elementMap.clear();\n };\n const get = () => {\n return res;\n };\n const hasElementWithId = (id) => {\n const index = elementMap.get(id);\n return index !== undefined && index >= 0;\n };\n return {\n push,\n clear,\n get,\n hasElementWithId,\n };\n})();\nconst convertToExcalidrawElements = (elements) => {\n excalidrawElements.clear();\n if (!elements) {\n return [];\n }\n elements.forEach((element) => {\n var _a, _b;\n if (!element) {\n return;\n }\n let elementId = element.id || (0,_element_newElement__WEBPACK_IMPORTED_MODULE_4__.regenerateId)(null);\n // To make sure every element has a unique id\n while (excalidrawElements.hasElementWithId(elementId)) {\n elementId = (0,_element_newElement__WEBPACK_IMPORTED_MODULE_4__.regenerateId)(elementId);\n }\n const elementWithid = Object.assign(Object.assign({}, element), { id: elementId });\n if (!ELEMENTS_SUPPORTING_PROGRAMMATIC_API.includes(element.type)) {\n excalidrawElements.push(element);\n return;\n }\n //@ts-ignore\n if (_element_textElement__WEBPACK_IMPORTED_MODULE_5__.VALID_CONTAINER_TYPES.has(element.type) && ((_a = element === null || element === void 0 ? void 0 : element.label) === null || _a === void 0 ? void 0 : _a.text)) {\n //@ts-ignore\n let [container, text] = bindTextToContainer(elementWithid, element.label);\n excalidrawElements.push(container);\n excalidrawElements.push(text);\n if (container.type === \"arrow\") {\n const { linearElement, startBoundElement, endBoundElement } = bindLinearElementToElement(Object.assign(Object.assign({}, container), { \n //@ts-ignore\n start: element === null || element === void 0 ? void 0 : element.start, \n //@ts-ignore\n end: element === null || element === void 0 ? void 0 : element.end }));\n container = linearElement;\n excalidrawElements.push(linearElement);\n excalidrawElements.push(startBoundElement);\n excalidrawElements.push(endBoundElement);\n }\n }\n else {\n let excalidrawElement;\n if (element.type === \"text\") {\n const fontFamily = (element === null || element === void 0 ? void 0 : element.fontFamily) || _constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_FONT_FAMILY;\n const fontSize = (element === null || element === void 0 ? void 0 : element.fontSize) || _constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_FONT_SIZE;\n const lineHeight = (element === null || element === void 0 ? void 0 : element.lineHeight) || (0,_element_textElement__WEBPACK_IMPORTED_MODULE_5__.getDefaultLineHeight)(fontFamily);\n const text = (_b = element.text) !== null && _b !== void 0 ? _b : \"\";\n const normalizedText = (0,_element_textElement__WEBPACK_IMPORTED_MODULE_5__.normalizeText)(text);\n const metrics = (0,_element_textElement__WEBPACK_IMPORTED_MODULE_5__.measureText)(normalizedText, (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getFontString)({ fontFamily, fontSize }), lineHeight);\n excalidrawElement = Object.assign({ width: metrics.width, height: metrics.height, fontFamily,\n fontSize }, elementWithid);\n excalidrawElements.push(excalidrawElement);\n }\n else if (element.type === \"arrow\" || element.type === \"line\") {\n const { linearElement, startBoundElement, endBoundElement } = \n //@ts-ignore\n bindLinearElementToElement(elementWithid);\n excalidrawElements.push(linearElement);\n excalidrawElements.push(startBoundElement);\n excalidrawElements.push(endBoundElement);\n //@ts-ignore\n if (startBoundElement && !element.start.id) {\n //@ts-ignore\n excalidrawElements.push(startBoundElement);\n }\n //@ts-ignore\n if (endBoundElement && !element.end.id) {\n //@ts-ignore\n excalidrawElements.push(endBoundElement);\n }\n }\n else {\n excalidrawElement = Object.assign(Object.assign({}, elementWithid), { width: (element === null || element === void 0 ? void 0 : element.width) ||\n (ELEMENTS_SUPPORTING_PROGRAMMATIC_API.includes(element.type)\n ? 100\n : 0), height: (element === null || element === void 0 ? void 0 : element.height) ||\n (ELEMENTS_SUPPORTING_PROGRAMMATIC_API.includes(element.type)\n ? 100\n : 0) });\n excalidrawElements.push(excalidrawElement);\n }\n }\n });\n return excalidrawElements.get();\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZGF0YS90cmFuc2Zvcm0udHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLc0I7QUFLRjtBQUNtQztBQUNFO0FBSzFCO0FBTUM7QUFZUztBQUdsQyxNQUFNLG9DQUFvQyxHQUFHO0lBQ2xELFdBQVc7SUFDWCxTQUFTO0lBQ1QsU0FBUztJQUNULE1BQU07SUFDTixPQUFPO0lBQ1AsTUFBTTtDQUNQLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQzFCLGNBS3VELEVBQ3ZELFNBQTZFLEVBQzdFLEVBQUU7SUFDRixJQUFJLFNBQVMsQ0FBQztJQUNkLElBQUksY0FBYyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDMUMsU0FBUyxHQUFHLDBEQUFnQixpQkFDMUIsS0FBSztZQUNMLE1BQU07WUFDTixZQUFZO1lBQ1osSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJO1lBQ3pCLGFBQWE7WUFDYixZQUFZLEVBQUUsY0FBYyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUM5RCxZQUFZO1lBQ1osTUFBTSxFQUFFO2dCQUNOLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDTixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7YUFDaEIsSUFDRSxjQUFjLEVBQ2pCLENBQUM7S0FDSjtTQUFNO1FBQ0wsWUFBWTtRQUNaLFNBQVMsR0FBRyxvREFBVSxtQkFDakIsY0FBYyxFQUNqQixDQUFDO0tBQ0o7SUFDRCxNQUFNLFdBQVcsR0FBMEIsbUVBQWMsK0JBQ3ZELENBQUMsRUFBRSxDQUFDLEVBQ0osQ0FBQyxFQUFFLENBQUMsRUFDSixTQUFTLEVBQUUseURBQWlCLEVBQzVCLGFBQWEsRUFBRSw2REFBcUIsSUFDakMsU0FBUyxLQUNaLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUN6QixXQUFXLEVBQUUsU0FBUyxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsV0FBVyxJQUMzRCxDQUFDO0lBRUgscUVBQWEsQ0FBQyxTQUFTLEVBQUU7UUFDdkIsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDcEQsSUFBSSxFQUFFLE1BQU07WUFDWixFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUU7U0FDbkIsQ0FBQztLQUNILENBQUMsQ0FBQztJQUVILCtEQUFxQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU5QyxPQUFPLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUcsQ0FDakMsYUEyQ29DLEVBS3BDLEVBQUU7O0lBQ0YsTUFBTSxFQUNKLEtBQUssRUFDTCxHQUFHLEVBQ0gsSUFBSSxFQUNKLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBRTVELGFBQWEsRUFEWixJQUFJLFVBQ0wsYUFBYSxFQU5YLHdDQU1MLENBQWdCLENBQUM7SUFDbEIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDekMsTUFBTSx1QkFBdUIsR0FBRywwREFBZ0IsaUJBQzlDLElBQUk7UUFDSixLQUFLO1FBQ0wsTUFBTSxFQUNOLE1BQU0sRUFBRTtZQUNOLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNOLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztTQUNoQixFQUNELFlBQVksSUFDVCxJQUFJLEVBQ1AsQ0FBQztJQUVILElBQUksaUJBQWlCLENBQUM7SUFDdEIsSUFBSSxlQUFlLENBQUM7SUFFcEIscUVBQWEsQ0FBQyx1QkFBdUIsRUFBRTtRQUNyQyxZQUFZLEVBQUUsY0FBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLFlBQVksS0FBSSxJQUFJO1FBQ2pELFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVSxJQUFJLElBQUk7S0FDN0MsQ0FBQyxDQUFDO0lBRUgsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLEtBQUssR0FBRyxXQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsS0FBSyxtQ0FBSSxHQUFHLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsV0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU0sbUNBQUksR0FBRyxDQUFDO1FBQ3BDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxFQUFFO1lBQzlCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxFQUFFLE1BQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5RCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksdUJBQXVCLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFakUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN6QixpQkFBaUIsR0FBRyxtRUFBYywrQkFDaEMsQ0FBQyxFQUFFLE1BQU0sRUFDVCxDQUFDLEVBQUUsTUFBTSxJQUNOLGVBQWUsR0FDZixLQUFLLEVBQ1IsQ0FBQztZQUNILCtEQUErRDtZQUMvRCxxRUFBYSxDQUFDLGlCQUFpQixFQUFFO2dCQUMvQixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsS0FBSztnQkFDakUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksdUJBQXVCLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDO2FBQ3ZFLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxpQkFBaUIsR0FBRyxvREFBVSwrQkFDNUIsQ0FBQyxFQUFFLE1BQU0sRUFDVCxDQUFDLEVBQUUsTUFBTSxFQUNULEtBQUs7Z0JBQ0wsTUFBTSxJQUNILGVBQWUsR0FDZixLQUFLLEVBQ1IsQ0FBQztTQUNKO1FBRUQsbUVBQWlCLENBQ2YsdUJBQXVCLEVBQ3ZCLGlCQUE4QyxFQUM5QyxPQUFPLENBQ1IsQ0FBQztLQUNIO0lBQ0QsSUFBSSxHQUFHLEVBQUU7UUFDUCxNQUFNLE1BQU0sR0FBRyxTQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSxtQ0FBSSxHQUFHLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsU0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssbUNBQUksR0FBRyxDQUFDO1FBRWhDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxFQUFFLE1BQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsTUFBTSxJQUFJLEdBQ1IsR0FBRyxDQUFDLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxDQUFDLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksdUJBQXVCLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFN0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN2QixlQUFlLEdBQUcsbUVBQWMsK0JBQzlCLENBQUMsRUFBRSxJQUFJLEVBQ1AsQ0FBQyxFQUFFLElBQUksSUFDSixlQUFlLEdBQ2YsR0FBRyxFQUNOLENBQUM7WUFDSCwrREFBK0Q7WUFDL0QscUVBQWEsQ0FBQyxlQUFlLEVBQUU7Z0JBQzdCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7YUFDbkUsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLGVBQWUsR0FBRyxvREFBVSwrQkFDMUIsQ0FBQyxFQUFFLElBQUksRUFDUCxDQUFDLEVBQUUsSUFBSSxFQUNQLEtBQUs7Z0JBQ0wsTUFBTSxJQUNILGVBQWUsR0FDZixHQUFHLEVBQ3VCLENBQUM7U0FDakM7UUFDRCxtRUFBaUIsQ0FDZix1QkFBdUIsRUFDdkIsZUFBNEMsRUFDNUMsS0FBSyxDQUNOLENBQUM7S0FDSDtJQUNELE9BQU87UUFDTCxhQUFhLEVBQUUsdUJBQXVCO1FBQ3RDLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsWUFBWTtRQUNaLGVBQWU7S0FDaEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7SUFDL0IsTUFBTSxHQUFHLEdBQXdCLEVBQUUsQ0FBQztJQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUU3QyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQXVCLEVBQUUsRUFBRTtRQUN2QyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTztTQUNSO1FBQ0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDckMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNsQjthQUFNO1lBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUMsQ0FBQztJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRTtRQUNqQixHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFDRixNQUFNLEdBQUcsR0FBRyxHQUFHLEVBQUU7UUFDZixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRTtRQUN0QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQztJQUNGLE9BQU87UUFDTCxJQUFJO1FBQ0osS0FBSztRQUNMLEdBQUc7UUFDSCxnQkFBZ0I7S0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFFRSxNQUFNLDJCQUEyQixHQUFHLENBQ3pDLFFBQXVDLEVBQ2xCLEVBQUU7SUFDdkIsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7O1FBQzNCLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPO1NBQ1I7UUFFRCxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLGlFQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakQsNkNBQTZDO1FBQzdDLE9BQU8sa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDckQsU0FBUyxHQUFHLGlFQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDckM7UUFDRCxNQUFNLGFBQWEsbUNBQVEsT0FBTyxLQUFFLEVBQUUsRUFBRSxTQUFTLEdBQUUsQ0FBQztRQUVwRCxJQUFJLENBQUMsb0NBQW9DLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBNEIsQ0FBQyxDQUFDO1lBRXRELE9BQU87U0FDUjtRQUNELFlBQVk7UUFDWixJQUFJLDJFQUF5QixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSSxhQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSywwQ0FBRSxJQUFJLEdBQUU7WUFDbkUsWUFBWTtZQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTlCLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7Z0JBQzlCLE1BQU0sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLEdBQ3pELDBCQUEwQixpQ0FDckIsU0FBUztvQkFDWixZQUFZO29CQUNaLEtBQUssRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSztvQkFDckIsWUFBWTtvQkFDWixHQUFHLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEdBQUcsSUFDakIsQ0FBQztnQkFDTCxTQUFTLEdBQUcsYUFBYSxDQUFDO2dCQUMxQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3ZDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUMzQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDMUM7U0FDRjthQUFNO1lBQ0wsSUFBSSxpQkFBaUIsQ0FBQztZQUN0QixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUMzQixNQUFNLFVBQVUsR0FBRyxRQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsVUFBVSxLQUFJLDJEQUFtQixDQUFDO2dCQUM5RCxNQUFNLFFBQVEsR0FBRyxRQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxLQUFJLHlEQUFpQixDQUFDO2dCQUN4RCxNQUFNLFVBQVUsR0FDZCxRQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsVUFBVSxLQUFJLDBFQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLElBQUksR0FBRyxhQUFPLENBQUMsSUFBSSxtQ0FBSSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sY0FBYyxHQUFHLG1FQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNDLE1BQU0sT0FBTyxHQUFHLGlFQUFXLENBQ3pCLGNBQWMsRUFDZCxxREFBYSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQ3ZDLFVBQVUsQ0FDWCxDQUFDO2dCQUNGLGlCQUFpQixtQkFDZixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFDcEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQ3RCLFVBQVU7b0JBQ1YsUUFBUSxJQUNMLGFBQWEsQ0FDakIsQ0FBQztnQkFFRixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQTBDLENBQUMsQ0FBQzthQUNyRTtpQkFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUM5RCxNQUFNLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRTtnQkFDekQsWUFBWTtnQkFDWiwwQkFBMEIsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDNUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN2QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDM0Msa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN6QyxZQUFZO2dCQUNaLElBQUksaUJBQWlCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRTtvQkFDMUMsWUFBWTtvQkFDWixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztpQkFDNUM7Z0JBQ0QsWUFBWTtnQkFDWixJQUFJLGVBQWUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFO29CQUN0QyxZQUFZO29CQUNaLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDMUM7YUFDRjtpQkFBTTtnQkFDTCxpQkFBaUIsR0FBRyxnQ0FDZixhQUFhLEtBQ2hCLEtBQUssRUFDSCxRQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSzt3QkFDZCxDQUFDLG9DQUFvQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDOzRCQUMxRCxDQUFDLENBQUMsR0FBRzs0QkFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ1IsTUFBTSxFQUNKLFFBQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNO3dCQUNmLENBQUMsb0NBQW9DLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7NEJBQzFELENBQUMsQ0FBQyxHQUFHOzRCQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FDbUIsQ0FBQztnQkFDOUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDNUM7U0FDRjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNsQyxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vZGF0YS90cmFuc2Zvcm0udHM/ZDY2NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBERUZBVUxUX0ZPTlRfRkFNSUxZLFxuICBERUZBVUxUX0ZPTlRfU0laRSxcbiAgVEVYVF9BTElHTixcbiAgVkVSVElDQUxfQUxJR04sXG59IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIG5ld0VsZW1lbnQsXG4gIG5ld0xpbmVhckVsZW1lbnQsXG4gIHJlZHJhd1RleHRCb3VuZGluZ0JveCxcbn0gZnJvbSBcIi4uL2VsZW1lbnRcIjtcbmltcG9ydCB7IGJpbmRMaW5lYXJFbGVtZW50IH0gZnJvbSBcIi4uL2VsZW1lbnQvYmluZGluZ1wiO1xuaW1wb3J0IHsgbXV0YXRlRWxlbWVudCB9IGZyb20gXCIuLi9lbGVtZW50L211dGF0ZUVsZW1lbnRcIjtcbmltcG9ydCB7XG4gIEVsZW1lbnRDb25zdHJ1Y3Rvck9wdHMsXG4gIG5ld1RleHRFbGVtZW50LFxuICByZWdlbmVyYXRlSWQsXG59IGZyb20gXCIuLi9lbGVtZW50L25ld0VsZW1lbnRcIjtcbmltcG9ydCB7XG4gIFZBTElEX0NPTlRBSU5FUl9UWVBFUyxcbiAgZ2V0RGVmYXVsdExpbmVIZWlnaHQsXG4gIG1lYXN1cmVUZXh0LFxuICBub3JtYWxpemVUZXh0LFxufSBmcm9tIFwiLi4vZWxlbWVudC90ZXh0RWxlbWVudFwiO1xuaW1wb3J0IHtcbiAgRXhjYWxpZHJhd0JpbmRhYmxlRWxlbWVudCxcbiAgRXhjYWxpZHJhd0VsZW1lbnQsXG4gIEV4Y2FsaWRyYXdHZW5lcmljRWxlbWVudCxcbiAgRXhjYWxpZHJhd0xpbmVhckVsZW1lbnQsXG4gIEV4Y2FsaWRyYXdUZXh0RWxlbWVudCxcbiAgRm9udEZhbWlseVZhbHVlcyxcbiAgVGV4dEFsaWduLFxuICBWZXJ0aWNhbEFsaWduLFxufSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgTWFya09wdGlvbmFsIH0gZnJvbSBcIi4uL3V0aWxpdHktdHlwZXNcIjtcbmltcG9ydCB7IGdldEZvbnRTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEltcG9ydGVkRGF0YVN0YXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRTX1NVUFBPUlRJTkdfUFJPR1JBTU1BVElDX0FQSSA9IFtcbiAgXCJyZWN0YW5nbGVcIixcbiAgXCJlbGxpcHNlXCIsXG4gIFwiZGlhbW9uZFwiLFxuICBcInRleHRcIixcbiAgXCJhcnJvd1wiLFxuICBcImxpbmVcIixcbl07XG5cbmNvbnN0IGJpbmRUZXh0VG9Db250YWluZXIgPSAoXG4gIGNvbnRhaW5lclByb3BzOlxuICAgIHwge1xuICAgICAgICB0eXBlOlxuICAgICAgICAgIHwgRXhjbHVkZTxFeGNhbGlkcmF3R2VuZXJpY0VsZW1lbnRbXCJ0eXBlXCJdLCBcInNlbGVjdGlvblwiPlxuICAgICAgICAgIHwgRXhjYWxpZHJhd0xpbmVhckVsZW1lbnRbXCJ0eXBlXCJdO1xuICAgICAgfSAmIE1hcmtPcHRpb25hbDxFbGVtZW50Q29uc3RydWN0b3JPcHRzLCBcInhcIiB8IFwieVwiPixcbiAgdGV4dFByb3BzOiB7IHRleHQ6IHN0cmluZyB9ICYgTWFya09wdGlvbmFsPEVsZW1lbnRDb25zdHJ1Y3Rvck9wdHMsIFwieFwiIHwgXCJ5XCI+LFxuKSA9PiB7XG4gIGxldCBjb250YWluZXI7XG4gIGlmIChjb250YWluZXJQcm9wcy50eXBlID09PSBcImFycm93XCIpIHtcbiAgICBjb25zdCB3aWR0aCA9IGNvbnRhaW5lclByb3BzLndpZHRoIHx8IDMwMDtcbiAgICBjb25zdCBoZWlnaHQgPSBjb250YWluZXJQcm9wcy5oZWlnaHQgfHwgMDtcbiAgICBjb250YWluZXIgPSBuZXdMaW5lYXJFbGVtZW50KHtcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICB0eXBlOiBjb250YWluZXJQcm9wcy50eXBlLFxuICAgICAgLy9AdHMtaWdub3JlLFxuICAgICAgZW5kQXJyb3doZWFkOiBjb250YWluZXJQcm9wcy50eXBlID09PSBcImFycm93XCIgPyBcImFycm93XCIgOiBudWxsLFxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICBwb2ludHM6IFtcbiAgICAgICAgWzAsIDBdLFxuICAgICAgICBbd2lkdGgsIGhlaWdodF0sXG4gICAgICBdLFxuICAgICAgLi4uY29udGFpbmVyUHJvcHMsXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgY29udGFpbmVyID0gbmV3RWxlbWVudCh7XG4gICAgICAuLi5jb250YWluZXJQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBjb25zdCB0ZXh0RWxlbWVudDogRXhjYWxpZHJhd1RleHRFbGVtZW50ID0gbmV3VGV4dEVsZW1lbnQoe1xuICAgIHg6IDAsXG4gICAgeTogMCxcbiAgICB0ZXh0QWxpZ246IFRFWFRfQUxJR04uQ0VOVEVSLFxuICAgIHZlcnRpY2FsQWxpZ246IFZFUlRJQ0FMX0FMSUdOLk1JRERMRSxcbiAgICAuLi50ZXh0UHJvcHMsXG4gICAgY29udGFpbmVySWQ6IGNvbnRhaW5lci5pZCxcbiAgICBzdHJva2VDb2xvcjogdGV4dFByb3BzLnN0cm9rZUNvbG9yIHx8IGNvbnRhaW5lci5zdHJva2VDb2xvcixcbiAgfSk7XG5cbiAgbXV0YXRlRWxlbWVudChjb250YWluZXIsIHtcbiAgICBib3VuZEVsZW1lbnRzOiAoY29udGFpbmVyLmJvdW5kRWxlbWVudHMgfHwgW10pLmNvbmNhdCh7XG4gICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgIGlkOiB0ZXh0RWxlbWVudC5pZCxcbiAgICB9KSxcbiAgfSk7XG5cbiAgcmVkcmF3VGV4dEJvdW5kaW5nQm94KHRleHRFbGVtZW50LCBjb250YWluZXIpO1xuXG4gIHJldHVybiBbY29udGFpbmVyLCB0ZXh0RWxlbWVudF07XG59O1xuXG5jb25zdCBiaW5kTGluZWFyRWxlbWVudFRvRWxlbWVudCA9IChcbiAgbGluZWFyRWxlbWVudDoge1xuICAgIHR5cGU6IEV4Y2FsaWRyYXdMaW5lYXJFbGVtZW50W1widHlwZVwiXTtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICAgIGxhYmVsPzoge1xuICAgICAgdGV4dDogc3RyaW5nO1xuICAgICAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgICBmb250RmFtaWx5PzogRm9udEZhbWlseVZhbHVlcztcbiAgICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcbiAgICAgIHZlcnRpY2FsQWxpZ24/OiBWZXJ0aWNhbEFsaWduO1xuICAgIH0gJiBNYXJrT3B0aW9uYWw8RWxlbWVudENvbnN0cnVjdG9yT3B0cywgXCJ4XCIgfCBcInlcIj47XG4gICAgc3RhcnQ/OlxuICAgICAgfCAoXG4gICAgICAgICAgfCB7XG4gICAgICAgICAgICAgIHR5cGU6IEV4Y2x1ZGU8XG4gICAgICAgICAgICAgICAgRXhjYWxpZHJhd0JpbmRhYmxlRWxlbWVudFtcInR5cGVcIl0sXG4gICAgICAgICAgICAgICAgXCJpbWFnZVwiIHwgXCJzZWxlY3Rpb25cIiB8IFwidGV4dFwiXG4gICAgICAgICAgICAgID47XG4gICAgICAgICAgICAgIGlkPzogRXhjYWxpZHJhd0dlbmVyaWNFbGVtZW50W1wiaWRcIl07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfCAoe1xuICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIjtcbiAgICAgICAgICAgICAgdGV4dDogc3RyaW5nO1xuICAgICAgICAgICAgICBpZD86IEV4Y2FsaWRyYXdUZXh0RWxlbWVudFtcImlkXCJdO1xuICAgICAgICAgICAgfSAmIFBhcnRpYWw8RXhjYWxpZHJhd1RleHRFbGVtZW50PilcbiAgICAgICAgKSAmXG4gICAgICAgICAgTWFya09wdGlvbmFsPEVsZW1lbnRDb25zdHJ1Y3Rvck9wdHMsIFwieFwiIHwgXCJ5XCI+O1xuICAgIGVuZD86XG4gICAgICB8IChcbiAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgdHlwZTogRXhjbHVkZTxcbiAgICAgICAgICAgICAgICBFeGNhbGlkcmF3QmluZGFibGVFbGVtZW50W1widHlwZVwiXSxcbiAgICAgICAgICAgICAgICBcImltYWdlXCIgfCBcInNlbGVjdGlvblwiIHwgXCJ0ZXh0XCJcbiAgICAgICAgICAgICAgPjtcbiAgICAgICAgICAgICAgaWQ/OiBFeGNhbGlkcmF3R2VuZXJpY0VsZW1lbnRbXCJpZFwiXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB8ICh7XG4gICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiO1xuICAgICAgICAgICAgICB0ZXh0OiBzdHJpbmc7XG4gICAgICAgICAgICAgIGlkPzogRXhjYWxpZHJhd1RleHRFbGVtZW50W1wiaWRcIl07XG4gICAgICAgICAgICB9ICYgUGFydGlhbDxFeGNhbGlkcmF3VGV4dEVsZW1lbnQ+KVxuICAgICAgICApICZcbiAgICAgICAgICBNYXJrT3B0aW9uYWw8RWxlbWVudENvbnN0cnVjdG9yT3B0cywgXCJ4XCIgfCBcInlcIj47XG4gIH0gJiBQYXJ0aWFsPEV4Y2FsaWRyYXdMaW5lYXJFbGVtZW50Pixcbik6IHtcbiAgbGluZWFyRWxlbWVudDogRXhjYWxpZHJhd0xpbmVhckVsZW1lbnQ7XG4gIHN0YXJ0Qm91bmRFbGVtZW50PzogRXhjYWxpZHJhd0VsZW1lbnQ7XG4gIGVuZEJvdW5kRWxlbWVudD86IEV4Y2FsaWRyYXdFbGVtZW50O1xufSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzdGFydCxcbiAgICBlbmQsXG4gICAgdHlwZSxcbiAgICBlbmRBcnJvd2hlYWQgPSBsaW5lYXJFbGVtZW50LnR5cGUgPT09IFwiYXJyb3dcIiA/IFwiYXJyb3dcIiA6IG51bGwsXG4gICAgLi4ucmVzdFxuICB9ID0gbGluZWFyRWxlbWVudDtcbiAgY29uc3Qgd2lkdGggPSBsaW5lYXJFbGVtZW50LndpZHRoIHx8IDMwMDtcbiAgY29uc3QgaGVpZ2h0ID0gbGluZWFyRWxlbWVudC5oZWlnaHQgfHwgMDtcbiAgY29uc3QgZXhjbGlhZHJhd0xpbmVhckVsZW1lbnQgPSBuZXdMaW5lYXJFbGVtZW50KHtcbiAgICB0eXBlLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBwb2ludHM6IFtcbiAgICAgIFswLCAwXSxcbiAgICAgIFt3aWR0aCwgaGVpZ2h0XSxcbiAgICBdLFxuICAgIGVuZEFycm93aGVhZCxcbiAgICAuLi5yZXN0LFxuICB9KTtcblxuICBsZXQgc3RhcnRCb3VuZEVsZW1lbnQ7XG4gIGxldCBlbmRCb3VuZEVsZW1lbnQ7XG5cbiAgbXV0YXRlRWxlbWVudChleGNsaWFkcmF3TGluZWFyRWxlbWVudCwge1xuICAgIHN0YXJ0QmluZGluZzogbGluZWFyRWxlbWVudD8uc3RhcnRCaW5kaW5nIHx8IG51bGwsXG4gICAgZW5kQmluZGluZzogbGluZWFyRWxlbWVudC5lbmRCaW5kaW5nIHx8IG51bGwsXG4gIH0pO1xuXG4gIGlmIChzdGFydCkge1xuICAgIGNvbnN0IHdpZHRoID0gc3RhcnQ/LndpZHRoID8/IDEwMDtcbiAgICBjb25zdCBoZWlnaHQgPSBzdGFydD8uaGVpZ2h0ID8/IDEwMDtcbiAgICBjb25zdCBleGlzdGluZ0VsZW1lbnQgPSBzdGFydC5pZFxuICAgICAgPyBleGNhbGlkcmF3RWxlbWVudHMuZ2V0KCkuZmluZCgoZWxlKSA9PiBlbGU/LmlkID09PSBzdGFydC5pZClcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHN0YXJ0WCA9IHN0YXJ0LnggfHwgZXhjbGlhZHJhd0xpbmVhckVsZW1lbnQueCAtIHdpZHRoO1xuICAgIGNvbnN0IHN0YXJ0WSA9IHN0YXJ0LnkgfHwgZXhjbGlhZHJhd0xpbmVhckVsZW1lbnQueSAtIGhlaWdodCAvIDI7XG5cbiAgICBpZiAoc3RhcnQudHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgIHN0YXJ0Qm91bmRFbGVtZW50ID0gbmV3VGV4dEVsZW1lbnQoe1xuICAgICAgICB4OiBzdGFydFgsXG4gICAgICAgIHk6IHN0YXJ0WSxcbiAgICAgICAgLi4uZXhpc3RpbmdFbGVtZW50LFxuICAgICAgICAuLi5zdGFydCxcbiAgICAgIH0pO1xuICAgICAgLy8gdG8gcG9zaXRpb24gdGhlIHRleHQgY29ycmVjdGx5IHdoZW4gY29vcmRpbmF0ZXMgbm90IHByb3ZpZGVkXG4gICAgICBtdXRhdGVFbGVtZW50KHN0YXJ0Qm91bmRFbGVtZW50LCB7XG4gICAgICAgIHg6IHN0YXJ0LnggfHwgZXhjbGlhZHJhd0xpbmVhckVsZW1lbnQueCAtIHN0YXJ0Qm91bmRFbGVtZW50LndpZHRoLFxuICAgICAgICB5OiBzdGFydC55IHx8IGV4Y2xpYWRyYXdMaW5lYXJFbGVtZW50LnkgLSBzdGFydEJvdW5kRWxlbWVudC5oZWlnaHQgLyAyLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXJ0Qm91bmRFbGVtZW50ID0gbmV3RWxlbWVudCh7XG4gICAgICAgIHg6IHN0YXJ0WCxcbiAgICAgICAgeTogc3RhcnRZLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICAuLi5leGlzdGluZ0VsZW1lbnQsXG4gICAgICAgIC4uLnN0YXJ0LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgYmluZExpbmVhckVsZW1lbnQoXG4gICAgICBleGNsaWFkcmF3TGluZWFyRWxlbWVudCxcbiAgICAgIHN0YXJ0Qm91bmRFbGVtZW50IGFzIEV4Y2FsaWRyYXdCaW5kYWJsZUVsZW1lbnQsXG4gICAgICBcInN0YXJ0XCIsXG4gICAgKTtcbiAgfVxuICBpZiAoZW5kKSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gZW5kPy5oZWlnaHQgPz8gMTAwO1xuICAgIGNvbnN0IHdpZHRoID0gZW5kPy53aWR0aCA/PyAxMDA7XG5cbiAgICBjb25zdCBleGlzdGluZ0VsZW1lbnQgPSBlbmQuaWRcbiAgICAgID8gZXhjYWxpZHJhd0VsZW1lbnRzLmdldCgpLmZpbmQoKGVsZSkgPT4gZWxlPy5pZCA9PT0gZW5kLmlkKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZW5kWCA9XG4gICAgICBlbmQueCB8fCBleGNsaWFkcmF3TGluZWFyRWxlbWVudC54ICsgZXhjbGlhZHJhd0xpbmVhckVsZW1lbnQud2lkdGg7XG4gICAgY29uc3QgZW5kWSA9IGVuZC55IHx8IGV4Y2xpYWRyYXdMaW5lYXJFbGVtZW50LnkgLSBoZWlnaHQgLyAyO1xuXG4gICAgaWYgKGVuZC50eXBlID09PSBcInRleHRcIikge1xuICAgICAgZW5kQm91bmRFbGVtZW50ID0gbmV3VGV4dEVsZW1lbnQoe1xuICAgICAgICB4OiBlbmRYLFxuICAgICAgICB5OiBlbmRZLFxuICAgICAgICAuLi5leGlzdGluZ0VsZW1lbnQsXG4gICAgICAgIC4uLmVuZCxcbiAgICAgIH0pO1xuICAgICAgLy8gdG8gcG9zaXRpb24gdGhlIHRleHQgY29ycmVjdGx5IHdoZW4gY29vcmRpbmF0ZXMgbm90IHByb3ZpZGVkXG4gICAgICBtdXRhdGVFbGVtZW50KGVuZEJvdW5kRWxlbWVudCwge1xuICAgICAgICB5OiBlbmQueSB8fCBleGNsaWFkcmF3TGluZWFyRWxlbWVudC55IC0gZW5kQm91bmRFbGVtZW50LmhlaWdodCAvIDIsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW5kQm91bmRFbGVtZW50ID0gbmV3RWxlbWVudCh7XG4gICAgICAgIHg6IGVuZFgsXG4gICAgICAgIHk6IGVuZFksXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIC4uLmV4aXN0aW5nRWxlbWVudCxcbiAgICAgICAgLi4uZW5kLFxuICAgICAgfSkgYXMgRXhjYWxpZHJhd0JpbmRhYmxlRWxlbWVudDtcbiAgICB9XG4gICAgYmluZExpbmVhckVsZW1lbnQoXG4gICAgICBleGNsaWFkcmF3TGluZWFyRWxlbWVudCxcbiAgICAgIGVuZEJvdW5kRWxlbWVudCBhcyBFeGNhbGlkcmF3QmluZGFibGVFbGVtZW50LFxuICAgICAgXCJlbmRcIixcbiAgICApO1xuICB9XG4gIHJldHVybiB7XG4gICAgbGluZWFyRWxlbWVudDogZXhjbGlhZHJhd0xpbmVhckVsZW1lbnQsXG4gICAgLy9AdHMtaWdub3JlXG4gICAgc3RhcnRCb3VuZEVsZW1lbnQsXG4gICAgLy9AdHMtaWdub3JlXG4gICAgZW5kQm91bmRFbGVtZW50LFxuICB9O1xufTtcblxuY29uc3QgZXhjYWxpZHJhd0VsZW1lbnRzID0gKCgpID0+IHtcbiAgY29uc3QgcmVzOiBFeGNhbGlkcmF3RWxlbWVudFtdID0gW107XG4gIGNvbnN0IGVsZW1lbnRNYXAgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gIGNvbnN0IHB1c2ggPSAoZWxlPzogRXhjYWxpZHJhd0VsZW1lbnQpID0+IHtcbiAgICBpZiAoIWVsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbmRleCA9IGVsZW1lbnRNYXAuZ2V0KGVsZS5pZCk7XG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgaW5kZXggPj0gMCkge1xuICAgICAgcmVzW2luZGV4XSA9IGVsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzLnB1c2goZWxlKTtcbiAgICAgIGNvbnN0IGluZGV4ID0gcmVzLmxlbmd0aCAtIDE7XG4gICAgICBlbGVtZW50TWFwLnNldChlbGUuaWQsIGluZGV4KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGNsZWFyID0gKCkgPT4ge1xuICAgIHJlcy5sZW5ndGggPSAwO1xuICAgIGVsZW1lbnRNYXAuY2xlYXIoKTtcbiAgfTtcbiAgY29uc3QgZ2V0ID0gKCkgPT4ge1xuICAgIHJldHVybiByZXM7XG4gIH07XG4gIGNvbnN0IGhhc0VsZW1lbnRXaXRoSWQgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudE1hcC5nZXQoaWQpO1xuICAgIHJldHVybiBpbmRleCAhPT0gdW5kZWZpbmVkICYmIGluZGV4ID49IDA7XG4gIH07XG4gIHJldHVybiB7XG4gICAgcHVzaCxcbiAgICBjbGVhcixcbiAgICBnZXQsXG4gICAgaGFzRWxlbWVudFdpdGhJZCxcbiAgfTtcbn0pKCk7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9FeGNhbGlkcmF3RWxlbWVudHMgPSAoXG4gIGVsZW1lbnRzOiBJbXBvcnRlZERhdGFTdGF0ZVtcImVsZW1lbnRzXCJdLFxuKTogRXhjYWxpZHJhd0VsZW1lbnRbXSA9PiB7XG4gIGV4Y2FsaWRyYXdFbGVtZW50cy5jbGVhcigpO1xuICBpZiAoIWVsZW1lbnRzKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZWxlbWVudElkID0gZWxlbWVudC5pZCB8fCByZWdlbmVyYXRlSWQobnVsbCk7XG5cbiAgICAvLyBUbyBtYWtlIHN1cmUgZXZlcnkgZWxlbWVudCBoYXMgYSB1bmlxdWUgaWRcbiAgICB3aGlsZSAoZXhjYWxpZHJhd0VsZW1lbnRzLmhhc0VsZW1lbnRXaXRoSWQoZWxlbWVudElkKSkge1xuICAgICAgZWxlbWVudElkID0gcmVnZW5lcmF0ZUlkKGVsZW1lbnRJZCk7XG4gICAgfVxuICAgIGNvbnN0IGVsZW1lbnRXaXRoaWQgPSB7IC4uLmVsZW1lbnQsIGlkOiBlbGVtZW50SWQgfTtcblxuICAgIGlmICghRUxFTUVOVFNfU1VQUE9SVElOR19QUk9HUkFNTUFUSUNfQVBJLmluY2x1ZGVzKGVsZW1lbnQudHlwZSkpIHtcbiAgICAgIGV4Y2FsaWRyYXdFbGVtZW50cy5wdXNoKGVsZW1lbnQgYXMgRXhjYWxpZHJhd0VsZW1lbnQpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vQHRzLWlnbm9yZVxuICAgIGlmIChWQUxJRF9DT05UQUlORVJfVFlQRVMuaGFzKGVsZW1lbnQudHlwZSkgJiYgZWxlbWVudD8ubGFiZWw/LnRleHQpIHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgbGV0IFtjb250YWluZXIsIHRleHRdID0gYmluZFRleHRUb0NvbnRhaW5lcihlbGVtZW50V2l0aGlkLCBlbGVtZW50LmxhYmVsKTtcbiAgICAgIGV4Y2FsaWRyYXdFbGVtZW50cy5wdXNoKGNvbnRhaW5lcik7XG4gICAgICBleGNhbGlkcmF3RWxlbWVudHMucHVzaCh0ZXh0KTtcblxuICAgICAgaWYgKGNvbnRhaW5lci50eXBlID09PSBcImFycm93XCIpIHtcbiAgICAgICAgY29uc3QgeyBsaW5lYXJFbGVtZW50LCBzdGFydEJvdW5kRWxlbWVudCwgZW5kQm91bmRFbGVtZW50IH0gPVxuICAgICAgICAgIGJpbmRMaW5lYXJFbGVtZW50VG9FbGVtZW50KHtcbiAgICAgICAgICAgIC4uLmNvbnRhaW5lcixcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgc3RhcnQ6IGVsZW1lbnQ/LnN0YXJ0LFxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICBlbmQ6IGVsZW1lbnQ/LmVuZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgY29udGFpbmVyID0gbGluZWFyRWxlbWVudDtcbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2gobGluZWFyRWxlbWVudCk7XG4gICAgICAgIGV4Y2FsaWRyYXdFbGVtZW50cy5wdXNoKHN0YXJ0Qm91bmRFbGVtZW50KTtcbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goZW5kQm91bmRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGV4Y2FsaWRyYXdFbGVtZW50O1xuICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgICAgY29uc3QgZm9udEZhbWlseSA9IGVsZW1lbnQ/LmZvbnRGYW1pbHkgfHwgREVGQVVMVF9GT05UX0ZBTUlMWTtcbiAgICAgICAgY29uc3QgZm9udFNpemUgPSBlbGVtZW50Py5mb250U2l6ZSB8fCBERUZBVUxUX0ZPTlRfU0laRTtcbiAgICAgICAgY29uc3QgbGluZUhlaWdodCA9XG4gICAgICAgICAgZWxlbWVudD8ubGluZUhlaWdodCB8fCBnZXREZWZhdWx0TGluZUhlaWdodChmb250RmFtaWx5KTtcbiAgICAgICAgY29uc3QgdGV4dCA9IGVsZW1lbnQudGV4dCA/PyBcIlwiO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkVGV4dCA9IG5vcm1hbGl6ZVRleHQodGV4dCk7XG4gICAgICAgIGNvbnN0IG1ldHJpY3MgPSBtZWFzdXJlVGV4dChcbiAgICAgICAgICBub3JtYWxpemVkVGV4dCxcbiAgICAgICAgICBnZXRGb250U3RyaW5nKHsgZm9udEZhbWlseSwgZm9udFNpemUgfSksXG4gICAgICAgICAgbGluZUhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnQgPSB7XG4gICAgICAgICAgd2lkdGg6IG1ldHJpY3Mud2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiBtZXRyaWNzLmhlaWdodCxcbiAgICAgICAgICBmb250RmFtaWx5LFxuICAgICAgICAgIGZvbnRTaXplLFxuICAgICAgICAgIC4uLmVsZW1lbnRXaXRoaWQsXG4gICAgICAgIH07XG5cbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goZXhjYWxpZHJhd0VsZW1lbnQgYXMgRXhjYWxpZHJhd1RleHRFbGVtZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC50eXBlID09PSBcImFycm93XCIgfHwgZWxlbWVudC50eXBlID09PSBcImxpbmVcIikge1xuICAgICAgICBjb25zdCB7IGxpbmVhckVsZW1lbnQsIHN0YXJ0Qm91bmRFbGVtZW50LCBlbmRCb3VuZEVsZW1lbnQgfSA9XG4gICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgYmluZExpbmVhckVsZW1lbnRUb0VsZW1lbnQoZWxlbWVudFdpdGhpZCk7XG4gICAgICAgIGV4Y2FsaWRyYXdFbGVtZW50cy5wdXNoKGxpbmVhckVsZW1lbnQpO1xuICAgICAgICBleGNhbGlkcmF3RWxlbWVudHMucHVzaChzdGFydEJvdW5kRWxlbWVudCk7XG4gICAgICAgIGV4Y2FsaWRyYXdFbGVtZW50cy5wdXNoKGVuZEJvdW5kRWxlbWVudCk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBpZiAoc3RhcnRCb3VuZEVsZW1lbnQgJiYgIWVsZW1lbnQuc3RhcnQuaWQpIHtcbiAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICBleGNhbGlkcmF3RWxlbWVudHMucHVzaChzdGFydEJvdW5kRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIGlmIChlbmRCb3VuZEVsZW1lbnQgJiYgIWVsZW1lbnQuZW5kLmlkKSB7XG4gICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goZW5kQm91bmRFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnQgPSB7XG4gICAgICAgICAgLi4uZWxlbWVudFdpdGhpZCxcbiAgICAgICAgICB3aWR0aDpcbiAgICAgICAgICAgIGVsZW1lbnQ/LndpZHRoIHx8XG4gICAgICAgICAgICAoRUxFTUVOVFNfU1VQUE9SVElOR19QUk9HUkFNTUFUSUNfQVBJLmluY2x1ZGVzKGVsZW1lbnQudHlwZSlcbiAgICAgICAgICAgICAgPyAxMDBcbiAgICAgICAgICAgICAgOiAwKSxcbiAgICAgICAgICBoZWlnaHQ6XG4gICAgICAgICAgICBlbGVtZW50Py5oZWlnaHQgfHxcbiAgICAgICAgICAgIChFTEVNRU5UU19TVVBQT1JUSU5HX1BST0dSQU1NQVRJQ19BUEkuaW5jbHVkZXMoZWxlbWVudC50eXBlKVxuICAgICAgICAgICAgICA/IDEwMFxuICAgICAgICAgICAgICA6IDApLFxuICAgICAgICB9IGFzIEV4Y2FsaWRyYXdHZW5lcmljRWxlbWVudDtcbiAgICAgICAgZXhjYWxpZHJhd0VsZW1lbnRzLnB1c2goZXhjYWxpZHJhd0VsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBleGNhbGlkcmF3RWxlbWVudHMuZ2V0KCk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../data/transform.ts\n");
4059
4059
 
4060
4060
  /***/ }),
4061
4061
 
@@ -4473,7 +4473,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
4473
4473
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4474
4474
 
4475
4475
  "use strict";
4476
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n\nif (\"development\" !== _constants__WEBPACK_IMPORTED_MODULE_0__.ENV.TEST) {\n /* eslint-disable */\n /* global __webpack_public_path__:writable */\n __webpack_require__.p =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.15.2-6546-7560b59\"}/dist/`;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wdWJsaWNQYXRoLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNDO0FBQ3RDLElBQUksYUFBb0IsS0FBSyxnREFBUSxFQUFFO0lBQ3JDLG9CQUFvQjtJQUNwQiw2Q0FBNkM7SUFDN0MscUJBQXVCO1FBQ3JCLE1BQU0sQ0FBQyxxQkFBcUI7WUFDNUIscUJBQXFCLHdCQUFvQixJQUFJLHFCQUF1QixRQUFRLENBQUM7Q0FDaEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWNQYXRoLmpzP2E4N2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5WIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBFTlYuVEVTVCkge1xuICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAvKiBnbG9iYWwgX193ZWJwYWNrX3B1YmxpY19wYXRoX186d3JpdGFibGUgKi9cbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPVxuICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICBgaHR0cHM6Ly91bnBrZy5jb20vJHtwcm9jZXNzLmVudi5QS0dfTkFNRX1AJHtwcm9jZXNzLmVudi5QS0dfVkVSU0lPTn0vZGlzdC9gO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./publicPath.js\n");
4476
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n\nif (\"development\" !== _constants__WEBPACK_IMPORTED_MODULE_0__.ENV.TEST) {\n /* eslint-disable */\n /* global __webpack_public_path__:writable */\n __webpack_require__.p =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.15.2-6546-5841e6a\"}/dist/`;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wdWJsaWNQYXRoLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNDO0FBQ3RDLElBQUksYUFBb0IsS0FBSyxnREFBUSxFQUFFO0lBQ3JDLG9CQUFvQjtJQUNwQiw2Q0FBNkM7SUFDN0MscUJBQXVCO1FBQ3JCLE1BQU0sQ0FBQyxxQkFBcUI7WUFDNUIscUJBQXFCLHdCQUFvQixJQUFJLHFCQUF1QixRQUFRLENBQUM7Q0FDaEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWNQYXRoLmpzP2E4N2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5WIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBFTlYuVEVTVCkge1xuICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAvKiBnbG9iYWwgX193ZWJwYWNrX3B1YmxpY19wYXRoX186d3JpdGFibGUgKi9cbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPVxuICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICBgaHR0cHM6Ly91bnBrZy5jb20vJHtwcm9jZXNzLmVudi5QS0dfTkFNRX1AJHtwcm9jZXNzLmVudi5QS0dfVkVSU0lPTn0vZGlzdC9gO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./publicPath.js\n");
4477
4477
 
4478
4478
  /***/ }),
4479
4479
 
@@ -4594,7 +4594,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
4594
4594
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4595
4595
 
4596
4596
  "use strict";
4597
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SVG_EXPORT_TAG\": () => (/* binding */ SVG_EXPORT_TAG),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getExportSize\": () => (/* binding */ getExportSize)\n/* harmony export */ });\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _element_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element/bounds */ \"../../element/bounds.ts\");\n/* harmony import */ var _renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderScene */ \"../../renderer/renderScene.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _element_image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../element/image */ \"../../element/image.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nconst SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;\nconst exportToCanvas = (elements, appState, files, { exportBackground, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, }, createCanvas = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n const { canvas, scale = 1 } = createCanvas(width, height);\n const defaultAppState = (0,_appState__WEBPACK_IMPORTED_MODULE_5__.getDefaultAppState)();\n const { imageCache } = yield (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.updateImageCache)({\n imageCache: new Map(),\n fileIds: (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.getInitializedImageElements)(elements).map((element) => element.fileId),\n files,\n });\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderScene)({\n elements,\n appState,\n scale,\n rc: roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].canvas(canvas),\n canvas,\n renderConfig: {\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n remotePointerViewportCoords: {},\n remoteSelectedElementIds: {},\n shouldCacheIgnoreZoom: false,\n remotePointerUsernames: {},\n remotePointerUserStates: {},\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n imageCache,\n renderScrollbars: false,\n renderSelection: false,\n renderGrid: false,\n isExporting: true,\n },\n });\n return canvas;\n});\nconst exportToSvg = (elements, appState, files, opts) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n const { exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, exportScale = 1, exportEmbedScene, } = appState;\n let metadata = \"\";\n if (exportEmbedScene) {\n try {\n metadata = yield (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../../src/data/image */ \"../../data/image.ts\"))).encodeSvgMetadata({\n text: (opts === null || opts === void 0 ? void 0 : opts.serializeAsJSON)\n ? (_a = opts === null || opts === void 0 ? void 0 : opts.serializeAsJSON) === null || _a === void 0 ? void 0 : _a.call(opts)\n : (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(elements, appState, files || {}, \"local\"),\n });\n }\n catch (error) {\n console.error(error);\n }\n }\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n // initialize SVG root\n const svgRoot = document.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", _constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (appState.exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", _constants__WEBPACK_IMPORTED_MODULE_4__.THEME_FILTER);\n }\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (true) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.15.2-6546-7560b59\"}`;\n if (assetPath === null || assetPath === void 0 ? void 0 : assetPath.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n <defs>\n <style class=\"style-fonts\">\n @font-face {\n font-family: \"Virgil\";\n src: url(\"${assetPath}Virgil.woff2\");\n }\n @font-face {\n font-family: \"Cascadia\";\n src: url(\"${assetPath}Cascadia.woff2\");\n }\n </style>\n </defs>\n `;\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n const rsvg = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].svg(svgRoot);\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderSceneToSvg)(elements, rsvg, svgRoot, files || {}, {\n offsetX: -minX + exportPadding,\n offsetY: -minY + exportPadding,\n exportWithDarkMode: appState.exportWithDarkMode,\n });\n return svgRoot;\n});\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (elements, exportPadding) => {\n const [minX, minY, maxX, maxY] = (0,_element_bounds__WEBPACK_IMPORTED_MODULE_1__.getCommonBounds)(elements);\n const width = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minX, maxX) + exportPadding * 2;\n const height = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minY, maxY) + exportPadding + exportPadding;\n return [minX, minY, width, height];\n};\nconst getExportSize = (elements, exportPadding, scale) => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map((dimension) => Math.trunc(dimension * scale));\n return [width, height];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vc2NlbmUvZXhwb3J0LnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFzQztBQUVjO0FBQ29CO0FBQ3BDO0FBRXdDO0FBQzNCO0FBQ0Y7QUFJckI7QUFFbkIsTUFBTSxjQUFjLEdBQUcsZ0NBQWdDLENBQUM7QUFFeEQsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsUUFBZ0QsRUFDaEQsUUFBa0IsRUFDbEIsS0FBa0IsRUFDbEIsRUFDRSxnQkFBZ0IsRUFDaEIsYUFBYSxHQUFHLDhEQUFzQixFQUN0QyxtQkFBbUIsR0FLcEIsRUFDRCxlQUdvRCxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUNwRSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDNUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDakQsQ0FBQyxFQUNELEVBQUU7SUFDRixNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUUzRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTFELE1BQU0sZUFBZSxHQUFHLDZEQUFrQixFQUFFLENBQUM7SUFFN0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sZ0VBQWdCLENBQUM7UUFDNUMsVUFBVSxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ3JCLE9BQU8sRUFBRSwyRUFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQ2hELENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUM1QjtRQUNELEtBQUs7S0FDTixDQUFDLENBQUM7SUFFSCxrRUFBVyxDQUFDO1FBQ1YsUUFBUTtRQUNSLFFBQVE7UUFDUixLQUFLO1FBQ0wsRUFBRSxFQUFFLGdFQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3hCLE1BQU07UUFDTixZQUFZLEVBQUU7WUFDWixtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbEUsT0FBTyxFQUFFLENBQUMsSUFBSSxHQUFHLGFBQWE7WUFDOUIsT0FBTyxFQUFFLENBQUMsSUFBSSxHQUFHLGFBQWE7WUFDOUIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO1lBQzFCLDJCQUEyQixFQUFFLEVBQUU7WUFDL0Isd0JBQXdCLEVBQUUsRUFBRTtZQUM1QixxQkFBcUIsRUFBRSxLQUFLO1lBQzVCLHNCQUFzQixFQUFFLEVBQUU7WUFDMUIsdUJBQXVCLEVBQUUsRUFBRTtZQUMzQixLQUFLLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFDckQsVUFBVTtZQUNWLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsZUFBZSxFQUFFLEtBQUs7WUFDdEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLElBQUk7U0FDbEI7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLEVBQUM7QUFFSyxNQUFNLFdBQVcsR0FBRyxDQUN6QixRQUFnRCxFQUNoRCxRQU9DLEVBQ0QsS0FBeUIsRUFDekIsSUFFQyxFQUN1QixFQUFFOztJQUMxQixNQUFNLEVBQ0osYUFBYSxHQUFHLDhEQUFzQixFQUN0QyxtQkFBbUIsRUFDbkIsV0FBVyxHQUFHLENBQUMsRUFDZixnQkFBZ0IsR0FDakIsR0FBRyxRQUFRLENBQUM7SUFDYixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDbEIsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixJQUFJO1lBQ0YsUUFBUSxHQUFHLE1BQU0sQ0FDZixNQUFNLHVJQUE4RCxDQUNyRSxDQUFDLGlCQUFpQixDQUFDO2dCQUNsQixJQUFJLEVBQUUsS0FBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGVBQWU7b0JBQ3pCLENBQUMsQ0FBQyxVQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsZUFBZSxvREFBSTtvQkFDM0IsQ0FBQyxDQUFDLDJEQUFlLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQzthQUM5RCxDQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sS0FBVSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEI7S0FDRjtJQUNELE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTNFLHNCQUFzQjtJQUN0QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLDhDQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEQsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsOENBQU0sQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDMUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sR0FBRyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFELElBQUksUUFBUSxDQUFDLGtCQUFrQixFQUFFO1FBQy9CLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLG9EQUFZLENBQUMsQ0FBQztLQUM5QztJQUVELElBQUksU0FBUyxHQUFHLHlCQUF5QixDQUFDO0lBRTFDLDREQUE0RDtJQUM1RCxJQUFJLElBQXFDLEVBQUU7UUFDekMsU0FBUztZQUNQLE1BQU0sQ0FBQyxxQkFBcUI7Z0JBQzVCLHFCQUFxQix3QkFBb0IsSUFBSSxxQkFBdUIsRUFBRSxDQUFDO1FBRXpFLElBQUksU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDbEU7UUFDRCxTQUFTLEdBQUcsR0FBRyxTQUFTLDBCQUEwQixDQUFDO0tBQ3BEO0lBQ0QsT0FBTyxDQUFDLFNBQVMsR0FBRztJQUNsQixjQUFjO0lBQ2QsUUFBUTs7Ozs7b0JBS1EsU0FBUzs7OztvQkFJVCxTQUFTOzs7O0dBSTFCLENBQUM7SUFDRix5QkFBeUI7SUFDekIsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksbUJBQW1CLEVBQUU7UUFDcEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGFBQWMsQ0FBQyxlQUFlLENBQUMsOENBQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQjtJQUVELE1BQU0sSUFBSSxHQUFHLDZEQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsdUVBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRTtRQUNyRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEdBQUcsYUFBYTtRQUM5QixPQUFPLEVBQUUsQ0FBQyxJQUFJLEdBQUcsYUFBYTtRQUM5QixrQkFBa0IsRUFBRSxRQUFRLENBQUMsa0JBQWtCO0tBQ2hELENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsRUFBQztBQUVGLGlEQUFpRDtBQUNqRCxNQUFNLGFBQWEsR0FBRyxDQUNwQixRQUFnRCxFQUNoRCxhQUFxQixFQUNhLEVBQUU7SUFDcEMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLGdFQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsTUFBTSxLQUFLLEdBQUcsZ0RBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUN2RCxNQUFNLE1BQU0sR0FBRyxnREFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBRXBFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUM7QUFFSyxNQUFNLGFBQWEsR0FBRyxDQUMzQixRQUFnRCxFQUNoRCxhQUFxQixFQUNyQixLQUFhLEVBQ0ssRUFBRTtJQUNwQixNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FDcEUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUM3QyxDQUFDO0lBRUYsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc2NlbmUvZXhwb3J0LnRzPzliZjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJvdWdoIGZyb20gXCJyb3VnaGpzL2Jpbi9yb3VnaFwiO1xuaW1wb3J0IHsgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50IH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IGdldENvbW1vbkJvdW5kcyB9IGZyb20gXCIuLi9lbGVtZW50L2JvdW5kc1wiO1xuaW1wb3J0IHsgcmVuZGVyU2NlbmUsIHJlbmRlclNjZW5lVG9TdmcgfSBmcm9tIFwiLi4vcmVuZGVyZXIvcmVuZGVyU2NlbmVcIjtcbmltcG9ydCB7IGRpc3RhbmNlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBBcHBTdGF0ZSwgQmluYXJ5RmlsZXMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IERFRkFVTFRfRVhQT1JUX1BBRERJTkcsIFNWR19OUywgVEhFTUVfRklMVEVSIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEFwcFN0YXRlIH0gZnJvbSBcIi4uL2FwcFN0YXRlXCI7XG5pbXBvcnQgeyBzZXJpYWxpemVBc0pTT04gfSBmcm9tIFwiLi4vZGF0YS9qc29uXCI7XG5pbXBvcnQge1xuICBnZXRJbml0aWFsaXplZEltYWdlRWxlbWVudHMsXG4gIHVwZGF0ZUltYWdlQ2FjaGUsXG59IGZyb20gXCIuLi9lbGVtZW50L2ltYWdlXCI7XG5cbmV4cG9ydCBjb25zdCBTVkdfRVhQT1JUX1RBRyA9IGA8IS0tIHN2Zy1zb3VyY2U6ZXhjYWxpZHJhdyAtLT5gO1xuXG5leHBvcnQgY29uc3QgZXhwb3J0VG9DYW52YXMgPSBhc3luYyAoXG4gIGVsZW1lbnRzOiByZWFkb25seSBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgYXBwU3RhdGU6IEFwcFN0YXRlLFxuICBmaWxlczogQmluYXJ5RmlsZXMsXG4gIHtcbiAgICBleHBvcnRCYWNrZ3JvdW5kLFxuICAgIGV4cG9ydFBhZGRpbmcgPSBERUZBVUxUX0VYUE9SVF9QQURESU5HLFxuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3IsXG4gIH06IHtcbiAgICBleHBvcnRCYWNrZ3JvdW5kOiBib29sZWFuO1xuICAgIGV4cG9ydFBhZGRpbmc/OiBudW1iZXI7XG4gICAgdmlld0JhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICB9LFxuICBjcmVhdGVDYW52YXM6IChcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIGhlaWdodDogbnVtYmVyLFxuICApID0+IHsgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudDsgc2NhbGU6IG51bWJlciB9ID0gKHdpZHRoLCBoZWlnaHQpID0+IHtcbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoICogYXBwU3RhdGUuZXhwb3J0U2NhbGU7XG4gICAgY2FudmFzLmhlaWdodCA9IGhlaWdodCAqIGFwcFN0YXRlLmV4cG9ydFNjYWxlO1xuICAgIHJldHVybiB7IGNhbnZhcywgc2NhbGU6IGFwcFN0YXRlLmV4cG9ydFNjYWxlIH07XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIHdpZHRoLCBoZWlnaHRdID0gZ2V0Q2FudmFzU2l6ZShlbGVtZW50cywgZXhwb3J0UGFkZGluZyk7XG5cbiAgY29uc3QgeyBjYW52YXMsIHNjYWxlID0gMSB9ID0gY3JlYXRlQ2FudmFzKHdpZHRoLCBoZWlnaHQpO1xuXG4gIGNvbnN0IGRlZmF1bHRBcHBTdGF0ZSA9IGdldERlZmF1bHRBcHBTdGF0ZSgpO1xuXG4gIGNvbnN0IHsgaW1hZ2VDYWNoZSB9ID0gYXdhaXQgdXBkYXRlSW1hZ2VDYWNoZSh7XG4gICAgaW1hZ2VDYWNoZTogbmV3IE1hcCgpLFxuICAgIGZpbGVJZHM6IGdldEluaXRpYWxpemVkSW1hZ2VFbGVtZW50cyhlbGVtZW50cykubWFwKFxuICAgICAgKGVsZW1lbnQpID0+IGVsZW1lbnQuZmlsZUlkLFxuICAgICksXG4gICAgZmlsZXMsXG4gIH0pO1xuXG4gIHJlbmRlclNjZW5lKHtcbiAgICBlbGVtZW50cyxcbiAgICBhcHBTdGF0ZSxcbiAgICBzY2FsZSxcbiAgICByYzogcm91Z2guY2FudmFzKGNhbnZhcyksXG4gICAgY2FudmFzLFxuICAgIHJlbmRlckNvbmZpZzoge1xuICAgICAgdmlld0JhY2tncm91bmRDb2xvcjogZXhwb3J0QmFja2dyb3VuZCA/IHZpZXdCYWNrZ3JvdW5kQ29sb3IgOiBudWxsLFxuICAgICAgc2Nyb2xsWDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgICAgc2Nyb2xsWTogLW1pblkgKyBleHBvcnRQYWRkaW5nLFxuICAgICAgem9vbTogZGVmYXVsdEFwcFN0YXRlLnpvb20sXG4gICAgICByZW1vdGVQb2ludGVyVmlld3BvcnRDb29yZHM6IHt9LFxuICAgICAgcmVtb3RlU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICAgIHNob3VsZENhY2hlSWdub3JlWm9vbTogZmFsc2UsXG4gICAgICByZW1vdGVQb2ludGVyVXNlcm5hbWVzOiB7fSxcbiAgICAgIHJlbW90ZVBvaW50ZXJVc2VyU3RhdGVzOiB7fSxcbiAgICAgIHRoZW1lOiBhcHBTdGF0ZS5leHBvcnRXaXRoRGFya01vZGUgPyBcImRhcmtcIiA6IFwibGlnaHRcIixcbiAgICAgIGltYWdlQ2FjaGUsXG4gICAgICByZW5kZXJTY3JvbGxiYXJzOiBmYWxzZSxcbiAgICAgIHJlbmRlclNlbGVjdGlvbjogZmFsc2UsXG4gICAgICByZW5kZXJHcmlkOiBmYWxzZSxcbiAgICAgIGlzRXhwb3J0aW5nOiB0cnVlLFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBjYW52YXM7XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0VG9TdmcgPSBhc3luYyAoXG4gIGVsZW1lbnRzOiByZWFkb25seSBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgYXBwU3RhdGU6IHtcbiAgICBleHBvcnRCYWNrZ3JvdW5kOiBib29sZWFuO1xuICAgIGV4cG9ydFBhZGRpbmc/OiBudW1iZXI7XG4gICAgZXhwb3J0U2NhbGU/OiBudW1iZXI7XG4gICAgdmlld0JhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIGV4cG9ydFdpdGhEYXJrTW9kZT86IGJvb2xlYW47XG4gICAgZXhwb3J0RW1iZWRTY2VuZT86IGJvb2xlYW47XG4gIH0sXG4gIGZpbGVzOiBCaW5hcnlGaWxlcyB8IG51bGwsXG4gIG9wdHM/OiB7XG4gICAgc2VyaWFsaXplQXNKU09OPzogKCkgPT4gc3RyaW5nO1xuICB9LFxuKTogUHJvbWlzZTxTVkdTVkdFbGVtZW50PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICAgIGV4cG9ydFNjYWxlID0gMSxcbiAgICBleHBvcnRFbWJlZFNjZW5lLFxuICB9ID0gYXBwU3RhdGU7XG4gIGxldCBtZXRhZGF0YSA9IFwiXCI7XG4gIGlmIChleHBvcnRFbWJlZFNjZW5lKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1ldGFkYXRhID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJpbWFnZVwiICovIFwiLi4vLi4vc3JjL2RhdGEvaW1hZ2VcIilcbiAgICAgICkuZW5jb2RlU3ZnTWV0YWRhdGEoe1xuICAgICAgICB0ZXh0OiBvcHRzPy5zZXJpYWxpemVBc0pTT05cbiAgICAgICAgICA/IG9wdHM/LnNlcmlhbGl6ZUFzSlNPTj8uKClcbiAgICAgICAgICA6IHNlcmlhbGl6ZUFzSlNPTihlbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzIHx8IHt9LCBcImxvY2FsXCIpLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG4gIGNvbnN0IFttaW5YLCBtaW5ZLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpO1xuXG4gIC8vIGluaXRpYWxpemUgU1ZHIHJvb3RcbiAgY29uc3Qgc3ZnUm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTlMsIFwic3ZnXCIpO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcInZlcnNpb25cIiwgXCIxLjFcIik7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwieG1sbnNcIiwgU1ZHX05TKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJ2aWV3Qm94XCIsIGAwIDAgJHt3aWR0aH0gJHtoZWlnaHR9YCk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgYCR7d2lkdGggKiBleHBvcnRTY2FsZX1gKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgYCR7aGVpZ2h0ICogZXhwb3J0U2NhbGV9YCk7XG4gIGlmIChhcHBTdGF0ZS5leHBvcnRXaXRoRGFya01vZGUpIHtcbiAgICBzdmdSb290LnNldEF0dHJpYnV0ZShcImZpbHRlclwiLCBUSEVNRV9GSUxURVIpO1xuICB9XG5cbiAgbGV0IGFzc2V0UGF0aCA9IFwiaHR0cHM6Ly9leGNhbGlkcmF3LmNvbS9cIjtcblxuICAvLyBBc3NldCBwYXRoIG5lZWRzIHRvIGJlIGRldGVybWluZWQgb25seSB3aGVuIHVzaW5nIHBhY2thZ2VcbiAgaWYgKHByb2Nlc3MuZW52LklTX0VYQ0FMSURSQVdfTlBNX1BBQ0tBR0UpIHtcbiAgICBhc3NldFBhdGggPVxuICAgICAgd2luZG93LkVYQ0FMSURSQVdfQVNTRVRfUEFUSCB8fFxuICAgICAgYGh0dHBzOi8vdW5wa2cuY29tLyR7cHJvY2Vzcy5lbnYuUEtHX05BTUV9QCR7cHJvY2Vzcy5lbnYuUEtHX1ZFUlNJT059YDtcblxuICAgIGlmIChhc3NldFBhdGg/LnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICBhc3NldFBhdGggPSBhc3NldFBhdGgucmVwbGFjZShcIi9cIiwgYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYCk7XG4gICAgfVxuICAgIGFzc2V0UGF0aCA9IGAke2Fzc2V0UGF0aH0vZGlzdC9leGNhbGlkcmF3LWFzc2V0cy9gO1xuICB9XG4gIHN2Z1Jvb3QuaW5uZXJIVE1MID0gYFxuICAke1NWR19FWFBPUlRfVEFHfVxuICAke21ldGFkYXRhfVxuICA8ZGVmcz5cbiAgICA8c3R5bGUgY2xhc3M9XCJzdHlsZS1mb250c1wiPlxuICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlZpcmdpbFwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofVZpcmdpbC53b2ZmMlwiKTtcbiAgICAgIH1cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJDYXNjYWRpYVwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofUNhc2NhZGlhLndvZmYyXCIpO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvZGVmcz5cbiAgYDtcbiAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxuICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XG4gICAgY29uc3QgcmVjdCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudCEuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgXCJyZWN0XCIpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJ5XCIsIFwiMFwiKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcImZpbGxcIiwgdmlld0JhY2tncm91bmRDb2xvcik7XG4gICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChyZWN0KTtcbiAgfVxuXG4gIGNvbnN0IHJzdmcgPSByb3VnaC5zdmcoc3ZnUm9vdCk7XG4gIHJlbmRlclNjZW5lVG9TdmcoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzIHx8IHt9LCB7XG4gICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgIG9mZnNldFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICBleHBvcnRXaXRoRGFya01vZGU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHN2Z1Jvb3Q7XG59O1xuXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXG5jb25zdCBnZXRDYW52YXNTaXplID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGV4cG9ydFBhZGRpbmc6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgY29uc3Qgd2lkdGggPSBkaXN0YW5jZShtaW5YLCBtYXhYKSArIGV4cG9ydFBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBkaXN0YW5jZShtaW5ZLCBtYXhZKSArIGV4cG9ydFBhZGRpbmcgKyBleHBvcnRQYWRkaW5nO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0U2l6ZSA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBleHBvcnRQYWRkaW5nOiBudW1iZXIsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgWywgLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpLm1hcChcbiAgICAoZGltZW5zaW9uKSA9PiBNYXRoLnRydW5jKGRpbWVuc2lvbiAqIHNjYWxlKSxcbiAgKTtcblxuICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../scene/export.ts\n");
4597
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SVG_EXPORT_TAG\": () => (/* binding */ SVG_EXPORT_TAG),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getExportSize\": () => (/* binding */ getExportSize)\n/* harmony export */ });\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _element_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element/bounds */ \"../../element/bounds.ts\");\n/* harmony import */ var _renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderScene */ \"../../renderer/renderScene.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _element_image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../element/image */ \"../../element/image.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nconst SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;\nconst exportToCanvas = (elements, appState, files, { exportBackground, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, }, createCanvas = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n const { canvas, scale = 1 } = createCanvas(width, height);\n const defaultAppState = (0,_appState__WEBPACK_IMPORTED_MODULE_5__.getDefaultAppState)();\n const { imageCache } = yield (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.updateImageCache)({\n imageCache: new Map(),\n fileIds: (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.getInitializedImageElements)(elements).map((element) => element.fileId),\n files,\n });\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderScene)({\n elements,\n appState,\n scale,\n rc: roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].canvas(canvas),\n canvas,\n renderConfig: {\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n remotePointerViewportCoords: {},\n remoteSelectedElementIds: {},\n shouldCacheIgnoreZoom: false,\n remotePointerUsernames: {},\n remotePointerUserStates: {},\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n imageCache,\n renderScrollbars: false,\n renderSelection: false,\n renderGrid: false,\n isExporting: true,\n },\n });\n return canvas;\n});\nconst exportToSvg = (elements, appState, files, opts) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n const { exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, exportScale = 1, exportEmbedScene, } = appState;\n let metadata = \"\";\n if (exportEmbedScene) {\n try {\n metadata = yield (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../../src/data/image */ \"../../data/image.ts\"))).encodeSvgMetadata({\n text: (opts === null || opts === void 0 ? void 0 : opts.serializeAsJSON)\n ? (_a = opts === null || opts === void 0 ? void 0 : opts.serializeAsJSON) === null || _a === void 0 ? void 0 : _a.call(opts)\n : (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(elements, appState, files || {}, \"local\"),\n });\n }\n catch (error) {\n console.error(error);\n }\n }\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n // initialize SVG root\n const svgRoot = document.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", _constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (appState.exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", _constants__WEBPACK_IMPORTED_MODULE_4__.THEME_FILTER);\n }\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (true) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.15.2-6546-5841e6a\"}`;\n if (assetPath === null || assetPath === void 0 ? void 0 : assetPath.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n <defs>\n <style class=\"style-fonts\">\n @font-face {\n font-family: \"Virgil\";\n src: url(\"${assetPath}Virgil.woff2\");\n }\n @font-face {\n font-family: \"Cascadia\";\n src: url(\"${assetPath}Cascadia.woff2\");\n }\n </style>\n </defs>\n `;\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n const rsvg = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].svg(svgRoot);\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderSceneToSvg)(elements, rsvg, svgRoot, files || {}, {\n offsetX: -minX + exportPadding,\n offsetY: -minY + exportPadding,\n exportWithDarkMode: appState.exportWithDarkMode,\n });\n return svgRoot;\n});\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (elements, exportPadding) => {\n const [minX, minY, maxX, maxY] = (0,_element_bounds__WEBPACK_IMPORTED_MODULE_1__.getCommonBounds)(elements);\n const width = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minX, maxX) + exportPadding * 2;\n const height = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minY, maxY) + exportPadding + exportPadding;\n return [minX, minY, width, height];\n};\nconst getExportSize = (elements, exportPadding, scale) => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map((dimension) => Math.trunc(dimension * scale));\n return [width, height];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUM3QyxDQUFDO0lBRUYsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc2NlbmUvZXhwb3J0LnRzPzliZjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJvdWdoIGZyb20gXCJyb3VnaGpzL2Jpbi9yb3VnaFwiO1xuaW1wb3J0IHsgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50IH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IGdldENvbW1vbkJvdW5kcyB9IGZyb20gXCIuLi9lbGVtZW50L2JvdW5kc1wiO1xuaW1wb3J0IHsgcmVuZGVyU2NlbmUsIHJlbmRlclNjZW5lVG9TdmcgfSBmcm9tIFwiLi4vcmVuZGVyZXIvcmVuZGVyU2NlbmVcIjtcbmltcG9ydCB7IGRpc3RhbmNlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBBcHBTdGF0ZSwgQmluYXJ5RmlsZXMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IERFRkFVTFRfRVhQT1JUX1BBRERJTkcsIFNWR19OUywgVEhFTUVfRklMVEVSIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEFwcFN0YXRlIH0gZnJvbSBcIi4uL2FwcFN0YXRlXCI7XG5pbXBvcnQgeyBzZXJpYWxpemVBc0pTT04gfSBmcm9tIFwiLi4vZGF0YS9qc29uXCI7XG5pbXBvcnQge1xuICBnZXRJbml0aWFsaXplZEltYWdlRWxlbWVudHMsXG4gIHVwZGF0ZUltYWdlQ2FjaGUsXG59IGZyb20gXCIuLi9lbGVtZW50L2ltYWdlXCI7XG5cbmV4cG9ydCBjb25zdCBTVkdfRVhQT1JUX1RBRyA9IGA8IS0tIHN2Zy1zb3VyY2U6ZXhjYWxpZHJhdyAtLT5gO1xuXG5leHBvcnQgY29uc3QgZXhwb3J0VG9DYW52YXMgPSBhc3luYyAoXG4gIGVsZW1lbnRzOiByZWFkb25seSBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgYXBwU3RhdGU6IEFwcFN0YXRlLFxuICBmaWxlczogQmluYXJ5RmlsZXMsXG4gIHtcbiAgICBleHBvcnRCYWNrZ3JvdW5kLFxuICAgIGV4cG9ydFBhZGRpbmcgPSBERUZBVUxUX0VYUE9SVF9QQURESU5HLFxuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3IsXG4gIH06IHtcbiAgICBleHBvcnRCYWNrZ3JvdW5kOiBib29sZWFuO1xuICAgIGV4cG9ydFBhZGRpbmc/OiBudW1iZXI7XG4gICAgdmlld0JhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICB9LFxuICBjcmVhdGVDYW52YXM6IChcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIGhlaWdodDogbnVtYmVyLFxuICApID0+IHsgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudDsgc2NhbGU6IG51bWJlciB9ID0gKHdpZHRoLCBoZWlnaHQpID0+IHtcbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoICogYXBwU3RhdGUuZXhwb3J0U2NhbGU7XG4gICAgY2FudmFzLmhlaWdodCA9IGhlaWdodCAqIGFwcFN0YXRlLmV4cG9ydFNjYWxlO1xuICAgIHJldHVybiB7IGNhbnZhcywgc2NhbGU6IGFwcFN0YXRlLmV4cG9ydFNjYWxlIH07XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIHdpZHRoLCBoZWlnaHRdID0gZ2V0Q2FudmFzU2l6ZShlbGVtZW50cywgZXhwb3J0UGFkZGluZyk7XG5cbiAgY29uc3QgeyBjYW52YXMsIHNjYWxlID0gMSB9ID0gY3JlYXRlQ2FudmFzKHdpZHRoLCBoZWlnaHQpO1xuXG4gIGNvbnN0IGRlZmF1bHRBcHBTdGF0ZSA9IGdldERlZmF1bHRBcHBTdGF0ZSgpO1xuXG4gIGNvbnN0IHsgaW1hZ2VDYWNoZSB9ID0gYXdhaXQgdXBkYXRlSW1hZ2VDYWNoZSh7XG4gICAgaW1hZ2VDYWNoZTogbmV3IE1hcCgpLFxuICAgIGZpbGVJZHM6IGdldEluaXRpYWxpemVkSW1hZ2VFbGVtZW50cyhlbGVtZW50cykubWFwKFxuICAgICAgKGVsZW1lbnQpID0+IGVsZW1lbnQuZmlsZUlkLFxuICAgICksXG4gICAgZmlsZXMsXG4gIH0pO1xuXG4gIHJlbmRlclNjZW5lKHtcbiAgICBlbGVtZW50cyxcbiAgICBhcHBTdGF0ZSxcbiAgICBzY2FsZSxcbiAgICByYzogcm91Z2guY2FudmFzKGNhbnZhcyksXG4gICAgY2FudmFzLFxuICAgIHJlbmRlckNvbmZpZzoge1xuICAgICAgdmlld0JhY2tncm91bmRDb2xvcjogZXhwb3J0QmFja2dyb3VuZCA/IHZpZXdCYWNrZ3JvdW5kQ29sb3IgOiBudWxsLFxuICAgICAgc2Nyb2xsWDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgICAgc2Nyb2xsWTogLW1pblkgKyBleHBvcnRQYWRkaW5nLFxuICAgICAgem9vbTogZGVmYXVsdEFwcFN0YXRlLnpvb20sXG4gICAgICByZW1vdGVQb2ludGVyVmlld3BvcnRDb29yZHM6IHt9LFxuICAgICAgcmVtb3RlU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICAgIHNob3VsZENhY2hlSWdub3JlWm9vbTogZmFsc2UsXG4gICAgICByZW1vdGVQb2ludGVyVXNlcm5hbWVzOiB7fSxcbiAgICAgIHJlbW90ZVBvaW50ZXJVc2VyU3RhdGVzOiB7fSxcbiAgICAgIHRoZW1lOiBhcHBTdGF0ZS5leHBvcnRXaXRoRGFya01vZGUgPyBcImRhcmtcIiA6IFwibGlnaHRcIixcbiAgICAgIGltYWdlQ2FjaGUsXG4gICAgICByZW5kZXJTY3JvbGxiYXJzOiBmYWxzZSxcbiAgICAgIHJlbmRlclNlbGVjdGlvbjogZmFsc2UsXG4gICAgICByZW5kZXJHcmlkOiBmYWxzZSxcbiAgICAgIGlzRXhwb3J0aW5nOiB0cnVlLFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBjYW52YXM7XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0VG9TdmcgPSBhc3luYyAoXG4gIGVsZW1lbnRzOiByZWFkb25seSBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgYXBwU3RhdGU6IHtcbiAgICBleHBvcnRCYWNrZ3JvdW5kOiBib29sZWFuO1xuICAgIGV4cG9ydFBhZGRpbmc/OiBudW1iZXI7XG4gICAgZXhwb3J0U2NhbGU/OiBudW1iZXI7XG4gICAgdmlld0JhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIGV4cG9ydFdpdGhEYXJrTW9kZT86IGJvb2xlYW47XG4gICAgZXhwb3J0RW1iZWRTY2VuZT86IGJvb2xlYW47XG4gIH0sXG4gIGZpbGVzOiBCaW5hcnlGaWxlcyB8IG51bGwsXG4gIG9wdHM/OiB7XG4gICAgc2VyaWFsaXplQXNKU09OPzogKCkgPT4gc3RyaW5nO1xuICB9LFxuKTogUHJvbWlzZTxTVkdTVkdFbGVtZW50PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICAgIGV4cG9ydFNjYWxlID0gMSxcbiAgICBleHBvcnRFbWJlZFNjZW5lLFxuICB9ID0gYXBwU3RhdGU7XG4gIGxldCBtZXRhZGF0YSA9IFwiXCI7XG4gIGlmIChleHBvcnRFbWJlZFNjZW5lKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1ldGFkYXRhID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJpbWFnZVwiICovIFwiLi4vLi4vc3JjL2RhdGEvaW1hZ2VcIilcbiAgICAgICkuZW5jb2RlU3ZnTWV0YWRhdGEoe1xuICAgICAgICB0ZXh0OiBvcHRzPy5zZXJpYWxpemVBc0pTT05cbiAgICAgICAgICA/IG9wdHM/LnNlcmlhbGl6ZUFzSlNPTj8uKClcbiAgICAgICAgICA6IHNlcmlhbGl6ZUFzSlNPTihlbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzIHx8IHt9LCBcImxvY2FsXCIpLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG4gIGNvbnN0IFttaW5YLCBtaW5ZLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpO1xuXG4gIC8vIGluaXRpYWxpemUgU1ZHIHJvb3RcbiAgY29uc3Qgc3ZnUm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTlMsIFwic3ZnXCIpO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcInZlcnNpb25cIiwgXCIxLjFcIik7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwieG1sbnNcIiwgU1ZHX05TKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJ2aWV3Qm94XCIsIGAwIDAgJHt3aWR0aH0gJHtoZWlnaHR9YCk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgYCR7d2lkdGggKiBleHBvcnRTY2FsZX1gKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgYCR7aGVpZ2h0ICogZXhwb3J0U2NhbGV9YCk7XG4gIGlmIChhcHBTdGF0ZS5leHBvcnRXaXRoRGFya01vZGUpIHtcbiAgICBzdmdSb290LnNldEF0dHJpYnV0ZShcImZpbHRlclwiLCBUSEVNRV9GSUxURVIpO1xuICB9XG5cbiAgbGV0IGFzc2V0UGF0aCA9IFwiaHR0cHM6Ly9leGNhbGlkcmF3LmNvbS9cIjtcblxuICAvLyBBc3NldCBwYXRoIG5lZWRzIHRvIGJlIGRldGVybWluZWQgb25seSB3aGVuIHVzaW5nIHBhY2thZ2VcbiAgaWYgKHByb2Nlc3MuZW52LklTX0VYQ0FMSURSQVdfTlBNX1BBQ0tBR0UpIHtcbiAgICBhc3NldFBhdGggPVxuICAgICAgd2luZG93LkVYQ0FMSURSQVdfQVNTRVRfUEFUSCB8fFxuICAgICAgYGh0dHBzOi8vdW5wa2cuY29tLyR7cHJvY2Vzcy5lbnYuUEtHX05BTUV9QCR7cHJvY2Vzcy5lbnYuUEtHX1ZFUlNJT059YDtcblxuICAgIGlmIChhc3NldFBhdGg/LnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICBhc3NldFBhdGggPSBhc3NldFBhdGgucmVwbGFjZShcIi9cIiwgYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYCk7XG4gICAgfVxuICAgIGFzc2V0UGF0aCA9IGAke2Fzc2V0UGF0aH0vZGlzdC9leGNhbGlkcmF3LWFzc2V0cy9gO1xuICB9XG4gIHN2Z1Jvb3QuaW5uZXJIVE1MID0gYFxuICAke1NWR19FWFBPUlRfVEFHfVxuICAke21ldGFkYXRhfVxuICA8ZGVmcz5cbiAgICA8c3R5bGUgY2xhc3M9XCJzdHlsZS1mb250c1wiPlxuICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlZpcmdpbFwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofVZpcmdpbC53b2ZmMlwiKTtcbiAgICAgIH1cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJDYXNjYWRpYVwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofUNhc2NhZGlhLndvZmYyXCIpO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvZGVmcz5cbiAgYDtcbiAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxuICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XG4gICAgY29uc3QgcmVjdCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudCEuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgXCJyZWN0XCIpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJ5XCIsIFwiMFwiKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcImZpbGxcIiwgdmlld0JhY2tncm91bmRDb2xvcik7XG4gICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChyZWN0KTtcbiAgfVxuXG4gIGNvbnN0IHJzdmcgPSByb3VnaC5zdmcoc3ZnUm9vdCk7XG4gIHJlbmRlclNjZW5lVG9TdmcoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzIHx8IHt9LCB7XG4gICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgIG9mZnNldFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICBleHBvcnRXaXRoRGFya01vZGU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHN2Z1Jvb3Q7XG59O1xuXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXG5jb25zdCBnZXRDYW52YXNTaXplID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGV4cG9ydFBhZGRpbmc6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgY29uc3Qgd2lkdGggPSBkaXN0YW5jZShtaW5YLCBtYXhYKSArIGV4cG9ydFBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBkaXN0YW5jZShtaW5ZLCBtYXhZKSArIGV4cG9ydFBhZGRpbmcgKyBleHBvcnRQYWRkaW5nO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0U2l6ZSA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBleHBvcnRQYWRkaW5nOiBudW1iZXIsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgWywgLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpLm1hcChcbiAgICAoZGltZW5zaW9uKSA9PiBNYXRoLnRydW5jKGRpbWVuc2lvbiAqIHNjYWxlKSxcbiAgKTtcblxuICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../scene/export.ts\n");
4598
4598
 
4599
4599
  /***/ }),
4600
4600