@1money/component-ui 0.0.43 → 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 (59) hide show
  1. package/es/components/Dropdown/Dropdown.js +11 -3
  2. package/es/components/Input/FieldShell/FieldShell.css +1 -1
  3. package/es/components/Input/FieldShell/FieldShell.js +2 -3
  4. package/es/components/Select/Select.js +130 -91
  5. package/es/components/Select/SelectCustom.d.ts +6 -0
  6. package/es/components/Select/SelectCustom.js +232 -0
  7. package/es/components/Select/SelectFieldShell.d.ts +2 -0
  8. package/es/components/Select/SelectFieldShell.js +12 -4
  9. package/es/components/Select/SelectOptionContent.d.ts +8 -0
  10. package/es/components/Select/SelectOptionContent.js +20 -11
  11. package/es/components/Select/SelectSearchControl.d.ts +3 -0
  12. package/es/components/Select/SelectSearchControl.js +9 -4
  13. package/es/components/Select/index.d.ts +5 -2
  14. package/es/components/Select/index.js +8 -3
  15. package/es/components/Select/interface.d.ts +147 -1
  16. package/es/components/Select/interface.js +1 -1
  17. package/es/components/Select/style/Select.css +1 -1
  18. package/es/components/Select/useSelectShell.d.ts +34 -0
  19. package/es/components/Select/useSelectShell.js +106 -0
  20. package/es/components/Trigger/Trigger.js +33 -8
  21. package/es/components/Trigger/interface.d.ts +25 -2
  22. package/es/hooks/index.d.ts +2 -0
  23. package/es/hooks/index.js +2 -0
  24. package/es/hooks/useFloatingAnimation.d.ts +24 -0
  25. package/es/hooks/useFloatingAnimation.js +45 -0
  26. package/es/index.css +1 -1
  27. package/es/index.d.ts +1 -1
  28. package/es/index.js +1 -1
  29. package/lib/components/Dropdown/Dropdown.js +11 -3
  30. package/lib/components/Input/FieldShell/FieldShell.css +1 -1
  31. package/lib/components/Input/FieldShell/FieldShell.js +2 -3
  32. package/lib/components/Select/Select.js +129 -90
  33. package/lib/components/Select/SelectCustom.d.ts +6 -0
  34. package/lib/components/Select/SelectCustom.js +242 -0
  35. package/lib/components/Select/SelectFieldShell.d.ts +2 -0
  36. package/lib/components/Select/SelectFieldShell.js +12 -4
  37. package/lib/components/Select/SelectOptionContent.d.ts +8 -0
  38. package/lib/components/Select/SelectOptionContent.js +21 -12
  39. package/lib/components/Select/SelectSearchControl.d.ts +3 -0
  40. package/lib/components/Select/SelectSearchControl.js +9 -4
  41. package/lib/components/Select/index.d.ts +5 -2
  42. package/lib/components/Select/index.js +9 -17
  43. package/lib/components/Select/interface.d.ts +147 -1
  44. package/lib/components/Select/interface.js +1 -1
  45. package/lib/components/Select/style/Select.css +1 -1
  46. package/lib/components/Select/useSelectShell.d.ts +34 -0
  47. package/lib/components/Select/useSelectShell.js +114 -0
  48. package/lib/components/Trigger/Trigger.js +32 -7
  49. package/lib/components/Trigger/interface.d.ts +25 -2
  50. package/lib/hooks/index.d.ts +2 -0
  51. package/lib/hooks/index.js +13 -0
  52. package/lib/hooks/useFloatingAnimation.d.ts +24 -0
  53. package/lib/hooks/useFloatingAnimation.js +51 -0
  54. package/lib/index.css +1 -1
  55. package/lib/index.d.ts +1 -1
  56. package/lib/index.js +1 -1
  57. package/package.json +1 -1
  58. package/scripts/mcp-server/examples.generated.json +42 -0
  59. package/scripts/mcp-server/index.generated.json +259 -10
@@ -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
+ }
@@ -7,4 +7,4 @@ exports.SELECT_VARIANTS = exports.SELECT_STATUSES = exports.SELECT_SIZES = void
7
7
  var SELECT_SIZES = exports.SELECT_SIZES = ['large', 'small'];
8
8
  var SELECT_STATUSES = exports.SELECT_STATUSES = ['default', 'error', 'warning', 'success'];
9
9
  var SELECT_VARIANTS = exports.SELECT_VARIANTS = ['fill', 'stroke', 'frameless'];
