市场夺宝奇兵
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2776 lines
89 KiB

  1. import { Fragment, computed, createBaseVNode, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, guardReactiveProps, h, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, openBlock, popScopeId, pushScopeId, ref, renderList, renderSlot, resolveComponent, toDisplayString, toRef, unref, withCtx, withDirectives, withScopeId } from "./runtime-core.esm-bundler-Cyv4obHQ.js";
  2. import { createApp, useRoute, withKeys } from "./vue-router-BxYGFXy-.js";
  3. import { isDark, usePayloadStore, useVirtualList } from "./payload-BX9lTMvN.js";
  4. import { Badge_default, PluginName_default, getPluginColor } from "./QuerySelector-iLRAQoow.js";
  5. import { DurationDisplay_default, NumberWithUnit_default, useOptionsStore } from "./options-D_MMddT_.js";
  6. var ByteSizeDisplay_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
  7. __name: "ByteSizeDisplay",
  8. props: { bytes: {} },
  9. setup(__props) {
  10. const props = __props;
  11. function byteToHumanReadable(byte) {
  12. if (byte < 1024) return [byte, "B"];
  13. if (byte < 1024 * 1024) return [(byte / 1024).toFixed(2), "KB"];
  14. if (byte < 1024 * 1024 * 1024) return [(byte / 1024 / 1024).toFixed(2), "MB"];
  15. return [(byte / 1024 / 1024 / 1024).toFixed(2), "GB"];
  16. }
  17. const readable = computed(() => byteToHumanReadable(props.bytes));
  18. return (_ctx, _cache) => {
  19. const _component_NumberWithUnit = NumberWithUnit_default;
  20. return openBlock(), createBlock(_component_NumberWithUnit, {
  21. number: unref(readable)[0],
  22. unit: unref(readable)[1]
  23. }, null, 8, ["number", "unit"]);
  24. };
  25. }
  26. });
  27. var ByteSizeDisplay_default = ByteSizeDisplay_vue_vue_type_script_setup_true_lang_default;
  28. var FileIcon_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
  29. __name: "FileIcon",
  30. props: { filename: {} },
  31. setup(__props) {
  32. const props = __props;
  33. const map = {
  34. angular: "i-catppuccin-angular",
  35. vue: "i-catppuccin-vue",
  36. js: "i-catppuccin-javascript",
  37. mjs: "i-catppuccin-javascript",
  38. cjs: "i-catppuccin-javascript",
  39. ts: "i-catppuccin-typescript",
  40. mts: "i-catppuccin-typescript",
  41. cts: "i-catppuccin-typescript",
  42. md: "i-catppuccin-markdown",
  43. markdown: "i-catppuccin-markdown",
  44. mdx: "i-catppuccin-mdx",
  45. jsx: "i-catppuccin-javascript-react",
  46. tsx: "i-catppuccin-typescript-react",
  47. svelte: "i-catppuccin-svelte",
  48. html: "i-catppuccin-html",
  49. css: "i-catppuccin-css",
  50. scss: "i-catppuccin-css",
  51. less: "i-catppuccin-less",
  52. json: "i-catppuccin-json",
  53. yaml: "i-catppuccin-yaml",
  54. toml: "i-catppuccin-toml",
  55. svg: "i-catppuccin-svg"
  56. };
  57. const icon = computed(() => {
  58. let file = props.filename;
  59. file = file.replace(/(\?|&)v=[^&]*/, "$1").replace(/\?$/, "");
  60. if (file.match(/[\\/]node_modules[\\/]/)) return "i-catppuccin-folder-node-open";
  61. let ext = (file.split(".").pop() || "").toLowerCase();
  62. let icon$1 = map[ext];
  63. if (icon$1) return icon$1;
  64. ext = ext.split("?")[0];
  65. icon$1 = map[ext];
  66. if (icon$1) return icon$1;
  67. return "i-catppuccin-file";
  68. });
  69. return (_ctx, _cache) => {
  70. return openBlock(), createElementBlock("div", {
  71. "flex-none": "",
  72. class: normalizeClass([unref(icon), unref(isDark) ? "" : "brightness-60 hue-rotate-180 invert-100 saturate-200"])
  73. }, null, 2);
  74. };
  75. }
  76. });
  77. var FileIcon_default = FileIcon_vue_vue_type_script_setup_true_lang_default;
  78. /**
  79. * Custom positioning reference element.
  80. * @see https://floating-ui.com/docs/virtual-elements
  81. */
  82. const sides = [
  83. "top",
  84. "right",
  85. "bottom",
  86. "left"
  87. ];
  88. const alignments = ["start", "end"];
  89. const placements = /* @__PURE__ */ sides.reduce((acc, side) => acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), []);
  90. const min = Math.min;
  91. const max = Math.max;
  92. const oppositeSideMap = {
  93. left: "right",
  94. right: "left",
  95. bottom: "top",
  96. top: "bottom"
  97. };
  98. const oppositeAlignmentMap = {
  99. start: "end",
  100. end: "start"
  101. };
  102. function clamp(start, value, end) {
  103. return max(start, min(value, end));
  104. }
  105. function evaluate(value, param) {
  106. return typeof value === "function" ? value(param) : value;
  107. }
  108. function getSide(placement) {
  109. return placement.split("-")[0];
  110. }
  111. function getAlignment(placement) {
  112. return placement.split("-")[1];
  113. }
  114. function getOppositeAxis(axis) {
  115. return axis === "x" ? "y" : "x";
  116. }
  117. function getAxisLength(axis) {
  118. return axis === "y" ? "height" : "width";
  119. }
  120. function getSideAxis(placement) {
  121. return ["top", "bottom"].includes(getSide(placement)) ? "y" : "x";
  122. }
  123. function getAlignmentAxis(placement) {
  124. return getOppositeAxis(getSideAxis(placement));
  125. }
  126. function getAlignmentSides(placement, rects, rtl) {
  127. if (rtl === void 0) rtl = false;
  128. const alignment = getAlignment(placement);
  129. const alignmentAxis = getAlignmentAxis(placement);
  130. const length = getAxisLength(alignmentAxis);
  131. let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
  132. if (rects.reference[length] > rects.floating[length]) mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
  133. return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
  134. }
  135. function getExpandedPlacements(placement) {
  136. const oppositePlacement = getOppositePlacement(placement);
  137. return [
  138. getOppositeAlignmentPlacement(placement),
  139. oppositePlacement,
  140. getOppositeAlignmentPlacement(oppositePlacement)
  141. ];
  142. }
  143. function getOppositeAlignmentPlacement(placement) {
  144. return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
  145. }
  146. function getSideList(side, isStart, rtl) {
  147. const lr = ["left", "right"];
  148. const rl = ["right", "left"];
  149. const tb = ["top", "bottom"];
  150. const bt$1 = ["bottom", "top"];
  151. switch (side) {
  152. case "top":
  153. case "bottom":
  154. if (rtl) return isStart ? rl : lr;
  155. return isStart ? lr : rl;
  156. case "left":
  157. case "right": return isStart ? tb : bt$1;
  158. default: return [];
  159. }
  160. }
  161. function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
  162. const alignment = getAlignment(placement);
  163. let list = getSideList(getSide(placement), direction === "start", rtl);
  164. if (alignment) {
  165. list = list.map((side) => side + "-" + alignment);
  166. if (flipAlignment) list = list.concat(list.map(getOppositeAlignmentPlacement));
  167. }
  168. return list;
  169. }
  170. function getOppositePlacement(placement) {
  171. return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
  172. }
  173. function expandPaddingObject(padding) {
  174. return {
  175. top: 0,
  176. right: 0,
  177. bottom: 0,
  178. left: 0,
  179. ...padding
  180. };
  181. }
  182. function getPaddingObject(padding) {
  183. return typeof padding !== "number" ? expandPaddingObject(padding) : {
  184. top: padding,
  185. right: padding,
  186. bottom: padding,
  187. left: padding
  188. };
  189. }
  190. function rectToClientRect(rect) {
  191. const { x: x$2, y: y$2, width, height } = rect;
  192. return {
  193. width,
  194. height,
  195. top: y$2,
  196. left: x$2,
  197. right: x$2 + width,
  198. bottom: y$2 + height,
  199. x: x$2,
  200. y: y$2
  201. };
  202. }
  203. function computeCoordsFromPlacement(_ref, placement, rtl) {
  204. let { reference, floating } = _ref;
  205. const sideAxis = getSideAxis(placement);
  206. const alignmentAxis = getAlignmentAxis(placement);
  207. const alignLength = getAxisLength(alignmentAxis);
  208. const side = getSide(placement);
  209. const isVertical = sideAxis === "y";
  210. const commonX = reference.x + reference.width / 2 - floating.width / 2;
  211. const commonY = reference.y + reference.height / 2 - floating.height / 2;
  212. const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
  213. let coords;
  214. switch (side) {
  215. case "top":
  216. coords = {
  217. x: commonX,
  218. y: reference.y - floating.height
  219. };
  220. break;
  221. case "bottom":
  222. coords = {
  223. x: commonX,
  224. y: reference.y + reference.height
  225. };
  226. break;
  227. case "right":
  228. coords = {
  229. x: reference.x + reference.width,
  230. y: commonY
  231. };
  232. break;
  233. case "left":
  234. coords = {
  235. x: reference.x - floating.width,
  236. y: commonY
  237. };
  238. break;
  239. default: coords = {
  240. x: reference.x,
  241. y: reference.y
  242. };
  243. }
  244. switch (getAlignment(placement)) {
  245. case "start":
  246. coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
  247. break;
  248. case "end":
  249. coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
  250. break;
  251. }
  252. return coords;
  253. }
  254. /**
  255. * Computes the `x` and `y` coordinates that will place the floating element
  256. * next to a given reference element.
  257. *
  258. * This export does not have any `platform` interface logic. You will need to
  259. * write one for the platform you are using Floating UI with.
  260. */
  261. const computePosition = async (reference, floating, config) => {
  262. const { placement = "bottom", strategy = "absolute", middleware = [], platform } = config;
  263. const validMiddleware = middleware.filter(Boolean);
  264. const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
  265. let rects = await platform.getElementRects({
  266. reference,
  267. floating,
  268. strategy
  269. });
  270. let { x: x$2, y: y$2 } = computeCoordsFromPlacement(rects, placement, rtl);
  271. let statefulPlacement = placement;
  272. let middlewareData = {};
  273. let resetCount = 0;
  274. for (let i$1 = 0; i$1 < validMiddleware.length; i$1++) {
  275. const { name, fn } = validMiddleware[i$1];
  276. const { x: nextX, y: nextY, data, reset } = await fn({
  277. x: x$2,
  278. y: y$2,
  279. initialPlacement: placement,
  280. placement: statefulPlacement,
  281. strategy,
  282. middlewareData,
  283. rects,
  284. platform,
  285. elements: {
  286. reference,
  287. floating
  288. }
  289. });
  290. x$2 = nextX != null ? nextX : x$2;
  291. y$2 = nextY != null ? nextY : y$2;
  292. middlewareData = {
  293. ...middlewareData,
  294. [name]: {
  295. ...middlewareData[name],
  296. ...data
  297. }
  298. };
  299. if (reset && resetCount <= 50) {
  300. resetCount++;
  301. if (typeof reset === "object") {
  302. if (reset.placement) statefulPlacement = reset.placement;
  303. if (reset.rects) rects = reset.rects === true ? await platform.getElementRects({
  304. reference,
  305. floating,
  306. strategy
  307. }) : reset.rects;
  308. ({x: x$2, y: y$2} = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
  309. }
  310. i$1 = -1;
  311. }
  312. }
  313. return {
  314. x: x$2,
  315. y: y$2,
  316. placement: statefulPlacement,
  317. strategy,
  318. middlewareData
  319. };
  320. };
  321. /**
  322. * Resolves with an object of overflow side offsets that determine how much the
  323. * element is overflowing a given clipping boundary on each side.
  324. * - positive = overflowing the boundary by that number of pixels
  325. * - negative = how many pixels left before it will overflow
  326. * - 0 = lies flush with the boundary
  327. * @see https://floating-ui.com/docs/detectOverflow
  328. */
  329. async function detectOverflow(state, options) {
  330. var _await$platform$isEle;
  331. if (options === void 0) options = {};
  332. const { x: x$2, y: y$2, platform, rects, elements, strategy } = state;
  333. const { boundary = "clippingAncestors", rootBoundary = "viewport", elementContext = "floating", altBoundary = false, padding = 0 } = evaluate(options, state);
  334. const paddingObject = getPaddingObject(padding);
  335. const altContext = elementContext === "floating" ? "reference" : "floating";
  336. const element = elements[altBoundary ? altContext : elementContext];
  337. const clippingClientRect = rectToClientRect(await platform.getClippingRect({
  338. element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)),
  339. boundary,
  340. rootBoundary,
  341. strategy
  342. }));
  343. const rect = elementContext === "floating" ? {
  344. x: x$2,
  345. y: y$2,
  346. width: rects.floating.width,
  347. height: rects.floating.height
  348. } : rects.reference;
  349. const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
  350. const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || {
  351. x: 1,
  352. y: 1
  353. } : {
  354. x: 1,
  355. y: 1
  356. };
  357. const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
  358. elements,
  359. rect,
  360. offsetParent,
  361. strategy
  362. }) : rect);
  363. return {
  364. top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
  365. bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
  366. left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
  367. right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
  368. };
  369. }
  370. /**
  371. * Provides data to position an inner element of the floating element so that it
  372. * appears centered to the reference element.
  373. * @see https://floating-ui.com/docs/arrow
  374. */
  375. const arrow = (options) => ({
  376. name: "arrow",
  377. options,
  378. async fn(state) {
  379. const { x: x$2, y: y$2, placement, rects, platform, elements, middlewareData } = state;
  380. const { element, padding = 0 } = evaluate(options, state) || {};
  381. if (element == null) return {};
  382. const paddingObject = getPaddingObject(padding);
  383. const coords = {
  384. x: x$2,
  385. y: y$2
  386. };
  387. const axis = getAlignmentAxis(placement);
  388. const length = getAxisLength(axis);
  389. const arrowDimensions = await platform.getDimensions(element);
  390. const isYAxis = axis === "y";
  391. const minProp = isYAxis ? "top" : "left";
  392. const maxProp = isYAxis ? "bottom" : "right";
  393. const clientProp = isYAxis ? "clientHeight" : "clientWidth";
  394. const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
  395. const startDiff = coords[axis] - rects.reference[axis];
  396. const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));
  397. let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
  398. if (!clientSize || !await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent))) clientSize = elements.floating[clientProp] || rects.floating[length];
  399. const centerToReference = endDiff / 2 - startDiff / 2;
  400. const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
  401. const minPadding = min(paddingObject[minProp], largestPossiblePadding);
  402. const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
  403. const min$1 = minPadding;
  404. const max$1 = clientSize - arrowDimensions[length] - maxPadding;
  405. const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
  406. const offset$1 = clamp(min$1, center, max$1);
  407. const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset$1 && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
  408. const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max$1 : 0;
  409. return {
  410. [axis]: coords[axis] + alignmentOffset,
  411. data: {
  412. [axis]: offset$1,
  413. centerOffset: center - offset$1 - alignmentOffset,
  414. ...shouldAddOffset && { alignmentOffset }
  415. },
  416. reset: shouldAddOffset
  417. };
  418. }
  419. });
  420. function getPlacementList(alignment, autoAlignment, allowedPlacements) {
  421. const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter((placement) => getAlignment(placement) === alignment), ...allowedPlacements.filter((placement) => getAlignment(placement) !== alignment)] : allowedPlacements.filter((placement) => getSide(placement) === placement);
  422. return allowedPlacementsSortedByAlignment.filter((placement) => {
  423. if (alignment) return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);
  424. return true;
  425. });
  426. }
  427. /**
  428. * Optimizes the visibility of the floating element by choosing the placement
  429. * that has the most space available automatically, without needing to specify a
  430. * preferred placement. Alternative to `flip`.
  431. * @see https://floating-ui.com/docs/autoPlacement
  432. */
  433. const autoPlacement = function(options) {
  434. if (options === void 0) options = {};
  435. return {
  436. name: "autoPlacement",
  437. options,
  438. async fn(state) {
  439. var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;
  440. const { rects, middlewareData, placement, platform, elements } = state;
  441. const { crossAxis = false, alignment, allowedPlacements = placements, autoAlignment = true,...detectOverflowOptions } = evaluate(options, state);
  442. const placements$1 = alignment !== void 0 || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;
  443. const overflow = await detectOverflow(state, detectOverflowOptions);
  444. const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;
  445. const currentPlacement = placements$1[currentIndex];
  446. if (currentPlacement == null) return {};
  447. const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));
  448. if (placement !== currentPlacement) return { reset: { placement: placements$1[0] } };
  449. const currentOverflows = [
  450. overflow[getSide(currentPlacement)],
  451. overflow[alignmentSides[0]],
  452. overflow[alignmentSides[1]]
  453. ];
  454. const allOverflows = [...((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || [], {
  455. placement: currentPlacement,
  456. overflows: currentOverflows
  457. }];
  458. const nextPlacement = placements$1[currentIndex + 1];
  459. if (nextPlacement) return {
  460. data: {
  461. index: currentIndex + 1,
  462. overflows: allOverflows
  463. },
  464. reset: { placement: nextPlacement }
  465. };
  466. const placementsSortedByMostSpace = allOverflows.map((d$2) => {
  467. const alignment$1 = getAlignment(d$2.placement);
  468. return [
  469. d$2.placement,
  470. alignment$1 && crossAxis ? d$2.overflows.slice(0, 2).reduce((acc, v$1) => acc + v$1, 0) : d$2.overflows[0],
  471. d$2.overflows
  472. ];
  473. }).sort((a$1, b$2) => a$1[1] - b$2[1]);
  474. const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter((d$2) => d$2[2].slice(
  475. 0,
  476. // Aligned placements should not check their opposite crossAxis
  477. // side.
  478. getAlignment(d$2[0]) ? 2 : 3
  479. ).every((v$1) => v$1 <= 0));
  480. const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];
  481. if (resetPlacement !== placement) return {
  482. data: {
  483. index: currentIndex + 1,
  484. overflows: allOverflows
  485. },
  486. reset: { placement: resetPlacement }
  487. };
  488. return {};
  489. }
  490. };
  491. };
  492. /**
  493. * Optimizes the visibility of the floating element by flipping the `placement`
  494. * in order to keep it in view when the preferred placement(s) will overflow the
  495. * clipping boundary. Alternative to `autoPlacement`.
  496. * @see https://floating-ui.com/docs/flip
  497. */
  498. const flip = function(options) {
  499. if (options === void 0) options = {};
  500. return {
  501. name: "flip",
  502. options,
  503. async fn(state) {
  504. var _middlewareData$arrow, _middlewareData$flip;
  505. const { placement, middlewareData, rects, initialPlacement, platform, elements } = state;
  506. const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = true, fallbackPlacements: specifiedFallbackPlacements, fallbackStrategy = "bestFit", fallbackAxisSideDirection = "none", flipAlignment = true,...detectOverflowOptions } = evaluate(options, state);
  507. if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) return {};
  508. const side = getSide(placement);
  509. const initialSideAxis = getSideAxis(initialPlacement);
  510. const isBasePlacement = getSide(initialPlacement) === initialPlacement;
  511. const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
  512. const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
  513. const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
  514. if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
  515. const placements$1 = [initialPlacement, ...fallbackPlacements];
  516. const overflow = await detectOverflow(state, detectOverflowOptions);
  517. const overflows = [];
  518. let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
  519. if (checkMainAxis) overflows.push(overflow[side]);
  520. if (checkCrossAxis) {
  521. const sides$1 = getAlignmentSides(placement, rects, rtl);
  522. overflows.push(overflow[sides$1[0]], overflow[sides$1[1]]);
  523. }
  524. overflowsData = [...overflowsData, {
  525. placement,
  526. overflows
  527. }];
  528. if (!overflows.every((side$1) => side$1 <= 0)) {
  529. var _middlewareData$flip2, _overflowsData$filter;
  530. const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
  531. const nextPlacement = placements$1[nextIndex];
  532. if (nextPlacement) return {
  533. data: {
  534. index: nextIndex,
  535. overflows: overflowsData
  536. },
  537. reset: { placement: nextPlacement }
  538. };
  539. let resetPlacement = (_overflowsData$filter = overflowsData.filter((d$2) => d$2.overflows[0] <= 0).sort((a$1, b$2) => a$1.overflows[1] - b$2.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
  540. if (!resetPlacement) switch (fallbackStrategy) {
  541. case "bestFit": {
  542. var _overflowsData$filter2;
  543. const placement$1 = (_overflowsData$filter2 = overflowsData.filter((d$2) => {
  544. if (hasFallbackAxisSideDirection) {
  545. const currentSideAxis = getSideAxis(d$2.placement);
  546. return currentSideAxis === initialSideAxis || currentSideAxis === "y";
  547. }
  548. return true;
  549. }).map((d$2) => [d$2.placement, d$2.overflows.filter((overflow$1) => overflow$1 > 0).reduce((acc, overflow$1) => acc + overflow$1, 0)]).sort((a$1, b$2) => a$1[1] - b$2[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
  550. if (placement$1) resetPlacement = placement$1;
  551. break;
  552. }
  553. case "initialPlacement":
  554. resetPlacement = initialPlacement;
  555. break;
  556. }
  557. if (placement !== resetPlacement) return { reset: { placement: resetPlacement } };
  558. }
  559. return {};
  560. }
  561. };
  562. };
  563. async function convertValueToCoords(state, options) {
  564. const { placement, platform, elements } = state;
  565. const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
  566. const side = getSide(placement);
  567. const alignment = getAlignment(placement);
  568. const isVertical = getSideAxis(placement) === "y";
  569. const mainAxisMulti = ["left", "top"].includes(side) ? -1 : 1;
  570. const crossAxisMulti = rtl && isVertical ? -1 : 1;
  571. const rawValue = evaluate(options, state);
  572. let { mainAxis, crossAxis, alignmentAxis } = typeof rawValue === "number" ? {
  573. mainAxis: rawValue,
  574. crossAxis: 0,
  575. alignmentAxis: null
  576. } : {
  577. mainAxis: rawValue.mainAxis || 0,
  578. crossAxis: rawValue.crossAxis || 0,
  579. alignmentAxis: rawValue.alignmentAxis
  580. };
  581. if (alignment && typeof alignmentAxis === "number") crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
  582. return isVertical ? {
  583. x: crossAxis * crossAxisMulti,
  584. y: mainAxis * mainAxisMulti
  585. } : {
  586. x: mainAxis * mainAxisMulti,
  587. y: crossAxis * crossAxisMulti
  588. };
  589. }
  590. /**
  591. * Modifies the placement by translating the floating element along the
  592. * specified axes.
  593. * A number (shorthand for `mainAxis` or distance), or an axes configuration
  594. * object may be passed.
  595. * @see https://floating-ui.com/docs/offset
  596. */
  597. const offset = function(options) {
  598. if (options === void 0) options = 0;
  599. return {
  600. name: "offset",
  601. options,
  602. async fn(state) {
  603. var _middlewareData$offse, _middlewareData$arrow;
  604. const { x: x$2, y: y$2, placement, middlewareData } = state;
  605. const diffCoords = await convertValueToCoords(state, options);
  606. if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) return {};
  607. return {
  608. x: x$2 + diffCoords.x,
  609. y: y$2 + diffCoords.y,
  610. data: {
  611. ...diffCoords,
  612. placement
  613. }
  614. };
  615. }
  616. };
  617. };
  618. /**
  619. * Optimizes the visibility of the floating element by shifting it in order to
  620. * keep it in view when it will overflow the clipping boundary.
  621. * @see https://floating-ui.com/docs/shift
  622. */
  623. const shift = function(options) {
  624. if (options === void 0) options = {};
  625. return {
  626. name: "shift",
  627. options,
  628. async fn(state) {
  629. const { x: x$2, y: y$2, placement } = state;
  630. const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = false, limiter = { fn: (_ref) => {
  631. let { x: x$3, y: y$3 } = _ref;
  632. return {
  633. x: x$3,
  634. y: y$3
  635. };
  636. } },...detectOverflowOptions } = evaluate(options, state);
  637. const coords = {
  638. x: x$2,
  639. y: y$2
  640. };
  641. const overflow = await detectOverflow(state, detectOverflowOptions);
  642. const crossAxis = getSideAxis(getSide(placement));
  643. const mainAxis = getOppositeAxis(crossAxis);
  644. let mainAxisCoord = coords[mainAxis];
  645. let crossAxisCoord = coords[crossAxis];
  646. if (checkMainAxis) {
  647. const minSide = mainAxis === "y" ? "top" : "left";
  648. const maxSide = mainAxis === "y" ? "bottom" : "right";
  649. const min$1 = mainAxisCoord + overflow[minSide];
  650. const max$1 = mainAxisCoord - overflow[maxSide];
  651. mainAxisCoord = clamp(min$1, mainAxisCoord, max$1);
  652. }
  653. if (checkCrossAxis) {
  654. const minSide = crossAxis === "y" ? "top" : "left";
  655. const maxSide = crossAxis === "y" ? "bottom" : "right";
  656. const min$1 = crossAxisCoord + overflow[minSide];
  657. const max$1 = crossAxisCoord - overflow[maxSide];
  658. crossAxisCoord = clamp(min$1, crossAxisCoord, max$1);
  659. }
  660. const limitedCoords = limiter.fn({
  661. ...state,
  662. [mainAxis]: mainAxisCoord,
  663. [crossAxis]: crossAxisCoord
  664. });
  665. return {
  666. ...limitedCoords,
  667. data: {
  668. x: limitedCoords.x - x$2,
  669. y: limitedCoords.y - y$2,
  670. enabled: {
  671. [mainAxis]: checkMainAxis,
  672. [crossAxis]: checkCrossAxis
  673. }
  674. }
  675. };
  676. }
  677. };
  678. };
  679. /**
  680. * Provides data that allows you to change the size of the floating element
  681. * for instance, prevent it from overflowing the clipping boundary or match the
  682. * width of the reference element.
  683. * @see https://floating-ui.com/docs/size
  684. */
  685. const size = function(options) {
  686. if (options === void 0) options = {};
  687. return {
  688. name: "size",
  689. options,
  690. async fn(state) {
  691. var _state$middlewareData, _state$middlewareData2;
  692. const { placement, rects, platform, elements } = state;
  693. const { apply = () => {},...detectOverflowOptions } = evaluate(options, state);
  694. const overflow = await detectOverflow(state, detectOverflowOptions);
  695. const side = getSide(placement);
  696. const alignment = getAlignment(placement);
  697. const isYAxis = getSideAxis(placement) === "y";
  698. const { width, height } = rects.floating;
  699. let heightSide;
  700. let widthSide;
  701. if (side === "top" || side === "bottom") {
  702. heightSide = side;
  703. widthSide = alignment === (await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
  704. } else {
  705. widthSide = side;
  706. heightSide = alignment === "end" ? "top" : "bottom";
  707. }
  708. const maximumClippingHeight = height - overflow.top - overflow.bottom;
  709. const maximumClippingWidth = width - overflow.left - overflow.right;
  710. const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
  711. const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
  712. const noShift = !state.middlewareData.shift;
  713. let availableHeight = overflowAvailableHeight;
  714. let availableWidth = overflowAvailableWidth;
  715. if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) availableWidth = maximumClippingWidth;
  716. if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) availableHeight = maximumClippingHeight;
  717. if (noShift && !alignment) {
  718. const xMin = max(overflow.left, 0);
  719. const xMax = max(overflow.right, 0);
  720. const yMin = max(overflow.top, 0);
  721. const yMax = max(overflow.bottom, 0);
  722. if (isYAxis) availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
  723. else availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
  724. }
  725. await apply({
  726. ...state,
  727. availableWidth,
  728. availableHeight
  729. });
  730. const nextDimensions = await platform.getDimensions(elements.floating);
  731. if (width !== nextDimensions.width || height !== nextDimensions.height) return { reset: { rects: true } };
  732. return {};
  733. }
  734. };
  735. };
  736. function n$1(t) {
  737. var e;
  738. return (null == (e = t.ownerDocument) ? void 0 : e.defaultView) || window;
  739. }
  740. function o(t) {
  741. return n$1(t).getComputedStyle(t);
  742. }
  743. const i = Math.min, r = Math.max, l = Math.round;
  744. function c$1(t) {
  745. const e = o(t);
  746. let n$2 = parseFloat(e.width), i$1 = parseFloat(e.height);
  747. const r$1 = t.offsetWidth, c$2 = t.offsetHeight, s$1 = l(n$2) !== r$1 || l(i$1) !== c$2;
  748. return s$1 && (n$2 = r$1, i$1 = c$2), {
  749. width: n$2,
  750. height: i$1,
  751. fallback: s$1
  752. };
  753. }
  754. function s(t) {
  755. return h$2(t) ? (t.nodeName || "").toLowerCase() : "";
  756. }
  757. let f;
  758. function u() {
  759. if (f) return f;
  760. const t = navigator.userAgentData;
  761. return t && Array.isArray(t.brands) ? (f = t.brands.map((t$1) => t$1.brand + "/" + t$1.version).join(" "), f) : navigator.userAgent;
  762. }
  763. function a(t) {
  764. return t instanceof n$1(t).HTMLElement;
  765. }
  766. function d$1(t) {
  767. return t instanceof n$1(t).Element;
  768. }
  769. function h$2(t) {
  770. return t instanceof n$1(t).Node;
  771. }
  772. function p(t) {
  773. if ("undefined" == typeof ShadowRoot) return !1;
  774. return t instanceof n$1(t).ShadowRoot || t instanceof ShadowRoot;
  775. }
  776. function g$1(t) {
  777. const { overflow: e, overflowX: n$2, overflowY: i$1, display: r$1 } = o(t);
  778. return /auto|scroll|overlay|hidden|clip/.test(e + i$1 + n$2) && !["inline", "contents"].includes(r$1);
  779. }
  780. function m$1(t) {
  781. return [
  782. "table",
  783. "td",
  784. "th"
  785. ].includes(s(t));
  786. }
  787. function y$1(t) {
  788. const e = /firefox/i.test(u()), n$2 = o(t), i$1 = n$2.backdropFilter || n$2.WebkitBackdropFilter;
  789. return "none" !== n$2.transform || "none" !== n$2.perspective || !!i$1 && "none" !== i$1 || e && "filter" === n$2.willChange || e && !!n$2.filter && "none" !== n$2.filter || ["transform", "perspective"].some((t$1) => n$2.willChange.includes(t$1)) || [
  790. "paint",
  791. "layout",
  792. "strict",
  793. "content"
  794. ].some((t$1) => {
  795. const e$1 = n$2.contain;
  796. return null != e$1 && e$1.includes(t$1);
  797. });
  798. }
  799. function x$1() {
  800. return !/^((?!chrome|android).)*safari/i.test(u());
  801. }
  802. function w(t) {
  803. return [
  804. "html",
  805. "body",
  806. "#document"
  807. ].includes(s(t));
  808. }
  809. function v(t) {
  810. return d$1(t) ? t : t.contextElement;
  811. }
  812. const b$1 = {
  813. x: 1,
  814. y: 1
  815. };
  816. function L(t) {
  817. const e = v(t);
  818. if (!a(e)) return b$1;
  819. const n$2 = e.getBoundingClientRect(), { width: o$1, height: i$1, fallback: r$1 } = c$1(e);
  820. let s$1 = (r$1 ? l(n$2.width) : n$2.width) / o$1, f$1 = (r$1 ? l(n$2.height) : n$2.height) / i$1;
  821. return s$1 && Number.isFinite(s$1) || (s$1 = 1), f$1 && Number.isFinite(f$1) || (f$1 = 1), {
  822. x: s$1,
  823. y: f$1
  824. };
  825. }
  826. function E$1(t, e, o$1, i$1) {
  827. var r$1, l$1;
  828. void 0 === e && (e = !1), void 0 === o$1 && (o$1 = !1);
  829. const c$2 = t.getBoundingClientRect(), s$1 = v(t);
  830. let f$1 = b$1;
  831. e && (i$1 ? d$1(i$1) && (f$1 = L(i$1)) : f$1 = L(t));
  832. const u$1 = s$1 ? n$1(s$1) : window, a$1 = !x$1() && o$1;
  833. let h$3 = (c$2.left + (a$1 && (null == (r$1 = u$1.visualViewport) ? void 0 : r$1.offsetLeft) || 0)) / f$1.x, p$1 = (c$2.top + (a$1 && (null == (l$1 = u$1.visualViewport) ? void 0 : l$1.offsetTop) || 0)) / f$1.y, g$2 = c$2.width / f$1.x, m$2 = c$2.height / f$1.y;
  834. if (s$1) {
  835. const t$1 = n$1(s$1), e$1 = i$1 && d$1(i$1) ? n$1(i$1) : i$1;
  836. let o$2 = t$1.frameElement;
  837. for (; o$2 && i$1 && e$1 !== t$1;) {
  838. const t$2 = L(o$2), e$2 = o$2.getBoundingClientRect(), i$2 = getComputedStyle(o$2);
  839. e$2.x += (o$2.clientLeft + parseFloat(i$2.paddingLeft)) * t$2.x, e$2.y += (o$2.clientTop + parseFloat(i$2.paddingTop)) * t$2.y, h$3 *= t$2.x, p$1 *= t$2.y, g$2 *= t$2.x, m$2 *= t$2.y, h$3 += e$2.x, p$1 += e$2.y, o$2 = n$1(o$2).frameElement;
  840. }
  841. }
  842. return {
  843. width: g$2,
  844. height: m$2,
  845. top: p$1,
  846. right: h$3 + g$2,
  847. bottom: p$1 + m$2,
  848. left: h$3,
  849. x: h$3,
  850. y: p$1
  851. };
  852. }
  853. function R(t) {
  854. return ((h$2(t) ? t.ownerDocument : t.document) || window.document).documentElement;
  855. }
  856. function T(t) {
  857. return d$1(t) ? {
  858. scrollLeft: t.scrollLeft,
  859. scrollTop: t.scrollTop
  860. } : {
  861. scrollLeft: t.pageXOffset,
  862. scrollTop: t.pageYOffset
  863. };
  864. }
  865. function C$1(t) {
  866. return E$1(R(t)).left + T(t).scrollLeft;
  867. }
  868. function F(t) {
  869. if ("html" === s(t)) return t;
  870. const e = t.assignedSlot || t.parentNode || p(t) && t.host || R(t);
  871. return p(e) ? e.host : e;
  872. }
  873. function W(t) {
  874. const e = F(t);
  875. return w(e) ? e.ownerDocument.body : a(e) && g$1(e) ? e : W(e);
  876. }
  877. function D(t, e) {
  878. var o$1;
  879. void 0 === e && (e = []);
  880. const i$1 = W(t), r$1 = i$1 === (null == (o$1 = t.ownerDocument) ? void 0 : o$1.body), l$1 = n$1(i$1);
  881. return r$1 ? e.concat(l$1, l$1.visualViewport || [], g$1(i$1) ? i$1 : []) : e.concat(i$1, D(i$1));
  882. }
  883. function S$1(e, i$1, l$1) {
  884. return "viewport" === i$1 ? rectToClientRect(function(t, e$1) {
  885. const o$1 = n$1(t), i$2 = R(t), r$1 = o$1.visualViewport;
  886. let l$2 = i$2.clientWidth, c$2 = i$2.clientHeight, s$1 = 0, f$1 = 0;
  887. if (r$1) {
  888. l$2 = r$1.width, c$2 = r$1.height;
  889. const t$1 = x$1();
  890. (t$1 || !t$1 && "fixed" === e$1) && (s$1 = r$1.offsetLeft, f$1 = r$1.offsetTop);
  891. }
  892. return {
  893. width: l$2,
  894. height: c$2,
  895. x: s$1,
  896. y: f$1
  897. };
  898. }(e, l$1)) : d$1(i$1) ? rectToClientRect(function(t, e$1) {
  899. const n$2 = E$1(t, !0, "fixed" === e$1), o$1 = n$2.top + t.clientTop, i$2 = n$2.left + t.clientLeft, r$1 = a(t) ? L(t) : {
  900. x: 1,
  901. y: 1
  902. };
  903. return {
  904. width: t.clientWidth * r$1.x,
  905. height: t.clientHeight * r$1.y,
  906. x: i$2 * r$1.x,
  907. y: o$1 * r$1.y
  908. };
  909. }(i$1, l$1)) : rectToClientRect(function(t) {
  910. const e$1 = R(t), n$2 = T(t), i$2 = t.ownerDocument.body, l$2 = r(e$1.scrollWidth, e$1.clientWidth, i$2.scrollWidth, i$2.clientWidth), c$2 = r(e$1.scrollHeight, e$1.clientHeight, i$2.scrollHeight, i$2.clientHeight);
  911. let s$1 = -n$2.scrollLeft + C$1(t);
  912. const f$1 = -n$2.scrollTop;
  913. return "rtl" === o(i$2).direction && (s$1 += r(e$1.clientWidth, i$2.clientWidth) - l$2), {
  914. width: l$2,
  915. height: c$2,
  916. x: s$1,
  917. y: f$1
  918. };
  919. }(R(e)));
  920. }
  921. function A(t) {
  922. return a(t) && "fixed" !== o(t).position ? t.offsetParent : null;
  923. }
  924. function H$1(t) {
  925. const e = n$1(t);
  926. let i$1 = A(t);
  927. for (; i$1 && m$1(i$1) && "static" === o(i$1).position;) i$1 = A(i$1);
  928. return i$1 && ("html" === s(i$1) || "body" === s(i$1) && "static" === o(i$1).position && !y$1(i$1)) ? e : i$1 || function(t$1) {
  929. let e$1 = F(t$1);
  930. for (; a(e$1) && !w(e$1);) {
  931. if (y$1(e$1)) return e$1;
  932. e$1 = F(e$1);
  933. }
  934. return null;
  935. }(t) || e;
  936. }
  937. function O(t, e, n$2) {
  938. const o$1 = a(e), i$1 = R(e), r$1 = E$1(t, !0, "fixed" === n$2, e);
  939. let l$1 = {
  940. scrollLeft: 0,
  941. scrollTop: 0
  942. };
  943. const c$2 = {
  944. x: 0,
  945. y: 0
  946. };
  947. if (o$1 || !o$1 && "fixed" !== n$2) if (("body" !== s(e) || g$1(i$1)) && (l$1 = T(e)), a(e)) {
  948. const t$1 = E$1(e, !0);
  949. c$2.x = t$1.x + e.clientLeft, c$2.y = t$1.y + e.clientTop;
  950. } else i$1 && (c$2.x = C$1(i$1));
  951. return {
  952. x: r$1.left + l$1.scrollLeft - c$2.x,
  953. y: r$1.top + l$1.scrollTop - c$2.y,
  954. width: r$1.width,
  955. height: r$1.height
  956. };
  957. }
  958. const P = {
  959. getClippingRect: function(t) {
  960. let { element: e, boundary: n$2, rootBoundary: l$1, strategy: c$2 } = t;
  961. const f$1 = "clippingAncestors" === n$2 ? function(t$1, e$1) {
  962. const n$3 = e$1.get(t$1);
  963. if (n$3) return n$3;
  964. let i$1 = D(t$1).filter((t$2) => d$1(t$2) && "body" !== s(t$2)), r$1 = null;
  965. const l$2 = "fixed" === o(t$1).position;
  966. let c$3 = l$2 ? F(t$1) : t$1;
  967. for (; d$1(c$3) && !w(c$3);) {
  968. const t$2 = o(c$3), e$2 = y$1(c$3);
  969. (l$2 ? e$2 || r$1 : e$2 || "static" !== t$2.position || !r$1 || !["absolute", "fixed"].includes(r$1.position)) ? r$1 = t$2 : i$1 = i$1.filter((t$3) => t$3 !== c$3), c$3 = F(c$3);
  970. }
  971. return e$1.set(t$1, i$1), i$1;
  972. }(e, this._c) : [].concat(n$2), u$1 = [...f$1, l$1], a$1 = u$1[0], h$3 = u$1.reduce((t$1, n$3) => {
  973. const o$1 = S$1(e, n$3, c$2);
  974. return t$1.top = r(o$1.top, t$1.top), t$1.right = i(o$1.right, t$1.right), t$1.bottom = i(o$1.bottom, t$1.bottom), t$1.left = r(o$1.left, t$1.left), t$1;
  975. }, S$1(e, a$1, c$2));
  976. return {
  977. width: h$3.right - h$3.left,
  978. height: h$3.bottom - h$3.top,
  979. x: h$3.left,
  980. y: h$3.top
  981. };
  982. },
  983. convertOffsetParentRelativeRectToViewportRelativeRect: function(t) {
  984. let { rect: e, offsetParent: n$2, strategy: o$1 } = t;
  985. const i$1 = a(n$2), r$1 = R(n$2);
  986. if (n$2 === r$1) return e;
  987. let l$1 = {
  988. scrollLeft: 0,
  989. scrollTop: 0
  990. }, c$2 = {
  991. x: 1,
  992. y: 1
  993. };
  994. const f$1 = {
  995. x: 0,
  996. y: 0
  997. };
  998. if ((i$1 || !i$1 && "fixed" !== o$1) && (("body" !== s(n$2) || g$1(r$1)) && (l$1 = T(n$2)), a(n$2))) {
  999. const t$1 = E$1(n$2);
  1000. c$2 = L(n$2), f$1.x = t$1.x + n$2.clientLeft, f$1.y = t$1.y + n$2.clientTop;
  1001. }
  1002. return {
  1003. width: e.width * c$2.x,
  1004. height: e.height * c$2.y,
  1005. x: e.x * c$2.x - l$1.scrollLeft * c$2.x + f$1.x,
  1006. y: e.y * c$2.y - l$1.scrollTop * c$2.y + f$1.y
  1007. };
  1008. },
  1009. isElement: d$1,
  1010. getDimensions: function(t) {
  1011. return a(t) ? c$1(t) : t.getBoundingClientRect();
  1012. },
  1013. getOffsetParent: H$1,
  1014. getDocumentElement: R,
  1015. getScale: L,
  1016. async getElementRects(t) {
  1017. let { reference: e, floating: n$2, strategy: o$1 } = t;
  1018. const i$1 = this.getOffsetParent || H$1, r$1 = this.getDimensions;
  1019. return {
  1020. reference: O(e, await i$1(n$2), o$1),
  1021. floating: {
  1022. x: 0,
  1023. y: 0,
  1024. ...await r$1(n$2)
  1025. }
  1026. };
  1027. },
  1028. getClientRects: (t) => Array.from(t.getClientRects()),
  1029. isRTL: (t) => "rtl" === o(t).direction
  1030. };
  1031. const B$1 = (t, n$2, o$1) => {
  1032. const i$1 = new Map(), r$1 = {
  1033. platform: P,
  1034. ...o$1
  1035. }, l$1 = {
  1036. ...r$1.platform,
  1037. _c: i$1
  1038. };
  1039. return computePosition(t, n$2, {
  1040. ...r$1,
  1041. platform: l$1
  1042. });
  1043. };
  1044. const h$1 = {
  1045. disabled: !1,
  1046. distance: 5,
  1047. skidding: 0,
  1048. container: "body",
  1049. boundary: void 0,
  1050. instantMove: !1,
  1051. disposeTimeout: 150,
  1052. popperTriggers: [],
  1053. strategy: "absolute",
  1054. preventOverflow: !0,
  1055. flip: !0,
  1056. shift: !0,
  1057. overflowPadding: 0,
  1058. arrowPadding: 0,
  1059. arrowOverflow: !0,
  1060. autoHideOnMousedown: !1,
  1061. themes: {
  1062. tooltip: {
  1063. placement: "top",
  1064. triggers: [
  1065. "hover",
  1066. "focus",
  1067. "touch"
  1068. ],
  1069. hideTriggers: (e) => [...e, "click"],
  1070. delay: {
  1071. show: 200,
  1072. hide: 0
  1073. },
  1074. handleResize: !1,
  1075. html: !1,
  1076. loadingContent: "..."
  1077. },
  1078. dropdown: {
  1079. placement: "bottom",
  1080. triggers: ["click"],
  1081. delay: 0,
  1082. handleResize: !0,
  1083. autoHide: !0
  1084. },
  1085. menu: {
  1086. $extend: "dropdown",
  1087. triggers: ["hover", "focus"],
  1088. popperTriggers: ["hover"],
  1089. delay: {
  1090. show: 0,
  1091. hide: 400
  1092. }
  1093. }
  1094. }
  1095. };
  1096. function S(e, t) {
  1097. let o$1 = h$1.themes[e] || {}, i$1;
  1098. do
  1099. i$1 = o$1[t], typeof i$1 > "u" ? o$1.$extend ? o$1 = h$1.themes[o$1.$extend] || {} : (o$1 = null, i$1 = h$1[t]) : o$1 = null;
  1100. while (o$1);
  1101. return i$1;
  1102. }
  1103. function Ze(e) {
  1104. const t = [e];
  1105. let o$1 = h$1.themes[e] || {};
  1106. do
  1107. o$1.$extend && !o$1.$resetCss ? (t.push(o$1.$extend), o$1 = h$1.themes[o$1.$extend] || {}) : o$1 = null;
  1108. while (o$1);
  1109. return t.map((i$1) => `v-popper--theme-${i$1}`);
  1110. }
  1111. function re(e) {
  1112. const t = [e];
  1113. let o$1 = h$1.themes[e] || {};
  1114. do
  1115. o$1.$extend ? (t.push(o$1.$extend), o$1 = h$1.themes[o$1.$extend] || {}) : o$1 = null;
  1116. while (o$1);
  1117. return t;
  1118. }
  1119. let $ = !1;
  1120. if (typeof window < "u") {
  1121. $ = !1;
  1122. try {
  1123. const e = Object.defineProperty({}, "passive", { get() {
  1124. $ = !0;
  1125. } });
  1126. window.addEventListener("test", null, e);
  1127. } catch {}
  1128. }
  1129. let _e = !1;
  1130. typeof window < "u" && typeof navigator < "u" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);
  1131. const Te = [
  1132. "auto",
  1133. "top",
  1134. "bottom",
  1135. "left",
  1136. "right"
  1137. ].reduce((e, t) => e.concat([
  1138. t,
  1139. `${t}-start`,
  1140. `${t}-end`
  1141. ]), []), pe = {
  1142. hover: "mouseenter",
  1143. focus: "focus",
  1144. click: "click",
  1145. touch: "touchstart",
  1146. pointer: "pointerdown"
  1147. }, ae = {
  1148. hover: "mouseleave",
  1149. focus: "blur",
  1150. click: "click",
  1151. touch: "touchend",
  1152. pointer: "pointerup"
  1153. };
  1154. function de(e, t) {
  1155. const o$1 = e.indexOf(t);
  1156. o$1 !== -1 && e.splice(o$1, 1);
  1157. }
  1158. function G() {
  1159. return new Promise((e) => requestAnimationFrame(() => {
  1160. requestAnimationFrame(e);
  1161. }));
  1162. }
  1163. const d = [];
  1164. let g = null;
  1165. const le = {};
  1166. function he(e) {
  1167. let t = le[e];
  1168. return t || (t = le[e] = []), t;
  1169. }
  1170. let Y = function() {};
  1171. typeof window < "u" && (Y = window.Element);
  1172. function n(e) {
  1173. return function(t) {
  1174. return S(t.theme, e);
  1175. };
  1176. }
  1177. const q = "__floating-vue__popper", Q = () => defineComponent({
  1178. name: "VPopper",
  1179. provide() {
  1180. return { [q]: { parentPopper: this } };
  1181. },
  1182. inject: { [q]: { default: null } },
  1183. props: {
  1184. theme: {
  1185. type: String,
  1186. required: !0
  1187. },
  1188. targetNodes: {
  1189. type: Function,
  1190. required: !0
  1191. },
  1192. referenceNode: {
  1193. type: Function,
  1194. default: null
  1195. },
  1196. popperNode: {
  1197. type: Function,
  1198. required: !0
  1199. },
  1200. shown: {
  1201. type: Boolean,
  1202. default: !1
  1203. },
  1204. showGroup: {
  1205. type: String,
  1206. default: null
  1207. },
  1208. ariaId: { default: null },
  1209. disabled: {
  1210. type: Boolean,
  1211. default: n("disabled")
  1212. },
  1213. positioningDisabled: {
  1214. type: Boolean,
  1215. default: n("positioningDisabled")
  1216. },
  1217. placement: {
  1218. type: String,
  1219. default: n("placement"),
  1220. validator: (e) => Te.includes(e)
  1221. },
  1222. delay: {
  1223. type: [
  1224. String,
  1225. Number,
  1226. Object
  1227. ],
  1228. default: n("delay")
  1229. },
  1230. distance: {
  1231. type: [Number, String],
  1232. default: n("distance")
  1233. },
  1234. skidding: {
  1235. type: [Number, String],
  1236. default: n("skidding")
  1237. },
  1238. triggers: {
  1239. type: Array,
  1240. default: n("triggers")
  1241. },
  1242. showTriggers: {
  1243. type: [Array, Function],
  1244. default: n("showTriggers")
  1245. },
  1246. hideTriggers: {
  1247. type: [Array, Function],
  1248. default: n("hideTriggers")
  1249. },
  1250. popperTriggers: {
  1251. type: Array,
  1252. default: n("popperTriggers")
  1253. },
  1254. popperShowTriggers: {
  1255. type: [Array, Function],
  1256. default: n("popperShowTriggers")
  1257. },
  1258. popperHideTriggers: {
  1259. type: [Array, Function],
  1260. default: n("popperHideTriggers")
  1261. },
  1262. container: {
  1263. type: [
  1264. String,
  1265. Object,
  1266. Y,
  1267. Boolean
  1268. ],
  1269. default: n("container")
  1270. },
  1271. boundary: {
  1272. type: [String, Y],
  1273. default: n("boundary")
  1274. },
  1275. strategy: {
  1276. type: String,
  1277. validator: (e) => ["absolute", "fixed"].includes(e),
  1278. default: n("strategy")
  1279. },
  1280. autoHide: {
  1281. type: [Boolean, Function],
  1282. default: n("autoHide")
  1283. },
  1284. handleResize: {
  1285. type: Boolean,
  1286. default: n("handleResize")
  1287. },
  1288. instantMove: {
  1289. type: Boolean,
  1290. default: n("instantMove")
  1291. },
  1292. eagerMount: {
  1293. type: Boolean,
  1294. default: n("eagerMount")
  1295. },
  1296. popperClass: {
  1297. type: [
  1298. String,
  1299. Array,
  1300. Object
  1301. ],
  1302. default: n("popperClass")
  1303. },
  1304. computeTransformOrigin: {
  1305. type: Boolean,
  1306. default: n("computeTransformOrigin")
  1307. },
  1308. autoMinSize: {
  1309. type: Boolean,
  1310. default: n("autoMinSize")
  1311. },
  1312. autoSize: {
  1313. type: [Boolean, String],
  1314. default: n("autoSize")
  1315. },
  1316. autoMaxSize: {
  1317. type: Boolean,
  1318. default: n("autoMaxSize")
  1319. },
  1320. autoBoundaryMaxSize: {
  1321. type: Boolean,
  1322. default: n("autoBoundaryMaxSize")
  1323. },
  1324. preventOverflow: {
  1325. type: Boolean,
  1326. default: n("preventOverflow")
  1327. },
  1328. overflowPadding: {
  1329. type: [Number, String],
  1330. default: n("overflowPadding")
  1331. },
  1332. arrowPadding: {
  1333. type: [Number, String],
  1334. default: n("arrowPadding")
  1335. },
  1336. arrowOverflow: {
  1337. type: Boolean,
  1338. default: n("arrowOverflow")
  1339. },
  1340. flip: {
  1341. type: Boolean,
  1342. default: n("flip")
  1343. },
  1344. shift: {
  1345. type: Boolean,
  1346. default: n("shift")
  1347. },
  1348. shiftCrossAxis: {
  1349. type: Boolean,
  1350. default: n("shiftCrossAxis")
  1351. },
  1352. noAutoFocus: {
  1353. type: Boolean,
  1354. default: n("noAutoFocus")
  1355. },
  1356. disposeTimeout: {
  1357. type: Number,
  1358. default: n("disposeTimeout")
  1359. }
  1360. },
  1361. emits: {
  1362. show: () => !0,
  1363. hide: () => !0,
  1364. "update:shown": (e) => !0,
  1365. "apply-show": () => !0,
  1366. "apply-hide": () => !0,
  1367. "close-group": () => !0,
  1368. "close-directive": () => !0,
  1369. "auto-hide": () => !0,
  1370. resize: () => !0
  1371. },
  1372. data() {
  1373. return {
  1374. isShown: !1,
  1375. isMounted: !1,
  1376. skipTransition: !1,
  1377. classes: {
  1378. showFrom: !1,
  1379. showTo: !1,
  1380. hideFrom: !1,
  1381. hideTo: !0
  1382. },
  1383. result: {
  1384. x: 0,
  1385. y: 0,
  1386. placement: "",
  1387. strategy: this.strategy,
  1388. arrow: {
  1389. x: 0,
  1390. y: 0,
  1391. centerOffset: 0
  1392. },
  1393. transformOrigin: null
  1394. },
  1395. randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join("_")}`,
  1396. shownChildren: /* @__PURE__ */ new Set(),
  1397. lastAutoHide: !0,
  1398. pendingHide: !1,
  1399. containsGlobalTarget: !1,
  1400. isDisposed: !0,
  1401. mouseDownContains: !1
  1402. };
  1403. },
  1404. computed: {
  1405. popperId() {
  1406. return this.ariaId != null ? this.ariaId : this.randomId;
  1407. },
  1408. shouldMountContent() {
  1409. return this.eagerMount || this.isMounted;
  1410. },
  1411. slotData() {
  1412. return {
  1413. popperId: this.popperId,
  1414. isShown: this.isShown,
  1415. shouldMountContent: this.shouldMountContent,
  1416. skipTransition: this.skipTransition,
  1417. autoHide: typeof this.autoHide == "function" ? this.lastAutoHide : this.autoHide,
  1418. show: this.show,
  1419. hide: this.hide,
  1420. handleResize: this.handleResize,
  1421. onResize: this.onResize,
  1422. classes: {
  1423. ...this.classes,
  1424. popperClass: this.popperClass
  1425. },
  1426. result: this.positioningDisabled ? null : this.result,
  1427. attrs: this.$attrs
  1428. };
  1429. },
  1430. parentPopper() {
  1431. var e;
  1432. return (e = this[q]) == null ? void 0 : e.parentPopper;
  1433. },
  1434. hasPopperShowTriggerHover() {
  1435. var e, t;
  1436. return ((e = this.popperTriggers) == null ? void 0 : e.includes("hover")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes("hover"));
  1437. }
  1438. },
  1439. watch: {
  1440. shown: "$_autoShowHide",
  1441. disabled(e) {
  1442. e ? this.dispose() : this.init();
  1443. },
  1444. async container() {
  1445. this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());
  1446. },
  1447. triggers: {
  1448. handler: "$_refreshListeners",
  1449. deep: !0
  1450. },
  1451. positioningDisabled: "$_refreshListeners",
  1452. ...[
  1453. "placement",
  1454. "distance",
  1455. "skidding",
  1456. "boundary",
  1457. "strategy",
  1458. "overflowPadding",
  1459. "arrowPadding",
  1460. "preventOverflow",
  1461. "shift",
  1462. "shiftCrossAxis",
  1463. "flip"
  1464. ].reduce((e, t) => (e[t] = "$_computePosition", e), {})
  1465. },
  1466. created() {
  1467. this.autoMinSize && console.warn("[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead."), this.autoMaxSize && console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.");
  1468. },
  1469. mounted() {
  1470. this.init(), this.$_detachPopperNode();
  1471. },
  1472. activated() {
  1473. this.$_autoShowHide();
  1474. },
  1475. deactivated() {
  1476. this.hide();
  1477. },
  1478. beforeUnmount() {
  1479. this.dispose();
  1480. },
  1481. methods: {
  1482. show({ event: e = null, skipDelay: t = !1, force: o$1 = !1 } = {}) {
  1483. var i$1, s$1;
  1484. (i$1 = this.parentPopper) != null && i$1.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o$1 || !this.disabled) && (((s$1 = this.parentPopper) == null ? void 0 : s$1.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit("show"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {
  1485. this.$_showFrameLocked = !1;
  1486. })), this.$emit("update:shown", !0));
  1487. },
  1488. hide({ event: e = null, skipDelay: t = !1 } = {}) {
  1489. var o$1;
  1490. if (!this.$_hideInProgress) {
  1491. if (this.shownChildren.size > 0) {
  1492. this.pendingHide = !0;
  1493. return;
  1494. }
  1495. if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {
  1496. this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {
  1497. this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);
  1498. }, 1e3));
  1499. return;
  1500. }
  1501. ((o$1 = this.parentPopper) == null ? void 0 : o$1.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit("hide"), this.$emit("update:shown", !1);
  1502. }
  1503. },
  1504. init() {
  1505. var e;
  1506. this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(".v-popper__inner"), this.$_arrowNode = this.$_popperNode.querySelector(".v-popper__arrow-container"), this.$_swapTargetAttrs("title", "data-original-title"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());
  1507. },
  1508. dispose() {
  1509. this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs("data-original-title", "title"));
  1510. },
  1511. async onResize() {
  1512. this.isShown && (await this.$_computePosition(), this.$emit("resize"));
  1513. },
  1514. async $_computePosition() {
  1515. if (this.isDisposed || this.positioningDisabled) return;
  1516. const e = {
  1517. strategy: this.strategy,
  1518. middleware: []
  1519. };
  1520. (this.distance || this.skidding) && e.middleware.push(offset({
  1521. mainAxis: this.distance,
  1522. crossAxis: this.skidding
  1523. }));
  1524. const t = this.placement.startsWith("auto");
  1525. if (t ? e.middleware.push(autoPlacement({ alignment: this.placement.split("-")[1] ?? "" })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(shift({
  1526. padding: this.overflowPadding,
  1527. boundary: this.boundary,
  1528. crossAxis: this.shiftCrossAxis
  1529. })), !t && this.flip && e.middleware.push(flip({
  1530. padding: this.overflowPadding,
  1531. boundary: this.boundary
  1532. }))), e.middleware.push(arrow({
  1533. element: this.$_arrowNode,
  1534. padding: this.arrowPadding
  1535. })), this.arrowOverflow && e.middleware.push({
  1536. name: "arrowOverflow",
  1537. fn: ({ placement: i$1, rects: s$1, middlewareData: r$1 }) => {
  1538. let p$1;
  1539. const { centerOffset: a$1 } = r$1.arrow;
  1540. return i$1.startsWith("top") || i$1.startsWith("bottom") ? p$1 = Math.abs(a$1) > s$1.reference.width / 2 : p$1 = Math.abs(a$1) > s$1.reference.height / 2, { data: { overflow: p$1 } };
  1541. }
  1542. }), this.autoMinSize || this.autoSize) {
  1543. const i$1 = this.autoSize ? this.autoSize : this.autoMinSize ? "min" : null;
  1544. e.middleware.push({
  1545. name: "autoSize",
  1546. fn: ({ rects: s$1, placement: r$1, middlewareData: p$1 }) => {
  1547. var u$1;
  1548. if ((u$1 = p$1.autoSize) != null && u$1.skip) return {};
  1549. let a$1, l$1;
  1550. return r$1.startsWith("top") || r$1.startsWith("bottom") ? a$1 = s$1.reference.width : l$1 = s$1.reference.height, this.$_innerNode.style[i$1 === "min" ? "minWidth" : i$1 === "max" ? "maxWidth" : "width"] = a$1 != null ? `${a$1}px` : null, this.$_innerNode.style[i$1 === "min" ? "minHeight" : i$1 === "max" ? "maxHeight" : "height"] = l$1 != null ? `${l$1}px` : null, {
  1551. data: { skip: !0 },
  1552. reset: { rects: !0 }
  1553. };
  1554. }
  1555. });
  1556. }
  1557. (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(size({
  1558. boundary: this.boundary,
  1559. padding: this.overflowPadding,
  1560. apply: ({ availableWidth: i$1, availableHeight: s$1 }) => {
  1561. this.$_innerNode.style.maxWidth = i$1 != null ? `${i$1}px` : null, this.$_innerNode.style.maxHeight = s$1 != null ? `${s$1}px` : null;
  1562. }
  1563. })));
  1564. const o$1 = await B$1(this.$_referenceNode, this.$_popperNode, e);
  1565. Object.assign(this.result, {
  1566. x: o$1.x,
  1567. y: o$1.y,
  1568. placement: o$1.placement,
  1569. strategy: o$1.strategy,
  1570. arrow: {
  1571. ...o$1.middlewareData.arrow,
  1572. ...o$1.middlewareData.arrowOverflow
  1573. }
  1574. });
  1575. },
  1576. $_scheduleShow(e, t = !1) {
  1577. if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {
  1578. g.$_applyHide(!0), this.$_applyShow(!0);
  1579. return;
  1580. }
  1581. t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay("show"));
  1582. },
  1583. $_scheduleHide(e, t = !1) {
  1584. if (this.shownChildren.size > 0) {
  1585. this.pendingHide = !0;
  1586. return;
  1587. }
  1588. this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay("hide"));
  1589. },
  1590. $_computeDelay(e) {
  1591. const t = this.delay;
  1592. return parseInt(t && t[e] || t || 0);
  1593. },
  1594. async $_applyShow(e = !1) {
  1595. clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([...D(this.$_referenceNode), ...D(this.$_popperNode)], "scroll", () => {
  1596. this.$_computePosition();
  1597. }));
  1598. },
  1599. async $_applyShowEffect() {
  1600. if (this.$_hideInProgress) return;
  1601. if (this.computeTransformOrigin) {
  1602. const t = this.$_referenceNode.getBoundingClientRect(), o$1 = this.$_popperNode.querySelector(".v-popper__wrapper"), i$1 = o$1.parentNode.getBoundingClientRect(), s$1 = t.x + t.width / 2 - (i$1.left + o$1.offsetLeft), r$1 = t.y + t.height / 2 - (i$1.top + o$1.offsetTop);
  1603. this.result.transformOrigin = `${s$1}px ${r$1}px`;
  1604. }
  1605. this.isShown = !0, this.$_applyAttrsToTarget({
  1606. "aria-describedby": this.popperId,
  1607. "data-popper-shown": ""
  1608. });
  1609. const e = this.showGroup;
  1610. if (e) {
  1611. let t;
  1612. for (let o$1 = 0; o$1 < d.length; o$1++) t = d[o$1], t.showGroup !== e && (t.hide(), t.$emit("close-group"));
  1613. }
  1614. d.push(this), document.body.classList.add("v-popper--some-open");
  1615. for (const t of re(this.theme)) he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);
  1616. this.$emit("apply-show"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();
  1617. },
  1618. async $_applyHide(e = !1) {
  1619. if (this.shownChildren.size > 0) {
  1620. this.pendingHide = !0, this.$_hideInProgress = !1;
  1621. return;
  1622. }
  1623. if (clearTimeout(this.$_scheduleTimer), !this.isShown) return;
  1624. this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove("v-popper--some-open");
  1625. for (const o$1 of re(this.theme)) {
  1626. const i$1 = he(o$1);
  1627. de(i$1, this), i$1.length === 0 && document.body.classList.remove(`v-popper--some-open--${o$1}`);
  1628. }
  1629. g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({
  1630. "aria-describedby": void 0,
  1631. "data-popper-shown": void 0
  1632. }), clearTimeout(this.$_disposeTimer);
  1633. const t = this.disposeTimeout;
  1634. t !== null && (this.$_disposeTimer = setTimeout(() => {
  1635. this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);
  1636. }, t)), this.$_removeEventListeners("scroll"), this.$emit("apply-hide"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;
  1637. },
  1638. $_autoShowHide() {
  1639. this.shown ? this.show() : this.hide();
  1640. },
  1641. $_ensureTeleport() {
  1642. if (this.isDisposed) return;
  1643. let e = this.container;
  1644. if (typeof e == "string" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e) throw new Error("No container for popover: " + this.container);
  1645. e.appendChild(this.$_popperNode), this.isMounted = !0;
  1646. },
  1647. $_addEventListeners() {
  1648. const e = (o$1) => {
  1649. this.isShown && !this.$_hideInProgress || (o$1.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o$1 }));
  1650. };
  1651. this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);
  1652. const t = (o$1) => {
  1653. o$1.usedByTooltip || this.hide({ event: o$1 });
  1654. };
  1655. this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);
  1656. },
  1657. $_registerEventListeners(e, t, o$1) {
  1658. this.$_events.push({
  1659. targetNodes: e,
  1660. eventType: t,
  1661. handler: o$1
  1662. }), e.forEach((i$1) => i$1.addEventListener(t, o$1, $ ? { passive: !0 } : void 0));
  1663. },
  1664. $_registerTriggerListeners(e, t, o$1, i$1, s$1) {
  1665. let r$1 = o$1;
  1666. i$1 != null && (r$1 = typeof i$1 == "function" ? i$1(r$1) : i$1), r$1.forEach((p$1) => {
  1667. const a$1 = t[p$1];
  1668. a$1 && this.$_registerEventListeners(e, a$1, s$1);
  1669. });
  1670. },
  1671. $_removeEventListeners(e) {
  1672. const t = [];
  1673. this.$_events.forEach((o$1) => {
  1674. const { targetNodes: i$1, eventType: s$1, handler: r$1 } = o$1;
  1675. !e || e === s$1 ? i$1.forEach((p$1) => p$1.removeEventListener(s$1, r$1)) : t.push(o$1);
  1676. }), this.$_events = t;
  1677. },
  1678. $_refreshListeners() {
  1679. this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());
  1680. },
  1681. $_handleGlobalClose(e, t = !1) {
  1682. this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit("close-directive") : this.$emit("auto-hide"), t && (this.$_preventShow = !0, setTimeout(() => {
  1683. this.$_preventShow = !1;
  1684. }, 300)));
  1685. },
  1686. $_detachPopperNode() {
  1687. this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);
  1688. },
  1689. $_swapTargetAttrs(e, t) {
  1690. for (const o$1 of this.$_targetNodes) {
  1691. const i$1 = o$1.getAttribute(e);
  1692. i$1 && (o$1.removeAttribute(e), o$1.setAttribute(t, i$1));
  1693. }
  1694. },
  1695. $_applyAttrsToTarget(e) {
  1696. for (const t of this.$_targetNodes) for (const o$1 in e) {
  1697. const i$1 = e[o$1];
  1698. i$1 == null ? t.removeAttribute(o$1) : t.setAttribute(o$1, i$1);
  1699. }
  1700. },
  1701. $_updateParentShownChildren(e) {
  1702. let t = this.parentPopper;
  1703. for (; t;) e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;
  1704. },
  1705. $_isAimingPopper() {
  1706. const e = this.$_referenceNode.getBoundingClientRect();
  1707. if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {
  1708. const t = this.$_popperNode.getBoundingClientRect(), o$1 = y - c, i$1 = _ - m, r$1 = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p$1 = c + o$1 * r$1, a$1 = m + i$1 * r$1;
  1709. return C(c, m, p$1, a$1, t.left, t.top, t.left, t.bottom) || C(c, m, p$1, a$1, t.left, t.top, t.right, t.top) || C(c, m, p$1, a$1, t.right, t.top, t.right, t.bottom) || C(c, m, p$1, a$1, t.left, t.bottom, t.right, t.bottom);
  1710. }
  1711. return !1;
  1712. }
  1713. },
  1714. render() {
  1715. return this.$slots.default(this.slotData);
  1716. }
  1717. });
  1718. if (typeof document < "u" && typeof window < "u") {
  1719. if (_e) {
  1720. const e = $ ? {
  1721. passive: !0,
  1722. capture: !0
  1723. } : !0;
  1724. document.addEventListener("touchstart", (t) => ue(t, !0), e), document.addEventListener("touchend", (t) => fe(t, !0), e);
  1725. } else window.addEventListener("mousedown", (e) => ue(e, !1), !0), window.addEventListener("click", (e) => fe(e, !1), !0);
  1726. window.addEventListener("resize", tt);
  1727. }
  1728. function ue(e, t) {
  1729. if (h$1.autoHideOnMousedown) Pe(e, t);
  1730. else for (let o$1 = 0; o$1 < d.length; o$1++) {
  1731. const i$1 = d[o$1];
  1732. try {
  1733. i$1.mouseDownContains = i$1.popperNode().contains(e.target);
  1734. } catch {}
  1735. }
  1736. }
  1737. function fe(e, t) {
  1738. h$1.autoHideOnMousedown || Pe(e, t);
  1739. }
  1740. function Pe(e, t) {
  1741. const o$1 = {};
  1742. for (let i$1 = d.length - 1; i$1 >= 0; i$1--) {
  1743. const s$1 = d[i$1];
  1744. try {
  1745. const r$1 = s$1.containsGlobalTarget = s$1.mouseDownContains || s$1.popperNode().contains(e.target);
  1746. s$1.pendingHide = !1, requestAnimationFrame(() => {
  1747. if (s$1.pendingHide = !1, !o$1[s$1.randomId] && ce(s$1, r$1, e)) {
  1748. if (s$1.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r$1) {
  1749. let a$1 = s$1.parentPopper;
  1750. for (; a$1;) o$1[a$1.randomId] = !0, a$1 = a$1.parentPopper;
  1751. return;
  1752. }
  1753. let p$1 = s$1.parentPopper;
  1754. for (; p$1 && ce(p$1, p$1.containsGlobalTarget, e);) {
  1755. p$1.$_handleGlobalClose(e, t);
  1756. p$1 = p$1.parentPopper;
  1757. }
  1758. }
  1759. });
  1760. } catch {}
  1761. }
  1762. }
  1763. function ce(e, t, o$1) {
  1764. return o$1.closeAllPopover || o$1.closePopover && t || et(e, o$1) && !t;
  1765. }
  1766. function et(e, t) {
  1767. if (typeof e.autoHide == "function") {
  1768. const o$1 = e.autoHide(t);
  1769. return e.lastAutoHide = o$1, o$1;
  1770. }
  1771. return e.autoHide;
  1772. }
  1773. function tt() {
  1774. for (let e = 0; e < d.length; e++) d[e].$_computePosition();
  1775. }
  1776. let c = 0, m = 0, y = 0, _ = 0;
  1777. typeof window < "u" && window.addEventListener("mousemove", (e) => {
  1778. c = y, m = _, y = e.clientX, _ = e.clientY;
  1779. }, $ ? { passive: !0 } : void 0);
  1780. function C(e, t, o$1, i$1, s$1, r$1, p$1, a$1) {
  1781. const l$1 = ((p$1 - s$1) * (t - r$1) - (a$1 - r$1) * (e - s$1)) / ((a$1 - r$1) * (o$1 - e) - (p$1 - s$1) * (i$1 - t)), u$1 = ((o$1 - e) * (t - r$1) - (i$1 - t) * (e - s$1)) / ((a$1 - r$1) * (o$1 - e) - (p$1 - s$1) * (i$1 - t));
  1782. return l$1 >= 0 && l$1 <= 1 && u$1 >= 0 && u$1 <= 1;
  1783. }
  1784. const ot = { extends: Q() }, B = (e, t) => {
  1785. const o$1 = e.__vccOpts || e;
  1786. for (const [i$1, s$1] of t) o$1[i$1] = s$1;
  1787. return o$1;
  1788. };
  1789. function it(e, t, o$1, i$1, s$1, r$1) {
  1790. return openBlock(), createElementBlock("div", {
  1791. ref: "reference",
  1792. class: normalizeClass(["v-popper", { "v-popper--shown": e.slotData.isShown }])
  1793. }, [renderSlot(e.$slots, "default", normalizeProps(guardReactiveProps(e.slotData)))], 2);
  1794. }
  1795. const st = /* @__PURE__ */ B(ot, [["render", it]]);
  1796. function nt() {
  1797. var e = window.navigator.userAgent, t = e.indexOf("MSIE ");
  1798. if (t > 0) return parseInt(e.substring(t + 5, e.indexOf(".", t)), 10);
  1799. var o$1 = e.indexOf("Trident/");
  1800. if (o$1 > 0) {
  1801. var i$1 = e.indexOf("rv:");
  1802. return parseInt(e.substring(i$1 + 3, e.indexOf(".", i$1)), 10);
  1803. }
  1804. var s$1 = e.indexOf("Edge/");
  1805. return s$1 > 0 ? parseInt(e.substring(s$1 + 5, e.indexOf(".", s$1)), 10) : -1;
  1806. }
  1807. let z;
  1808. function X() {
  1809. X.init || (X.init = !0, z = nt() !== -1);
  1810. }
  1811. var E = {
  1812. name: "ResizeObserver",
  1813. props: {
  1814. emitOnMount: {
  1815. type: Boolean,
  1816. default: !1
  1817. },
  1818. ignoreWidth: {
  1819. type: Boolean,
  1820. default: !1
  1821. },
  1822. ignoreHeight: {
  1823. type: Boolean,
  1824. default: !1
  1825. }
  1826. },
  1827. emits: ["notify"],
  1828. mounted() {
  1829. X(), nextTick(() => {
  1830. this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();
  1831. });
  1832. const e = document.createElement("object");
  1833. this._resizeObject = e, e.setAttribute("aria-hidden", "true"), e.setAttribute("tabindex", -1), e.onload = this.addResizeHandlers, e.type = "text/html", z && this.$el.appendChild(e), e.data = "about:blank", z || this.$el.appendChild(e);
  1834. },
  1835. beforeUnmount() {
  1836. this.removeResizeHandlers();
  1837. },
  1838. methods: {
  1839. compareAndNotify() {
  1840. (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());
  1841. },
  1842. emitSize() {
  1843. this.$emit("notify", {
  1844. width: this._w,
  1845. height: this._h
  1846. });
  1847. },
  1848. addResizeHandlers() {
  1849. this._resizeObject.contentDocument.defaultView.addEventListener("resize", this.compareAndNotify), this.compareAndNotify();
  1850. },
  1851. removeResizeHandlers() {
  1852. this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener("resize", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);
  1853. }
  1854. }
  1855. };
  1856. const rt = /* @__PURE__ */ withScopeId("data-v-b329ee4c");
  1857. pushScopeId("data-v-b329ee4c");
  1858. const pt = {
  1859. class: "resize-observer",
  1860. tabindex: "-1"
  1861. };
  1862. popScopeId();
  1863. const at = /* @__PURE__ */ rt((e, t, o$1, i$1, s$1, r$1) => (openBlock(), createBlock("div", pt)));
  1864. E.render = at;
  1865. E.__scopeId = "data-v-b329ee4c";
  1866. E.__file = "src/components/ResizeObserver.vue";
  1867. const Z = (e = "theme") => ({ computed: { themeClass() {
  1868. return Ze(this[e]);
  1869. } } }), dt = defineComponent({
  1870. name: "VPopperContent",
  1871. components: { ResizeObserver: E },
  1872. mixins: [Z()],
  1873. props: {
  1874. popperId: String,
  1875. theme: String,
  1876. shown: Boolean,
  1877. mounted: Boolean,
  1878. skipTransition: Boolean,
  1879. autoHide: Boolean,
  1880. handleResize: Boolean,
  1881. classes: Object,
  1882. result: Object
  1883. },
  1884. emits: ["hide", "resize"],
  1885. methods: { toPx(e) {
  1886. return e != null && !isNaN(e) ? `${e}px` : null;
  1887. } }
  1888. }), lt = [
  1889. "id",
  1890. "aria-hidden",
  1891. "tabindex",
  1892. "data-popper-placement"
  1893. ], ht = {
  1894. ref: "inner",
  1895. class: "v-popper__inner"
  1896. }, ut = /* @__PURE__ */ createBaseVNode("div", { class: "v-popper__arrow-outer" }, null, -1), ft = /* @__PURE__ */ createBaseVNode("div", { class: "v-popper__arrow-inner" }, null, -1), ct = [ut, ft];
  1897. function mt(e, t, o$1, i$1, s$1, r$1) {
  1898. const p$1 = resolveComponent("ResizeObserver");
  1899. return openBlock(), createElementBlock("div", {
  1900. id: e.popperId,
  1901. ref: "popover",
  1902. class: normalizeClass(["v-popper__popper", [
  1903. e.themeClass,
  1904. e.classes.popperClass,
  1905. {
  1906. "v-popper__popper--shown": e.shown,
  1907. "v-popper__popper--hidden": !e.shown,
  1908. "v-popper__popper--show-from": e.classes.showFrom,
  1909. "v-popper__popper--show-to": e.classes.showTo,
  1910. "v-popper__popper--hide-from": e.classes.hideFrom,
  1911. "v-popper__popper--hide-to": e.classes.hideTo,
  1912. "v-popper__popper--skip-transition": e.skipTransition,
  1913. "v-popper__popper--arrow-overflow": e.result && e.result.arrow.overflow,
  1914. "v-popper__popper--no-positioning": !e.result
  1915. }
  1916. ]]),
  1917. style: normalizeStyle(e.result ? {
  1918. position: e.result.strategy,
  1919. transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`
  1920. } : void 0),
  1921. "aria-hidden": e.shown ? "false" : "true",
  1922. tabindex: e.autoHide ? 0 : void 0,
  1923. "data-popper-placement": e.result ? e.result.placement : void 0,
  1924. onKeyup: t[2] || (t[2] = withKeys((a$1) => e.autoHide && e.$emit("hide"), ["esc"]))
  1925. }, [createBaseVNode("div", {
  1926. class: "v-popper__backdrop",
  1927. onClick: t[0] || (t[0] = (a$1) => e.autoHide && e.$emit("hide"))
  1928. }), createBaseVNode("div", {
  1929. class: "v-popper__wrapper",
  1930. style: normalizeStyle(e.result ? { transformOrigin: e.result.transformOrigin } : void 0)
  1931. }, [createBaseVNode("div", ht, [e.mounted ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createBaseVNode("div", null, [renderSlot(e.$slots, "default")]), e.handleResize ? (openBlock(), createBlock(p$1, {
  1932. key: 0,
  1933. onNotify: t[1] || (t[1] = (a$1) => e.$emit("resize", a$1))
  1934. })) : createCommentVNode("", !0)], 64)) : createCommentVNode("", !0)], 512), createBaseVNode("div", {
  1935. ref: "arrow",
  1936. class: "v-popper__arrow-container",
  1937. style: normalizeStyle(e.result ? {
  1938. left: e.toPx(e.result.arrow.x),
  1939. top: e.toPx(e.result.arrow.y)
  1940. } : void 0)
  1941. }, ct, 4)], 4)], 46, lt);
  1942. }
  1943. const ee = /* @__PURE__ */ B(dt, [["render", mt]]), te = { methods: {
  1944. show(...e) {
  1945. return this.$refs.popper.show(...e);
  1946. },
  1947. hide(...e) {
  1948. return this.$refs.popper.hide(...e);
  1949. },
  1950. dispose(...e) {
  1951. return this.$refs.popper.dispose(...e);
  1952. },
  1953. onResize(...e) {
  1954. return this.$refs.popper.onResize(...e);
  1955. }
  1956. } };
  1957. let K = function() {};
  1958. typeof window < "u" && (K = window.Element);
  1959. const gt = defineComponent({
  1960. name: "VPopperWrapper",
  1961. components: {
  1962. Popper: st,
  1963. PopperContent: ee
  1964. },
  1965. mixins: [te, Z("finalTheme")],
  1966. props: {
  1967. theme: {
  1968. type: String,
  1969. default: null
  1970. },
  1971. referenceNode: {
  1972. type: Function,
  1973. default: null
  1974. },
  1975. shown: {
  1976. type: Boolean,
  1977. default: !1
  1978. },
  1979. showGroup: {
  1980. type: String,
  1981. default: null
  1982. },
  1983. ariaId: { default: null },
  1984. disabled: {
  1985. type: Boolean,
  1986. default: void 0
  1987. },
  1988. positioningDisabled: {
  1989. type: Boolean,
  1990. default: void 0
  1991. },
  1992. placement: {
  1993. type: String,
  1994. default: void 0
  1995. },
  1996. delay: {
  1997. type: [
  1998. String,
  1999. Number,
  2000. Object
  2001. ],
  2002. default: void 0
  2003. },
  2004. distance: {
  2005. type: [Number, String],
  2006. default: void 0
  2007. },
  2008. skidding: {
  2009. type: [Number, String],
  2010. default: void 0
  2011. },
  2012. triggers: {
  2013. type: Array,
  2014. default: void 0
  2015. },
  2016. showTriggers: {
  2017. type: [Array, Function],
  2018. default: void 0
  2019. },
  2020. hideTriggers: {
  2021. type: [Array, Function],
  2022. default: void 0
  2023. },
  2024. popperTriggers: {
  2025. type: Array,
  2026. default: void 0
  2027. },
  2028. popperShowTriggers: {
  2029. type: [Array, Function],
  2030. default: void 0
  2031. },
  2032. popperHideTriggers: {
  2033. type: [Array, Function],
  2034. default: void 0
  2035. },
  2036. container: {
  2037. type: [
  2038. String,
  2039. Object,
  2040. K,
  2041. Boolean
  2042. ],
  2043. default: void 0
  2044. },
  2045. boundary: {
  2046. type: [String, K],
  2047. default: void 0
  2048. },
  2049. strategy: {
  2050. type: String,
  2051. default: void 0
  2052. },
  2053. autoHide: {
  2054. type: [Boolean, Function],
  2055. default: void 0
  2056. },
  2057. handleResize: {
  2058. type: Boolean,
  2059. default: void 0
  2060. },
  2061. instantMove: {
  2062. type: Boolean,
  2063. default: void 0
  2064. },
  2065. eagerMount: {
  2066. type: Boolean,
  2067. default: void 0
  2068. },
  2069. popperClass: {
  2070. type: [
  2071. String,
  2072. Array,
  2073. Object
  2074. ],
  2075. default: void 0
  2076. },
  2077. computeTransformOrigin: {
  2078. type: Boolean,
  2079. default: void 0
  2080. },
  2081. autoMinSize: {
  2082. type: Boolean,
  2083. default: void 0
  2084. },
  2085. autoSize: {
  2086. type: [Boolean, String],
  2087. default: void 0
  2088. },
  2089. autoMaxSize: {
  2090. type: Boolean,
  2091. default: void 0
  2092. },
  2093. autoBoundaryMaxSize: {
  2094. type: Boolean,
  2095. default: void 0
  2096. },
  2097. preventOverflow: {
  2098. type: Boolean,
  2099. default: void 0
  2100. },
  2101. overflowPadding: {
  2102. type: [Number, String],
  2103. default: void 0
  2104. },
  2105. arrowPadding: {
  2106. type: [Number, String],
  2107. default: void 0
  2108. },
  2109. arrowOverflow: {
  2110. type: Boolean,
  2111. default: void 0
  2112. },
  2113. flip: {
  2114. type: Boolean,
  2115. default: void 0
  2116. },
  2117. shift: {
  2118. type: Boolean,
  2119. default: void 0
  2120. },
  2121. shiftCrossAxis: {
  2122. type: Boolean,
  2123. default: void 0
  2124. },
  2125. noAutoFocus: {
  2126. type: Boolean,
  2127. default: void 0
  2128. },
  2129. disposeTimeout: {
  2130. type: Number,
  2131. default: void 0
  2132. }
  2133. },
  2134. emits: {
  2135. show: () => !0,
  2136. hide: () => !0,
  2137. "update:shown": (e) => !0,
  2138. "apply-show": () => !0,
  2139. "apply-hide": () => !0,
  2140. "close-group": () => !0,
  2141. "close-directive": () => !0,
  2142. "auto-hide": () => !0,
  2143. resize: () => !0
  2144. },
  2145. computed: { finalTheme() {
  2146. return this.theme ?? this.$options.vPopperTheme;
  2147. } },
  2148. methods: { getTargetNodes() {
  2149. return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);
  2150. } }
  2151. });
  2152. function wt(e, t, o$1, i$1, s$1, r$1) {
  2153. const p$1 = resolveComponent("PopperContent"), a$1 = resolveComponent("Popper");
  2154. return openBlock(), createBlock(a$1, mergeProps({ ref: "popper" }, e.$props, {
  2155. theme: e.finalTheme,
  2156. "target-nodes": e.getTargetNodes,
  2157. "popper-node": () => e.$refs.popperContent.$el,
  2158. class: [e.themeClass],
  2159. onShow: t[0] || (t[0] = () => e.$emit("show")),
  2160. onHide: t[1] || (t[1] = () => e.$emit("hide")),
  2161. "onUpdate:shown": t[2] || (t[2] = (l$1) => e.$emit("update:shown", l$1)),
  2162. onApplyShow: t[3] || (t[3] = () => e.$emit("apply-show")),
  2163. onApplyHide: t[4] || (t[4] = () => e.$emit("apply-hide")),
  2164. onCloseGroup: t[5] || (t[5] = () => e.$emit("close-group")),
  2165. onCloseDirective: t[6] || (t[6] = () => e.$emit("close-directive")),
  2166. onAutoHide: t[7] || (t[7] = () => e.$emit("auto-hide")),
  2167. onResize: t[8] || (t[8] = () => e.$emit("resize"))
  2168. }), {
  2169. default: withCtx(({ popperId: l$1, isShown: u$1, shouldMountContent: L$1, skipTransition: D$1, autoHide: I, show: F$1, hide: v$1, handleResize: R$1, onResize: j, classes: V, result: Ee }) => [renderSlot(e.$slots, "default", {
  2170. shown: u$1,
  2171. show: F$1,
  2172. hide: v$1
  2173. }), createVNode(p$1, {
  2174. ref: "popperContent",
  2175. "popper-id": l$1,
  2176. theme: e.finalTheme,
  2177. shown: u$1,
  2178. mounted: L$1,
  2179. "skip-transition": D$1,
  2180. "auto-hide": I,
  2181. "handle-resize": R$1,
  2182. classes: V,
  2183. result: Ee,
  2184. onHide: v$1,
  2185. onResize: j
  2186. }, {
  2187. default: withCtx(() => [renderSlot(e.$slots, "popper", {
  2188. shown: u$1,
  2189. hide: v$1
  2190. })]),
  2191. _: 2
  2192. }, 1032, [
  2193. "popper-id",
  2194. "theme",
  2195. "shown",
  2196. "mounted",
  2197. "skip-transition",
  2198. "auto-hide",
  2199. "handle-resize",
  2200. "classes",
  2201. "result",
  2202. "onHide",
  2203. "onResize"
  2204. ])]),
  2205. _: 3
  2206. }, 16, [
  2207. "theme",
  2208. "target-nodes",
  2209. "popper-node",
  2210. "class"
  2211. ]);
  2212. }
  2213. const k = /* @__PURE__ */ B(gt, [["render", wt]]), Se = {
  2214. ...k,
  2215. name: "VDropdown",
  2216. vPopperTheme: "dropdown"
  2217. }, be = {
  2218. ...k,
  2219. name: "VMenu",
  2220. vPopperTheme: "menu"
  2221. }, Ce = {
  2222. ...k,
  2223. name: "VTooltip",
  2224. vPopperTheme: "tooltip"
  2225. }, $t = defineComponent({
  2226. name: "VTooltipDirective",
  2227. components: {
  2228. Popper: Q(),
  2229. PopperContent: ee
  2230. },
  2231. mixins: [te],
  2232. inheritAttrs: !1,
  2233. props: {
  2234. theme: {
  2235. type: String,
  2236. default: "tooltip"
  2237. },
  2238. html: {
  2239. type: Boolean,
  2240. default: (e) => S(e.theme, "html")
  2241. },
  2242. content: {
  2243. type: [
  2244. String,
  2245. Number,
  2246. Function
  2247. ],
  2248. default: null
  2249. },
  2250. loadingContent: {
  2251. type: String,
  2252. default: (e) => S(e.theme, "loadingContent")
  2253. },
  2254. targetNodes: {
  2255. type: Function,
  2256. required: !0
  2257. }
  2258. },
  2259. data() {
  2260. return { asyncContent: null };
  2261. },
  2262. computed: {
  2263. isContentAsync() {
  2264. return typeof this.content == "function";
  2265. },
  2266. loading() {
  2267. return this.isContentAsync && this.asyncContent == null;
  2268. },
  2269. finalContent() {
  2270. return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;
  2271. }
  2272. },
  2273. watch: {
  2274. content: {
  2275. handler() {
  2276. this.fetchContent(!0);
  2277. },
  2278. immediate: !0
  2279. },
  2280. async finalContent() {
  2281. await this.$nextTick(), this.$refs.popper.onResize();
  2282. }
  2283. },
  2284. created() {
  2285. this.$_fetchId = 0;
  2286. },
  2287. methods: {
  2288. fetchContent(e) {
  2289. if (typeof this.content == "function" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {
  2290. this.asyncContent = null, this.$_loading = !0;
  2291. const t = ++this.$_fetchId, o$1 = this.content(this);
  2292. o$1.then ? o$1.then((i$1) => this.onResult(t, i$1)) : this.onResult(t, o$1);
  2293. }
  2294. },
  2295. onResult(e, t) {
  2296. e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);
  2297. },
  2298. onShow() {
  2299. this.$_isShown = !0, this.fetchContent();
  2300. },
  2301. onHide() {
  2302. this.$_isShown = !1;
  2303. }
  2304. }
  2305. }), vt = ["innerHTML"], yt = ["textContent"];
  2306. function _t(e, t, o$1, i$1, s$1, r$1) {
  2307. const p$1 = resolveComponent("PopperContent"), a$1 = resolveComponent("Popper");
  2308. return openBlock(), createBlock(a$1, mergeProps({ ref: "popper" }, e.$attrs, {
  2309. theme: e.theme,
  2310. "target-nodes": e.targetNodes,
  2311. "popper-node": () => e.$refs.popperContent.$el,
  2312. onApplyShow: e.onShow,
  2313. onApplyHide: e.onHide
  2314. }), {
  2315. default: withCtx(({ popperId: l$1, isShown: u$1, shouldMountContent: L$1, skipTransition: D$1, autoHide: I, hide: F$1, handleResize: v$1, onResize: R$1, classes: j, result: V }) => [createVNode(p$1, {
  2316. ref: "popperContent",
  2317. class: normalizeClass({ "v-popper--tooltip-loading": e.loading }),
  2318. "popper-id": l$1,
  2319. theme: e.theme,
  2320. shown: u$1,
  2321. mounted: L$1,
  2322. "skip-transition": D$1,
  2323. "auto-hide": I,
  2324. "handle-resize": v$1,
  2325. classes: j,
  2326. result: V,
  2327. onHide: F$1,
  2328. onResize: R$1
  2329. }, {
  2330. default: withCtx(() => [e.html ? (openBlock(), createElementBlock("div", {
  2331. key: 0,
  2332. innerHTML: e.finalContent
  2333. }, null, 8, vt)) : (openBlock(), createElementBlock("div", {
  2334. key: 1,
  2335. textContent: toDisplayString(e.finalContent)
  2336. }, null, 8, yt))]),
  2337. _: 2
  2338. }, 1032, [
  2339. "class",
  2340. "popper-id",
  2341. "theme",
  2342. "shown",
  2343. "mounted",
  2344. "skip-transition",
  2345. "auto-hide",
  2346. "handle-resize",
  2347. "classes",
  2348. "result",
  2349. "onHide",
  2350. "onResize"
  2351. ])]),
  2352. _: 1
  2353. }, 16, [
  2354. "theme",
  2355. "target-nodes",
  2356. "popper-node",
  2357. "onApplyShow",
  2358. "onApplyHide"
  2359. ]);
  2360. }
  2361. const ze = /* @__PURE__ */ B($t, [["render", _t]]), Ae = "v-popper--has-tooltip";
  2362. function Tt(e, t) {
  2363. let o$1 = e.placement;
  2364. if (!o$1 && t) for (const i$1 of Te) t[i$1] && (o$1 = i$1);
  2365. return o$1 || (o$1 = S(e.theme || "tooltip", "placement")), o$1;
  2366. }
  2367. function Ne(e, t, o$1) {
  2368. let i$1;
  2369. const s$1 = typeof t;
  2370. return s$1 === "string" ? i$1 = { content: t } : t && s$1 === "object" ? i$1 = t : i$1 = { content: !1 }, i$1.placement = Tt(i$1, o$1), i$1.targetNodes = () => [e], i$1.referenceNode = () => e, i$1;
  2371. }
  2372. let x, b, Pt = 0;
  2373. function St() {
  2374. if (x) return;
  2375. b = ref([]), x = createApp({
  2376. name: "VTooltipDirectiveApp",
  2377. setup() {
  2378. return { directives: b };
  2379. },
  2380. render() {
  2381. return this.directives.map((t) => h(ze, {
  2382. ...t.options,
  2383. shown: t.shown || t.options.shown,
  2384. key: t.id
  2385. }));
  2386. },
  2387. devtools: { hide: !0 }
  2388. });
  2389. const e = document.createElement("div");
  2390. document.body.appendChild(e), x.mount(e);
  2391. }
  2392. function bt(e, t, o$1) {
  2393. St();
  2394. const i$1 = ref(Ne(e, t, o$1)), s$1 = ref(!1), r$1 = {
  2395. id: Pt++,
  2396. options: i$1,
  2397. shown: s$1
  2398. };
  2399. return b.value.push(r$1), e.classList && e.classList.add(Ae), e.$_popper = {
  2400. options: i$1,
  2401. item: r$1,
  2402. show() {
  2403. s$1.value = !0;
  2404. },
  2405. hide() {
  2406. s$1.value = !1;
  2407. }
  2408. };
  2409. }
  2410. function He(e) {
  2411. if (e.$_popper) {
  2412. const t = b.value.indexOf(e.$_popper.item);
  2413. t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;
  2414. }
  2415. e.classList && e.classList.remove(Ae);
  2416. }
  2417. function me(e, { value: t, modifiers: o$1 }) {
  2418. const i$1 = Ne(e, t, o$1);
  2419. if (!i$1.content || S(i$1.theme || "tooltip", "disabled")) He(e);
  2420. else {
  2421. let s$1;
  2422. e.$_popper ? (s$1 = e.$_popper, s$1.options.value = i$1) : s$1 = bt(e, t, o$1), typeof t.shown < "u" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s$1.show() : s$1.hide());
  2423. }
  2424. }
  2425. const oe = {
  2426. beforeMount: me,
  2427. updated: me,
  2428. beforeUnmount(e) {
  2429. He(e);
  2430. }
  2431. };
  2432. function ge(e) {
  2433. e.addEventListener("mousedown", H), e.addEventListener("click", H), e.addEventListener("touchstart", Oe, $ ? { passive: !0 } : !1);
  2434. }
  2435. function we(e) {
  2436. e.removeEventListener("mousedown", H), e.removeEventListener("click", H), e.removeEventListener("touchstart", Oe), e.removeEventListener("touchend", Me), e.removeEventListener("touchcancel", Be);
  2437. }
  2438. function H(e) {
  2439. const t = e.currentTarget;
  2440. e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;
  2441. }
  2442. function Oe(e) {
  2443. if (e.changedTouches.length === 1) {
  2444. const t = e.currentTarget;
  2445. t.$_vclosepopover_touch = !0;
  2446. const o$1 = e.changedTouches[0];
  2447. t.$_vclosepopover_touchPoint = o$1, t.addEventListener("touchend", Me), t.addEventListener("touchcancel", Be);
  2448. }
  2449. }
  2450. function Me(e) {
  2451. const t = e.currentTarget;
  2452. if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {
  2453. const o$1 = e.changedTouches[0], i$1 = t.$_vclosepopover_touchPoint;
  2454. e.closePopover = Math.abs(o$1.screenY - i$1.screenY) < 20 && Math.abs(o$1.screenX - i$1.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;
  2455. }
  2456. }
  2457. function Be(e) {
  2458. const t = e.currentTarget;
  2459. t.$_vclosepopover_touch = !1;
  2460. }
  2461. const ie = {
  2462. beforeMount(e, { value: t, modifiers: o$1 }) {
  2463. e.$_closePopoverModifiers = o$1, (typeof t > "u" || t) && ge(e);
  2464. },
  2465. updated(e, { value: t, oldValue: o$1, modifiers: i$1 }) {
  2466. e.$_closePopoverModifiers = i$1, t !== o$1 && (typeof t > "u" || t ? ge(e) : we(e));
  2467. },
  2468. beforeUnmount(e) {
  2469. we(e);
  2470. }
  2471. }, Ht = h$1, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;
  2472. const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
  2473. function normalizeWindowsPath(input = "") {
  2474. if (!input) return input;
  2475. return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r$1) => r$1.toUpperCase());
  2476. }
  2477. const _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;
  2478. const _ROOT_FOLDER_RE = /^\/([A-Za-z]:)?$/;
  2479. function cwd() {
  2480. if (typeof process !== "undefined" && typeof process.cwd === "function") return process.cwd().replace(/\\/g, "/");
  2481. return "/";
  2482. }
  2483. const resolve = function(...arguments_) {
  2484. arguments_ = arguments_.map((argument) => normalizeWindowsPath(argument));
  2485. let resolvedPath = "";
  2486. let resolvedAbsolute = false;
  2487. for (let index = arguments_.length - 1; index >= -1 && !resolvedAbsolute; index--) {
  2488. const path = index >= 0 ? arguments_[index] : cwd();
  2489. if (!path || path.length === 0) continue;
  2490. resolvedPath = `${path}/${resolvedPath}`;
  2491. resolvedAbsolute = isAbsolute(path);
  2492. }
  2493. resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute);
  2494. if (resolvedAbsolute && !isAbsolute(resolvedPath)) return `/${resolvedPath}`;
  2495. return resolvedPath.length > 0 ? resolvedPath : ".";
  2496. };
  2497. function normalizeString(path, allowAboveRoot) {
  2498. let res = "";
  2499. let lastSegmentLength = 0;
  2500. let lastSlash = -1;
  2501. let dots = 0;
  2502. let char = null;
  2503. for (let index = 0; index <= path.length; ++index) {
  2504. if (index < path.length) char = path[index];
  2505. else if (char === "/") break;
  2506. else char = "/";
  2507. if (char === "/") {
  2508. if (lastSlash === index - 1 || dots === 1);
  2509. else if (dots === 2) {
  2510. if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") {
  2511. if (res.length > 2) {
  2512. const lastSlashIndex = res.lastIndexOf("/");
  2513. if (lastSlashIndex === -1) {
  2514. res = "";
  2515. lastSegmentLength = 0;
  2516. } else {
  2517. res = res.slice(0, lastSlashIndex);
  2518. lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
  2519. }
  2520. lastSlash = index;
  2521. dots = 0;
  2522. continue;
  2523. } else if (res.length > 0) {
  2524. res = "";
  2525. lastSegmentLength = 0;
  2526. lastSlash = index;
  2527. dots = 0;
  2528. continue;
  2529. }
  2530. }
  2531. if (allowAboveRoot) {
  2532. res += res.length > 0 ? "/.." : "..";
  2533. lastSegmentLength = 2;
  2534. }
  2535. } else {
  2536. if (res.length > 0) res += `/${path.slice(lastSlash + 1, index)}`;
  2537. else res = path.slice(lastSlash + 1, index);
  2538. lastSegmentLength = index - lastSlash - 1;
  2539. }
  2540. lastSlash = index;
  2541. dots = 0;
  2542. } else if (char === "." && dots !== -1) ++dots;
  2543. else dots = -1;
  2544. }
  2545. return res;
  2546. }
  2547. const isAbsolute = function(p$1) {
  2548. return _IS_ABSOLUTE_RE.test(p$1);
  2549. };
  2550. const relative = function(from, to) {
  2551. const _from = resolve(from).replace(_ROOT_FOLDER_RE, "$1").split("/");
  2552. const _to = resolve(to).replace(_ROOT_FOLDER_RE, "$1").split("/");
  2553. if (_to[0][1] === ":" && _from[0][1] === ":" && _from[0] !== _to[0]) return _to.join("/");
  2554. const _fromCopy = [..._from];
  2555. for (const segment of _fromCopy) {
  2556. if (_to[0] !== segment) break;
  2557. _from.shift();
  2558. _to.shift();
  2559. }
  2560. return [..._from.map(() => ".."), ..._to].join("/");
  2561. };
  2562. var ModuleId_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
  2563. __name: "ModuleId",
  2564. props: {
  2565. id: {},
  2566. badges: { type: Boolean },
  2567. icon: {
  2568. type: Boolean,
  2569. default: true
  2570. },
  2571. module: { type: Boolean }
  2572. },
  2573. setup(__props) {
  2574. const props = __props;
  2575. const payload = usePayloadStore();
  2576. const mod = computed(() => payload.modules.find((i$1) => i$1.id === props.id));
  2577. const isVirtual = computed(() => mod.value?.virtual);
  2578. const relativePath = computed(() => {
  2579. if (!props.id) return "";
  2580. let relate = relative(payload.root, props.id);
  2581. if (!relate.startsWith(".")) relate = `./${relate}`;
  2582. if (relate.startsWith("./")) return relate;
  2583. if (relate.match(/^(?:\.\.\/){1,3}[^.]/)) return relate;
  2584. return props.id;
  2585. });
  2586. const HighlightedPath = defineComponent({ render() {
  2587. const parts = relativePath.value.split(/([/?&:])/g);
  2588. let type = "start";
  2589. const classes = parts.map(() => []);
  2590. const nodes = parts.map((part) => {
  2591. return h("span", { class: "" }, part);
  2592. });
  2593. parts.forEach((part, index) => {
  2594. const _class = classes[index];
  2595. if (part === "?") type = "query";
  2596. if (type === "start") {
  2597. if (part.match(/^\.+$/)) _class.push("op50");
  2598. else if (part === "/") _class.push("op50");
  2599. else if (part !== "/") type = "path";
  2600. }
  2601. if (type === "path") {
  2602. if (part === "/" || part === "node_modules" || part.match(/^\.\w/)) _class.push("op75");
  2603. if (part === ".pnpm") {
  2604. classes[index + 2]?.push("op50");
  2605. if (nodes[index + 2]) nodes[index + 2].children = "…";
  2606. }
  2607. if (part === ":") {
  2608. if (nodes[index - 1]) {
  2609. nodes[index - 1].props ||= {};
  2610. nodes[index - 1].props.style ||= {};
  2611. nodes[index - 1].props.style.color = getPluginColor(parts[index - 1]);
  2612. }
  2613. _class.push("op50");
  2614. }
  2615. }
  2616. if (type === "query") if (part === "?" || part === "&") _class.push("text-orange-5 dark:text-orange-4");
  2617. else _class.push("text-orange-9 dark:text-orange-2");
  2618. });
  2619. nodes.forEach((node, index) => {
  2620. if (node.props) node.props.class = classes[index].join(" ");
  2621. });
  2622. return nodes;
  2623. } });
  2624. const gridStyles = computed(() => {
  2625. if (!props.module) return "";
  2626. const gridColumns = [];
  2627. if (props.icon) gridColumns.push("min-content");
  2628. if (props.module) gridColumns.push("minmax(0,1fr)");
  2629. else gridColumns.push("100%");
  2630. if (isVirtual.value) gridColumns.push("min-content");
  2631. return `grid-template-columns: ${gridColumns.join(" ")};`;
  2632. });
  2633. const containerClass = computed(() => {
  2634. return props.module ? "grid grid-rows-1 items-center gap-1" : "flex items-center";
  2635. });
  2636. return (_ctx, _cache) => {
  2637. const _component_FileIcon = FileIcon_default;
  2638. const _component_Badge = Badge_default;
  2639. return _ctx.id ? withDirectives((openBlock(), createElementBlock("div", {
  2640. key: 0,
  2641. "my-auto": "",
  2642. "text-sm": "",
  2643. "font-mono": "",
  2644. class: normalizeClass(containerClass.value),
  2645. style: normalizeStyle(gridStyles.value)
  2646. }, [
  2647. _ctx.icon ? (openBlock(), createBlock(_component_FileIcon, {
  2648. key: 0,
  2649. filename: _ctx.id,
  2650. "mr1.5": ""
  2651. }, null, 8, ["filename"])) : createCommentVNode("", true),
  2652. createBaseVNode("span", { class: normalizeClass({
  2653. "overflow-hidden": _ctx.module,
  2654. "text-truncate": _ctx.module
  2655. }) }, [createVNode(unref(HighlightedPath))], 2),
  2656. renderSlot(_ctx.$slots, "default"),
  2657. isVirtual.value ? (openBlock(), createBlock(_component_Badge, {
  2658. key: 1,
  2659. class: "ml1",
  2660. text: "virtual"
  2661. })) : createCommentVNode("", true)
  2662. ], 6)), [[
  2663. unref(Mt),
  2664. {
  2665. content: props.id,
  2666. triggers: ["hover", "focus"],
  2667. disabled: !_ctx.module
  2668. },
  2669. void 0,
  2670. { "bottom-start": true }
  2671. ]]) : createCommentVNode("", true);
  2672. };
  2673. }
  2674. });
  2675. var ModuleId_default = ModuleId_vue_vue_type_script_setup_true_lang_default;
  2676. const _hoisted_1 = {
  2677. key: 0,
  2678. class: "h-full"
  2679. };
  2680. const _hoisted_2 = {
  2681. key: 0,
  2682. "px-6": "",
  2683. "py-4": "",
  2684. italic: "",
  2685. op50: ""
  2686. };
  2687. const _hoisted_3 = { key: 0 };
  2688. const _hoisted_4 = { key: 1 };
  2689. const _hoisted_5 = {
  2690. key: 0,
  2691. flex: "~ gap-1",
  2692. "text-xs": ""
  2693. };
  2694. const _hoisted_6 = {
  2695. flex: "~ auto gap-1",
  2696. "of-hidden": ""
  2697. };
  2698. const _hoisted_7 = {
  2699. key: 0,
  2700. op20: ""
  2701. };
  2702. const _hoisted_8 = {
  2703. "ws-nowrap": "",
  2704. op50: ""
  2705. };
  2706. const _hoisted_9 = ["title"];
  2707. const _hoisted_10 = { flex: "~ none gap-1 wrap justify-end" };
  2708. var ModuleList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
  2709. __name: "ModuleList",
  2710. props: { modules: {} },
  2711. setup(__props) {
  2712. const props = __props;
  2713. const options = useOptionsStore();
  2714. const payload = usePayloadStore();
  2715. const route = useRoute();
  2716. const { list, containerProps, wrapperProps } = useVirtualList(toRef(props, "modules"), { itemHeight: options.view.listMode === "detailed" ? 53 : 37 });
  2717. return (_ctx, _cache) => {
  2718. const _component_ModuleId = ModuleId_default;
  2719. const _component_PluginName = PluginName_default;
  2720. const _component_ByteSizeDisplay = ByteSizeDisplay_default;
  2721. const _component_DurationDisplay = DurationDisplay_default;
  2722. const _component_RouterLink = resolveComponent("RouterLink");
  2723. return _ctx.modules ? (openBlock(), createElementBlock("div", _hoisted_1, [!_ctx.modules.length ? (openBlock(), createElementBlock("div", _hoisted_2, [unref(options).search.text ? (openBlock(), createElementBlock("div", _hoisted_3, " No search result ")) : (openBlock(), createElementBlock("div", _hoisted_4, [..._cache[0] || (_cache[0] = [
  2724. createTextVNode(" No module recorded yet, visit ", -1),
  2725. createBaseVNode("a", {
  2726. href: "/",
  2727. target: "_blank"
  2728. }, "your app", -1),
  2729. createTextVNode(" first and then refresh this page. ", -1)
  2730. ])]))])) : (openBlock(), createElementBlock("div", mergeProps({ key: 1 }, unref(containerProps), { class: "h-full" }), [createBaseVNode("div", normalizeProps(guardReactiveProps(unref(wrapperProps))), [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(list), (m$2) => {
  2731. return openBlock(), createBlock(_component_RouterLink, {
  2732. key: `${unref(payload).query.vite}-${unref(payload).query.env}-${m$2.data.id}`,
  2733. class: "block border-b border-main px-3 py-2 text-left text-sm font-mono hover:bg-active",
  2734. to: {
  2735. path: "/module",
  2736. query: {
  2737. ...unref(route).query,
  2738. id: m$2.data.id
  2739. }
  2740. }
  2741. }, {
  2742. default: withCtx(() => [createVNode(_component_ModuleId, {
  2743. id: m$2.data.id,
  2744. badges: "",
  2745. "ws-nowrap": ""
  2746. }, null, 8, ["id"]), unref(options).view.listMode === "detailed" ? (openBlock(), createElementBlock("div", _hoisted_5, [createBaseVNode("div", _hoisted_6, [(openBlock(true), createElementBlock(Fragment, null, renderList(m$2.data.plugins.slice(1).filter((plugin) => plugin.transform !== void 0), (i$1, idx) => {
  2747. return openBlock(), createElementBlock(Fragment, { key: i$1 }, [idx !== 0 ? (openBlock(), createElementBlock("span", _hoisted_7, "|")) : createCommentVNode("", true), createBaseVNode("span", _hoisted_8, [createVNode(_component_PluginName, {
  2748. name: i$1.name,
  2749. compact: true
  2750. }, null, 8, ["name"])])], 64);
  2751. }), 128)), m$2.data.invokeCount > 2 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_cache[1] || (_cache[1] = createBaseVNode("span", { op40: "" }, "·", -1)), createBaseVNode("span", {
  2752. "text-green": "",
  2753. title: `Transform invoked ${m$2.data.invokeCount} times`
  2754. }, "x" + toDisplayString(m$2.data.invokeCount), 9, _hoisted_9)], 64)) : createCommentVNode("", true)]), createBaseVNode("div", _hoisted_10, [m$2.data.sourceSize && m$2.data.distSize ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
  2755. createVNode(_component_ByteSizeDisplay, {
  2756. op75: "",
  2757. bytes: m$2.data.sourceSize
  2758. }, null, 8, ["bytes"]),
  2759. _cache[2] || (_cache[2] = createBaseVNode("span", {
  2760. "i-carbon-arrow-right": "",
  2761. op50: ""
  2762. }, null, -1)),
  2763. createVNode(_component_ByteSizeDisplay, {
  2764. class: normalizeClass(m$2.data.distSize > m$2.data.sourceSize ? "status-yellow" : "status-green"),
  2765. bytes: m$2.data.distSize
  2766. }, null, 8, ["class", "bytes"]),
  2767. _cache[3] || (_cache[3] = createBaseVNode("span", { op40: "" }, "|", -1))
  2768. ], 64)) : createCommentVNode("", true), createBaseVNode("span", null, [createVNode(_component_DurationDisplay, { duration: m$2.data.totalTime }, null, 8, ["duration"])])])])) : createCommentVNode("", true)]),
  2769. _: 2
  2770. }, 1032, ["to"]);
  2771. }), 128))], 16)], 16))])) : createCommentVNode("", true);
  2772. };
  2773. }
  2774. });
  2775. var ModuleList_default = ModuleList_vue_vue_type_script_setup_true_lang_default;
  2776. export { ModuleId_default, ModuleList_default, kt };