@leafer-in/arrow 2.0.2 → 2.0.3
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.
- package/dist/arrow.cjs +144 -45
- package/dist/arrow.esm.js +144 -45
- package/dist/arrow.esm.min.js +1 -1
- package/dist/arrow.esm.min.js.map +1 -1
- package/dist/arrow.js +127 -45
- package/dist/arrow.min.cjs +1 -1
- package/dist/arrow.min.cjs.map +1 -1
- package/dist/arrow.min.js +1 -1
- package/dist/arrow.min.js.map +1 -1
- package/package.json +4 -4
- package/src/PathArrowModule.ts +47 -17
- package/src/data/arrows.ts +53 -21
- package/src/index.ts +20 -4
|
@@ -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
|
|
94
|
+
const zero = {
|
|
95
|
+
x: 0
|
|
96
|
+
}, half = {
|
|
95
97
|
x: -.5
|
|
96
98
|
};
|
|
97
99
|
const angle = {
|
|
98
|
-
connect:
|
|
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
|
|
117
|
-
connect:
|
|
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
|
|
124
|
-
dashPath: [ 1, -2, 0, 2, -.5, 0 ]
|
|
125
|
+
path: [ ...triangleLinePath ]
|
|
125
126
|
};
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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.
|
|
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
|
|
168
|
+
const circleFill = {
|
|
153
169
|
connect: {
|
|
154
170
|
x: .5
|
|
155
171
|
},
|
|
156
|
-
path: [ ...circleLine.path
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
224
|
-
|
|
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)
|
|
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)
|
|
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 =
|
|
296
|
-
const pathForArrow = ui.__.__pathForArrow = [];
|
|
350
|
+
const path = uData.__pathForRender = clonePathForArrow ? [ ...data ] : data;
|
|
297
351
|
if (useStartArrow) {
|
|
298
|
-
|
|
299
|
-
|
|
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
|
-
|
|
308
|
-
|
|
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
|
-
|
|
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(
|
|
358
|
-
|
|
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,
|
|
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
|
});
|
package/dist/arrow.min.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@leafer-ui/draw");function t(e,t,r,
|
|
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
|