10
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6WyJTRUxFQ1RfU0laRVMiLCJleHBvcnRzIiwiU0VMRUNUX1NUQVRVU0VTIiwiU0VMRUNUX1ZBUklBTlRTIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFTyxJQUFNQSxZQUFZLEdBQUFDLE9BQUEsQ0FBQUQsWUFBQSxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBVTtBQUNoRCxJQUFNRSxlQUFlLEdBQUFELE9BQUEsQ0FBQUMsZUFBQSxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFVO0FBQzNFLElBQU1DLGVBQWUsR0FBQUYsT0FBQSxDQUFBRSxlQUFBLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBVSIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9pbnRlcmZhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
10
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6WyJTRUxFQ1RfU0laRVMiLCJleHBvcnRzIiwiU0VMRUNUX1NUQVRVU0VTIiwiU0VMRUNUX1ZBUklBTlRTIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFxQk8sSUFBTUEsWUFBWSxHQUFBQyxPQUFBLENBQUFELFlBQUEsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVU7QUFDaEQsSUFBTUUsZUFBZSxHQUFBRCxPQUFBLENBQUFDLGVBQUEsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBVTtBQUMzRSxJQUFNQyxlQUFlLEdBQUFGLE9BQUEsQ0FBQUUsZUFBQSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQVUiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvaW50ZXJmYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -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,114 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ exports.useSelectShell = useSelectShell;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+ var _react = require("@floating-ui/react");
12
+ var _react2 = require("react");
13
+ var _hooks = require("@1money/hooks");
14
+ var _useFloatingAnimation2 = require("../../hooks/useFloatingAnimation");
15
+ var DEFAULT_PLACEMENT = 'bottom-start';
16
+ var DEFAULT_LIST_MAX_HEIGHT = 320;
17
+ var PANEL_MIN_HEIGHT = 120;
18
+ function useSelectShell(options) {
19
+ var open = options.open,
20
+ _options$defaultOpen = options.defaultOpen,
21
+ defaultOpen = _options$defaultOpen === void 0 ? false : _options$defaultOpen,
22
+ onOpenChange = options.onOpenChange,
23
+ _options$disabled = options.disabled,
24
+ disabled = _options$disabled === void 0 ? false : _options$disabled,
25
+ _options$readOnly = options.readOnly,
26
+ readOnly = _options$readOnly === void 0 ? false : _options$readOnly,
27
+ _options$placement = options.placement,
28
+ placement = _options$placement === void 0 ? DEFAULT_PLACEMENT : _options$placement,
29
+ panelWidth = options.panelWidth,
30
+ _options$listMaxHeigh = options.listMaxHeight,
31
+ listMaxHeight = _options$listMaxHeigh === void 0 ? DEFAULT_LIST_MAX_HEIGHT : _options$listMaxHeigh,
32
+ animation = options.animation,
33
+ _options$role = options.role,
34
+ roleType = _options$role === void 0 ? 'select' : _options$role,
35
+ _options$offset = options.offset,
36
+ offsetProp = _options$offset === void 0 ? 0 : _options$offset;
37
+ var interactive = !disabled && !readOnly;
38
+ var offsetIsObject = (0, _typeof2["default"])(offsetProp) === 'object' && offsetProp !== null;
39
+ var offsetMainAxis = offsetIsObject ? offsetProp.mainAxis : offsetProp;
40
+ var offsetCrossAxis = offsetIsObject ? offsetProp.crossAxis : undefined;
41
+ var offsetAlignmentAxis = offsetIsObject ? offsetProp.alignmentAxis : undefined;
42
+ var _useControlledState = (0, _hooks.useControlledState)(defaultOpen, open),
43
+ _useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
44
+ isOpen = _useControlledState2[0],
45
+ setOpenState = _useControlledState2[1];
46
+ var setOpen = (0, _hooks.useEventCallback)(function (nextOpen) {
47
+ setOpenState(nextOpen);
48
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
49
+ });
50
+ var _useFloating = (0, _react.useFloating)({
51
+ open: isOpen,
52
+ onOpenChange: setOpen,
53
+ placement: placement,
54
+ whileElementsMounted: _react.autoUpdate,
55
+ transform: false,
56
+ middleware: [(0, _react.offset)({
57
+ mainAxis: offsetMainAxis,
58
+ crossAxis: offsetCrossAxis,
59
+ alignmentAxis: offsetAlignmentAxis
60
+ }, [offsetMainAxis, offsetCrossAxis, offsetAlignmentAxis]), (0, _react.flip)({
61
+ padding: 8
62
+ }), (0, _react.shift)({
63
+ padding: 8
64
+ }), (0, _react.size)({
65
+ apply: function apply(_ref) {
66
+ var rects = _ref.rects,
67
+ elements = _ref.elements,
68
+ availableHeight = _ref.availableHeight;
69
+ var nextMaxHeight = Math.max(PANEL_MIN_HEIGHT, Math.min(listMaxHeight, availableHeight));
70
+ var resolvedWidth = panelWidth == null ? "".concat(rects.reference.width, "px") : typeof panelWidth === 'number' ? "".concat(panelWidth, "px") : panelWidth;
71
+ Object.assign(elements.floating.style, {
72
+ width: resolvedWidth,
73
+ maxHeight: "".concat(nextMaxHeight, "px")
74
+ });
75
+ }
76
+ }, [panelWidth, listMaxHeight])]
77
+ }),
78
+ refs = _useFloating.refs,
79
+ floatingStyles = _useFloating.floatingStyles,
80
+ context = _useFloating.context,
81
+ resolvedPlacement = _useFloating.placement;
82
+ var resolvedAnimation = (0, _react2.useMemo)(function () {
83
+ return animation === false ? false : Object.assign({
84
+ kind: 'height'
85
+ }, animation !== null && animation !== void 0 ? animation : {});
86
+ }, [animation]);
87
+ var _useFloatingAnimation = (0, _useFloatingAnimation2.useFloatingAnimation)(context, resolvedPlacement, resolvedAnimation),
88
+ isMounted = _useFloatingAnimation.isMounted,
89
+ transitionStyles = _useFloatingAnimation.styles;
90
+ var click = (0, _react.useClick)(context, {
91
+ enabled: interactive
92
+ });
93
+ var dismiss = (0, _react.useDismiss)(context, {
94
+ enabled: interactive,
95
+ outsidePressEvent: 'mousedown'
96
+ });
97
+ var role = (0, _react.useRole)(context, {
98
+ role: roleType
99
+ });
100
+ var baseInteractions = [click, dismiss, role];
101
+ return {
102
+ isOpen: isOpen,
103
+ setOpen: setOpen,
104
+ refs: refs,
105
+ context: context,
106
+ placement: resolvedPlacement,
107
+ floatingStyles: floatingStyles,
108
+ transitionStyles: transitionStyles,
109
+ isMounted: isMounted,
110
+ baseInteractions: baseInteractions
111
+ };
112
+ }
113
+ var _default = exports["default"] = useSelectShell;
114
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L3VzZVNlbGVjdFNoZWxsLnRzIiwiY29tcG9uZW50cy9TZWxlY3QvdXNlU2VsZWN0U2hlbGwuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfaG9va3MiLCJfdXNlRmxvYXRpbmdBbmltYXRpb24yIiwiREVGQVVMVF9QTEFDRU1FTlQiLCJERUZBVUxUX0xJU1RfTUFYX0hFSUdIVCIsIlBBTkVMX01JTl9IRUlHSFQiLCJ1c2VTZWxlY3RTaGVsbCIsIm9wdGlvbnMiLCJvcGVuIiwiX29wdGlvbnMkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIm9uT3BlbkNoYW5nZSIsIl9vcHRpb25zJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfb3B0aW9ucyRyZWFkT25seSIsInJlYWRPbmx5IiwiX29wdGlvbnMkcGxhY2VtZW50IiwicGxhY2VtZW50IiwicGFuZWxXaWR0aCIsIl9vcHRpb25zJGxpc3RNYXhIZWlnaCIsImxpc3RNYXhIZWlnaHQiLCJhbmltYXRpb24iLCJfb3B0aW9ucyRyb2xlIiwicm9sZSIsInJvbGVUeXBlIiwiX29wdGlvbnMkb2Zmc2V0Iiwib2Zmc2V0Iiwib2Zmc2V0UHJvcCIsImludGVyYWN0aXZlIiwib2Zmc2V0SXNPYmplY3QiLCJfdHlwZW9mMiIsIm9mZnNldE1haW5BeGlzIiwibWFpbkF4aXMiLCJvZmZzZXRDcm9zc0F4aXMiLCJjcm9zc0F4aXMiLCJ1bmRlZmluZWQiLCJvZmZzZXRBbGlnbm1lbnRBeGlzIiwiYWxpZ25tZW50QXhpcyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlzT3BlbiIsInNldE9wZW5TdGF0ZSIsInNldE9wZW4iLCJ1c2VFdmVudENhbGxiYWNrIiwibmV4dE9wZW4iLCJfdXNlRmxvYXRpbmciLCJ1c2VGbG9hdGluZyIsIndoaWxlRWxlbWVudHNNb3VudGVkIiwiYXV0b1VwZGF0ZSIsInRyYW5zZm9ybSIsIm1pZGRsZXdhcmUiLCJmbGlwIiwicGFkZGluZyIsInNoaWZ0IiwiZmxvYXRpbmdTaXplIiwiYXBwbHkiLCJfcmVmIiwicmVjdHMiLCJlbGVtZW50cyIsImF2YWlsYWJsZUhlaWdodCIsIm5leHRNYXhIZWlnaHQiLCJNYXRoIiwibWF4IiwibWluIiwicmVzb2x2ZWRXaWR0aCIsImNvbmNhdCIsInJlZmVyZW5jZSIsIndpZHRoIiwiT2JqZWN0IiwiYXNzaWduIiwiZmxvYXRpbmciLCJzdHlsZSIsIm1heEhlaWdodCIsInJlZnMiLCJmbG9hdGluZ1N0eWxlcyIsImNvbnRleHQiLCJyZXNvbHZlZFBsYWNlbWVudCIsInJlc29sdmVkQW5pbWF0aW9uIiwidXNlTWVtbyIsImtpbmQiLCJfdXNlRmxvYXRpbmdBbmltYXRpb24iLCJ1c2VGbG9hdGluZ0FuaW1hdGlvbiIsImlzTW91bnRlZCIsInRyYW5zaXRpb25TdHlsZXMiLCJzdHlsZXMiLCJjbGljayIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJ1c2VSb2xlIiwiYmFzZUludGVyYWN0aW9ucyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQVdBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLHNCQUFBLEdBQUFILE9BQUE7QUEwQ0EsSUFBTUksaUJBQWlCLEdBQWMsY0FBYztBQUNuRCxJQUFNQyx1QkFBdUIsR0FBRyxHQUFHO0FBQ25DLElBQU1DLGdCQUFnQixHQUFHLEdBQUc7QUFFdEIsU0FBVUMsY0FBY0EsQ0FDNUJDLE9BQThCLEVBQUE7RUFFOUIsSUFDRUMsSUFBSSxHQVdGRCxPQUFPLENBWFRDLElBQUk7SUFBQUMsb0JBQUEsR0FXRkYsT0FBTyxD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LENBQUcsQ0FBRTtFQUFBLEdBQ3ZELENBQUNBLFNBQVMsQ0FBQyxDQUNaO0VBQ0QsSUFBQTZELHFCQUFBLEdBQWdELElBQUFDLDJDQUFvQixFQUNsRU4sT0FBTyxFQUNQQyxpQkFBaUIsRUFDakJDLGlCQUFpQixDQUNsQjtJQUpPSyxTQUFTLEdBQUFGLHFCQUFBLENBQVRFLFNBQVM7SUFBVUMsZ0JBQWdCLEdBQUFILHFCQUFBLENBQXhCSSxNQUFNO0VBTXpCLElBQU1DLEtBQUssR0FBRyxJQUFBQyxlQUFRLEVBQUNYLE9BQU8sRUFBRTtJQUFFWSxPQUFPLEVBQUU3RDtFQUFXLENBQUUsQ0FBQztFQUN6RCxJQUFNOEQsT0FBTyxHQUFHLElBQUFDLGlCQUFVLEVBQUNkLE9BQU8sRUFBRTtJQUNsQ1ksT0FBTyxFQUFFN0QsV0FBVztJQUNwQmdFLGlCQUFpQixFQUFFO0VDOUZuQixDRCtGRCxDQUFDO0VBQ0YsSUFBTXJFLElBQUksR0FBRyxJQUFBc0UsY0FBTyxFQUFDaEIsT0FBTyxFQUFFO0lBQUV0RCxJQUFJLEVBQUVDO0VBQVEsQ0FBRSxDQUFDO0VBRWpELElBQU1zRSxnQkFBZ0IsR0FBbUIsQ0FBQ1AsS0FBSyxFQUFFRyxPQUFPLEVBQUVuRSxJQUFJLENBQUM7RUFFL0QsT0FBTztJQUNMbUIsTUFBTSxFQUFOQSxNQUFNO0lBQ05FLE9BQU8sRUFBUEEsT0FBTztJQUNQK0IsSUFBSSxFQUFKQSxJQUFJO0lBQ0pFLE9BQU8sRUFBUEEsT0FBTztJQUNQNUQsU0FBUyxFQUFFNkQsaUJBQWlCO0lBQzVCRixjQUFjLEVBQWRBLGNBQWM7SUFDZFMsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEJELFNBQVMsRUFBVEEsU0FBUztJQUNUVSxnQkFBZ0IsRUFBaEJBO0VDaEdBLENEaUdEO0FBQ0g7QUFBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsY0FFYzFGLGNBQWMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvdXNlU2VsZWN0U2hlbGwuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgc2hpZnQsIHNpemUgYXMgZmxvYXRpbmdTaXplLCB1c2VDbGljaywgdXNlRGlzbWlzcywgdXNlRmxvYXRpbmcsIHVzZVJvbGUsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IHVzZUZsb2F0aW5nQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRmxvYXRpbmdBbmltYXRpb24nO1xuY29uc3QgREVGQVVMVF9QTEFDRU1FTlQgPSAnYm90dG9tLXN0YXJ0JztcbmNvbnN0IERFRkFVTFRfTElTVF9NQVhfSEVJR0hUID0gMzIwO1xuY29uc3QgUEFORUxfTUlOX0hFSUdIVCA9IDEyMDtcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RTaGVsbChvcHRpb25zKSB7XG4gICAgY29uc3QgeyBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBvbk9wZW5DaGFuZ2UsIGRpc2FibGVkID0gZmFsc2UsIHJlYWRPbmx5ID0gZmFsc2UsIHBsYWNlbWVudCA9IERFRkFVTFRfUExBQ0VNRU5ULCBwYW5lbFdpZHRoLCBsaXN0TWF4SGVpZ2h0ID0gREVGQVVMVF9MSVNUX01BWF9IRUlHSFQsIGFuaW1hdGlvbiwgcm9sZTogcm9sZVR5cGUgPSAnc2VsZWN0Jywgb2Zmc2V0OiBvZmZzZXRQcm9wID0gMCwgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgaW50ZXJhY3RpdmUgPSAhZGlzYWJsZWQgJiYgIXJlYWRPbmx5O1xuICAgIGNvbnN0IG9mZnNldElzT2JqZWN0ID0gdHlwZW9mIG9mZnNldFByb3AgPT09ICdvYmplY3QnICYmIG9mZnNldFByb3AgIT09IG51bGw7XG4gICAgY29uc3Qgb2Zmc2V0TWFpbkF4aXMgPSBvZmZzZXRJc09iamVjdCA/IG9mZnNldFByb3AubWFpbkF4aXMgOiBvZmZzZXRQcm9wO1xuICAgIGNvbnN0IG9mZnNldENyb3NzQXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0UHJvcC5jcm9zc0F4aXMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb2Zmc2V0QWxpZ25tZW50QXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0UHJvcC5hbGlnbm1lbnRBeGlzIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IFtpc09wZW4sIHNldE9wZW5TdGF0ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IHNldE9wZW4gPSB1c2VFdmVudENhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBzZXRPcGVuU3RhdGUobmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMsIGNvbnRleHQsIHBsYWNlbWVudDogcmVzb2x2ZWRQbGFjZW1lbnQsIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICAgIG9wZW46IGlzT3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlOiBzZXRPcGVuLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgICAgICB0cmFuc2Zvcm06IGZhbHNlLFxuICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgICBvZmZzZXQoe1xuICAgICAgICAgICAgICAgIG1haW5BeGlzOiBvZmZzZXRNYWluQXhpcyxcbiAgICAgICAgICAgICAgICBjcm9zc0F4aXM6IG9mZnNldENyb3NzQXhpcyxcbiAgICAgICAgICAgICAgICBhbGlnbm1lbnRBeGlzOiBvZmZzZXRBbGlnbm1lbnRBeGlzLFxuICAgICAgICAgICAgfSwgW29mZnNldE1haW5BeGlzLCBvZmZzZXRDcm9zc0F4aXMsIG9mZnNldEFsaWdubWVudEF4aXNdKSxcbiAgICAgICAgICAgIGZsaXAoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAgICAgc2hpZnQoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAgICAgZmxvYXRpbmdTaXplKHtcbiAgICAgICAgICAgICAgICBhcHBseSh7IHJlY3RzLCBlbGVtZW50cywgYXZhaWxhYmxlSGVpZ2h0IH0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dE1heEhlaWdodCA9IE1hdGgubWF4KFBBTkVMX01JTl9IRUlHSFQsIE1hdGgubWluKGxpc3RNYXhIZWlnaHQsIGF2YWlsYWJsZUhlaWdodCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZFdpZHRoID0gcGFuZWxXaWR0aCA9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGAke3JlY3RzLnJlZmVyZW5jZS53aWR0aH1weGBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdHlwZW9mIHBhbmVsV2lkdGggPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtwYW5lbFdpZHRofXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcGFuZWxXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50cy5mbG9hdGluZy5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlc29sdmVkV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IGAke25leHRNYXhIZWlnaHR9cHhgLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSwgW3BhbmVsV2lkdGgsIGxpc3RNYXhIZWlnaHRdKSxcbiAgICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCByZXNvbHZlZEFuaW1hdGlvbiA9IHVzZU1lbW8oKCkgPT4gYW5pbWF0aW9uID09PSBmYWxzZVxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogT2JqZWN0LmFzc2lnbih7IGtpbmQ6ICdoZWlnaHQnIH0sIChhbmltYXRpb24gIT09IG51bGwgJiYgYW5pbWF0aW9uICE9PSB2b2lkIDAgPyBhbmltYXRpb24gOiB7fSkpLCBbYW5pbWF0aW9uXSk7XG4gICAgY29uc3QgeyBpc01vdW50ZWQsIHN0eWxlczogdHJhbnNpdGlvblN0eWxlcyB9ID0gdXNlRmxvYXRpbmdBbmltYXRpb24oY29udGV4dCwgcmVzb2x2ZWRQbGFjZW1lbnQsIHJlc29sdmVkQW5pbWF0aW9uKTtcbiAgICBjb25zdCBjbGljayA9IHVzZUNsaWNrKGNvbnRleHQsIHsgZW5hYmxlZDogaW50ZXJhY3RpdmUgfSk7XG4gICAgY29uc3QgZGlzbWlzcyA9IHVzZURpc21pc3MoY29udGV4dCwge1xuICAgICAgICBlbmFibGVkOiBpbnRlcmFjdGl2ZSxcbiAgICAgICAgb3V0c2lkZVByZXNzRXZlbnQ6ICdtb3VzZWRvd24nLFxuICAgIH0pO1xuICAgIGNvbnN0IHJvbGUgPSB1c2VSb2xlKGNvbnRleHQsIHsgcm9sZTogcm9sZVR5cGUgfSk7XG4gICAgY29uc3QgYmFzZUludGVyYWN0aW9ucyA9IFtjbGljaywgZGlzbWlzcywgcm9sZV07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNPcGVuLFxuICAgICAgICBzZXRPcGVuLFxuICAgICAgICByZWZzLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBwbGFjZW1lbnQ6IHJlc29sdmVkUGxhY2VtZW50LFxuICAgICAgICBmbG9hdGluZ1N0eWxlcyxcbiAgICAgICAgdHJhbnNpdGlvblN0eWxlcyxcbiAgICAgICAgaXNNb3VudGVkLFxuICAgICAgICBiYXNlSW50ZXJhY3Rpb25zLFxuICAgIH07XG59XG5leHBvcnQgZGVmYXVsdCB1c2VTZWxlY3RTaGVsbDsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
12
  var _jsxRuntime = require("react/jsx-runtime");
