"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); /*! * devextreme-angular * Version: 19.1.16 * Build date: Tue Oct 18 2022 * * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/devextreme-angular */ Object.defineProperty(exports, "__esModule", { value: true }); var platform_browser_1 = require("@angular/platform-browser"); var platform_browser_2 = require("@angular/platform-browser"); var core_1 = require("@angular/core"); var context_menu_1 = require("devextreme/ui/context_menu"); var component_1 = require("../core/component"); var template_host_1 = require("../core/template-host"); var integration_1 = require("../core/integration"); var template_1 = require("../core/template"); var nested_option_1 = require("../core/nested-option"); var watcher_helper_1 = require("../core/watcher-helper"); var iterable_differ_helper_1 = require("../core/iterable-differ-helper"); var animation_1 = require("./nested/animation"); var hide_1 = require("./nested/hide"); var show_1 = require("./nested/show"); var item_dxi_1 = require("./nested/item-dxi"); var position_1 = require("./nested/position"); var at_1 = require("./nested/at"); var boundary_offset_1 = require("./nested/boundary-offset"); var collision_1 = require("./nested/collision"); var my_1 = require("./nested/my"); var offset_1 = require("./nested/offset"); var show_event_1 = require("./nested/show-event"); var show_submenu_mode_1 = require("./nested/show-submenu-mode"); var delay_1 = require("./nested/delay"); var item_dxi_2 = require("./nested/item-dxi"); /** * The ContextMenu widget displays a single- or multi-level context menu. An end user invokes this menu by a right click or a long press. */ var DxContextMenuComponent = (function (_super) { __extends(DxContextMenuComponent, _super); function DxContextMenuComponent(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) { var _this = _super.call(this, elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId) || this; _this._watcherHelper = _watcherHelper; _this._idh = _idh; _this._createEventEmitters([ { subscribe: 'contentReady', emit: 'onContentReady' }, { subscribe: 'disposing', emit: 'onDisposing' }, { subscribe: 'hidden', emit: 'onHidden' }, { subscribe: 'hiding', emit: 'onHiding' }, { subscribe: 'initialized', emit: 'onInitialized' }, { subscribe: 'itemClick', emit: 'onItemClick' }, { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' }, { subscribe: 'itemRendered', emit: 'onItemRendered' }, { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { subscribe: 'positioning', emit: 'onPositioning' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, { subscribe: 'showing', emit: 'onShowing' }, { subscribe: 'shown', emit: 'onShown' }, { emit: 'accessKeyChange' }, { emit: 'activeStateEnabledChange' }, { emit: 'animationChange' }, { emit: 'closeOnOutsideClickChange' }, { emit: 'cssClassChange' }, { emit: 'dataSourceChange' }, { emit: 'disabledChange' }, { emit: 'disabledExprChange' }, { emit: 'displayExprChange' }, { emit: 'elementAttrChange' }, { emit: 'focusStateEnabledChange' }, { emit: 'heightChange' }, { emit: 'hintChange' }, { emit: 'hoverStateEnabledChange' }, { emit: 'itemsChange' }, { emit: 'itemsExprChange' }, { emit: 'itemTemplateChange' }, { emit: 'positionChange' }, { emit: 'rtlEnabledChange' }, { emit: 'selectByClickChange' }, { emit: 'selectedExprChange' }, { emit: 'selectedItemChange' }, { emit: 'selectionModeChange' }, { emit: 'showEventChange' }, { emit: 'showSubmenuModeChange' }, { emit: 'submenuDirectionChange' }, { emit: 'tabIndexChange' }, { emit: 'targetChange' }, { emit: 'visibleChange' }, { emit: 'widthChange' } ]); _this._idh.setHost(_this); optionHost.setHost(_this); return _this; } Object.defineProperty(DxContextMenuComponent.prototype, "accessKey", { get: /** * Specifies the shortcut key that sets focus on the widget. */ function () { return this._getOption('accessKey'); }, set: function (value) { this._setOption('accessKey', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "activeStateEnabled", { get: /** * A Boolean value specifying whether or not the widget changes its state when interacting with a user. */ function () { return this._getOption('activeStateEnabled'); }, set: function (value) { this._setOption('activeStateEnabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "animation", { get: /** * Configures widget visibility animations. This object contains two fields: show and hide. */ function () { return this._getOption('animation'); }, set: function (value) { this._setOption('animation', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "closeOnOutsideClick", { get: /** * Specifies whether to close the ContextMenu if a user clicks outside it. */ function () { return this._getOption('closeOnOutsideClick'); }, set: function (value) { this._setOption('closeOnOutsideClick', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "cssClass", { get: /** * Specifies the name of the CSS class to be applied to the root menu level and all submenus. */ function () { return this._getOption('cssClass'); }, set: function (value) { this._setOption('cssClass', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "dataSource", { get: /** * Binds the widget to data. */ function () { return this._getOption('dataSource'); }, set: function (value) { this._setOption('dataSource', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "disabled", { get: /** * Specifies whether the widget responds to user interaction. */ function () { return this._getOption('disabled'); }, set: function (value) { this._setOption('disabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "disabledExpr", { get: /** * Specifies the name of the data source item field whose value defines whether or not the corresponding widget item is disabled. */ function () { return this._getOption('disabledExpr'); }, set: function (value) { this._setOption('disabledExpr', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "displayExpr", { get: /** * Specifies the data field whose values should be displayed. */ function () { return this._getOption('displayExpr'); }, set: function (value) { this._setOption('displayExpr', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "elementAttr", { get: /** * Specifies the attributes to be attached to the widget's root element. */ function () { return this._getOption('elementAttr'); }, set: function (value) { this._setOption('elementAttr', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "focusStateEnabled", { get: /** * Specifies whether the widget can be focused using keyboard navigation. */ function () { return this._getOption('focusStateEnabled'); }, set: function (value) { this._setOption('focusStateEnabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "height", { get: /** * Specifies the widget's height. */ function () { return this._getOption('height'); }, set: function (value) { this._setOption('height', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "hint", { get: /** * Specifies text for a hint that appears when a user pauses on the widget. */ function () { return this._getOption('hint'); }, set: function (value) { this._setOption('hint', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "hoverStateEnabled", { get: /** * Specifies whether the widget changes its state when a user pauses on it. */ function () { return this._getOption('hoverStateEnabled'); }, set: function (value) { this._setOption('hoverStateEnabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "items", { get: /** * Holds an array of menu items. */ function () { return this._getOption('items'); }, set: function (value) { this._setOption('items', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "itemsExpr", { get: /** * Specifies which data field contains nested items. */ function () { return this._getOption('itemsExpr'); }, set: function (value) { this._setOption('itemsExpr', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "itemTemplate", { get: /** * Specifies a custom template for items. */ function () { return this._getOption('itemTemplate'); }, set: function (value) { this._setOption('itemTemplate', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "position", { get: /** * An object defining widget positioning options. */ function () { return this._getOption('position'); }, set: function (value) { this._setOption('position', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "rtlEnabled", { get: /** * Switches the widget to a right-to-left representation. */ function () { return this._getOption('rtlEnabled'); }, set: function (value) { this._setOption('rtlEnabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "selectByClick", { get: /** * Specifies whether or not an item becomes selected if a user clicks it. */ function () { return this._getOption('selectByClick'); }, set: function (value) { this._setOption('selectByClick', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "selectedExpr", { get: /** * Specifies the name of the data source item field whose value defines whether or not the corresponding widget items is selected. */ function () { return this._getOption('selectedExpr'); }, set: function (value) { this._setOption('selectedExpr', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "selectedItem", { get: /** * The selected item object. */ function () { return this._getOption('selectedItem'); }, set: function (value) { this._setOption('selectedItem', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "selectionMode", { get: /** * Specifies the selection mode supported by the menu. */ function () { return this._getOption('selectionMode'); }, set: function (value) { this._setOption('selectionMode', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "showEvent", { get: /** * Specifies options for displaying the widget. */ function () { return this._getOption('showEvent'); }, set: function (value) { this._setOption('showEvent', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "showSubmenuMode", { get: /** * Specifies options of submenu showing and hiding. */ function () { return this._getOption('showSubmenuMode'); }, set: function (value) { this._setOption('showSubmenuMode', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "submenuDirection", { get: /** * Specifies the direction at which submenus are displayed. */ function () { return this._getOption('submenuDirection'); }, set: function (value) { this._setOption('submenuDirection', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "tabIndex", { get: /** * Specifies the number of the element when the Tab key is used for navigating. */ function () { return this._getOption('tabIndex'); }, set: function (value) { this._setOption('tabIndex', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "target", { get: /** * The target element associated with the context menu. */ function () { return this._getOption('target'); }, set: function (value) { this._setOption('target', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "visible", { get: /** * A Boolean value specifying whether or not the widget is visible. */ function () { return this._getOption('visible'); }, set: function (value) { this._setOption('visible', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "width", { get: /** * Specifies the widget's width. */ function () { return this._getOption('width'); }, set: function (value) { this._setOption('width', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxContextMenuComponent.prototype, "itemsChildren", { get: function () { return this._getOption('items'); }, set: function (value) { this.setChildren('items', value); }, enumerable: true, configurable: true }); DxContextMenuComponent.prototype._createInstance = function (element, options) { return new context_menu_1.default(element, options); }; DxContextMenuComponent.prototype.ngOnDestroy = function () { this._destroyWidget(); }; DxContextMenuComponent.prototype.ngOnChanges = function (changes) { _super.prototype.ngOnChanges.call(this, changes); this.setupChanges('dataSource', changes); this.setupChanges('items', changes); }; DxContextMenuComponent.prototype.setupChanges = function (prop, changes) { if (!(prop in this._optionsToUpdate)) { this._idh.setup(prop, changes); } }; DxContextMenuComponent.prototype.ngDoCheck = function () { this._idh.doCheck('dataSource'); this._idh.doCheck('items'); this._watcherHelper.checkWatchers(); _super.prototype.ngDoCheck.call(this); _super.prototype.clearChangedOptions.call(this); }; DxContextMenuComponent.prototype._setOption = function (name, value) { var isSetup = this._idh.setupSingle(name, value); var isChanged = this._idh.getChanges(name, value) !== null; if (isSetup || isChanged) { _super.prototype._setOption.call(this, name, value); } }; DxContextMenuComponent.decorators = [ { type: core_1.Component, args: [{ selector: 'dx-context-menu', template: '', providers: [ template_host_1.DxTemplateHost, watcher_helper_1.WatcherHelper, nested_option_1.NestedOptionHost, iterable_differ_helper_1.IterableDifferHelper ] },] }, ]; /** @nocollapse */ DxContextMenuComponent.ctorParameters = function () { return [ { type: core_1.ElementRef, }, { type: core_1.NgZone, }, { type: template_host_1.DxTemplateHost, }, { type: watcher_helper_1.WatcherHelper, }, { type: iterable_differ_helper_1.IterableDifferHelper, }, { type: nested_option_1.NestedOptionHost, }, { type: platform_browser_2.TransferState, }, { type: undefined, decorators: [{ type: core_1.Inject, args: [core_1.PLATFORM_ID,] },] }, ]; }; DxContextMenuComponent.propDecorators = { "accessKey": [{ type: core_1.Input },], "activeStateEnabled": [{ type: core_1.Input },], "animation": [{ type: core_1.Input },], "closeOnOutsideClick": [{ type: core_1.Input },], "cssClass": [{ type: core_1.Input },], "dataSource": [{ type: core_1.Input },], "disabled": [{ type: core_1.Input },], "disabledExpr": [{ type: core_1.Input },], "displayExpr": [{ type: core_1.Input },], "elementAttr": [{ type: core_1.Input },], "focusStateEnabled": [{ type: core_1.Input },], "height": [{ type: core_1.Input },], "hint": [{ type: core_1.Input },], "hoverStateEnabled": [{ type: core_1.Input },], "items": [{ type: core_1.Input },], "itemsExpr": [{ type: core_1.Input },], "itemTemplate": [{ type: core_1.Input },], "position": [{ type: core_1.Input },], "rtlEnabled": [{ type: core_1.Input },], "selectByClick": [{ type: core_1.Input },], "selectedExpr": [{ type: core_1.Input },], "selectedItem": [{ type: core_1.Input },], "selectionMode": [{ type: core_1.Input },], "showEvent": [{ type: core_1.Input },], "showSubmenuMode": [{ type: core_1.Input },], "submenuDirection": [{ type: core_1.Input },], "tabIndex": [{ type: core_1.Input },], "target": [{ type: core_1.Input },], "visible": [{ type: core_1.Input },], "width": [{ type: core_1.Input },], "onContentReady": [{ type: core_1.Output },], "onDisposing": [{ type: core_1.Output },], "onHidden": [{ type: core_1.Output },], "onHiding": [{ type: core_1.Output },], "onInitialized": [{ type: core_1.Output },], "onItemClick": [{ type: core_1.Output },], "onItemContextMenu": [{ type: core_1.Output },], "onItemRendered": [{ type: core_1.Output },], "onOptionChanged": [{ type: core_1.Output },], "onPositioning": [{ type: core_1.Output },], "onSelectionChanged": [{ type: core_1.Output },], "onShowing": [{ type: core_1.Output },], "onShown": [{ type: core_1.Output },], "accessKeyChange": [{ type: core_1.Output },], "activeStateEnabledChange": [{ type: core_1.Output },], "animationChange": [{ type: core_1.Output },], "closeOnOutsideClickChange": [{ type: core_1.Output },], "cssClassChange": [{ type: core_1.Output },], "dataSourceChange": [{ type: core_1.Output },], "disabledChange": [{ type: core_1.Output },], "disabledExprChange": [{ type: core_1.Output },], "displayExprChange": [{ type: core_1.Output },], "elementAttrChange": [{ type: core_1.Output },], "focusStateEnabledChange": [{ type: core_1.Output },], "heightChange": [{ type: core_1.Output },], "hintChange": [{ type: core_1.Output },], "hoverStateEnabledChange": [{ type: core_1.Output },], "itemsChange": [{ type: core_1.Output },], "itemsExprChange": [{ type: core_1.Output },], "itemTemplateChange": [{ type: core_1.Output },], "positionChange": [{ type: core_1.Output },], "rtlEnabledChange": [{ type: core_1.Output },], "selectByClickChange": [{ type: core_1.Output },], "selectedExprChange": [{ type: core_1.Output },], "selectedItemChange": [{ type: core_1.Output },], "selectionModeChange": [{ type: core_1.Output },], "showEventChange": [{ type: core_1.Output },], "showSubmenuModeChange": [{ type: core_1.Output },], "submenuDirectionChange": [{ type: core_1.Output },], "tabIndexChange": [{ type: core_1.Output },], "targetChange": [{ type: core_1.Output },], "visibleChange": [{ type: core_1.Output },], "widthChange": [{ type: core_1.Output },], "itemsChildren": [{ type: core_1.ContentChildren, args: [item_dxi_2.DxiItemComponent,] },], }; return DxContextMenuComponent; }(component_1.DxComponent)); exports.DxContextMenuComponent = DxContextMenuComponent; var DxContextMenuModule = (function () { function DxContextMenuModule() { } DxContextMenuModule.decorators = [ { type: core_1.NgModule, args: [{ imports: [ animation_1.DxoAnimationModule, hide_1.DxoHideModule, show_1.DxoShowModule, item_dxi_1.DxiItemModule, position_1.DxoPositionModule, at_1.DxoAtModule, boundary_offset_1.DxoBoundaryOffsetModule, collision_1.DxoCollisionModule, my_1.DxoMyModule, offset_1.DxoOffsetModule, show_event_1.DxoShowEventModule, show_submenu_mode_1.DxoShowSubmenuModeModule, delay_1.DxoDelayModule, integration_1.DxIntegrationModule, template_1.DxTemplateModule, platform_browser_1.BrowserTransferStateModule ], declarations: [ DxContextMenuComponent ], exports: [ DxContextMenuComponent, animation_1.DxoAnimationModule, hide_1.DxoHideModule, show_1.DxoShowModule, item_dxi_1.DxiItemModule, position_1.DxoPositionModule, at_1.DxoAtModule, boundary_offset_1.DxoBoundaryOffsetModule, collision_1.DxoCollisionModule, my_1.DxoMyModule, offset_1.DxoOffsetModule, show_event_1.DxoShowEventModule, show_submenu_mode_1.DxoShowSubmenuModeModule, delay_1.DxoDelayModule, template_1.DxTemplateModule ] },] }, ]; return DxContextMenuModule; }()); exports.DxContextMenuModule = DxContextMenuModule; //# sourceMappingURL=context-menu.js.map