UNPKG

igniteui-angular-spreadsheet

Version:

Ignite UI Angular spreadsheet component for displaying and editing Microsoft Excel workbooks for modern web apps.

230 lines (229 loc) 8.02 kB
/* THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE AGREEMENT ("AGREEMENT") LOCATED HERE: https://www.infragistics.com/legal/license/igultimate-la https://www.infragistics.com/legal/license/igultimate-eula GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE: you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company. */ import { __extends, __values } from "tslib"; import { Base, fromEnum, delegateCombine, markType } from "igniteui-angular-core"; import { DropDownItem } from "./DropDownItem"; import { DropDown } from "./DropDown"; import { List$1 } from "igniteui-angular-core"; import { DropDownPosition } from "./DropDownPosition"; import { Dictionary$2 } from "igniteui-angular-core"; import { RelativePositionInfo } from "./RelativePositionInfo"; import { Rect } from "igniteui-angular-core"; import { stringIsNullOrEmpty } from "igniteui-angular-core"; /** * @hidden */ var ContextMenu = /** @class */ /*@__PURE__*/ (function (_super) { __extends(ContextMenu, _super); function ContextMenu() { var _this = _super.call(this) || this; _this.h = null; _this.b = null; _this.a = null; _this.g = null; _this.m = null; _this.l = null; _this.d = null; _this.n = null; _this.k = null; _this.itemClick = null; _this.h = new List$1(DropDownItem.$, 0); _this.g = new Dictionary$2(DropDownItem.$, DropDown.$, 0); var a = new DropDownPosition(); a.d = new RelativePositionInfo(2, -2, false); a.f = RelativePositionInfo.e; a.a = 1 | 4; a.b = 2 | 4; _this.d = a; return _this; } Object.defineProperty(ContextMenu.prototype, "f", { get: function () { return this.b != null && this.b.f; }, enumerable: false, configurable: true }); Object.defineProperty(ContextMenu.prototype, "i", { get: function () { return this.h; }, enumerable: false, configurable: true }); ContextMenu.prototype.o = function () { var e_1, _a; if (this.n != null) { var a = this.e(document.activeElement); var b = this.n; this.n = null; if (a && b != null && (b == document.body || document.body.contains(b)) && b.focus != null) { b.focus(); } } try { for (var _b = __values(fromEnum(this.g)), _c = _b.next(); !_c.done; _c = _b.next()) { var c = _c.value; c.value.aq(); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } this.g.clear(); if (this.b != null) { var d = this.b; this.b = null; d.aq(); } this.a = null; if (this.m != null) { var e = this.m; this.m = null; e.unlistenAll(); e.remove(); e.destroy(); } }; ContextMenu.prototype.e = function (a) { return this.m != null && this.m.getNativeElement().contains(a); }; ContextMenu.prototype.c = function (a, b, c) { var _this = this; var d = new DropDown(this.l, this.m, a, b, c, function (e, f) { if (f.g) { e.addClass("menuitemseparator"); } else { e.addClass("menuitem"); e.setAttribute("tabIndex", 0); var g = _this.l.createElement("div"); g.addClass("menuitemimage"); if (!stringIsNullOrEmpty(f.n)) { g.addClass(f.n); } e.append(g); var h = _this.l.createElement("div"); h.addClass("menuitemcontent"); if (_this.k == null || !_this.k(f, h)) { h.setText(f.p); } e.append(h); var i = _this.l.createElement("div"); i.addClass("menuitemarrowarea"); e.append(i); } }); d.m = true; d.ac.addClass("menu"); d.childRequested = delegateCombine(d.childRequested, function (e, f) { if (_this.m == null) { return; } var g = e; var h = null; var i = g.ae(f); if (!((function () { var j = _this.g.tryGetValue(f, h); h = j.p1; return j.ret; })())) { h = _this.c(f.k, g, f); _this.g.item(f, h); } var j = i.getNativeElement(); var k = j.getBoundingClientRect(); var l = _this.m.getNativeElement(); var m = l.getBoundingClientRect(); var n = new Rect(0, (k.left - m.left), (k.top - m.top), (k.width), (k.height)); var o = h.f; _this.a = h; h.a0(n, _this.d); if (!o) { h.ai = 0; } h.ac.focus(false); }); d.closed = delegateCombine(d.closed, function (e, f) { var g = e; if (g == _this.a) { _this.a = _this.a.a; } if (g.a == null || !g.ac.getNativeElement().contains(document.activeElement)) { _this.o(); } else { var h = g.a.c; var i = h != null ? g.a.ae(h) : g.a.ac; i.focus(false); } }); d.selectedItemChanged = delegateCombine(d.selectedItemChanged, function (e, f) { var g = e; var h = f.c; var i = f.d; while (_this.a != null && _this.a != g) { var j = _this.a; j.ao(); if (j == _this.a) { _this.a = j.a; } } var k = i != null ? g.ae(i) : g.ac; k.focus(false); }); d.itemClicked = delegateCombine(d.itemClicked, function (e, f) { var g = _this.itemClick; if (g != null) { g(_this, f); } }); this.m.append(d.ac); return d; }; ContextMenu.prototype.p = function (a, b, c, d) { var _this = this; if (this.f || this.m != null) { this.o(); if (this.f || this.m != null) { return; } } var e = a.createElement("div"); e.setRawStyleProperty("position", "relative"); e.setRawStyleProperty("width", "0px"); e.setRawStyleProperty("height", "0px"); if (b.getChildCount() == 0) { b.append(e); } else { b.getChildAt(0).before(e); } e.listen("focusout", function (f) { var g = (f.originalEvent.relatedTarget); if (g == null || (_this.m != null && !_this.m.getNativeElement().contains(g))) { _this.o(); } }); this.m = e; this.l = a.getSubRenderer(this.m); this.b = this.c(this.i, null, null); this.a = this.b; this.n = document.activeElement; this.b.a0(c, d); this.b.ac.focus(false); }; ContextMenu.$t = markType(ContextMenu, 'ContextMenu'); return ContextMenu; }(Base)); export { ContextMenu };