@amboss/design-system 4.0.5 → 4.0.6

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.
Files changed (93) hide show
  1. package/build/cjs/components/Internal/Drawer/Drawer.d.ts +0 -2
  2. package/build/cjs/components/Internal/Drawer/Drawer.js +8 -8
  3. package/build/cjs/components/Internal/Drawer/useExitAnimation.d.ts +21 -0
  4. package/build/cjs/components/Internal/Drawer/useExitAnimation.js +1 -0
  5. package/build/cjs/components/Internal/LayoutFloat/LayoutFloat.d.ts +14 -0
  6. package/build/cjs/components/Internal/LayoutFloat/LayoutFloat.js +1 -0
  7. package/build/cjs/components/Internal/Panel/Panel.d.ts +15 -2
  8. package/build/cjs/components/Internal/Panel/Panel.js +1 -1
  9. package/build/cjs/components/Internal/Sandwich/Sandwich.d.ts +8 -6
  10. package/build/cjs/components/Internal/Sandwich/Sandwich.js +1 -1
  11. package/build/cjs/components/Internal/Sandwich/SandwichFooter.d.ts +5 -1
  12. package/build/cjs/components/Internal/Sandwich/SandwichFooter.js +1 -1
  13. package/build/cjs/components/Internal/Sandwich/SandwichHeader.d.ts +5 -1
  14. package/build/cjs/components/Internal/Sandwich/SandwichHeader.js +1 -1
  15. package/build/cjs/components/Internal/Sandwich/useSandwichContext.d.ts +10 -1
  16. package/build/cjs/components/Internal/Sandwich/useSandwichContext.js +1 -1
  17. package/build/cjs/components/Layout/-types.d.ts +50 -13
  18. package/build/cjs/components/Layout/Layout.js +1 -1
  19. package/build/cjs/components/Layout/LayoutProvider.js +1 -1
  20. package/build/cjs/components/Layout/LeftPanel/LeftPanel.d.ts +6 -7
  21. package/build/cjs/components/Layout/LeftPanel/LeftPanel.js +1 -1
  22. package/build/cjs/components/Layout/LeftPanel/LeftPanelDocked.d.ts +20 -0
  23. package/build/cjs/components/Layout/LeftPanel/LeftPanelDocked.js +1 -0
  24. package/build/cjs/components/Layout/LeftPanel/LeftPanelDrawer.d.ts +15 -0
  25. package/build/cjs/components/Layout/LeftPanel/LeftPanelDrawer.js +1 -0
  26. package/build/cjs/components/Layout/PanelSlideBody.d.ts +18 -0
  27. package/build/cjs/components/Layout/PanelSlideBody.js +1 -0
  28. package/build/cjs/components/Layout/RightPanel/RightPanel.d.ts +7 -5
  29. package/build/cjs/components/Layout/RightPanel/RightPanel.js +1 -1
  30. package/build/cjs/components/Layout/RightPanel/RightPanelHeader.d.ts +8 -3
  31. package/build/cjs/components/Layout/RightPanel/RightPanelHeader.js +1 -1
  32. package/build/cjs/components/Layout/Split/Split.js +1 -1
  33. package/build/cjs/components/Layout/context.d.ts +14 -1
  34. package/build/cjs/components/Layout/context.js +1 -1
  35. package/build/cjs/components/Layout/registry.d.ts +38 -1
  36. package/build/cjs/components/Layout/registry.js +1 -1
  37. package/build/cjs/components/Layout/useFloatablePortalTargets.d.ts +37 -0
  38. package/build/cjs/components/Layout/useFloatablePortalTargets.js +1 -0
  39. package/build/cjs/components/Layout/usePanelDockedSlide.d.ts +28 -0
  40. package/build/cjs/components/Layout/usePanelDockedSlide.js +1 -0
  41. package/build/cjs/shared/prefersReducedMotion.d.ts +6 -0
  42. package/build/cjs/shared/prefersReducedMotion.js +1 -0
  43. package/build/esm/components/Internal/Drawer/Drawer.d.ts +0 -2
  44. package/build/esm/components/Internal/Drawer/Drawer.js +8 -8
  45. package/build/esm/components/Internal/Drawer/useExitAnimation.d.ts +21 -0
  46. package/build/esm/components/Internal/Drawer/useExitAnimation.js +1 -0
  47. package/build/esm/components/Internal/LayoutFloat/LayoutFloat.d.ts +14 -0
  48. package/build/esm/components/Internal/LayoutFloat/LayoutFloat.js +1 -0
  49. package/build/esm/components/Internal/Panel/Panel.d.ts +15 -2
  50. package/build/esm/components/Internal/Panel/Panel.js +1 -1
  51. package/build/esm/components/Internal/Sandwich/Sandwich.d.ts +8 -6
  52. package/build/esm/components/Internal/Sandwich/Sandwich.js +1 -1
  53. package/build/esm/components/Internal/Sandwich/SandwichFooter.d.ts +5 -1
  54. package/build/esm/components/Internal/Sandwich/SandwichFooter.js +1 -1
  55. package/build/esm/components/Internal/Sandwich/SandwichHeader.d.ts +5 -1
  56. package/build/esm/components/Internal/Sandwich/SandwichHeader.js +1 -1
  57. package/build/esm/components/Internal/Sandwich/useSandwichContext.d.ts +10 -1
  58. package/build/esm/components/Internal/Sandwich/useSandwichContext.js +1 -1
  59. package/build/esm/components/Layout/-types.d.ts +50 -13
  60. package/build/esm/components/Layout/Layout.js +1 -1
  61. package/build/esm/components/Layout/LayoutProvider.js +1 -1
  62. package/build/esm/components/Layout/LeftPanel/LeftPanel.d.ts +6 -7
  63. package/build/esm/components/Layout/LeftPanel/LeftPanel.js +1 -1
  64. package/build/esm/components/Layout/LeftPanel/LeftPanelDocked.d.ts +20 -0
  65. package/build/esm/components/Layout/LeftPanel/LeftPanelDocked.js +1 -0
  66. package/build/esm/components/Layout/LeftPanel/LeftPanelDrawer.d.ts +15 -0
  67. package/build/esm/components/Layout/LeftPanel/LeftPanelDrawer.js +1 -0
  68. package/build/esm/components/Layout/PanelSlideBody.d.ts +18 -0
  69. package/build/esm/components/Layout/PanelSlideBody.js +1 -0
  70. package/build/esm/components/Layout/RightPanel/RightPanel.d.ts +7 -5
  71. package/build/esm/components/Layout/RightPanel/RightPanel.js +1 -1
  72. package/build/esm/components/Layout/RightPanel/RightPanelHeader.d.ts +8 -3
  73. package/build/esm/components/Layout/RightPanel/RightPanelHeader.js +1 -1
  74. package/build/esm/components/Layout/Split/Split.js +1 -1
  75. package/build/esm/components/Layout/context.d.ts +14 -1
  76. package/build/esm/components/Layout/context.js +1 -1
  77. package/build/esm/components/Layout/registry.d.ts +38 -1
  78. package/build/esm/components/Layout/registry.js +1 -1
  79. package/build/esm/components/Layout/useFloatablePortalTargets.d.ts +37 -0
  80. package/build/esm/components/Layout/useFloatablePortalTargets.js +1 -0
  81. package/build/esm/components/Layout/usePanelDockedSlide.d.ts +28 -0
  82. package/build/esm/components/Layout/usePanelDockedSlide.js +1 -0
  83. package/build/esm/shared/prefersReducedMotion.d.ts +6 -0
  84. package/build/esm/shared/prefersReducedMotion.js +1 -0
  85. package/package.json +8 -8
  86. package/build/cjs/components/Internal/Drawer/useDrawerAnimation.d.ts +0 -26
  87. package/build/cjs/components/Internal/Drawer/useDrawerAnimation.js +0 -1
  88. package/build/cjs/components/Layout/usePortalContainerRefs.d.ts +0 -20
  89. package/build/cjs/components/Layout/usePortalContainerRefs.js +0 -1
  90. package/build/esm/components/Internal/Drawer/useDrawerAnimation.d.ts +0 -26
  91. package/build/esm/components/Internal/Drawer/useDrawerAnimation.js +0 -1
  92. package/build/esm/components/Layout/usePortalContainerRefs.d.ts +0 -20
  93. package/build/esm/components/Layout/usePortalContainerRefs.js +0 -1
@@ -3,8 +3,13 @@ import type { RightPanelHeaderProps } from "../-types";
3
3
  /**
4
4
  * Optional sticky header for `Layout.RightPanel` - place it among the
5
5
  * panel's children; it sticks to the top while the rest of the content
6
- * scrolls. Renders the `title` block after `leftSlot` and always renders a
7
- * close button at the header end (after `rightSlot`) that hides the panel via
8
- * the layout state.
6
+ * scrolls. Renders the `title` block after `leftSlot` and buttons at the
7
+ * header end (after `rightSlot`): a variant toggle that minimizes the panel
8
+ * into the floating window / docks it back, and a close button that hides the
9
+ * panel via the layout state. The header travels with the panel content into
10
+ * the floating window, so the same toggle serves both directions. On mobile
11
+ * viewports the panel renders as a bottom sheet where dock/float has no
12
+ * meaning and the sheet brings its own dismiss affordances (drag handle,
13
+ * backdrop), so both built-in buttons are omitted there.
9
14
  */
10
15
  export declare function RightPanelHeader({ leftSlot, rightSlot, title, slotProps, "data-e2e-test-id": dataE2eTestId, }: RightPanelHeaderProps): React.ReactElement;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanelHeader",{enumerable:!0,get:function(){return RightPanelHeader}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_constants=require("../-constants"),_useLayout=require("../useLayout"),_Sandwich=require("../../Internal/Sandwich/Sandwich"),_PanelHeader=require("../../Internal/PanelHeader/PanelHeader"),_PictogramButton=require("../../PictogramButton/PictogramButton");function RightPanelHeader({leftSlot,rightSlot,title,slotProps,"data-e2e-test-id":dataE2eTestId}){let{hide}=(0,_useLayout.useLayout)()[_constants.Slot.rightPanel];return _react.default.createElement(_Sandwich.Sandwich.Header,{"data-e2e-test-id":dataE2eTestId},_react.default.createElement(_PanelHeader.PanelHeader,{leftSlot:leftSlot,title:title,rightSlot:_react.default.createElement(_react.default.Fragment,null,rightSlot,_react.default.createElement(_PictogramButton.PictogramButton,{icon:"x",size:"s",variant:"tertiary","aria-label":slotProps.closeButton["aria-label"],onClick:hide}))}))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanelHeader",{enumerable:!0,get:function(){return RightPanelHeader}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_constants=require("../-constants"),_useLayout=require("../useLayout"),_useBreakpoints=require("../../../shared/useBreakpoints"),_Sandwich=require("../../Internal/Sandwich/Sandwich"),_PanelHeader=require("../../Internal/PanelHeader/PanelHeader"),_PictogramButton=require("../../PictogramButton/PictogramButton");function RightPanelHeader({leftSlot,rightSlot,title,slotProps,"data-e2e-test-id":dataE2eTestId}){let{hide,setVariant,state}=(0,_useLayout.useLayout)()[_constants.Slot.rightPanel],{isMobile}=(0,_useBreakpoints.useBreakpoints)(),isFloating="float"===state.variant;return _react.default.createElement(_Sandwich.Sandwich.Header,{"data-e2e-test-id":dataE2eTestId},_react.default.createElement(_PanelHeader.PanelHeader,{leftSlot:leftSlot,title:title,rightSlot:_react.default.createElement(_react.default.Fragment,null,rightSlot,!isMobile&&_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_PictogramButton.PictogramButton,{icon:isFloating?"open-sidebar-right":"minimize",size:"s",variant:"tertiary","aria-label":isFloating?slotProps.variantButton.dockLabel:slotProps.variantButton.minimizeLabel,onClick:()=>setVariant(isFloating?"sidebar":"float")}),_react.default.createElement(_PictogramButton.PictogramButton,{icon:"x",size:"s",variant:"tertiary","aria-label":slotProps.closeButton["aria-label"],onClick:hide})))}))}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Split",{enumerable:!0,get:function(){return Split}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_constants=require("../-constants"),_registry=require("../registry"),_useLayout=require("../useLayout"),_PanelContainer=require("../PanelContainer"),Split=({children,"aria-label":ariaLabel,defaultSize,minSize,maxSize})=>{let{isVisible}=(0,_useLayout.useLayout)()[_constants.Slot.splitview];return(0,_registry.useDeclarePanel)(_constants.Slot.splitview,{defaultSize,minSize,maxSize,collapsible:!0}),(0,_registry.useLayoutPortal)(_constants.Slot.splitview,isVisible?_react.default.createElement(_PanelContainer.PanelContainer,{"aria-label":ariaLabel,showBorderLeft:!0},children):null)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Split",{enumerable:!0,get:function(){return Split}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_constants=require("../-constants"),_registry=require("../registry"),_useLayout=require("../useLayout"),_context=require("../context"),_PanelContainer=require("../PanelContainer"),Split=({children,"aria-label":ariaLabel,defaultSize,minSize,maxSize})=>{let{isVisible}=(0,_useLayout.useLayout)()[_constants.Slot.splitview],panelsEnabled=(0,_context.useLayoutPanelsEnabled)();return(0,_registry.useDeclarePanel)(_constants.Slot.splitview,{defaultSize,minSize,maxSize,collapsible:!0}),(0,_registry.useLayoutPortal)(_constants.Slot.splitview,!0===panelsEnabled&&isVisible?_react.default.createElement(_PanelContainer.PanelContainer,{"aria-label":ariaLabel,showBorderLeft:!0},children):null)};
@@ -1,7 +1,20 @@
1
- import type { LayoutState, LayoutStorage, LayoutStore } from "./-types";
1
+ import type { LayoutPanelsMode, LayoutState, LayoutStorage, LayoutStore } from "./-types";
2
2
  export declare const LayoutStoreProvider: React.Provider<LayoutStore>;
3
3
  /** Get the store from context, or throw if used outside the provider. */
4
4
  export declare function useLayoutStore(): LayoutStore;
5
+ export declare const LayoutPanelsEnabledProvider: React.Provider<LayoutPanelsMode>;
6
+ /** The panels mode from the nearest `Layout.Provider`'s
7
+ * `config.enablePanels`; `false` when unset. */
8
+ export declare function useLayoutPanelsEnabled(): LayoutPanelsMode;
9
+ /** TEMPORARY - part of the `enablePanels` kill switch for the staged panels
10
+ * rollout; remove (together with `LayoutPanelsMode`) once panels are enabled
11
+ * everywhere.
12
+ *
13
+ * Whether the calling panel marker may render for the current viewport:
14
+ * mode `true` always allows; `"mobile"` allows only below the mobile
15
+ * breakpoint (the overlay presentations - drawer/sheet - which never mount
16
+ * the resizable row); `false` never allows. */
17
+ export declare function useCanRenderPanel(): boolean;
5
18
  /**
6
19
  * Persistence config for the layout namespace. Set on `Layout.Provider` (single
7
20
  * external surface) and read by the nested `<Layout>`. The Provider only
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get LayoutPersistenceProvider(){return LayoutPersistenceProvider},get LayoutStoreProvider(){return LayoutStoreProvider},get useLayoutPersistence(){return useLayoutPersistence},get useLayoutSelector(){return useLayoutSelector},get useLayoutStore(){return useLayoutStore}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _react=require("react"),LayoutStoreContext=(0,_react.createContext)(null),LayoutStoreProvider=LayoutStoreContext.Provider;function useLayoutStore(){let store=(0,_react.useContext)(LayoutStoreContext);if(!store)throw Error("useLayout must be used within a <LayoutProvider>.");return store}const LayoutPersistenceContext=(0,_react.createContext)({}),LayoutPersistenceProvider=LayoutPersistenceContext.Provider;function useLayoutPersistence(){return(0,_react.useContext)(LayoutPersistenceContext)}function useLayoutSelector(selector){let store=useLayoutStore(),getSnapshot=()=>selector(store.getState());return(0,_react.useSyncExternalStore)(store.subscribe,getSnapshot,getSnapshot)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get LayoutPanelsEnabledProvider(){return LayoutPanelsEnabledProvider},get LayoutPersistenceProvider(){return LayoutPersistenceProvider},get LayoutStoreProvider(){return LayoutStoreProvider},get useCanRenderPanel(){return useCanRenderPanel},get useLayoutPanelsEnabled(){return useLayoutPanelsEnabled},get useLayoutPersistence(){return useLayoutPersistence},get useLayoutSelector(){return useLayoutSelector},get useLayoutStore(){return useLayoutStore}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _react=require("react"),_useBreakpoints=require("../../shared/useBreakpoints"),LayoutStoreContext=(0,_react.createContext)(null),LayoutStoreProvider=LayoutStoreContext.Provider;function useLayoutStore(){let store=(0,_react.useContext)(LayoutStoreContext);if(!store)throw Error("useLayout must be used within a <LayoutProvider>.");return store}const LayoutPanelsEnabledContext=(0,_react.createContext)(!1),LayoutPanelsEnabledProvider=LayoutPanelsEnabledContext.Provider;function useLayoutPanelsEnabled(){return(0,_react.useContext)(LayoutPanelsEnabledContext)}function useCanRenderPanel(){let mode=useLayoutPanelsEnabled(),{isMobile}=(0,_useBreakpoints.useBreakpoints)();return!0===mode||"mobile"===mode&&isMobile}const LayoutPersistenceContext=(0,_react.createContext)({}),LayoutPersistenceProvider=LayoutPersistenceContext.Provider;function useLayoutPersistence(){return(0,_react.useContext)(LayoutPersistenceContext)}function useLayoutSelector(selector){let store=useLayoutStore(),getSnapshot=()=>selector(store.getState());return(0,_react.useSyncExternalStore)(store.subscribe,getSnapshot,getSnapshot)}
@@ -1,6 +1,7 @@
1
1
  import { type ReactNode } from "react";
2
+ import type { PanelImperativeHandle } from "react-resizable-panels";
2
3
  import type { Size, SlotKey } from "./-types";
3
- export type HostNodes = Partial<Record<SlotKey, HTMLElement | null>>;
4
+ export type PortalTargets = Partial<Record<SlotKey, HTMLElement | null>>;
4
5
  export declare const LayoutPortalContext: React.Context<Partial<Record<"content" | "leftPanel" | "splitview" | "rightPanel", HTMLElement>>>;
5
6
  /**
6
7
  * Portal `children` into the host DOM node registered for `slot`. Returns the
@@ -27,5 +28,41 @@ export type PanelRegistry = {
27
28
  export declare const PanelRegistryContext: React.Context<PanelRegistry>;
28
29
  /** Register this slot as a panel for the marker's lifetime. */
29
30
  export declare function useDeclarePanel(slot: SlotKey, reg: PanelReg): void;
31
+ /**
32
+ * Keeps an animating-out panel in the resizable row while its exit plays - the
33
+ * Group would otherwise drop the column the instant it's hidden. The panel
34
+ * reports its live presence (mounted incl. mid-exit); the Layout keeps any
35
+ * present slot in the row until presence flips false.
36
+ */
37
+ export type PanelPresence = {
38
+ setPresent: (slot: SlotKey, isPresent: boolean) => void;
39
+ };
40
+ export declare const PanelPresenceContext: React.Context<PanelPresence>;
41
+ /** Report this slot's live presence so the Layout keeps its column mounted
42
+ * through the exit animation. No-op outside a Layout. */
43
+ export declare function usePanelPresence(slot: SlotKey, isPresent: boolean): void;
44
+ /**
45
+ * Lets a sliding side panel reach its column's `react-resizable-panels`
46
+ * imperative handle and DOM element, and mute the Group's layout callbacks
47
+ * mid-slide - the 0-width start of an open would otherwise be read as a
48
+ * drag-to-collapse, and mid-slide sizes would be persisted.
49
+ */
50
+ export type PanelAnimationControl = {
51
+ /** Register/clear the RRP handle for a slot's column (wired by the Group). */
52
+ setHandle: (slot: SlotKey, handle: PanelImperativeHandle | null) => void;
53
+ /** Read a slot's current RRP handle (null until its column has mounted). */
54
+ getHandle: (slot: SlotKey) => PanelImperativeHandle | null;
55
+ /** Register/clear the DOM element for a slot's column (wired by the Group). */
56
+ setElement: (slot: SlotKey, element: HTMLElement | null) => void;
57
+ /** Read a slot's column element (null until its column has mounted). */
58
+ getElement: (slot: SlotKey) => HTMLElement | null;
59
+ /** Mute the Group's resize/collapse/persist callbacks for a slot mid-slide. */
60
+ setResizeSuppressed: (slot: SlotKey, suppressed: boolean) => void;
61
+ };
62
+ export declare const PanelAnimationContext: React.Context<PanelAnimationControl>;
63
+ /** Access the Layout's panel-animation control. Null outside a Layout. */
64
+ export declare function usePanelAnimationControl(): PanelAnimationControl | null;
65
+ /** Run `onChange(value)` when `value` transitions (not on initial mount). */
66
+ export declare function useRunCallbackOnValueChange<T>(value: T, onChange?: (value: T) => void): void;
30
67
  /** Fire `onChange(visible)` when `visible` transitions (not on initial mount). */
31
68
  export declare function useVisibleChange(visible: boolean, onChange?: (visible: boolean) => void): void;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get LayoutPortalContext(){return LayoutPortalContext},get PanelRegistryContext(){return PanelRegistryContext},get useDeclarePanel(){return useDeclarePanel},get useLayoutPortal(){return useLayoutPortal},get useVisibleChange(){return useVisibleChange}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _react=require("react"),_reactdom=require("react-dom"),LayoutPortalContext=(0,_react.createContext)({});function useLayoutPortal(slot,children){let slotNode=(0,_react.useContext)(LayoutPortalContext)[slot]??null;return slotNode?(0,_reactdom.createPortal)(children,slotNode):null}const PanelRegistryContext=(0,_react.createContext)(null);function useDeclarePanel(slot,reg){let registry=(0,_react.useContext)(PanelRegistryContext),{defaultSize,minSize,maxSize,collapsible}=reg;(0,_react.useLayoutEffect)(()=>{if(registry)return registry.register(slot,{defaultSize,minSize,maxSize,collapsible}),()=>registry.unregister(slot)},[registry,slot,defaultSize,minSize,maxSize,collapsible])}function useVisibleChange(visible,onChange){let prev=(0,_react.useRef)(visible);(0,_react.useEffect)(()=>{prev.current!==visible&&(prev.current=visible,onChange?.(visible))},[visible,onChange])}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get LayoutPortalContext(){return LayoutPortalContext},get PanelAnimationContext(){return PanelAnimationContext},get PanelPresenceContext(){return PanelPresenceContext},get PanelRegistryContext(){return PanelRegistryContext},get useDeclarePanel(){return useDeclarePanel},get useLayoutPortal(){return useLayoutPortal},get usePanelAnimationControl(){return usePanelAnimationControl},get usePanelPresence(){return usePanelPresence},get useRunCallbackOnValueChange(){return useRunCallbackOnValueChange},get useVisibleChange(){return useVisibleChange}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _react=require("react"),_reactdom=require("react-dom"),_constants=require("./-constants"),_context=require("./context"),LayoutPortalContext=(0,_react.createContext)({});function useLayoutPortal(slot,children){let slotNode=(0,_react.useContext)(LayoutPortalContext)[slot]??null;return slotNode?(0,_reactdom.createPortal)(children,slotNode):null}const PanelRegistryContext=(0,_react.createContext)(null);function useDeclarePanel(slot,reg){let registry=(0,_react.useContext)(PanelRegistryContext),declarationEnabled=!0===(0,_context.useLayoutPanelsEnabled)()||slot===_constants.Slot.content,{defaultSize,minSize,maxSize,collapsible}=reg;(0,_react.useLayoutEffect)(()=>{if(registry&&declarationEnabled)return registry.register(slot,{defaultSize,minSize,maxSize,collapsible}),()=>registry.unregister(slot)},[registry,declarationEnabled,slot,defaultSize,minSize,maxSize,collapsible])}const PanelPresenceContext=(0,_react.createContext)(null);function usePanelPresence(slot,isPresent){let presence=(0,_react.useContext)(PanelPresenceContext);(0,_react.useLayoutEffect)(()=>{if(presence)return presence.setPresent(slot,isPresent),()=>presence.setPresent(slot,!1)},[presence,slot,isPresent])}const PanelAnimationContext=(0,_react.createContext)(null);function usePanelAnimationControl(){return(0,_react.useContext)(PanelAnimationContext)}function useRunCallbackOnValueChange(value,onChange){let prev=(0,_react.useRef)(value);(0,_react.useEffect)(()=>{prev.current!==value&&(prev.current=value,onChange?.(value))},[value,onChange])}function useVisibleChange(visible,onChange){useRunCallbackOnValueChange(visible,onChange)}
@@ -0,0 +1,37 @@
1
+ import type { PortalTargets } from "./registry";
2
+ import type { SlotKey } from "./-types";
3
+ /**
4
+ * Portal-target wiring for the Layout, including the one slot that can float.
5
+ *
6
+ * The vocabulary:
7
+ * - **slot host** - the `<div>` a panel occupies in the docked row (one per
8
+ * shown slot, captured via ref).
9
+ * - **float host** - the `<div>` inside the floating window's shell.
10
+ * - **carrier** - a persistent `<div>` that carries the floatable slot's
11
+ * children, physically reparented between its slot host (docked) and the
12
+ * float host (floating).
13
+ * - **portal target** - what a marker portals its content into. For normal
14
+ * slots the target IS the slot host; for the floatable slot it is the
15
+ * carrier, whose identity never changes - so the panel's children keep
16
+ * their state across dock ↔ float instead of remounting.
17
+ */
18
+ type FloatablePortalTargetsArgs = {
19
+ /** All slots, in row order. */
20
+ slots: readonly SlotKey[];
21
+ /** The single slot whose content may move into the floating window. */
22
+ floatableSlot: SlotKey;
23
+ /** Whether the floatable slot is currently floating. */
24
+ isFloating: boolean;
25
+ };
26
+ type FloatablePortalTargetsResult = {
27
+ /** Per-slot portal targets - what markers portal content into. */
28
+ portalTargets: PortalTargets;
29
+ /** The docked-row host elements, keyed by slot (for width observers etc.). */
30
+ slotHosts: PortalTargets;
31
+ /** Stable ref callbacks - attach one to each slot's docked host `<div>`. */
32
+ slotHostRefs: Record<SlotKey, (el: HTMLElement | null) => void>;
33
+ /** Ref callback for the floating window's content host `<div>`. */
34
+ floatHostRef: (el: HTMLElement | null) => void;
35
+ };
36
+ export declare const useFloatablePortalTargets: ({ slots, floatableSlot, isFloating, }: FloatablePortalTargetsArgs) => FloatablePortalTargetsResult;
37
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"useFloatablePortalTargets",{enumerable:!0,get:function(){return useFloatablePortalTargets}});const _react=require("react"),_useDocument=require("../../shared/useDocument"),usePortalContainerRefs=keys=>{let[elements,setElements]=(0,_react.useState)({});return[elements,(0,_react.useMemo)(()=>{let map={};return keys.forEach(key=>{map[key]=el=>setElements(prev=>prev[key]===el?prev:{...prev,[key]:el})}),map},[keys])]},useReparentingPortalNode=hostNode=>{let document=(0,_useDocument.useDocument)(),[portalNode]=(0,_react.useState)(()=>{if(!document)return null;let node=document.createElement("div");return node.style.height="100%",node.style.width="100%",node.style.position="relative",node});return(0,_react.useLayoutEffect)(()=>{portalNode&&hostNode&&portalNode.parentElement!==hostNode&&hostNode.appendChild(portalNode)},[portalNode,hostNode]),portalNode},useFloatablePortalTargets=({slots,floatableSlot,isFloating})=>{let[slotHosts,slotHostRefs]=usePortalContainerRefs(slots),[floatHost,setFloatHost]=(0,_react.useState)(null),carrier=useReparentingPortalNode(isFloating?floatHost:slotHosts[floatableSlot]??null);return{portalTargets:(0,_react.useMemo)(()=>carrier?{...slotHosts,[floatableSlot]:carrier}:slotHosts,[slotHosts,floatableSlot,carrier]),slotHosts,slotHostRefs,floatHostRef:setFloatHost}};
@@ -0,0 +1,28 @@
1
+ import type { SidePanelKey } from "./-constants";
2
+ import type { Size } from "./-types";
3
+ export type PanelDockedSlideOptions = {
4
+ /** Which side-panel slot this animates. */
5
+ slot: SidePanelKey;
6
+ defaultSize?: Size;
7
+ minSize?: Size;
8
+ maxSize?: Size;
9
+ collapsible: boolean;
10
+ };
11
+ export type PanelDockedSlide = {
12
+ /** Whether the panel's content should render at all (entering, open, or
13
+ * mid-exit). Kept true through the close so the exit slide can play. */
14
+ isMounted: boolean;
15
+ /** Body width (px) while the column slides; `null` at rest, where the body
16
+ * fills the column and the panel stays resizable. */
17
+ pinnedWidth: number | null;
18
+ };
19
+ /**
20
+ * Animates a docked side panel's open/close as a width slide on its
21
+ * `react-resizable-panels` column, pushing neighbouring content smoothly
22
+ * instead of snapping. Slot-generic - works for either side panel; render the
23
+ * returned state with {@link PanelSlideBody}. Falls back to an instant
24
+ * open/close when the panel isn't collapsible, no handle is available, or
25
+ * reduced motion is requested. The mobile modal-drawer lifecycle lives in
26
+ * {@link useExitAnimation} and the Drawer's styled components.
27
+ */
28
+ export declare function usePanelDockedSlide({ slot, defaultSize, minSize, maxSize, collapsible, }: PanelDockedSlideOptions): PanelDockedSlide;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"usePanelDockedSlide",{enumerable:!0,get:function(){return usePanelDockedSlide}});const _react=require("react"),_react1=require("@emotion/react"),_useWindow=require("../../shared/useWindow"),_prefersReducedMotion=require("../../shared/prefersReducedMotion"),_registry=require("./registry"),_useLayout=require("./useLayout"),parseDurationMs=duration=>{let trimmed=duration.trim();return trimmed.endsWith("ms")?parseFloat(trimmed):trimmed.endsWith("s")?1e3*parseFloat(trimmed):parseFloat(trimmed)||0},resolveSizePx=(size,groupWidthPx)=>{if("number"==typeof size)return size;if("string"!=typeof size)return null;let parsed=parseFloat(size);return Number.isFinite(parsed)?size.trim().endsWith("px")?parsed:null!=groupWidthPx?parsed/100*groupWidthPx:null:null},groupColumnsOf=element=>{let columns=element.closest("[data-group]")?.querySelectorAll("[data-panel]");return columns?Array.from(columns):[element]},isHandleReady=handle=>{try{return handle.isCollapsed(),!0}catch{return!1}};function usePanelDockedSlide({slot,defaultSize,minSize,maxSize,collapsible}){let{isVisible,state}=(0,_useLayout.useLayout)()[slot],theme=(0,_react1.useTheme)(),window=(0,_useWindow.useWindow)(),animation=(0,_registry.usePanelAnimationControl)(),reducedMotion=(0,_prefersReducedMotion.prefersReducedMotion)(window),[isMounted,setIsMounted]=(0,_react.useState)(isVisible),[phase,setPhase]=(0,_react.useState)("idle"),[pinnedWidth,setPinnedWidth]=(0,_react.useState)(null),[prevVisible,setPrevVisible]=(0,_react.useState)(isVisible);return isVisible!==prevVisible&&(setPrevVisible(isVisible),setPhase(isVisible?"entering":"exiting"),isVisible&&setIsMounted(!0)),(0,_registry.useDeclarePanel)(slot,{defaultSize:"entering"===phase&&collapsible&&!reducedMotion?0:defaultSize,minSize,maxSize,collapsible}),(0,_registry.usePanelPresence)(slot,isMounted),(0,_react.useLayoutEffect)(()=>{if("idle"===phase)return;let cancelled=!1,frame=0,settleTimer=0,animatedColumns=[];animation?.setResizeSuppressed(slot,!0);let{duration,timingFunction}=theme.variables.animation.navSlide.open,durationMs=parseDurationMs(duration),setColumnTransitions=enabled=>{animatedColumns.forEach(column=>{enabled?column.style.setProperty("transition",`flex-grow ${duration} ${timingFunction}`):column.style.removeProperty("transition")})},targetSize=state.size??defaultSize??minSize,openColumn=(handle,targetPx)=>{handle.isCollapsed()&&handle.expand(),handle.resize(targetPx??targetSize??minSize??"20%")},settle=handle=>{if(setColumnTransitions(!1),animation?.setResizeSuppressed(slot,!1),"entering"===phase&&handle)try{handle.getSize().inPixels<1&&openColumn(handle,null)}catch{}setPinnedWidth(null),"exiting"===phase&&setIsMounted(!1),setPhase("idle")},runSlide=(handle,element)=>{animatedColumns=groupColumnsOf(element);let targetPx=resolveSizePx(targetSize,element.closest("[data-group]")?.getBoundingClientRect().width??null);setPinnedWidth("entering"===phase?targetPx:handle.getSize().inPixels),setColumnTransitions(!0),element.getBoundingClientRect();try{"entering"===phase?openColumn(handle,targetPx):handle.collapse()}catch{settle(handle);return}settleTimer=window.setTimeout(()=>settle(handle),durationMs+80)},waitForColumn=attempt=>{if(cancelled)return;let handle=animation?.getHandle(slot)??null,element=animation?.getElement(slot)??null;return handle&&element&&isHandleReady(handle)?void runSlide(handle,element):"exiting"===phase||!animation||attempt>=30?void settle(handle):void(frame=window.requestAnimationFrame(()=>waitForColumn(attempt+1)))};return!collapsible||reducedMotion?settle(animation?.getHandle(slot)??null):waitForColumn(0),()=>{cancelled=!0,window.cancelAnimationFrame(frame),window.clearTimeout(settleTimer),setColumnTransitions(!1),animation?.setResizeSuppressed(slot,!1)}},[phase,slot,collapsible,animation,window,theme]),{isMounted,pinnedWidth}}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Whether the user has requested reduced motion. Animations should skip to
3
+ * their end state when this is true. Pass the `window` from `useWindow()` rather
4
+ * than the global. Returns `false` when `matchMedia` is unavailable (e.g. jsdom).
5
+ */
6
+ export declare const prefersReducedMotion: (window: Window) => boolean;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"prefersReducedMotion",{enumerable:!0,get:function(){return prefersReducedMotion}});const prefersReducedMotion=window=>!!window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches;
@@ -1,8 +1,6 @@
1
1
  import React, { type PropsWithChildren, type RefObject } from "react";
