formstrap 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -1
  3. data/app/assets/javascripts/formstrap/controllers/file_preview_controller.js +5 -5
  4. data/app/assets/javascripts/formstrap/controllers/media_controller.js +4 -2
  5. data/app/assets/javascripts/formstrap/controllers/media_modal_controller.js +38 -2
  6. data/app/assets/javascripts/formstrap/controllers/popup_controller.js +75 -0
  7. data/app/assets/javascripts/formstrap/controllers/repeater_controller.js +4 -4
  8. data/app/assets/javascripts/formstrap/index.js +2 -0
  9. data/app/assets/javascripts/formstrap.js +1790 -129
  10. data/app/assets/stylesheets/formstrap/{forms/autocomplete.scss → autocomplete.scss} +1 -1
  11. data/app/assets/stylesheets/formstrap/{forms/file.scss → file.scss} +10 -10
  12. data/app/assets/stylesheets/formstrap/general.scss +8 -1
  13. data/app/assets/stylesheets/formstrap/media/_modal.scss +9 -0
  14. data/app/assets/stylesheets/formstrap/{forms/media.scss → media/_validation.scss} +2 -2
  15. data/app/assets/stylesheets/formstrap/media.scss +2 -1
  16. data/app/assets/stylesheets/formstrap/{forms/repeater.scss → repeater.scss} +8 -8
  17. data/app/assets/stylesheets/formstrap/shared/popup.scss +17 -0
  18. data/app/assets/stylesheets/formstrap/shared/thumbnail.scss +23 -0
  19. data/app/assets/stylesheets/formstrap/shared.scss +2 -0
  20. data/app/assets/stylesheets/formstrap/utilities/dropzone.scss +2 -2
  21. data/app/assets/stylesheets/formstrap/utilities.scss +0 -1
  22. data/app/assets/stylesheets/formstrap.css +155 -143
  23. data/app/assets/stylesheets/formstrap.scss +5 -1
  24. data/app/controllers/formstrap/media_controller.rb +6 -12
  25. data/app/helpers/application_helper.rb +20 -0
  26. data/app/models/concerns/formstrap/attachment.rb +16 -0
  27. data/app/models/concerns/formstrap/blob.rb +56 -0
  28. data/app/models/formstrap/file_view.rb +3 -3
  29. data/app/models/formstrap/media_view.rb +12 -1
  30. data/app/models/formstrap/thumbnail_view.rb +108 -0
  31. data/app/views/formstrap/_autocomplete.html.erb +1 -1
  32. data/app/views/formstrap/_file.html.erb +8 -8
  33. data/app/views/formstrap/_media.html.erb +5 -4
  34. data/app/views/formstrap/_repeater.html.erb +3 -3
  35. data/app/views/formstrap/media/_item.html.erb +10 -7
  36. data/app/views/formstrap/media/_modal.html.erb +35 -8
  37. data/app/views/formstrap/media/_thumbnail.html.erb +12 -8
  38. data/app/views/formstrap/media/_validation.html.erb +1 -1
  39. data/app/views/formstrap/media/create.turbo_stream.erb +3 -1
  40. data/app/views/formstrap/media/index.html.erb +1 -1
  41. data/app/views/formstrap/repeater/_row.html.erb +4 -4
  42. data/app/views/formstrap/shared/_popup.html.erb +1 -1
  43. data/app/views/formstrap/shared/_thumbnail.html.erb +5 -3
  44. data/config/locales/formstrap/forms/en.yml +0 -14
  45. data/config/locales/formstrap/forms/nl.yml +1 -15
  46. data/config/locales/formstrap/media/en.yml +2 -10
  47. data/config/locales/formstrap/media/nl.yml +2 -10
  48. data/config/routes.rb +0 -2
  49. data/lib/formstrap/version.rb +1 -1
  50. metadata +16 -29
  51. data/app/assets/stylesheets/formstrap/forms.scss +0 -12
  52. data/app/assets/stylesheets/formstrap/media/index.scss +0 -9
  53. data/app/assets/stylesheets/formstrap/utilities/buttons.scss +0 -27
  54. data/app/models/formstrap/blocks_view.rb +0 -43
  55. data/app/views/formstrap/_blocks.html.erb +0 -45
  56. data/app/views/formstrap/_to_ary.html.erb +0 -0
  57. data/app/views/formstrap/blocks/_modal.html.erb +0 -20
  58. data/app/views/formstrap/fields/_base.html.erb +0 -25
  59. data/app/views/formstrap/fields/_file.html.erb +0 -17
  60. data/app/views/formstrap/fields/_files.html.erb +0 -17
  61. data/app/views/formstrap/fields/_group.html.erb +0 -52
  62. data/app/views/formstrap/fields/_list.html.erb +0 -31
  63. data/app/views/formstrap/fields/_text.html.erb +0 -17
  64. data/app/views/formstrap/media/_media_item_modal.html.erb +0 -77
  65. data/app/views/formstrap/media/show.html.erb +0 -9
  66. data/app/views/formstrap/media/update.turbo_stream.erb +0 -3
  67. data/config/locales/activerecord/en.yml +0 -12
  68. data/config/locales/activerecord/nl.yml +0 -13
  69. data/config/locales/defaults/en.yml +0 -215
  70. data/config/locales/defaults/nl.yml +0 -213
  71. data/config/locales/devise/en.yml +0 -65
  72. data/config/locales/devise/nl.yml +0 -85
  73. /data/app/assets/stylesheets/formstrap/{forms/search.scss → search.scss} +0 -0
@@ -86,10 +86,10 @@ var require_tom_select_complete = __commonJS({
86
86
  loaded: {}
87
87
  };
88
88
  }
