integration-modules 0.1.14 → 0.1.15

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.
Files changed (34) hide show
  1. package/dist/chunks/EmojiBoardWidget-qFIIWsdw.js +274 -0
  2. package/dist/chunks/EmojiBoardWidget-qFIIWsdw.js.map +1 -0
  3. package/dist/chunks/EmojiBoardWidget-uWxNQwpF.js +2 -0
  4. package/dist/chunks/EmojiBoardWidget-uWxNQwpF.js.map +1 -0
  5. package/dist/chunks/ShapeBoardWidget-CYvTmNUV.js +2 -0
  6. package/dist/chunks/ShapeBoardWidget-CYvTmNUV.js.map +1 -0
  7. package/dist/chunks/ShapeBoardWidget-ChVcXBBP.js +1312 -0
  8. package/dist/chunks/ShapeBoardWidget-ChVcXBBP.js.map +1 -0
  9. package/dist/chunks/constants-D-rHISmr.js +23 -0
  10. package/dist/chunks/constants-D-rHISmr.js.map +1 -0
  11. package/dist/chunks/constants-pVjh1MjZ.js +612 -0
  12. package/dist/chunks/constants-pVjh1MjZ.js.map +1 -0
  13. package/dist/emoji/index.cjs +1 -1
  14. package/dist/emoji/index.js +2 -2
  15. package/dist/index.cjs +36 -1
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.mjs +17729 -85
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/integration-modules.css +1 -1
  20. package/dist/shape/index.cjs +1 -1
  21. package/dist/shape/index.js +1 -1
  22. package/package.json +1 -1
  23. package/dist/chunks/Board-CENI1zTY.js +0 -19484
  24. package/dist/chunks/Board-CENI1zTY.js.map +0 -1
  25. package/dist/chunks/Board-DBlzUx0o.js +0 -58
  26. package/dist/chunks/Board-DBlzUx0o.js.map +0 -1
  27. package/dist/chunks/EmojiBoardWidget-94JjolG3.js +0 -197
  28. package/dist/chunks/EmojiBoardWidget-94JjolG3.js.map +0 -1
  29. package/dist/chunks/EmojiBoardWidget-jQpQl320.js +0 -2
  30. package/dist/chunks/EmojiBoardWidget-jQpQl320.js.map +0 -1
  31. package/dist/chunks/ShapeBoardWidget-C9nNKwtj.js +0 -157
  32. package/dist/chunks/ShapeBoardWidget-C9nNKwtj.js.map +0 -1
  33. package/dist/chunks/ShapeBoardWidget-D1TcdWRO.js +0 -2
  34. package/dist/chunks/ShapeBoardWidget-D1TcdWRO.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShapeBoardWidget-ChVcXBBP.js","sources":["../../src/features/shape/constants.jsx","../../src/shared/api/shapesApi.js","../../src/features/shape/ui/shapes.jsx","../../node_modules/d3-selection/src/namespaces.js","../../node_modules/d3-selection/src/namespace.js","../../node_modules/d3-selection/src/creator.js","../../node_modules/d3-selection/src/selector.js","../../node_modules/d3-selection/src/selection/select.js","../../node_modules/d3-selection/src/array.js","../../node_modules/d3-selection/src/selectorAll.js","../../node_modules/d3-selection/src/selection/selectAll.js","../../node_modules/d3-selection/src/matcher.js","../../node_modules/d3-selection/src/selection/selectChild.js","../../node_modules/d3-selection/src/selection/selectChildren.js","../../node_modules/d3-selection/src/selection/filter.js","../../node_modules/d3-selection/src/selection/sparse.js","../../node_modules/d3-selection/src/selection/enter.js","../../node_modules/d3-selection/src/constant.js","../../node_modules/d3-selection/src/selection/data.js","../../node_modules/d3-selection/src/selection/exit.js","../../node_modules/d3-selection/src/selection/join.js","../../node_modules/d3-selection/src/selection/merge.js","../../node_modules/d3-selection/src/selection/order.js","../../node_modules/d3-selection/src/selection/sort.js","../../node_modules/d3-selection/src/selection/call.js","../../node_modules/d3-selection/src/selection/nodes.js","../../node_modules/d3-selection/src/selection/node.js","../../node_modules/d3-selection/src/selection/size.js","../../node_modules/d3-selection/src/selection/empty.js","../../node_modules/d3-selection/src/selection/each.js","../../node_modules/d3-selection/src/selection/attr.js","../../node_modules/d3-selection/src/window.js","../../node_modules/d3-selection/src/selection/style.js","../../node_modules/d3-selection/src/selection/property.js","../../node_modules/d3-selection/src/selection/classed.js","../../node_modules/d3-selection/src/selection/text.js","../../node_modules/d3-selection/src/selection/html.js","../../node_modules/d3-selection/src/selection/raise.js","../../node_modules/d3-selection/src/selection/lower.js","../../node_modules/d3-selection/src/selection/append.js","../../node_modules/d3-selection/src/selection/insert.js","../../node_modules/d3-selection/src/selection/remove.js","../../node_modules/d3-selection/src/selection/clone.js","../../node_modules/d3-selection/src/selection/datum.js","../../node_modules/d3-selection/src/selection/on.js","../../node_modules/d3-selection/src/selection/dispatch.js","../../node_modules/d3-selection/src/selection/iterator.js","../../node_modules/d3-selection/src/selection/index.js","../../node_modules/d3-selection/src/select.js","../../node_modules/d3-selection/src/sourceEvent.js","../../node_modules/d3-selection/src/pointer.js","../../src/assets/revert.svg","../../node_modules/d3-dispatch/src/dispatch.js","../../node_modules/d3-drag/src/noevent.js","../../node_modules/d3-drag/src/nodrag.js","../../node_modules/d3-drag/src/constant.js","../../node_modules/d3-drag/src/event.js","../../node_modules/d3-drag/src/drag.js","../../src/features/shape/ui/ShapeNode.jsx","../../src/components/shapeIcons.jsx","../../src/assets/shape_add.svg","../../src/assets/shape_add_active.svg","../../src/components/ShapeToolbar.jsx","../../src/features/shape/public/shapeNodeTypes.js","../../src/widgets/ShapeBoardWidget.jsx"],"sourcesContent":["export const SHAPES = [\r\n { id: \"line\", name: \"Линия\", defaultSize: { width: 80, height: 20 } },\r\n { id: 'arrow', name: 'Стрелка', defaultSize: { width: 180, height: 60 } },\r\n { id: 'dblarrow', name: 'Двойная стрелка', defaultSize: { width: 200, height: 60 } },\r\n { id: 'square', name: 'Квадрат', defaultSize: { width: 140, height: 140 } },\r\n { id: 'circle', name: 'Круг', defaultSize: { width: 140, height: 140 } },\r\n { id: 'triangle', name: 'Треугольник', defaultSize: { width: 160, height: 150 } },\r\n { id: 'star', name: 'Звезда', defaultSize: { width: 160, height: 160 } },\r\n { id: 'parallelogram', name: 'Параллелограмм', defaultSize: { width: 200, height: 120 } },\r\n { id: 'stick', name: 'Палка', defaultSize: { width: 20, height: 160 } },\r\n { id: 'roundedRect', name: 'Скруглённый прямоугольник', defaultSize: { width: 160, height: 100 } },\r\n { id: 'capsule', name: 'Капсула', defaultSize: { width: 160, height: 60 } },\r\n { id: 'pentagon', name: 'Пятиугольник', defaultSize: { width: 140, height: 140 } },\r\n { id: 'chevron', name: 'Галка', defaultSize: { width: 160, height: 80 } },\r\n { id: 'table3x3', name: 'Таблица 3×3', defaultSize: { width: 180, height: 180 } },\r\n { id: 'pyramid', name: 'Пирамида', defaultSize: { width: 160, height: 160 } },\r\n { id: 'circleArrow', name: 'Круг со стрелкой', defaultSize: { width: 140, height: 140 } },\r\n { id: 'table3x3LeftMerge', name: 'Таблица 3×3', defaultSize: { width: 180, height: 180 } },\r\n];\r\n","async function parseError(res) {\r\n const text = await res.text()\r\n return text || `HTTP ${res.status}`\r\n}\r\n\r\nexport const shapesApi = {\r\n async getAll() {\r\n const res = await fetch('/api/v1/shapes/get-all')\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n const items = await res.json()\r\n if (!Array.isArray(items)) {\r\n return []\r\n }\r\n\r\n return items\r\n },\r\n\r\n async getById(id) {\r\n const res = await fetch(`/api/v1/shapes/${id}`)\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async addToBoard(shapeId, width, height, rotation) {\r\n const res = await fetch('/api/v1/shapes/board', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ shapeId, width, height, rotation })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async getBoard() {\r\n const res = await fetch('/api/v1/shapes/board')\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n const items = await res.json()\r\n if (!Array.isArray(items)) {\r\n return []\r\n }\r\n\r\n return items\r\n },\r\n\r\n async getBoardById(id) {\r\n const res = await fetch(`/api/v1/shapes/board/${id}`)\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async updateBoardTransform(id, width, height, rotation) {\r\n const res = await fetch(`/api/v1/shapes/board/${id}/transform`, {\r\n method: 'PATCH',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ width, height, rotation })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n async delete(id) {\r\n const res = await fetch(`/api/v1/shapes/${id}`, { method: 'DELETE' })\r\n if (!res.ok) throw new Error(await parseError(res))\r\n return true\r\n }\r\n\r\n}\r\n","export const shapes = {\r\n line: ({ stroke, sw = 2 }) => (\r\n <line x1=\"0\" y1=\"50%\" x2=\"100%\" y2=\"50%\" stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n\r\n arrow: ({ stroke, sw = 2 }) => (\r\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 100 100\">\r\n <defs>\r\n <marker\r\n id=\"arrowhead-end\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n refX=\"10\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <polygon points=\"0 0, 10 5, 0 10\" fill={stroke || \"#000\"} />\r\n </marker>\r\n </defs>\r\n <line\r\n x1=\"0\"\r\n y1=\"50\"\r\n x2=\"100\"\r\n y2=\"50\"\r\n stroke={stroke || \"#000\"}\r\n strokeWidth={sw}\r\n markerEnd=\"url(#arrowhead-end)\"\r\n vectorEffect=\"non-scaling-stroke\"\r\n />\r\n </svg>\r\n ),\r\n\r\n dblarrow: ({ stroke, sw = 2 }) => (\r\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 100 100\">\r\n <defs>\r\n <marker\r\n id=\"arrowhead-end\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n refX=\"10\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <polygon points=\"0 0, 10 5, 0 10\" fill={stroke || \"#000\"} />\r\n </marker>\r\n <marker\r\n id=\"arrowhead-start\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n refX=\"0\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <polygon points=\"10 0, 0 5, 10 10\" fill={stroke || \"#000\"} />\r\n </marker>\r\n </defs>\r\n <line\r\n x1=\"0\"\r\n y1=\"50\"\r\n x2=\"100\"\r\n y2=\"50\"\r\n stroke={stroke || \"#000\"}\r\n strokeWidth={sw}\r\n markerStart=\"url(#arrowhead-start)\"\r\n markerEnd=\"url(#arrowhead-end)\"\r\n vectorEffect=\"non-scaling-stroke\"\r\n />\r\n </svg>\r\n ),\r\n\r\n square: ({ fill, stroke, sw = 2 }) => (\r\n <rect width=\"100%\" height=\"100%\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n\r\n circle: ({ fill, stroke, sw = 2 }) => (\r\n <ellipse cx=\"50%\" cy=\"50%\" rx=\"50%\" ry=\"50%\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n\r\n triangle: ({ fill, stroke, sw = 2 }) => (\r\n <polygon points=\"50,0 100,100 0,100\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n\r\n star: ({ fill, stroke, sw = 2 }) => (\r\n <polygon points=\"50,0 61,35 98,35 68,57 79,91 50,70 21,91 32,57 2,35 39,35\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n\r\n parallelogram: ({ fill, stroke, sw = 2 }) => (\r\n <polygon points=\"20,0 100,0 80,100 0,100\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n\r\n roundedRect: ({ fill, stroke, sw = 2 }) => (\r\n <rect width=\"100%\" height=\"100%\" rx=\"20\" ry=\"20\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n\r\n capsule: ({ fill, stroke, sw = 2 }) => (\r\n <rect width=\"100%\" height=\"100%\" rx=\"50\" ry=\"50\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n\r\n pentagon: ({ fill, stroke, sw = 2 }) => (\r\n <polygon points=\"50,0 100,38 82,100 18,100 0,38\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n ),\r\n chevron: ({ stroke, sw = 2 }) => (\r\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 100 100\">\r\n <polyline points=\"0,0 50,100 100,0\" fill=\"none\" stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\" />\r\n </svg>\r\n ),\r\n\r\n table3x3: ({ fill, stroke, sw = 2, innerSw = 1 }) => (\r\n <>\r\n <rect width=\"100%\" height=\"100%\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\"/>\r\n <line x1=\"0\" y1=\"33%\" x2=\"100%\" y2=\"33%\" stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n <line x1=\"0\" y1=\"66%\" x2=\"100%\" y2=\"66%\" stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n <line x1=\"33%\" y1=\"0\" x2=\"33%\" y2=\"100%\" stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n <line x1=\"66%\" y1=\"0\" x2=\"66%\" y2=\"100%\" stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n </>\r\n ),\r\n\r\n table3x3LeftMerge: ({ fill, stroke, sw = 2, innerSw = 1 }) => (\r\n <>\r\n <rect width=\"100%\" height=\"100%\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\"/>\r\n <line x1=\"33%\" y1=\"0\" x2=\"33%\" y2=\"100%\" stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n <line x1=\"66%\" y1=\"0\" x2=\"66%\" y2=\"100%\" stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n <line x1=\"33%\" y1=\"33%\" x2=\"100%\" y2=\"33%\" stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n <line x1=\"33%\" y1=\"66%\" x2=\"100%\" y2=\"66%\" stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n </>\r\n ),\r\n\r\n pyramid: ({ fill, stroke, sw = 2, innerSw = 1 }) => (\r\n <>\r\n <polygon points=\"50,0 100,100 0,100\" fill={fill || \"transparent\"} stroke={stroke || \"#000\"} strokeWidth={sw} vectorEffect=\"non-scaling-stroke\"/>\r\n {[0.2, 0.4, 0.6, 0.8].map((t, idx) => (\r\n <line key={idx} x1={50 - 50*t} y1={t*100} x2={50 + 50*t} y2={t*100} stroke={stroke || \"#000\"} strokeWidth={innerSw} vectorEffect=\"non-scaling-stroke\"/>\r\n ))}\r\n </>\r\n ),\r\n\r\n circleArrow: ({ fill, stroke, sw = 2 }) => (\r\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 -30 100 130\" preserveAspectRatio=\"xMidYMid meet\">\r\n <defs>\r\n <marker\r\n id=\"arrowhead-circle\"\r\n markerWidth=\"8\"\r\n markerHeight=\"8\"\r\n refX=\"4\"\r\n refY=\"4\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <polygon points=\"0 0, 8 4, 0 8\" fill={stroke || \"#000\"} />\r\n </marker>\r\n </defs>\r\n\r\n <circle\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"48\"\r\n fill={fill || \"transparent\"}\r\n stroke={stroke || \"#000\"}\r\n strokeWidth={sw}\r\n vectorEffect=\"non-scaling-stroke\"\r\n />\r\n\r\n <line\r\n x1=\"50\"\r\n y1=\"2\"\r\n x2=\"50\"\r\n y2=\"-20\"\r\n stroke={stroke || \"#000\"}\r\n strokeWidth={sw}\r\n markerEnd=\"url(#arrowhead-circle)\"\r\n vectorEffect=\"non-scaling-stroke\"\r\n />\r\n </svg>\r\n )\r\n};","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0.75%200.75V6.75M0.75%206.75H6.75M0.75%206.75C3.07744%204.66141%205.23287%202.29676%208.49532%201.83779C10.4277%201.56593%2012.3961%201.92941%2014.1039%202.87343C15.8117%203.81746%2017.1664%205.29091%2017.9639%207.07177M18.75%2018.75V12.75M18.75%2012.75H12.75M18.75%2012.75C16.4225%2014.8386%2014.2671%2017.2032%2011.0047%2017.6622C9.07229%2017.9341%207.10391%2017.5706%205.3961%2016.6266C3.68829%2015.6825%202.33356%2014.2091%201.53604%2012.4282'%20stroke='%233367d9'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","// ShapeNode.jsx\r\nimport React, { useMemo, useRef, useEffect, useState } from 'react'\r\nimport { NodeResizer, useReactFlow, Handle, Position } from '@xyflow/react'\r\nimport { useStickersStore } from '../../../entities/stickers/model/useStickersStore.js'\r\nimport { shapes } from './shapes.jsx'\r\nimport '@xyflow/react/dist/style.css'\r\nimport { select } from 'd3-selection'\r\nimport revertIcon from '../../../assets/revert.svg'\r\nimport { drag } from 'd3-drag'\r\nimport { shapesApi } from '../../../shared/api/shapesApi'\r\n\r\nexport const ShapeNode = ({ id, data, style, shapeOpen }) => {\r\n const sticker = useStickersStore(s =>\r\n s.stickers.find(st => st.id === data.stickerId)\r\n )\r\n\r\n const updateSticker = useStickersStore(s => s.updateSticker)\r\n const bringToFront = useStickersStore(s => s.bringToFront)\r\n const selectSticker = useStickersStore(s => s.selectSticker)\r\n const selectedId = useStickersStore(s => s.selectedId)\r\n const { setNodes } = useReactFlow()\r\n const rotateControlRef = useRef(null)\r\n const rotationRef = useRef(0)\r\n const sizeRef = useRef({ width: 0, height: 0 })\r\n const [rotation, setRotation] = useState(0)\r\n const [localSize, setLocalSize] = useState({ width: 140, height: 140 })\r\n const [isRotating, setIsRotating] = useState(false)\r\n\r\n const isSelected = selectedId === sticker?.id\r\n\r\n useEffect(() => {\r\n if (!sticker) return\r\n const w = Number(sticker.width) || 140\r\n const h = Number(sticker.height) || 140\r\n const r = Number(sticker.rotation) || 0\r\n\r\n setLocalSize({ width: w, height: h })\r\n sizeRef.current = { width: w, height: h }\r\n\r\n rotationRef.current = r\r\n setRotation(r)\r\n }, [sticker])\r\n\r\n useEffect(() => {\r\n rotationRef.current = rotation\r\n }, [rotation])\r\n\r\n useEffect(() => {\r\n if (!sticker || !isSelected) return\r\n\r\n const el = rotateControlRef.current\r\n if (!el) return\r\n\r\n const selection = select(el)\r\n\r\n const dragHandler = drag()\r\n .on('start', evt => {\r\n evt.sourceEvent?.stopPropagation?.()\r\n setIsRotating(true)\r\n })\r\n .on('drag', evt => {\r\n const parent = evt.sourceEvent?.target?.parentElement\r\n if (!parent) return\r\n\r\n const rect = parent.getBoundingClientRect()\r\n const cx = rect.left + rect.width / 2\r\n const cy = rect.top + rect.height / 2\r\n\r\n const dx = evt.sourceEvent.clientX - cx\r\n const dy = evt.sourceEvent.clientY - cy\r\n\r\n const rad = Math.atan2(dy, dx)\r\n const deg = rad * (180 / Math.PI) + 90\r\n\r\n rotationRef.current = deg\r\n setRotation(deg)\r\n })\r\n .on('end', () => {\r\n setIsRotating(false)\r\n const rot = Number(rotationRef.current) || 0\r\n updateSticker(sticker.id, { rotation: rot })\r\n })\r\n\r\n selection.call(dragHandler)\r\n\r\n return () => selection.on('.drag', null)\r\n }, [isSelected, sticker, updateSticker])\r\n\r\n const renderShape = useMemo(() => {\r\n if (!sticker) return null\r\n const fn = shapes[sticker.shapeId]\r\n return fn ? fn(sticker) : shapes.square(sticker)\r\n }, [sticker])\r\n\r\n const handleClick = e => {\r\n e.stopPropagation()\r\n if (!sticker) return\r\n bringToFront(sticker.id)\r\n selectSticker(sticker.id)\r\n }\r\n\r\n if (!sticker) return null\r\n\r\n return (\r\n <>\r\n <div\r\n onClick={handleClick}\r\n style={{\r\n ...style,\r\n position: 'relative',\r\n zIndex: sticker.zIndex,\r\n cursor: isRotating ? 'grabbing' : 'grab',\r\n width: localSize.width,\r\n height: localSize.height,\r\n transform: `rotate(${rotation}deg)`,\r\n transformOrigin: '50% 50%',\r\n pointerEvents: 'auto',\r\n }}\r\n data-drag-disabled={isRotating}\r\n >\r\n <NodeResizer\r\n isVisible={isSelected}\r\n minWidth={30}\r\n minHeight={30}\r\n resizeHandles={['top', 'right', 'bottom', 'left', 'topRight', 'topLeft', 'bottomRight', 'bottomLeft']}\r\n onResize={(_, params) => {\r\n const w = Number(params.width) || 1\r\n const h = Number(params.height) || 1\r\n\r\n setLocalSize({ width: w, height: h })\r\n sizeRef.current = { width: w, height: h }\r\n }}\r\n onResizeEnd={async (_, params) => {\r\n const width = Math.max(1, Math.round(params.width))\r\n const height = Math.max(1, Math.round(params.height))\r\n const rot = Number(rotationRef.current) || 0\r\n\r\n setLocalSize({ width, height })\r\n sizeRef.current = { width, height }\r\n\r\n setNodes(nodes =>\r\n nodes.map(n => n.id === id ? { ...n, style: { ...n.style, width, height } } : n)\r\n )\r\n\r\n updateSticker(sticker.id, { width, height })\r\n\r\n try {\r\n await shapesApi.updateBoardTransform(id, width, height, rot)\r\n } catch (e) {\r\n console.warn('Не удалось сохранить размеры фигуры', e)\r\n }\r\n }}\r\n />\r\n\r\n <svg\r\n width={localSize.width}\r\n height={localSize.height}\r\n viewBox=\"0 0 100 100\"\r\n preserveAspectRatio=\"none\"\r\n >\r\n {renderShape}\r\n </svg>\r\n\r\n {isSelected && (\r\n <div\r\n ref={rotateControlRef}\r\n className=\"nodrag nopan\"\r\n style={{\r\n position: 'absolute',\r\n width: 15,\r\n height: 15,\r\n top: -24,\r\n right: -8,\r\n cursor: 'grab',\r\n zIndex: 1000,\r\n pointerEvents: 'auto',\r\n transform: `translateX(-50%) rotate(${rotation}deg)`,\r\n transition: isRotating ? 'none' : 'transform 0.15s ease-out',\r\n }}\r\n >\r\n <img\r\n src={revertIcon}\r\n alt=\"Rotate\"\r\n draggable={false}\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'contain',\r\n }}\r\n />\r\n </div>\r\n )}\r\n\r\n <Handle type=\"target\" position={Position.Left} className=\"z-100000\" />\r\n <Handle type=\"source\" position={Position.Right} className=\"z-100000\" />\r\n </div>\r\n </>\r\n )\r\n};\r\n","import React from \"react\";\r\n\r\nexport const SHAPE_ICONS = {\r\n square: (\r\n <svg width=\"40\" height=\"40\">\r\n <rect x=\"4\" y=\"4\" width=\"32\" height=\"32\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n\r\n circle: (\r\n <svg width=\"40\" height=\"40\">\r\n <circle cx=\"20\" cy=\"20\" r=\"14\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n\r\n triangle: (\r\n <svg width=\"40\" height=\"40\">\r\n <polygon points=\"20,6 34,34 6,34\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n\r\n star: (\r\n <svg width=\"40\" height=\"40\">\r\n <polygon\r\n points=\"20,4 25,16 38,16 27,24 32,36 20,28 8,36 13,24 2,16 15,16\"\r\n stroke=\"black\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n />\r\n </svg>\r\n ),\r\n\r\n stick: (\r\n <svg width=\"40\" height=\"40\">\r\n <rect x=\"16\" y=\"4\" width=\"8\" height=\"32\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\" />\r\n </svg>\r\n ),\r\n\r\n line: (\r\n <svg width=\"40\" height=\"40\">\r\n <line x1=\"4\" y1=\"20\" x2=\"36\" y2=\"20\" stroke=\"black\" strokeWidth=\"2\" />\r\n </svg>\r\n ),\r\n\r\n arrow: (\r\n <svg width=\"40\" height=\"40\">\r\n <line x1=\"4\" y1=\"20\" x2=\"30\" y2=\"20\" stroke=\"black\" strokeWidth=\"2\"/>\r\n <polygon points=\"30,14 38,20 30,26\" fill=\"black\"/>\r\n </svg>\r\n ),\r\n\r\n dblarrow: (\r\n <svg width=\"40\" height=\"40\">\r\n <polygon points=\"4,20 12,14 12,26\" fill=\"black\"/>\r\n <line x1=\"12\" y1=\"20\" x2=\"28\" y2=\"20\" stroke=\"black\" strokeWidth=\"2\"/>\r\n <polygon points=\"28,14 36,20 28,26\" fill=\"black\"/>\r\n </svg>\r\n ),\r\n\r\n parallelogram: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\">\r\n <polygon points=\"8,8 34,8 26,32 0,32\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n\r\n roundedRect: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\">\r\n <rect x=\"6\" y=\"10\" width=\"28\" height=\"20\" rx=\"4\" ry=\"4\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n\r\n capsule: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\">\r\n <rect x=\"6\" y=\"14\" width=\"28\" height=\"12\" rx=\"6\" ry=\"6\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n\r\n pentagon: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\">\r\n <polygon points=\"20,6 34,15 28,32 12,32 6,15\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n\r\n chevron: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 100 100\">\r\n <polyline\r\n points=\"0,0 50,100 100,0\"\r\n fill=\"none\"\r\n stroke=\"black\"\r\n strokeWidth=\"5\"\r\n />\r\n </svg>\r\n ),\r\n table3x3: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\">\r\n <rect x=\"4\" y=\"4\" width=\"32\" height=\"32\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n\r\n <line x1=\"14\" y1=\"4\" x2=\"14\" y2=\"36\" stroke=\"black\" strokeWidth=\"2\"/>\r\n <line x1=\"26\" y1=\"4\" x2=\"26\" y2=\"36\" stroke=\"black\" strokeWidth=\"2\"/>\r\n\r\n <line x1=\"4\" y1=\"14\" x2=\"36\" y2=\"14\" stroke=\"black\" strokeWidth=\"2\"/>\r\n <line x1=\"4\" y1=\"26\" x2=\"36\" y2=\"26\" stroke=\"black\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n\r\n pyramid: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\">\r\n <polygon points=\"20,4 36,36 4,36\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\" />\r\n <line x1=\"15\" y1=\"12\" x2=\"25\" y2=\"12\" stroke=\"black\" strokeWidth=\"2\" />\r\n <line x1=\"11\" y1=\"20\" x2=\"28\" y2=\"20\" stroke=\"black\" strokeWidth=\"2\" />\r\n <line x1=\"7\" y1=\"28\" x2=\"32\" y2=\"28\" stroke=\"black\" strokeWidth=\"2\" />\r\n </svg>\r\n ),\r\n circleArrow: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\">\r\n <circle cx=\"20\" cy=\"20\" r=\"14\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n <line x1=\"20\" y1=\"6\" x2=\"20\" y2=\"0\" stroke=\"black\" strokeWidth=\"2\"/>\r\n <polygon points=\"18,2 22,2 20,0\" fill=\"black\"/>\r\n </svg>\r\n ),\r\n\r\n table3x3LeftMerge: (\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\">\r\n <rect x=\"4\" y=\"4\" width=\"32\" height=\"32\" stroke=\"black\" fill=\"none\" strokeWidth=\"2\"/>\r\n <line x1=\"14\" y1=\"4\" x2=\"14\" y2=\"36\" stroke=\"black\" strokeWidth=\"2\"/>\r\n <line x1=\"26\" y1=\"4\" x2=\"26\" y2=\"36\" stroke=\"black\" strokeWidth=\"2\"/>\r\n <line x1=\"14\" y1=\"16\" x2=\"36\" y2=\"16\" stroke=\"black\" strokeWidth=\"2\"/>\r\n <line x1=\"14\" y1=\"28\" x2=\"36\" y2=\"28\" stroke=\"black\" strokeWidth=\"2\"/>\r\n </svg>\r\n ),\r\n};\r\n","export default \"data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3%201.5H47C47.8284%201.5%2048.5%202.17157%2048.5%203V47C48.5%2047.8284%2047.8284%2048.5%2047%2048.5H3C2.17157%2048.5%201.5%2047.8284%201.5%2047V3C1.5%202.17157%202.17157%201.5%203%201.5Z'%20stroke='black'%20stroke-width='3'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3%201.5H47C47.8284%201.5%2048.5%202.17157%2048.5%203V47C48.5%2047.8284%2047.8284%2048.5%2047%2048.5H3C2.17157%2048.5%201.5%2047.8284%201.5%2047V3C1.5%202.17157%202.17157%201.5%203%201.5Z'%20stroke='%230000FF'%20stroke-width='3'/%3e%3c/svg%3e\"","\r\nimport React, { useState, useRef, useEffect } from 'react';\r\nimport { SHAPES } from '../features/shape/constants.jsx';\r\nimport { SHAPE_ICONS } from \"./shapeIcons.jsx\";\r\nimport { DND_SHAPE } from '../features/board/constants.js';\r\nimport shapeAdd from '../assets/shape_add.svg';\r\nimport shapeAddActive from '../assets/shape_add_active.svg';\r\nimport '../styles/stickerPalette.css';\r\nimport { ShapeNode } from '../features/shape/ui/ShapeNode.jsx';\r\n\r\nexport const ShapeToolbar = () => {\r\n const [shapeOpen, setShapeOpen] = useState(false);\r\n const wrapperRef = useRef(null);\r\n\r\n const toggleShape = (e) => {\r\n e.stopPropagation();\r\n setShapeOpen((v) => !v);\r\n };\r\n\r\n useEffect(() => {\r\n if (!shapeOpen) return;\r\n const handler = (e) => {\r\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n setShapeOpen(false);\r\n }\r\n };\r\n window.addEventListener('pointerdown', handler);\r\n return () => window.removeEventListener('pointerdown', handler);\r\n }, [shapeOpen]);\r\n\r\n const onShapeDragStart = (shape) => (e) => {\r\n e.stopPropagation();\r\n e.dataTransfer.setData(DND_SHAPE, JSON.stringify({ shapeId: shape.id }));\r\n e.dataTransfer.effectAllowed = 'copy';\r\n };\r\n\r\n return (\r\n <div className=\"left-toolbar-container\" ref={wrapperRef} onClick={(e) => e.stopPropagation()}>\r\n <div className={`toolbar-card ${shapeOpen ? 'toolbar-card--open' : ''}`}>\r\n <button onClick={toggleShape} className={`toolbar-btn toolbar-btn--icon toolbar-btn--shape ${shapeOpen ? 'toolbar-btn--active' : ''}`}>\r\n <div className={`toolbar-shape-plate ${shapeOpen ? 'toolbar-shape-plate--active' : ''}`}>\r\n <img src={shapeOpen ? shapeAddActive : shapeAdd} alt=\"Фигуры\" draggable={false} />\r\n </div>\r\n </button>\r\n </div>\r\n {shapeOpen && (\r\n <div className=\"palette-wrapper\" onClick={(e) => e.stopPropagation()}>\r\n <div className=\"shape-panel\">\r\n <div className=\"shape-grid\">\r\n {SHAPES.map((shape) => (\r\n <button\r\n key={shape.id}\r\n className=\"shape-item\"\r\n draggable\r\n onDragStart={onShapeDragStart(shape)}\r\n title={shape.name}\r\n >\r\n {SHAPE_ICONS[shape.id]}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n <ShapeNode shapeOpen={shapeOpen} />\r\n </div>\r\n );\r\n};","import { ShapeNode } from '../ui/ShapeNode.jsx'\r\n\r\nexport const shapeNodeTypes = {\r\n shape: ShapeNode,\r\n}\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { ShapeToolbar } from '../components/ShapeToolbar.jsx'\r\nimport { Board } from '../features/board/ui/Board.jsx'\r\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore.js'\r\nimport { shapesApi } from '../shared/api/shapesApi.js'\r\nimport { shapeNodeTypes } from '../features/shape/public/shapeNodeTypes.js'\r\n\r\nconst SafeFallbackWidget = ({ children }) => <div>{children}</div>\r\n\r\n/**\r\n * @typedef {import('@xyflow/react').NodeProps} NodeProps\r\n * @typedef {Record<string, React.ComponentType<NodeProps>>} NodeTypes\r\n */\r\n\r\n/**\r\n * @param {{ nodeTypes?: NodeTypes }} props\r\n */\r\nexport const ShapeBoardWidget = ({ nodeTypes }) => {\r\n const setStickers = useStickersStore((state) => state.setStickers)\r\n const boardRef = useRef(null)\r\n const [WidgetComp, setWidgetComp] = useState(() => SafeFallbackWidget)\r\n\r\n const mergedNodeTypes = {\r\n ...shapeNodeTypes,\r\n ...(nodeTypes || {}),\r\n }\r\n\r\n useEffect(() => {\r\n const loadBoard = async () => {\r\n try {\r\n const [allShapes, boardShapes] = await Promise.all([\r\n shapesApi.getAll(),\r\n shapesApi.getBoard(),\r\n ])\r\n\r\n const shapeKeyByDbId = new Map(allShapes.map((x) => [String(x.id), x.shapeId]))\r\n\r\n let x = 30\r\n let y = 30\r\n const items = []\r\n\r\n for (const s of boardShapes) {\r\n const w = s.width ?? 140\r\n const h = s.height ?? 140\r\n const r = s.rotation ?? 0\r\n\r\n const shapeKey = shapeKeyByDbId.get(String(s.shapeId)) ?? 'square'\r\n\r\n items.push({\r\n id: s.id,\r\n stickerId: s.id,\r\n type: 'shape',\r\n shapeId: shapeKey,\r\n shapeDbId: s.shapeId,\r\n x,\r\n y,\r\n width: w,\r\n height: h,\r\n rotation: r,\r\n zIndex: 1,\r\n fill: 'transparent',\r\n stroke: '#000',\r\n })\r\n\r\n x += 24\r\n y += 24\r\n }\r\n\r\n setStickers(items)\r\n } catch (e) {\r\n console.warn('Не удалось загрузить доску для фигур:', e)\r\n }\r\n }\r\n\r\n loadBoard()\r\n }, [setStickers])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n import('@xyflow/react')\r\n .then((mod) => {\r\n if (!mounted) {\r\n return\r\n }\r\n\r\n const candidate =\r\n (mod && (mod.Widget || mod.default || mod?.widget || mod?.XyflowWidget)) ?? null\r\n\r\n if (typeof candidate === 'function' || React.isValidElement(candidate)) {\r\n setWidgetComp(() => candidate)\r\n } else {\r\n setWidgetComp(() => SafeFallbackWidget)\r\n }\r\n })\r\n .catch(() => {\r\n if (mounted) {\r\n setWidgetComp(() => SafeFallbackWidget)\r\n }\r\n })\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n const Wrapper = WidgetComp || SafeFallbackWidget\r\n\r\n return (\r\n <Wrapper>\r\n <div className=\"relative flex h-screen w-screen bg-gray-100\">\r\n <ShapeToolbar />\r\n </div>\r\n </Wrapper>\r\n )\r\n}\r\n"],"names":["SHAPES","parseError","res","shapesApi","items","id","shapeId","width","height","rotation","shapes","stroke","sw","jsx","jsxs","fill","innerSw","Fragment","t","idx","xhtml","namespaces","namespace","name","prefix","i","creatorInherit","document","uri","creatorFixed","fullname","creator","none","selector","selection_select","select","groups","m","subgroups","j","group","n","subgroup","node","subnode","Selection","array","x","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","match","childFirst","selection_selectChild","filter","children","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","parent","datum","child","next","constant$1","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","key","nodeByKeyValue","keyValues","keyValue","selection_data","value","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","context","selection","groups0","groups1","m0","m1","merges","group0","group1","merge","selection_order","selection_sort","compare","ascending","compareNode","a","b","sortgroups","sortgroup","selection_call","callback","selection_nodes","selection_node","selection_size","size","selection_empty","selection_each","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","v","attrFunctionNS","selection_attr","defaultView","styleRemove","styleConstant","priority","styleFunction","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","string","classList","ClassList","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","lower","selection_lower","selection_append","create","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","clone","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","listener","event","parseTypenames","typenames","onRemove","typename","on","onAdd","options","o","selection_on","dispatchEvent","type","params","window","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection_selection","sourceEvent","pointer","svg","point","rect","revertIcon","noop","dispatch","_","Dispatch","types","T","get","set","copy","that","args","c","nonpassive","nonpassivecapture","nopropagation","noevent","nodrag","view","yesdrag","noclick","DragEvent","subject","target","identifier","active","y","dx","dy","defaultFilter","defaultContainer","defaultSubject","d","defaultTouchable","drag","container","touchable","gestures","listeners","mousedownx","mousedowny","mousemoving","touchending","clickDistance2","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","touches","touch","p","s","p0","ShapeNode","style","shapeOpen","sticker","useStickersStore","st","updateSticker","bringToFront","selectSticker","selectedId","setNodes","useReactFlow","rotateControlRef","useRef","rotationRef","sizeRef","setRotation","useState","localSize","setLocalSize","isRotating","setIsRotating","isSelected","useEffect","w","h","r","el","dragHandler","evt","_b","_a","cx","cy","deg","rot","renderShape","useMemo","fn","handleClick","e","NodeResizer","nodes","Handle","Position","SHAPE_ICONS","shapeAdd","shapeAddActive","ShapeToolbar","setShapeOpen","wrapperRef","toggleShape","handler","onShapeDragStart","shape","DND_SHAPE","shapeNodeTypes","SafeFallbackWidget","ShapeBoardWidget","nodeTypes","setStickers","state","WidgetComp","setWidgetComp","allShapes","boardShapes","shapeKeyByDbId","shapeKey","mounted","mod","candidate","React","Wrapper"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57]}
