@leafer-in/arrow 2.0.2 → 2.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"arrow.esm.min.js","sources":["../../../../../node_modules/.pnpm/@rollup+plugin-typescript@11.1.6_rollup@4.44.2_tslib@2.8.1_typescript@5.8.3/node_modules/tslib/tslib.es6.js","../../../../../../src/in/packages/arrow/src/data/ArrowData.ts","../../../../../../src/in/packages/arrow/src/decorator.ts","../../../../../../src/in/packages/arrow/src/Arrow.ts","../../../../../../src/in/packages/arrow/src/PathMatrixHelper.ts","../../../../../../src/in/packages/arrow/src/data/arrows.ts","../../../../../../src/in/packages/arrow/src/PathArrowModule.ts","../../../../../../src/in/packages/arrow/src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { IArrowData } from \"@leafer-ui/interface\"\nimport { LineData } from '@leafer-ui/draw'\n\n\nexport class ArrowData extends LineData implements IArrowData {\n\n}\n","import { IValue, IUI } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, doStrokeType, doBoundsType } from '@leafer-ui/draw'\n\nexport function arrowType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: IValue) {\n if (this.__setAttr(key, value)) {\n const data = (this as IUI).__\n const useArrow = data.startArrow !== 'none' || data.endArrow !== 'none'\n if (data.__useArrow !== useArrow) doBoundsType(this)\n data.__useArrow = useArrow\n doStrokeType(this)\n }\n }\n }))\n}","import { IArrow, IArrowData, IArrowInputData, IArrowStyle, IPathDataArrow } from '@leafer-ui/interface'\nimport { Line, registerUI, dataProcessor, PathArrow } from '@leafer-ui/draw'\n\nimport { ArrowData } from './data/ArrowData'\nimport { arrowType } from './decorator'\n\n\n@registerUI()\nexport class Arrow extends Line implements IArrow {\n\n public get __tag() { return 'Arrow' }\n\n @dataProcessor(ArrowData)\n declare public __: IArrowData\n\n @arrowType('angle')\n declare public endArrow?: IArrowStyle\n\n constructor(data?: IArrowInputData) {\n super(data)\n this.__.__useArrow = true\n }\n\n static registerArrow(name: string, data: IPathDataArrow): void {\n PathArrow.register(name, data)\n }\n\n}","import { IPathCommandData, IPointData } from '@leafer-ui/interface'\nimport { PathCommandMap as Command, PointHelper } from '@leafer-ui/draw'\n\n\nconst { M, L, C, Q, O } = Command\nconst { rotate, copyFrom, scale } = PointHelper\nconst point: IPointData = {} as IPointData\n\nexport const PathMatrixHelper = {\n\n layout(data: IPathCommandData, x: number, y: number, scaleX?: number, scaleY?: number, rotation?: number, origin?: IPointData): void {\n let command: number, i = 0, j: number, len = data.length\n\n while (i < len) {\n command = data[i]\n switch (command) {\n case M: // moveto(x, y)\n case L: // lineto(x, y)\n setPoint(data, i + 1, x, y, scaleX, scaleY, rotation, origin)\n i += 3\n break\n case C: // bezierCurveTo(x1, y1, x2, y2, x, y)\n for (j = 1; j < 6; j += 2) setPoint(data, i + j, x, y, scaleX, scaleY, rotation, origin)\n i += 7\n break\n case Q: // quadraticCurveTo(x1, y1, x, y)\n for (j = 1; j < 4; j += 2) setPoint(data, i + j, x, y, scaleX, scaleY, rotation, origin)\n i += 5\n break\n case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n data[i + 1] += x\n data[i + 2] += y\n if (scaleX) data[i + 3] *= scaleX\n if (rotation) {\n data[i + 4] += rotation\n data[i + 5] += rotation\n }\n i += 7\n break\n }\n }\n },\n\n rotate(data: IPathCommandData, rotation?: number, center?: IPointData): void {\n PathMatrixHelper.layout(data, 0, 0, 1, 1, rotation, center)\n }\n\n}\n\n\nfunction setPoint(data: IPathCommandData, startIndex: number, x: number, y: number, scaleX?: number, scaleY?: number, rotation?: number, origin?: IPointData): void {\n copyFrom(point, data[startIndex], data[startIndex + 1])\n if (rotation) rotate(point, rotation, origin)\n if (scaleX) scale(point, scaleX, scaleY)\n data[startIndex] = x + point.x\n data[startIndex + 1] = y + point.y\n}","import { IArrowStyle, IArrowTypeData, IPathDataArrow, IPathDataArrowMap, IUI, IPathCommandData, IPointData } from '@leafer-ui/interface'\nimport { DataHelper, PointHelper, isObject } from '@leafer-ui/draw'\n\nimport { PathMatrixHelper } from '../PathMatrixHelper'\n\n\nconst { layout, rotate } = PathMatrixHelper\nconst { getAngle } = PointHelper\nconst half = { x: -0.5 }\n\n\nconst angle: IPathDataArrow = { connect: half, offset: { x: -0.71, bevelJoin: 0.36, roundJoin: 0.22 }, path: [1, -3, -3, 2, 0, 0, 2, -3, 3] } // moveTo(-3, -3).lineTo(0, 0).lineTo(-3, 3)\nconst angleSide: IPathDataArrow = { connect: half, offset: { x: -1.207, bevelJoin: 0.854, roundJoin: 0.707 }, path: [1, -3, -3, 2, 0, 0, 2, -1, 0] } // moveTo(-3, -3).lineTo(0, 0).lineTo(-1, 0)\n\nconst triangleLinePath = [1, -3, 0, 2, -3, -2, 2, 0, 0, 2, -3, 2, 2, -3, 0] // moveTo(-3, 0).lineTo(-3, -2).lineTo(0, 0).lineTo(-3, 2).lineTo(-3, 0)\nconst triangle: IPathDataArrow = { connect: half, offset: { x: -0.9, bevelJoin: 0.624, roundJoin: 0.4 }, path: [...triangleLinePath, 1, -2.05, 1.1, 2, -2.05, -1.1], dashPath: [1, -2, 0, 2, -0.5, 0] } // fill: moveTo(-2.05, 1.1).lineTo(-2.05, -1.1)\n\nconst arrowLinePath = [1, -3, 0, 2, -3.5, -1.8, 2, 0, 0, 2, -3.5, 1.8, 2, -3, 0] // moveTo(-3, 0).lineTo(-3.5, -1.8).lineTo(0, 0).lineTo(-3.5, 1.8).lineTo(-3, 0)\nconst arrow: IPathDataArrow = { connect: half, offset: { x: -1.1, bevelJoin: 0.872, roundJoin: 0.6 }, path: [...arrowLinePath, 1, -2.25, 0.95, 2, -2.25, -0.95], dashPath: [1, -3, 0, 2, -0.5, 0] } // fill: moveTo(-2.25, 0.95).lineTo(-2.25, -0.95) \n\nconst triangleFlip: IPathDataArrow = { offset: half, path: [...triangle.path], dashPath: [1, -2.5, 0, 2, -1, 0] } // triangle rotate 180\nrotate(triangleFlip.path, 180, { x: -1.5, y: 0 })\n\nconst circleLine: IPathDataArrow = { connect: { x: -1.3 }, path: [1, 1.8, -0.1, 2, 1.8, 0, 26, 0, 0, 1.8, 0, 359, 0], } //drawArc(0, 0, 2, 0, 360)\nconst circle: IPathDataArrow = { connect: { x: 0.5 }, path: [...circleLine.path, 1, 0, 0, 26, 0, 0, 1, 0, 360, 0], dashPath: [1, -0.5, 0, 2, 0.5, 0] } // fill: moveTo(0,0).arc(0, 0, 1, 0, 360)\n\nconst squareLine: IPathDataArrow = { connect: { x: -1.3 }, path: [1, -1.4, 0, 2, -1.4, -1.4, 2, 1.4, -1.4, 2, 1.4, 1.4, 2, -1.4, 1.4, 2, -1.4, 0] } // moveTo(-1.4, 0).lineTo(-1.4, -1.4).lineTo(1.4, -1.4).lineTo(1.4, 1.4).lineTo(-1.4, 1.4).lineTo(-1.4, 0)\nconst square: IPathDataArrow = { path: [...squareLine.path, 2, -1.4, -0.49, 2, 1, -0.49, 1, -1.4, 0.49, 2, 1, 0.49] } // fill: moveTo(-1.4, -0.49).lineTo(1, -0.49).moveTo(-1.4, 0.49).lineTo(1, 0.49)\n\nconst diamondLine = DataHelper.clone(squareLine) as IPathDataArrow // square-line rotate 45\nconst diamond: IPathDataArrow = DataHelper.clone(square) as IPathDataArrow // square rotate 45\nrotate(diamondLine.path, 45)\nrotate(diamond.path, 45)\n\nconst mark: IPathDataArrow = { offset: half, path: [1, 0, -2, 2, 0, 2] } // moveTo(0, -2).lineTo(0, 2)\n\nexport const arrows: IPathDataArrowMap = {\n angle,\n 'angle-side': angleSide,\n\n arrow,\n triangle,\n 'triangle-flip': triangleFlip,\n\n circle,\n 'circle-line': circleLine,\n\n square,\n 'square-line': squareLine,\n\n diamond,\n 'diamond-line': diamondLine,\n\n mark,\n\n}\n\nexport function getArrowPath(ui: IUI, arrow: IArrowStyle, from: IPointData, to: IPointData, size: number, connectOffset: IPointData, hasDashPattern?: boolean): IPathCommandData {\n let pathData: IPathDataArrow, scale: number\n\n const { strokeCap, strokeJoin } = ui.__\n\n if (isObject(arrow)) {\n if ((arrow as IArrowTypeData).type) {\n scale = (arrow as IArrowTypeData).scale\n pathData = arrows[(arrow as IArrowTypeData).type]\n } else pathData = arrow as IPathDataArrow\n } else {\n pathData = arrows[arrow]\n }\n\n const { offset, connect, path, dashPath } = pathData\n\n let connectX = connect ? connect.x : 0\n let offsetX = offset ? offset.x : 0\n\n const data = [...path]\n if (hasDashPattern && dashPath) data.push(...dashPath)\n\n if (strokeCap !== 'none') connectX -= 0.5\n if (offset) {\n if (strokeJoin === 'round' && offset.roundJoin) offsetX += offset.roundJoin\n else if (strokeJoin === 'bevel' && offset.bevelJoin) offsetX += offset.bevelJoin\n }\n\n if (scale) layout(data, 0, 0, scale, scale) // 预留箭头比例缩放功能\n\n if (offsetX) layout(data, offsetX, 0)\n\n layout(data, to.x, to.y, size, size, getAngle(from, to)) // scale rotate 先围绕 data 数据应用后,再加 to\n\n connectOffset.x = (connectX + offsetX) * size\n return data\n}","import { IPathArrowModule, IUI, IPathCommandData, IPointData, IPathDataArrow } from '@leafer-ui/interface'\nimport { PathCommandMap as Command, PointHelper } from '@leafer-ui/draw'\n\nimport { arrows, getArrowPath } from './data/arrows'\n\n\nconst { M, L, C, Q, Z, N, D, X, G, F, O, P, U } = Command\nconst { copy, copyFrom, getDistancePoint, } = PointHelper\n\nconst connectPoint = {} as IPointData\nconst first = {} as IPointData, second = {} as IPointData\nconst last = {} as IPointData, now = {} as IPointData\n\nexport const PathArrowModule: IPathArrowModule = {\n\n list: arrows,\n\n addArrows(ui: IUI): void {\n const { startArrow, endArrow, strokeWidth, dashPattern, __pathForRender: data, cornerRadius } = ui.__\n\n const clonePathForArrow = !cornerRadius // cornerRadius会创建新的render路径,所以不用再clone\n\n let command: number, i = 0, len = data.length, count = 0, useStartArrow = startArrow && startArrow !== 'none'\n\n while (i < len) {\n\n command = data[i]\n\n switch (command) {\n case M: // moveto(x, y)\n case L: // lineto(x, y)\n if (count < 2 || i + 6 >= len) { // 3 + 3 可能是两个连续L命令结束\n copyFrom(now, data[i + 1], data[i + 2])\n if (!count && useStartArrow) copy(first, now)\n }\n i += 3\n break\n case C: // bezierCurveTo(x1, y1, x2, y2, x, y)\n if (count === 1 || i + 7 >= len - 3) copyPoints(data, last, now, i + 3) // C 或 C + L结束\n i += 7\n break\n case Q: // quadraticCurveTo(x1, y1, x, y)\n if (count === 1 || i + 5 >= len - 3) copyPoints(data, last, now, i + 1) // Q 或 Q + L结束\n i += 5\n break\n case Z: // closepath()\n return // no arrow\n\n // canvas command\n\n case N: // rect(x, y, width, height)\n i += 5\n break\n case D: // roundRect(x, y, width, height, radius1, radius2, radius3, radius4)\n i += 9\n break\n case X: // simple roundRect(x, y, width, height, radius)\n i += 6\n break\n case G: // ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)\n i += 9\n break\n case F: // simple ellipse(x, y, radiusX, radiusY)\n i += 5\n break\n case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n i += 7\n break\n case P: // simple arc(x, y, radius)\n i += 4\n break\n case U: // arcTo(x1, y1, x2, y2, radius)\n if (count === 1 || i + 6 >= len - 3) { // U 或 U + L结束\n copyPoints(data, last, now, i + 1)\n if (i + 6 !== len) { // 避免与结束点重合\n now.x -= (now.x - last.x) / 10\n now.y -= (now.y - last.y) / 10\n }\n }\n i += 6\n break\n }\n\n count++\n\n if (count === 1 && command !== M) return // no arrow\n if (count === 2 && useStartArrow) copy(second, command === L ? now : last)\n\n if (i === len) {\n const path = ui.__.__pathForRender = clonePathForArrow ? [...data] : data\n const pathForArrow: IPathCommandData = ui.__.__pathForArrow = []\n\n if (useStartArrow) {\n const startArrowPath = getArrowPath(ui, startArrow, second, first, strokeWidth, connectPoint, !!dashPattern)\n dashPattern ? pathForArrow.push(...startArrowPath) : path.push(...startArrowPath)\n\n if (connectPoint.x) {\n getDistancePoint(first, second, -connectPoint.x, true)\n path[1] = second.x\n path[2] = second.y\n }\n }\n\n if (endArrow && endArrow !== 'none') {\n const endArrowPath = getArrowPath(ui, endArrow, last, now, strokeWidth, connectPoint, !!dashPattern)\n dashPattern ? pathForArrow.push(...endArrowPath) : path.push(...endArrowPath)\n\n if (connectPoint.x) {\n getDistancePoint(now, last, -connectPoint.x, true)\n let index: number\n switch (command) {\n case L: //lineto(x, y)\n index = i - 3 + 1\n break\n case C: //bezierCurveTo(x1, y1, x2, y2, x, y)\n index = i - 7 + 5\n break\n case Q: //quadraticCurveTo(x1, y1, x, y)\n index = i - 5 + 3\n break\n case U: // arcTo(x1, y1, x2, y2, radius)\n index = i - 6 + 3\n break\n }\n if (index) setPoint(path, last, index)\n }\n }\n\n } else {\n copy(last, now)\n }\n }\n\n\n },\n\n register(name: string, data: IPathDataArrow): void {\n this.list[name] = data\n },\n\n get(name: string): IPathDataArrow {\n return this.list[name]\n }\n\n}\n\n\n\nfunction copyPoints(data: IPathCommandData, from: IPointData, to: IPointData, startIndex: number): void {\n copyFrom(from, data[startIndex], data[startIndex + 1])\n copyFrom(to, data[startIndex + 2], data[startIndex + 3])\n}\n\nfunction setPoint(data: IPathCommandData, point: IPointData, startIndex: number): void {\n data[startIndex] = point.x\n data[startIndex + 1] = point.y\n}","export { Arrow } from './Arrow'\nexport { ArrowData } from './data/ArrowData'\nexport { PathArrowModule } from './PathArrowModule'\nexport { PathMatrixHelper } from './PathMatrixHelper'\nexport { arrowType } from './decorator'\n\nimport { IUI, ILeaferCanvas, IRenderOptions } from '@leafer-ui/interface'\nimport { PathArrow, UI, Plugin, Paint } from '@leafer-ui/draw'\nimport { PathArrowModule } from './PathArrowModule'\nimport { arrowType } from './decorator'\n\n\nPlugin.add('arrow')\n\n\n// addAttr\nUI.addAttr('startArrow', 'none', arrowType)\nUI.addAttr('endArrow', 'none', arrowType)\n\n\nObject.assign(PathArrow, PathArrowModule)\nObject.assign(Paint, {\n strokeArrow(_stroke: string, ui: IUI, canvas: ILeaferCanvas, _renderOptions: IRenderOptions): void {\n if (ui.__.dashPattern) { // fix: dashPattern Arrow\n canvas.beginPath()\n ui.__drawPathByData(canvas, ui.__.__pathForArrow)\n canvas.dashPattern = null\n canvas.stroke()\n }\n }\n})"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","SuppressedError","ArrowData","LineData","arrowType","defaultValue","decorateLeafAttr","attr","set","value","this","__setAttr","data","__","useArrow","startArrow","endArrow","__useArrow","doBoundsType","doStrokeType","Arrow","Line","__tag","constructor","super","registerArrow","name","PathArrow","register","dataProcessor","prototype","registerUI","M","L","C","Q","O","Command","rotate","copyFrom","scale","PointHelper","point","PathMatrixHelper","layout","x","y","scaleX","scaleY","rotation","origin","command","j","len","setPoint","center","startIndex","getAngle","half","angle","connect","offset","bevelJoin","roundJoin","path","angleSide","triangle","dashPath","arrow","triangleFlip","circleLine","circle","squareLine","square","diamondLine","DataHelper","clone","diamond","arrows","mark","getArrowPath","ui","from","to","size","connectOffset","hasDashPattern","pathData","strokeCap","strokeJoin","isObject","type","connectX","offsetX","push","Z","N","D","X","G","F","P","U","copy","getDistancePoint","connectPoint","first","second","last","now","PathArrowModule","list","addArrows","strokeWidth","dashPattern","__pathForRender","cornerRadius","clonePathForArrow","count","useStartArrow","copyPoints","pathForArrow","__pathForArrow","startArrowPath","endArrowPath","index","get","Plugin","add","UI","addAttr","assign","Paint","strokeArrow","_stroke","canvas","_renderOptions","beginPath","__drawPathByData","stroke"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"arrow.esm.min.js","sources":["../../../../../node_modules/.pnpm/@rollup+plugin-typescript@11.1.6_rollup@4.44.2_tslib@2.8.1_typescript@5.8.3/node_modules/tslib/tslib.es6.js","../../../../../../src/in/packages/arrow/src/data/ArrowData.ts","../../../../../../src/in/packages/arrow/src/decorator.ts","../../../../../../src/in/packages/arrow/src/Arrow.ts","../../../../../../src/in/packages/arrow/src/PathMatrixHelper.ts","../../../../../../src/in/packages/arrow/src/data/arrows.ts","../../../../../../src/in/packages/arrow/src/PathArrowModule.ts","../../../../../../src/in/packages/arrow/src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { IArrowData } from \"@leafer-ui/interface\"\nimport { LineData } from '@leafer-ui/draw'\n\n\nexport class ArrowData extends LineData implements IArrowData {\n\n}\n","import { IValue, IUI } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, doStrokeType, doBoundsType } from '@leafer-ui/draw'\n\nexport function arrowType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: IValue) {\n if (this.__setAttr(key, value)) {\n const data = (this as IUI).__\n const useArrow = data.startArrow !== 'none' || data.endArrow !== 'none'\n if (data.__useArrow !== useArrow) doBoundsType(this)\n data.__useArrow = useArrow\n doStrokeType(this)\n }\n }\n }))\n}","import { IArrow, IArrowData, IArrowInputData, IArrowStyle, IPathDataArrow } from '@leafer-ui/interface'\nimport { Line, registerUI, dataProcessor, PathArrow } from '@leafer-ui/draw'\n\nimport { ArrowData } from './data/ArrowData'\nimport { arrowType } from './decorator'\n\n\n@registerUI()\nexport class Arrow extends Line implements IArrow {\n\n public get __tag() { return 'Arrow' }\n\n @dataProcessor(ArrowData)\n declare public __: IArrowData\n\n @arrowType('angle')\n declare public endArrow?: IArrowStyle\n\n constructor(data?: IArrowInputData) {\n super(data)\n this.__.__useArrow = true\n }\n\n static registerArrow(name: string, data: IPathDataArrow): void {\n PathArrow.register(name, data)\n }\n\n}","import { IPathCommandData, IPointData } from '@leafer-ui/interface'\nimport { PathCommandMap as Command, PointHelper } from '@leafer-ui/draw'\n\n\nconst { M, L, C, Q, O } = Command\nconst { rotate, copyFrom, scale } = PointHelper\nconst point: IPointData = {} as IPointData\n\nexport const PathMatrixHelper = {\n\n layout(data: IPathCommandData, x: number, y: number, scaleX?: number, scaleY?: number, rotation?: number, origin?: IPointData): void {\n let command: number, i = 0, j: number, len = data.length\n\n while (i < len) {\n command = data[i]\n switch (command) {\n case M: // moveto(x, y)\n case L: // lineto(x, y)\n setPoint(data, i + 1, x, y, scaleX, scaleY, rotation, origin)\n i += 3\n break\n case C: // bezierCurveTo(x1, y1, x2, y2, x, y)\n for (j = 1; j < 6; j += 2) setPoint(data, i + j, x, y, scaleX, scaleY, rotation, origin)\n i += 7\n break\n case Q: // quadraticCurveTo(x1, y1, x, y)\n for (j = 1; j < 4; j += 2) setPoint(data, i + j, x, y, scaleX, scaleY, rotation, origin)\n i += 5\n break\n case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n data[i + 1] += x\n data[i + 2] += y\n if (scaleX) data[i + 3] *= scaleX\n if (rotation) {\n data[i + 4] += rotation\n data[i + 5] += rotation\n }\n i += 7\n break\n }\n }\n },\n\n rotate(data: IPathCommandData, rotation?: number, center?: IPointData): void {\n PathMatrixHelper.layout(data, 0, 0, 1, 1, rotation, center)\n }\n\n}\n\n\nfunction setPoint(data: IPathCommandData, startIndex: number, x: number, y: number, scaleX?: number, scaleY?: number, rotation?: number, origin?: IPointData): void {\n copyFrom(point, data[startIndex], data[startIndex + 1])\n if (rotation) rotate(point, rotation, origin)\n if (scaleX) scale(point, scaleX, scaleY)\n data[startIndex] = x + point.x\n data[startIndex + 1] = y + point.y\n}","import { IArrowStyle, IArrowTypeData, IPathDataArrow, IPathDataArrowMap, IUI, IPointData, IArrowPathData } from '@leafer-ui/interface'\nimport { DataHelper, PointHelper, isObject } from '@leafer-ui/draw'\n\nimport { PathMatrixHelper } from '../PathMatrixHelper'\n\n\nconst { layout, rotate } = PathMatrixHelper\nconst { getAngle } = PointHelper\nconst zero = { x: 0 }, half = { x: -0.5 }\n\nconst angle: IPathDataArrow = { connect: zero, offset: { x: -0.71, bevelJoin: 0.36, roundJoin: 0.22 }, path: [1, -3, -3, 2, 0, 0, 2, -3, 3] } // moveTo(-3, -3).lineTo(0, 0).lineTo(-3, 3)\nconst angleSide: IPathDataArrow = { connect: half, offset: { x: -1.207, bevelJoin: 0.854, roundJoin: 0.707 }, path: [1, -3, -3, 2, 0, 0, 2, -1, 0] } // moveTo(-3, -3).lineTo(0, 0).lineTo(-1, 0)\n\nconst triangleLinePath = [1, -3, 0, 2, -3, -2, 2, 0, 0, 2, -3, 2, 2, -3, 0] // moveTo(-3, 0).lineTo(-3, -2).lineTo(0, 0).lineTo(-3, 2).lineTo(-3, 0)\nconst triangleFill: IPathDataArrow = { connect: zero, offset: { x: -0.9, bevelJoin: 0.624, roundJoin: 0.4 }, path: [...triangleLinePath] }\nconst triangle: IPathDataArrow = DataHelper.clone(triangleFill) as IPathDataArrow\ntriangle.path = [...triangleLinePath, 1, -2.05, 1.1, 2, -2.05, -1.1] // fill: moveTo(-2.05, 1.1).lineTo(-2.05, -1.1)\ntriangle.dashPath = [1, -2, 0, 2, -0.5, 0]\n\nconst triangleFlipFill: IPathDataArrow = { connect: zero, offset: half, path: [...triangleFill.path] } // triangle rotate 180\nconst triangleFlip: IPathDataArrow = { connect: zero, offset: half, path: [...triangle.path], dashPath: [1, -2.5, 0, 2, -1, 0] } // triangle rotate 180\nrotate(triangleFlipFill.path, 180, { x: -1.5, y: 0 })\nrotate(triangleFlip.path, 180, { x: -1.5, y: 0 })\n\nconst arrowLinePath = [1, -3, 0, 2, -3.5, -1.8, 2, 0, 0, 2, -3.5, 1.8, 2, -3, 0] // moveTo(-3, 0).lineTo(-3.5, -1.8).lineTo(0, 0).lineTo(-3.5, 1.8).lineTo(-3, 0)\nconst arrowFill: IPathDataArrow = { connect: zero, offset: { x: -1.1, bevelJoin: 0.872, roundJoin: 0.6 }, path: [...arrowLinePath] }\nconst arrow: IPathDataArrow = DataHelper.clone(arrowFill) as IPathDataArrow\narrow.path = [...arrowLinePath, 1, -2.25, 0.95, 2, -2.25, -0.95] // fill: moveTo(-2.25, 0.95).lineTo(-2.25, -0.95) \narrow.dashPath = [1, -3, 0, 2, -0.5, 0]\n\nconst circleLine: IPathDataArrow = { connect: { x: -1.8 }, path: [1, 1.8, -0.1, 2, 1.8, 0, 26, 0, 0, 1.8, 0, 359, 0], } //drawArc(0, 0, 2, 0, 360)\nconst circleFill: IPathDataArrow = { connect: { x: 0.5 }, path: [...circleLine.path] }\nconst circle: IPathDataArrow = DataHelper.clone(circleFill) as IPathDataArrow\ncircle.path = [...circleLine.path, 1, 0, 0, 26, 0, 0, 1, 0, 360, 0] // fill: moveTo(0,0).arc(0, 0, 1, 0, 360)\ncircle.dashPath = [1, -0.5, 0, 2, 0.5, 0]\n\nconst squareLine: IPathDataArrow = { connect: { x: -1.4 }, path: [1, -1.4, 0, 2, -1.4, -1.4, 2, 1.4, -1.4, 2, 1.4, 1.4, 2, -1.4, 1.4, 2, -1.4, 0] } // moveTo(-1.4, 0).lineTo(-1.4, -1.4).lineTo(1.4, -1.4).lineTo(1.4, 1.4).lineTo(-1.4, 1.4).lineTo(-1.4, 0)\nconst squareFill: IPathDataArrow = { path: [...squareLine.path] }\nconst square: IPathDataArrow = { path: [...squareLine.path, 2, -1.4, -0.49, 2, 1, -0.49, 1, -1.4, 0.49, 2, 1, 0.49] } // fill: moveTo(-1.4, -0.49).lineTo(1, -0.49).moveTo(-1.4, 0.49).lineTo(1, 0.49)\n\nconst diamondLine = DataHelper.clone(squareLine) as IPathDataArrow // square-line rotate 45\ndiamondLine.connect.x = -1.9\nconst diamondFill: IPathDataArrow = DataHelper.clone(squareFill) as IPathDataArrow // squareFill rotate 45\nconst diamond: IPathDataArrow = DataHelper.clone(square) as IPathDataArrow // square rotate 45\nrotate(diamondLine.path, 45)\nrotate(diamondFill.path, 45)\nrotate(diamond.path, 45)\n\nconst mark: IPathDataArrow = { offset: half, path: [1, 0, -2, 2, 0, 2] } // moveTo(0, -2).lineTo(0, 2)\n\nexport const arrows: IPathDataArrowMap = {\n angle,\n 'angle-side': angleSide,\n\n arrow,\n triangle,\n 'triangle-flip': triangleFlip,\n\n circle,\n 'circle-line': circleLine,\n\n square,\n 'square-line': squareLine,\n\n diamond,\n 'diamond-line': diamondLine,\n\n mark,\n}\n\nexport const fillArrows: IPathDataArrowMap = {\n triangle: triangleFill,\n 'triangle-flip': triangleFlipFill,\n arrow: arrowFill,\n circle: circleFill,\n square: squareFill,\n diamond: diamondFill\n}\n\nexport function getArrowPath(ui: IUI, arrow: IArrowStyle, from: IPointData, to: IPointData, size: number, connectOffset: IPointData, hasDashPattern?: boolean): IArrowPathData {\n let pathData: IPathDataArrow, scale = 1, rotation = 0, fill: boolean\n\n const { strokeCap, strokeJoin } = ui.__\n\n if (isObject(arrow)) {\n if ((arrow as IArrowTypeData).type) {\n scale = (arrow as IArrowTypeData).scale || 1\n rotation = (arrow as IArrowTypeData).rotation || 0\n pathData = arrows[(arrow as IArrowTypeData).type]\n if (scale > 1) { // 放大后,优先使用fill路径数据\n const fillData = fillArrows[(arrow as IArrowTypeData).type]\n if (fillData) pathData = fillData, fill = true\n }\n } else pathData = arrow as IPathDataArrow\n } else {\n pathData = arrows[arrow]\n }\n\n if (!fill) fill = pathData.fill\n\n const { offset, connect, path, dashPath } = pathData\n\n let connectX = connect ? connect.x * scale : 0\n let offsetX = offset ? offset.x : 0\n\n const data = [...path]\n if (hasDashPattern && dashPath) data.push(...dashPath)\n\n if (strokeCap !== 'none') connectX -= 0.5\n if (offset) {\n if (strokeJoin === 'round' && offset.roundJoin) offsetX += offset.roundJoin\n else if (strokeJoin === 'bevel' && offset.bevelJoin) offsetX += offset.bevelJoin\n }\n\n if (scale !== 1) layout(data, 0, 0, scale, scale) // 缩放箭头比例\n\n if (offsetX) layout(data, offsetX, 0)\n\n layout(data, to.x, to.y, size, size, getAngle(from, to) + rotation) // scale rotate 先围绕 data 数据应用后,再加 to\n\n connectOffset.x = (connectX + offsetX) * size\n\n const arrowData: IArrowPathData = { data }\n if (fill) arrowData.fill = fill\n return arrowData\n}","import { IPathArrowModule, IUI, IPathCommandData, IPointData, IPathDataArrow, IArrowPathData } from '@leafer-ui/interface'\nimport { PathCommandMap as Command, PointHelper, DataHelper } from '@leafer-ui/draw'\n\nimport { arrows, fillArrows, getArrowPath } from './data/arrows'\n\n\nconst { M, L, C, Q, Z, N, D, X, G, F, O, P, U } = Command\nconst { copy, copyFrom, getDistancePoint, isSame } = PointHelper\nconst { stintSet } = DataHelper\n\nconst connectPoint = {} as IPointData\nconst first = {} as IPointData, second = {} as IPointData\nconst old = {} as IPointData, last = {} as IPointData, now = {} as IPointData\n\nexport const PathArrowModule: IPathArrowModule = {\n\n list: arrows,\n fillList: fillArrows,\n\n addArrows(ui: IUI, updateCache?: boolean): void {\n const uData = ui.__\n const { startArrow, endArrow, __strokeWidth: strokeWidth, dashPattern, __pathForRender: data, cornerRadius } = uData\n\n const clonePathForArrow = !cornerRadius // cornerRadius会创建新的render路径,所以不用再clone\n\n if (!updateCache) uData.__strokeWidthCache = strokeWidth\n\n let startArrowPath: IArrowPathData, singleStartArrow: boolean, endArrowPath: IArrowPathData, singleEndArrow: boolean\n let command: number, i = 0, len = data.length, count = 0, useStartArrow = startArrow && startArrow !== 'none'\n\n while (i < len) {\n\n command = data[i]\n\n switch (command) {\n case M: // moveto(x, y)\n case L: // lineto(x, y)\n if (count < 2 || i + 6 >= len) { // 3 + 3 可能是两个连续L命令结束\n copy(old, now)\n copyFrom(now, data[i + 1], data[i + 2])\n if (!count && useStartArrow) copy(first, now)\n }\n i += 3\n break\n case C: // bezierCurveTo(x1, y1, x2, y2, x, y)\n if (count === 1 || i + 7 >= len - 3) {\n copyPoints(data, last, now, i + 3) // C 或 C + L结束\n old.x = data[i + 1], old.y = data[i + 2]\n }\n i += 7\n break\n case Q: // quadraticCurveTo(x1, y1, x, y)\n if (count === 1 || i + 5 >= len - 3) {\n copyPoints(data, last, now, i + 1) // Q 或 Q + L结束\n copy(old, last)\n }\n i += 5\n break\n case Z: // closepath()\n return // no arrow\n\n // canvas command\n\n case N: // rect(x, y, width, height)\n i += 5\n break\n case D: // roundRect(x, y, width, height, radius1, radius2, radius3, radius4)\n i += 9\n break\n case X: // simple roundRect(x, y, width, height, radius)\n i += 6\n break\n case G: // ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)\n i += 9\n break\n case F: // simple ellipse(x, y, radiusX, radiusY)\n i += 5\n break\n case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n i += 7\n break\n case P: // simple arc(x, y, radius)\n i += 4\n break\n case U: // arcTo(x1, y1, x2, y2, radius)\n if (count === 1 || i + 6 >= len - 3) { // U 或 U + L结束\n copyPoints(data, last, now, i + 1)\n copy(old, last)\n if (i + 6 !== len) { // 避免与结束点重合\n now.x -= (now.x - last.x) / 10\n now.y -= (now.y - last.y) / 10\n }\n }\n i += 6\n break\n }\n\n count++\n\n if (count === 1 && command !== M) return // no arrow\n if (count === 2 && useStartArrow) copy(second, command === L ? now : (isSame(old, first) ? last : old)) // 获取第二个点, 防止C命令起点和控制点相同的情况\n\n if (i === len) {\n const path = uData.__pathForRender = clonePathForArrow ? [...data] : data\n\n if (useStartArrow) {\n startArrowPath = getArrowPath(ui, startArrow, second, first, strokeWidth, connectPoint, !!dashPattern)\n singleStartArrow = (startArrowPath.fill || dashPattern) as boolean\n if (!singleStartArrow) path.push(...startArrowPath.data)\n\n if (connectPoint.x) {\n getDistancePoint(first, second, -connectPoint.x, true)\n path[1] = second.x\n path[2] = second.y\n }\n }\n\n if (endArrow && endArrow !== 'none') {\n if (isSame(last, now)) copy(last, old) // 防止C命令结束点和控制点相同的情况\n\n endArrowPath = getArrowPath(ui, endArrow, last, now, strokeWidth, connectPoint, !!dashPattern)\n singleEndArrow = (endArrowPath.fill || dashPattern) as boolean\n if (!singleEndArrow) path.push(...endArrowPath.data)\n\n if (connectPoint.x) {\n getDistancePoint(now, last, -connectPoint.x, true)\n let index: number\n switch (command) {\n case L: //lineto(x, y)\n index = i - 3 + 1\n break\n case C: //bezierCurveTo(x1, y1, x2, y2, x, y)\n index = i - 7 + 5\n break\n case Q: //quadraticCurveTo(x1, y1, x, y)\n index = i - 5 + 3\n break\n case U: // arcTo(x1, y1, x2, y2, radius)\n index = i - 6 + 3\n break\n }\n if (index) setPoint(path, last, index)\n }\n }\n\n } else {\n copy(last, now)\n }\n\n stintSet(uData, '__startArrowPath', singleStartArrow && startArrowPath)\n stintSet(uData, '__endArrowPath', singleEndArrow && endArrowPath)\n }\n\n\n },\n\n updateArrow(ui: IUI): void {\n const data = ui.__\n if (data.strokeScaleFixed) {\n if (data.__strokeWidthCache !== data.__strokeWidth) {\n ui.__updateRenderPath(true)\n }\n }\n },\n\n register(name: string, data: IPathDataArrow, fillData?: IPathDataArrow): void {\n this.list[name] = data\n if (fillData) this.fillList[name] = data\n },\n\n get(name: string): IPathDataArrow {\n return this.list[name]\n }\n\n}\n\n\n\nfunction copyPoints(data: IPathCommandData, from: IPointData, to: IPointData, startIndex: number): void {\n copyFrom(from, data[startIndex], data[startIndex + 1])\n copyFrom(to, data[startIndex + 2], data[startIndex + 3])\n}\n\nfunction setPoint(data: IPathCommandData, point: IPointData, startIndex: number): void {\n data[startIndex] = point.x\n data[startIndex + 1] = point.y\n}","export { Arrow } from './Arrow'\nexport { ArrowData } from './data/ArrowData'\nexport { PathArrowModule } from './PathArrowModule'\nexport { PathMatrixHelper } from './PathMatrixHelper'\nexport { arrowType } from './decorator'\n\nimport { IUI, ILeaferCanvas, IRenderOptions } from '@leafer-ui/interface'\nimport { PathArrow, UI, Plugin, Paint } from '@leafer-ui/draw'\nimport { PathArrowModule } from './PathArrowModule'\nimport { arrowType } from './decorator'\n\n\nPlugin.add('arrow')\n\n\n// addAttr\nUI.addAttr('startArrow', 'none', arrowType)\nUI.addAttr('endArrow', 'none', arrowType)\n\n\nObject.assign(PathArrow, PathArrowModule)\nObject.assign(Paint, {\n strokeArrow(stroke: string, ui: IUI, canvas: ILeaferCanvas, _renderOptions: IRenderOptions): void {\n const { __startArrowPath, __endArrowPath, dashPattern } = ui.__\n if (dashPattern) canvas.dashPattern = null // fix: dashPattern Arrow\n\n if (__startArrowPath) {\n canvas.beginPath()\n ui.__drawPathByData(canvas, __startArrowPath.data)\n canvas.stroke()\n if (__startArrowPath.fill) {\n canvas.fillStyle = stroke\n canvas.fill()\n }\n }\n\n if (__endArrowPath) {\n canvas.beginPath()\n ui.__drawPathByData(canvas, __endArrowPath.data)\n canvas.stroke()\n if (__endArrowPath.fill) {\n canvas.fillStyle = stroke\n canvas.fill()\n }\n }\n }\n})"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","SuppressedError","ArrowData","LineData","arrowType","defaultValue","decorateLeafAttr","attr","set","value","this","__setAttr","data","__","useArrow","startArrow","endArrow","__useArrow","doBoundsType","doStrokeType","Arrow","Line","__tag","constructor","super","registerArrow","name","PathArrow","register","dataProcessor","prototype","registerUI","M","L","C","Q","O","Command","rotate","copyFrom","scale","PointHelper","point","PathMatrixHelper","layout","x","y","scaleX","scaleY","rotation","origin","command","j","len","setPoint","center","startIndex","getAngle","zero","half","angle","connect","offset","bevelJoin","roundJoin","path","angleSide","triangleLinePath","triangleFill","triangle","DataHelper","clone","dashPath","triangleFlipFill","triangleFlip","arrowLinePath","arrowFill","arrow","circleLine","circleFill","circle","squareLine","squareFill","square","diamondLine","diamondFill","diamond","arrows","mark","fillArrows","getArrowPath","ui","from","to","size","connectOffset","hasDashPattern","pathData","fill","strokeCap","strokeJoin","isObject","type","fillData","connectX","offsetX","push","arrowData","Z","N","D","X","G","F","P","U","copy","getDistancePoint","isSame","stintSet","connectPoint","first","second","old","last","now","PathArrowModule","list","fillList","addArrows","updateCache","uData","__strokeWidth","strokeWidth","dashPattern","__pathForRender","cornerRadius","clonePathForArrow","startArrowPath","singleStartArrow","endArrowPath","singleEndArrow","__strokeWidthCache","count","useStartArrow","copyPoints","index","updateArrow","strokeScaleFixed","__updateRenderPath","get","Plugin","add","UI","addAttr","assign","Paint","strokeArrow","stroke","canvas","_renderOptions","__startArrowPath","__endArrowPath","beginPath","__drawPathByData","fillStyle"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/arrow.js CHANGED
@@ -91,11 +91,13 @@ this.LeaferIN.arrow = function(exports, draw) {
91
91
  }
92
92
  const {layout: layout, rotate: rotate} = PathMatrixHelper;
93
93
  const {getAngle: getAngle} = draw.PointHelper;
94
- const half = {
94
+ const zero = {
95
+ x: 0
96
+ }, half = {
95
97
  x: -.5
96
98
  };
97
99
  const angle = {
98
- connect: half,
100
+ connect: zero,
99
101
  offset: {
100
102
  x: -.71,
101
103
  bevelJoin: .36,
@@ -113,61 +115,83 @@ this.LeaferIN.arrow = function(exports, draw) {
113
115
  path: [ 1, -3, -3, 2, 0, 0, 2, -1, 0 ]
114
116
  };
115
117
  const triangleLinePath = [ 1, -3, 0, 2, -3, -2, 2, 0, 0, 2, -3, 2, 2, -3, 0 ];
116
- const triangle = {
117
- connect: half,
118
+ const triangleFill = {
119
+ connect: zero,
118
120
  offset: {
119
121
  x: -.9,
120
122
  bevelJoin: .624,
121
123
  roundJoin: .4
122
124
  },
123
- path: [ ...triangleLinePath, 1, -2.05, 1.1, 2, -2.05, -1.1 ],
124
- dashPath: [ 1, -2, 0, 2, -.5, 0 ]
125
+ path: [ ...triangleLinePath ]
125
126
  };
126
- const arrowLinePath = [ 1, -3, 0, 2, -3.5, -1.8, 2, 0, 0, 2, -3.5, 1.8, 2, -3, 0 ];
127
- const arrow = {
128
- connect: half,
129
- offset: {
130
- x: -1.1,
131
- bevelJoin: .872,
132
- roundJoin: .6
133
- },
134
- path: [ ...arrowLinePath, 1, -2.25, .95, 2, -2.25, -.95 ],
135
- dashPath: [ 1, -3, 0, 2, -.5, 0 ]
127
+ const triangle = draw.DataHelper.clone(triangleFill);
128
+ triangle.path = [ ...triangleLinePath, 1, -2.05, 1.1, 2, -2.05, -1.1 ];
129
+ triangle.dashPath = [ 1, -2, 0, 2, -.5, 0 ];
130
+ const triangleFlipFill = {
131
+ connect: zero,
132
+ offset: half,
133
+ path: [ ...triangleFill.path ]
136
134
  };
137
135
  const triangleFlip = {
136
+ connect: zero,
138
137
  offset: half,
139
138
  path: [ ...triangle.path ],
140
139
  dashPath: [ 1, -2.5, 0, 2, -1, 0 ]
141
140
  };
141
+ rotate(triangleFlipFill.path, 180, {
142
+ x: -1.5,
143
+ y: 0
144
+ });
142
145
  rotate(triangleFlip.path, 180, {
143
146
  x: -1.5,
144
147
  y: 0
145
148
  });
149
+ const arrowLinePath = [ 1, -3, 0, 2, -3.5, -1.8, 2, 0, 0, 2, -3.5, 1.8, 2, -3, 0 ];
150
+ const arrowFill = {
151
+ connect: zero,
152
+ offset: {
153
+ x: -1.1,
154
+ bevelJoin: .872,
155
+ roundJoin: .6
156
+ },
157
+ path: [ ...arrowLinePath ]
158
+ };
159
+ const arrow = draw.DataHelper.clone(arrowFill);
160
+ arrow.path = [ ...arrowLinePath, 1, -2.25, .95, 2, -2.25, -.95 ];
161
+ arrow.dashPath = [ 1, -3, 0, 2, -.5, 0 ];
146
162
  const circleLine = {
147
163
  connect: {
148
- x: -1.3
164
+ x: -1.8
149
165
  },
150
166
  path: [ 1, 1.8, -.1, 2, 1.8, 0, 26, 0, 0, 1.8, 0, 359, 0 ]
151
167
  };
152
- const circle = {
168
+ const circleFill = {
153
169
  connect: {
154
170
  x: .5
155
171
  },
156
- path: [ ...circleLine.path, 1, 0, 0, 26, 0, 0, 1, 0, 360, 0 ],
157
- dashPath: [ 1, -.5, 0, 2, .5, 0 ]
172
+ path: [ ...circleLine.path ]
158
173
  };
174
+ const circle = draw.DataHelper.clone(circleFill);
175
+ circle.path = [ ...circleLine.path, 1, 0, 0, 26, 0, 0, 1, 0, 360, 0 ];
176
+ circle.dashPath = [ 1, -.5, 0, 2, .5, 0 ];
159
177
  const squareLine = {
160
178
  connect: {
161
- x: -1.3
179
+ x: -1.4
162
180
  },
163
181
  path: [ 1, -1.4, 0, 2, -1.4, -1.4, 2, 1.4, -1.4, 2, 1.4, 1.4, 2, -1.4, 1.4, 2, -1.4, 0 ]
164
182
  };
183
+ const squareFill = {
184
+ path: [ ...squareLine.path ]
185
+ };
165
186
  const square = {
166
187
  path: [ ...squareLine.path, 2, -1.4, -.49, 2, 1, -.49, 1, -1.4, .49, 2, 1, .49 ]
167
188
  };
168
189
  const diamondLine = draw.DataHelper.clone(squareLine);
190
+ diamondLine.connect.x = -1.9;
191
+ const diamondFill = draw.DataHelper.clone(squareFill);
169
192
  const diamond = draw.DataHelper.clone(square);
170
193
  rotate(diamondLine.path, 45);
194
+ rotate(diamondFill.path, 45);
171
195
  rotate(diamond.path, 45);
172
196
  const mark = {
173
197
  offset: half,
@@ -187,19 +211,33 @@ this.LeaferIN.arrow = function(exports, draw) {
187
211
  "diamond-line": diamondLine,
188
212
  mark: mark
189
213
  };
214
+ const fillArrows = {
215
+ triangle: triangleFill,
216
+ "triangle-flip": triangleFlipFill,
217
+ arrow: arrowFill,
218
+ circle: circleFill,
219
+ square: squareFill,
220
+ diamond: diamondFill
221
+ };
190
222
  function getArrowPath(ui, arrow, from, to, size, connectOffset, hasDashPattern) {
191
- let pathData, scale;
223
+ let pathData, scale = 1, rotation = 0, fill;
192
224
  const {strokeCap: strokeCap, strokeJoin: strokeJoin} = ui.__;
193
225
  if (draw.isObject(arrow)) {
194
226
  if (arrow.type) {
195
- scale = arrow.scale;
227
+ scale = arrow.scale || 1;
228
+ rotation = arrow.rotation || 0;
196
229
  pathData = arrows[arrow.type];
230
+ if (scale > 1) {
231
+ const fillData = fillArrows[arrow.type];
232
+ if (fillData) pathData = fillData, fill = true;
233
+ }
197
234
  } else pathData = arrow;
198
235
  } else {
199
236
  pathData = arrows[arrow];
200
237
  }
238
+ if (!fill) fill = pathData.fill;
201
239
  const {offset: offset, connect: connect, path: path, dashPath: dashPath} = pathData;
202
- let connectX = connect ? connect.x : 0;
240
+ let connectX = connect ? connect.x * scale : 0;
203
241
  let offsetX = offset ? offset.x : 0;
204
242
  const data = [ ...path ];
205
243
  if (hasDashPattern && dashPath) data.push(...dashPath);
@@ -207,22 +245,31 @@ this.LeaferIN.arrow = function(exports, draw) {
207
245
  if (offset) {
208
246
  if (strokeJoin === "round" && offset.roundJoin) offsetX += offset.roundJoin; else if (strokeJoin === "bevel" && offset.bevelJoin) offsetX += offset.bevelJoin;
209
247
  }
210
- if (scale) layout(data, 0, 0, scale, scale);
248
+ if (scale !== 1) layout(data, 0, 0, scale, scale);
211
249
  if (offsetX) layout(data, offsetX, 0);
212
- layout(data, to.x, to.y, size, size, getAngle(from, to));
250
+ layout(data, to.x, to.y, size, size, getAngle(from, to) + rotation);
213
251
  connectOffset.x = (connectX + offsetX) * size;
214
- return data;
252
+ const arrowData = {
253
+ data: data
254
+ };
255
+ if (fill) arrowData.fill = fill;
256
+ return arrowData;
215
257
  }
216
258
  const {M: M, L: L, C: C, Q: Q, Z: Z, N: N, D: D, X: X, G: G, F: F, O: O, P: P, U: U} = draw.PathCommandMap;
217
- const {copy: copy, copyFrom: copyFrom, getDistancePoint: getDistancePoint} = draw.PointHelper;
259
+ const {copy: copy, copyFrom: copyFrom, getDistancePoint: getDistancePoint, isSame: isSame} = draw.PointHelper;
260
+ const {stintSet: stintSet} = draw.DataHelper;
218
261
  const connectPoint = {};
219
262
  const first = {}, second = {};
220
- const last = {}, now = {};
263
+ const old = {}, last = {}, now = {};
221
264
  const PathArrowModule = {
222
265
  list: arrows,
223
- addArrows(ui) {
224
- const {startArrow: startArrow, endArrow: endArrow, strokeWidth: strokeWidth, dashPattern: dashPattern, __pathForRender: data, cornerRadius: cornerRadius} = ui.__;
266
+ fillList: fillArrows,
267
+ addArrows(ui, updateCache) {
268
+ const uData = ui.__;
269
+ const {startArrow: startArrow, endArrow: endArrow, __strokeWidth: strokeWidth, dashPattern: dashPattern, __pathForRender: data, cornerRadius: cornerRadius} = uData;
225
270
  const clonePathForArrow = !cornerRadius;
271
+ if (!updateCache) uData.__strokeWidthCache = strokeWidth;
272
+ let startArrowPath, singleStartArrow, endArrowPath, singleEndArrow;
226
273
  let command, i = 0, len = data.length, count = 0, useStartArrow = startArrow && startArrow !== "none";
227
274
  while (i < len) {
228
275
  command = data[i];
@@ -230,6 +277,7 @@ this.LeaferIN.arrow = function(exports, draw) {
230
277
  case M:
231
278
  case L:
232
279
  if (count < 2 || i + 6 >= len) {
280
+ copy(old, now);
233
281
  copyFrom(now, data[i + 1], data[i + 2]);
234
282
  if (!count && useStartArrow) copy(first, now);
235
283
  }
@@ -237,12 +285,18 @@ this.LeaferIN.arrow = function(exports, draw) {
237
285
  break;
238
286
 
239
287
  case C:
240
- if (count === 1 || i + 7 >= len - 3) copyPoints(data, last, now, i + 3);
288
+ if (count === 1 || i + 7 >= len - 3) {
289
+ copyPoints(data, last, now, i + 3);
290
+ old.x = data[i + 1], old.y = data[i + 2];
291
+ }
241
292
  i += 7;
242
293
  break;
243
294
 
244
295
  case Q:
245
- if (count === 1 || i + 5 >= len - 3) copyPoints(data, last, now, i + 1);
296
+ if (count === 1 || i + 5 >= len - 3) {
297
+ copyPoints(data, last, now, i + 1);
298
+ copy(old, last);
299
+ }
246
300
  i += 5;
247
301
  break;
248
302
 
@@ -280,6 +334,7 @@ this.LeaferIN.arrow = function(exports, draw) {
280
334
  case U:
281
335
  if (count === 1 || i + 6 >= len - 3) {
282
336
  copyPoints(data, last, now, i + 1);
337
+ copy(old, last);
283
338
  if (i + 6 !== len) {
284
339
  now.x -= (now.x - last.x) / 10;
285
340
  now.y -= (now.y - last.y) / 10;
@@ -290,13 +345,13 @@ this.LeaferIN.arrow = function(exports, draw) {
290
345
  }
291
346
  count++;
292
347
  if (count === 1 && command !== M) return;
293
- if (count === 2 && useStartArrow) copy(second, command === L ? now : last);
348
+ if (count === 2 && useStartArrow) copy(second, command === L ? now : isSame(old, first) ? last : old);
294
349
  if (i === len) {
295
- const path = ui.__.__pathForRender = clonePathForArrow ? [ ...data ] : data;
296
- const pathForArrow = ui.__.__pathForArrow = [];
350
+ const path = uData.__pathForRender = clonePathForArrow ? [ ...data ] : data;
297
351
  if (useStartArrow) {
298
- const startArrowPath = getArrowPath(ui, startArrow, second, first, strokeWidth, connectPoint, !!dashPattern);
299
- dashPattern ? pathForArrow.push(...startArrowPath) : path.push(...startArrowPath);
352
+ startArrowPath = getArrowPath(ui, startArrow, second, first, strokeWidth, connectPoint, !!dashPattern);
353
+ singleStartArrow = startArrowPath.fill || dashPattern;
354
+ if (!singleStartArrow) path.push(...startArrowPath.data);
300
355
  if (connectPoint.x) {
301
356
  getDistancePoint(first, second, -connectPoint.x, true);
302
357
  path[1] = second.x;
@@ -304,8 +359,10 @@ this.LeaferIN.arrow = function(exports, draw) {
304
359
  }
305
360
  }
306
361
  if (endArrow && endArrow !== "none") {
307
- const endArrowPath = getArrowPath(ui, endArrow, last, now, strokeWidth, connectPoint, !!dashPattern);
308
- dashPattern ? pathForArrow.push(...endArrowPath) : path.push(...endArrowPath);
362
+ if (isSame(last, now)) copy(last, old);
363
+ endArrowPath = getArrowPath(ui, endArrow, last, now, strokeWidth, connectPoint, !!dashPattern);
364
+ singleEndArrow = endArrowPath.fill || dashPattern;
365
+ if (!singleEndArrow) path.push(...endArrowPath.data);
309
366
  if (connectPoint.x) {
310
367
  getDistancePoint(now, last, -connectPoint.x, true);
311
368
  let index;
@@ -332,10 +389,21 @@ this.LeaferIN.arrow = function(exports, draw) {
332
389
  } else {
333
390
  copy(last, now);
334
391
  }
392
+ stintSet(uData, "__startArrowPath", singleStartArrow && startArrowPath);
393
+ stintSet(uData, "__endArrowPath", singleEndArrow && endArrowPath);
335
394
  }
336
395
  },
337
- register(name, data) {
396
+ updateArrow(ui) {
397
+ const data = ui.__;
398
+ if (data.strokeScaleFixed) {
399
+ if (data.__strokeWidthCache !== data.__strokeWidth) {
400
+ ui.__updateRenderPath(true);
401
+ }
402
+ }
403
+ },
404
+ register(name, data, fillData) {
338
405
  this.list[name] = data;
406
+ if (fillData) this.fillList[name] = data;
339
407
  },
340
408
  get(name) {
341
409
  return this.list[name];
@@ -354,12 +422,26 @@ this.LeaferIN.arrow = function(exports, draw) {
354
422
  draw.UI.addAttr("endArrow", "none", arrowType);
355
423
  Object.assign(draw.PathArrow, PathArrowModule);
356
424
  Object.assign(draw.Paint, {
357
- strokeArrow(_stroke, ui, canvas, _renderOptions) {
358
- if (ui.__.dashPattern) {
425
+ strokeArrow(stroke, ui, canvas, _renderOptions) {
426
+ const {__startArrowPath: __startArrowPath, __endArrowPath: __endArrowPath, dashPattern: dashPattern} = ui.__;
427
+ if (dashPattern) canvas.dashPattern = null;
428
+ if (__startArrowPath) {
429
+ canvas.beginPath();
430
+ ui.__drawPathByData(canvas, __startArrowPath.data);
431
+ canvas.stroke();
432
+ if (__startArrowPath.fill) {
433
+ canvas.fillStyle = stroke;
434
+ canvas.fill();
435
+ }
436
+ }
437
+ if (__endArrowPath) {
359
438
  canvas.beginPath();
360
- ui.__drawPathByData(canvas, ui.__.__pathForArrow);
361
- canvas.dashPattern = null;
439
+ ui.__drawPathByData(canvas, __endArrowPath.data);
362
440
  canvas.stroke();
441
+ if (__endArrowPath.fill) {
442
+ canvas.fillStyle = stroke;
443
+ canvas.fill();
444
+ }
363
445
  }
364
446
  }
365
447
  });
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@leafer-ui/draw");function t(e,t,r,o){var a,n=arguments.length,s=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var c=e.length-1;c>=0;c--)(a=e[c])&&(s=(n<3?a(s):n>3?a(t,r,s):a(t,r))||s);return n>3&&s&&Object.defineProperty(t,r,s),s}"function"==typeof SuppressedError&&SuppressedError;class r extends e.LineData{}function o(t){return e.decorateLeafAttr(t,t=>e.attr({set(r){if(this.__setAttr(t,r)){const t=this.__,r="none"!==t.startArrow||"none"!==t.endArrow;t.__useArrow!==r&&e.doBoundsType(this),t.__useArrow=r,e.doStrokeType(this)}}}))}exports.Arrow=class extends e.Line{get __tag(){return"Arrow"}constructor(e){super(e),this.__.__useArrow=!0}static registerArrow(t,r){e.PathArrow.register(t,r)}},t([e.dataProcessor(r)],exports.Arrow.prototype,"__",void 0),t([o("angle")],exports.Arrow.prototype,"endArrow",void 0),exports.Arrow=t([e.registerUI()],exports.Arrow);const{M:a,L:n,C:s,Q:c,O:i}=e.PathCommandMap,{rotate:p,copyFrom:h,scale:l}=e.PointHelper,d={},u={layout(e,t,r,o,p,h,l){let d,u,_=0,x=e.length;for(;_<x;)switch(d=e[_],d){case a:case n:f(e,_+1,t,r,o,p,h,l),_+=3;break;case s:for(u=1;u<6;u+=2)f(e,_+u,t,r,o,p,h,l);_+=7;break;case c:for(u=1;u<4;u+=2)f(e,_+u,t,r,o,p,h,l);_+=5;break;case i:e[_+1]+=t,e[_+2]+=r,o&&(e[_+3]*=o),h&&(e[_+4]+=h,e[_+5]+=h),_+=7}},rotate(e,t,r){u.layout(e,0,0,1,1,t,r)}};function f(e,t,r,o,a,n,s,c){h(d,e[t],e[t+1]),s&&p(d,s,c),a&&l(d,a,n),e[t]=r+d.x,e[t+1]=o+d.y}const{layout:_,rotate:x}=u,{getAngle:w}=e.PointHelper,b={x:-.5},A={connect:b,offset:{x:-.71,bevelJoin:.36,roundJoin:.22},path:[1,-3,-3,2,0,0,2,-3,3]},y={connect:b,offset:{x:-1.207,bevelJoin:.854,roundJoin:.707},path:[1,-3,-3,2,0,0,2,-1,0]},P={connect:b,offset:{x:-.9,bevelJoin:.624,roundJoin:.4},path:[1,-3,0,2,-3,-2,2,0,0,2,-3,2,2,-3,0,1,-2.05,1.1,2,-2.05,-1.1],dashPath:[1,-2,0,2,-.5,0]},g={connect:b,offset:{x:-1.1,bevelJoin:.872,roundJoin:.6},path:[1,-3,0,2,-3.5,-1.8,2,0,0,2,-3.5,1.8,2,-3,0,1,-2.25,.95,2,-2.25,-.95],dashPath:[1,-3,0,2,-.5,0]},k={offset:b,path:[...P.path],dashPath:[1,-2.5,0,2,-1,0]};x(k.path,180,{x:-1.5,y:0});const J={connect:{x:-1.3},path:[1,1.8,-.1,2,1.8,0,26,0,0,1.8,0,359,0]},v={connect:{x:.5},path:[...J.path,1,0,0,26,0,0,1,0,360,0],dashPath:[1,-.5,0,2,.5,0]},m={connect:{x:-1.3},path:[1,-1.4,0,2,-1.4,-1.4,2,1.4,-1.4,2,1.4,1.4,2,-1.4,1.4,2,-1.4,0]},D={path:[...m.path,2,-1.4,-.49,2,1,-.49,1,-1.4,.49,2,1,.49]},O=e.DataHelper.clone(m),F=e.DataHelper.clone(D);x(O.path,45),x(F.path,45);const j={angle:A,"angle-side":y,arrow:g,triangle:P,"triangle-flip":k,circle:v,"circle-line":J,square:D,"square-line":m,diamond:F,"diamond-line":O,mark:{offset:b,path:[1,0,-2,2,0,2]}};function H(t,r,o,a,n,s,c){let i,p;const{strokeCap:h,strokeJoin:l}=t.__;e.isObject(r)?r.type?(p=r.scale,i=j[r.type]):i=r:i=j[r];const{offset:d,connect:u,path:f,dashPath:x}=i;let b=u?u.x:0,A=d?d.x:0;const y=[...f];return c&&x&&y.push(...x),"none"!==h&&(b-=.5),d&&("round"===l&&d.roundJoin?A+=d.roundJoin:"bevel"===l&&d.bevelJoin&&(A+=d.bevelJoin)),p&&_(y,0,0,p,p),A&&_(y,A,0),_(y,a.x,a.y,n,n,w(o,a)),s.x=(b+A)*n,y}const{M:M,L:R,C:C,Q:L,Z:U,N:q,D:I,X:S,G:T,F:B,O:E,P:Q,U:G}=e.PathCommandMap,{copy:N,copyFrom:W,getDistancePoint:X}=e.PointHelper,Z={},z={},K={},V={},Y={},$={list:j,addArrows(e){const{startArrow:t,endArrow:r,strokeWidth:o,dashPattern:a,__pathForRender:n,cornerRadius:s}=e.__,c=!s;let i,p=0,h=n.length,l=0,d=t&&"none"!==t;for(;p<h;){switch(i=n[p],i){case M:case R:(l<2||p+6>=h)&&(W(Y,n[p+1],n[p+2]),!l&&d&&N(z,Y)),p+=3;break;case C:(1===l||p+7>=h-3)&&ee(n,V,Y,p+3),p+=7;break;case L:(1===l||p+5>=h-3)&&ee(n,V,Y,p+1),p+=5;break;case U:return;case q:p+=5;break;case I:p+=9;break;case S:p+=6;break;case T:p+=9;break;case B:p+=5;break;case E:p+=7;break;case Q:p+=4;break;case G:(1===l||p+6>=h-3)&&(ee(n,V,Y,p+1),p+6!==h&&(Y.x-=(Y.x-V.x)/10,Y.y-=(Y.y-V.y)/10)),p+=6}if(l++,1===l&&i!==M)return;if(2===l&&d&&N(K,i===R?Y:V),p===h){const s=e.__.__pathForRender=c?[...n]:n,h=e.__.__pathForArrow=[];if(d){const r=H(e,t,K,z,o,Z,!!a);a?h.push(...r):s.push(...r),Z.x&&(X(z,K,-Z.x,!0),s[1]=K.x,s[2]=K.y)}if(r&&"none"!==r){const t=H(e,r,V,Y,o,Z,!!a);if(a?h.push(...t):s.push(...t),Z.x){let e;switch(X(Y,V,-Z.x,!0),i){case R:e=p-3+1;break;case C:e=p-7+5;break;case L:e=p-5+3;break;case G:e=p-6+3}e&&te(s,V,e)}}}else N(V,Y)}},register(e,t){this.list[e]=t},get(e){return this.list[e]}};function ee(e,t,r,o){W(t,e[o],e[o+1]),W(r,e[o+2],e[o+3])}function te(e,t,r){e[r]=t.x,e[r+1]=t.y}e.Plugin.add("arrow"),e.UI.addAttr("startArrow","none",o),e.UI.addAttr("endArrow","none",o),Object.assign(e.PathArrow,$),Object.assign(e.Paint,{strokeArrow(e,t,r,o){t.__.dashPattern&&(r.beginPath(),t.__drawPathByData(r,t.__.__pathForArrow),r.dashPattern=null,r.stroke())}}),exports.ArrowData=r,exports.PathArrowModule=$,exports.PathMatrixHelper=u,exports.arrowType=o;
1
+ "use strict";var e=require("@leafer-ui/draw");function t(e,t,r,a){var o,n=arguments.length,s=n<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,r):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,a);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(s=(n<3?o(s):n>3?o(t,r,s):o(t,r))||s);return n>3&&s&&Object.defineProperty(t,r,s),s}"function"==typeof SuppressedError&&SuppressedError;class r extends e.LineData{}function a(t){return e.decorateLeafAttr(t,t=>e.attr({set(r){if(this.__setAttr(t,r)){const t=this.__,r="none"!==t.startArrow||"none"!==t.endArrow;t.__useArrow!==r&&e.doBoundsType(this),t.__useArrow=r,e.doStrokeType(this)}}}))}exports.Arrow=class extends e.Line{get __tag(){return"Arrow"}constructor(e){super(e),this.__.__useArrow=!0}static registerArrow(t,r){e.PathArrow.register(t,r)}},t([e.dataProcessor(r)],exports.Arrow.prototype,"__",void 0),t([a("angle")],exports.Arrow.prototype,"endArrow",void 0),exports.Arrow=t([e.registerUI()],exports.Arrow);const{M:o,L:n,C:s,Q:c,O:i}=e.PathCommandMap,{rotate:l,copyFrom:p,scale:h}=e.PointHelper,d={},f={layout(e,t,r,a,l,p,h){let d,f,u=0,x=e.length;for(;u<x;)switch(d=e[u],d){case o:case n:_(e,u+1,t,r,a,l,p,h),u+=3;break;case s:for(f=1;f<6;f+=2)_(e,u+f,t,r,a,l,p,h);u+=7;break;case c:for(f=1;f<4;f+=2)_(e,u+f,t,r,a,l,p,h);u+=5;break;case i:e[u+1]+=t,e[u+2]+=r,a&&(e[u+3]*=a),p&&(e[u+4]+=p,e[u+5]+=p),u+=7}},rotate(e,t,r){f.layout(e,0,0,1,1,t,r)}};function _(e,t,r,a,o,n,s,c){p(d,e[t],e[t+1]),s&&l(d,s,c),o&&h(d,o,n),e[t]=r+d.x,e[t+1]=a+d.y}const{layout:u,rotate:x}=f,{getAngle:w}=e.PointHelper,y={x:0},A={x:-.5},P={connect:y,offset:{x:-.71,bevelJoin:.36,roundJoin:.22},path:[1,-3,-3,2,0,0,2,-3,3]},b={connect:A,offset:{x:-1.207,bevelJoin:.854,roundJoin:.707},path:[1,-3,-3,2,0,0,2,-1,0]},k=[1,-3,0,2,-3,-2,2,0,0,2,-3,2,2,-3,0],g={connect:y,offset:{x:-.9,bevelJoin:.624,roundJoin:.4},path:[...k]},D=e.DataHelper.clone(g);D.path=[...k,1,-2.05,1.1,2,-2.05,-1.1],D.dashPath=[1,-2,0,2,-.5,0];const J={connect:y,offset:A,path:[...g.path]},v={connect:y,offset:A,path:[...D.path],dashPath:[1,-2.5,0,2,-1,0]};x(J.path,180,{x:-1.5,y:0}),x(v.path,180,{x:-1.5,y:0});const m=[1,-3,0,2,-3.5,-1.8,2,0,0,2,-3.5,1.8,2,-3,0],H={connect:y,offset:{x:-1.1,bevelJoin:.872,roundJoin:.6},path:[...m]},O=e.DataHelper.clone(H);O.path=[...m,1,-2.25,.95,2,-2.25,-.95],O.dashPath=[1,-3,0,2,-.5,0];const S={connect:{x:-1.8},path:[1,1.8,-.1,2,1.8,0,26,0,0,1.8,0,359,0]},C={connect:{x:.5},path:[...S.path]},L=e.DataHelper.clone(C);L.path=[...S.path,1,0,0,26,0,0,1,0,360,0],L.dashPath=[1,-.5,0,2,.5,0];const R={connect:{x:-1.4},path:[1,-1.4,0,2,-1.4,-1.4,2,1.4,-1.4,2,1.4,1.4,2,-1.4,1.4,2,-1.4,0]},j={path:[...R.path]},F={path:[...R.path,2,-1.4,-.49,2,1,-.49,1,-1.4,.49,2,1,.49]},M=e.DataHelper.clone(R);M.connect.x=-1.9;const q=e.DataHelper.clone(j),U=e.DataHelper.clone(F);x(M.path,45),x(q.path,45),x(U.path,45);const W={angle:P,"angle-side":b,arrow:O,triangle:D,"triangle-flip":v,circle:L,"circle-line":S,square:F,"square-line":R,diamond:U,"diamond-line":M,mark:{offset:A,path:[1,0,-2,2,0,2]}},B={triangle:g,"triangle-flip":J,arrow:H,circle:C,square:j,diamond:q};function I(t,r,a,o,n,s,c){let i,l,p=1,h=0;const{strokeCap:d,strokeJoin:f}=t.__;if(e.isObject(r))if(r.type){if(p=r.scale||1,h=r.rotation||0,i=W[r.type],p>1){const e=B[r.type];e&&(i=e,l=!0)}}else i=r;else i=W[r];l||(l=i.fill);const{offset:_,connect:x,path:y,dashPath:A}=i;let P=x?x.x*p:0,b=_?_.x:0;const k=[...y];c&&A&&k.push(...A),"none"!==d&&(P-=.5),_&&("round"===f&&_.roundJoin?b+=_.roundJoin:"bevel"===f&&_.bevelJoin&&(b+=_.bevelJoin)),1!==p&&u(k,0,0,p,p),b&&u(k,b,0),u(k,o.x,o.y,n,n,w(a,o)+h),s.x=(P+b)*n;const g={data:k};return l&&(g.fill=l),g}const{M:T,L:E,C:Q,Q:G,Z:N,N:X,D:Z,X:z,G:K,F:V,O:Y,P:$,U:ee}=e.PathCommandMap,{copy:te,copyFrom:re,getDistancePoint:ae,isSame:oe}=e.PointHelper,{stintSet:ne}=e.DataHelper,se={},ce={},ie={},le={},pe={},he={},de={list:W,fillList:B,addArrows(e,t){const r=e.__,{startArrow:a,endArrow:o,__strokeWidth:n,dashPattern:s,__pathForRender:c,cornerRadius:i}=r,l=!i;let p,h,d,f;t||(r.__strokeWidthCache=n);let _,u=0,x=c.length,w=0,y=a&&"none"!==a;for(;u<x;){switch(_=c[u],_){case T:case E:(w<2||u+6>=x)&&(te(le,he),re(he,c[u+1],c[u+2]),!w&&y&&te(ce,he)),u+=3;break;case Q:(1===w||u+7>=x-3)&&(fe(c,pe,he,u+3),le.x=c[u+1],le.y=c[u+2]),u+=7;break;case G:(1===w||u+5>=x-3)&&(fe(c,pe,he,u+1),te(le,pe)),u+=5;break;case N:return;case X:u+=5;break;case Z:u+=9;break;case z:u+=6;break;case K:u+=9;break;case V:u+=5;break;case Y:u+=7;break;case $:u+=4;break;case ee:(1===w||u+6>=x-3)&&(fe(c,pe,he,u+1),te(le,pe),u+6!==x&&(he.x-=(he.x-pe.x)/10,he.y-=(he.y-pe.y)/10)),u+=6}if(w++,1===w&&_!==T)return;if(2===w&&y&&te(ie,_===E?he:oe(le,ce)?pe:le),u===x){const t=r.__pathForRender=l?[...c]:c;if(y&&(p=I(e,a,ie,ce,n,se,!!s),h=p.fill||s,h||t.push(...p.data),se.x&&(ae(ce,ie,-se.x,!0),t[1]=ie.x,t[2]=ie.y)),o&&"none"!==o&&(oe(pe,he)&&te(pe,le),d=I(e,o,pe,he,n,se,!!s),f=d.fill||s,f||t.push(...d.data),se.x)){let e;switch(ae(he,pe,-se.x,!0),_){case E:e=u-3+1;break;case Q:e=u-7+5;break;case G:e=u-5+3;break;case ee:e=u-6+3}e&&_e(t,pe,e)}}else te(pe,he);ne(r,"__startArrowPath",h&&p),ne(r,"__endArrowPath",f&&d)}},updateArrow(e){const t=e.__;t.strokeScaleFixed&&t.__strokeWidthCache!==t.__strokeWidth&&e.__updateRenderPath(!0)},register(e,t,r){this.list[e]=t,r&&(this.fillList[e]=t)},get(e){return this.list[e]}};function fe(e,t,r,a){re(t,e[a],e[a+1]),re(r,e[a+2],e[a+3])}function _e(e,t,r){e[r]=t.x,e[r+1]=t.y}e.Plugin.add("arrow"),e.UI.addAttr("startArrow","none",a),e.UI.addAttr("endArrow","none",a),Object.assign(e.PathArrow,de),Object.assign(e.Paint,{strokeArrow(e,t,r,a){const{__startArrowPath:o,__endArrowPath:n,dashPattern:s}=t.__;s&&(r.dashPattern=null),o&&(r.beginPath(),t.__drawPathByData(r,o.data),r.stroke(),o.fill&&(r.fillStyle=e,r.fill())),n&&(r.beginPath(),t.__drawPathByData(r,n.data),r.stroke(),n.fill&&(r.fillStyle=e,r.fill()))}}),exports.ArrowData=r,exports.PathArrowModule=de,exports.PathMatrixHelper=f,exports.arrowType=a;
2
2
  //# sourceMappingURL=arrow.min.cjs.map