@strapi/design-system 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion.development.js +1 -1
- package/Accordion.production.js +1 -1
- package/Alert.production.js +1 -1
- package/Avatar.production.js +1 -1
- package/Badge.production.js +1 -1
- package/BaseButton.production.js +1 -1
- package/BaseCheckbox.production.js +1 -1
- package/BaseLink.production.js +1 -1
- package/BaseRadio.production.js +1 -1
- package/Box.production.js +1 -1
- package/Breadcrumbs.production.js +1 -1
- package/Button.production.js +1 -1
- package/Card.production.js +1 -1
- package/CarouselInput.production.js +1 -1
- package/Checkbox.production.js +1 -1
- package/Combobox.development.js +40 -16
- package/Combobox.production.js +1 -1
- package/DatePicker.development.js +63 -27
- package/DatePicker.production.js +1 -1
- package/Dialog.development.js +2 -2
- package/Dialog.production.js +1 -1
- package/Divider.production.js +1 -1
- package/EmptyStateLayout.production.js +1 -1
- package/Field.production.js +1 -1
- package/Flex.production.js +1 -1
- package/FocusTrap.development.js +2 -2
- package/FocusTrap.production.js +1 -1
- package/Grid.production.js +1 -1
- package/Icon.production.js +1 -1
- package/IconButton.production.js +1 -1
- package/KeyboardNavigable.development.js +1 -1
- package/KeyboardNavigable.production.js +1 -1
- package/Layout.development.js +1 -1
- package/Layout.production.js +1 -1
- package/Link.production.js +1 -1
- package/LinkButton.production.js +1 -1
- package/LiveRegions.production.js +1 -1
- package/Loader.production.js +1 -1
- package/Main.production.js +1 -1
- package/MainNav.production.js +1 -1
- package/ModalLayout.development.js +2 -2
- package/ModalLayout.production.js +1 -1
- package/NumberInput.development.js +1 -1
- package/NumberInput.production.js +1 -1
- package/Pagination.production.js +1 -1
- package/Popover.development.js +40 -16
- package/Popover.production.js +1 -1
- package/Portal.production.js +1 -1
- package/ProgressBar.production.js +1 -1
- package/Radio.production.js +1 -1
- package/RawTable.development.js +19 -8
- package/RawTable.production.js +1 -1
- package/Searchbar.production.js +1 -1
- package/Select.development.js +40 -16
- package/Select.production.js +1 -1
- package/SimpleMenu.development.js +41 -17
- package/SimpleMenu.production.js +1 -1
- package/Stack.production.js +1 -1
- package/Status.production.js +1 -1
- package/SubNav.production.js +1 -1
- package/Switch.production.js +1 -1
- package/Table.development.js +19 -8
- package/Table.production.js +1 -1
- package/Tabs.production.js +1 -1
- package/Tag.production.js +1 -1
- package/TextButton.production.js +1 -1
- package/TextInput.production.js +1 -1
- package/Textarea.production.js +1 -1
- package/ThemeProvider.production.js +1 -1
- package/TimePicker.development.js +40 -16
- package/TimePicker.production.js +1 -1
- package/ToggleCheckbox.production.js +1 -1
- package/ToggleInput.production.js +1 -1
- package/Tooltip.production.js +1 -1
- package/index.development.js +58 -22
- package/index.production.js +1 -1
- package/package.json +3 -2
- package/themes.production.js +1 -1
- package/v2/Breadcrumbs.development.js +42 -18
- package/v2/Breadcrumbs.production.js +1 -1
- package/v2/Link.production.js +1 -1
- package/v2/LinkButton.production.js +1 -1
- package/v2/MainNav.production.js +1 -1
- package/v2/Pagination.production.js +1 -1
- package/v2/SimpleMenu.development.js +41 -17
- package/v2/SimpleMenu.production.js +1 -1
- package/v2/SubNav.production.js +1 -1
- package/v2/index.development.js +42 -18
- package/v2/index.production.js +1 -1
- package/v2/package.json +3 -2
|
@@ -272,6 +272,42 @@ eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"
|
|
|
272
272
|
|
|
273
273
|
/***/ }),
|
|
274
274
|
|
|
275
|
+
/***/ "./node_modules/@floating-ui/core/dist/floating-ui.core.esm.js":
|
|
276
|
+
/*!*********************************************************************!*\
|
|
277
|
+
!*** ./node_modules/@floating-ui/core/dist/floating-ui.core.esm.js ***!
|
|
278
|
+
\*********************************************************************/
|
|
279
|
+
/*! exports provided: arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size */
|
|
280
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
281
|
+
|
|
282
|
+
"use strict";
|
|
283
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrow\", function() { return arrow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoPlacement\", function() { return autoPlacement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computePosition\", function() { return computePosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"detectOverflow\", function() { return detectOverflow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flip\", function() { return flip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hide\", function() { return hide; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inline\", function() { return inline; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"limitShift\", function() { return limitShift; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"offset\", function() { return offset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rectToClientRect\", function() { return rectToClientRect; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shift\", function() { return shift; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"size\", function() { return size; });\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\n\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n const commonAlign = reference[length] / 2 - floating[length] / 2;\n const side = getSide(placement);\n const isVertical = mainAxis === 'x';\n let coords;\n\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n\n case 'end':\n coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\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 */\n\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n\n if (true) {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n\n if (middleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));\n }\n }\n\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 middlewareData = {};\n let resetCount = 0;\n\n for (let i = 0; i < middleware.length; i++) {\n const {\n name,\n fn\n } = middleware[i];\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,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = { ...middlewareData,\n [name]: { ...middlewareData[name],\n ...data\n }\n };\n\n if (true) {\n if (resetCount > 50) {\n console.warn(['Floating UI: The middleware lifecycle appears to be running in an', 'infinite loop. This is usually caused by a `reset` continually', 'being returned without a break condition.'].join(' '));\n }\n }\n\n if (reset && resetCount <= 50) {\n resetCount++;\n\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\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 ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n\n i = -1;\n continue;\n }\n }\n\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return { ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\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.\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(middlewareArguments, options) {\n var _await$platform$isEle;\n\n if (options === void 0) {\n options = {};\n }\n\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = middlewareArguments;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(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 elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: elementContext === 'floating' ? { ...rects.floating,\n x,\n y\n } : rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects[elementContext]);\n return {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\n/**\n * Positions an inner element of the floating element such that it is centered\n * to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n\n async fn(middlewareArguments) {\n // Since `element` is required, we don't Partial<> the type\n const {\n element,\n padding = 0\n } = options != null ? options : {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = middlewareArguments;\n\n if (element == null) {\n if (true) {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n\n return {};\n }\n\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const axis = getMainAxisFromPlacement(placement);\n const alignment = getAlignment(placement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\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 ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n\n if (clientSize === 0) {\n clientSize = rects.floating[length];\n }\n\n const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds\n\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max); // Make sure that arrow points at the reference\n\n const alignmentPadding = alignment === 'start' ? paddingObject[minProp] : paddingObject[maxProp];\n const shouldAddOffset = alignmentPadding > 0 && center !== offset && rects.reference[length] <= rects.floating[length];\n const alignmentOffset = shouldAddOffset ? center < min ? min - center : max - center : 0;\n return {\n [axis]: coords[axis] - alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n\n});\n\nconst hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash$1[matched]);\n}\n\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n\n const alignment = getAlignment(placement);\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-start\", side + \"-end\"), []);\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\n return true;\n });\n}\n\n/**\n * Automatically chooses the `placement` which has the most space available.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'autoPlacement',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _placementsSortedByLe;\n\n const {\n x,\n y,\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = middlewareArguments;\n const {\n alignment = null,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const currentIndex = (_middlewareData$autoP = (_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.index) != null ? _middlewareData$autoP : 0;\n const currentPlacement = placements[currentIndex];\n\n if (currentPlacement == null) {\n return {};\n }\n\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))); // Make `computeCoords` start from the right place\n\n if (placement !== currentPlacement) {\n return {\n x,\n y,\n reset: {\n placement: placements[0]\n }\n };\n }\n\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...((_middlewareData$autoP3 = (_middlewareData$autoP4 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP4.overflows) != null ? _middlewareData$autoP3 : []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1]; // There are more placements to check\n\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);\n const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {\n let {\n overflows\n } = _ref;\n return overflows.every(overflow => overflow <= 0);\n })) == null ? void 0 : _placementsSortedByLe.placement;\n const resetPlacement = placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement;\n\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\n return {};\n }\n\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\n/**\n * Changes the placement of the floating element to one that will fit if the\n * initially specified `placement` does not.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'flip',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$flip;\n\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const side = getSide(placement);\n const isBasePlacement = side === initialPlacement;\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n overflows.push(overflow[main], overflow[cross]);\n }\n\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }]; // One or more sides is overflowing\n\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip$, _middlewareData$flip2;\n\n const nextIndex = ((_middlewareData$flip$ = (_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) != null ? _middlewareData$flip$ : 0) + 1;\n const nextPlacement = placements[nextIndex];\n\n if (nextPlacement) {\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 let resetPlacement = 'bottom';\n\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0].placement;\n\n if (placement) {\n resetPlacement = placement;\n }\n\n break;\n }\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\n return {};\n }\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}\n\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\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 (_temp) {\n let {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = _temp === void 0 ? {} : _temp;\n return {\n name: 'hide',\n\n async fn(middlewareArguments) {\n const {\n rects\n } = middlewareArguments;\n\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(middlewareArguments, { ...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\n case 'escaped':\n {\n const overflow = await detectOverflow(middlewareArguments, { ...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\n default:\n {\n return {};\n }\n }\n }\n\n };\n};\n\nasync function convertValueToCoords(middlewareArguments, value) {\n const {\n placement,\n platform,\n elements\n } = middlewareArguments;\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 = getMainAxisFromPlacement(placement) === 'x';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = typeof value === 'function' ? value(middlewareArguments) : value; // eslint-disable-next-line prefer-const\n\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\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 * Displaces the floating element from its reference element.\n * @see https://floating-ui.com/docs/offset\n */\n\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n\n return {\n name: 'offset',\n options: value,\n\n async fn(middlewareArguments) {\n const {\n x,\n y\n } = middlewareArguments;\n const diffCoords = await convertValueToCoords(middlewareArguments, value);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Shifts the floating element in order to keep it in view when it will overflow\n * a clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'shift',\n options,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement\n } = middlewareArguments;\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 } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getSide(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n\n const limitedCoords = limiter.fn({ ...middlewareArguments,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return { ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\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\n return {\n options,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset(middlewareArguments) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\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\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2, _middlewareData$offse3, _middlewareData$offse4;\n\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? (_middlewareData$offse = (_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) != null ? _middlewareData$offse : 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : (_middlewareData$offse3 = (_middlewareData$offse4 = middlewareData.offset) == null ? void 0 : _middlewareData$offse4[crossAxis]) != null ? _middlewareData$offse3 : 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n\n };\n};\n\n/**\n * Provides data to change the size of the floating element. For instance,\n * prevent it from overflowing its clipping boundary or match the width of the\n * reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'size',\n options,\n\n async fn(middlewareArguments) {\n const {\n placement,\n rects,\n platform,\n elements\n } = middlewareArguments;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = options;\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n let heightSide;\n let widthSide;\n\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\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n const dimensions = {\n availableHeight: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom)) : overflow[heightSide]),\n availableWidth: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right)) : overflow[widthSide])\n };\n await apply({ ...middlewareArguments,\n ...dimensions\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n\n if (rects.floating.width !== nextDimensions.width || rects.floating.height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n\n return {};\n }\n\n };\n};\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\n return {\n name: 'inline',\n options,\n\n async fn(middlewareArguments) {\n var _await$platform$getCl;\n\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = middlewareArguments; // 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\n const {\n padding = 2,\n x,\n y\n } = options;\n const fallback = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects.reference);\n const clientRects = (_await$platform$getCl = await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) != null ? _await$platform$getCl : [];\n const paddingObject = getSideObjectFromPadding(padding);\n\n function getBoundingClientRect() {\n // There are two rects and they are disjoined\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n var _clientRects$find;\n\n // Find the first rect in which the point is fully inside\n return (_clientRects$find = clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom)) != null ? _clientRects$find : fallback;\n } // There are 2 or more connected rects\n\n\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\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 const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\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 const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n return fallback;\n }\n\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\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\n return {};\n }\n\n };\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvY29yZS9kaXN0L2Zsb2F0aW5nLXVpLmNvcmUuZXNtLmpzP2I4Y2EiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUEsTUFBTSxJQUFxQztBQUMzQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBLGlCQUFpQix1QkFBdUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsZUFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLFVBQVUsSUFBcUM7QUFDL0M7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsMERBQTBEO0FBQzFEOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0Qzs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTywySEFBMkg7O0FBRWxJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCx5REFBeUQ7O0FBRXpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLEVBQUU7O0FBRVQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsd0JBQXdCO0FBQzNCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQSx3RUFBd0U7QUFDeEU7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvRkFBb0Y7O0FBRXBGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHVCQUF1QiwwQkFBMEIsSUFBSTtBQUM1RDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7OztBQUdUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRXdJIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9jb3JlL2Rpc3QvZmxvYXRpbmctdWkuY29yZS5lc20uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRTaWRlKHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59XG5cbmZ1bmN0aW9uIGdldEFsaWdubWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5zcGxpdCgnLScpWzFdO1xufVxuXG5mdW5jdGlvbiBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBbJ3RvcCcsICdib3R0b20nXS5pbmNsdWRlcyhnZXRTaWRlKHBsYWNlbWVudCkpID8gJ3gnIDogJ3knO1xufVxuXG5mdW5jdGlvbiBnZXRMZW5ndGhGcm9tQXhpcyhheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KF9yZWYsIHBsYWNlbWVudCwgcnRsKSB7XG4gIGxldCB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0gPSBfcmVmO1xuICBjb25zdCBjb21tb25YID0gcmVmZXJlbmNlLnggKyByZWZlcmVuY2Uud2lkdGggLyAyIC0gZmxvYXRpbmcud2lkdGggLyAyO1xuICBjb25zdCBjb21tb25ZID0gcmVmZXJlbmNlLnkgKyByZWZlcmVuY2UuaGVpZ2h0IC8gMiAtIGZsb2F0aW5nLmhlaWdodCAvIDI7XG4gIGNvbnN0IG1haW5BeGlzID0gZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGxlbmd0aCA9IGdldExlbmd0aEZyb21BeGlzKG1haW5BeGlzKTtcbiAgY29uc3QgY29tbW9uQWxpZ24gPSByZWZlcmVuY2VbbGVuZ3RoXSAvIDIgLSBmbG9hdGluZ1tsZW5ndGhdIC8gMjtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgaXNWZXJ0aWNhbCA9IG1haW5BeGlzID09PSAneCc7XG4gIGxldCBjb29yZHM7XG5cbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgLSBmbG9hdGluZy5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IGNvbW1vblgsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55ICsgcmVmZXJlbmNlLmhlaWdodFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IHJlZmVyZW5jZS54IC0gZmxvYXRpbmcud2lkdGgsXG4gICAgICAgIHk6IGNvbW1vbllcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IHJlZmVyZW5jZS54LFxuICAgICAgICB5OiByZWZlcmVuY2UueVxuICAgICAgfTtcbiAgfVxuXG4gIHN3aXRjaCAoZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkpIHtcbiAgICBjYXNlICdzdGFydCc6XG4gICAgICBjb29yZHNbbWFpbkF4aXNdIC09IGNvbW1vbkFsaWduICogKHJ0bCAmJiBpc1ZlcnRpY2FsID8gLTEgOiAxKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZW5kJzpcbiAgICAgIGNvb3Jkc1ttYWluQXhpc10gKz0gY29tbW9uQWxpZ24gKiAocnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDEpO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gY29vcmRzO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyB0aGF0IHdpbGwgcGxhY2UgdGhlIGZsb2F0aW5nIGVsZW1lbnRcbiAqIG5leHQgdG8gYSByZWZlcmVuY2UgZWxlbWVudCB3aGVuIGl0IGlzIGdpdmVuIGEgY2VydGFpbiBwb3NpdGlvbmluZyBzdHJhdGVneS5cbiAqXG4gKiBUaGlzIGV4cG9ydCBkb2VzIG5vdCBoYXZlIGFueSBgcGxhdGZvcm1gIGludGVyZmFjZSBsb2dpYy4gWW91IHdpbGwgbmVlZCB0b1xuICogd3JpdGUgb25lIGZvciB0aGUgcGxhdGZvcm0geW91IGFyZSB1c2luZyBGbG9hdGluZyBVSSB3aXRoLlxuICovXG5cbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IGFzeW5jIChyZWZlcmVuY2UsIGZsb2F0aW5nLCBjb25maWcpID0+IHtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCA9ICdib3R0b20nLFxuICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcbiAgICBtaWRkbGV3YXJlID0gW10sXG4gICAgcGxhdGZvcm1cbiAgfSA9IGNvbmZpZztcbiAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChmbG9hdGluZykpO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBpZiAocGxhdGZvcm0gPT0gbnVsbCkge1xuICAgICAgY29uc29sZS5lcnJvcihbJ0Zsb2F0aW5nIFVJOiBgcGxhdGZvcm1gIHByb3BlcnR5IHdhcyBub3QgcGFzc2VkIHRvIGNvbmZpZy4gSWYgeW91JywgJ3dhbnQgdG8gdXNlIEZsb2F0aW5nIFVJIG9uIHRoZSB3ZWIsIGluc3RhbGwgQGZsb2F0aW5nLXVpL2RvbScsICdpbnN0ZWFkIG9mIHRoZSAvY29yZSBwYWNrYWdlLiBPdGhlcndpc2UsIHlvdSBjYW4gY3JlYXRlIHlvdXIgb3duJywgJ2BwbGF0Zm9ybWA6IGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvcGxhdGZvcm0nXS5qb2luKCcgJykpO1xuICAgIH1cblxuICAgIGlmIChtaWRkbGV3YXJlLmZpbHRlcihfcmVmID0+IHtcbiAgICAgIGxldCB7XG4gICAgICAgIG5hbWVcbiAgICAgIH0gPSBfcmVmO1xuICAgICAgcmV0dXJuIG5hbWUgPT09ICdhdXRvUGxhY2VtZW50JyB8fCBuYW1lID09PSAnZmxpcCc7XG4gICAgfSkubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFsnRmxvYXRpbmcgVUk6IGR1cGxpY2F0ZSBgZmxpcGAgYW5kL29yIGBhdXRvUGxhY2VtZW50YCcsICdtaWRkbGV3YXJlIGRldGVjdGVkLiBUaGlzIHdpbGwgbGVhZCB0byBhbiBpbmZpbml0ZSBsb29wLiBFbnN1cmUgb25seScsICdvbmUgb2YgZWl0aGVyIGhhcyBiZWVuIHBhc3NlZCB0byB0aGUgYG1pZGRsZXdhcmVgIGFycmF5LiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcbiAgICByZWZlcmVuY2UsXG4gICAgZmxvYXRpbmcsXG4gICAgc3RyYXRlZ3lcbiAgfSk7XG4gIGxldCB7XG4gICAgeCxcbiAgICB5XG4gIH0gPSBjb21wdXRlQ29vcmRzRnJvbVBsYWNlbWVudChyZWN0cywgcGxhY2VtZW50LCBydGwpO1xuICBsZXQgc3RhdGVmdWxQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gIGxldCBtaWRkbGV3YXJlRGF0YSA9IHt9O1xuICBsZXQgcmVzZXRDb3VudCA9IDA7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaWRkbGV3YXJlLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIGZuXG4gICAgfSA9IG1pZGRsZXdhcmVbaV07XG4gICAgY29uc3Qge1xuICAgICAgeDogbmV4dFgsXG4gICAgICB5OiBuZXh0WSxcbiAgICAgIGRhdGEsXG4gICAgICByZXNldFxuICAgIH0gPSBhd2FpdCBmbih7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIGluaXRpYWxQbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgZmxvYXRpbmdcbiAgICAgIH1cbiAgICB9KTtcbiAgICB4ID0gbmV4dFggIT0gbnVsbCA/IG5leHRYIDogeDtcbiAgICB5ID0gbmV4dFkgIT0gbnVsbCA/IG5leHRZIDogeTtcbiAgICBtaWRkbGV3YXJlRGF0YSA9IHsgLi4ubWlkZGxld2FyZURhdGEsXG4gICAgICBbbmFtZV06IHsgLi4ubWlkZGxld2FyZURhdGFbbmFtZV0sXG4gICAgICAgIC4uLmRhdGFcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgaWYgKHJlc2V0Q291bnQgPiA1MCkge1xuICAgICAgICBjb25zb2xlLndhcm4oWydGbG9hdGluZyBVSTogVGhlIG1pZGRsZXdhcmUgbGlmZWN5Y2xlIGFwcGVhcnMgdG8gYmUgcnVubmluZyBpbiBhbicsICdpbmZpbml0ZSBsb29wLiBUaGlzIGlzIHVzdWFsbHkgY2F1c2VkIGJ5IGEgYHJlc2V0YCBjb250aW51YWxseScsICdiZWluZyByZXR1cm5lZCB3aXRob3V0IGEgYnJlYWsgY29uZGl0aW9uLiddLmpvaW4oJyAnKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc2V0ICYmIHJlc2V0Q291bnQgPD0gNTApIHtcbiAgICAgIHJlc2V0Q291bnQrKztcblxuICAgICAgaWYgKHR5cGVvZiByZXNldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKHJlc2V0LnBsYWNlbWVudCkge1xuICAgICAgICAgIHN0YXRlZnVsUGxhY2VtZW50ID0gcmVzZXQucGxhY2VtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc2V0LnJlY3RzKSB7XG4gICAgICAgICAgcmVjdHMgPSByZXNldC5yZWN0cyA9PT0gdHJ1ZSA/IGF3YWl0IHBsYXRmb3JtLmdldEVsZW1lbnRSZWN0cyh7XG4gICAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgICBmbG9hdGluZyxcbiAgICAgICAgICAgIHN0cmF0ZWd5XG4gICAgICAgICAgfSkgOiByZXNldC5yZWN0cztcbiAgICAgICAgfVxuXG4gICAgICAgICh7XG4gICAgICAgICAgeCxcbiAgICAgICAgICB5XG4gICAgICAgIH0gPSBjb21wdXRlQ29vcmRzRnJvbVBsYWNlbWVudChyZWN0cywgc3RhdGVmdWxQbGFjZW1lbnQsIHJ0bCkpO1xuICAgICAgfVxuXG4gICAgICBpID0gLTE7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeSxcbiAgICBwbGFjZW1lbnQ6IHN0YXRlZnVsUGxhY2VtZW50LFxuICAgIHN0cmF0ZWd5LFxuICAgIG1pZGRsZXdhcmVEYXRhXG4gIH07XG59O1xuXG5mdW5jdGlvbiBleHBhbmRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICB0b3A6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgLi4ucGFkZGluZ1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRTaWRlT2JqZWN0RnJvbVBhZGRpbmcocGFkZGluZykge1xuICByZXR1cm4gdHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gZXhwYW5kUGFkZGluZ09iamVjdChwYWRkaW5nKSA6IHtcbiAgICB0b3A6IHBhZGRpbmcsXG4gICAgcmlnaHQ6IHBhZGRpbmcsXG4gICAgYm90dG9tOiBwYWRkaW5nLFxuICAgIGxlZnQ6IHBhZGRpbmdcbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XG4gIHJldHVybiB7IC4uLnJlY3QsXG4gICAgdG9wOiByZWN0LnksXG4gICAgbGVmdDogcmVjdC54LFxuICAgIHJpZ2h0OiByZWN0LnggKyByZWN0LndpZHRoLFxuICAgIGJvdHRvbTogcmVjdC55ICsgcmVjdC5oZWlnaHRcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aXRoIGFuIG9iamVjdCBvZiBvdmVyZmxvdyBzaWRlIG9mZnNldHMgdGhhdCBkZXRlcm1pbmUgaG93IG11Y2ggdGhlXG4gKiBlbGVtZW50IGlzIG92ZXJmbG93aW5nIGEgZ2l2ZW4gY2xpcHBpbmcgYm91bmRhcnkuXG4gKiAtIHBvc2l0aXZlID0gb3ZlcmZsb3dpbmcgdGhlIGJvdW5kYXJ5IGJ5IHRoYXQgbnVtYmVyIG9mIHBpeGVsc1xuICogLSBuZWdhdGl2ZSA9IGhvdyBtYW55IHBpeGVscyBsZWZ0IGJlZm9yZSBpdCB3aWxsIG92ZXJmbG93XG4gKiAtIDAgPSBsaWVzIGZsdXNoIHdpdGggdGhlIGJvdW5kYXJ5XG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZGV0ZWN0T3ZlcmZsb3dcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGV0ZWN0T3ZlcmZsb3cobWlkZGxld2FyZUFyZ3VtZW50cywgb3B0aW9ucykge1xuICB2YXIgX2F3YWl0JHBsYXRmb3JtJGlzRWxlO1xuXG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICBjb25zdCB7XG4gICAgeCxcbiAgICB5LFxuICAgIHBsYXRmb3JtLFxuICAgIHJlY3RzLFxuICAgIGVsZW1lbnRzLFxuICAgIHN0cmF0ZWd5XG4gIH0gPSBtaWRkbGV3YXJlQXJndW1lbnRzO1xuICBjb25zdCB7XG4gICAgYm91bmRhcnkgPSAnY2xpcHBpbmdBbmNlc3RvcnMnLFxuICAgIHJvb3RCb3VuZGFyeSA9ICd2aWV3cG9ydCcsXG4gICAgZWxlbWVudENvbnRleHQgPSAnZmxvYXRpbmcnLFxuICAgIGFsdEJvdW5kYXJ5ID0gZmFsc2UsXG4gICAgcGFkZGluZyA9IDBcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHBhZGRpbmdPYmplY3QgPSBnZXRTaWRlT2JqZWN0RnJvbVBhZGRpbmcocGFkZGluZyk7XG4gIGNvbnN0IGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gJ2Zsb2F0aW5nJyA/ICdyZWZlcmVuY2UnIDogJ2Zsb2F0aW5nJztcbiAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2FsdEJvdW5kYXJ5ID8gYWx0Q29udGV4dCA6IGVsZW1lbnRDb250ZXh0XTtcbiAgY29uc3QgY2xpcHBpbmdDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChhd2FpdCBwbGF0Zm9ybS5nZXRDbGlwcGluZ1JlY3Qoe1xuICAgIGVsZW1lbnQ6ICgoX2F3YWl0JHBsYXRmb3JtJGlzRWxlID0gYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGVsZW1lbnQpKSkgIT0gbnVsbCA/IF9hd2FpdCRwbGF0Zm9ybSRpc0VsZSA6IHRydWUpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgKGF3YWl0IChwbGF0Zm9ybS5nZXREb2N1bWVudEVsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldERvY3VtZW50RWxlbWVudChlbGVtZW50cy5mbG9hdGluZykpKSxcbiAgICBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnksXG4gICAgc3RyYXRlZ3lcbiAgfSkpO1xuICBjb25zdCBlbGVtZW50Q2xpZW50UmVjdCA9IHJlY3RUb0NsaWVudFJlY3QocGxhdGZvcm0uY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3QgPyBhd2FpdCBwbGF0Zm9ybS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCh7XG4gICAgcmVjdDogZWxlbWVudENvbnRleHQgPT09ICdmbG9hdGluZycgPyB7IC4uLnJlY3RzLmZsb2F0aW5nLFxuICAgICAgeCxcbiAgICAgIHlcbiAgICB9IDogcmVjdHMucmVmZXJlbmNlLFxuICAgIG9mZnNldFBhcmVudDogYXdhaXQgKHBsYXRmb3JtLmdldE9mZnNldFBhcmVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnRzLmZsb2F0aW5nKSksXG4gICAgc3RyYXRlZ3lcbiAgfSkgOiByZWN0c1tlbGVtZW50Q29udGV4dF0pO1xuICByZXR1cm4ge1xuICAgIHRvcDogY2xpcHBpbmdDbGllbnRSZWN0LnRvcCAtIGVsZW1lbnRDbGllbnRSZWN0LnRvcCArIHBhZGRpbmdPYmplY3QudG9wLFxuICAgIGJvdHRvbTogZWxlbWVudENsaWVudFJlY3QuYm90dG9tIC0gY2xpcHBpbmdDbGllbnRSZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tLFxuICAgIGxlZnQ6IGNsaXBwaW5nQ2xpZW50UmVjdC5sZWZ0IC0gZWxlbWVudENsaWVudFJlY3QubGVmdCArIHBhZGRpbmdPYmplY3QubGVmdCxcbiAgICByaWdodDogZWxlbWVudENsaWVudFJlY3QucmlnaHQgLSBjbGlwcGluZ0NsaWVudFJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0XG4gIH07XG59XG5cbmNvbnN0IG1pbiA9IE1hdGgubWluO1xuY29uc3QgbWF4ID0gTWF0aC5tYXg7XG5cbmZ1bmN0aW9uIHdpdGhpbihtaW4kMSwgdmFsdWUsIG1heCQxKSB7XG4gIHJldHVybiBtYXgobWluJDEsIG1pbih2YWx1ZSwgbWF4JDEpKTtcbn1cblxuLyoqXG4gKiBQb3NpdGlvbnMgYW4gaW5uZXIgZWxlbWVudCBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBzdWNoIHRoYXQgaXQgaXMgY2VudGVyZWRcbiAqIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hcnJvd1xuICovXG5jb25zdCBhcnJvdyA9IG9wdGlvbnMgPT4gKHtcbiAgbmFtZTogJ2Fycm93JyxcbiAgb3B0aW9ucyxcblxuICBhc3luYyBmbihtaWRkbGV3YXJlQXJndW1lbnRzKSB7XG4gICAgLy8gU2luY2UgYGVsZW1lbnRgIGlzIHJlcXVpcmVkLCB3ZSBkb24ndCBQYXJ0aWFsPD4gdGhlIHR5cGVcbiAgICBjb25zdCB7XG4gICAgICBlbGVtZW50LFxuICAgICAgcGFkZGluZyA9IDBcbiAgICB9ID0gb3B0aW9ucyAhPSBudWxsID8gb3B0aW9ucyA6IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybVxuICAgIH0gPSBtaWRkbGV3YXJlQXJndW1lbnRzO1xuXG4gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0Zsb2F0aW5nIFVJOiBObyBgZWxlbWVudGAgd2FzIHBhc3NlZCB0byB0aGUgYGFycm93YCBtaWRkbGV3YXJlLicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFNpZGVPYmplY3RGcm9tUGFkZGluZyhwYWRkaW5nKTtcbiAgICBjb25zdCBjb29yZHMgPSB7XG4gICAgICB4LFxuICAgICAgeVxuICAgIH07XG4gICAgY29uc3QgYXhpcyA9IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICAgIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGdldExlbmd0aEZyb21BeGlzKGF4aXMpO1xuICAgIGNvbnN0IGFycm93RGltZW5zaW9ucyA9IGF3YWl0IHBsYXRmb3JtLmdldERpbWVuc2lvbnMoZWxlbWVudCk7XG4gICAgY29uc3QgbWluUHJvcCA9IGF4aXMgPT09ICd5JyA/ICd0b3AnIDogJ2xlZnQnO1xuICAgIGNvbnN0IG1heFByb3AgPSBheGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgY29uc3QgZW5kRGlmZiA9IHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdICsgcmVjdHMucmVmZXJlbmNlW2F4aXNdIC0gY29vcmRzW2F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICBjb25zdCBzdGFydERpZmYgPSBjb29yZHNbYXhpc10gLSByZWN0cy5yZWZlcmVuY2VbYXhpc107XG4gICAgY29uc3QgYXJyb3dPZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkpO1xuICAgIGxldCBjbGllbnRTaXplID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBheGlzID09PSAneScgPyBhcnJvd09mZnNldFBhcmVudC5jbGllbnRIZWlnaHQgfHwgMCA6IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFdpZHRoIHx8IDAgOiAwO1xuXG4gICAgaWYgKGNsaWVudFNpemUgPT09IDApIHtcbiAgICAgIGNsaWVudFNpemUgPSByZWN0cy5mbG9hdGluZ1tsZW5ndGhdO1xuICAgIH1cblxuICAgIGNvbnN0IGNlbnRlclRvUmVmZXJlbmNlID0gZW5kRGlmZiAvIDIgLSBzdGFydERpZmYgLyAyOyAvLyBNYWtlIHN1cmUgdGhlIGFycm93IGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaWYgdGhlIGNlbnRlclxuICAgIC8vIHBvaW50IGlzIG91dHNpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQncyBib3VuZHNcblxuICAgIGNvbnN0IG1pbiA9IHBhZGRpbmdPYmplY3RbbWluUHJvcF07XG4gICAgY29uc3QgbWF4ID0gY2xpZW50U2l6ZSAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC0gcGFkZGluZ09iamVjdFttYXhQcm9wXTtcbiAgICBjb25zdCBjZW50ZXIgPSBjbGllbnRTaXplIC8gMiAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC8gMiArIGNlbnRlclRvUmVmZXJlbmNlO1xuICAgIGNvbnN0IG9mZnNldCA9IHdpdGhpbihtaW4sIGNlbnRlciwgbWF4KTsgLy8gTWFrZSBzdXJlIHRoYXQgYXJyb3cgcG9pbnRzIGF0IHRoZSByZWZlcmVuY2VcblxuICAgIGNvbnN0IGFsaWdubWVudFBhZGRpbmcgPSBhbGlnbm1lbnQgPT09ICdzdGFydCcgPyBwYWRkaW5nT2JqZWN0W21pblByb3BdIDogcGFkZGluZ09iamVjdFttYXhQcm9wXTtcbiAgICBjb25zdCBzaG91bGRBZGRPZmZzZXQgPSBhbGlnbm1lbnRQYWRkaW5nID4gMCAmJiBjZW50ZXIgIT09IG9mZnNldCAmJiByZWN0cy5yZWZlcmVuY2VbbGVuZ3RoXSA8PSByZWN0cy5mbG9hdGluZ1tsZW5ndGhdO1xuICAgIGNvbnN0IGFsaWdubWVudE9mZnNldCA9IHNob3VsZEFkZE9mZnNldCA/IGNlbnRlciA8IG1pbiA/IG1pbiAtIGNlbnRlciA6IG1heCAtIGNlbnRlciA6IDA7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtheGlzXTogY29vcmRzW2F4aXNdIC0gYWxpZ25tZW50T2Zmc2V0LFxuICAgICAgZGF0YToge1xuICAgICAgICBbYXhpc106IG9mZnNldCxcbiAgICAgICAgY2VudGVyT2Zmc2V0OiBjZW50ZXIgLSBvZmZzZXRcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbn0pO1xuXG5jb25zdCBoYXNoJDEgPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgbWF0Y2hlZCA9PiBoYXNoJDFbbWF0Y2hlZF0pO1xufVxuXG5mdW5jdGlvbiBnZXRBbGlnbm1lbnRTaWRlcyhwbGFjZW1lbnQsIHJlY3RzLCBydGwpIHtcbiAgaWYgKHJ0bCA9PT0gdm9pZCAwKSB7XG4gICAgcnRsID0gZmFsc2U7XG4gIH1cblxuICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgY29uc3QgbWFpbkF4aXMgPSBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgY29uc3QgbGVuZ3RoID0gZ2V0TGVuZ3RoRnJvbUF4aXMobWFpbkF4aXMpO1xuICBsZXQgbWFpbkFsaWdubWVudFNpZGUgPSBtYWluQXhpcyA9PT0gJ3gnID8gYWxpZ25tZW50ID09PSAocnRsID8gJ2VuZCcgOiAnc3RhcnQnKSA/ICdyaWdodCcgOiAnbGVmdCcgOiBhbGlnbm1lbnQgPT09ICdzdGFydCcgPyAnYm90dG9tJyA6ICd0b3AnO1xuXG4gIGlmIChyZWN0cy5yZWZlcmVuY2VbbGVuZ3RoXSA+IHJlY3RzLmZsb2F0aW5nW2xlbmd0aF0pIHtcbiAgICBtYWluQWxpZ25tZW50U2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWFpbjogbWFpbkFsaWdubWVudFNpZGUsXG4gICAgY3Jvc3M6IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKVxuICB9O1xufVxuXG5jb25zdCBoYXNoID0ge1xuICBzdGFydDogJ2VuZCcsXG4gIGVuZDogJ3N0YXJ0J1xufTtcbmZ1bmN0aW9uIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL3N0YXJ0fGVuZC9nLCBtYXRjaGVkID0+IGhhc2hbbWF0Y2hlZF0pO1xufVxuXG5jb25zdCBzaWRlcyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J107XG5jb25zdCBhbGxQbGFjZW1lbnRzID0gLyojX19QVVJFX18qL3NpZGVzLnJlZHVjZSgoYWNjLCBzaWRlKSA9PiBhY2MuY29uY2F0KHNpZGUsIHNpZGUgKyBcIi1zdGFydFwiLCBzaWRlICsgXCItZW5kXCIpLCBbXSk7XG5cbmZ1bmN0aW9uIGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50LCBhdXRvQWxpZ25tZW50LCBhbGxvd2VkUGxhY2VtZW50cykge1xuICBjb25zdCBhbGxvd2VkUGxhY2VtZW50c1NvcnRlZEJ5QWxpZ25tZW50ID0gYWxpZ25tZW50ID8gWy4uLmFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgPT09IGFsaWdubWVudCksIC4uLmFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgIT09IGFsaWdubWVudCldIDogYWxsb3dlZFBsYWNlbWVudHMuZmlsdGVyKHBsYWNlbWVudCA9PiBnZXRTaWRlKHBsYWNlbWVudCkgPT09IHBsYWNlbWVudCk7XG4gIHJldHVybiBhbGxvd2VkUGxhY2VtZW50c1NvcnRlZEJ5QWxpZ25tZW50LmZpbHRlcihwbGFjZW1lbnQgPT4ge1xuICAgIGlmIChhbGlnbm1lbnQpIHtcbiAgICAgIHJldHVybiBnZXRBbGlnbm1lbnQocGxhY2VtZW50KSA9PT0gYWxpZ25tZW50IHx8IChhdXRvQWxpZ25tZW50ID8gZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSAhPT0gcGxhY2VtZW50IDogZmFsc2UpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWNhbGx5IGNob29zZXMgdGhlIGBwbGFjZW1lbnRgIHdoaWNoIGhhcyB0aGUgbW9zdCBzcGFjZSBhdmFpbGFibGUuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2F1dG9QbGFjZW1lbnQnLFxuICAgIG9wdGlvbnMsXG5cbiAgICBhc3luYyBmbihtaWRkbGV3YXJlQXJndW1lbnRzKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJGF1dG9QLCBfbWlkZGxld2FyZURhdGEkYXV0b1AyLCBfbWlkZGxld2FyZURhdGEkYXV0b1AzLCBfbWlkZGxld2FyZURhdGEkYXV0b1A0LCBfcGxhY2VtZW50c1NvcnRlZEJ5TGU7XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IG1pZGRsZXdhcmVBcmd1bWVudHM7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGFsaWdubWVudCA9IG51bGwsXG4gICAgICAgIGFsbG93ZWRQbGFjZW1lbnRzID0gYWxsUGxhY2VtZW50cyxcbiAgICAgICAgYXV0b0FsaWdubWVudCA9IHRydWUsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzID0gZ2V0UGxhY2VtZW50TGlzdChhbGlnbm1lbnQsIGF1dG9BbGlnbm1lbnQsIGFsbG93ZWRQbGFjZW1lbnRzKTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3cobWlkZGxld2FyZUFyZ3VtZW50cywgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IChfbWlkZGxld2FyZURhdGEkYXV0b1AgPSAoX21pZGRsZXdhcmVEYXRhJGF1dG9QMiA9IG1pZGRsZXdhcmVEYXRhLmF1dG9QbGFjZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkYXV0b1AyLmluZGV4KSAhPSBudWxsID8gX21pZGRsZXdhcmVEYXRhJGF1dG9QIDogMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzW2N1cnJlbnRJbmRleF07XG5cbiAgICAgIGlmIChjdXJyZW50UGxhY2VtZW50ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIG1haW4sXG4gICAgICAgIGNyb3NzXG4gICAgICB9ID0gZ2V0QWxpZ25tZW50U2lkZXMoY3VycmVudFBsYWNlbWVudCwgcmVjdHMsIGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZWxlbWVudHMuZmxvYXRpbmcpKSk7IC8vIE1ha2UgYGNvbXB1dGVDb29yZHNgIHN0YXJ0IGZyb20gdGhlIHJpZ2h0IHBsYWNlXG5cbiAgICAgIGlmIChwbGFjZW1lbnQgIT09IGN1cnJlbnRQbGFjZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4LFxuICAgICAgICAgIHksXG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50c1swXVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VycmVudE92ZXJmbG93cyA9IFtvdmVyZmxvd1tnZXRTaWRlKGN1cnJlbnRQbGFjZW1lbnQpXSwgb3ZlcmZsb3dbbWFpbl0sIG92ZXJmbG93W2Nyb3NzXV07XG4gICAgICBjb25zdCBhbGxPdmVyZmxvd3MgPSBbLi4uKChfbWlkZGxld2FyZURhdGEkYXV0b1AzID0gKF9taWRkbGV3YXJlRGF0YSRhdXRvUDQgPSBtaWRkbGV3YXJlRGF0YS5hdXRvUGxhY2VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGF1dG9QNC5vdmVyZmxvd3MpICE9IG51bGwgPyBfbWlkZGxld2FyZURhdGEkYXV0b1AzIDogW10pLCB7XG4gICAgICAgIHBsYWNlbWVudDogY3VycmVudFBsYWNlbWVudCxcbiAgICAgICAgb3ZlcmZsb3dzOiBjdXJyZW50T3ZlcmZsb3dzXG4gICAgICB9XTtcbiAgICAgIGNvbnN0IG5leHRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzW2N1cnJlbnRJbmRleCArIDFdOyAvLyBUaGVyZSBhcmUgbW9yZSBwbGFjZW1lbnRzIHRvIGNoZWNrXG5cbiAgICAgIGlmIChuZXh0UGxhY2VtZW50KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaW5kZXg6IGN1cnJlbnRJbmRleCArIDEsXG4gICAgICAgICAgICBvdmVyZmxvd3M6IGFsbE92ZXJmbG93c1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogbmV4dFBsYWNlbWVudFxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGxhY2VtZW50c1NvcnRlZEJ5TGVhc3RPdmVyZmxvdyA9IGFsbE92ZXJmbG93cy5zbGljZSgpLnNvcnQoKGEsIGIpID0+IGEub3ZlcmZsb3dzWzBdIC0gYi5vdmVyZmxvd3NbMF0pO1xuICAgICAgY29uc3QgcGxhY2VtZW50VGhhdEZpdHNPbkFsbFNpZGVzID0gKF9wbGFjZW1lbnRzU29ydGVkQnlMZSA9IHBsYWNlbWVudHNTb3J0ZWRCeUxlYXN0T3ZlcmZsb3cuZmluZChfcmVmID0+IHtcbiAgICAgICAgbGV0IHtcbiAgICAgICAgICBvdmVyZmxvd3NcbiAgICAgICAgfSA9IF9yZWY7XG4gICAgICAgIHJldHVybiBvdmVyZmxvd3MuZXZlcnkob3ZlcmZsb3cgPT4gb3ZlcmZsb3cgPD0gMCk7XG4gICAgICB9KSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wbGFjZW1lbnRzU29ydGVkQnlMZS5wbGFjZW1lbnQ7XG4gICAgICBjb25zdCByZXNldFBsYWNlbWVudCA9IHBsYWNlbWVudFRoYXRGaXRzT25BbGxTaWRlcyAhPSBudWxsID8gcGxhY2VtZW50VGhhdEZpdHNPbkFsbFNpZGVzIDogcGxhY2VtZW50c1NvcnRlZEJ5TGVhc3RPdmVyZmxvd1swXS5wbGFjZW1lbnQ7XG5cbiAgICAgIGlmIChyZXNldFBsYWNlbWVudCAhPT0gcGxhY2VtZW50KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaW5kZXg6IGN1cnJlbnRJbmRleCArIDEsXG4gICAgICAgICAgICBvdmVyZmxvd3M6IGFsbE92ZXJmbG93c1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogcmVzZXRQbGFjZW1lbnRcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGdldEV4cGFuZGVkUGxhY2VtZW50cyhwbGFjZW1lbnQpIHtcbiAgY29uc3Qgb3Bwb3NpdGVQbGFjZW1lbnQgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICByZXR1cm4gW2dldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCksIG9wcG9zaXRlUGxhY2VtZW50LCBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChvcHBvc2l0ZVBsYWNlbWVudCldO1xufVxuXG4vKipcbiAqIENoYW5nZXMgdGhlIHBsYWNlbWVudCBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCB0byBvbmUgdGhhdCB3aWxsIGZpdCBpZiB0aGVcbiAqIGluaXRpYWxseSBzcGVjaWZpZWQgYHBsYWNlbWVudGAgZG9lcyBub3QuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcFxuICovXG5jb25zdCBmbGlwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2ZsaXAnLFxuICAgIG9wdGlvbnMsXG5cbiAgICBhc3luYyBmbihtaWRkbGV3YXJlQXJndW1lbnRzKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJGZsaXA7XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBtaWRkbGV3YXJlRGF0YSxcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIGluaXRpYWxQbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IG1pZGRsZXdhcmVBcmd1bWVudHM7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1haW5BeGlzOiBjaGVja01haW5BeGlzID0gdHJ1ZSxcbiAgICAgICAgY3Jvc3NBeGlzOiBjaGVja0Nyb3NzQXhpcyA9IHRydWUsXG4gICAgICAgIGZhbGxiYWNrUGxhY2VtZW50czogc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzLFxuICAgICAgICBmYWxsYmFja1N0cmF0ZWd5ID0gJ2Jlc3RGaXQnLFxuICAgICAgICBmbGlwQWxpZ25tZW50ID0gdHJ1ZSxcbiAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zXG4gICAgICB9ID0gb3B0aW9ucztcbiAgICAgIGNvbnN0IHNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc0Jhc2VQbGFjZW1lbnQgPSBzaWRlID09PSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgY29uc3QgZmFsbGJhY2tQbGFjZW1lbnRzID0gc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzIHx8IChpc0Jhc2VQbGFjZW1lbnQgfHwgIWZsaXBBbGlnbm1lbnQgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQoaW5pdGlhbFBsYWNlbWVudCldIDogZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKGluaXRpYWxQbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IHBsYWNlbWVudHMgPSBbaW5pdGlhbFBsYWNlbWVudCwgLi4uZmFsbGJhY2tQbGFjZW1lbnRzXTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3cobWlkZGxld2FyZUFyZ3VtZW50cywgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IG92ZXJmbG93cyA9IFtdO1xuICAgICAgbGV0IG92ZXJmbG93c0RhdGEgPSAoKF9taWRkbGV3YXJlRGF0YSRmbGlwID0gbWlkZGxld2FyZURhdGEuZmxpcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRmbGlwLm92ZXJmbG93cykgfHwgW107XG5cbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVdKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBtYWluLFxuICAgICAgICAgIGNyb3NzXG4gICAgICAgIH0gPSBnZXRBbGlnbm1lbnRTaWRlcyhwbGFjZW1lbnQsIHJlY3RzLCBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGVsZW1lbnRzLmZsb2F0aW5nKSkpO1xuICAgICAgICBvdmVyZmxvd3MucHVzaChvdmVyZmxvd1ttYWluXSwgb3ZlcmZsb3dbY3Jvc3NdKTtcbiAgICAgIH1cblxuICAgICAgb3ZlcmZsb3dzRGF0YSA9IFsuLi5vdmVyZmxvd3NEYXRhLCB7XG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgb3ZlcmZsb3dzXG4gICAgICB9XTsgLy8gT25lIG9yIG1vcmUgc2lkZXMgaXMgb3ZlcmZsb3dpbmdcblxuICAgICAgaWYgKCFvdmVyZmxvd3MuZXZlcnkoc2lkZSA9PiBzaWRlIDw9IDApKSB7XG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkZmxpcCQsIF9taWRkbGV3YXJlRGF0YSRmbGlwMjtcblxuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoKF9taWRkbGV3YXJlRGF0YSRmbGlwJCA9IChfbWlkZGxld2FyZURhdGEkZmxpcDIgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAyLmluZGV4KSAhPSBudWxsID8gX21pZGRsZXdhcmVEYXRhJGZsaXAkIDogMCkgKyAxO1xuICAgICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50c1tuZXh0SW5kZXhdO1xuXG4gICAgICAgIGlmIChuZXh0UGxhY2VtZW50KSB7XG4gICAgICAgICAgLy8gVHJ5IG5leHQgcGxhY2VtZW50IGFuZCByZS1ydW4gdGhlIGxpZmVjeWNsZVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGluZGV4OiBuZXh0SW5kZXgsXG4gICAgICAgICAgICAgIG92ZXJmbG93czogb3ZlcmZsb3dzRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICAgIHBsYWNlbWVudDogbmV4dFBsYWNlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVzZXRQbGFjZW1lbnQgPSAnYm90dG9tJztcblxuICAgICAgICBzd2l0Y2ggKGZhbGxiYWNrU3RyYXRlZ3kpIHtcbiAgICAgICAgICBjYXNlICdiZXN0Rml0JzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFyIF9vdmVyZmxvd3NEYXRhJG1hcCRzbztcblxuICAgICAgICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSAoX292ZXJmbG93c0RhdGEkbWFwJHNvID0gb3ZlcmZsb3dzRGF0YS5tYXAoZCA9PiBbZCwgZC5vdmVyZmxvd3MuZmlsdGVyKG92ZXJmbG93ID0+IG92ZXJmbG93ID4gMCkucmVkdWNlKChhY2MsIG92ZXJmbG93KSA9PiBhY2MgKyBvdmVyZmxvdywgMCldKS5zb3J0KChhLCBiKSA9PiBhWzFdIC0gYlsxXSlbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfb3ZlcmZsb3dzRGF0YSRtYXAkc29bMF0ucGxhY2VtZW50O1xuXG4gICAgICAgICAgICAgIGlmIChwbGFjZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZXNldFBsYWNlbWVudCA9IHBsYWNlbWVudDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnaW5pdGlhbFBsYWNlbWVudCc6XG4gICAgICAgICAgICByZXNldFBsYWNlbWVudCA9IGluaXRpYWxQbGFjZW1lbnQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwbGFjZW1lbnQgIT09IHJlc2V0UGxhY2VtZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICAgIHBsYWNlbWVudDogcmVzZXRQbGFjZW1lbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0KSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiBvdmVyZmxvdy50b3AgLSByZWN0LmhlaWdodCxcbiAgICByaWdodDogb3ZlcmZsb3cucmlnaHQgLSByZWN0LndpZHRoLFxuICAgIGJvdHRvbTogb3ZlcmZsb3cuYm90dG9tIC0gcmVjdC5oZWlnaHQsXG4gICAgbGVmdDogb3ZlcmZsb3cubGVmdCAtIHJlY3Qud2lkdGhcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG92ZXJmbG93KSB7XG4gIHJldHVybiBzaWRlcy5zb21lKHNpZGUgPT4gb3ZlcmZsb3dbc2lkZV0gPj0gMCk7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBoaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50IGluIGFwcGxpY2FibGUgc2l0dWF0aW9ucywgc3VjaCBhc1xuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaGlkZVxuICovXG5jb25zdCBoaWRlID0gZnVuY3Rpb24gKF90ZW1wKSB7XG4gIGxldCB7XG4gICAgc3RyYXRlZ3kgPSAncmVmZXJlbmNlSGlkZGVuJyxcbiAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgfSA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdoaWRlJyxcblxuICAgIGFzeW5jIGZuKG1pZGRsZXdhcmVBcmd1bWVudHMpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcmVjdHNcbiAgICAgIH0gPSBtaWRkbGV3YXJlQXJndW1lbnRzO1xuXG4gICAgICBzd2l0Y2ggKHN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgJ3JlZmVyZW5jZUhpZGRlbic6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhtaWRkbGV3YXJlQXJndW1lbnRzLCB7IC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdHMucmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VIaWRkZW5PZmZzZXRzOiBvZmZzZXRzLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZUhpZGRlbjogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ2VzY2FwZWQnOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3cobWlkZGxld2FyZUFyZ3VtZW50cywgeyAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMsXG4gICAgICAgICAgICAgIGFsdEJvdW5kYXJ5OiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdHMuZmxvYXRpbmcpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGVzY2FwZWRPZmZzZXRzOiBvZmZzZXRzLFxuICAgICAgICAgICAgICAgIGVzY2FwZWQ6IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChvZmZzZXRzKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIH07XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjb252ZXJ0VmFsdWVUb0Nvb3JkcyhtaWRkbGV3YXJlQXJndW1lbnRzLCB2YWx1ZSkge1xuICBjb25zdCB7XG4gICAgcGxhY2VtZW50LFxuICAgIHBsYXRmb3JtLFxuICAgIGVsZW1lbnRzXG4gIH0gPSBtaWRkbGV3YXJlQXJndW1lbnRzO1xuICBjb25zdCBydGwgPSBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGVsZW1lbnRzLmZsb2F0aW5nKSk7XG4gIGNvbnN0IHNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICBjb25zdCBpc1ZlcnRpY2FsID0gZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50KHBsYWNlbWVudCkgPT09ICd4JztcbiAgY29uc3QgbWFpbkF4aXNNdWx0aSA9IFsnbGVmdCcsICd0b3AnXS5pbmNsdWRlcyhzaWRlKSA/IC0xIDogMTtcbiAgY29uc3QgY3Jvc3NBeGlzTXVsdGkgPSBydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMTtcbiAgY29uc3QgcmF3VmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZShtaWRkbGV3YXJlQXJndW1lbnRzKSA6IHZhbHVlOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5cbiAgbGV0IHtcbiAgICBtYWluQXhpcyxcbiAgICBjcm9zc0F4aXMsXG4gICAgYWxpZ25tZW50QXhpc1xuICB9ID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnbnVtYmVyJyA/IHtcbiAgICBtYWluQXhpczogcmF3VmFsdWUsXG4gICAgY3Jvc3NBeGlzOiAwLFxuICAgIGFsaWdubWVudEF4aXM6IG51bGxcbiAgfSA6IHtcbiAgICBtYWluQXhpczogMCxcbiAgICBjcm9zc0F4aXM6IDAsXG4gICAgYWxpZ25tZW50QXhpczogbnVsbCxcbiAgICAuLi5yYXdWYWx1ZVxuICB9O1xuXG4gIGlmIChhbGlnbm1lbnQgJiYgdHlwZW9mIGFsaWdubWVudEF4aXMgPT09ICdudW1iZXInKSB7XG4gICAgY3Jvc3NBeGlzID0gYWxpZ25tZW50ID09PSAnZW5kJyA/IGFsaWdubWVudEF4aXMgKiAtMSA6IGFsaWdubWVudEF4aXM7XG4gIH1cblxuICByZXR1cm4gaXNWZXJ0aWNhbCA/IHtcbiAgICB4OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aSxcbiAgICB5OiBtYWluQXhpcyAqIG1haW5BeGlzTXVsdGlcbiAgfSA6IHtcbiAgICB4OiBtYWluQXhpcyAqIG1haW5BeGlzTXVsdGksXG4gICAgeTogY3Jvc3NBeGlzICogY3Jvc3NBeGlzTXVsdGlcbiAgfTtcbn1cbi8qKlxuICogRGlzcGxhY2VzIHRoZSBmbG9hdGluZyBlbGVtZW50IGZyb20gaXRzIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL29mZnNldFxuICovXG5cbmNvbnN0IG9mZnNldCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09IHZvaWQgMCkge1xuICAgIHZhbHVlID0gMDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ29mZnNldCcsXG4gICAgb3B0aW9uczogdmFsdWUsXG5cbiAgICBhc3luYyBmbihtaWRkbGV3YXJlQXJndW1lbnRzKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHgsXG4gICAgICAgIHlcbiAgICAgIH0gPSBtaWRkbGV3YXJlQXJndW1lbnRzO1xuICAgICAgY29uc3QgZGlmZkNvb3JkcyA9IGF3YWl0IGNvbnZlcnRWYWx1ZVRvQ29vcmRzKG1pZGRsZXdhcmVBcmd1bWVudHMsIHZhbHVlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHggKyBkaWZmQ29vcmRzLngsXG4gICAgICAgIHk6IHkgKyBkaWZmQ29vcmRzLnksXG4gICAgICAgIGRhdGE6IGRpZmZDb29yZHNcbiAgICAgIH07XG4gICAgfVxuXG4gIH07XG59O1xuXG5mdW5jdGlvbiBnZXRDcm9zc0F4aXMoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3gnID8gJ3knIDogJ3gnO1xufVxuXG4vKipcbiAqIFNoaWZ0cyB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBvcmRlciB0byBrZWVwIGl0IGluIHZpZXcgd2hlbiBpdCB3aWxsIG92ZXJmbG93XG4gKiBhIGNsaXBwaW5nIGJvdW5kYXJ5LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NoaWZ0XG4gKi9cbmNvbnN0IHNoaWZ0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NoaWZ0JyxcbiAgICBvcHRpb25zLFxuXG4gICAgYXN5bmMgZm4obWlkZGxld2FyZUFyZ3VtZW50cykge1xuICAgICAgY29uc3Qge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBwbGFjZW1lbnRcbiAgICAgIH0gPSBtaWRkbGV3YXJlQXJndW1lbnRzO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSBmYWxzZSxcbiAgICAgICAgbGltaXRlciA9IHtcbiAgICAgICAgICBmbjogX3JlZiA9PiB7XG4gICAgICAgICAgICBsZXQge1xuICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICB5XG4gICAgICAgICAgICB9ID0gX3JlZjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgIHlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBvcHRpb25zO1xuICAgICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgICB4LFxuICAgICAgICB5XG4gICAgICB9O1xuICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhtaWRkbGV3YXJlQXJndW1lbnRzLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3QgbWFpbkF4aXMgPSBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQoZ2V0U2lkZShwbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IGNyb3NzQXhpcyA9IGdldENyb3NzQXhpcyhtYWluQXhpcyk7XG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XG4gICAgICBsZXQgY3Jvc3NBeGlzQ29vcmQgPSBjb29yZHNbY3Jvc3NBeGlzXTtcblxuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgY29uc3QgbWluU2lkZSA9IG1haW5BeGlzID09PSAneScgPyAndG9wJyA6ICdsZWZ0JztcbiAgICAgICAgY29uc3QgbWF4U2lkZSA9IG1haW5BeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IG1haW5BeGlzQ29vcmQgKyBvdmVyZmxvd1ttaW5TaWRlXTtcbiAgICAgICAgY29uc3QgbWF4ID0gbWFpbkF4aXNDb29yZCAtIG92ZXJmbG93W21heFNpZGVdO1xuICAgICAgICBtYWluQXhpc0Nvb3JkID0gd2l0aGluKG1pbiwgbWFpbkF4aXNDb29yZCwgbWF4KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIGNvbnN0IG1pblNpZGUgPSBjcm9zc0F4aXMgPT09ICd5JyA/ICd0b3AnIDogJ2xlZnQnO1xuICAgICAgICBjb25zdCBtYXhTaWRlID0gY3Jvc3NBeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IGNyb3NzQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XG4gICAgICAgIGNvbnN0IG1heCA9IGNyb3NzQXhpc0Nvb3JkIC0gb3ZlcmZsb3dbbWF4U2lkZV07XG4gICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gd2l0aGluKG1pbiwgY3Jvc3NBeGlzQ29vcmQsIG1heCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxpbWl0ZWRDb29yZHMgPSBsaW1pdGVyLmZuKHsgLi4ubWlkZGxld2FyZUFyZ3VtZW50cyxcbiAgICAgICAgW21haW5BeGlzXTogbWFpbkF4aXNDb29yZCxcbiAgICAgICAgW2Nyb3NzQXhpc106IGNyb3NzQXhpc0Nvb3JkXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7IC4uLmxpbWl0ZWRDb29yZHMsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB4OiBsaW1pdGVkQ29vcmRzLnggLSB4LFxuICAgICAgICAgIHk6IGxpbWl0ZWRDb29yZHMueSAtIHlcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgfTtcbn07XG5cbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvcHRpb25zLFxuXG4gICAgZm4obWlkZGxld2FyZUFyZ3VtZW50cykge1xuICAgICAgY29uc3Qge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBtaWRkbGV3YXJlRGF0YVxuICAgICAgfSA9IG1pZGRsZXdhcmVBcmd1bWVudHM7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG9mZnNldCA9IDAsXG4gICAgICAgIG1haW5BeGlzOiBjaGVja01haW5BeGlzID0gdHJ1ZSxcbiAgICAgICAgY3Jvc3NBeGlzOiBjaGVja0Nyb3NzQXhpcyA9IHRydWVcbiAgICAgIH0gPSBvcHRpb25zO1xuICAgICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgICB4LFxuICAgICAgICB5XG4gICAgICB9O1xuICAgICAgY29uc3QgbWFpbkF4aXMgPSBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IGNyb3NzQXhpcyA9IGdldENyb3NzQXhpcyhtYWluQXhpcyk7XG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XG4gICAgICBsZXQgY3Jvc3NBeGlzQ29vcmQgPSBjb29yZHNbY3Jvc3NBeGlzXTtcbiAgICAgIGNvbnN0IHJhd09mZnNldCA9IHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicgPyBvZmZzZXQobWlkZGxld2FyZUFyZ3VtZW50cykgOiBvZmZzZXQ7XG4gICAgICBjb25zdCBjb21wdXRlZE9mZnNldCA9IHR5cGVvZiByYXdPZmZzZXQgPT09ICdudW1iZXInID8ge1xuICAgICAgICBtYWluQXhpczogcmF3T2Zmc2V0LFxuICAgICAgICBjcm9zc0F4aXM6IDBcbiAgICAgIH0gOiB7XG4gICAgICAgIG1haW5BeGlzOiAwLFxuICAgICAgICBjcm9zc0F4aXM6IDAsXG4gICAgICAgIC4uLnJhd09mZnNldFxuICAgICAgfTtcblxuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgY29uc3QgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbiAgICAgICAgY29uc3QgbGltaXRNaW4gPSByZWN0cy5yZWZlcmVuY2VbbWFpbkF4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuXSArIGNvbXB1dGVkT2Zmc2V0Lm1haW5BeGlzO1xuICAgICAgICBjb25zdCBsaW1pdE1heCA9IHJlY3RzLnJlZmVyZW5jZVttYWluQXhpc10gKyByZWN0cy5yZWZlcmVuY2VbbGVuXSAtIGNvbXB1dGVkT2Zmc2V0Lm1haW5BeGlzO1xuXG4gICAgICAgIGlmIChtYWluQXhpc0Nvb3JkIDwgbGltaXRNaW4pIHtcbiAgICAgICAgICBtYWluQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAobWFpbkF4aXNDb29yZCA+IGxpbWl0TWF4KSB7XG4gICAgICAgICAgbWFpbkF4aXNDb29yZCA9IGxpbWl0TWF4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGVja0Nyb3NzQXhpcykge1xuICAgICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJG9mZnNlLCBfbWlkZGxld2FyZURhdGEkb2Zmc2UyLCBfbWlkZGxld2FyZURhdGEkb2Zmc2UzLCBfbWlkZGxld2FyZURhdGEkb2Zmc2U0O1xuXG4gICAgICAgIGNvbnN0IGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnd2lkdGgnIDogJ2hlaWdodCc7XG4gICAgICAgIGNvbnN0IGlzT3JpZ2luU2lkZSA9IFsndG9wJywgJ2xlZnQnXS5pbmNsdWRlcyhnZXRTaWRlKHBsYWNlbWVudCkpO1xuICAgICAgICBjb25zdCBsaW1pdE1pbiA9IHJlY3RzLnJlZmVyZW5jZVtjcm9zc0F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuXSArIChpc09yaWdpblNpZGUgPyAoX21pZGRsZXdhcmVEYXRhJG9mZnNlID0gKF9taWRkbGV3YXJlRGF0YSRvZmZzZTIgPSBtaWRkbGV3YXJlRGF0YS5vZmZzZXQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkb2Zmc2UyW2Nyb3NzQXhpc10pICE9IG51bGwgPyBfbWlkZGxld2FyZURhdGEkb2Zmc2UgOiAwIDogMCkgKyAoaXNPcmlnaW5TaWRlID8gMCA6IGNvbXB1dGVkT2Zmc2V0LmNyb3NzQXhpcyk7XG4gICAgICAgIGNvbnN0IGxpbWl0TWF4ID0gcmVjdHMucmVmZXJlbmNlW2Nyb3NzQXhpc10gKyByZWN0cy5yZWZlcmVuY2VbbGVuXSArIChpc09yaWdpblNpZGUgPyAwIDogKF9taWRkbGV3YXJlRGF0YSRvZmZzZTMgPSAoX21pZGRsZXdhcmVEYXRhJG9mZnNlNCA9IG1pZGRsZXdhcmVEYXRhLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRvZmZzZTRbY3Jvc3NBeGlzXSkgIT0gbnVsbCA/IF9taWRkbGV3YXJlRGF0YSRvZmZzZTMgOiAwKSAtIChpc09yaWdpblNpZGUgPyBjb21wdXRlZE9mZnNldC5jcm9zc0F4aXMgOiAwKTtcblxuICAgICAgICBpZiAoY3Jvc3NBeGlzQ29vcmQgPCBsaW1pdE1pbikge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAoY3Jvc3NBeGlzQ29vcmQgPiBsaW1pdE1heCkge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNYXg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW21haW5BeGlzXTogbWFpbkF4aXNDb29yZCxcbiAgICAgICAgW2Nyb3NzQXhpc106IGNyb3NzQXhpc0Nvb3JkXG4gICAgICB9O1xuICAgIH1cblxuICB9O1xufTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudC4gRm9yIGluc3RhbmNlLFxuICogcHJldmVudCBpdCBmcm9tIG92ZXJmbG93aW5nIGl0cyBjbGlwcGluZyBib3VuZGFyeSBvciBtYXRjaCB0aGUgd2lkdGggb2YgdGhlXG4gKiByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXG4gKi9cbmNvbnN0IHNpemUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnc2l6ZScsXG4gICAgb3B0aW9ucyxcblxuICAgIGFzeW5jIGZuKG1pZGRsZXdhcmVBcmd1bWVudHMpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIGVsZW1lbnRzXG4gICAgICB9ID0gbWlkZGxld2FyZUFyZ3VtZW50cztcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYXBwbHkgPSAoKSA9PiB7fSxcbiAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zXG4gICAgICB9ID0gb3B0aW9ucztcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3cobWlkZGxld2FyZUFyZ3VtZW50cywgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IHNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgICAgIGxldCBoZWlnaHRTaWRlO1xuICAgICAgbGV0IHdpZHRoU2lkZTtcblxuICAgICAgaWYgKHNpZGUgPT09ICd0b3AnIHx8IHNpZGUgPT09ICdib3R0b20nKSB7XG4gICAgICAgIGhlaWdodFNpZGUgPSBzaWRlO1xuICAgICAgICB3aWR0aFNpZGUgPSBhbGlnbm1lbnQgPT09ICgoYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpKSA/ICdzdGFydCcgOiAnZW5kJykgPyAnbGVmdCcgOiAncmlnaHQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2lkdGhTaWRlID0gc2lkZTtcbiAgICAgICAgaGVpZ2h0U2lkZSA9IGFsaWdubWVudCA9PT0gJ2VuZCcgPyAndG9wJyA6ICdib3R0b20nO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB4TWluID0gbWF4KG92ZXJmbG93LmxlZnQsIDApO1xuICAgICAgY29uc3QgeE1heCA9IG1heChvdmVyZmxvdy5yaWdodCwgMCk7XG4gICAgICBjb25zdCB5TWluID0gbWF4KG92ZXJmbG93LnRvcCwgMCk7XG4gICAgICBjb25zdCB5TWF4ID0gbWF4KG92ZXJmbG93LmJvdHRvbSwgMCk7XG4gICAgICBjb25zdCBkaW1lbnNpb25zID0ge1xuICAgICAgICBhdmFpbGFibGVIZWlnaHQ6IHJlY3RzLmZsb2F0aW5nLmhlaWdodCAtIChbJ2xlZnQnLCAncmlnaHQnXS5pbmNsdWRlcyhwbGFjZW1lbnQpID8gMiAqICh5TWluICE9PSAwIHx8IHlNYXggIT09IDAgPyB5TWluICsgeU1heCA6IG1heChvdmVyZmxvdy50b3AsIG92ZXJmbG93LmJvdHRvbSkpIDogb3ZlcmZsb3dbaGVpZ2h0U2lkZV0pLFxuICAgICAgICBhdmFpbGFibGVXaWR0aDogcmVjdHMuZmxvYXRpbmcud2lkdGggLSAoWyd0b3AnLCAnYm90dG9tJ10uaW5jbHVkZXMocGxhY2VtZW50KSA/IDIgKiAoeE1pbiAhPT0gMCB8fCB4TWF4ICE9PSAwID8geE1pbiArIHhNYXggOiBtYXgob3ZlcmZsb3cubGVmdCwgb3ZlcmZsb3cucmlnaHQpKSA6IG92ZXJmbG93W3dpZHRoU2lkZV0pXG4gICAgICB9O1xuICAgICAgYXdhaXQgYXBwbHkoeyAuLi5taWRkbGV3YXJlQXJndW1lbnRzLFxuICAgICAgICAuLi5kaW1lbnNpb25zXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IG5leHREaW1lbnNpb25zID0gYXdhaXQgcGxhdGZvcm0uZ2V0RGltZW5zaW9ucyhlbGVtZW50cy5mbG9hdGluZyk7XG5cbiAgICAgIGlmIChyZWN0cy5mbG9hdGluZy53aWR0aCAhPT0gbmV4dERpbWVuc2lvbnMud2lkdGggfHwgcmVjdHMuZmxvYXRpbmcuaGVpZ2h0ICE9PSBuZXh0RGltZW5zaW9ucy5oZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcmVjdHM6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgfTtcbn07XG5cbi8qKlxuICogUHJvdmlkZXMgaW1wcm92ZWQgcG9zaXRpb25pbmcgZm9yIGlubGluZSByZWZlcmVuY2UgZWxlbWVudHMgdGhhdCBjYW4gc3BhblxuICogb3ZlciBtdWx0aXBsZSBsaW5lcywgc3VjaCBhcyBoeXBlcmxpbmtzIG9yIHJhbmdlIHNlbGVjdGlvbnMuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaW5saW5lXG4gKi9cbmNvbnN0IGlubGluZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdpbmxpbmUnLFxuICAgIG9wdGlvbnMsXG5cbiAgICBhc3luYyBmbihtaWRkbGV3YXJlQXJndW1lbnRzKSB7XG4gICAgICB2YXIgX2F3YWl0JHBsYXRmb3JtJGdldENsO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgZWxlbWVudHMsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBwbGF0Zm9ybSxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0gPSBtaWRkbGV3YXJlQXJndW1lbnRzOyAvLyBBIE1vdXNlRXZlbnQncyBjbGllbnR7WCxZfSBjb29yZHMgY2FuIGJlIHVwIHRvIDIgcGl4ZWxzIG9mZiBhXG4gICAgICAvLyBDbGllbnRSZWN0J3MgYm91bmRzLCBkZXNwaXRlIHRoZSBldmVudCBsaXN0ZW5lciBiZWluZyB0cmlnZ2VyZWQuIEFcbiAgICAgIC8vIHBhZGRpbmcgb2YgMiBzZWVtcyB0byBoYW5kbGUgdGhpcyBpc3N1ZS5cblxuICAgICAgY29uc3Qge1xuICAgICAgICBwYWRkaW5nID0gMixcbiAgICAgICAgeCxcbiAgICAgICAgeVxuICAgICAgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBmYWxsYmFjayA9IHJlY3RUb0NsaWVudFJlY3QocGxhdGZvcm0uY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3QgPyBhd2FpdCBwbGF0Zm9ybS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCh7XG4gICAgICAgIHJlY3Q6IHJlY3RzLnJlZmVyZW5jZSxcbiAgICAgICAgb2Zmc2V0UGFyZW50OiBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudHMuZmxvYXRpbmcpKSxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0pIDogcmVjdHMucmVmZXJlbmNlKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gKF9hd2FpdCRwbGF0Zm9ybSRnZXRDbCA9IGF3YWl0IChwbGF0Zm9ybS5nZXRDbGllbnRSZWN0cyA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0Q2xpZW50UmVjdHMoZWxlbWVudHMucmVmZXJlbmNlKSkpICE9IG51bGwgPyBfYXdhaXQkcGxhdGZvcm0kZ2V0Q2wgOiBbXTtcbiAgICAgIGNvbnN0IHBhZGRpbmdPYmplY3QgPSBnZXRTaWRlT2JqZWN0RnJvbVBhZGRpbmcocGFkZGluZyk7XG5cbiAgICAgIGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHtcbiAgICAgICAgLy8gVGhlcmUgYXJlIHR3byByZWN0cyBhbmQgdGhleSBhcmUgZGlzam9pbmVkXG4gICAgICAgIGlmIChjbGllbnRSZWN0cy5sZW5ndGggPT09IDIgJiYgY2xpZW50UmVjdHNbMF0ubGVmdCA+IGNsaWVudFJlY3RzWzFdLnJpZ2h0ICYmIHggIT0gbnVsbCAmJiB5ICE9IG51bGwpIHtcbiAgICAgICAgICB2YXIgX2NsaWVudFJlY3RzJGZpbmQ7XG5cbiAgICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCByZWN0IGluIHdoaWNoIHRoZSBwb2ludCBpcyBmdWxseSBpbnNpZGVcbiAgICAgICAgICByZXR1cm4gKF9jbGllbnRSZWN0cyRmaW5kID0gY2xpZW50UmVjdHMuZmluZChyZWN0ID0+IHggPiByZWN0LmxlZnQgLSBwYWRkaW5nT2JqZWN0LmxlZnQgJiYgeCA8IHJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0ICYmIHkgPiByZWN0LnRvcCAtIHBhZGRpbmdPYmplY3QudG9wICYmIHkgPCByZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tKSkgIT0gbnVsbCA/IF9jbGllbnRSZWN0cyRmaW5kIDogZmFsbGJhY2s7XG4gICAgICAgIH0gLy8gVGhlcmUgYXJlIDIgb3IgbW9yZSBjb25uZWN0ZWQgcmVjdHNcblxuXG4gICAgICAgIGlmIChjbGllbnRSZWN0cy5sZW5ndGggPj0gMikge1xuICAgICAgICAgIGlmIChnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQocGxhY2VtZW50KSA9PT0gJ3gnKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFJlY3QgPSBjbGllbnRSZWN0c1swXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RSZWN0ID0gY2xpZW50UmVjdHNbY2xpZW50UmVjdHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBpc1RvcCA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ3RvcCc7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSBmaXJzdFJlY3QudG9wO1xuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gbGFzdFJlY3QuYm90dG9tO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGlzVG9wID8gZmlyc3RSZWN0LmxlZnQgOiBsYXN0UmVjdC5sZWZ0O1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBpc1RvcCA/IGZpcnN0UmVjdC5yaWdodCA6IGxhc3RSZWN0LnJpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgIGJvdHRvbSxcbiAgICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICAgIHk6IHRvcFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpc0xlZnRTaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpID09PSAnbGVmdCc7XG4gICAgICAgICAgY29uc3QgbWF4UmlnaHQgPSBtYXgoLi4uY2xpZW50UmVjdHMubWFwKHJlY3QgPT4gcmVjdC5yaWdodCkpO1xuICAgICAgICAgIGNvbnN0IG1pbkxlZnQgPSBtaW4oLi4uY2xpZW50UmVjdHMubWFwKHJlY3QgPT4gcmVjdC5sZWZ0KSk7XG4gICAgICAgICAgY29uc3QgbWVhc3VyZVJlY3RzID0gY2xpZW50UmVjdHMuZmlsdGVyKHJlY3QgPT4gaXNMZWZ0U2lkZSA/IHJlY3QubGVmdCA9PT0gbWluTGVmdCA6IHJlY3QucmlnaHQgPT09IG1heFJpZ2h0KTtcbiAgICAgICAgICBjb25zdCB0b3AgPSBtZWFzdXJlUmVjdHNbMF0udG9wO1xuICAgICAgICAgIGNvbnN0IGJvdHRvbSA9IG1lYXN1cmVSZWN0c1ttZWFzdXJlUmVjdHMubGVuZ3RoIC0gMV0uYm90dG9tO1xuICAgICAgICAgIGNvbnN0IGxlZnQgPSBtaW5MZWZ0O1xuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gbWF4UmlnaHQ7XG4gICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICAgY29uc3QgaGVpZ2h0ID0gYm90dG9tIC0gdG9wO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICBib3R0b20sXG4gICAgICAgICAgICBsZWZ0LFxuICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICB5OiB0b3BcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNldFJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gICAgICAgIH0sXG4gICAgICAgIGZsb2F0aW5nOiBlbGVtZW50cy5mbG9hdGluZyxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVjdHMucmVmZXJlbmNlLnggIT09IHJlc2V0UmVjdHMucmVmZXJlbmNlLnggfHwgcmVjdHMucmVmZXJlbmNlLnkgIT09IHJlc2V0UmVjdHMucmVmZXJlbmNlLnkgfHwgcmVjdHMucmVmZXJlbmNlLndpZHRoICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS53aWR0aCB8fCByZWN0cy5yZWZlcmVuY2UuaGVpZ2h0ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS5oZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcmVjdHM6IHJlc2V0UmVjdHNcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgfTtcbn07XG5cbmV4cG9ydCB7IGFycm93LCBhdXRvUGxhY2VtZW50LCBjb21wdXRlUG9zaXRpb24sIGRldGVjdE92ZXJmbG93LCBmbGlwLCBoaWRlLCBpbmxpbmUsIGxpbWl0U2hpZnQsIG9mZnNldCwgcmVjdFRvQ2xpZW50UmVjdCwgc2hpZnQsIHNpemUgfTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@floating-ui/core/dist/floating-ui.core.esm.js\n");
|
|
284
|
+
|
|
285
|
+
/***/ }),
|
|
286
|
+
|
|
287
|
+
/***/ "./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js":
|
|
288
|
+
/*!*******************************************************************!*\
|
|
289
|
+
!*** ./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js ***!
|
|
290
|
+
\*******************************************************************/
|
|
291
|
+
/*! exports provided: arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size, autoUpdate, computePosition, getOverflowAncestors */
|
|
292
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
293
|
+
|
|
294
|
+
"use strict";
|
|
295
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoUpdate\", function() { return autoUpdate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computePosition\", function() { return computePosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOverflowAncestors\", function() { return getOverflowAncestors; });\n/* harmony import */ var _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/core */ \"./node_modules/@floating-ui/core/dist/floating-ui.core.esm.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"arrow\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"arrow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autoPlacement\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"autoPlacement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"detectOverflow\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"detectOverflow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flip\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"flip\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hide\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"hide\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inline\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"inline\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"limitShift\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"limitShift\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"offset\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"offset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"shift\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"shift\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"size\", function() { return _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"size\"]; });\n\n\n\n\nfunction isWindow(value) {\n return value && value.document && value.location && value.alert && value.setInterval;\n}\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (!isWindow(node)) {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction getNodeName(node) {\n return isWindow(node) ? '' : node ? (node.nodeName || '').toLowerCase() : '';\n}\n\nfunction getUAString() {\n const uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(item => item.brand + \"/\" + item.version).join(' ');\n }\n\n return navigator.userAgent;\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try and use feature detection here instead\n const isFirefox = /firefox/i.test(getUAString());\n const css = getComputedStyle(element); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n return css.transform !== 'none' || css.perspective !== 'none' || // @ts-ignore (TS 4.1 compat)\n css.contain === 'paint' || ['transform', 'perspective'].includes(css.willChange) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false);\n}\nfunction isLayoutViewport() {\n // Not Safari\n return !/^((?!chrome|android).)*safari/i.test(getUAString()); // Feature detection for this fails in various ways\n // • Always-visible scrollbar or not\n // • Width of <html>, etc.\n // const vV = win.visualViewport;\n // return vV ? Math.abs(win.innerWidth / vV.scale - vV.width) < 0.5 : true;\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy) {\n var _win$visualViewport$o, _win$visualViewport, _win$visualViewport$o2, _win$visualViewport2;\n\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n const win = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n const x = (clientRect.left + (addVisualOffsets ? (_win$visualViewport$o = (_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) != null ? _win$visualViewport$o : 0 : 0)) / scaleX;\n const y = (clientRect.top + (addVisualOffsets ? (_win$visualViewport$o2 = (_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) != null ? _win$visualViewport$o2 : 0 : 0)) / scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\nfunction isScaled(element) {\n const rect = getBoundingClientRect(element);\n return round(rect.width) !== element.offsetWidth || round(rect.height) !== element.offsetHeight;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, // @ts-ignore - checked above (TS 4.1 compat)\n isOffsetParentAnElement && isScaled(offsetParent), strategy === 'fixed');\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // @ts-ignore\n node.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n node.parentNode || ( // DOM Element detected\n isShadowRoot(node) ? node.host : null) || // ShadowRoot detected\n getDocumentElement(node) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return composedOffsetParent(element);\n}\n/**\n * Polyfills the old offsetParent behavior from before the spec was changed:\n * https://github.com/w3c/csswg-drafts/issues/159\n */\n\n\nfunction composedOffsetParent(element) {\n let {\n offsetParent\n } = element;\n let ancestor = element;\n let foundInsideSlot = false;\n\n while (ancestor && ancestor !== offsetParent) {\n const {\n assignedSlot\n } = ancestor;\n\n if (assignedSlot) {\n let newOffsetParent = assignedSlot.offsetParent;\n\n if (getComputedStyle(assignedSlot).display === 'contents') {\n const hadStyleAttribute = assignedSlot.hasAttribute('style');\n const oldDisplay = assignedSlot.style.display;\n assignedSlot.style.display = getComputedStyle(ancestor).display;\n newOffsetParent = assignedSlot.offsetParent;\n assignedSlot.style.display = oldDisplay;\n\n if (!hadStyleAttribute) {\n assignedSlot.removeAttribute('style');\n }\n }\n\n ancestor = assignedSlot;\n\n if (offsetParent !== newOffsetParent) {\n offsetParent = newOffsetParent;\n foundInsideSlot = true;\n }\n } else if (isShadowRoot(ancestor) && ancestor.host && foundInsideSlot) {\n break;\n }\n\n ancestor = isShadowRoot(ancestor) && ancestor.host || ancestor.parentNode;\n }\n\n return offsetParent;\n}\n\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && !['html', 'body'].includes(getNodeName(currentNode))) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n const parent = currentNode.parentNode;\n currentNode = isShadowRoot(parent) ? parent.host : parent;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getDimensions(element) {\n if (isHTMLElement(element)) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n }\n\n const rect = getBoundingClientRect(element);\n return {\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n\n if (offsetParent === documentElement) {\n return rect;\n }\n\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } // This doesn't appear to be need to be negated.\n // else if (documentElement) {\n // offsets.x = getWindowScrollBarX(documentElement);\n // }\n\n }\n\n return { ...rect,\n x: rect.x - scroll.scrollLeft + offsets.x,\n y: rect.y - scroll.scrollTop + offsets.y\n };\n}\n\nfunction getViewportRect(element, strategy) {\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\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n\n if (['html', 'body', '#document'].includes(getNodeName(parentNode))) {\n // @ts-ignore assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n\n if (list === void 0) {\n list = [];\n }\n\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n const target = isBody ? [win].concat(win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []) : scrollableAncestor;\n const updatedList = list.concat(target);\n return isBody ? updatedList : // @ts-ignore: isBody tells us target will be an HTMLElement here\n updatedList.concat(getOverflowAncestors(target));\n}\n\nfunction contains(parent, child) {\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n\n do {\n // use `===` replace node.isSameNode()\n if (next && parent === next) {\n return true;\n } // @ts-ignore: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n }\n\n return false;\n}\n\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, false, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n return {\n top,\n left,\n x: left,\n y: top,\n right: left + element.clientWidth,\n bottom: top + element.clientHeight,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getClientRectFromClippingAncestor(element, clippingParent, strategy) {\n if (clippingParent === 'viewport') {\n return Object(_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"rectToClientRect\"])(getViewportRect(element, strategy));\n }\n\n if (isElement(clippingParent)) {\n return getInnerBoundingClientRect(clippingParent, strategy);\n }\n\n return Object(_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"rectToClientRect\"])(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping ancestor\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingAncestors(element) {\n const clippingAncestors = getOverflowAncestors(element);\n const canEscapeClipping = ['absolute', 'fixed'].includes(getComputedStyle(element).position);\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // @ts-ignore isElement check ensures we return Array<Element>\n\n\n return clippingAncestors.filter(clippingAncestors => isElement(clippingAncestors) && contains(clippingAncestors, clipperElement) && getNodeName(clippingAncestors) !== 'body');\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors\n\n\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const mainClippingAncestors = boundary === 'clippingAncestors' ? getClippingAncestors(element) : [].concat(boundary);\n const clippingAncestors = [...mainClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getElementRects: _ref => {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n return {\n reference: getRectRelativeToOffsetParent(reference, getOffsetParent(floating), strategy),\n floating: { ...getDimensions(floating),\n x: 0,\n y: 0\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle(element).direction === 'rtl'\n};\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n\n const {\n ancestorScroll: _ancestorScroll = true,\n ancestorResize: _ancestorResize = true,\n elementResize = true,\n animationFrame = false\n } = options;\n const ancestorScroll = _ancestorScroll && !animationFrame;\n const ancestorResize = _ancestorResize && !animationFrame;\n const ancestors = ancestorScroll || ancestorResize ? [...(isElement(reference) ? getOverflowAncestors(reference) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n let observer = null;\n\n if (elementResize) {\n let initialUpdate = true;\n observer = new ResizeObserver(() => {\n if (!initialUpdate) {\n update();\n }\n\n initialUpdate = false;\n });\n isElement(reference) && !animationFrame && observer.observe(reference);\n observer.observe(floating);\n }\n\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n\n if (animationFrame) {\n frameLoop();\n }\n\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n\n update();\n return () => {\n var _observer;\n\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n (_observer = observer) == null ? void 0 : _observer.disconnect();\n observer = null;\n\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\n\nconst computePosition = (reference, floating, options) => Object(_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__[\"computePosition\"])(reference, floating, {\n platform,\n ...options\n});\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvZG9tL2Rpc3QvZmxvYXRpbmctdWkuZG9tLmVzbS5qcz9lMjBhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJGO0FBQ21DOztBQUU5SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRDtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7QUFDRDs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRFQUE0RTs7QUFFNUU7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7O0FBR1A7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsMEVBQWdCO0FBQzNCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTLDBFQUFnQjtBQUN6QixDQUFDO0FBQ0Q7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7OztBQUdIO0FBQ0EsQ0FBQztBQUNEOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwREFBMEQseUVBQWlCO0FBQzNFO0FBQ0E7QUFDQSxDQUFDOztBQUU0RCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvZG9tL2Rpc3QvZmxvYXRpbmctdWkuZG9tLmVzbS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlY3RUb0NsaWVudFJlY3QsIGNvbXB1dGVQb3NpdGlvbiBhcyBjb21wdXRlUG9zaXRpb24kMSB9IGZyb20gJ0BmbG9hdGluZy11aS9jb3JlJztcbmV4cG9ydCB7IGFycm93LCBhdXRvUGxhY2VtZW50LCBkZXRlY3RPdmVyZmxvdywgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2NvcmUnO1xuXG5mdW5jdGlvbiBpc1dpbmRvdyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuZG9jdW1lbnQgJiYgdmFsdWUubG9jYXRpb24gJiYgdmFsdWUuYWxlcnQgJiYgdmFsdWUuc2V0SW50ZXJ2YWw7XG59XG5mdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHdpbmRvdztcbiAgfVxuXG4gIGlmICghaXNXaW5kb3cobm9kZSkpIHtcbiAgICBjb25zdCBvd25lckRvY3VtZW50ID0gbm9kZS5vd25lckRvY3VtZW50O1xuICAgIHJldHVybiBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3cgOiB3aW5kb3c7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gIHJldHVybiBnZXRXaW5kb3coZWxlbWVudCkuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gZ2V0Tm9kZU5hbWUobm9kZSkge1xuICByZXR1cm4gaXNXaW5kb3cobm9kZSkgPyAnJyA6IG5vZGUgPyAobm9kZS5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKSA6ICcnO1xufVxuXG5mdW5jdGlvbiBnZXRVQVN0cmluZygpIHtcbiAgY29uc3QgdWFEYXRhID0gbmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7XG5cbiAgaWYgKHVhRGF0YSAhPSBudWxsICYmIHVhRGF0YS5icmFuZHMpIHtcbiAgICByZXR1cm4gdWFEYXRhLmJyYW5kcy5tYXAoaXRlbSA9PiBpdGVtLmJyYW5kICsgXCIvXCIgKyBpdGVtLnZlcnNpb24pLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50O1xufVxuXG5mdW5jdGlvbiBpc0hUTUxFbGVtZW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuSFRNTEVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgZ2V0V2luZG93KHZhbHVlKS5FbGVtZW50O1xufVxuZnVuY3Rpb24gaXNOb2RlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuTm9kZTtcbn1cbmZ1bmN0aW9uIGlzU2hhZG93Um9vdChub2RlKSB7XG4gIC8vIEJyb3dzZXJzIHdpdGhvdXQgYFNoYWRvd1Jvb3RgIHN1cHBvcnRcbiAgaWYgKHR5cGVvZiBTaGFkb3dSb290ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IE93bkVsZW1lbnQgPSBnZXRXaW5kb3cobm9kZSkuU2hhZG93Um9vdDtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBPd25FbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBTaGFkb3dSb290O1xufVxuZnVuY3Rpb24gaXNPdmVyZmxvd0VsZW1lbnQoZWxlbWVudCkge1xuICAvLyBGaXJlZm94IHdhbnRzIHVzIHRvIGNoZWNrIGAteGAgYW5kIGAteWAgdmFyaWF0aW9ucyBhcyB3ZWxsXG4gIGNvbnN0IHtcbiAgICBvdmVyZmxvdyxcbiAgICBvdmVyZmxvd1gsXG4gICAgb3ZlcmZsb3dZXG4gIH0gPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICByZXR1cm4gL2F1dG98c2Nyb2xsfG92ZXJsYXl8aGlkZGVuLy50ZXN0KG92ZXJmbG93ICsgb3ZlcmZsb3dZICsgb3ZlcmZsb3dYKTtcbn1cbmZ1bmN0aW9uIGlzVGFibGVFbGVtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuIFsndGFibGUnLCAndGQnLCAndGgnXS5pbmNsdWRlcyhnZXROb2RlTmFtZShlbGVtZW50KSk7XG59XG5mdW5jdGlvbiBpc0NvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIC8vIFRPRE86IFRyeSBhbmQgdXNlIGZlYXR1cmUgZGV0ZWN0aW9uIGhlcmUgaW5zdGVhZFxuICBjb25zdCBpc0ZpcmVmb3ggPSAvZmlyZWZveC9pLnRlc3QoZ2V0VUFTdHJpbmcoKSk7XG4gIGNvbnN0IGNzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7IC8vIFRoaXMgaXMgbm9uLWV4aGF1c3RpdmUgYnV0IGNvdmVycyB0aGUgbW9zdCBjb21tb24gQ1NTIHByb3BlcnRpZXMgdGhhdFxuICAvLyBjcmVhdGUgYSBjb250YWluaW5nIGJsb2NrLlxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQ29udGFpbmluZ19ibG9jayNpZGVudGlmeWluZ190aGVfY29udGFpbmluZ19ibG9ja1xuXG4gIHJldHVybiBjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgLy8gQHRzLWlnbm9yZSAoVFMgNC4xIGNvbXBhdClcbiAgY3NzLmNvbnRhaW4gPT09ICdwYWludCcgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnXS5pbmNsdWRlcyhjc3Mud2lsbENoYW5nZSkgfHwgaXNGaXJlZm94ICYmIGNzcy53aWxsQ2hhbmdlID09PSAnZmlsdGVyJyB8fCBpc0ZpcmVmb3ggJiYgKGNzcy5maWx0ZXIgPyBjc3MuZmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSk7XG59XG5mdW5jdGlvbiBpc0xheW91dFZpZXdwb3J0KCkge1xuICAvLyBOb3QgU2FmYXJpXG4gIHJldHVybiAhL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChnZXRVQVN0cmluZygpKTsgLy8gRmVhdHVyZSBkZXRlY3Rpb24gZm9yIHRoaXMgZmFpbHMgaW4gdmFyaW91cyB3YXlzXG4gIC8vIOKAoiBBbHdheXMtdmlzaWJsZSBzY3JvbGxiYXIgb3Igbm90XG4gIC8vIOKAoiBXaWR0aCBvZiA8aHRtbD4sIGV0Yy5cbiAgLy8gY29uc3QgdlYgPSB3aW4udmlzdWFsVmlld3BvcnQ7XG4gIC8vIHJldHVybiB2ViA/IE1hdGguYWJzKHdpbi5pbm5lcldpZHRoIC8gdlYuc2NhbGUgLSB2Vi53aWR0aCkgPCAwLjUgOiB0cnVlO1xufVxuXG5jb25zdCBtaW4gPSBNYXRoLm1pbjtcbmNvbnN0IG1heCA9IE1hdGgubWF4O1xuY29uc3Qgcm91bmQgPSBNYXRoLnJvdW5kO1xuXG5mdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgaW5jbHVkZVNjYWxlLCBpc0ZpeGVkU3RyYXRlZ3kpIHtcbiAgdmFyIF93aW4kdmlzdWFsVmlld3BvcnQkbywgX3dpbiR2aXN1YWxWaWV3cG9ydCwgX3dpbiR2aXN1YWxWaWV3cG9ydCRvMiwgX3dpbiR2aXN1YWxWaWV3cG9ydDI7XG5cbiAgaWYgKGluY2x1ZGVTY2FsZSA9PT0gdm9pZCAwKSB7XG4gICAgaW5jbHVkZVNjYWxlID0gZmFsc2U7XG4gIH1cblxuICBpZiAoaXNGaXhlZFN0cmF0ZWd5ID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkU3RyYXRlZ3kgPSBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBsZXQgc2NhbGVYID0gMTtcbiAgbGV0IHNjYWxlWSA9IDE7XG5cbiAgaWYgKGluY2x1ZGVTY2FsZSAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgc2NhbGVYID0gZWxlbWVudC5vZmZzZXRXaWR0aCA+IDAgPyByb3VuZChjbGllbnRSZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMSA6IDE7XG4gICAgc2NhbGVZID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgPiAwID8gcm91bmQoY2xpZW50UmVjdC5oZWlnaHQpIC8gZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgMSA6IDE7XG4gIH1cblxuICBjb25zdCB3aW4gPSBpc0VsZW1lbnQoZWxlbWVudCkgPyBnZXRXaW5kb3coZWxlbWVudCkgOiB3aW5kb3c7XG4gIGNvbnN0IGFkZFZpc3VhbE9mZnNldHMgPSAhaXNMYXlvdXRWaWV3cG9ydCgpICYmIGlzRml4ZWRTdHJhdGVneTtcbiAgY29uc3QgeCA9IChjbGllbnRSZWN0LmxlZnQgKyAoYWRkVmlzdWFsT2Zmc2V0cyA/IChfd2luJHZpc3VhbFZpZXdwb3J0JG8gPSAoX3dpbiR2aXN1YWxWaWV3cG9ydCA9IHdpbi52aXN1YWxWaWV3cG9ydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF93aW4kdmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdCkgIT0gbnVsbCA/IF93aW4kdmlzdWFsVmlld3BvcnQkbyA6IDAgOiAwKSkgLyBzY2FsZVg7XG4gIGNvbnN0IHkgPSAoY2xpZW50UmVjdC50b3AgKyAoYWRkVmlzdWFsT2Zmc2V0cyA/IChfd2luJHZpc3VhbFZpZXdwb3J0JG8yID0gKF93aW4kdmlzdWFsVmlld3BvcnQyID0gd2luLnZpc3VhbFZpZXdwb3J0KSA9PSBudWxsID8gdm9pZCAwIDogX3dpbiR2aXN1YWxWaWV3cG9ydDIub2Zmc2V0VG9wKSAhPSBudWxsID8gX3dpbiR2aXN1YWxWaWV3cG9ydCRvMiA6IDAgOiAwKSkgLyBzY2FsZVk7XG4gIGNvbnN0IHdpZHRoID0gY2xpZW50UmVjdC53aWR0aCAvIHNjYWxlWDtcbiAgY29uc3QgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQgLyBzY2FsZVk7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHRvcDogeSxcbiAgICByaWdodDogeCArIHdpZHRoLFxuICAgIGJvdHRvbTogeSArIGhlaWdodCxcbiAgICBsZWZ0OiB4LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREb2N1bWVudEVsZW1lbnQobm9kZSkge1xuICByZXR1cm4gKChpc05vZGUobm9kZSkgPyBub2RlLm93bmVyRG9jdW1lbnQgOiBub2RlLmRvY3VtZW50KSB8fCB3aW5kb3cuZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudDtcbn1cblxuZnVuY3Rpb24gZ2V0Tm9kZVNjcm9sbChlbGVtZW50KSB7XG4gIGlmIChpc0VsZW1lbnQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgICAgc2Nyb2xsVG9wOiBlbGVtZW50LnNjcm9sbFRvcFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQucGFnZVhPZmZzZXQsXG4gICAgc2Nyb2xsVG9wOiBlbGVtZW50LnBhZ2VZT2Zmc2V0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCkge1xuICAvLyBJZiA8aHRtbD4gaGFzIGEgQ1NTIHdpZHRoIGdyZWF0ZXIgdGhhbiB0aGUgdmlld3BvcnQsIHRoZW4gdGhpcyB3aWxsIGJlXG4gIC8vIGluY29ycmVjdCBmb3IgUlRMLlxuICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGdldE5vZGVTY3JvbGwoZWxlbWVudCkuc2Nyb2xsTGVmdDtcbn1cblxuZnVuY3Rpb24gaXNTY2FsZWQoZWxlbWVudCkge1xuICBjb25zdCByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQpO1xuICByZXR1cm4gcm91bmQocmVjdC53aWR0aCkgIT09IGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgcm91bmQocmVjdC5oZWlnaHQpICE9PSBlbGVtZW50Lm9mZnNldEhlaWdodDtcbn1cblxuZnVuY3Rpb24gZ2V0UmVjdFJlbGF0aXZlVG9PZmZzZXRQYXJlbnQoZWxlbWVudCwgb2Zmc2V0UGFyZW50LCBzdHJhdGVneSkge1xuICBjb25zdCBpc09mZnNldFBhcmVudEFuRWxlbWVudCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgZG9jdW1lbnRFbGVtZW50ID0gZ2V0RG9jdW1lbnRFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgLy8gQHRzLWlnbm9yZSAtIGNoZWNrZWQgYWJvdmUgKFRTIDQuMSBjb21wYXQpXG4gIGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmIGlzU2NhbGVkKG9mZnNldFBhcmVudCksIHN0cmF0ZWd5ID09PSAnZml4ZWQnKTtcbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBjb25zdCBvZmZzZXRzID0ge1xuICAgIHg6IDAsXG4gICAgeTogMFxuICB9O1xuXG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgc3RyYXRlZ3kgIT09ICdmaXhlZCcpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IGlzT3ZlcmZsb3dFbGVtZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICBjb25zdCBvZmZzZXRSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSk7XG4gICAgICBvZmZzZXRzLnggPSBvZmZzZXRSZWN0LnggKyBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcbiAgICAgIG9mZnNldHMueSA9IG9mZnNldFJlY3QueSArIG9mZnNldFBhcmVudC5jbGllbnRUb3A7XG4gICAgfSBlbHNlIGlmIChkb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIG9mZnNldHMueCA9IGdldFdpbmRvd1Njcm9sbEJhclgoZG9jdW1lbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IHJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC0gb2Zmc2V0cy54LFxuICAgIHk6IHJlY3QudG9wICsgc2Nyb2xsLnNjcm9sbFRvcCAtIG9mZnNldHMueSxcbiAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFBhcmVudE5vZGUobm9kZSkge1xuICBpZiAoZ2V0Tm9kZU5hbWUobm9kZSkgPT09ICdodG1sJykge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuICgvLyB0aGlzIGlzIGEgcXVpY2tlciAoYnV0IGxlc3MgdHlwZSBzYWZlKSB3YXkgdG8gc2F2ZSBxdWl0ZSBzb21lIGJ5dGVzIGZyb20gdGhlIGJ1bmRsZVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBub2RlLmFzc2lnbmVkU2xvdCB8fCAvLyBzdGVwIGludG8gdGhlIHNoYWRvdyBET00gb2YgdGhlIHBhcmVudCBvZiBhIHNsb3R0ZWQgbm9kZVxuICAgIG5vZGUucGFyZW50Tm9kZSB8fCAoIC8vIERPTSBFbGVtZW50IGRldGVjdGVkXG4gICAgaXNTaGFkb3dSb290KG5vZGUpID8gbm9kZS5ob3N0IDogbnVsbCkgfHwgLy8gU2hhZG93Um9vdCBkZXRlY3RlZFxuICAgIGdldERvY3VtZW50RWxlbWVudChub2RlKSAvLyBmYWxsYmFja1xuXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldFRydWVPZmZzZXRQYXJlbnQoZWxlbWVudCkge1xuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGNvbXBvc2VkT2Zmc2V0UGFyZW50KGVsZW1lbnQpO1xufVxuLyoqXG4gKiBQb2x5ZmlsbHMgdGhlIG9sZCBvZmZzZXRQYXJlbnQgYmVoYXZpb3IgZnJvbSBiZWZvcmUgdGhlIHNwZWMgd2FzIGNoYW5nZWQ6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMTU5XG4gKi9cblxuXG5mdW5jdGlvbiBjb21wb3NlZE9mZnNldFBhcmVudChlbGVtZW50KSB7XG4gIGxldCB7XG4gICAgb2Zmc2V0UGFyZW50XG4gIH0gPSBlbGVtZW50O1xuICBsZXQgYW5jZXN0b3IgPSBlbGVtZW50O1xuICBsZXQgZm91bmRJbnNpZGVTbG90ID0gZmFsc2U7XG5cbiAgd2hpbGUgKGFuY2VzdG9yICYmIGFuY2VzdG9yICE9PSBvZmZzZXRQYXJlbnQpIHtcbiAgICBjb25zdCB7XG4gICAgICBhc3NpZ25lZFNsb3RcbiAgICB9ID0gYW5jZXN0b3I7XG5cbiAgICBpZiAoYXNzaWduZWRTbG90KSB7XG4gICAgICBsZXQgbmV3T2Zmc2V0UGFyZW50ID0gYXNzaWduZWRTbG90Lm9mZnNldFBhcmVudDtcblxuICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoYXNzaWduZWRTbG90KS5kaXNwbGF5ID09PSAnY29udGVudHMnKSB7XG4gICAgICAgIGNvbnN0IGhhZFN0eWxlQXR0cmlidXRlID0gYXNzaWduZWRTbG90Lmhhc0F0dHJpYnV0ZSgnc3R5bGUnKTtcbiAgICAgICAgY29uc3Qgb2xkRGlzcGxheSA9IGFzc2lnbmVkU2xvdC5zdHlsZS5kaXNwbGF5O1xuICAgICAgICBhc3NpZ25lZFNsb3Quc3R5bGUuZGlzcGxheSA9IGdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmRpc3BsYXk7XG4gICAgICAgIG5ld09mZnNldFBhcmVudCA9IGFzc2lnbmVkU2xvdC5vZmZzZXRQYXJlbnQ7XG4gICAgICAgIGFzc2lnbmVkU2xvdC5zdHlsZS5kaXNwbGF5ID0gb2xkRGlzcGxheTtcblxuICAgICAgICBpZiAoIWhhZFN0eWxlQXR0cmlidXRlKSB7XG4gICAgICAgICAgYXNzaWduZWRTbG90LnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhbmNlc3RvciA9IGFzc2lnbmVkU2xvdDtcblxuICAgICAgaWYgKG9mZnNldFBhcmVudCAhPT0gbmV3T2Zmc2V0UGFyZW50KSB7XG4gICAgICAgIG9mZnNldFBhcmVudCA9IG5ld09mZnNldFBhcmVudDtcbiAgICAgICAgZm91bmRJbnNpZGVTbG90ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU2hhZG93Um9vdChhbmNlc3RvcikgJiYgYW5jZXN0b3IuaG9zdCAmJiBmb3VuZEluc2lkZVNsb3QpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGFuY2VzdG9yID0gaXNTaGFkb3dSb290KGFuY2VzdG9yKSAmJiBhbmNlc3Rvci5ob3N0IHx8IGFuY2VzdG9yLnBhcmVudE5vZGU7XG4gIH1cblxuICByZXR1cm4gb2Zmc2V0UGFyZW50O1xufVxuXG5mdW5jdGlvbiBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkge1xuICBsZXQgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpO1xuXG4gIGlmIChpc1NoYWRvd1Jvb3QoY3VycmVudE5vZGUpKSB7XG4gICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5ob3N0O1xuICB9XG5cbiAgd2hpbGUgKGlzSFRNTEVsZW1lbnQoY3VycmVudE5vZGUpICYmICFbJ2h0bWwnLCAnYm9keSddLmluY2x1ZGVzKGdldE5vZGVOYW1lKGN1cnJlbnROb2RlKSkpIHtcbiAgICBpZiAoaXNDb250YWluaW5nQmxvY2soY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGU7XG4gICAgICBjdXJyZW50Tm9kZSA9IGlzU2hhZG93Um9vdChwYXJlbnQpID8gcGFyZW50Lmhvc3QgOiBwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59IC8vIEdldHMgdGhlIGNsb3Nlc3QgYW5jZXN0b3IgcG9zaXRpb25lZCBlbGVtZW50LiBIYW5kbGVzIHNvbWUgZWRnZSBjYXNlcyxcbi8vIHN1Y2ggYXMgdGFibGUgYW5jZXN0b3JzIGFuZCBjcm9zcyBicm93c2VyIGJ1Z3MuXG5cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICBsZXQgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50KTtcblxuICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIGlzVGFibGVFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50KTtcbiAgfVxuXG4gIGlmIChvZmZzZXRQYXJlbnQgJiYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgPT09ICdodG1sJyB8fCBnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpID09PSAnYm9keScgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJyAmJiAhaXNDb250YWluaW5nQmxvY2sob2Zmc2V0UGFyZW50KSkpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9XG5cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luZG93O1xufVxuXG5mdW5jdGlvbiBnZXREaW1lbnNpb25zKGVsZW1lbnQpIHtcbiAgaWYgKGlzSFRNTEVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IGVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICBoZWlnaHQ6IGVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCk7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHJlY3Qud2lkdGgsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodFxuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdChfcmVmKSB7XG4gIGxldCB7XG4gICAgcmVjdCxcbiAgICBvZmZzZXRQYXJlbnQsXG4gICAgc3RyYXRlZ3lcbiAgfSA9IF9yZWY7XG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBnZXREb2N1bWVudEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcblxuICBpZiAob2Zmc2V0UGFyZW50ID09PSBkb2N1bWVudEVsZW1lbnQpIHtcbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuXG4gIGxldCBzY3JvbGwgPSB7XG4gICAgc2Nyb2xsTGVmdDogMCxcbiAgICBzY3JvbGxUb3A6IDBcbiAgfTtcbiAgY29uc3Qgb2Zmc2V0cyA9IHtcbiAgICB4OiAwLFxuICAgIHk6IDBcbiAgfTtcblxuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmIHN0cmF0ZWd5ICE9PSAnZml4ZWQnKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuXG4gICAgaWYgKGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgY29uc3Qgb2Zmc2V0UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChvZmZzZXRQYXJlbnQsIHRydWUpO1xuICAgICAgb2Zmc2V0cy54ID0gb2Zmc2V0UmVjdC54ICsgb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgPSBvZmZzZXRSZWN0LnkgKyBvZmZzZXRQYXJlbnQuY2xpZW50VG9wO1xuICAgIH0gLy8gVGhpcyBkb2Vzbid0IGFwcGVhciB0byBiZSBuZWVkIHRvIGJlIG5lZ2F0ZWQuXG4gICAgLy8gZWxzZSBpZiAoZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgLy8gICBvZmZzZXRzLnggPSBnZXRXaW5kb3dTY3JvbGxCYXJYKGRvY3VtZW50RWxlbWVudCk7XG4gICAgLy8gfVxuXG4gIH1cblxuICByZXR1cm4geyAuLi5yZWN0LFxuICAgIHg6IHJlY3QueCAtIHNjcm9sbC5zY3JvbGxMZWZ0ICsgb2Zmc2V0cy54LFxuICAgIHk6IHJlY3QueSAtIHNjcm9sbC5zY3JvbGxUb3AgKyBvZmZzZXRzLnlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgY29uc3QgaHRtbCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgY29uc3QgdmlzdWFsVmlld3BvcnQgPSB3aW4udmlzdWFsVmlld3BvcnQ7XG4gIGxldCB3aWR0aCA9IGh0bWwuY2xpZW50V2lkdGg7XG4gIGxldCBoZWlnaHQgPSBodG1sLmNsaWVudEhlaWdodDtcbiAgbGV0IHggPSAwO1xuICBsZXQgeSA9IDA7XG5cbiAgaWYgKHZpc3VhbFZpZXdwb3J0KSB7XG4gICAgd2lkdGggPSB2aXN1YWxWaWV3cG9ydC53aWR0aDtcbiAgICBoZWlnaHQgPSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQ7XG4gICAgY29uc3QgbGF5b3V0Vmlld3BvcnQgPSBpc0xheW91dFZpZXdwb3J0KCk7XG5cbiAgICBpZiAobGF5b3V0Vmlld3BvcnQgfHwgIWxheW91dFZpZXdwb3J0ICYmIHN0cmF0ZWd5ID09PSAnZml4ZWQnKSB7XG4gICAgICB4ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdDtcbiAgICAgIHkgPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3A7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbi8vIG9mIHRoZSBgPGh0bWw+YCBhbmQgYDxib2R5PmAgcmVjdCBib3VuZHMgaWYgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGVcblxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRSZWN0KGVsZW1lbnQpIHtcbiAgdmFyIF9lbGVtZW50JG93bmVyRG9jdW1lbjtcblxuICBjb25zdCBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBjb25zdCBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpO1xuICBjb25zdCBib2R5ID0gKF9lbGVtZW50JG93bmVyRG9jdW1lbiA9IGVsZW1lbnQub3duZXJEb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lbGVtZW50JG93bmVyRG9jdW1lbi5ib2R5O1xuICBjb25zdCB3aWR0aCA9IG1heChodG1sLnNjcm9sbFdpZHRoLCBodG1sLmNsaWVudFdpZHRoLCBib2R5ID8gYm9keS5zY3JvbGxXaWR0aCA6IDAsIGJvZHkgPyBib2R5LmNsaWVudFdpZHRoIDogMCk7XG4gIGNvbnN0IGhlaWdodCA9IG1heChodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5jbGllbnRIZWlnaHQsIGJvZHkgPyBib2R5LnNjcm9sbEhlaWdodCA6IDAsIGJvZHkgPyBib2R5LmNsaWVudEhlaWdodCA6IDApO1xuICBsZXQgeCA9IC1zY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIGNvbnN0IHkgPSAtc2Nyb2xsLnNjcm9sbFRvcDtcblxuICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShib2R5IHx8IGh0bWwpLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICB4ICs9IG1heChodG1sLmNsaWVudFdpZHRoLCBib2R5ID8gYm9keS5jbGllbnRXaWR0aCA6IDApIC0gd2lkdGg7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSkge1xuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShub2RlKTtcblxuICBpZiAoWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUocGFyZW50Tm9kZSkpKSB7XG4gICAgLy8gQHRzLWlnbm9yZSBhc3N1bWUgYm9keSBpcyBhbHdheXMgYXZhaWxhYmxlXG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudC5ib2R5O1xuICB9XG5cbiAgaWYgKGlzSFRNTEVsZW1lbnQocGFyZW50Tm9kZSkgJiYgaXNPdmVyZmxvd0VsZW1lbnQocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIHJldHVybiBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvcihwYXJlbnROb2RlKTtcbn1cblxuZnVuY3Rpb24gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMobm9kZSwgbGlzdCkge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDtcblxuICBpZiAobGlzdCA9PT0gdm9pZCAwKSB7XG4gICAgbGlzdCA9IFtdO1xuICB9XG5cbiAgY29uc3Qgc2Nyb2xsYWJsZUFuY2VzdG9yID0gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSk7XG4gIGNvbnN0IGlzQm9keSA9IHNjcm9sbGFibGVBbmNlc3RvciA9PT0gKChfbm9kZSRvd25lckRvY3VtZW50ID0gbm9kZS5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkb3duZXJEb2N1bWVudC5ib2R5KTtcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KHNjcm9sbGFibGVBbmNlc3Rvcik7XG4gIGNvbnN0IHRhcmdldCA9IGlzQm9keSA/IFt3aW5dLmNvbmNhdCh3aW4udmlzdWFsVmlld3BvcnQgfHwgW10sIGlzT3ZlcmZsb3dFbGVtZW50KHNjcm9sbGFibGVBbmNlc3RvcikgPyBzY3JvbGxhYmxlQW5jZXN0b3IgOiBbXSkgOiBzY3JvbGxhYmxlQW5jZXN0b3I7XG4gIGNvbnN0IHVwZGF0ZWRMaXN0ID0gbGlzdC5jb25jYXQodGFyZ2V0KTtcbiAgcmV0dXJuIGlzQm9keSA/IHVwZGF0ZWRMaXN0IDogLy8gQHRzLWlnbm9yZTogaXNCb2R5IHRlbGxzIHVzIHRhcmdldCB3aWxsIGJlIGFuIEhUTUxFbGVtZW50IGhlcmVcbiAgdXBkYXRlZExpc3QuY29uY2F0KGdldE92ZXJmbG93QW5jZXN0b3JzKHRhcmdldCkpO1xufVxuXG5mdW5jdGlvbiBjb250YWlucyhwYXJlbnQsIGNoaWxkKSB7XG4gIGNvbnN0IHJvb3ROb2RlID0gY2hpbGQuZ2V0Um9vdE5vZGUgPT0gbnVsbCA/IHZvaWQgMCA6IGNoaWxkLmdldFJvb3ROb2RlKCk7IC8vIEZpcnN0LCBhdHRlbXB0IHdpdGggZmFzdGVyIG5hdGl2ZSBtZXRob2RcblxuICBpZiAocGFyZW50LmNvbnRhaW5zKGNoaWxkKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIHRoZW4gZmFsbGJhY2sgdG8gY3VzdG9tIGltcGxlbWVudGF0aW9uIHdpdGggU2hhZG93IERPTSBzdXBwb3J0XG4gIGVsc2UgaWYgKHJvb3ROb2RlICYmIGlzU2hhZG93Um9vdChyb290Tm9kZSkpIHtcbiAgICBsZXQgbmV4dCA9IGNoaWxkO1xuXG4gICAgZG8ge1xuICAgICAgLy8gdXNlIGA9PT1gIHJlcGxhY2Ugbm9kZS5pc1NhbWVOb2RlKClcbiAgICAgIGlmIChuZXh0ICYmIHBhcmVudCA9PT0gbmV4dCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gLy8gQHRzLWlnbm9yZTogbmVlZCBhIGJldHRlciB3YXkgdG8gaGFuZGxlIHRoaXMuLi5cblxuXG4gICAgICBuZXh0ID0gbmV4dC5wYXJlbnROb2RlIHx8IG5leHQuaG9zdDtcbiAgICB9IHdoaWxlIChuZXh0KTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpIHtcbiAgY29uc3QgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCBmYWxzZSwgc3RyYXRlZ3kgPT09ICdmaXhlZCcpO1xuICBjb25zdCB0b3AgPSBjbGllbnRSZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICBjb25zdCBsZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRMZWZ0O1xuICByZXR1cm4ge1xuICAgIHRvcCxcbiAgICBsZWZ0LFxuICAgIHg6IGxlZnQsXG4gICAgeTogdG9wLFxuICAgIHJpZ2h0OiBsZWZ0ICsgZWxlbWVudC5jbGllbnRXaWR0aCxcbiAgICBib3R0b206IHRvcCArIGVsZW1lbnQuY2xpZW50SGVpZ2h0LFxuICAgIHdpZHRoOiBlbGVtZW50LmNsaWVudFdpZHRoLFxuICAgIGhlaWdodDogZWxlbWVudC5jbGllbnRIZWlnaHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSkge1xuICBpZiAoY2xpcHBpbmdQYXJlbnQgPT09ICd2aWV3cG9ydCcpIHtcbiAgICByZXR1cm4gcmVjdFRvQ2xpZW50UmVjdChnZXRWaWV3cG9ydFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpKTtcbiAgfVxuXG4gIGlmIChpc0VsZW1lbnQoY2xpcHBpbmdQYXJlbnQpKSB7XG4gICAgcmV0dXJuIGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSk7XG4gIH1cblxuICByZXR1cm4gcmVjdFRvQ2xpZW50UmVjdChnZXREb2N1bWVudFJlY3QoZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpKSk7XG59IC8vIEEgXCJjbGlwcGluZyBhbmNlc3RvclwiIGlzIGFuIG92ZXJmbG93YWJsZSBjb250YWluZXIgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIG92ZXJmbG93aW5nIGVsZW1lbnRzIHdpdGggYSBwb3NpdGlvbiBkaWZmZXJlbnQgZnJvbVxuLy8gYGluaXRpYWxgXG5cblxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdBbmNlc3RvcnMoZWxlbWVudCkge1xuICBjb25zdCBjbGlwcGluZ0FuY2VzdG9ycyA9IGdldE92ZXJmbG93QW5jZXN0b3JzKGVsZW1lbnQpO1xuICBjb25zdCBjYW5Fc2NhcGVDbGlwcGluZyA9IFsnYWJzb2x1dGUnLCAnZml4ZWQnXS5pbmNsdWRlcyhnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKTtcbiAgY29uc3QgY2xpcHBlckVsZW1lbnQgPSBjYW5Fc2NhcGVDbGlwcGluZyAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpID8gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIDogZWxlbWVudDtcblxuICBpZiAoIWlzRWxlbWVudChjbGlwcGVyRWxlbWVudCkpIHtcbiAgICByZXR1cm4gW107XG4gIH0gLy8gQHRzLWlnbm9yZSBpc0VsZW1lbnQgY2hlY2sgZW5zdXJlcyB3ZSByZXR1cm4gQXJyYXk8RWxlbWVudD5cblxuXG4gIHJldHVybiBjbGlwcGluZ0FuY2VzdG9ycy5maWx0ZXIoY2xpcHBpbmdBbmNlc3RvcnMgPT4gaXNFbGVtZW50KGNsaXBwaW5nQW5jZXN0b3JzKSAmJiBjb250YWlucyhjbGlwcGluZ0FuY2VzdG9ycywgY2xpcHBlckVsZW1lbnQpICYmIGdldE5vZGVOYW1lKGNsaXBwaW5nQW5jZXN0b3JzKSAhPT0gJ2JvZHknKTtcbn0gLy8gR2V0cyB0aGUgbWF4aW11bSBhcmVhIHRoYXQgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiBkdWUgdG8gYW55IG51bWJlciBvZlxuLy8gY2xpcHBpbmcgYW5jZXN0b3JzXG5cblxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50LFxuICAgIGJvdW5kYXJ5LFxuICAgIHJvb3RCb3VuZGFyeSxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgbWFpbkNsaXBwaW5nQW5jZXN0b3JzID0gYm91bmRhcnkgPT09ICdjbGlwcGluZ0FuY2VzdG9ycycgPyBnZXRDbGlwcGluZ0FuY2VzdG9ycyhlbGVtZW50KSA6IFtdLmNvbmNhdChib3VuZGFyeSk7XG4gIGNvbnN0IGNsaXBwaW5nQW5jZXN0b3JzID0gWy4uLm1haW5DbGlwcGluZ0FuY2VzdG9ycywgcm9vdEJvdW5kYXJ5XTtcbiAgY29uc3QgZmlyc3RDbGlwcGluZ0FuY2VzdG9yID0gY2xpcHBpbmdBbmNlc3RvcnNbMF07XG4gIGNvbnN0IGNsaXBwaW5nUmVjdCA9IGNsaXBwaW5nQW5jZXN0b3JzLnJlZHVjZSgoYWNjUmVjdCwgY2xpcHBpbmdBbmNlc3RvcikgPT4ge1xuICAgIGNvbnN0IHJlY3QgPSBnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IoZWxlbWVudCwgY2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpO1xuICAgIGFjY1JlY3QudG9wID0gbWF4KHJlY3QudG9wLCBhY2NSZWN0LnRvcCk7XG4gICAgYWNjUmVjdC5yaWdodCA9IG1pbihyZWN0LnJpZ2h0LCBhY2NSZWN0LnJpZ2h0KTtcbiAgICBhY2NSZWN0LmJvdHRvbSA9IG1pbihyZWN0LmJvdHRvbSwgYWNjUmVjdC5ib3R0b20pO1xuICAgIGFjY1JlY3QubGVmdCA9IG1heChyZWN0LmxlZnQsIGFjY1JlY3QubGVmdCk7XG4gICAgcmV0dXJuIGFjY1JlY3Q7XG4gIH0sIGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBmaXJzdENsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KSk7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6IGNsaXBwaW5nUmVjdC5yaWdodCAtIGNsaXBwaW5nUmVjdC5sZWZ0LFxuICAgIGhlaWdodDogY2xpcHBpbmdSZWN0LmJvdHRvbSAtIGNsaXBwaW5nUmVjdC50b3AsXG4gICAgeDogY2xpcHBpbmdSZWN0LmxlZnQsXG4gICAgeTogY2xpcHBpbmdSZWN0LnRvcFxuICB9O1xufVxuXG5jb25zdCBwbGF0Zm9ybSA9IHtcbiAgZ2V0Q2xpcHBpbmdSZWN0LFxuICBjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCxcbiAgaXNFbGVtZW50LFxuICBnZXREaW1lbnNpb25zLFxuICBnZXRPZmZzZXRQYXJlbnQsXG4gIGdldERvY3VtZW50RWxlbWVudCxcbiAgZ2V0RWxlbWVudFJlY3RzOiBfcmVmID0+IHtcbiAgICBsZXQge1xuICAgICAgcmVmZXJlbmNlLFxuICAgICAgZmxvYXRpbmcsXG4gICAgICBzdHJhdGVneVxuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiB7XG4gICAgICByZWZlcmVuY2U6IGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KHJlZmVyZW5jZSwgZ2V0T2Zmc2V0UGFyZW50KGZsb2F0aW5nKSwgc3RyYXRlZ3kpLFxuICAgICAgZmxvYXRpbmc6IHsgLi4uZ2V0RGltZW5zaW9ucyhmbG9hdGluZyksXG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDBcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBnZXRDbGllbnRSZWN0czogZWxlbWVudCA9PiBBcnJheS5mcm9tKGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKSksXG4gIGlzUlRMOiBlbGVtZW50ID0+IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZGlyZWN0aW9uID09PSAncnRsJ1xufTtcblxuLyoqXG4gKiBBdXRvbWF0aWNhbGx5IHVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHdoZW4gbmVjZXNzYXJ5LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9VcGRhdGVcbiAqL1xuZnVuY3Rpb24gYXV0b1VwZGF0ZShyZWZlcmVuY2UsIGZsb2F0aW5nLCB1cGRhdGUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBhbmNlc3RvclNjcm9sbDogX2FuY2VzdG9yU2Nyb2xsID0gdHJ1ZSxcbiAgICBhbmNlc3RvclJlc2l6ZTogX2FuY2VzdG9yUmVzaXplID0gdHJ1ZSxcbiAgICBlbGVtZW50UmVzaXplID0gdHJ1ZSxcbiAgICBhbmltYXRpb25GcmFtZSA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBhbmNlc3RvclNjcm9sbCA9IF9hbmNlc3RvclNjcm9sbCAmJiAhYW5pbWF0aW9uRnJhbWU7XG4gIGNvbnN0IGFuY2VzdG9yUmVzaXplID0gX2FuY2VzdG9yUmVzaXplICYmICFhbmltYXRpb25GcmFtZTtcbiAgY29uc3QgYW5jZXN0b3JzID0gYW5jZXN0b3JTY3JvbGwgfHwgYW5jZXN0b3JSZXNpemUgPyBbLi4uKGlzRWxlbWVudChyZWZlcmVuY2UpID8gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMocmVmZXJlbmNlKSA6IFtdKSwgLi4uZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZmxvYXRpbmcpXSA6IFtdO1xuICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlXG4gICAgfSk7XG4gICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgfSk7XG4gIGxldCBvYnNlcnZlciA9IG51bGw7XG5cbiAgaWYgKGVsZW1lbnRSZXNpemUpIHtcbiAgICBsZXQgaW5pdGlhbFVwZGF0ZSA9IHRydWU7XG4gICAgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgaWYgKCFpbml0aWFsVXBkYXRlKSB7XG4gICAgICAgIHVwZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICBpbml0aWFsVXBkYXRlID0gZmFsc2U7XG4gICAgfSk7XG4gICAgaXNFbGVtZW50KHJlZmVyZW5jZSkgJiYgIWFuaW1hdGlvbkZyYW1lICYmIG9ic2VydmVyLm9ic2VydmUocmVmZXJlbmNlKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgfVxuXG4gIGxldCBmcmFtZUlkO1xuICBsZXQgcHJldlJlZlJlY3QgPSBhbmltYXRpb25GcmFtZSA/IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpIDogbnVsbDtcblxuICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICBmcmFtZUxvb3AoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZyYW1lTG9vcCgpIHtcbiAgICBjb25zdCBuZXh0UmVmUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpO1xuXG4gICAgaWYgKHByZXZSZWZSZWN0ICYmIChuZXh0UmVmUmVjdC54ICE9PSBwcmV2UmVmUmVjdC54IHx8IG5leHRSZWZSZWN0LnkgIT09IHByZXZSZWZSZWN0LnkgfHwgbmV4dFJlZlJlY3Qud2lkdGggIT09IHByZXZSZWZSZWN0LndpZHRoIHx8IG5leHRSZWZSZWN0LmhlaWdodCAhPT0gcHJldlJlZlJlY3QuaGVpZ2h0KSkge1xuICAgICAgdXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJldlJlZlJlY3QgPSBuZXh0UmVmUmVjdDtcbiAgICBmcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lTG9vcCk7XG4gIH1cblxuICB1cGRhdGUoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICB2YXIgX29ic2VydmVyO1xuXG4gICAgYW5jZXN0b3JzLmZvckVhY2goYW5jZXN0b3IgPT4ge1xuICAgICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKTtcbiAgICAgIGFuY2VzdG9yUmVzaXplICYmIGFuY2VzdG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSk7XG4gICAgfSk7XG4gICAgKF9vYnNlcnZlciA9IG9ic2VydmVyKSA9PSBudWxsID8gdm9pZCAwIDogX29ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICBvYnNlcnZlciA9IG51bGw7XG5cbiAgICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lSWQpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgdGhhdCB3aWxsIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50XG4gKiBuZXh0IHRvIGEgcmVmZXJlbmNlIGVsZW1lbnQgd2hlbiBpdCBpcyBnaXZlbiBhIGNlcnRhaW4gQ1NTIHBvc2l0aW9uaW5nXG4gKiBzdHJhdGVneS5cbiAqL1xuXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSAocmVmZXJlbmNlLCBmbG9hdGluZywgb3B0aW9ucykgPT4gY29tcHV0ZVBvc2l0aW9uJDEocmVmZXJlbmNlLCBmbG9hdGluZywge1xuICBwbGF0Zm9ybSxcbiAgLi4ub3B0aW9uc1xufSk7XG5cbmV4cG9ydCB7IGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMgfTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js\n");
|
|
296
|
+
|
|
297
|
+
/***/ }),
|
|
298
|
+
|
|
299
|
+
/***/ "./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js":
|
|
300
|
+
/*!*******************************************************************************!*\
|
|
301
|
+
!*** ./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js ***!
|
|
302
|
+
\*******************************************************************************/
|
|
303
|
+
/*! exports provided: autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size, autoUpdate, computePosition, getOverflowAncestors, arrow, useFloating */
|
|
304
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
305
|
+
|
|
306
|
+
"use strict";
|
|
307
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrow\", function() { return arrow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useFloating\", function() { return useFloating; });\n/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/dom */ \"./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autoPlacement\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"autoPlacement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"detectOverflow\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"detectOverflow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flip\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"flip\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hide\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"hide\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inline\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"inline\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"limitShift\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"limitShift\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"offset\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"offset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"shift\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"shift\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"size\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"size\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autoUpdate\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"autoUpdate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"computePosition\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"computePosition\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOverflowAncestors\", function() { return _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"getOverflowAncestors\"]; });\n\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\n\n\nvar index = typeof document !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_1__[\"useLayoutEffect\"] : react__WEBPACK_IMPORTED_MODULE_1__[\"useEffect\"];\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n\n let length, i, keys;\n\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n keys = Object.keys(a);\n length = keys.length;\n\n if (length !== Object.keys(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return a !== a && b !== b;\n}\n\nfunction useLatestRef(value) {\n const ref = react__WEBPACK_IMPORTED_MODULE_1__[\"useRef\"](value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nfunction useFloating(_temp) {\n let {\n middleware,\n placement = 'bottom',\n strategy = 'absolute',\n whileElementsMounted\n } = _temp === void 0 ? {} : _temp;\n const [data, setData] = react__WEBPACK_IMPORTED_MODULE_1__[\"useState\"]({\n // Setting these to `null` will allow the consumer to determine if\n // `computePosition()` has run yet\n x: null,\n y: null,\n strategy,\n placement,\n middlewareData: {}\n });\n const [latestMiddleware, setLatestMiddleware] = react__WEBPACK_IMPORTED_MODULE_1__[\"useState\"](middleware);\n\n if (!deepEqual(latestMiddleware == null ? void 0 : latestMiddleware.map(_ref => {\n let {\n name,\n options\n } = _ref;\n return {\n name,\n options\n };\n }), middleware == null ? void 0 : middleware.map(_ref2 => {\n let {\n name,\n options\n } = _ref2;\n return {\n name,\n options\n };\n }))) {\n setLatestMiddleware(middleware);\n }\n\n const reference = react__WEBPACK_IMPORTED_MODULE_1__[\"useRef\"](null);\n const floating = react__WEBPACK_IMPORTED_MODULE_1__[\"useRef\"](null);\n const cleanupRef = react__WEBPACK_IMPORTED_MODULE_1__[\"useRef\"](null);\n const dataRef = react__WEBPACK_IMPORTED_MODULE_1__[\"useRef\"](data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const update = react__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"](() => {\n if (!reference.current || !floating.current) {\n return;\n }\n\n Object(_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"computePosition\"])(reference.current, floating.current, {\n middleware: latestMiddleware,\n placement,\n strategy\n }).then(data => {\n if (isMountedRef.current && !deepEqual(dataRef.current, data)) {\n dataRef.current = data;\n react_dom__WEBPACK_IMPORTED_MODULE_2__[\"flushSync\"](() => {\n setData(data);\n });\n }\n });\n }, [latestMiddleware, placement, strategy]);\n index(() => {\n // Skip first update\n if (isMountedRef.current) {\n update();\n }\n }, [update]);\n const isMountedRef = react__WEBPACK_IMPORTED_MODULE_1__[\"useRef\"](false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n const runElementMountCallback = react__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"](() => {\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n\n if (reference.current && floating.current) {\n if (whileElementsMountedRef.current) {\n const cleanupFn = whileElementsMountedRef.current(reference.current, floating.current, update);\n cleanupRef.current = cleanupFn;\n } else {\n update();\n }\n }\n }, [update, whileElementsMountedRef]);\n const setReference = react__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"](node => {\n reference.current = node;\n runElementMountCallback();\n }, [runElementMountCallback]);\n const setFloating = react__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"](node => {\n floating.current = node;\n runElementMountCallback();\n }, [runElementMountCallback]);\n const refs = react__WEBPACK_IMPORTED_MODULE_1__[\"useMemo\"](() => ({\n reference,\n floating\n }), []);\n return react__WEBPACK_IMPORTED_MODULE_1__[\"useMemo\"](() => ({ ...data,\n update,\n refs,\n reference: setReference,\n floating: setFloating\n }), [data, update, refs, setReference, setFloating]);\n}\n\n/**\n * Positions an inner element of the floating element such that it is centered\n * to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\n\nconst arrow = options => {\n const {\n element,\n padding\n } = options;\n\n function isRef(value) {\n return Object.prototype.hasOwnProperty.call(value, 'current');\n }\n\n return {\n name: 'arrow',\n options,\n\n fn(args) {\n if (isRef(element)) {\n if (element.current != null) {\n return Object(_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"arrow\"])({\n element: element.current,\n padding\n }).fn(args);\n }\n\n return {};\n } else if (element) {\n return Object(_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__[\"arrow\"])({\n element,\n padding\n }).fn(args);\n }\n\n return {};\n }\n\n };\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvcmVhY3QtZG9tL2Rpc3QvZmxvYXRpbmctdWkucmVhY3QtZG9tLmVzbS5qcz81M2UxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBcUU7QUFDcEM7QUFDRjtBQUNvQjtBQUNiOztBQUV0Qyw4Q0FBOEMscURBQWUsR0FBRywrQ0FBUzs7QUFFekU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLFdBQVc7QUFDakM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsV0FBVztBQUMvQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsY0FBYyw0Q0FBWTtBQUMxQjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx3QkFBd0I7QUFDM0IsMEJBQTBCLDhDQUFjO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILGtEQUFrRCw4Q0FBYzs7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUEsb0JBQW9CLDRDQUFZO0FBQ2hDLG1CQUFtQiw0Q0FBWTtBQUMvQixxQkFBcUIsNENBQVk7QUFDakMsa0JBQWtCLDRDQUFZO0FBQzlCO0FBQ0EsaUJBQWlCLGlEQUFpQjtBQUNsQztBQUNBO0FBQ0E7O0FBRUEsSUFBSSx3RUFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsbURBQWtCO0FBQzFCO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILHVCQUF1Qiw0Q0FBWTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILGtDQUFrQyxpREFBaUI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILHVCQUF1QixpREFBaUI7QUFDeEM7QUFDQTtBQUNBLEdBQUc7QUFDSCxzQkFBc0IsaURBQWlCO0FBQ3ZDO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsZUFBZSw2Q0FBYTtBQUM1QjtBQUNBO0FBQ0EsR0FBRztBQUNILFNBQVMsNkNBQWEsU0FBUztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDhEQUFPO0FBQ3hCO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7O0FBRUE7QUFDQSxPQUFPO0FBQ1AsZUFBZSw4REFBTztBQUN0QjtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFOEIiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3JlYWN0LWRvbS9kaXN0L2Zsb2F0aW5nLXVpLnJlYWN0LWRvbS5lc20uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlUG9zaXRpb24sIGFycm93IGFzIGFycm93JDEgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmV4cG9ydCAqIGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuXG52YXIgaW5kZXggPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0O1xuXG4vLyBGb3JrIG9mIGBmYXN0LWRlZXAtZXF1YWxgIHRoYXQgb25seSBkb2VzIHRoZSBjb21wYXJpc29ucyB3ZSBuZWVkIGFuZCBjb21wYXJlc1xuLy8gZnVuY3Rpb25zXG5mdW5jdGlvbiBkZWVwRXF1YWwoYSwgYikge1xuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgYSA9PT0gJ2Z1bmN0aW9uJyAmJiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbGV0IGxlbmd0aCwgaSwga2V5cztcblxuICBpZiAoYSAmJiBiICYmIHR5cGVvZiBhID09ICdvYmplY3QnKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcbiAgICAgIGxlbmd0aCA9IGEubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgICAgaWYgKCFkZWVwRXF1YWwoYVtpXSwgYltpXSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAga2V5cyA9IE9iamVjdC5rZXlzKGEpO1xuICAgIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuXG4gICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBrZXlzW2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ID09PSAnX293bmVyJyAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRlZXBFcXVhbChhW2tleV0sIGJba2V5XSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGEgIT09IGEgJiYgYiAhPT0gYjtcbn1cblxuZnVuY3Rpb24gdXNlTGF0ZXN0UmVmKHZhbHVlKSB7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZih2YWx1ZSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIHJlZjtcbn1cblxuZnVuY3Rpb24gdXNlRmxvYXRpbmcoX3RlbXApIHtcbiAgbGV0IHtcbiAgICBtaWRkbGV3YXJlLFxuICAgIHBsYWNlbWVudCA9ICdib3R0b20nLFxuICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZFxuICB9ID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA7XG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICAvLyBTZXR0aW5nIHRoZXNlIHRvIGBudWxsYCB3aWxsIGFsbG93IHRoZSBjb25zdW1lciB0byBkZXRlcm1pbmUgaWZcbiAgICAvLyBgY29tcHV0ZVBvc2l0aW9uKClgIGhhcyBydW4geWV0XG4gICAgeDogbnVsbCxcbiAgICB5OiBudWxsLFxuICAgIHN0cmF0ZWd5LFxuICAgIHBsYWNlbWVudCxcbiAgICBtaWRkbGV3YXJlRGF0YToge31cbiAgfSk7XG4gIGNvbnN0IFtsYXRlc3RNaWRkbGV3YXJlLCBzZXRMYXRlc3RNaWRkbGV3YXJlXSA9IFJlYWN0LnVzZVN0YXRlKG1pZGRsZXdhcmUpO1xuXG4gIGlmICghZGVlcEVxdWFsKGxhdGVzdE1pZGRsZXdhcmUgPT0gbnVsbCA/IHZvaWQgMCA6IGxhdGVzdE1pZGRsZXdhcmUubWFwKF9yZWYgPT4ge1xuICAgIGxldCB7XG4gICAgICBuYW1lLFxuICAgICAgb3B0aW9uc1xuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgb3B0aW9uc1xuICAgIH07XG4gIH0pLCBtaWRkbGV3YXJlID09IG51bGwgPyB2b2lkIDAgOiBtaWRkbGV3YXJlLm1hcChfcmVmMiA9PiB7XG4gICAgbGV0IHtcbiAgICAgIG5hbWUsXG4gICAgICBvcHRpb25zXG4gICAgfSA9IF9yZWYyO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgb3B0aW9uc1xuICAgIH07XG4gIH0pKSkge1xuICAgIHNldExhdGVzdE1pZGRsZXdhcmUobWlkZGxld2FyZSk7XG4gIH1cblxuICBjb25zdCByZWZlcmVuY2UgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGZsb2F0aW5nID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBjbGVhbnVwUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBkYXRhUmVmID0gUmVhY3QudXNlUmVmKGRhdGEpO1xuICBjb25zdCB3aGlsZUVsZW1lbnRzTW91bnRlZFJlZiA9IHVzZUxhdGVzdFJlZih3aGlsZUVsZW1lbnRzTW91bnRlZCk7XG4gIGNvbnN0IHVwZGF0ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIXJlZmVyZW5jZS5jdXJyZW50IHx8ICFmbG9hdGluZy5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29tcHV0ZVBvc2l0aW9uKHJlZmVyZW5jZS5jdXJyZW50LCBmbG9hdGluZy5jdXJyZW50LCB7XG4gICAgICBtaWRkbGV3YXJlOiBsYXRlc3RNaWRkbGV3YXJlLFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgc3RyYXRlZ3lcbiAgICB9KS50aGVuKGRhdGEgPT4ge1xuICAgICAgaWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmICFkZWVwRXF1YWwoZGF0YVJlZi5jdXJyZW50LCBkYXRhKSkge1xuICAgICAgICBkYXRhUmVmLmN1cnJlbnQgPSBkYXRhO1xuICAgICAgICBSZWFjdERPTS5mbHVzaFN5bmMoKCkgPT4ge1xuICAgICAgICAgIHNldERhdGEoZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbbGF0ZXN0TWlkZGxld2FyZSwgcGxhY2VtZW50LCBzdHJhdGVneV0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgLy8gU2tpcCBmaXJzdCB1cGRhdGVcbiAgICBpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgfSwgW3VwZGF0ZV0pO1xuICBjb25zdCBpc01vdW50ZWRSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgY29uc3QgcnVuRWxlbWVudE1vdW50Q2FsbGJhY2sgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBjbGVhbnVwUmVmLmN1cnJlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNsZWFudXBSZWYuY3VycmVudCgpO1xuICAgICAgY2xlYW51cFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAocmVmZXJlbmNlLmN1cnJlbnQgJiYgZmxvYXRpbmcuY3VycmVudCkge1xuICAgICAgaWYgKHdoaWxlRWxlbWVudHNNb3VudGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgY2xlYW51cEZuID0gd2hpbGVFbGVtZW50c01vdW50ZWRSZWYuY3VycmVudChyZWZlcmVuY2UuY3VycmVudCwgZmxvYXRpbmcuY3VycmVudCwgdXBkYXRlKTtcbiAgICAgICAgY2xlYW51cFJlZi5jdXJyZW50ID0gY2xlYW51cEZuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdXBkYXRlLCB3aGlsZUVsZW1lbnRzTW91bnRlZFJlZl0pO1xuICBjb25zdCBzZXRSZWZlcmVuY2UgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcbiAgICByZWZlcmVuY2UuY3VycmVudCA9IG5vZGU7XG4gICAgcnVuRWxlbWVudE1vdW50Q2FsbGJhY2soKTtcbiAgfSwgW3J1bkVsZW1lbnRNb3VudENhbGxiYWNrXSk7XG4gIGNvbnN0IHNldEZsb2F0aW5nID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgZmxvYXRpbmcuY3VycmVudCA9IG5vZGU7XG4gICAgcnVuRWxlbWVudE1vdW50Q2FsbGJhY2soKTtcbiAgfSwgW3J1bkVsZW1lbnRNb3VudENhbGxiYWNrXSk7XG4gIGNvbnN0IHJlZnMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0pLCBbXSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICh7IC4uLmRhdGEsXG4gICAgdXBkYXRlLFxuICAgIHJlZnMsXG4gICAgcmVmZXJlbmNlOiBzZXRSZWZlcmVuY2UsXG4gICAgZmxvYXRpbmc6IHNldEZsb2F0aW5nXG4gIH0pLCBbZGF0YSwgdXBkYXRlLCByZWZzLCBzZXRSZWZlcmVuY2UsIHNldEZsb2F0aW5nXSk7XG59XG5cbi8qKlxuICogUG9zaXRpb25zIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc3VjaCB0aGF0IGl0IGlzIGNlbnRlcmVkXG4gKiB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBUaGlzIHdyYXBzIHRoZSBjb3JlIGBhcnJvd2AgbWlkZGxld2FyZSB0byBhbGxvdyBSZWFjdCByZWZzIGFzIHRoZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cblxuY29uc3QgYXJyb3cgPSBvcHRpb25zID0+IHtcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgcGFkZGluZ1xuICB9ID0gb3B0aW9ucztcblxuICBmdW5jdGlvbiBpc1JlZih2YWx1ZSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjdXJyZW50Jyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdhcnJvdycsXG4gICAgb3B0aW9ucyxcblxuICAgIGZuKGFyZ3MpIHtcbiAgICAgIGlmIChpc1JlZihlbGVtZW50KSkge1xuICAgICAgICBpZiAoZWxlbWVudC5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gYXJyb3ckMSh7XG4gICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LmN1cnJlbnQsXG4gICAgICAgICAgICBwYWRkaW5nXG4gICAgICAgICAgfSkuZm4oYXJncyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge307XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGFycm93JDEoe1xuICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgcGFkZGluZ1xuICAgICAgICB9KS5mbihhcmdzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICB9O1xufTtcblxuZXhwb3J0IHsgYXJyb3csIHVzZUZsb2F0aW5nIH07XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js\n");
|
|
308
|
+
|
|
309
|
+
/***/ }),
|
|
310
|
+
|
|
275
311
|
/***/ "./node_modules/object-assign/index.js":
|
|
276
312
|
/*!*********************************************!*\
|
|
277
313
|
!*** ./node_modules/object-assign/index.js ***!
|
|
@@ -527,11 +563,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Fle
|
|
|
527
563
|
/*!********************************!*\
|
|
528
564
|
!*** ./src/Popover/Popover.js ***!
|
|
529
565
|
\********************************/
|
|
530
|
-
/*! exports provided:
|
|
566
|
+
/*! exports provided: POPOVER_PLACEMENTS, Popover */
|
|
531
567
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
532
568
|
|
|
533
569
|
"use strict";
|
|
534
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"position\", function() { return position; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Popover\", function() { return Popover; });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! styled-components */ \"styled-components\");\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _Box__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Box */ \"./src/Box/index.js\");\n/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Portal */ \"./src/Portal/index.js\");\n/* harmony import */ var _helpers_useIntersection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/useIntersection */ \"./src/helpers/useIntersection.js\");\n/* harmony import */ var _helpers_useResizeObserver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../helpers/useResizeObserver */ \"./src/helpers/useResizeObserver.js\");\n\n\n\n\nvar _excluded = [\"source\", \"children\", \"spacing\", \"fullWidth\", \"onReachEnd\", \"intersectionId\", \"centered\"];\n\nvar _templateObject, _templateObject2;\n\n\n\n\n\n\n\n\nvar position = function position(source, popover, fullWidth, centered) {\n var spacing = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var rect = source.getBoundingClientRect();\n var top = rect.top + rect.height + window.pageYOffset + spacing;\n var left = rect.left + window.pageXOffset;\n\n if (!popover) {\n return {\n left: left,\n top: top,\n width: fullWidth ? rect.width : undefined\n };\n }\n\n var popoverRect = popover.getBoundingClientRect();\n\n if (centered) {\n var popoverBorderPadding = 10;\n var popoverTotalWidth = popoverRect.width + popoverBorderPadding;\n var widthDifference = (rect.width - popoverTotalWidth) / 2;\n left = rect.left + widthDifference + window.pageXOffset;\n } // if popover overflows left or right viewport\n\n\n if (popoverRect.left < 0) {\n left = rect.left + window.pageXOffset;\n } else if (popoverRect.left + popoverRect.width > window.innerWidth) {\n left = window.innerWidth - popoverRect.width - 20;\n }\n\n var windowSizeAtPosition = window.innerHeight + window.pageYOffset; // if popover overflows bottom of viewport\n\n if (top + popoverRect.height + spacing > windowSizeAtPosition) {\n var _popoverBorderPadding = 10;\n top = window.pageYOffset + rect.top - popoverRect.height - _popoverBorderPadding - spacing;\n }\n\n return {\n left: left,\n top: top,\n width: fullWidth ? rect.width : undefined\n };\n};\nvar PopoverWrapper = styled_components__WEBPACK_IMPORTED_MODULE_6___default()(_Box__WEBPACK_IMPORTED_MODULE_7__[\"Box\"])(_templateObject || (_templateObject = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3___default()([\"\\n box-shadow: \", \";\\n position: absolute;\\n z-index: 4;\\n border: 1px solid \", \";\\n background: \", \";\\n\"])), function (_ref) {\n var theme = _ref.theme;\n return theme.shadows.filterShadow;\n}, function (_ref2) {\n var theme = _ref2.theme;\n return theme.colors.neutral150;\n}, function (_ref3) {\n var theme = _ref3.theme;\n return theme.colors.neutral0;\n});\nvar PopoverScrollable = styled_components__WEBPACK_IMPORTED_MODULE_6___default()(_Box__WEBPACK_IMPORTED_MODULE_7__[\"Box\"])(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3___default()([\"\\n // 16 is base base size, 3 is the factor to get closer to 40px and 5 is the number of elements visible in the list\\n max-height: \", \"rem;\\n overflow-y: auto;\\n overflow-x: hidden;\\n\\n &::-webkit-scrollbar {\\n -webkit-appearance: none;\\n width: 4px;\\n }\\n\\n &::-webkit-scrollbar-track {\\n background: \", \";\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n background: \", \";\\n border-radius: \", \";\\n margin-right: 10px;\\n }\\n\"])), 3 * 5, function (_ref4) {\n var theme = _ref4.theme;\n return theme.colors.neutral0;\n}, function (_ref5) {\n var theme = _ref5.theme;\n return theme.colors.neutral150;\n}, function (_ref6) {\n var theme = _ref6.theme;\n return theme.borderRadius;\n});\n\nvar PopoverContent = function PopoverContent(_ref7) {\n var source = _ref7.source,\n children = _ref7.children,\n spacing = _ref7.spacing,\n fullWidth = _ref7.fullWidth,\n onReachEnd = _ref7.onReachEnd,\n intersectionId = _ref7.intersectionId,\n centered = _ref7.centered,\n props = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default()(_ref7, _excluded);\n\n var popoverRef = Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"])(null);\n\n var _useState = Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"])(position(source.current, popoverRef.current, fullWidth, centered, spacing)),\n _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState, 2),\n _useState2$ = _useState2[0],\n left = _useState2$.left,\n top = _useState2$.top,\n width = _useState2$.width,\n setPosition = _useState2[1];\n\n Object(_helpers_useResizeObserver__WEBPACK_IMPORTED_MODULE_10__[\"useResizeObserver\"])([source, popoverRef], function () {\n return setPosition(position(source.current, popoverRef.current, fullWidth, centered, spacing));\n });\n Object(_helpers_useIntersection__WEBPACK_IMPORTED_MODULE_9__[\"useIntersection\"])(popoverRef, onReachEnd, {\n selectorToWatch: \"#\".concat(intersectionId),\n skipWhen: !intersectionId || !onReachEnd\n });\n var style = {\n left: \"\".concat(left, \"px\"),\n top: \"\".concat(top, \"px\"),\n width: width ? \"\".concat(width, \"px\") : undefined\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(PopoverWrapper, {\n style: style,\n hasRadius: true,\n background: \"neutral0\",\n padding: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(PopoverScrollable, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({\n ref: popoverRef\n }, props), children, intersectionId && onReachEnd && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(_Box__WEBPACK_IMPORTED_MODULE_7__[\"Box\"], {\n id: intersectionId,\n width: \"100%\",\n height: \"1px\"\n })));\n};\n\nvar Popover = function Popover(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(_Portal__WEBPACK_IMPORTED_MODULE_8__[\"Portal\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(PopoverContent, props));\n};\nvar popoverDefaultProps = {\n fullWidth: false,\n intersectionId: undefined,\n onReachEnd: undefined,\n centered: false\n};\nvar popoverProps = {\n /**\n * Horizontally center the popover\n */\n centered: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n children: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.node.isRequired,\n\n /**\n * Display full width popover\n */\n fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n /**\n * Element id to watch for the onReachEnd event\n */\n intersectionId: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n /**\n * The callback invoked after a scroll to the bottom of the popover content.\n */\n onReachEnd: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n /**\n * A React ref. Used to defined the position of the popover.\n */\n source: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.shape({\n current: (typeof Element === 'undefined' ? prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.any : prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.instanceOf(Element)).isRequired\n }).isRequired,\n spacing: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number\n};\nPopoverContent.propTypes = popoverProps;\nPopoverContent.defaultProps = popoverDefaultProps;\nPopover.propTypes = popoverProps;\nPopover.defaultProps = popoverDefaultProps;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL3NyYy9Qb3BvdmVyL1BvcG92ZXIuanM/OTNiOCJdLCJuYW1lcyI6WyJwb3NpdGlvbiIsInNvdXJjZSIsInBvcG92ZXIiLCJmdWxsV2lkdGgiLCJjZW50ZXJlZCIsInNwYWNpbmciLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwiaGVpZ2h0Iiwid2luZG93IiwicGFnZVlPZmZzZXQiLCJsZWZ0IiwicGFnZVhPZmZzZXQiLCJ3aWR0aCIsInVuZGVmaW5lZCIsInBvcG92ZXJSZWN0IiwicG9wb3ZlckJvcmRlclBhZGRpbmciLCJwb3BvdmVyVG90YWxXaWR0aCIsIndpZHRoRGlmZmVyZW5jZSIsImlubmVyV2lkdGgiLCJ3aW5kb3dTaXplQXRQb3NpdGlvbiIsImlubmVySGVpZ2h0IiwiUG9wb3ZlcldyYXBwZXIiLCJzdHlsZWQiLCJCb3giLCJ0aGVtZSIsInNoYWRvd3MiLCJmaWx0ZXJTaGFkb3ciLCJjb2xvcnMiLCJuZXV0cmFsMTUwIiwibmV1dHJhbDAiLCJQb3BvdmVyU2Nyb2xsYWJsZSIsImJvcmRlclJhZGl1cyIsIlBvcG92ZXJDb250ZW50IiwiY2hpbGRyZW4iLCJvblJlYWNoRW5kIiwiaW50ZXJzZWN0aW9uSWQiLCJwcm9wcyIsInBvcG92ZXJSZWYiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImN1cnJlbnQiLCJzZXRQb3NpdGlvbiIsInVzZVJlc2l6ZU9ic2VydmVyIiwidXNlSW50ZXJzZWN0aW9uIiwic2VsZWN0b3JUb1dhdGNoIiwic2tpcFdoZW4iLCJzdHlsZSIsIlBvcG92ZXIiLCJwb3BvdmVyRGVmYXVsdFByb3BzIiwicG9wb3ZlclByb3BzIiwiUHJvcFR5cGVzIiwiYm9vbCIsIm5vZGUiLCJpc1JlcXVpcmVkIiwic3RyaW5nIiwiZnVuYyIsInNoYXBlIiwiRWxlbWVudCIsImFueSIsImluc3RhbmNlT2YiLCJudW1iZXIiLCJwcm9wVHlwZXMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3Mi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bUJBQW1CLEdBQUc7QUFDMUIvQyxXQUFTLEVBQUUsS0FEZTtBQUUxQmtDLGdCQUFjLEVBQUV0QixTQUZVO0FBRzFCcUIsWUFBVSxFQUFFckIsU0FIYztBQUkxQlgsVUFBUSxFQUFFO0FBSmdCLENBQTVCO0FBT0EsSUFBTStDLFlBQVksR0FBRztBQUNuQjtBQUNGO0FBQ0E7QUFDRS9DLFVBQVEsRUFBRWdELGlEQUFTLENBQUNDLElBSkQ7QUFLbkJsQixVQUFRLEVBQUVpQixpREFBUyxDQUFDRSxJQUFWLENBQWVDLFVBTE47O0FBTW5CO0FBQ0Y7QUFDQTtBQUNFcEQsV0FBUyxFQUFFaUQsaURBQVMsQ0FBQ0MsSUFURjs7QUFVbkI7QUFDRjtBQUNBO0FBQ0VoQixnQkFBYyxFQUFFZSxpREFBUyxDQUFDSSxNQWJQOztBQWNuQjtBQUNGO0FBQ0E7QUFDRXBCLFlBQVUsRUFBRWdCLGlEQUFTLENBQUNLLElBakJIOztBQWtCbkI7QUFDRjtBQUNBO0FBQ0V4RCxRQUFNLEVBQUVtRCxpREFBUyxDQUFDTSxLQUFWLENBQWdCO0FBQ3RCaEIsV0FBTyxFQUFFLENBQUMsT0FBT2lCLE9BQVAsS0FBbUIsV0FBbkIsR0FBaUNQLGlEQUFTLENBQUNRLEdBQTNDLEdBQWlEUixpREFBUyxDQUFDUyxVQUFWLENBQXFCRixPQUFyQixDQUFsRCxFQUFpRko7QUFEcEUsR0FBaEIsRUFFTEEsVUF2QmdCO0FBd0JuQmxELFNBQU8sRUFBRStDLGlEQUFTLENBQUNVO0FBeEJBLENBQXJCO0FBMkJBNUIsY0FBYyxDQUFDNkIsU0FBZixHQUEyQlosWUFBM0I7QUFDQWpCLGNBQWMsQ0FBQzhCLFlBQWYsR0FBOEJkLG1CQUE5QjtBQUNBRCxPQUFPLENBQUNjLFNBQVIsR0FBb0JaLFlBQXBCO0FBQ0FGLE9BQU8sQ0FBQ2UsWUFBUixHQUF1QmQsbUJBQXZCIiwiZmlsZSI6Ii4vc3JjL1BvcG92ZXIvUG9wb3Zlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vQm94JztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyB1c2VJbnRlcnNlY3Rpb24gfSBmcm9tICcuLi9oZWxwZXJzL3VzZUludGVyc2VjdGlvbic7XG5pbXBvcnQgeyB1c2VSZXNpemVPYnNlcnZlciB9IGZyb20gJy4uL2hlbHBlcnMvdXNlUmVzaXplT2JzZXJ2ZXInO1xuXG5leHBvcnQgY29uc3QgcG9zaXRpb24gPSAoc291cmNlLCBwb3BvdmVyLCBmdWxsV2lkdGgsIGNlbnRlcmVkLCBzcGFjaW5nID0gMCkgPT4ge1xuICBjb25zdCByZWN0ID0gc291cmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBsZXQgdG9wID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCArIHdpbmRvdy5wYWdlWU9mZnNldCArIHNwYWNpbmc7XG4gIGxldCBsZWZ0ID0gcmVjdC5sZWZ0ICsgd2luZG93LnBhZ2VYT2Zmc2V0O1xuXG4gIGlmICghcG9wb3Zlcikge1xuICAgIHJldHVybiB7XG4gICAgICBsZWZ0LFxuICAgICAgdG9wLFxuICAgICAgd2lkdGg6IGZ1bGxXaWR0aCA/IHJlY3Qud2lkdGggOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHBvcG92ZXJSZWN0ID0gcG9wb3Zlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBpZiAoY2VudGVyZWQpIHtcbiAgICBjb25zdCBwb3BvdmVyQm9yZGVyUGFkZGluZyA9IDEwO1xuICAgIGNvbnN0IHBvcG92ZXJUb3RhbFdpZHRoID0gcG9wb3ZlclJlY3Qud2lkdGggKyBwb3BvdmVyQm9yZGVyUGFkZGluZztcbiAgICBjb25zdCB3aWR0aERpZmZlcmVuY2UgPSAocmVjdC53aWR0aCAtIHBvcG92ZXJUb3RhbFdpZHRoKSAvIDI7XG5cbiAgICBsZWZ0ID0gcmVjdC5sZWZ0ICsgd2lkdGhEaWZmZXJlbmNlICsgd2luZG93LnBhZ2VYT2Zmc2V0O1xuICB9XG5cbiAgLy8gaWYgcG9wb3ZlciBvdmVyZmxvd3MgbGVmdCBvciByaWdodCB2aWV3cG9ydFxuICBpZiAocG9wb3ZlclJlY3QubGVmdCA8IDApIHtcbiAgICBsZWZ0ID0gcmVjdC5sZWZ0ICsgd2luZG93LnBhZ2VYT2Zmc2V0O1xuICB9IGVsc2UgaWYgKHBvcG92ZXJSZWN0LmxlZnQgKyBwb3BvdmVyUmVjdC53aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XG4gICAgbGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gcG9wb3ZlclJlY3Qud2lkdGggLSAyMDtcbiAgfVxuXG4gIGNvbnN0IHdpbmRvd1NpemVBdFBvc2l0aW9uID0gd2luZG93LmlubmVySGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0O1xuXG4gIC8vIGlmIHBvcG92ZXIgb3ZlcmZsb3dzIGJvdHRvbSBvZiB2aWV3cG9ydFxuICBpZiAodG9wICsgcG9wb3ZlclJlY3QuaGVpZ2h0ICsgc3BhY2luZyA+IHdpbmRvd1NpemVBdFBvc2l0aW9uKSB7XG4gICAgY29uc3QgcG9wb3ZlckJvcmRlclBhZGRpbmcgPSAxMDtcbiAgICB0b3AgPSB3aW5kb3cucGFnZVlPZmZzZXQgKyByZWN0LnRvcCAtIHBvcG92ZXJSZWN0LmhlaWdodCAtIHBvcG92ZXJCb3JkZXJQYWRkaW5nIC0gc3BhY2luZztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbGVmdCxcbiAgICB0b3AsXG4gICAgd2lkdGg6IGZ1bGxXaWR0aCA/IHJlY3Qud2lkdGggOiB1bmRlZmluZWQsXG4gIH07XG59O1xuXG5jb25zdCBQb3BvdmVyV3JhcHBlciA9IHN0eWxlZChCb3gpYFxuICBib3gtc2hhZG93OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNoYWRvd3MuZmlsdGVyU2hhZG93fTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA0O1xuICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsMTUwfTtcbiAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbDB9O1xuYDtcblxuY29uc3QgUG9wb3ZlclNjcm9sbGFibGUgPSBzdHlsZWQoQm94KWBcbiAgLy8gMTYgaXMgYmFzZSBiYXNlIHNpemUsIDMgaXMgdGhlIGZhY3RvciB0byBnZXQgY2xvc2VyIHRvIDQwcHggYW5kIDUgaXMgdGhlIG51bWJlciBvZiBlbGVtZW50cyB2aXNpYmxlIGluIHRoZSBsaXN0XG4gIG1heC1oZWlnaHQ6ICR7MyAqIDV9cmVtO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB3aWR0aDogNHB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwwfTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsMTUwfTtcbiAgICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmJvcmRlclJhZGl1c307XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBQb3BvdmVyQ29udGVudCA9ICh7IHNvdXJjZSwgY2hpbGRyZW4sIHNwYWNpbmcsIGZ1bGxXaWR0aCwgb25SZWFjaEVuZCwgaW50ZXJzZWN0aW9uSWQsIGNlbnRlcmVkLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHBvcG92ZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IFt7IGxlZnQsIHRvcCwgd2lkdGggfSwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGUoXG4gICAgcG9zaXRpb24oc291cmNlLmN1cnJlbnQsIHBvcG92ZXJSZWYuY3VycmVudCwgZnVsbFdpZHRoLCBjZW50ZXJlZCwgc3BhY2luZyksXG4gICk7XG5cbiAgdXNlUmVzaXplT2JzZXJ2ZXIoW3NvdXJjZSwgcG9wb3ZlclJlZl0sICgpID0+XG4gICAgc2V0UG9zaXRpb24ocG9zaXRpb24oc291cmNlLmN1cnJlbnQsIHBvcG92ZXJSZWYuY3VycmVudCwgZnVsbFdpZHRoLCBjZW50ZXJlZCwgc3BhY2luZykpLFxuICApO1xuXG4gIHVzZUludGVyc2VjdGlvbihwb3BvdmVyUmVmLCBvblJlYWNoRW5kLCB7XG4gICAgc2VsZWN0b3JUb1dhdGNoOiBgIyR7aW50ZXJzZWN0aW9uSWR9YCxcbiAgICBza2lwV2hlbjogIWludGVyc2VjdGlvbklkIHx8ICFvblJlYWNoRW5kLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICBsZWZ0OiBgJHtsZWZ0fXB4YCxcbiAgICB0b3A6IGAke3RvcH1weGAsXG4gICAgd2lkdGg6IHdpZHRoID8gYCR7d2lkdGh9cHhgIDogdW5kZWZpbmVkLFxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFBvcG92ZXJXcmFwcGVyIHN0eWxlPXtzdHlsZX0gaGFzUmFkaXVzIGJhY2tncm91bmQ9XCJuZXV0cmFsMFwiIHBhZGRpbmc9ezF9PlxuICAgICAgPFBvcG92ZXJTY3JvbGxhYmxlIHJlZj17cG9wb3ZlclJlZn0gey4uLnByb3BzfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgICB7aW50ZXJzZWN0aW9uSWQgJiYgb25SZWFjaEVuZCAmJiA8Qm94IGlkPXtpbnRlcnNlY3Rpb25JZH0gd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMXB4XCIgLz59XG4gICAgICA8L1BvcG92ZXJTY3JvbGxhYmxlPlxuICAgIDwvUG9wb3ZlcldyYXBwZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUG9wb3ZlciA9IChwcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxQb3J0YWw+XG4gICAgICA8UG9wb3ZlckNvbnRlbnQgey4uLnByb3BzfSAvPlxuICAgIDwvUG9ydGFsPlxuICApO1xufTtcblxuY29uc3QgcG9wb3ZlckRlZmF1bHRQcm9wcyA9IHtcbiAgZnVsbFdpZHRoOiBmYWxzZSxcbiAgaW50ZXJzZWN0aW9uSWQ6IHVuZGVmaW5lZCxcbiAgb25SZWFjaEVuZDogdW5kZWZpbmVkLFxuICBjZW50ZXJlZDogZmFsc2UsXG59O1xuXG5jb25zdCBwb3BvdmVyUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBIb3Jpem9udGFsbHkgY2VudGVyIHRoZSBwb3BvdmVyXG4gICAqL1xuICBjZW50ZXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICAvKipcbiAgICogRGlzcGxheSBmdWxsIHdpZHRoIHBvcG92ZXJcbiAgICovXG4gIGZ1bGxXaWR0aDogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiBFbGVtZW50IGlkIHRvIHdhdGNoIGZvciB0aGUgb25SZWFjaEVuZCBldmVudFxuICAgKi9cbiAgaW50ZXJzZWN0aW9uSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgaW52b2tlZCBhZnRlciBhIHNjcm9sbCB0byB0aGUgYm90dG9tIG9mIHRoZSBwb3BvdmVyIGNvbnRlbnQuXG4gICAqL1xuICBvblJlYWNoRW5kOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqXG4gICAqIEEgUmVhY3QgcmVmLiBVc2VkIHRvIGRlZmluZWQgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGN1cnJlbnQ6ICh0eXBlb2YgRWxlbWVudCA9PT0gJ3VuZGVmaW5lZCcgPyBQcm9wVHlwZXMuYW55IDogUHJvcFR5cGVzLmluc3RhbmNlT2YoRWxlbWVudCkpLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIHNwYWNpbmc6IFByb3BUeXBlcy5udW1iZXIsXG59O1xuXG5Qb3BvdmVyQ29udGVudC5wcm9wVHlwZXMgPSBwb3BvdmVyUHJvcHM7XG5Qb3BvdmVyQ29udGVudC5kZWZhdWx0UHJvcHMgPSBwb3BvdmVyRGVmYXVsdFByb3BzO1xuUG9wb3Zlci5wcm9wVHlwZXMgPSBwb3BvdmVyUHJvcHM7XG5Qb3BvdmVyLmRlZmF1bHRQcm9wcyA9IHBvcG92ZXJEZWZhdWx0UHJvcHM7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Popover/Popover.js\n");
|
|
570
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"POPOVER_PLACEMENTS\", function() { return POPOVER_PLACEMENTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Popover\", function() { return Popover; });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! styled-components */ \"styled-components\");\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @floating-ui/react-dom */ \"./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js\");\n/* harmony import */ var _Box__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Box */ \"./src/Box/index.js\");\n/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Portal */ \"./src/Portal/index.js\");\n/* harmony import */ var _helpers_useIntersection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../helpers/useIntersection */ \"./src/helpers/useIntersection.js\");\n\n\n\n\nvar _excluded = [\"source\", \"children\", \"spacing\", \"fullWidth\", \"placement\", \"onReachEnd\", \"intersectionId\", \"centered\"];\n\nvar _templateObject, _templateObject2;\n\n\n\n\n\n\n\n\nvar POPOVER_PLACEMENTS = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar PopoverWrapper = styled_components__WEBPACK_IMPORTED_MODULE_6___default()(_Box__WEBPACK_IMPORTED_MODULE_8__[\"Box\"])(_templateObject || (_templateObject = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3___default()([\"\\n box-shadow: \", \";\\n z-index: 4;\\n border: 1px solid \", \";\\n background: \", \";\\n\"])), function (_ref) {\n var theme = _ref.theme;\n return theme.shadows.filterShadow;\n}, function (_ref2) {\n var theme = _ref2.theme;\n return theme.colors.neutral150;\n}, function (_ref3) {\n var theme = _ref3.theme;\n return theme.colors.neutral0;\n});\nvar PopoverScrollable = styled_components__WEBPACK_IMPORTED_MODULE_6___default()(_Box__WEBPACK_IMPORTED_MODULE_8__[\"Box\"])(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_3___default()([\"\\n // 16 is base base size, 3 is the factor to get closer to 40px and 5 is the number of elements visible in the list\\n max-height: \", \"rem;\\n overflow-y: auto;\\n overflow-x: hidden;\\n\\n &::-webkit-scrollbar {\\n -webkit-appearance: none;\\n width: 4px;\\n }\\n\\n &::-webkit-scrollbar-track {\\n background: \", \";\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n background: \", \";\\n border-radius: \", \";\\n margin-right: 10px;\\n }\\n\"])), 3 * 5, function (_ref4) {\n var theme = _ref4.theme;\n return theme.colors.neutral0;\n}, function (_ref5) {\n var theme = _ref5.theme;\n return theme.colors.neutral150;\n}, function (_ref6) {\n var theme = _ref6.theme;\n return theme.borderRadius;\n});\n\nvar PopoverContent = function PopoverContent(_ref7) {\n var source = _ref7.source,\n children = _ref7.children,\n spacing = _ref7.spacing,\n fullWidth = _ref7.fullWidth,\n placement = _ref7.placement,\n onReachEnd = _ref7.onReachEnd,\n intersectionId = _ref7.intersectionId,\n centered = _ref7.centered,\n props = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default()(_ref7, _excluded);\n\n var popoverRef = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"](null);\n\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"](undefined),\n _React$useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_React$useState, 2),\n width = _React$useState2[0],\n setWidth = _React$useState2[1];\n\n var _useFloating = Object(_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__[\"useFloating\"])({\n strategy: 'fixed',\n placement: centered ? 'bottom' : placement,\n middleware: [Object(_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__[\"offset\"])({\n mainAxis: spacing\n }), Object(_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__[\"shift\"])(), Object(_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__[\"flip\"])()],\n whileElementsMounted: _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__[\"autoUpdate\"]\n }),\n x = _useFloating.x,\n y = _useFloating.y,\n reference = _useFloating.reference,\n floating = _useFloating.floating,\n strategy = _useFloating.strategy;\n\n react__WEBPACK_IMPORTED_MODULE_4__[\"useLayoutEffect\"](function () {\n reference(source.current);\n }, [source]);\n react__WEBPACK_IMPORTED_MODULE_4__[\"useLayoutEffect\"](function () {\n if (fullWidth) {\n setWidth(source.current.offsetWidth);\n }\n }, [fullWidth]);\n Object(_helpers_useIntersection__WEBPACK_IMPORTED_MODULE_10__[\"useIntersection\"])(popoverRef, onReachEnd, {\n selectorToWatch: \"#\".concat(intersectionId),\n skipWhen: !intersectionId || !onReachEnd\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](PopoverWrapper, {\n ref: floating,\n style: {\n left: x,\n top: y,\n position: strategy,\n width: width ? width : undefined\n },\n hasRadius: true,\n background: \"neutral0\",\n padding: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](PopoverScrollable, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({\n ref: popoverRef\n }, props), children, intersectionId && onReachEnd && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](_Box__WEBPACK_IMPORTED_MODULE_8__[\"Box\"], {\n id: intersectionId,\n width: \"100%\",\n height: \"1px\"\n })));\n};\n\nvar Popover = function Popover(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](_Portal__WEBPACK_IMPORTED_MODULE_9__[\"Portal\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](PopoverContent, props));\n};\nvar popoverDefaultProps = {\n fullWidth: false,\n intersectionId: undefined,\n onReachEnd: undefined,\n centered: false,\n placement: 'bottom-start'\n};\nvar popoverProps = {\n /**\n * Horizontally center the popover\n */\n centered: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n children: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.node.isRequired,\n\n /**\n * Display full width popover\n */\n fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n /**\n * Element id to watch for the onReachEnd event\n */\n intersectionId: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n /**\n * The callback invoked after a scroll to the bottom of the popover content.\n */\n onReachEnd: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n /**\n * The popover position\n */\n placement: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(POPOVER_PLACEMENTS),\n\n /**\n * A React ref. Used to defined the position of the popover.\n */\n source: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.shape({\n current: (typeof Element === 'undefined' ? prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.any : prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.instanceOf(Element)).isRequired\n }).isRequired,\n spacing: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number\n};\nPopoverContent.propTypes = popoverProps;\nPopoverContent.defaultProps = popoverDefaultProps;\nPopover.propTypes = popoverProps;\nPopover.defaultProps = popoverDefaultProps;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL3NyYy9Qb3BvdmVyL1BvcG92ZXIuanM/OTNiOCJdLCJuYW1lcyI6WyJQT1BPVkVSX1BMQUNFTUVOVFMiLCJQb3BvdmVyV3JhcHBlciIsInN0eWxlZCIsIkJveCIsInRoZW1lIiwic2hhZG93cyIsImZpbHRlclNoYWRvdyIsImNvbG9ycyIsIm5ldXRyYWwxNTAiLCJuZXV0cmFsMCIsIlBvcG92ZXJTY3JvbGxhYmxlIiwiYm9yZGVyUmFkaXVzIiwiUG9wb3ZlckNvbnRlbnQiLCJzb3VyY2UiLCJjaGlsZHJlbiIsInNwYWNpbmciLCJmdWxsV2lkdGgiLCJwbGFjZW1lbnQiLCJvblJlYWNoRW5kIiwiaW50ZXJzZWN0aW9uSWQiLCJjZW50ZXJlZCIsInByb3BzIiwicG9wb3ZlclJlZiIsIlJlYWN0IiwidW5kZWZpbmVkIiwid2lkdGgiLCJzZXRXaWR0aCIsInVzZUZsb2F0aW5nIiwic3RyYXRlZ3kiLCJtaWRkbGV3YXJlIiwib2Zmc2V0IiwibWFpbkF4aXMiLCJzaGlmdCIsImZsaXAiLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsImF1dG9VcGRhdGUiLCJ4IiwieSIsInJlZmVyZW5jZSIsImZsb2F0aW5nIiwiY3VycmVudCIsIm9mZnNldFdpZHRoIiwidXNlSW50ZXJzZWN0aW9uIiwic2VsZWN0b3JUb1dhdGNoIiwic2tpcFdoZW4iLCJsZWZ0IiwidG9wIiwicG9zaXRpb24iLCJQb3BvdmVyIiwicG9wb3ZlckRlZmF1bHRQcm9wcyIsInBvcG92ZXJQcm9wcyIsIlByb3BUeXBlcyIsImJvb2wiLCJub2RlIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImZ1bmMiLCJvbmVPZiIsInNoYXBlIiwiRWxlbWVudCIsImFueSIsImluc3RhbmNlT2YiLCJudW1iZXIiLCJwcm9wVHlwZXMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNB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QUpEO0FBS25CdEMsVUFBUSxFQUFFcUMsaURBQVMsQ0FBQ0UsSUFBVixDQUFlQyxVQUxOOztBQU1uQjtBQUNGO0FBQ0E7QUFDRXRDLFdBQVMsRUFBRW1DLGlEQUFTLENBQUNDLElBVEY7O0FBVW5CO0FBQ0Y7QUFDQTtBQUNFakMsZ0JBQWMsRUFBRWdDLGlEQUFTLENBQUNJLE1BYlA7O0FBY25CO0FBQ0Y7QUFDQTtBQUNFckMsWUFBVSxFQUFFaUMsaURBQVMsQ0FBQ0ssSUFqQkg7O0FBa0JuQjtBQUNGO0FBQ0E7QUFDRXZDLFdBQVMsRUFBRWtDLGlEQUFTLENBQUNNLEtBQVYsQ0FBZ0J6RCxrQkFBaEIsQ0FyQlE7O0FBc0JuQjtBQUNGO0FBQ0E7QUFDRWEsUUFBTSxFQUFFc0MsaURBQVMsQ0FBQ08sS0FBVixDQUFnQjtBQUN0QmxCLFdBQU8sRUFBRSxDQUFDLE9BQU9tQixPQUFQLEtBQW1CLFdBQW5CLEdBQWlDUixpREFBUyxDQUFDUyxHQUEzQyxHQUFpRFQsaURBQVMsQ0FBQ1UsVUFBVixDQUFxQkYsT0FBckIsQ0FBbEQsRUFBaUZMO0FBRHBFLEdBQWhCLEVBRUxBLFVBM0JnQjtBQTRCbkJ2QyxTQUFPLEVBQUVvQyxpREFBUyxDQUFDVztBQTVCQSxDQUFyQjtBQStCQWxELGNBQWMsQ0FBQ21ELFNBQWYsR0FBMkJiLFlBQTNCO0FBQ0F0QyxjQUFjLENBQUNvRCxZQUFmLEdBQThCZixtQkFBOUI7QUFDQUQsT0FBTyxDQUFDZSxTQUFSLEdBQW9CYixZQUFwQjtBQUNBRixPQUFPLENBQUNnQixZQUFSLEdBQXVCZixtQkFBdkIiLCJmaWxlIjoiLi9zcmMvUG9wb3Zlci9Qb3BvdmVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgdXNlRmxvYXRpbmcsIGZsaXAsIHNoaWZ0LCBvZmZzZXQsIGF1dG9VcGRhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QtZG9tJztcblxuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vQm94JztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5cbmltcG9ydCB7IHVzZUludGVyc2VjdGlvbiB9IGZyb20gJy4uL2hlbHBlcnMvdXNlSW50ZXJzZWN0aW9uJztcblxuZXhwb3J0IGNvbnN0IFBPUE9WRVJfUExBQ0VNRU5UUyA9IFtcbiAgJ3RvcCcsXG4gICd0b3Atc3RhcnQnLFxuICAndG9wLWVuZCcsXG4gICdyaWdodCcsXG4gICdyaWdodC1zdGFydCcsXG4gICdyaWdodC1lbmQnLFxuICAnYm90dG9tJyxcbiAgJ2JvdHRvbS1zdGFydCcsXG4gICdib3R0b20tZW5kJyxcbiAgJ2xlZnQnLFxuICAnbGVmdC1zdGFydCcsXG4gICdsZWZ0LWVuZCcsXG5dO1xuXG5jb25zdCBQb3BvdmVyV3JhcHBlciA9IHN0eWxlZChCb3gpYFxuICBib3gtc2hhZG93OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNoYWRvd3MuZmlsdGVyU2hhZG93fTtcbiAgei1pbmRleDogNDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbDE1MH07XG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwwfTtcbmA7XG5cbmNvbnN0IFBvcG92ZXJTY3JvbGxhYmxlID0gc3R5bGVkKEJveClgXG4gIC8vIDE2IGlzIGJhc2UgYmFzZSBzaXplLCAzIGlzIHRoZSBmYWN0b3IgdG8gZ2V0IGNsb3NlciB0byA0MHB4IGFuZCA1IGlzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdmlzaWJsZSBpbiB0aGUgbGlzdFxuICBtYXgtaGVpZ2h0OiAkezMgKiA1fXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgd2lkdGg6IDRweDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsMH07XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbDE1MH07XG4gICAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5ib3JkZXJSYWRpdXN9O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgUG9wb3ZlckNvbnRlbnQgPSAoe1xuICBzb3VyY2UsXG4gIGNoaWxkcmVuLFxuICBzcGFjaW5nLFxuICBmdWxsV2lkdGgsXG4gIHBsYWNlbWVudCxcbiAgb25SZWFjaEVuZCxcbiAgaW50ZXJzZWN0aW9uSWQsXG4gIGNlbnRlcmVkLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCBwb3BvdmVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBbd2lkdGgsIHNldFdpZHRoXSA9IFJlYWN0LnVzZVN0YXRlKHVuZGVmaW5lZCk7XG4gIGNvbnN0IHsgeCwgeSwgcmVmZXJlbmNlLCBmbG9hdGluZywgc3RyYXRlZ3kgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBzdHJhdGVneTogJ2ZpeGVkJyxcbiAgICBwbGFjZW1lbnQ6IGNlbnRlcmVkID8gJ2JvdHRvbScgOiBwbGFjZW1lbnQsXG4gICAgbWlkZGxld2FyZTogW1xuICAgICAgb2Zmc2V0KHtcbiAgICAgICAgbWFpbkF4aXM6IHNwYWNpbmcsXG4gICAgICB9KSxcbiAgICAgIHNoaWZ0KCksXG4gICAgICBmbGlwKCksXG4gICAgXSxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgfSk7XG5cbiAgUmVhY3QudXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICByZWZlcmVuY2Uoc291cmNlLmN1cnJlbnQpO1xuICB9LCBbc291cmNlXSk7XG5cbiAgUmVhY3QudXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZnVsbFdpZHRoKSB7XG4gICAgICBzZXRXaWR0aChzb3VyY2UuY3VycmVudC5vZmZzZXRXaWR0aCk7XG4gICAgfVxuICB9LCBbZnVsbFdpZHRoXSk7XG5cbiAgdXNlSW50ZXJzZWN0aW9uKHBvcG92ZXJSZWYsIG9uUmVhY2hFbmQsIHtcbiAgICBzZWxlY3RvclRvV2F0Y2g6IGAjJHtpbnRlcnNlY3Rpb25JZH1gLFxuICAgIHNraXBXaGVuOiAhaW50ZXJzZWN0aW9uSWQgfHwgIW9uUmVhY2hFbmQsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPFBvcG92ZXJXcmFwcGVyXG4gICAgICByZWY9e2Zsb2F0aW5nfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgbGVmdDogeCxcbiAgICAgICAgdG9wOiB5LFxuICAgICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXG4gICAgICAgIHdpZHRoOiB3aWR0aCA/IHdpZHRoIDogdW5kZWZpbmVkLFxuICAgICAgfX1cbiAgICAgIGhhc1JhZGl1c1xuICAgICAgYmFja2dyb3VuZD1cIm5ldXRyYWwwXCJcbiAgICAgIHBhZGRpbmc9ezF9XG4gICAgPlxuICAgICAgPFBvcG92ZXJTY3JvbGxhYmxlIHJlZj17cG9wb3ZlclJlZn0gey4uLnByb3BzfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgICB7aW50ZXJzZWN0aW9uSWQgJiYgb25SZWFjaEVuZCAmJiA8Qm94IGlkPXtpbnRlcnNlY3Rpb25JZH0gd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMXB4XCIgLz59XG4gICAgICA8L1BvcG92ZXJTY3JvbGxhYmxlPlxuICAgIDwvUG9wb3ZlcldyYXBwZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUG9wb3ZlciA9IChwcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxQb3J0YWw+XG4gICAgICA8UG9wb3ZlckNvbnRlbnQgey4uLnByb3BzfSAvPlxuICAgIDwvUG9ydGFsPlxuICApO1xufTtcblxuY29uc3QgcG9wb3ZlckRlZmF1bHRQcm9wcyA9IHtcbiAgZnVsbFdpZHRoOiBmYWxzZSxcbiAgaW50ZXJzZWN0aW9uSWQ6IHVuZGVmaW5lZCxcbiAgb25SZWFjaEVuZDogdW5kZWZpbmVkLFxuICBjZW50ZXJlZDogZmFsc2UsXG4gIHBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsXG59O1xuXG5jb25zdCBwb3BvdmVyUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBIb3Jpem9udGFsbHkgY2VudGVyIHRoZSBwb3BvdmVyXG4gICAqL1xuICBjZW50ZXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICAvKipcbiAgICogRGlzcGxheSBmdWxsIHdpZHRoIHBvcG92ZXJcbiAgICovXG4gIGZ1bGxXaWR0aDogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiBFbGVtZW50IGlkIHRvIHdhdGNoIGZvciB0aGUgb25SZWFjaEVuZCBldmVudFxuICAgKi9cbiAgaW50ZXJzZWN0aW9uSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgaW52b2tlZCBhZnRlciBhIHNjcm9sbCB0byB0aGUgYm90dG9tIG9mIHRoZSBwb3BvdmVyIGNvbnRlbnQuXG4gICAqL1xuICBvblJlYWNoRW5kOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqXG4gICAqIFRoZSBwb3BvdmVyIHBvc2l0aW9uXG4gICAqL1xuICBwbGFjZW1lbnQ6IFByb3BUeXBlcy5vbmVPZihQT1BPVkVSX1BMQUNFTUVOVFMpLFxuICAvKipcbiAgICogQSBSZWFjdCByZWYuIFVzZWQgdG8gZGVmaW5lZCB0aGUgcG9zaXRpb24gb2YgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBzb3VyY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgY3VycmVudDogKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyA/IFByb3BUeXBlcy5hbnkgOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihFbGVtZW50KSkuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbiAgc3BhY2luZzogUHJvcFR5cGVzLm51bWJlcixcbn07XG5cblBvcG92ZXJDb250ZW50LnByb3BUeXBlcyA9IHBvcG92ZXJQcm9wcztcblBvcG92ZXJDb250ZW50LmRlZmF1bHRQcm9wcyA9IHBvcG92ZXJEZWZhdWx0UHJvcHM7XG5Qb3BvdmVyLnByb3BUeXBlcyA9IHBvcG92ZXJQcm9wcztcblBvcG92ZXIuZGVmYXVsdFByb3BzID0gcG9wb3ZlckRlZmF1bHRQcm9wcztcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Popover/Popover.js\n");
|
|
535
571
|
|
|
536
572
|
/***/ }),
|
|
537
573
|
|
|
@@ -539,11 +575,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
539
575
|
/*!******************************!*\
|
|
540
576
|
!*** ./src/Popover/index.js ***!
|
|
541
577
|
\******************************/
|
|
542
|
-
/*! exports provided:
|
|
578
|
+
/*! exports provided: POPOVER_PLACEMENTS, Popover */
|
|
543
579
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
544
580
|
|
|
545
581
|
"use strict";
|
|
546
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Popover */ \"./src/Popover/Popover.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"
|
|
582
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Popover */ \"./src/Popover/Popover.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"POPOVER_PLACEMENTS\", function() { return _Popover__WEBPACK_IMPORTED_MODULE_0__[\"POPOVER_PLACEMENTS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Popover\", function() { return _Popover__WEBPACK_IMPORTED_MODULE_0__[\"Popover\"]; });\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL3NyYy9Qb3BvdmVyL2luZGV4LmpzP2U2MzAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwiZmlsZSI6Ii4vc3JjL1BvcG92ZXIvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL1BvcG92ZXInO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Popover/index.js\n");
|
|
547
583
|
|
|
548
584
|
/***/ }),
|
|
549
585
|
|
|
@@ -691,18 +727,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
691
727
|
|
|
692
728
|
/***/ }),
|
|
693
729
|
|
|
694
|
-
/***/ "./src/helpers/useResizeObserver.js":
|
|
695
|
-
/*!******************************************!*\
|
|
696
|
-
!*** ./src/helpers/useResizeObserver.js ***!
|
|
697
|
-
\******************************************/
|
|
698
|
-
/*! exports provided: useResizeObserver */
|
|
699
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
700
|
-
|
|
701
|
-
"use strict";
|
|
702
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useResizeObserver\", function() { return useResizeObserver; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar useResizeObserver = function useResizeObserver(sources, onResize) {\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(function () {\n var resizeObs = new ResizeObserver(onResize);\n\n if (Array.isArray(sources)) {\n sources.map(function (source) {\n if (source.current) {\n resizeObs.observe(source.current);\n }\n });\n } else {\n if (sources.current) {\n resizeObs.observe(sources.current);\n }\n }\n\n return function () {\n resizeObs.disconnect();\n };\n }, []);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL3NyYy9oZWxwZXJzL3VzZVJlc2l6ZU9ic2VydmVyLmpzPzIxYWUiXSwibmFtZXMiOlsidXNlUmVzaXplT2JzZXJ2ZXIiLCJzb3VyY2VzIiwib25SZXNpemUiLCJ1c2VFZmZlY3QiLCJyZXNpemVPYnMiLCJSZXNpemVPYnNlcnZlciIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsInNvdXJjZSIsImN1cnJlbnQiLCJvYnNlcnZlIiwiZGlzY29ubmVjdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVPLElBQU1BLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsT0FBRCxFQUFVQyxRQUFWLEVBQXVCO0FBQ3REQyx5REFBUyxDQUFDLFlBQU07QUFDZCxRQUFNQyxTQUFTLEdBQUcsSUFBSUMsY0FBSixDQUFtQkgsUUFBbkIsQ0FBbEI7O0FBQ0EsUUFBSUksS0FBSyxDQUFDQyxPQUFOLENBQWNOLE9BQWQsQ0FBSixFQUE0QjtBQUMxQkEsYUFBTyxDQUFDTyxHQUFSLENBQVksVUFBQ0MsTUFBRCxFQUFZO0FBQ3RCLFlBQUlBLE1BQU0sQ0FBQ0MsT0FBWCxFQUFvQjtBQUNsQk4sbUJBQVMsQ0FBQ08sT0FBVixDQUFrQkYsTUFBTSxDQUFDQyxPQUF6QjtBQUNEO0FBQ0YsT0FKRDtBQUtELEtBTkQsTUFNTztBQUNMLFVBQUlULE9BQU8sQ0FBQ1MsT0FBWixFQUFxQjtBQUNuQk4saUJBQVMsQ0FBQ08sT0FBVixDQUFrQlYsT0FBTyxDQUFDUyxPQUExQjtBQUNEO0FBQ0Y7O0FBRUQsV0FBTyxZQUFNO0FBQ1hOLGVBQVMsQ0FBQ1EsVUFBVjtBQUNELEtBRkQ7QUFHRCxHQWpCUSxFQWlCTixFQWpCTSxDQUFUO0FBa0JELENBbkJNIiwiZmlsZSI6Ii4vc3JjL2hlbHBlcnMvdXNlUmVzaXplT2JzZXJ2ZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBjb25zdCB1c2VSZXNpemVPYnNlcnZlciA9IChzb3VyY2VzLCBvblJlc2l6ZSkgPT4ge1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJlc2l6ZU9icyA9IG5ldyBSZXNpemVPYnNlcnZlcihvblJlc2l6ZSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlcykpIHtcbiAgICAgIHNvdXJjZXMubWFwKChzb3VyY2UpID0+IHtcbiAgICAgICAgaWYgKHNvdXJjZS5jdXJyZW50KSB7XG4gICAgICAgICAgcmVzaXplT2JzLm9ic2VydmUoc291cmNlLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHNvdXJjZXMuY3VycmVudCkge1xuICAgICAgICByZXNpemVPYnMub2JzZXJ2ZShzb3VyY2VzLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByZXNpemVPYnMuZGlzY29ubmVjdCgpO1xuICAgIH07XG4gIH0sIFtdKTtcbn07XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/helpers/useResizeObserver.js\n");
|
|
703
|
-
|
|
704
|
-
/***/ }),
|
|
705
|
-
|
|
706
730
|
/***/ "./src/themes/utils.js":
|
|
707
731
|
/*!*****************************!*\
|
|
708
732
|
!*** ./src/themes/utils.js ***!
|
|
@@ -723,7 +747,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
723
747
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
724
748
|
|
|
725
749
|
"use strict";
|
|
726
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MenuItem\", function() { return MenuItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleMenu\", function() { return SimpleMenu; });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! styled-components */ \"styled-components\");\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _strapi_icons_CarretDown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @strapi/icons/CarretDown */ \"@strapi/icons/CarretDown\");\n/* harmony import */ var _strapi_icons_CarretDown__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_strapi_icons_CarretDown__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../Typography */ \"./src/Typography/index.js\");\n/* harmony import */ var _Box__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../Box */ \"./src/Box/index.js\");\n/* harmony import */ var _Flex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../Flex */ \"./src/Flex/index.js\");\n/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../Button */ \"./src/Button/index.js\");\n/* harmony import */ var _BaseLink__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../BaseLink */ \"./src/BaseLink/index.js\");\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../Popover */ \"./src/Popover/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./utils */ \"./src/v2/SimpleMenu/utils.js\");\n/* harmony import */ var _helpers_useId__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../helpers/useId */ \"./src/helpers/useId.js\");\n/* harmony import */ var _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../helpers/keyboardKeys */ \"./src/helpers/keyboardKeys.js\");\n\n\n\n\n\n\nvar _excluded = [\"as\", \"children\", \"onClick\", \"isFocused\", \"isLink\"],\n _excluded2 = [\"label\", \"children\", \"id\", \"as\", \"onOpen\", \"onClose\", \"size\"];\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar OptionButton = styled_components__WEBPACK_IMPORTED_MODULE_8___default.a.button(_templateObject || (_templateObject = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()([\"\\n border: none;\\n padding: 0;\\n background: transparent;\\n cursor: pointer;\\n \", \"\\n\"])), _utils__WEBPACK_IMPORTED_MODULE_16__[\"getOptionStyle\"]);\nvar OptionLink = styled_components__WEBPACK_IMPORTED_MODULE_8___default()(_BaseLink__WEBPACK_IMPORTED_MODULE_14__[\"BaseLink\"])(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()([\"\\n text-decoration: none;\\n \", \"\\n\"])), _utils__WEBPACK_IMPORTED_MODULE_16__[\"getOptionStyle\"]);\nvar IconWrapper = styled_components__WEBPACK_IMPORTED_MODULE_8___default.a.span(_templateObject3 || (_templateObject3 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()([\"\\n display: flex;\\n align-items: center;\\n svg {\\n height: 4px;\\n width: 6px;\\n }\\n\"])));\nvar StyledButtonSmall = styled_components__WEBPACK_IMPORTED_MODULE_8___default()(_Button__WEBPACK_IMPORTED_MODULE_13__[\"Button\"])(_templateObject4 || (_templateObject4 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()([\"\\n padding: \", \";\\n\"])), function (_ref) {\n var theme = _ref.theme;\n return \"\".concat(theme.spaces[1], \" \").concat(theme.spaces[3]);\n});\nvar MenuItem = function MenuItem(_ref2) {\n var as = _ref2.as,\n children = _ref2.children,\n onClick = _ref2.onClick,\n isFocused = _ref2.isFocused,\n isLink = _ref2.isLink,\n props = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4___default()(_ref2, _excluded);\n\n var menuItemRef = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useRef\"])();\n Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useEffect\"])(function () {\n if (isFocused && menuItemRef.current) {\n menuItemRef.current.focus();\n }\n }, [isFocused]);\n\n var menuItemProps = _objectSpread({\n tabIndex: isFocused ? 0 : -1,\n ref: menuItemRef,\n role: 'menuitem'\n }, props);\n\n var handleKeyDown = function handleKeyDown(e) {\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].SPACE || e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].ENTER) {\n onClick();\n }\n };\n\n return isLink ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(OptionLink, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default()({\n as: as\n }, menuItemProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Box__WEBPACK_IMPORTED_MODULE_11__[\"Box\"], {\n padding: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Typography__WEBPACK_IMPORTED_MODULE_10__[\"Typography\"], null, children))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(OptionButton, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default()({\n onKeyDown: handleKeyDown,\n onMouseDown: onClick,\n type: \"button\"\n }, menuItemProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Box__WEBPACK_IMPORTED_MODULE_11__[\"Box\"], {\n padding: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Typography__WEBPACK_IMPORTED_MODULE_10__[\"Typography\"], null, children)));\n};\nMenuItem.defaultProps = {\n onClick: function onClick() {},\n isFocused: false,\n isLink: false\n};\nMenuItem.propTypes = {\n as: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.elementType,\n children: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.node.isRequired,\n isFocused: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n isLink: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func\n};\nvar SimpleMenu = function SimpleMenu(_ref3) {\n var label = _ref3.label,\n children = _ref3.children,\n id = _ref3.id,\n asComp = _ref3.as,\n _ref3$onOpen = _ref3.onOpen,\n onOpen = _ref3$onOpen === void 0 ? function () {} : _ref3$onOpen,\n _ref3$onClose = _ref3.onClose,\n onClose = _ref3$onClose === void 0 ? function () {} : _ref3$onClose,\n size = _ref3.size,\n props = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4___default()(_ref3, _excluded2);\n\n var menuButtonRef = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useRef\"])();\n var menuId = Object(_helpers_useId__WEBPACK_IMPORTED_MODULE_17__[\"useId\"])('simplemenu', id);\n var didMount = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useRef\"])(false);\n\n var _useState = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useState\"])(false),\n _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useState\"])(0),\n _useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState3, 2),\n focusedItemIndex = _useState4[0],\n setFocusItem = _useState4[1];\n\n var childrenArray = react__WEBPACK_IMPORTED_MODULE_6__[\"Children\"].toArray(children);\n var DefaultComponent = size === 'S' ? StyledButtonSmall : _Button__WEBPACK_IMPORTED_MODULE_13__[\"Button\"];\n var Component = asComp || DefaultComponent;\n Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useEffect\"])(function () {\n if (['string', 'number'].includes(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(label))) {\n // Useful to focus the selected item in the list\n var defaultItemIndexToFocus = childrenArray.findIndex(function (c) {\n return c.props.children === label;\n });\n\n if (defaultItemIndexToFocus !== -1) {\n setFocusItem(defaultItemIndexToFocus);\n }\n }\n }, [label]);\n Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useEffect\"])(function () {\n if (didMount !== null && didMount !== void 0 && didMount.current) {\n if (visible && typeof onOpen === 'function') {\n onOpen();\n } else if (typeof onClose === 'function') {\n onClose();\n }\n } else {\n didMount.current = true;\n }\n }, [didMount, visible]);\n /* in case `label` is a custom react component, we know it is going to be\n a child of the menu button.\n */\n\n Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useEffect\"])(function () {\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.isValidElement(label) && focusedItemIndex == -1) {\n menuButtonRef.current.focus();\n }\n }, [label, focusedItemIndex]);\n\n var handleWrapperKeyDown = function handleWrapperKeyDown(e) {\n if (visible) {\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].ESCAPE) {\n e.stopPropagation();\n setVisible(false);\n menuButtonRef.current.focus();\n }\n\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].DOWN) {\n setFocusItem(function (prev) {\n return prev === childrenArray.length - 1 ? 0 : prev + 1;\n });\n }\n\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].UP) {\n setFocusItem(function (prev) {\n return prev === 0 ? childrenArray.length - 1 : prev - 1;\n });\n }\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].ENTER || e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].SPACE) {\n setVisible(function (prevVisible) {\n return !prevVisible;\n });\n }\n };\n\n var handleBlur = function handleBlur(e) {\n e.preventDefault();\n\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setVisible(false);\n }\n };\n\n var handleMenuButtonMouseDown = function handleMenuButtonMouseDown(e) {\n e.preventDefault();\n setVisible(function (prevVisible) {\n return !prevVisible;\n });\n };\n\n var childrenClone = childrenArray.map(function (child, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Flex__WEBPACK_IMPORTED_MODULE_12__[\"Flex\"], {\n as: \"li\",\n key: index,\n justifyContent: \"center\",\n role: \"menuitem\"\n }, /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_6__[\"cloneElement\"])(child, {\n onClick: function onClick() {\n child.props.onClick();\n setVisible(false);\n menuButtonRef.current.focus();\n },\n isFocused: focusedItemIndex === index\n }));\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"div\", {\n onKeyDown: handleWrapperKeyDown\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(Component, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default()({\n label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.isValidElement(label) ? null : label,\n \"aria-haspopup\": true,\n \"aria-expanded\": visible,\n \"aria-controls\": menuId,\n onKeyDown: handleKeyDown,\n onMouseDown: handleMenuButtonMouseDown,\n ref: menuButtonRef,\n type: \"button\",\n variant: \"ghost\",\n endIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(IconWrapper, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_strapi_icons_CarretDown__WEBPACK_IMPORTED_MODULE_9___default.a, {\n \"aria-hidden\": true\n }))\n }, props), label), visible && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Popover__WEBPACK_IMPORTED_MODULE_15__[\"Popover\"], {\n onBlur: handleBlur,\n source: menuButtonRef,\n spacing: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Box__WEBPACK_IMPORTED_MODULE_11__[\"Box\"], {\n role: \"menu\",\n as: \"ul\",\n padding: 1,\n id: menuId\n }, childrenClone)));\n};\nSimpleMenu.defaultProps = {\n as: undefined\n};\nSimpleMenu.displayName = 'SimpleMenu';\nSimpleMenu.defaultProps = {\n size: 'M'\n};\nSimpleMenu.propTypes = {\n as: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.any,\n children: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.node), prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.node]).isRequired,\n id: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string,\n label: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.element]).isRequired,\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n onOpen: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n\n /**\n * Size of the trigger button.\n * Note: in case a custom component is passed through the \"as\"\n * prop, the size prop is passed along too, but needs to be handled there\n */\n size: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOf(['S', 'M'])\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL3NyYy92Mi9TaW1wbGVNZW51L1NpbXBsZU1lbnUuanM/N2QyNSJdLCJuYW1lcyI6WyJPcHRpb25CdXR0b24iLCJzdHlsZWQiLCJidXR0b24iLCJnZXRPcHRpb25TdHlsZSIsIk9wdGlvbkxpbmsiLCJCYXNlTGluayIsIkljb25XcmFwcGVyIiwic3BhbiIsIlN0eWxlZEJ1dHRvblNtYWxsIiwiQnV0dG9uIiwidGhlbWUiLCJzcGFjZXMiLCJNZW51SXRlbSIsImFzIiwiY2hpbGRyZW4iLCJvbkNsaWNrIiwiaXNGb2N1c2VkIiwiaXNMaW5rIiwicHJvcHMiLCJtZW51SXRlbVJlZiIsInVzZVJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJmb2N1cyIsIm1lbnVJdGVtUHJvcHMiLCJ0YWJJbmRleCIsInJlZiIsInJvbGUiLCJoYW5kbGVLZXlEb3duIiwiZSIsImtleSIsIktleWJvYXJkS2V5cyIsIlNQQUNFIiwiRU5URVIiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJlbGVtZW50VHlwZSIsIm5vZGUiLCJpc1JlcXVpcmVkIiwiYm9vbCIsImZ1bmMiLCJTaW1wbGVNZW51IiwibGFiZWwiLCJpZCIsImFzQ29tcCIsIm9uT3BlbiIsIm9uQ2xvc2UiLCJzaXplIiwibWVudUJ1dHRvblJlZiIsIm1lbnVJZCIsInVzZUlkIiwiZGlkTW91bnQiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwiZm9jdXNlZEl0ZW1JbmRleCIsInNldEZvY3VzSXRlbSIsImNoaWxkcmVuQXJyYXkiLCJDaGlsZHJlbiIsInRvQXJyYXkiLCJEZWZhdWx0Q29tcG9uZW50IiwiQ29tcG9uZW50IiwiaW5jbHVkZXMiLCJkZWZhdWx0SXRlbUluZGV4VG9Gb2N1cyIsImZpbmRJbmRleCIsImMiLCJSZWFjdCIsImlzVmFsaWRFbGVtZW50IiwiaGFuZGxlV3JhcHBlcktleURvd24iLCJFU0NBUEUiLCJzdG9wUHJvcGFnYXRpb24iLCJET1dOIiwicHJldiIsImxlbmd0aCIsIlVQIiwicHJldlZpc2libGUiLCJoYW5kbGVCbHVyIiwicHJldmVudERlZmF1bHQiLCJjdXJyZW50VGFyZ2V0IiwiY29udGFpbnMiLCJyZWxhdGVkVGFyZ2V0IiwiaGFuZGxlTWVudUJ1dHRvbk1vdXNlRG93biIsImNoaWxkcmVuQ2xvbmUiLCJtYXAiLCJjaGlsZCIsImluZGV4IiwiY2xvbmVFbGVtZW50IiwidW5kZWZpbmVkIiwiZGlzcGxheU5hbWUiLCJhbnkiLCJvbmVPZlR5cGUiLCJhcnJheU9mIiwic3RyaW5nIiwibnVtYmVyIiwiZWxlbWVudCIsIm9uZU9mIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBTUEsWUFBWSxHQUFHQyx3REFBTSxDQUFDQyxNQUFWLDZOQUtkQyxzREFMYyxDQUFsQjtBQVFBLElBQU1DLFVBQVUsR0FBR0gsd0RBQU0sQ0FBQ0ksbURBQUQsQ0FBVCx5S0FFWkYsc0RBRlksQ0FBaEI7QUFLQSxJQUFNRyxXQUFXLEdBQUdMLHdEQUFNLENBQUNNLElBQVYsaU9BQWpCO0FBU0EsSUFBTUMsaUJBQWlCLEdBQUdQLHdEQUFNLENBQUNRLCtDQUFELENBQVQseUpBQ1Y7QUFBQSxNQUFHQyxLQUFILFFBQUdBLEtBQUg7QUFBQSxtQkFBa0JBLEtBQUssQ0FBQ0MsTUFBTixDQUFhLENBQWIsQ0FBbEIsY0FBcUNELEtBQUssQ0FBQ0MsTUFBTixDQUFhLENBQWIsQ0FBckM7QUFBQSxDQURVLENBQXZCO0FBSU8sSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVcsUUFBNEQ7QUFBQSxNQUF6REMsRUFBeUQsU0FBekRBLEVBQXlEO0FBQUEsTUFBckRDLFFBQXFELFNBQXJEQSxRQUFxRDtBQUFBLE1BQTNDQyxPQUEyQyxTQUEzQ0EsT0FBMkM7QUFBQSxNQUFsQ0MsU0FBa0MsU0FBbENBLFNBQWtDO0FBQUEsTUFBdkJDLE1BQXVCLFNBQXZCQSxNQUF1QjtBQUFBLE1BQVpDLEtBQVk7O0FBQ2xGLE1BQU1DLFdBQVcsR0FBR0Msb0RBQU0sRUFBMUI7QUFFQUMseURBQVMsQ0FBQyxZQUFNO0FBQ2QsUUFBSUwsU0FBUyxJQUFJRyxXQUFXLENBQUNHLE9BQTdCLEVBQXNDO0FBQ3BDSCxpQkFBVyxDQUFDRyxPQUFaLENBQW9CQyxLQUFwQjtBQUNEO0FBQ0YsR0FKUSxFQUlOLENBQUNQLFNBQUQsQ0FKTSxDQUFUOztBQU1BLE1BQU1RLGFBQWE7QUFDakJDLFlBQVEsRUFBRVQsU0FBUyxHQUFHLENBQUgsR0FBTyxDQUFDLENBRFY7QUFFakJVLE9BQUcsRUFBRVAsV0FGWTtBQUdqQlEsUUFBSSxFQUFFO0FBSFcsS0FJZFQsS0FKYyxDQUFuQjs7QUFPQSxNQUFNVSxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLENBQUQsRUFBTztBQUMzQixRQUFJQSxDQUFDLENBQUNDLEdBQUYsS0FBVUMsbUVBQVksQ0FBQ0MsS0FBdkIsSUFBZ0NILENBQUMsQ0FBQ0MsR0FBRixLQUFVQyxtRUFBWSxDQUFDRSxLQUEzRCxFQUFrRTtBQUNoRWxCLGFBQU87QUFDUjtBQUNGLEdBSkQ7O0FBTUEsU0FBT0UsTUFBTSxnQkFDWCwyREFBQyxVQUFEO0FBQVksTUFBRSxFQUFFSjtBQUFoQixLQUF3QlcsYUFBeEIsZ0JBQ0UsMkRBQUMseUNBQUQ7QUFBSyxXQUFPLEVBQUU7QUFBZCxrQkFDRSwyREFBQyx1REFBRCxRQUFhVixRQUFiLENBREYsQ0FERixDQURXLGdCQU9YLDJEQUFDLFlBQUQ7QUFBYyxhQUFTLEVBQUVjLGFBQXpCO0FBQXdDLGVBQVcsRUFBRWIsT0FBckQ7QUFBOEQsUUFBSSxFQUFDO0FBQW5FLEtBQWdGUyxhQUFoRixnQkFDRSwyREFBQyx5Q0FBRDtBQUFLLFdBQU8sRUFBRTtBQUFkLGtCQUNFLDJEQUFDLHVEQUFELFFBQWFWLFFBQWIsQ0FERixDQURGLENBUEY7QUFhRCxDQW5DTTtBQXFDUEYsUUFBUSxDQUFDc0IsWUFBVCxHQUF3QjtBQUN0Qm5CLFNBQU8sRUFBRSxtQkFBTSxDQUFFLENBREs7QUFFdEJDLFdBQVMsRUFBRSxLQUZXO0FBR3RCQyxRQUFNLEVBQUU7QUFIYyxDQUF4QjtBQU1BTCxRQUFRLENBQUN1QixTQUFULEdBQXFCO0FBQ25CdEIsSUFBRSxFQUFFdUIsaURBQVMsQ0FBQ0MsV0FESztBQUVuQnZCLFVBQVEsRUFBRXNCLGlEQUFTLENBQUNFLElBQVYsQ0FBZUMsVUFGTjtBQUduQnZCLFdBQVMsRUFBRW9CLGlEQUFTLENBQUNJLElBSEY7QUFJbkJ2QixRQUFNLEVBQUVtQixpREFBUyxDQUFDSSxJQUpDO0FBS25CekIsU0FBTyxFQUFFcUIsaURBQVMsQ0FBQ0s7QUFMQSxDQUFyQjtBQVFPLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhLFFBU3BCO0FBQUEsTUFSSkMsS0FRSSxTQVJKQSxLQVFJO0FBQUEsTUFQSjdCLFFBT0ksU0FQSkEsUUFPSTtBQUFBLE1BTko4QixFQU1JLFNBTkpBLEVBTUk7QUFBQSxNQUxBQyxNQUtBLFNBTEpoQyxFQUtJO0FBQUEsMkJBSkppQyxNQUlJO0FBQUEsTUFKSkEsTUFJSSw2QkFKSyxZQUFNLENBQUUsQ0FJYjtBQUFBLDRCQUhKQyxPQUdJO0FBQUEsTUFISkEsT0FHSSw4QkFITSxZQUFNLENBQUUsQ0FHZDtBQUFBLE1BRkpDLElBRUksU0FGSkEsSUFFSTtBQUFBLE1BREQ5QixLQUNDOztBQUNKLE1BQU0rQixhQUFhLEdBQUc3QixvREFBTSxFQUE1QjtBQUNBLE1BQU04QixNQUFNLEdBQUdDLDZEQUFLLENBQUMsWUFBRCxFQUFlUCxFQUFmLENBQXBCO0FBQ0EsTUFBTVEsUUFBUSxHQUFHaEMsb0RBQU0sQ0FBQyxLQUFELENBQXZCOztBQUNBLGtCQUE4QmlDLHNEQUFRLENBQUMsS0FBRCxDQUF0QztBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxtQkFBeUNGLHNEQUFRLENBQUMsQ0FBRCxDQUFqRDtBQUFBO0FBQUEsTUFBT0csZ0JBQVA7QUFBQSxNQUF5QkMsWUFBekI7O0FBQ0EsTUFBTUMsYUFBYSxHQUFHQyw4Q0FBUSxDQUFDQyxPQUFULENBQWlCOUMsUUFBakIsQ0FBdEI7QUFDQSxNQUFNK0MsZ0JBQWdCLEdBQUdiLElBQUksS0FBSyxHQUFULEdBQWV4QyxpQkFBZixHQUFtQ0MsK0NBQTVEO0FBQ0EsTUFBTXFELFNBQVMsR0FBR2pCLE1BQU0sSUFBSWdCLGdCQUE1QjtBQUVBeEMseURBQVMsQ0FBQyxZQUFNO0FBQ2QsUUFBSSxDQUFDLFFBQUQsRUFBVyxRQUFYLEVBQXFCMEMsUUFBckIsc0VBQXFDcEIsS0FBckMsRUFBSixFQUFpRDtBQUMvQztBQUNBLFVBQU1xQix1QkFBdUIsR0FBR04sYUFBYSxDQUFDTyxTQUFkLENBQXdCLFVBQUNDLENBQUQ7QUFBQSxlQUFPQSxDQUFDLENBQUNoRCxLQUFGLENBQVFKLFFBQVIsS0FBcUI2QixLQUE1QjtBQUFBLE9BQXhCLENBQWhDOztBQUVBLFVBQUlxQix1QkFBdUIsS0FBSyxDQUFDLENBQWpDLEVBQW9DO0FBQ2xDUCxvQkFBWSxDQUFDTyx1QkFBRCxDQUFaO0FBQ0Q7QUFDRjtBQUNGLEdBVFEsRUFTTixDQUFDckIsS0FBRCxDQVRNLENBQVQ7QUFXQXRCLHlEQUFTLENBQUMsWUFBTTtBQUNkLFFBQUkrQixRQUFKLGFBQUlBLFFBQUosZUFBSUEsUUFBUSxDQUFFOUIsT0FBZCxFQUF1QjtBQUNyQixVQUFJZ0MsT0FBTyxJQUFJLE9BQU9SLE1BQVAsS0FBa0IsVUFBakMsRUFBNkM7QUFDM0NBLGNBQU07QUFDUCxPQUZELE1BRU8sSUFBSSxPQUFPQyxPQUFQLEtBQW1CLFVBQXZCLEVBQW1DO0FBQ3hDQSxlQUFPO0FBQ1I7QUFDRixLQU5ELE1BTU87QUFDTEssY0FBUSxDQUFDOUIsT0FBVCxHQUFtQixJQUFuQjtBQUNEO0FBQ0YsR0FWUSxFQVVOLENBQUM4QixRQUFELEVBQVdFLE9BQVgsQ0FWTSxDQUFUO0FBWUE7QUFDRjtBQUNBOztBQUNFakMseURBQVMsQ0FBQyxZQUFNO0FBQ2QsUUFBSSxjQUFBOEMsNENBQUssQ0FBQ0MsY0FBTixDQUFxQnpCLEtBQXJCLEtBQStCYSxnQkFBZ0IsSUFBSSxDQUFDLENBQXhELEVBQTJEO0FBQ3pEUCxtQkFBYSxDQUFDM0IsT0FBZCxDQUFzQkMsS0FBdEI7QUFDRDtBQUNGLEdBSlEsRUFJTixDQUFDb0IsS0FBRCxFQUFRYSxnQkFBUixDQUpNLENBQVQ7O0FBTUEsTUFBTWEsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDeEMsQ0FBRCxFQUFPO0FBQ2xDLFFBQUl5QixPQUFKLEVBQWE7QUFDWCxVQUFJekIsQ0FBQyxDQUFDQyxHQUFGLEtBQVVDLG1FQUFZLENBQUN1QyxNQUEzQixFQUFtQztBQUNqQ3pDLFNBQUMsQ0FBQzBDLGVBQUY7QUFDQWhCLGtCQUFVLENBQUMsS0FBRCxDQUFWO0FBQ0FOLHFCQUFhLENBQUMzQixPQUFkLENBQXNCQyxLQUF0QjtBQUNEOztBQUVELFVBQUlNLENBQUMsQ0FBQ0MsR0FBRixLQUFVQyxtRUFBWSxDQUFDeUMsSUFBM0IsRUFBaUM7QUFDL0JmLG9CQUFZLENBQUMsVUFBQ2dCLElBQUQ7QUFBQSxpQkFBV0EsSUFBSSxLQUFLZixhQUFhLENBQUNnQixNQUFkLEdBQXVCLENBQWhDLEdBQW9DLENBQXBDLEdBQXdDRCxJQUFJLEdBQUcsQ0FBMUQ7QUFBQSxTQUFELENBQVo7QUFDRDs7QUFFRCxVQUFJNUMsQ0FBQyxDQUFDQyxHQUFGLEtBQVVDLG1FQUFZLENBQUM0QyxFQUEzQixFQUErQjtBQUM3QmxCLG9CQUFZLENBQUMsVUFBQ2dCLElBQUQ7QUFBQSxpQkFBV0EsSUFBSSxLQUFLLENBQVQsR0FBYWYsYUFBYSxDQUFDZ0IsTUFBZCxHQUF1QixDQUFwQyxHQUF3Q0QsSUFBSSxHQUFHLENBQTFEO0FBQUEsU0FBRCxDQUFaO0FBQ0Q7QUFDRjtBQUNGLEdBaEJEOztBQWtCQSxNQUFNN0MsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxDQUFELEVBQU87QUFDM0IsUUFBSUEsQ0FBQyxDQUFDQyxHQUFGLEtBQVVDLG1FQUFZLENBQUNFLEtBQXZCLElBQWdDSixDQUFDLENBQUNDLEdBQUYsS0FBVUMsbUVBQVksQ0FBQ0MsS0FBM0QsRUFBa0U7QUFDaEV1QixnQkFBVSxDQUFDLFVBQUNxQixXQUFEO0FBQUEsZUFBaUIsQ0FBQ0EsV0FBbEI7QUFBQSxPQUFELENBQVY7QUFDRDtBQUNGLEdBSkQ7O0FBTUEsTUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ2hELENBQUQsRUFBTztBQUN4QkEsS0FBQyxDQUFDaUQsY0FBRjs7QUFDQSxRQUFJLENBQUNqRCxDQUFDLENBQUNrRCxhQUFGLENBQWdCQyxRQUFoQixDQUF5Qm5ELENBQUMsQ0FBQ29ELGFBQTNCLENBQUwsRUFBZ0Q7QUFDOUMxQixnQkFBVSxDQUFDLEtBQUQsQ0FBVjtBQUNEO0FBQ0YsR0FMRDs7QUFPQSxNQUFNMkIseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUE0QixDQUFDckQsQ0FBRCxFQUFPO0FBQ3ZDQSxLQUFDLENBQUNpRCxjQUFGO0FBQ0F2QixjQUFVLENBQUMsVUFBQ3FCLFdBQUQ7QUFBQSxhQUFpQixDQUFDQSxXQUFsQjtBQUFBLEtBQUQsQ0FBVjtBQUNELEdBSEQ7O0FBS0EsTUFBTU8sYUFBYSxHQUFHekIsYUFBYSxDQUFDMEIsR0FBZCxDQUFrQixVQUFDQyxLQUFELEVBQVFDLEtBQVI7QUFBQSx3QkFDdEMsMkRBQUMsMkNBQUQ7QUFBTSxRQUFFLEVBQUMsSUFBVDtBQUFjLFNBQUcsRUFBRUEsS0FBbkI7QUFBMEIsb0JBQWMsRUFBQyxRQUF6QztBQUFrRCxVQUFJLEVBQUM7QUFBdkQsb0JBQ0dDLDBEQUFZLENBQUNGLEtBQUQsRUFBUTtBQUNuQnRFLGFBQU8sRUFBRSxtQkFBTTtBQUNic0UsYUFBSyxDQUFDbkUsS0FBTixDQUFZSCxPQUFaO0FBQ0F3QyxrQkFBVSxDQUFDLEtBQUQsQ0FBVjtBQUNBTixxQkFBYSxDQUFDM0IsT0FBZCxDQUFzQkMsS0FBdEI7QUFDRCxPQUxrQjtBQU1uQlAsZUFBUyxFQUFFd0MsZ0JBQWdCLEtBQUs4QjtBQU5iLEtBQVIsQ0FEZixDQURzQztBQUFBLEdBQWxCLENBQXRCO0FBYUEsc0JBQ0U7QUFBSyxhQUFTLEVBQUVqQjtBQUFoQixrQkFDRSwyREFBQyxTQUFEO0FBQ0UsU0FBSyxFQUFFLGFBQUFGLDRDQUFLLENBQUNDLGNBQU4sQ0FBcUJ6QixLQUFyQixJQUE4QixJQUE5QixHQUFxQ0EsS0FEOUM7QUFFRSx5QkFGRjtBQUdFLHFCQUFlVyxPQUhqQjtBQUlFLHFCQUFlSixNQUpqQjtBQUtFLGFBQVMsRUFBRXRCLGFBTGI7QUFNRSxlQUFXLEVBQUVzRCx5QkFOZjtBQU9FLE9BQUcsRUFBRWpDLGFBUFA7QUFRRSxRQUFJLEVBQUMsUUFSUDtBQVNFLFdBQU8sRUFBQyxPQVRWO0FBVUUsV0FBTyxlQUNMLDJEQUFDLFdBQUQscUJBQ0UsMkRBQUMsK0RBQUQ7QUFBWTtBQUFaLE1BREY7QUFYSixLQWVNL0IsS0FmTixHQWlCR3lCLEtBakJILENBREYsRUFvQkdXLE9BQU8saUJBQ04sMkRBQUMsaURBQUQ7QUFBUyxVQUFNLEVBQUV1QixVQUFqQjtBQUE2QixVQUFNLEVBQUU1QixhQUFyQztBQUFvRCxXQUFPLEVBQUU7QUFBN0Qsa0JBQ0UsMkRBQUMseUNBQUQ7QUFBSyxRQUFJLEVBQUMsTUFBVjtBQUFpQixNQUFFLEVBQUMsSUFBcEI7QUFBeUIsV0FBTyxFQUFFLENBQWxDO0FBQXFDLE1BQUUsRUFBRUM7QUFBekMsS0FDR2lDLGFBREgsQ0FERixDQXJCSixDQURGO0FBOEJELENBbElNO0FBb0lQekMsVUFBVSxDQUFDUixZQUFYLEdBQTBCO0FBQ3hCckIsSUFBRSxFQUFFMkU7QUFEb0IsQ0FBMUI7QUFJQTlDLFVBQVUsQ0FBQytDLFdBQVgsR0FBeUIsWUFBekI7QUFFQS9DLFVBQVUsQ0FBQ1IsWUFBWCxHQUEwQjtBQUN4QmMsTUFBSSxFQUFFO0FBRGtCLENBQTFCO0FBSUFOLFVBQVUsQ0FBQ1AsU0FBWCxHQUF1QjtBQUNyQnRCLElBQUUsRUFBRXVCLGlEQUFTLENBQUNzRCxHQURPO0FBRXJCNUUsVUFBUSxFQUFFc0IsaURBQVMsQ0FBQ3VELFNBQVYsQ0FBb0IsQ0FBQ3ZELGlEQUFTLENBQUN3RCxPQUFWLENBQWtCeEQsaURBQVMsQ0FBQ0UsSUFBNUIsQ0FBRCxFQUFvQ0YsaURBQVMsQ0FBQ0UsSUFBOUMsQ0FBcEIsRUFBeUVDLFVBRjlEO0FBR3JCSyxJQUFFLEVBQUVSLGlEQUFTLENBQUN5RCxNQUhPO0FBSXJCbEQsT0FBSyxFQUFFUCxpREFBUyxDQUFDdUQsU0FBVixDQUFvQixDQUFDdkQsaURBQVMsQ0FBQ3lELE1BQVgsRUFBbUJ6RCxpREFBUyxDQUFDMEQsTUFBN0IsRUFBcUMxRCxpREFBUyxDQUFDMkQsT0FBL0MsQ0FBcEIsRUFBNkV4RCxVQUovRDtBQUtyQlEsU0FBTyxFQUFFWCxpREFBUyxDQUFDSyxJQUxFO0FBTXJCSyxRQUFNLEVBQUVWLGlEQUFTLENBQUNLLElBTkc7O0FBUXJCO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFFRU8sTUFBSSxFQUFFWixpREFBUyxDQUFDNEQsS0FBVixDQUFnQixDQUFDLEdBQUQsRUFBTSxHQUFOLENBQWhCO0FBZGUsQ0FBdkIiLCJmaWxlIjoiLi9zcmMvdjIvU2ltcGxlTWVudS9TaW1wbGVNZW51LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUsIENoaWxkcmVuLCBjbG9uZUVsZW1lbnQsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBDYXJyZXREb3duIGZyb20gJ0BzdHJhcGkvaWNvbnMvQ2FycmV0RG93bic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBCb3ggfSBmcm9tICcuLi8uLi9Cb3gnO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uL0ZsZXgnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vQnV0dG9uJztcbmltcG9ydCB7IEJhc2VMaW5rIH0gZnJvbSAnLi4vLi4vQmFzZUxpbmsnO1xuaW1wb3J0IHsgUG9wb3ZlciB9IGZyb20gJy4uLy4uL1BvcG92ZXInO1xuaW1wb3J0IHsgZ2V0T3B0aW9uU3R5bGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnLi4vLi4vaGVscGVycy91c2VJZCc7XG5pbXBvcnQgeyBLZXlib2FyZEtleXMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2tleWJvYXJkS2V5cyc7XG5cbmNvbnN0IE9wdGlvbkJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJHtnZXRPcHRpb25TdHlsZX1cbmA7XG5cbmNvbnN0IE9wdGlvbkxpbmsgPSBzdHlsZWQoQmFzZUxpbmspYFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICR7Z2V0T3B0aW9uU3R5bGV9XG5gO1xuXG5jb25zdCBJY29uV3JhcHBlciA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzdmcge1xuICAgIGhlaWdodDogNHB4O1xuICAgIHdpZHRoOiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvblNtYWxsID0gc3R5bGVkKEJ1dHRvbilgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VzWzFdfSAke3RoZW1lLnNwYWNlc1szXX1gfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBNZW51SXRlbSA9ICh7IGFzLCBjaGlsZHJlbiwgb25DbGljaywgaXNGb2N1c2VkLCBpc0xpbmssIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgbWVudUl0ZW1SZWYgPSB1c2VSZWYoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0ZvY3VzZWQgJiYgbWVudUl0ZW1SZWYuY3VycmVudCkge1xuICAgICAgbWVudUl0ZW1SZWYuY3VycmVudC5mb2N1cygpO1xuICAgIH1cbiAgfSwgW2lzRm9jdXNlZF0pO1xuXG4gIGNvbnN0IG1lbnVJdGVtUHJvcHMgPSB7XG4gICAgdGFiSW5kZXg6IGlzRm9jdXNlZCA/IDAgOiAtMSxcbiAgICByZWY6IG1lbnVJdGVtUmVmLFxuICAgIHJvbGU6ICdtZW51aXRlbScsXG4gICAgLi4ucHJvcHMsXG4gIH07XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlKSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSBLZXlib2FyZEtleXMuU1BBQ0UgfHwgZS5rZXkgPT09IEtleWJvYXJkS2V5cy5FTlRFUikge1xuICAgICAgb25DbGljaygpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gaXNMaW5rID8gKFxuICAgIDxPcHRpb25MaW5rIGFzPXthc30gey4uLm1lbnVJdGVtUHJvcHN9PlxuICAgICAgPEJveCBwYWRkaW5nPXsyfT5cbiAgICAgICAgPFR5cG9ncmFwaHk+e2NoaWxkcmVufTwvVHlwb2dyYXBoeT5cbiAgICAgIDwvQm94PlxuICAgIDwvT3B0aW9uTGluaz5cbiAgKSA6IChcbiAgICA8T3B0aW9uQnV0dG9uIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn0gb25Nb3VzZURvd249e29uQ2xpY2t9IHR5cGU9XCJidXR0b25cIiB7Li4ubWVudUl0ZW1Qcm9wc30+XG4gICAgICA8Qm94IHBhZGRpbmc9ezJ9PlxuICAgICAgICA8VHlwb2dyYXBoeT57Y2hpbGRyZW59PC9UeXBvZ3JhcGh5PlxuICAgICAgPC9Cb3g+XG4gICAgPC9PcHRpb25CdXR0b24+XG4gICk7XG59O1xuXG5NZW51SXRlbS5kZWZhdWx0UHJvcHMgPSB7XG4gIG9uQ2xpY2s6ICgpID0+IHt9LFxuICBpc0ZvY3VzZWQ6IGZhbHNlLFxuICBpc0xpbms6IGZhbHNlLFxufTtcblxuTWVudUl0ZW0ucHJvcFR5cGVzID0ge1xuICBhczogUHJvcFR5cGVzLmVsZW1lbnRUeXBlLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgaXNGb2N1c2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNMaW5rOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5leHBvcnQgY29uc3QgU2ltcGxlTWVudSA9ICh7XG4gIGxhYmVsLFxuICBjaGlsZHJlbixcbiAgaWQsXG4gIGFzOiBhc0NvbXAsXG4gIG9uT3BlbiA9ICgpID0+IHt9LFxuICBvbkNsb3NlID0gKCkgPT4ge30sXG4gIHNpemUsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IG1lbnVCdXR0b25SZWYgPSB1c2VSZWYoKTtcbiAgY29uc3QgbWVudUlkID0gdXNlSWQoJ3NpbXBsZW1lbnUnLCBpZCk7XG4gIGNvbnN0IGRpZE1vdW50ID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZm9jdXNlZEl0ZW1JbmRleCwgc2V0Rm9jdXNJdGVtXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBjaGlsZHJlbkFycmF5ID0gQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbik7XG4gIGNvbnN0IERlZmF1bHRDb21wb25lbnQgPSBzaXplID09PSAnUycgPyBTdHlsZWRCdXR0b25TbWFsbCA6IEJ1dHRvbjtcbiAgY29uc3QgQ29tcG9uZW50ID0gYXNDb21wIHx8IERlZmF1bHRDb21wb25lbnQ7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoWydzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIGxhYmVsKSkge1xuICAgICAgLy8gVXNlZnVsIHRvIGZvY3VzIHRoZSBzZWxlY3RlZCBpdGVtIGluIHRoZSBsaXN0XG4gICAgICBjb25zdCBkZWZhdWx0SXRlbUluZGV4VG9Gb2N1cyA9IGNoaWxkcmVuQXJyYXkuZmluZEluZGV4KChjKSA9PiBjLnByb3BzLmNoaWxkcmVuID09PSBsYWJlbCk7XG5cbiAgICAgIGlmIChkZWZhdWx0SXRlbUluZGV4VG9Gb2N1cyAhPT0gLTEpIHtcbiAgICAgICAgc2V0Rm9jdXNJdGVtKGRlZmF1bHRJdGVtSW5kZXhUb0ZvY3VzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtsYWJlbF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRpZE1vdW50Py5jdXJyZW50KSB7XG4gICAgICBpZiAodmlzaWJsZSAmJiB0eXBlb2Ygb25PcGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uT3BlbigpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb25DbG9zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpZE1vdW50LmN1cnJlbnQgPSB0cnVlO1xuICAgIH1cbiAgfSwgW2RpZE1vdW50LCB2aXNpYmxlXSk7XG5cbiAgLyogaW4gY2FzZSBgbGFiZWxgIGlzIGEgY3VzdG9tIHJlYWN0IGNvbXBvbmVudCwgd2Uga25vdyBpdCBpcyBnb2luZyB0byBiZVxuICAgICAgYSBjaGlsZCBvZiB0aGUgbWVudSBidXR0b24uXG4gICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGxhYmVsKSAmJiBmb2N1c2VkSXRlbUluZGV4ID09IC0xKSB7XG4gICAgICBtZW51QnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtsYWJlbCwgZm9jdXNlZEl0ZW1JbmRleF0pO1xuXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJLZXlEb3duID0gKGUpID0+IHtcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgaWYgKGUua2V5ID09PSBLZXlib2FyZEtleXMuRVNDQVBFKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHNldFZpc2libGUoZmFsc2UpO1xuICAgICAgICBtZW51QnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGUua2V5ID09PSBLZXlib2FyZEtleXMuRE9XTikge1xuICAgICAgICBzZXRGb2N1c0l0ZW0oKHByZXYpID0+IChwcmV2ID09PSBjaGlsZHJlbkFycmF5Lmxlbmd0aCAtIDEgPyAwIDogcHJldiArIDEpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGUua2V5ID09PSBLZXlib2FyZEtleXMuVVApIHtcbiAgICAgICAgc2V0Rm9jdXNJdGVtKChwcmV2KSA9PiAocHJldiA9PT0gMCA/IGNoaWxkcmVuQXJyYXkubGVuZ3RoIC0gMSA6IHByZXYgLSAxKSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZSkgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gS2V5Ym9hcmRLZXlzLkVOVEVSIHx8IGUua2V5ID09PSBLZXlib2FyZEtleXMuU1BBQ0UpIHtcbiAgICAgIHNldFZpc2libGUoKHByZXZWaXNpYmxlKSA9PiAhcHJldlZpc2libGUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVCbHVyID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCFlLmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU1lbnVCdXR0b25Nb3VzZURvd24gPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBzZXRWaXNpYmxlKChwcmV2VmlzaWJsZSkgPT4gIXByZXZWaXNpYmxlKTtcbiAgfTtcblxuICBjb25zdCBjaGlsZHJlbkNsb25lID0gY2hpbGRyZW5BcnJheS5tYXAoKGNoaWxkLCBpbmRleCkgPT4gKFxuICAgIDxGbGV4IGFzPVwibGlcIiBrZXk9e2luZGV4fSBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAge2Nsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgY2hpbGQucHJvcHMub25DbGljaygpO1xuICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpO1xuICAgICAgICAgIG1lbnVCdXR0b25SZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgICB9LFxuICAgICAgICBpc0ZvY3VzZWQ6IGZvY3VzZWRJdGVtSW5kZXggPT09IGluZGV4LFxuICAgICAgfSl9XG4gICAgPC9GbGV4PlxuICApKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgb25LZXlEb3duPXtoYW5kbGVXcmFwcGVyS2V5RG93bn0+XG4gICAgICA8Q29tcG9uZW50XG4gICAgICAgIGxhYmVsPXtSZWFjdC5pc1ZhbGlkRWxlbWVudChsYWJlbCkgPyBudWxsIDogbGFiZWx9XG4gICAgICAgIGFyaWEtaGFzcG9wdXBcbiAgICAgICAgYXJpYS1leHBhbmRlZD17dmlzaWJsZX1cbiAgICAgICAgYXJpYS1jb250cm9scz17bWVudUlkfVxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgIG9uTW91c2VEb3duPXtoYW5kbGVNZW51QnV0dG9uTW91c2VEb3dufVxuICAgICAgICByZWY9e21lbnVCdXR0b25SZWZ9XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICBlbmRJY29uPXtcbiAgICAgICAgICA8SWNvbldyYXBwZXI+XG4gICAgICAgICAgICA8Q2FycmV0RG93biBhcmlhLWhpZGRlbiAvPlxuICAgICAgICAgIDwvSWNvbldyYXBwZXI+XG4gICAgICAgIH1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L0NvbXBvbmVudD5cbiAgICAgIHt2aXNpYmxlICYmIChcbiAgICAgICAgPFBvcG92ZXIgb25CbHVyPXtoYW5kbGVCbHVyfSBzb3VyY2U9e21lbnVCdXR0b25SZWZ9IHNwYWNpbmc9ezR9PlxuICAgICAgICAgIDxCb3ggcm9sZT1cIm1lbnVcIiBhcz1cInVsXCIgcGFkZGluZz17MX0gaWQ9e21lbnVJZH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW5DbG9uZX1cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblNpbXBsZU1lbnUuZGVmYXVsdFByb3BzID0ge1xuICBhczogdW5kZWZpbmVkLFxufTtcblxuU2ltcGxlTWVudS5kaXNwbGF5TmFtZSA9ICdTaW1wbGVNZW51JztcblxuU2ltcGxlTWVudS5kZWZhdWx0UHJvcHMgPSB7XG4gIHNpemU6ICdNJyxcbn07XG5cblNpbXBsZU1lbnUucHJvcFR5cGVzID0ge1xuICBhczogUHJvcFR5cGVzLmFueSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSwgUHJvcFR5cGVzLm5vZGVdKS5pc1JlcXVpcmVkLFxuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgbGFiZWw6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5lbGVtZW50XSkuaXNSZXF1aXJlZCxcbiAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uT3BlbjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIHRyaWdnZXIgYnV0dG9uLlxuICAgKiBOb3RlOiBpbiBjYXNlIGEgY3VzdG9tIGNvbXBvbmVudCBpcyBwYXNzZWQgdGhyb3VnaCB0aGUgXCJhc1wiXG4gICAqIHByb3AsIHRoZSBzaXplIHByb3AgaXMgcGFzc2VkIGFsb25nIHRvbywgYnV0IG5lZWRzIHRvIGJlIGhhbmRsZWQgdGhlcmVcbiAgICovXG5cbiAgc2l6ZTogUHJvcFR5cGVzLm9uZU9mKFsnUycsICdNJ10pLFxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/v2/SimpleMenu/SimpleMenu.js\n");
|
|
750
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MenuItem\", function() { return MenuItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleMenu\", function() { return SimpleMenu; });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! styled-components */ \"styled-components\");\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _strapi_icons_CarretDown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @strapi/icons/CarretDown */ \"@strapi/icons/CarretDown\");\n/* harmony import */ var _strapi_icons_CarretDown__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_strapi_icons_CarretDown__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../Typography */ \"./src/Typography/index.js\");\n/* harmony import */ var _Box__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../Box */ \"./src/Box/index.js\");\n/* harmony import */ var _Flex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../Flex */ \"./src/Flex/index.js\");\n/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../Button */ \"./src/Button/index.js\");\n/* harmony import */ var _BaseLink__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../BaseLink */ \"./src/BaseLink/index.js\");\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../Popover */ \"./src/Popover/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./utils */ \"./src/v2/SimpleMenu/utils.js\");\n/* harmony import */ var _helpers_useId__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../helpers/useId */ \"./src/helpers/useId.js\");\n/* harmony import */ var _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../helpers/keyboardKeys */ \"./src/helpers/keyboardKeys.js\");\n\n\n\n\n\n\nvar _excluded = [\"as\", \"children\", \"onClick\", \"isFocused\", \"isLink\"],\n _excluded2 = [\"label\", \"children\", \"id\", \"as\", \"onOpen\", \"onClose\", \"size\", \"popoverPlacement\"];\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar OptionButton = styled_components__WEBPACK_IMPORTED_MODULE_8___default.a.button(_templateObject || (_templateObject = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()([\"\\n border: none;\\n padding: 0;\\n background: transparent;\\n cursor: pointer;\\n \", \"\\n\"])), _utils__WEBPACK_IMPORTED_MODULE_16__[\"getOptionStyle\"]);\nvar OptionLink = styled_components__WEBPACK_IMPORTED_MODULE_8___default()(_BaseLink__WEBPACK_IMPORTED_MODULE_14__[\"BaseLink\"])(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()([\"\\n text-decoration: none;\\n \", \"\\n\"])), _utils__WEBPACK_IMPORTED_MODULE_16__[\"getOptionStyle\"]);\nvar IconWrapper = styled_components__WEBPACK_IMPORTED_MODULE_8___default.a.span(_templateObject3 || (_templateObject3 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()([\"\\n display: flex;\\n align-items: center;\\n svg {\\n height: 4px;\\n width: 6px;\\n }\\n\"])));\nvar StyledButtonSmall = styled_components__WEBPACK_IMPORTED_MODULE_8___default()(_Button__WEBPACK_IMPORTED_MODULE_13__[\"Button\"])(_templateObject4 || (_templateObject4 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()([\"\\n padding: \", \";\\n\"])), function (_ref) {\n var theme = _ref.theme;\n return \"\".concat(theme.spaces[1], \" \").concat(theme.spaces[3]);\n});\nvar MenuItem = function MenuItem(_ref2) {\n var as = _ref2.as,\n children = _ref2.children,\n onClick = _ref2.onClick,\n isFocused = _ref2.isFocused,\n isLink = _ref2.isLink,\n props = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4___default()(_ref2, _excluded);\n\n var menuItemRef = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useRef\"])();\n Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useEffect\"])(function () {\n if (isFocused && menuItemRef.current) {\n menuItemRef.current.focus();\n }\n }, [isFocused]);\n\n var menuItemProps = _objectSpread({\n tabIndex: isFocused ? 0 : -1,\n ref: menuItemRef,\n role: 'menuitem'\n }, props);\n\n var handleKeyDown = function handleKeyDown(e) {\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].SPACE || e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].ENTER) {\n onClick();\n }\n };\n\n return isLink ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(OptionLink, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default()({\n as: as\n }, menuItemProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Box__WEBPACK_IMPORTED_MODULE_11__[\"Box\"], {\n padding: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Typography__WEBPACK_IMPORTED_MODULE_10__[\"Typography\"], null, children))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(OptionButton, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default()({\n onKeyDown: handleKeyDown,\n onMouseDown: onClick,\n type: \"button\"\n }, menuItemProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Box__WEBPACK_IMPORTED_MODULE_11__[\"Box\"], {\n padding: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Typography__WEBPACK_IMPORTED_MODULE_10__[\"Typography\"], null, children)));\n};\nMenuItem.defaultProps = {\n onClick: function onClick() {},\n isFocused: false,\n isLink: false\n};\nMenuItem.propTypes = {\n as: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.elementType,\n children: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.node.isRequired,\n isFocused: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n isLink: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func\n};\nvar SimpleMenu = function SimpleMenu(_ref3) {\n var label = _ref3.label,\n children = _ref3.children,\n id = _ref3.id,\n asComp = _ref3.as,\n _ref3$onOpen = _ref3.onOpen,\n onOpen = _ref3$onOpen === void 0 ? function () {} : _ref3$onOpen,\n _ref3$onClose = _ref3.onClose,\n onClose = _ref3$onClose === void 0 ? function () {} : _ref3$onClose,\n size = _ref3.size,\n popoverPlacement = _ref3.popoverPlacement,\n props = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4___default()(_ref3, _excluded2);\n\n var menuButtonRef = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useRef\"])();\n var menuId = Object(_helpers_useId__WEBPACK_IMPORTED_MODULE_17__[\"useId\"])('simplemenu', id);\n var didMount = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useRef\"])(false);\n\n var _useState = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useState\"])(false),\n _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useState\"])(0),\n _useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState3, 2),\n focusedItemIndex = _useState4[0],\n setFocusItem = _useState4[1];\n\n var childrenArray = react__WEBPACK_IMPORTED_MODULE_6__[\"Children\"].toArray(children);\n var DefaultComponent = size === 'S' ? StyledButtonSmall : _Button__WEBPACK_IMPORTED_MODULE_13__[\"Button\"];\n var Component = asComp || DefaultComponent;\n Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useEffect\"])(function () {\n if (['string', 'number'].includes(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(label))) {\n // Useful to focus the selected item in the list\n var defaultItemIndexToFocus = childrenArray.findIndex(function (c) {\n return c.props.children === label;\n });\n\n if (defaultItemIndexToFocus !== -1) {\n setFocusItem(defaultItemIndexToFocus);\n }\n }\n }, [label]);\n Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useEffect\"])(function () {\n if (didMount !== null && didMount !== void 0 && didMount.current) {\n if (visible && typeof onOpen === 'function') {\n onOpen();\n } else if (typeof onClose === 'function') {\n onClose();\n }\n } else {\n didMount.current = true;\n }\n }, [didMount, visible]);\n /* in case `label` is a custom react component, we know it is going to be\n a child of the menu button.\n */\n\n Object(react__WEBPACK_IMPORTED_MODULE_6__[\"useEffect\"])(function () {\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.isValidElement(label) && focusedItemIndex == -1) {\n menuButtonRef.current.focus();\n }\n }, [label, focusedItemIndex]);\n\n var handleWrapperKeyDown = function handleWrapperKeyDown(e) {\n if (visible) {\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].ESCAPE) {\n e.stopPropagation();\n setVisible(false);\n menuButtonRef.current.focus();\n }\n\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].DOWN) {\n setFocusItem(function (prev) {\n return prev === childrenArray.length - 1 ? 0 : prev + 1;\n });\n }\n\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].UP) {\n setFocusItem(function (prev) {\n return prev === 0 ? childrenArray.length - 1 : prev - 1;\n });\n }\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n if (e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].ENTER || e.key === _helpers_keyboardKeys__WEBPACK_IMPORTED_MODULE_18__[\"KeyboardKeys\"].SPACE) {\n setVisible(function (prevVisible) {\n return !prevVisible;\n });\n }\n };\n\n var handleBlur = function handleBlur(e) {\n e.preventDefault();\n\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setVisible(false);\n }\n };\n\n var handleMenuButtonMouseDown = function handleMenuButtonMouseDown(e) {\n e.preventDefault();\n setVisible(function (prevVisible) {\n return !prevVisible;\n });\n };\n\n var childrenClone = childrenArray.map(function (child, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Flex__WEBPACK_IMPORTED_MODULE_12__[\"Flex\"], {\n as: \"li\",\n key: index,\n justifyContent: \"center\",\n role: \"menuitem\"\n }, /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_6__[\"cloneElement\"])(child, {\n onClick: function onClick() {\n child.props.onClick();\n setVisible(false);\n menuButtonRef.current.focus();\n },\n isFocused: focusedItemIndex === index\n }));\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"div\", {\n onKeyDown: handleWrapperKeyDown\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(Component, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default()({\n label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.isValidElement(label) ? null : label,\n \"aria-haspopup\": true,\n \"aria-expanded\": visible,\n \"aria-controls\": menuId,\n onKeyDown: handleKeyDown,\n onMouseDown: handleMenuButtonMouseDown,\n ref: menuButtonRef,\n type: \"button\",\n variant: \"ghost\",\n endIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(IconWrapper, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_strapi_icons_CarretDown__WEBPACK_IMPORTED_MODULE_9___default.a, {\n \"aria-hidden\": true\n }))\n }, props), label), visible && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Popover__WEBPACK_IMPORTED_MODULE_15__[\"Popover\"], {\n onBlur: handleBlur,\n placement: popoverPlacement,\n source: menuButtonRef,\n spacing: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Box__WEBPACK_IMPORTED_MODULE_11__[\"Box\"], {\n role: \"menu\",\n as: \"ul\",\n padding: 1,\n id: menuId\n }, childrenClone)));\n};\nSimpleMenu.defaultProps = {\n as: undefined\n};\nSimpleMenu.displayName = 'SimpleMenu';\nSimpleMenu.defaultProps = {\n popoverPlacement: 'bottom-start',\n size: 'M'\n};\nSimpleMenu.propTypes = {\n as: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.any,\n children: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.node), prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.node]).isRequired,\n id: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string,\n label: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.element]).isRequired,\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n onOpen: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n popoverPlacement: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOf(_Popover__WEBPACK_IMPORTED_MODULE_15__[\"POPOVER_PLACEMENTS\"]),\n\n /**\n * Size of the trigger button.\n * Note: in case a custom component is passed through the \"as\"\n * prop, the size prop is passed along too, but needs to be handled there\n */\n size: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOf(['S', 'M'])\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdHJhcGlEcy8uL3NyYy92Mi9TaW1wbGVNZW51L1NpbXBsZU1lbnUuanM/N2QyNSJdLCJuYW1lcyI6WyJPcHRpb25CdXR0b24iLCJzdHlsZWQiLCJidXR0b24iLCJnZXRPcHRpb25TdHlsZSIsIk9wdGlvbkxpbmsiLCJCYXNlTGluayIsIkljb25XcmFwcGVyIiwic3BhbiIsIlN0eWxlZEJ1dHRvblNtYWxsIiwiQnV0dG9uIiwidGhlbWUiLCJzcGFjZXMiLCJNZW51SXRlbSIsImFzIiwiY2hpbGRyZW4iLCJvbkNsaWNrIiwiaXNGb2N1c2VkIiwiaXNMaW5rIiwicHJvcHMiLCJtZW51SXRlbVJlZiIsInVzZVJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJmb2N1cyIsIm1lbnVJdGVtUHJvcHMiLCJ0YWJJbmRleCIsInJlZiIsInJvbGUiLCJoYW5kbGVLZXlEb3duIiwiZSIsImtleSIsIktleWJvYXJkS2V5cyIsIlNQQUNFIiwiRU5URVIiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJlbGVtZW50VHlwZSIsIm5vZGUiLCJpc1JlcXVpcmVkIiwiYm9vbCIsImZ1bmMiLCJTaW1wbGVNZW51IiwibGFiZWwiLCJpZCIsImFzQ29tcCIsIm9uT3BlbiIsIm9uQ2xvc2UiLCJzaXplIiwicG9wb3ZlclBsYWNlbWVudCIsIm1lbnVCdXR0b25SZWYiLCJtZW51SWQiLCJ1c2VJZCIsImRpZE1vdW50IiwidXNlU3RhdGUiLCJ2aXNpYmxlIiwic2V0VmlzaWJsZSIsImZvY3VzZWRJdGVtSW5kZXgiLCJzZXRGb2N1c0l0ZW0iLCJjaGlsZHJlbkFycmF5IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiRGVmYXVsdENvbXBvbmVudCIsIkNvbXBvbmVudCIsImluY2x1ZGVzIiwiZGVmYXVsdEl0ZW1JbmRleFRvRm9jdXMiLCJmaW5kSW5kZXgiLCJjIiwiUmVhY3QiLCJpc1ZhbGlkRWxlbWVudCIsImhhbmRsZVdyYXBwZXJLZXlEb3duIiwiRVNDQVBFIiwic3RvcFByb3BhZ2F0aW9uIiwiRE9XTiIsInByZXYiLCJsZW5ndGgiLCJVUCIsInByZXZWaXNpYmxlIiwiaGFuZGxlQmx1ciIsInByZXZlbnREZWZhdWx0IiwiY3VycmVudFRhcmdldCIsImNvbnRhaW5zIiwicmVsYXRlZFRhcmdldCIsImhhbmRsZU1lbnVCdXR0b25Nb3VzZURvd24iLCJjaGlsZHJlbkNsb25lIiwibWFwIiwiY2hpbGQiLCJpbmRleCIsImNsb25lRWxlbWVudCIsInVuZGVmaW5lZCIsImRpc3BsYXlOYW1lIiwiYW55Iiwib25lT2ZUeXBlIiwiYXJyYXlPZiIsInN0cmluZyIsIm51bWJlciIsImVsZW1lbnQiLCJvbmVPZiIsIlBPUE9WRVJfUExBQ0VNRU5UUyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQU1BLFlBQVksR0FBR0Msd0RBQU0sQ0FBQ0MsTUFBViw2TkFLZEMsc0RBTGMsQ0FBbEI7QUFRQSxJQUFNQyxVQUFVLEdBQUdILHdEQUFNLENBQUNJLG1EQUFELENBQVQseUtBRVpGLHNEQUZZLENBQWhCO0FBS0EsSUFBTUcsV0FBVyxHQUFHTCx3REFBTSxDQUFDTSxJQUFWLGlPQUFqQjtBQVNBLElBQU1DLGlCQUFpQixHQUFHUCx3REFBTSxDQUFDUSwrQ0FBRCxDQUFULHlKQUNWO0FBQUEsTUFBR0MsS0FBSCxRQUFHQSxLQUFIO0FBQUEsbUJBQWtCQSxLQUFLLENBQUNDLE1BQU4sQ0FBYSxDQUFiLENBQWxCLGNBQXFDRCxLQUFLLENBQUNDLE1BQU4sQ0FBYSxDQUFiLENBQXJDO0FBQUEsQ0FEVSxDQUF2QjtBQUlPLElBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFXLFFBQTREO0FBQUEsTUFBekRDLEVBQXlELFNBQXpEQSxFQUF5RDtBQUFBLE1BQXJEQyxRQUFxRCxTQUFyREEs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LEVBQUUsY0FETTtBQUV4QkQsTUFBSSxFQUFFO0FBRmtCLENBQTFCO0FBS0FOLFVBQVUsQ0FBQ1AsU0FBWCxHQUF1QjtBQUNyQnRCLElBQUUsRUFBRXVCLGlEQUFTLENBQUN1RCxHQURPO0FBRXJCN0UsVUFBUSxFQUFFc0IsaURBQVMsQ0FBQ3dELFNBQVYsQ0FBb0IsQ0FBQ3hELGlEQUFTLENBQUN5RCxPQUFWLENBQWtCekQsaURBQVMsQ0FBQ0UsSUFBNUIsQ0FBRCxFQUFvQ0YsaURBQVMsQ0FBQ0UsSUFBOUMsQ0FBcEIsRUFBeUVDLFVBRjlEO0FBR3JCSyxJQUFFLEVBQUVSLGlEQUFTLENBQUMwRCxNQUhPO0FBSXJCbkQsT0FBSyxFQUFFUCxpREFBUyxDQUFDd0QsU0FBVixDQUFvQixDQUFDeEQsaURBQVMsQ0FBQzBELE1BQVgsRUFBbUIxRCxpREFBUyxDQUFDMkQsTUFBN0IsRUFBcUMzRCxpREFBUyxDQUFDNEQsT0FBL0MsQ0FBcEIsRUFBNkV6RCxVQUovRDtBQUtyQlEsU0FBTyxFQUFFWCxpREFBUyxDQUFDSyxJQUxFO0FBTXJCSyxRQUFNLEVBQUVWLGlEQUFTLENBQUNLLElBTkc7QUFPckJRLGtCQUFnQixFQUFFYixpREFBUyxDQUFDNkQsS0FBVixDQUFnQkMsNERBQWhCLENBUEc7O0FBU3JCO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFFRWxELE1BQUksRUFBRVosaURBQVMsQ0FBQzZELEtBQVYsQ0FBZ0IsQ0FBQyxHQUFELEVBQU0sR0FBTixDQUFoQjtBQWZlLENBQXZCIiwiZmlsZSI6Ii4vc3JjL3YyL1NpbXBsZU1lbnUvU2ltcGxlTWVudS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VSZWYsIHVzZVN0YXRlLCBDaGlsZHJlbiwgY2xvbmVFbGVtZW50LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgQ2FycmV0RG93biBmcm9tICdAc3RyYXBpL2ljb25zL0NhcnJldERvd24nO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vLi4vQm94JztcbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi8uLi9GbGV4JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uL0J1dHRvbic7XG5pbXBvcnQgeyBCYXNlTGluayB9IGZyb20gJy4uLy4uL0Jhc2VMaW5rJztcbmltcG9ydCB7IFBvcG92ZXIsIFBPUE9WRVJfUExBQ0VNRU5UUyB9IGZyb20gJy4uLy4uL1BvcG92ZXInO1xuaW1wb3J0IHsgZ2V0T3B0aW9uU3R5bGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnLi4vLi4vaGVscGVycy91c2VJZCc7XG5pbXBvcnQgeyBLZXlib2FyZEtleXMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2tleWJvYXJkS2V5cyc7XG5cbmNvbnN0IE9wdGlvbkJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJHtnZXRPcHRpb25TdHlsZX1cbmA7XG5cbmNvbnN0IE9wdGlvbkxpbmsgPSBzdHlsZWQoQmFzZUxpbmspYFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICR7Z2V0T3B0aW9uU3R5bGV9XG5gO1xuXG5jb25zdCBJY29uV3JhcHBlciA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzdmcge1xuICAgIGhlaWdodDogNHB4O1xuICAgIHdpZHRoOiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvblNtYWxsID0gc3R5bGVkKEJ1dHRvbilgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VzWzFdfSAke3RoZW1lLnNwYWNlc1szXX1gfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBNZW51SXRlbSA9ICh7IGFzLCBjaGlsZHJlbiwgb25DbGljaywgaXNGb2N1c2VkLCBpc0xpbmssIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgbWVudUl0ZW1SZWYgPSB1c2VSZWYoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0ZvY3VzZWQgJiYgbWVudUl0ZW1SZWYuY3VycmVudCkge1xuICAgICAgbWVudUl0ZW1SZWYuY3VycmVudC5mb2N1cygpO1xuICAgIH1cbiAgfSwgW2lzRm9jdXNlZF0pO1xuXG4gIGNvbnN0IG1lbnVJdGVtUHJvcHMgPSB7XG4gICAgdGFiSW5kZXg6IGlzRm9jdXNlZCA/IDAgOiAtMSxcbiAgICByZWY6IG1lbnVJdGVtUmVmLFxuICAgIHJvbGU6ICdtZW51aXRlbScsXG4gICAgLi4ucHJvcHMsXG4gIH07XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlKSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSBLZXlib2FyZEtleXMuU1BBQ0UgfHwgZS5rZXkgPT09IEtleWJvYXJkS2V5cy5FTlRFUikge1xuICAgICAgb25DbGljaygpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gaXNMaW5rID8gKFxuICAgIDxPcHRpb25MaW5rIGFzPXthc30gey4uLm1lbnVJdGVtUHJvcHN9PlxuICAgICAgPEJveCBwYWRkaW5nPXsyfT5cbiAgICAgICAgPFR5cG9ncmFwaHk+e2NoaWxkcmVufTwvVHlwb2dyYXBoeT5cbiAgICAgIDwvQm94PlxuICAgIDwvT3B0aW9uTGluaz5cbiAgKSA6IChcbiAgICA8T3B0aW9uQnV0dG9uIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn0gb25Nb3VzZURvd249e29uQ2xpY2t9IHR5cGU9XCJidXR0b25cIiB7Li4ubWVudUl0ZW1Qcm9wc30+XG4gICAgICA8Qm94IHBhZGRpbmc9ezJ9PlxuICAgICAgICA8VHlwb2dyYXBoeT57Y2hpbGRyZW59PC9UeXBvZ3JhcGh5PlxuICAgICAgPC9Cb3g+XG4gICAgPC9PcHRpb25CdXR0b24+XG4gICk7XG59O1xuXG5NZW51SXRlbS5kZWZhdWx0UHJvcHMgPSB7XG4gIG9uQ2xpY2s6ICgpID0+IHt9LFxuICBpc0ZvY3VzZWQ6IGZhbHNlLFxuICBpc0xpbms6IGZhbHNlLFxufTtcblxuTWVudUl0ZW0ucHJvcFR5cGVzID0ge1xuICBhczogUHJvcFR5cGVzLmVsZW1lbnRUeXBlLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgaXNGb2N1c2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNMaW5rOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5leHBvcnQgY29uc3QgU2ltcGxlTWVudSA9ICh7XG4gIGxhYmVsLFxuICBjaGlsZHJlbixcbiAgaWQsXG4gIGFzOiBhc0NvbXAsXG4gIG9uT3BlbiA9ICgpID0+IHt9LFxuICBvbkNsb3NlID0gKCkgPT4ge30sXG4gIHNpemUsXG4gIHBvcG92ZXJQbGFjZW1lbnQsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IG1lbnVCdXR0b25SZWYgPSB1c2VSZWYoKTtcbiAgY29uc3QgbWVudUlkID0gdXNlSWQoJ3NpbXBsZW1lbnUnLCBpZCk7XG4gIGNvbnN0IGRpZE1vdW50ID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZm9jdXNlZEl0ZW1JbmRleCwgc2V0Rm9jdXNJdGVtXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBjaGlsZHJlbkFycmF5ID0gQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbik7XG4gIGNvbnN0IERlZmF1bHRDb21wb25lbnQgPSBzaXplID09PSAnUycgPyBTdHlsZWRCdXR0b25TbWFsbCA6IEJ1dHRvbjtcbiAgY29uc3QgQ29tcG9uZW50ID0gYXNDb21wIHx8IERlZmF1bHRDb21wb25lbnQ7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoWydzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIGxhYmVsKSkge1xuICAgICAgLy8gVXNlZnVsIHRvIGZvY3VzIHRoZSBzZWxlY3RlZCBpdGVtIGluIHRoZSBsaXN0XG4gICAgICBjb25zdCBkZWZhdWx0SXRlbUluZGV4VG9Gb2N1cyA9IGNoaWxkcmVuQXJyYXkuZmluZEluZGV4KChjKSA9PiBjLnByb3BzLmNoaWxkcmVuID09PSBsYWJlbCk7XG5cbiAgICAgIGlmIChkZWZhdWx0SXRlbUluZGV4VG9Gb2N1cyAhPT0gLTEpIHtcbiAgICAgICAgc2V0Rm9jdXNJdGVtKGRlZmF1bHRJdGVtSW5kZXhUb0ZvY3VzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtsYWJlbF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRpZE1vdW50Py5jdXJyZW50KSB7XG4gICAgICBpZiAodmlzaWJsZSAmJiB0eXBlb2Ygb25PcGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uT3BlbigpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb25DbG9zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpZE1vdW50LmN1cnJlbnQgPSB0cnVlO1xuICAgIH1cbiAgfSwgW2RpZE1vdW50LCB2aXNpYmxlXSk7XG5cbiAgLyogaW4gY2FzZSBgbGFiZWxgIGlzIGEgY3VzdG9tIHJlYWN0IGNvbXBvbmVudCwgd2Uga25vdyBpdCBpcyBnb2luZyB0byBiZVxuICAgICAgYSBjaGlsZCBvZiB0aGUgbWVudSBidXR0b24uXG4gICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGxhYmVsKSAmJiBmb2N1c2VkSXRlbUluZGV4ID09IC0xKSB7XG4gICAgICBtZW51QnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtsYWJlbCwgZm9jdXNlZEl0ZW1JbmRleF0pO1xuXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJLZXlEb3duID0gKGUpID0+IHtcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgaWYgKGUua2V5ID09PSBLZXlib2FyZEtleXMuRVNDQVBFKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHNldFZpc2libGUoZmFsc2UpO1xuICAgICAgICBtZW51QnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGUua2V5ID09PSBLZXlib2FyZEtleXMuRE9XTikge1xuICAgICAgICBzZXRGb2N1c0l0ZW0oKHByZXYpID0+IChwcmV2ID09PSBjaGlsZHJlbkFycmF5Lmxlbmd0aCAtIDEgPyAwIDogcHJldiArIDEpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGUua2V5ID09PSBLZXlib2FyZEtleXMuVVApIHtcbiAgICAgICAgc2V0Rm9jdXNJdGVtKChwcmV2KSA9PiAocHJldiA9PT0gMCA/IGNoaWxkcmVuQXJyYXkubGVuZ3RoIC0gMSA6IHByZXYgLSAxKSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZSkgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gS2V5Ym9hcmRLZXlzLkVOVEVSIHx8IGUua2V5ID09PSBLZXlib2FyZEtleXMuU1BBQ0UpIHtcbiAgICAgIHNldFZpc2libGUoKHByZXZWaXNpYmxlKSA9PiAhcHJldlZpc2libGUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVCbHVyID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCFlLmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU1lbnVCdXR0b25Nb3VzZURvd24gPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBzZXRWaXNpYmxlKChwcmV2VmlzaWJsZSkgPT4gIXByZXZWaXNpYmxlKTtcbiAgfTtcblxuICBjb25zdCBjaGlsZHJlbkNsb25lID0gY2hpbGRyZW5BcnJheS5tYXAoKGNoaWxkLCBpbmRleCkgPT4gKFxuICAgIDxGbGV4IGFzPVwibGlcIiBrZXk9e2luZGV4fSBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAge2Nsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgY2hpbGQucHJvcHMub25DbGljaygpO1xuICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpO1xuICAgICAgICAgIG1lbnVCdXR0b25SZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgICB9LFxuICAgICAgICBpc0ZvY3VzZWQ6IGZvY3VzZWRJdGVtSW5kZXggPT09IGluZGV4LFxuICAgICAgfSl9XG4gICAgPC9GbGV4PlxuICApKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgb25LZXlEb3duPXtoYW5kbGVXcmFwcGVyS2V5RG93bn0+XG4gICAgICA8Q29tcG9uZW50XG4gICAgICAgIGxhYmVsPXtSZWFjdC5pc1ZhbGlkRWxlbWVudChsYWJlbCkgPyBudWxsIDogbGFiZWx9XG4gICAgICAgIGFyaWEtaGFzcG9wdXBcbiAgICAgICAgYXJpYS1leHBhbmRlZD17dmlzaWJsZX1cbiAgICAgICAgYXJpYS1jb250cm9scz17bWVudUlkfVxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgIG9uTW91c2VEb3duPXtoYW5kbGVNZW51QnV0dG9uTW91c2VEb3dufVxuICAgICAgICByZWY9e21lbnVCdXR0b25SZWZ9XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICBlbmRJY29uPXtcbiAgICAgICAgICA8SWNvbldyYXBwZXI+XG4gICAgICAgICAgICA8Q2FycmV0RG93biBhcmlhLWhpZGRlbiAvPlxuICAgICAgICAgIDwvSWNvbldyYXBwZXI+XG4gICAgICAgIH1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L0NvbXBvbmVudD5cbiAgICAgIHt2aXNpYmxlICYmIChcbiAgICAgICAgPFBvcG92ZXIgb25CbHVyPXtoYW5kbGVCbHVyfSBwbGFjZW1lbnQ9e3BvcG92ZXJQbGFjZW1lbnR9IHNvdXJjZT17bWVudUJ1dHRvblJlZn0gc3BhY2luZz17NH0+XG4gICAgICAgICAgPEJveCByb2xlPVwibWVudVwiIGFzPVwidWxcIiBwYWRkaW5nPXsxfSBpZD17bWVudUlkfT5cbiAgICAgICAgICAgIHtjaGlsZHJlbkNsb25lfVxuICAgICAgICAgIDwvQm94PlxuICAgICAgICA8L1BvcG92ZXI+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuU2ltcGxlTWVudS5kZWZhdWx0UHJvcHMgPSB7XG4gIGFzOiB1bmRlZmluZWQsXG59O1xuXG5TaW1wbGVNZW51LmRpc3BsYXlOYW1lID0gJ1NpbXBsZU1lbnUnO1xuXG5TaW1wbGVNZW51LmRlZmF1bHRQcm9wcyA9IHtcbiAgcG9wb3ZlclBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsXG4gIHNpemU6ICdNJyxcbn07XG5cblNpbXBsZU1lbnUucHJvcFR5cGVzID0ge1xuICBhczogUHJvcFR5cGVzLmFueSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSwgUHJvcFR5cGVzLm5vZGVdKS5pc1JlcXVpcmVkLFxuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgbGFiZWw6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5lbGVtZW50XSkuaXNSZXF1aXJlZCxcbiAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uT3BlbjogUHJvcFR5cGVzLmZ1bmMsXG4gIHBvcG92ZXJQbGFjZW1lbnQ6IFByb3BUeXBlcy5vbmVPZihQT1BPVkVSX1BMQUNFTUVOVFMpLFxuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSB0cmlnZ2VyIGJ1dHRvbi5cbiAgICogTm90ZTogaW4gY2FzZSBhIGN1c3RvbSBjb21wb25lbnQgaXMgcGFzc2VkIHRocm91Z2ggdGhlIFwiYXNcIlxuICAgKiBwcm9wLCB0aGUgc2l6ZSBwcm9wIGlzIHBhc3NlZCBhbG9uZyB0b28sIGJ1dCBuZWVkcyB0byBiZSBoYW5kbGVkIHRoZXJlXG4gICAqL1xuXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihbJ1MnLCAnTSddKSxcbn07XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/v2/SimpleMenu/SimpleMenu.js\n");
|
|
727
751
|
|
|
728
752
|
/***/ }),
|
|
729
753
|
|