UNPKG

@atlassian/aui

Version:

Atlassian User Interface Framework

83 lines (70 loc) 2.62 kB
(function (global, factory) { if (typeof define === "function" && define.amd) { define(['module', 'exports', './jquery', './internal/globalize'], factory); } else if (typeof exports !== "undefined") { factory(module, exports, require('./jquery'), require('./internal/globalize')); } else { var mod = { exports: {} }; factory(mod, mod.exports, global.jquery, global.globalize); global.containDropdown = mod.exports; } })(this, function (module, exports, _jquery, _globalize) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _jquery2 = _interopRequireDefault(_jquery); var _globalize2 = _interopRequireDefault(_globalize); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function containDropdown(dropdown, containerSelector, dynamic) { function getDropdownOffset() { return dropdown.$.offset().top - (0, _jquery2.default)(containerSelector).offset().top; } var container; var ddOffset; var availableArea; var shadowOffset = 25; if (dropdown.$.parents(containerSelector).length !== -1) { container = (0, _jquery2.default)(containerSelector); ddOffset = getDropdownOffset(); shadowOffset = 30; availableArea = container.outerHeight() - ddOffset - shadowOffset; if (availableArea <= parseInt(dropdown.$.attr('scrollHeight'), 10)) { containDropdown.containHeight(dropdown, availableArea); } else if (dynamic) { containDropdown.releaseContainment(dropdown); } dropdown.reset(); } }; containDropdown.containHeight = function (dropdown, availableArea) { dropdown.$.css({ height: availableArea }); if (dropdown.$.css('overflowY') !== 'scroll') { dropdown.$.css({ width: 15 + dropdown.$.attr('scrollWidth'), overflowY: 'scroll', overflowX: 'hidden' }); } }; containDropdown.releaseContainment = function (dropdown) { dropdown.$.css({ height: '', width: '', overflowY: '', overflowX: '' }); }; (0, _globalize2.default)('containDropdown', containDropdown); exports.default = containDropdown; module.exports = exports['default']; }); //# sourceMappingURL=contain-dropdown.js.map