UNPKG

rete-readonly-plugin

Version:

Rete.js Readonly plugin ==== [![Made in Ukraine](https://img.shields.io/badge/made_in-ukraine-ffd700.svg?labelColor=0057b7)](https://stand-with-ukraine.pp.ua) [![Discord](https://img.shields.io/discord/1081223198055604244?color=%237289da&label=Discord)](h

87 lines (78 loc) 2.71 kB
/*! * rete-readonly-plugin v2.0.1 * (c) 2024 Vitaliy Stoliarov * Released under the MIT license. * */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _classCallCheck = require('@babel/runtime/helpers/classCallCheck'); var _createClass = require('@babel/runtime/helpers/createClass'); var _defineProperty = require('@babel/runtime/helpers/defineProperty'); var rete = require('rete'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck); var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass); var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty); /** * Readonly plugin, disables all user interactions * @priority 9 * @listens nodecreate * @listens connectioncreate * @listens nodetranslate * @listens connectionpick * @example const readonly = new ReadonlyPlugin<Schemes>(); *editor.use(readonly.root); *editor.use(area); *area.use(readonly.area); *area.use(render); *connection.use(readonly.connection); *area.use(connection); */ var ReadonlyPlugin = /*#__PURE__*/function () { function ReadonlyPlugin() { var _this = this; _classCallCheck__default["default"](this, ReadonlyPlugin); _defineProperty__default["default"](this, "root", new rete.Scope('readonly')); _defineProperty__default["default"](this, "area", new rete.Scope('readonly')); _defineProperty__default["default"](this, "connection", new rete.Scope('readonly')); /** * Readonly mode state */ _defineProperty__default["default"](this, "enabled", false); this.root.addPipe(function (context) { if (!_this.enabled) return context; if (context.type === 'nodecreate') return; if (context.type === 'connectioncreate') return; return context; }); this.area.addPipe(function (context) { if (!_this.enabled) return context; if (context.type === 'nodetranslate') return; return context; }); this.connection.addPipe(function (context) { if (!_this.enabled) return context; if (context.type === 'connectionpick') return; return context; }); } /** * Enable the readonly mode */ return _createClass__default["default"](ReadonlyPlugin, [{ key: "enable", value: function enable() { this.enabled = true; } /** * Disable the readonly mode */ }, { key: "disable", value: function disable() { this.enabled = false; } }]); }(); exports.ReadonlyPlugin = ReadonlyPlugin; //# sourceMappingURL=rete-readonly-plugin.common.js.map