rete-readonly-plugin
Version:
Rete.js Readonly plugin ==== [](https://stand-with-ukraine.pp.ua) [](h
87 lines (78 loc) • 2.71 kB
JavaScript
/*!
* rete-readonly-plugin v2.0.1
* (c) 2024 Vitaliy Stoliarov
* Released under the MIT license.
* */
;
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