@@ -13,6 +14,7 @@ var _react = require("@floating-ui/react");
13
14
  var _react2 = _interopRequireWildcard(require("react"));
14
15
  var _hooks = require("@1money/hooks");
15
16
  var _classnames = require("../../utils/classnames");
17
+ var _useFloatingAnimation2 = require("../../hooks/useFloatingAnimation");
16
18
  require("./style");
17
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
@@ -57,6 +59,9 @@ var Trigger = function Trigger(_ref) {
57
59
  role = _ref$role === void 0 ? 'dialog' : _ref$role,
58
60
  _ref$autoReposition = _ref.autoReposition,
59
61
  autoReposition = _ref$autoReposition === void 0 ? true : _ref$autoReposition,
62
+ _ref$matchTriggerWidt = _ref.matchTriggerWidth,
63
+ matchTriggerWidth = _ref$matchTriggerWidt === void 0 ? false : _ref$matchTriggerWidt,
64
+ animation = _ref.animation,
60
65
  ref = _ref.ref;
61
66
  var arrowRef = (0, _react2.useRef)(null);
62
67
  var triggers = (0, _react2.useMemo)(function () {
@@ -76,22 +81,39 @@ var Trigger = function Trigger(_ref) {
76
81
  onClose === null || onClose === void 0 ? void 0 : onClose();
77
82
  }
78
83
  });
84
+ var offsetIsObject = (0, _typeof2["default"])(offset) === 'object' && offset !== null;
85
+ var offsetMainAxis = offsetIsObject ? offset.mainAxis : offset;
86
+ var offsetCrossAxis = offsetIsObject ? offset.crossAxis : undefined;
87
+ var offsetAlignmentAxis = offsetIsObject ? offset.alignmentAxis : undefined;
79
88
  var middleware = (0, _react2.useMemo)(function () {
80
- return [(0, _react.offset)(offset), (0, _react.flip)({
89
+ return [(0, _react.offset)({
90
+ mainAxis: offsetMainAxis,
91
+ crossAxis: offsetCrossAxis,
92
+ alignmentAxis: offsetAlignmentAxis
93
+ }), (0, _react.flip)({
81
94
  padding: 8
82
95
  }), (0, _react.shift)({
83
96
  padding: 8
84
97
  }), (0, _react.arrow)({
85
98
  element: arrowRef,
86
99
  padding: 8
87
- })];
88
- }, [offset]);
100
+ })].concat((0, _toConsumableArray2["default"])(matchTriggerWidth ? [(0, _react.size)({
101
+ apply: function apply(_ref2) {
102
+ var rects = _ref2.rects,
103
+ elements = _ref2.elements;
104
+ Object.assign(elements.floating.style, {
105
+ width: "".concat(rects.reference.width, "px")
106
+ });
107
+ }
108
+ })] : []));
109
+ }, [offsetMainAxis, offsetCrossAxis, offsetAlignmentAxis, matchTriggerWidth]);
89
110
  var _useFloating = (0, _react.useFloating)({
90
111
  open: innerOpen,
91
112
  onOpenChange: handleOpenChange,
92
113
  placement: placement,
93
114
  whileElementsMounted: autoReposition ? _react.autoUpdate : undefined,
94
- middleware: middleware
115
+ middleware: middleware,
116
+ transform: false
95
117
  }),
