UNPKG

@openui5/sap.ui.core

Version:

OpenUI5 Core Library sap.ui.core

50 lines (44 loc) 1.75 kB
/*! * OpenUI5 * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ sap.ui.define(['sap/ui/thirdparty/jquery', 'sap/ui/Global'], function(jQuery) { "use strict"; /** * This module provides the {@link jQuery#control} API. * * @namespace * @name module:sap/ui/dom/jquery/control * @public * @since 1.58 */ /** * Extension function to the jQuery.fn which identifies SAPUI5 controls in the given jQuery context. * * @param {int} [iIndex] Optional parameter to return the control instance at the given index in the array. * @param {boolean} [bIncludeRelated] Whether or not to respect the associated DOM elements to a control via <code>data-sap-ui-related</code> attribute. * @returns {sap.ui.core.Control[] | sap.ui.core.Control | null} Depending on the given context and index parameter an array of controls, an instance or <code>null</code>. * @name jQuery#control * @function * @public * @deprecated Since 1.106. Instead, use {@link sap.ui.core.Element.closestTo}. * @requires module:sap/ui/dom/jquery/control */ jQuery.fn.control = function(iIndex, bIncludeRelated) { var aControls = this.map(function() { var sControlId; if (bIncludeRelated) { var $Closest = jQuery(this).closest("[data-sap-ui],[data-sap-ui-related]"); sControlId = $Closest.attr("data-sap-ui-related") || $Closest.attr("id"); } else { sControlId = jQuery(this).closest("[data-sap-ui]").attr("id"); } // @evo-todo: remove this global access (for now requiring the Core module would introduce a circular dependency) return sap.ui.getCore().byId(sControlId); }); return aControls.get(iIndex); }; return jQuery; });