@1money/component-ui 0.0.42 → 0.0.44

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 (68) hide show
  1. package/README.md +19 -24
  2. package/es/components/Dropdown/Dropdown.js +11 -3
  3. package/es/components/Icons/interface.d.ts +3 -0
  4. package/es/components/Input/FieldShell/FieldShell.css +1 -1
  5. package/es/components/Input/FieldShell/FieldShell.js +2 -3
  6. package/es/components/Select/Select.js +130 -91
  7. package/es/components/Select/SelectCustom.d.ts +6 -0
  8. package/es/components/Select/SelectCustom.js +232 -0
  9. package/es/components/Select/SelectFieldShell.d.ts +2 -0
  10. package/es/components/Select/SelectFieldShell.js +12 -4
  11. package/es/components/Select/SelectOptionContent.d.ts +8 -0
  12. package/es/components/Select/SelectOptionContent.js +20 -11
  13. package/es/components/Select/SelectSearchControl.d.ts +3 -0
  14. package/es/components/Select/SelectSearchControl.js +9 -4
  15. package/es/components/Select/index.d.ts +5 -2
  16. package/es/components/Select/index.js +8 -3
  17. package/es/components/Select/interface.d.ts +147 -1
  18. package/es/components/Select/interface.js +1 -1
  19. package/es/components/Select/style/Select.css +1 -1
  20. package/es/components/Select/useSelectShell.d.ts +34 -0
  21. package/es/components/Select/useSelectShell.js +106 -0
  22. package/es/components/Trigger/Trigger.js +33 -8
  23. package/es/components/Trigger/interface.d.ts +25 -2
  24. package/es/components/Upload/interface.d.ts +2 -0
  25. package/es/hooks/index.d.ts +2 -0
  26. package/es/hooks/index.js +2 -0
  27. package/es/hooks/useFloatingAnimation.d.ts +24 -0
  28. package/es/hooks/useFloatingAnimation.js +45 -0
  29. package/es/index.css +1 -1
  30. package/es/index.d.ts +2 -2
  31. package/es/index.js +1 -1
  32. package/es/stories/docs/ComponentDocsPage.js +2 -2
  33. package/es/stories/docs/componentDocMeta.js +1 -4
  34. package/lib/components/Dropdown/Dropdown.js +11 -3
  35. package/lib/components/Icons/interface.d.ts +3 -0
  36. package/lib/components/Input/FieldShell/FieldShell.css +1 -1
  37. package/lib/components/Input/FieldShell/FieldShell.js +2 -3
  38. package/lib/components/Select/Select.js +129 -90
  39. package/lib/components/Select/SelectCustom.d.ts +6 -0
  40. package/lib/components/Select/SelectCustom.js +242 -0
  41. package/lib/components/Select/SelectFieldShell.d.ts +2 -0
  42. package/lib/components/Select/SelectFieldShell.js +12 -4
  43. package/lib/components/Select/SelectOptionContent.d.ts +8 -0
  44. package/lib/components/Select/SelectOptionContent.js +21 -12
  45. package/lib/components/Select/SelectSearchControl.d.ts +3 -0
  46. package/lib/components/Select/SelectSearchControl.js +9 -4
  47. package/lib/components/Select/index.d.ts +5 -2
  48. package/lib/components/Select/index.js +9 -17
  49. package/lib/components/Select/interface.d.ts +147 -1
  50. package/lib/components/Select/interface.js +1 -1
  51. package/lib/components/Select/style/Select.css +1 -1
  52. package/lib/components/Select/useSelectShell.d.ts +34 -0
  53. package/lib/components/Select/useSelectShell.js +114 -0
  54. package/lib/components/Trigger/Trigger.js +32 -7
  55. package/lib/components/Trigger/interface.d.ts +25 -2
  56. package/lib/components/Upload/interface.d.ts +2 -0
  57. package/lib/hooks/index.d.ts +2 -0
  58. package/lib/hooks/index.js +13 -0
  59. package/lib/hooks/useFloatingAnimation.d.ts +24 -0
  60. package/lib/hooks/useFloatingAnimation.js +51 -0
  61. package/lib/index.css +1 -1
  62. package/lib/index.d.ts +2 -2
  63. package/lib/index.js +1 -1
  64. package/lib/stories/docs/ComponentDocsPage.js +2 -2
  65. package/lib/stories/docs/componentDocMeta.js +1 -4
  66. package/package.json +1 -1
  67. package/scripts/mcp-server/examples.generated.json +549 -519
  68. package/scripts/mcp-server/index.generated.json +887 -583
@@ -1,4 +1,21 @@
1
+ import type { Placement, UseRoleProps } from '@floating-ui/react';
1
2
  import type { CSSProperties, FocusEvent, HTMLAttributes, ReactNode, RefObject } from 'react';
3
+ import type { FloatingAnimation } from "../../hooks/useFloatingAnimation";
4
+ export type SelectOffset = number | {
5
+ mainAxis?: number;
6
+ crossAxis?: number;
7
+ alignmentAxis?: number | null;
8
+ };
9
+ export type SelectCustomRole = UseRoleProps['role'];
10
+ export interface SelectCustomTriggerContext {
11
+ open: boolean;
12
+ disabled: boolean;
13
+ readOnly: boolean;
14
+ }
15
+ export interface SelectCustomPanelContext {
16
+ close: () => void;
17
+ open: boolean;
18
+ }
2
19
  export declare const SELECT_SIZES: readonly ["large", "small"];
3
20
  export declare const SELECT_STATUSES: readonly ["default", "error", "warning", "success"];
4
21
  export declare const SELECT_VARIANTS: readonly ["fill", "stroke", "frameless"];
@@ -15,6 +32,13 @@ export interface SelectOption {
15
32
  disabled?: boolean;
16
33
  description?: ReactNode;
17
34
  searchText?: string;
35
+ /**
36
+ * Allow consumers to attach arbitrary per-option metadata (icon, badges, etc.)
37
+ * accessible inside `renderOption` / `renderOptionContent` / `renderValue`.
38
+ * Cast to a local typed shape (e.g. `option as AssetOption`) at the access site
39
+ * for autocompletion + typo-checking.
40
+ */
41
+ [key: string]: unknown;
18
42
  }
19
43
  export interface SelectOptionGroup {
20
44
  label: ReactNode;
@@ -32,6 +56,7 @@ export interface SelectRenderOptionMeta {
32
56
  }
33
57
  export interface SelectRenderValueMeta {
34
58
  disabled: boolean;
59
+ readOnly: boolean;
35
60
  multiple: boolean;
36
61
  maxVisibleValues?: number;
37
62
  open: boolean;
@@ -56,12 +81,19 @@ export interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defau
56
81
  status?: SelectStatus;
57
82
  variant?: SelectVariant;
58
83
  disabled?: boolean;
84
+ readOnly?: boolean;
85
+ loading?: boolean;
59
86
  multiple?: boolean;
60
87
  maxVisibleValues?: number;
61
88
  searchable?: boolean;
62
89
  searchPlaceholder?: string;
63
90
  searchValue?: string;
64
91
  defaultSearchValue?: string;
92
+ /**
93
+ * Whether to auto-focus the search input when the panel opens (only when `searchable` is true).
94
+ * @default true
95
+ */
96
+ filterInputAutoFocus?: boolean;
65
97
  label?: ReactNode;
66
98
  info?: ReactNode;
67
99
  description?: ReactNode;
@@ -72,12 +104,126 @@ export interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defau
72
104
  panelFooter?: ReactNode;
73
105
  open?: boolean;
74
106
  defaultOpen?: boolean;
107
+ portal?: boolean;
108
+ allowDeselect?: boolean;
109
+ panelClassName?: string;
110
+ optionClassName?: string;
75
111
  listMaxHeight?: number;
76
- onChange?: (value: SelectValue, option?: SelectOption | SelectOption[]) => void;
112
+ /**
113
+ * Gap between panel and trigger.
114
+ * - `number`: shorthand for `mainAxis` (perpendicular distance, in px).
115
+ * - object form (forwarded to floating-ui's `offset` middleware):
116
+ * - `mainAxis`: distance perpendicular to the placement edge.
117
+ * - `crossAxis`: distance parallel to the placement edge.
118
+ * - `alignmentAxis`: shift along the alignment edge for `*-start` / `*-end` placements.
119
+ * @default 0
120
+ */
121
+ offset?: SelectOffset;
122
+ /**
123
+ * Open/close animation. Default `{ duration: { open: 150, close: 100 }, initialScale: 0.96 }`.
124
+ * Set to `false` to disable animation entirely (panel appears/disappears instantly).
125
+ */
126
+ animation?: FloatingAnimation;
127
+ onChange?: (value: SelectValue, option?: SelectOption | SelectOption[],
128
+ /** Echoes back the `name` prop so a single handler can route updates by field. */
129
+ name?: string) => void;
77
130
  onOpenChange?: (open: boolean) => void;
78
131
  onSearchChange?: (value: string) => void;
79
132
  onBlur?: (event?: FocusEvent<HTMLElement>) => void;
80
133
  filterOption?: SelectFilterOption;
134
+ /**
135
+ * Fully replace an option's rendering, including the trailing selected check.
136
+ * Use when you need complete control of the option layout (e.g. custom check
137
+ * indicator). If both `renderOption` and `renderOptionContent` are provided,
138
+ * `renderOption` wins.
139
+ */
81
140
  renderOption?: (option: SelectOption, meta: SelectRenderOptionMeta) => ReactNode;
141
+ /**
142
+ * Replace only the content portion of an option; the default selected check
143
+ * is still rendered by the component. Prefer this over `renderOption` when
144
+ * you only need a custom option body.
145
+ */
146
+ renderOptionContent?: (option: SelectOption, meta: SelectRenderOptionMeta) => ReactNode;
82
147
  renderValue?: (option: SelectOption | SelectOption[] | null, meta: SelectRenderValueMeta) => ReactNode;
83
148
  }
149
+ export interface SelectCustomProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onBlur' | 'prefix'> {
150
+ ref?: RefObject<HTMLButtonElement | null>;
151
+ className?: string;
152
+ prefixCls?: string;
153
+ style?: CSSProperties;
154
+ id?: string;
155
+ name?: string;
156
+ 'aria-label'?: string;
157
+ 'aria-labelledby'?: string;
158
+ size?: SelectSize | 'middle';
159
+ status?: SelectStatus;
160
+ variant?: SelectVariant;
161
+ disabled?: boolean;
162
+ readOnly?: boolean;
163
+ loading?: boolean;
164
+ label?: ReactNode;
165
+ info?: ReactNode;
166
+ description?: ReactNode;
167
+ feedback?: ReactNode;
168
+ required?: boolean;
169
+ prefix?: ReactNode;
170
+ placeholder?: ReactNode;
171
+ /**
172
+ * Content rendered inside the trigger when something is "selected".
173
+ * Falsy values (`null` / `undefined` / `false`) fall back to `placeholder`.
174
+ * Pass a function to receive the current open/disabled state.
175
+ */
176
+ selectedTemplate?: ReactNode | ((ctx: SelectCustomTriggerContext) => ReactNode);
177
+ /**
178
+ * Whether to render the chevron icon at the trailing end of the trigger.
179
+ * @default true
180
+ */
181
+ arrow?: boolean;
182
+ open?: boolean;
183
+ defaultOpen?: boolean;
184
+ portal?: boolean;
185
+ panelClassName?: string;
186
+ panelFooter?: ReactNode;
187
+ listMaxHeight?: number;
188
+ /**
189
+ * Floating-ui placement of the panel relative to the trigger.
190
+ * @default 'bottom-start'
191
+ */
192
+ placement?: Placement;
193
+ /**
194
+ * Override the panel width. Number is treated as `px`; string is used as-is
195
+ * (e.g. `'354px'`, `'100%'`). When unset, the panel width matches the
196
+ * trigger width.
197
+ */
198
+ panelWidth?: number | string;
199
+ /**
200
+ * Gap between panel and trigger.
201
+ * - `number`: shorthand for `mainAxis` (perpendicular distance, in px).
202
+ * - object form (forwarded to floating-ui's `offset` middleware):
203
+ * - `mainAxis`: distance perpendicular to the placement edge.
204
+ * - `crossAxis`: distance parallel to the placement edge.
205
+ * - `alignmentAxis`: shift along the alignment edge for `*-start` / `*-end` placements.
206
+ * @default 0
207
+ */
208
+ offset?: SelectOffset;
209
+ /**
210
+ * ARIA role applied to the floating panel and matched on the trigger via
211
+ * `aria-haspopup`. Defaults to `'dialog'` because the panel content is
212
+ * arbitrary — set to `'listbox'` / `'menu'` / `'tree'` etc. only if the
213
+ * panel actually exposes that semantic to assistive tech.
214
+ * @default 'dialog'
215
+ */
216
+ role?: SelectCustomRole;
217
+ /**
218
+ * Open/close animation. Default `{ kind: 'height', duration: { open: 150, close: 100 } }`.
219
+ * Set to `false` to disable.
220
+ */
221
+ animation?: FloatingAnimation;
222
+ onOpenChange?: (open: boolean) => void;
223
+ onBlur?: (event?: FocusEvent<HTMLElement>) => void;
224
+ /**
225
+ * Panel body. Receives `{ close, open }` so consumers can dismiss the panel
226
+ * after interacting (e.g. picking an item).
227
+ */
228
+ children?: ReactNode | ((ctx: SelectCustomPanelContext) => ReactNode);
229
+ }
@@ -1,4 +1,4 @@
1
1
  export var SELECT_SIZES = ['large', 'small'];
