@amboss/design-system 1.20.4 → 1.21.0
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/build/cjs/build-tokens/visualConfig.js +5 -0
- package/build/cjs/src/components/Popover/Popover.js +8 -3
- package/build/cjs/src/components/Sheet/Sheet.js +307 -0
- package/build/cjs/src/components/Toggletip/BasePopover.js +43 -8
- package/build/cjs/src/components/Tooltip/TooltipContent.js +3 -3
- package/build/cjs/src/index.js +2 -0
- package/build/cjs/src/shared/FocusTrapWrapper.js +41 -0
- package/build/cjs/src/shared/useDragDown.js +84 -0
- package/build/esm/build-tokens/visualConfig.d.ts +5 -0
- package/build/esm/build-tokens/visualConfig.js +5 -0
- package/build/esm/build-tokens/visualConfig.js.map +1 -1
- package/build/esm/src/components/Popover/Popover.d.ts +2 -3
- package/build/esm/src/components/Popover/Popover.js +8 -3
- package/build/esm/src/components/Popover/Popover.js.map +1 -1
- package/build/esm/src/components/Sheet/Sheet.d.ts +15 -0
- package/build/esm/src/components/Sheet/Sheet.js +300 -0
- package/build/esm/src/components/Sheet/Sheet.js.map +1 -0
- package/build/esm/src/components/Toggletip/BasePopover.d.ts +5 -5
- package/build/esm/src/components/Toggletip/BasePopover.js +43 -7
- package/build/esm/src/components/Toggletip/BasePopover.js.map +1 -1
- package/build/esm/src/components/Toggletip/Toggletip.d.ts +1 -1
- package/build/esm/src/components/Toggletip/Toggletip.js.map +1 -1
- package/build/esm/src/components/Tooltip/TooltipContent.js +3 -3
- package/build/esm/src/components/Tooltip/TooltipContent.js.map +1 -1
- package/build/esm/src/index.d.ts +1 -0
- package/build/esm/src/index.js +1 -0
- package/build/esm/src/index.js.map +1 -1
- package/build/esm/src/shared/FocusTrapWrapper.d.ts +10 -0
- package/build/esm/src/shared/FocusTrapWrapper.js +35 -0
- package/build/esm/src/shared/FocusTrapWrapper.js.map +1 -0
- package/build/esm/src/shared/useDragDown.d.ts +13 -0
- package/build/esm/src/shared/useDragDown.js +83 -0
- package/build/esm/src/shared/useDragDown.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePopover.js","sources":["../../../../../src/components/Toggletip/BasePopover.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n ReactElement,\n PropsWithChildren,\n} from \"react\";\nimport FocusTrap from \"focus-trap-react\";\nimport type { TooltipContentProps } from \"../Tooltip/TooltipContent\";\nimport { TooltipContent } from \"../Tooltip/TooltipContent\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\ntype BaseProps = Pick<\n TooltipContentProps,\n | \"placement\"\n | \"portalContainer\"\n | \"maxWidth\"\n | \"contentPadding\"\n | \"hideArrow\"\n | \"hasInvertedSubTheme\"\n> & {\n name?: string;\n // Popover content\n content: ReactElement;\n \"data-e2e-test-id\"?: string;\n // Programmatically toggle Popover visibility with this prop\n isVisible?: boolean;\n /* Called when tooltip appears and disappears */\n onVisibilityChange?: (isVisible: boolean) => void;\n /* Controls whether BasePopover closes on outside click */\n dismissOnOutsideClick?: boolean;\n disableInitialFocus?: boolean;\n disableReturnFocusToTrigger?: boolean;\n};\n\nexport type BasePopoverProps = BaseProps;\n\ntype BasePopoverInternalProps = BaseProps &\n TooltipConditionalProps &\n Pick<TooltipContentProps, \"defaultVerticalPlacement\">;\n\nconst FocusTrapContent = React.forwardRef<\n HTMLDivElement,\n PropsWithChildren<unknown>\n>(({ children }, ref) => <div ref={ref}>{children}</div>);\n\nexport function BasePopover({\n placement = \"auto\",\n content,\n children,\n contentPadding = \"m\",\n maxWidth,\n externalTriggerRef,\n portalContainer,\n name = \"Popover\",\n isVisible: isPopoverVisible,\n dismissOnOutsideClick = true,\n \"data-e2e-test-id\": dataE2eTestId,\n hasInvertedSubTheme,\n defaultVerticalPlacement,\n onVisibilityChange,\n disableInitialFocus = false,\n disableReturnFocusToTrigger = false,\n ...restContentProps\n}: BasePopoverInternalProps): React.ReactElement {\n const tooltipId = useMemo(\n () => `DS${name}_${Math.floor(Date.now() * Math.random())}`,\n [name]\n );\n const [isVisible, setVisible] = useState(isPopoverVisible);\n const internalTriggerRef = useRef(null);\n const triggerRef = externalTriggerRef || internalTriggerRef;\n const isOutsideClickOnTrigger = useRef(false);\n\n const toggleVisibility = useCallback(\n (status: boolean) => {\n setVisible(status);\n\n if (onVisibilityChange) {\n onVisibilityChange(status);\n }\n },\n [onVisibilityChange]\n );\n\n // Outside click is also fired when the Popover is open and trigger is clicked. `isOutsideClickOnTrigger` saves this condition and we check for it so as to not toggle the Popover twice.\n const handleTriggerClick = useCallback(() => {\n if (!isOutsideClickOnTrigger.current) {\n toggleVisibility(!isVisible);\n } else {\n // reset this value so that Popover can open in next click\n isOutsideClickOnTrigger.current = false;\n }\n }, [toggleVisibility, isVisible]);\n\n const handleClickOutsideDeactivates = useCallback(\n (evt) => {\n if (triggerRef.current.contains(evt.target)) {\n isOutsideClickOnTrigger.current = true;\n }\n return true;\n },\n [triggerRef, isOutsideClickOnTrigger]\n );\n\n useEffect(() => {\n setVisible(isPopoverVisible);\n }, [isPopoverVisible]);\n\n useEffect(() => {\n let trigger: HTMLElement;\n\n if (externalTriggerRef?.current && !children) {\n trigger = externalTriggerRef.current;\n\n trigger.setAttribute(\"tabindex\", \"0\");\n trigger.addEventListener(\"click\", handleTriggerClick);\n }\n\n return () => {\n if (trigger) {\n trigger.removeEventListener(\"click\", handleTriggerClick);\n }\n };\n }, [externalTriggerRef, children, handleTriggerClick]);\n\n useEffect(() => {\n if (externalTriggerRef?.current && !children) {\n const trigger = externalTriggerRef.current;\n\n if (isVisible) {\n trigger.setAttribute(\"aria-expanded\", true);\n trigger.setAttribute(\"aria-controls\", tooltipId);\n } else {\n trigger.removeAttribute(\"aria-expanded\");\n trigger.removeAttribute(\"aria-controls\");\n }\n }\n }, [externalTriggerRef, children, tooltipId, isVisible]);\n\n const triggerElm = children\n ? React.cloneElement(children, {\n ref: triggerRef,\n ...(isVisible && {\n \"aria-expanded\": true,\n \"aria-controls\": tooltipId,\n }),\n tabIndex: 0,\n onClick: (evt: React.MouseEvent) => {\n handleTriggerClick();\n if (children.props.onClick) {\n children.props.onClick(evt);\n }\n },\n })\n : null;\n\n const contentElm = (\n <FocusTrap\n focusTrapOptions={{\n clickOutsideDeactivates:\n dismissOnOutsideClick && handleClickOutsideDeactivates, // de-active focus trap on outside click\n allowOutsideClick: true,\n escapeDeactivates: true, // de-activate focus trap on escape key\n fallbackFocus: `#${tooltipId}`, // set focus to tooltip content container if it has no focusable element\n onDeactivate: () => {\n toggleVisibility(false);\n },\n preventScroll: true,\n initialFocus: () => !disableInitialFocus,\n returnFocusOnDeactivate: !disableReturnFocusToTrigger,\n }}\n >\n <FocusTrapContent>{content}</FocusTrapContent>\n </FocusTrap>\n );\n\n const tooltipElm = (\n <TooltipContent\n {...restContentProps} // eslint-disable-line react/jsx-props-no-spreading\n defaultVerticalPlacement={defaultVerticalPlacement}\n dataDSId={name}\n content={contentElm}\n contentPadding={contentPadding}\n maxWidth={maxWidth}\n placement={placement}\n portalContainer={portalContainer}\n dataE2eTestId={dataE2eTestId}\n hasInvertedSubTheme={hasInvertedSubTheme}\n isVisible={isVisible}\n tooltipId={tooltipId}\n tabIndex={-1}\n triggerRef={triggerRef}\n />\n );\n return (\n <>\n {triggerElm}\n {tooltipElm}\n </>\n );\n}\n"],"names":["FocusTrapContent","React","forwardRef","_ref","ref","children","createElement","BasePopover","_ref2","placement","content","contentPadding","maxWidth","externalTriggerRef","portalContainer","name","isVisible","isPopoverVisible","dismissOnOutsideClick","dataE2eTestId","hasInvertedSubTheme","defaultVerticalPlacement","onVisibilityChange","disableInitialFocus","disableReturnFocusToTrigger","restContentProps","tooltipId","useMemo","Math","floor","Date","now","random","setVisible","useState","internalTriggerRef","useRef","triggerRef","isOutsideClickOnTrigger","toggleVisibility","useCallback","status","handleTriggerClick","current","handleClickOutsideDeactivates","evt","contains","target","useEffect","trigger","setAttribute","addEventListener","removeEventListener","removeAttribute","triggerElm","cloneElement","tabIndex","onClick","props","contentElm","FocusTrap","focusTrapOptions","clickOutsideDeactivates","allowOutsideClick","escapeDeactivates","fallbackFocus","onDeactivate","preventScroll","initialFocus","returnFocusOnDeactivate","tooltipElm","TooltipContent","_extends","dataDSId","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BasePopover.js","sources":["../../../../../src/components/Toggletip/BasePopover.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n ReactElement,\n PropsWithChildren,\n} from \"react\";\nimport type { TooltipContentProps } from \"../Tooltip/TooltipContent\";\nimport { TooltipContent } from \"../Tooltip/TooltipContent\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\nimport { Sheet } from \"../Sheet/Sheet\";\nimport { FocusTrapWrapper } from \"../../shared/FocusTrapWrapper\";\nimport breakpoints from \"../../../build-tokens/_breakpoints.json\";\n\ntype BaseProps = Pick<\n TooltipContentProps,\n | \"placement\"\n | \"portalContainer\"\n | \"maxWidth\"\n | \"contentPadding\"\n | \"hideArrow\"\n | \"hasInvertedSubTheme\"\n | \"defaultVerticalPlacement\"\n> & {\n name?: string;\n // Popover content\n content: ReactElement;\n \"data-e2e-test-id\"?: string;\n // Programmatically toggle Popover visibility with this prop\n isVisible?: boolean;\n /* Called when tooltip appears and disappears */\n onVisibilityChange?: (isVisible: boolean, reason: string) => void;\n /* Controls whether BasePopover closes on outside click */\n dismissOnOutsideClick?: boolean;\n /* Option for focus-trap, controls whether the first focuable item recieves focus */\n disableInitialFocus?: boolean;\n /* Option for focus-trap, controls whether the trigger should receive back the focus on popover close */\n disableReturnFocusToTrigger?: boolean;\n /* Render as sheet on mobile web */\n renderAsSheetOnMobile?: boolean;\n};\n\nexport type BasePopoverProps = BaseProps & TooltipConditionalProps;\n\nconst FocusTrapContent = React.forwardRef<\n HTMLDivElement,\n PropsWithChildren<unknown>\n>(({ children }, ref) => <div ref={ref}>{children}</div>);\n\nconst VisibilityChangeReason = {\n triggerClick: \"triggerClick\",\n outsideClick: \"outsideClick\",\n};\n\nexport function BasePopover({\n placement = \"auto\",\n content,\n children,\n contentPadding = \"m\",\n maxWidth,\n externalTriggerRef,\n portalContainer,\n name = \"Popover\",\n isVisible: isPopoverVisible,\n dismissOnOutsideClick = true,\n \"data-e2e-test-id\": dataE2eTestId,\n hasInvertedSubTheme,\n defaultVerticalPlacement,\n onVisibilityChange,\n disableInitialFocus = false,\n disableReturnFocusToTrigger = false,\n renderAsSheetOnMobile = false,\n ...restContentProps\n}: BasePopoverProps): React.ReactElement {\n const tooltipId = useMemo(\n () => `DS${name}_${Math.floor(Date.now() * Math.random())}`,\n [name]\n );\n const [isVisible, setVisible] = useState(isPopoverVisible);\n const [isMobileBreakPoint, setIsMobileBreakpoint] = useState(false);\n const internalTriggerRef = useRef(null);\n const triggerRef = externalTriggerRef || internalTriggerRef;\n const isOutsideClickOnTrigger = useRef(false);\n const isPrevMobileBreakPointRef = useRef(false);\n\n const toggleVisibility = useCallback(\n (status: boolean, reason: string) => {\n setVisible(status);\n\n if (onVisibilityChange) {\n onVisibilityChange(status, reason);\n }\n },\n [onVisibilityChange]\n );\n\n // Outside click is also fired when the Popover is open and trigger is clicked. `isOutsideClickOnTrigger` saves this condition and we check for it so as to not toggle the Popover twice.\n const handleTriggerClick = useCallback(() => {\n if (!isOutsideClickOnTrigger.current) {\n toggleVisibility(!isVisible, VisibilityChangeReason.triggerClick);\n } else {\n // reset this value so that Popover can open in next click\n isOutsideClickOnTrigger.current = false;\n }\n }, [toggleVisibility, isVisible]);\n\n const handleClickOutsideDeactivates = useCallback(\n (evt) => {\n if (triggerRef.current.contains(evt.target)) {\n isOutsideClickOnTrigger.current = true;\n }\n\n return true;\n },\n [triggerRef, isOutsideClickOnTrigger]\n );\n\n const handleSheetClose = useCallback(() => {\n toggleVisibility(false, \"sheetClose\");\n }, [toggleVisibility]);\n\n useEffect(() => {\n setVisible(isPopoverVisible);\n }, [isPopoverVisible]);\n\n useEffect(() => {\n // Check if this is a mobile breakpoint\n if (renderAsSheetOnMobile) {\n setIsMobileBreakpoint(window.innerWidth <= breakpoints.medium.value);\n }\n }, [isVisible, renderAsSheetOnMobile]);\n\n useEffect(() => {\n isPrevMobileBreakPointRef.current = isMobileBreakPoint;\n }, [isMobileBreakPoint]);\n\n useEffect(() => {\n let trigger: HTMLElement;\n\n if (externalTriggerRef?.current && !children) {\n trigger = externalTriggerRef.current;\n\n trigger.setAttribute(\"tabindex\", \"0\");\n trigger.addEventListener(\"click\", handleTriggerClick);\n }\n\n return () => {\n if (trigger) {\n trigger.removeEventListener(\"click\", handleTriggerClick);\n }\n };\n }, [externalTriggerRef, children, handleTriggerClick]);\n\n useEffect(() => {\n if (externalTriggerRef?.current && !children) {\n const trigger = externalTriggerRef.current;\n\n if (isVisible) {\n trigger.setAttribute(\"aria-expanded\", true);\n trigger.setAttribute(\"aria-controls\", tooltipId);\n } else {\n trigger.removeAttribute(\"aria-expanded\");\n trigger.removeAttribute(\"aria-controls\");\n }\n }\n }, [externalTriggerRef, children, tooltipId, isVisible]);\n\n const triggerElm = children\n ? React.cloneElement(children, {\n ref: triggerRef,\n ...(isVisible && {\n \"aria-expanded\": true,\n \"aria-controls\": tooltipId,\n }),\n tabIndex: 0,\n onClick: (evt: React.MouseEvent) => {\n handleTriggerClick();\n if (children.props.onClick) {\n children.props.onClick(evt);\n }\n },\n })\n : null;\n\n if (isMobileBreakPoint) {\n // render as Sheet\n const sheetElm = (\n <Sheet\n id={tooltipId}\n isVisible={isVisible}\n onClose={handleSheetClose}\n dismissOnOutsideClick={dismissOnOutsideClick}\n disableInitialFocus={disableInitialFocus}\n disableReturnFocusToTrigger={disableReturnFocusToTrigger}\n >\n {content}\n </Sheet>\n );\n\n return (\n <>\n {triggerElm}\n {sheetElm}\n </>\n );\n }\n\n // render as Popover\n const contentElm = (\n <FocusTrapWrapper\n focusTrapOptions={{\n clickOutsideDeactivates:\n dismissOnOutsideClick && handleClickOutsideDeactivates, // de-active focus trap on outside click\n allowOutsideClick: true,\n escapeDeactivates: true, // de-activate focus trap on escape key\n fallbackFocus: `#${tooltipId}`, // set focus to tooltip content container if it has no focusable element\n onPostDeactivate: () => {\n const reason = isOutsideClickOnTrigger.current\n ? VisibilityChangeReason.triggerClick\n : VisibilityChangeReason.outsideClick;\n\n toggleVisibility(false, reason);\n },\n preventScroll: true,\n initialFocus: () => !disableInitialFocus,\n returnFocusOnDeactivate: !disableReturnFocusToTrigger,\n }}\n >\n <FocusTrapContent>{content}</FocusTrapContent>\n </FocusTrapWrapper>\n );\n\n const tooltipElm = (\n <TooltipContent\n {...restContentProps} // eslint-disable-line react/jsx-props-no-spreading\n defaultVerticalPlacement={defaultVerticalPlacement}\n dataDSId={name}\n content={contentElm}\n contentPadding={contentPadding}\n maxWidth={maxWidth}\n placement={placement}\n portalContainer={portalContainer}\n dataE2eTestId={dataE2eTestId}\n hasInvertedSubTheme={hasInvertedSubTheme}\n isVisible={isVisible}\n tooltipId={tooltipId}\n tabIndex={-1}\n triggerRef={triggerRef}\n />\n );\n\n return (\n <>\n {triggerElm}\n {tooltipElm}\n </>\n );\n}\n"],"names":["FocusTrapContent","React","forwardRef","_ref","ref","children","createElement","VisibilityChangeReason","triggerClick","outsideClick","BasePopover","_ref2","placement","content","contentPadding","maxWidth","externalTriggerRef","portalContainer","name","isVisible","isPopoverVisible","dismissOnOutsideClick","dataE2eTestId","hasInvertedSubTheme","defaultVerticalPlacement","onVisibilityChange","disableInitialFocus","disableReturnFocusToTrigger","renderAsSheetOnMobile","restContentProps","tooltipId","useMemo","Math","floor","Date","now","random","setVisible","useState","isMobileBreakPoint","setIsMobileBreakpoint","internalTriggerRef","useRef","triggerRef","isOutsideClickOnTrigger","isPrevMobileBreakPointRef","toggleVisibility","useCallback","status","reason","handleTriggerClick","current","handleClickOutsideDeactivates","evt","contains","target","handleSheetClose","useEffect","window","innerWidth","breakpoints","medium","value","trigger","setAttribute","addEventListener","removeEventListener","removeAttribute","triggerElm","cloneElement","tabIndex","onClick","props","sheetElm","Sheet","id","onClose","Fragment","contentElm","FocusTrapWrapper","focusTrapOptions","clickOutsideDeactivates","allowOutsideClick","escapeDeactivates","fallbackFocus","onPostDeactivate","preventScroll","initialFocus","returnFocusOnDeactivate","tooltipElm","TooltipContent","_extends","dataDSId"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { BasePopoverProps } from "./BasePopover";
|
|
3
3
|
import { TooltipConditionalProps } from "../Tooltip/types";
|
|
4
|
-
export type ToggletipProps = Omit<BasePopoverProps, "name" | "defaultVerticalPlacement"> & TooltipConditionalProps;
|
|
4
|
+
export type ToggletipProps = Omit<BasePopoverProps, "name" | "defaultVerticalPlacement" | "hideArrow" | "hasInvertedSubTheme" | "renderAsSheetOnMobile"> & TooltipConditionalProps;
|
|
5
5
|
export declare function Toggletip(props: ToggletipProps): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toggletip.js","sources":["../../../../../src/components/Toggletip/Toggletip.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { BasePopover, BasePopoverProps } from \"./BasePopover\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\nexport type ToggletipProps = Omit<\n BasePopoverProps,\n \"name\"
|
|
1
|
+
{"version":3,"file":"Toggletip.js","sources":["../../../../../src/components/Toggletip/Toggletip.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { BasePopover, BasePopoverProps } from \"./BasePopover\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\nexport type ToggletipProps = Omit<\n BasePopoverProps,\n | \"name\"\n | \"defaultVerticalPlacement\"\n | \"hideArrow\"\n | \"hasInvertedSubTheme\"\n | \"renderAsSheetOnMobile\"\n> &\n TooltipConditionalProps;\n\nexport function Toggletip(props: ToggletipProps): React.ReactElement {\n return (\n <BasePopover\n name=\"Toggletip\"\n {...props} // eslint-disable-line react/jsx-props-no-spreading\n />\n );\n}\n"],"names":["Toggletip","props","React","createElement","BasePopover","_extends","name"],"mappings":";;;;AAeO,SAASA,SAASA,CAACC,KAAqB,EAAsB;AACnE,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAACC,WAAW,EAAAC,QAAA,CAAA;AACVC,IAAAA,IAAI,EAAC,WAAA;GACDL,EAAAA,KAAK,CACV,CAAC,CAAA;AAEN;;;;"}
|
|
@@ -51,14 +51,14 @@ const StyledContainer = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "pr
|
|
|
51
51
|
opacity: 0,
|
|
52
52
|
animation: `${ANIMATION_DURATION}ms ease-out forwards ${animation}`,
|
|
53
53
|
maxWidth,
|
|
54
|
-
width: "
|
|
54
|
+
width: "max-content",
|
|
55
55
|
boxSizing: "border-box",
|
|
56
56
|
...(hasInvertedSubTheme && invertedSubThemeStyles),
|
|
57
57
|
...(horizontalPlacement === "center" && {
|
|
58
58
|
transform: "translate(-50%)"
|
|
59
59
|
})
|
|
60
60
|
};
|
|
61
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RXdCIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudDogUmVhY3RFbGVtZW50O1xuICB0cmlnZ2VyUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGFueT47XG4gIC8qIFBsYWNlbWVudCAqL1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgdG9vbHRpcCBpbnRvICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICAvLyBDb250ZW50IHBhZGRpbmdcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBoYXNJbnZlcnRlZFN1YlRoZW1lPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFwiY29udGVudFBhZGRpbmdcIiB8IFwibWF4V2lkdGhcIiB8IFwiaGFzSW52ZXJ0ZWRTdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBtYXhXaWR0aCxcbiAgICBjb250ZW50UGFkZGluZyxcbiAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID0gdHJ1ZSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkRpc3RhbmNlID1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiXG4gICAgICAgID8gYCR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YFxuICAgICAgICA6IGAtJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGtleWZyYW1lcyh7XG4gICAgICB0bzoge1xuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIlxuICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZVkoJHthbmltYXRpb25EaXN0YW5jZX0pYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IHpJbmRpY2VzLnRvb2x0aXAudmFsdWUsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwiaW5pdGlhbFwiLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIC4uLihoYXNJbnZlcnRlZFN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHsgdGhlbWUsIHZlcnRpY2FsUGxhY2VtZW50LCBob3Jpem9udGFsUGxhY2VtZW50LCBzaXplID0gQVJST1dfU0laRSB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGJvcmRlckxlZnQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuICAgICAgYm9yZGVyUmlnaHQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgJiYge1xuICAgICAgICB0b3A6IFwiMTAwJVwiLFxuICAgICAgICBib3JkZXJUb3A6IGAke3NpemV9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICB0b3A6IGAtJHtzaXplfXB4YCxcbiAgICAgICAgYm9yZGVyQm90dG9tOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgICAgIGxlZnQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIGhpZGVBcnJvdyA9IGZhbHNlLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0ludmVydGVkU3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtoYXNJbnZlcnRlZFN1YlRoZW1lLCBoaWRlQXJyb3ddKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoXG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50XSk7XG5cbiAgLy8gUmUtcG9zaXRpb24gdG9vbHRpcCBpZiBpdCBtb3ZlcyBvdXQgb2YgdGhlIHZpZXdwb3J0IGJ5IDEwJSBhbmQgb24gd2luZG93IHJlc2l6ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgIGlzVmlzaWJsZSAmJlxuICAgICAgdG9vbHRpcFJlZi5jdXJyZW50XG4gICAgKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKCkgPT4ge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRocmVzaG9sZDogMC45LFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRvb2x0aXBSZWYuY3VycmVudCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBjYWxjdWxhdGVTdHlsZSwgdHJ1ZSk7IC8vIHVzZSBjYXB0dXJlIGhlcmUgdG8gZGV0ZWN0IHNjcm9sbCBvbiBhbnkgcGFyZW50XG4gICAgfSBlbHNlIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAvLyBsb2cgdGltZSB3aGVuIHRvb2x0aXAgY2xvc2VzXG4gICAgICBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgIGNvbnRlbnRcbiAgICAgICkgOiAoXG4gICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9XCJzXCI+XG4gICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG5cbiAgY29uc3Qgd3JhcHBlckVsbSA9IGhhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cImludmVydGVkXCI+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHdyYXBwZXJFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbn1cbiJdfQ== */");
|
|
61
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RXdCIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudDogUmVhY3RFbGVtZW50O1xuICB0cmlnZ2VyUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGFueT47XG4gIC8qIFBsYWNlbWVudCAqL1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgdG9vbHRpcCBpbnRvICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICAvLyBDb250ZW50IHBhZGRpbmdcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBoYXNJbnZlcnRlZFN1YlRoZW1lPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFwiY29udGVudFBhZGRpbmdcIiB8IFwibWF4V2lkdGhcIiB8IFwiaGFzSW52ZXJ0ZWRTdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBtYXhXaWR0aCxcbiAgICBjb250ZW50UGFkZGluZyxcbiAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID0gdHJ1ZSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkRpc3RhbmNlID1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiXG4gICAgICAgID8gYCR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YFxuICAgICAgICA6IGAtJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGtleWZyYW1lcyh7XG4gICAgICB0bzoge1xuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIlxuICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZVkoJHthbmltYXRpb25EaXN0YW5jZX0pYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IHpJbmRpY2VzLnRvb2x0aXAudmFsdWUsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAuLi4oaGFzSW52ZXJ0ZWRTdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0ge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7IHRoZW1lLCB2ZXJ0aWNhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFBsYWNlbWVudCwgc2l6ZSA9IEFSUk9XX1NJWkUgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICBib3JkZXJMZWZ0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcbiAgICAgIGJvcmRlclJpZ2h0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgdG9wOiBcIjEwMCVcIixcbiAgICAgICAgYm9yZGVyVG9wOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcImJvdHRvbVwiICYmIHtcbiAgICAgICAgdG9wOiBgLSR7c2l6ZX1weGAsXG4gICAgICAgIGJvcmRlckJvdHRvbTogYCR7c2l6ZX1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdH1gLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImxlZnRcIiAmJiB7XG4gICAgICAgIHJpZ2h0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgaW5pdGlhbFN0eWxlOiBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogMCxcbiAgbGVmdDogMCxcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIsXG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwiY2VudGVyXCIsXG59O1xuXG5sZXQgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gMDtcblxuLyogRGlzYWJsZSBhbmltYXRpb24gaWYgdGltZSBiZXR3ZWVuIGxhc3QgY2xvc2UgYW5kIG5ldyBvcGVuIGlzIGxlc3MgdGhhbiA1MDBtcyArIFNIT1dfSElERV9ERUxBWSAqL1xuZnVuY3Rpb24gZ2V0QW5pbWF0aW9uRHVyYXRpb24oKSB7XG4gIGxldCBhbmltYXRpb25EdXJhdGlvbiA9IGAke0FOSU1BVElPTl9EVVJBVElPTn1tc2A7XG5cbiAgaWYgKGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCkge1xuICAgIGNvbnN0IHRpbWVTaW5jZUxhc3RUb29sdGlwID0gRGF0ZS5ub3coKSAtIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcDtcblxuICAgIGlmICh0aW1lU2luY2VMYXN0VG9vbHRpcCA8IDUwMCArIFNIT1dfSElERV9ERUxBWSkge1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSBcIjBtc1wiO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYW5pbWF0aW9uRHVyYXRpb247XG59XG5cbi8qKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIG92ZXJsYXkgZm9yIGJvdGggVG9nZ2xldGlwIGFuZCBUb29sdGlwIGNvbXBvbmVudHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBUb29sdGlwQ29udGVudCh7XG4gIHBsYWNlbWVudCA9IFwiYXV0b1wiLFxuICBjb250ZW50LFxuICB0b29sdGlwSWQsXG4gIHRyaWdnZXJSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgZGF0YUUyZVRlc3RJZCxcbiAgZGF0YURTSWQsXG4gIGlzVmlzaWJsZSxcbiAgXCJhcmlhLWhpZGRlblwiOiBhcmlhSGlkZGVuLFxuICByb2xlLFxuICB0YWJJbmRleCxcbiAgY29udGVudFBhZGRpbmcsXG4gIG1heFdpZHRoID0gTUFYX0NPTlRFTlRfV0lEVEgsXG4gIGhhc0ludmVydGVkU3ViVGhlbWUgPSB0cnVlLFxuICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IHRvb2x0aXBSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGRvY3VtZW50ID0gdXNlRG9jdW1lbnQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG5cbiAgY29uc3QgYXJyb3dTaXplID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVBcnJvdykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBoYXNJbnZlcnRlZFN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbaGFzSW52ZXJ0ZWRTdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgY2FsY3VsYXRlU3R5bGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0b29sdGlwIHN0eWxlXG4gICAgICBzZXRTdHlsZShcbiAgICAgICAgZ2V0VG9vbHRpcFN0eWxlKFxuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICBdKTtcblxuICAvLyBUaGlzIGxheW91dCBlZmZlY3QgdG8gcmUtcmVuZGVyIHdpdGggdXBkYXRlZCBwb3NpdGlvbiBhZnRlciBkZXRlcm1pbmluZyBjb250ZW50IHdpZHRoXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICB9XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCBjb250ZW50UGFkZGluZywgY29udGVudF0pO1xuXG4gIC8vIFJlLXBvc2l0aW9uIHRvb2x0aXAgaWYgaXQgbW92ZXMgb3V0IG9mIHRoZSB2aWV3cG9ydCBieSAxMCUgYW5kIG9uIHdpbmRvdyByZXNpemVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHRvb2x0aXBSZWYuY3VycmVudFxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKCgpID0+IHtcbiAgICAgICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuOSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0b29sdGlwUmVmLmN1cnJlbnQpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlU3R5bGUsIHRydWUpOyAvLyB1c2UgY2FwdHVyZSBoZXJlIHRvIGRldGVjdCBzY3JvbGwgb24gYW55IHBhcmVudFxuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgaWYgKCFpc1Zpc2libGUpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIGRhdGEtZHMtaWQ9e2RhdGFEU0lkfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgIGxlZnQ6IHN0eWxlLmxlZnQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiBnZXRBbmltYXRpb25EdXJhdGlvbigpLFxuICAgICAgfX1cbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIGlkPXt0b29sdGlwSWR9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgYXJpYS1oaWRkZW49e2FyaWFIaWRkZW59XG4gICAgICBoYXNJbnZlcnRlZFN1YlRoZW1lPXtoYXNJbnZlcnRlZFN1YlRoZW1lfVxuICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudD17c3R5bGUuaG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgIGNvbnRlbnRQYWRkaW5nPXtjb250ZW50UGFkZGluZ31cbiAgICAgIG9uUG9pbnRlckVudGVyPXtvblRvb2x0aXBQb2ludGVyRW50ZXJ9XG4gICAgICBvblBvaW50ZXJMZWF2ZT17b25Ub29sdGlwUG9pbnRlckxlYXZlfVxuICAgID5cbiAgICAgIHtoYXNJbnZlcnRlZFN1YlRoZW1lID8gKFxuICAgICAgICBjb250ZW50XG4gICAgICApIDogKFxuICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17M30gYm9yZGVyUmFkaXVzPVwic1wiPlxuICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgIDxTdHlsZWRBcnJvd1xuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2Ake2RhdGFFMmVUZXN0SWR9X2Fycm93YH1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBoYXNJbnZlcnRlZFN1YlRoZW1lID8gKFxuICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9XCJpbnZlcnRlZFwiPnt0b29sdGlwRWxtfTwvU3ViVGhlbWVQcm92aWRlcj5cbiAgKSA6IChcbiAgICB0b29sdGlwRWxtXG4gICk7XG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCh3cmFwcGVyRWxtLCBwb3J0YWxDb250YWluZXIgfHwgZG9jdW1lbnQuYm9keSk7XG59XG4iXX0= */");
|
|
62
62
|
const StyledArrow = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "production" ? {
|
|
63
63
|
target: "e1k814k40"
|
|
64
64
|
} : {
|
|
@@ -97,7 +97,7 @@ const StyledArrow = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "produc
|
|
|
97
97
|
right: `${offset}px`
|
|
98
98
|
})
|
|
99
99
|
};
|
|
100
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SW9CIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudDogUmVhY3RFbGVtZW50O1xuICB0cmlnZ2VyUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGFueT47XG4gIC8qIFBsYWNlbWVudCAqL1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgdG9vbHRpcCBpbnRvICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICAvLyBDb250ZW50IHBhZGRpbmdcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBoYXNJbnZlcnRlZFN1YlRoZW1lPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFwiY29udGVudFBhZGRpbmdcIiB8IFwibWF4V2lkdGhcIiB8IFwiaGFzSW52ZXJ0ZWRTdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBtYXhXaWR0aCxcbiAgICBjb250ZW50UGFkZGluZyxcbiAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID0gdHJ1ZSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkRpc3RhbmNlID1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiXG4gICAgICAgID8gYCR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YFxuICAgICAgICA6IGAtJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGtleWZyYW1lcyh7XG4gICAgICB0bzoge1xuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIlxuICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZVkoJHthbmltYXRpb25EaXN0YW5jZX0pYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IHpJbmRpY2VzLnRvb2x0aXAudmFsdWUsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwiaW5pdGlhbFwiLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIC4uLihoYXNJbnZlcnRlZFN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHsgdGhlbWUsIHZlcnRpY2FsUGxhY2VtZW50LCBob3Jpem9udGFsUGxhY2VtZW50LCBzaXplID0gQVJST1dfU0laRSB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGJvcmRlckxlZnQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuICAgICAgYm9yZGVyUmlnaHQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgJiYge1xuICAgICAgICB0b3A6IFwiMTAwJVwiLFxuICAgICAgICBib3JkZXJUb3A6IGAke3NpemV9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICB0b3A6IGAtJHtzaXplfXB4YCxcbiAgICAgICAgYm9yZGVyQm90dG9tOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgICAgIGxlZnQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIGhpZGVBcnJvdyA9IGZhbHNlLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0ludmVydGVkU3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtoYXNJbnZlcnRlZFN1YlRoZW1lLCBoaWRlQXJyb3ddKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoXG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50XSk7XG5cbiAgLy8gUmUtcG9zaXRpb24gdG9vbHRpcCBpZiBpdCBtb3ZlcyBvdXQgb2YgdGhlIHZpZXdwb3J0IGJ5IDEwJSBhbmQgb24gd2luZG93IHJlc2l6ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgIGlzVmlzaWJsZSAmJlxuICAgICAgdG9vbHRpcFJlZi5jdXJyZW50XG4gICAgKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKCkgPT4ge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRocmVzaG9sZDogMC45LFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRvb2x0aXBSZWYuY3VycmVudCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBjYWxjdWxhdGVTdHlsZSwgdHJ1ZSk7IC8vIHVzZSBjYXB0dXJlIGhlcmUgdG8gZGV0ZWN0IHNjcm9sbCBvbiBhbnkgcGFyZW50XG4gICAgfSBlbHNlIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAvLyBsb2cgdGltZSB3aGVuIHRvb2x0aXAgY2xvc2VzXG4gICAgICBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgIGNvbnRlbnRcbiAgICAgICkgOiAoXG4gICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9XCJzXCI+XG4gICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG5cbiAgY29uc3Qgd3JhcHBlckVsbSA9IGhhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cImludmVydGVkXCI+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHdyYXBwZXJFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbn1cbiJdfQ== */");
|
|
100
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SW9CIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudDogUmVhY3RFbGVtZW50O1xuICB0cmlnZ2VyUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGFueT47XG4gIC8qIFBsYWNlbWVudCAqL1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgdG9vbHRpcCBpbnRvICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICAvLyBDb250ZW50IHBhZGRpbmdcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBoYXNJbnZlcnRlZFN1YlRoZW1lPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFwiY29udGVudFBhZGRpbmdcIiB8IFwibWF4V2lkdGhcIiB8IFwiaGFzSW52ZXJ0ZWRTdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBtYXhXaWR0aCxcbiAgICBjb250ZW50UGFkZGluZyxcbiAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID0gdHJ1ZSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkRpc3RhbmNlID1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiXG4gICAgICAgID8gYCR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YFxuICAgICAgICA6IGAtJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGtleWZyYW1lcyh7XG4gICAgICB0bzoge1xuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIlxuICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZVkoJHthbmltYXRpb25EaXN0YW5jZX0pYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IHpJbmRpY2VzLnRvb2x0aXAudmFsdWUsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAuLi4oaGFzSW52ZXJ0ZWRTdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0ge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7IHRoZW1lLCB2ZXJ0aWNhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFBsYWNlbWVudCwgc2l6ZSA9IEFSUk9XX1NJWkUgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICBib3JkZXJMZWZ0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcbiAgICAgIGJvcmRlclJpZ2h0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgdG9wOiBcIjEwMCVcIixcbiAgICAgICAgYm9yZGVyVG9wOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcImJvdHRvbVwiICYmIHtcbiAgICAgICAgdG9wOiBgLSR7c2l6ZX1weGAsXG4gICAgICAgIGJvcmRlckJvdHRvbTogYCR7c2l6ZX1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdH1gLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImxlZnRcIiAmJiB7XG4gICAgICAgIHJpZ2h0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgaW5pdGlhbFN0eWxlOiBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogMCxcbiAgbGVmdDogMCxcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIsXG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwiY2VudGVyXCIsXG59O1xuXG5sZXQgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gMDtcblxuLyogRGlzYWJsZSBhbmltYXRpb24gaWYgdGltZSBiZXR3ZWVuIGxhc3QgY2xvc2UgYW5kIG5ldyBvcGVuIGlzIGxlc3MgdGhhbiA1MDBtcyArIFNIT1dfSElERV9ERUxBWSAqL1xuZnVuY3Rpb24gZ2V0QW5pbWF0aW9uRHVyYXRpb24oKSB7XG4gIGxldCBhbmltYXRpb25EdXJhdGlvbiA9IGAke0FOSU1BVElPTl9EVVJBVElPTn1tc2A7XG5cbiAgaWYgKGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCkge1xuICAgIGNvbnN0IHRpbWVTaW5jZUxhc3RUb29sdGlwID0gRGF0ZS5ub3coKSAtIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcDtcblxuICAgIGlmICh0aW1lU2luY2VMYXN0VG9vbHRpcCA8IDUwMCArIFNIT1dfSElERV9ERUxBWSkge1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSBcIjBtc1wiO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYW5pbWF0aW9uRHVyYXRpb247XG59XG5cbi8qKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIG92ZXJsYXkgZm9yIGJvdGggVG9nZ2xldGlwIGFuZCBUb29sdGlwIGNvbXBvbmVudHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBUb29sdGlwQ29udGVudCh7XG4gIHBsYWNlbWVudCA9IFwiYXV0b1wiLFxuICBjb250ZW50LFxuICB0b29sdGlwSWQsXG4gIHRyaWdnZXJSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgZGF0YUUyZVRlc3RJZCxcbiAgZGF0YURTSWQsXG4gIGlzVmlzaWJsZSxcbiAgXCJhcmlhLWhpZGRlblwiOiBhcmlhSGlkZGVuLFxuICByb2xlLFxuICB0YWJJbmRleCxcbiAgY29udGVudFBhZGRpbmcsXG4gIG1heFdpZHRoID0gTUFYX0NPTlRFTlRfV0lEVEgsXG4gIGhhc0ludmVydGVkU3ViVGhlbWUgPSB0cnVlLFxuICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IHRvb2x0aXBSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGRvY3VtZW50ID0gdXNlRG9jdW1lbnQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG5cbiAgY29uc3QgYXJyb3dTaXplID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVBcnJvdykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBoYXNJbnZlcnRlZFN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbaGFzSW52ZXJ0ZWRTdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgY2FsY3VsYXRlU3R5bGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0b29sdGlwIHN0eWxlXG4gICAgICBzZXRTdHlsZShcbiAgICAgICAgZ2V0VG9vbHRpcFN0eWxlKFxuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICBdKTtcblxuICAvLyBUaGlzIGxheW91dCBlZmZlY3QgdG8gcmUtcmVuZGVyIHdpdGggdXBkYXRlZCBwb3NpdGlvbiBhZnRlciBkZXRlcm1pbmluZyBjb250ZW50IHdpZHRoXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICB9XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCBjb250ZW50UGFkZGluZywgY29udGVudF0pO1xuXG4gIC8vIFJlLXBvc2l0aW9uIHRvb2x0aXAgaWYgaXQgbW92ZXMgb3V0IG9mIHRoZSB2aWV3cG9ydCBieSAxMCUgYW5kIG9uIHdpbmRvdyByZXNpemVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHRvb2x0aXBSZWYuY3VycmVudFxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKCgpID0+IHtcbiAgICAgICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuOSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0b29sdGlwUmVmLmN1cnJlbnQpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlU3R5bGUsIHRydWUpOyAvLyB1c2UgY2FwdHVyZSBoZXJlIHRvIGRldGVjdCBzY3JvbGwgb24gYW55IHBhcmVudFxuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgaWYgKCFpc1Zpc2libGUpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIGRhdGEtZHMtaWQ9e2RhdGFEU0lkfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgIGxlZnQ6IHN0eWxlLmxlZnQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiBnZXRBbmltYXRpb25EdXJhdGlvbigpLFxuICAgICAgfX1cbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIGlkPXt0b29sdGlwSWR9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgYXJpYS1oaWRkZW49e2FyaWFIaWRkZW59XG4gICAgICBoYXNJbnZlcnRlZFN1YlRoZW1lPXtoYXNJbnZlcnRlZFN1YlRoZW1lfVxuICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudD17c3R5bGUuaG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgIGNvbnRlbnRQYWRkaW5nPXtjb250ZW50UGFkZGluZ31cbiAgICAgIG9uUG9pbnRlckVudGVyPXtvblRvb2x0aXBQb2ludGVyRW50ZXJ9XG4gICAgICBvblBvaW50ZXJMZWF2ZT17b25Ub29sdGlwUG9pbnRlckxlYXZlfVxuICAgID5cbiAgICAgIHtoYXNJbnZlcnRlZFN1YlRoZW1lID8gKFxuICAgICAgICBjb250ZW50XG4gICAgICApIDogKFxuICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17M30gYm9yZGVyUmFkaXVzPVwic1wiPlxuICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgIDxTdHlsZWRBcnJvd1xuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2Ake2RhdGFFMmVUZXN0SWR9X2Fycm93YH1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBoYXNJbnZlcnRlZFN1YlRoZW1lID8gKFxuICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9XCJpbnZlcnRlZFwiPnt0b29sdGlwRWxtfTwvU3ViVGhlbWVQcm92aWRlcj5cbiAgKSA6IChcbiAgICB0b29sdGlwRWxtXG4gICk7XG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCh3cmFwcGVyRWxtLCBwb3J0YWxDb250YWluZXIgfHwgZG9jdW1lbnQuYm9keSk7XG59XG4iXX0= */");
|
|
101
101
|
const initialStyle = {
|
|
102
102
|
top: 0,
|
|
103
103
|
left: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.js","sources":["../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n ReactElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { keyframes } from \"@emotion/react\";\nimport { createPortal } from \"react-dom\";\nimport { useDocument } from \"../../shared/useDocument\";\nimport { useWindow } from \"../../shared/useWindow\";\nimport { SubThemeProvider } from \"../SubThemeProvider/SubThemeProvider\";\nimport zIndices from \"../../../build-tokens/_zindex.json\";\n\nimport {\n ANIMATION_DISTANCE,\n ARROW_SIZE,\n ARROW_SIZE_BIG,\n getArrowOffset,\n getTooltipStyle,\n} from \"./utils\";\nimport { Container } from \"../Container/Container\";\n\nexport type TooltipContentProps = {\n content: ReactElement;\n triggerRef: MutableRefObject<any>;\n /* Placement */\n placement?:\n | \"auto\"\n | \"top\"\n | \"bottom\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\";\n /* Custom portal container to render tooltip into */\n portalContainer?: HTMLElement;\n dataE2eTestId?: string;\n dataDSId: string;\n isVisible?: boolean;\n tooltipId?: string;\n \"aria-hidden\"?: boolean;\n role?: string;\n tabIndex?: number;\n // Content padding\n contentPadding?: \"s\" | \"m\";\n hasInvertedSubTheme?: boolean;\n maxWidth?: number;\n defaultVerticalPlacement?: TooltipStyle[\"verticalPlacement\"];\n onTooltipPointerEnter?: React.PointerEventHandler<HTMLDivElement>;\n onTooltipPointerLeave?: React.PointerEventHandler<HTMLDivElement>;\n hideArrow?: boolean;\n};\n\nexport type TooltipStyle = {\n top: number;\n left: number;\n horizontalPlacement: \"left\" | \"right\" | \"center\";\n verticalPlacement: \"top\" | \"bottom\";\n};\n\ntype StyledContainerProps = Pick<\n TooltipContentProps,\n \"contentPadding\" | \"maxWidth\" | \"hasInvertedSubTheme\"\n> & {\n horizontalPlacement: TooltipStyle[\"horizontalPlacement\"];\n verticalPlacement: TooltipStyle[\"verticalPlacement\"];\n};\n\nconst ANIMATION_DURATION = 200;\nconst SHOW_HIDE_DELAY = 200;\nconst MAX_CONTENT_WIDTH = 224;\n\nconst StyledContainer = styled.div<StyledContainerProps>(\n ({\n theme,\n horizontalPlacement,\n verticalPlacement,\n maxWidth,\n contentPadding,\n hasInvertedSubTheme = true,\n }) => {\n const animationDistance =\n verticalPlacement === \"top\"\n ? `${ANIMATION_DISTANCE}px`\n : `-${ANIMATION_DISTANCE}px`;\n const animation = keyframes({\n to: {\n opacity: 1,\n transform:\n horizontalPlacement === \"center\"\n ? `translate(-50%, ${animationDistance})`\n : `translateY(${animationDistance})`,\n },\n });\n\n const contentPaddingMap = {\n s: theme.variables.size.spacing.xxs,\n m: theme.variables.size.spacing.s,\n };\n\n const invertedSubThemeStyles = {\n padding: `${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,\n ...(contentPadding && {\n padding: contentPaddingMap[contentPadding],\n }),\n borderRadius: theme.variables.size.borderRadius.xs,\n backgroundColor: theme.values.color.background.primary.default,\n };\n\n return {\n position: \"absolute\",\n zIndex: zIndices.tooltip.value,\n opacity: 0,\n animation: `${ANIMATION_DURATION}ms ease-out forwards ${animation}`,\n maxWidth,\n width: \"initial\",\n boxSizing: \"border-box\",\n ...(hasInvertedSubTheme && invertedSubThemeStyles),\n ...(horizontalPlacement === \"center\" && {\n transform: \"translate(-50%)\",\n }),\n };\n }\n);\n\ntype StyledArrowProps = {\n verticalPlacement: TooltipStyle[\"verticalPlacement\"];\n horizontalPlacement: TooltipStyle[\"horizontalPlacement\"];\n size?: 0 | typeof ARROW_SIZE | typeof ARROW_SIZE_BIG;\n};\n\nconst StyledArrow = styled.div<StyledArrowProps>(\n ({ theme, verticalPlacement, horizontalPlacement, size = ARROW_SIZE }) => {\n const offset = getArrowOffset(size);\n return {\n position: \"absolute\",\n width: 0,\n height: 0,\n borderLeft: `${size}px solid transparent`,\n borderRight: `${size}px solid transparent`,\n\n ...(verticalPlacement === \"top\" && {\n top: \"100%\",\n borderTop: `${size}px solid ${theme.values.color.background.primary.default}`,\n }),\n\n ...(verticalPlacement === \"bottom\" && {\n top: `-${size}px`,\n borderBottom: `${size}px solid ${theme.values.color.background.primary.default}`,\n }),\n\n ...(horizontalPlacement === \"center\" && {\n left: \"50%\",\n transform: \"translate(-50%)\",\n }),\n\n ...(horizontalPlacement === \"right\" && {\n left: `${offset}px`,\n }),\n\n ...(horizontalPlacement === \"left\" && {\n right: `${offset}px`,\n }),\n };\n }\n);\n\nconst initialStyle: TooltipStyle = {\n top: 0,\n left: 0,\n verticalPlacement: \"top\",\n horizontalPlacement: \"center\",\n};\n\nlet lastTooltipHideTimestamp = 0;\n\n/* Disable animation if time between last close and new open is less than 500ms + SHOW_HIDE_DELAY */\nfunction getAnimationDuration() {\n let animationDuration = `${ANIMATION_DURATION}ms`;\n\n if (lastTooltipHideTimestamp) {\n const timeSinceLastTooltip = Date.now() - lastTooltipHideTimestamp;\n\n if (timeSinceLastTooltip < 500 + SHOW_HIDE_DELAY) {\n animationDuration = \"0ms\";\n }\n }\n return animationDuration;\n}\n\n/** This component is used to display the overlay for both Toggletip and Tooltip components */\nexport function TooltipContent({\n placement = \"auto\",\n content,\n tooltipId,\n triggerRef,\n portalContainer,\n dataE2eTestId,\n dataDSId,\n isVisible,\n \"aria-hidden\": ariaHidden,\n role,\n tabIndex,\n contentPadding,\n maxWidth = MAX_CONTENT_WIDTH,\n hasInvertedSubTheme = true,\n defaultVerticalPlacement,\n onTooltipPointerEnter,\n onTooltipPointerLeave,\n hideArrow = false,\n}: TooltipContentProps): React.ReactElement {\n const [style, setStyle] = useState(initialStyle);\n const tooltipRef = useRef(null);\n const document = useDocument();\n const window = useWindow();\n\n const arrowSize = useMemo(() => {\n if (hideArrow) {\n return 0;\n }\n return hasInvertedSubTheme ? ARROW_SIZE : ARROW_SIZE_BIG;\n }, [hasInvertedSubTheme, hideArrow]);\n\n const calculateStyle = useCallback(() => {\n if (triggerRef.current && tooltipRef.current) {\n // calculate tooltip style\n setStyle(\n getTooltipStyle(\n placement,\n defaultVerticalPlacement,\n triggerRef,\n tooltipRef,\n document,\n window,\n arrowSize\n )\n );\n }\n }, [\n triggerRef,\n tooltipRef,\n document,\n window,\n placement,\n arrowSize,\n defaultVerticalPlacement,\n ]);\n\n // This layout effect to re-render with updated position after determining content width\n useLayoutEffect(() => {\n if (isVisible) {\n calculateStyle();\n }\n }, [isVisible, calculateStyle, contentPadding, content]);\n\n // Re-position tooltip if it moves out of the viewport by 10% and on window resize\n useEffect(() => {\n let observer: IntersectionObserver;\n\n if (\n typeof IntersectionObserver !== \"undefined\" &&\n isVisible &&\n tooltipRef.current\n ) {\n observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(() => {\n calculateStyle();\n });\n },\n {\n threshold: 0.9,\n }\n );\n\n observer.observe(tooltipRef.current);\n window.addEventListener(\"resize\", calculateStyle);\n window.addEventListener(\"scroll\", calculateStyle, true); // use capture here to detect scroll on any parent\n } else if (!isVisible) {\n // log time when tooltip closes\n lastTooltipHideTimestamp = Date.now();\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n window.removeEventListener(\"resize\", calculateStyle);\n window.removeEventListener(\"scroll\", calculateStyle);\n };\n }, [isVisible, calculateStyle, window, tooltipRef]);\n\n if (!isVisible) return null;\n\n const tooltipElm = (\n <StyledContainer\n data-e2e-test-id={dataE2eTestId}\n data-ds-id={dataDSId}\n style={{\n top: style.top,\n left: style.left,\n animationDuration: getAnimationDuration(),\n }}\n ref={tooltipRef}\n id={tooltipId}\n role={role}\n aria-hidden={ariaHidden}\n hasInvertedSubTheme={hasInvertedSubTheme}\n tabIndex={tabIndex}\n horizontalPlacement={style.horizontalPlacement}\n verticalPlacement={style.verticalPlacement}\n maxWidth={maxWidth}\n contentPadding={contentPadding}\n onPointerEnter={onTooltipPointerEnter}\n onPointerLeave={onTooltipPointerLeave}\n >\n {hasInvertedSubTheme ? (\n content\n ) : (\n <Container elevation={3} borderRadius=\"s\">\n {content}\n </Container>\n )}\n {!hideArrow && (\n <StyledArrow\n data-e2e-test-id={`${dataE2eTestId}_arrow`}\n horizontalPlacement={style.horizontalPlacement}\n verticalPlacement={style.verticalPlacement}\n size={arrowSize}\n />\n )}\n </StyledContainer>\n );\n\n const wrapperElm = hasInvertedSubTheme ? (\n <SubThemeProvider name=\"inverted\">{tooltipElm}</SubThemeProvider>\n ) : (\n tooltipElm\n );\n\n return createPortal(wrapperElm, portalContainer || document.body);\n}\n"],"names":["ANIMATION_DURATION","SHOW_HIDE_DELAY","MAX_CONTENT_WIDTH","StyledContainer","_styled","process","env","NODE_ENV","target","label","_ref","theme","horizontalPlacement","verticalPlacement","maxWidth","contentPadding","hasInvertedSubTheme","animationDistance","ANIMATION_DISTANCE","animation","keyframes","to","opacity","transform","contentPaddingMap","s","variables","size","spacing","xxs","m","invertedSubThemeStyles","padding","xs","borderRadius","backgroundColor","values","color","background","primary","default","position","zIndex","zIndices","tooltip","value","width","boxSizing","StyledArrow","_ref2","ARROW_SIZE","offset","getArrowOffset","height","borderLeft","borderRight","top","borderTop","borderBottom","left","right","initialStyle","lastTooltipHideTimestamp","getAnimationDuration","animationDuration","timeSinceLastTooltip","Date","now","TooltipContent","_ref3","placement","content","tooltipId","triggerRef","portalContainer","dataE2eTestId","dataDSId","isVisible","ariaHidden","role","tabIndex","defaultVerticalPlacement","onTooltipPointerEnter","onTooltipPointerLeave","hideArrow","style","setStyle","useState","tooltipRef","useRef","document","useDocument","window","useWindow","arrowSize","useMemo","ARROW_SIZE_BIG","calculateStyle","useCallback","current","getTooltipStyle","useLayoutEffect","useEffect","observer","IntersectionObserver","entries","forEach","threshold","observe","addEventListener","disconnect","removeEventListener","tooltipElm","React","createElement","ref","id","onPointerEnter","onPointerLeave","Container","elevation","wrapperElm","SubThemeProvider","name","createPortal","body"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TooltipContent.js","sources":["../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n ReactElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { keyframes } from \"@emotion/react\";\nimport { createPortal } from \"react-dom\";\nimport { useDocument } from \"../../shared/useDocument\";\nimport { useWindow } from \"../../shared/useWindow\";\nimport { SubThemeProvider } from \"../SubThemeProvider/SubThemeProvider\";\nimport zIndices from \"../../../build-tokens/_zindex.json\";\n\nimport {\n ANIMATION_DISTANCE,\n ARROW_SIZE,\n ARROW_SIZE_BIG,\n getArrowOffset,\n getTooltipStyle,\n} from \"./utils\";\nimport { Container } from \"../Container/Container\";\n\nexport type TooltipContentProps = {\n content: ReactElement;\n triggerRef: MutableRefObject<any>;\n /* Placement */\n placement?:\n | \"auto\"\n | \"top\"\n | \"bottom\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\";\n /* Custom portal container to render tooltip into */\n portalContainer?: HTMLElement;\n dataE2eTestId?: string;\n dataDSId: string;\n isVisible?: boolean;\n tooltipId?: string;\n \"aria-hidden\"?: boolean;\n role?: string;\n tabIndex?: number;\n // Content padding\n contentPadding?: \"s\" | \"m\";\n hasInvertedSubTheme?: boolean;\n maxWidth?: number;\n defaultVerticalPlacement?: TooltipStyle[\"verticalPlacement\"];\n onTooltipPointerEnter?: React.PointerEventHandler<HTMLDivElement>;\n onTooltipPointerLeave?: React.PointerEventHandler<HTMLDivElement>;\n hideArrow?: boolean;\n};\n\nexport type TooltipStyle = {\n top: number;\n left: number;\n horizontalPlacement: \"left\" | \"right\" | \"center\";\n verticalPlacement: \"top\" | \"bottom\";\n};\n\ntype StyledContainerProps = Pick<\n TooltipContentProps,\n \"contentPadding\" | \"maxWidth\" | \"hasInvertedSubTheme\"\n> & {\n horizontalPlacement: TooltipStyle[\"horizontalPlacement\"];\n verticalPlacement: TooltipStyle[\"verticalPlacement\"];\n};\n\nconst ANIMATION_DURATION = 200;\nconst SHOW_HIDE_DELAY = 200;\nconst MAX_CONTENT_WIDTH = 224;\n\nconst StyledContainer = styled.div<StyledContainerProps>(\n ({\n theme,\n horizontalPlacement,\n verticalPlacement,\n maxWidth,\n contentPadding,\n hasInvertedSubTheme = true,\n }) => {\n const animationDistance =\n verticalPlacement === \"top\"\n ? `${ANIMATION_DISTANCE}px`\n : `-${ANIMATION_DISTANCE}px`;\n const animation = keyframes({\n to: {\n opacity: 1,\n transform:\n horizontalPlacement === \"center\"\n ? `translate(-50%, ${animationDistance})`\n : `translateY(${animationDistance})`,\n },\n });\n\n const contentPaddingMap = {\n s: theme.variables.size.spacing.xxs,\n m: theme.variables.size.spacing.s,\n };\n\n const invertedSubThemeStyles = {\n padding: `${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,\n ...(contentPadding && {\n padding: contentPaddingMap[contentPadding],\n }),\n borderRadius: theme.variables.size.borderRadius.xs,\n backgroundColor: theme.values.color.background.primary.default,\n };\n\n return {\n position: \"absolute\",\n zIndex: zIndices.tooltip.value,\n opacity: 0,\n animation: `${ANIMATION_DURATION}ms ease-out forwards ${animation}`,\n maxWidth,\n width: \"max-content\",\n boxSizing: \"border-box\",\n ...(hasInvertedSubTheme && invertedSubThemeStyles),\n ...(horizontalPlacement === \"center\" && {\n transform: \"translate(-50%)\",\n }),\n };\n }\n);\n\ntype StyledArrowProps = {\n verticalPlacement: TooltipStyle[\"verticalPlacement\"];\n horizontalPlacement: TooltipStyle[\"horizontalPlacement\"];\n size?: 0 | typeof ARROW_SIZE | typeof ARROW_SIZE_BIG;\n};\n\nconst StyledArrow = styled.div<StyledArrowProps>(\n ({ theme, verticalPlacement, horizontalPlacement, size = ARROW_SIZE }) => {\n const offset = getArrowOffset(size);\n return {\n position: \"absolute\",\n width: 0,\n height: 0,\n borderLeft: `${size}px solid transparent`,\n borderRight: `${size}px solid transparent`,\n\n ...(verticalPlacement === \"top\" && {\n top: \"100%\",\n borderTop: `${size}px solid ${theme.values.color.background.primary.default}`,\n }),\n\n ...(verticalPlacement === \"bottom\" && {\n top: `-${size}px`,\n borderBottom: `${size}px solid ${theme.values.color.background.primary.default}`,\n }),\n\n ...(horizontalPlacement === \"center\" && {\n left: \"50%\",\n transform: \"translate(-50%)\",\n }),\n\n ...(horizontalPlacement === \"right\" && {\n left: `${offset}px`,\n }),\n\n ...(horizontalPlacement === \"left\" && {\n right: `${offset}px`,\n }),\n };\n }\n);\n\nconst initialStyle: TooltipStyle = {\n top: 0,\n left: 0,\n verticalPlacement: \"top\",\n horizontalPlacement: \"center\",\n};\n\nlet lastTooltipHideTimestamp = 0;\n\n/* Disable animation if time between last close and new open is less than 500ms + SHOW_HIDE_DELAY */\nfunction getAnimationDuration() {\n let animationDuration = `${ANIMATION_DURATION}ms`;\n\n if (lastTooltipHideTimestamp) {\n const timeSinceLastTooltip = Date.now() - lastTooltipHideTimestamp;\n\n if (timeSinceLastTooltip < 500 + SHOW_HIDE_DELAY) {\n animationDuration = \"0ms\";\n }\n }\n return animationDuration;\n}\n\n/** This component is used to display the overlay for both Toggletip and Tooltip components */\nexport function TooltipContent({\n placement = \"auto\",\n content,\n tooltipId,\n triggerRef,\n portalContainer,\n dataE2eTestId,\n dataDSId,\n isVisible,\n \"aria-hidden\": ariaHidden,\n role,\n tabIndex,\n contentPadding,\n maxWidth = MAX_CONTENT_WIDTH,\n hasInvertedSubTheme = true,\n defaultVerticalPlacement,\n onTooltipPointerEnter,\n onTooltipPointerLeave,\n hideArrow = false,\n}: TooltipContentProps): React.ReactElement {\n const [style, setStyle] = useState(initialStyle);\n const tooltipRef = useRef(null);\n const document = useDocument();\n const window = useWindow();\n\n const arrowSize = useMemo(() => {\n if (hideArrow) {\n return 0;\n }\n return hasInvertedSubTheme ? ARROW_SIZE : ARROW_SIZE_BIG;\n }, [hasInvertedSubTheme, hideArrow]);\n\n const calculateStyle = useCallback(() => {\n if (triggerRef.current && tooltipRef.current) {\n // calculate tooltip style\n setStyle(\n getTooltipStyle(\n placement,\n defaultVerticalPlacement,\n triggerRef,\n tooltipRef,\n document,\n window,\n arrowSize\n )\n );\n }\n }, [\n triggerRef,\n tooltipRef,\n document,\n window,\n placement,\n arrowSize,\n defaultVerticalPlacement,\n ]);\n\n // This layout effect to re-render with updated position after determining content width\n useLayoutEffect(() => {\n if (isVisible) {\n calculateStyle();\n }\n }, [isVisible, calculateStyle, contentPadding, content]);\n\n // Re-position tooltip if it moves out of the viewport by 10% and on window resize\n useEffect(() => {\n let observer: IntersectionObserver;\n\n if (\n typeof IntersectionObserver !== \"undefined\" &&\n isVisible &&\n tooltipRef.current\n ) {\n observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(() => {\n calculateStyle();\n });\n },\n {\n threshold: 0.9,\n }\n );\n\n observer.observe(tooltipRef.current);\n window.addEventListener(\"resize\", calculateStyle);\n window.addEventListener(\"scroll\", calculateStyle, true); // use capture here to detect scroll on any parent\n } else if (!isVisible) {\n // log time when tooltip closes\n lastTooltipHideTimestamp = Date.now();\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n window.removeEventListener(\"resize\", calculateStyle);\n window.removeEventListener(\"scroll\", calculateStyle);\n };\n }, [isVisible, calculateStyle, window, tooltipRef]);\n\n if (!isVisible) return null;\n\n const tooltipElm = (\n <StyledContainer\n data-e2e-test-id={dataE2eTestId}\n data-ds-id={dataDSId}\n style={{\n top: style.top,\n left: style.left,\n animationDuration: getAnimationDuration(),\n }}\n ref={tooltipRef}\n id={tooltipId}\n role={role}\n aria-hidden={ariaHidden}\n hasInvertedSubTheme={hasInvertedSubTheme}\n tabIndex={tabIndex}\n horizontalPlacement={style.horizontalPlacement}\n verticalPlacement={style.verticalPlacement}\n maxWidth={maxWidth}\n contentPadding={contentPadding}\n onPointerEnter={onTooltipPointerEnter}\n onPointerLeave={onTooltipPointerLeave}\n >\n {hasInvertedSubTheme ? (\n content\n ) : (\n <Container elevation={3} borderRadius=\"s\">\n {content}\n </Container>\n )}\n {!hideArrow && (\n <StyledArrow\n data-e2e-test-id={`${dataE2eTestId}_arrow`}\n horizontalPlacement={style.horizontalPlacement}\n verticalPlacement={style.verticalPlacement}\n size={arrowSize}\n />\n )}\n </StyledContainer>\n );\n\n const wrapperElm = hasInvertedSubTheme ? (\n <SubThemeProvider name=\"inverted\">{tooltipElm}</SubThemeProvider>\n ) : (\n tooltipElm\n );\n\n return createPortal(wrapperElm, portalContainer || document.body);\n}\n"],"names":["ANIMATION_DURATION","SHOW_HIDE_DELAY","MAX_CONTENT_WIDTH","StyledContainer","_styled","process","env","NODE_ENV","target","label","_ref","theme","horizontalPlacement","verticalPlacement","maxWidth","contentPadding","hasInvertedSubTheme","animationDistance","ANIMATION_DISTANCE","animation","keyframes","to","opacity","transform","contentPaddingMap","s","variables","size","spacing","xxs","m","invertedSubThemeStyles","padding","xs","borderRadius","backgroundColor","values","color","background","primary","default","position","zIndex","zIndices","tooltip","value","width","boxSizing","StyledArrow","_ref2","ARROW_SIZE","offset","getArrowOffset","height","borderLeft","borderRight","top","borderTop","borderBottom","left","right","initialStyle","lastTooltipHideTimestamp","getAnimationDuration","animationDuration","timeSinceLastTooltip","Date","now","TooltipContent","_ref3","placement","content","tooltipId","triggerRef","portalContainer","dataE2eTestId","dataDSId","isVisible","ariaHidden","role","tabIndex","defaultVerticalPlacement","onTooltipPointerEnter","onTooltipPointerLeave","hideArrow","style","setStyle","useState","tooltipRef","useRef","document","useDocument","window","useWindow","arrowSize","useMemo","ARROW_SIZE_BIG","calculateStyle","useCallback","current","getTooltipStyle","useLayoutEffect","useEffect","observer","IntersectionObserver","entries","forEach","threshold","observe","addEventListener","disconnect","removeEventListener","tooltipElm","React","createElement","ref","id","onPointerEnter","onPointerLeave","Container","elevation","wrapperElm","SubThemeProvider","name","createPortal","body"],"mappings":"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"}
|
package/build/esm/src/index.d.ts
CHANGED
package/build/esm/src/index.js
CHANGED
|
@@ -50,6 +50,7 @@ export { TagGroup } from './components/TagGroup/TagGroup.js';
|
|
|
50
50
|
export { Toggletip } from './components/Toggletip/Toggletip.js';
|
|
51
51
|
export { Popover } from './components/Popover/Popover.js';
|
|
52
52
|
export { UserHighlightTooltip } from './components/UserHighlightTooltip/UserHighlightTooltip.js';
|
|
53
|
+
export { Sheet } from './components/Sheet/Sheet.js';
|
|
53
54
|
export { Input } from './components/Form/Input/Input.js';
|
|
54
55
|
export { PasswordInput } from './components/Form/PasswordInput/PasswordInput.js';
|
|
55
56
|
export { BaseDataTable, DataTable } from './components/DataTable/DataTable.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":["import {\n ambossVisualConfiguration,\n VisualConfig,\n} from \"../build-tokens/visualConfig\";\n\nexport type { VisualConfig };\nexport const { dark, light } = ambossVisualConfiguration;\nexport { ThemeProvider, CacheProvider } from \"@emotion/react\";\nexport { default as createCache } from \"@emotion/cache\";\nexport * from \"./components/Card/Card\";\nexport * from \"./components/Card/CardBox\";\nexport * from \"./components/Box/Box\";\nexport * from \"./components/Inline/Inline\";\nexport * from \"./components/Stack/Stack\";\nexport * from \"./components/Typography/Header/Header\";\nexport * from \"./components/Typography/Text/Text\";\nexport * from \"./components/Typography/TextClamped/TextClamped\";\nexport * from \"./components/Typography/StyledText/StyledText\";\nexport * from \"./components/Link/Link\";\nexport * from \"./components/Icon/Icon\";\nexport * from \"./components/Button/Button\";\nexport * from \"./components/Divider/Divider\";\nexport * from \"./components/Column/Columns\";\nexport * from \"./components/Tabs/Tabs\";\nexport * from \"./components/Badge/Badge\";\nexport * from \"./components/SearchResult/SearchResult\";\nexport * from \"./components/Form/ToggleButton/ToggleButton\";\nexport * from \"./components/DropdownMenu/DropdownMenu\";\nexport * from \"./components/Form/FormFieldGroup/FormFieldGroup\";\nexport * from \"./components/Form/Input\";\nexport * from \"./components/Form/Checkbox/Checkbox\";\nexport * from \"./components/Form/Toggle/Toggle\";\nexport * from \"./components/Form/Radio/Radio\";\nexport * from \"./components/Form/RadioButton/RadioButton\";\nexport * from \"./components/Form/Textarea/Textarea\";\nexport * from \"./components/Form/Select/Select\";\nexport * from \"./components/SubThemeProvider/SubThemeProvider\";\nexport * from \"./components/PictogramButton/PictogramButton\";\nexport * from \"./components/MediaViewerBar/MediaViewerBar\";\nexport * from \"./components/SegmentedProgressBar/SegmentedProgressBar\";\nexport * from \"./components/ProgressBar/ProgressBar\";\nexport * from \"./components/Container/Container\";\nexport * from \"./components/Form/PasswordInput\";\nexport * from \"./components/RoundButton/RoundButton\";\nexport * from \"./components/Notification/Notification\";\nexport * from \"./components/Logo/Logo\";\nexport * from \"./components/MediaItem/MediaItem\";\nexport * from \"./components/Callout/Callout\";\nexport * from \"./components/Patterns/Modal/Modal\";\nexport * from \"./components/Patterns/ButtonGroup/ButtonGroup\";\nexport * from \"./components/Collapsible/Collapsible\";\nexport * from \"./components/LoadingSpinner/LoadingSpinner\";\nexport * from \"./components/Pagination/Pagination\";\nexport * from \"./components/DataTable\";\nexport * from \"./components/Form/SegmentedControl/SegmentedControl\";\nexport * from \"./components/Tooltip/Tooltip\";\nexport * from \"./components/Tag/Tag\";\nexport * from \"./components/TagGroup/TagGroup\";\nexport * from \"./components/Toggletip/Toggletip\";\nexport * from \"./components/Popover/Popover\";\nexport * from \"./components/UserHighlightTooltip/UserHighlightTooltip\";\n"],"names":["dark","light","ambossVisualConfiguration"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":["import {\n ambossVisualConfiguration,\n VisualConfig,\n} from \"../build-tokens/visualConfig\";\n\nexport type { VisualConfig };\nexport const { dark, light } = ambossVisualConfiguration;\nexport { ThemeProvider, CacheProvider } from \"@emotion/react\";\nexport { default as createCache } from \"@emotion/cache\";\nexport * from \"./components/Card/Card\";\nexport * from \"./components/Card/CardBox\";\nexport * from \"./components/Box/Box\";\nexport * from \"./components/Inline/Inline\";\nexport * from \"./components/Stack/Stack\";\nexport * from \"./components/Typography/Header/Header\";\nexport * from \"./components/Typography/Text/Text\";\nexport * from \"./components/Typography/TextClamped/TextClamped\";\nexport * from \"./components/Typography/StyledText/StyledText\";\nexport * from \"./components/Link/Link\";\nexport * from \"./components/Icon/Icon\";\nexport * from \"./components/Button/Button\";\nexport * from \"./components/Divider/Divider\";\nexport * from \"./components/Column/Columns\";\nexport * from \"./components/Tabs/Tabs\";\nexport * from \"./components/Badge/Badge\";\nexport * from \"./components/SearchResult/SearchResult\";\nexport * from \"./components/Form/ToggleButton/ToggleButton\";\nexport * from \"./components/DropdownMenu/DropdownMenu\";\nexport * from \"./components/Form/FormFieldGroup/FormFieldGroup\";\nexport * from \"./components/Form/Input\";\nexport * from \"./components/Form/Checkbox/Checkbox\";\nexport * from \"./components/Form/Toggle/Toggle\";\nexport * from \"./components/Form/Radio/Radio\";\nexport * from \"./components/Form/RadioButton/RadioButton\";\nexport * from \"./components/Form/Textarea/Textarea\";\nexport * from \"./components/Form/Select/Select\";\nexport * from \"./components/SubThemeProvider/SubThemeProvider\";\nexport * from \"./components/PictogramButton/PictogramButton\";\nexport * from \"./components/MediaViewerBar/MediaViewerBar\";\nexport * from \"./components/SegmentedProgressBar/SegmentedProgressBar\";\nexport * from \"./components/ProgressBar/ProgressBar\";\nexport * from \"./components/Container/Container\";\nexport * from \"./components/Form/PasswordInput\";\nexport * from \"./components/RoundButton/RoundButton\";\nexport * from \"./components/Notification/Notification\";\nexport * from \"./components/Logo/Logo\";\nexport * from \"./components/MediaItem/MediaItem\";\nexport * from \"./components/Callout/Callout\";\nexport * from \"./components/Patterns/Modal/Modal\";\nexport * from \"./components/Patterns/ButtonGroup/ButtonGroup\";\nexport * from \"./components/Collapsible/Collapsible\";\nexport * from \"./components/LoadingSpinner/LoadingSpinner\";\nexport * from \"./components/Pagination/Pagination\";\nexport * from \"./components/DataTable\";\nexport * from \"./components/Form/SegmentedControl/SegmentedControl\";\nexport * from \"./components/Tooltip/Tooltip\";\nexport * from \"./components/Tag/Tag\";\nexport * from \"./components/TagGroup/TagGroup\";\nexport * from \"./components/Toggletip/Toggletip\";\nexport * from \"./components/Popover/Popover\";\nexport * from \"./components/UserHighlightTooltip/UserHighlightTooltip\";\nexport * from \"./components/Sheet/Sheet\";\n"],"names":["dark","light","ambossVisualConfiguration"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMa,MAAA;EAAEA,IAAI;AAAEC,EAAAA,KAAAA;AAAM,CAAC,GAAGC;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
This wrapper is added to handle onPostDeactivate from react-focus-trap. onPostDeactivate is fired before component unmouns. Often, onDeactivate is used to unmount the component (see BasePopover and Sheet), so we don't want to handle this event again before component unmounts.
|
|
4
|
+
*/
|
|
5
|
+
type FocusTrapWrapperProps = {
|
|
6
|
+
focusTrapOptions: any;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
};
|
|
9
|
+
export declare const FocusTrapWrapper: ({ focusTrapOptions, children, }: FocusTrapWrapperProps) => React.ReactElement;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import FocusTrap from 'focus-trap-react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
This wrapper is added to handle onPostDeactivate from react-focus-trap. onPostDeactivate is fired before component unmouns. Often, onDeactivate is used to unmount the component (see BasePopover and Sheet), so we don't want to handle this event again before component unmounts.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const FocusTrapWrapper = _ref => {
|
|
9
|
+
let {
|
|
10
|
+
focusTrapOptions,
|
|
11
|
+
children
|
|
12
|
+
} = _ref;
|
|
13
|
+
const [isDeactivated, setDeactivated] = useState(false);
|
|
14
|
+
const {
|
|
15
|
+
onPostDeactivate,
|
|
16
|
+
...rest
|
|
17
|
+
} = focusTrapOptions;
|
|
18
|
+
const handleDeactivate = () => {
|
|
19
|
+
setDeactivated(true);
|
|
20
|
+
};
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (isDeactivated) {
|
|
23
|
+
onPostDeactivate();
|
|
24
|
+
}
|
|
25
|
+
}, [isDeactivated, onPostDeactivate]);
|
|
26
|
+
return /*#__PURE__*/React.createElement(FocusTrap, {
|
|
27
|
+
focusTrapOptions: {
|
|
28
|
+
...rest,
|
|
29
|
+
onDeactivate: handleDeactivate
|
|
30
|
+
}
|
|
31
|
+
}, children);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export { FocusTrapWrapper };
|
|
35
|
+
//# sourceMappingURL=FocusTrapWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusTrapWrapper.js","sources":["../../../../src/shared/FocusTrapWrapper.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport FocusTrap from \"focus-trap-react\";\n\n/**\n This wrapper is added to handle onPostDeactivate from react-focus-trap. onPostDeactivate is fired before component unmouns. Often, onDeactivate is used to unmount the component (see BasePopover and Sheet), so we don't want to handle this event again before component unmounts. \n*/\ntype FocusTrapWrapperProps = {\n focusTrapOptions: any;\n children: React.ReactNode;\n};\nexport const FocusTrapWrapper = ({\n focusTrapOptions,\n children,\n}: FocusTrapWrapperProps): React.ReactElement => {\n const [isDeactivated, setDeactivated] = useState(false);\n const { onPostDeactivate, ...rest } = focusTrapOptions;\n\n const handleDeactivate = () => {\n setDeactivated(true);\n };\n\n useEffect(() => {\n if (isDeactivated) {\n onPostDeactivate();\n }\n }, [isDeactivated, onPostDeactivate]);\n\n return (\n <FocusTrap\n focusTrapOptions={{\n ...rest,\n onDeactivate: handleDeactivate,\n }}\n >\n {children}\n </FocusTrap>\n );\n};\n"],"names":["FocusTrapWrapper","_ref","focusTrapOptions","children","isDeactivated","setDeactivated","useState","onPostDeactivate","rest","handleDeactivate","useEffect","React","createElement","FocusTrap","onDeactivate"],"mappings":";;;AAGA;AACA;AACA;;AAKaA,MAAAA,gBAAgB,GAAGC,IAAA,IAGiB;EAAA,IAHhB;IAC/BC,gBAAgB;AAChBC,IAAAA,QAAAA;AACqB,GAAC,GAAAF,IAAA,CAAA;EACtB,MAAM,CAACG,aAAa,EAAEC,cAAc,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EACvD,MAAM;IAAEC,gBAAgB;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAGN,gBAAgB,CAAA;EAEtD,MAAMO,gBAAgB,GAAGA,MAAM;IAC7BJ,cAAc,CAAC,IAAI,CAAC,CAAA;GACrB,CAAA;AAEDK,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIN,aAAa,EAAE;AACjBG,MAAAA,gBAAgB,EAAE,CAAA;AACpB,KAAA;AACF,GAAC,EAAE,CAACH,aAAa,EAAEG,gBAAgB,CAAC,CAAC,CAAA;AAErC,EAAA,oBACEI,KAAA,CAAAC,aAAA,CAACC,SAAS,EAAA;AACRX,IAAAA,gBAAgB,EAAE;AAChB,MAAA,GAAGM,IAAI;AACPM,MAAAA,YAAY,EAAEL,gBAAAA;AAChB,KAAA;AAAE,GAAA,EAEDN,QACQ,CAAC,CAAA;AAEhB;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
export type UseDragDownOptions = {
|
|
3
|
+
ref: RefObject<any>;
|
|
4
|
+
isVisible?: boolean;
|
|
5
|
+
onDragStart: (touchStartY: number) => void;
|
|
6
|
+
onDrag: (touchMoveY: number, offsetFromStart: number) => void;
|
|
7
|
+
onDragEnd: (touchEndY: number, offsetFromStart: number) => void;
|
|
8
|
+
onDragCancel: () => void;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Handle Drag down gesture for mobile web
|
|
12
|
+
*/
|
|
13
|
+
export declare function useDragDown({ ref, isVisible, onDragStart, onDrag, onDragEnd, onDragCancel, }: UseDragDownOptions): void;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Handle Drag down gesture for mobile web
|
|
5
|
+
*/
|
|
6
|
+
function useDragDown(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
ref,
|
|
9
|
+
isVisible = false,
|
|
10
|
+
onDragStart,
|
|
11
|
+
onDrag,
|
|
12
|
+
onDragEnd,
|
|
13
|
+
onDragCancel
|
|
14
|
+
} = _ref;
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
let touchStartY = 0;
|
|
17
|
+
let touchMoveY = 0;
|
|
18
|
+
let touchEndY = 0;
|
|
19
|
+
let dragCancelled = false;
|
|
20
|
+
let elm;
|
|
21
|
+
const cancelDrag = () => {
|
|
22
|
+
dragCancelled = true;
|
|
23
|
+
touchStartY = 0;
|
|
24
|
+
touchMoveY = 0;
|
|
25
|
+
touchEndY = 0;
|
|
26
|
+
onDragCancel();
|
|
27
|
+
};
|
|
28
|
+
const handleTouchStart = evt => {
|
|
29
|
+
evt.stopPropagation();
|
|
30
|
+
touchStartY = evt.changedTouches[0].screenY;
|
|
31
|
+
touchMoveY = touchStartY;
|
|
32
|
+
onDragStart(touchStartY);
|
|
33
|
+
dragCancelled = false;
|
|
34
|
+
};
|
|
35
|
+
const handleTouchEnd = evt => {
|
|
36
|
+
evt.stopPropagation();
|
|
37
|
+
if (!dragCancelled) {
|
|
38
|
+
touchEndY = evt.changedTouches[0].screenY;
|
|
39
|
+
if (touchEndY >= touchMoveY) {
|
|
40
|
+
onDragEnd(touchEndY, touchEndY - touchStartY);
|
|
41
|
+
} else {
|
|
42
|
+
// drag ended in a different direction
|
|
43
|
+
cancelDrag();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const handleTouchMove = evt => {
|
|
48
|
+
evt.stopPropagation();
|
|
49
|
+
if (!dragCancelled) {
|
|
50
|
+
const prevTouchMoveY = touchMoveY;
|
|
51
|
+
touchMoveY = evt.changedTouches[0].screenY;
|
|
52
|
+
if (touchMoveY > prevTouchMoveY) {
|
|
53
|
+
onDrag(touchMoveY, touchMoveY - touchStartY);
|
|
54
|
+
} else {
|
|
55
|
+
// drag ended in a different direction
|
|
56
|
+
cancelDrag();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
if (isVisible && ref.current) {
|
|
61
|
+
elm = ref.current;
|
|
62
|
+
elm.addEventListener("touchstart", handleTouchStart, {
|
|
63
|
+
passive: true
|
|
64
|
+
});
|
|
65
|
+
elm.addEventListener("touchend", handleTouchEnd, {
|
|
66
|
+
passive: true
|
|
67
|
+
});
|
|
68
|
+
elm.addEventListener("touchmove", handleTouchMove, {
|
|
69
|
+
passive: true
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return () => {
|
|
73
|
+
if (elm) {
|
|
74
|
+
elm.removeEventListener("touchstart", handleTouchStart);
|
|
75
|
+
elm.removeEventListener("touchend", handleTouchEnd);
|
|
76
|
+
elm.removeEventListener("touchmove", handleTouchMove);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}, [ref, isVisible, onDragStart, onDragCancel, onDragEnd, onDrag]);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export { useDragDown };
|
|
83
|
+
//# sourceMappingURL=useDragDown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDragDown.js","sources":["../../../../src/shared/useDragDown.ts"],"sourcesContent":["import { RefObject, useEffect } from \"react\";\n\nexport type UseDragDownOptions = {\n /* Ref of the element you want to implement drag on */\n ref: RefObject<any>;\n /* Condition to start listening on touch events */\n isVisible?: boolean;\n /* Called on touch start */\n onDragStart: (touchStartY: number) => void;\n /* Called on touch move, only when move happens vertically downwards, otherwise drag is cancelled */\n onDrag: (touchMoveY: number, offsetFromStart: number) => void;\n /* Called on touch end, only when touch ends vertically downwards, otherwise drag is cancelled */\n onDragEnd: (touchEndY: number, offsetFromStart: number) => void;\n /* Called on touch cancel and on drag cancel */\n onDragCancel: () => void;\n};\n\n/**\n * Handle Drag down gesture for mobile web\n */\nexport function useDragDown({\n ref,\n isVisible = false,\n onDragStart,\n onDrag,\n onDragEnd,\n onDragCancel,\n}: UseDragDownOptions): void {\n useEffect(() => {\n let touchStartY = 0;\n let touchMoveY = 0;\n let touchEndY = 0;\n let dragCancelled = false;\n let elm: HTMLElement;\n\n const cancelDrag = () => {\n dragCancelled = true;\n touchStartY = 0;\n touchMoveY = 0;\n touchEndY = 0;\n onDragCancel();\n };\n\n const handleTouchStart = (evt: TouchEvent) => {\n evt.stopPropagation();\n touchStartY = evt.changedTouches[0].screenY;\n touchMoveY = touchStartY;\n onDragStart(touchStartY);\n dragCancelled = false;\n };\n\n const handleTouchEnd = (evt: TouchEvent) => {\n evt.stopPropagation();\n if (!dragCancelled) {\n touchEndY = evt.changedTouches[0].screenY;\n\n if (touchEndY >= touchMoveY) {\n onDragEnd(touchEndY, touchEndY - touchStartY);\n } else {\n // drag ended in a different direction\n cancelDrag();\n }\n }\n };\n\n const handleTouchMove = (evt: TouchEvent) => {\n evt.stopPropagation();\n if (!dragCancelled) {\n const prevTouchMoveY = touchMoveY;\n\n touchMoveY = evt.changedTouches[0].screenY;\n if (touchMoveY > prevTouchMoveY) {\n onDrag(touchMoveY, touchMoveY - touchStartY);\n } else {\n // drag ended in a different direction\n cancelDrag();\n }\n }\n };\n\n if (isVisible && ref.current) {\n elm = ref.current;\n elm.addEventListener(\"touchstart\", handleTouchStart, { passive: true });\n elm.addEventListener(\"touchend\", handleTouchEnd, { passive: true });\n elm.addEventListener(\"touchmove\", handleTouchMove, { passive: true });\n }\n\n return () => {\n if (elm) {\n elm.removeEventListener(\"touchstart\", handleTouchStart);\n elm.removeEventListener(\"touchend\", handleTouchEnd);\n elm.removeEventListener(\"touchmove\", handleTouchMove);\n }\n };\n }, [ref, isVisible, onDragStart, onDragCancel, onDragEnd, onDrag]);\n}\n"],"names":["useDragDown","_ref","ref","isVisible","onDragStart","onDrag","onDragEnd","onDragCancel","useEffect","touchStartY","touchMoveY","touchEndY","dragCancelled","elm","cancelDrag","handleTouchStart","evt","stopPropagation","changedTouches","screenY","handleTouchEnd","handleTouchMove","prevTouchMoveY","current","addEventListener","passive","removeEventListener"],"mappings":"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"}
|