@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.
- package/README.md +19 -24
- package/es/components/Dropdown/Dropdown.js +11 -3
- package/es/components/Icons/interface.d.ts +3 -0
- package/es/components/Input/FieldShell/FieldShell.css +1 -1
- package/es/components/Input/FieldShell/FieldShell.js +2 -3
- package/es/components/Select/Select.js +130 -91
- package/es/components/Select/SelectCustom.d.ts +6 -0
- package/es/components/Select/SelectCustom.js +232 -0
- package/es/components/Select/SelectFieldShell.d.ts +2 -0
- package/es/components/Select/SelectFieldShell.js +12 -4
- package/es/components/Select/SelectOptionContent.d.ts +8 -0
- package/es/components/Select/SelectOptionContent.js +20 -11
- package/es/components/Select/SelectSearchControl.d.ts +3 -0
- package/es/components/Select/SelectSearchControl.js +9 -4
- package/es/components/Select/index.d.ts +5 -2
- package/es/components/Select/index.js +8 -3
- package/es/components/Select/interface.d.ts +147 -1
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/Select.css +1 -1
- package/es/components/Select/useSelectShell.d.ts +34 -0
- package/es/components/Select/useSelectShell.js +106 -0
- package/es/components/Trigger/Trigger.js +33 -8
- package/es/components/Trigger/interface.d.ts +25 -2
- package/es/components/Upload/interface.d.ts +2 -0
- package/es/hooks/index.d.ts +2 -0
- package/es/hooks/index.js +2 -0
- package/es/hooks/useFloatingAnimation.d.ts +24 -0
- package/es/hooks/useFloatingAnimation.js +45 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +1 -1
- package/es/stories/docs/ComponentDocsPage.js +2 -2
- package/es/stories/docs/componentDocMeta.js +1 -4
- package/lib/components/Dropdown/Dropdown.js +11 -3
- package/lib/components/Icons/interface.d.ts +3 -0
- package/lib/components/Input/FieldShell/FieldShell.css +1 -1
- package/lib/components/Input/FieldShell/FieldShell.js +2 -3
- package/lib/components/Select/Select.js +129 -90
- package/lib/components/Select/SelectCustom.d.ts +6 -0
- package/lib/components/Select/SelectCustom.js +242 -0
- package/lib/components/Select/SelectFieldShell.d.ts +2 -0
- package/lib/components/Select/SelectFieldShell.js +12 -4
- package/lib/components/Select/SelectOptionContent.d.ts +8 -0
- package/lib/components/Select/SelectOptionContent.js +21 -12
- package/lib/components/Select/SelectSearchControl.d.ts +3 -0
- package/lib/components/Select/SelectSearchControl.js +9 -4
- package/lib/components/Select/index.d.ts +5 -2
- package/lib/components/Select/index.js +9 -17
- package/lib/components/Select/interface.d.ts +147 -1
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/Select.css +1 -1
- package/lib/components/Select/useSelectShell.d.ts +34 -0
- package/lib/components/Select/useSelectShell.js +114 -0
- package/lib/components/Trigger/Trigger.js +32 -7
- package/lib/components/Trigger/interface.d.ts +25 -2
- package/lib/components/Upload/interface.d.ts +2 -0
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/index.js +13 -0
- package/lib/hooks/useFloatingAnimation.d.ts +24 -0
- package/lib/hooks/useFloatingAnimation.js +51 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1 -1
- package/lib/stories/docs/ComponentDocsPage.js +2 -2
- package/lib/stories/docs/componentDocMeta.js +1 -4
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +549 -519
- 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
|
-
|
|
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,
|
|
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(
|
|
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
|
-
|
|
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),
|
|
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==
|