2
2
  export var SELECT_STATUSES = ['default', 'error', 'warning', 'success'];
3
3
  export var SELECT_VARIANTS = ['fill', 'stroke', 'frameless'];
4
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6WyJTRUxFQ1RfU0laRVMiLCJTRUxFQ1RfU1RBVFVTRVMiLCJTRUxFQ1RfVkFSSUFOVFMiXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sSUFBTUEsWUFBWSxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBVTtBQUN2RCxPQUFPLElBQU1DLGVBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBVTtBQUNsRixPQUFPLElBQU1DLGVBQWUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFVIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L2ludGVyZmFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6WyJTRUxFQ1RfU0laRVMiLCJTRUxFQ1RfU1RBVFVTRVMiLCJTRUxFQ1RfVkFSSUFOVFMiXSwibWFwcGluZ3MiOiJBQXFCQSxPQUFPLElBQU1BLFlBQVksR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVU7QUFDdkQsT0FBTyxJQUFNQyxlQUFlLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQVU7QUFDbEYsT0FBTyxJQUFNQyxlQUFlLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBVSIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9pbnRlcmZhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1 +1 @@
1
- .om-component-ui-select{display:flex;flex-direction:column;gap:var(--om-spacing-200,8px);width:100%}.om-component-ui-select-label-row{display:inline-flex;gap:var(--om-spacing-100,4px);align-items:center}.om-component-ui-select-label-text{display:inline}.om-component-ui-select-required{color:var(--om-text-danger,#ae0000)}.om-component-ui-select-info{display:inline-flex;align-items:center;color:var(--om-icon-default-tertiary,#646465)}.om-component-ui-select-description-text{display:block}.om-component-ui-select-trigger{display:flex;gap:var(--om-spacing-200,8px);align-items:center;width:100%;min-width:120px;color:inherit;text-align:left;border:1px solid var(--om-border-default,#d1d2d2);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.om-component-ui-select-trigger-large{min-height:var(--om-component-height-3xl,56px);padding:var(--om-spacing-300,12px);border-radius:var(--om-radius-300,12px)}.om-component-ui-select-trigger-small{min-height:var(--om-component-height-lg,44px);padding:var(--om-spacing-200,8px) var(--om-spacing-300,12px);border-radius:var(--om-radius-200,8px)}.om-component-ui-select-trigger-fill{background-color:var(--om-bg-default-secondary,#f8f8f8)}.om-component-ui-select-trigger-stroke{background-color:transparent}.om-component-ui-select-trigger-frameless{justify-content:flex-start;width:auto;min-width:auto;min-height:auto;padding:0;background:transparent;border:none;border-radius:0}.om-component-ui-select-trigger:not(.om-component-ui-select-trigger-disabled):hover{border-color:var(--om-border-default-tertiary,#404042)}.om-component-ui-select-trigger-frameless:not(.om-component-ui-select-trigger-disabled):hover{border-color:transparent}.om-component-ui-select-trigger-open{border-color:var(--om-border-brand,#073387);box-shadow:inset 0 0 0 1px var(--om-border-brand,#073387)}.om-component-ui-select-trigger-error{border-color:var(--om-border-danger,#ae0000)}.om-component-ui-select-trigger-warning{border-color:var(--om-border-warning,#db8600)}.om-component-ui-select-trigger-success{border-color:var(--om-border-positive,#1f5800)}.om-component-ui-select-trigger-disabled{color:var(--om-text-disabled,#bbbdc1);background-color:var(--om-bg-disabled,#f0f0f0);border-color:var(--om-border-disabled,#e3e4e4);box-shadow:none;cursor:not-allowed}.om-component-ui-select-trigger-error,.om-component-ui-select-trigger-frameless,.om-component-ui-select-trigger-success,.om-component-ui-select-trigger-warning{box-shadow:none}.om-component-ui-select-trigger-disabled .om-component-ui-select-icon,.om-component-ui-select-trigger-disabled .om-component-ui-select-prefix{color:var(--om-icon-disabled,#d1d2d2)}.om-component-ui-select-content{display:flex;flex:1 1 auto;gap:var(--om-spacing-200,8px);align-items:center;min-width:0}.om-component-ui-select-prefix{display:inline-flex;flex-shrink:0;align-items:center;color:var(--om-icon-default-tertiary,#646465)}.om-component-ui-select-placeholder,.om-component-ui-select-value{display:inline-flex;flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-value-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-strong-font-weight)}.om-component-ui-select-value-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-strong-font-weight)}.om-component-ui-select-placeholder-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight)}.om-component-ui-select-placeholder-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight)}.om-component-ui-select-value{color:var(--om-text-default,#131313)}.om-component-ui-select-value-multiple{display:flex;flex-wrap:wrap;gap:var(--om-spacing-200,8px);align-content:flex-start;align-items:center;max-height:88px;overflow:hidden;white-space:normal;text-overflow:clip}.om-component-ui-select-placeholder{color:var(--om-text-neutral-secondary,#9fa3a3)}.om-component-ui-select-placeholder-disabled,.om-component-ui-select-value-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-icon{display:inline-flex;flex-shrink:0;align-items:center;color:var(--om-icon-default,#131313)}.om-component-ui-select-trigger-multiple-filled{padding-top:var(--om-spacing-200,8px);padding-bottom:var(--om-spacing-200,8px)}.om-component-ui-select-tag{font-size:var(--om-body-sm-font-size);font-family:var(--om-body-sm-font-family);line-height:var(--om-body-sm-line-height);letter-spacing:var(--om-body-sm-letter-spacing);font-weight:var(--om-body-sm-strong-font-weight);display:inline-flex;flex-shrink:0;gap:var(--om-spacing-100,4px);align-items:center;justify-content:center;max-width:100%;padding:var(--om-spacing-100,4px) var(--om-spacing-200,8px);color:var(--om-text-default-tertiary,#646465);background-color:var(--om-bg-neutral-tertiary,#f0f0f0);border-radius:var(--om-radius-full,9999px)}.om-component-ui-select-tag-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-tag-remove{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:currentcolor}.om-component-ui-select-collapsed-values{display:inline-flex;flex:1 1 auto;gap:var(--om-spacing-100,4px);align-items:center;min-width:0}.om-component-ui-select-collapsed-values-list{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-collapsed-values-extra{flex-shrink:0;color:var(--om-text-default-secondary,#404042)}.om-component-ui-select-collapsed-values-extra-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-feedback{display:inline-flex;gap:var(--om-spacing-100,4px);align-items:flex-start;color:var(--om-text-default-secondary,#404042)}.om-component-ui-select-feedback-error{color:var(--om-text-danger,#ae0000)}.om-component-ui-select-feedback-warning{color:var(--om-text-warning,#db8600)}.om-component-ui-select-feedback-success{color:var(--om-text-positive,#1f5800)}.om-component-ui-select-feedback-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-feedback-icon{display:inline-flex;flex-shrink:0;align-items:center;margin-top:1px}.om-component-ui-select-panel{z-index:1500;display:flex;flex-direction:column;padding:var(--om-spacing-200,8px);overflow:hidden;background-color:var(--om-bg-default,#fff);border:1px solid var(--om-border-neutral-tertiary,#f8f8f8);border-radius:var(--om-radius-300,12px);box-shadow:var(--om-shadow-100,0 4px 8px rgba(65,91,130,.12))}.om-component-ui-select-search{display:flex;flex-shrink:0;gap:var(--om-spacing-200,8px);align-items:center;width:100%;min-height:var(--om-component-height-3xl,56px);margin-bottom:var(--om-spacing-200,8px);padding:var(--om-spacing-300,12px) var(--om-spacing-400,16px);background-color:var(--om-bg-default,#fff);border:1px solid var(--om-border-default,#d1d2d2);border-radius:var(--om-radius-300,12px);transition:border-color .2s ease,box-shadow .2s ease}.om-component-ui-select-search:hover{border-color:var(--om-border-default-tertiary,#404042)}.om-component-ui-select-search:focus-within{border-color:var(--om-border-brand,#073387);box-shadow:inset 0 0 0 1px var(--om-border-brand,#073387)}.om-component-ui-select-search-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:var(--om-icon-default,#131313)}.om-component-ui-select-search-input{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight);flex:1 1 auto;min-width:0;color:var(--om-text-default,#131313);background:transparent;border:none;outline:none}.om-component-ui-select-search-input::placeholder{color:var(--om-text-neutral-secondary,#9fa3a3)}.om-component-ui-select-panel-body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--om-spacing-050,2px);min-height:0;overflow-y:auto}.om-component-ui-select-panel-footer{flex-shrink:0;width:100%;padding-top:var(--om-spacing-300,12px);padding-bottom:var(--om-spacing-100,4px);border-top:1px solid var(--om-border-neutral-secondary,#f0f0f0)}.om-component-ui-select-group{display:flex;flex-direction:column;width:100%}.om-component-ui-select-group-label{padding:var(--om-spacing-200,8px) 0}.om-component-ui-select-group-label,.om-component-ui-select-option{display:flex;align-items:center;width:100%;color:var(--om-text-default,#131313)}.om-component-ui-select-option{gap:var(--om-spacing-300,12px);min-height:40px;margin:var(--om-spacing-100,4px) 0;padding:var(--om-spacing-200,8px);text-align:left;background:transparent;border:none;border-radius:var(--om-radius-200,8px);cursor:pointer;transition:background-color .2s ease}.om-component-ui-select-option:focus,.om-component-ui-select-option:focus-visible{outline:none;box-shadow:none}.om-component-ui-select-option-active,.om-component-ui-select-option-selected,.om-component-ui-select-option:hover{background-color:var(--om-bg-default-secondary,#f8f8f8)}.om-component-ui-select-option-disabled{color:var(--om-text-disabled,#bbbdc1);background-color:transparent;cursor:not-allowed}.om-component-ui-select-option-content{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--om-spacing-050,2px);min-width:0}.om-component-ui-select-option-label{color:currentcolor}.om-component-ui-select-option-description,.om-component-ui-select-option-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-option-check{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:16px;height:16px;margin-left:auto;color:var(--om-icon-brand,#073387)}.om-component-ui-select-empty{padding:var(--om-spacing-200,8px);text-align:center}.om-component-ui-select-frameless{width:auto}.om-component-ui-select-frameless .om-component-ui-select-placeholder-large,.om-component-ui-select-frameless .om-component-ui-select-value-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight);color:var(--om-text-default-tertiary,#646465)}.om-component-ui-select-frameless .om-component-ui-select-placeholder-small,.om-component-ui-select-frameless .om-component-ui-select-value-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight);color:var(--om-text-default-tertiary,#646465)}.om-component-ui-select-frameless.om-component-ui-select-disabled{color:var(--om-text-disabled,#bbbdc1)}
1
+ .om-component-ui-select{display:flex;flex-direction:column;gap:var(--om-spacing-200,8px);width:100%}.om-component-ui-select-label-row{display:inline-flex;gap:var(--om-spacing-100,4px);align-items:center}.om-component-ui-select-label-text{display:inline}.om-component-ui-select-required{color:var(--om-text-danger,#ae0000)}.om-component-ui-select-info{display:inline-flex;align-items:center;color:var(--om-icon-default-tertiary,#646465)}.om-component-ui-select-description-text{display:block}.om-component-ui-select-trigger{display:flex;gap:var(--om-spacing-200,8px);align-items:center;width:100%;min-width:120px;color:inherit;text-align:left;border:1px solid var(--om-border-default,#d1d2d2);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.om-component-ui-select-trigger-large{min-height:var(--om-component-height-3xl,56px);padding:var(--om-spacing-300,12px);border-radius:var(--om-radius-300,12px)}.om-component-ui-select-trigger-small{min-height:var(--om-component-height-lg,44px);padding:var(--om-spacing-200,8px) var(--om-spacing-300,12px);border-radius:var(--om-radius-200,8px)}.om-component-ui-select-trigger-fill{background-color:var(--om-bg-default-secondary,#f8f8f8)}.om-component-ui-select-trigger-stroke{background-color:transparent}.om-component-ui-select-trigger-frameless{justify-content:flex-start;width:auto;min-width:auto;min-height:auto;padding:0;background:transparent;border:none;border-radius:0}.om-component-ui-select-trigger:not(.om-component-ui-select-trigger-disabled,.om-component-ui-select-trigger-readonly):hover{border-color:var(--om-border-default-tertiary,#404042)}.om-component-ui-select-trigger-open:focus-visible,.om-component-ui-select-trigger:focus-visible{outline:none}.om-component-ui-select-trigger-frameless:not(.om-component-ui-select-trigger-disabled,.om-component-ui-select-trigger-readonly):hover{border-color:transparent}.om-component-ui-select-trigger-open{border-color:var(--om-border-brand,#073387);box-shadow:inset 0 0 0 1px var(--om-border-brand,#073387)}.om-component-ui-select-trigger-error{border-color:var(--om-border-danger,#ae0000)}.om-component-ui-select-trigger-warning{border-color:var(--om-border-warning,#db8600)}.om-component-ui-select-trigger-success{border-color:var(--om-border-positive,#1f5800)}.om-component-ui-select-trigger-disabled{color:var(--om-text-disabled,#bbbdc1);background-color:var(--om-bg-disabled,#f0f0f0);border-color:var(--om-border-disabled,#e3e4e4);box-shadow:none;cursor:not-allowed}.om-component-ui-select-trigger-readonly,.om-component-ui-select-trigger-readonly:focus,.om-component-ui-select-trigger-readonly:focus-visible,.om-component-ui-select-trigger-readonly:hover{background-color:var(--om-bg-neutral-tertiary,#f0f0f0);border-color:transparent;outline:none;box-shadow:none;cursor:default}.om-component-ui-select-trigger-error,.om-component-ui-select-trigger-frameless,.om-component-ui-select-trigger-success,.om-component-ui-select-trigger-warning{box-shadow:none}.om-component-ui-select-trigger-disabled .om-component-ui-select-icon,.om-component-ui-select-trigger-disabled .om-component-ui-select-prefix{color:var(--om-icon-disabled,#d1d2d2)}.om-component-ui-select-content{display:flex;flex:1 1 auto;gap:var(--om-spacing-200,8px);align-items:center;min-width:0}.om-component-ui-select-prefix{display:inline-flex;flex-shrink:0;align-items:center;color:var(--om-icon-default-tertiary,#646465)}.om-component-ui-select-placeholder,.om-component-ui-select-value{display:inline-flex;flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-value-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-strong-font-weight)}.om-component-ui-select-value-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-strong-font-weight)}.om-component-ui-select-placeholder-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight)}.om-component-ui-select-placeholder-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight)}.om-component-ui-select-value{color:var(--om-text-default,#131313)}.om-component-ui-select-value-multiple{display:flex;flex-wrap:wrap;gap:var(--om-spacing-200,8px);align-content:flex-start;align-items:center;max-height:88px;overflow:hidden;white-space:normal;text-overflow:clip}.om-component-ui-select-placeholder{color:var(--om-text-neutral-secondary,#9fa3a3)}.om-component-ui-select-placeholder-disabled,.om-component-ui-select-value-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-icon{display:inline-flex;flex-shrink:0;align-items:center;color:var(--om-icon-default,#131313)}.om-component-ui-select-trigger-multiple-filled{padding-top:var(--om-spacing-200,8px);padding-bottom:var(--om-spacing-200,8px)}.om-component-ui-select-tag{font-size:var(--om-body-sm-font-size);font-family:var(--om-body-sm-font-family);line-height:var(--om-body-sm-line-height);letter-spacing:var(--om-body-sm-letter-spacing);font-weight:var(--om-body-sm-strong-font-weight);display:inline-flex;flex-shrink:0;gap:var(--om-spacing-100,4px);align-items:center;justify-content:center;max-width:100%;padding:var(--om-spacing-100,4px) var(--om-spacing-200,8px);color:var(--om-text-default-tertiary,#646465);background-color:var(--om-bg-neutral-tertiary,#f0f0f0);border-radius:var(--om-radius-full,9999px)}.om-component-ui-select-tag-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-tag-remove{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:currentcolor}.om-component-ui-select-collapsed-values{display:inline-flex;flex:1 1 auto;gap:var(--om-spacing-100,4px);align-items:center;min-width:0}.om-component-ui-select-collapsed-values-list{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-collapsed-values-extra{flex-shrink:0;color:var(--om-text-default-secondary,#404042)}.om-component-ui-select-collapsed-values-extra-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-feedback{display:inline-flex;gap:var(--om-spacing-100,4px);align-items:center;color:var(--om-text-default-secondary,#404042)}.om-component-ui-select-feedback-error{color:var(--om-text-danger,#ae0000)!important}.om-component-ui-select-feedback-warning{color:var(--om-text-warning,#db8600)}.om-component-ui-select-feedback-success{color:var(--om-text-positive,#1f5800)}.om-component-ui-select-feedback-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-feedback-icon{display:inline-flex;flex-shrink:0;align-items:center;margin-top:1px}.om-component-ui-select-panel{z-index:1500;display:flex;flex-direction:column;padding:var(--om-spacing-200,8px);overflow:hidden;background-color:var(--om-bg-default,#fff);border:1px solid var(--om-border-neutral-tertiary,#f8f8f8);border-radius:var(--om-radius-300,12px);box-shadow:var(--om-shadow-100,0 4px 8px rgba(65,91,130,.12))}.om-component-ui-select-search{display:flex;flex-shrink:0;gap:var(--om-spacing-200,8px);align-items:center;width:100%;margin-bottom:var(--om-spacing-200,8px);background-color:var(--om-bg-default,#fff);border:1px solid var(--om-border-default,#d1d2d2);transition:border-color .2s ease,box-shadow .2s ease}.om-component-ui-select-search-large{min-height:var(--om-component-height-3xl,56px);padding:var(--om-spacing-300,12px) var(--om-spacing-400,16px);border-radius:var(--om-radius-300,12px)}.om-component-ui-select-search-small{min-height:var(--om-component-height-lg,44px);padding:var(--om-spacing-200,8px) var(--om-spacing-300,12px);border-radius:var(--om-radius-200,8px)}.om-component-ui-select-search:hover{border-color:var(--om-border-default-tertiary,#404042)}.om-component-ui-select-search:focus-within{border-color:var(--om-border-brand,#073387);box-shadow:inset 0 0 0 1px var(--om-border-brand,#073387)}.om-component-ui-select-search-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:var(--om-icon-default,#131313)}.om-component-ui-select-search-input{flex:1 1 auto;min-width:0;color:var(--om-text-default,#131313);background:transparent;border:none;outline:none}.om-component-ui-select-search-input-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight)}.om-component-ui-select-search-input-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight)}.om-component-ui-select-search-input::placeholder{color:var(--om-text-neutral-secondary,#9fa3a3)}.om-component-ui-select-panel-body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--om-spacing-050,2px);min-height:0;overflow-y:auto}.om-component-ui-select-panel-footer{flex-shrink:0;width:100%;padding-top:var(--om-spacing-300,12px);padding-bottom:var(--om-spacing-100,4px);border-top:1px solid var(--om-border-neutral-secondary,#f0f0f0)}.om-component-ui-select-group{display:flex;flex-direction:column;width:100%}.om-component-ui-select-group-label{padding:var(--om-spacing-200,8px) 0}.om-component-ui-select-group-label,.om-component-ui-select-option{display:flex;align-items:center;width:100%;color:var(--om-text-default,#131313)}.om-component-ui-select-option{gap:var(--om-spacing-300,12px);min-height:40px;margin:var(--om-spacing-100,4px) 0;padding:var(--om-spacing-200,8px);text-align:left;background:transparent;border:none;border-radius:var(--om-radius-200,8px);cursor:pointer;transition:background-color .2s ease}.om-component-ui-select-option:focus,.om-component-ui-select-option:focus-visible{outline:none;box-shadow:none}.om-component-ui-select-option-active,.om-component-ui-select-option-selected,.om-component-ui-select-option:hover{background-color:var(--om-bg-default-secondary,#f8f8f8)}.om-component-ui-select-option-disabled{color:var(--om-text-disabled,#bbbdc1);background-color:transparent;cursor:not-allowed}.om-component-ui-select-option-content{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--om-spacing-050,2px);min-width:0}.om-component-ui-select-option-label{color:currentcolor}.om-component-ui-select-option-description,.om-component-ui-select-option-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-option-check{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:16px;height:16px;margin-left:auto;color:var(--om-icon-brand,#073387)}.om-component-ui-select-empty{padding:var(--om-spacing-200,8px);text-align:center}.om-component-ui-select-frameless{width:auto}.om-component-ui-select-frameless .om-component-ui-select-placeholder-large,.om-component-ui-select-frameless .om-component-ui-select-value-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight);color:var(--om-text-default-tertiary,#646465)}.om-component-ui-select-frameless .om-component-ui-select-placeholder-small,.om-component-ui-select-frameless .om-component-ui-select-value-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight);color:var(--om-text-default-tertiary,#646465)}.om-component-ui-select-frameless.om-component-ui-select-disabled{color:var(--om-text-disabled,#bbbdc1)}
@@ -0,0 +1,34 @@
1
+ import type { ElementProps, FloatingContext, Placement, ReferenceType, UseFloatingReturn, UseRoleProps } from '@floating-ui/react';
2
+ import type { CSSProperties } from 'react';
3
+ import type { FloatingAnimation } from "../../hooks/useFloatingAnimation";
4
+ export type SelectShellOffset = number | {
5
+ mainAxis?: number;
6
+ crossAxis?: number;
7
+ alignmentAxis?: number | null;
8
+ };
9
+ export interface UseSelectShellOptions {
10
+ open?: boolean;
11
+ defaultOpen?: boolean;
12
+ onOpenChange?: (open: boolean) => void;
13
+ disabled?: boolean;
14
+ readOnly?: boolean;
15
+ placement?: Placement;
16
+ panelWidth?: number | string;
17
+ listMaxHeight?: number;
18
+ animation?: FloatingAnimation;
19
+ role?: UseRoleProps['role'];
20
+ offset?: SelectShellOffset;
21
+ }
22
+ export interface UseSelectShellReturn<RT extends ReferenceType = ReferenceType> {
23
+ isOpen: boolean;
24
+ setOpen: (open: boolean) => void;
25
+ refs: UseFloatingReturn<RT>['refs'];
26
+ context: FloatingContext<RT>;
27
+ placement: Placement;
28
+ floatingStyles: CSSProperties;
29
+ transitionStyles: CSSProperties;
30
+ isMounted: boolean;
31
+ baseInteractions: ElementProps[];
32
+ }
33
+ export declare function useSelectShell<RT extends HTMLElement = HTMLButtonElement>(options: UseSelectShellOptions): UseSelectShellReturn<RT>;
34
+ export default useSelectShell;
@@ -0,0 +1,106 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
3
+ import { autoUpdate, flip, offset, shift, size as floatingSize, useClick, useDismiss, useFloating, useRole } from '@floating-ui/react';
4
+ import { useMemo } from 'react';
5
+ import { useControlledState, useEventCallback } from '@1money/hooks';
6
+ import { useFloatingAnimation } from '../../hooks/useFloatingAnimation';
7
+ var DEFAULT_PLACEMENT = 'bottom-start';
8
+ var DEFAULT_LIST_MAX_HEIGHT = 320;
9
+ var PANEL_MIN_HEIGHT = 120;
10
+ export function useSelectShell(options) {
11
+ var open = options.open,
12
+ _options$defaultOpen = options.defaultOpen,
13
+ defaultOpen = _options$defaultOpen === void 0 ? false : _options$defaultOpen,
14
+ onOpenChange = options.onOpenChange,
15
+ _options$disabled = options.disabled,
16
+ disabled = _options$disabled === void 0 ? false : _options$disabled,
17
+ _options$readOnly = options.readOnly,
18
+ readOnly = _options$readOnly === void 0 ? false : _options$readOnly,
19
+ _options$placement = options.placement,
20
+ placement = _options$placement === void 0 ? DEFAULT_PLACEMENT : _options$placement,
21
+ panelWidth = options.panelWidth,
22
+ _options$listMaxHeigh = options.listMaxHeight,
23
+ listMaxHeight = _options$listMaxHeigh === void 0 ? DEFAULT_LIST_MAX_HEIGHT : _options$listMaxHeigh,
24
+ animation = options.animation,
25
+ _options$role = options.role,
26
+ roleType = _options$role === void 0 ? 'select' : _options$role,
27
+ _options$offset = options.offset,
28
+ offsetProp = _options$offset === void 0 ? 0 : _options$offset;
29
+ var interactive = !disabled && !readOnly;
30
+ var offsetIsObject = _typeof(offsetProp) === 'object' && offsetProp !== null;
31
+ var offsetMainAxis = offsetIsObject ? offsetProp.mainAxis : offsetProp;
32
+ var offsetCrossAxis = offsetIsObject ? offsetProp.crossAxis : undefined;
33
+ var offsetAlignmentAxis = offsetIsObject ? offsetProp.alignmentAxis : undefined;
34
+ var _useControlledState = useControlledState(defaultOpen, open),
35
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
36
+ isOpen = _useControlledState2[0],
37
+ setOpenState = _useControlledState2[1];
38
+ var setOpen = useEventCallback(function (nextOpen) {
39
+ setOpenState(nextOpen);
40
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
41
+ });
42
+ var _useFloating = useFloating({
43
+ open: isOpen,
44
+ onOpenChange: setOpen,
45
+ placement: placement,
46
+ whileElementsMounted: autoUpdate,
47
+ transform: false,
48
+ middleware: [offset({
49
+ mainAxis: offsetMainAxis,
50
+ crossAxis: offsetCrossAxis,
51
+ alignmentAxis: offsetAlignmentAxis
52
+ }, [offsetMainAxis, offsetCrossAxis, offsetAlignmentAxis]), flip({
53
+ padding: 8
54
+ }), shift({
55
+ padding: 8
56
+ }), floatingSize({
57
+ apply: function apply(_ref) {
58
+ var rects = _ref.rects,
59
+ elements = _ref.elements,
60
+ availableHeight = _ref.availableHeight;
61
+ var nextMaxHeight = Math.max(PANEL_MIN_HEIGHT, Math.min(listMaxHeight, availableHeight));
62
+ var resolvedWidth = panelWidth == null ? "".concat(rects.reference.width, "px") : typeof panelWidth === 'number' ? "".concat(panelWidth, "px") : panelWidth;
63
+ Object.assign(elements.floating.style, {
64
+ width: resolvedWidth,
65
+ maxHeight: "".concat(nextMaxHeight, "px")
66
+ });
67
+ }
68
+ }, [panelWidth, listMaxHeight])]
69
+ }),
70
+ refs = _useFloating.refs,
71
+ floatingStyles = _useFloating.floatingStyles,
72
+ context = _useFloating.context,
73
+ resolvedPlacement = _useFloating.placement;
74
+ var resolvedAnimation = useMemo(function () {
75
+ return animation === false ? false : Object.assign({
76
+ kind: 'height'
77
+ }, animation !== null && animation !== void 0 ? animation : {});
78
+ }, [animation]);
79
+ var _useFloatingAnimation = useFloatingAnimation(context, resolvedPlacement, resolvedAnimation),
80
+ isMounted = _useFloatingAnimation.isMounted,
81
+ transitionStyles = _useFloatingAnimation.styles;
82
+ var click = useClick(context, {
83
+ enabled: interactive
84
+ });
85
+ var dismiss = useDismiss(context, {
86
+ enabled: interactive,
87
+ outsidePressEvent: 'mousedown'
88
+ });
89
+ var role = useRole(context, {
90
+ role: roleType
91
+ });
92
+ var baseInteractions = [click, dismiss, role];
93
+ return {
94
+ isOpen: isOpen,
95
+ setOpen: setOpen,
96
+ refs: refs,
97
+ context: context,
98
+ placement: resolvedPlacement,
99
+ floatingStyles: floatingStyles,
100
+ transitionStyles: transitionStyles,
101
+ isMounted: isMounted,
102
+ baseInteractions: baseInteractions
103
+ };
104
+ }
105
+ export default useSelectShell;
106
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L3VzZVNlbGVjdFNoZWxsLnRzIiwiY29tcG9uZW50cy9TZWxlY3QvdXNlU2VsZWN0U2hlbGwuanMiXSwibmFtZXMiOlsiYXV0b1VwZGF0ZSIsImZsaXAiLCJvZmZzZXQiLCJzaGlmdCIsInNpemUiLCJmbG9hdGluZ1NpemUiLCJ1c2VDbGljayIsInVzZURpc21pc3MiLCJ1c2VGbG9hdGluZyIsInVzZVJvbGUiLCJ1c2VNZW1vIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlRXZlbnRDYWxsYmFjayIsInVzZUZsb2F0aW5nQW5pbWF0aW9uIiwiREVGQVVMVF9QTEFDRU1FTlQiLCJERUZBVUxUX0xJU1RfTUFYX0hFSUdIVCIsIlBBTkVMX01JTl9IRUlHSFQiLCJ1c2VTZWxlY3RTaGVsbCIsIm9wdGlvbnMiLCJvcGVuIiwiX29wdGlvbnMkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIm9uT3BlbkNoYW5nZSIsIl9vcHRpb25zJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfb3B0aW9ucyRyZWFkT25seSIsInJlYWRPbmx5IiwiX29wdGlvbnMkcGxhY2VtZW50IiwicGxhY2VtZW50IiwicGFuZWxXaWR0aCIsIl9vcHRpb25zJGxpc3RNYXhIZWlnaCIsImxpc3RNYXhIZWlnaHQiLCJhbmltYXRpb24iLCJfb3B0aW9ucyRyb2xlIiwicm9sZSIsInJvbGVUeXBlIiwiX29wdGlvbnMkb2Zmc2V0Iiwib2Zmc2V0UHJvcCIsImludGVyYWN0aXZlIiwib2Zmc2V0SXNPYmplY3QiLCJfdHlwZW9mIiwib2Zmc2V0TWFpbkF4aXMiLCJtYWluQXhpcyIsIm9mZnNldENyb3NzQXhpcyIsImNyb3NzQXhpcyIsInVuZGVmaW5lZCIsIm9mZnNldEFsaWdubWVudEF4aXMiLCJhbGlnbm1lbnRBeGlzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc09wZW4iLCJzZXRPcGVuU3RhdGUiLCJzZXRPcGVuIiwibmV4dE9wZW4iLCJfdXNlRmxvYXRpbmciLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsInRyYW5zZm9ybSIsIm1pZGRsZXdhcmUiLCJwYWRkaW5nIiwiYXBwbHkiLCJfcmVmIiwicmVjdHMiLCJlbGVtZW50cyIsImF2YWlsYWJsZUhlaWdodCIsIm5leHRNYXhIZWlnaHQiLCJNYXRoIiwibWF4IiwibWluIiwicmVzb2x2ZWRXaWR0aCIsImNvbmNhdCIsInJlZmVyZW5jZSIsIndpZHRoIiwiT2JqZWN0IiwiYXNzaWduIiwiZmxvYXRpbmciLCJzdHlsZSIsIm1heEhlaWdodCIsInJlZnMiLCJmbG9hdGluZ1N0eWxlcyIsImNvbnRleHQiLCJyZXNvbHZlZFBsYWNlbWVudCIsInJlc29sdmVkQW5pbWF0aW9uIiwia2luZCIsIl91c2VGbG9hdGluZ0FuaW1hdGlvbiIsImlzTW91bnRlZCIsInRyYW5zaXRpb25TdHlsZXMiLCJzdHlsZXMiLCJjbGljayIsImVuYWJsZWQiLCJkaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJiYXNlSW50ZXJhY3Rpb25zIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQ0VBLFVBQVUsRUFDVkMsSUFBSSxFQUNKQyxNQUFNLEVBQ05DLEtBQUssRUFDTEMsSUFBSSxJQUFJQyxZQUFZLEVBQ3BCQyxRQUFRLEVBQ1JDLFVBQVUsRUFDVkMsV0FBVyxFQUNYQyxPQUFPLFFBQ0Ysb0JBQW9CO0FBQzNCLFNBQVNDLE9BQU8sUUFBUSxPQUFPO0FBQy9CLFNBQVNDLGtCQUFrQixFQUFFQyxnQkFBZ0IsUUFBUSxlQUFlO0FBQ3BFLFNBQVNDLG9CQUFvQixRQUFRLGtDQUFrQztBQTBDdkUsSUFBTUMsaUJBQWlCLEdBQWMsY0FBYztBQUNuRCxJQUFNQyx1QkFBdUIsR0FBRyxHQUFHO0FBQ25DLElBQU1DLGdCQUFnQixHQUFHLEdBQUc7QUFFNUIsT0FBTSxTQUFVQyxjQUFjQSxDQUM1QkMsT0FBOEIsRUFBQTtFQUU5QixJQUNFQyxJQUFJLEdBV0ZELE9B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QUFBLENBQUcsQ0FBRTtFQUFBLEdBQ3ZELENBQUNBLFNBQVMsQ0FBQyxDQUNaO0VBQ0QsSUFBQW9ELHFCQUFBLEdBQWdEdkUsb0JBQW9CLENBQ2xFbUUsT0FBTyxFQUNQQyxpQkFBaUIsRUFDakJDLGlCQUFpQixDQUNsQjtJQUpPRyxTQUFTLEdBQUFELHFCQUFBLENBQVRDLFNBQVM7SUFBVUMsZ0JBQWdCLEdBQUFGLHFCQUFBLENBQXhCRyxNQUFNO0VBTXpCLElBQU1DLEtBQUssR0FBR2xGLFFBQVEsQ0FBQzBFLE9BQU8sRUFBRTtJQUFFUyxPQUFPLEVBQUVuRDtFQUFXLENBQUUsQ0FBQztFQUN6RCxJQUFNb0QsT0FBTyxHQUFHbkYsVUFBVSxDQUFDeUUsT0FBTyxFQUFFO0lBQ2xDUyxPQUFPLEVBQUVuRCxXQUFXO0lBQ3BCcUQsaUJBQWlCLEVBQUU7RUM5Rm5CLENEK0ZELENBQUM7RUFDRixJQUFNekQsSUFBSSxHQUFHekIsT0FBTyxDQUFDdUUsT0FBTyxFQUFFO0lBQUU5QyxJQUFJLEVBQUVDO0VBQVEsQ0FBRSxDQUFDO0VBRWpELElBQU15RCxnQkFBZ0IsR0FBbUIsQ0FBQ0osS0FBSyxFQUFFRSxPQUFPLEVBQUV4RCxJQUFJLENBQUM7RUFFL0QsT0FBTztJQUNMaUIsTUFBTSxFQUFOQSxNQUFNO0lBQ05FLE9BQU8sRUFBUEEsT0FBTztJQUNQeUIsSUFBSSxFQUFKQSxJQUFJO0lBQ0pFLE9BQU8sRUFBUEEsT0FBTztJQUNQcEQsU0FBUyxFQUFFcUQsaUJBQWlCO0lBQzVCRixjQUFjLEVBQWRBLGNBQWM7SUFDZE8sZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEJELFNBQVMsRUFBVEEsU0FBUztJQUNUTyxnQkFBZ0IsRUFBaEJBO0VDaEdBLENEaUdEO0FBQ0g7QUFFQSxlQUFlM0UsY0FBYyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC91c2VTZWxlY3RTaGVsbC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlUm9sZSwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgdXNlRmxvYXRpbmdBbmltYXRpb24gfSBmcm9tICcuLi8uLi9ob29rcy91c2VGbG9hdGluZ0FuaW1hdGlvbic7XG5jb25zdCBERUZBVUxUX1BMQUNFTUVOVCA9ICdib3R0b20tc3RhcnQnO1xuY29uc3QgREVGQVVMVF9MSVNUX01BWF9IRUlHSFQgPSAzMjA7XG5jb25zdCBQQU5FTF9NSU5fSEVJR0hUID0gMTIwO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbGVjdFNoZWxsKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIG9uT3BlbkNoYW5nZSwgZGlzYWJsZWQgPSBmYWxzZSwgcmVhZE9ubHkgPSBmYWxzZSwgcGxhY2VtZW50ID0gREVGQVVMVF9QTEFDRU1FTlQsIHBhbmVsV2lkdGgsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX0xJU1RfTUFYX0hFSUdIVCwgYW5pbWF0aW9uLCByb2xlOiByb2xlVHlwZSA9ICdzZWxlY3QnLCBvZmZzZXQ6IG9mZnNldFByb3AgPSAwLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBpbnRlcmFjdGl2ZSA9ICFkaXNhYmxlZCAmJiAhcmVhZE9ubHk7XG4gICAgY29uc3Qgb2Zmc2V0SXNPYmplY3QgPSB0eXBlb2Ygb2Zmc2V0UHJvcCA9PT0gJ29iamVjdCcgJiYgb2Zmc2V0UHJvcCAhPT0gbnVsbDtcbiAgICBjb25zdCBvZmZzZXRNYWluQXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0UHJvcC5tYWluQXhpcyA6IG9mZnNldFByb3A7XG4gICAgY29uc3Qgb2Zmc2V0Q3Jvc3NBeGlzID0gb2Zmc2V0SXNPYmplY3QgPyBvZmZzZXRQcm9wLmNyb3NzQXhpcyA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvZmZzZXRBbGlnbm1lbnRBeGlzID0gb2Zmc2V0SXNPYmplY3QgPyBvZmZzZXRQcm9wLmFsaWdubWVudEF4aXMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgW2lzT3Blbiwgc2V0T3BlblN0YXRlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0T3Blbiwgb3Blbik7XG4gICAgY29uc3Qgc2V0T3BlbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldE9wZW5TdGF0ZShuZXh0T3Blbik7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgfSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCwgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgICAgb3BlbjogaXNPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IHNldE9wZW4sXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgICAgIHRyYW5zZm9ybTogZmFsc2UsXG4gICAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgICAgIG9mZnNldCh7XG4gICAgICAgICAgICAgICAgbWFpbkF4aXM6IG9mZnNldE1haW5BeGlzLFxuICAgICAgICAgICAgICAgIGNyb3NzQXhpczogb2Zmc2V0Q3Jvc3NBeGlzLFxuICAgICAgICAgICAgICAgIGFsaWdubWVudEF4aXM6IG9mZnNldEFsaWdubWVudEF4aXMsXG4gICAgICAgICAgICB9LCBbb2Zmc2V0TWFpbkF4aXMsIG9mZnNldENyb3NzQXhpcywgb2Zmc2V0QWxpZ25tZW50QXhpc10pLFxuICAgICAgICAgICAgZmxpcCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBmbG9hdGluZ1NpemUoe1xuICAgICAgICAgICAgICAgIGFwcGx5KHsgcmVjdHMsIGVsZW1lbnRzLCBhdmFpbGFibGVIZWlnaHQgfSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0TWF4SGVpZ2h0ID0gTWF0aC5tYXgoUEFORUxfTUlOX0hFSUdIVCwgTWF0aC5taW4obGlzdE1heEhlaWdodCwgYXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkV2lkdGggPSBwYW5lbFdpZHRoID09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgcGFuZWxXaWR0aCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAke3BhbmVsV2lkdGh9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwYW5lbFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVzb2x2ZWRXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogYCR7bmV4dE1heEhlaWdodH1weGAsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LCBbcGFuZWxXaWR0aCwgbGlzdE1heEhlaWdodF0pLFxuICAgICAgICBdLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc29sdmVkQW5pbWF0aW9uID0gdXNlTWVtbygoKSA9PiBhbmltYXRpb24gPT09IGZhbHNlXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiBPYmplY3QuYXNzaWduKHsga2luZDogJ2hlaWdodCcgfSwgKGFuaW1hdGlvbiAhPT0gbnVsbCAmJiBhbmltYXRpb24gIT09IHZvaWQgMCA/IGFuaW1hdGlvbiA6IHt9KSksIFthbmltYXRpb25dKTtcbiAgICBjb25zdCB7IGlzTW91bnRlZCwgc3R5bGVzOiB0cmFuc2l0aW9uU3R5bGVzIH0gPSB1c2VGbG9hdGluZ0FuaW1hdGlvbihjb250ZXh0LCByZXNvbHZlZFBsYWNlbWVudCwgcmVzb2x2ZWRBbmltYXRpb24pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCwgeyBlbmFibGVkOiBpbnRlcmFjdGl2ZSB9KTtcbiAgICBjb25zdCBkaXNtaXNzID0gdXNlRGlzbWlzcyhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IGludGVyYWN0aXZlLFxuICAgICAgICBvdXRzaWRlUHJlc3NFdmVudDogJ21vdXNlZG93bicsXG4gICAgfSk7XG4gICAgY29uc3Qgcm9sZSA9IHVzZVJvbGUoY29udGV4dCwgeyByb2xlOiByb2xlVHlwZSB9KTtcbiAgICBjb25zdCBiYXNlSW50ZXJhY3Rpb25zID0gW2NsaWNrLCBkaXNtaXNzLCByb2xlXTtcbiAgICByZXR1cm4ge1xuICAgICAgICBpc09wZW4sXG4gICAgICAgIHNldE9wZW4sXG4gICAgICAgIHJlZnMsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHBsYWNlbWVudDogcmVzb2x2ZWRQbGFjZW1lbnQsXG4gICAgICAgIGZsb2F0aW5nU3R5bGVzLFxuICAgICAgICB0cmFuc2l0aW9uU3R5bGVzLFxuICAgICAgICBpc01vdW50ZWQsXG4gICAgICAgIGJhc2VJbnRlcmFjdGlvbnMsXG4gICAgfTtcbn1cbmV4cG9ydCBkZWZhdWx0IHVzZVNlbGVjdFNoZWxsOyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,10 +1,12 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
1
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
3
  import _typeof from "@babel/runtime/helpers/esm/typeof";
3
4
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
- import { arrow, autoUpdate, flip, FloatingArrow, FloatingPortal, offset as floatingOffset, shift, useClick, useDismiss, useFloating, useFocus, useHover, useInteractions, useRole } from '@floating-ui/react';
5
+ import { arrow, autoUpdate, flip, FloatingArrow, FloatingPortal, offset as floatingOffset, shift, size as floatingSize, useClick, useDismiss, useFloating, useFocus, useHover, useInteractions, useRole } from '@floating-ui/react';
5
6
  import React, { cloneElement, useCallback, useMemo, useRef } from 'react';
6
7
  import { useControlledState, useEventCallback } from '@1money/hooks';
7
8
  import { joinCls } from '../../utils/classnames';
9
+ import { useFloatingAnimation } from '../../hooks/useFloatingAnimation';
8
10
  import './style';
9
11
  var PREFIX = 'om-trigger';
10
12
  function normalizeTrigger(trigger) {
@@ -47,6 +49,9 @@ var Trigger = function Trigger(_ref) {
47
49
  role = _ref$role === void 0 ? 'dialog' : _ref$role,
48
50
  _ref$autoReposition = _ref.autoReposition,
49
51
  autoReposition = _ref$autoReposition === void 0 ? true : _ref$autoReposition,
52
+ _ref$matchTriggerWidt = _ref.matchTriggerWidth,
53
+ matchTriggerWidth = _ref$matchTriggerWidt === void 0 ? false : _ref$matchTriggerWidt,
54
+ animation = _ref.animation,
50
55
  ref = _ref.ref;
51
56
  var arrowRef = useRef(null);
52
57
  var triggers = useMemo(function () {
@@ -66,22 +71,39 @@ var Trigger = function Trigger(_ref) {
66
71
  onClose === null || onClose === void 0 ? void 0 : onClose();
67
72
  }
68
73
  });
74
+ var offsetIsObject = _typeof(offset) === 'object' && offset !== null;
75
+ var offsetMainAxis = offsetIsObject ? offset.mainAxis : offset;
76
+ var offsetCrossAxis = offsetIsObject ? offset.crossAxis : undefined;
77
+ var offsetAlignmentAxis = offsetIsObject ? offset.alignmentAxis : undefined;
69
78
  var middleware = useMemo(function () {
70
- return [floatingOffset(offset), flip({
79
+ return [floatingOffset({
80
+ mainAxis: offsetMainAxis,
81
+ crossAxis: offsetCrossAxis,
82
+ alignmentAxis: offsetAlignmentAxis
83
+ }), flip({
71
84
  padding: 8
72
85
  }), shift({
73
86
  padding: 8
74
87
  }), arrow({
75
88
  element: arrowRef,
76
89
  padding: 8
77
- })];
78
- }, [offset]);
90
+ })].concat(_toConsumableArray(matchTriggerWidth ? [floatingSize({
91
+ apply: function apply(_ref2) {
92
+ var rects = _ref2.rects,
93
+ elements = _ref2.elements;
94
+ Object.assign(elements.floating.style, {
95
+ width: "".concat(rects.reference.width, "px")
96
+ });
97
+ }
98
+ })] : []));
99
+ }, [offsetMainAxis, offsetCrossAxis, offsetAlignmentAxis, matchTriggerWidth]);
79
100
  var _useFloating = useFloating({
80
101
  open: innerOpen,
81
102
  onOpenChange: handleOpenChange,
82
103
  placement: placement,
83
104
  whileElementsMounted: autoReposition ? autoUpdate : undefined,
84
- middleware: middleware
105
+ middleware: middleware,
106
+ transform: false
85
107
  }),
86
108
  refs = _useFloating.refs,
87
109
  floatingStyles = _useFloating.floatingStyles,
@@ -126,6 +148,9 @@ var Trigger = function Trigger(_ref) {
126
148
  var closePanel = useCallback(function () {
127
149
  return handleOpenChange(false);
128
150
  }, [handleOpenChange]);
151
+ var _useFloatingAnimation = useFloatingAnimation(context, resolvedPlacement, animation),
152
+ isMounted = _useFloatingAnimation.isMounted,
153
+ transitionStyles = _useFloatingAnimation.styles;
129
154
  var arrowData = context.middlewareData.arrow;
130
155
  var arrowVars = Object.assign(Object.assign({}, (arrowData === null || arrowData === void 0 ? void 0 : arrowData.x) != null && {
131
156
  '--arrow-x': "".concat(arrowData.x, "px")
@@ -134,7 +159,7 @@ var Trigger = function Trigger(_ref) {
134
159
  });
135
160
  var panel = _jsxs("div", Object.assign({
136
161
  ref: refs.setFloating,
137
- style: Object.assign(Object.assign(Object.assign({}, floatingStyles), arrowVars), overlayStyle),
162
+ style: Object.assign(Object.assign(Object.assign(Object.assign({}, floatingStyles), arrowVars), transitionStyles), overlayStyle),
138
163
  className: joinCls("".concat(PREFIX, "-panel"), overlayClassName),
139
164
  "data-placement": resolvedPlacement,
140
165
  "data-side": placementMeta.side,
@@ -159,10 +184,10 @@ var Trigger = function Trigger(_ref) {
159
184
  }) : content]
160
185
  }));
161
186
  return _jsxs(_Fragment, {
162
- children: [/*#__PURE__*/cloneElement(children, referenceProps), innerOpen && (portal ? _jsx(FloatingPortal, {
187
+ children: [/*#__PURE__*/cloneElement(children, referenceProps), isMounted && (portal ? _jsx(FloatingPortal, {
163
188
  children: panel
164
189
  }) : panel)]
165
190
  });
166
191
  };
167
192
  export default Trigger;
168
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9UcmlnZ2VyL1RyaWdnZXIudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImFycm93IiwiYXV0b1VwZGF0ZSIsImZsaXAiLCJGbG9hdGluZ0Fycm93IiwiRmxvYXRpbmdQb3J0YWwiLCJvZmZzZXQiLCJmbG9hdGluZ09mZnNldCIsInNoaWZ0IiwidXNlQ2xpY2siLCJ1c2VEaXNtaXNzIiwidXNlRmxvYXRpbmciLCJ1c2VGb2N1cyIsInVzZUhvdmVyIiwidXNlSW50ZXJhY3Rpb25zIiwidXNlUm9sZSIsIlJlYWN0IiwiY2xvbmVFbGVtZW50IiwidXNlQ2FsbGJhY2siLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlRXZlbnRDYWxsYmFjayIsImpvaW5DbHMiLCJQUkVGSVgiLCJub3JtYWxpemVUcmlnZ2VyIiwidHJpZ2dlciIsIkFycmF5IiwiaXNBcnJheSIsInNldFJlZiIsInJlZiIsIm5vZGUiLCJfdHlwZW9mIiwiY3VycmVudCIsIlRyaWdnZXIiLCJfcmVmIiwiY29udGVudCIsIl9yZWYkdHJpZ2dlciIsIl9yZWYkcGxhY2VtZW50IiwicGxhY2VtZW50Iiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsIl9yZWYkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9yZWYkc2hvd0Fycm93Iiwic2hvd0Fycm93IiwiX3JlZiRvZmZzZXQiLCJfcmVmJHBvcnRhbCIsInBvcnRhbCIsIl9yZWYkZGlzbWlzc2libGUiLCJkaXNtaXNzaWJsZSIsImhvdmVyRGVsYXkiLCJvdmVybGF5Q2xhc3NOYW1lIiwib3ZlcmxheVN0eWxlIiwiY2hpbGRyZW4iLCJfcmVmJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJvbk9wZW4iLCJvbkNsb3NlIiwiX3JlZiRyb2xlIiwicm9sZSIsIl9yZWYkYXV0b1JlcG9zaXRpb24iLCJhdXRvUmVwb3NpdGlvbiIsImFycm93UmVmIiwidHJpZ2dlcnMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlubmVyT3BlbiIsInNldElubmVyT3BlbiIsImhhbmRsZU9wZW5DaGFuZ2UiLCJuZXh0T3BlbiIsIm1pZGRsZXdhcmUiLCJwYWRkaW5nIiwiZWxlbWVudCIsIl91c2VGbG9hdGluZyIsIndoaWxlRWxlbWVudHNNb3VudGVkIiwidW5kZWZpbmVkIiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInJlc29sdmVkUGxhY2VtZW50IiwiY2xpY2tJbnRlcmFjdGlvbiIsImVuYWJsZWQiLCJpbmNsdWRlcyIsImhvdmVySW50ZXJhY3Rpb24iLCJkZWxheSIsImZvY3VzSW50ZXJhY3Rpb24iLCJkaXNtaXNzSW50ZXJhY3Rpb24iLCJyb2xlSW50ZXJhY3Rpb24iLCJfdXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiY29tcG9zZWRSZWYiLCJzZXRSZWZlcmVuY2UiLCJyZWZlcmVuY2VQcm9wcyIsInBsYWNlbWVudE1ldGEiLCJfc3BsaXQiLCJzcGxpdCIsIl9zcGxpdDIiLCJzaWRlIiwiYWxpZ24iLCJjbG9zZVBhbmVsIiwiYXJyb3dEYXRhIiwibWlkZGxld2FyZURhdGEiLCJhcnJvd1ZhcnMiLCJPYmplY3QiLCJhc3NpZ24iLCJ4IiwiY29uY2F0IiwieSIsInBhbmVsIiwic2V0RmxvYXRpbmciLCJzdHlsZSIsImNsYXNzTmFtZSIsInBvc2l0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJwb2ludGVyRXZlbnRzIiwidmlzaWJpbGl0eSIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssRUFBRUMsUUFBUSxJQUFJQyxTQUFTLFFBQVEsbUJBQW1CO0FD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RUFBQSxDQUFBLENBQ3hFO0FBRVAsQ0FBQztBQUVELGVBQWU3RSxPQUFPIiwiZmlsZSI6ImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXJyb3csIGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nQXJyb3csIEZsb2F0aW5nUG9ydGFsLCBvZmZzZXQgYXMgZmxvYXRpbmdPZmZzZXQsIHNoaWZ0LCB1c2VDbGljaywgdXNlRGlzbWlzcywgdXNlRmxvYXRpbmcsIHVzZUZvY3VzLCB1c2VIb3ZlciwgdXNlSW50ZXJhY3Rpb25zLCB1c2VSb2xlLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgUmVhY3QsIHsgY2xvbmVFbGVtZW50LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgUFJFRklYID0gJ29tLXRyaWdnZXInO1xuZnVuY3Rpb24gbm9ybWFsaXplVHJpZ2dlcih0cmlnZ2VyKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodHJpZ2dlcikgPyB0cmlnZ2VyIDogW3RyaWdnZXJdO1xufVxuZnVuY3Rpb24gc2V0UmVmKHJlZiwgbm9kZSkge1xuICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJlZihub2RlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocmVmICYmIHR5cGVvZiByZWYgPT09ICdvYmplY3QnICYmICdjdXJyZW50JyBpbiByZWYpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH1cbn1cbmNvbnN0IFRyaWdnZXIgPSAoeyBjb250ZW50LCB0cmlnZ2VyID0gJ2NsaWNrJywgcGxhY2VtZW50ID0gJ2JvdHRvbS1zdGFydCcsIG9wZW4sIG9uT3BlbkNoYW5nZSwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgc2hvd0Fycm93ID0gZmFsc2UsIG9mZnNldCA9IDQsIHBvcnRhbCA9IHRydWUsIGRpc21pc3NpYmxlID0gdHJ1ZSwgaG92ZXJEZWxheSwgb3ZlcmxheUNsYXNzTmFtZSwgb3ZlcmxheVN0eWxlLCBjaGlsZHJlbiwgZGlzYWJsZWQgPSBmYWxzZSwgb25PcGVuLCBvbkNsb3NlLCByb2xlID0gJ2RpYWxvZycsIGF1dG9SZXBvc2l0aW9uID0gdHJ1ZSwgcmVmLCB9KSA9PiB7XG4gICAgY29uc3QgYXJyb3dSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlcnMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZVRyaWdnZXIodHJpZ2dlciksIFt0cmlnZ2VyXSk7XG4gICAgY29uc3QgW2lubmVyT3Blbiwgc2V0SW5uZXJPcGVuXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0T3Blbiwgb3Blbik7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc2V0SW5uZXJPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHRPcGVuKTtcbiAgICAgICAgaWYgKG5leHRPcGVuKSB7XG4gICAgICAgICAgICBvbk9wZW4gPT09IG51bGwgfHwgb25PcGVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9uQ2xvc2UgPT09IG51bGwgfHwgb25DbG9zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgbWlkZGxld2FyZSA9IHVzZU1lbW8oKCkgPT4gW1xuICAgICAgICBmbG9hdGluZ09mZnNldChvZmZzZXQpLFxuICAgICAgICBmbGlwKHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgc2hpZnQoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICBhcnJvdyh7IGVsZW1lbnQ6IGFycm93UmVmLCBwYWRkaW5nOiA4IH0pLFxuICAgIF0sIFtvZmZzZXRdKTtcbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBjb250ZXh0LCBwbGFjZW1lbnQ6IHJlc29sdmVkUGxhY2VtZW50IH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlOiBoYW5kbGVPcGVuQ2hhbmdlLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvUmVwb3NpdGlvbiA/IGF1dG9VcGRhdGUgOiB1bmRlZmluZWQsXG4gICAgICAgIG1pZGRsZXdhcmUsXG4gICAgfSk7XG4gICAgY29uc3QgY2xpY2tJbnRlcmFjdGlvbiA9IHVzZUNsaWNrKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogdHJpZ2dlcnMuaW5jbHVkZXMoJ2NsaWNrJykgJiYgIWRpc2FibGVkLFxuICAgIH0pO1xuICAgIGNvbnN0IGhvdmVySW50ZXJhY3Rpb24gPSB1c2VIb3Zlcihjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdob3ZlcicpICYmICFkaXNhYmxlZCxcbiAgICAgICAgZGVsYXk6IGhvdmVyRGVsYXksXG4gICAgfSk7XG4gICAgY29uc3QgZm9jdXNJbnRlcmFjdGlvbiA9IHVzZUZvY3VzKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogdHJpZ2dlcnMuaW5jbHVkZXMoJ2ZvY3VzJykgJiYgIWRpc2FibGVkLFxuICAgIH0pO1xuICAgIGNvbnN0IGRpc21pc3NJbnRlcmFjdGlvbiA9IHVzZURpc21pc3MoY29udGV4dCwge1xuICAgICAgICBlbmFibGVkOiBkaXNtaXNzaWJsZSxcbiAgICB9KTtcbiAgICBjb25zdCByb2xlSW50ZXJhY3Rpb24gPSB1c2VSb2xlKGNvbnRleHQsIHsgcm9sZSB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICBjbGlja0ludGVyYWN0aW9uLFxuICAgICAgICBob3ZlckludGVyYWN0aW9uLFxuICAgICAgICBmb2N1c0ludGVyYWN0aW9uLFxuICAgICAgICBkaXNtaXNzSW50ZXJhY3Rpb24sXG4gICAgICAgIHJvbGVJbnRlcmFjdGlvbixcbiAgICBdKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgICAgICBzZXRSZWYocmVmLCBub2RlKTtcbiAgICB9LCBbcmVmcy5zZXRSZWZlcmVuY2UsIHJlZl0pO1xuICAgIGNvbnN0IHJlZmVyZW5jZVByb3BzID0gZ2V0UmVmZXJlbmNlUHJvcHMoeyByZWY6IGNvbXBvc2VkUmVmIH0pO1xuICAgIGNvbnN0IHBsYWNlbWVudE1ldGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgW3NpZGUsIGFsaWduXSA9IChyZXNvbHZlZFBsYWNlbWVudCAhPT0gbnVsbCAmJiByZXNvbHZlZFBsYWNlbWVudCAhPT0gdm9pZCAwID8gcmVzb2x2ZWRQbGFjZW1lbnQgOiAnYm90dG9tLXN0YXJ0Jykuc3BsaXQoJy0nKTtcbiAgICAgICAgcmV0dXJuIHsgc2lkZSwgYWxpZ24gfTtcbiAgICB9LCBbcmVzb2x2ZWRQbGFjZW1lbnRdKTtcbiAgICBjb25zdCBjbG9zZVBhbmVsID0gdXNlQ2FsbGJhY2soKCkgPT4gaGFuZGxlT3BlbkNoYW5nZShmYWxzZSksIFtoYW5kbGVPcGVuQ2hhbmdlXSk7XG4gICAgY29uc3QgYXJyb3dEYXRhID0gY29udGV4dC5taWRkbGV3YXJlRGF0YS5hcnJvdztcbiAgICBjb25zdCBhcnJvd1ZhcnMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sICgoYXJyb3dEYXRhID09PSBudWxsIHx8IGFycm93RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJyb3dEYXRhLngpICE9IG51bGwgJiYgeyAnLS1hcnJvdy14JzogYCR7YXJyb3dEYXRhLnh9cHhgIH0pKSwgKChhcnJvd0RhdGEgPT09IG51bGwgfHwgYXJyb3dEYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhcnJvd0RhdGEueSkgIT0gbnVsbCAmJiB7ICctLWFycm93LXknOiBgJHthcnJvd0RhdGEueX1weGAgfSkpO1xuICAgIGNvbnN0IHBhbmVsID0gKF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oeyByZWY6IHJlZnMuc2V0RmxvYXRpbmcsIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCBhcnJvd1ZhcnMpLCBvdmVybGF5U3R5bGUpLCBjbGFzc05hbWU6IGpvaW5DbHMoYCR7UFJFRklYfS1wYW5lbGAsIG92ZXJsYXlDbGFzc05hbWUpLCBcImRhdGEtcGxhY2VtZW50XCI6IHJlc29sdmVkUGxhY2VtZW50LCBcImRhdGEtc2lkZVwiOiBwbGFjZW1lbnRNZXRhLnNpZGUsIFwiZGF0YS1hbGlnblwiOiBwbGFjZW1lbnRNZXRhLmFsaWduIH0sIGdldEZsb2F0aW5nUHJvcHMoKSwgeyBjaGlsZHJlbjogW3Nob3dBcnJvdyA/IChfanN4KEZsb2F0aW5nQXJyb3csIHsgcmVmOiBhcnJvd1JlZiwgY29udGV4dDogY29udGV4dCwgY2xhc3NOYW1lOiBgJHtQUkVGSVh9LWFycm93YCB9KSkgOiAoX2pzeChcInNwYW5cIiwgeyByZWY6IGFycm93UmVmLCBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICB9IH0pKSwgdHlwZW9mIGNvbnRlbnQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IGNvbnRlbnQoeyBjbG9zZTogY2xvc2VQYW5lbCwgb3BlbjogaW5uZXJPcGVuIH0pXG4gICAgICAgICAgICAgICAgOiBjb250ZW50XSB9KSkpO1xuICAgIHJldHVybiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbY2xvbmVFbGVtZW50KGNoaWxkcmVuLCByZWZlcmVuY2VQcm9wcyksIGlubmVyT3BlbiAmJiAocG9ydGFsID8gX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogcGFuZWwgfSkgOiBwYW5lbCldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUcmlnZ2VyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
193
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9UcmlnZ2VyL1RyaWdnZXIudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImFycm93IiwiYXV0b1VwZGF0ZSIsImZsaXAiLCJGbG9hdGluZ0Fycm93IiwiRmxvYXRpbmdQb3J0YWwiLCJvZmZzZXQiLCJmbG9hdGluZ09mZnNldCIsInNoaWZ0Iiwic2l6ZSIsImZsb2F0aW5nU2l6ZSIsInVzZUNsaWNrIiwidXNlRGlzbWlzcyIsInVzZUZsb2F0aW5nIiwidXNlRm9jdXMiLCJ1c2VIb3ZlciIsInVzZUludGVyYWN0aW9ucyIsInVzZVJvbGUiLCJSZWFjdCIsImNsb25lRWxlbWVudCIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInVzZVJlZiIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJqb2luQ2xzIiwidXNlRmxvYXRpbmdBbmltYXRpb24iLCJQUkVGSVgiLCJub3JtYWxpemVUcmlnZ2VyIiwidHJpZ2dlciIsIkFycmF5IiwiaXNBcnJheSIsInNldFJlZiIsInJlZiIsIm5vZGUiLCJfdHlwZW9mIiwiY3VycmVudCIsIlRyaWdnZXIiLCJfcmVmIiwiY29udGVudCIsIl9yZWYkdHJpZ2dlciIsIl9yZWYkcGxhY2VtZW50IiwicGxhY2VtZW50Iiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsIl9yZWYkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9yZWYkc2hvd0Fycm93Iiwic2hvd0Fycm93IiwiX3JlZiRvZmZzZXQiLCJfcmVmJHBvcnRhbCIsInBvcnRhbCIsIl9yZWYkZGlzbWlzc2libGUiLCJkaXNtaXNzaWJsZSIsImhvdmVyRGVsYXkiLCJvdmVybGF5Q2xhc3NOYW1lIiwib3ZlcmxheVN0eWxlIiwiY2hpbGRyZW4iLCJfcmVmJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJvbk9wZW4iLCJvbkNsb3NlIiwiX3JlZiRyb2xlIiwicm9sZSIsIl9yZWYkYXV0b1JlcG9zaXRpb24iLCJhdXRvUmVwb3NpdGlvbiIsIl9yZWYkbWF0Y2hUcmlnZ2VyV2lkdCIsIm1hdGNoVHJpZ2dlcldpZHRoIiwiYW5pbWF0aW9uIiwiYXJyb3dSZWYiLCJ0cmlnZ2VycyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsIm5leHRPcGVuIiwib2Zmc2V0SXNPYmplY3QiLCJvZmZzZXRNYWluQXhpcyIsIm1haW5BeGlzIiwib2Zmc2V0Q3Jvc3NBeGlzIiwiY3Jvc3NBeGlzIiwidW5kZWZpbmVkIiwib2Zmc2V0QWxpZ25tZW50QXhpcyIsImFsaWdubWVudEF4aXMiLCJtaWRkbGV3YXJlIiwicGFkZGluZyIsImVsZW1lbnQiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcHBseSIsIl9yZWYyIiwicmVjdHMiLCJlbGVtZW50cyIsIk9iamVjdCIsImFzc2lnbiIsImZsb2F0aW5nIiwic3R5bGUiLCJ3aWR0aCIsInJlZmVyZW5jZSIsIl91c2VGbG9hdGluZyIsIndoaWxlRWxlbWVudHNNb3VudGVkIiwidHJhbnNmb3JtIiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInJlc29sdmVkUGxhY2VtZW50IiwiY2xpY2tJbnRlcmFjdGlvbiIsImVuYWJsZWQiLCJpbmNsdWRlcyIsImhvdmVySW50ZXJhY3Rpb24iLCJkZWxheSIsImZvY3VzSW50ZXJhY3Rpb24iLCJkaXNtaXNzSW50ZXJhY3Rpb24iLCJyb2xlSW50ZXJhY3Rpb24iLCJfdXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiY29tcG9zZWRSZWYiLCJzZXRSZWZlcmVuY2UiLCJyZWZlcmVuY2VQcm9wcyIsInBsYWNlbWVudE1ldGEiLCJfc3BsaXQiLCJzcGxpdCIsIl9zcGxpdDIiLCJzaWRlIiwiYWxpZ24iLCJjbG9zZVBhbmVsIiwiX3VzZUZsb2F0aW5nQW5pbWF0aW9uIiwiaXNNb3VudGVkIiwidHJhbnNpdGlvblN0eWxlcyIsInN0eWxlcyIsImFycm93RGF0YSIsIm1pZGRsZXdhcmVEYXRhIiwiYXJyb3dWYXJzIiwieCIsInkiLCJwYW5lbCIsInNldEZsb2F0aW5nIiwiY2xhc3NOYW1lIiwicG9zaXRpb24iLCJoZWlnaHQiLCJwb2ludGVyRXZlbnRzIiwidmlzaWJpbGl0eSIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLEVBQUVDLFFBQVEsSUFBSUMsU0FBUyxRQUFRLG1CQUFtQjtBQ0FyRixTQUNFQyxLQUFLLEVBQ0xDLFVBQVUsRUFDVkMsSUFBSSxFQUNKQyxhQUFhLEVBQ2JDLGNBQWMsRUFDZEMsTUFBTSxJQUFJQyxjQUFjLEVBQ3hCQyxLQUFLLEVBQ0xDLElBQUksSUFBSUMsWUFBWSxFQUNwQkMsUUFBUSxFQUNSQyxVQUFVLEVBQ1ZDLFdBQVcsRUFDWEMsUUFBUSxFQUNSQyxRQUFRLEVBQ1JDLGVBQWUsRUFDZkMsT0FBTyxRQUNGLG9CQUFvQjtBQUMzQixPQUFPQyxLQUFLLElBQUlDLFlBQVksRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLGtCQUFrQixFQUFFQyxnQkFBZ0IsUUFBUSxlQUFlO0FBQ3BFLFNBQVNDLE9BQU8sUUFBUSx3QkFBd0I7QUFDaEQsU0FBU0Msb0JBQW9CLFFBQVEsa0NBQWtDO0FBR3ZFLE9BQU8sU0FBUztBQUVoQixJQUFNQyxNQUFNLEdBQUcsWUFBWTtBQUUzQixTQUFTQyxnQkFBZ0JBLENBQ3ZCQyxPQUF3QyxFQUFBO0VBRXhDLE9BQU9DLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsR0FBR0EsT0FBTyxHQUFHLENBQUNBLE9BQU8s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QUVBLE9BQU87TUFDaEJrQyxTQUFTLEtBQUFuRCxNQUFBLENBQUs5RCxNQUFNO0lBQVEsQ0FBQSxDQUM1QixHQUVGL0IsSUFBQSxDQUFBLE1BQUEsRUFBQTtNQUNFcUMsR0FBRyxFQUFFb0MsUUFBbUQ7TUFDeEQ2QixLQUFLLEVBQUU7UUFDTDJDLFFBQVEsRUFBRSxVQUFVO1FBQ3BCMUMsS0FBSyxFQUFFLENBQUM7UUFDUjJDLE1BQU0sRUFBRSxDQUFDO1FBQ1RDLGFBQWEsRUFBRSxNQUFNO1FBQ3JCQyxVQUFVLEVBQUU7TUQ1RlI7SUM2RkwsQ0FBQSxDQUVKLEVBQ0EsT0FBT3pHLE9BQU8sS0FBSyxVQUFVLEdBQzFCQSxPQUFPLENBQUM7TUFBRTBHLEtBQUssRUFBRWpCLFVBQVU7TUFBRXJGLElBQUksRUFBRStCO0lBQVMsQ0FBRSxDQUFDLEdBQy9DbkMsT0FBTztFQUFBLENBQUEsQ0FBQSxDQUVkO0VBRUQsT0FDRXpDLEtBQUEsQ0FBQUUsU0FBQSxFQUFBO0lBQUF5RCxRQUFBLEVBQUEsY0FDR3RDLFlBQVksQ0FBQ3NDLFFBQVEsRUFBRWdFLGNBQWMsQ0FBQyxFQUN0Q1MsU0FBUyxLQUFLL0UsTUFBTSxHQUFHdkQsSUFBQSxDQUFDUyxjQUFjLEVBQUE7TUFBQW9ELFFBQUEsRUFBRWlGO0lBQUssQ0FBQSxDQUFrQixHQUFHQSxLQUFLLENBQUM7RUFBQSxDQUFBLENBQ3hFO0FBRVAsQ0FBQztBQUVELGVBQWVyRyxPQUFPIiwiZmlsZSI6ImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXJyb3csIGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nQXJyb3csIEZsb2F0aW5nUG9ydGFsLCBvZmZzZXQgYXMgZmxvYXRpbmdPZmZzZXQsIHNoaWZ0LCBzaXplIGFzIGZsb2F0aW5nU2l6ZSwgdXNlQ2xpY2ssIHVzZURpc21pc3MsIHVzZUZsb2F0aW5nLCB1c2VGb2N1cywgdXNlSG92ZXIsIHVzZUludGVyYWN0aW9ucywgdXNlUm9sZSwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlRmxvYXRpbmdBbmltYXRpb24gfSBmcm9tICcuLi8uLi9ob29rcy91c2VGbG9hdGluZ0FuaW1hdGlvbic7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgUFJFRklYID0gJ29tLXRyaWdnZXInO1xuZnVuY3Rpb24gbm9ybWFsaXplVHJpZ2dlcih0cmlnZ2VyKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodHJpZ2dlcikgPyB0cmlnZ2VyIDogW3RyaWdnZXJdO1xufVxuZnVuY3Rpb24gc2V0UmVmKHJlZiwgbm9kZSkge1xuICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJlZihub2RlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocmVmICYmIHR5cGVvZiByZWYgPT09ICdvYmplY3QnICYmICdjdXJyZW50JyBpbiByZWYpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH1cbn1cbmNvbnN0IFRyaWdnZXIgPSAoeyBjb250ZW50LCB0cmlnZ2VyID0gJ2NsaWNrJywgcGxhY2VtZW50ID0gJ2JvdHRvbS1zdGFydCcsIG9wZW4sIG9uT3BlbkNoYW5nZSwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgc2hvd0Fycm93ID0gZmFsc2UsIG9mZnNldCA9IDQsIHBvcnRhbCA9IHRydWUsIGRpc21pc3NpYmxlID0gdHJ1ZSwgaG92ZXJEZWxheSwgb3ZlcmxheUNsYXNzTmFtZSwgb3ZlcmxheVN0eWxlLCBjaGlsZHJlbiwgZGlzYWJsZWQgPSBmYWxzZSwgb25PcGVuLCBvbkNsb3NlLCByb2xlID0gJ2RpYWxvZycsIGF1dG9SZXBvc2l0aW9uID0gdHJ1ZSwgbWF0Y2hUcmlnZ2VyV2lkdGggPSBmYWxzZSwgYW5pbWF0aW9uLCByZWYsIH0pID0+IHtcbiAgICBjb25zdCBhcnJvd1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VycyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplVHJpZ2dlcih0cmlnZ2VyKSwgW3RyaWdnZXJdKTtcbiAgICBjb25zdCBbaW5uZXJPcGVuLCBzZXRJbm5lck9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRPcGVuLCBvcGVuKTtcbiAgICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXRJbm5lck9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgICAgICBpZiAobmV4dE9wZW4pIHtcbiAgICAgICAgICAgIG9uT3BlbiA9PT0gbnVsbCB8fCBvbk9wZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBvZmZzZXRJc09iamVjdCA9IHR5cGVvZiBvZmZzZXQgPT09ICdvYmplY3QnICYmIG9mZnNldCAhPT0gbnVsbDtcbiAgICBjb25zdCBvZmZzZXRNYWluQXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0Lm1haW5BeGlzIDogb2Zmc2V0O1xuICAgIGNvbnN0IG9mZnNldENyb3NzQXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0LmNyb3NzQXhpcyA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvZmZzZXRBbGlnbm1lbnRBeGlzID0gb2Zmc2V0SXNPYmplY3QgPyBvZmZzZXQuYWxpZ25tZW50QXhpcyA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtaWRkbGV3YXJlID0gdXNlTWVtbygoKSA9PiBbXG4gICAgICAgIGZsb2F0aW5nT2Zmc2V0KHtcbiAgICAgICAgICAgIG1haW5BeGlzOiBvZmZzZXRNYWluQXhpcyxcbiAgICAgICAgICAgIGNyb3NzQXhpczogb2Zmc2V0Q3Jvc3NBeGlzLFxuICAgICAgICAgICAgYWxpZ25tZW50QXhpczogb2Zmc2V0QWxpZ25tZW50QXhpcyxcbiAgICAgICAgfSksXG4gICAgICAgIGZsaXAoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgIGFycm93KHsgZWxlbWVudDogYXJyb3dSZWYsIHBhZGRpbmc6IDggfSksXG4gICAgICAgIC4uLihtYXRjaFRyaWdnZXJXaWR0aFxuICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgZmxvYXRpbmdTaXplKHtcbiAgICAgICAgICAgICAgICAgICAgYXBwbHkoeyByZWN0cywgZWxlbWVudHMgfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50cy5mbG9hdGluZy5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBgJHtyZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdXG4gICAgICAgICAgICA6IFtdKSxcbiAgICBdLCBbb2Zmc2V0TWFpbkF4aXMsIG9mZnNldENyb3NzQXhpcywgb2Zmc2V0QWxpZ25tZW50QXhpcywgbWF0Y2hUcmlnZ2VyV2lkdGhdKTtcbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBjb250ZXh0LCBwbGFjZW1lbnQ6IHJlc29sdmVkUGxhY2VtZW50IH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlOiBoYW5kbGVPcGVuQ2hhbmdlLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvUmVwb3NpdGlvbiA/IGF1dG9VcGRhdGUgOiB1bmRlZmluZWQsXG4gICAgICAgIG1pZGRsZXdhcmUsXG4gICAgICAgIHRyYW5zZm9ybTogZmFsc2UsXG4gICAgfSk7XG4gICAgY29uc3QgY2xpY2tJbnRlcmFjdGlvbiA9IHVzZUNsaWNrKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogdHJpZ2dlcnMuaW5jbHVkZXMoJ2NsaWNrJykgJiYgIWRpc2FibGVkLFxuICAgIH0pO1xuICAgIGNvbnN0IGhvdmVySW50ZXJhY3Rpb24gPSB1c2VIb3Zlcihjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdob3ZlcicpICYmICFkaXNhYmxlZCxcbiAgICAgICAgZGVsYXk6IGhvdmVyRGVsYXksXG4gICAgfSk7XG4gICAgY29uc3QgZm9jdXNJbnRlcmFjdGlvbiA9IHVzZUZvY3VzKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogdHJpZ2dlcnMuaW5jbHVkZXMoJ2ZvY3VzJykgJiYgIWRpc2FibGVkLFxuICAgIH0pO1xuICAgIGNvbnN0IGRpc21pc3NJbnRlcmFjdGlvbiA9IHVzZURpc21pc3MoY29udGV4dCwge1xuICAgICAgICBlbmFibGVkOiBkaXNtaXNzaWJsZSxcbiAgICB9KTtcbiAgICBjb25zdCByb2xlSW50ZXJhY3Rpb24gPSB1c2VSb2xlKGNvbnRleHQsIHsgcm9sZSB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICBjbGlja0ludGVyYWN0aW9uLFxuICAgICAgICBob3ZlckludGVyYWN0aW9uLFxuICAgICAgICBmb2N1c0ludGVyYWN0aW9uLFxuICAgICAgICBkaXNtaXNzSW50ZXJhY3Rpb24sXG4gICAgICAgIHJvbGVJbnRlcmFjdGlvbixcbiAgICBdKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgICAgICBzZXRSZWYocmVmLCBub2RlKTtcbiAgICB9LCBbcmVmcy5zZXRSZWZlcmVuY2UsIHJlZl0pO1xuICAgIGNvbnN0IHJlZmVyZW5jZVByb3BzID0gZ2V0UmVmZXJlbmNlUHJvcHMoeyByZWY6IGNvbXBvc2VkUmVmIH0pO1xuICAgIGNvbnN0IHBsYWNlbWVudE1ldGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgW3NpZGUsIGFsaWduXSA9IChyZXNvbHZlZFBsYWNlbWVudCAhPT0gbnVsbCAmJiByZXNvbHZlZFBsYWNlbWVudCAhPT0gdm9pZCAwID8gcmVzb2x2ZWRQbGFjZW1lbnQgOiAnYm90dG9tLXN0YXJ0Jykuc3BsaXQoJy0nKTtcbiAgICAgICAgcmV0dXJuIHsgc2lkZSwgYWxpZ24gfTtcbiAgICB9LCBbcmVzb2x2ZWRQbGFjZW1lbnRdKTtcbiAgICBjb25zdCBjbG9zZVBhbmVsID0gdXNlQ2FsbGJhY2soKCkgPT4gaGFuZGxlT3BlbkNoYW5nZShmYWxzZSksIFtoYW5kbGVPcGVuQ2hhbmdlXSk7XG4gICAgY29uc3QgeyBpc01vdW50ZWQsIHN0eWxlczogdHJhbnNpdGlvblN0eWxlcyB9ID0gdXNlRmxvYXRpbmdBbmltYXRpb24oY29udGV4dCwgcmVzb2x2ZWRQbGFjZW1lbnQsIGFuaW1hdGlvbik7XG4gICAgY29uc3QgYXJyb3dEYXRhID0gY29udGV4dC5taWRkbGV3YXJlRGF0YS5hcnJvdztcbiAgICBjb25zdCBhcnJvd1ZhcnMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sICgoYXJyb3dEYXRhID09PSBudWxsIHx8IGFycm93RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJyb3dEYXRhLngpICE9IG51bGwgJiYgeyAnLS1hcnJvdy14JzogYCR7YXJyb3dEYXRhLnh9cHhgIH0pKSwgKChhcnJvd0RhdGEgPT09IG51bGwgfHwgYXJyb3dEYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhcnJvd0RhdGEueSkgIT0gbnVsbCAmJiB7ICctLWFycm93LXknOiBgJHthcnJvd0RhdGEueX1weGAgfSkpO1xuICAgIGNvbnN0IHBhbmVsID0gKF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oeyByZWY6IHJlZnMuc2V0RmxvYXRpbmcsIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmbG9hdGluZ1N0eWxlcyksIGFycm93VmFycyksIHRyYW5zaXRpb25TdHlsZXMpLCBvdmVybGF5U3R5bGUpLCBjbGFzc05hbWU6IGpvaW5DbHMoYCR7UFJFRklYfS1wYW5lbGAsIG92ZXJsYXlDbGFzc05hbWUpLCBcImRhdGEtcGxhY2VtZW50XCI6IHJlc29sdmVkUGxhY2VtZW50LCBcImRhdGEtc2lkZVwiOiBwbGFjZW1lbnRNZXRhLnNpZGUsIFwiZGF0YS1hbGlnblwiOiBwbGFjZW1lbnRNZXRhLmFsaWduIH0sIGdldEZsb2F0aW5nUHJvcHMoKSwgeyBjaGlsZHJlbjogW3Nob3dBcnJvdyA/IChfanN4KEZsb2F0aW5nQXJyb3csIHsgcmVmOiBhcnJvd1JlZiwgY29udGV4dDogY29udGV4dCwgY2xhc3NOYW1lOiBgJHtQUkVGSVh9LWFycm93YCB9KSkgOiAoX2pzeChcInNwYW5cIiwgeyByZWY6IGFycm93UmVmLCBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICB9IH0pKSwgdHlwZW9mIGNvbnRlbnQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IGNvbnRlbnQoeyBjbG9zZTogY2xvc2VQYW5lbCwgb3BlbjogaW5uZXJPcGVuIH0pXG4gICAgICAgICAgICAgICAgOiBjb250ZW50XSB9KSkpO1xuICAgIHJldHVybiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbY2xvbmVFbGVtZW50KGNoaWxkcmVuLCByZWZlcmVuY2VQcm9wcyksIGlzTW91bnRlZCAmJiAocG9ydGFsID8gX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogcGFuZWwgfSkgOiBwYW5lbCldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUcmlnZ2VyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==