UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

152 lines (138 loc) 4.18 kB
"use strict"; require("../integration/jquery"); var $ = require("jquery"), errors = require("./errors"), extend = require("../core/utils/extend").extend, typeUtils = require("../core/utils/type"), registerComponent = require("../core/component_registrator"), DOMComponent = require("../core/dom_component"), isFunction = typeUtils.isFunction, isPlainObject = typeUtils.isPlainObject, noop = require("../core/utils/common").noop; require("../integration/knockout"); /** * @name dxaction * @publicName dxAction * @type function(e)|string|object * @type_function_param1 e:object * @type_function_param1_field1 element:jQuery * @type_function_param1_field2 model:object * @type_function_param1_field3 jQueryEvent:jQuery.Event:deprecated(event) * @type_function_param1_field4 event:event */ /** * @name dxcommand * @publicName dxCommand * @inherits DOMComponent * @type object * @module framework/command * @export default */ var Command = DOMComponent.inherit({ ctor: function ctor(element, options) { if (isPlainObject(element)) { options = element; element = $("<div>"); } this.callBase(element, options); }, _setDeprecatedOptions: function _setDeprecatedOptions() { this.callBase(); extend(this._deprecatedOptions, { /** * @name dxCommandOptions.iconSrc * @publicName iconSrc * @deprecated dxCommandOptions.icon * @inheritdoc */ "iconSrc": { since: "15.1", alias: "icon" } }); }, _getDefaultOptions: function _getDefaultOptions() { return extend(this.callBase(), { /** * @name dxCommandOptions.onExecute * @publicName onExecute * @type function|string|object * @extends Action */ onExecute: null, /** * @name dxCommandOptions.id * @publicName id * @type string * @default null */ id: null, /** * @name dxCommandOptions.title * @publicName title * @type string * @default "" */ title: "", /** * @name dxCommandOptions.icon * @publicName icon * @type string * @default "" */ icon: "", /** * @name dxCommandOptions.visible * @publicName visible * @type bool * @default true */ visible: true, /** * @name dxCommandOptions.disabled * @publicName disabled * @type bool * @default false */ disabled: false, /** * @name dxCommandOptions.renderStage * @publicName renderStage * @type string * @acceptValues 'onViewShown'|'onViewRendering' * @default "onViewShown" */ renderStage: "onViewShown" /** * @name dxCommandOptions.type * @publicName type * @type string * @default undefined */ }); }, /** * @name dxcommandmethods.execute * @publicName execute() */ execute: function execute() { var isDisabled = this._options.disabled; if (isFunction(isDisabled)) { isDisabled = !!isDisabled.apply(this, arguments); } if (isDisabled) { throw errors.Error("E3004", this._options.id); } this.fireEvent("beforeExecute", arguments); this._createActionByOption("onExecute").apply(this, arguments); this.fireEvent("afterExecute", arguments); }, _render: function _render() { this.callBase(); this.$element().addClass("dx-command"); }, _renderDisabledState: noop, _dispose: function _dispose() { this.callBase(); this.$element().removeData(this.NAME); } }); registerComponent("dxCommand", Command); module.exports = Command;