summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/issuable/auto_width_dropdown_select.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/issuable/auto_width_dropdown_select.js')
-rw-r--r--app/assets/javascripts/issuable/auto_width_dropdown_select.js56
1 files changed, 0 insertions, 56 deletions
diff --git a/app/assets/javascripts/issuable/auto_width_dropdown_select.js b/app/assets/javascripts/issuable/auto_width_dropdown_select.js
deleted file mode 100644
index 243d82f55aa..00000000000
--- a/app/assets/javascripts/issuable/auto_width_dropdown_select.js
+++ /dev/null
@@ -1,56 +0,0 @@
-import $ from 'jquery';
-import { loadCSSFile } from '../lib/utils/css_utils';
-
-let instanceCount = 0;
-
-class AutoWidthDropdownSelect {
- constructor(selectElement) {
- this.$selectElement = $(selectElement);
- this.dropdownClass = `js-auto-width-select-dropdown-${instanceCount}`;
- instanceCount += 1;
- }
-
- init() {
- const { dropdownClass } = this;
- import(/* webpackChunkName: 'select2' */ 'select2/select2')
- .then(() => {
- // eslint-disable-next-line promise/no-nesting
- loadCSSFile(gon.select2_css_path)
- .then(() => {
- this.$selectElement.select2({
- dropdownCssClass: dropdownClass,
- ...AutoWidthDropdownSelect.selectOptions(this.dropdownClass),
- });
- })
- .catch(() => {});
- })
- .catch(() => {});
-
- return this;
- }
-
- static selectOptions(dropdownClass) {
- return {
- dropdownCss() {
- let resultantWidth = 'auto';
- const $dropdown = $(`.${dropdownClass}`);
-
- // We have to look at the parent because
- // `offsetParent` on a `display: none;` is `null`
- const offsetParentWidth = $(this).parent().offsetParent().width();
- // Reset any width to let it naturally flow
- $dropdown.css('width', 'auto');
- if ($dropdown.outerWidth(false) > offsetParentWidth) {
- resultantWidth = offsetParentWidth;
- }
-
- return {
- width: resultantWidth,
- maxWidth: offsetParentWidth,
- };
- },
- };
- }
-}
-
-export default AutoWidthDropdownSelect;