2
2
  import { type PortalProps } from "../../Portal/Portal";
3
3
  import type { ViewportPosition } from "../../Utilities/FloatingPosition/useFloatingPosition";
4
- export type EdgeX = "left" | "right";
5
- export type EdgeY = "top" | "bottom";
6
4
  export type DrawerProps = React.HTMLAttributes<HTMLDivElement> & {
7
5
  children?: React.ReactNode[] | React.ReactNode;
8
6
  /**
@@ -1,13 +1,13 @@
1
- import React,{useCallback,useRef}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useOutsideClickDeactivatesWithinPortal}from"../../../shared/useOutsideClickDeactivatesWithinPortal";import{useDocument}from"../../../shared/useDocument";import{FOCUSABLE_SELECTOR}from"../../../shared/focusableSelector";import{Portal,usePortalContainerElement}from"../../Portal/Portal";import{FocusTrapWrapper}from"../../../shared/FocusTrapWrapper";import{DialogContext}from"../../Patterns/Dialog/DialogContext";import{Backdrop}from"../../Utilities/Backdrop/Backdrop";import{useDrawerAnimation}from"./useDrawerAnimation";let StyledViewportLayer=styled("div",{target:"esvcvpn0",label:"StyledViewportLayer"})(({theme,isLeaving})=>{let{hidden,visible}=theme.variables.opacity,fadeIn=keyframes`
1
+ import React,{useCallback,useEffect,useRef}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useOutsideClickDeactivatesWithinPortal}from"../../../shared/useOutsideClickDeactivatesWithinPortal";import{useDocument}from"../../../shared/useDocument";import{FOCUSABLE_SELECTOR}from"../../../shared/focusableSelector";import{Portal,usePortalContainerElement}from"../../Portal/Portal";import{FocusTrapWrapper}from"../../../shared/FocusTrapWrapper";import{DialogContext}from"../../Patterns/Dialog/DialogContext";import{Backdrop}from"../../Utilities/Backdrop/Backdrop";import{useExitAnimation}from"./useExitAnimation";let StyledViewportLayer=styled("div",{target:"e11o9pe90",label:"StyledViewportLayer"})(({theme,isLeaving})=>{let{hidden,visible}=theme.variables.opacity,fadeIn=keyframes`
2
2
  from { opacity: ${hidden}; }
3
3
  to { opacity: ${visible}; }
4
4
  `,fadeOut=keyframes`
5
5
  from { opacity: ${visible}; }
6
6
  to { opacity: ${hidden}; }
7
- `,{duration,timingFunction}=theme.variables.animation.modalBackdrop.open;return{position:"fixed",top:0,left:0,zIndex:theme.variables.zIndex.modal,width:"100%",height:"100dvh",animation:`${isLeaving?fadeOut:fadeIn} ${duration} ${timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvRHJhd2VyL0RyYXdlci50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0ludGVybmFsL0RyYXdlci9EcmF3ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1wcm9wcy1uby1zcHJlYWRpbmcgKi9cbmltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlUmVmLFxuICB0eXBlIE11dGFibGVSZWZPYmplY3QsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHR5cGUgUmVmT2JqZWN0LFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzLCB0eXBlIENTU09iamVjdCB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja0RlYWN0aXZhdGVzV2l0aGluUG9ydGFsXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IEZPQ1VTQUJMRV9TRUxFQ1RPUiB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvZm9jdXNhYmxlU2VsZWN0b3JcIjtcbmltcG9ydCB7XG4gIFBvcnRhbCxcbiAgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IEZvY3VzVHJhcFdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL0ZvY3VzVHJhcFdyYXBwZXJcIjtcbmltcG9ydCB7IERpYWxvZ0NvbnRleHQgfSBmcm9tIFwiLi4vLi4vUGF0dGVybnMvRGlhbG9nL0RpYWxvZ0NvbnRleHRcIjtcbmltcG9ydCB7IEJhY2tkcm9wIH0gZnJvbSBcIi4uLy4uL1V0aWxpdGllcy9CYWNrZHJvcC9CYWNrZHJvcFwiO1xuaW1wb3J0IHR5cGUgeyBWaWV3cG9ydFBvc2l0aW9uIH0gZnJvbSBcIi4uLy4uL1V0aWxpdGllcy9GbG9hdGluZ1Bvc2l0aW9uL3VzZUZsb2F0aW5nUG9zaXRpb25cIjtcbmltcG9ydCB7IHVzZURyYXdlckFuaW1hdGlvbiB9IGZyb20gXCIuL3VzZURyYXdlckFuaW1hdGlvblwiO1xuXG5leHBvcnQgdHlwZSBFZGdlWCA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuZXhwb3J0IHR5cGUgRWRnZVkgPSBcInRvcFwiIHwgXCJib3R0b21cIjtcblxuZXhwb3J0IHR5cGUgRHJhd2VyUHJvcHMgPSBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4gJiB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBDb250cm9scyB2aXNpYmlsaXR5LiBUb2dnbGluZyBgZmFsc2VgIHBsYXlzIHRoZSBleGl0IGFuaW1hdGlvbiwgdGhlblxuICAgKiB1bm1vdW50cyAoZmlyaW5nIGBvblVubW91bnRgKS4gS2VlcCB0aGUgRHJhd2VyIG1vdW50ZWQgYW5kIGRyaXZlIHRoaXMgcmF0aGVyXG4gICAqIHRoYW4gY29uZGl0aW9uYWxseSByZW5kZXJpbmcgaXQuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIC8qKiBDYWxsZWQgYWZ0ZXIgdGhlIGV4aXQgYW5pbWF0aW9uIGNvbXBsZXRlcyBhbmQgdGhlIGRyYXdlciBpcyByZW1vdmVkLiAqL1xuICBvblVubW91bnQ/OiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZDtcbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgZGltbWluZyBiYWNrZHJvcCBiZWhpbmQgdGhlIGNvbnRlbnQuIERlZmF1bHQgYHRydWVgLlxuICAgKi9cbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xuICAvKipcbiAgICogQSByZWYgdG8gdGhlIGVsZW1lbnQgdGhhdCBzaG91bGQgcmVjZWl2ZSBmb2N1cyB3aGVuIHRoZSBkcmF3ZXIgb3BlbnMuXG4gICAqIFdoZW4gbm90IHByb3ZpZGVkLCB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIHRoZSBkcmF3ZXIgaXMgdXNlZC5cbiAgICovXG4gIGluaXRpYWxGb2N1cz86IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+IHwgc3RyaW5nO1xuICBwcml2YXRlUHJvcHM/OiB7XG4gICAgc2tpcFBvcnRhbD86IGJvb2xlYW47XG4gIH07XG59ICYgVmlld3BvcnRQb3NpdGlvbiAmXG4gIFBpY2s8UG9ydGFsUHJvcHMsIFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG4vLyBUaGUgZGltbWluZyBsYXllciBmYWRlcyBpbiBvbiBtb3VudCBhbmQgZmFkZXMgYmFjayBvdXQgd2hpbGUgbGVhdmluZy5cbmNvbnN0IFN0eWxlZFZpZXdwb3J0TGF5ZXIgPSBzdHlsZWQuZGl2PHsgaXNMZWF2aW5nOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgICBjb25zdCB7IGhpZGRlbiwgdmlzaWJsZSB9ID0gdGhlbWUudmFyaWFibGVzLm9wYWNpdHk7XG4gICAgY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IG9wYWNpdHk6ICR7aGlkZGVufTsgfVxuICAgICAgdG8geyBvcGFjaXR5OiAke3Zpc2libGV9OyB9XG4gICAgYDtcbiAgICBjb25zdCBmYWRlT3V0ID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IG9wYWNpdHk6ICR7dmlzaWJsZX07IH1cbiAgICAgIHRvIHsgb3BhY2l0eTogJHtoaWRkZW59OyB9XG4gICAgYDtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID1cbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWxCYWNrZHJvcC5vcGVuO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICB0b3A6IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgekluZGV4OiB0aGVtZS52YXJpYWJsZXMuekluZGV4Lm1vZGFsLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMGR2aFwiLFxuICAgICAgYW5pbWF0aW9uOiBgJHtcbiAgICAgICAgaXNMZWF2aW5nID8gZmFkZU91dCA6IGZhZGVJblxuICAgICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIFwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCI6IHsgYW5pbWF0aW9uOiBcIm5vbmVcIiB9LFxuICAgIH07XG4gIH1cbik7XG5cbmZ1bmN0aW9uIGVkZ2VTdHlsZXMoXG4gIHBvc2l0aW9uWD86IEVkZ2VYLFxuICBwb3NpdGlvblk/OiBFZGdlWVxuKTogUGljazxDU1NPYmplY3QsIFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJ0b3BcIiB8IFwiYm90dG9tXCI+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi4ocG9zaXRpb25YID09PSBcImxlZnRcIiAmJiB7IGxlZnQ6IDAgfSksXG4gICAgLi4uKHBvc2l0aW9uWCA9PT0gXCJyaWdodFwiICYmIHsgcmlnaHQ6IDAgfSksXG4gICAgLi4uKCFwb3NpdGlvblggJiYgeyBsZWZ0OiBcIjUwJVwiIH0pLFxuICAgIC4uLihwb3NpdGlvblkgPT09IFwidG9wXCIgJiYgeyB0b3A6IDAgfSksXG4gICAgLi4uKHBvc2l0aW9uWSA9PT0gXCJib3R0b21cIiAmJiB7IGJvdHRvbTogMCB9KSxcbiAgICAuLi4oIXBvc2l0aW9uWSAmJiB7IHRvcDogXCI1MCVcIiB9KSxcbiAgfTtcbn1cblxuLy8gMCUgd2hlbiBwaW5uZWQgdG8gYW4gZWRnZSAoYWxyZWFkeSBwb3NpdGlvbmVkIHZpYSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20pLFxuLy8gLTUwJSB3aGVuIGNlbnRlcmVkIChuZWVkcyB0aGUgdHJhbnNsYXRlIHRvIHJlY2VudGVyIGl0KS5cbmZ1bmN0aW9uIHJlc3RpbmdUcmFuc2xhdGUoZWRnZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlZGdlID8gXCIwJVwiIDogXCItNTAlXCI7XG59XG5cbi8vIFRoZSBkcmF3ZXIgc2xpZGVzIGluIGZyb20gd2hpY2hldmVyIGVkZ2UgaXQncyBwaW5uZWQgdG87IFggd2lucyBvdmVyIFkgd2hlblxuLy8gYm90aCBhcmUgc2V0IChjb3JuZXIgcGluKS4gQSBjZW50ZXJlZCBkcmF3ZXIgKG5laXRoZXIgc2V0KSBkb2Vzbid0IHNsaWRlIOKAlFxuLy8gaXQgb25seSBmYWRlcy5cbmZ1bmN0aW9uIHNsaWRlT2Zmc2V0KFxuICBwb3NpdGlvblg6IEVkZ2VYIHwgdW5kZWZpbmVkLFxuICBwb3NpdGlvblk6IEVkZ2VZIHwgdW5kZWZpbmVkLFxuICByZXN0WDogc3RyaW5nLFxuICByZXN0WTogc3RyaW5nXG4pOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH0ge1xuICBpZiAocG9zaXRpb25YID09PSBcImxlZnRcIikgcmV0dXJuIHsgeDogXCItMTAwJVwiLCB5OiByZXN0WSB9O1xuICBpZiAocG9zaXRpb25YID09PSBcInJpZ2h0XCIpIHJldHVybiB7IHg6IFwiMTAwJVwiLCB5OiByZXN0WSB9O1xuICBpZiAocG9zaXRpb25ZID09PSBcInRvcFwiKSByZXR1cm4geyB4OiByZXN0WCwgeTogXCItMTAwJVwiIH07XG4gIGlmIChwb3NpdGlvblkgPT09IFwiYm90dG9tXCIpIHJldHVybiB7IHg6IHJlc3RYLCB5OiBcIjEwMCVcIiB9O1xuICByZXR1cm4geyB4OiByZXN0WCwgeTogcmVzdFkgfTtcbn1cblxuY29uc3QgU3R5bGVkQ29udGVudCA9IHN0eWxlZC5kaXY8e1xuICBwb3NpdGlvblg/OiBFZGdlWDtcbiAgcG9zaXRpb25ZPzogRWRnZVk7XG4gIGlzTGVhdmluZzogYm9vbGVhbjtcbn0+KCh7IHRoZW1lLCBwb3NpdGlvblgsIHBvc2l0aW9uWSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgY29uc3QgcmVzdFggPSByZXN0aW5nVHJhbnNsYXRlKHBvc2l0aW9uWCk7XG4gIGNvbnN0IHJlc3RZID0gcmVzdGluZ1RyYW5zbGF0ZShwb3NpdGlvblkpO1xuICBjb25zdCB7IHg6IGZyb21YLCB5OiBmcm9tWSB9ID0gc2xpZGVPZmZzZXQoXG4gICAgcG9zaXRpb25YLFxuICAgIHBvc2l0aW9uWSxcbiAgICByZXN0WCxcbiAgICByZXN0WVxuICApO1xuICBjb25zdCByZXN0aW5nID0gYHRyYW5zbGF0ZSgke3Jlc3RYfSwgJHtyZXN0WX0pYDtcbiAgY29uc3Qgb2Zmc2NyZWVuID0gYHRyYW5zbGF0ZSgke2Zyb21YfSwgJHtmcm9tWX0pYDtcbiAgY29uc3Qgc2xpZGVJbiA9IGtleWZyYW1lc2BcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiAke29mZnNjcmVlbn07IH1cbiAgICB0byB7IHRyYW5zZm9ybTogJHtyZXN0aW5nfTsgfVxuICBgO1xuICBjb25zdCBzbGlkZU91dCA9IGtleWZyYW1lc2BcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiAke3Jlc3Rpbmd9OyB9XG4gICAgdG8geyB0cmFuc2Zvcm06ICR7b2Zmc2NyZWVufTsgfVxuICBgO1xuICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID0gdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5uYXZTbGlkZS5vcGVuO1xuXG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAuLi5lZGdlU3R5bGVzKHBvc2l0aW9uWCwgcG9zaXRpb25ZKSxcbiAgICAvLyBSZXN0aW5nIHRyYW5zZm9ybSBob2xkcyBhZnRlciB0aGUgYW5pbWF0aW9uIGVuZHMgKGFuZCB3aGVuIHJlZHVjZWQgbW90aW9uXG4gICAgLy8gc2tpcHMgdGhlIHNsaWRlIGVudGlyZWx5KS5cbiAgICB0cmFuc2Zvcm06IHJlc3RpbmcsXG4gICAgd2lsbENoYW5nZTogXCJ0cmFuc2Zvcm1cIixcbiAgICBhbmltYXRpb246IGAke1xuICAgICAgaXNMZWF2aW5nID8gc2xpZGVPdXQgOiBzbGlkZUluXG4gICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAvLyBIb25vciByZWR1Y2VkLW1vdGlvbjogc2tpcCB0aGUgc2xpZGUsIGtlZXAgdGhlIHJlc3RpbmcgcG9zaXRpb24uXG4gICAgXCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSlcIjogeyBhbmltYXRpb246IFwibm9uZVwiIH0sXG4gIH07XG59KTtcblxuLy8gTm9uLWludGVyYWN0aXZlIHNvIGNsaWNrcyBvbiB0aGUgZGltbWVkIGFyZWEgZmFsbCB0aHJvdWdoIHRvIHRoZSBsYXllciwgd2hlcmVcbi8vIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIGlzIGRldGVjdGVkLlxuY29uc3QgU3R5bGVkQmFja2Ryb3AgPSBzdHlsZWQoQmFja2Ryb3ApKHsgcG9pbnRlckV2ZW50czogXCJub25lXCIgfSk7XG5cbi8vIFRoZSBmaXJzdCBmb2N1c2FibGUgZGVzY2VuZGFudCwgZmFsbGluZyBiYWNrIHRvIHRoZSBjb250YWluZXIsIHRoZW4gdGhlIGJvZHkuXG5mdW5jdGlvbiBnZXRGb2N1c1RhcmdldChcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gIGRvY3VtZW50OiBEb2N1bWVudFxuKTogSFRNTEVsZW1lbnQge1xuICByZXR1cm4gKFxuICAgIGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oRk9DVVNBQkxFX1NFTEVDVE9SKSA/P1xuICAgIGNvbnRhaW5lciA/P1xuICAgIGRvY3VtZW50LmJvZHlcbiAgKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUluaXRpYWxGb2N1cyhcbiAgaW5pdGlhbEZvY3VzOiBEcmF3ZXJQcm9wc1tcImluaXRpYWxGb2N1c1wiXSxcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gIGRvY3VtZW50OiBEb2N1bWVudFxuKTogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHwgc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBpbml0aWFsRm9jdXMgPT09IFwic3RyaW5nXCIpIHJldHVybiBpbml0aWFsRm9jdXM7XG4gIHJldHVybiBpbml0aWFsRm9jdXM/LmN1cnJlbnQgPz8gZ2V0Rm9jdXNUYXJnZXQoY29udGFpbmVyLCBkb2N1bWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEcmF3ZXIoe1xuICBiYWNrZHJvcFJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBpbml0aWFsRm9jdXMsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc1Zpc2libGUgPSB0cnVlLFxuICBvblVubW91bnQsXG4gIGhhc0JhY2tkcm9wID0gdHJ1ZSxcbiAgcG9zaXRpb25YLFxuICBwb3NpdGlvblksXG4gIGNoaWxkcmVuLFxuICBoYW5kbGVDbG9zZSxcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHtcbiAgICBza2lwUG9ydGFsOiBmYWxzZSxcbiAgfSxcbiAgLi4ucmVzdFxufTogUHJvcHNXaXRoQ2hpbGRyZW48RHJhd2VyUHJvcHM+KTogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IHBvcnRhbENvbnRhaW5lckVsZW1lbnQgPSB1c2VQb3J0YWxDb250YWluZXJFbGVtZW50KHBvcnRhbENvbnRhaW5lcik7XG4gIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuXG4gIC8vIFRoZSBjb25zdW1lciBkcml2ZXMgYGlzVmlzaWJsZWA7IHRoaXMga2VlcHMgdGhlIGRyYXdlciBtb3VudGVkIHRocm91Z2ggaXRzXG4gIC8vIGV4aXQgYW5pbWF0aW9uLCB0aGVuIGZpcmVzIGBvblVubW91bnRgLlxuICBjb25zdCB7IGlzTW91bnRlZCwgaXNMZWF2aW5nLCBvbkFuaW1hdGlvbkVuZCB9ID0gdXNlRHJhd2VyQW5pbWF0aW9uKHtcbiAgICBpc1Zpc2libGUsXG4gICAgb25Vbm1vdW50LFxuICB9KTtcblxuICAvLyBUaGUgbGF5ZXIgaXMgaWRlbnRpZmllZCBpbnRlcm5hbGx5IHNvIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIHdvcmtzIHdpdGhvdXRcbiAgLy8gdGhlIGNvbnN1bWVyIHdpcmluZyBhIHJlZi4gYGJhY2tkcm9wUmVmYCwgaWYgZ2l2ZW4sIGZhbnMgb3V0IHRvIHRoYXQgbm9kZS5cbiAgY29uc3QgbGF5ZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2V0TGF5ZXJOb2RlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgbGF5ZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBjb25zdCBleHRlcm5hbFJlZiA9IGJhY2tkcm9wUmVmIGFzXG4gICAgICAgIHwgTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGV4dGVybmFsUmVmKSB7XG4gICAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2JhY2tkcm9wUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZURlYWN0aXZhdGVzID0gdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwoe1xuICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQsXG4gICAgb3V0ZXJSZWY6IGxheWVyUmVmLFxuICAgIGlzRGlzbWlzc2libGUsXG4gIH0pO1xuXG4gIC8vIFJlbmRlciBub3RoaW5nIG9uY2UgZnVsbHkgY2xvc2VkIChhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gaGFzIGZpbmlzaGVkKS5cbiAgaWYgKCFpc01vdW50ZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPFN0eWxlZFZpZXdwb3J0TGF5ZXJcbiAgICAgIHJlZj17c2V0TGF5ZXJOb2RlfVxuICAgICAgZGF0YS1kcy1pZD1cIkRyYXdlclwiXG4gICAgICBpc0xlYXZpbmc9e2lzTGVhdmluZ31cbiAgICA+XG4gICAgICB7aGFzQmFja2Ryb3AgJiYgPFN0eWxlZEJhY2tkcm9wIGRhdGEtZHMtaWQ9XCJEcmF3ZXJCYWNrZHJvcFwiIC8+fVxuICAgICAgPEZvY3VzVHJhcFdyYXBwZXJcbiAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgIGZvY3VzVHJhcE9wdGlvbnM9e3tcbiAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogdHJ1ZSwgLy8gYWxsb3cgY2xpY2sgb24gbW9iaWxlIGluIGFueSBkcm9wZG93bnNcbiAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWUsXG4gICAgICAgICAgaW5pdGlhbEZvY3VzOiAoKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZUluaXRpYWxGb2N1cyhpbml0aWFsRm9jdXMsIGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIGZhbGxiYWNrRm9jdXM6ICgpID0+IGdldEZvY3VzVGFyZ2V0KGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IGhhbmRsZUNsb3NlPy4oKSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbnRlbnRcbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgcG9zaXRpb25YPXtwb3NpdGlvblh9XG4gICAgICAgICAgcG9zaXRpb25ZPXtwb3NpdGlvbll9XG4gICAgICAgICAgaXNMZWF2aW5nPXtpc0xlYXZpbmd9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDb250ZW50PlxuICAgICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICAgIDwvU3R5bGVkVmlld3BvcnRMYXllcj5cbiAgKTtcblxuICAvLyBGb3IgdGVzdGluZyB3ZSBkb24ndCB3YW50IHRvIHJlbmRlciB0aGUgY29udGVudCBpbnNpZGUgYSBwb3J0YWxcbiAgaWYgKHNraXBQb3J0YWwpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU+XG4gICAgICA8UG9ydGFsIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfT57Y29udGVudH08L1BvcnRhbD5cbiAgICA8L0RpYWxvZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0Q0QiJ9 */");function restingTranslate(edge){return edge?"0%":"-50%"}let StyledContent=styled("div",{target:"esvcvpn1",label:"StyledContent"})(({theme,positionX,positionY,isLeaving})=>{let restX=restingTranslate(positionX),restY=restingTranslate(positionY),{x:fromX,y:fromY}="left"===positionX?{x:"-100%",y:restY}:"right"===positionX?{x:"100%",y:restY}:"top"===positionY?{x:restX,y:"-100%"}:"bottom"===positionY?{x:restX,y:"100%"}:{x:restX,y:restY},resting=`translate(${restX}, ${restY})`,offscreen=`translate(${fromX}, ${fromY})`,slideIn=keyframes`
8
- from { transform: ${offscreen}; }
9
- to { transform: ${resting}; }
10
- `,slideOut=keyframes`
11
- from { transform: ${resting}; }
12
- to { transform: ${offscreen}; }
13
- `,{duration,timingFunction}=theme.variables.animation.navSlide.open;return{position:"fixed",...{..."left"===positionX&&{left:0},..."right"===positionX&&{right:0},...!positionX&&{left:"50%"},..."top"===positionY&&{top:0},..."bottom"===positionY&&{bottom:0},...!positionY&&{top:"50%"}},transform:resting,willChange:"transform",animation:`${isLeaving?slideOut:slideIn} ${duration} ${timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvRHJhd2VyL0RyYXdlci50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0ludGVybmFsL0RyYXdlci9EcmF3ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1wcm9wcy1uby1zcHJlYWRpbmcgKi9cbmltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlUmVmLFxuICB0eXBlIE11dGFibGVSZWZPYmplY3QsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHR5cGUgUmVmT2JqZWN0LFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzLCB0eXBlIENTU09iamVjdCB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja0RlYWN0aXZhdGVzV2l0aGluUG9ydGFsXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IEZPQ1VTQUJMRV9TRUxFQ1RPUiB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvZm9jdXNhYmxlU2VsZWN0b3JcIjtcbmltcG9ydCB7XG4gIFBvcnRhbCxcbiAgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IEZvY3VzVHJhcFdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL0ZvY3VzVHJhcFdyYXBwZXJcIjtcbmltcG9ydCB7IERpYWxvZ0NvbnRleHQgfSBmcm9tIFwiLi4vLi4vUGF0dGVybnMvRGlhbG9nL0RpYWxvZ0NvbnRleHRcIjtcbmltcG9ydCB7IEJhY2tkcm9wIH0gZnJvbSBcIi4uLy4uL1V0aWxpdGllcy9CYWNrZHJvcC9CYWNrZHJvcFwiO1xuaW1wb3J0IHR5cGUgeyBWaWV3cG9ydFBvc2l0aW9uIH0gZnJvbSBcIi4uLy4uL1V0aWxpdGllcy9GbG9hdGluZ1Bvc2l0aW9uL3VzZUZsb2F0aW5nUG9zaXRpb25cIjtcbmltcG9ydCB7IHVzZURyYXdlckFuaW1hdGlvbiB9IGZyb20gXCIuL3VzZURyYXdlckFuaW1hdGlvblwiO1xuXG5leHBvcnQgdHlwZSBFZGdlWCA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuZXhwb3J0IHR5cGUgRWRnZVkgPSBcInRvcFwiIHwgXCJib3R0b21cIjtcblxuZXhwb3J0IHR5cGUgRHJhd2VyUHJvcHMgPSBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4gJiB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBDb250cm9scyB2aXNpYmlsaXR5LiBUb2dnbGluZyBgZmFsc2VgIHBsYXlzIHRoZSBleGl0IGFuaW1hdGlvbiwgdGhlblxuICAgKiB1bm1vdW50cyAoZmlyaW5nIGBvblVubW91bnRgKS4gS2VlcCB0aGUgRHJhd2VyIG1vdW50ZWQgYW5kIGRyaXZlIHRoaXMgcmF0aGVyXG4gICAqIHRoYW4gY29uZGl0aW9uYWxseSByZW5kZXJpbmcgaXQuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIC8qKiBDYWxsZWQgYWZ0ZXIgdGhlIGV4aXQgYW5pbWF0aW9uIGNvbXBsZXRlcyBhbmQgdGhlIGRyYXdlciBpcyByZW1vdmVkLiAqL1xuICBvblVubW91bnQ/OiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZDtcbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgZGltbWluZyBiYWNrZHJvcCBiZWhpbmQgdGhlIGNvbnRlbnQuIERlZmF1bHQgYHRydWVgLlxuICAgKi9cbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xuICAvKipcbiAgICogQSByZWYgdG8gdGhlIGVsZW1lbnQgdGhhdCBzaG91bGQgcmVjZWl2ZSBmb2N1cyB3aGVuIHRoZSBkcmF3ZXIgb3BlbnMuXG4gICAqIFdoZW4gbm90IHByb3ZpZGVkLCB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIHRoZSBkcmF3ZXIgaXMgdXNlZC5cbiAgICovXG4gIGluaXRpYWxGb2N1cz86IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+IHwgc3RyaW5nO1xuICBwcml2YXRlUHJvcHM/OiB7XG4gICAgc2tpcFBvcnRhbD86IGJvb2xlYW47XG4gIH07XG59ICYgVmlld3BvcnRQb3NpdGlvbiAmXG4gIFBpY2s8UG9ydGFsUHJvcHMsIFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG4vLyBUaGUgZGltbWluZyBsYXllciBmYWRlcyBpbiBvbiBtb3VudCBhbmQgZmFkZXMgYmFjayBvdXQgd2hpbGUgbGVhdmluZy5cbmNvbnN0IFN0eWxlZFZpZXdwb3J0TGF5ZXIgPSBzdHlsZWQuZGl2PHsgaXNMZWF2aW5nOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgICBjb25zdCB7IGhpZGRlbiwgdmlzaWJsZSB9ID0gdGhlbWUudmFyaWFibGVzLm9wYWNpdHk7XG4gICAgY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IG9wYWNpdHk6ICR7aGlkZGVufTsgfVxuICAgICAgdG8geyBvcGFjaXR5OiAke3Zpc2libGV9OyB9XG4gICAgYDtcbiAgICBjb25zdCBmYWRlT3V0ID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IG9wYWNpdHk6ICR7dmlzaWJsZX07IH1cbiAgICAgIHRvIHsgb3BhY2l0eTogJHtoaWRkZW59OyB9XG4gICAgYDtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID1cbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWxCYWNrZHJvcC5vcGVuO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICB0b3A6IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgekluZGV4OiB0aGVtZS52YXJpYWJsZXMuekluZGV4Lm1vZGFsLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMGR2aFwiLFxuICAgICAgYW5pbWF0aW9uOiBgJHtcbiAgICAgICAgaXNMZWF2aW5nID8gZmFkZU91dCA6IGZhZGVJblxuICAgICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIFwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCI6IHsgYW5pbWF0aW9uOiBcIm5vbmVcIiB9LFxuICAgIH07XG4gIH1cbik7XG5cbmZ1bmN0aW9uIGVkZ2VTdHlsZXMoXG4gIHBvc2l0aW9uWD86IEVkZ2VYLFxuICBwb3NpdGlvblk/OiBFZGdlWVxuKTogUGljazxDU1NPYmplY3QsIFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJ0b3BcIiB8IFwiYm90dG9tXCI+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi4ocG9zaXRpb25YID09PSBcImxlZnRcIiAmJiB7IGxlZnQ6IDAgfSksXG4gICAgLi4uKHBvc2l0aW9uWCA9PT0gXCJyaWdodFwiICYmIHsgcmlnaHQ6IDAgfSksXG4gICAgLi4uKCFwb3NpdGlvblggJiYgeyBsZWZ0OiBcIjUwJVwiIH0pLFxuICAgIC4uLihwb3NpdGlvblkgPT09IFwidG9wXCIgJiYgeyB0b3A6IDAgfSksXG4gICAgLi4uKHBvc2l0aW9uWSA9PT0gXCJib3R0b21cIiAmJiB7IGJvdHRvbTogMCB9KSxcbiAgICAuLi4oIXBvc2l0aW9uWSAmJiB7IHRvcDogXCI1MCVcIiB9KSxcbiAgfTtcbn1cblxuLy8gMCUgd2hlbiBwaW5uZWQgdG8gYW4gZWRnZSAoYWxyZWFkeSBwb3NpdGlvbmVkIHZpYSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20pLFxuLy8gLTUwJSB3aGVuIGNlbnRlcmVkIChuZWVkcyB0aGUgdHJhbnNsYXRlIHRvIHJlY2VudGVyIGl0KS5cbmZ1bmN0aW9uIHJlc3RpbmdUcmFuc2xhdGUoZWRnZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlZGdlID8gXCIwJVwiIDogXCItNTAlXCI7XG59XG5cbi8vIFRoZSBkcmF3ZXIgc2xpZGVzIGluIGZyb20gd2hpY2hldmVyIGVkZ2UgaXQncyBwaW5uZWQgdG87IFggd2lucyBvdmVyIFkgd2hlblxuLy8gYm90aCBhcmUgc2V0IChjb3JuZXIgcGluKS4gQSBjZW50ZXJlZCBkcmF3ZXIgKG5laXRoZXIgc2V0KSBkb2Vzbid0IHNsaWRlIOKAlFxuLy8gaXQgb25seSBmYWRlcy5cbmZ1bmN0aW9uIHNsaWRlT2Zmc2V0KFxuICBwb3NpdGlvblg6IEVkZ2VYIHwgdW5kZWZpbmVkLFxuICBwb3NpdGlvblk6IEVkZ2VZIHwgdW5kZWZpbmVkLFxuICByZXN0WDogc3RyaW5nLFxuICByZXN0WTogc3RyaW5nXG4pOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH0ge1xuICBpZiAocG9zaXRpb25YID09PSBcImxlZnRcIikgcmV0dXJuIHsgeDogXCItMTAwJVwiLCB5OiByZXN0WSB9O1xuICBpZiAocG9zaXRpb25YID09PSBcInJpZ2h0XCIpIHJldHVybiB7IHg6IFwiMTAwJVwiLCB5OiByZXN0WSB9O1xuICBpZiAocG9zaXRpb25ZID09PSBcInRvcFwiKSByZXR1cm4geyB4OiByZXN0WCwgeTogXCItMTAwJVwiIH07XG4gIGlmIChwb3NpdGlvblkgPT09IFwiYm90dG9tXCIpIHJldHVybiB7IHg6IHJlc3RYLCB5OiBcIjEwMCVcIiB9O1xuICByZXR1cm4geyB4OiByZXN0WCwgeTogcmVzdFkgfTtcbn1cblxuY29uc3QgU3R5bGVkQ29udGVudCA9IHN0eWxlZC5kaXY8e1xuICBwb3NpdGlvblg/OiBFZGdlWDtcbiAgcG9zaXRpb25ZPzogRWRnZVk7XG4gIGlzTGVhdmluZzogYm9vbGVhbjtcbn0+KCh7IHRoZW1lLCBwb3NpdGlvblgsIHBvc2l0aW9uWSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgY29uc3QgcmVzdFggPSByZXN0aW5nVHJhbnNsYXRlKHBvc2l0aW9uWCk7XG4gIGNvbnN0IHJlc3RZID0gcmVzdGluZ1RyYW5zbGF0ZShwb3NpdGlvblkpO1xuICBjb25zdCB7IHg6IGZyb21YLCB5OiBmcm9tWSB9ID0gc2xpZGVPZmZzZXQoXG4gICAgcG9zaXRpb25YLFxuICAgIHBvc2l0aW9uWSxcbiAgICByZXN0WCxcbiAgICByZXN0WVxuICApO1xuICBjb25zdCByZXN0aW5nID0gYHRyYW5zbGF0ZSgke3Jlc3RYfSwgJHtyZXN0WX0pYDtcbiAgY29uc3Qgb2Zmc2NyZWVuID0gYHRyYW5zbGF0ZSgke2Zyb21YfSwgJHtmcm9tWX0pYDtcbiAgY29uc3Qgc2xpZGVJbiA9IGtleWZyYW1lc2BcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiAke29mZnNjcmVlbn07IH1cbiAgICB0byB7IHRyYW5zZm9ybTogJHtyZXN0aW5nfTsgfVxuICBgO1xuICBjb25zdCBzbGlkZU91dCA9IGtleWZyYW1lc2BcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiAke3Jlc3Rpbmd9OyB9XG4gICAgdG8geyB0cmFuc2Zvcm06ICR7b2Zmc2NyZWVufTsgfVxuICBgO1xuICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID0gdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5uYXZTbGlkZS5vcGVuO1xuXG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAuLi5lZGdlU3R5bGVzKHBvc2l0aW9uWCwgcG9zaXRpb25ZKSxcbiAgICAvLyBSZXN0aW5nIHRyYW5zZm9ybSBob2xkcyBhZnRlciB0aGUgYW5pbWF0aW9uIGVuZHMgKGFuZCB3aGVuIHJlZHVjZWQgbW90aW9uXG4gICAgLy8gc2tpcHMgdGhlIHNsaWRlIGVudGlyZWx5KS5cbiAgICB0cmFuc2Zvcm06IHJlc3RpbmcsXG4gICAgd2lsbENoYW5nZTogXCJ0cmFuc2Zvcm1cIixcbiAgICBhbmltYXRpb246IGAke1xuICAgICAgaXNMZWF2aW5nID8gc2xpZGVPdXQgOiBzbGlkZUluXG4gICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAvLyBIb25vciByZWR1Y2VkLW1vdGlvbjogc2tpcCB0aGUgc2xpZGUsIGtlZXAgdGhlIHJlc3RpbmcgcG9zaXRpb24uXG4gICAgXCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSlcIjogeyBhbmltYXRpb246IFwibm9uZVwiIH0sXG4gIH07XG59KTtcblxuLy8gTm9uLWludGVyYWN0aXZlIHNvIGNsaWNrcyBvbiB0aGUgZGltbWVkIGFyZWEgZmFsbCB0aHJvdWdoIHRvIHRoZSBsYXllciwgd2hlcmVcbi8vIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIGlzIGRldGVjdGVkLlxuY29uc3QgU3R5bGVkQmFja2Ryb3AgPSBzdHlsZWQoQmFja2Ryb3ApKHsgcG9pbnRlckV2ZW50czogXCJub25lXCIgfSk7XG5cbi8vIFRoZSBmaXJzdCBmb2N1c2FibGUgZGVzY2VuZGFudCwgZmFsbGluZyBiYWNrIHRvIHRoZSBjb250YWluZXIsIHRoZW4gdGhlIGJvZHkuXG5mdW5jdGlvbiBnZXRGb2N1c1RhcmdldChcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gIGRvY3VtZW50OiBEb2N1bWVudFxuKTogSFRNTEVsZW1lbnQge1xuICByZXR1cm4gKFxuICAgIGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oRk9DVVNBQkxFX1NFTEVDVE9SKSA/P1xuICAgIGNvbnRhaW5lciA/P1xuICAgIGRvY3VtZW50LmJvZHlcbiAgKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUluaXRpYWxGb2N1cyhcbiAgaW5pdGlhbEZvY3VzOiBEcmF3ZXJQcm9wc1tcImluaXRpYWxGb2N1c1wiXSxcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gIGRvY3VtZW50OiBEb2N1bWVudFxuKTogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHwgc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBpbml0aWFsRm9jdXMgPT09IFwic3RyaW5nXCIpIHJldHVybiBpbml0aWFsRm9jdXM7XG4gIHJldHVybiBpbml0aWFsRm9jdXM/LmN1cnJlbnQgPz8gZ2V0Rm9jdXNUYXJnZXQoY29udGFpbmVyLCBkb2N1bWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEcmF3ZXIoe1xuICBiYWNrZHJvcFJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBpbml0aWFsRm9jdXMsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc1Zpc2libGUgPSB0cnVlLFxuICBvblVubW91bnQsXG4gIGhhc0JhY2tkcm9wID0gdHJ1ZSxcbiAgcG9zaXRpb25YLFxuICBwb3NpdGlvblksXG4gIGNoaWxkcmVuLFxuICBoYW5kbGVDbG9zZSxcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHtcbiAgICBza2lwUG9ydGFsOiBmYWxzZSxcbiAgfSxcbiAgLi4ucmVzdFxufTogUHJvcHNXaXRoQ2hpbGRyZW48RHJhd2VyUHJvcHM+KTogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IHBvcnRhbENvbnRhaW5lckVsZW1lbnQgPSB1c2VQb3J0YWxDb250YWluZXJFbGVtZW50KHBvcnRhbENvbnRhaW5lcik7XG4gIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuXG4gIC8vIFRoZSBjb25zdW1lciBkcml2ZXMgYGlzVmlzaWJsZWA7IHRoaXMga2VlcHMgdGhlIGRyYXdlciBtb3VudGVkIHRocm91Z2ggaXRzXG4gIC8vIGV4aXQgYW5pbWF0aW9uLCB0aGVuIGZpcmVzIGBvblVubW91bnRgLlxuICBjb25zdCB7IGlzTW91bnRlZCwgaXNMZWF2aW5nLCBvbkFuaW1hdGlvbkVuZCB9ID0gdXNlRHJhd2VyQW5pbWF0aW9uKHtcbiAgICBpc1Zpc2libGUsXG4gICAgb25Vbm1vdW50LFxuICB9KTtcblxuICAvLyBUaGUgbGF5ZXIgaXMgaWRlbnRpZmllZCBpbnRlcm5hbGx5IHNvIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIHdvcmtzIHdpdGhvdXRcbiAgLy8gdGhlIGNvbnN1bWVyIHdpcmluZyBhIHJlZi4gYGJhY2tkcm9wUmVmYCwgaWYgZ2l2ZW4sIGZhbnMgb3V0IHRvIHRoYXQgbm9kZS5cbiAgY29uc3QgbGF5ZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2V0TGF5ZXJOb2RlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgbGF5ZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBjb25zdCBleHRlcm5hbFJlZiA9IGJhY2tkcm9wUmVmIGFzXG4gICAgICAgIHwgTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGV4dGVybmFsUmVmKSB7XG4gICAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2JhY2tkcm9wUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZURlYWN0aXZhdGVzID0gdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwoe1xuICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQsXG4gICAgb3V0ZXJSZWY6IGxheWVyUmVmLFxuICAgIGlzRGlzbWlzc2libGUsXG4gIH0pO1xuXG4gIC8vIFJlbmRlciBub3RoaW5nIG9uY2UgZnVsbHkgY2xvc2VkIChhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gaGFzIGZpbmlzaGVkKS5cbiAgaWYgKCFpc01vdW50ZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPFN0eWxlZFZpZXdwb3J0TGF5ZXJcbiAgICAgIHJlZj17c2V0TGF5ZXJOb2RlfVxuICAgICAgZGF0YS1kcy1pZD1cIkRyYXdlclwiXG4gICAgICBpc0xlYXZpbmc9e2lzTGVhdmluZ31cbiAgICA+XG4gICAgICB7aGFzQmFja2Ryb3AgJiYgPFN0eWxlZEJhY2tkcm9wIGRhdGEtZHMtaWQ9XCJEcmF3ZXJCYWNrZHJvcFwiIC8+fVxuICAgICAgPEZvY3VzVHJhcFdyYXBwZXJcbiAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgIGZvY3VzVHJhcE9wdGlvbnM9e3tcbiAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogdHJ1ZSwgLy8gYWxsb3cgY2xpY2sgb24gbW9iaWxlIGluIGFueSBkcm9wZG93bnNcbiAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWUsXG4gICAgICAgICAgaW5pdGlhbEZvY3VzOiAoKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZUluaXRpYWxGb2N1cyhpbml0aWFsRm9jdXMsIGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIGZhbGxiYWNrRm9jdXM6ICgpID0+IGdldEZvY3VzVGFyZ2V0KGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IGhhbmRsZUNsb3NlPy4oKSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbnRlbnRcbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgcG9zaXRpb25YPXtwb3NpdGlvblh9XG4gICAgICAgICAgcG9zaXRpb25ZPXtwb3NpdGlvbll9XG4gICAgICAgICAgaXNMZWF2aW5nPXtpc0xlYXZpbmd9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDb250ZW50PlxuICAgICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICAgIDwvU3R5bGVkVmlld3BvcnRMYXllcj5cbiAgKTtcblxuICAvLyBGb3IgdGVzdGluZyB3ZSBkb24ndCB3YW50IHRvIHJlbmRlciB0aGUgY29udGVudCBpbnNpZGUgYSBwb3J0YWxcbiAgaWYgKHNraXBQb3J0YWwpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU+XG4gICAgICA8UG9ydGFsIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfT57Y29udGVudH08L1BvcnRhbD5cbiAgICA8L0RpYWxvZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUhzQiJ9 */"),StyledBackdrop=styled(Backdrop,{target:"esvcvpn2",label:"StyledBackdrop"})({pointerEvents:"none"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvRHJhd2VyL0RyYXdlci50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0ludGVybmFsL0RyYXdlci9EcmF3ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1wcm9wcy1uby1zcHJlYWRpbmcgKi9cbmltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlUmVmLFxuICB0eXBlIE11dGFibGVSZWZPYmplY3QsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHR5cGUgUmVmT2JqZWN0LFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzLCB0eXBlIENTU09iamVjdCB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja0RlYWN0aXZhdGVzV2l0aGluUG9ydGFsXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IEZPQ1VTQUJMRV9TRUxFQ1RPUiB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvZm9jdXNhYmxlU2VsZWN0b3JcIjtcbmltcG9ydCB7XG4gIFBvcnRhbCxcbiAgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IEZvY3VzVHJhcFdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL0ZvY3VzVHJhcFdyYXBwZXJcIjtcbmltcG9ydCB7IERpYWxvZ0NvbnRleHQgfSBmcm9tIFwiLi4vLi4vUGF0dGVybnMvRGlhbG9nL0RpYWxvZ0NvbnRleHRcIjtcbmltcG9ydCB7IEJhY2tkcm9wIH0gZnJvbSBcIi4uLy4uL1V0aWxpdGllcy9CYWNrZHJvcC9CYWNrZHJvcFwiO1xuaW1wb3J0IHR5cGUgeyBWaWV3cG9ydFBvc2l0aW9uIH0gZnJvbSBcIi4uLy4uL1V0aWxpdGllcy9GbG9hdGluZ1Bvc2l0aW9uL3VzZUZsb2F0aW5nUG9zaXRpb25cIjtcbmltcG9ydCB7IHVzZURyYXdlckFuaW1hdGlvbiB9IGZyb20gXCIuL3VzZURyYXdlckFuaW1hdGlvblwiO1xuXG5leHBvcnQgdHlwZSBFZGdlWCA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuZXhwb3J0IHR5cGUgRWRnZVkgPSBcInRvcFwiIHwgXCJib3R0b21cIjtcblxuZXhwb3J0IHR5cGUgRHJhd2VyUHJvcHMgPSBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4gJiB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBDb250cm9scyB2aXNpYmlsaXR5LiBUb2dnbGluZyBgZmFsc2VgIHBsYXlzIHRoZSBleGl0IGFuaW1hdGlvbiwgdGhlblxuICAgKiB1bm1vdW50cyAoZmlyaW5nIGBvblVubW91bnRgKS4gS2VlcCB0aGUgRHJhd2VyIG1vdW50ZWQgYW5kIGRyaXZlIHRoaXMgcmF0aGVyXG4gICAqIHRoYW4gY29uZGl0aW9uYWxseSByZW5kZXJpbmcgaXQuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIC8qKiBDYWxsZWQgYWZ0ZXIgdGhlIGV4aXQgYW5pbWF0aW9uIGNvbXBsZXRlcyBhbmQgdGhlIGRyYXdlciBpcyByZW1vdmVkLiAqL1xuICBvblVubW91bnQ/OiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZDtcbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgZGltbWluZyBiYWNrZHJvcCBiZWhpbmQgdGhlIGNvbnRlbnQuIERlZmF1bHQgYHRydWVgLlxuICAgKi9cbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xuICAvKipcbiAgICogQSByZWYgdG8gdGhlIGVsZW1lbnQgdGhhdCBzaG91bGQgcmVjZWl2ZSBmb2N1cyB3aGVuIHRoZSBkcmF3ZXIgb3BlbnMuXG4gICAqIFdoZW4gbm90IHByb3ZpZGVkLCB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIHRoZSBkcmF3ZXIgaXMgdXNlZC5cbiAgICovXG4gIGluaXRpYWxGb2N1cz86IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+IHwgc3RyaW5nO1xuICBwcml2YXRlUHJvcHM/OiB7XG4gICAgc2tpcFBvcnRhbD86IGJvb2xlYW47XG4gIH07XG59ICYgVmlld3BvcnRQb3NpdGlvbiAmXG4gIFBpY2s8UG9ydGFsUHJvcHMsIFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG4vLyBUaGUgZGltbWluZyBsYXllciBmYWRlcyBpbiBvbiBtb3VudCBhbmQgZmFkZXMgYmFjayBvdXQgd2hpbGUgbGVhdmluZy5cbmNvbnN0IFN0eWxlZFZpZXdwb3J0TGF5ZXIgPSBzdHlsZWQuZGl2PHsgaXNMZWF2aW5nOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgICBjb25zdCB7IGhpZGRlbiwgdmlzaWJsZSB9ID0gdGhlbWUudmFyaWFibGVzLm9wYWNpdHk7XG4gICAgY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IG9wYWNpdHk6ICR7aGlkZGVufTsgfVxuICAgICAgdG8geyBvcGFjaXR5OiAke3Zpc2libGV9OyB9XG4gICAgYDtcbiAgICBjb25zdCBmYWRlT3V0ID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IG9wYWNpdHk6ICR7dmlzaWJsZX07IH1cbiAgICAgIHRvIHsgb3BhY2l0eTogJHtoaWRkZW59OyB9XG4gICAgYDtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID1cbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWxCYWNrZHJvcC5vcGVuO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICB0b3A6IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgekluZGV4OiB0aGVtZS52YXJpYWJsZXMuekluZGV4Lm1vZGFsLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMGR2aFwiLFxuICAgICAgYW5pbWF0aW9uOiBgJHtcbiAgICAgICAgaXNMZWF2aW5nID8gZmFkZU91dCA6IGZhZGVJblxuICAgICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIFwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCI6IHsgYW5pbWF0aW9uOiBcIm5vbmVcIiB9LFxuICAgIH07XG4gIH1cbik7XG5cbmZ1bmN0aW9uIGVkZ2VTdHlsZXMoXG4gIHBvc2l0aW9uWD86IEVkZ2VYLFxuICBwb3NpdGlvblk/OiBFZGdlWVxuKTogUGljazxDU1NPYmplY3QsIFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJ0b3BcIiB8IFwiYm90dG9tXCI+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi4ocG9zaXRpb25YID09PSBcImxlZnRcIiAmJiB7IGxlZnQ6IDAgfSksXG4gICAgLi4uKHBvc2l0aW9uWCA9PT0gXCJyaWdodFwiICYmIHsgcmlnaHQ6IDAgfSksXG4gICAgLi4uKCFwb3NpdGlvblggJiYgeyBsZWZ0OiBcIjUwJVwiIH0pLFxuICAgIC4uLihwb3NpdGlvblkgPT09IFwidG9wXCIgJiYgeyB0b3A6IDAgfSksXG4gICAgLi4uKHBvc2l0aW9uWSA9PT0gXCJib3R0b21cIiAmJiB7IGJvdHRvbTogMCB9KSxcbiAgICAuLi4oIXBvc2l0aW9uWSAmJiB7IHRvcDogXCI1MCVcIiB9KSxcbiAgfTtcbn1cblxuLy8gMCUgd2hlbiBwaW5uZWQgdG8gYW4gZWRnZSAoYWxyZWFkeSBwb3NpdGlvbmVkIHZpYSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20pLFxuLy8gLTUwJSB3aGVuIGNlbnRlcmVkIChuZWVkcyB0aGUgdHJhbnNsYXRlIHRvIHJlY2VudGVyIGl0KS5cbmZ1bmN0aW9uIHJlc3RpbmdUcmFuc2xhdGUoZWRnZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlZGdlID8gXCIwJVwiIDogXCItNTAlXCI7XG59XG5cbi8vIFRoZSBkcmF3ZXIgc2xpZGVzIGluIGZyb20gd2hpY2hldmVyIGVkZ2UgaXQncyBwaW5uZWQgdG87IFggd2lucyBvdmVyIFkgd2hlblxuLy8gYm90aCBhcmUgc2V0IChjb3JuZXIgcGluKS4gQSBjZW50ZXJlZCBkcmF3ZXIgKG5laXRoZXIgc2V0KSBkb2Vzbid0IHNsaWRlIOKAlFxuLy8gaXQgb25seSBmYWRlcy5cbmZ1bmN0aW9uIHNsaWRlT2Zmc2V0KFxuICBwb3NpdGlvblg6IEVkZ2VYIHwgdW5kZWZpbmVkLFxuICBwb3NpdGlvblk6IEVkZ2VZIHwgdW5kZWZpbmVkLFxuICByZXN0WDogc3RyaW5nLFxuICByZXN0WTogc3RyaW5nXG4pOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH0ge1xuICBpZiAocG9zaXRpb25YID09PSBcImxlZnRcIikgcmV0dXJuIHsgeDogXCItMTAwJVwiLCB5OiByZXN0WSB9O1xuICBpZiAocG9zaXRpb25YID09PSBcInJpZ2h0XCIpIHJldHVybiB7IHg6IFwiMTAwJVwiLCB5OiByZXN0WSB9O1xuICBpZiAocG9zaXRpb25ZID09PSBcInRvcFwiKSByZXR1cm4geyB4OiByZXN0WCwgeTogXCItMTAwJVwiIH07XG4gIGlmIChwb3NpdGlvblkgPT09IFwiYm90dG9tXCIpIHJldHVybiB7IHg6IHJlc3RYLCB5OiBcIjEwMCVcIiB9O1xuICByZXR1cm4geyB4OiByZXN0WCwgeTogcmVzdFkgfTtcbn1cblxuY29uc3QgU3R5bGVkQ29udGVudCA9IHN0eWxlZC5kaXY8e1xuICBwb3NpdGlvblg/OiBFZGdlWDtcbiAgcG9zaXRpb25ZPzogRWRnZVk7XG4gIGlzTGVhdmluZzogYm9vbGVhbjtcbn0+KCh7IHRoZW1lLCBwb3NpdGlvblgsIHBvc2l0aW9uWSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgY29uc3QgcmVzdFggPSByZXN0aW5nVHJhbnNsYXRlKHBvc2l0aW9uWCk7XG4gIGNvbnN0IHJlc3RZID0gcmVzdGluZ1RyYW5zbGF0ZShwb3NpdGlvblkpO1xuICBjb25zdCB7IHg6IGZyb21YLCB5OiBmcm9tWSB9ID0gc2xpZGVPZmZzZXQoXG4gICAgcG9zaXRpb25YLFxuICAgIHBvc2l0aW9uWSxcbiAgICByZXN0WCxcbiAgICByZXN0WVxuICApO1xuICBjb25zdCByZXN0aW5nID0gYHRyYW5zbGF0ZSgke3Jlc3RYfSwgJHtyZXN0WX0pYDtcbiAgY29uc3Qgb2Zmc2NyZWVuID0gYHRyYW5zbGF0ZSgke2Zyb21YfSwgJHtmcm9tWX0pYDtcbiAgY29uc3Qgc2xpZGVJbiA9IGtleWZyYW1lc2BcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiAke29mZnNjcmVlbn07IH1cbiAgICB0byB7IHRyYW5zZm9ybTogJHtyZXN0aW5nfTsgfVxuICBgO1xuICBjb25zdCBzbGlkZU91dCA9IGtleWZyYW1lc2BcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiAke3Jlc3Rpbmd9OyB9XG4gICAgdG8geyB0cmFuc2Zvcm06ICR7b2Zmc2NyZWVufTsgfVxuICBgO1xuICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID0gdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5uYXZTbGlkZS5vcGVuO1xuXG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAuLi5lZGdlU3R5bGVzKHBvc2l0aW9uWCwgcG9zaXRpb25ZKSxcbiAgICAvLyBSZXN0aW5nIHRyYW5zZm9ybSBob2xkcyBhZnRlciB0aGUgYW5pbWF0aW9uIGVuZHMgKGFuZCB3aGVuIHJlZHVjZWQgbW90aW9uXG4gICAgLy8gc2tpcHMgdGhlIHNsaWRlIGVudGlyZWx5KS5cbiAgICB0cmFuc2Zvcm06IHJlc3RpbmcsXG4gICAgd2lsbENoYW5nZTogXCJ0cmFuc2Zvcm1cIixcbiAgICBhbmltYXRpb246IGAke1xuICAgICAgaXNMZWF2aW5nID8gc2xpZGVPdXQgOiBzbGlkZUluXG4gICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAvLyBIb25vciByZWR1Y2VkLW1vdGlvbjogc2tpcCB0aGUgc2xpZGUsIGtlZXAgdGhlIHJlc3RpbmcgcG9zaXRpb24uXG4gICAgXCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSlcIjogeyBhbmltYXRpb246IFwibm9uZVwiIH0sXG4gIH07XG59KTtcblxuLy8gTm9uLWludGVyYWN0aXZlIHNvIGNsaWNrcyBvbiB0aGUgZGltbWVkIGFyZWEgZmFsbCB0aHJvdWdoIHRvIHRoZSBsYXllciwgd2hlcmVcbi8vIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIGlzIGRldGVjdGVkLlxuY29uc3QgU3R5bGVkQmFja2Ryb3AgPSBzdHlsZWQoQmFja2Ryb3ApKHsgcG9pbnRlckV2ZW50czogXCJub25lXCIgfSk7XG5cbi8vIFRoZSBmaXJzdCBmb2N1c2FibGUgZGVzY2VuZGFudCwgZmFsbGluZyBiYWNrIHRvIHRoZSBjb250YWluZXIsIHRoZW4gdGhlIGJvZHkuXG5mdW5jdGlvbiBnZXRGb2N1c1RhcmdldChcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gIGRvY3VtZW50OiBEb2N1bWVudFxuKTogSFRNTEVsZW1lbnQge1xuICByZXR1cm4gKFxuICAgIGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oRk9DVVNBQkxFX1NFTEVDVE9SKSA/P1xuICAgIGNvbnRhaW5lciA/P1xuICAgIGRvY3VtZW50LmJvZHlcbiAgKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUluaXRpYWxGb2N1cyhcbiAgaW5pdGlhbEZvY3VzOiBEcmF3ZXJQcm9wc1tcImluaXRpYWxGb2N1c1wiXSxcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gIGRvY3VtZW50OiBEb2N1bWVudFxuKTogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHwgc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBpbml0aWFsRm9jdXMgPT09IFwic3RyaW5nXCIpIHJldHVybiBpbml0aWFsRm9jdXM7XG4gIHJldHVybiBpbml0aWFsRm9jdXM/LmN1cnJlbnQgPz8gZ2V0Rm9jdXNUYXJnZXQoY29udGFpbmVyLCBkb2N1bWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEcmF3ZXIoe1xuICBiYWNrZHJvcFJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBpbml0aWFsRm9jdXMsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc1Zpc2libGUgPSB0cnVlLFxuICBvblVubW91bnQsXG4gIGhhc0JhY2tkcm9wID0gdHJ1ZSxcbiAgcG9zaXRpb25YLFxuICBwb3NpdGlvblksXG4gIGNoaWxkcmVuLFxuICBoYW5kbGVDbG9zZSxcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHtcbiAgICBza2lwUG9ydGFsOiBmYWxzZSxcbiAgfSxcbiAgLi4ucmVzdFxufTogUHJvcHNXaXRoQ2hpbGRyZW48RHJhd2VyUHJvcHM+KTogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IHBvcnRhbENvbnRhaW5lckVsZW1lbnQgPSB1c2VQb3J0YWxDb250YWluZXJFbGVtZW50KHBvcnRhbENvbnRhaW5lcik7XG4gIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuXG4gIC8vIFRoZSBjb25zdW1lciBkcml2ZXMgYGlzVmlzaWJsZWA7IHRoaXMga2VlcHMgdGhlIGRyYXdlciBtb3VudGVkIHRocm91Z2ggaXRzXG4gIC8vIGV4aXQgYW5pbWF0aW9uLCB0aGVuIGZpcmVzIGBvblVubW91bnRgLlxuICBjb25zdCB7IGlzTW91bnRlZCwgaXNMZWF2aW5nLCBvbkFuaW1hdGlvbkVuZCB9ID0gdXNlRHJhd2VyQW5pbWF0aW9uKHtcbiAgICBpc1Zpc2libGUsXG4gICAgb25Vbm1vdW50LFxuICB9KTtcblxuICAvLyBUaGUgbGF5ZXIgaXMgaWRlbnRpZmllZCBpbnRlcm5hbGx5IHNvIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIHdvcmtzIHdpdGhvdXRcbiAgLy8gdGhlIGNvbnN1bWVyIHdpcmluZyBhIHJlZi4gYGJhY2tkcm9wUmVmYCwgaWYgZ2l2ZW4sIGZhbnMgb3V0IHRvIHRoYXQgbm9kZS5cbiAgY29uc3QgbGF5ZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2V0TGF5ZXJOb2RlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgbGF5ZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBjb25zdCBleHRlcm5hbFJlZiA9IGJhY2tkcm9wUmVmIGFzXG4gICAgICAgIHwgTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGV4dGVybmFsUmVmKSB7XG4gICAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2JhY2tkcm9wUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZURlYWN0aXZhdGVzID0gdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwoe1xuICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQsXG4gICAgb3V0ZXJSZWY6IGxheWVyUmVmLFxuICAgIGlzRGlzbWlzc2libGUsXG4gIH0pO1xuXG4gIC8vIFJlbmRlciBub3RoaW5nIG9uY2UgZnVsbHkgY2xvc2VkIChhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gaGFzIGZpbmlzaGVkKS5cbiAgaWYgKCFpc01vdW50ZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPFN0eWxlZFZpZXdwb3J0TGF5ZXJcbiAgICAgIHJlZj17c2V0TGF5ZXJOb2RlfVxuICAgICAgZGF0YS1kcy1pZD1cIkRyYXdlclwiXG4gICAgICBpc0xlYXZpbmc9e2lzTGVhdmluZ31cbiAgICA+XG4gICAgICB7aGFzQmFja2Ryb3AgJiYgPFN0eWxlZEJhY2tkcm9wIGRhdGEtZHMtaWQ9XCJEcmF3ZXJCYWNrZHJvcFwiIC8+fVxuICAgICAgPEZvY3VzVHJhcFdyYXBwZXJcbiAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgIGZvY3VzVHJhcE9wdGlvbnM9e3tcbiAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogdHJ1ZSwgLy8gYWxsb3cgY2xpY2sgb24gbW9iaWxlIGluIGFueSBkcm9wZG93bnNcbiAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWUsXG4gICAgICAgICAgaW5pdGlhbEZvY3VzOiAoKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZUluaXRpYWxGb2N1cyhpbml0aWFsRm9jdXMsIGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIGZhbGxiYWNrRm9jdXM6ICgpID0+IGdldEZvY3VzVGFyZ2V0KGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IGhhbmRsZUNsb3NlPy4oKSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbnRlbnRcbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgcG9zaXRpb25YPXtwb3NpdGlvblh9XG4gICAgICAgICAgcG9zaXRpb25ZPXtwb3NpdGlvbll9XG4gICAgICAgICAgaXNMZWF2aW5nPXtpc0xlYXZpbmd9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDb250ZW50PlxuICAgICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICAgIDwvU3R5bGVkVmlld3BvcnRMYXllcj5cbiAgKTtcblxuICAvLyBGb3IgdGVzdGluZyB3ZSBkb24ndCB3YW50IHRvIHJlbmRlciB0aGUgY29udGVudCBpbnNpZGUgYSBwb3J0YWxcbiAgaWYgKHNraXBQb3J0YWwpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU+XG4gICAgICA8UG9ydGFsIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfT57Y29udGVudH08L1BvcnRhbD5cbiAgICA8L0RpYWxvZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUt1QiJ9 */");function getFocusTarget(container,document){return container?.querySelector(FOCUSABLE_SELECTOR)??container??document.body}export function Drawer({backdropRef,portalContainer,initialFocus,isDismissible=!0,isVisible=!0,onUnmount,hasBackdrop=!0,positionX,positionY,children,handleClose,privateProps:{skipPortal}={skipPortal:!1},...rest}){let portalContainerElement=usePortalContainerElement(portalContainer),contentRef=useRef(null),document=useDocument(),{isMounted,isLeaving,onAnimationEnd}=useDrawerAnimation({isVisible,onUnmount}),layerRef=useRef(null),setLayerNode=useCallback(node=>{layerRef.current=node,backdropRef&&(backdropRef.current=node)},[backdropRef]),handleClickOutsideDeactivates=useOutsideClickDeactivatesWithinPortal({portalContainerElement,outerRef:layerRef,isDismissible});if(!isMounted)return null;let content=React.createElement(StyledViewportLayer,{ref:setLayerNode,"data-ds-id":"Drawer",isLeaving:isLeaving},hasBackdrop&&React.createElement(StyledBackdrop,{"data-ds-id":"DrawerBackdrop"}),React.createElement(FocusTrapWrapper,{active:isVisible,focusTrapOptions:{allowOutsideClick:!0,clickOutsideDeactivates:handleClickOutsideDeactivates,escapeDeactivates:isDismissible,preventScroll:!0,initialFocus:()=>{var container;return container=contentRef.current,"string"==typeof initialFocus?initialFocus:initialFocus?.current??getFocusTarget(container,document)},fallbackFocus:()=>getFocusTarget(contentRef.current,document),onPostDeactivate:()=>handleClose?.()}},React.createElement(StyledContent,{...rest,ref:contentRef,positionX:positionX,positionY:positionY,isLeaving:isLeaving,onAnimationEnd:onAnimationEnd,role:"dialog","aria-modal":"true"},children)));return skipPortal?content:React.createElement(DialogContext.Provider,{value:!0},React.createElement(Portal,{portalContainer:portalContainer},content))}
7
+ `,{duration,timingFunction}=theme.variables.animation.modalBackdrop.open;return{position:"fixed",top:0,left:0,zIndex:theme.variables.zIndex.modal,width:"100%",height:"100dvh",animation:`${isLeaving?fadeOut:fadeIn} ${duration} ${timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvRHJhd2VyL0RyYXdlci50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0ludGVybmFsL0RyYXdlci9EcmF3ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1wcm9wcy1uby1zcHJlYWRpbmcgKi9cbmltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VSZWYsXG4gIHR5cGUgTXV0YWJsZVJlZk9iamVjdCxcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdHlwZSBSZWZPYmplY3QsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBrZXlmcmFtZXMsIHR5cGUgQ1NTT2JqZWN0IH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2tEZWFjdGl2YXRlc1dpdGhpblBvcnRhbCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWxcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgRk9DVVNBQkxFX1NFTEVDVE9SIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9mb2N1c2FibGVTZWxlY3RvclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDb250YWluZXJFbGVtZW50LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vLi4vUG9ydGFsL1BvcnRhbFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgRGlhbG9nQ29udGV4dCB9IGZyb20gXCIuLi8uLi9QYXR0ZXJucy9EaWFsb2cvRGlhbG9nQ29udGV4dFwiO1xuaW1wb3J0IHsgQmFja2Ryb3AgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL0JhY2tkcm9wL0JhY2tkcm9wXCI7XG5pbXBvcnQgdHlwZSB7IFZpZXdwb3J0UG9zaXRpb24gfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL0Zsb2F0aW5nUG9zaXRpb24vdXNlRmxvYXRpbmdQb3NpdGlvblwiO1xuaW1wb3J0IHsgdXNlRXhpdEFuaW1hdGlvbiB9IGZyb20gXCIuL3VzZUV4aXRBbmltYXRpb25cIjtcblxudHlwZSBFZGdlWCA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xudHlwZSBFZGdlWSA9IFwidG9wXCIgfCBcImJvdHRvbVwiO1xuXG5leHBvcnQgdHlwZSBEcmF3ZXJQcm9wcyA9IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiAmIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVbXSB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHZpc2liaWxpdHkuIFRvZ2dsaW5nIGBmYWxzZWAgcGxheXMgdGhlIGV4aXQgYW5pbWF0aW9uLCB0aGVuXG4gICAqIHVubW91bnRzIChmaXJpbmcgYG9uVW5tb3VudGApLiBLZWVwIHRoZSBEcmF3ZXIgbW91bnRlZCBhbmQgZHJpdmUgdGhpcyByYXRoZXJcbiAgICogdGhhbiBjb25kaXRpb25hbGx5IHJlbmRlcmluZyBpdC4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgLyoqIENhbGxlZCBhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gY29tcGxldGVzIGFuZCB0aGUgZHJhd2VyIGlzIHJlbW92ZWQuICovXG4gIG9uVW5tb3VudD86ICgpID0+IHZvaWQ7XG4gIGJhY2tkcm9wUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBpc0Rpc21pc3NpYmxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVuZGVyIHRoZSBkaW1taW5nIGJhY2tkcm9wIGJlaGluZCB0aGUgY29udGVudC4gRGVmYXVsdCBgdHJ1ZWAuXG4gICAqL1xuICBoYXNCYWNrZHJvcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBIHJlZiB0byB0aGUgZWxlbWVudCB0aGF0IHNob3VsZCByZWNlaXZlIGZvY3VzIHdoZW4gdGhlIGRyYXdlciBvcGVucy5cbiAgICogV2hlbiBub3QgcHJvdmlkZWQsIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBpbnNpZGUgdGhlIGRyYXdlciBpcyB1c2VkLlxuICAgKi9cbiAgaW5pdGlhbEZvY3VzPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudD4gfCBzdHJpbmc7XG4gIHByaXZhdGVQcm9wcz86IHtcbiAgICBza2lwUG9ydGFsPzogYm9vbGVhbjtcbiAgfTtcbn0gJiBWaWV3cG9ydFBvc2l0aW9uICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbnR5cGUgU3R5bGVkVmlld3BvcnRMYXllclByb3BzID0geyBpc0xlYXZpbmc6IGJvb2xlYW4gfTtcblxuY29uc3QgU3R5bGVkVmlld3BvcnRMYXllciA9IHN0eWxlZC5kaXY8U3R5bGVkVmlld3BvcnRMYXllclByb3BzPihcbiAgKHsgdGhlbWUsIGlzTGVhdmluZyB9KSA9PiB7XG4gICAgY29uc3QgeyBoaWRkZW4sIHZpc2libGUgfSA9IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5O1xuICAgIGNvbnN0IGZhZGVJbiA9IGtleWZyYW1lc2BcbiAgICAgIGZyb20geyBvcGFjaXR5OiAke2hpZGRlbn07IH1cbiAgICAgIHRvIHsgb3BhY2l0eTogJHt2aXNpYmxlfTsgfVxuICAgIGA7XG4gICAgY29uc3QgZmFkZU91dCA9IGtleWZyYW1lc2BcbiAgICAgIGZyb20geyBvcGFjaXR5OiAke3Zpc2libGV9OyB9XG4gICAgICB0byB7IG9wYWNpdHk6ICR7aGlkZGVufTsgfVxuICAgIGA7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgdGltaW5nRnVuY3Rpb24gfSA9XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3BlbjtcbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgIHRvcDogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwZHZoXCIsXG4gICAgICBhbmltYXRpb246IGAke1xuICAgICAgICBpc0xlYXZpbmcgPyBmYWRlT3V0IDogZmFkZUluXG4gICAgICB9ICR7ZHVyYXRpb259ICR7dGltaW5nRnVuY3Rpb259IGJvdGhgLFxuICAgICAgXCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSlcIjogeyBhbmltYXRpb246IFwibm9uZVwiIH0sXG4gICAgfTtcbiAgfVxuKTtcblxuZnVuY3Rpb24gZWRnZVN0eWxlcyhcbiAgcG9zaXRpb25YPzogRWRnZVgsXG4gIHBvc2l0aW9uWT86IEVkZ2VZXG4pOiBQaWNrPENTU09iamVjdCwgXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcInRvcFwiIHwgXCJib3R0b21cIj4ge1xuICByZXR1cm4ge1xuICAgIC4uLihwb3NpdGlvblggPT09IFwibGVmdFwiICYmIHsgbGVmdDogMCB9KSxcbiAgICAuLi4ocG9zaXRpb25YID09PSBcInJpZ2h0XCIgJiYgeyByaWdodDogMCB9KSxcbiAgICAuLi4oIXBvc2l0aW9uWCAmJiB7IGxlZnQ6IFwiNTAlXCIgfSksXG4gICAgLi4uKHBvc2l0aW9uWSA9PT0gXCJ0b3BcIiAmJiB7IHRvcDogMCB9KSxcbiAgICAuLi4ocG9zaXRpb25ZID09PSBcImJvdHRvbVwiICYmIHsgYm90dG9tOiAwIH0pLFxuICAgIC4uLighcG9zaXRpb25ZICYmIHsgdG9wOiBcIjUwJVwiIH0pLFxuICB9O1xufVxuXG4vLyBUaGUgZHJhd2VyIHNsaWRlcyBpbiBmcm9tIHdoaWNoZXZlciBlZGdlIGl0J3MgcGlubmVkIHRvOyBYIHdpbnMgb3ZlciBZIHdoZW5cbi8vIGJvdGggYXJlIHNldCAoY29ybmVyIHBpbikuIEEgY2VudGVyZWQgZHJhd2VyIChuZWl0aGVyIHNldCkgZG9lc24ndCBzbGlkZSDigJRcbi8vIGl0IG9ubHkgZmFkZXMuXG5mdW5jdGlvbiBnZXRTbGlkZU9mZnNldChcbiAgcG9zaXRpb25YOiBFZGdlWCB8IHVuZGVmaW5lZCxcbiAgcG9zaXRpb25ZOiBFZGdlWSB8IHVuZGVmaW5lZCxcbiAgcmVzdFg6IHN0cmluZyxcbiAgcmVzdFk6IHN0cmluZ1xuKTogeyB4OiBzdHJpbmc7IHk6IHN0cmluZyB9IHtcbiAgaWYgKHBvc2l0aW9uWCA9PT0gXCJsZWZ0XCIpIHJldHVybiB7IHg6IFwiLTEwMCVcIiwgeTogcmVzdFkgfTtcbiAgaWYgKHBvc2l0aW9uWCA9PT0gXCJyaWdodFwiKSByZXR1cm4geyB4OiBcIjEwMCVcIiwgeTogcmVzdFkgfTtcbiAgaWYgKHBvc2l0aW9uWSA9PT0gXCJ0b3BcIikgcmV0dXJuIHsgeDogcmVzdFgsIHk6IFwiLTEwMCVcIiB9O1xuICBpZiAocG9zaXRpb25ZID09PSBcImJvdHRvbVwiKSByZXR1cm4geyB4OiByZXN0WCwgeTogXCIxMDAlXCIgfTtcbiAgcmV0dXJuIHsgeDogcmVzdFgsIHk6IHJlc3RZIH07XG59XG5cbnR5cGUgU3R5bGVkQ29udGVudFByb3BzID0ge1xuICBwb3NpdGlvblg/OiBFZGdlWDtcbiAgcG9zaXRpb25ZPzogRWRnZVk7XG4gIGlzTGVhdmluZzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFN0eWxlZENvbnRlbnQgPSBzdHlsZWQuZGl2PFN0eWxlZENvbnRlbnRQcm9wcz4oXG4gICh7IHRoZW1lLCBwb3NpdGlvblgsIHBvc2l0aW9uWSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgICAvLyBSZXN0aW5nIHRyYW5zbGF0ZTogMCUgd2hlbiBwaW5uZWQgdG8gYW4gZWRnZSAoYWxyZWFkeSBwb3NpdGlvbmVkIHZpYVxuICAgIC8vIGxlZnQvcmlnaHQvdG9wL2JvdHRvbSksIC01MCUgd2hlbiBjZW50ZXJlZCAocmVjZW50ZXJzIHRoZSBib3gpLlxuICAgIGNvbnN0IHJlc3RYID0gcG9zaXRpb25YID8gXCIwJVwiIDogXCItNTAlXCI7XG4gICAgY29uc3QgcmVzdFkgPSBwb3NpdGlvblkgPyBcIjAlXCIgOiBcIi01MCVcIjtcbiAgICBjb25zdCB7IHg6IGZyb21YLCB5OiBmcm9tWSB9ID0gZ2V0U2xpZGVPZmZzZXQoXG4gICAgICBwb3NpdGlvblgsXG4gICAgICBwb3NpdGlvblksXG4gICAgICByZXN0WCxcbiAgICAgIHJlc3RZXG4gICAgKTtcbiAgICAvLyBSZXN0aW5nIHRyYW5zZm9ybSBhcHBsaWVkIG91dHNpZGUgdGhlIGFuaW1hdGlvbiB0b28gc28gaXQgaG9sZHMgYWZ0ZXJcbiAgICAvLyB0aGUgYW5pbWF0aW9uIGVuZHMuXG4gICAgY29uc3QgcmVzdGluZyA9IGB0cmFuc2xhdGUoJHtyZXN0WH0sICR7cmVzdFl9KWA7XG4gICAgY29uc3Qgb2Zmc2NyZWVuID0gYHRyYW5zbGF0ZSgke2Zyb21YfSwgJHtmcm9tWX0pYDtcbiAgICBjb25zdCBzbGlkZUluID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IHRyYW5zZm9ybTogJHtvZmZzY3JlZW59OyB9XG4gICAgICB0byB7IHRyYW5zZm9ybTogJHtyZXN0aW5nfTsgfVxuICAgIGA7XG4gICAgY29uc3Qgc2xpZGVPdXQgPSBrZXlmcmFtZXNgXG4gICAgICBmcm9tIHsgdHJhbnNmb3JtOiAke3Jlc3Rpbmd9OyB9XG4gICAgICB0byB7IHRyYW5zZm9ybTogJHtvZmZzY3JlZW59OyB9XG4gICAgYDtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID1cbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubmF2U2xpZGUub3BlbjtcbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgIC4uLmVkZ2VTdHlsZXMocG9zaXRpb25YLCBwb3NpdGlvblkpLFxuICAgICAgdHJhbnNmb3JtOiByZXN0aW5nLFxuICAgICAgd2lsbENoYW5nZTogXCJ0cmFuc2Zvcm1cIixcbiAgICAgIGFuaW1hdGlvbjogYCR7XG4gICAgICAgIGlzTGVhdmluZyA/IHNsaWRlT3V0IDogc2xpZGVJblxuICAgICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC8vIEhvbm9yIHJlZHVjZWQtbW90aW9uOiBza2lwIHRoZSBzbGlkZSwga2VlcCB0aGUgcmVzdGluZyBwb3NpdGlvbi5cbiAgICAgIFwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCI6IHsgYW5pbWF0aW9uOiBcIm5vbmVcIiB9LFxuICAgIH07XG4gIH1cbik7XG5cbi8vIE5vbi1pbnRlcmFjdGl2ZSBzbyBjbGlja3Mgb24gdGhlIGRpbW1lZCBhcmVhIGZhbGwgdGhyb3VnaCB0byB0aGUgbGF5ZXIsIHdoZXJlXG4vLyBvdXRzaWRlLWNsaWNrIGRpc21pc3NhbCBpcyBkZXRlY3RlZC5cbmNvbnN0IFN0eWxlZEJhY2tkcm9wID0gc3R5bGVkKEJhY2tkcm9wKSh7IHBvaW50ZXJFdmVudHM6IFwibm9uZVwiIH0pO1xuXG4vLyBUaGUgZmlyc3QgZm9jdXNhYmxlIGRlc2NlbmRhbnQsIGZhbGxpbmcgYmFjayB0byB0aGUgY29udGFpbmVyLCB0aGVuIHRoZSBib2R5LlxuZnVuY3Rpb24gZ2V0Rm9jdXNUYXJnZXQoXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBkb2N1bWVudDogRG9jdW1lbnRcbik6IEhUTUxFbGVtZW50IHtcbiAgcmV0dXJuIChcbiAgICBjb250YWluZXI/LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KEZPQ1VTQUJMRV9TRUxFQ1RPUikgPz9cbiAgICBjb250YWluZXIgPz9cbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVJbml0aWFsRm9jdXMoXG4gIGluaXRpYWxGb2N1czogRHJhd2VyUHJvcHNbXCJpbml0aWFsRm9jdXNcIl0sXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBkb2N1bWVudDogRG9jdW1lbnRcbik6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB8IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgaW5pdGlhbEZvY3VzID09PSBcInN0cmluZ1wiKSByZXR1cm4gaW5pdGlhbEZvY3VzO1xuICByZXR1cm4gaW5pdGlhbEZvY3VzPy5jdXJyZW50ID8/IGdldEZvY3VzVGFyZ2V0KGNvbnRhaW5lciwgZG9jdW1lbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRHJhd2VyKHtcbiAgYmFja2Ryb3BSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgaW5pdGlhbEZvY3VzLFxuICBpc0Rpc21pc3NpYmxlID0gdHJ1ZSxcbiAgaXNWaXNpYmxlID0gdHJ1ZSxcbiAgb25Vbm1vdW50LFxuICBoYXNCYWNrZHJvcCA9IHRydWUsXG4gIHBvc2l0aW9uWCxcbiAgcG9zaXRpb25ZLFxuICBjaGlsZHJlbixcbiAgaGFuZGxlQ2xvc2UsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7XG4gICAgc2tpcFBvcnRhbDogZmFsc2UsXG4gIH0sXG4gIC4uLnJlc3Rcbn06IFByb3BzV2l0aENoaWxkcmVuPERyYXdlclByb3BzPik6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bGwge1xuICBjb25zdCBwb3J0YWxDb250YWluZXJFbGVtZW50ID0gdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudChwb3J0YWxDb250YWluZXIpO1xuICBjb25zdCBjb250ZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRvY3VtZW50ID0gdXNlRG9jdW1lbnQoKTtcblxuICAvLyBUaGUgY29uc3VtZXIgZHJpdmVzIGBpc1Zpc2libGVgOyB0aGlzIGtlZXBzIHRoZSBkcmF3ZXIgbW91bnRlZCB0aHJvdWdoIGl0c1xuICAvLyBleGl0IGFuaW1hdGlvbi5cbiAgY29uc3QgeyBpc01vdW50ZWQsIGlzTGVhdmluZywgb25BbmltYXRpb25FbmQgfSA9IHVzZUV4aXRBbmltYXRpb24oaXNWaXNpYmxlKTtcblxuICAvLyBOb3RpZnkgb25jZSB0aGUgZHJhd2VyIGFjdHVhbGx5IGxlYXZlcyB0aGUgdHJlZSDigJQgYWZ0ZXIgdGhlIGV4aXQgYW5pbWF0aW9uLFxuICAvLyBvciBpbW1lZGlhdGVseSB1bmRlciByZWR1Y2VkIG1vdGlvbi4gVGhlIGhvb2sgaXRzZWxmIGtub3dzIG5vdGhpbmcgb2YgdGhpcy5cbiAgY29uc3Qgd2FzTW91bnRlZCA9IHVzZVJlZihpc01vdW50ZWQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YXNNb3VudGVkLmN1cnJlbnQgJiYgIWlzTW91bnRlZCkge1xuICAgICAgb25Vbm1vdW50Py4oKTtcbiAgICB9XG4gICAgd2FzTW91bnRlZC5jdXJyZW50ID0gaXNNb3VudGVkO1xuICB9LCBbaXNNb3VudGVkLCBvblVubW91bnRdKTtcblxuICAvLyBUaGUgbGF5ZXIgaXMgaWRlbnRpZmllZCBpbnRlcm5hbGx5IHNvIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIHdvcmtzIHdpdGhvdXRcbiAgLy8gdGhlIGNvbnN1bWVyIHdpcmluZyBhIHJlZi4gYGJhY2tkcm9wUmVmYCwgaWYgZ2l2ZW4sIGZhbnMgb3V0IHRvIHRoYXQgbm9kZS5cbiAgY29uc3QgbGF5ZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2V0TGF5ZXJOb2RlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgbGF5ZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBjb25zdCBleHRlcm5hbFJlZiA9IGJhY2tkcm9wUmVmIGFzXG4gICAgICAgIHwgTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGV4dGVybmFsUmVmKSB7XG4gICAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2JhY2tkcm9wUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZURlYWN0aXZhdGVzID0gdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwoe1xuICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQsXG4gICAgb3V0ZXJSZWY6IGxheWVyUmVmLFxuICAgIGlzRGlzbWlzc2libGUsXG4gIH0pO1xuXG4gIC8vIFJlbmRlciBub3RoaW5nIG9uY2UgZnVsbHkgY2xvc2VkIChhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gaGFzIGZpbmlzaGVkKS5cbiAgaWYgKCFpc01vdW50ZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPFN0eWxlZFZpZXdwb3J0TGF5ZXJcbiAgICAgIHJlZj17c2V0TGF5ZXJOb2RlfVxuICAgICAgZGF0YS1kcy1pZD1cIkRyYXdlclwiXG4gICAgICBpc0xlYXZpbmc9e2lzTGVhdmluZ31cbiAgICA+XG4gICAgICB7aGFzQmFja2Ryb3AgJiYgPFN0eWxlZEJhY2tkcm9wIGRhdGEtZHMtaWQ9XCJEcmF3ZXJCYWNrZHJvcFwiIC8+fVxuICAgICAgPEZvY3VzVHJhcFdyYXBwZXJcbiAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgIGZvY3VzVHJhcE9wdGlvbnM9e3tcbiAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogdHJ1ZSwgLy8gYWxsb3cgY2xpY2sgb24gbW9iaWxlIGluIGFueSBkcm9wZG93bnNcbiAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWUsXG4gICAgICAgICAgaW5pdGlhbEZvY3VzOiAoKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZUluaXRpYWxGb2N1cyhpbml0aWFsRm9jdXMsIGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIGZhbGxiYWNrRm9jdXM6ICgpID0+IGdldEZvY3VzVGFyZ2V0KGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IGhhbmRsZUNsb3NlPy4oKSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbnRlbnRcbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgcG9zaXRpb25YPXtwb3NpdGlvblh9XG4gICAgICAgICAgcG9zaXRpb25ZPXtwb3NpdGlvbll9XG4gICAgICAgICAgaXNMZWF2aW5nPXtpc0xlYXZpbmd9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDb250ZW50PlxuICAgICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICAgIDwvU3R5bGVkVmlld3BvcnRMYXllcj5cbiAgKTtcblxuICAvLyBGb3IgdGVzdGluZyB3ZSBkb24ndCB3YW50IHRvIHJlbmRlciB0aGUgY29udGVudCBpbnNpZGUgYSBwb3J0YWxcbiAgaWYgKHNraXBQb3J0YWwpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU+XG4gICAgICA8UG9ydGFsIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfT57Y29udGVudH08L1BvcnRhbD5cbiAgICA8L0RpYWxvZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEQ0QiJ9 */"),StyledContent=styled("div",{target:"e11o9pe91",label:"StyledContent"})(({theme,positionX,positionY,isLeaving})=>{let restX=positionX?"0%":"-50%",restY=positionY?"0%":"-50%",{x:fromX,y:fromY}="left"===positionX?{x:"-100%",y:restY}:"right"===positionX?{x:"100%",y:restY}:"top"===positionY?{x:restX,y:"-100%"}:"bottom"===positionY?{x:restX,y:"100%"}:{x:restX,y:restY},resting=`translate(${restX}, ${restY})`,offscreen=`translate(${fromX}, ${fromY})`,slideIn=keyframes`
8
+ from { transform: ${offscreen}; }
9
+ to { transform: ${resting}; }
10
+ `,slideOut=keyframes`
11
+ from { transform: ${resting}; }
12
+ to { transform: ${offscreen}; }
13
+ `,{duration,timingFunction}=theme.variables.animation.navSlide.open;return{position:"fixed",...{..."left"===positionX&&{left:0},..."right"===positionX&&{right:0},...!positionX&&{left:"50%"},..."top"===positionY&&{top:0},..."bottom"===positionY&&{bottom:0},...!positionY&&{top:"50%"}},transform:resting,willChange:"transform",animation:`${isLeaving?slideOut:slideIn} ${duration} ${timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvRHJhd2VyL0RyYXdlci50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0ludGVybmFsL0RyYXdlci9EcmF3ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1wcm9wcy1uby1zcHJlYWRpbmcgKi9cbmltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VSZWYsXG4gIHR5cGUgTXV0YWJsZVJlZk9iamVjdCxcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdHlwZSBSZWZPYmplY3QsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBrZXlmcmFtZXMsIHR5cGUgQ1NTT2JqZWN0IH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2tEZWFjdGl2YXRlc1dpdGhpblBvcnRhbCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWxcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgRk9DVVNBQkxFX1NFTEVDVE9SIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9mb2N1c2FibGVTZWxlY3RvclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDb250YWluZXJFbGVtZW50LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vLi4vUG9ydGFsL1BvcnRhbFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgRGlhbG9nQ29udGV4dCB9IGZyb20gXCIuLi8uLi9QYXR0ZXJucy9EaWFsb2cvRGlhbG9nQ29udGV4dFwiO1xuaW1wb3J0IHsgQmFja2Ryb3AgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL0JhY2tkcm9wL0JhY2tkcm9wXCI7XG5pbXBvcnQgdHlwZSB7IFZpZXdwb3J0UG9zaXRpb24gfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL0Zsb2F0aW5nUG9zaXRpb24vdXNlRmxvYXRpbmdQb3NpdGlvblwiO1xuaW1wb3J0IHsgdXNlRXhpdEFuaW1hdGlvbiB9IGZyb20gXCIuL3VzZUV4aXRBbmltYXRpb25cIjtcblxudHlwZSBFZGdlWCA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xudHlwZSBFZGdlWSA9IFwidG9wXCIgfCBcImJvdHRvbVwiO1xuXG5leHBvcnQgdHlwZSBEcmF3ZXJQcm9wcyA9IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiAmIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVbXSB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHZpc2liaWxpdHkuIFRvZ2dsaW5nIGBmYWxzZWAgcGxheXMgdGhlIGV4aXQgYW5pbWF0aW9uLCB0aGVuXG4gICAqIHVubW91bnRzIChmaXJpbmcgYG9uVW5tb3VudGApLiBLZWVwIHRoZSBEcmF3ZXIgbW91bnRlZCBhbmQgZHJpdmUgdGhpcyByYXRoZXJcbiAgICogdGhhbiBjb25kaXRpb25hbGx5IHJlbmRlcmluZyBpdC4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgLyoqIENhbGxlZCBhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gY29tcGxldGVzIGFuZCB0aGUgZHJhd2VyIGlzIHJlbW92ZWQuICovXG4gIG9uVW5tb3VudD86ICgpID0+IHZvaWQ7XG4gIGJhY2tkcm9wUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBpc0Rpc21pc3NpYmxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVuZGVyIHRoZSBkaW1taW5nIGJhY2tkcm9wIGJlaGluZCB0aGUgY29udGVudC4gRGVmYXVsdCBgdHJ1ZWAuXG4gICAqL1xuICBoYXNCYWNrZHJvcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBIHJlZiB0byB0aGUgZWxlbWVudCB0aGF0IHNob3VsZCByZWNlaXZlIGZvY3VzIHdoZW4gdGhlIGRyYXdlciBvcGVucy5cbiAgICogV2hlbiBub3QgcHJvdmlkZWQsIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBpbnNpZGUgdGhlIGRyYXdlciBpcyB1c2VkLlxuICAgKi9cbiAgaW5pdGlhbEZvY3VzPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudD4gfCBzdHJpbmc7XG4gIHByaXZhdGVQcm9wcz86IHtcbiAgICBza2lwUG9ydGFsPzogYm9vbGVhbjtcbiAgfTtcbn0gJiBWaWV3cG9ydFBvc2l0aW9uICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbnR5cGUgU3R5bGVkVmlld3BvcnRMYXllclByb3BzID0geyBpc0xlYXZpbmc6IGJvb2xlYW4gfTtcblxuY29uc3QgU3R5bGVkVmlld3BvcnRMYXllciA9IHN0eWxlZC5kaXY8U3R5bGVkVmlld3BvcnRMYXllclByb3BzPihcbiAgKHsgdGhlbWUsIGlzTGVhdmluZyB9KSA9PiB7XG4gICAgY29uc3QgeyBoaWRkZW4sIHZpc2libGUgfSA9IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5O1xuICAgIGNvbnN0IGZhZGVJbiA9IGtleWZyYW1lc2BcbiAgICAgIGZyb20geyBvcGFjaXR5OiAke2hpZGRlbn07IH1cbiAgICAgIHRvIHsgb3BhY2l0eTogJHt2aXNpYmxlfTsgfVxuICAgIGA7XG4gICAgY29uc3QgZmFkZU91dCA9IGtleWZyYW1lc2BcbiAgICAgIGZyb20geyBvcGFjaXR5OiAke3Zpc2libGV9OyB9XG4gICAgICB0byB7IG9wYWNpdHk6ICR7aGlkZGVufTsgfVxuICAgIGA7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgdGltaW5nRnVuY3Rpb24gfSA9XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3BlbjtcbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgIHRvcDogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwZHZoXCIsXG4gICAgICBhbmltYXRpb246IGAke1xuICAgICAgICBpc0xlYXZpbmcgPyBmYWRlT3V0IDogZmFkZUluXG4gICAgICB9ICR7ZHVyYXRpb259ICR7dGltaW5nRnVuY3Rpb259IGJvdGhgLFxuICAgICAgXCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSlcIjogeyBhbmltYXRpb246IFwibm9uZVwiIH0sXG4gICAgfTtcbiAgfVxuKTtcblxuZnVuY3Rpb24gZWRnZVN0eWxlcyhcbiAgcG9zaXRpb25YPzogRWRnZVgsXG4gIHBvc2l0aW9uWT86IEVkZ2VZXG4pOiBQaWNrPENTU09iamVjdCwgXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcInRvcFwiIHwgXCJib3R0b21cIj4ge1xuICByZXR1cm4ge1xuICAgIC4uLihwb3NpdGlvblggPT09IFwibGVmdFwiICYmIHsgbGVmdDogMCB9KSxcbiAgICAuLi4ocG9zaXRpb25YID09PSBcInJpZ2h0XCIgJiYgeyByaWdodDogMCB9KSxcbiAgICAuLi4oIXBvc2l0aW9uWCAmJiB7IGxlZnQ6IFwiNTAlXCIgfSksXG4gICAgLi4uKHBvc2l0aW9uWSA9PT0gXCJ0b3BcIiAmJiB7IHRvcDogMCB9KSxcbiAgICAuLi4ocG9zaXRpb25ZID09PSBcImJvdHRvbVwiICYmIHsgYm90dG9tOiAwIH0pLFxuICAgIC4uLighcG9zaXRpb25ZICYmIHsgdG9wOiBcIjUwJVwiIH0pLFxuICB9O1xufVxuXG4vLyBUaGUgZHJhd2VyIHNsaWRlcyBpbiBmcm9tIHdoaWNoZXZlciBlZGdlIGl0J3MgcGlubmVkIHRvOyBYIHdpbnMgb3ZlciBZIHdoZW5cbi8vIGJvdGggYXJlIHNldCAoY29ybmVyIHBpbikuIEEgY2VudGVyZWQgZHJhd2VyIChuZWl0aGVyIHNldCkgZG9lc24ndCBzbGlkZSDigJRcbi8vIGl0IG9ubHkgZmFkZXMuXG5mdW5jdGlvbiBnZXRTbGlkZU9mZnNldChcbiAgcG9zaXRpb25YOiBFZGdlWCB8IHVuZGVmaW5lZCxcbiAgcG9zaXRpb25ZOiBFZGdlWSB8IHVuZGVmaW5lZCxcbiAgcmVzdFg6IHN0cmluZyxcbiAgcmVzdFk6IHN0cmluZ1xuKTogeyB4OiBzdHJpbmc7IHk6IHN0cmluZyB9IHtcbiAgaWYgKHBvc2l0aW9uWCA9PT0gXCJsZWZ0XCIpIHJldHVybiB7IHg6IFwiLTEwMCVcIiwgeTogcmVzdFkgfTtcbiAgaWYgKHBvc2l0aW9uWCA9PT0gXCJyaWdodFwiKSByZXR1cm4geyB4OiBcIjEwMCVcIiwgeTogcmVzdFkgfTtcbiAgaWYgKHBvc2l0aW9uWSA9PT0gXCJ0b3BcIikgcmV0dXJuIHsgeDogcmVzdFgsIHk6IFwiLTEwMCVcIiB9O1xuICBpZiAocG9zaXRpb25ZID09PSBcImJvdHRvbVwiKSByZXR1cm4geyB4OiByZXN0WCwgeTogXCIxMDAlXCIgfTtcbiAgcmV0dXJuIHsgeDogcmVzdFgsIHk6IHJlc3RZIH07XG59XG5cbnR5cGUgU3R5bGVkQ29udGVudFByb3BzID0ge1xuICBwb3NpdGlvblg/OiBFZGdlWDtcbiAgcG9zaXRpb25ZPzogRWRnZVk7XG4gIGlzTGVhdmluZzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFN0eWxlZENvbnRlbnQgPSBzdHlsZWQuZGl2PFN0eWxlZENvbnRlbnRQcm9wcz4oXG4gICh7IHRoZW1lLCBwb3NpdGlvblgsIHBvc2l0aW9uWSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgICAvLyBSZXN0aW5nIHRyYW5zbGF0ZTogMCUgd2hlbiBwaW5uZWQgdG8gYW4gZWRnZSAoYWxyZWFkeSBwb3NpdGlvbmVkIHZpYVxuICAgIC8vIGxlZnQvcmlnaHQvdG9wL2JvdHRvbSksIC01MCUgd2hlbiBjZW50ZXJlZCAocmVjZW50ZXJzIHRoZSBib3gpLlxuICAgIGNvbnN0IHJlc3RYID0gcG9zaXRpb25YID8gXCIwJVwiIDogXCItNTAlXCI7XG4gICAgY29uc3QgcmVzdFkgPSBwb3NpdGlvblkgPyBcIjAlXCIgOiBcIi01MCVcIjtcbiAgICBjb25zdCB7IHg6IGZyb21YLCB5OiBmcm9tWSB9ID0gZ2V0U2xpZGVPZmZzZXQoXG4gICAgICBwb3NpdGlvblgsXG4gICAgICBwb3NpdGlvblksXG4gICAgICByZXN0WCxcbiAgICAgIHJlc3RZXG4gICAgKTtcbiAgICAvLyBSZXN0aW5nIHRyYW5zZm9ybSBhcHBsaWVkIG91dHNpZGUgdGhlIGFuaW1hdGlvbiB0b28gc28gaXQgaG9sZHMgYWZ0ZXJcbiAgICAvLyB0aGUgYW5pbWF0aW9uIGVuZHMuXG4gICAgY29uc3QgcmVzdGluZyA9IGB0cmFuc2xhdGUoJHtyZXN0WH0sICR7cmVzdFl9KWA7XG4gICAgY29uc3Qgb2Zmc2NyZWVuID0gYHRyYW5zbGF0ZSgke2Zyb21YfSwgJHtmcm9tWX0pYDtcbiAgICBjb25zdCBzbGlkZUluID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IHRyYW5zZm9ybTogJHtvZmZzY3JlZW59OyB9XG4gICAgICB0byB7IHRyYW5zZm9ybTogJHtyZXN0aW5nfTsgfVxuICAgIGA7XG4gICAgY29uc3Qgc2xpZGVPdXQgPSBrZXlmcmFtZXNgXG4gICAgICBmcm9tIHsgdHJhbnNmb3JtOiAke3Jlc3Rpbmd9OyB9XG4gICAgICB0byB7IHRyYW5zZm9ybTogJHtvZmZzY3JlZW59OyB9XG4gICAgYDtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID1cbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubmF2U2xpZGUub3BlbjtcbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgIC4uLmVkZ2VTdHlsZXMocG9zaXRpb25YLCBwb3NpdGlvblkpLFxuICAgICAgdHJhbnNmb3JtOiByZXN0aW5nLFxuICAgICAgd2lsbENoYW5nZTogXCJ0cmFuc2Zvcm1cIixcbiAgICAgIGFuaW1hdGlvbjogYCR7XG4gICAgICAgIGlzTGVhdmluZyA/IHNsaWRlT3V0IDogc2xpZGVJblxuICAgICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC8vIEhvbm9yIHJlZHVjZWQtbW90aW9uOiBza2lwIHRoZSBzbGlkZSwga2VlcCB0aGUgcmVzdGluZyBwb3NpdGlvbi5cbiAgICAgIFwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCI6IHsgYW5pbWF0aW9uOiBcIm5vbmVcIiB9LFxuICAgIH07XG4gIH1cbik7XG5cbi8vIE5vbi1pbnRlcmFjdGl2ZSBzbyBjbGlja3Mgb24gdGhlIGRpbW1lZCBhcmVhIGZhbGwgdGhyb3VnaCB0byB0aGUgbGF5ZXIsIHdoZXJlXG4vLyBvdXRzaWRlLWNsaWNrIGRpc21pc3NhbCBpcyBkZXRlY3RlZC5cbmNvbnN0IFN0eWxlZEJhY2tkcm9wID0gc3R5bGVkKEJhY2tkcm9wKSh7IHBvaW50ZXJFdmVudHM6IFwibm9uZVwiIH0pO1xuXG4vLyBUaGUgZmlyc3QgZm9jdXNhYmxlIGRlc2NlbmRhbnQsIGZhbGxpbmcgYmFjayB0byB0aGUgY29udGFpbmVyLCB0aGVuIHRoZSBib2R5LlxuZnVuY3Rpb24gZ2V0Rm9jdXNUYXJnZXQoXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBkb2N1bWVudDogRG9jdW1lbnRcbik6IEhUTUxFbGVtZW50IHtcbiAgcmV0dXJuIChcbiAgICBjb250YWluZXI/LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KEZPQ1VTQUJMRV9TRUxFQ1RPUikgPz9cbiAgICBjb250YWluZXIgPz9cbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVJbml0aWFsRm9jdXMoXG4gIGluaXRpYWxGb2N1czogRHJhd2VyUHJvcHNbXCJpbml0aWFsRm9jdXNcIl0sXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBkb2N1bWVudDogRG9jdW1lbnRcbik6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB8IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgaW5pdGlhbEZvY3VzID09PSBcInN0cmluZ1wiKSByZXR1cm4gaW5pdGlhbEZvY3VzO1xuICByZXR1cm4gaW5pdGlhbEZvY3VzPy5jdXJyZW50ID8/IGdldEZvY3VzVGFyZ2V0KGNvbnRhaW5lciwgZG9jdW1lbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRHJhd2VyKHtcbiAgYmFja2Ryb3BSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgaW5pdGlhbEZvY3VzLFxuICBpc0Rpc21pc3NpYmxlID0gdHJ1ZSxcbiAgaXNWaXNpYmxlID0gdHJ1ZSxcbiAgb25Vbm1vdW50LFxuICBoYXNCYWNrZHJvcCA9IHRydWUsXG4gIHBvc2l0aW9uWCxcbiAgcG9zaXRpb25ZLFxuICBjaGlsZHJlbixcbiAgaGFuZGxlQ2xvc2UsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7XG4gICAgc2tpcFBvcnRhbDogZmFsc2UsXG4gIH0sXG4gIC4uLnJlc3Rcbn06IFByb3BzV2l0aENoaWxkcmVuPERyYXdlclByb3BzPik6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bGwge1xuICBjb25zdCBwb3J0YWxDb250YWluZXJFbGVtZW50ID0gdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudChwb3J0YWxDb250YWluZXIpO1xuICBjb25zdCBjb250ZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRvY3VtZW50ID0gdXNlRG9jdW1lbnQoKTtcblxuICAvLyBUaGUgY29uc3VtZXIgZHJpdmVzIGBpc1Zpc2libGVgOyB0aGlzIGtlZXBzIHRoZSBkcmF3ZXIgbW91bnRlZCB0aHJvdWdoIGl0c1xuICAvLyBleGl0IGFuaW1hdGlvbi5cbiAgY29uc3QgeyBpc01vdW50ZWQsIGlzTGVhdmluZywgb25BbmltYXRpb25FbmQgfSA9IHVzZUV4aXRBbmltYXRpb24oaXNWaXNpYmxlKTtcblxuICAvLyBOb3RpZnkgb25jZSB0aGUgZHJhd2VyIGFjdHVhbGx5IGxlYXZlcyB0aGUgdHJlZSDigJQgYWZ0ZXIgdGhlIGV4aXQgYW5pbWF0aW9uLFxuICAvLyBvciBpbW1lZGlhdGVseSB1bmRlciByZWR1Y2VkIG1vdGlvbi4gVGhlIGhvb2sgaXRzZWxmIGtub3dzIG5vdGhpbmcgb2YgdGhpcy5cbiAgY29uc3Qgd2FzTW91bnRlZCA9IHVzZVJlZihpc01vdW50ZWQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YXNNb3VudGVkLmN1cnJlbnQgJiYgIWlzTW91bnRlZCkge1xuICAgICAgb25Vbm1vdW50Py4oKTtcbiAgICB9XG4gICAgd2FzTW91bnRlZC5jdXJyZW50ID0gaXNNb3VudGVkO1xuICB9LCBbaXNNb3VudGVkLCBvblVubW91bnRdKTtcblxuICAvLyBUaGUgbGF5ZXIgaXMgaWRlbnRpZmllZCBpbnRlcm5hbGx5IHNvIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIHdvcmtzIHdpdGhvdXRcbiAgLy8gdGhlIGNvbnN1bWVyIHdpcmluZyBhIHJlZi4gYGJhY2tkcm9wUmVmYCwgaWYgZ2l2ZW4sIGZhbnMgb3V0IHRvIHRoYXQgbm9kZS5cbiAgY29uc3QgbGF5ZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2V0TGF5ZXJOb2RlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgbGF5ZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBjb25zdCBleHRlcm5hbFJlZiA9IGJhY2tkcm9wUmVmIGFzXG4gICAgICAgIHwgTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGV4dGVybmFsUmVmKSB7XG4gICAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2JhY2tkcm9wUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZURlYWN0aXZhdGVzID0gdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwoe1xuICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQsXG4gICAgb3V0ZXJSZWY6IGxheWVyUmVmLFxuICAgIGlzRGlzbWlzc2libGUsXG4gIH0pO1xuXG4gIC8vIFJlbmRlciBub3RoaW5nIG9uY2UgZnVsbHkgY2xvc2VkIChhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gaGFzIGZpbmlzaGVkKS5cbiAgaWYgKCFpc01vdW50ZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPFN0eWxlZFZpZXdwb3J0TGF5ZXJcbiAgICAgIHJlZj17c2V0TGF5ZXJOb2RlfVxuICAgICAgZGF0YS1kcy1pZD1cIkRyYXdlclwiXG4gICAgICBpc0xlYXZpbmc9e2lzTGVhdmluZ31cbiAgICA+XG4gICAgICB7aGFzQmFja2Ryb3AgJiYgPFN0eWxlZEJhY2tkcm9wIGRhdGEtZHMtaWQ9XCJEcmF3ZXJCYWNrZHJvcFwiIC8+fVxuICAgICAgPEZvY3VzVHJhcFdyYXBwZXJcbiAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgIGZvY3VzVHJhcE9wdGlvbnM9e3tcbiAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogdHJ1ZSwgLy8gYWxsb3cgY2xpY2sgb24gbW9iaWxlIGluIGFueSBkcm9wZG93bnNcbiAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWUsXG4gICAgICAgICAgaW5pdGlhbEZvY3VzOiAoKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZUluaXRpYWxGb2N1cyhpbml0aWFsRm9jdXMsIGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIGZhbGxiYWNrRm9jdXM6ICgpID0+IGdldEZvY3VzVGFyZ2V0KGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IGhhbmRsZUNsb3NlPy4oKSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbnRlbnRcbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgcG9zaXRpb25YPXtwb3NpdGlvblh9XG4gICAgICAgICAgcG9zaXRpb25ZPXtwb3NpdGlvbll9XG4gICAgICAgICAgaXNMZWF2aW5nPXtpc0xlYXZpbmd9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDb250ZW50PlxuICAgICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICAgIDwvU3R5bGVkVmlld3BvcnRMYXllcj5cbiAgKTtcblxuICAvLyBGb3IgdGVzdGluZyB3ZSBkb24ndCB3YW50IHRvIHJlbmRlciB0aGUgY29udGVudCBpbnNpZGUgYSBwb3J0YWxcbiAgaWYgKHNraXBQb3J0YWwpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU+XG4gICAgICA8UG9ydGFsIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfT57Y29udGVudH08L1BvcnRhbD5cbiAgICA8L0RpYWxvZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEhzQiJ9 */"),StyledBackdrop=styled(Backdrop,{target:"e11o9pe92",label:"StyledBackdrop"})({pointerEvents:"none"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvRHJhd2VyL0RyYXdlci50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0ludGVybmFsL0RyYXdlci9EcmF3ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1wcm9wcy1uby1zcHJlYWRpbmcgKi9cbmltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VSZWYsXG4gIHR5cGUgTXV0YWJsZVJlZk9iamVjdCxcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdHlwZSBSZWZPYmplY3QsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBrZXlmcmFtZXMsIHR5cGUgQ1NTT2JqZWN0IH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2tEZWFjdGl2YXRlc1dpdGhpblBvcnRhbCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWxcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgRk9DVVNBQkxFX1NFTEVDVE9SIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9mb2N1c2FibGVTZWxlY3RvclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDb250YWluZXJFbGVtZW50LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vLi4vUG9ydGFsL1BvcnRhbFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgRGlhbG9nQ29udGV4dCB9IGZyb20gXCIuLi8uLi9QYXR0ZXJucy9EaWFsb2cvRGlhbG9nQ29udGV4dFwiO1xuaW1wb3J0IHsgQmFja2Ryb3AgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL0JhY2tkcm9wL0JhY2tkcm9wXCI7XG5pbXBvcnQgdHlwZSB7IFZpZXdwb3J0UG9zaXRpb24gfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL0Zsb2F0aW5nUG9zaXRpb24vdXNlRmxvYXRpbmdQb3NpdGlvblwiO1xuaW1wb3J0IHsgdXNlRXhpdEFuaW1hdGlvbiB9IGZyb20gXCIuL3VzZUV4aXRBbmltYXRpb25cIjtcblxudHlwZSBFZGdlWCA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xudHlwZSBFZGdlWSA9IFwidG9wXCIgfCBcImJvdHRvbVwiO1xuXG5leHBvcnQgdHlwZSBEcmF3ZXJQcm9wcyA9IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiAmIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVbXSB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHZpc2liaWxpdHkuIFRvZ2dsaW5nIGBmYWxzZWAgcGxheXMgdGhlIGV4aXQgYW5pbWF0aW9uLCB0aGVuXG4gICAqIHVubW91bnRzIChmaXJpbmcgYG9uVW5tb3VudGApLiBLZWVwIHRoZSBEcmF3ZXIgbW91bnRlZCBhbmQgZHJpdmUgdGhpcyByYXRoZXJcbiAgICogdGhhbiBjb25kaXRpb25hbGx5IHJlbmRlcmluZyBpdC4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgLyoqIENhbGxlZCBhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gY29tcGxldGVzIGFuZCB0aGUgZHJhd2VyIGlzIHJlbW92ZWQuICovXG4gIG9uVW5tb3VudD86ICgpID0+IHZvaWQ7XG4gIGJhY2tkcm9wUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBpc0Rpc21pc3NpYmxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVuZGVyIHRoZSBkaW1taW5nIGJhY2tkcm9wIGJlaGluZCB0aGUgY29udGVudC4gRGVmYXVsdCBgdHJ1ZWAuXG4gICAqL1xuICBoYXNCYWNrZHJvcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBIHJlZiB0byB0aGUgZWxlbWVudCB0aGF0IHNob3VsZCByZWNlaXZlIGZvY3VzIHdoZW4gdGhlIGRyYXdlciBvcGVucy5cbiAgICogV2hlbiBub3QgcHJvdmlkZWQsIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBpbnNpZGUgdGhlIGRyYXdlciBpcyB1c2VkLlxuICAgKi9cbiAgaW5pdGlhbEZvY3VzPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudD4gfCBzdHJpbmc7XG4gIHByaXZhdGVQcm9wcz86IHtcbiAgICBza2lwUG9ydGFsPzogYm9vbGVhbjtcbiAgfTtcbn0gJiBWaWV3cG9ydFBvc2l0aW9uICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbnR5cGUgU3R5bGVkVmlld3BvcnRMYXllclByb3BzID0geyBpc0xlYXZpbmc6IGJvb2xlYW4gfTtcblxuY29uc3QgU3R5bGVkVmlld3BvcnRMYXllciA9IHN0eWxlZC5kaXY8U3R5bGVkVmlld3BvcnRMYXllclByb3BzPihcbiAgKHsgdGhlbWUsIGlzTGVhdmluZyB9KSA9PiB7XG4gICAgY29uc3QgeyBoaWRkZW4sIHZpc2libGUgfSA9IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5O1xuICAgIGNvbnN0IGZhZGVJbiA9IGtleWZyYW1lc2BcbiAgICAgIGZyb20geyBvcGFjaXR5OiAke2hpZGRlbn07IH1cbiAgICAgIHRvIHsgb3BhY2l0eTogJHt2aXNpYmxlfTsgfVxuICAgIGA7XG4gICAgY29uc3QgZmFkZU91dCA9IGtleWZyYW1lc2BcbiAgICAgIGZyb20geyBvcGFjaXR5OiAke3Zpc2libGV9OyB9XG4gICAgICB0byB7IG9wYWNpdHk6ICR7aGlkZGVufTsgfVxuICAgIGA7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgdGltaW5nRnVuY3Rpb24gfSA9XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3BlbjtcbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgIHRvcDogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwZHZoXCIsXG4gICAgICBhbmltYXRpb246IGAke1xuICAgICAgICBpc0xlYXZpbmcgPyBmYWRlT3V0IDogZmFkZUluXG4gICAgICB9ICR7ZHVyYXRpb259ICR7dGltaW5nRnVuY3Rpb259IGJvdGhgLFxuICAgICAgXCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSlcIjogeyBhbmltYXRpb246IFwibm9uZVwiIH0sXG4gICAgfTtcbiAgfVxuKTtcblxuZnVuY3Rpb24gZWRnZVN0eWxlcyhcbiAgcG9zaXRpb25YPzogRWRnZVgsXG4gIHBvc2l0aW9uWT86IEVkZ2VZXG4pOiBQaWNrPENTU09iamVjdCwgXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcInRvcFwiIHwgXCJib3R0b21cIj4ge1xuICByZXR1cm4ge1xuICAgIC4uLihwb3NpdGlvblggPT09IFwibGVmdFwiICYmIHsgbGVmdDogMCB9KSxcbiAgICAuLi4ocG9zaXRpb25YID09PSBcInJpZ2h0XCIgJiYgeyByaWdodDogMCB9KSxcbiAgICAuLi4oIXBvc2l0aW9uWCAmJiB7IGxlZnQ6IFwiNTAlXCIgfSksXG4gICAgLi4uKHBvc2l0aW9uWSA9PT0gXCJ0b3BcIiAmJiB7IHRvcDogMCB9KSxcbiAgICAuLi4ocG9zaXRpb25ZID09PSBcImJvdHRvbVwiICYmIHsgYm90dG9tOiAwIH0pLFxuICAgIC4uLighcG9zaXRpb25ZICYmIHsgdG9wOiBcIjUwJVwiIH0pLFxuICB9O1xufVxuXG4vLyBUaGUgZHJhd2VyIHNsaWRlcyBpbiBmcm9tIHdoaWNoZXZlciBlZGdlIGl0J3MgcGlubmVkIHRvOyBYIHdpbnMgb3ZlciBZIHdoZW5cbi8vIGJvdGggYXJlIHNldCAoY29ybmVyIHBpbikuIEEgY2VudGVyZWQgZHJhd2VyIChuZWl0aGVyIHNldCkgZG9lc24ndCBzbGlkZSDigJRcbi8vIGl0IG9ubHkgZmFkZXMuXG5mdW5jdGlvbiBnZXRTbGlkZU9mZnNldChcbiAgcG9zaXRpb25YOiBFZGdlWCB8IHVuZGVmaW5lZCxcbiAgcG9zaXRpb25ZOiBFZGdlWSB8IHVuZGVmaW5lZCxcbiAgcmVzdFg6IHN0cmluZyxcbiAgcmVzdFk6IHN0cmluZ1xuKTogeyB4OiBzdHJpbmc7IHk6IHN0cmluZyB9IHtcbiAgaWYgKHBvc2l0aW9uWCA9PT0gXCJsZWZ0XCIpIHJldHVybiB7IHg6IFwiLTEwMCVcIiwgeTogcmVzdFkgfTtcbiAgaWYgKHBvc2l0aW9uWCA9PT0gXCJyaWdodFwiKSByZXR1cm4geyB4OiBcIjEwMCVcIiwgeTogcmVzdFkgfTtcbiAgaWYgKHBvc2l0aW9uWSA9PT0gXCJ0b3BcIikgcmV0dXJuIHsgeDogcmVzdFgsIHk6IFwiLTEwMCVcIiB9O1xuICBpZiAocG9zaXRpb25ZID09PSBcImJvdHRvbVwiKSByZXR1cm4geyB4OiByZXN0WCwgeTogXCIxMDAlXCIgfTtcbiAgcmV0dXJuIHsgeDogcmVzdFgsIHk6IHJlc3RZIH07XG59XG5cbnR5cGUgU3R5bGVkQ29udGVudFByb3BzID0ge1xuICBwb3NpdGlvblg/OiBFZGdlWDtcbiAgcG9zaXRpb25ZPzogRWRnZVk7XG4gIGlzTGVhdmluZzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFN0eWxlZENvbnRlbnQgPSBzdHlsZWQuZGl2PFN0eWxlZENvbnRlbnRQcm9wcz4oXG4gICh7IHRoZW1lLCBwb3NpdGlvblgsIHBvc2l0aW9uWSwgaXNMZWF2aW5nIH0pID0+IHtcbiAgICAvLyBSZXN0aW5nIHRyYW5zbGF0ZTogMCUgd2hlbiBwaW5uZWQgdG8gYW4gZWRnZSAoYWxyZWFkeSBwb3NpdGlvbmVkIHZpYVxuICAgIC8vIGxlZnQvcmlnaHQvdG9wL2JvdHRvbSksIC01MCUgd2hlbiBjZW50ZXJlZCAocmVjZW50ZXJzIHRoZSBib3gpLlxuICAgIGNvbnN0IHJlc3RYID0gcG9zaXRpb25YID8gXCIwJVwiIDogXCItNTAlXCI7XG4gICAgY29uc3QgcmVzdFkgPSBwb3NpdGlvblkgPyBcIjAlXCIgOiBcIi01MCVcIjtcbiAgICBjb25zdCB7IHg6IGZyb21YLCB5OiBmcm9tWSB9ID0gZ2V0U2xpZGVPZmZzZXQoXG4gICAgICBwb3NpdGlvblgsXG4gICAgICBwb3NpdGlvblksXG4gICAgICByZXN0WCxcbiAgICAgIHJlc3RZXG4gICAgKTtcbiAgICAvLyBSZXN0aW5nIHRyYW5zZm9ybSBhcHBsaWVkIG91dHNpZGUgdGhlIGFuaW1hdGlvbiB0b28gc28gaXQgaG9sZHMgYWZ0ZXJcbiAgICAvLyB0aGUgYW5pbWF0aW9uIGVuZHMuXG4gICAgY29uc3QgcmVzdGluZyA9IGB0cmFuc2xhdGUoJHtyZXN0WH0sICR7cmVzdFl9KWA7XG4gICAgY29uc3Qgb2Zmc2NyZWVuID0gYHRyYW5zbGF0ZSgke2Zyb21YfSwgJHtmcm9tWX0pYDtcbiAgICBjb25zdCBzbGlkZUluID0ga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7IHRyYW5zZm9ybTogJHtvZmZzY3JlZW59OyB9XG4gICAgICB0byB7IHRyYW5zZm9ybTogJHtyZXN0aW5nfTsgfVxuICAgIGA7XG4gICAgY29uc3Qgc2xpZGVPdXQgPSBrZXlmcmFtZXNgXG4gICAgICBmcm9tIHsgdHJhbnNmb3JtOiAke3Jlc3Rpbmd9OyB9XG4gICAgICB0byB7IHRyYW5zZm9ybTogJHtvZmZzY3JlZW59OyB9XG4gICAgYDtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCB0aW1pbmdGdW5jdGlvbiB9ID1cbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubmF2U2xpZGUub3BlbjtcbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgIC4uLmVkZ2VTdHlsZXMocG9zaXRpb25YLCBwb3NpdGlvblkpLFxuICAgICAgdHJhbnNmb3JtOiByZXN0aW5nLFxuICAgICAgd2lsbENoYW5nZTogXCJ0cmFuc2Zvcm1cIixcbiAgICAgIGFuaW1hdGlvbjogYCR7XG4gICAgICAgIGlzTGVhdmluZyA/IHNsaWRlT3V0IDogc2xpZGVJblxuICAgICAgfSAke2R1cmF0aW9ufSAke3RpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC8vIEhvbm9yIHJlZHVjZWQtbW90aW9uOiBza2lwIHRoZSBzbGlkZSwga2VlcCB0aGUgcmVzdGluZyBwb3NpdGlvbi5cbiAgICAgIFwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCI6IHsgYW5pbWF0aW9uOiBcIm5vbmVcIiB9LFxuICAgIH07XG4gIH1cbik7XG5cbi8vIE5vbi1pbnRlcmFjdGl2ZSBzbyBjbGlja3Mgb24gdGhlIGRpbW1lZCBhcmVhIGZhbGwgdGhyb3VnaCB0byB0aGUgbGF5ZXIsIHdoZXJlXG4vLyBvdXRzaWRlLWNsaWNrIGRpc21pc3NhbCBpcyBkZXRlY3RlZC5cbmNvbnN0IFN0eWxlZEJhY2tkcm9wID0gc3R5bGVkKEJhY2tkcm9wKSh7IHBvaW50ZXJFdmVudHM6IFwibm9uZVwiIH0pO1xuXG4vLyBUaGUgZmlyc3QgZm9jdXNhYmxlIGRlc2NlbmRhbnQsIGZhbGxpbmcgYmFjayB0byB0aGUgY29udGFpbmVyLCB0aGVuIHRoZSBib2R5LlxuZnVuY3Rpb24gZ2V0Rm9jdXNUYXJnZXQoXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBkb2N1bWVudDogRG9jdW1lbnRcbik6IEhUTUxFbGVtZW50IHtcbiAgcmV0dXJuIChcbiAgICBjb250YWluZXI/LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KEZPQ1VTQUJMRV9TRUxFQ1RPUikgPz9cbiAgICBjb250YWluZXIgPz9cbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVJbml0aWFsRm9jdXMoXG4gIGluaXRpYWxGb2N1czogRHJhd2VyUHJvcHNbXCJpbml0aWFsRm9jdXNcIl0sXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBkb2N1bWVudDogRG9jdW1lbnRcbik6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB8IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgaW5pdGlhbEZvY3VzID09PSBcInN0cmluZ1wiKSByZXR1cm4gaW5pdGlhbEZvY3VzO1xuICByZXR1cm4gaW5pdGlhbEZvY3VzPy5jdXJyZW50ID8/IGdldEZvY3VzVGFyZ2V0KGNvbnRhaW5lciwgZG9jdW1lbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRHJhd2VyKHtcbiAgYmFja2Ryb3BSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgaW5pdGlhbEZvY3VzLFxuICBpc0Rpc21pc3NpYmxlID0gdHJ1ZSxcbiAgaXNWaXNpYmxlID0gdHJ1ZSxcbiAgb25Vbm1vdW50LFxuICBoYXNCYWNrZHJvcCA9IHRydWUsXG4gIHBvc2l0aW9uWCxcbiAgcG9zaXRpb25ZLFxuICBjaGlsZHJlbixcbiAgaGFuZGxlQ2xvc2UsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7XG4gICAgc2tpcFBvcnRhbDogZmFsc2UsXG4gIH0sXG4gIC4uLnJlc3Rcbn06IFByb3BzV2l0aENoaWxkcmVuPERyYXdlclByb3BzPik6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bGwge1xuICBjb25zdCBwb3J0YWxDb250YWluZXJFbGVtZW50ID0gdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudChwb3J0YWxDb250YWluZXIpO1xuICBjb25zdCBjb250ZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRvY3VtZW50ID0gdXNlRG9jdW1lbnQoKTtcblxuICAvLyBUaGUgY29uc3VtZXIgZHJpdmVzIGBpc1Zpc2libGVgOyB0aGlzIGtlZXBzIHRoZSBkcmF3ZXIgbW91bnRlZCB0aHJvdWdoIGl0c1xuICAvLyBleGl0IGFuaW1hdGlvbi5cbiAgY29uc3QgeyBpc01vdW50ZWQsIGlzTGVhdmluZywgb25BbmltYXRpb25FbmQgfSA9IHVzZUV4aXRBbmltYXRpb24oaXNWaXNpYmxlKTtcblxuICAvLyBOb3RpZnkgb25jZSB0aGUgZHJhd2VyIGFjdHVhbGx5IGxlYXZlcyB0aGUgdHJlZSDigJQgYWZ0ZXIgdGhlIGV4aXQgYW5pbWF0aW9uLFxuICAvLyBvciBpbW1lZGlhdGVseSB1bmRlciByZWR1Y2VkIG1vdGlvbi4gVGhlIGhvb2sgaXRzZWxmIGtub3dzIG5vdGhpbmcgb2YgdGhpcy5cbiAgY29uc3Qgd2FzTW91bnRlZCA9IHVzZVJlZihpc01vdW50ZWQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YXNNb3VudGVkLmN1cnJlbnQgJiYgIWlzTW91bnRlZCkge1xuICAgICAgb25Vbm1vdW50Py4oKTtcbiAgICB9XG4gICAgd2FzTW91bnRlZC5jdXJyZW50ID0gaXNNb3VudGVkO1xuICB9LCBbaXNNb3VudGVkLCBvblVubW91bnRdKTtcblxuICAvLyBUaGUgbGF5ZXIgaXMgaWRlbnRpZmllZCBpbnRlcm5hbGx5IHNvIG91dHNpZGUtY2xpY2sgZGlzbWlzc2FsIHdvcmtzIHdpdGhvdXRcbiAgLy8gdGhlIGNvbnN1bWVyIHdpcmluZyBhIHJlZi4gYGJhY2tkcm9wUmVmYCwgaWYgZ2l2ZW4sIGZhbnMgb3V0IHRvIHRoYXQgbm9kZS5cbiAgY29uc3QgbGF5ZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2V0TGF5ZXJOb2RlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgbGF5ZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBjb25zdCBleHRlcm5hbFJlZiA9IGJhY2tkcm9wUmVmIGFzXG4gICAgICAgIHwgTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGV4dGVybmFsUmVmKSB7XG4gICAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2JhY2tkcm9wUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZURlYWN0aXZhdGVzID0gdXNlT3V0c2lkZUNsaWNrRGVhY3RpdmF0ZXNXaXRoaW5Qb3J0YWwoe1xuICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQsXG4gICAgb3V0ZXJSZWY6IGxheWVyUmVmLFxuICAgIGlzRGlzbWlzc2libGUsXG4gIH0pO1xuXG4gIC8vIFJlbmRlciBub3RoaW5nIG9uY2UgZnVsbHkgY2xvc2VkIChhZnRlciB0aGUgZXhpdCBhbmltYXRpb24gaGFzIGZpbmlzaGVkKS5cbiAgaWYgKCFpc01vdW50ZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPFN0eWxlZFZpZXdwb3J0TGF5ZXJcbiAgICAgIHJlZj17c2V0TGF5ZXJOb2RlfVxuICAgICAgZGF0YS1kcy1pZD1cIkRyYXdlclwiXG4gICAgICBpc0xlYXZpbmc9e2lzTGVhdmluZ31cbiAgICA+XG4gICAgICB7aGFzQmFja2Ryb3AgJiYgPFN0eWxlZEJhY2tkcm9wIGRhdGEtZHMtaWQ9XCJEcmF3ZXJCYWNrZHJvcFwiIC8+fVxuICAgICAgPEZvY3VzVHJhcFdyYXBwZXJcbiAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgIGZvY3VzVHJhcE9wdGlvbnM9e3tcbiAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogdHJ1ZSwgLy8gYWxsb3cgY2xpY2sgb24gbW9iaWxlIGluIGFueSBkcm9wZG93bnNcbiAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWUsXG4gICAgICAgICAgaW5pdGlhbEZvY3VzOiAoKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZUluaXRpYWxGb2N1cyhpbml0aWFsRm9jdXMsIGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIGZhbGxiYWNrRm9jdXM6ICgpID0+IGdldEZvY3VzVGFyZ2V0KGNvbnRlbnRSZWYuY3VycmVudCwgZG9jdW1lbnQpLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IGhhbmRsZUNsb3NlPy4oKSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbnRlbnRcbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgcG9zaXRpb25YPXtwb3NpdGlvblh9XG4gICAgICAgICAgcG9zaXRpb25ZPXtwb3NpdGlvbll9XG4gICAgICAgICAgaXNMZWF2aW5nPXtpc0xlYXZpbmd9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDb250ZW50PlxuICAgICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICAgIDwvU3R5bGVkVmlld3BvcnRMYXllcj5cbiAgKTtcblxuICAvLyBGb3IgdGVzdGluZyB3ZSBkb24ndCB3YW50IHRvIHJlbmRlciB0aGUgY29udGVudCBpbnNpZGUgYSBwb3J0YWxcbiAgaWYgKHNraXBQb3J0YWwpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU+XG4gICAgICA8UG9ydGFsIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfT57Y29udGVudH08L1BvcnRhbD5cbiAgICA8L0RpYWxvZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0t1QiJ9 */");function getFocusTarget(container,document){return container?.querySelector(FOCUSABLE_SELECTOR)??container??document.body}export function Drawer({backdropRef,portalContainer,initialFocus,isDismissible=!0,isVisible=!0,onUnmount,hasBackdrop=!0,positionX,positionY,children,handleClose,privateProps:{skipPortal}={skipPortal:!1},...rest}){let portalContainerElement=usePortalContainerElement(portalContainer),contentRef=useRef(null),document=useDocument(),{isMounted,isLeaving,onAnimationEnd}=useExitAnimation(isVisible),wasMounted=useRef(isMounted);useEffect(()=>{wasMounted.current&&!isMounted&&onUnmount?.(),wasMounted.current=isMounted},[isMounted,onUnmount]);let layerRef=useRef(null),setLayerNode=useCallback(node=>{layerRef.current=node,backdropRef&&(backdropRef.current=node)},[backdropRef]),handleClickOutsideDeactivates=useOutsideClickDeactivatesWithinPortal({portalContainerElement,outerRef:layerRef,isDismissible});if(!isMounted)return null;let content=React.createElement(StyledViewportLayer,{ref:setLayerNode,"data-ds-id":"Drawer",isLeaving:isLeaving},hasBackdrop&&React.createElement(StyledBackdrop,{"data-ds-id":"DrawerBackdrop"}),React.createElement(FocusTrapWrapper,{active:isVisible,focusTrapOptions:{allowOutsideClick:!0,clickOutsideDeactivates:handleClickOutsideDeactivates,escapeDeactivates:isDismissible,preventScroll:!0,initialFocus:()=>{var container;return container=contentRef.current,"string"==typeof initialFocus?initialFocus:initialFocus?.current??getFocusTarget(container,document)},fallbackFocus:()=>getFocusTarget(contentRef.current,document),onPostDeactivate:()=>handleClose?.()}},React.createElement(StyledContent,{...rest,ref:contentRef,positionX:positionX,positionY:positionY,isLeaving:isLeaving,onAnimationEnd:onAnimationEnd,role:"dialog","aria-modal":"true"},children)));return skipPortal?content:React.createElement(DialogContext.Provider,{value:!0},React.createElement(Portal,{portalContainer:portalContainer},content))}
@@ -0,0 +1,21 @@
1
+ import { type AnimationEventHandler } from "react";
2
+ export type ExitAnimation = {
3
+ /** Whether the node should render at all (entering, present, or mid-exit). */
4
+ isMounted: boolean;
5
+ /** Whether the exit animation is currently playing. */
6
+ isLeaving: boolean;
7
+ /** Attach to the animated node; tears it down once its exit animation ends. */
8
+ onAnimationEnd: AnimationEventHandler<HTMLElement>;
9
+ };
10
+ /**
11
+ * Keeps a node mounted through its CSS exit animation. The consumer drives
12
+ * `isVisible`; when it flips to `false` the node stays mounted
13
+ * (`isLeaving === true`) until its own `animationend` fires. The flip happens
14
+ * DURING render (not in an effect) so `isMounted` never reads `false` for a
15
+ * commit while the exit is pending. Reduced motion unmounts immediately, since
16
+ * with no animation there is no `animationend` to wait for.
17
+ *
18
+ * Knows nothing about the animation itself — that lives in CSS on the
19
+ * consumer's styled components, keyed off `isLeaving`.
20
+ */
21
+ export declare function useExitAnimation(isVisible: boolean): ExitAnimation;
@@ -0,0 +1 @@
1
+ import{useCallback,useState}from"react";import{useWindow}from"../../../shared/useWindow";import{prefersReducedMotion}from"../../../shared/prefersReducedMotion";export function useExitAnimation(isVisible){let window=useWindow(),[isClosing,setIsClosing]=useState(!1),[prevVisible,setPrevVisible]=useState(isVisible);isVisible!==prevVisible&&(setPrevVisible(isVisible),setIsClosing(!isVisible&&!prefersReducedMotion(window)));let isLeaving=isClosing&&!isVisible,onAnimationEnd=useCallback(event=>{event.target===event.currentTarget&&isLeaving&&setIsClosing(!1)},[isLeaving]);return{isMounted:isVisible||isClosing,isLeaving,onAnimationEnd}}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import type { Size } from "../../Layout/-types";
3
+ export type LayoutFloatProps = {
4
+ /** Window width. Number = px, string = any CSS length. Default `378`. */
5
+ width?: Size;
6
+ /** Window height. Number = px, string = any CSS length. Default `480`.
7
+ * Media-query-driven height logic plugs in here later. */
8
+ height?: Size;
9
+ /** Ref callback for the window's content host element - the container the
10
+ * panel's persistent content node is appended into. */
11
+ hostRef: (el: HTMLDivElement | null) => void;
12
+ "data-e2e-test-id"?: string;
13
+ };
14
+ export declare const LayoutFloat: React.MemoExoticComponent<({ width, height, hostRef, "data-e2e-test-id": dataE2eTestId, }: LayoutFloatProps) => React.ReactElement>;
@@ -0,0 +1 @@
1
+ import React from"react";import styled from"@emotion/styled";import{Float}from"../Float/Float";let DEFAULT_WIDTH=378,DEFAULT_HEIGHT=480,StyledWindow=styled("div",{shouldForwardProp:prop=>"width"!==prop&&"height"!==prop,target:"e1cm4x3o0",label:"StyledWindow"})(({theme,width,height})=>({position:"relative",width,height,overflow:"hidden",borderRadius:theme.variables.size.borderRadius.m,border:`1px solid ${theme.values.color.border.secondary.default}`,boxShadow:theme.values.elevation[4],background:theme.values.color.background.primary.default}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvTGF5b3V0RmxvYXQvTGF5b3V0RmxvYXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9MYXlvdXRGbG9hdC9MYXlvdXRGbG9hdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBGbG9hdCB9IGZyb20gXCIuLi9GbG9hdC9GbG9hdFwiO1xuaW1wb3J0IHR5cGUgeyBTaXplIH0gZnJvbSBcIi4uLy4uL0xheW91dC8tdHlwZXNcIjtcblxuLy8gTWlycm9ycyBSaWdodFBhbmVsJ3MgZGVmYXVsdCBkZWZhdWx0U2l6ZSAtIHRoZSB3aW5kb3cga2VlcHMgdGhlIHBhbmVsIHdpZHRoLlxuY29uc3QgREVGQVVMVF9XSURUSCA9IDM3ODtcbmNvbnN0IERFRkFVTFRfSEVJR0hUID0gNDgwO1xuXG5leHBvcnQgdHlwZSBMYXlvdXRGbG9hdFByb3BzID0ge1xuICAvKiogV2luZG93IHdpZHRoLiBOdW1iZXIgPSBweCwgc3RyaW5nID0gYW55IENTUyBsZW5ndGguIERlZmF1bHQgYDM3OGAuICovXG4gIHdpZHRoPzogU2l6ZTtcbiAgLyoqIFdpbmRvdyBoZWlnaHQuIE51bWJlciA9IHB4LCBzdHJpbmcgPSBhbnkgQ1NTIGxlbmd0aC4gRGVmYXVsdCBgNDgwYC5cbiAgICogIE1lZGlhLXF1ZXJ5LWRyaXZlbiBoZWlnaHQgbG9naWMgcGx1Z3MgaW4gaGVyZSBsYXRlci4gKi9cbiAgaGVpZ2h0PzogU2l6ZTtcbiAgLyoqIFJlZiBjYWxsYmFjayBmb3IgdGhlIHdpbmRvdydzIGNvbnRlbnQgaG9zdCBlbGVtZW50IC0gdGhlIGNvbnRhaW5lciB0aGVcbiAgICogIHBhbmVsJ3MgcGVyc2lzdGVudCBjb250ZW50IG5vZGUgaXMgYXBwZW5kZWQgaW50by4gKi9cbiAgaG9zdFJlZjogKGVsOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xufTtcblxuY29uc3QgU3R5bGVkV2luZG93ID0gc3R5bGVkKFwiZGl2XCIsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSBcIndpZHRoXCIgJiYgcHJvcCAhPT0gXCJoZWlnaHRcIixcbn0pPHsgd2lkdGg6IFNpemU7IGhlaWdodDogU2l6ZSB9PigoeyB0aGVtZSwgd2lkdGgsIGhlaWdodCB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aCxcbiAgaGVpZ2h0LFxuICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubSxcbiAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdH1gLFxuICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bNF0sXG4gIGJhY2tncm91bmQ6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbn0pKTtcblxuLyoqXG4gKiBUaGUgZmxvYXRpbmcgd2luZG93IHNoZWxsIGhvc3RpbmcgYSBsYXlvdXQgcGFuZWwncyBjb250ZW50IHdoaWxlIGl0cyB2YXJpYW50XG4gKiBpcyBgXCJmbG9hdFwiYC4gUGlucyB0byB0aGUgYm90dG9tLXJpZ2h0IHZpZXdwb3J0IGNvcm5lciB2aWEgdGhlIGludGVybmFsXG4gKiBgRmxvYXRgIHBvc2l0aW9uZXIgKHBvc2l0aW9uIGlzIGRlbGliZXJhdGVseSBub3QgY29uZmlndXJhYmxlIC0gYSBmdXR1cmVcbiAqIGRyYWcgZWZmb3J0IGJyaW5ncyBpdHMgb3duIEFQSSkuIFB1cmVseSBwcmVzZW50YXRpb25hbDogdGhlIGNvbnRlbnQgYXJyaXZlc1xuICogYnkgdGhlIHBhbmVsJ3MgcGVyc2lzdGVudCBob3N0IG5vZGUgYmVpbmcgYXBwZW5kZWQgaW50byBgaG9zdFJlZmAncyBlbGVtZW50LlxuICovXG5jb25zdCBMYXlvdXRGbG9hdEJhc2UgPSAoe1xuICB3aWR0aCA9IERFRkFVTFRfV0lEVEgsXG4gIGhlaWdodCA9IERFRkFVTFRfSEVJR0hULFxuICBob3N0UmVmLFxuICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbn06IExheW91dEZsb2F0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT4gKFxuICA8RmxvYXQgcG9zaXRpb25YPVwicmlnaHRcIiBwb3NpdGlvblk9XCJib3R0b21cIj5cbiAgICA8U3R5bGVkV2luZG93XG4gICAgICBkYXRhLWRzLWlkPVwiTGF5b3V0RmxvYXRcIlxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgcmVmPXtob3N0UmVmfVxuICAgIC8+XG4gIDwvRmxvYXQ+XG4pO1xuXG5leHBvcnQgY29uc3QgTGF5b3V0RmxvYXQgPSBSZWFjdC5tZW1vKExheW91dEZsb2F0QmFzZSk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJxQiJ9 */");export const LayoutFloat=React.memo(({width=DEFAULT_WIDTH,height=DEFAULT_HEIGHT,hostRef,"data-e2e-test-id":dataE2eTestId})=>React.createElement(Float,{positionX:"right",positionY:"bottom"},React.createElement(StyledWindow,{"data-ds-id":"LayoutFloat","data-e2e-test-id":dataE2eTestId,width:width,height:height,ref:hostRef})));
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { LayoutStorage } from "react-resizable-panels";
2
+ import type { LayoutStorage, PanelImperativeHandle } from "react-resizable-panels";
3
3
  /** A size: plain number = pixels; unitless string = percentage ("10%"). */
4
4
  type Size = number | string;
5
5
  export type PanelItem = {
@@ -25,6 +25,19 @@ export type PanelProps = {
25
25
  onResize: (id: string, size: string) => void;
26
26
  /** Reports a drag past `minSize` on a collapsible panel. */
27
27
  onCollapse: (id: string) => void;
28
+ /** Ref callback for a panel's imperative handle (resize/getSize), used to
29
+ * animate a column's open/close width. */
30
+ panelHandleFor?: (id: string) => (handle: PanelImperativeHandle | null) => void;
31
+ /** Ref callback for a panel's column DOM element, used to set the width
32
+ * slide's `flex-grow` transition imperatively. */
33
+ panelElementFor?: (id: string) => (element: HTMLDivElement | null) => void;
34
+ /** When it returns `true`, the Group's layout callbacks (resize/collapse
35
+ * reporting and size persistence) are skipped, so a slide's intermediate
36
+ * layouts - the 0-width start of an open especially, which would read as a
37
+ * drag-to-collapse - aren't acted on. GROUP-WIDE: while ANY panel slides,
38
+ * reporting is muted for the whole row; the settled layout is reported once
39
+ * it lifts (~300ms). */
40
+ shouldSuppressLayoutCallback?: () => boolean;
28
41
  };
29
42
  /**
30
43
  * Internal resizable panel row — the only wrapper around react-resizable-panels.
@@ -32,5 +45,5 @@ export type PanelProps = {
32
45
  * `hostFor`), persists sizes, and reports drag-resize / drag-to-collapse. The
33
46
  * public `Layout` component is the intended consumer.
34
47
  */
35
- export declare function Panel({ panels, persistenceKey, storage, hostFor, onResize, onCollapse, }: PanelProps): React.ReactElement;
48
+ export declare function Panel({ panels, persistenceKey, storage, hostFor, onResize, onCollapse, panelHandleFor, panelElementFor, shouldSuppressLayoutCallback, }: PanelProps): React.ReactElement;
36
49
  export {};