UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

142 lines (137 loc) 4.41 kB
/** * DevExtreme (ui/text_box/texteditor_button_collection/button.js) * Version: 19.2.6 * Build date: Thu Jan 30 2020 * * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _renderer = require("../../../core/renderer"); var _renderer2 = _interopRequireDefault(_renderer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function") } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) { descriptor.writable = true } Object.defineProperty(target, descriptor.key, descriptor) } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) { _defineProperties(Constructor.prototype, protoProps) } if (staticProps) { _defineProperties(Constructor, staticProps) } return Constructor } var TextEditorButton = function() { function TextEditorButton(name, editor, options) { _classCallCheck(this, TextEditorButton); this.instance = null; this.$container = null; this.$placeMarker = null; this.editor = editor; this.name = name; this.options = options || {} } _createClass(TextEditorButton, [{ key: "_addPlaceMarker", value: function($container) { this.$placeMarker = (0, _renderer2.default)("<div>").appendTo($container) } }, { key: "_addToContainer", value: function($element) { var $placeMarker = this.$placeMarker, $container = this.$container; $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container) } }, { key: "_attachEvents", value: function() { throw "Not implemented" } }, { key: "_create", value: function() { throw "Not implemented" } }, { key: "_isRendered", value: function() { return !!this.instance } }, { key: "_isVisible", value: function() { var editor = this.editor, options = this.options; return options.visible || !editor.option("readOnly") } }, { key: "_isDisabled", value: function() { throw "Not implemented" } }, { key: "_shouldRender", value: function() { return this._isVisible() && !this._isRendered() } }, { key: "dispose", value: function() { var instance = this.instance, $placeMarker = this.$placeMarker; if (instance) { instance.dispose ? instance.dispose() : instance.remove(); this.instance = null } $placeMarker && $placeMarker.remove() } }, { key: "render", value: function() { var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container; this.$container = $container; if (this._isVisible()) { var _this$_create = this._create(), instance = _this$_create.instance, $element = _this$_create.$element; this.instance = instance; this._attachEvents(instance, $element) } else { this._addPlaceMarker($container) } } }, { key: "update", value: function() { if (this._shouldRender()) { this.render() } return !!this.instance } }]); return TextEditorButton }(); exports.default = TextEditorButton;