@gitlab/ui 92.1.0 → 92.2.0
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 +16 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.js +29 -1
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.js +18 -1
- package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +4 -6
- package/dist/components/experimental/duo/chat/constants.js +2 -1
- package/dist/components/experimental/duo/chat/duo_chat.js +8 -4
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/package.json +1 -1
- package/src/components/base/button/button.scss +12 -2
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.vue +62 -30
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.vue +29 -10
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue +11 -6
- package/src/components/experimental/duo/chat/constants.js +2 -0
- package/src/components/experimental/duo/chat/duo_chat.vue +8 -3
- package/translations.js +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
# [92.2.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v92.1.1...v92.2.0) (2024-09-11)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **DuoChat:** MR Feedback from vanessaotto ([0cf5b57](https://gitlab.com/gitlab-org/gitlab-ui/commit/0cf5b57b8445c9e180ae3e1b7b7f1aab56eeb3a6))
|
|
7
|
+
* **DuoChat:** UI Polish on context ([4ab5ed8](https://gitlab.com/gitlab-org/gitlab-ui/commit/4ab5ed84c18c316317135d97851e911823df50e9))
|
|
8
|
+
* **GlButton:** Explicitly add btn-block styling rather than relying on bootstrap ([40dc96b](https://gitlab.com/gitlab-org/gitlab-ui/commit/40dc96b35a8885c12de9c43d7a292db5e83e22dc))
|
|
9
|
+
|
|
10
|
+
## [92.1.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v92.1.0...v92.1.1) (2024-09-11)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* ensure chat scrolls to bottom with new message ([3d048f8](https://gitlab.com/gitlab-org/gitlab-ui/commit/3d048f82c586cd3860a7cf5c86d0572ee44d0dc6))
|
|
16
|
+
|
|
1
17
|
# [92.1.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v92.0.0...v92.1.0) (2024-09-10)
|
|
2
18
|
|
|
3
19
|
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import GlPopover from '../../../../../../base/popover/popover';
|
|
2
|
+
import GlIcon from '../../../../../../base/icon/icon';
|
|
2
3
|
import { translate } from '../../../../../../../utils/i18n';
|
|
3
4
|
import { CONTEXT_ITEM_TYPE_ISSUE, CONTEXT_ITEM_TYPE_MERGE_REQUEST, CONTEXT_ITEM_TYPE_PROJECT_FILE } from '../constants';
|
|
4
5
|
import { formatMergeRequestId, formatIssueId } from '../utils';
|
|
6
|
+
import GlAlert from '../../../../../../base/alert/alert';
|
|
5
7
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
6
8
|
|
|
7
9
|
var script = {
|
|
8
10
|
name: 'DuoChatContextItemPopover',
|
|
9
11
|
components: {
|
|
12
|
+
GlAlert,
|
|
13
|
+
GlIcon,
|
|
10
14
|
GlPopover
|
|
11
15
|
},
|
|
12
16
|
props: {
|
|
@@ -55,11 +59,35 @@ var script = {
|
|
|
55
59
|
filePath() {
|
|
56
60
|
return this.contextItem.type === CONTEXT_ITEM_TYPE_PROJECT_FILE ? this.itemInfo.relFilePath || '' : null;
|
|
57
61
|
},
|
|
62
|
+
filePathArray() {
|
|
63
|
+
var _this$filePath;
|
|
64
|
+
return (_this$filePath = this.filePath) === null || _this$filePath === void 0 ? void 0 : _this$filePath.split('/');
|
|
65
|
+
},
|
|
58
66
|
isEnabled() {
|
|
59
67
|
return this.contextItem.isEnabled !== false;
|
|
60
68
|
},
|
|
61
69
|
disabledMessage() {
|
|
62
70
|
return Array.isArray(this.contextItem.disabledReasons) && this.contextItem.disabledReasons.length > 0 ? this.contextItem.disabledReasons.join(', ') : translate('DuoChatContextItemPopover.DisabledReason', 'This item is disabled');
|
|
71
|
+
},
|
|
72
|
+
iconName() {
|
|
73
|
+
switch (this.contextItem.type) {
|
|
74
|
+
case 'merge_request':
|
|
75
|
+
return 'merge-request';
|
|
76
|
+
case 'issue':
|
|
77
|
+
return 'issues';
|
|
78
|
+
default:
|
|
79
|
+
return 'project';
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
itemTypeLabel() {
|
|
83
|
+
switch (this.contextItem.type) {
|
|
84
|
+
case 'merge_request':
|
|
85
|
+
return translate('DuoChatContextItemPopover.MergeRequest', 'Merge request');
|
|
86
|
+
case 'issue':
|
|
87
|
+
return translate('DuoChatContextItemPopover.Issue', 'Issue');
|
|
88
|
+
default:
|
|
89
|
+
return translate('DuoChatContextItemPopover.File', 'Project file');
|
|
90
|
+
}
|
|
63
91
|
}
|
|
64
92
|
},
|
|
65
93
|
methods: {
|
|
@@ -71,7 +99,7 @@ var script = {
|
|
|
71
99
|
const __vue_script__ = script;
|
|
72
100
|
|
|
73
101
|
/* template */
|
|
74
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-popover',{attrs:{"target":_vm.target,"triggers":"hover focus","placement":_vm.placement,"title":_vm.contextItem.metadata.name,"custom-class":"gl-duo-chat-item-popover"},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('
|
|
102
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-popover',{attrs:{"target":_vm.target,"triggers":"hover focus","placement":_vm.placement,"title":_vm.contextItem.metadata.name,"custom-class":"gl-duo-chat-item-popover"},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('div',[_c('div',{staticClass:"gl-heading-3 gl-mb-1 gl-mt-2 gl-leading-1",attrs:{"data-testid":"chat-context-popover-title"}},[_vm._v("\n "+_vm._s(_vm.contextItem.metadata.name)+"\n ")]),_vm._v(" "),_c('div',{staticClass:"gl-font-normal gl-text-subtle"},[_vm._v(_vm._s(_vm.itemTypeLabel))])])]},proxy:true}])},[_vm._v(" "),_c('div',[(_vm.filePath !== null)?_c('div',{staticClass:"gl-flex gl-flex-wrap gl-items-center"},[_c('gl-icon',{staticClass:"gl-mr-1",attrs:{"name":"document","size":12,"variant":"subtle"}}),_vm._v(" "),_c('span',[_vm._v(_vm._s(_vm.itemInfo.project))]),_vm._l((_vm.filePathArray),function(pathPart,index){return _c('span',{key:pathPart,staticClass:"gl-break-all"},[_vm._v(_vm._s(pathPart)+_vm._s(index + 1 < _vm.filePathArray.length ? '/' : ''))])})],2):_vm._e(),_vm._v(" "),(_vm.filePath === null)?_c('div',{staticClass:"gl-flex gl-flex-wrap gl-items-center gl-leading-1 gl-text-subtle"},[_c('gl-icon',{staticClass:"gl-mr-1",attrs:{"name":_vm.iconName,"size":12,"variant":"subtle"}}),_vm._v(" "),_c('span',[_vm._v(_vm._s(_vm.itemInfo.project))]),(_vm.id !== null)?_c('span',[_vm._v(_vm._s(_vm.formattedId))]):_vm._e()],1):_vm._e(),_vm._v(" "),(!_vm.isEnabled)?_c('gl-alert',{staticClass:"gl-mb-1 gl-mt-3 gl-p-4 gl-text-sm",attrs:{"variant":"danger","data-testid":"chat-context-popover-disabled","dismissible":false,"show-icon":false}},[_vm._v("\n "+_vm._s(_vm.disabledMessage)+"\n ")]):_vm._e()],1)])};
|
|
75
103
|
var __vue_staticRenderFns__ = [];
|
|
76
104
|
|
|
77
105
|
/* style */
|
|
@@ -43,6 +43,11 @@ var script = {
|
|
|
43
43
|
type: Boolean,
|
|
44
44
|
required: false,
|
|
45
45
|
default: false
|
|
46
|
+
},
|
|
47
|
+
variant: {
|
|
48
|
+
type: String,
|
|
49
|
+
required: false,
|
|
50
|
+
default: 'assistant'
|
|
46
51
|
}
|
|
47
52
|
},
|
|
48
53
|
data() {
|
|
@@ -54,6 +59,18 @@ var script = {
|
|
|
54
59
|
computed: {
|
|
55
60
|
collapseIconName() {
|
|
56
61
|
return this.isCollapsed ? 'chevron-right' : 'chevron-down';
|
|
62
|
+
},
|
|
63
|
+
variantClasses() {
|
|
64
|
+
if (this.variant === 'user') {
|
|
65
|
+
return 'gl-mb-0 gl-mt-2 gl-text-blue-700';
|
|
66
|
+
}
|
|
67
|
+
return 'gl-mb-2 gl-text-gray-500';
|
|
68
|
+
},
|
|
69
|
+
tokenVariantClasses() {
|
|
70
|
+
if (this.variant === 'user') {
|
|
71
|
+
return 'gl-bg-blue-50 gl-text-blue-600';
|
|
72
|
+
}
|
|
73
|
+
return '';
|
|
57
74
|
}
|
|
58
75
|
},
|
|
59
76
|
methods: {
|
|
@@ -82,7 +99,7 @@ var script = {
|
|
|
82
99
|
const __vue_script__ = script;
|
|
83
100
|
|
|
84
101
|
/* template */
|
|
85
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-
|
|
102
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-flex gl-flex-col",class:_vm.variantClasses},[_c('button',{staticClass:"gl-flex gl-w-full gl-items-center gl-border-0 gl-bg-transparent gl-p-0 gl-text-left gl-text-xs gl-lowercase gl-text-inherit",attrs:{"data-testid":"chat-context-selections-title","type":"button"},on:{"click":_vm.toggleCollapse}},[_c('gl-icon',{attrs:{"name":_vm.collapseIconName,"data-testid":"chat-context-collapse-icon"}}),_vm._v(" "+_vm._s(_vm.title)+"\n ")],1),_vm._v(" "),_c('div',{directives:[{name:"show",rawName:"v-show",value:(!_vm.isCollapsed),expression:"!isCollapsed"}],staticClass:"gl-mt-1 gl-flex gl-grow gl-flex-wrap",attrs:{"data-testid":"chat-context-tokens-wrapper"}},_vm._l((_vm.selections),function(item){return _c('gl-token',{key:item.id,staticClass:"gl-mb-2 gl-mr-2",class:_vm.tokenVariantClasses,attrs:{"id":("context-item-" + (item.id) + "-" + _vm.selectionsId + "-token"),"view-only":!_vm.removable,"variant":"default"},on:{"close":function($event){return _vm.onRemoveItem(item)}}},[_c('div',{staticClass:"gl-flex gl-items-center",attrs:{"id":("context-item-" + (item.id) + "-" + _vm.selectionsId)}},[_c('gl-icon',{staticClass:"gl-mr-1",attrs:{"name":_vm.getIconName(item.type),"size":12}}),_vm._v("\n "+_vm._s(item.metadata.name)+"\n ")],1),_vm._v(" "),_c('gl-duo-chat-context-item-popover',{attrs:{"context-item":item,"target":("context-item-" + (item.id) + "-" + _vm.selectionsId + "-token"),"placement":"bottom"}})],1)}),1)])};
|
|
86
103
|
var __vue_staticRenderFns__ = [];
|
|
87
104
|
|
|
88
105
|
/* style */
|
package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js
CHANGED
|
@@ -7,7 +7,7 @@ import GlFormGroup from '../../../../../base/form/form_group/form_group';
|
|
|
7
7
|
import GlFormTextarea from '../../../../../base/form/form_textarea/form_textarea';
|
|
8
8
|
import { SafeHtmlDirective } from '../../../../../../directives/safe_html/safe_html';
|
|
9
9
|
import { translatePlural, sprintf } from '../../../../../../utils/i18n';
|
|
10
|
-
import { MESSAGE_MODEL_ROLES } from '../../constants';
|
|
10
|
+
import { SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED, MESSAGE_MODEL_ROLES } from '../../constants';
|
|
11
11
|
import DocumentationSources from '../duo_chat_message_sources/duo_chat_message_sources';
|
|
12
12
|
import { renderDuoChatMarkdownPreview } from '../../markdown_renderer';
|
|
13
13
|
import { CopyCodeElement } from './copy_code_element';
|
|
@@ -86,7 +86,8 @@ var script = {
|
|
|
86
86
|
improveWhat: '',
|
|
87
87
|
messageWatcher: null,
|
|
88
88
|
// imperatively set up watcher on message
|
|
89
|
-
messageChunks: []
|
|
89
|
+
messageChunks: [],
|
|
90
|
+
selectedContextItemsDefaultCollapsed: SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED
|
|
90
91
|
};
|
|
91
92
|
},
|
|
92
93
|
computed: {
|
|
@@ -140,9 +141,6 @@ var script = {
|
|
|
140
141
|
displaySelectedContextItems() {
|
|
141
142
|
return Boolean(this.selectedContextItems.length);
|
|
142
143
|
},
|
|
143
|
-
selectedContextItemsDefaultCollapsed() {
|
|
144
|
-
return this.isAssistantMessage;
|
|
145
|
-
},
|
|
146
144
|
selectedContextItemsTitle() {
|
|
147
145
|
if (!this.displaySelectedContextItems) return '';
|
|
148
146
|
const count = this.selectedContextItems.length;
|
|
@@ -228,7 +226,7 @@ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=
|
|
|
228
226
|
_vm.isAssistantMessage,
|
|
229
227
|
'gl-bg-white': _vm.isAssistantMessage && !_vm.error,
|
|
230
228
|
'!gl-border-none gl-bg-red-50': _vm.error,
|
|
231
|
-
},on:{"insert-code-snippet":_vm.onInsertCodeSnippet}},[(_vm.error)?_c('gl-icon',{staticClass:"error-icon gl-border gl-mr-3 gl-shrink-0 gl-rounded-full gl-border-red-500 gl-text-red-600",attrs:{"aria-label":_vm.$options.i18n.MESSAGE_ERROR,"name":"status_warning_borderless","size":16,"data-testid":"error"}}):_vm._e(),_vm._v(" "),_c('div',{ref:"content-wrapper",class:{ 'has-error': _vm.error }},[(_vm.displaySelectedContextItems)?_c('gl-duo-chat-context-item-selections',{
|
|
229
|
+
},on:{"insert-code-snippet":_vm.onInsertCodeSnippet}},[(_vm.error)?_c('gl-icon',{staticClass:"error-icon gl-border gl-mr-3 gl-shrink-0 gl-rounded-full gl-border-red-500 gl-text-red-600",attrs:{"aria-label":_vm.$options.i18n.MESSAGE_ERROR,"name":"status_warning_borderless","size":16,"data-testid":"error"}}):_vm._e(),_vm._v(" "),_c('div',{ref:"content-wrapper",class:{ 'has-error': _vm.error }},[(_vm.displaySelectedContextItems && _vm.isAssistantMessage)?_c('gl-duo-chat-context-item-selections',{attrs:{"selections":_vm.selectedContextItems,"title":_vm.selectedContextItemsTitle,"default-collapsed":_vm.selectedContextItemsDefaultCollapsed,"variant":"assistant"}}):_vm._e(),_vm._v(" "),(_vm.error)?_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html:[$options.safeHtmlConfigExtension]",value:(_vm.renderedError),expression:"renderedError",arg:_vm.$options.safeHtmlConfigExtension}],ref:"error-message"}):_c('div',[_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html:[$options.safeHtmlConfigExtension]",value:(_vm.messageContent),expression:"messageContent",arg:_vm.$options.safeHtmlConfigExtension}],ref:"content"}),_vm._v(" "),(_vm.isAssistantMessage)?[(_vm.sources)?_c('documentation-sources',{attrs:{"sources":_vm.sources}}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"duo-chat-message-feedback gl-mt-4 gl-flex gl-items-end"},[(_vm.isChunkAndNotCancelled)?_c('gl-loading-icon',{staticClass:"gl-pt-4",attrs:{"variant":"dots","inline":""}}):_vm._e(),_vm._v(" "),(_vm.isNotChunkOrCancelled)?_c('gl-duo-user-feedback',{attrs:{"feedback-received":_vm.hasFeedback,"modal-title":_vm.$options.i18n.MODAL.TITLE,"modal-alert":_vm.$options.i18n.MODAL.ALERT_TEXT},on:{"feedback":_vm.logEvent},scopedSlots:_vm._u([{key:"feedback-extra-fields",fn:function(){return [_c('gl-form-group',{attrs:{"label":_vm.$options.i18n.MODAL.DID_WHAT,"optional":""}},[_c('gl-form-textarea',{attrs:{"placeholder":_vm.$options.i18n.MODAL.INTERACTION},model:{value:(_vm.didWhat),callback:function ($$v) {_vm.didWhat=$$v;},expression:"didWhat"}})],1),_vm._v(" "),_c('gl-form-group',{attrs:{"label":_vm.$options.i18n.MODAL.IMPROVE_WHAT,"optional":""}},[_c('gl-form-textarea',{attrs:{"placeholder":_vm.$options.i18n.MODAL.BETTER_RESPONSE},model:{value:(_vm.improveWhat),callback:function ($$v) {_vm.improveWhat=$$v;},expression:"improveWhat"}})],1)]},proxy:true}],null,false,419229417)}):_vm._e()],1)]:_vm._e()],2),_vm._v(" "),(_vm.displaySelectedContextItems && _vm.isUserMessage)?_c('gl-duo-chat-context-item-selections',{attrs:{"selections":_vm.selectedContextItems,"title":_vm.selectedContextItemsTitle,"default-collapsed":_vm.selectedContextItemsDefaultCollapsed,"variant":"user"}}):_vm._e()],1)],1)};
|
|
232
230
|
var __vue_staticRenderFns__ = [];
|
|
233
231
|
|
|
234
232
|
/* style */
|
|
@@ -22,5 +22,6 @@ const MESSAGE_MODEL_ROLES = {
|
|
|
22
22
|
system: 'system',
|
|
23
23
|
assistant: 'assistant'
|
|
24
24
|
};
|
|
25
|
+
const SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED = true;
|
|
25
26
|
|
|
26
|
-
export { CHAT_CLEAN_MESSAGE, CHAT_CLEAR_MESSAGE, CHAT_INCLUDE_MESSAGE, CHAT_RESET_MESSAGE, DOCUMENTATION_SOURCE_TYPES, LOADING_TRANSITION_DURATION, MESSAGE_MODEL_ROLES };
|
|
27
|
+
export { CHAT_CLEAN_MESSAGE, CHAT_CLEAR_MESSAGE, CHAT_INCLUDE_MESSAGE, CHAT_RESET_MESSAGE, DOCUMENTATION_SOURCE_TYPES, LOADING_TRANSITION_DURATION, MESSAGE_MODEL_ROLES, SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED };
|
|
@@ -14,7 +14,7 @@ import { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';
|
|
|
14
14
|
import GlDuoChatLoader from './components/duo_chat_loader/duo_chat_loader';
|
|
15
15
|
import GlDuoChatPredefinedPrompts from './components/duo_chat_predefined_prompts/duo_chat_predefined_prompts';
|
|
16
16
|
import GlDuoChatConversation from './components/duo_chat_conversation/duo_chat_conversation';
|
|
17
|
-
import { CHAT_RESET_MESSAGE, CHAT_INCLUDE_MESSAGE, CHAT_CLEAN_MESSAGE, CHAT_CLEAR_MESSAGE } from './constants';
|
|
17
|
+
import { CHAT_RESET_MESSAGE, CHAT_INCLUDE_MESSAGE, MESSAGE_MODEL_ROLES, CHAT_CLEAN_MESSAGE, CHAT_CLEAR_MESSAGE } from './constants';
|
|
18
18
|
import { INCLUDE_SLASH_COMMAND } from './mock_data';
|
|
19
19
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
20
20
|
|
|
@@ -292,12 +292,18 @@ var script = {
|
|
|
292
292
|
this.displaySubmitButton = true; // Re-enable submit button when loading stops
|
|
293
293
|
}
|
|
294
294
|
this.isHidden = false;
|
|
295
|
-
this.scrollToBottom();
|
|
296
295
|
},
|
|
297
296
|
isStreaming(newVal) {
|
|
298
297
|
if (!newVal && !this.isLoading) {
|
|
299
298
|
this.displaySubmitButton = true; // Re-enable submit button when streaming stops
|
|
300
299
|
}
|
|
300
|
+
},
|
|
301
|
+
lastMessage(newMessage) {
|
|
302
|
+
if (this.scrolledToBottom || newMessage.role.toLowerCase() === MESSAGE_MODEL_ROLES.user) {
|
|
303
|
+
// only scroll to bottom on new message if the user hasn't explicitly scrolled up to view an earlier message
|
|
304
|
+
// or if the user has just submitted a new message
|
|
305
|
+
this.scrollToBottom();
|
|
306
|
+
}
|
|
301
307
|
}
|
|
302
308
|
},
|
|
303
309
|
created() {
|
|
@@ -366,8 +372,6 @@ var script = {
|
|
|
366
372
|
},
|
|
367
373
|
async scrollToBottom() {
|
|
368
374
|
var _this$$refs$anchor, _this$$refs$anchor$sc;
|
|
369
|
-
// This method is also called directly by consumers of this component
|
|
370
|
-
// https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/3269f6200dc3821c62a3992b40c971dd9ee55d87/webviews/vue2/gitlab_duo_chat/src/App.vue#L97
|
|
371
375
|
await this.$nextTick();
|
|
372
376
|
(_this$$refs$anchor = this.$refs.anchor) === null || _this$$refs$anchor === void 0 ? void 0 : (_this$$refs$anchor$sc = _this$$refs$anchor.scrollIntoView) === null || _this$$refs$anchor$sc === void 0 ? void 0 : _this$$refs$anchor$sc.call(_this$$refs$anchor);
|
|
373
377
|
},
|