@gitlab/ui 72.12.0 → 72.12.1
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/CHANGELOG.md +7 -0
- package/dist/charts.js +14 -0
- package/dist/components/base/accordion/accordion.js +73 -0
- package/dist/components/base/accordion/accordion_item.js +133 -0
- package/dist/components/base/alert/alert.js +222 -0
- package/dist/components/base/avatar/avatar.js +160 -0
- package/dist/components/base/avatar_labeled/avatar_labeled.js +107 -0
- package/dist/components/base/avatar_link/avatar_link.js +47 -0
- package/dist/components/base/avatars_inline/avatars_inline.js +119 -0
- package/dist/components/base/badge/badge.js +105 -0
- package/dist/components/base/banner/banner.js +139 -0
- package/dist/components/base/breadcrumb/breadcrumb.js +122 -0
- package/dist/components/base/breadcrumb/breadcrumb_item.js +73 -0
- package/dist/components/base/broadcast_message/broadcast_message.js +112 -0
- package/dist/components/base/broadcast_message/constants.js +5 -0
- package/dist/components/base/button/button.js +151 -0
- package/dist/components/base/button_group/button_group.js +47 -0
- package/dist/components/base/card/card.js +71 -0
- package/dist/components/base/carousel/carousel.js +48 -0
- package/dist/components/base/carousel/carousel_slide.js +47 -0
- package/dist/components/base/collapse/collapse.js +59 -0
- package/dist/components/base/datepicker/datepicker.js +386 -0
- package/dist/components/base/daterange_picker/daterange_picker.js +288 -0
- package/dist/components/base/drawer/drawer.js +127 -0
- package/dist/components/base/dropdown/dropdown.js +261 -0
- package/dist/components/base/dropdown/dropdown_divider.js +48 -0
- package/dist/components/base/dropdown/dropdown_form.js +48 -0
- package/dist/components/base/dropdown/dropdown_item.js +131 -0
- package/dist/components/base/dropdown/dropdown_section_header.js +48 -0
- package/dist/components/base/dropdown/dropdown_text.js +48 -0
- package/dist/components/base/filtered_search/common_story_options.js +14 -0
- package/dist/components/base/filtered_search/filtered_search.js +388 -0
- package/dist/components/base/filtered_search/filtered_search_suggestion.js +89 -0
- package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +138 -0
- package/dist/components/base/filtered_search/filtered_search_term.js +203 -0
- package/dist/components/base/filtered_search/filtered_search_token.js +384 -0
- package/dist/components/base/filtered_search/filtered_search_token_segment.js +420 -0
- package/dist/components/base/filtered_search/filtered_search_utils.js +242 -0
- package/dist/components/base/form/form.js +49 -0
- package/dist/components/base/form/form_checkbox/form_checkbox.js +78 -0
- package/dist/components/base/form/form_checkbox/form_checkbox_group.js +60 -0
- package/dist/components/base/form/form_checkbox_tree/checkbox_tree_node.js +79 -0
- package/dist/components/base/form/form_checkbox_tree/form_checkbox_tree.js +138 -0
- package/dist/components/base/form/form_checkbox_tree/models/constants.js +12 -0
- package/dist/components/base/form/form_checkbox_tree/models/node.js +51 -0
- package/dist/components/base/form/form_checkbox_tree/models/tree.js +199 -0
- package/dist/components/base/form/form_combobox/constants.js +55 -0
- package/dist/components/base/form/form_combobox/form_combobox.js +230 -0
- package/dist/components/base/form/form_date/form_date.js +143 -0
- package/dist/components/base/form/form_fields/form_field_validator.js +93 -0
- package/dist/components/base/form/form_fields/form_fields.js +214 -0
- package/dist/components/base/form/form_fields/mappers.js +13 -0
- package/dist/components/base/form/form_fields/validators.js +48 -0
- package/dist/components/base/form/form_group/form_group.js +97 -0
- package/dist/components/base/form/form_input/form_input.js +121 -0
- package/dist/components/base/form/form_input_group/form_input_group.js +108 -0
- package/dist/components/base/form/form_input_group/form_input_group_mixin.js +41 -0
- package/dist/components/base/form/form_radio/form_radio.js +65 -0
- package/dist/components/base/form/form_radio_group/form_radio_group.js +78 -0
- package/dist/components/base/form/form_select/constants.js +12 -0
- package/dist/components/base/form/form_select/form_select.js +82 -0
- package/dist/components/base/form/form_text/form_text.js +38 -0
- package/dist/components/base/form/form_textarea/form_textarea.js +112 -0
- package/dist/components/base/form/input_group_text/input_group_text.js +48 -0
- package/dist/components/base/icon/icon.js +111 -0
- package/dist/components/base/infinite_scroll/infinite_scroll.js +197 -0
- package/dist/components/base/keyset_pagination/keyset_pagination.js +151 -0
- package/dist/components/base/label/label.js +163 -0
- package/dist/components/base/link/link.js +50 -0
- package/dist/components/base/loading_icon/loading_icon.js +111 -0
- package/dist/components/base/markdown/markdown.js +52 -0
- package/dist/components/base/modal/modal.js +204 -0
- package/dist/components/base/nav/nav.js +48 -0
- package/dist/components/base/nav/nav_item.js +48 -0
- package/dist/components/base/nav/nav_item_dropdown.js +62 -0
- package/dist/components/base/navbar/navbar.js +48 -0
- package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +453 -0
- package/dist/components/base/new_dropdowns/base_dropdown/constants.js +4 -0
- package/dist/components/base/new_dropdowns/constants.js +21 -0
- package/dist/components/base/new_dropdowns/disclosure/constants.js +8 -0
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +370 -0
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +110 -0
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +143 -0
- package/dist/components/base/new_dropdowns/disclosure/mock_data.js +147 -0
- package/dist/components/base/new_dropdowns/disclosure/utils.js +39 -0
- package/dist/components/base/new_dropdowns/listbox/listbox.js +767 -0
- package/dist/components/base/new_dropdowns/listbox/listbox_group.js +58 -0
- package/dist/components/base/new_dropdowns/listbox/listbox_item.js +91 -0
- package/dist/components/base/new_dropdowns/listbox/listbox_search_input.js +93 -0
- package/dist/components/base/new_dropdowns/listbox/mock_data.js +118 -0
- package/dist/components/base/new_dropdowns/listbox/utils.js +34 -0
- package/dist/components/base/paginated_list/paginated_list.js +180 -0
- package/dist/components/base/pagination/pagination.js +399 -0
- package/dist/components/base/path/data.js +34 -0
- package/dist/components/base/path/path.js +189 -0
- package/dist/components/base/popover/popover.js +110 -0
- package/dist/components/base/progress_bar/progress_bar.js +48 -0
- package/dist/components/base/search_box_by_click/search_box_by_click.js +235 -0
- package/dist/components/base/search_box_by_type/search_box_by_type.js +167 -0
- package/dist/components/base/segmented_control/segmented_control.js +109 -0
- package/dist/components/base/skeleton_loader/skeleton_loader.js +224 -0
- package/dist/components/base/sorting/sorting.js +171 -0
- package/dist/components/base/sorting/sorting_item.js +109 -0
- package/dist/components/base/table/constants.js +5 -0
- package/dist/components/base/table/table.js +89 -0
- package/dist/components/base/table_lite/table_lite.js +72 -0
- package/dist/components/base/tabs/constants.js +3 -0
- package/dist/components/base/tabs/tab/tab.js +83 -0
- package/dist/components/base/tabs/tabs/scrollable_tabs.js +143 -0
- package/dist/components/base/tabs/tabs/tabs.js +224 -0
- package/dist/components/base/toast/toast.js +82 -0
- package/dist/components/base/toggle/toggle.js +180 -0
- package/dist/components/base/token/token.js +85 -0
- package/dist/components/base/token_selector/helpers.js +5 -0
- package/dist/components/base/token_selector/token_container.js +165 -0
- package/dist/components/base/token_selector/token_selector.js +403 -0
- package/dist/components/base/token_selector/token_selector_dropdown.js +199 -0
- package/dist/components/base/tooltip/tooltip.js +55 -0
- package/dist/components/charts/area/area.js +311 -0
- package/dist/components/charts/bar/bar.js +253 -0
- package/dist/components/charts/chart/chart.js +215 -0
- package/dist/components/charts/column/column.js +226 -0
- package/dist/components/charts/discrete_scatter/discrete_scatter.js +203 -0
- package/dist/components/charts/gauge/gauge.js +208 -0
- package/dist/components/charts/heatmap/heatmap.js +295 -0
- package/dist/components/charts/heatmap/index.js +2 -0
- package/dist/components/charts/legend/legend.js +228 -0
- package/dist/components/charts/line/line.js +308 -0
- package/dist/components/charts/series_label/series_label.js +100 -0
- package/dist/components/charts/single_stat/single_stat.js +152 -0
- package/dist/components/charts/sparkline/sparkline.js +261 -0
- package/dist/components/charts/stacked_column/stacked_column.js +335 -0
- package/dist/components/charts/tooltip/tooltip.js +251 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.js +83 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.js +100 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message/copy_code_element.js +35 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +115 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message_sources/duo_chat_message_sources.js +104 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.js +64 -0
- package/dist/components/experimental/duo/chat/constants.js +23 -0
- package/dist/components/experimental/duo/chat/duo_chat.js +359 -0
- package/dist/components/experimental/duo/chat/mock_data.js +83 -0
- package/dist/components/experimental/duo/user_feedback/user_feedback.js +94 -0
- package/dist/components/experimental/duo/user_feedback/user_feedback_modal.js +124 -0
- package/dist/components/experimental/experiment_badge/constants.js +4 -0
- package/dist/components/experimental/experiment_badge/experiment_badge.js +107 -0
- package/dist/components/mixins/button_mixin.js +11 -0
- package/dist/components/mixins/safe_link_mixin.js +30 -0
- package/dist/components/mixins/tooltip_mixin.js +21 -0
- package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.js +53 -0
- package/dist/components/regions/empty_state/empty_state.js +154 -0
- package/dist/components/shared_components/charts/tooltip_default_format.js +53 -0
- package/dist/components/shared_components/clear_icon_button/clear_icon_button.js +64 -0
- package/dist/components/shared_components/close_button/close_button.js +54 -0
- package/dist/components/utilities/animated_number/animated_number.js +131 -0
- package/dist/components/utilities/friendly_wrap/friendly_wrap.js +75 -0
- package/dist/components/utilities/intersection_observer/intersection_observer.js +88 -0
- package/dist/components/utilities/intersperse/intersperse.js +86 -0
- package/dist/components/utilities/sprintf/sprintf.js +172 -0
- package/dist/components/utilities/truncate/constants.js +7 -0
- package/dist/components/utilities/truncate/truncate.js +111 -0
- package/dist/components/utilities/truncate_text/constants.js +7 -0
- package/dist/components/utilities/truncate_text/truncate_text.js +146 -0
- package/dist/config.js +86 -0
- package/dist/directives/collapse_toggle.js +1 -0
- package/dist/directives/hover_load/hover_load.js +45 -0
- package/dist/directives/modal.js +1 -0
- package/dist/directives/outside/get_event_like_time_stamp.js +33 -0
- package/dist/directives/outside/outside.js +106 -0
- package/dist/directives/resize_observer/resize_observer.js +51 -0
- package/dist/directives/safe_html/constants.js +6 -0
- package/dist/directives/safe_html/safe_html.js +39 -0
- package/dist/directives/safe_link/mock_data.js +10 -0
- package/dist/directives/safe_link/safe_link.js +65 -0
- package/dist/directives/tooltip.js +1 -0
- package/dist/index.css +7 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +105 -0
- package/dist/tokens/common_story_options.js +54 -0
- package/dist/tokens/css/tokens.css +1 -1
- package/dist/tokens/css/tokens.dark.css +1 -1
- package/dist/tokens/js/tokens.dark.js +1 -1
- package/dist/tokens/js/tokens.js +1 -1
- package/dist/tokens/scss/_tokens.dark.scss +1 -1
- package/dist/tokens/scss/_tokens.scss +1 -1
- package/dist/utils/breakpoints.js +20 -0
- package/dist/utils/charts/config.js +556 -0
- package/dist/utils/charts/constants.js +63 -0
- package/dist/utils/charts/mock_data.js +211 -0
- package/dist/utils/charts/story_config.js +42 -0
- package/dist/utils/charts/theme.js +192 -0
- package/dist/utils/charts/utils.js +54 -0
- package/dist/utils/constants.js +288 -0
- package/dist/utils/data_utils.js +21 -0
- package/dist/utils/datetime_utility.js +61 -0
- package/dist/utils/i18n.js +15 -0
- package/dist/utils/is_slot_empty.js +38 -0
- package/dist/utils/number_utils.js +124 -0
- package/dist/utils/stories_constants.js +29 -0
- package/dist/utils/stories_utils.js +13 -0
- package/dist/utils/story_decorators/container.js +16 -0
- package/dist/utils/string_utils.js +69 -0
- package/dist/utils/svgs/svg_paths.js +7 -0
- package/dist/utils/test_utils.js +33 -0
- package/dist/utils/use_fake_date.js +29 -0
- package/dist/utils/use_mock_intersection_observer.js +108 -0
- package/dist/utils/utils.js +197 -0
- package/dist/utils.js +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import clamp from 'lodash/clamp';
|
|
2
|
+
import uniqueId from 'lodash/uniqueId';
|
|
3
|
+
import { stopEvent, filterVisible } from '../../../../utils/utils';
|
|
4
|
+
import { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_FOCUS_CONTENT, POSITION_ABSOLUTE, POSITION_FIXED, HOME, END, ARROW_UP, ARROW_DOWN, ENTER, SPACE, GL_DROPDOWN_CONTENTS_CLASS } from '../constants';
|
|
5
|
+
import { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';
|
|
6
|
+
import GlBaseDropdown, { BASE_DROPDOWN_CLASS } from '../base_dropdown/base_dropdown';
|
|
7
|
+
import GlDisclosureDropdownItem, { ITEM_CLASS } from './disclosure_dropdown_item';
|
|
8
|
+
import GlDisclosureDropdownGroup from './disclosure_dropdown_group';
|
|
9
|
+
import { itemsValidator, hasOnlyListItems, isItem } from './utils';
|
|
10
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
11
|
+
|
|
12
|
+
//
|
|
13
|
+
const DROPDOWN_SELECTOR = `.${BASE_DROPDOWN_CLASS}`;
|
|
14
|
+
const ITEM_SELECTOR = `.${ITEM_CLASS}`;
|
|
15
|
+
var script = {
|
|
16
|
+
name: 'GlDisclosureDropdown',
|
|
17
|
+
events: {
|
|
18
|
+
GL_DROPDOWN_SHOWN,
|
|
19
|
+
GL_DROPDOWN_HIDDEN,
|
|
20
|
+
GL_DROPDOWN_BEFORE_CLOSE,
|
|
21
|
+
GL_DROPDOWN_FOCUS_CONTENT
|
|
22
|
+
},
|
|
23
|
+
components: {
|
|
24
|
+
GlBaseDropdown,
|
|
25
|
+
GlDisclosureDropdownItem,
|
|
26
|
+
GlDisclosureDropdownGroup
|
|
27
|
+
},
|
|
28
|
+
props: {
|
|
29
|
+
/**
|
|
30
|
+
* Items to display in the dropdown
|
|
31
|
+
*/
|
|
32
|
+
items: {
|
|
33
|
+
type: Array,
|
|
34
|
+
required: false,
|
|
35
|
+
default: () => [],
|
|
36
|
+
validator: itemsValidator
|
|
37
|
+
},
|
|
38
|
+
/**
|
|
39
|
+
* Toggle button text
|
|
40
|
+
*/
|
|
41
|
+
toggleText: {
|
|
42
|
+
type: String,
|
|
43
|
+
required: false,
|
|
44
|
+
default: ''
|
|
45
|
+
},
|
|
46
|
+
/**
|
|
47
|
+
* Toggle text to be read by screen readers only
|
|
48
|
+
*/
|
|
49
|
+
textSrOnly: {
|
|
50
|
+
type: Boolean,
|
|
51
|
+
required: false,
|
|
52
|
+
default: false
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Styling option - dropdown's toggle category
|
|
56
|
+
*/
|
|
57
|
+
category: {
|
|
58
|
+
type: String,
|
|
59
|
+
required: false,
|
|
60
|
+
default: buttonCategoryOptions.primary,
|
|
61
|
+
validator: value => value in buttonCategoryOptions
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* Styling option - dropdown's toggle variant
|
|
65
|
+
*/
|
|
66
|
+
variant: {
|
|
67
|
+
type: String,
|
|
68
|
+
required: false,
|
|
69
|
+
default: dropdownVariantOptions.default,
|
|
70
|
+
validator: value => value in dropdownVariantOptions
|
|
71
|
+
},
|
|
72
|
+
/**
|
|
73
|
+
* The size of the dropdown toggle
|
|
74
|
+
*/
|
|
75
|
+
size: {
|
|
76
|
+
type: String,
|
|
77
|
+
required: false,
|
|
78
|
+
default: 'medium',
|
|
79
|
+
validator: value => value in buttonSizeOptions
|
|
80
|
+
},
|
|
81
|
+
/**
|
|
82
|
+
* Icon name that will be rendered in the toggle button
|
|
83
|
+
*/
|
|
84
|
+
icon: {
|
|
85
|
+
type: String,
|
|
86
|
+
required: false,
|
|
87
|
+
default: ''
|
|
88
|
+
},
|
|
89
|
+
/**
|
|
90
|
+
* Set to "true" to disable the dropdown
|
|
91
|
+
*/
|
|
92
|
+
disabled: {
|
|
93
|
+
type: Boolean,
|
|
94
|
+
required: false,
|
|
95
|
+
default: false
|
|
96
|
+
},
|
|
97
|
+
/**
|
|
98
|
+
* Set to "true" when dropdown content (items) is loading
|
|
99
|
+
* It will render a small loader in the dropdown toggle and make it disabled
|
|
100
|
+
*/
|
|
101
|
+
loading: {
|
|
102
|
+
type: Boolean,
|
|
103
|
+
required: false,
|
|
104
|
+
default: false
|
|
105
|
+
},
|
|
106
|
+
/**
|
|
107
|
+
* Custom toggle id.
|
|
108
|
+
* For instance, it can be referenced by tooltip or popover
|
|
109
|
+
*/
|
|
110
|
+
toggleId: {
|
|
111
|
+
type: String,
|
|
112
|
+
required: false,
|
|
113
|
+
default: () => uniqueId('dropdown-toggle-btn-')
|
|
114
|
+
},
|
|
115
|
+
/**
|
|
116
|
+
* Additional CSS classes to customize toggle appearance
|
|
117
|
+
*/
|
|
118
|
+
toggleClass: {
|
|
119
|
+
type: [String, Array, Object],
|
|
120
|
+
required: false,
|
|
121
|
+
default: null
|
|
122
|
+
},
|
|
123
|
+
/**
|
|
124
|
+
* Set to "true" to hide the caret
|
|
125
|
+
*/
|
|
126
|
+
noCaret: {
|
|
127
|
+
type: Boolean,
|
|
128
|
+
required: false,
|
|
129
|
+
default: false
|
|
130
|
+
},
|
|
131
|
+
/**
|
|
132
|
+
* Align disclosure dropdown with respect to the toggle button
|
|
133
|
+
*/
|
|
134
|
+
placement: {
|
|
135
|
+
type: String,
|
|
136
|
+
required: false,
|
|
137
|
+
default: 'left',
|
|
138
|
+
validator: value => Object.keys(dropdownPlacements).includes(value)
|
|
139
|
+
},
|
|
140
|
+
/**
|
|
141
|
+
* The `aria-labelledby` attribute value for the toggle button
|
|
142
|
+
* Provide the string of ids seperated by space
|
|
143
|
+
*/
|
|
144
|
+
toggleAriaLabelledBy: {
|
|
145
|
+
type: String,
|
|
146
|
+
required: false,
|
|
147
|
+
default: null
|
|
148
|
+
},
|
|
149
|
+
/**
|
|
150
|
+
* The `aria-labelledby` attribute value for the list of options
|
|
151
|
+
* Provide the string of ids seperated by space
|
|
152
|
+
*/
|
|
153
|
+
listAriaLabelledBy: {
|
|
154
|
+
type: String,
|
|
155
|
+
required: false,
|
|
156
|
+
default: null
|
|
157
|
+
},
|
|
158
|
+
/**
|
|
159
|
+
* Render the toggle button as a block element
|
|
160
|
+
*/
|
|
161
|
+
block: {
|
|
162
|
+
type: Boolean,
|
|
163
|
+
required: false,
|
|
164
|
+
default: false
|
|
165
|
+
},
|
|
166
|
+
/**
|
|
167
|
+
* Custom offset to be applied to Floating UI's offset middleware.
|
|
168
|
+
* https://floating-ui.com/docs/offset
|
|
169
|
+
*/
|
|
170
|
+
dropdownOffset: {
|
|
171
|
+
type: [Number, Object],
|
|
172
|
+
required: false,
|
|
173
|
+
default: undefined
|
|
174
|
+
},
|
|
175
|
+
/**
|
|
176
|
+
* Lets the dropdown extend to match its content's width, up to a maximum width
|
|
177
|
+
* defined by the `$gl-new-dropdown-max-width` variable.
|
|
178
|
+
*/
|
|
179
|
+
fluidWidth: {
|
|
180
|
+
type: Boolean,
|
|
181
|
+
required: false,
|
|
182
|
+
default: false
|
|
183
|
+
},
|
|
184
|
+
/**
|
|
185
|
+
* Close the dropdown on item click (action)
|
|
186
|
+
*/
|
|
187
|
+
autoClose: {
|
|
188
|
+
type: Boolean,
|
|
189
|
+
required: false,
|
|
190
|
+
default: true
|
|
191
|
+
},
|
|
192
|
+
/**
|
|
193
|
+
* Strategy to be applied by computePosition. If the dropdown's container is too short for it to
|
|
194
|
+
* fit in, setting this to fixed will let it position itself above its container.
|
|
195
|
+
* https://floating-ui.com/docs/computePosition#strategy
|
|
196
|
+
*/
|
|
197
|
+
positioningStrategy: {
|
|
198
|
+
type: String,
|
|
199
|
+
required: false,
|
|
200
|
+
default: POSITION_ABSOLUTE,
|
|
201
|
+
validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)
|
|
202
|
+
},
|
|
203
|
+
/**
|
|
204
|
+
* Opens dropdown on render
|
|
205
|
+
*/
|
|
206
|
+
startOpened: {
|
|
207
|
+
type: Boolean,
|
|
208
|
+
required: false,
|
|
209
|
+
default: false
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
data() {
|
|
213
|
+
return {
|
|
214
|
+
disclosureId: uniqueId('disclosure-'),
|
|
215
|
+
nextFocusedItemIndex: null
|
|
216
|
+
};
|
|
217
|
+
},
|
|
218
|
+
computed: {
|
|
219
|
+
disclosureTag() {
|
|
220
|
+
var _this$items;
|
|
221
|
+
if ((_this$items = this.items) !== null && _this$items !== void 0 && _this$items.length || hasOnlyListItems(this.$scopedSlots)) {
|
|
222
|
+
return 'ul';
|
|
223
|
+
}
|
|
224
|
+
return 'div';
|
|
225
|
+
},
|
|
226
|
+
hasCustomToggle() {
|
|
227
|
+
return Boolean(this.$scopedSlots.toggle);
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
mounted() {
|
|
231
|
+
if (this.startOpened) {
|
|
232
|
+
this.open();
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
methods: {
|
|
236
|
+
open() {
|
|
237
|
+
this.$refs.baseDropdown.open();
|
|
238
|
+
},
|
|
239
|
+
close() {
|
|
240
|
+
this.$refs.baseDropdown.close();
|
|
241
|
+
},
|
|
242
|
+
onShow() {
|
|
243
|
+
/**
|
|
244
|
+
* Emitted when dropdown is shown
|
|
245
|
+
*
|
|
246
|
+
* @event shown
|
|
247
|
+
*/
|
|
248
|
+
this.$emit(GL_DROPDOWN_SHOWN);
|
|
249
|
+
},
|
|
250
|
+
onBeforeClose(event) {
|
|
251
|
+
/**
|
|
252
|
+
* Emitted when dropdown is about to be closed
|
|
253
|
+
*
|
|
254
|
+
* @event beforeClose
|
|
255
|
+
*/
|
|
256
|
+
this.$emit(GL_DROPDOWN_BEFORE_CLOSE, event);
|
|
257
|
+
},
|
|
258
|
+
onHide() {
|
|
259
|
+
/**
|
|
260
|
+
* Emitted when dropdown is hidden
|
|
261
|
+
*
|
|
262
|
+
* @event hidden
|
|
263
|
+
*/
|
|
264
|
+
this.$emit(GL_DROPDOWN_HIDDEN);
|
|
265
|
+
this.nextFocusedItemIndex = null;
|
|
266
|
+
},
|
|
267
|
+
onKeydown(event) {
|
|
268
|
+
const {
|
|
269
|
+
code
|
|
270
|
+
} = event;
|
|
271
|
+
const elements = this.getFocusableListItemElements();
|
|
272
|
+
if (elements.length < 1) return;
|
|
273
|
+
let stop = true;
|
|
274
|
+
if (code === HOME) {
|
|
275
|
+
this.focusItem(0, elements);
|
|
276
|
+
} else if (code === END) {
|
|
277
|
+
this.focusItem(elements.length - 1, elements);
|
|
278
|
+
} else if (code === ARROW_UP) {
|
|
279
|
+
this.focusNextItem(event, elements, -1);
|
|
280
|
+
} else if (code === ARROW_DOWN) {
|
|
281
|
+
this.focusNextItem(event, elements, 1);
|
|
282
|
+
} else if (code === ENTER || code === SPACE) {
|
|
283
|
+
this.handleAutoClose(event);
|
|
284
|
+
} else {
|
|
285
|
+
stop = false;
|
|
286
|
+
}
|
|
287
|
+
if (stop) {
|
|
288
|
+
stopEvent(event);
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
getFocusableListItemElements() {
|
|
292
|
+
var _this$$refs$content;
|
|
293
|
+
const items = (_this$$refs$content = this.$refs.content) === null || _this$$refs$content === void 0 ? void 0 : _this$$refs$content.querySelectorAll(ITEM_SELECTOR);
|
|
294
|
+
return filterVisible(Array.from(items || []));
|
|
295
|
+
},
|
|
296
|
+
focusNextItem(event, elements, offset) {
|
|
297
|
+
const {
|
|
298
|
+
target
|
|
299
|
+
} = event;
|
|
300
|
+
const currentIndex = elements.indexOf(target);
|
|
301
|
+
const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);
|
|
302
|
+
this.focusItem(nextIndex, elements);
|
|
303
|
+
},
|
|
304
|
+
focusItem(index, elements) {
|
|
305
|
+
var _elements$index;
|
|
306
|
+
this.nextFocusedItemIndex = index;
|
|
307
|
+
(_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();
|
|
308
|
+
},
|
|
309
|
+
closeAndFocus() {
|
|
310
|
+
this.$refs.baseDropdown.closeAndFocus();
|
|
311
|
+
},
|
|
312
|
+
handleAction(action) {
|
|
313
|
+
/**
|
|
314
|
+
* Emitted when one of disclosure dropdown items is clicked
|
|
315
|
+
*
|
|
316
|
+
* @event action
|
|
317
|
+
*/
|
|
318
|
+
this.$emit('action', action);
|
|
319
|
+
},
|
|
320
|
+
handleAutoClose(e) {
|
|
321
|
+
if (this.autoClose && e.target.closest(ITEM_SELECTOR) && e.target.closest(DROPDOWN_SELECTOR) === this.$refs.baseDropdown.$el) {
|
|
322
|
+
this.closeAndFocus();
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
uniqueItemId() {
|
|
326
|
+
return uniqueId(`disclosure-item-`);
|
|
327
|
+
},
|
|
328
|
+
isItem
|
|
329
|
+
},
|
|
330
|
+
GL_DROPDOWN_CONTENTS_CLASS
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
/* script */
|
|
334
|
+
const __vue_script__ = script;
|
|
335
|
+
|
|
336
|
+
/* template */
|
|
337
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:"baseDropdown",staticClass:"gl-disclosure-dropdown",attrs:{"aria-labelledby":_vm.toggleAriaLabelledBy,"toggle-id":_vm.toggleId,"toggle-text":_vm.toggleText,"toggle-class":_vm.toggleClass,"text-sr-only":_vm.textSrOnly,"category":_vm.category,"variant":_vm.variant,"size":_vm.size,"icon":_vm.icon,"disabled":_vm.disabled,"loading":_vm.loading,"no-caret":_vm.noCaret,"placement":_vm.placement,"block":_vm.block,"offset":_vm.dropdownOffset,"fluid-width":_vm.fluidWidth,"positioning-strategy":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide,_vm.$options.events.GL_DROPDOWN_BEFORE_CLOSE,_vm.onBeforeClose,_vm.$options.events.GL_DROPDOWN_FOCUS_CONTENT,_vm.onKeydown]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:"toggle",fn:function(){return [_vm._t("toggle")]},proxy:true}:null],null,true)},[_vm._v(" "),_vm._t("header"),_vm._v(" "),_c(_vm.disclosureTag,{ref:"content",tag:"component",class:_vm.$options.GL_DROPDOWN_CONTENTS_CLASS,attrs:{"id":_vm.disclosureId,"aria-labelledby":_vm.listAriaLabelledBy || _vm.toggleId,"data-testid":"disclosure-content","tabindex":"-1"},on:{"keydown":_vm.onKeydown,"click":_vm.handleAutoClose}},[_vm._t("default",function(){return [_vm._l((_vm.items),function(item,index){return [(_vm.isItem(item))?[_c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{"item":item},on:{"action":_vm.handleAction},scopedSlots:_vm._u([{key:"list-item",fn:function(){return [_vm._t("list-item",null,{"item":item})]},proxy:true}],null,true)})]:[_c('gl-disclosure-dropdown-group',{key:item.name,attrs:{"bordered":index !== 0,"group":item},on:{"action":_vm.handleAction},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:"group-label",fn:function(){return [_vm._t("group-label",null,{"group":item})]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.$scopedSlots['list-item'])?_vm._l((item.items),function(groupItem){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{"item":groupItem},on:{"action":_vm.handleAction},scopedSlots:_vm._u([{key:"list-item",fn:function(){return [_vm._t("list-item",null,{"item":groupItem})]},proxy:true}],null,true)})}):_vm._e()],2)]]})]})],2),_vm._v(" "),_vm._t("footer")],2)};
|
|
338
|
+
var __vue_staticRenderFns__ = [];
|
|
339
|
+
|
|
340
|
+
/* style */
|
|
341
|
+
const __vue_inject_styles__ = undefined;
|
|
342
|
+
/* scoped */
|
|
343
|
+
const __vue_scope_id__ = undefined;
|
|
344
|
+
/* module identifier */
|
|
345
|
+
const __vue_module_identifier__ = undefined;
|
|
346
|
+
/* functional template */
|
|
347
|
+
const __vue_is_functional_template__ = false;
|
|
348
|
+
/* style inject */
|
|
349
|
+
|
|
350
|
+
/* style inject SSR */
|
|
351
|
+
|
|
352
|
+
/* style inject shadow dom */
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
const __vue_component__ = __vue_normalize__(
|
|
357
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
358
|
+
__vue_inject_styles__,
|
|
359
|
+
__vue_script__,
|
|
360
|
+
__vue_scope_id__,
|
|
361
|
+
__vue_is_functional_template__,
|
|
362
|
+
__vue_module_identifier__,
|
|
363
|
+
false,
|
|
364
|
+
undefined,
|
|
365
|
+
undefined,
|
|
366
|
+
undefined
|
|
367
|
+
);
|
|
368
|
+
|
|
369
|
+
export default __vue_component__;
|
|
370
|
+
export { DROPDOWN_SELECTOR, ITEM_SELECTOR };
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import uniqueId from 'lodash/uniqueId';
|
|
2
|
+
import GlDisclosureDropdownItem from './disclosure_dropdown_item';
|
|
3
|
+
import { isGroup } from './utils';
|
|
4
|
+
import { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';
|
|
5
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
6
|
+
|
|
7
|
+
const BORDER_CLASSES = {
|
|
8
|
+
[DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-border-t-gray-200 gl-pt-2 gl-mt-2',
|
|
9
|
+
[DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-border-b-gray-200 gl-pb-2 gl-mb-2'
|
|
10
|
+
};
|
|
11
|
+
var script = {
|
|
12
|
+
name: DISCLOSURE_DROPDOWN_GROUP_NAME,
|
|
13
|
+
components: {
|
|
14
|
+
GlDisclosureDropdownItem
|
|
15
|
+
},
|
|
16
|
+
props: {
|
|
17
|
+
/**
|
|
18
|
+
* Group of items
|
|
19
|
+
*/
|
|
20
|
+
group: {
|
|
21
|
+
type: Object,
|
|
22
|
+
required: false,
|
|
23
|
+
default: null,
|
|
24
|
+
validator: isGroup
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* If 'true', will set top border for the group
|
|
28
|
+
* to separate from other groups. You can control
|
|
29
|
+
* the border position using the `borderPosition`
|
|
30
|
+
* property.
|
|
31
|
+
*/
|
|
32
|
+
bordered: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
required: false,
|
|
35
|
+
default: false
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* Controls the position of the group's border. Valid
|
|
39
|
+
* values are 'top' and 'bottom'.
|
|
40
|
+
*/
|
|
41
|
+
borderPosition: {
|
|
42
|
+
type: String,
|
|
43
|
+
required: false,
|
|
44
|
+
default: DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top,
|
|
45
|
+
validator: value => Object.keys(DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS).includes(value)
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
computed: {
|
|
49
|
+
borderClass() {
|
|
50
|
+
return this.bordered ? BORDER_CLASSES[this.borderPosition] : null;
|
|
51
|
+
},
|
|
52
|
+
showHeader() {
|
|
53
|
+
var _this$group;
|
|
54
|
+
return this.$scopedSlots['group-label'] || ((_this$group = this.group) === null || _this$group === void 0 ? void 0 : _this$group.name);
|
|
55
|
+
},
|
|
56
|
+
groupLabeledBy() {
|
|
57
|
+
return this.showHeader ? this.nameId : null;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
created() {
|
|
61
|
+
this.nameId = uniqueId('gl-disclosure-dropdown-group-');
|
|
62
|
+
},
|
|
63
|
+
methods: {
|
|
64
|
+
handleAction(action) {
|
|
65
|
+
this.$emit('action', action);
|
|
66
|
+
},
|
|
67
|
+
uniqueItemId() {
|
|
68
|
+
return uniqueId(`disclosure-item-`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/* script */
|
|
74
|
+
const __vue_script__ = script;
|
|
75
|
+
|
|
76
|
+
/* template */
|
|
77
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:_vm.borderClass},[(_vm.showHeader)?_c('div',{staticClass:"gl-pl-4 gl-py-2 gl-font-sm gl-font-weight-bold",attrs:{"id":_vm.nameId,"aria-hidden":"true"}},[_vm._t("group-label",function(){return [_vm._v(_vm._s(_vm.group.name))]})],2):_vm._e(),_vm._v(" "),_c('ul',{staticClass:"gl-mb-0 gl-pl-0 gl-list-style-none",attrs:{"aria-labelledby":_vm.groupLabeledBy}},[_vm._t("default",function(){return _vm._l((_vm.group.items),function(item){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{"item":item},on:{"action":_vm.handleAction},scopedSlots:_vm._u([{key:"list-item",fn:function(){return [_vm._t("list-item",null,{"item":item})]},proxy:true}],null,true)})})})],2)])};
|
|
78
|
+
var __vue_staticRenderFns__ = [];
|
|
79
|
+
|
|
80
|
+
/* style */
|
|
81
|
+
const __vue_inject_styles__ = undefined;
|
|
82
|
+
/* scoped */
|
|
83
|
+
const __vue_scope_id__ = undefined;
|
|
84
|
+
/* module identifier */
|
|
85
|
+
const __vue_module_identifier__ = undefined;
|
|
86
|
+
/* functional template */
|
|
87
|
+
const __vue_is_functional_template__ = false;
|
|
88
|
+
/* style inject */
|
|
89
|
+
|
|
90
|
+
/* style inject SSR */
|
|
91
|
+
|
|
92
|
+
/* style inject shadow dom */
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
const __vue_component__ = __vue_normalize__(
|
|
97
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
98
|
+
__vue_inject_styles__,
|
|
99
|
+
__vue_script__,
|
|
100
|
+
__vue_scope_id__,
|
|
101
|
+
__vue_is_functional_template__,
|
|
102
|
+
__vue_module_identifier__,
|
|
103
|
+
false,
|
|
104
|
+
undefined,
|
|
105
|
+
undefined,
|
|
106
|
+
undefined
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
export default __vue_component__;
|
|
110
|
+
export { BORDER_CLASSES };
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { ENTER, SPACE } from '../constants';
|
|
2
|
+
import { stopEvent } from '../../../../utils/utils';
|
|
3
|
+
import { isItem } from './utils';
|
|
4
|
+
import { DISCLOSURE_DROPDOWN_ITEM_NAME } from './constants';
|
|
5
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
6
|
+
|
|
7
|
+
const ITEM_CLASS = 'gl-new-dropdown-item';
|
|
8
|
+
var script = {
|
|
9
|
+
name: DISCLOSURE_DROPDOWN_ITEM_NAME,
|
|
10
|
+
ITEM_CLASS,
|
|
11
|
+
props: {
|
|
12
|
+
item: {
|
|
13
|
+
type: Object,
|
|
14
|
+
required: false,
|
|
15
|
+
default: null,
|
|
16
|
+
validator: isItem
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
computed: {
|
|
20
|
+
isLink() {
|
|
21
|
+
var _this$item;
|
|
22
|
+
return typeof ((_this$item = this.item) === null || _this$item === void 0 ? void 0 : _this$item.href) === 'string';
|
|
23
|
+
},
|
|
24
|
+
isCustomContent() {
|
|
25
|
+
return Boolean(this.$scopedSlots.default);
|
|
26
|
+
},
|
|
27
|
+
itemComponent() {
|
|
28
|
+
const {
|
|
29
|
+
item
|
|
30
|
+
} = this;
|
|
31
|
+
if (this.isLink) return {
|
|
32
|
+
is: 'a',
|
|
33
|
+
attrs: {
|
|
34
|
+
href: item.href,
|
|
35
|
+
...item.extraAttrs
|
|
36
|
+
},
|
|
37
|
+
listeners: {
|
|
38
|
+
click: this.action
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
is: 'button',
|
|
43
|
+
attrs: {
|
|
44
|
+
...(item === null || item === void 0 ? void 0 : item.extraAttrs),
|
|
45
|
+
type: 'button'
|
|
46
|
+
},
|
|
47
|
+
listeners: {
|
|
48
|
+
click: () => {
|
|
49
|
+
var _item$action;
|
|
50
|
+
item === null || item === void 0 ? void 0 : (_item$action = item.action) === null || _item$action === void 0 ? void 0 : _item$action.call(undefined, item);
|
|
51
|
+
this.action();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
listIndex() {
|
|
57
|
+
var _this$item2, _this$item2$extraAttr;
|
|
58
|
+
return (_this$item2 = this.item) !== null && _this$item2 !== void 0 && (_this$item2$extraAttr = _this$item2.extraAttrs) !== null && _this$item2$extraAttr !== void 0 && _this$item2$extraAttr.disabled ? null : 0;
|
|
59
|
+
},
|
|
60
|
+
componentIndex() {
|
|
61
|
+
var _this$item3, _this$item3$extraAttr;
|
|
62
|
+
return (_this$item3 = this.item) !== null && _this$item3 !== void 0 && (_this$item3$extraAttr = _this$item3.extraAttrs) !== null && _this$item3$extraAttr !== void 0 && _this$item3$extraAttr.disabled ? null : -1;
|
|
63
|
+
},
|
|
64
|
+
wrapperClass() {
|
|
65
|
+
var _this$item$wrapperCla, _this$item4;
|
|
66
|
+
return (_this$item$wrapperCla = (_this$item4 = this.item) === null || _this$item4 === void 0 ? void 0 : _this$item4.wrapperClass) !== null && _this$item$wrapperCla !== void 0 ? _this$item$wrapperCla : '';
|
|
67
|
+
},
|
|
68
|
+
wrapperListeners() {
|
|
69
|
+
const listeners = {
|
|
70
|
+
keydown: this.onKeydown
|
|
71
|
+
};
|
|
72
|
+
if (this.isCustomContent) {
|
|
73
|
+
listeners.click = this.action;
|
|
74
|
+
}
|
|
75
|
+
return listeners;
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
methods: {
|
|
79
|
+
onKeydown(event) {
|
|
80
|
+
const {
|
|
81
|
+
code
|
|
82
|
+
} = event;
|
|
83
|
+
if (code === ENTER || code === SPACE) {
|
|
84
|
+
if (this.isCustomContent) {
|
|
85
|
+
this.action();
|
|
86
|
+
} else {
|
|
87
|
+
var _this$$refs$item;
|
|
88
|
+
stopEvent(event);
|
|
89
|
+
/** Instead of simply navigating or calling the action, we want
|
|
90
|
+
* the `a/button` to be the target of the event as it might have additional attributes.
|
|
91
|
+
* E.g. `a` might have `target` attribute.
|
|
92
|
+
*/
|
|
93
|
+
(_this$$refs$item = this.$refs.item) === null || _this$$refs$item === void 0 ? void 0 : _this$$refs$item.dispatchEvent(new MouseEvent('click', {
|
|
94
|
+
bubbles: true,
|
|
95
|
+
cancelable: true
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
action() {
|
|
101
|
+
this.$emit('action', this.item);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/* script */
|
|
107
|
+
const __vue_script__ = script;
|
|
108
|
+
|
|
109
|
+
/* template */
|
|
110
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',_vm._g({class:[_vm.$options.ITEM_CLASS, _vm.wrapperClass],attrs:{"tabindex":_vm.listIndex,"data-testid":"disclosure-dropdown-item"}},_vm.wrapperListeners),[_vm._t("default",function(){return [_c(_vm.itemComponent.is,_vm._g(_vm._b({ref:"item",tag:"component",staticClass:"gl-new-dropdown-item-content",attrs:{"tabindex":_vm.componentIndex}},'component',_vm.itemComponent.attrs,false),_vm.itemComponent.listeners),[_c('span',{staticClass:"gl-new-dropdown-item-text-wrapper"},[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(_vm.item.text)+"\n ")]})],2)])]})],2)};
|
|
111
|
+
var __vue_staticRenderFns__ = [];
|
|
112
|
+
|
|
113
|
+
/* style */
|
|
114
|
+
const __vue_inject_styles__ = undefined;
|
|
115
|
+
/* scoped */
|
|
116
|
+
const __vue_scope_id__ = undefined;
|
|
117
|
+
/* module identifier */
|
|
118
|
+
const __vue_module_identifier__ = undefined;
|
|
119
|
+
/* functional template */
|
|
120
|
+
const __vue_is_functional_template__ = false;
|
|
121
|
+
/* style inject */
|
|
122
|
+
|
|
123
|
+
/* style inject SSR */
|
|
124
|
+
|
|
125
|
+
/* style inject shadow dom */
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
const __vue_component__ = __vue_normalize__(
|
|
130
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
131
|
+
__vue_inject_styles__,
|
|
132
|
+
__vue_script__,
|
|
133
|
+
__vue_scope_id__,
|
|
134
|
+
__vue_is_functional_template__,
|
|
135
|
+
__vue_module_identifier__,
|
|
136
|
+
false,
|
|
137
|
+
undefined,
|
|
138
|
+
undefined,
|
|
139
|
+
undefined
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
export default __vue_component__;
|
|
143
|
+
export { ITEM_CLASS };
|