{"version":3,"file":"light.umd.cjs","names":["computePosition","flip","offset","shift","getComputedStyle","unwrapElement"],"sources":["../src/icons/CloseOutlined.vue","../src/icons/DownOutlined.vue","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/@floating-ui/vue/node_modules/vue-demi/lib/index.mjs","../../node_modules/@floating-ui/vue/dist/floating-ui.vue.mjs","../../core/dist/core.js","../src/components/select.vue","../src/components/select.vue","../src/components/cron-light.vue","../src/components/cron-light.vue","../src/index.ts"],"sourcesContent":["<template>\n  <!-- https://icon-sets.iconify.design/ant-design/page-2.html?icon-filter=close-outlined&keyword=ant -->\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n    <path\n      fill=\"currentColor\"\n      fill-rule=\"evenodd\"\n      d=\"M799.855 166.312c.023.007.043.018.084.059l57.69 57.69c.041.041.052.06.059.084a.1.1 0 0 1 0 .069c-.007.023-.018.042-.059.083L569.926 512l287.703 287.703c.041.04.052.06.059.083a.12.12 0 0 1 0 .07c-.007.022-.018.042-.059.083l-57.69 57.69c-.041.041-.06.052-.084.059a.1.1 0 0 1-.069 0c-.023-.007-.042-.018-.083-.059L512 569.926L224.297 857.629c-.04.041-.06.052-.083.059a.12.12 0 0 1-.07 0c-.022-.007-.042-.018-.083-.059l-57.69-57.69c-.041-.041-.052-.06-.059-.084a.1.1 0 0 1 0-.069c.007-.023.018-.042.059-.083L454.073 512L166.371 224.297c-.041-.04-.052-.06-.059-.083a.12.12 0 0 1 0-.07c.007-.022.018-.042.059-.083l57.69-57.69c.041-.041.06-.052.084-.059a.1.1 0 0 1 .069 0c.023.007.042.018.083.059L512 454.073l287.703-287.702c.04-.041.06-.052.083-.059a.12.12 0 0 1 .07 0Z\"\n    />\n  </svg>\n</template>\n","<template>\n  <!-- https://icon-sets.iconify.design/ant-design/page-2.html?icon-filter=down-outlined&keyword=ant -->\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n    <path\n      fill=\"currentColor\"\n      d=\"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2L227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7\"\n    />\n  </svg>\n</template>\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n  const firstChar = placement[0];\n  return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rlPlacement : lrPlacement;\n      return isStart ? lrPlacement : rlPlacement;\n    case 'left':\n    case 'right':\n      return isStart ? tbPlacement : btPlacement;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  const side = getSide(placement);\n  return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n  var _padding$top, _padding$right, _padding$bottom, _padding$left;\n  return {\n    top: (_padding$top = padding.top) != null ? _padding$top : 0,\n    right: (_padding$right = padding.right) != null ? _padding$right : 0,\n    bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,\n    left: (_padding$left = padding.left) != null ? _padding$left : 0\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === 'y';\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case 'top':\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case 'bottom':\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case 'right':\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case 'left':\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  const alignment = getAlignment(placement);\n  if (alignment) {\n    coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);\n  }\n  return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = 'clippingAncestors',\n    rootBoundary = 'viewport',\n    elementContext = 'floating',\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n    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))),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === 'floating' ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) && (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform\n  } = config;\n  const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n    ...platform,\n    detectOverflow\n  };\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let resetCount = 0;\n  const middlewareData = {};\n  for (let i = 0; i < middleware.length; i++) {\n    const currentMiddleware = middleware[i];\n    if (!currentMiddleware) {\n      continue;\n    }\n    const {\n      name,\n      fn\n    } = currentMiddleware;\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform: platformWithDetectOverflow,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData[name] = {\n      ...middlewareData[name],\n      ...data\n    };\n    if (reset && resetCount < MAX_RESET_COUNT) {\n      resetCount++;\n      if (typeof reset === 'object') {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n  name: 'arrow',\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform,\n      elements,\n      middlewareData\n    } = state;\n    // Since `element` is required, we don't Partial<> the type.\n    const {\n      element,\n      padding = 0\n    } = evaluate(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = getPaddingObject(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = getAlignmentAxis(placement);\n    const length = getAxisLength(axis);\n    const arrowDimensions = await platform.getDimensions(element);\n    const isYAxis = axis === 'y';\n    const minProp = isYAxis ? 'top' : 'left';\n    const maxProp = isYAxis ? 'bottom' : 'right';\n    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n    // DOM platform can return `window` as the `offsetParent`.\n    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n\n    // If the padding is large enough that it causes the arrow to no longer be\n    // centered, modify the padding so that it is centered.\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n    // Make sure the arrow doesn't overflow the floating element if the center\n    // point is outside the floating element's bounds.\n    const max = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset = clamp(minPadding, center, max);\n\n    // If the reference is small enough that the arrow's padding causes it to\n    // to point to nothing for an aligned placement, adjust the offset of the\n    // floating element itself. To ensure `shift()` continues to take action,\n    // a single reset is performed when this is true.\n    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset - alignmentOffset,\n        ...(shouldAddOffset && {\n          alignmentOffset\n        })\n      },\n      reset: shouldAddOffset\n    };\n  }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter(placement => {\n    if (alignment) {\n      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n    }\n    return true;\n  });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n\n      // Make `computeCoords` start from the right place.\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n\n      // There are more placements to check.\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map(d => {\n        const alignment = getAlignment(d.placement);\n        return [d.placement, alignment && crossAxis ?\n        // Check along the mainAxis and main crossAxis side.\n        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n        // Check only the mainAxis.\n        d.overflows[0], d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n      // Aligned placements should not check their opposite crossAxis\n      // side.\n      getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = 'bestFit',\n        fallbackAxisSideDirection = 'none',\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n\n      // If a reset by the arrow was caused due to an alignment offset being\n      // added, we should skip any logic now since `flip()` has already done its\n      // work.\n      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = getSide(placement);\n      const initialSideAxis = getSideAxis(initialPlacement);\n      const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements = [initialPlacement, ...fallbackPlacements];\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides = getAlignmentSides(placement, rects, rtl);\n        overflows.push(overflow[sides[0]], overflow[sides[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n\n      // One or more sides is overflowing.\n      if (!overflows.every(side => side <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements[nextIndex];\n        if (nextPlacement) {\n          const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n          if (!ignoreCrossAxisOverflow ||\n          // We leave the current main axis only if every placement on that axis\n          // overflows the main axis.\n          overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n            // Try next placement and re-run the lifecycle.\n            return {\n              data: {\n                index: nextIndex,\n                overflows: overflowsData\n              },\n              reset: {\n                placement: nextPlacement\n              }\n            };\n          }\n        }\n\n        // First, find the candidates that fit on the mainAxis side of overflow,\n        // then find the placement that fits the best on the main crossAxis side.\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n        // Otherwise fallback.\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case 'bestFit':\n              {\n                var _overflowsData$filter2;\n                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n                  if (hasFallbackAxisSideDirection) {\n                    const currentSideAxis = getSideAxis(d.placement);\n                    return currentSideAxis === initialSideAxis ||\n                    // Create a bias to the `y` side axis due to horizontal\n                    // reading directions favoring greater width.\n                    currentSideAxis === 'y';\n                  }\n                  return true;\n                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n                if (placement) {\n                  resetPlacement = placement;\n                }\n                break;\n              }\n            case 'initialPlacement':\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n};\n\nfunction getSideOffsets(overflow, rect) {\n  return {\n    top: overflow.top - rect.height,\n    right: overflow.right - rect.width,\n    bottom: overflow.bottom - rect.height,\n    left: overflow.left - rect.width\n  };\n}\nfunction isAnySideFullyClipped(overflow) {\n  return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options,\n    async fn(state) {\n      const {\n        rects,\n        platform\n      } = state;\n      const {\n        strategy = 'referenceHidden',\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      switch (strategy) {\n        case 'referenceHidden':\n          {\n            const overflow = await platform.detectOverflow(state, {\n              ...detectOverflowOptions,\n              elementContext: 'reference'\n            });\n            const offsets = getSideOffsets(overflow, rects.reference);\n            return {\n              data: {\n                referenceHiddenOffsets: offsets,\n                referenceHidden: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        case 'escaped':\n          {\n            const overflow = await platform.detectOverflow(state, {\n              ...detectOverflowOptions,\n              altBoundary: true\n            });\n            const offsets = getSideOffsets(overflow, rects.floating);\n            return {\n              data: {\n                escapedOffsets: offsets,\n                escaped: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        default:\n          {\n            return {};\n          }\n      }\n    }\n  };\n};\n\nfunction getBoundingRect(rects) {\n  const minX = min(...rects.map(rect => rect.left));\n  const minY = min(...rects.map(rect => rect.top));\n  const maxX = max(...rects.map(rect => rect.right));\n  const maxY = max(...rects.map(rect => rect.bottom));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n  const groups = [];\n  let prevRect = null;\n  for (let i = 0; i < sortedRects.length; i++) {\n    const rect = sortedRects[i];\n    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n      groups.push([rect]);\n    } else {\n      groups[groups.length - 1].push(rect);\n    }\n    prevRect = rect;\n  }\n  return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        elements,\n        rects,\n        platform,\n        strategy\n      } = state;\n      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n      // ClientRect's bounds, despite the event listener being triggered. A\n      // padding of 2 seems to handle this issue.\n      const {\n        padding = 2,\n        x,\n        y\n      } = evaluate(options, state);\n      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n\n      // No rects (e.g. a hidden or detached reference, or a collapsed range) —\n      // keep the existing reference rect rather than resetting to an invalid\n      // one with non-finite values.\n      if (!nativeClientRects.length) {\n        return {};\n      }\n      const clientRects = getRectsByLine(nativeClientRects);\n      const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n      const paddingObject = getPaddingObject(padding);\n      function getBoundingClientRect() {\n        // There are two rects and they are disjoined.\n        if (clientRects.length === 2 && (clientRects[0].left > clientRects[1].right || clientRects[1].left > clientRects[0].right) && x != null && y != null) {\n          // Find the first rect in which the point is fully inside.\n          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n        }\n\n        // There are 2 or more connected rects.\n        if (clientRects.length >= 2) {\n          if (getSideAxis(placement) === 'y') {\n            const firstRect = clientRects[0];\n            const lastRect = clientRects[clientRects.length - 1];\n            const isTop = getSide(placement) === 'top';\n            const top = firstRect.top;\n            const bottom = lastRect.bottom;\n            const left = isTop ? firstRect.left : lastRect.left;\n            const right = isTop ? firstRect.right : lastRect.right;\n            return rectToClientRect({\n              x: left,\n              y: top,\n              width: right - left,\n              height: bottom - top\n            });\n          }\n          const isLeftSide = getSide(placement) === 'left';\n          const maxRight = max(...clientRects.map(rect => rect.right));\n          const minLeft = min(...clientRects.map(rect => rect.left));\n          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n          const top = measureRects[0].top;\n          const bottom = measureRects[measureRects.length - 1].bottom;\n          return rectToClientRect({\n            x: minLeft,\n            y: top,\n            width: maxRight - minLeft,\n            height: bottom - top\n          });\n        }\n        return fallback;\n      }\n      const resetRects = await platform.getElementRects({\n        reference: {\n          getBoundingClientRect\n        },\n        floating: elements.floating,\n        strategy\n      });\n      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n        return {\n          reset: {\n            rects: resetRects\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === 'y';\n  const mainAxisMulti = originSides.has(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n\n  // eslint-disable-next-line prefer-const\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === 'number' ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\n  };\n  if (alignment && typeof alignmentAxis === 'number') {\n    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        platform\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: _ref => {\n            let {\n              x,\n              y\n            } = _ref;\n            return {\n              x,\n              y\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);\n      if (checkMainAxis) {\n        mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);\n      }\n      if (checkCrossAxis) {\n        crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y,\n          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\n        }\n      };\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options,\n    fn(state) {\n      var _rawOffset$mainAxis, _rawOffset$crossAxis;\n      const {\n        x,\n        y,\n        placement,\n        rects,\n        middlewareData\n      } = state;\n      const {\n        offset = 0,\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const rawOffset = evaluate(offset, state);\n      const computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : {\n        mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,\n        crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0\n      };\n      if (checkMainAxis) {\n        const len = mainAxis === 'y' ? 'height' : 'width';\n        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n        if (mainAxisCoord < limitMin) {\n          mainAxisCoord = limitMin;\n        } else if (mainAxisCoord > limitMax) {\n          mainAxisCoord = limitMax;\n        }\n      }\n      if (checkCrossAxis) {\n        var _middlewareData$offse, _middlewareData$offse2;\n        const len = mainAxis === 'y' ? 'width' : 'height';\n        const isOriginSide = originSides.has(getSide(placement));\n        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n        if (crossAxisCoord < limitMin) {\n          crossAxisCoord = limitMin;\n        } else if (crossAxisCoord > limitMax) {\n          crossAxisCoord = limitMax;\n        }\n      }\n      return {\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      };\n    }\n  };\n};\n\n// Method syntax keeps callback parameters bivariant, but expressing the\n// explicit `| undefined` required by `exactOptionalPropertyTypes` needs\n// property syntax, which is contravariant under `strictFunctionTypes`.\n// Extracting the function from a method position restores that bivariance so\n// consumers can still assign callbacks with narrower parameter types.\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        rects,\n        platform,\n        elements\n      } = state;\n      const {\n        apply = () => {},\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const side = getSide(placement);\n      const alignment = getAlignment(placement);\n      const isYAxis = getSideAxis(placement) === 'y';\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === 'top' || side === 'bottom') {\n        heightSide = side;\n        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n      } else {\n        widthSide = side;\n        heightSide = alignment === 'end' ? 'top' : 'bottom';\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n      const shiftData = state.middlewareData.shift;\n      const noShift = !shiftData;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if (shiftData != null && shiftData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if (shiftData != null && shiftData.enabled.y) {\n        availableHeight = maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        if (isYAxis) {\n          availableWidth = width - 2 * max(overflow.left, overflow.right);\n        } else {\n          availableHeight = height - 2 * max(overflow.top, overflow.bottom);\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n  return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || '').toLowerCase();\n  }\n  // Mocked nodes in testing environments may not be instances of Node. By\n  // returning `#document` an infinite loop won't occur.\n  // https://github.com/floating-ui/floating-ui/issues/2317\n  return '#document';\n}\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n  if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n  return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n  try {\n    if (element.matches(':popover-open')) {\n      return true;\n    }\n  } catch (_e) {\n    // no-op\n  }\n  try {\n    return element.matches(':modal');\n  } catch (_e) {\n    return false;\n  }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n  const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n  return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else if (isTopLayer(currentNode)) {\n      return null;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  return null;\n}\nfunction isWebKit() {\n  if (isWebKitValue == null) {\n    isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n  }\n  return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n  return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.scrollX,\n    scrollTop: element.scrollY\n  };\n}\nfunction getParentNode(node) {\n  if (getNodeName(node) === 'html') {\n    return node;\n  }\n  const result =\n  // Step into the shadow DOM of the parent of a slotted node.\n  node.assignedSlot ||\n  // DOM Element detected.\n  node.parentNode ||\n  // ShadowRoot detected.\n  isShadowRoot(node) && node.host ||\n  // Fallback.\n  getDocumentElement(node);\n  return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return (node.ownerDocument || node).body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    const frameElement = getFrameElement(win);\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n  } else {\n    return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n  }\n}\nfunction getFrameElement(win) {\n  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n  const css = getComputedStyle$1(element);\n  // In testing environments, the `width` and `height` properties are empty\n  // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\n\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n\n  // 0, NaN, or Infinity should always fallback to 1.\n\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n  const win = getWindow(element);\n  if (!isWebKit() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement && offsetParent) {\n    const win = getWindow(domElement);\n    const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = getFrameElement(currentWin);\n    while (currentIFrame && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle$1(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = getWindow(currentIFrame);\n      currentIFrame = getFrameElement(currentWin);\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n  const leftScroll = getNodeScroll(element).scrollLeft;\n  if (!rect) {\n    return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n  }\n  return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n  const htmlRect = documentElement.getBoundingClientRect();\n  const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n  const y = htmlRect.top + scroll.scrollTop;\n  return {\n    x,\n    y\n  };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === 'fixed';\n  const documentElement = getDocumentElement(offsetParent);\n  const topLayer = elements ? isTopLayer(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createCoords(1);\n  const offsets = createCoords(0);\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  if (isOffsetParentAnElement || !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n  };\n}\n\nfunction getClientRects(element) {\n  return element.getClientRects ? Array.from(element.getClientRects()) : [];\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(html) {\n  const scroll = getNodeScroll(html);\n  const body = html.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(html);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle$1(body).direction === 'rtl') {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy, rootBoundary) {\n  if (rootBoundary === void 0) {\n    rootBoundary = 'viewport';\n  }\n  const isLayoutViewport = rootBoundary === 'layoutViewport';\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    // Client coordinates are relative to the layout viewport, except in\n    // WebKit with an `absolute` strategy, where they are relative to the\n    // visual viewport.\n    const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';\n    if (isLayoutViewport) {\n      if (!layoutRelativeClientCoords) {\n        x = -visualViewport.offsetLeft;\n        y = -visualViewport.offsetTop;\n      }\n    } else {\n      width = visualViewport.width;\n      height = visualViewport.height;\n      if (layoutRelativeClientCoords) {\n        x = visualViewport.offsetLeft;\n        y = visualViewport.offsetTop;\n      }\n    }\n  }\n  const windowScrollbarX = getWindowScrollBarX(html);\n  // `scrollbar-gutter: stable` on the <html> reserves gutter space that shrinks\n  // the visual width but isn't reflected in `html.clientWidth`, so subtract it.\n  // Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also\n  // reserves an empty inline-start gutter that clips nothing, so exclude just\n  // the one scrollbar-side gutter — halve the measured (two-gutter) total. A\n  // left-side scrollbar (`windowScrollbarX > 0`) is already handled by\n  // `getHTMLOffset`/`visualViewport.width`; skip it here.\n  if (windowScrollbarX <= 0) {\n    const doc = html.ownerDocument;\n    const body = doc.body;\n    const bodyStyles = getComputedStyle(body);\n    const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n    const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n    const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;\n    if (gutter <= SCROLLBAR_MAX) {\n      width -= gutter;\n    }\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = getScale(element);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {\n    rect = getViewportRect(element, strategy, clippingAncestor);\n  } else if (clippingAncestor === 'document') {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y,\n      width: clippingAncestor.width,\n      height: clippingAncestor.height\n    };\n  }\n  return rectToClientRect(rect);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n  let lastKeptComputedStyle = null;\n  const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle$1(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    // Position of the containing block chain below the current node. A fixed\n    // element whose containing block hasn't been found yet is a fixed chain.\n    const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';\n\n    // A non-containing ancestor does not clip the element when the chain\n    // below it escapes it: a fixed chain escapes all ancestors up to the\n    // next containing block, an absolute chain escapes static ancestors.\n    const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');\n    if (shouldDropCurrentNode) {\n      // Drop non-containing blocks.\n      result = result.filter(ancestor => ancestor !== currentNode);\n    } else {\n      // The kept node carries the chain position for the next iteration.\n      lastKeptComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n  let top = firstRect.top;\n  let right = firstRect.right;\n  let bottom = firstRect.bottom;\n  let left = firstRect.left;\n  for (let i = 1; i < clippingAncestors.length; i++) {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n    top = max(rect.top, top);\n    right = min(rect.right, right);\n    bottom = min(rect.bottom, bottom);\n    left = max(rect.left, left);\n  }\n  return {\n    width: right - left,\n    height: bottom - top,\n    x: left,\n    y: top\n  };\n}\n\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === 'fixed';\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createCoords(0);\n  if (isOffsetParentAnElement || !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n\n  // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n  // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n  if (!isOffsetParentAnElement && documentElement) {\n    offsets.x = getWindowScrollBarX(documentElement);\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\n\nfunction isStaticPositioned(element) {\n  return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  let rawOffsetParent = element.offsetParent;\n\n  // Firefox returns the <html> element as the offsetParent if it's non-static,\n  // while Chrome and Safari return the <body> element. The <body> element must\n  // be used to perform the correct calculations even if the <html> element is\n  // non-static.\n  if (getDocumentElement(element) === rawOffsetParent) {\n    rawOffsetParent = rawOffsetParent.ownerDocument.body;\n  }\n  return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n  const win = getWindow(element);\n  if (isTopLayer(element)) {\n    return win;\n  }\n  if (!isHTMLElement(element)) {\n    let svgOffsetParent = getParentNode(element);\n    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n        return svgOffsetParent;\n      }\n      svgOffsetParent = getParentNode(svgOffsetParent);\n    }\n    return win;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n    return win;\n  }\n  return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  const floatingDimensions = await getDimensionsFn(data.floating);\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      width: floatingDimensions.width,\n      height: floatingDimensions.height\n    }\n  };\n};\n\nfunction isRTL(element) {\n  return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement,\n  isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove, ancestorResize) {\n  let io = null;\n  let timeoutId;\n  const root = getDocumentElement(element);\n  function cleanup() {\n    var _io;\n    clearTimeout(timeoutId);\n    (_io = io) == null || _io.disconnect();\n    io = null;\n  }\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup();\n    const elementRectForRootMargin = element.getBoundingClientRect();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = elementRectForRootMargin;\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = floor(top);\n    const insetRight = floor(root.clientWidth - (left + width));\n    const insetBottom = floor(root.clientHeight - (top + height));\n    const insetLeft = floor(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: max(0, min(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n\n      // The entry is a snapshot, so the reference may have moved since the\n      // intersection was computed (under performance constraints, or between\n      // consecutive frames of a multi-frame layout shift). The reported ratio\n      // and the observed area are stale in that case and cannot be trusted to\n      // detect subsequent movement, so refresh regardless of the ratio.\n      if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n        return refresh();\n      }\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          // If the reference is clipped in place, the ratio is 0. Throttle\n          // the refresh to prevent an infinite loop of updates.\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 1000);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      isFirstUpdate = false;\n    }\n\n    // Older browsers don't support a `document` as the root and will throw an\n    // error.\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (_e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  const win = getWindow(element);\n  // The window is a resize ancestor, so when `ancestorResize` is enabled its\n  // listener already runs the update on resize. Here we only need to rebuild\n  // the `IntersectionObserver` for the new root size, skipping a redundant\n  // update. When `ancestorResize` is disabled, this becomes the sole update.\n  const handleResize = () => refresh(ancestorResize);\n  win.addEventListener('resize', handleResize);\n  refresh(true);\n  return () => {\n    win.removeEventListener('resize', handleResize);\n    cleanup();\n  };\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update);\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update, ancestorResize) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    if (floating) {\n      resizeObserver.observe(floating);\n    }\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = options != null ? options : {};\n  const platformWithCache = {\n    ...platform,\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n  if (Array.isArray(target)) {\n    target.length = Math.max(target.length, key)\n    target.splice(key, 1, val)\n    return val\n  }\n  target[key] = val\n  return val\n}\n\nexport function del(target, key) {\n  if (Array.isArray(target)) {\n    target.splice(key, 1)\n    return\n  }\n  delete target[key]\n}\n\nexport * from 'vue'\nexport {\n  Vue,\n  Vue2,\n  isVue2,\n  isVue3,\n  install,\n}\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport { isNode, getNodeName } from '@floating-ui/utils/dom';\nimport { unref, computed, ref, shallowRef, watch, getCurrentScope, onScopeDispose, shallowReadonly } from 'vue-demi';\n\nfunction isComponentPublicInstance(target) {\n  return target != null && typeof target === 'object' && '$el' in target;\n}\nfunction unwrapElement(target) {\n  if (isComponentPublicInstance(target)) {\n    const element = target.$el;\n    return isNode(element) && getNodeName(element) === '#comment' ? null : element;\n  }\n  return target;\n}\n\nfunction toValue(source) {\n  return typeof source === 'function' ? source() : unref(source);\n}\n\n/**\n * Positions an inner element of the floating element such that it is centered to the reference element.\n * @param options The arrow options.\n * @see https://floating-ui.com/docs/arrow\n */\nfunction arrow(options) {\n  return {\n    name: 'arrow',\n    options,\n    fn(args) {\n      const element = unwrapElement(toValue(options.element));\n      if (element == null) {\n        return {};\n      }\n      return arrow$1({\n        element,\n        padding: options.padding\n      }).fn(args);\n    }\n  };\n}\n\nfunction getDPR(element) {\n  if (typeof window === 'undefined') {\n    return 1;\n  }\n  const win = element.ownerDocument.defaultView || window;\n  return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n  const dpr = getDPR(element);\n  return Math.round(value * dpr) / dpr;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element next to a reference element when it is given a certain CSS positioning strategy.\n * @param reference The reference template ref.\n * @param floating The floating template ref.\n * @param options The floating options.\n * @see https://floating-ui.com/docs/vue\n */\nfunction useFloating(reference, floating, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const whileElementsMountedOption = options.whileElementsMounted;\n  const openOption = computed(() => {\n    var _toValue;\n    return (_toValue = toValue(options.open)) != null ? _toValue : true;\n  });\n  const middlewareOption = computed(() => toValue(options.middleware));\n  const placementOption = computed(() => {\n    var _toValue2;\n    return (_toValue2 = toValue(options.placement)) != null ? _toValue2 : 'bottom';\n  });\n  const strategyOption = computed(() => {\n    var _toValue3;\n    return (_toValue3 = toValue(options.strategy)) != null ? _toValue3 : 'absolute';\n  });\n  const transformOption = computed(() => {\n    var _toValue4;\n    return (_toValue4 = toValue(options.transform)) != null ? _toValue4 : true;\n  });\n  const referenceElement = computed(() => unwrapElement(reference.value));\n  const floatingElement = computed(() => unwrapElement(floating.value));\n  const x = ref(0);\n  const y = ref(0);\n  const strategy = ref(strategyOption.value);\n  const placement = ref(placementOption.value);\n  const middlewareData = shallowRef({});\n  const isPositioned = ref(false);\n  const floatingStyles = computed(() => {\n    const initialStyles = {\n      position: strategy.value,\n      left: '0',\n      top: '0'\n    };\n    if (!floatingElement.value) {\n      return initialStyles;\n    }\n    const xVal = roundByDPR(floatingElement.value, x.value);\n    const yVal = roundByDPR(floatingElement.value, y.value);\n    if (transformOption.value) {\n      return {\n        ...initialStyles,\n        transform: \"translate(\" + xVal + \"px, \" + yVal + \"px)\",\n        ...(getDPR(floatingElement.value) >= 1.5 && {\n          willChange: 'transform'\n        })\n      };\n    }\n    return {\n      position: strategy.value,\n      left: xVal + \"px\",\n      top: yVal + \"px\"\n    };\n  });\n  let whileElementsMountedCleanup;\n  function update() {\n    if (referenceElement.value == null || floatingElement.value == null) {\n      return;\n    }\n    const open = openOption.value;\n    computePosition(referenceElement.value, floatingElement.value, {\n      middleware: middlewareOption.value,\n      placement: placementOption.value,\n      strategy: strategyOption.value\n    }).then(position => {\n      x.value = position.x;\n      y.value = position.y;\n      strategy.value = position.strategy;\n      placement.value = position.placement;\n      middlewareData.value = position.middlewareData;\n      /**\n       * The floating element's position may be recomputed while it's closed\n       * but still mounted (such as when transitioning out). To ensure\n       * `isPositioned` will be `false` initially on the next open, avoid\n       * setting it to `true` when `open === false` (must be specified).\n       */\n      isPositioned.value = open !== false;\n    });\n  }\n  function cleanup() {\n    if (typeof whileElementsMountedCleanup === 'function') {\n      whileElementsMountedCleanup();\n      whileElementsMountedCleanup = undefined;\n    }\n  }\n  function attach() {\n    cleanup();\n    if (whileElementsMountedOption === undefined) {\n      update();\n      return;\n    }\n    if (referenceElement.value != null && floatingElement.value != null) {\n      whileElementsMountedCleanup = whileElementsMountedOption(referenceElement.value, floatingElement.value, update);\n      return;\n    }\n  }\n  function reset() {\n    if (!openOption.value) {\n      isPositioned.value = false;\n    }\n  }\n  watch([middlewareOption, placementOption, strategyOption, openOption], update, {\n    flush: 'sync'\n  });\n  watch([referenceElement, floatingElement], attach, {\n    flush: 'sync'\n  });\n  watch(openOption, reset, {\n    flush: 'sync'\n  });\n  if (getCurrentScope()) {\n    onScopeDispose(cleanup);\n  }\n  return {\n    x: shallowReadonly(x),\n    y: shallowReadonly(y),\n    strategy: shallowReadonly(strategy),\n    placement: shallowReadonly(placement),\n    middlewareData: shallowReadonly(middlewareData),\n    isPositioned: shallowReadonly(isPositioned),\n    floatingStyles,\n    update\n  };\n}\n\nexport { arrow, useFloating };\n","import { computed as e, defineComponent as t, ref as n, watch as r } from \"vue\";\n//#region src/types.ts\nvar i = /* @__PURE__ */ function(e) {\n\treturn e.Any = \"any\", e.Value = \"value\", e.Range = \"range\", e.Step = \"step\", e.StepFrom = \"stepFrom\", e.RangeStep = \"rangeStep\", e.Combined = \"combined\", e.NoSpecific = \"noSpecific\", e;\n}({}), a = /* @__PURE__ */ function(e) {\n\treturn e.Prefix = \"prefix\", e.Suffix = \"suffix\", e.Text = \"text\", e;\n}({}), o = class {\n\tfield;\n\titemMap;\n\tctx;\n\tconstructor(e, t) {\n\t\tthis.field = e, this.ctx = t, this.itemMap = this.field.items.reduce((e, t) => (e[t.value] = t, e), {});\n\t}\n\tget id() {\n\t\treturn this.field.id;\n\t}\n\tget items() {\n\t\treturn this.field.items;\n\t}\n\tget onChange() {\n\t\treturn this.field.onChange;\n\t}\n\tget segmentFactories() {\n\t\treturn this.field.segmentFactories;\n\t}\n\tget min() {\n\t\treturn this.items[0].value;\n\t}\n\tget max() {\n\t\treturn this.items[this.items.length - 1].value;\n\t}\n\tgetItem(e) {\n\t\treturn this.itemMap[e];\n\t}\n};\n//#endregion\n//#region src/util.ts\nfunction s(e, t, n = 1) {\n\tlet r = [];\n\tfor (let i = e; i <= t; i += n) r.push(i);\n\treturn r;\n}\nvar c = class {\n\tstart;\n\tend;\n\tstep;\n\tconstructor(e, t, n = 1) {\n\t\treturn this.start = e, this.end = t, this.step = n, new Proxy(this, { get: function(e, t) {\n\t\t\tlet n = typeof t == \"string\" ? parseInt(t) : t;\n\t\t\treturn typeof n == \"number\" && n >= 0 && n <= e.length ? e.start + e.step * n : Reflect.get(e, t);\n\t\t} });\n\t}\n\tget length() {\n\t\treturn (this.end - this.start) / this.step + 1;\n\t}\n\t[Symbol.iterator]() {\n\t\tlet e = -1;\n\t\treturn { next: () => ({\n\t\t\tvalue: this[++e],\n\t\t\tdone: this[e + 1] === void 0\n\t\t}) };\n\t}\n};\nfunction l(e, t, n = (e) => e + \"\", r = (e) => e + \"\") {\n\tlet i = [];\n\tfor (let a of new c(e, t)) i.push({\n\t\ttext: n(a),\n\t\talt: r(a),\n\t\tvalue: a\n\t});\n\treturn i;\n}\nfunction u(e, t = \"crontab\") {\n\tlet n = (t, n = !1) => new Date(2021, t - 1, 1).toLocaleDateString(e, { month: n ? \"short\" : \"long\" }), r = (t, n = !1) => new Date(2021, 0, 3 + t).toLocaleDateString(e, { weekday: n ? \"short\" : \"long\" });\n\treturn {\n\t\tsecondItems: l(0, 59, (e) => d(e, 2)),\n\t\tminuteItems: l(0, 59, (e) => d(e, 2)),\n\t\thourItems: l(0, 23, (e) => d(e, 2)),\n\t\tdayItems: l(1, 31),\n\t\tmonthItems: l(1, 12, n, (e) => n(e, !0)),\n\t\tdayOfWeekItems: t === \"quartz\" ? l(1, 7, (e) => r(e - 1), (e) => r(e - 1, !0)) : l(0, 6, r, (e) => r(e, !0))\n\t};\n}\nfunction d(e, t) {\n\tlet n = e + \"\";\n\treturn n.length < t ? Array(t - n.length).fill(\"0\").join(\"\") + e : n;\n}\nfunction f(e) {\n\treturn e && typeof e == \"object\" && !Array.isArray(e);\n}\nfunction p(e, ...t) {\n\tif (!f(e) || t.length === 0) return;\n\tlet n = t.shift();\n\tif (f(n)) for (let [t, r] of Object.entries(n)) f(r) ? (f(e[t]) || (e[t] = {}), p(e[t], n[t])) : e[t] = n[t];\n\treturn t.length > 0 && p(e, ...t), e;\n}\nfunction m(e, ...t) {\n\tif (t.length === 0) return e;\n\tfor (let n of t[0]) if (n in e) {\n\t\tlet r = m(e[n], ...t.slice(1));\n\t\tif (r !== void 0) return r;\n\t}\n}\nfunction h(e) {\n\tfor (let t = 1; t < e.length; t++) if (e[t - 1] + 1 !== e[t]) return !1;\n\treturn !0;\n}\nfunction g() {\n\tthrow Error(\"not implemented\");\n}\nfunction _(e, t, n = !0) {\n\tlet r = [];\n\tfor (let i = 0; i < e.length; i += t) {\n\t\tlet a = e.slice(i, i + t);\n\t\tfor (; n && a.length < t;) a.push(null);\n\t\tr.push(a);\n\t}\n\treturn r;\n}\n//#endregion\n//#region src/cron.ts\nvar v = class e {\n\tfield;\n\ttype = i.NoSpecific;\n\tconstructor(e) {\n\t\tthis.field = e;\n\t}\n\ttoCron() {\n\t\treturn \"?\";\n\t}\n\ttoArray() {\n\t\treturn [];\n\t}\n\tget items() {\n\t\treturn {};\n\t}\n\tstatic fromString(t, n) {\n\t\treturn t === \"?\" ? new e(n) : null;\n\t}\n}, y = class e {\n\tfield;\n\ttype = i.Any;\n\tconstructor(e) {\n\t\tthis.field = e;\n\t}\n\ttoCron() {\n\t\treturn \"*\";\n\t}\n\ttoArray() {\n\t\treturn [];\n\t}\n\tget items() {\n\t\treturn {};\n\t}\n\tstatic fromString(t, n) {\n\t\treturn t === \"*\" ? new e(n) : null;\n\t}\n\tstatic fromArray(t, n) {\n\t\tlet { items: r } = n;\n\t\tif (t.length === 0) return new e(n);\n\t\tif (t.length !== r.length) return null;\n\t\tfor (let e of r) if (!t.includes(e.value)) return null;\n\t\treturn h(r.map((e) => e.value)) ? new e(n) : null;\n\t}\n}, b = class e {\n\tstatic re = /^\\d+-\\d+$/;\n\tfield;\n\ttype = i.Range;\n\tstart;\n\tend;\n\tconstructor(e, t, n) {\n\t\tthis.field = e, this.start = t, this.end = n;\n\t}\n\ttoCron() {\n\t\treturn `${this.start}-${this.end}`;\n\t}\n\ttoArray() {\n\t\tlet e = this.start, t = this.end;\n\t\treturn s(e, t);\n\t}\n\tget items() {\n\t\treturn {\n\t\t\tstart: this.field.itemMap[this.start],\n\t\t\tend: this.field.itemMap[this.end]\n\t\t};\n\t}\n\tstatic fromString(t, n) {\n\t\tif (!e.re.test(t)) return null;\n\t\tlet { min: r, max: i } = n, a = t.split(\"-\"), o = parseInt(a[0]), s = parseInt(a[1]);\n\t\treturn o > s || o < r || s > i ? null : new e(n, o, s);\n\t}\n};\nfunction x(e, t, n) {\n\tlet r = [];\n\tfor (let i = t; i <= n; i += e) r.push(i);\n\treturn r;\n}\nfunction S(e, t) {\n\tif (e === \"*\") return [t.min, t.max];\n\tlet n = e.split(\"-\").map((e) => parseInt(e));\n\treturn n.length === 1 && t.ctx.format !== \"crontab\" ? [n[0], t.max] : [n[0], n[1]];\n}\nvar C = class e {\n\tstatic re = /^(\\*|\\d+(-\\d+)?)\\/\\d+$/;\n\tfield;\n\tstep;\n\tstart;\n\tend;\n\tconstructor(e, t, n, r) {\n\t\tthis.field = e, this.step = t, this.start = n ?? e.min, this.end = r ?? e.max;\n\t}\n\tget type() {\n\t\tlet { min: e, max: t } = this.field;\n\t\treturn this.field.ctx.format !== \"crontab\" && this.start !== e && t - this.end < this.step ? i.StepFrom : this.start !== e || t - this.end >= this.step ? i.RangeStep : i.Step;\n\t}\n\ttoCron() {\n\t\treturn this.type === i.StepFrom ? `${this.start}/${this.step}` : this.type === i.RangeStep ? `${this.start}-${this.end}/${this.step}` : `*/${this.step}`;\n\t}\n\ttoArray() {\n\t\treturn x(this.step, this.start, this.end);\n\t}\n\tget items() {\n\t\treturn {\n\t\t\tstep: this.field.itemMap[this.step],\n\t\t\tstart: this.field.itemMap[this.start],\n\t\t\tend: this.field.itemMap[this.end]\n\t\t};\n\t}\n\tstatic fromString(t, n) {\n\t\tif (!e.re.test(t)) return null;\n\t\tlet [r, i] = t.split(\"/\"), a = parseInt(i);\n\t\tif (a > n.items.length) return null;\n\t\tlet [o, s] = S(r, n);\n\t\treturn x(a, o, s).length == 0 ? null : new e(n, a, o, s);\n\t}\n\tstatic fromArray(t, n) {\n\t\tif (t.length < 3) return null;\n\t\tlet r = t[1] - t[0];\n\t\tif (r <= 1) return null;\n\t\tfor (let e = 2; e < t.length; e++) if (t[e] - t[e - 1] != r) return null;\n\t\treturn new e(n, r, t[0], t[t.length - 1]);\n\t}\n}, w = class e {\n\tfield;\n\ttype = i.Value;\n\tvalue;\n\tconstructor(e, t) {\n\t\tthis.field = e, this.value = t;\n\t}\n\ttoCron() {\n\t\treturn `${this.value}`;\n\t}\n\ttoArray() {\n\t\treturn [this.value];\n\t}\n\tget items() {\n\t\treturn { value: this.field.itemMap[this.value] };\n\t}\n\tstatic fromString(t, n) {\n\t\tlet { min: r, max: i } = n, a = parseInt(t);\n\t\treturn String(a) === t && a >= r && a <= i ? new e(n, a) : null;\n\t}\n\tstatic fromArray(e, t) {\n\t\tlet { min: n, max: r } = t;\n\t\tif (e.length != 1) return null;\n\t\tlet i = e[0];\n\t\treturn i < n || i > r ? null : i;\n\t}\n}, T = class e {\n\tstatic segmentFactories = [\n\t\ty.fromString,\n\t\tC.fromString,\n\t\tb.fromString,\n\t\tw.fromString\n\t];\n\tfield;\n\tsegments;\n\tconstructor(e, t = []) {\n\t\tthis.field = e, this.segments = t;\n\t}\n\tget type() {\n\t\treturn this.segments.length == 1 ? this.segments[0].type : i.Range;\n\t}\n\taddSegment(e) {\n\t\tthis.segments.push(e);\n\t}\n\ttoCron() {\n\t\treturn this.segments.map((e) => e.toCron()).join(\",\");\n\t}\n\ttoArray() {\n\t\tlet e = /* @__PURE__ */ new Set();\n\t\tfor (let t of this.segments) t.toArray().forEach((t) => e.add(t));\n\t\treturn Array.from(e);\n\t}\n\tget items() {\n\t\treturn g();\n\t}\n\tstatic fromString(t, n) {\n\t\tlet r = n.segmentFactories ?? e.segmentFactories, i = [];\n\t\tfor (let e of t.split(\",\")) {\n\t\t\tif (e === \"*\") {\n\t\t\t\ti = [new y(n)];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tlet t = null;\n\t\t\tfor (let i of r) if (t = i(e, n), t !== null) break;\n\t\t\tif (t === null) return null;\n\t\t\ti.push(t);\n\t\t}\n\t\treturn new e(n, i);\n\t}\n\tstatic fromArray(t, n) {\n\t\tlet { min: r, max: i } = n, a = t[0], o = t[t.length - 1];\n\t\tif (a < r || o > i) return null;\n\t\tlet s = [], c = 0;\n\t\tfor (let e = 0; e < t.length; e++) (t[e + 1] === void 0 || t[e + 1] - t[e] > 1) && (e === c ? s.push(new w(n, t[c])) : s.push(new b(n, t[c], t[e])), c = e + 1);\n\t\treturn new e(n, s);\n\t}\n};\nfunction E(e, t) {\n\treturn T.fromString(e, t);\n}\nfunction D(e, t) {\n\tfor (let n of [\n\t\ty.fromArray,\n\t\tC.fromArray,\n\t\tT.fromArray\n\t]) {\n\t\tlet r = n(e, t);\n\t\tif (r != null) return r;\n\t}\n\treturn null;\n}\n//#endregion\n//#region ../node_modules/mustache/mustache.mjs\nvar O = Object.prototype.toString, k = Array.isArray || function(e) {\n\treturn O.call(e) === \"[object Array]\";\n};\nfunction A(e) {\n\treturn typeof e == \"function\";\n}\nfunction j(e) {\n\treturn k(e) ? \"array\" : typeof e;\n}\nfunction M(e) {\n\treturn e.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\nfunction N(e, t) {\n\treturn typeof e == \"object\" && !!e && t in e;\n}\nfunction ee(e, t) {\n\treturn e != null && typeof e != \"object\" && e.hasOwnProperty && e.hasOwnProperty(t);\n}\nvar te = RegExp.prototype.test;\nfunction ne(e, t) {\n\treturn te.call(e, t);\n}\nvar P = /\\S/;\nfunction F(e) {\n\treturn !ne(P, e);\n}\nvar re = {\n\t\"&\": \"&amp;\",\n\t\"<\": \"&lt;\",\n\t\">\": \"&gt;\",\n\t\"\\\"\": \"&quot;\",\n\t\"'\": \"&#39;\",\n\t\"/\": \"&#x2F;\",\n\t\"`\": \"&#x60;\",\n\t\"=\": \"&#x3D;\"\n};\nfunction I(e) {\n\treturn String(e).replace(/[&<>\"'`=\\/]/g, function(e) {\n\t\treturn re[e];\n\t});\n}\nvar ie = /\\s*/, ae = /\\s+/, L = /\\s*=/, oe = /\\s*\\}/, se = /#|\\^|\\/|>|\\{|&|=|!/;\nfunction ce(e, t) {\n\tif (!e) return [];\n\tvar n = !1, r = [], i = [], a = [], o = !1, s = !1, c = \"\", l = 0;\n\tfunction u() {\n\t\tif (o && !s) for (; a.length;) delete i[a.pop()];\n\t\telse a = [];\n\t\to = !1, s = !1;\n\t}\n\tvar d, f, p;\n\tfunction m(e) {\n\t\tif (typeof e == \"string\" && (e = e.split(ae, 2)), !k(e) || e.length !== 2) throw Error(\"Invalid tags: \" + e);\n\t\td = RegExp(M(e[0]) + \"\\\\s*\"), f = RegExp(\"\\\\s*\" + M(e[1])), p = RegExp(\"\\\\s*\" + M(\"}\" + e[1]));\n\t}\n\tm(t || V.tags);\n\tfor (var h = new R(e), g, _, v, y, b, x; !h.eos();) {\n\t\tif (g = h.pos, v = h.scanUntil(d), v) for (var S = 0, C = v.length; S < C; ++S) y = v.charAt(S), F(y) ? (a.push(i.length), c += y) : (s = !0, n = !0, c += \" \"), i.push([\n\t\t\t\"text\",\n\t\t\ty,\n\t\t\tg,\n\t\t\tg + 1\n\t\t]), g += 1, y === \"\\n\" && (u(), c = \"\", l = 0, n = !1);\n\t\tif (!h.scan(d)) break;\n\t\tif (o = !0, _ = h.scan(se) || \"name\", h.scan(ie), _ === \"=\" ? (v = h.scanUntil(L), h.scan(L), h.scanUntil(f)) : _ === \"{\" ? (v = h.scanUntil(p), h.scan(oe), h.scanUntil(f), _ = \"&\") : v = h.scanUntil(f), !h.scan(f)) throw Error(\"Unclosed tag at \" + h.pos);\n\t\tif (b = _ == \">\" ? [\n\t\t\t_,\n\t\t\tv,\n\t\t\tg,\n\t\t\th.pos,\n\t\t\tc,\n\t\t\tl,\n\t\t\tn\n\t\t] : [\n\t\t\t_,\n\t\t\tv,\n\t\t\tg,\n\t\t\th.pos\n\t\t], l++, i.push(b), _ === \"#\" || _ === \"^\") r.push(b);\n\t\telse if (_ === \"/\") {\n\t\t\tif (x = r.pop(), !x) throw Error(\"Unopened section \\\"\" + v + \"\\\" at \" + g);\n\t\t\tif (x[1] !== v) throw Error(\"Unclosed section \\\"\" + x[1] + \"\\\" at \" + g);\n\t\t} else _ === \"name\" || _ === \"{\" || _ === \"&\" ? s = !0 : _ === \"=\" && m(v);\n\t}\n\tif (u(), x = r.pop(), x) throw Error(\"Unclosed section \\\"\" + x[1] + \"\\\" at \" + h.pos);\n\treturn ue(le(i));\n}\nfunction le(e) {\n\tfor (var t = [], n, r, i = 0, a = e.length; i < a; ++i) n = e[i], n && (n[0] === \"text\" && r && r[0] === \"text\" ? (r[1] += n[1], r[3] = n[3]) : (t.push(n), r = n));\n\treturn t;\n}\nfunction ue(e) {\n\tfor (var t = [], n = t, r = [], i, a, o = 0, s = e.length; o < s; ++o) switch (i = e[o], i[0]) {\n\t\tcase \"#\":\n\t\tcase \"^\":\n\t\t\tn.push(i), r.push(i), n = i[4] = [];\n\t\t\tbreak;\n\t\tcase \"/\":\n\t\t\ta = r.pop(), a[5] = i[2], n = r.length > 0 ? r[r.length - 1][4] : t;\n\t\t\tbreak;\n\t\tdefault: n.push(i);\n\t}\n\treturn t;\n}\nfunction R(e) {\n\tthis.string = e, this.tail = e, this.pos = 0;\n}\nR.prototype.eos = function() {\n\treturn this.tail === \"\";\n}, R.prototype.scan = function(e) {\n\tvar t = this.tail.match(e);\n\tif (!t || t.index !== 0) return \"\";\n\tvar n = t[0];\n\treturn this.tail = this.tail.substring(n.length), this.pos += n.length, n;\n}, R.prototype.scanUntil = function(e) {\n\tvar t = this.tail.search(e), n;\n\tswitch (t) {\n\t\tcase -1:\n\t\t\tn = this.tail, this.tail = \"\";\n\t\t\tbreak;\n\t\tcase 0:\n\t\t\tn = \"\";\n\t\t\tbreak;\n\t\tdefault: n = this.tail.substring(0, t), this.tail = this.tail.substring(t);\n\t}\n\treturn this.pos += n.length, n;\n};\nfunction z(e, t) {\n\tthis.view = e, this.cache = { \".\": this.view }, this.parent = t;\n}\nz.prototype.push = function(e) {\n\treturn new z(e, this);\n}, z.prototype.lookup = function(e) {\n\tvar t = this.cache, n;\n\tif (t.hasOwnProperty(e)) n = t[e];\n\telse {\n\t\tfor (var r = this, i, a, o, s = !1; r;) {\n\t\t\tif (e.indexOf(\".\") > 0) for (i = r.view, a = e.split(\".\"), o = 0; i != null && o < a.length;) o === a.length - 1 && (s = N(i, a[o]) || ee(i, a[o])), i = i[a[o++]];\n\t\t\telse i = r.view[e], s = N(r.view, e);\n\t\t\tif (s) {\n\t\t\t\tn = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tr = r.parent;\n\t\t}\n\t\tt[e] = n;\n\t}\n\treturn A(n) && (n = n.call(this.view)), n;\n};\nfunction B() {\n\tthis.templateCache = {\n\t\t_cache: {},\n\t\tset: function(e, t) {\n\t\t\tthis._cache[e] = t;\n\t\t},\n\t\tget: function(e) {\n\t\t\treturn this._cache[e];\n\t\t},\n\t\tclear: function() {\n\t\t\tthis._cache = {};\n\t\t}\n\t};\n}\nB.prototype.clearCache = function() {\n\tthis.templateCache !== void 0 && this.templateCache.clear();\n}, B.prototype.parse = function(e, t) {\n\tvar n = this.templateCache, r = e + \":\" + (t || V.tags).join(\":\"), i = n !== void 0, a = i ? n.get(r) : void 0;\n\treturn a ?? (a = ce(e, t), i && n.set(r, a)), a;\n}, B.prototype.render = function(e, t, n, r) {\n\tvar i = this.getConfigTags(r), a = this.parse(e, i), o = t instanceof z ? t : new z(t, void 0);\n\treturn this.renderTokens(a, o, n, e, r);\n}, B.prototype.renderTokens = function(e, t, n, r, i) {\n\tfor (var a = \"\", o, s, c, l = 0, u = e.length; l < u; ++l) c = void 0, o = e[l], s = o[0], s === \"#\" ? c = this.renderSection(o, t, n, r, i) : s === \"^\" ? c = this.renderInverted(o, t, n, r, i) : s === \">\" ? c = this.renderPartial(o, t, n, i) : s === \"&\" ? c = this.unescapedValue(o, t) : s === \"name\" ? c = this.escapedValue(o, t, i) : s === \"text\" && (c = this.rawValue(o)), c !== void 0 && (a += c);\n\treturn a;\n}, B.prototype.renderSection = function(e, t, n, r, i) {\n\tvar a = this, o = \"\", s = t.lookup(e[1]);\n\tfunction c(e) {\n\t\treturn a.render(e, t, n, i);\n\t}\n\tif (s) {\n\t\tif (k(s)) for (var l = 0, u = s.length; l < u; ++l) o += this.renderTokens(e[4], t.push(s[l]), n, r, i);\n\t\telse if (typeof s == \"object\" || typeof s == \"string\" || typeof s == \"number\") o += this.renderTokens(e[4], t.push(s), n, r, i);\n\t\telse if (A(s)) {\n\t\t\tif (typeof r != \"string\") throw Error(\"Cannot use higher-order sections without the original template\");\n\t\t\ts = s.call(t.view, r.slice(e[3], e[5]), c), s != null && (o += s);\n\t\t} else o += this.renderTokens(e[4], t, n, r, i);\n\t\treturn o;\n\t}\n}, B.prototype.renderInverted = function(e, t, n, r, i) {\n\tvar a = t.lookup(e[1]);\n\tif (!a || k(a) && a.length === 0) return this.renderTokens(e[4], t, n, r, i);\n}, B.prototype.indentPartial = function(e, t, n) {\n\tfor (var r = t.replace(/[^ \\t]/g, \"\"), i = e.split(\"\\n\"), a = 0; a < i.length; a++) i[a].length && (a > 0 || !n) && (i[a] = r + i[a]);\n\treturn i.join(\"\\n\");\n}, B.prototype.renderPartial = function(e, t, n, r) {\n\tif (n) {\n\t\tvar i = this.getConfigTags(r), a = A(n) ? n(e[1]) : n[e[1]];\n\t\tif (a != null) {\n\t\t\tvar o = e[6], s = e[5], c = e[4], l = a;\n\t\t\ts == 0 && c && (l = this.indentPartial(a, c, o));\n\t\t\tvar u = this.parse(l, i);\n\t\t\treturn this.renderTokens(u, t, n, l, r);\n\t\t}\n\t}\n}, B.prototype.unescapedValue = function(e, t) {\n\tvar n = t.lookup(e[1]);\n\tif (n != null) return n;\n}, B.prototype.escapedValue = function(e, t, n) {\n\tvar r = this.getConfigEscape(n) || V.escape, i = t.lookup(e[1]);\n\tif (i != null) return typeof i == \"number\" && r === V.escape ? String(i) : r(i);\n}, B.prototype.rawValue = function(e) {\n\treturn e[1];\n}, B.prototype.getConfigTags = function(e) {\n\tif (k(e)) return e;\n\tif (e && typeof e == \"object\") return e.tags;\n}, B.prototype.getConfigEscape = function(e) {\n\tif (e && typeof e == \"object\" && !k(e)) return e.escape;\n};\nvar V = {\n\tname: \"mustache.js\",\n\tversion: \"4.2.0\",\n\ttags: [\"{{\", \"}}\"],\n\tclearCache: void 0,\n\tescape: void 0,\n\tparse: void 0,\n\trender: void 0,\n\tScanner: void 0,\n\tContext: void 0,\n\tWriter: void 0,\n\tset templateCache(e) {\n\t\tH.templateCache = e;\n\t},\n\tget templateCache() {\n\t\treturn H.templateCache;\n\t}\n}, H = new B();\nV.clearCache = function() {\n\treturn H.clearCache();\n}, V.parse = function(e, t) {\n\treturn H.parse(e, t);\n}, V.render = function(e, t, n, r) {\n\tif (typeof e != \"string\") throw TypeError(\"Invalid template! Template should be a \\\"string\\\" but \\\"\" + j(e) + \"\\\" was given as the first argument for mustache#render(template, view, partials)\");\n\treturn H.render(e, t, n, r);\n}, V.escape = I, V.Scanner = R, V.Context = z, V.Writer = B;\n//#endregion\n//#region src/locale/index.ts\nvar U = {\n\tempty: {},\n\ten: {\n\t\t\"*\": {\n\t\t\tprefix: \"Every\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Unknown\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"every {{step.value}}\" },\n\t\t\t\trangeStep: { text: \"{{start.text}}-{{end.text}}/{{step.value}}\" },\n\t\t\t\tstepFrom: { text: \"{{start.text}}/{{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"in\" },\n\t\t\t\tany: { text: \"every month\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\trangeStep: { text: \"{{start.alt}}-{{end.alt}}/{{step.value}}\" },\n\t\t\t\tstepFrom: { text: \"{{start.alt}}/{{step.value}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"on\" },\n\t\t\t\tany: { text: \"every day\" },\n\t\t\t\tnoSpecific: { text: \"no specific day\" }\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"on\" },\n\t\t\t\tany: { text: \"every day of the week\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\trangeStep: { text: \"{{start.alt}}-{{end.alt}}/{{step.value}}\" },\n\t\t\t\tstepFrom: { text: \"{{start.alt}}/{{step.value}}\" },\n\t\t\t\tnoSpecific: { text: \"no specific day of the week\" }\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"at\" },\n\t\t\t\tany: { text: \"every hour\" }\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"every minute\" }\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"every second\" }\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"Minute\" },\n\t\thour: {\n\t\t\ttext: \"Hour\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"at\",\n\t\t\t\t\tsuffix: \"minute(s)\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"every\" }\n\t\t\t}\n\t\t},\n\t\tday: { text: \"Day\" },\n\t\tweek: { text: \"Week\" },\n\t\tmonth: {\n\t\t\ttext: \"Month\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"and\" } }\n\t\t},\n\t\tyear: {\n\t\t\ttext: \"Year\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"and\" } }\n\t\t},\n\t\t\"q-second\": { text: \"Second\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"Minute\",\n\t\t\tsecond: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"at\",\n\t\t\t\t\tsuffix: \"second(s)\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"every\" }\n\t\t\t}\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"Hour\",\n\t\t\tminute: { \"*\": { prefix: \"at\" } }\n\t\t}\n\t},\n\tde: {\n\t\t\"*\": {\n\t\t\tprefix: \"Jede\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Unknown\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"alle {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"im\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"in\",\n\t\t\t\t\ttext: \"jedem Monat\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"den\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"an\",\n\t\t\t\t\ttext: \"jedem Tag\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"alle {{step.value}} Tage\"\n\t\t\t\t},\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"an\",\n\t\t\t\t\ttext: \"keinem bestimmten Tag\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"am\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"an\",\n\t\t\t\t\ttext: \"jedem Wochentag\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"und\",\n\t\t\t\t\ttext: \"keinem bestimmten Wochentag\"\n\t\t\t\t}\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"um\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"zu\",\n\t\t\t\t\ttext: \"jeder Stunde\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"alle {{step.value}} Stunden\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"jede Minute\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"alle {{step.value}} Minuten\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"jede Sekunde\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"alle {{step.value}} Sekunden\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"Minute\" },\n\t\thour: {\n\t\t\ttext: \"Stunde\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"zu\",\n\t\t\t\t\tsuffix: \"Minute(n)\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"jeder\" }\n\t\t\t}\n\t\t},\n\t\tday: {\n\t\t\tprefix: \"Jeden\",\n\t\t\ttext: \"Tag\"\n\t\t},\n\t\tweek: { text: \"Woche\" },\n\t\tmonth: {\n\t\t\tprefix: \"Jedes\",\n\t\t\ttext: \"Monat\"\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"Jedes\",\n\t\t\ttext: \"Jahr\"\n\t\t},\n\t\t\"q-second\": { text: \"Sekunde\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"Minute\",\n\t\t\tsecond: { \"*\": { prefix: \"und\" } }\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"Stunde\",\n\t\t\tminute: { \"*\": { prefix: \"und\" } },\n\t\t\tsecond: { \"*\": { prefix: \"und\" } }\n\t\t}\n\t},\n\tpt: {\n\t\t\"*\": {\n\t\t\tprefix: \"Todo(a)\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Desconhecido\",\n\t\t\t\"*\": {\n\t\t\t\tany: { text: \"todo {{field.id}}\" },\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"todo {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"de\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tany: { text: \"todo mês\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"no(s) dia(s)\" },\n\t\t\t\tany: { text: \"todos\" }\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"de\" },\n\t\t\t\tany: { text: \"todos dias da semana\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"às\" },\n\t\t\t\tany: { text: \"cada hora\" }\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"cada minuto\" }\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"Minuto\" },\n\t\thour: {\n\t\t\ttext: \"Hora\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"e\",\n\t\t\t\t\tsuffix: \"minuto(s)\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"cada\" }\n\t\t\t}\n\t\t},\n\t\tday: { text: \"Dia\" },\n\t\tweek: { text: \"Semana\" },\n\t\tmonth: {\n\t\t\ttext: \"Mês\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"e de\" } }\n\t\t},\n\t\tyear: {\n\t\t\ttext: \"Ano\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"e de\" } }\n\t\t}\n\t},\n\tes: {\n\t\t\"*\": {\n\t\t\tprefix: \"todos los\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Desconocido\",\n\t\t\t\"*\": {\n\t\t\t\tany: { text: \"todos los {{ field.id }}\" },\n\t\t\t\tvalue: { text: \"{{ value.text }}\" },\n\t\t\t\trange: { text: \"{{ start.text }}-{{ end.text }}\" },\n\t\t\t\tstep: { text: \"todos/as {{ step.value }}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"en\" },\n\t\t\t\tany: { text: \"todos los meses\" },\n\t\t\t\tvalue: { text: \"{{ value.alt }}\" },\n\t\t\t\trange: { text: \"{{ start.alt }}-{{ end.alt }}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"en\" },\n\t\t\t\tany: { text: \"todos los días\" },\n\t\t\t\tvalue: { text: \"los días {{ value.alt }}\" }\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"de\" },\n\t\t\t\tany: { text: \"todos los días de la semana\" },\n\t\t\t\tvalue: { text: \"los {{ value.alt }}\" },\n\t\t\t\trange: { text: \"{{ start.alt }}-{{ end.alt }}\" }\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"a\" },\n\t\t\t\tany: { text: \"todas las horas\" },\n\t\t\t\tvalue: { text: \"las {{ value.text }}\" }\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"todos los minutos\" }\n\t\t\t}\n\t\t},\n\t\tminute: {\n\t\t\tprefix: \"todos los\",\n\t\t\ttext: \"minutos\"\n\t\t},\n\t\thour: {\n\t\t\tprefix: \"todas las\",\n\t\t\ttext: \"horas\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"a los\",\n\t\t\t\t\tsuffix: \"minutos\"\n\t\t\t\t},\n\t\t\t\tany: {\n\t\t\t\t\ttext: \"todos\",\n\t\t\t\t\tprefix: \"a\",\n\t\t\t\t\tsuffix: \"los minutos\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tday: { text: \"Días\" },\n\t\tweek: { text: \"Semanas\" },\n\t\tmonth: {\n\t\t\ttext: \"Meses\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"y\" } }\n\t\t},\n\t\tyear: {\n\t\t\ttext: \"años\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"y\" } }\n\t\t}\n\t},\n\tda: {\n\t\t\"*\": {\n\t\t\tprefix: \"Hver\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Ukendt\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"hver {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"i\" },\n\t\t\t\tany: { text: \"hver måned\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"og\" },\n\t\t\t\tany: { text: \"hver dag i måneden\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}.\" },\n\t\t\t\trange: { text: \"{{start.alt}}.-{{end.alt}}.\" },\n\t\t\t\tnoSpecific: { text: \"ingen specifik dag\" }\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"på\" },\n\t\t\t\tany: { text: \"hver dag i ugen\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: { text: \"ingen specifik dag i ugen\" }\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"klokken\" },\n\t\t\t\tany: { text: \"hver time\" }\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"hvert minut\" }\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"hvert sekund\" }\n\t\t\t}\n\t\t},\n\t\tsecond: { prefix: \"Hvert\" },\n\t\tminute: {\n\t\t\tprefix: \"Hvert\",\n\t\t\ttext: \"Minut\"\n\t\t},\n\t\thour: {\n\t\t\ttext: \"Time\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"ved\",\n\t\t\t\t\tsuffix: \"minutter\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"alle\" }\n\t\t\t}\n\t\t},\n\t\tday: { text: \"Dag\" },\n\t\tweek: { text: \"Uge\" },\n\t\tmonth: {\n\t\t\ttext: \"Måned\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"og\" } }\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"Hvert\",\n\t\t\ttext: \"År\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"og\" } }\n\t\t},\n\t\t\"q-second\": { text: \"Sekund\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"Minut\",\n\t\t\tsecond: {\n\t\t\t\t\"*\": { suffix: \"sekund(er)\" },\n\t\t\t\tany: { text: \"hvert\" }\n\t\t\t}\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"Time\",\n\t\t\tminute: { \"*\": { prefix: \"på\" } }\n\t\t}\n\t},\n\tzh: {\n\t\t\"*\": {\n\t\t\tprefix: \"每\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"未知\",\n\t\t\t\"*\": {\n\t\t\t\tany: { text: \"每 {{field.id}}\" },\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"每 {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"的\" },\n\t\t\t\tany: { text: \"每月\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"的\" },\n\t\t\t\tany: { text: \"每日\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}号\" },\n\t\t\t\trange: { text: \"{{start.alt}}号-{{end.alt}}号\" },\n\t\t\t\tnoSpecific: { text: \"无特定日期\" }\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"的\" },\n\t\t\t\tany: { text: \"一周的每一天\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: { text: \"无特定星期几\" }\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"的\" },\n\t\t\t\tany: { text: \"每小时\" }\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"每分钟\" }\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"每秒\" }\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"分\" },\n\t\thour: {\n\t\t\ttext: \"小时\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \":\",\n\t\t\t\t\tsuffix: \"分钟\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"每\" }\n\t\t\t}\n\t\t},\n\t\tday: { text: \"天\" },\n\t\tweek: {\n\t\t\ttext: \"周\",\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"的\" },\n\t\t\t\tany: { text: \"每天\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t}\n\t\t},\n\t\tmonth: {\n\t\t\ttext: \"月\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"和\" } },\n\t\t\tday: { \"*\": { prefix: \"的\" } }\n\t\t},\n\t\tyear: {\n\t\t\ttext: \"年\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"和\" } }\n\t\t},\n\t\t\"q-second\": { text: \"秒\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"分钟\",\n\t\t\tsecond: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \":\",\n\t\t\t\t\tsuffix: \"秒\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"每\" }\n\t\t\t}\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"小时\",\n\t\t\tminute: { \"*\": { prefix: \":\" } }\n\t\t}\n\t},\n\the: {\n\t\t\"*\": {\n\t\t\tprefix: \"בכל\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"לא ידוע\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"כל {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"ב\" },\n\t\t\t\tany: { text: \"כל חודש\" },\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"ב\" },\n\t\t\t\tany: { text: \"כל יום\" },\n\t\t\t\tvalue: { text: \"יום {{value.alt}} לחודש\" },\n\t\t\t\tnoSpecific: { text: \"ללא יום מוגדר\" }\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"ב\" },\n\t\t\t\tany: { text: \"כל יום מימות השבוע\" },\n\t\t\t\tvalue: { text: \"ימי {{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: { text: \"ללא יום בשבוע מוגדר\" }\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"ב\" },\n\t\t\t\tany: { text: \"כל שעה\" },\n\t\t\t\tvalue: { text: \"שעה {{value.text}}\" }\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"כל דקה\" }\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"כל שניה\" }\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"דקה\" },\n\t\thour: {\n\t\t\ttext: \"שעה\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"ב\",\n\t\t\t\t\tsuffix: \"דקות\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"כל\" }\n\t\t\t}\n\t\t},\n\t\tday: { text: \"יום\" },\n\t\tweek: { text: \"שבוע\" },\n\t\tmonth: {\n\t\t\ttext: \"חודש\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"ו\" } }\n\t\t},\n\t\tyear: {\n\t\t\ttext: \"שנה\",\n\t\t\tdayOfWeek: { \"*\": { prefix: \"ו\" } }\n\t\t},\n\t\t\"q-second\": { text: \"שניה\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"דקה\",\n\t\t\tsecond: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"ב\",\n\t\t\t\t\tsuffix: \"שניות\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"כל\" }\n\t\t\t}\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"שעה\",\n\t\t\tminute: { \"*\": { prefix: \"ב\" } }\n\t\t}\n\t},\n\tru: {\n\t\t\"*\": {\n\t\t\tprefix: \"Каждый\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Неизвестно\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"каждый {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"в\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\ttext: \"каждом месяце\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"в\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\ttext: \"каждый день\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"каждые {{step.value}} дня\"\n\t\t\t\t},\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\ttext: \"нет определенного дня\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"по\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"по\",\n\t\t\t\t\ttext: \"каждому дню недели\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"и\",\n\t\t\t\t\ttext: \"нет определенного дня недели\"\n\t\t\t\t}\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"в\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\ttext: \"каждый час\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"каждые {{step.value}} часа\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"каждую минуту\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"каждые {{step.value}} минуты\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"каждую секунду\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"каждые {{step.value}} секунды\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"Минута\" },\n\t\thour: {\n\t\t\ttext: \"Час\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\tsuffix: \"минут(а/ы)\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"каждый\" }\n\t\t\t}\n\t\t},\n\t\tday: {\n\t\t\tprefix: \"Каждый\",\n\t\t\ttext: \"День\"\n\t\t},\n\t\tweek: { text: \"Неделя\" },\n\t\tmonth: {\n\t\t\tprefix: \"Каждый\",\n\t\t\ttext: \"Месяц\"\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"Каждый\",\n\t\t\ttext: \"Год\"\n\t\t},\n\t\t\"q-second\": { text: \"Секунда\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"Минута\",\n\t\t\tsecond: { \"*\": { prefix: \"и\" } }\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"Час\",\n\t\t\tminute: { \"*\": { prefix: \"и\" } },\n\t\t\tsecond: { \"*\": { prefix: \"и\" } }\n\t\t}\n\t},\n\tfr: {\n\t\t\"*\": {\n\t\t\tprefix: \"Toutes\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Inconnu\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"tous les {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"en\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"en\",\n\t\t\t\t\ttext: \"tous les mois\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"le\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"à\",\n\t\t\t\t\ttext: \"tous les jours\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"tous les {{step.value}} jours\"\n\t\t\t\t},\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"à\",\n\t\t\t\t\ttext: \"aucun jour particulier\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"le\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"à\",\n\t\t\t\t\ttext: \"tous les jours de la semaine\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"et\",\n\t\t\t\t\ttext: \"aucun jour de la semaine particulier\"\n\t\t\t\t}\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"à\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"à\",\n\t\t\t\t\ttext: \"toutes les heures\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"toutes les {{step.value}} heures\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"toutes les minutes\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"toutes les {{step.value}} minutes\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"toutes les secondes\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"toutes les {{step.value}} secondes\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"Minute\" },\n\t\thour: {\n\t\t\ttext: \"Heure\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"à\",\n\t\t\t\t\tsuffix: \"minute(s)\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"toutes\" }\n\t\t\t}\n\t\t},\n\t\tday: {\n\t\t\tprefix: \"Tous\",\n\t\t\ttext: \"Jour\"\n\t\t},\n\t\tweek: { text: \"Semaine\" },\n\t\tmonth: {\n\t\t\tprefix: \"Tous\",\n\t\t\ttext: \"Mois\"\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"Tous\",\n\t\t\ttext: \"Année\"\n\t\t},\n\t\t\"q-second\": { text: \"Seconde\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"Minute\",\n\t\t\tsecond: { \"*\": { prefix: \"et\" } }\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"Heure\",\n\t\t\tminute: { \"*\": { prefix: \"et\" } },\n\t\t\tsecond: { \"*\": { prefix: \"et\" } }\n\t\t}\n\t},\n\thi: {\n\t\t\"*\": {\n\t\t\tprefix: \"हर\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"अज्ञात\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"{{step.value}} हर\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"में\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"के\",\n\t\t\t\t\ttext: \"हर महीने\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"के\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"पर\",\n\t\t\t\t\ttext: \"हर दिन\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}} दिन हर\"\n\t\t\t\t},\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"पर\",\n\t\t\t\t\ttext: \"कोई विशेष दिन नहीं\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"पर\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"पर\",\n\t\t\t\t\ttext: \"हर सप्ताह\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"और\",\n\t\t\t\t\ttext: \"कोई विशेष सप्ताह नहीं\"\n\t\t\t\t}\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"को\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"पर\",\n\t\t\t\t\ttext: \"हर घंटे\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}} घंटे हर\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"हर मिनट\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}} मिनट हर\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"हर सेकंड\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}} सेकंड हर\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"मिनट\" },\n\t\thour: {\n\t\t\ttext: \"घंटा\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"पर\",\n\t\t\t\t\tsuffix: \"मिनट\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"हर\" }\n\t\t\t}\n\t\t},\n\t\tday: {\n\t\t\tprefix: \"हर\",\n\t\t\ttext: \"दिन\"\n\t\t},\n\t\tweek: { text: \"सप्ताह\" },\n\t\tmonth: {\n\t\t\tprefix: \"हर\",\n\t\t\ttext: \"महीना\"\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"हर\",\n\t\t\ttext: \"साल\"\n\t\t},\n\t\t\"q-second\": { text: \"सेकंड\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"मिनट\",\n\t\t\tsecond: { \"*\": { prefix: \"और\" } }\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"घंटा\",\n\t\t\tminute: { \"*\": { prefix: \"और\" } },\n\t\t\tsecond: { \"*\": { prefix: \"और\" } }\n\t\t}\n\t},\n\tja: {\n\t\t\"*\": {\n\t\t\tprefix: \"毎\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"不明\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"{{step.value}}ごとに\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"に\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"の\",\n\t\t\t\t\ttext: \"毎月\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"の\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"に\",\n\t\t\t\t\ttext: \"毎日\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}}日ごとに\"\n\t\t\t\t},\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"に\",\n\t\t\t\t\ttext: \"特定の日はなし\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"の\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"に\",\n\t\t\t\t\ttext: \"毎週\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"と\",\n\t\t\t\t\ttext: \"特定の曜日はなし\"\n\t\t\t\t}\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"の\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"に\",\n\t\t\t\t\ttext: \"毎時\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}}時間ごとに\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"毎分\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}}分ごとに\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"毎秒\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}}秒ごとに\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"分\" },\n\t\thour: {\n\t\t\ttext: \"時\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"に\",\n\t\t\t\t\tsuffix: \"分\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"毎\" }\n\t\t\t}\n\t\t},\n\t\tday: {\n\t\t\tprefix: \"毎\",\n\t\t\ttext: \"日\"\n\t\t},\n\t\tweek: { text: \"週\" },\n\t\tmonth: {\n\t\t\tprefix: \"毎\",\n\t\t\ttext: \"月\"\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"毎\",\n\t\t\ttext: \"年\"\n\t\t},\n\t\t\"q-second\": { text: \"秒\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"分\",\n\t\t\tsecond: { \"*\": { prefix: \"と\" } }\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"時\",\n\t\t\tminute: { \"*\": { prefix: \"と\" } },\n\t\t\tsecond: { \"*\": { prefix: \"と\" } }\n\t\t}\n\t},\n\tko: {\n\t\t\"*\": {\n\t\t\tprefix: \"매\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"알 수 없음\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"{{step.value}}마다\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"에\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"의\",\n\t\t\t\t\ttext: \"매월\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"의\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"에\",\n\t\t\t\t\ttext: \"매일\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}}일마다\"\n\t\t\t\t},\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"에\",\n\t\t\t\t\ttext: \"특정한 날 없음\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"의\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"에\",\n\t\t\t\t\ttext: \"매주\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"과\",\n\t\t\t\t\ttext: \"특정한 요일 없음\"\n\t\t\t\t}\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"의\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"에\",\n\t\t\t\t\ttext: \"매시\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}}시간마다\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"매분\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}}분마다\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"매초\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"{{step.value}}초마다\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"분\" },\n\t\thour: {\n\t\t\ttext: \"시\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"에\",\n\t\t\t\t\tsuffix: \"분\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"매\" }\n\t\t\t}\n\t\t},\n\t\tday: {\n\t\t\tprefix: \"매\",\n\t\t\ttext: \"일\"\n\t\t},\n\t\tweek: { text: \"주\" },\n\t\tmonth: {\n\t\t\tprefix: \"매\",\n\t\t\ttext: \"월\"\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"매\",\n\t\t\ttext: \"년\"\n\t\t},\n\t\t\"q-second\": { text: \"초\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"분\",\n\t\t\tsecond: { \"*\": { prefix: \"와\" } }\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"시\",\n\t\t\tminute: { \"*\": { prefix: \"와\" } },\n\t\t\tsecond: { \"*\": { prefix: \"와\" } }\n\t\t}\n\t},\n\tit: {\n\t\t\"*\": {\n\t\t\tprefix: \"Tutti\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Sconosciuto\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"ogni {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"in\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"in\",\n\t\t\t\t\ttext: \"ogni mese\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"il\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"il\",\n\t\t\t\t\ttext: \"ogni giorno\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"ogni {{step.value}} giorni\"\n\t\t\t\t},\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"il\",\n\t\t\t\t\ttext: \"nessun giorno specifico\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"il\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"il\",\n\t\t\t\t\ttext: \"ogni giorno della settimana\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"e\",\n\t\t\t\t\ttext: \"nessun giorno della settimana specifico\"\n\t\t\t\t}\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"alle\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"alle\",\n\t\t\t\t\ttext: \"ogni ora\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"ogni {{step.value}} ore\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"ogni minuto\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"ogni {{step.value}} minuti\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"ogni secondo\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"ogni {{step.value}} secondi\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"Minuto\" },\n\t\thour: {\n\t\t\ttext: \"Ora\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"al\",\n\t\t\t\t\tsuffix: \"minuto/i\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"tutti\" }\n\t\t\t}\n\t\t},\n\t\tday: {\n\t\t\tprefix: \"Tutti\",\n\t\t\ttext: \"Giorno\"\n\t\t},\n\t\tweek: { text: \"Settimana\" },\n\t\tmonth: {\n\t\t\tprefix: \"Tutti\",\n\t\t\ttext: \"Mese\"\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"Tutti\",\n\t\t\ttext: \"Anno\"\n\t\t},\n\t\t\"q-second\": { text: \"Secondo\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"Minuto\",\n\t\t\tsecond: { \"*\": { prefix: \"e\" } }\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"Ora\",\n\t\t\tminute: { \"*\": { prefix: \"e\" } },\n\t\t\tsecond: { \"*\": { prefix: \"e\" } }\n\t\t}\n\t},\n\tuk: {\n\t\t\"*\": {\n\t\t\tprefix: \"Кожний\",\n\t\t\tsuffix: \"\",\n\t\t\ttext: \"Невідомо\",\n\t\t\t\"*\": {\n\t\t\t\tvalue: { text: \"{{value.text}}\" },\n\t\t\t\trange: { text: \"{{start.text}}-{{end.text}}\" },\n\t\t\t\tstep: { text: \"кожний {{step.value}}\" }\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\t\"*\": { prefix: \"в\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\ttext: \"кожному місяці\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" }\n\t\t\t},\n\t\t\tday: {\n\t\t\t\t\"*\": { prefix: \"в\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\ttext: \"кожний день\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"кожні {{step.value}} дні\"\n\t\t\t\t},\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\ttext: \"немає визначеного дня\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdayOfWeek: {\n\t\t\t\t\"*\": { prefix: \"по\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"по\",\n\t\t\t\t\ttext: \"кожному дню тижня\"\n\t\t\t\t},\n\t\t\t\tvalue: { text: \"{{value.alt}}\" },\n\t\t\t\trange: { text: \"{{start.alt}}-{{end.alt}}\" },\n\t\t\t\tnoSpecific: {\n\t\t\t\t\tprefix: \"і\",\n\t\t\t\t\ttext: \"немає визначеного дня\"\n\t\t\t\t}\n\t\t\t},\n\t\t\thour: {\n\t\t\t\t\"*\": { prefix: \"в\" },\n\t\t\t\tany: {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\ttext: \"кожну годину\"\n\t\t\t\t},\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"кожні {{step.value}} годин(и)\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tminute: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"кожну хвилину\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"кожні {{step.value}} хвилин(и)\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tsecond: {\n\t\t\t\t\"*\": { prefix: \":\" },\n\t\t\t\tany: { text: \"кожну секунду\" },\n\t\t\t\tstep: {\n\t\t\t\t\tprefix: \"\",\n\t\t\t\t\ttext: \"кожні {{step.value}} секунд(и)\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tminute: { text: \"Хвилини\" },\n\t\thour: {\n\t\t\ttext: \"Година\",\n\t\t\tminute: {\n\t\t\t\t\"*\": {\n\t\t\t\t\tprefix: \"в\",\n\t\t\t\t\tsuffix: \"хвилин(а)\"\n\t\t\t\t},\n\t\t\t\tany: { text: \"кожні\" }\n\t\t\t}\n\t\t},\n\t\tday: {\n\t\t\tprefix: \"Кожний\",\n\t\t\ttext: \"День\"\n\t\t},\n\t\tweek: { text: \"Тиждень\" },\n\t\tmonth: {\n\t\t\tprefix: \"Кожний\",\n\t\t\ttext: \"Місяц\"\n\t\t},\n\t\tyear: {\n\t\t\tprefix: \"Кожний\",\n\t\t\ttext: \"Рік\"\n\t\t},\n\t\t\"q-second\": { text: \"Секунда\" },\n\t\t\"q-minute\": {\n\t\t\ttext: \"Хвилина\",\n\t\t\tsecond: { \"*\": { prefix: \"и\" } }\n\t\t},\n\t\t\"q-hour\": {\n\t\t\ttext: \"Година\",\n\t\t\tminute: { \"*\": { prefix: \"і\" } },\n\t\t\tsecond: { \"*\": { prefix: \"і\" } }\n\t\t}\n\t}\n}, W = class {\n\tdict;\n\tconstructor(e) {\n\t\tthis.dict = e;\n\t}\n\tgetTemplate(...e) {\n\t\tlet t = e.map((e) => [e, \"*\"]);\n\t\treturn m(this.dict, ...t) || \"\";\n\t}\n\trender(e, t, n, r, i) {\n\t\tlet a = this.getTemplate(e, t, n, r);\n\t\treturn V.render(a, i || {});\n\t}\n};\nfunction G(e, t) {\n\tlet [n] = e.split(\"-\"), r = U[e.toLowerCase()] || U[n.toLowerCase()] || U.en;\n\treturn new W(p({}, U.en, r, t || {}));\n}\n//#endregion\n//#region src/components/cron-segment.ts\nfunction de(e) {\n\tlet { period: t, field: i, initialCron: o = \"*\", l10n: s } = e, c = n(o), l = n(\"\"), u = n([]), d = n(\"\"), f = n(\"\"), p = n(\"\"), m = (e) => {\n\t\tlet n = e instanceof T ? e.segments : [e];\n\t\td.value = n.map((e) => s.render(t.value.id, i.id, e.type, a.Text, {\n\t\t\tfield: i,\n\t\t\t...e.items\n\t\t})).join(\",\"), f.value = s.getTemplate(t.value.id, i.id, e.type, a.Prefix), p.value = s.getTemplate(t.value.id, i.id, e.type, a.Suffix);\n\t}, h = (e) => {\n\t\tlet t = E(e, i);\n\t\tt == null ? l.value = `${e} is not a valid cron segment (${i.id})` : (u.value = t.toArray(), m(t));\n\t}, g = (e) => {\n\t\tif (c.value == \"?\" && e.length == 0) return;\n\t\tlet t = D(e, i);\n\t\tt == null ? l.value = `failed to convert ${e} to cron (${i.id})` : (c.value = t.toCron(), m(t));\n\t};\n\treturn h(o), r(c, (e) => {\n\t\th(e);\n\t}), r(u, (e) => {\n\t\tg(e);\n\t}), r(t, () => {\n\t\tlet e = E(c.value, i);\n\t\te != null && m(e);\n\t}), {\n\t\tid: i.id,\n\t\titems: i.items,\n\t\tcron: c,\n\t\tselected: u,\n\t\terror: l,\n\t\tselect: (e) => {\n\t\t\tlet t = Array.from(e).sort((e, t) => e > t ? 1 : -1);\n\t\t\tu.value = t;\n\t\t},\n\t\ttext: d,\n\t\tprefix: f,\n\t\tsuffix: p\n\t};\n}\n//#endregion\n//#region src/components/cron-core.ts\nfunction K(e) {\n\treturn e.map((e) => e.default ?? \"*\").join(\" \");\n}\nfunction fe(e) {\n\treturn e !== void 0;\n}\nvar pe = class {\n\tlocale = \"en\";\n\tformat = \"crontab\";\n\tinitialValue(e) {\n\t\treturn K(e);\n\t}\n\tfields(e, t) {\n\t\tlet n = e == \"quartz\" || e == \"spring\", r = u(t, e), i = (e) => (t, { segmentMap: n }) => {\n\t\t\tif (t.cron.value == \"?\") return;\n\t\t\tlet r = n.get(e);\n\t\t\tr && (r.cron.value = \"?\");\n\t\t};\n\t\treturn [\n\t\t\t...n ? [{\n\t\t\t\tid: \"second\",\n\t\t\t\titems: r.secondItems\n\t\t\t}] : [],\n\t\t\t{\n\t\t\t\tid: \"minute\",\n\t\t\t\titems: r.minuteItems\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"hour\",\n\t\t\t\titems: r.hourItems\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"day\",\n\t\t\t\titems: r.dayItems,\n\t\t\t\tonChange: n ? i(\"dayOfWeek\") : void 0,\n\t\t\t\tsegmentFactories: n ? [\n\t\t\t\t\ty.fromString,\n\t\t\t\t\tv.fromString,\n\t\t\t\t\tC.fromString,\n\t\t\t\t\tb.fromString,\n\t\t\t\t\tw.fromString\n\t\t\t\t] : void 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"month\",\n\t\t\t\titems: r.monthItems\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"dayOfWeek\",\n\t\t\t\tdefault: e === \"quartz\" ? \"?\" : void 0,\n\t\t\t\titems: r.dayOfWeekItems,\n\t\t\t\tonChange: n ? i(\"day\") : void 0,\n\t\t\t\tsegmentFactories: n ? [\n\t\t\t\t\ty.fromString,\n\t\t\t\t\tv.fromString,\n\t\t\t\t\tC.fromString,\n\t\t\t\t\tb.fromString,\n\t\t\t\t\tw.fromString\n\t\t\t\t] : void 0\n\t\t\t}\n\t\t];\n\t}\n\tperiods(e) {\n\t\tlet t = e == \"quartz\" || e == \"spring\", n = t ? [{\n\t\t\tid: \"q-second\",\n\t\t\tvalue: []\n\t\t}] : [], r = t ? [\"second\"] : [], i = t ? \"q-\" : \"\";\n\t\treturn [\n\t\t\t...n,\n\t\t\t{\n\t\t\t\tid: i + \"minute\",\n\t\t\t\tvalue: [...r]\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: i + \"hour\",\n\t\t\t\tvalue: [\"minute\", ...r]\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"day\",\n\t\t\t\tvalue: [\n\t\t\t\t\t\"hour\",\n\t\t\t\t\t\"minute\",\n\t\t\t\t\t...r\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"week\",\n\t\t\t\tvalue: [\n\t\t\t\t\t\"dayOfWeek\",\n\t\t\t\t\t\"hour\",\n\t\t\t\t\t\"minute\",\n\t\t\t\t\t...r\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"month\",\n\t\t\t\tvalue: [\n\t\t\t\t\t\"day\",\n\t\t\t\t\t\"dayOfWeek\",\n\t\t\t\t\t\"hour\",\n\t\t\t\t\t\"minute\",\n\t\t\t\t\t...r\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"year\",\n\t\t\t\tvalue: [\n\t\t\t\t\t\"month\",\n\t\t\t\t\t\"day\",\n\t\t\t\t\t\"dayOfWeek\",\n\t\t\t\t\t\"hour\",\n\t\t\t\t\t\"minute\",\n\t\t\t\t\t...r\n\t\t\t\t]\n\t\t\t}\n\t\t];\n\t}\n};\nfunction me(e, t, n) {\n\tlet r = t.split(\" \");\n\tif (r.length !== n.length) return;\n\tlet i = n.filter((e, t) => ![\"*\", \"?\"].includes(r[t])).map((e) => e.id);\n\treturn e.find((e) => {\n\t\tlet t = new Set(e.value);\n\t\treturn i.every((e) => t.has(e));\n\t});\n}\nfunction q(t) {\n\tlet i = new pe(), s = t.locale ?? i.locale, c = t.format ?? i.format, { customLocale: l, fields: u = i.fields(c, s) } = t, d = t.initialValue ?? i.initialValue(u), f = G(s, l), p = (t.periods ?? i.periods(c)).map((e) => ({\n\t\t...e,\n\t\ttext: e.text ?? f.getTemplate(e.id, a.Text)\n\t})), m = (t.initialPeriod ? p.find((e) => e.id == t.initialPeriod) : void 0) ?? me([...p].reverse(), d, u) ?? p[p.length - 1], h = n(d), g = n(\"\"), _ = n(m), v = n(\"\"), y = n(\"\"), b = u.map((e) => de({\n\t\tfield: new o(e, { format: c }),\n\t\tl10n: f,\n\t\tperiod: _\n\t})), x = new Map(b.map((e) => [e.id, e])), S = e(() => _.value.value.map((e) => {\n\t\tlet t = x.get(e);\n\t\tif (fe(t)) return t;\n\t\tthrow Error(\"${fieldId} not found\");\n\t})), C = (e) => {\n\t\tif (!e) {\n\t\t\th.value = K(u);\n\t\t\treturn;\n\t\t}\n\t\tlet t = e.split(\" \");\n\t\tif (t.length !== u.length) {\n\t\t\tg.value = \"invalid pattern\";\n\t\t\treturn;\n\t\t}\n\t\tfor (let e = 0; e < t.length; e++) b[e].cron.value != t[e] && (b[e].cron.value = t[e]);\n\t\tg.value = \"\";\n\t};\n\tC(d);\n\tlet w = () => {\n\t\th.value = b.map((e) => _.value.value.includes(e.id) || e.cron.value == \"?\" ? e.cron.value : \"*\").join(\" \");\n\t}, T = () => {\n\t\tv.value = f.getTemplate(_.value.id, a.Prefix), y.value = f.getTemplate(_.value.id, a.Suffix);\n\t};\n\treturn T(), r(h, C), r(_, () => {\n\t\tw(), T();\n\t}), b.forEach((e, t) => {\n\t\tr(e.cron, () => {\n\t\t\tu[t].onChange?.(e, { segmentMap: x }), w();\n\t\t}), r(e.error, (e) => {\n\t\t\tg.value = e;\n\t\t});\n\t}), {\n\t\tcron: h,\n\t\terror: g,\n\t\tsegments: b,\n\t\tselected: S,\n\t\tperiod: {\n\t\t\tselect: (e) => {\n\t\t\t\tlet t = p.map((e) => e.id).indexOf(e);\n\t\t\t\tt != -1 && (_.value = p[t]);\n\t\t\t},\n\t\t\tselected: _,\n\t\t\titems: p,\n\t\t\tprefix: v,\n\t\t\tsuffix: y\n\t\t}\n\t};\n}\nfunction J(e, { emit: t }) {\n\tlet n = q({\n\t\t...e,\n\t\tinitialValue: e.modelValue,\n\t\tinitialPeriod: e.period\n\t});\n\treturn r(() => e.modelValue, (e) => {\n\t\te && (n.cron.value = e);\n\t}), r(() => e.period, (e) => {\n\t\te && n.period.select(e);\n\t}), r(n.cron, (e) => {\n\t\tt(\"update:model-value\", e);\n\t}, { immediate: e.modelValue === void 0 }), r(n.period.selected, (e) => {\n\t\tt(\"update:period\", e.id);\n\t}), r(n.error, (e) => {\n\t\tt(\"error\", e);\n\t}), n;\n}\nvar Y = () => ({\n\tmodelValue: { type: String },\n\tperiod: { type: String },\n\tformat: { type: String },\n\tlocale: { type: String },\n\tfields: { type: Array },\n\tperiods: { type: Array },\n\tcustomLocale: { type: Object },\n\tcols: {\n\t\ttype: Object,\n\t\tdefault: () => ({\n\t\t\tsecond: 5,\n\t\t\tminute: 5,\n\t\t\thour: 4,\n\t\t\tday: 4\n\t\t})\n\t},\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: !1\n\t},\n\tclearable: {\n\t\ttype: Boolean,\n\t\tdefault: !0\n\t}\n}), X = t({\n\tname: \"VueCronCore\",\n\tprops: Y(),\n\temits: [\n\t\t\"update:model-value\",\n\t\t\"update:period\",\n\t\t\"error\"\n\t],\n\tsetup(e, t) {\n\t\tlet { error: n, selected: r, period: i } = J(e, t);\n\t\treturn () => {\n\t\t\tlet e = {\n\t\t\t\terror: n,\n\t\t\t\tfields: r.value.map((e) => ({\n\t\t\t\t\tid: e.id,\n\t\t\t\t\titems: e.items,\n\t\t\t\t\tcron: e.cron.value,\n\t\t\t\t\tselectedStr: e.text.value,\n\t\t\t\t\tevents: { \"update:model-value\": e.select },\n\t\t\t\t\tattrs: { modelValue: e.selected.value },\n\t\t\t\t\tprefix: e.prefix.value,\n\t\t\t\t\tsuffix: e.suffix.value\n\t\t\t\t})),\n\t\t\t\tperiod: {\n\t\t\t\t\tattrs: { modelValue: i.selected.value.id },\n\t\t\t\t\tevents: { \"update:model-value\": i.select },\n\t\t\t\t\titems: i.items,\n\t\t\t\t\tprefix: i.prefix.value,\n\t\t\t\t\tsuffix: i.suffix.value\n\t\t\t\t}\n\t\t\t};\n\t\t\treturn t.slots.default?.(e);\n\t\t};\n\t}\n});\n//#endregion\n//#region src/components/select.ts\nfunction he(e) {\n\tlet { items: t } = e, r = /* @__PURE__ */ new Set(), i = n(0), a = () => {\n\t\ti.value += 1;\n\t}, o = (e) => {\n\t\tt.indexOf(e) != -1 && (r.add(e), a());\n\t}, s = (e) => r.has(e), c = (e) => {\n\t\tr.delete(e) && a();\n\t};\n\treturn {\n\t\tvalues: r,\n\t\tadd: o,\n\t\ttoggle: (e) => {\n\t\t\ts(e) ? c(e) : o(e);\n\t\t},\n\t\tremove: c,\n\t\tclear: () => {\n\t\t\tr.clear(), a();\n\t\t},\n\t\tupdated: i,\n\t\tequals: (e) => {\n\t\t\tif (e.length != r.size) return !1;\n\t\t\tfor (let t of e) if (!r.has(t)) return !1;\n\t\t\treturn !0;\n\t\t}\n\t};\n}\nfunction Z() {\n\treturn {\n\t\tmodelValue: { type: [\n\t\t\tString,\n\t\t\tNumber,\n\t\t\tArray\n\t\t] },\n\t\tselection: { type: String },\n\t\tclearable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\titems: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => []\n\t\t},\n\t\tmultiple: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tcols: {\n\t\t\ttype: Number,\n\t\t\tdefault: 1\n\t\t},\n\t\titemText: {\n\t\t\ttype: [String, Function],\n\t\t\tdefault: \"text\"\n\t\t},\n\t\titemValue: {\n\t\t\ttype: [String, Function],\n\t\t\tdefault: \"value\"\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t}\n\t};\n}\nfunction Q(t) {\n\tlet { items: i, cols: a = 1, multiple: o = !1, itemText: s = \"text\", itemValue: c = \"value\" } = t, l = he(t), u = n(o ? [] : null), d = n(\"\"), f = (e) => {\n\t\to ? l.toggle(e) : (l.clear(), l.add(e));\n\t}, p = (e) => {\n\t\tif (e === null) return !1;\n\t\tlet t = m(e);\n\t\treturn Array.isArray(u.value) ? u.value.includes(t) : u.value === t;\n\t}, m = (e) => typeof c == \"function\" ? c(e) : e[c], h = (e) => typeof s == \"function\" ? s(e) : e[s], g = new Map(i.map((e) => [m(e), e])), v = (e) => {\n\t\tl.equals(e) || (l.clear(), e.forEach((e) => f(e)));\n\t}, y = (e) => {\n\t\te = Array.isArray(e) ? e : [e];\n\t\tlet t = e.map((e) => g.get(e)).filter((e) => !!e);\n\t\tv(t);\n\t};\n\tr(l.updated, () => {\n\t\tlet e = Array.from(l.values);\n\t\tu.value = o ? e.map(m) : m(e[0]), d.value = e.map(h).join(\",\");\n\t});\n\tlet b = e(() => o ? !Array.isArray(u.value) || u.value.length == 0 : !!u.value);\n\treturn {\n\t\t...l,\n\t\tselect: f,\n\t\tselected: u,\n\t\tselectedStr: d,\n\t\titemRows: _(i, a),\n\t\tsetItems: v,\n\t\tsetValues: y,\n\t\tisEmpty: b,\n\t\thas: p\n\t};\n}\nfunction ge(e, t, { emit: n }) {\n\tlet i = Q(e);\n\treturn r(i.selected, () => {\n\t\tn(\"update:model-value\", i.selected.value);\n\t}), r(t, (e) => {\n\t\te && i.setValues(e);\n\t}, { immediate: !0 }), i;\n}\nvar _e = t({\n\tname: \"RenderlessSelect\",\n\tprops: {\n\t\t...Z(),\n\t\tmodelValue: { type: [\n\t\t\tString,\n\t\t\tNumber,\n\t\t\tArray\n\t\t] },\n\t\tselection: { type: String },\n\t\tclearable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t}\n\t},\n\temits: [\"update:modelValue\"],\n\tsetup(e, { emit: t, slots: n }) {\n\t\tlet i = Q(e);\n\t\treturn r(i.selected, () => {\n\t\t\tt(\"update:modelValue\", i.selected.value);\n\t\t}), r(() => e.modelValue, (e) => {\n\t\t\te && i.setValues(e);\n\t\t}, { immediate: !0 }), () => {\n\t\t\tlet t = {\n\t\t\t\tselectedStr: e.selection || i.selectedStr.value,\n\t\t\t\tmodelValue: e.modelValue,\n\t\t\t\titems: e.items,\n\t\t\t\tselect: i.select,\n\t\t\t\tisSelected: i.has,\n\t\t\t\tclearable: e.clearable && !i.isEmpty.value,\n\t\t\t\tclear: i.clear,\n\t\t\t\tcols: e.cols,\n\t\t\t\trows: i.itemRows.length,\n\t\t\t\titemRows: i.itemRows,\n\t\t\t\tmultiple: e.multiple,\n\t\t\t\titemText: e.itemText,\n\t\t\t\titemValue: e.itemValue\n\t\t\t};\n\t\t\treturn n.default?.(t);\n\t\t};\n\t}\n}), $ = { install: (e) => {\n\te.component(\"CronCore\", X);\n} };\n//#endregion\nexport { X as CronCore, $ as CronCorePlugin, $ as default, i as FieldPattern, o as FieldWrapper, W as L10nEngine, _e as RenderlessSelect, a as TextPosition, G as createL10n, Y as cronCoreProps, u as defaultItems, l as genItems, d as pad, Z as selectProps, J as setupCron, ge as setupSelect, _ as splitArray, q as useCron, Q as useSelect };\n\n//# sourceMappingURL=core.js.map","<template>\n  <div class=\"cl-select\">\n    <span\n      class=\"cl-btn\"\n      :class=\"{ disabled: disabled, active: menu }\"\n      @click=\"\n        () => {\n          if (!disabled) toggleMenu()\n        }\n      \"\n      ref=\"btn\"\n    >\n      <span class=\"cl-btn-selection\">{{ selection ?? selectedStr }}</span>\n      <span\n        v-if=\"!disabled\"\n        :class=\"{ clearable: clearable && !isEmpty }\"\n        class=\"cl-btn-suffix\"\n        @click=\"iconClicked\"\n      >\n        <CloseCircleFilled v-if=\"clearable && !isEmpty\" />\n        <DownOutlined v-else />\n      </span>\n    </span>\n\n    <div class=\"z-20\" :style=\"floatingStyles\" ref=\"floating\">\n      <transition name=\"cl-menu\">\n        <div v-if=\"menu\" class=\"cl-menu\">\n          <div class=\"cl-row\" v-for=\"(row, i) in itemRows\" :key=\"i\">\n            <div\n              v-for=\"(item, j) in row\"\n              :key=\"i + '-' + j\"\n              class=\"cl-col\"\n              :class=\"{ selected: has(item) }\"\n              @click=\"select(item)\"\n              @click.stop=\"multiple ? () => {} : toggleMenu()\"\n            >\n              <div v-if=\"item\">{{ item.text }}</div>\n            </div>\n          </div>\n        </div>\n      </transition>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport CloseCircleFilled from '@/icons/CloseOutlined.vue'\nimport DownOutlined from '@/icons/DownOutlined.vue'\nimport { autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/vue'\nimport { selectProps, setupSelect } from '@vue-js-cron/core'\nimport { defineComponent, ref } from 'vue'\n\nexport default defineComponent({\n  name: 'CustomSelect',\n  components: {\n    CloseCircleFilled,\n    DownOutlined,\n  },\n  props: {\n    ...selectProps(),\n  },\n  emits: ['update:model-value'],\n  setup(props, ctx) {\n    const s = setupSelect<any, any>(props, () => props.modelValue, ctx)\n    const btn = ref(null)\n    const floating = ref(null)\n    const menu = ref(false)\n\n    const { floatingStyles } = useFloating(btn, floating, {\n      placement: 'bottom-start',\n      middleware: [flip(), shift(), offset(3)],\n      whileElementsMounted: autoUpdate,\n    })\n\n    const menuEvtListener = () => {\n      menu.value = false\n      document.removeEventListener('click', menuEvtListener)\n    }\n    const toggleMenu = () => {\n      menu.value = !menu.value\n\n      if (menu.value) {\n        setTimeout(() => {\n          document.addEventListener('click', menuEvtListener)\n        }, 1)\n      } else {\n        document.removeEventListener('click', menuEvtListener)\n      }\n    }\n\n    function iconClicked(e: Event) {\n      if (!props.clearable || s.isEmpty.value) {\n        return\n      }\n      if (!menu.value) {\n        e.stopPropagation()\n      }\n      s.clear()\n    }\n\n    return {\n      ...s,\n      menu,\n      toggleMenu,\n      btn,\n      floating,\n      floatingStyles,\n      iconClicked,\n    }\n  },\n})\n</script>\n\n<style>\n.cl-select {\n  display: inline-block;\n  position: relative;\n  /* margin: 0.2em 0.3em; */\n}\n\n.cl-btn {\n  display: inline-flex;\n  align-items: center;\n  color: var(--cl-text-color, inherit);\n  background-color: var(--cl-bg-color, #eee);\n  border: var(--cl-border, 1px solid #ddd);\n  border-radius: 3px;\n  margin: 0.2em 0.3em;\n  padding: 0.1em 0.5em;\n  user-select: none;\n  min-height: 1.2em;\n  position: relative;\n}\n\n.cl-btn.disabled {\n  background-color: var(--cl-disabled-bg-color, #ccc);\n  color: var(--cl-disabled-text-color, #444);\n}\n\n.cl-btn:not(.disabled):hover {\n  border: var(--cl-btn-hover-border, 1px solid #ddd);\n  background-color: var(--cl-hover-bg-color, #d6d6d6);\n}\n\n.cl-btn.active {\n  border: var(--cl-btn-hover-border, 1px solid #ddd);\n  background-color: var(--cl-hover-bg-color, #d6d6d6);\n}\n\n.cl-btn-suffix {\n  margin-left: 0.4em;\n}\n\n.cl-btn-suffix svg {\n  display: inline-block;\n  width: 0.8em;\n  height: 0.8em;\n  line-height: 1;\n  opacity: 0.6;\n}\n\n.cl-btn-suffix.clearable svg:hover {\n  opacity: 0.9;\n}\n\n.legacy .cl-btn-suffix:not(.clearable) {\n  margin-left: 0;\n  display: none;\n}\n\n.cl-menu {\n  box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);\n  border: var(--cl-border, 1px solid #ddd);\n  background-color: var(--cl-bg-color, #eee);\n  list-style: none;\n  transform-origin: top left;\n}\n\n.z-20 {\n  z-index: 20;\n}\n\n.cl-menu-enter-active,\n.cl-menu-leave-active {\n  transition: all 0.1s ease;\n}\n\n.cl-menu-enter-from,\n.cl-menu-leave-to {\n  transform: scaleY(0.7);\n  opacity: 0;\n}\n\n.cl-row {\n  display: flex;\n}\n\n.cl-col {\n  flex-grow: 1;\n  flex-basis: 0%;\n  display: inline-block;\n  box-sizing: border-box;\n  user-select: none;\n  padding: 0.2em 0.5em;\n  text-align: center;\n}\n\n.cl-col:hover {\n  background-color: var(--cl-hover-bg-color, #d6d6d6);\n  color: var(--cl-hover-text-color, inherit);\n}\n\n.cl-col.selected,\n.cl-col.selected:hover {\n  background-color: var(--cl-selected-bg-color, rgb(43, 108, 138));\n  color: var(--cl-selected-text-color, white);\n}\n\n/* Dark mode styles */\n.dark {\n  --cl-text-color: #eee;\n  --cl-bg-color: #222;\n  --cl-border: 1px solid #444;\n\n  --cl-disabled-bg-color: #333;\n  --cl-disabled-text-color: #888;\n\n  --cl-hover-bg-color: #333;\n\n  --cl-selected-bg-color: #0a3041;\n  --cl-selected-text-color: #43c3ff;\n}\n\n.dark .cl-menu {\n  box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.8);\n}\n</style>\n","<template>\n  <div class=\"cl-select\">\n    <span\n      class=\"cl-btn\"\n      :class=\"{ disabled: disabled, active: menu }\"\n      @click=\"\n        () => {\n          if (!disabled) toggleMenu()\n        }\n      \"\n      ref=\"btn\"\n    >\n      <span class=\"cl-btn-selection\">{{ selection ?? selectedStr }}</span>\n      <span\n        v-if=\"!disabled\"\n        :class=\"{ clearable: clearable && !isEmpty }\"\n        class=\"cl-btn-suffix\"\n        @click=\"iconClicked\"\n      >\n        <CloseCircleFilled v-if=\"clearable && !isEmpty\" />\n        <DownOutlined v-else />\n      </span>\n    </span>\n\n    <div class=\"z-20\" :style=\"floatingStyles\" ref=\"floating\">\n      <transition name=\"cl-menu\">\n        <div v-if=\"menu\" class=\"cl-menu\">\n          <div class=\"cl-row\" v-for=\"(row, i) in itemRows\" :key=\"i\">\n            <div\n              v-for=\"(item, j) in row\"\n              :key=\"i + '-' + j\"\n              class=\"cl-col\"\n              :class=\"{ selected: has(item) }\"\n              @click=\"select(item)\"\n              @click.stop=\"multiple ? () => {} : toggleMenu()\"\n            >\n              <div v-if=\"item\">{{ item.text }}</div>\n            </div>\n          </div>\n        </div>\n      </transition>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport CloseCircleFilled from '@/icons/CloseOutlined.vue'\nimport DownOutlined from '@/icons/DownOutlined.vue'\nimport { autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/vue'\nimport { selectProps, setupSelect } from '@vue-js-cron/core'\nimport { defineComponent, ref } from 'vue'\n\nexport default defineComponent({\n  name: 'CustomSelect',\n  components: {\n    CloseCircleFilled,\n    DownOutlined,\n  },\n  props: {\n    ...selectProps(),\n  },\n  emits: ['update:model-value'],\n  setup(props, ctx) {\n    const s = setupSelect<any, any>(props, () => props.modelValue, ctx)\n    const btn = ref(null)\n    const floating = ref(null)\n    const menu = ref(false)\n\n    const { floatingStyles } = useFloating(btn, floating, {\n      placement: 'bottom-start',\n      middleware: [flip(), shift(), offset(3)],\n      whileElementsMounted: autoUpdate,\n    })\n\n    const menuEvtListener = () => {\n      menu.value = false\n      document.removeEventListener('click', menuEvtListener)\n    }\n    const toggleMenu = () => {\n      menu.value = !menu.value\n\n      if (menu.value) {\n        setTimeout(() => {\n          document.addEventListener('click', menuEvtListener)\n        }, 1)\n      } else {\n        document.removeEventListener('click', menuEvtListener)\n      }\n    }\n\n    function iconClicked(e: Event) {\n      if (!props.clearable || s.isEmpty.value) {\n        return\n      }\n      if (!menu.value) {\n        e.stopPropagation()\n      }\n      s.clear()\n    }\n\n    return {\n      ...s,\n      menu,\n      toggleMenu,\n      btn,\n      floating,\n      floatingStyles,\n      iconClicked,\n    }\n  },\n})\n</script>\n\n<style>\n.cl-select {\n  display: inline-block;\n  position: relative;\n  /* margin: 0.2em 0.3em; */\n}\n\n.cl-btn {\n  display: inline-flex;\n  align-items: center;\n  color: var(--cl-text-color, inherit);\n  background-color: var(--cl-bg-color, #eee);\n  border: var(--cl-border, 1px solid #ddd);\n  border-radius: 3px;\n  margin: 0.2em 0.3em;\n  padding: 0.1em 0.5em;\n  user-select: none;\n  min-height: 1.2em;\n  position: relative;\n}\n\n.cl-btn.disabled {\n  background-color: var(--cl-disabled-bg-color, #ccc);\n  color: var(--cl-disabled-text-color, #444);\n}\n\n.cl-btn:not(.disabled):hover {\n  border: var(--cl-btn-hover-border, 1px solid #ddd);\n  background-color: var(--cl-hover-bg-color, #d6d6d6);\n}\n\n.cl-btn.active {\n  border: var(--cl-btn-hover-border, 1px solid #ddd);\n  background-color: var(--cl-hover-bg-color, #d6d6d6);\n}\n\n.cl-btn-suffix {\n  margin-left: 0.4em;\n}\n\n.cl-btn-suffix svg {\n  display: inline-block;\n  width: 0.8em;\n  height: 0.8em;\n  line-height: 1;\n  opacity: 0.6;\n}\n\n.cl-btn-suffix.clearable svg:hover {\n  opacity: 0.9;\n}\n\n.legacy .cl-btn-suffix:not(.clearable) {\n  margin-left: 0;\n  display: none;\n}\n\n.cl-menu {\n  box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);\n  border: var(--cl-border, 1px solid #ddd);\n  background-color: var(--cl-bg-color, #eee);\n  list-style: none;\n  transform-origin: top left;\n}\n\n.z-20 {\n  z-index: 20;\n}\n\n.cl-menu-enter-active,\n.cl-menu-leave-active {\n  transition: all 0.1s ease;\n}\n\n.cl-menu-enter-from,\n.cl-menu-leave-to {\n  transform: scaleY(0.7);\n  opacity: 0;\n}\n\n.cl-row {\n  display: flex;\n}\n\n.cl-col {\n  flex-grow: 1;\n  flex-basis: 0%;\n  display: inline-block;\n  box-sizing: border-box;\n  user-select: none;\n  padding: 0.2em 0.5em;\n  text-align: center;\n}\n\n.cl-col:hover {\n  background-color: var(--cl-hover-bg-color, #d6d6d6);\n  color: var(--cl-hover-text-color, inherit);\n}\n\n.cl-col.selected,\n.cl-col.selected:hover {\n  background-color: var(--cl-selected-bg-color, rgb(43, 108, 138));\n  color: var(--cl-selected-text-color, white);\n}\n\n/* Dark mode styles */\n.dark {\n  --cl-text-color: #eee;\n  --cl-bg-color: #222;\n  --cl-border: 1px solid #444;\n\n  --cl-disabled-bg-color: #333;\n  --cl-disabled-text-color: #888;\n\n  --cl-hover-bg-color: #333;\n\n  --cl-selected-bg-color: #0a3041;\n  --cl-selected-text-color: #43c3ff;\n}\n\n.dark .cl-menu {\n  box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.8);\n}\n</style>\n","<template>\n  <span class=\"cron-light\" :class=\"theme\">\n    <span class=\"cl-prefix\">{{ period.prefix.value }}</span>\n    <custom-select\n      :model-value=\"period.selected.value.id\"\n      item-value=\"id\"\n      :items=\"period.items\"\n      @update:model-value=\"period.select($event)\"\n      :cols=\"cols['period'] || 1\"\n      :disabled=\"disabled\"\n    />\n    <span class=\"cl-suffix\">{{ period.suffix.value }}</span>\n\n    <template v-for=\"f in selected\" :key=\"f.id\">\n      <span class=\"cl-prefix\">{{ f.prefix.value }}</span>\n      <custom-select\n        :model-value=\"f.selected.value\"\n        @update:model-value=\"f.select($event)\"\n        :items=\"f.items\"\n        :cols=\"cols[f.id] || 1\"\n        :selection=\"f.text.value\"\n        multiple\n        :clearable=\"clearable\"\n        :disabled=\"disabled\"\n      ></custom-select>\n      <span class=\"cl-suffix\">{{ f.suffix.value }}</span>\n    </template>\n  </span>\n</template>\n\n<script lang=\"ts\">\nimport CustomSelect from '@/components/select.vue'\nimport '@/theme/ant.css'\nimport { cronCoreProps, setupCron } from '@vue-js-cron/core'\nimport { defineComponent, type ExtractPropTypes, type PropType } from 'vue'\n\nexport const cronLightProps = () => ({\n  ...cronCoreProps(),\n  theme: {\n    type: String as PropType<'ant' | 'legacy'>,\n    default: 'ant',\n  },\n})\n\n/**\n * Props of {@link CronLight}\n *\n * See {@link @vue-js-cron/core!CronCoreProps | CronCoreProps} for a detailed description of each prop\n *\n * @interface\n */\nexport type CronLightProps = Partial<ExtractPropTypes<ReturnType<typeof cronLightProps>>>\n\n/**\n * @class\n */\nexport default defineComponent({\n  name: 'CronLight',\n  components: {\n    CustomSelect,\n  },\n  emits: ['update:model-value', 'update:period', 'error'],\n  props: cronLightProps(),\n  setup(props, ctx) {\n    return setupCron(props, ctx)\n  },\n})\n</script>\n\n<style></style>\n","<template>\n  <span class=\"cron-light\" :class=\"theme\">\n    <span class=\"cl-prefix\">{{ period.prefix.value }}</span>\n    <custom-select\n      :model-value=\"period.selected.value.id\"\n      item-value=\"id\"\n      :items=\"period.items\"\n      @update:model-value=\"period.select($event)\"\n      :cols=\"cols['period'] || 1\"\n      :disabled=\"disabled\"\n    />\n    <span class=\"cl-suffix\">{{ period.suffix.value }}</span>\n\n    <template v-for=\"f in selected\" :key=\"f.id\">\n      <span class=\"cl-prefix\">{{ f.prefix.value }}</span>\n      <custom-select\n        :model-value=\"f.selected.value\"\n        @update:model-value=\"f.select($event)\"\n        :items=\"f.items\"\n        :cols=\"cols[f.id] || 1\"\n        :selection=\"f.text.value\"\n        multiple\n        :clearable=\"clearable\"\n        :disabled=\"disabled\"\n      ></custom-select>\n      <span class=\"cl-suffix\">{{ f.suffix.value }}</span>\n    </template>\n  </span>\n</template>\n\n<script lang=\"ts\">\nimport CustomSelect from '@/components/select.vue'\nimport '@/theme/ant.css'\nimport { cronCoreProps, setupCron } from '@vue-js-cron/core'\nimport { defineComponent, type ExtractPropTypes, type PropType } from 'vue'\n\nexport const cronLightProps = () => ({\n  ...cronCoreProps(),\n  theme: {\n    type: String as PropType<'ant' | 'legacy'>,\n    default: 'ant',\n  },\n})\n\n/**\n * Props of {@link CronLight}\n *\n * See {@link @vue-js-cron/core!CronCoreProps | CronCoreProps} for a detailed description of each prop\n *\n * @interface\n */\nexport type CronLightProps = Partial<ExtractPropTypes<ReturnType<typeof cronLightProps>>>\n\n/**\n * @class\n */\nexport default defineComponent({\n  name: 'CronLight',\n  components: {\n    CustomSelect,\n  },\n  emits: ['update:model-value', 'update:period', 'error'],\n  props: cronLightProps(),\n  setup(props, ctx) {\n    return setupCron(props, ctx)\n  },\n})\n</script>\n\n<style></style>\n","import {\n  default as CronLight,\n  cronLightProps,\n  type CronLightProps,\n} from '@/components/cron-light.vue'\nimport type { App } from 'vue'\n\nexport { CronLight, cronLightProps, type CronLightProps }\nexport const CronLightPlugin = {\n  install: (app: App) => {\n    app.component('CronLight', CronLight)\n  },\n}\nexport default CronLightPlugin\n"],"x_google_ignoreList":[2,3,4,5,6,7],"mappings":"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"}