@@ -0,0 +1,23 @@
1
+ "use strict";const ee=require("react"),te=require("zustand");var I={exports:{}},v={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var F;function re(){if(F)return v;F=1;var n=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function t(r,o,a){var i=null;if(a!==void 0&&(i=""+a),o.key!==void 0&&(i=""+o.key),"key"in o){a={};for(var d in o)d!=="key"&&(a[d]=o[d])}else a=o;return o=a.ref,{$$typeof:n,type:r,key:i,ref:o!==void 0?o:null,props:a}}return v.Fragment=c,v.jsx=t,v.jsxs=t,v}var O={};/**
10
+ * @license React
11
+ * react-jsx-runtime.development.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var Z;function ne(){return Z||(Z=1,process.env.NODE_ENV!=="production"&&function(){function n(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===X?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case g:return"Fragment";case A:return"Profiler";case R:return"StrictMode";case B:return"Suspense";case V:return"SuspenseList";case q:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case m:return"Portal";case L:return e.displayName||"Context";case C:return(e._context.displayName||"Context")+".Consumer";case U:var s=e.render;return e=e.displayName,e||(e=s.displayName||s.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case G:return s=e.displayName||null,s!==null?s:n(e.type)||"Memo";case y:s=e._payload,e=e._init;try{return n(e(s))}catch{}}return null}function c(e){return""+e}function t(e){try{c(e);var s=!1}catch{s=!0}if(s){s=console;var l=s.error,u=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return l.call(s,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",u),c(e)}}function r(e){if(e===g)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===y)return"<...>";try{var s=n(e);return s?"<"+s+">":"<...>"}catch{return"<...>"}}function o(){var e=N.A;return e===null?null:e.getOwner()}function a(){return Error("react-stack-top-frame")}function i(e){if($.call(e,"key")){var s=Object.getOwnPropertyDescriptor(e,"key").get;if(s&&s.isReactWarning)return!1}return e.key!==void 0}function d(e,s){function l(){M||(M=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",s))}l.isReactWarning=!0,Object.defineProperty(e,"key",{get:l,configurable:!0})}function E(){var e=n(this.type);return z[e]||(z[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function S(e,s,l,u,b,P){var f=l.ref;return e={$$typeof:k,type:e,key:s,props:l,_owner:u},(f!==void 0?f:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:E}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:b}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:P}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function x(e,s,l,u,b,P){var f=s.children;if(f!==void 0)if(u)if(Q(f)){for(u=0;u<f.length;u++)w(f[u]);Object.freeze&&Object.freeze(f)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else w(f);if($.call(s,"key")){f=n(e);var T=Object.keys(s).filter(function(K){return K!=="key"});u=0<T.length?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}",J[f+u]||(T=0<T.length?"{"+T.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ let props = %s;
19
+ <%s {...props} />
20
+ React keys must be passed directly to JSX without using spread:
21
+ let props = %s;
22
+ <%s key={someKey} {...props} />`,u,f,T,f),J[f+u]=!0)}if(f=null,l!==void 0&&(t(l),f=""+l),i(s)&&(t(s.key),f=""+s.key),"key"in s){l={};for(var D in s)D!=="key"&&(l[D]=s[D])}else l=s;return f&&d(l,typeof e=="function"?e.displayName||e.name||"Unknown":e),S(e,f,l,o(),b,P)}function w(e){_(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===y&&(e._payload.status==="fulfilled"?_(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function _(e){return typeof e=="object"&&e!==null&&e.$$typeof===k}var p=ee,k=Symbol.for("react.transitional.element"),m=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),R=Symbol.for("react.strict_mode"),A=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),L=Symbol.for("react.context"),U=Symbol.for("react.forward_ref"),B=Symbol.for("react.suspense"),V=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),X=Symbol.for("react.client.reference"),N=p.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=Object.prototype.hasOwnProperty,Q=Array.isArray,j=console.createTask?console.createTask:function(){return null};p={react_stack_bottom_frame:function(e){return e()}};var M,z={},Y=p.react_stack_bottom_frame.bind(p,a)(),H=j(r(a)),J={};O.Fragment=g,O.jsx=function(e,s,l){var u=1e4>N.recentlyCreatedOwnerStacks++;return x(e,s,l,!1,u?Error("react-stack-top-frame"):Y,u?j(r(e)):H)},O.jsxs=function(e,s,l){var u=1e4>N.recentlyCreatedOwnerStacks++;return x(e,s,l,!0,u?Error("react-stack-top-frame"):Y,u?j(r(e)):H)}}()),O}process.env.NODE_ENV==="production"?I.exports=re():I.exports=ne();var ae=I.exports;async function h(n){return await n.text()||`HTTP ${n.status}`}const W={async getAll(){const n=await fetch("/api/v1/roadmap/get-all");if(!n.ok)throw new Error(await h(n));return await n.json()},async getById(n){const c=await fetch(`/api/v1/roadmap/${n}`);if(!c.ok)throw new Error(await h(c));return await c.json()},async create({text:n,description:c,date:t,completed:r,cancelled:o,zIndex:a,width:i,height:d,parentId:E}){const S=await fetch("/api/v1/roadmap/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:n??"",description:c??"",date:t??null,completed:r??!1,cancelled:o??!1,zIndex:a??0,width:i??200,height:d??120,parentId:E??null})});if(!S.ok)throw new Error(await h(S));return await S.json()},async updateText(n,c){const t=await fetch(`/api/v1/roadmap/${n}/text`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:c??""})});if(!t.ok)throw new Error(await h(t));return await t.json()},async updateDescription(n,c){const t=await fetch(`/api/v1/roadmap/${n}/description`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:c??""})});if(!t.ok)throw new Error(await h(t));return await t.json()},async updateDate(n,c,t){const r=await fetch(`/api/v1/roadmap/${n}/date`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({date:c??null,completed:t??!1})});if(!r.ok)throw new Error(await h(r));return await r.json()},async updateCompleted(n,c){const t=await fetch(`/api/v1/roadmap/${n}/completed`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({completed:c??!1})});if(!t.ok)throw new Error(await h(t));return await t.json()},async updateCancelled(n,c){const t=await fetch(`/api/v1/roadmap/${n}/cancelled`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cancelled:c??!1})});if(!t.ok)throw new Error(await h(t));return await t.json()},async updateZIndex(n,c){const t=await fetch(`/api/v1/roadmap/${n}/z-index`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({zIndex:c??0})});if(!t.ok)throw new Error(await h(t));return await t.json()},async updateSize(n,c,t){const r=await fetch(`/api/v1/roadmap/${n}/size`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({width:c,height:t})});if(!r.ok)throw new Error(await h(r));return await r.json()},async delete(n){const c=await fetch(`/api/v1/roadmap/${n}`,{method:"DELETE",headers:{"Content-Type":"application/json"}});if(!c.ok)throw new Error(await h(c));return c.status===204}},oe=te.create((n,c)=>({stickers:[],edges:[],topZ:1,selectedId:null,addSticker:t=>{n(r=>{const o=t&&t.id?String(t.id):crypto.randomUUID(),a=t&&t.zIndex?t.zIndex:(r.topZ||1)+1,i={id:o,x:t.x,y:t.y,width:t.width,height:t.height,color:t.color,text:t.text??"",description:t.description??"",date:t.date??null,completed:t.completed??!1,cancelled:t.cancelled??!1,parentId:t.parentId??null,zIndex:a,rotation:t.rotation??0,type:t.type,shapeId:t.shapeId,shapeData:t.shapeData,imageUrl:t.imageUrl,info:t.info??null};return{stickers:[...r.stickers,i],topZ:Math.max(r.topZ||1,a)}})},addRoadmapBranch:async t=>{const r=c(),o=r.stickers.find(m=>String(m.id)===String(t));if(!o)return;const a=r.stickers.filter(m=>r.edges.some(g=>String(g.source)===String(t)&&String(g.target)===String(m.id))),i=200,d=120,E=i+140,S=50,x=(o.x??0)+E;let w;if(a.length===0)w=(o.y??0)+(o.height||d)/2-d/2+S;else{const m=a.reduce((g,R)=>{const A=(g.y??0)+(g.height||d);return(R.y??0)+(R.height||d)>A?R:g});w=(m.y??0)+(m.height||d)+S}const _=(r.topZ||1)+1;let p;try{p=await W.create({text:"",description:"",date:null,completed:!1,cancelled:!1,zIndex:_,width:i,height:d,parentId:String(t)})}catch(m){console.warn("Не удалось создать roadmap ветку",m);return}const k=String(p.id);r.addSticker({id:k,type:"roadmap",x,y:w,width:p.width??i,height:p.height??d,text:p.text??"",description:p.description??"",date:p.date??null,completed:p.completed??!1,cancelled:p.cancelled??!1,parentId:p.parentId??String(t),zIndex:p.zIndex??_}),n(m=>({edges:[...m.edges,{id:`e-${t}-${k}`,source:String(t),target:k,type:"default",animated:!1}],topZ:Math.max(m.topZ||1,_)}))},setStickers:t=>{n(()=>({stickers:t,topZ:t.reduce((r,o)=>Math.max(r,o.zIndex??1),1)}))},setEdges:t=>{n(()=>({edges:t}))},reset:()=>{n({stickers:[],edges:[],topZ:1,selectedId:null})},updateSticker:(t,r)=>{n(o=>({stickers:o.stickers.map(a=>String(a.id)===String(t)?{...a,...r}:a)}))},setPosition:(t,r,o)=>{n(a=>({stickers:a.stickers.map(i=>String(i.id)===String(t)?{...i,x:r,y:o}:i)}))},setSize:(t,r,o)=>{n(a=>({stickers:a.stickers.map(i=>String(i.id)===String(t)?{...i,width:r,height:o}:i)}))},setText:(t,r)=>{n(o=>({stickers:o.stickers.map(a=>String(a.id)===String(t)?{...a,text:r}:a)}))},bringToFront:t=>{n(r=>{if(!r.stickers.find(i=>String(i.id)===String(t)))return r;const a=(r.topZ||1)+1;return{stickers:r.stickers.map(i=>String(i.id)===String(t)?{...i,zIndex:a}:i),topZ:a}})},removeSticker:t=>{n(r=>{const o=r.stickers.filter(a=>String(a.id)!==String(t));return{stickers:o,edges:r.edges.filter(a=>String(a.source)!==String(t)&&String(a.target)!==String(t)),topZ:o.reduce((a,i)=>Math.max(a,i.zIndex??1),1)}})},selectSticker:t=>{n({selectedId:t})},getDescendants:t=>{const{stickers:r}=c(),o=[],a=i=>{const d=r.filter(E=>String(E.parentId)===String(i));for(const E of d)o.push(E),a(E.id)};return a(t),o},removeStickersBulk:t=>{n(r=>{const o=new Set(t.map(String)),a=r.stickers.filter(i=>!o.has(String(i.id)));return{stickers:a,edges:r.edges.filter(i=>!o.has(String(i.source))&&!o.has(String(i.target))),topZ:a.reduce((i,d)=>Math.max(i,d.zIndex??1),1)}})},detachChildren:t=>{n(r=>({stickers:r.stickers.map(o=>String(o.parentId)===String(t)?{...o,parentId:null}:o)}))}})),ie=91,se=84,ce=160,le=160,de=10,ue="application/x-integration-shape",fe="application/x-integration-emoji",pe="application/x-integration-note",me="dnd/markdown",he="application/roadmap";exports.BOARD_SAFE_PAD=de;exports.DND_EMOJI=fe;exports.DND_MARKDOWN=me;exports.DND_NOTE=pe;exports.DND_ROADMAP=he;exports.DND_SHAPE=ue;exports.EMOJI_H=se;exports.EMOJI_W=ie;exports.NOTE_H=le;exports.NOTE_W=ce;exports.jsxRuntimeExports=ae;exports.roadmapApi=W;exports.useStickersStore=oe;
23
+ //# sourceMappingURL=constants-D-rHISmr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-D-rHISmr.js","sources":["../../node_modules/react/cjs/react-jsx-runtime.production.js","../../node_modules/react/cjs/react-jsx-runtime.development.js","../../node_modules/react/jsx-runtime.js","../../src/shared/api/roadmapApi.js","../../src/entities/stickers/model/useStickersStore.js","../../src/features/board/constants.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","async function parseError(res) {\r\n const text = await res.text()\r\n return text || `HTTP ${res.status}`\r\n}\r\n\r\nexport const roadmapApi = {\r\n async getAll() {\r\n const res = await fetch('/api/v1/roadmap/get-all')\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n return await res.json()\r\n },\r\n\r\n async getById(id) {\r\n const res = await fetch(`/api/v1/roadmap/${id}`)\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n return await res.json()\r\n },\r\n\r\n async create({ text, description, date, completed, cancelled, zIndex, width, height, parentId }) {\r\n const res = await fetch('/api/v1/roadmap/create', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({\r\n text: text ?? '',\r\n description: description ?? '',\r\n date: date ?? null,\r\n completed: completed ?? false,\r\n cancelled: cancelled ?? false,\r\n zIndex: zIndex ?? 0,\r\n width: width ?? 200,\r\n height: height ?? 120,\r\n parentId: parentId ?? null\r\n })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async updateText(id, text) {\r\n const res = await fetch(`/api/v1/roadmap/${id}/text`, {\r\n method: 'PATCH',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ text: text ?? '' })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async updateDescription(id, description) {\r\n const res = await fetch(`/api/v1/roadmap/${id}/description`, {\r\n method: 'PATCH',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ description: description ?? '' })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async updateDate(id, date, completed) {\r\n const res = await fetch(`/api/v1/roadmap/${id}/date`, {\r\n method: 'PATCH',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ date: date ?? null, completed: completed ?? false })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async updateCompleted(id, completed) {\r\n const res = await fetch(`/api/v1/roadmap/${id}/completed`, {\r\n method: 'PATCH',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ completed: completed ?? false })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async updateCancelled(id, cancelled) {\r\n const res = await fetch(`/api/v1/roadmap/${id}/cancelled`, {\r\n method: 'PATCH',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ cancelled: cancelled ?? false })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async updateZIndex(id, zIndex) {\r\n const res = await fetch(`/api/v1/roadmap/${id}/z-index`, {\r\n method: 'PATCH',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ zIndex: zIndex ?? 0 })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async updateSize(id, width, height) {\r\n const res = await fetch(`/api/v1/roadmap/${id}/size`, {\r\n method: 'PATCH',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ width, height })\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return await res.json()\r\n },\r\n\r\n async delete(id) {\r\n const res = await fetch(`/api/v1/roadmap/${id}`, {\r\n method: 'DELETE',\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n\r\n if (!res.ok) {\r\n throw new Error(await parseError(res))\r\n }\r\n\r\n return res.status === 204\r\n }\r\n}\r\n","import { create } from 'zustand'\r\nimport { roadmapApi } from '../../../shared/api/roadmapApi.js'\r\n\r\nexport const useStickersStore = create((set, get) => ({\r\n stickers: [],\r\n edges: [],\r\n topZ: 1,\r\n selectedId: null,\r\n\r\n addSticker: (payload) => {\r\n set((state) => {\r\n const id = payload && payload.id ? String(payload.id) : crypto.randomUUID()\r\n const zIndex = payload && payload.zIndex ? payload.zIndex : (state.topZ || 1) + 1\r\n\r\n const sticker = {\r\n id,\r\n x: payload.x,\r\n y: payload.y,\r\n width: payload.width,\r\n height: payload.height,\r\n color: payload.color,\r\n text: payload.text ?? '',\r\n description: payload.description ?? '',\r\n date: payload.date ?? null,\r\n completed: payload.completed ?? false,\r\n cancelled: payload.cancelled ?? false,\r\n parentId: payload.parentId ?? null,\r\n\r\n zIndex,\r\n rotation: payload.rotation ?? 0,\r\n type: payload.type,\r\n shapeId: payload.shapeId,\r\n shapeData: payload.shapeData,\r\n imageUrl: payload.imageUrl,\r\n info: payload.info ?? null\r\n }\r\n\r\n return {\r\n stickers: [...state.stickers, sticker],\r\n topZ: Math.max(state.topZ || 1, zIndex)\r\n }\r\n })\r\n },\r\n\r\n addRoadmapBranch: async (parentId) => {\r\n const state = get()\r\n const parent = state.stickers.find(s => String(s.id) === String(parentId))\r\n if (!parent) {\r\n return\r\n }\r\n\r\n const children = state.stickers.filter(s =>\r\n state.edges.some(e => String(e.source) === String(parentId) && String(e.target) === String(s.id))\r\n )\r\n\r\n const NODE_WIDTH = 200\r\n const NODE_HEIGHT = 120\r\n const HORIZONTAL_OFFSET = NODE_WIDTH + 140\r\n const VERTICAL_GAP = 50\r\n\r\n const newX = (parent.x ?? 0) + HORIZONTAL_OFFSET\r\n\r\n let newY\r\n if (children.length === 0) {\r\n newY = (parent.y ?? 0) + ((parent.height || NODE_HEIGHT) / 2) - (NODE_HEIGHT / 2) + VERTICAL_GAP\r\n } else {\r\n const lowestChild = children.reduce((lowest, child) => {\r\n const lowestBottom = (lowest.y ?? 0) + (lowest.height || NODE_HEIGHT)\r\n const childBottom = (child.y ?? 0) + (child.height || NODE_HEIGHT)\r\n if (childBottom > lowestBottom) {\r\n return child\r\n }\r\n return lowest\r\n })\r\n newY = (lowestChild.y ?? 0) + (lowestChild.height || NODE_HEIGHT) + VERTICAL_GAP\r\n }\r\n\r\n const nextZ = (state.topZ || 1) + 1\r\n\r\n let created\r\n try {\r\n created = await roadmapApi.create({\r\n text: '',\r\n description: '',\r\n date: null,\r\n completed: false,\r\n cancelled: false,\r\n zIndex: nextZ,\r\n width: NODE_WIDTH,\r\n height: NODE_HEIGHT,\r\n parentId: String(parentId)\r\n })\r\n } catch (e) {\r\n console.warn('Не удалось создать roadmap ветку', e)\r\n return\r\n }\r\n\r\n const childId = String(created.id)\r\n\r\n state.addSticker({\r\n id: childId,\r\n type: 'roadmap',\r\n x: newX,\r\n y: newY,\r\n width: created.width ?? NODE_WIDTH,\r\n height: created.height ?? NODE_HEIGHT,\r\n text: created.text ?? '',\r\n description: created.description ?? '',\r\n date: created.date ?? null,\r\n completed: created.completed ?? false,\r\n cancelled: created.cancelled ?? false,\r\n parentId: created.parentId ?? String(parentId),\r\n zIndex: created.zIndex ?? nextZ\r\n })\r\n\r\n set((prev) => ({\r\n edges: [\r\n ...prev.edges,\r\n {\r\n id: `e-${parentId}-${childId}`,\r\n source: String(parentId),\r\n target: childId,\r\n type: 'default',\r\n animated: false\r\n }\r\n ],\r\n topZ: Math.max(prev.topZ || 1, nextZ)\r\n }))\r\n },\r\n\r\n setStickers: (stickers) => {\r\n set(() => ({\r\n stickers,\r\n topZ: stickers.reduce((acc, x) => Math.max(acc, x.zIndex ?? 1), 1)\r\n }))\r\n },\r\n\r\n setEdges: (edges) => {\r\n set(() => ({\r\n edges\r\n }))\r\n },\r\n\r\n reset: () => {\r\n set({\r\n stickers: [],\r\n edges: [],\r\n topZ: 1,\r\n selectedId: null\r\n })\r\n },\r\n\r\n updateSticker: (id, patch) => {\r\n set((state) => ({\r\n stickers: state.stickers.map((s) =>\r\n String(s.id) === String(id) ? { ...s, ...patch } : s\r\n )\r\n }))\r\n },\r\n\r\n setPosition: (id, x, y) => {\r\n set((state) => ({\r\n stickers: state.stickers.map((s) =>\r\n String(s.id) === String(id) ? { ...s, x, y } : s\r\n )\r\n }))\r\n },\r\n\r\n setSize: (id, width, height) => {\r\n set((state) => ({\r\n stickers: state.stickers.map((s) =>\r\n String(s.id) === String(id) ? { ...s, width, height } : s\r\n )\r\n }))\r\n },\r\n\r\n setText: (id, text) => {\r\n set((state) => ({\r\n stickers: state.stickers.map((s) =>\r\n String(s.id) === String(id) ? { ...s, text } : s\r\n )\r\n }))\r\n },\r\n\r\n bringToFront: (id) => {\r\n set((state) => {\r\n const sticker = state.stickers.find(s => String(s.id) === String(id))\r\n if (!sticker) {\r\n return state\r\n }\r\n\r\n const newZ = (state.topZ || 1) + 1\r\n\r\n return {\r\n stickers: state.stickers.map(s => String(s.id) === String(id) ? { ...s, zIndex: newZ } : s),\r\n topZ: newZ\r\n }\r\n })\r\n },\r\n\r\n removeSticker: (id) => {\r\n set((state) => {\r\n const filtered = state.stickers.filter((s) => String(s.id) !== String(id))\r\n\r\n return {\r\n stickers: filtered,\r\n edges: state.edges.filter(e => String(e.source) !== String(id) && String(e.target) !== String(id)),\r\n topZ: filtered.reduce((acc, x) => Math.max(acc, x.zIndex ?? 1), 1)\r\n }\r\n })\r\n },\r\n\r\n selectSticker: (id) => {\r\n set({ selectedId: id })\r\n },\r\n getDescendants: (parentId) => {\r\n const { stickers } = get()\r\n const result = []\r\n\r\n const walk = (id) => {\r\n const children = stickers.filter(\r\n s => String(s.parentId) === String(id)\r\n )\r\n\r\n for (const child of children) {\r\n result.push(child)\r\n walk(child.id)\r\n }\r\n }\r\n\r\n walk(parentId)\r\n return result\r\n },\r\n removeStickersBulk: (ids) => {\r\n set((state) => {\r\n const idSet = new Set(ids.map(String))\r\n\r\n const filteredStickers = state.stickers.filter(\r\n s => !idSet.has(String(s.id))\r\n )\r\n\r\n return {\r\n stickers: filteredStickers,\r\n edges: state.edges.filter(\r\n e =>\r\n !idSet.has(String(e.source)) &&\r\n !idSet.has(String(e.target))\r\n ),\r\n topZ: filteredStickers.reduce(\r\n (acc, x) => Math.max(acc, x.zIndex ?? 1),\r\n 1\r\n )\r\n }\r\n })\r\n },\r\n detachChildren: (parentId) => {\r\n set((state) => ({\r\n stickers: state.stickers.map(s =>\r\n String(s.parentId) === String(parentId)\r\n ? { ...s, parentId: null }\r\n : s\r\n )\r\n }))\r\n },\r\n}))\r\n","export const EMOJI_W = 91\r\nexport const EMOJI_H = 84\r\nexport const NOTE_W = 160\r\nexport const NOTE_H = 160\r\nexport const BOARD_SAFE_PAD = 10\r\n\r\nexport const DND_SHAPE = 'application/x-integration-shape'\r\nexport const DND_EMOJI = 'application/x-integration-emoji'\r\nexport const DND_NOTE = 'application/x-integration-note'\r\nexport const DND_MARKDOWN = 'dnd/markdown'\r\nexport const DND_ROADMAP = 'application/roadmap'"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","parseError","res","roadmapApi","id","text","description","date","completed","cancelled","zIndex","width","height","parentId","useStickersStore","create","set","get","payload","state","sticker","parent","s","e","NODE_WIDTH","NODE_HEIGHT","HORIZONTAL_OFFSET","VERTICAL_GAP","newX","newY","lowestChild","lowest","child","lowestBottom","nextZ","created","childId","prev","stickers","acc","x","edges","patch","y","newZ","filtered","result","walk","ids","idSet","filteredStickers","EMOJI_W","EMOJI_H","NOTE_W","NOTE_H","BOARD_SAFE_PAD","DND_SHAPE","DND_EMOJI","DND_NOTE","DND_MARKDOWN","DND_ROADMAP"],"mappings":"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","x_google_ignoreList":[0,1,2]}