96
118
  refs = _useFloating.refs,
97
119
  floatingStyles = _useFloating.floatingStyles,
@@ -136,6 +158,9 @@ var Trigger = function Trigger(_ref) {
136
158
  var closePanel = (0, _react2.useCallback)(function () {
137
159
  return handleOpenChange(false);
138
160
  }, [handleOpenChange]);
161
+ var _useFloatingAnimation = (0, _useFloatingAnimation2.useFloatingAnimation)(context, resolvedPlacement, animation),
162
+ isMounted = _useFloatingAnimation.isMounted,
163
+ transitionStyles = _useFloatingAnimation.styles;
139
164
  var arrowData = context.middlewareData.arrow;
140
165
  var arrowVars = Object.assign(Object.assign({}, (arrowData === null || arrowData === void 0 ? void 0 : arrowData.x) != null && {
141
166
  '--arrow-x': "".concat(arrowData.x, "px")
@@ -144,7 +169,7 @@ var Trigger = function Trigger(_ref) {
144
169
  });
145
170
  var panel = (0, _jsxRuntime.jsxs)("div", Object.assign({
146
171
  ref: refs.setFloating,
147
- style: Object.assign(Object.assign(Object.assign({}, floatingStyles), arrowVars), overlayStyle),
172
+ style: Object.assign(Object.assign(Object.assign(Object.assign({}, floatingStyles), arrowVars), transitionStyles), overlayStyle),
148
173
  className: (0, _classnames.joinCls)("".concat(PREFIX, "-panel"), overlayClassName),
149
174
  "data-placement": resolvedPlacement,
150
175
  "data-side": placementMeta.side,
@@ -169,10 +194,10 @@ var Trigger = function Trigger(_ref) {
169
194
  }) : content]
170
195
  }));
171
196
  return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
172
- children: [/*#__PURE__*/(0, _react2.cloneElement)(children, referenceProps), innerOpen && (portal ? (0, _jsxRuntime.jsx)(_react.FloatingPortal, {
197
+ children: [/*#__PURE__*/(0, _react2.cloneElement)(children, referenceProps), isMounted && (portal ? (0, _jsxRuntime.jsx)(_react.FloatingPortal, {
173
198
  children: panel
174
199
  }) : panel)]
175
200
  });
176
201
  };
177
202
  var _default = exports["default"] = Trigger;
178
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9UcmlnZ2VyL1RyaWdnZXIudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9yZWFjdDIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9ob29rcyIsIl9jbGFzc25hbWVzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlBSRUZJWCIsIm5vcm1hbGl6ZVRyaWdnZXIiLCJ0cmlnZ2VyIiwiQXJyYXkiLCJpc0FycmF5Iiwic2V0UmVmIiwicmVmIiwibm9kZSIsIl90eXBlb2YyIiwiY3VycmVudCIsIlRyaWdnZXIiLCJfcmVmIiwiY29udGVudCIsIl9yZWYkdHJpZ2dlciIsIl9yZWYkcGxhY2VtZW50IiwicGxhY2VtZW50Iiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsIl9yZWYkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9yZWYkc2hvd0Fycm93Iiwic2hvd0Fycm93IiwiX3JlZiRvZmZzZXQiLCJvZmZzZXQiLCJfcmVmJHBvcnRhbCIsInBvcnRhbCIsIl9yZWYkZGlzbWlzc2libGUiLCJkaXNtaXNzaWJsZSIsImhvdmVyRGVsYXkiLCJvdmVybGF5Q2xhc3NOYW1lIiwib3ZlcmxheVN0eWxlIiwiY2hpbGRyZW4iLCJfcmVmJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJvbk9wZW4iLCJvbkNsb3NlIiwiX3JlZiRyb2xlIiwicm9sZSIsIl9yZWYkYXV0b1JlcG9zaXRpb24iLCJhdXRvUmVwb3NpdGlvbiIsImFycm93UmVmIiwidXNlUmVmIiwidHJpZ2dlcnMiLCJ1c2VNZW1vIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJuZXh0T3BlbiIsIm1pZGRsZXdhcmUiLCJmbG9hdGluZ09mZnNldCIsImZsaXAiLCJwYWRkaW5nIiwic2hpZnQiLCJhcnJvdyIsImVsZW1lbnQiLCJfdXNlRmxvYXRpbmciLCJ1c2VGbG9hdGluZyIsIndoaWxlRWxlbWVudHNNb3VudGVkIiwiYXV0b1VwZGF0ZSIsInVuZGVmaW5lZCIsInJlZnMiLCJmbG9hdGluZ1N0eWxlcyIsImNvbnRleHQiLCJyZXNvbHZlZFBsYWNlbWVudCIsImNsaWNrSW50ZXJhY3Rpb24iLCJ1c2VDbGljayIsImVuYWJsZWQiLCJpbmNsdWRlcyIsImhvdmVySW50ZXJhY3Rpb24iLCJ1c2VIb3ZlciIsImRlbGF5IiwiZm9jdXNJbnRlcmFjdGlvbiIsInVzZUZvY3VzIiwiZGlzbWlzc0ludGVyYWN0aW9uIiwidXNlRGlzbWlzcyIsInJvbGVJbnRlcmFjdGlvbiIsInVzZVJvbGUiLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiY29tcG9zZWRSZWYiLCJ1c2VDYWxsYmFjayIsInNldFJlZmVyZW5jZSIsInJlZmVyZW5jZVByb3BzIiwicGxhY2VtZW50TWV0YSIsIl9zcGxpdCIsInNwbGl0IiwiX3NwbGl0MiIsInNpZGUiLCJhbGlnbiIsImNsb3NlUGFuZWwiLCJhcnJvd0RhdGEiLCJtaWRkbGV3YXJlRGF0YSIsImFycm93VmFycyIsImFzc2lnbiIsIngiLCJjb25jYXQiLCJ5IiwicGFuZWwiLCJfanN4cyIsInNldEZsb2F0aW5nIiwic3R5bGUiLCJjbGFzc05hbWUiLCJqb2luQ2xzIiwiX2pzeCIsIkZsb2F0aW5nQXJyb3ciLCJwb3NpdGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwicG9pbnRlckV2ZW50cyIsInZpc2liaWxpdHkiLCJjbG9zZSIsIl9GcmFnbWVudCIsImNsb25lRWxlbWVudCIsIkZsb2F0aW5nUG9ydGFsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBZ0JBLElBQUFFLE9BQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUwsT0FBQTtBQUdBQSxPQUFBO0FBQWlCLFNBQUFNLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSix3QkFBQUksQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxRQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxD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QUFRLEVBQUUwRCxjQUFjLENBQUMsRUFDdEN6QyxTQUFTLEtBQUt2QixNQUFNLEdBQUcsSUFBQXFGLGVBQUEsRUFBQ1UscUJBQWMsRUFBQTtNQUFBekYsUUFBQSxFQUFFeUU7SUFBSyxDQUFBLENBQWtCLEdBQUdBLEtBQUssQ0FBQztFQUFBLENBQUEsQ0FDeEU7QUFFUCxDQUFDO0FBQUMsSUFBQWlCLFFBQUEsR0FBQUMsT0FBQSxjQUVhaEgsT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1RyaWdnZXIvVHJpZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzLCBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFycm93LCBhdXRvVXBkYXRlLCBmbGlwLCBGbG9hdGluZ0Fycm93LCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0IGFzIGZsb2F0aW5nT2Zmc2V0LCBzaGlmdCwgdXNlQ2xpY2ssIHVzZURpc21pc3MsIHVzZUZsb2F0aW5nLCB1c2VGb2N1cywgdXNlSG92ZXIsIHVzZUludGVyYWN0aW9ucywgdXNlUm9sZSwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICdvbS10cmlnZ2VyJztcbmZ1bmN0aW9uIG5vcm1hbGl6ZVRyaWdnZXIodHJpZ2dlcikge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRyaWdnZXIpID8gdHJpZ2dlciA6IFt0cmlnZ2VyXTtcbn1cbmZ1bmN0aW9uIHNldFJlZihyZWYsIG5vZGUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZWYobm9kZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJlZiAmJiB0eXBlb2YgcmVmID09PSAnb2JqZWN0JyAmJiAnY3VycmVudCcgaW4gcmVmKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9XG59XG5jb25zdCBUcmlnZ2VyID0gKHsgY29udGVudCwgdHJpZ2dlciA9ICdjbGljaycsIHBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnLCBvcGVuLCBvbk9wZW5DaGFuZ2UsIGRlZmF1bHRPcGVuID0gZmFsc2UsIHNob3dBcnJvdyA9IGZhbHNlLCBvZmZzZXQgPSA0LCBwb3J0YWwgPSB0cnVlLCBkaXNtaXNzaWJsZSA9IHRydWUsIGhvdmVyRGVsYXksIG92ZXJsYXlDbGFzc05hbWUsIG92ZXJsYXlTdHlsZSwgY2hpbGRyZW4sIGRpc2FibGVkID0gZmFsc2UsIG9uT3Blbiwgb25DbG9zZSwgcm9sZSA9ICdkaWFsb2cnLCBhdXRvUmVwb3NpdGlvbiA9IHRydWUsIHJlZiwgfSkgPT4ge1xuICAgIGNvbnN0IGFycm93UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVUcmlnZ2VyKHRyaWdnZXIpLCBbdHJpZ2dlcl0pO1xuICAgIGNvbnN0IFtpbm5lck9wZW4sIHNldElubmVyT3Blbl0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IGhhbmRsZU9wZW5DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldElubmVyT3BlbihuZXh0T3Blbik7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgICAgIGlmIChuZXh0T3Blbikge1xuICAgICAgICAgICAgb25PcGVuID09PSBudWxsIHx8IG9uT3BlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBvbkNsb3NlID09PSBudWxsIHx8IG9uQ2xvc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG1pZGRsZXdhcmUgPSB1c2VNZW1vKCgpID0+IFtcbiAgICAgICAgZmxvYXRpbmdPZmZzZXQob2Zmc2V0KSxcbiAgICAgICAgZmxpcCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgIHNoaWZ0KHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgYXJyb3coeyBlbGVtZW50OiBhcnJvd1JlZiwgcGFkZGluZzogOCB9KSxcbiAgICBdLCBbb2Zmc2V0XSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSxcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1JlcG9zaXRpb24gPyBhdXRvVXBkYXRlIDogdW5kZWZpbmVkLFxuICAgICAgICBtaWRkbGV3YXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrSW50ZXJhY3Rpb24gPSB1c2VDbGljayhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdjbGljaycpICYmICFkaXNhYmxlZCxcbiAgICB9KTtcbiAgICBjb25zdCBob3ZlckludGVyYWN0aW9uID0gdXNlSG92ZXIoY29udGV4dCwge1xuICAgICAgICBlbmFibGVkOiB0cmlnZ2Vycy5pbmNsdWRlcygnaG92ZXInKSAmJiAhZGlzYWJsZWQsXG4gICAgICAgIGRlbGF5OiBob3ZlckRlbGF5LFxuICAgIH0pO1xuICAgIGNvbnN0IGZvY3VzSW50ZXJhY3Rpb24gPSB1c2VGb2N1cyhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdmb2N1cycpICYmICFkaXNhYmxlZCxcbiAgICB9KTtcbiAgICBjb25zdCBkaXNtaXNzSW50ZXJhY3Rpb24gPSB1c2VEaXNtaXNzKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogZGlzbWlzc2libGUsXG4gICAgfSk7XG4gICAgY29uc3Qgcm9sZUludGVyYWN0aW9uID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGUgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICAgICAgY2xpY2tJbnRlcmFjdGlvbixcbiAgICAgICAgaG92ZXJJbnRlcmFjdGlvbixcbiAgICAgICAgZm9jdXNJbnRlcmFjdGlvbixcbiAgICAgICAgZGlzbWlzc0ludGVyYWN0aW9uLFxuICAgICAgICByb2xlSW50ZXJhY3Rpb24sXG4gICAgXSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWYgPSB1c2VDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgc2V0UmVmKHJlZiwgbm9kZSk7XG4gICAgfSwgW3JlZnMuc2V0UmVmZXJlbmNlLCByZWZdKTtcbiAgICBjb25zdCByZWZlcmVuY2VQcm9wcyA9IGdldFJlZmVyZW5jZVByb3BzKHsgcmVmOiBjb21wb3NlZFJlZiB9KTtcbiAgICBjb25zdCBwbGFjZW1lbnRNZXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IFtzaWRlLCBhbGlnbl0gPSAocmVzb2x2ZWRQbGFjZW1lbnQgIT09IG51bGwgJiYgcmVzb2x2ZWRQbGFjZW1lbnQgIT09IHZvaWQgMCA/IHJlc29sdmVkUGxhY2VtZW50IDogJ2JvdHRvbS1zdGFydCcpLnNwbGl0KCctJyk7XG4gICAgICAgIHJldHVybiB7IHNpZGUsIGFsaWduIH07XG4gICAgfSwgW3Jlc29sdmVkUGxhY2VtZW50XSk7XG4gICAgY29uc3QgY2xvc2VQYW5lbCA9IHVzZUNhbGxiYWNrKCgpID0+IGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpLCBbaGFuZGxlT3BlbkNoYW5nZV0pO1xuICAgIGNvbnN0IGFycm93RGF0YSA9IGNvbnRleHQubWlkZGxld2FyZURhdGEuYXJyb3c7XG4gICAgY29uc3QgYXJyb3dWYXJzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAoKGFycm93RGF0YSA9PT0gbnVsbCB8fCBhcnJvd0RhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFycm93RGF0YS54KSAhPSBudWxsICYmIHsgJy0tYXJyb3cteCc6IGAke2Fycm93RGF0YS54fXB4YCB9KSksICgoYXJyb3dEYXRhID09PSBudWxsIHx8IGFycm93RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJyb3dEYXRhLnkpICE9IG51bGwgJiYgeyAnLS1hcnJvdy15JzogYCR7YXJyb3dEYXRhLnl9cHhgIH0pKTtcbiAgICBjb25zdCBwYW5lbCA9IChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgcmVmOiByZWZzLnNldEZsb2F0aW5nLCBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgYXJyb3dWYXJzKSwgb3ZlcmxheVN0eWxlKSwgY2xhc3NOYW1lOiBqb2luQ2xzKGAke1BSRUZJWH0tcGFuZWxgLCBvdmVybGF5Q2xhc3NOYW1lKSwgXCJkYXRhLXBsYWNlbWVudFwiOiByZXNvbHZlZFBsYWNlbWVudCwgXCJkYXRhLXNpZGVcIjogcGxhY2VtZW50TWV0YS5zaWRlLCBcImRhdGEtYWxpZ25cIjogcGxhY2VtZW50TWV0YS5hbGlnbiB9LCBnZXRGbG9hdGluZ1Byb3BzKCksIHsgY2hpbGRyZW46IFtzaG93QXJyb3cgPyAoX2pzeChGbG9hdGluZ0Fycm93LCB7IHJlZjogYXJyb3dSZWYsIGNvbnRleHQ6IGNvbnRleHQsIGNsYXNzTmFtZTogYCR7UFJFRklYfS1hcnJvd2AgfSkpIDogKF9qc3goXCJzcGFuXCIsIHsgcmVmOiBhcnJvd1JlZiwgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgfSB9KSksIHR5cGVvZiBjb250ZW50ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBjb250ZW50KHsgY2xvc2U6IGNsb3NlUGFuZWwsIG9wZW46IGlubmVyT3BlbiB9KVxuICAgICAgICAgICAgICAgIDogY29udGVudF0gfSkpKTtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2Nsb25lRWxlbWVudChjaGlsZHJlbiwgcmVmZXJlbmNlUHJvcHMpLCBpbm5lck9wZW4gJiYgKHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsIH0pIDogcGFuZWwpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgVHJpZ2dlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
203
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9UcmlnZ2VyL1RyaWdnZXIudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9yZWFjdDIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9ob29rcyIsIl9jbGFzc25hbWVzIiwiX3VzZUZsb2F0aW5nQW5pbWF0aW9uMiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJQUkVGSVgiLCJub3JtYWxpemVUcmlnZ2VyIiwidHJpZ2dlciIsIkFycmF5IiwiaXNBcnJheSIsInNldFJlZiIsInJlZiIsIm5vZGUiLCJfdHlwZW9mMiIsImN1cnJlbnQiLCJUcmlnZ2VyIiwiX3JlZiIsImNvbnRlbnQiLCJfcmVmJHRyaWdnZXIiLCJfcmVmJHBsYWNlbWVudCIsInBsYWNlbWVudCIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJfcmVmJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcmVmJHNob3dBcnJvdyIsInNob3dBcnJvdyIsIl9yZWYkb2Zmc2V0Iiwib2Zmc2V0IiwiX3JlZiRwb3J0YWwiLCJwb3J0YWwiLCJfcmVmJGRpc21pc3NpYmxlIiwiZGlzbWlzc2libGUiLCJob3ZlckRlbGF5Iiwib3ZlcmxheUNsYXNzTmFtZSIsIm92ZXJsYXlTdHlsZSIsImNoaWxkcmVuIiwiX3JlZiRkaXNhYmxlZCIsImRpc2FibGVkIiwib25PcGVuIiwib25DbG9zZSIsIl9yZWYkcm9sZSIsInJvbGUiLCJfcmVmJGF1dG9SZXBvc2l0aW9uIiwiYXV0b1JlcG9zaXRpb24iLCJfcmVmJG1hdGNoVHJpZ2dlcldpZHQiLCJtYXRjaFRyaWdnZXJXaWR0aCIsImFuaW1hdGlvbiIsImFycm93UmVmIiwidXNlUmVmIiwidHJpZ2dlcnMiLCJ1c2VNZW1vIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJuZXh0T3BlbiIsIm9mZnNldElzT2JqZWN0Iiwib2Zmc2V0TWFpbkF4aXMiLCJtYWluQXhpcyIsIm9mZnNldENyb3NzQXhpcyIsImNyb3NzQXhpcyIsInVuZGVmaW5lZCIsIm9mZnNldEFsaWdubWVudEF4aXMiLCJhbGlnbm1lbnRBeGlzIiwibWlkZGxld2FyZSIsImZsb2F0aW5nT2Zmc2V0IiwiZmxpcCIsInBhZGRpbmciLCJzaGlmdCIsImFycm93IiwiZWxlbWVudCIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJmbG9hdGluZ1NpemUiLCJhcHBseSIsIl9yZWYyIiwicmVjdHMiLCJlbGVtZW50cyIsImFzc2lnbiIsImZsb2F0aW5nIiwic3R5bGUiLCJ3aWR0aCIsInJlZmVyZW5jZSIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwid2hpbGVFbGVtZW50c01vdW50ZWQiLCJhdXRvVXBkYXRlIiwidHJhbnNmb3JtIiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInJlc29sdmVkUGxhY2VtZW50IiwiY2xpY2tJbnRlcmFjdGlvbiIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImluY2x1ZGVzIiwiaG92ZXJJbnRlcmFjdGlvbiIsInVzZUhvdmVyIiwiZGVsYXkiLCJmb2N1c0ludGVyYWN0aW9uIiwidXNlRm9jdXMiLCJkaXNtaXNzSW50ZXJhY3Rpb24iLCJ1c2VEaXNtaXNzIiwicm9sZUludGVyYWN0aW9uIiwidXNlUm9sZSIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJjb21wb3NlZFJlZiIsInVzZUNhbGxiYWNrIiwic2V0UmVmZXJlbmNlIiwicmVmZXJlbmNlUHJvcHMiLCJwbGFjZW1lbnRNZXRhIiwiX3NwbGl0Iiwic3BsaXQiLCJfc3BsaXQyIiwic2lkZSIsImFsaWduIiwiY2xvc2VQYW5lbCIsIl91c2VGbG9hdGluZ0FuaW1hdGlvbiIsInVzZUZsb2F0aW5nQW5pbWF0aW9uIiwiaXNNb3VudGVkIiwidHJhbnNpdGlvblN0eWxlcyIsInN0eWxlcyIsImFycm93RGF0YSIsIm1pZGRsZXdhcmVEYXRhIiwiYXJyb3dWYXJzIiwieCIsInkiLCJwYW5lbCIsIl9qc3hzIiwic2V0RmxvYXRpbmciLCJjbGFzc05hbWUiLCJqb2luQ2xzIiwiX2pzeCIsIkZsb2F0aW5nQXJyb3ciLCJwb3NpdGlvbiIsImhlaWdodCIsInBvaW50ZXJFdmVudHMiLCJ2aXNpYmlsaXR5IiwiY2xvc2UiLCJfRnJhZ21lbnQiLCJjbG9uZUVsZW1lbnQiLCJGbG9hdGluZ1BvcnRhbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFpQkEsSUFBQUUsT0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sc0JBQUEsR0FBQU4sT0FBQTtBQUdBQSxPQUFBO0FBQWlCLFNBQUFPLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FB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RUFBQTtJQUFBN0UsUUFBQSxFQUFBLENBRXJCVixTQUFTLEdBQ1IsSUFBQWtILGVBQUEsRUFBQ0Msb0JBQWEsRUFBQTtNQUNabEksR0FBRyxFQUFFcUMsUUFBaUQ7TUFDdEQrQyxPQUFPLEVBQUVBLE9BQU87TUFDaEIyQyxTQUFTLEtBQUE5RCxNQUFBLENBQUt2RSxNQUFNO0lBQVEsQ0FBQSxDQUM1QixHQUVGLElBQUF1SSxlQUFBLEVBQUEsTUFBQSxFQUFBO01BQ0VqSSxHQUFHLEVBQUVxQyxRQUFtRDtNQUN4RHFDLEtBQUssRUFBRTtRQUNMeUQsUUFBUSxFQUFFLFVBQVU7UUFDcEJ4RCxLQUFLLEVBQUUsQ0FBQztRQUNSeUQsTUFBTSxFQUFFLENBQUM7UUFDVEMsYUFBYSxFQUFFLE1BQU07UUFDckJDLFVBQVUsRUFBRTtNRDVGUjtJQzZGTCxDQUFBLENBRUosRUFDQSxPQUFPaEksT0FBTyxLQUFLLFVBQVUsR0FDMUJBLE9BQU8sQ0FBQztNQUFFaUksS0FBSyxFQUFFdEIsVUFBVTtNQUFFdkcsSUFBSSxFQUFFbUM7SUFBUyxDQUFFLENBQUMsR0FDL0N2QyxPQUFPO0VBQUEsQ0FBQSxDQUFBLENBRWQ7RUFFRCxPQUNFLElBQUF1SCxnQkFBQSxFQUFBVyxvQkFBQSxFQUFBO0lBQUEvRyxRQUFBLEVBQUEsY0FDRyxJQUFBZ0gsb0JBQVksRUFBQ2hILFFBQVEsRUFBRWlGLGNBQWMsQ0FBQyxFQUN0Q1UsU0FBUyxLQUFLakcsTUFBTSxHQUFHLElBQUE4RyxlQUFBLEVBQUNTLHFCQUFjLEVBQUE7TUFBQWpILFFBQUEsRUFBRW1HO0lBQUssQ0FBQSxDQUFrQixHQUFHQSxLQUFLLENBQUM7RUFBQSxDQUFBLENBQ3hFO0FBRVAsQ0FBQztBQUFDLElBQUFlLFFBQUEsR0FBQUMsT0FBQSxjQUVheEksT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1RyaWdnZXIvVHJpZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzLCBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFycm93LCBhdXRvVXBkYXRlLCBmbGlwLCBGbG9hdGluZ0Fycm93LCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0IGFzIGZsb2F0aW5nT2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlRm9jdXMsIHVzZUhvdmVyLCB1c2VJbnRlcmFjdGlvbnMsIHVzZVJvbGUsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCBSZWFjdCwgeyBjbG9uZUVsZW1lbnQsIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZsb2F0aW5nQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRmxvYXRpbmdBbmltYXRpb24nO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICdvbS10cmlnZ2VyJztcbmZ1bmN0aW9uIG5vcm1hbGl6ZVRyaWdnZXIodHJpZ2dlcikge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRyaWdnZXIpID8gdHJpZ2dlciA6IFt0cmlnZ2VyXTtcbn1cbmZ1bmN0aW9uIHNldFJlZihyZWYsIG5vZGUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZWYobm9kZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJlZiAmJiB0eXBlb2YgcmVmID09PSAnb2JqZWN0JyAmJiAnY3VycmVudCcgaW4gcmVmKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9XG59XG5jb25zdCBUcmlnZ2VyID0gKHsgY29udGVudCwgdHJpZ2dlciA9ICdjbGljaycsIHBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnLCBvcGVuLCBvbk9wZW5DaGFuZ2UsIGRlZmF1bHRPcGVuID0gZmFsc2UsIHNob3dBcnJvdyA9IGZhbHNlLCBvZmZzZXQgPSA0LCBwb3J0YWwgPSB0cnVlLCBkaXNtaXNzaWJsZSA9IHRydWUsIGhvdmVyRGVsYXksIG92ZXJsYXlDbGFzc05hbWUsIG92ZXJsYXlTdHlsZSwgY2hpbGRyZW4sIGRpc2FibGVkID0gZmFsc2UsIG9uT3Blbiwgb25DbG9zZSwgcm9sZSA9ICdkaWFsb2cnLCBhdXRvUmVwb3NpdGlvbiA9IHRydWUsIG1hdGNoVHJpZ2dlcldpZHRoID0gZmFsc2UsIGFuaW1hdGlvbiwgcmVmLCB9KSA9PiB7XG4gICAgY29uc3QgYXJyb3dSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlcnMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZVRyaWdnZXIodHJpZ2dlciksIFt0cmlnZ2VyXSk7XG4gICAgY29uc3QgW2lubmVyT3Blbiwgc2V0SW5uZXJPcGVuXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0T3Blbiwgb3Blbik7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc2V0SW5uZXJPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHRPcGVuKTtcbiAgICAgICAgaWYgKG5leHRPcGVuKSB7XG4gICAgICAgICAgICBvbk9wZW4gPT09IG51bGwgfHwgb25PcGVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9uQ2xvc2UgPT09IG51bGwgfHwgb25DbG9zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgb2Zmc2V0SXNPYmplY3QgPSB0eXBlb2Ygb2Zmc2V0ID09PSAnb2JqZWN0JyAmJiBvZmZzZXQgIT09IG51bGw7XG4gICAgY29uc3Qgb2Zmc2V0TWFpbkF4aXMgPSBvZmZzZXRJc09iamVjdCA/IG9mZnNldC5tYWluQXhpcyA6IG9mZnNldDtcbiAgICBjb25zdCBvZmZzZXRDcm9zc0F4aXMgPSBvZmZzZXRJc09iamVjdCA/IG9mZnNldC5jcm9zc0F4aXMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb2Zmc2V0QWxpZ25tZW50QXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0LmFsaWdubWVudEF4aXMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWlkZGxld2FyZSA9IHVzZU1lbW8oKCkgPT4gW1xuICAgICAgICBmbG9hdGluZ09mZnNldCh7XG4gICAgICAgICAgICBtYWluQXhpczogb2Zmc2V0TWFpbkF4aXMsXG4gICAgICAgICAgICBjcm9zc0F4aXM6IG9mZnNldENyb3NzQXhpcyxcbiAgICAgICAgICAgIGFsaWdubWVudEF4aXM6IG9mZnNldEFsaWdubWVudEF4aXMsXG4gICAgICAgIH0pLFxuICAgICAgICBmbGlwKHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgc2hpZnQoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICBhcnJvdyh7IGVsZW1lbnQ6IGFycm93UmVmLCBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAuLi4obWF0Y2hUcmlnZ2VyV2lkdGhcbiAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgIGZsb2F0aW5nU2l6ZSh7XG4gICAgICAgICAgICAgICAgICAgIGFwcGx5KHsgcmVjdHMsIGVsZW1lbnRzIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgXSwgW29mZnNldE1haW5BeGlzLCBvZmZzZXRDcm9zc0F4aXMsIG9mZnNldEFsaWdubWVudEF4aXMsIG1hdGNoVHJpZ2dlcldpZHRoXSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSxcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1JlcG9zaXRpb24gPyBhdXRvVXBkYXRlIDogdW5kZWZpbmVkLFxuICAgICAgICBtaWRkbGV3YXJlLFxuICAgICAgICB0cmFuc2Zvcm06IGZhbHNlLFxuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrSW50ZXJhY3Rpb24gPSB1c2VDbGljayhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdjbGljaycpICYmICFkaXNhYmxlZCxcbiAgICB9KTtcbiAgICBjb25zdCBob3ZlckludGVyYWN0aW9uID0gdXNlSG92ZXIoY29udGV4dCwge1xuICAgICAgICBlbmFibGVkOiB0cmlnZ2Vycy5pbmNsdWRlcygnaG92ZXInKSAmJiAhZGlzYWJsZWQsXG4gICAgICAgIGRlbGF5OiBob3ZlckRlbGF5LFxuICAgIH0pO1xuICAgIGNvbnN0IGZvY3VzSW50ZXJhY3Rpb24gPSB1c2VGb2N1cyhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdmb2N1cycpICYmICFkaXNhYmxlZCxcbiAgICB9KTtcbiAgICBjb25zdCBkaXNtaXNzSW50ZXJhY3Rpb24gPSB1c2VEaXNtaXNzKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogZGlzbWlzc2libGUsXG4gICAgfSk7XG4gICAgY29uc3Qgcm9sZUludGVyYWN0aW9uID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGUgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICAgICAgY2xpY2tJbnRlcmFjdGlvbixcbiAgICAgICAgaG92ZXJJbnRlcmFjdGlvbixcbiAgICAgICAgZm9jdXNJbnRlcmFjdGlvbixcbiAgICAgICAgZGlzbWlzc0ludGVyYWN0aW9uLFxuICAgICAgICByb2xlSW50ZXJhY3Rpb24sXG4gICAgXSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWYgPSB1c2VDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgc2V0UmVmKHJlZiwgbm9kZSk7XG4gICAgfSwgW3JlZnMuc2V0UmVmZXJlbmNlLCByZWZdKTtcbiAgICBjb25zdCByZWZlcmVuY2VQcm9wcyA9IGdldFJlZmVyZW5jZVByb3BzKHsgcmVmOiBjb21wb3NlZFJlZiB9KTtcbiAgICBjb25zdCBwbGFjZW1lbnRNZXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IFtzaWRlLCBhbGlnbl0gPSAocmVzb2x2ZWRQbGFjZW1lbnQgIT09IG51bGwgJiYgcmVzb2x2ZWRQbGFjZW1lbnQgIT09IHZvaWQgMCA/IHJlc29sdmVkUGxhY2VtZW50IDogJ2JvdHRvbS1zdGFydCcpLnNwbGl0KCctJyk7XG4gICAgICAgIHJldHVybiB7IHNpZGUsIGFsaWduIH07XG4gICAgfSwgW3Jlc29sdmVkUGxhY2VtZW50XSk7XG4gICAgY29uc3QgY2xvc2VQYW5lbCA9IHVzZUNhbGxiYWNrKCgpID0+IGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpLCBbaGFuZGxlT3BlbkNoYW5nZV0pO1xuICAgIGNvbnN0IHsgaXNNb3VudGVkLCBzdHlsZXM6IHRyYW5zaXRpb25TdHlsZXMgfSA9IHVzZUZsb2F0aW5nQW5pbWF0aW9uKGNvbnRleHQsIHJlc29sdmVkUGxhY2VtZW50LCBhbmltYXRpb24pO1xuICAgIGNvbnN0IGFycm93RGF0YSA9IGNvbnRleHQubWlkZGxld2FyZURhdGEuYXJyb3c7XG4gICAgY29uc3QgYXJyb3dWYXJzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAoKGFycm93RGF0YSA9PT0gbnVsbCB8fCBhcnJvd0RhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFycm93RGF0YS54KSAhPSBudWxsICYmIHsgJy0tYXJyb3cteCc6IGAke2Fycm93RGF0YS54fXB4YCB9KSksICgoYXJyb3dEYXRhID09PSBudWxsIHx8IGFycm93RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJyb3dEYXRhLnkpICE9IG51bGwgJiYgeyAnLS1hcnJvdy15JzogYCR7YXJyb3dEYXRhLnl9cHhgIH0pKTtcbiAgICBjb25zdCBwYW5lbCA9IChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgcmVmOiByZWZzLnNldEZsb2F0aW5nLCBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCBhcnJvd1ZhcnMpLCB0cmFuc2l0aW9uU3R5bGVzKSwgb3ZlcmxheVN0eWxlKSwgY2xhc3NOYW1lOiBqb2luQ2xzKGAke1BSRUZJWH0tcGFuZWxgLCBvdmVybGF5Q2xhc3NOYW1lKSwgXCJkYXRhLXBsYWNlbWVudFwiOiByZXNvbHZlZFBsYWNlbWVudCwgXCJkYXRhLXNpZGVcIjogcGxhY2VtZW50TWV0YS5zaWRlLCBcImRhdGEtYWxpZ25cIjogcGxhY2VtZW50TWV0YS5hbGlnbiB9LCBnZXRGbG9hdGluZ1Byb3BzKCksIHsgY2hpbGRyZW46IFtzaG93QXJyb3cgPyAoX2pzeChGbG9hdGluZ0Fycm93LCB7IHJlZjogYXJyb3dSZWYsIGNvbnRleHQ6IGNvbnRleHQsIGNsYXNzTmFtZTogYCR7UFJFRklYfS1hcnJvd2AgfSkpIDogKF9qc3goXCJzcGFuXCIsIHsgcmVmOiBhcnJvd1JlZiwgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgfSB9KSksIHR5cGVvZiBjb250ZW50ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBjb250ZW50KHsgY2xvc2U6IGNsb3NlUGFuZWwsIG9wZW46IGlubmVyT3BlbiB9KVxuICAgICAgICAgICAgICAgIDogY29udGVudF0gfSkpKTtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2Nsb25lRWxlbWVudChjaGlsZHJlbiwgcmVmZXJlbmNlUHJvcHMpLCBpc01vdW50ZWQgJiYgKHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsIH0pIDogcGFuZWwpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgVHJpZ2dlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=