UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

134 lines (129 loc) • 5.5 kB
/** * DevExtreme (cjs/ui/number_box/number_box.spins.js) * Version: 23.2.6 * Build date: Wed May 01 2024 * * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; exports.default = void 0; var _renderer = _interopRequireDefault(require("../../core/renderer")); var _events_engine = _interopRequireDefault(require("../../events/core/events_engine")); var _button = _interopRequireDefault(require("../text_box/texteditor_button_collection/button")); var _number_box = _interopRequireDefault(require("./number_box.spin")); var _index = require("../../events/utils/index"); var _pointer = _interopRequireDefault(require("../../events/pointer")); var _extend = require("../../core/utils/extend"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj } } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass) } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(o, p) { o.__proto__ = p; return o }; return _setPrototypeOf(o, p) } const SPIN_CLASS = "dx-numberbox-spin"; const SPIN_CONTAINER_CLASS = "dx-numberbox-spin-container"; const SPIN_TOUCH_FRIENDLY_CLASS = "dx-numberbox-spin-touch-friendly"; let SpinButtons = function(_TextEditorButton) { _inheritsLoose(SpinButtons, _TextEditorButton); function SpinButtons() { return _TextEditorButton.apply(this, arguments) || this } var _proto = SpinButtons.prototype; _proto._attachEvents = function(instance, $spinContainer) { const { editor: editor } = this; const eventName = (0, _index.addNamespace)(_pointer.default.down, editor.NAME); const $spinContainerChildren = $spinContainer.children(); const pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e)); _events_engine.default.off($spinContainer, eventName); _events_engine.default.on($spinContainer, eventName, e => pointerDownAction({ event: e })); _number_box.default.getInstance($spinContainerChildren.eq(0)).option("onChange", e => editor._spinUpChangeHandler(e)); _number_box.default.getInstance($spinContainerChildren.eq(1)).option("onChange", e => editor._spinDownChangeHandler(e)) }; _proto._create = function() { const { editor: editor } = this; const $spinContainer = (0, _renderer.default)("<div>").addClass(SPIN_CONTAINER_CLASS); const $spinUp = (0, _renderer.default)("<div>").appendTo($spinContainer); const $spinDown = (0, _renderer.default)("<div>").appendTo($spinContainer); const options = this._getOptions(); this._addToContainer($spinContainer); editor._createComponent($spinUp, _number_box.default, (0, _extend.extend)({ direction: "up" }, options)); editor._createComponent($spinDown, _number_box.default, (0, _extend.extend)({ direction: "down" }, options)); this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible); return { instance: $spinContainer, $element: $spinContainer } }; _proto._getOptions = function() { const { editor: editor } = this; const visible = this._isVisible(); const disabled = editor.option("disabled"); return { visible: visible, disabled: disabled } }; _proto._isVisible = function() { const { editor: editor } = this; return _TextEditorButton.prototype._isVisible.call(this) && editor.option("showSpinButtons") }; _proto._isTouchFriendly = function() { const { editor: editor } = this; return editor.option("showSpinButtons") && editor.option("useLargeSpinButtons") }; _proto._legacyRender = function($editor, isTouchFriendly, isVisible) { $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly); $editor.toggleClass(SPIN_CLASS, isVisible) }; _proto.update = function() { const shouldUpdate = _TextEditorButton.prototype.update.call(this); if (shouldUpdate) { const { editor: editor, instance: instance } = this; const $editor = editor.$element(); const isVisible = this._isVisible(); const isTouchFriendly = this._isTouchFriendly(); const $spinButtons = instance.children(); const spinUp = _number_box.default.getInstance($spinButtons.eq(0)); const spinDown = _number_box.default.getInstance($spinButtons.eq(1)); const options = this._getOptions(); spinUp.option(options); spinDown.option(options); this._legacyRender($editor, isTouchFriendly, isVisible) } }; return SpinButtons }(_button.default); exports.default = SpinButtons; module.exports = exports.default; module.exports.default = exports.default;