89
- static define(name, fn) {
89
+ static define(name, fn2) {
90
90
  Interface.plugins[name] = {
91
91
  "name": name,
92
- "fn": fn
92
+ "fn": fn2
93
93
  };
94
94
  }
95
95
  initializePlugins(plugins2) {
@@ -192,8 +192,8 @@ var require_tom_select_complete = __commonJS({
192
192
  if (input.length === 1)
193
193
  return [[input]];
194
194
  let result = [];
195
- const start = input.substring(1);
196
- const suba = allSubstrings(start);
195
+ const start2 = input.substring(1);
196
+ const suba = allSubstrings(start2);
197
197
  suba.forEach(function(subresult) {
198
198
  let tmp = subresult.slice(0);
199
199
  tmp[0] = input.charAt(0) + tmp[0];
@@ -1047,7 +1047,7 @@ var require_tom_select_complete = __commonJS({
1047
1047
  const escape_html = (str) => {
1048
1048
  return (str + "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
1049
1049
  };
1050
- const loadDebounce = (fn, delay) => {
1050
+ const loadDebounce = (fn2, delay) => {
1051
1051
  var timeout;
1052
1052
  return function(value, callback) {
1053
1053
  var self2 = this;
@@ -1058,11 +1058,11 @@ var require_tom_select_complete = __commonJS({
1058
1058
  timeout = setTimeout(function() {
1059
1059
  timeout = null;
1060
1060
  self2.loadedSearches[value] = true;
1061
- fn.call(self2, value, callback);
1061
+ fn2.call(self2, value, callback);
1062
1062
  }, delay);
1063
1063
  };
1064
1064
  };
1065
- const debounce_events = (self2, types, fn) => {
1065
+ const debounce_events = (self2, types, fn2) => {
1066
1066
  var type;
1067
1067
  var trigger = self2.trigger;
1068
1068
  var event_args = {};
@@ -1074,7 +1074,7 @@ var require_tom_select_complete = __commonJS({
1074
1074
  return trigger.apply(self2, arguments);
1075
1075
  }
1076
1076
  };
1077
- fn.apply(self2, []);
1077
+ fn2.apply(self2, []);
1078
1078
  self2.trigger = trigger;
1079
1079
  for (type of types) {
1080
1080
  if (type in event_args) {
@@ -1579,7 +1579,7 @@ var require_tom_select_complete = __commonJS({
1579
1579
  self2.settings.render = Object.assign({}, templates, self2.settings.render);
1580
1580
  }
1581
1581
  setupCallbacks() {
1582
- var key, fn;
1582
+ var key, fn2;
1583
1583
  var callbacks = {
1584
1584
  "initialize": "onInitialize",
1585
1585
  "change": "onChange",
@@ -1601,9 +1601,9 @@ var require_tom_select_complete = __commonJS({
1601
1601
  "blur": "onBlur"
1602
1602
  };
1603
1603
  for (key in callbacks) {
1604
- fn = this.settings[callbacks[key]];
1605
- if (fn)
1606
- this.on(key, fn);
1604
+ fn2 = this.settings[callbacks[key]];
1605
+ if (fn2)
1606
+ this.on(key, fn2);
1607
1607
  }
1608
1608
  }
1609
1609
  sync(get_settings = true) {
@@ -1650,8 +1650,8 @@ var require_tom_select_complete = __commonJS({
1650
1650
  }
1651
1651
  var splitInput = pastedText.trim().split(self2.settings.splitOn);
1652
1652
  iterate$1(splitInput, (piece) => {
1653
- const hash = hash_key(piece);
1654
- if (hash) {
1653
+ const hash3 = hash_key(piece);
1654
+ if (hash3) {
1655
1655
  if (this.options[piece]) {
1656
1656
  self2.addItem(piece);
1657
1657
  } else {
@@ -1921,7 +1921,7 @@ var require_tom_select_complete = __commonJS({
1921
1921
  setActiveItem(item, e) {
1922
1922
  var self2 = this;
1923
1923
  var eventName;
1924
- var i, begin, end, swap;
1924
+ var i, begin, end2, swap;
1925
1925
  var last;
1926
1926
  if (self2.settings.mode === "single")
1927
1927
  return;
@@ -1936,13 +1936,13 @@ var require_tom_select_complete = __commonJS({
1936
1936
  if (eventName === "click" && isKeyDown("shiftKey", e) && self2.activeItems.length) {
1937
1937
  last = self2.getLastActive();
1938
1938
  begin = Array.prototype.indexOf.call(self2.control.children, last);
1939
- end = Array.prototype.indexOf.call(self2.control.children, item);
1940
- if (begin > end) {
1939
+ end2 = Array.prototype.indexOf.call(self2.control.children, item);
1940
+ if (begin > end2) {
1941
1941
  swap = begin;
1942
- begin = end;
1943
- end = swap;
1942
+ begin = end2;
1943
+ end2 = swap;
1944
1944
  }
1945
- for (i = begin; i <= end; i++) {
1945
+ for (i = begin; i <= end2; i++) {
1946
1946
  item = self2.control.children[i];
1947
1947
  if (self2.activeItems.indexOf(item) === -1) {
1948
1948
  self2.setActiveItemClass(item);
@@ -2749,12 +2749,12 @@ var require_tom_select_complete = __commonJS({
2749
2749
  }
2750
2750
  var context = this.control;
2751
2751
  var rect = context.getBoundingClientRect();
2752
- var top = context.offsetHeight + rect.top + window.scrollY;
2753
- var left = rect.left + window.scrollX;
2752
+ var top2 = context.offsetHeight + rect.top + window.scrollY;
2753
+ var left2 = rect.left + window.scrollX;
2754
2754
  applyCSS(this.dropdown, {
2755
2755
  width: rect.width + "px",
2756
- top: top + "px",
2757
- left: left + "px"
2756
+ top: top2 + "px",
2757
+ left: left2 + "px"
2758
2758
  });
2759
2759
  }
2760
2760
  clear(silent) {
@@ -3552,8 +3552,8 @@ var EventListener = class {
3552
3552
  return this.unorderedBindings.size > 0;
3553
3553
  }
3554
3554
  get bindings() {
3555
- return Array.from(this.unorderedBindings).sort((left, right) => {
3556
- const leftIndex = left.index, rightIndex = right.index;
3555
+ return Array.from(this.unorderedBindings).sort((left2, right2) => {
3556
+ const leftIndex = left2.index, rightIndex = right2.index;
3557
3557
  return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;
3558
3558
  });
3559
3559
  }
@@ -4358,12 +4358,12 @@ var TokenListObserver = class {
4358
4358
  function parseTokenString(tokenString, element, attributeName) {
4359
4359
  return tokenString.trim().split(/\s+/).filter((content) => content.length).map((content, index2) => ({ element, attributeName, content, index: index2 }));
4360
4360
  }
4361
- function zip(left, right) {
4362
- const length = Math.max(left.length, right.length);
4363
- return Array.from({ length }, (_, index2) => [left[index2], right[index2]]);
4361
+ function zip(left2, right2) {
4362
+ const length = Math.max(left2.length, right2.length);
4363
+ return Array.from({ length }, (_, index2) => [left2[index2], right2[index2]]);
4364
4364
  }
4365
- function tokensAreEqual(left, right) {
4366
- return left && right && left.index == right.index && left.content == right.content;
4365
+ function tokensAreEqual(left2, right2) {
4366
+ return left2 && right2 && left2.index == right2.index && left2.content == right2.content;
4367
4367
  }
4368
4368
  var ValueListObserver = class {
4369
4369
  constructor(element, attributeName, delegate) {
@@ -5598,13 +5598,13 @@ function ValuePropertiesBlessing(constructor) {
5598
5598
  }
5599
5599
  function propertiesForValueDefinitionPair(valueDefinitionPair, controller) {
5600
5600
  const definition = parseValueDefinitionPair(valueDefinitionPair, controller);
5601
- const { key, name, reader: read, writer: write } = definition;
5601
+ const { key, name, reader: read2, writer: write2 } = definition;
5602
5602
  return {
5603
5603
  [name]: {
5604
5604
  get() {
5605
5605
  const value = this.data.get(key);
5606
5606
  if (value !== null) {
5607
- return read(value);
5607
+ return read2(value);
5608
5608
  } else {
5609
5609
  return definition.defaultValue;
5610
5610
  }
@@ -5613,7 +5613,7 @@ function propertiesForValueDefinitionPair(valueDefinitionPair, controller) {
5613
5613
  if (value === void 0) {
5614
5614
  this.data.delete(key);
5615
5615
  } else {
5616
- this.data.set(key, write(value));
5616
+ this.data.set(key, write2(value));
5617
5617
  }
5618
5618
  }
5619
5619
  },
@@ -6243,7 +6243,7 @@ var file_preview_controller_default = class extends Controller {
6243
6243
  return (bytes / Math.pow(1024, i)).toFixed(2) * 1 + " " + ["B", "kB", "MB", "GB", "TB"][i];
6244
6244
  }
6245
6245
  updateThumbnailRemoveButton(thumbnail, fileName) {
6246
- const removeButton = thumbnail.querySelector(".h-form-file-thumbnail-remove");
6246
+ const removeButton = thumbnail.querySelector(".formstrap-file-thumbnail-remove");
6247
6247
  if (removeButton) {
6248
6248
  removeButton.dataset.filePreviewNameParam = fileName;
6249
6249
  }
@@ -6252,14 +6252,14 @@ var file_preview_controller_default = class extends Controller {
6252
6252
  thumbnail.title = title;
6253
6253
  }
6254
6254
  updateThumbnailBackground(thumbnail, url) {
6255
- const thumbnailBackground = thumbnail.querySelector(".h-thumbnail-bg");
6255
+ const thumbnailBackground = thumbnail.querySelector(".formstrap-thumbnail-bg");
6256
6256
  thumbnailBackground.style.backgroundImage = `url('${url}')`;
6257
6257
  }
6258
6258
  removeThumbnailIcon(thumbnail) {
6259
- thumbnail.querySelector(".h-thumbnail-bg").innerHTML = "";
6259
+ thumbnail.querySelector(".formstrap-thumbnail-bg").innerHTML = "";
6260
6260
  }
6261
6261
  updateThumbnailIcon(thumbnail, icon) {
6262
- thumbnail.querySelector(".h-thumbnail-bg").innerHTML = icon;
6262
+ thumbnail.querySelector(".formstrap-thumbnail-bg").innerHTML = icon;
6263
6263
  }
6264
6264
  iconForMimeType(mimeType) {
6265
6265
  const typeMap = {
@@ -6277,7 +6277,7 @@ var file_preview_controller_default = class extends Controller {
6277
6277
  };
6278
6278
  const iconName = Object.keys(typeMap).find((key) => typeMap[key].includes(mimeType));
6279
6279
  const fullIconName = ["bi", "file", "earmark", iconName].filter((e) => typeof e === "string" && e !== "").join("-");
6280
- return `<i class="bi ${fullIconName} h-thumbnail-icon"></i>`;
6280
+ return `<i class="bi ${fullIconName} formstrap-thumbnail-icon"></i>`;
6281
6281
  }
6282
6282
  isImage(file) {
6283
6283
  return file.type.match(/^image/) !== null;
@@ -6471,14 +6471,14 @@ var pad = function(number, length) {
6471
6471
  var int = function(bool) {
6472
6472
  return bool === true ? 1 : 0;
6473
6473
  };
6474
- function debounce(fn, wait) {
6474
+ function debounce(fn2, wait) {
6475
6475
  var t;
6476
6476
  return function() {
6477
6477
  var _this = this;
6478
6478
  var args = arguments;
6479
6479
  clearTimeout(t);
6480
6480
  t = setTimeout(function() {
6481
- return fn.apply(_this, args);
6481
+ return fn2.apply(_this, args);
6482
6482
  }, wait);
6483
6483
  };
6484
6484
  }
@@ -6738,21 +6738,21 @@ var createDateParser = function(_a) {
6738
6738
  else if (typeof date !== "string" && date.toFixed !== void 0)
6739
6739
  parsedDate = new Date(date);
6740
6740
  else if (typeof date === "string") {
6741
- var format = givenFormat || (config || defaults).dateFormat;
6741
+ var format2 = givenFormat || (config || defaults).dateFormat;
6742
6742
  var datestr = String(date).trim();
6743
6743
  if (datestr === "today") {
6744
6744
  parsedDate = new Date();
6745
6745
  timeless = true;
6746
6746
  } else if (config && config.parseDate) {
6747
- parsedDate = config.parseDate(date, format);
6747
+ parsedDate = config.parseDate(date, format2);
6748
6748
  } else if (/Z$/.test(datestr) || /GMT$/.test(datestr)) {
6749
6749
  parsedDate = new Date(date);
6750
6750
  } else {
6751
6751
  var matched = void 0, ops = [];
6752
- for (var i = 0, matchIndex = 0, regexStr = ""; i < format.length; i++) {
6753
- var token = format[i];
6752
+ for (var i = 0, matchIndex = 0, regexStr = ""; i < format2.length; i++) {
6753
+ var token = format2[i];
6754
6754
  var isBackSlash = token === "\\";
6755
- var escaped = format[i - 1] === "\\" || isBackSlash;
6755
+ var escaped = format2[i - 1] === "\\" || isBackSlash;
6756
6756
  if (tokenRegex[token] && !escaped) {
6757
6757
  regexStr += tokenRegex[token];
6758
6758
  var match = new RegExp(regexStr).exec(date);
@@ -6767,8 +6767,8 @@ var createDateParser = function(_a) {
6767
6767
  }
6768
6768
  parsedDate = !config || !config.noCalendar ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0) : new Date(new Date().setHours(0, 0, 0, 0));
6769
6769
  ops.forEach(function(_a2) {
6770
- var fn = _a2.fn, val = _a2.val;
6771
- return parsedDate = fn(parsedDate, val, locale) || parsedDate;
6770
+ var fn2 = _a2.fn, val = _a2.val;
6771
+ return parsedDate = fn2(parsedDate, val, locale) || parsedDate;
6772
6772
  });
6773
6773
  parsedDate = matched ? parsedDate : void 0;
6774
6774
  }
@@ -6951,8 +6951,8 @@ function FlatpickrInstance(element, instanceConfig) {
6951
6951
  var _a;
6952
6952
  return ((_a = self2.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode()).activeElement || document.activeElement;
6953
6953
  }
6954
- function bindToInstance(fn) {
6955
- return fn.bind(self2);
6954
+ function bindToInstance(fn2) {
6955
+ return fn2.bind(self2);
6956
6956
  }
6957
6957
  function setCalendarWidth() {
6958
6958
  var config = self2.config;
@@ -7309,16 +7309,16 @@ function FlatpickrInstance(element, instanceConfig) {
7309
7309
  focusOnDay(getFirstAvailableDay(loopDelta), 0);
7310
7310
  return void 0;
7311
7311
  }
7312
- function focusOnDay(current, offset) {
7312
+ function focusOnDay(current, offset2) {
7313
7313
  var activeElement = getClosestActiveElement();
7314
7314
  var dayFocused = isInView(activeElement || document.body);
7315
- var startElem = current !== void 0 ? current : dayFocused ? activeElement : self2.selectedDateElem !== void 0 && isInView(self2.selectedDateElem) ? self2.selectedDateElem : self2.todayDateElem !== void 0 && isInView(self2.todayDateElem) ? self2.todayDateElem : getFirstAvailableDay(offset > 0 ? 1 : -1);
7315
+ var startElem = current !== void 0 ? current : dayFocused ? activeElement : self2.selectedDateElem !== void 0 && isInView(self2.selectedDateElem) ? self2.selectedDateElem : self2.todayDateElem !== void 0 && isInView(self2.todayDateElem) ? self2.todayDateElem : getFirstAvailableDay(offset2 > 0 ? 1 : -1);
7316
7316
  if (startElem === void 0) {
7317
7317
  self2._input.focus();
7318
7318
  } else if (!dayFocused) {
7319
7319
  focusOnDayElem(startElem);
7320
7320
  } else {
7321
- getNextAvailableDay(startElem, offset);
7321
+ getNextAvailableDay(startElem, offset2);
7322
7322
  }
7323
7323
  }
7324
7324
  function buildMonthDays(year, month) {
@@ -8128,37 +8128,37 @@ function FlatpickrInstance(element, instanceConfig) {
8128
8128
  var calendarHeight = Array.prototype.reduce.call(self2.calendarContainer.children, function(acc, child) {
8129
8129
  return acc + child.offsetHeight;
8130
8130
  }, 0), calendarWidth = self2.calendarContainer.offsetWidth, configPos = self2.config.position.split(" "), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === "above" || configPosVertical !== "below" && distanceFromBottom < calendarHeight && inputBounds.top > calendarHeight;
8131
- var top = window.pageYOffset + inputBounds.top + (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);
8131
+ var top2 = window.pageYOffset + inputBounds.top + (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);
8132
8132
  toggleClass(self2.calendarContainer, "arrowTop", !showOnTop);
8133
8133
  toggleClass(self2.calendarContainer, "arrowBottom", showOnTop);
8134
8134
  if (self2.config.inline)
8135
8135
  return;
8136
- var left = window.pageXOffset + inputBounds.left;
8136
+ var left2 = window.pageXOffset + inputBounds.left;
8137
8137
  var isCenter = false;
8138
8138
  var isRight = false;
8139
8139
  if (configPosHorizontal === "center") {
8140
- left -= (calendarWidth - inputBounds.width) / 2;
8140
+ left2 -= (calendarWidth - inputBounds.width) / 2;
8141
8141
  isCenter = true;
8142
8142
  } else if (configPosHorizontal === "right") {
8143
- left -= calendarWidth - inputBounds.width;
8143
+ left2 -= calendarWidth - inputBounds.width;
8144
8144
  isRight = true;
8145
8145
  }
8146
8146
  toggleClass(self2.calendarContainer, "arrowLeft", !isCenter && !isRight);
8147
8147
  toggleClass(self2.calendarContainer, "arrowCenter", isCenter);
8148
8148
  toggleClass(self2.calendarContainer, "arrowRight", isRight);
8149
- var right = window.document.body.offsetWidth - (window.pageXOffset + inputBounds.right);
8150
- var rightMost = left + calendarWidth > window.document.body.offsetWidth;
8151
- var centerMost = right + calendarWidth > window.document.body.offsetWidth;
8149
+ var right2 = window.document.body.offsetWidth - (window.pageXOffset + inputBounds.right);
8150
+ var rightMost = left2 + calendarWidth > window.document.body.offsetWidth;
8151
+ var centerMost = right2 + calendarWidth > window.document.body.offsetWidth;
8152
8152
  toggleClass(self2.calendarContainer, "rightMost", rightMost);
8153
8153
  if (self2.config.static)
8154
8154
  return;
8155
- self2.calendarContainer.style.top = top + "px";
8155
+ self2.calendarContainer.style.top = top2 + "px";
8156
8156
  if (!rightMost) {
8157
- self2.calendarContainer.style.left = left + "px";
8157
+ self2.calendarContainer.style.left = left2 + "px";
8158
8158
  self2.calendarContainer.style.right = "auto";
8159
8159
  } else if (!centerMost) {
8160
8160
  self2.calendarContainer.style.left = "auto";
8161
- self2.calendarContainer.style.right = right + "px";
8161
+ self2.calendarContainer.style.right = right2 + "px";
8162
8162
  } else {
8163
8163
  var doc = getDocumentStyleSheet();
8164
8164
  if (doc === void 0)
@@ -8313,28 +8313,28 @@ function FlatpickrInstance(element, instanceConfig) {
8313
8313
  self2.redraw();
8314
8314
  updateValue(true);
8315
8315
  }
8316
- function setSelectedDate(inputDate, format) {
8316
+ function setSelectedDate(inputDate, format2) {
8317
8317
  var dates = [];
8318
8318
  if (inputDate instanceof Array)
8319
8319
  dates = inputDate.map(function(d) {
8320
- return self2.parseDate(d, format);
8320
+ return self2.parseDate(d, format2);
8321
8321
  });
8322
8322
  else if (inputDate instanceof Date || typeof inputDate === "number")
8323
- dates = [self2.parseDate(inputDate, format)];
8323
+ dates = [self2.parseDate(inputDate, format2)];
8324
8324
  else if (typeof inputDate === "string") {
8325
8325
  switch (self2.config.mode) {
8326
8326
  case "single":
8327
8327
  case "time":
8328
- dates = [self2.parseDate(inputDate, format)];
8328
+ dates = [self2.parseDate(inputDate, format2)];
8329
8329
  break;
8330
8330
  case "multiple":
8331
8331
  dates = inputDate.split(self2.config.conjunction).map(function(date) {
8332
- return self2.parseDate(date, format);
8332
+ return self2.parseDate(date, format2);
8333
8333
  });
8334
8334
  break;
8335
8335
  case "range":
8336
8336
  dates = inputDate.split(self2.l10n.rangeSeparator).map(function(date) {
8337
- return self2.parseDate(date, format);
8337
+ return self2.parseDate(date, format2);
8338
8338
  });
8339
8339
  break;
8340
8340
  default:
@@ -8350,16 +8350,16 @@ function FlatpickrInstance(element, instanceConfig) {
8350
8350
  return a.getTime() - b.getTime();
8351
8351
  });
8352
8352
  }
8353
- function setDate(date, triggerChange2, format) {
8353
+ function setDate(date, triggerChange2, format2) {
8354
8354
  if (triggerChange2 === void 0) {
8355
8355
  triggerChange2 = false;
8356
8356
  }
8357
- if (format === void 0) {
8358
- format = self2.config.dateFormat;
8357
+ if (format2 === void 0) {
8358
+ format2 = self2.config.dateFormat;
8359
8359
  }
8360
8360
  if (date !== 0 && !date || date instanceof Array && date.length === 0)
8361
8361
  return self2.clear(triggerChange2);
8362
- setSelectedDate(date, format);
8362
+ setSelectedDate(date, format2);
8363
8363
  self2.latestSelectedDateObj = self2.selectedDates[self2.selectedDates.length - 1];
8364
8364
  self2.redraw();
8365
8365
  jumpToDate(void 0, triggerChange2);
@@ -8517,9 +8517,9 @@ function FlatpickrInstance(element, instanceConfig) {
8517
8517
  self2._hideNextMonthArrow = self2.config.maxDate !== void 0 && (self2.currentYear === self2.config.maxDate.getFullYear() ? self2.currentMonth + 1 > self2.config.maxDate.getMonth() : self2.currentYear > self2.config.maxDate.getFullYear());
8518
8518
  }
8519
8519
  function getDateStr(specificFormat) {
8520
- var format = specificFormat || (self2.config.altInput ? self2.config.altFormat : self2.config.dateFormat);
8520
+ var format2 = specificFormat || (self2.config.altInput ? self2.config.altFormat : self2.config.dateFormat);
8521
8521
  return self2.selectedDates.map(function(dObj) {
8522
- return self2.formatDate(dObj, format);
8522
+ return self2.formatDate(dObj, format2);
8523
8523
  }).filter(function(d, i, arr) {
8524
8524
  return self2.config.mode !== "range" || self2.config.enableTime || arr.indexOf(d) === i;
8525
8525
  }).join(self2.config.mode !== "range" ? self2.config.conjunction : self2.l10n.rangeSeparator);
@@ -8558,16 +8558,16 @@ function FlatpickrInstance(element, instanceConfig) {
8558
8558
  if (self2.amPM !== void 0 && eventTarget === self2.amPM) {
8559
8559
  self2.amPM.textContent = self2.l10n.amPM[int(self2.amPM.textContent === self2.l10n.amPM[0])];
8560
8560
  }
8561
- var min = parseFloat(input.getAttribute("min")), max = parseFloat(input.getAttribute("max")), step = parseFloat(input.getAttribute("step")), curValue = parseInt(input.value, 10), delta = e.delta || (isKeyDown ? e.which === 38 ? 1 : -1 : 0);
8561
+ var min2 = parseFloat(input.getAttribute("min")), max2 = parseFloat(input.getAttribute("max")), step = parseFloat(input.getAttribute("step")), curValue = parseInt(input.value, 10), delta = e.delta || (isKeyDown ? e.which === 38 ? 1 : -1 : 0);
8562
8562
  var newValue = curValue + step * delta;
8563
8563
  if (typeof input.value !== "undefined" && input.value.length === 2) {
8564
8564
  var isHourElem = input === self2.hourElement, isMinuteElem = input === self2.minuteElement;
8565
- if (newValue < min) {
8566
- newValue = max + newValue + int(!isHourElem) + (int(isHourElem) && int(!self2.amPM));
8565
+ if (newValue < min2) {
8566
+ newValue = max2 + newValue + int(!isHourElem) + (int(isHourElem) && int(!self2.amPM));
8567
8567
  if (isMinuteElem)
8568
8568
  incrementNumInput(void 0, -1, self2.hourElement);
8569
- } else if (newValue > max) {
8570
- newValue = input === self2.hourElement ? newValue - max - int(!self2.amPM) : min;
8569
+ } else if (newValue > max2) {
8570
+ newValue = input === self2.hourElement ? newValue - max2 - int(!self2.amPM) : min2;
8571
8571
  if (isMinuteElem)
8572
8572
  incrementNumInput(void 0, 1, self2.hourElement);
8573
8573
  }
@@ -8891,11 +8891,11 @@ var captureMode = {
8891
8891
  capture: false,
8892
8892
  passive: false
8893
8893
  };
8894
- function on(el, event, fn) {
8895
- el.addEventListener(event, fn, !IE11OrLess && captureMode);
8894
+ function on(el, event, fn2) {
8895
+ el.addEventListener(event, fn2, !IE11OrLess && captureMode);
8896
8896
  }
8897
- function off(el, event, fn) {
8898
- el.removeEventListener(event, fn, !IE11OrLess && captureMode);
8897
+ function off(el, event, fn2) {
8898
+ el.removeEventListener(event, fn2, !IE11OrLess && captureMode);
8899
8899
  }
8900
8900
  function matches(el, selector) {
8901
8901
  if (!selector)
@@ -8999,20 +8999,20 @@ function getWindowScrollingElement() {
8999
8999
  function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {
9000
9000
  if (!el.getBoundingClientRect && el !== window)
9001
9001
  return;
9002
- var elRect, top, left, bottom, right, height, width;
9002
+ var elRect, top2, left2, bottom2, right2, height, width;
9003
9003
  if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {
9004
9004
  elRect = el.getBoundingClientRect();
9005
- top = elRect.top;
9006
- left = elRect.left;
9007
- bottom = elRect.bottom;
9008
- right = elRect.right;
9005
+ top2 = elRect.top;
9006
+ left2 = elRect.left;
9007
+ bottom2 = elRect.bottom;
9008
+ right2 = elRect.right;
9009
9009
  height = elRect.height;
9010
9010
  width = elRect.width;
9011
9011
  } else {
9012
- top = 0;
9013
- left = 0;
9014
- bottom = window.innerHeight;
9015
- right = window.innerWidth;
9012
+ top2 = 0;
9013
+ left2 = 0;
9014
+ bottom2 = window.innerHeight;
9015
+ right2 = window.innerWidth;
9016
9016
  height = window.innerHeight;
9017
9017
  width = window.innerWidth;
9018
9018
  }
@@ -9022,10 +9022,10 @@ function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoS
9022
9022
  do {
9023
9023
  if (container && container.getBoundingClientRect && (css(container, "transform") !== "none" || relativeToNonStaticParent && css(container, "position") !== "static")) {
9024
9024
  var containerRect = container.getBoundingClientRect();
9025
- top -= containerRect.top + parseInt(css(container, "border-top-width"));
9026
- left -= containerRect.left + parseInt(css(container, "border-left-width"));
9027
- bottom = top + elRect.height;
9028
- right = left + elRect.width;
9025
+ top2 -= containerRect.top + parseInt(css(container, "border-top-width"));
9026
+ left2 -= containerRect.left + parseInt(css(container, "border-left-width"));
9027
+ bottom2 = top2 + elRect.height;
9028
+ right2 = left2 + elRect.width;
9029
9029
  break;
9030
9030
  }
9031
9031
  } while (container = container.parentNode);
@@ -9034,19 +9034,19 @@ function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoS
9034
9034
  if (undoScale && el !== window) {
9035
9035
  var elMatrix = matrix(container || el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d;
9036
9036
  if (elMatrix) {
9037
- top /= scaleY;
9038
- left /= scaleX;
9037
+ top2 /= scaleY;
9038
+ left2 /= scaleX;
9039
9039
  width /= scaleX;
9040
9040
  height /= scaleY;
9041
- bottom = top + height;
9042
- right = left + width;
9041
+ bottom2 = top2 + height;
9042
+ right2 = left2 + width;
9043
9043
  }
9044
9044
  }
9045
9045
  return {
9046
- top,
9047
- left,
9048
- bottom,
9049
- right,
9046
+ top: top2,
9047
+ left: left2,
9048
+ bottom: bottom2,
9049
+ right: right2,
9050
9050
  width,
9051
9051
  height
9052
9052
  };
@@ -9681,9 +9681,9 @@ function Sortable(el, options) {
9681
9681
  !(name in options) && (options[name] = defaults3[name]);
9682
9682
  }
9683
9683
  _prepareGroup(options);
9684
- for (var fn in this) {
9685
- if (fn.charAt(0) === "_" && typeof this[fn] === "function") {
9686
- this[fn] = this[fn].bind(this);
9684
+ for (var fn2 in this) {
9685
+ if (fn2.charAt(0) === "_" && typeof this[fn2] === "function") {
9686
+ this[fn2] = this[fn2].bind(this);
9687
9687
  }
9688
9688
  }
9689
9689
  this.nativeDraggable = options.forceFallback ? false : supportDraggable;
@@ -10461,16 +10461,16 @@ Sortable.prototype = {
10461
10461
  }
10462
10462
  },
10463
10463
  toArray: function toArray() {
10464
- var order = [], el, children = this.el.children, i = 0, n = children.length, options = this.options;
10464
+ var order2 = [], el, children = this.el.children, i = 0, n = children.length, options = this.options;
10465
10465
  for (; i < n; i++) {
10466
10466
  el = children[i];
10467
10467
  if (closest(el, options.draggable, this.el, false)) {
10468
- order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));
10468
+ order2.push(el.getAttribute(options.dataIdAttr) || _generateId(el));
10469
10469
  }
10470
10470
  }
10471
- return order;
10471
+ return order2;
10472
10472
  },
10473
- sort: function sort(order, useAnimation) {
10473
+ sort: function sort(order2, useAnimation) {
10474
10474
  var items = {}, rootEl2 = this.el;
10475
10475
  this.toArray().forEach(function(id, i) {
10476
10476
  var el = rootEl2.children[i];
@@ -10479,7 +10479,7 @@ Sortable.prototype = {
10479
10479
  }
10480
10480
  }, this);
10481
10481
  useAnimation && this.captureAnimationState();
10482
- order.forEach(function(id) {
10482
+ order2.forEach(function(id) {
10483
10483
  if (items[id]) {
10484
10484
  rootEl2.removeChild(items[id]);
10485
10485
  rootEl2.appendChild(items[id]);
@@ -10663,8 +10663,8 @@ function _saveInputCheckedState(root) {
10663
10663
  el.checked && savedInputChecked.push(el);
10664
10664
  }
10665
10665
  }
10666
- function _nextTick(fn) {
10667
- return setTimeout(fn, 0);
10666
+ function _nextTick(fn2) {
10667
+ return setTimeout(fn2, 0);
10668
10668
  }
10669
10669
  function _cancelNextTick(id) {
10670
10670
  return clearTimeout(id);
@@ -10734,9 +10734,9 @@ function AutoScrollPlugin() {
10734
10734
  scrollSpeed: 10,
10735
10735
  bubbleScroll: true
10736
10736
  };
10737
- for (var fn in this) {
10738
- if (fn.charAt(0) === "_" && typeof this[fn] === "function") {
10739
- this[fn] = this[fn].bind(this);
10737
+ for (var fn2 in this) {
10738
+ if (fn2.charAt(0) === "_" && typeof this[fn2] === "function") {
10739
+ this[fn2] = this[fn2].bind(this);
10740
10740
  }
10741
10741
  }
10742
10742
  }
@@ -10840,7 +10840,7 @@ var autoScroll = throttle(function(evt, options, rootEl2, isFallback) {
10840
10840
  var layersOut = 0;
10841
10841
  var currentParent = scrollEl;
10842
10842
  do {
10843
- var el = currentParent, rect = getRect(el), top = rect.top, bottom = rect.bottom, left = rect.left, right = rect.right, width = rect.width, height = rect.height, canScrollX = void 0, canScrollY = void 0, scrollWidth = el.scrollWidth, scrollHeight = el.scrollHeight, elCSS = css(el), scrollPosX = el.scrollLeft, scrollPosY = el.scrollTop;
10843
+ var el = currentParent, rect = getRect(el), top2 = rect.top, bottom2 = rect.bottom, left2 = rect.left, right2 = rect.right, width = rect.width, height = rect.height, canScrollX = void 0, canScrollY = void 0, scrollWidth = el.scrollWidth, scrollHeight = el.scrollHeight, elCSS = css(el), scrollPosX = el.scrollLeft, scrollPosY = el.scrollTop;
10844
10844
  if (el === winScroller) {
10845
10845
  canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll" || elCSS.overflowX === "visible");
10846
10846
  canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll" || elCSS.overflowY === "visible");
@@ -10848,8 +10848,8 @@ var autoScroll = throttle(function(evt, options, rootEl2, isFallback) {
10848
10848
  canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll");
10849
10849
  canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll");
10850
10850
  }
10851
- var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);
10852
- var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);
10851
+ var vx = canScrollX && (Math.abs(right2 - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left2 - x) <= sens && !!scrollPosX);
10852
+ var vy = canScrollY && (Math.abs(bottom2 - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top2 - y) <= sens && !!scrollPosY);
10853
10853
  if (!autoScrolls[layersOut]) {
10854
10854
  for (var i = 0; i <= layersOut; i++) {
10855
10855
  if (!autoScrolls[i]) {
@@ -11087,8 +11087,10 @@ var media_controller_default = class extends Controller {
11087
11087
  newItem.querySelector('input[name*="[blob_id]"]').value = item.blobId;
11088
11088
  newItem.querySelector('input[name*="[_destroy]"]').value = false;
11089
11089
  const editButton = newItem.querySelector('[data-media-target="editButton"]');
11090
- editButton.setAttribute("href", editButton.getAttribute("href").replace("$1", item.blobId));
11091
- const oldThumbnail = newItem.querySelector(".h-thumbnail");
11090
+ if (editButton) {
11091
+ editButton.setAttribute("href", editButton.getAttribute("href").replace(":id", item.blobId));
11092
+ }
11093
+ const oldThumbnail = newItem.querySelector(".formstrap-thumbnail");
11092
11094
  const newThumbnail = item.thumbnail.cloneNode(true);
11093
11095
  oldThumbnail.parentNode.replaceChild(newThumbnail, oldThumbnail);
11094
11096
  }
@@ -11139,7 +11141,7 @@ var media_controller_default = class extends Controller {
11139
11141
  // app/assets/javascripts/formstrap/controllers/media_modal_controller.js
11140
11142
  var media_modal_controller_default = class extends Controller {
11141
11143
  static get targets() {
11142
- return ["idCheckbox", "item", "form", "selectButton", "placeholder", "count"];
11144
+ return ["idCheckbox", "item", "form", "selectButton", "placeholder", "count", "search", "searchId"];
11143
11145
  }
11144
11146
  static get values() {
11145
11147
  return { ids: Array };
@@ -11153,6 +11155,7 @@ var media_modal_controller_default = class extends Controller {
11153
11155
  }
11154
11156
  submitForm() {
11155
11157
  this.hidePlaceholder();
11158
+ this.search("");
11156
11159
  this.triggerFormSubmission();
11157
11160
  }
11158
11161
  inputChange(event) {
@@ -11162,6 +11165,11 @@ var media_modal_controller_default = class extends Controller {
11162
11165
  hidePlaceholder() {
11163
11166
  this.placeholderTarget.classList.add("d-none");
11164
11167
  }
11168
+ search(string) {
11169
+ const search = this.searchTarget.querySelector("input[name='search']");
11170
+ search.value = string;
11171
+ this.searchTarget.requestSubmit();
11172
+ }
11165
11173
  handleIdsUpdate(element) {
11166
11174
  if (element.checked) {
11167
11175
  const arr = this.idsValue;
@@ -11172,6 +11180,7 @@ var media_modal_controller_default = class extends Controller {
11172
11180
  return element.value !== value;
11173
11181
  });
11174
11182
  }
11183
+ this.handleSearchdIdsUpdate();
11175
11184
  }
11176
11185
  itemTargetConnected(element) {
11177
11186
  this.updateItem(element.querySelector("input"));
@@ -11217,7 +11226,7 @@ var media_modal_controller_default = class extends Controller {
11217
11226
  const element = this.element.querySelector(blobId);
11218
11227
  return {
11219
11228
  blobId: id,
11220
- thumbnail: element ? element.querySelector(".h-thumbnail") : ""
11229
+ thumbnail: element ? element.querySelector(".formstrap-thumbnail") : ""
11221
11230
  };
11222
11231
  }
11223
11232
  selectedItems() {
@@ -11255,6 +11264,1657 @@ var media_modal_controller_default = class extends Controller {
11255
11264
  updateCount() {
11256
11265
  this.countTarget.innerHTML = this.selectedItemsCount();
11257
11266
  }
11267
+ handleSearchdIdsUpdate() {
11268
+ this.deleteSearchIdInputs();
11269
+ this.createSearchIdInputs();
11270
+ }
11271
+ deleteSearchIdInputs() {
11272
+ for (const searchId of this.searchIdTargets) {
11273
+ searchId.remove();
11274
+ }
11275
+ }
11276
+ createSearchIdInputs() {
11277
+ for (const id of this.idsValue) {
11278
+ this.createSearchIdInput(id);
11279
+ }
11280
+ }
11281
+ createSearchIdInput(value) {
11282
+ const input = document.createElement("input");
11283
+ input.type = "hidden";
11284
+ input.name = "ids[]";
11285
+ input.setAttribute("data-media-modal-target", "searchId");
11286
+ input.value = value;
11287
+ this.searchTarget.appendChild(input);
11288
+ }
11289
+ };
11290
+
11291
+ // node_modules/@popperjs/core/lib/enums.js
11292
+ var top = "top";
11293
+ var bottom = "bottom";
11294
+ var right = "right";
11295
+ var left = "left";
11296
+ var auto = "auto";
11297
+ var basePlacements = [top, bottom, right, left];
11298
+ var start = "start";
11299
+ var end = "end";
11300
+ var clippingParents = "clippingParents";
11301
+ var viewport = "viewport";
11302
+ var popper = "popper";
11303
+ var reference = "reference";
11304
+ var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) {
11305
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
11306
+ }, []);
11307
+ var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
11308
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
11309
+ }, []);
11310
+ var beforeRead = "beforeRead";
11311
+ var read = "read";
11312
+ var afterRead = "afterRead";
11313
+ var beforeMain = "beforeMain";
11314
+ var main = "main";
11315
+ var afterMain = "afterMain";
11316
+ var beforeWrite = "beforeWrite";
11317
+ var write = "write";
11318
+ var afterWrite = "afterWrite";
11319
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
11320
+
11321
+ // node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
11322
+ function getNodeName(element) {
11323
+ return element ? (element.nodeName || "").toLowerCase() : null;
11324
+ }
11325
+
11326
+ // node_modules/@popperjs/core/lib/dom-utils/getWindow.js
11327
+ function getWindow(node) {
11328
+ if (node == null) {
11329
+ return window;
11330
+ }
11331
+ if (node.toString() !== "[object Window]") {
11332
+ var ownerDocument = node.ownerDocument;
11333
+ return ownerDocument ? ownerDocument.defaultView || window : window;
11334
+ }
11335
+ return node;
11336
+ }
11337
+
11338
+ // node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
11339
+ function isElement(node) {
11340
+ var OwnElement = getWindow(node).Element;
11341
+ return node instanceof OwnElement || node instanceof Element;
11342
+ }
11343
+ function isHTMLElement(node) {
11344
+ var OwnElement = getWindow(node).HTMLElement;
11345
+ return node instanceof OwnElement || node instanceof HTMLElement;
11346
+ }
11347
+ function isShadowRoot(node) {
11348
+ if (typeof ShadowRoot === "undefined") {
11349
+ return false;
11350
+ }
11351
+ var OwnElement = getWindow(node).ShadowRoot;
11352
+ return node instanceof OwnElement || node instanceof ShadowRoot;
11353
+ }
11354
+
11355
+ // node_modules/@popperjs/core/lib/modifiers/applyStyles.js
11356
+ function applyStyles(_ref) {
11357
+ var state = _ref.state;
11358
+ Object.keys(state.elements).forEach(function(name) {
11359
+ var style = state.styles[name] || {};
11360
+ var attributes = state.attributes[name] || {};
11361
+ var element = state.elements[name];
11362
+ if (!isHTMLElement(element) || !getNodeName(element)) {
11363
+ return;
11364
+ }
11365
+ Object.assign(element.style, style);
11366
+ Object.keys(attributes).forEach(function(name2) {
11367
+ var value = attributes[name2];
11368
+ if (value === false) {
11369
+ element.removeAttribute(name2);
11370
+ } else {
11371
+ element.setAttribute(name2, value === true ? "" : value);
11372
+ }
11373
+ });
11374
+ });
11375
+ }
11376
+ function effect(_ref2) {
11377
+ var state = _ref2.state;
11378
+ var initialStyles = {
11379
+ popper: {
11380
+ position: state.options.strategy,
11381
+ left: "0",
11382
+ top: "0",
11383
+ margin: "0"
11384
+ },
11385
+ arrow: {
11386
+ position: "absolute"
11387
+ },
11388
+ reference: {}
11389
+ };
11390
+ Object.assign(state.elements.popper.style, initialStyles.popper);
11391
+ state.styles = initialStyles;
11392
+ if (state.elements.arrow) {
11393
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
11394
+ }
11395
+ return function() {
11396
+ Object.keys(state.elements).forEach(function(name) {
11397
+ var element = state.elements[name];
11398
+ var attributes = state.attributes[name] || {};
11399
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);
11400
+ var style = styleProperties.reduce(function(style2, property) {
11401
+ style2[property] = "";
11402
+ return style2;
11403
+ }, {});
11404
+ if (!isHTMLElement(element) || !getNodeName(element)) {
11405
+ return;
11406
+ }
11407
+ Object.assign(element.style, style);
11408
+ Object.keys(attributes).forEach(function(attribute) {
11409
+ element.removeAttribute(attribute);
11410
+ });
11411
+ });
11412
+ };
11413
+ }
11414
+ var applyStyles_default = {
11415
+ name: "applyStyles",
11416
+ enabled: true,
11417
+ phase: "write",
11418
+ fn: applyStyles,
11419
+ effect,
11420
+ requires: ["computeStyles"]
11421
+ };
11422
+
11423
+ // node_modules/@popperjs/core/lib/utils/getBasePlacement.js
11424
+ function getBasePlacement(placement) {
11425
+ return placement.split("-")[0];
11426
+ }
11427
+
11428
+ // node_modules/@popperjs/core/lib/utils/math.js
11429
+ var max = Math.max;
11430
+ var min = Math.min;
11431
+ var round = Math.round;
11432
+
11433
+ // node_modules/@popperjs/core/lib/utils/userAgent.js
11434
+ function getUAString() {
11435
+ var uaData = navigator.userAgentData;
11436
+ if (uaData != null && uaData.brands) {
11437
+ return uaData.brands.map(function(item) {
11438
+ return item.brand + "/" + item.version;
11439
+ }).join(" ");
11440
+ }
11441
+ return navigator.userAgent;
11442
+ }
11443
+
11444
+ // node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js
11445
+ function isLayoutViewport() {
11446
+ return !/^((?!chrome|android).)*safari/i.test(getUAString());
11447
+ }
11448
+
11449
+ // node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
11450
+ function getBoundingClientRect(element, includeScale, isFixedStrategy) {
11451
+ if (includeScale === void 0) {
11452
+ includeScale = false;
11453
+ }
11454
+ if (isFixedStrategy === void 0) {
11455
+ isFixedStrategy = false;
11456
+ }
11457
+ var clientRect = element.getBoundingClientRect();
11458
+ var scaleX = 1;
11459
+ var scaleY = 1;
11460
+ if (includeScale && isHTMLElement(element)) {
11461
+ scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
11462
+ scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
11463
+ }
11464
+ var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;
11465
+ var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
11466
+ var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
11467
+ var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
11468
+ var width = clientRect.width / scaleX;
11469
+ var height = clientRect.height / scaleY;
11470
+ return {
11471
+ width,
11472
+ height,
11473
+ top: y,
11474
+ right: x + width,
11475
+ bottom: y + height,
11476
+ left: x,
11477
+ x,
11478
+ y
11479
+ };
11480
+ }
11481
+
11482
+ // node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
11483
+ function getLayoutRect(element) {
11484
+ var clientRect = getBoundingClientRect(element);
11485
+ var width = element.offsetWidth;
11486
+ var height = element.offsetHeight;
11487
+ if (Math.abs(clientRect.width - width) <= 1) {
11488
+ width = clientRect.width;
11489
+ }
11490
+ if (Math.abs(clientRect.height - height) <= 1) {
11491
+ height = clientRect.height;
11492
+ }
11493
+ return {
11494
+ x: element.offsetLeft,
11495
+ y: element.offsetTop,
11496
+ width,
11497
+ height
11498
+ };
11499
+ }
11500
+
11501
+ // node_modules/@popperjs/core/lib/dom-utils/contains.js
11502
+ function contains(parent, child) {
11503
+ var rootNode = child.getRootNode && child.getRootNode();
11504
+ if (parent.contains(child)) {
11505
+ return true;
11506
+ } else if (rootNode && isShadowRoot(rootNode)) {
11507
+ var next = child;
11508
+ do {
11509
+ if (next && parent.isSameNode(next)) {
11510
+ return true;
11511
+ }
11512
+ next = next.parentNode || next.host;
11513
+ } while (next);
11514
+ }
11515
+ return false;
11516
+ }
11517
+
11518
+ // node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
11519
+ function getComputedStyle(element) {
11520
+ return getWindow(element).getComputedStyle(element);
11521
+ }
11522
+
11523
+ // node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
11524
+ function isTableElement(element) {
11525
+ return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
11526
+ }
11527
+
11528
+ // node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
11529
+ function getDocumentElement(element) {
11530
+ return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;
11531
+ }
11532
+
11533
+ // node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
11534
+ function getParentNode(element) {
11535
+ if (getNodeName(element) === "html") {
11536
+ return element;
11537
+ }
11538
+ return element.assignedSlot || element.parentNode || (isShadowRoot(element) ? element.host : null) || getDocumentElement(element);
11539
+ }
11540
+
11541
+ // node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
11542
+ function getTrueOffsetParent(element) {
11543
+ if (!isHTMLElement(element) || getComputedStyle(element).position === "fixed") {
11544
+ return null;
11545
+ }
11546
+ return element.offsetParent;
11547
+ }
11548
+ function getContainingBlock(element) {
11549
+ var isFirefox = /firefox/i.test(getUAString());
11550
+ var isIE = /Trident/i.test(getUAString());
11551
+ if (isIE && isHTMLElement(element)) {
11552
+ var elementCss = getComputedStyle(element);
11553
+ if (elementCss.position === "fixed") {
11554
+ return null;
11555
+ }
11556
+ }
11557
+ var currentNode = getParentNode(element);
11558
+ if (isShadowRoot(currentNode)) {
11559
+ currentNode = currentNode.host;
11560
+ }
11561
+ while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
11562
+ var css2 = getComputedStyle(currentNode);
11563
+ if (css2.transform !== "none" || css2.perspective !== "none" || css2.contain === "paint" || ["transform", "perspective"].indexOf(css2.willChange) !== -1 || isFirefox && css2.willChange === "filter" || isFirefox && css2.filter && css2.filter !== "none") {
11564
+ return currentNode;
11565
+ } else {
11566
+ currentNode = currentNode.parentNode;
11567
+ }
11568
+ }
11569
+ return null;
11570
+ }
11571
+ function getOffsetParent(element) {
11572
+ var window2 = getWindow(element);
11573
+ var offsetParent = getTrueOffsetParent(element);
11574
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === "static") {
11575
+ offsetParent = getTrueOffsetParent(offsetParent);
11576
+ }
11577
+ if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle(offsetParent).position === "static")) {
11578
+ return window2;
11579
+ }
11580
+ return offsetParent || getContainingBlock(element) || window2;
11581
+ }
11582
+
11583
+ // node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
11584
+ function getMainAxisFromPlacement(placement) {
11585
+ return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
11586
+ }
11587
+
11588
+ // node_modules/@popperjs/core/lib/utils/within.js
11589
+ function within(min2, value, max2) {
11590
+ return max(min2, min(value, max2));
11591
+ }
11592
+ function withinMaxClamp(min2, value, max2) {
11593
+ var v = within(min2, value, max2);
11594
+ return v > max2 ? max2 : v;
11595
+ }
11596
+
11597
+ // node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
11598
+ function getFreshSideObject() {
11599
+ return {
11600
+ top: 0,
11601
+ right: 0,
11602
+ bottom: 0,
11603
+ left: 0
11604
+ };
11605
+ }
11606
+
11607
+ // node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
11608
+ function mergePaddingObject(paddingObject) {
11609
+ return Object.assign({}, getFreshSideObject(), paddingObject);
11610
+ }
11611
+
11612
+ // node_modules/@popperjs/core/lib/utils/expandToHashMap.js
11613
+ function expandToHashMap(value, keys) {
11614
+ return keys.reduce(function(hashMap, key) {
11615
+ hashMap[key] = value;
11616
+ return hashMap;
11617
+ }, {});
11618
+ }
11619
+
11620
+ // node_modules/@popperjs/core/lib/modifiers/arrow.js
11621
+ var toPaddingObject = function toPaddingObject2(padding, state) {
11622
+ padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, {
11623
+ placement: state.placement
11624
+ })) : padding;
11625
+ return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
11626
+ };
11627
+ function arrow(_ref) {
11628
+ var _state$modifiersData$;
11629
+ var state = _ref.state, name = _ref.name, options = _ref.options;
11630
+ var arrowElement = state.elements.arrow;
11631
+ var popperOffsets2 = state.modifiersData.popperOffsets;
11632
+ var basePlacement = getBasePlacement(state.placement);
11633
+ var axis = getMainAxisFromPlacement(basePlacement);
11634
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
11635
+ var len = isVertical ? "height" : "width";
11636
+ if (!arrowElement || !popperOffsets2) {
11637
+ return;
11638
+ }
11639
+ var paddingObject = toPaddingObject(options.padding, state);
11640
+ var arrowRect = getLayoutRect(arrowElement);
11641
+ var minProp = axis === "y" ? top : left;
11642
+ var maxProp = axis === "y" ? bottom : right;
11643
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len];
11644
+ var startDiff = popperOffsets2[axis] - state.rects.reference[axis];
11645
+ var arrowOffsetParent = getOffsetParent(arrowElement);
11646
+ var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
11647
+ var centerToReference = endDiff / 2 - startDiff / 2;
11648
+ var min2 = paddingObject[minProp];
11649
+ var max2 = clientSize - arrowRect[len] - paddingObject[maxProp];
11650
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
11651
+ var offset2 = within(min2, center, max2);
11652
+ var axisProp = axis;
11653
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$);
11654
+ }
11655
+ function effect2(_ref2) {
11656
+ var state = _ref2.state, options = _ref2.options;
11657
+ var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element;
11658
+ if (arrowElement == null) {
11659
+ return;
11660
+ }
11661
+ if (typeof arrowElement === "string") {
11662
+ arrowElement = state.elements.popper.querySelector(arrowElement);
11663
+ if (!arrowElement) {
11664
+ return;
11665
+ }
11666
+ }
11667
+ if (true) {
11668
+ if (!isHTMLElement(arrowElement)) {
11669
+ console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', "To use an SVG arrow, wrap it in an HTMLElement that will be used as", "the arrow."].join(" "));
11670
+ }
11671
+ }
11672
+ if (!contains(state.elements.popper, arrowElement)) {
11673
+ if (true) {
11674
+ console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', "element."].join(" "));
11675
+ }
11676
+ return;
11677
+ }
11678
+ state.elements.arrow = arrowElement;
11679
+ }
11680
+ var arrow_default = {
11681
+ name: "arrow",
11682
+ enabled: true,
11683
+ phase: "main",
11684
+ fn: arrow,
11685
+ effect: effect2,
11686
+ requires: ["popperOffsets"],
11687
+ requiresIfExists: ["preventOverflow"]
11688
+ };
11689
+
11690
+ // node_modules/@popperjs/core/lib/utils/getVariation.js
11691
+ function getVariation(placement) {
11692
+ return placement.split("-")[1];
11693
+ }
11694
+
11695
+ // node_modules/@popperjs/core/lib/modifiers/computeStyles.js
11696
+ var unsetSides = {
11697
+ top: "auto",
11698
+ right: "auto",
11699
+ bottom: "auto",
11700
+ left: "auto"
11701
+ };
11702
+ function roundOffsetsByDPR(_ref) {
11703
+ var x = _ref.x, y = _ref.y;
11704
+ var win = window;
11705
+ var dpr = win.devicePixelRatio || 1;
11706
+ return {
11707
+ x: round(x * dpr) / dpr || 0,
11708
+ y: round(y * dpr) / dpr || 0
11709
+ };
11710
+ }
11711
+ function mapToStyles(_ref2) {
11712
+ var _Object$assign2;
11713
+ var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
11714
+ var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;
11715
+ var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
11716
+ x,
11717
+ y
11718
+ }) : {
11719
+ x,
11720
+ y
11721
+ };
11722
+ x = _ref3.x;
11723
+ y = _ref3.y;
11724
+ var hasX = offsets.hasOwnProperty("x");
11725
+ var hasY = offsets.hasOwnProperty("y");
11726
+ var sideX = left;
11727
+ var sideY = top;
11728
+ var win = window;
11729
+ if (adaptive) {
11730
+ var offsetParent = getOffsetParent(popper2);
11731
+ var heightProp = "clientHeight";
11732
+ var widthProp = "clientWidth";
11733
+ if (offsetParent === getWindow(popper2)) {
11734
+ offsetParent = getDocumentElement(popper2);
11735
+ if (getComputedStyle(offsetParent).position !== "static" && position === "absolute") {
11736
+ heightProp = "scrollHeight";
11737
+ widthProp = "scrollWidth";
11738
+ }
11739
+ }
11740
+ offsetParent = offsetParent;
11741
+ if (placement === top || (placement === left || placement === right) && variation === end) {
11742
+ sideY = bottom;
11743
+ var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp];
11744
+ y -= offsetY - popperRect.height;
11745
+ y *= gpuAcceleration ? 1 : -1;
11746
+ }
11747
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
11748
+ sideX = right;
11749
+ var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp];
11750
+ x -= offsetX - popperRect.width;
11751
+ x *= gpuAcceleration ? 1 : -1;
11752
+ }
11753
+ }
11754
+ var commonStyles = Object.assign({
11755
+ position
11756
+ }, adaptive && unsetSides);
11757
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
11758
+ x,
11759
+ y
11760
+ }) : {
11761
+ x,
11762
+ y
11763
+ };
11764
+ x = _ref4.x;
11765
+ y = _ref4.y;
11766
+ if (gpuAcceleration) {
11767
+ var _Object$assign;
11768
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
11769
+ }
11770
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2));
11771
+ }
11772
+ function computeStyles(_ref5) {
11773
+ var state = _ref5.state, options = _ref5.options;
11774
+ var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
11775
+ if (true) {
11776
+ var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || "";
11777
+ if (adaptive && ["transform", "top", "right", "bottom", "left"].some(function(property) {
11778
+ return transitionProperty.indexOf(property) >= 0;
11779
+ })) {
11780
+ console.warn(["Popper: Detected CSS transitions on at least one of the following", 'CSS properties: "transform", "top", "right", "bottom", "left".', "\n\n", 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', "for smooth transitions, or remove these properties from the CSS", "transition declaration on the popper element if only transitioning", "opacity or background-color for example.", "\n\n", "We recommend using the popper element as a wrapper around an inner", "element that can have any CSS property transitioned for animations."].join(" "));
11781
+ }
11782
+ }
11783
+ var commonStyles = {
11784
+ placement: getBasePlacement(state.placement),
11785
+ variation: getVariation(state.placement),
11786
+ popper: state.elements.popper,
11787
+ popperRect: state.rects.popper,
11788
+ gpuAcceleration,
11789
+ isFixed: state.options.strategy === "fixed"
11790
+ };
11791
+ if (state.modifiersData.popperOffsets != null) {
11792
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
11793
+ offsets: state.modifiersData.popperOffsets,
11794
+ position: state.options.strategy,
11795
+ adaptive,
11796
+ roundOffsets
11797
+ })));
11798
+ }
11799
+ if (state.modifiersData.arrow != null) {
11800
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
11801
+ offsets: state.modifiersData.arrow,
11802
+ position: "absolute",
11803
+ adaptive: false,
11804
+ roundOffsets
11805
+ })));
11806
+ }
11807
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
11808
+ "data-popper-placement": state.placement
11809
+ });
11810
+ }
11811
+ var computeStyles_default = {
11812
+ name: "computeStyles",
11813
+ enabled: true,
11814
+ phase: "beforeWrite",
11815
+ fn: computeStyles,
11816
+ data: {}
11817
+ };
11818
+
11819
+ // node_modules/@popperjs/core/lib/modifiers/eventListeners.js
11820
+ var passive = {
11821
+ passive: true
11822
+ };
11823
+ function effect3(_ref) {
11824
+ var state = _ref.state, instance = _ref.instance, options = _ref.options;
11825
+ var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
11826
+ var window2 = getWindow(state.elements.popper);
11827
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
11828
+ if (scroll) {
11829
+ scrollParents.forEach(function(scrollParent) {
11830
+ scrollParent.addEventListener("scroll", instance.update, passive);
11831
+ });
11832
+ }
11833
+ if (resize) {
11834
+ window2.addEventListener("resize", instance.update, passive);
11835
+ }
11836
+ return function() {
11837
+ if (scroll) {
11838
+ scrollParents.forEach(function(scrollParent) {
11839
+ scrollParent.removeEventListener("scroll", instance.update, passive);
11840
+ });
11841
+ }
11842
+ if (resize) {
11843
+ window2.removeEventListener("resize", instance.update, passive);
11844
+ }
11845
+ };
11846
+ }
11847
+ var eventListeners_default = {
11848
+ name: "eventListeners",
11849
+ enabled: true,
11850
+ phase: "write",
11851
+ fn: function fn() {
11852
+ },
11853
+ effect: effect3,
11854
+ data: {}
11855
+ };
11856
+
11857
+ // node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
11858
+ var hash = {
11859
+ left: "right",
11860
+ right: "left",
11861
+ bottom: "top",
11862
+ top: "bottom"
11863
+ };
11864
+ function getOppositePlacement(placement) {
11865
+ return placement.replace(/left|right|bottom|top/g, function(matched) {
11866
+ return hash[matched];
11867
+ });
11868
+ }
11869
+
11870
+ // node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
11871
+ var hash2 = {
11872
+ start: "end",
11873
+ end: "start"
11874
+ };
11875
+ function getOppositeVariationPlacement(placement) {
11876
+ return placement.replace(/start|end/g, function(matched) {
11877
+ return hash2[matched];
11878
+ });
11879
+ }
11880
+
11881
+ // node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
11882
+ function getWindowScroll(node) {
11883
+ var win = getWindow(node);
11884
+ var scrollLeft = win.pageXOffset;
11885
+ var scrollTop = win.pageYOffset;
11886
+ return {
11887
+ scrollLeft,
11888
+ scrollTop
11889
+ };
11890
+ }
11891
+
11892
+ // node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
11893
+ function getWindowScrollBarX(element) {
11894
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
11895
+ }
11896
+
11897
+ // node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
11898
+ function getViewportRect(element, strategy) {
11899
+ var win = getWindow(element);
11900
+ var html = getDocumentElement(element);
11901
+ var visualViewport = win.visualViewport;
11902
+ var width = html.clientWidth;
11903
+ var height = html.clientHeight;
11904
+ var x = 0;
11905
+ var y = 0;
11906
+ if (visualViewport) {
11907
+ width = visualViewport.width;
11908
+ height = visualViewport.height;
11909
+ var layoutViewport = isLayoutViewport();
11910
+ if (layoutViewport || !layoutViewport && strategy === "fixed") {
11911
+ x = visualViewport.offsetLeft;
11912
+ y = visualViewport.offsetTop;
11913
+ }
11914
+ }
11915
+ return {
11916
+ width,
11917
+ height,
11918
+ x: x + getWindowScrollBarX(element),
11919
+ y
11920
+ };
11921
+ }
11922
+
11923
+ // node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
11924
+ function getDocumentRect(element) {
11925
+ var _element$ownerDocumen;
11926
+ var html = getDocumentElement(element);
11927
+ var winScroll = getWindowScroll(element);
11928
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
11929
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
11930
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
11931
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
11932
+ var y = -winScroll.scrollTop;
11933
+ if (getComputedStyle(body || html).direction === "rtl") {
11934
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
11935
+ }
11936
+ return {
11937
+ width,
11938
+ height,
11939
+ x,
11940
+ y
11941
+ };
11942
+ }
11943
+
11944
+ // node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
11945
+ function isScrollParent(element) {
11946
+ var _getComputedStyle = getComputedStyle(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;
11947
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
11948
+ }
11949
+
11950
+ // node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
11951
+ function getScrollParent(node) {
11952
+ if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
11953
+ return node.ownerDocument.body;
11954
+ }
11955
+ if (isHTMLElement(node) && isScrollParent(node)) {
11956
+ return node;
11957
+ }
11958
+ return getScrollParent(getParentNode(node));
11959
+ }
11960
+
11961
+ // node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
11962
+ function listScrollParents(element, list) {
11963
+ var _element$ownerDocumen;
11964
+ if (list === void 0) {
11965
+ list = [];
11966
+ }
11967
+ var scrollParent = getScrollParent(element);
11968
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
11969
+ var win = getWindow(scrollParent);
11970
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
11971
+ var updatedList = list.concat(target);
11972
+ return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target)));
11973
+ }
11974
+
11975
+ // node_modules/@popperjs/core/lib/utils/rectToClientRect.js
11976
+ function rectToClientRect(rect) {
11977
+ return Object.assign({}, rect, {
11978
+ left: rect.x,
11979
+ top: rect.y,
11980
+ right: rect.x + rect.width,
11981
+ bottom: rect.y + rect.height
11982
+ });
11983
+ }
11984
+
11985
+ // node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
11986
+ function getInnerBoundingClientRect(element, strategy) {
11987
+ var rect = getBoundingClientRect(element, false, strategy === "fixed");
11988
+ rect.top = rect.top + element.clientTop;
11989
+ rect.left = rect.left + element.clientLeft;
11990
+ rect.bottom = rect.top + element.clientHeight;
11991
+ rect.right = rect.left + element.clientWidth;
11992
+ rect.width = element.clientWidth;
11993
+ rect.height = element.clientHeight;
11994
+ rect.x = rect.left;
11995
+ rect.y = rect.top;
11996
+ return rect;
11997
+ }
11998
+ function getClientRectFromMixedType(element, clippingParent, strategy) {
11999
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
12000
+ }
12001
+ function getClippingParents(element) {
12002
+ var clippingParents2 = listScrollParents(getParentNode(element));
12003
+ var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle(element).position) >= 0;
12004
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
12005
+ if (!isElement(clipperElement)) {
12006
+ return [];
12007
+ }
12008
+ return clippingParents2.filter(function(clippingParent) {
12009
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body";
12010
+ });
12011
+ }
12012
+ function getClippingRect(element, boundary, rootBoundary, strategy) {
12013
+ var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary);
12014
+ var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]);
12015
+ var firstClippingParent = clippingParents2[0];
12016
+ var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) {
12017
+ var rect = getClientRectFromMixedType(element, clippingParent, strategy);
12018
+ accRect.top = max(rect.top, accRect.top);
12019
+ accRect.right = min(rect.right, accRect.right);
12020
+ accRect.bottom = min(rect.bottom, accRect.bottom);
12021
+ accRect.left = max(rect.left, accRect.left);
12022
+ return accRect;
12023
+ }, getClientRectFromMixedType(element, firstClippingParent, strategy));
12024
+ clippingRect.width = clippingRect.right - clippingRect.left;
12025
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
12026
+ clippingRect.x = clippingRect.left;
12027
+ clippingRect.y = clippingRect.top;
12028
+ return clippingRect;
12029
+ }
12030
+
12031
+ // node_modules/@popperjs/core/lib/utils/computeOffsets.js
12032
+ function computeOffsets(_ref) {
12033
+ var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement;
12034
+ var basePlacement = placement ? getBasePlacement(placement) : null;
12035
+ var variation = placement ? getVariation(placement) : null;
12036
+ var commonX = reference2.x + reference2.width / 2 - element.width / 2;
12037
+ var commonY = reference2.y + reference2.height / 2 - element.height / 2;
12038
+ var offsets;
12039
+ switch (basePlacement) {
12040
+ case top:
12041
+ offsets = {
12042
+ x: commonX,
12043
+ y: reference2.y - element.height
12044
+ };
12045
+ break;
12046
+ case bottom:
12047
+ offsets = {
12048
+ x: commonX,
12049
+ y: reference2.y + reference2.height
12050
+ };
12051
+ break;
12052
+ case right:
12053
+ offsets = {
12054
+ x: reference2.x + reference2.width,
12055
+ y: commonY
12056
+ };
12057
+ break;
12058
+ case left:
12059
+ offsets = {
12060
+ x: reference2.x - element.width,
12061
+ y: commonY
12062
+ };
12063
+ break;
12064
+ default:
12065
+ offsets = {
12066
+ x: reference2.x,
12067
+ y: reference2.y
12068
+ };
12069
+ }
12070
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
12071
+ if (mainAxis != null) {
12072
+ var len = mainAxis === "y" ? "height" : "width";
12073
+ switch (variation) {
12074
+ case start:
12075
+ offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2);
12076
+ break;
12077
+ case end:
12078
+ offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2);
12079
+ break;
12080
+ default:
12081
+ }
12082
+ }
12083
+ return offsets;
12084
+ }
12085
+
12086
+ // node_modules/@popperjs/core/lib/utils/detectOverflow.js
12087
+ function detectOverflow(state, options) {
12088
+ if (options === void 0) {
12089
+ options = {};
12090
+ }
12091
+ var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding;
12092
+ var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
12093
+ var altContext = elementContext === popper ? reference : popper;
12094
+ var popperRect = state.rects.popper;
12095
+ var element = state.elements[altBoundary ? altContext : elementContext];
12096
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
12097
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
12098
+ var popperOffsets2 = computeOffsets({
12099
+ reference: referenceClientRect,
12100
+ element: popperRect,
12101
+ strategy: "absolute",
12102
+ placement
12103
+ });
12104
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2));
12105
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;
12106
+ var overflowOffsets = {
12107
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
12108
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
12109
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
12110
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
12111
+ };
12112
+ var offsetData = state.modifiersData.offset;
12113
+ if (elementContext === popper && offsetData) {
12114
+ var offset2 = offsetData[placement];
12115
+ Object.keys(overflowOffsets).forEach(function(key) {
12116
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
12117
+ var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x";
12118
+ overflowOffsets[key] += offset2[axis] * multiply;
12119
+ });
12120
+ }
12121
+ return overflowOffsets;
12122
+ }
12123
+
12124
+ // node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
12125
+ function computeAutoPlacement(state, options) {
12126
+ if (options === void 0) {
12127
+ options = {};
12128
+ }
12129
+ var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
12130
+ var variation = getVariation(placement);
12131
+ var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) {
12132
+ return getVariation(placement2) === variation;
12133
+ }) : basePlacements;
12134
+ var allowedPlacements = placements2.filter(function(placement2) {
12135
+ return allowedAutoPlacements.indexOf(placement2) >= 0;
12136
+ });
12137
+ if (allowedPlacements.length === 0) {
12138
+ allowedPlacements = placements2;
12139
+ if (true) {
12140
+ console.error(["Popper: The `allowedAutoPlacements` option did not allow any", "placements. Ensure the `placement` option matches the variation", "of the allowed placements.", 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(" "));
12141
+ }
12142
+ }
12143
+ var overflows = allowedPlacements.reduce(function(acc, placement2) {
12144
+ acc[placement2] = detectOverflow(state, {
12145
+ placement: placement2,
12146
+ boundary,
12147
+ rootBoundary,
12148
+ padding
12149
+ })[getBasePlacement(placement2)];
12150
+ return acc;
12151
+ }, {});
12152
+ return Object.keys(overflows).sort(function(a, b) {
12153
+ return overflows[a] - overflows[b];
12154
+ });
12155
+ }
12156
+
12157
+ // node_modules/@popperjs/core/lib/modifiers/flip.js
12158
+ function getExpandedFallbackPlacements(placement) {
12159
+ if (getBasePlacement(placement) === auto) {
12160
+ return [];
12161
+ }
12162
+ var oppositePlacement = getOppositePlacement(placement);
12163
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
12164
+ }
12165
+ function flip(_ref) {
12166
+ var state = _ref.state, options = _ref.options, name = _ref.name;
12167
+ if (state.modifiersData[name]._skip) {
12168
+ return;
12169
+ }
12170
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements;
12171
+ var preferredPlacement = state.options.placement;
12172
+ var basePlacement = getBasePlacement(preferredPlacement);
12173
+ var isBasePlacement = basePlacement === preferredPlacement;
12174
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
12175
+ var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) {
12176
+ return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, {
12177
+ placement: placement2,
12178
+ boundary,
12179
+ rootBoundary,
12180
+ padding,
12181
+ flipVariations,
12182
+ allowedAutoPlacements
12183
+ }) : placement2);
12184
+ }, []);
12185
+ var referenceRect = state.rects.reference;
12186
+ var popperRect = state.rects.popper;
12187
+ var checksMap = /* @__PURE__ */ new Map();
12188
+ var makeFallbackChecks = true;
12189
+ var firstFittingPlacement = placements2[0];
12190
+ for (var i = 0; i < placements2.length; i++) {
12191
+ var placement = placements2[i];
12192
+ var _basePlacement = getBasePlacement(placement);
12193
+ var isStartVariation = getVariation(placement) === start;
12194
+ var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
12195
+ var len = isVertical ? "width" : "height";
12196
+ var overflow = detectOverflow(state, {
12197
+ placement,
12198
+ boundary,
12199
+ rootBoundary,
12200
+ altBoundary,
12201
+ padding
12202
+ });
12203
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
12204
+ if (referenceRect[len] > popperRect[len]) {
12205
+ mainVariationSide = getOppositePlacement(mainVariationSide);
12206
+ }
12207
+ var altVariationSide = getOppositePlacement(mainVariationSide);
12208
+ var checks = [];
12209
+ if (checkMainAxis) {
12210
+ checks.push(overflow[_basePlacement] <= 0);
12211
+ }
12212
+ if (checkAltAxis) {
12213
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
12214
+ }
12215
+ if (checks.every(function(check) {
12216
+ return check;
12217
+ })) {
12218
+ firstFittingPlacement = placement;
12219
+ makeFallbackChecks = false;
12220
+ break;
12221
+ }
12222
+ checksMap.set(placement, checks);
12223
+ }
12224
+ if (makeFallbackChecks) {
12225
+ var numberOfChecks = flipVariations ? 3 : 1;
12226
+ var _loop = function _loop2(_i2) {
12227
+ var fittingPlacement = placements2.find(function(placement2) {
12228
+ var checks2 = checksMap.get(placement2);
12229
+ if (checks2) {
12230
+ return checks2.slice(0, _i2).every(function(check) {
12231
+ return check;
12232
+ });
12233
+ }
12234
+ });
12235
+ if (fittingPlacement) {
12236
+ firstFittingPlacement = fittingPlacement;
12237
+ return "break";
12238
+ }
12239
+ };
12240
+ for (var _i = numberOfChecks; _i > 0; _i--) {
12241
+ var _ret = _loop(_i);
12242
+ if (_ret === "break")
12243
+ break;
12244
+ }
12245
+ }
12246
+ if (state.placement !== firstFittingPlacement) {
12247
+ state.modifiersData[name]._skip = true;
12248
+ state.placement = firstFittingPlacement;
12249
+ state.reset = true;
12250
+ }
12251
+ }
12252
+ var flip_default = {
12253
+ name: "flip",
12254
+ enabled: true,
12255
+ phase: "main",
12256
+ fn: flip,
12257
+ requiresIfExists: ["offset"],
12258
+ data: {
12259
+ _skip: false
12260
+ }
12261
+ };
12262
+
12263
+ // node_modules/@popperjs/core/lib/modifiers/hide.js
12264
+ function getSideOffsets(overflow, rect, preventedOffsets) {
12265
+ if (preventedOffsets === void 0) {
12266
+ preventedOffsets = {
12267
+ x: 0,
12268
+ y: 0
12269
+ };
12270
+ }
12271
+ return {
12272
+ top: overflow.top - rect.height - preventedOffsets.y,
12273
+ right: overflow.right - rect.width + preventedOffsets.x,
12274
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
12275
+ left: overflow.left - rect.width - preventedOffsets.x
12276
+ };
12277
+ }
12278
+ function isAnySideFullyClipped(overflow) {
12279
+ return [top, right, bottom, left].some(function(side) {
12280
+ return overflow[side] >= 0;
12281
+ });
12282
+ }
12283
+ function hide(_ref) {
12284
+ var state = _ref.state, name = _ref.name;
12285
+ var referenceRect = state.rects.reference;
12286
+ var popperRect = state.rects.popper;
12287
+ var preventedOffsets = state.modifiersData.preventOverflow;
12288
+ var referenceOverflow = detectOverflow(state, {
12289
+ elementContext: "reference"
12290
+ });
12291
+ var popperAltOverflow = detectOverflow(state, {
12292
+ altBoundary: true
12293
+ });
12294
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
12295
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
12296
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
12297
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
12298
+ state.modifiersData[name] = {
12299
+ referenceClippingOffsets,
12300
+ popperEscapeOffsets,
12301
+ isReferenceHidden,
12302
+ hasPopperEscaped
12303
+ };
12304
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
12305
+ "data-popper-reference-hidden": isReferenceHidden,
12306
+ "data-popper-escaped": hasPopperEscaped
12307
+ });
12308
+ }
12309
+ var hide_default = {
12310
+ name: "hide",
12311
+ enabled: true,
12312
+ phase: "main",
12313
+ requiresIfExists: ["preventOverflow"],
12314
+ fn: hide
12315
+ };
12316
+
12317
+ // node_modules/@popperjs/core/lib/modifiers/offset.js
12318
+ function distanceAndSkiddingToXY(placement, rects, offset2) {
12319
+ var basePlacement = getBasePlacement(placement);
12320
+ var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
12321
+ var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
12322
+ placement
12323
+ })) : offset2, skidding = _ref[0], distance = _ref[1];
12324
+ skidding = skidding || 0;
12325
+ distance = (distance || 0) * invertDistance;
12326
+ return [left, right].indexOf(basePlacement) >= 0 ? {
12327
+ x: distance,
12328
+ y: skidding
12329
+ } : {
12330
+ x: skidding,
12331
+ y: distance
12332
+ };
12333
+ }
12334
+ function offset(_ref2) {
12335
+ var state = _ref2.state, options = _ref2.options, name = _ref2.name;
12336
+ var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
12337
+ var data = placements.reduce(function(acc, placement) {
12338
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
12339
+ return acc;
12340
+ }, {});
12341
+ var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;
12342
+ if (state.modifiersData.popperOffsets != null) {
12343
+ state.modifiersData.popperOffsets.x += x;
12344
+ state.modifiersData.popperOffsets.y += y;
12345
+ }
12346
+ state.modifiersData[name] = data;
12347
+ }
12348
+ var offset_default = {
12349
+ name: "offset",
12350
+ enabled: true,
12351
+ phase: "main",
12352
+ requires: ["popperOffsets"],
12353
+ fn: offset
12354
+ };
12355
+
12356
+ // node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
12357
+ function popperOffsets(_ref) {
12358
+ var state = _ref.state, name = _ref.name;
12359
+ state.modifiersData[name] = computeOffsets({
12360
+ reference: state.rects.reference,
12361
+ element: state.rects.popper,
12362
+ strategy: "absolute",
12363
+ placement: state.placement
12364
+ });
12365
+ }
12366
+ var popperOffsets_default = {
12367
+ name: "popperOffsets",
12368
+ enabled: true,
12369
+ phase: "read",
12370
+ fn: popperOffsets,
12371
+ data: {}
12372
+ };
12373
+
12374
+ // node_modules/@popperjs/core/lib/utils/getAltAxis.js
12375
+ function getAltAxis(axis) {
12376
+ return axis === "x" ? "y" : "x";
12377
+ }
12378
+
12379
+ // node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
12380
+ function preventOverflow(_ref) {
12381
+ var state = _ref.state, options = _ref.options, name = _ref.name;
12382
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
12383
+ var overflow = detectOverflow(state, {
12384
+ boundary,
12385
+ rootBoundary,
12386
+ padding,
12387
+ altBoundary
12388
+ });
12389
+ var basePlacement = getBasePlacement(state.placement);
12390
+ var variation = getVariation(state.placement);
12391
+ var isBasePlacement = !variation;
12392
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
12393
+ var altAxis = getAltAxis(mainAxis);
12394
+ var popperOffsets2 = state.modifiersData.popperOffsets;
12395
+ var referenceRect = state.rects.reference;
12396
+ var popperRect = state.rects.popper;
12397
+ var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, {
12398
+ placement: state.placement
12399
+ })) : tetherOffset;
12400
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? {
12401
+ mainAxis: tetherOffsetValue,
12402
+ altAxis: tetherOffsetValue
12403
+ } : Object.assign({
12404
+ mainAxis: 0,
12405
+ altAxis: 0
12406
+ }, tetherOffsetValue);
12407
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
12408
+ var data = {
12409
+ x: 0,
12410
+ y: 0
12411
+ };
12412
+ if (!popperOffsets2) {
12413
+ return;
12414
+ }
12415
+ if (checkMainAxis) {
12416
+ var _offsetModifierState$;
12417
+ var mainSide = mainAxis === "y" ? top : left;
12418
+ var altSide = mainAxis === "y" ? bottom : right;
12419
+ var len = mainAxis === "y" ? "height" : "width";
12420
+ var offset2 = popperOffsets2[mainAxis];
12421
+ var min2 = offset2 + overflow[mainSide];
12422
+ var max2 = offset2 - overflow[altSide];
12423
+ var additive = tether ? -popperRect[len] / 2 : 0;
12424
+ var minLen = variation === start ? referenceRect[len] : popperRect[len];
12425
+ var maxLen = variation === start ? -popperRect[len] : -referenceRect[len];
12426
+ var arrowElement = state.elements.arrow;
12427
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
12428
+ width: 0,
12429
+ height: 0
12430
+ };
12431
+ var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject();
12432
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
12433
+ var arrowPaddingMax = arrowPaddingObject[altSide];
12434
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
12435
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
12436
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
12437
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
12438
+ var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
12439
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
12440
+ var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset;
12441
+ var tetherMax = offset2 + maxOffset - offsetModifierValue;
12442
+ var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset2, tether ? max(max2, tetherMax) : max2);
12443
+ popperOffsets2[mainAxis] = preventedOffset;
12444
+ data[mainAxis] = preventedOffset - offset2;
12445
+ }
12446
+ if (checkAltAxis) {
12447
+ var _offsetModifierState$2;
12448
+ var _mainSide = mainAxis === "x" ? top : left;
12449
+ var _altSide = mainAxis === "x" ? bottom : right;
12450
+ var _offset = popperOffsets2[altAxis];
12451
+ var _len = altAxis === "y" ? "height" : "width";
12452
+ var _min = _offset + overflow[_mainSide];
12453
+ var _max = _offset - overflow[_altSide];
12454
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
12455
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
12456
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
12457
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
12458
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
12459
+ popperOffsets2[altAxis] = _preventedOffset;
12460
+ data[altAxis] = _preventedOffset - _offset;
12461
+ }
12462
+ state.modifiersData[name] = data;
12463
+ }
12464
+ var preventOverflow_default = {
12465
+ name: "preventOverflow",
12466
+ enabled: true,
12467
+ phase: "main",
12468
+ fn: preventOverflow,
12469
+ requiresIfExists: ["offset"]
12470
+ };
12471
+
12472
+ // node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
12473
+ function getHTMLElementScroll(element) {
12474
+ return {
12475
+ scrollLeft: element.scrollLeft,
12476
+ scrollTop: element.scrollTop
12477
+ };
12478
+ }
12479
+
12480
+ // node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
12481
+ function getNodeScroll(node) {
12482
+ if (node === getWindow(node) || !isHTMLElement(node)) {
12483
+ return getWindowScroll(node);
12484
+ } else {
12485
+ return getHTMLElementScroll(node);
12486
+ }
12487
+ }
12488
+
12489
+ // node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
12490
+ function isElementScaled(element) {
12491
+ var rect = element.getBoundingClientRect();
12492
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
12493
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
12494
+ return scaleX !== 1 || scaleY !== 1;
12495
+ }
12496
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
12497
+ if (isFixed === void 0) {
12498
+ isFixed = false;
12499
+ }
12500
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
12501
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
12502
+ var documentElement = getDocumentElement(offsetParent);
12503
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
12504
+ var scroll = {
12505
+ scrollLeft: 0,
12506
+ scrollTop: 0
12507
+ };
12508
+ var offsets = {
12509
+ x: 0,
12510
+ y: 0
12511
+ };
12512
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
12513
+ if (getNodeName(offsetParent) !== "body" || isScrollParent(documentElement)) {
12514
+ scroll = getNodeScroll(offsetParent);
12515
+ }
12516
+ if (isHTMLElement(offsetParent)) {
12517
+ offsets = getBoundingClientRect(offsetParent, true);
12518
+ offsets.x += offsetParent.clientLeft;
12519
+ offsets.y += offsetParent.clientTop;
12520
+ } else if (documentElement) {
12521
+ offsets.x = getWindowScrollBarX(documentElement);
12522
+ }
12523
+ }
12524
+ return {
12525
+ x: rect.left + scroll.scrollLeft - offsets.x,
12526
+ y: rect.top + scroll.scrollTop - offsets.y,
12527
+ width: rect.width,
12528
+ height: rect.height
12529
+ };
12530
+ }
12531
+
12532
+ // node_modules/@popperjs/core/lib/utils/orderModifiers.js
12533
+ function order(modifiers) {
12534
+ var map = /* @__PURE__ */ new Map();
12535
+ var visited = /* @__PURE__ */ new Set();
12536
+ var result = [];
12537
+ modifiers.forEach(function(modifier) {
12538
+ map.set(modifier.name, modifier);
12539
+ });
12540
+ function sort2(modifier) {
12541
+ visited.add(modifier.name);
12542
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
12543
+ requires.forEach(function(dep) {
12544
+ if (!visited.has(dep)) {
12545
+ var depModifier = map.get(dep);
12546
+ if (depModifier) {
12547
+ sort2(depModifier);
12548
+ }
12549
+ }
12550
+ });
12551
+ result.push(modifier);
12552
+ }
12553
+ modifiers.forEach(function(modifier) {
12554
+ if (!visited.has(modifier.name)) {
12555
+ sort2(modifier);
12556
+ }
12557
+ });
12558
+ return result;
12559
+ }
12560
+ function orderModifiers(modifiers) {
12561
+ var orderedModifiers = order(modifiers);
12562
+ return modifierPhases.reduce(function(acc, phase) {
12563
+ return acc.concat(orderedModifiers.filter(function(modifier) {
12564
+ return modifier.phase === phase;
12565
+ }));
12566
+ }, []);
12567
+ }
12568
+
12569
+ // node_modules/@popperjs/core/lib/utils/debounce.js
12570
+ function debounce2(fn2) {
12571
+ var pending;
12572
+ return function() {
12573
+ if (!pending) {
12574
+ pending = new Promise(function(resolve) {
12575
+ Promise.resolve().then(function() {
12576
+ pending = void 0;
12577
+ resolve(fn2());
12578
+ });
12579
+ });
12580
+ }
12581
+ return pending;
12582
+ };
12583
+ }
12584
+
12585
+ // node_modules/@popperjs/core/lib/utils/format.js
12586
+ function format(str) {
12587
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
12588
+ args[_key - 1] = arguments[_key];
12589
+ }
12590
+ return [].concat(args).reduce(function(p, c) {
12591
+ return p.replace(/%s/, c);
12592
+ }, str);
12593
+ }
12594
+
12595
+ // node_modules/@popperjs/core/lib/utils/validateModifiers.js
12596
+ var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s';
12597
+ var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available';
12598
+ var VALID_PROPERTIES = ["name", "enabled", "phase", "fn", "effect", "requires", "options"];
12599
+ function validateModifiers(modifiers) {
12600
+ modifiers.forEach(function(modifier) {
12601
+ [].concat(Object.keys(modifier), VALID_PROPERTIES).filter(function(value, index2, self2) {
12602
+ return self2.indexOf(value) === index2;
12603
+ }).forEach(function(key) {
12604
+ switch (key) {
12605
+ case "name":
12606
+ if (typeof modifier.name !== "string") {
12607
+ console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', '"' + String(modifier.name) + '"'));
12608
+ }
12609
+ break;
12610
+ case "enabled":
12611
+ if (typeof modifier.enabled !== "boolean") {
12612
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', '"' + String(modifier.enabled) + '"'));
12613
+ }
12614
+ break;
12615
+ case "phase":
12616
+ if (modifierPhases.indexOf(modifier.phase) < 0) {
12617
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(", "), '"' + String(modifier.phase) + '"'));
12618
+ }
12619
+ break;
12620
+ case "fn":
12621
+ if (typeof modifier.fn !== "function") {
12622
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', '"' + String(modifier.fn) + '"'));
12623
+ }
12624
+ break;
12625
+ case "effect":
12626
+ if (modifier.effect != null && typeof modifier.effect !== "function") {
12627
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', '"' + String(modifier.fn) + '"'));
12628
+ }
12629
+ break;
12630
+ case "requires":
12631
+ if (modifier.requires != null && !Array.isArray(modifier.requires)) {
12632
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', '"' + String(modifier.requires) + '"'));
12633
+ }
12634
+ break;
12635
+ case "requiresIfExists":
12636
+ if (!Array.isArray(modifier.requiresIfExists)) {
12637
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', '"' + String(modifier.requiresIfExists) + '"'));
12638
+ }
12639
+ break;
12640
+ case "options":
12641
+ case "data":
12642
+ break;
12643
+ default:
12644
+ console.error('PopperJS: an invalid property has been provided to the "' + modifier.name + '" modifier, valid properties are ' + VALID_PROPERTIES.map(function(s) {
12645
+ return '"' + s + '"';
12646
+ }).join(", ") + '; but "' + key + '" was provided.');
12647
+ }
12648
+ modifier.requires && modifier.requires.forEach(function(requirement) {
12649
+ if (modifiers.find(function(mod) {
12650
+ return mod.name === requirement;
12651
+ }) == null) {
12652
+ console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));
12653
+ }
12654
+ });
12655
+ });
12656
+ });
12657
+ }
12658
+
12659
+ // node_modules/@popperjs/core/lib/utils/uniqueBy.js
12660
+ function uniqueBy(arr, fn2) {
12661
+ var identifiers = /* @__PURE__ */ new Set();
12662
+ return arr.filter(function(item) {
12663
+ var identifier = fn2(item);
12664
+ if (!identifiers.has(identifier)) {
12665
+ identifiers.add(identifier);
12666
+ return true;
12667
+ }
12668
+ });
12669
+ }
12670
+
12671
+ // node_modules/@popperjs/core/lib/utils/mergeByName.js
12672
+ function mergeByName(modifiers) {
12673
+ var merged = modifiers.reduce(function(merged2, current) {
12674
+ var existing = merged2[current.name];
12675
+ merged2[current.name] = existing ? Object.assign({}, existing, current, {
12676
+ options: Object.assign({}, existing.options, current.options),
12677
+ data: Object.assign({}, existing.data, current.data)
12678
+ }) : current;
12679
+ return merged2;
12680
+ }, {});
12681
+ return Object.keys(merged).map(function(key) {
12682
+ return merged[key];
12683
+ });
12684
+ }
12685
+
12686
+ // node_modules/@popperjs/core/lib/createPopper.js
12687
+ var INVALID_ELEMENT_ERROR = "Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.";
12688
+ var INFINITE_LOOP_ERROR = "Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.";
12689
+ var DEFAULT_OPTIONS = {
12690
+ placement: "bottom",
12691
+ modifiers: [],
12692
+ strategy: "absolute"
12693
+ };
12694
+ function areValidElements() {
12695
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
12696
+ args[_key] = arguments[_key];
12697
+ }
12698
+ return !args.some(function(element) {
12699
+ return !(element && typeof element.getBoundingClientRect === "function");
12700
+ });
12701
+ }
12702
+ function popperGenerator(generatorOptions) {
12703
+ if (generatorOptions === void 0) {
12704
+ generatorOptions = {};
12705
+ }
12706
+ var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
12707
+ return function createPopper2(reference2, popper2, options) {
12708
+ if (options === void 0) {
12709
+ options = defaultOptions;
12710
+ }
12711
+ var state = {
12712
+ placement: "bottom",
12713
+ orderedModifiers: [],
12714
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
12715
+ modifiersData: {},
12716
+ elements: {
12717
+ reference: reference2,
12718
+ popper: popper2
12719
+ },
12720
+ attributes: {},
12721
+ styles: {}
12722
+ };
12723
+ var effectCleanupFns = [];
12724
+ var isDestroyed = false;
12725
+ var instance = {
12726
+ state,
12727
+ setOptions: function setOptions(setOptionsAction) {
12728
+ var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
12729
+ cleanupModifierEffects();
12730
+ state.options = Object.assign({}, defaultOptions, state.options, options2);
12731
+ state.scrollParents = {
12732
+ reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [],
12733
+ popper: listScrollParents(popper2)
12734
+ };
12735
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));
12736
+ state.orderedModifiers = orderedModifiers.filter(function(m) {
12737
+ return m.enabled;
12738
+ });
12739
+ if (true) {
12740
+ var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function(_ref) {
12741
+ var name = _ref.name;
12742
+ return name;
12743
+ });
12744
+ validateModifiers(modifiers);
12745
+ if (getBasePlacement(state.options.placement) === auto) {
12746
+ var flipModifier = state.orderedModifiers.find(function(_ref2) {
12747
+ var name = _ref2.name;
12748
+ return name === "flip";
12749
+ });
12750
+ if (!flipModifier) {
12751
+ console.error(['Popper: "auto" placements require the "flip" modifier be', "present and enabled to work."].join(" "));
12752
+ }
12753
+ }
12754
+ var _getComputedStyle = getComputedStyle(popper2), marginTop = _getComputedStyle.marginTop, marginRight = _getComputedStyle.marginRight, marginBottom = _getComputedStyle.marginBottom, marginLeft = _getComputedStyle.marginLeft;
12755
+ if ([marginTop, marginRight, marginBottom, marginLeft].some(function(margin) {
12756
+ return parseFloat(margin);
12757
+ })) {
12758
+ console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', "between the popper and its reference element or boundary.", "To replicate margin, use the `offset` modifier, as well as", "the `padding` option in the `preventOverflow` and `flip`", "modifiers."].join(" "));
12759
+ }
12760
+ }
12761
+ runModifierEffects();
12762
+ return instance.update();
12763
+ },
12764
+ forceUpdate: function forceUpdate() {
12765
+ if (isDestroyed) {
12766
+ return;
12767
+ }
12768
+ var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper;
12769
+ if (!areValidElements(reference3, popper3)) {
12770
+ if (true) {
12771
+ console.error(INVALID_ELEMENT_ERROR);
12772
+ }
12773
+ return;
12774
+ }
12775
+ state.rects = {
12776
+ reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"),
12777
+ popper: getLayoutRect(popper3)
12778
+ };
12779
+ state.reset = false;
12780
+ state.placement = state.options.placement;
12781
+ state.orderedModifiers.forEach(function(modifier) {
12782
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
12783
+ });
12784
+ var __debug_loops__ = 0;
12785
+ for (var index2 = 0; index2 < state.orderedModifiers.length; index2++) {
12786
+ if (true) {
12787
+ __debug_loops__ += 1;
12788
+ if (__debug_loops__ > 100) {
12789
+ console.error(INFINITE_LOOP_ERROR);
12790
+ break;
12791
+ }
12792
+ }
12793
+ if (state.reset === true) {
12794
+ state.reset = false;
12795
+ index2 = -1;
12796
+ continue;
12797
+ }
12798
+ var _state$orderedModifie = state.orderedModifiers[index2], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;
12799
+ if (typeof fn2 === "function") {
12800
+ state = fn2({
12801
+ state,
12802
+ options: _options,
12803
+ name,
12804
+ instance
12805
+ }) || state;
12806
+ }
12807
+ }
12808
+ },
12809
+ update: debounce2(function() {
12810
+ return new Promise(function(resolve) {
12811
+ instance.forceUpdate();
12812
+ resolve(state);
12813
+ });
12814
+ }),
12815
+ destroy: function destroy2() {
12816
+ cleanupModifierEffects();
12817
+ isDestroyed = true;
12818
+ }
12819
+ };
12820
+ if (!areValidElements(reference2, popper2)) {
12821
+ if (true) {
12822
+ console.error(INVALID_ELEMENT_ERROR);
12823
+ }
12824
+ return instance;
12825
+ }
12826
+ instance.setOptions(options).then(function(state2) {
12827
+ if (!isDestroyed && options.onFirstUpdate) {
12828
+ options.onFirstUpdate(state2);
12829
+ }
12830
+ });
12831
+ function runModifierEffects() {
12832
+ state.orderedModifiers.forEach(function(_ref3) {
12833
+ var name = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect4 = _ref3.effect;
12834
+ if (typeof effect4 === "function") {
12835
+ var cleanupFn = effect4({
12836
+ state,
12837
+ name,
12838
+ instance,
12839
+ options: options2
12840
+ });
12841
+ var noopFn = function noopFn2() {
12842
+ };
12843
+ effectCleanupFns.push(cleanupFn || noopFn);
12844
+ }
12845
+ });
12846
+ }
12847
+ function cleanupModifierEffects() {
12848
+ effectCleanupFns.forEach(function(fn2) {
12849
+ return fn2();
12850
+ });
12851
+ effectCleanupFns = [];
12852
+ }
12853
+ return instance;
12854
+ };
12855
+ }
12856
+
12857
+ // node_modules/@popperjs/core/lib/popper.js
12858
+ var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default];
12859
+ var createPopper = /* @__PURE__ */ popperGenerator({
12860
+ defaultModifiers
12861
+ });
12862
+
12863
+ // app/assets/javascripts/formstrap/controllers/popup_controller.js
12864
+ var popup_controller_default = class extends Controller {
12865
+ static get targets() {
12866
+ return ["popup", "button"];
12867
+ }
12868
+ static get values() {
12869
+ return { id: String };
12870
+ }
12871
+ connect() {
12872
+ document.addEventListener("click", (event) => {
12873
+ this.handleOutsideClick(event);
12874
+ });
12875
+ }
12876
+ handleOutsideClick(event) {
12877
+ const itemRemoved = !document.body.contains(event.target);
12878
+ if (itemRemoved)
12879
+ return;
12880
+ const inPopup = event.target.closest('[data-popup-target="popup"]') !== null;
12881
+ const inButton = event.target.closest('[data-popup-target="button"]') !== null;
12882
+ const openPopup = document.querySelector('[data-popup-target="popup"]:not(.closed)');
12883
+ if (!inButton && !inPopup && openPopup) {
12884
+ this.closePopup(openPopup);
12885
+ }
12886
+ }
12887
+ open(event) {
12888
+ const button = event.target.closest('[data-popup-target="button"]');
12889
+ const popup = this.popupById(button.dataset.popupId);
12890
+ const passThru = button.dataset.popupPassThru;
12891
+ createPopper(button, popup);
12892
+ this.openPopup(popup);
12893
+ if (passThru) {
12894
+ const passThruElement = popup.querySelector(passThru);
12895
+ passThruElement.click();
12896
+ if (passThruElement instanceof HTMLInputElement) {
12897
+ passThruElement.focus();
12898
+ passThruElement.select();
12899
+ }
12900
+ }
12901
+ }
12902
+ close(event) {
12903
+ const button = event.target.closest('[data-popup-target="button"]');
12904
+ const popup = this.popupById(button.dataset.popupId);
12905
+ this.closePopup(popup);
12906
+ }
12907
+ popupById(id) {
12908
+ return this.popupTargets.find((popup) => {
12909
+ return popup.dataset.popupId === id;
12910
+ });
12911
+ }
12912
+ openPopup(popup) {
12913
+ popup.classList.remove("closed");
12914
+ }
12915
+ closePopup(popup) {
12916
+ popup.classList.add("closed");
12917
+ }
11258
12918
  };
11259
12919
 
11260
12920
  // app/assets/javascripts/formstrap/controllers/redactorx_controller.js
@@ -11301,8 +12961,8 @@ var repeater_controller_default = class extends Controller {
11301
12961
  sortable_esm_default.create(this.listTarget, {
11302
12962
  animation: 150,
11303
12963
  ghostClass: "list-group-item-dark",
11304
- draggable: ".repeater-row",
11305
- handle: ".repeater-row-handle",
12964
+ draggable: ".formstrap-repeater-row",
12965
+ handle: ".formstrap-repeater-row-handle",
11306
12966
  onEnd: () => {
11307
12967
  this.resetIndices();
11308
12968
  this.resetPositions();
@@ -11311,7 +12971,7 @@ var repeater_controller_default = class extends Controller {
11311
12971
  this.toggleEmpty();
11312
12972
  }
11313
12973
  resetButtonIndices(event) {
11314
- const row = event.target.closest(".repeater-row");
12974
+ const row = event.target.closest(".formstrap-repeater-row");
11315
12975
  const index2 = this.containsRow(row) ? row.dataset.rowIndex : "";
11316
12976
  this.updatePopupButtonIndices(index2);
11317
12977
  }
@@ -11344,7 +13004,7 @@ var repeater_controller_default = class extends Controller {
11344
13004
  }
11345
13005
  removeRow(event) {
11346
13006
  event.preventDefault();
11347
- const row = event.target.closest(".repeater-row");
13007
+ const row = event.target.closest(".formstrap-repeater-row");
11348
13008
  if (row.dataset.newRecord === "true") {
11349
13009
  row.remove();
11350
13010
  } else {
@@ -11497,6 +13157,7 @@ var Formstrap = class {
11497
13157
  Stimulus.register("infinite-scroller", infinite_scroller_controller_default);
11498
13158
  Stimulus.register("media", media_controller_default);
11499
13159
  Stimulus.register("media-modal", media_modal_controller_default);
13160
+ Stimulus.register("popup", popup_controller_default);
11500
13161
  Stimulus.register("redactorx", redactorx_controller_default);
11501
13162
  Stimulus.register("repeater", repeater_controller_default);
11502
13163
  Stimulus.register("select", select_controller_default);