@gitlab/ui 85.3.0 → 85.4.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 +14 -0
- package/dist/components/experimental/duo/user_feedback/user_feedback.js +3 -1
- package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +3 -5
- package/package.json +1 -1
- package/src/components/experimental/duo/user_feedback/user_feedback.vue +5 -3
- package/src/vendor/bootstrap-vue/src/components/modal/modal.js +3 -5
- package/src/vendor/bootstrap-vue/src/components/modal/modal.spec.js +22 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [85.4.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v85.3.1...v85.4.0) (2024-06-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **DuoChat:** update user feedback response ([5c51a3f](https://gitlab.com/gitlab-org/gitlab-ui/commit/5c51a3f8c8c2d04aef7507c3032c3992681a4682))
|
|
7
|
+
|
|
8
|
+
## [85.3.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v85.3.0...v85.3.1) (2024-06-26)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **bootstrap-vue:** Revert IE11 specific modal fix ([d1cca1b](https://gitlab.com/gitlab-org/gitlab-ui/commit/d1cca1b02d7ac6f9dc7a66f0bda85f1c5d279b69)), closes [/gitlab.com/gitlab-org/gitlab/-/merge_requests/140612#note_1911015817](https://gitlab.com//gitlab.com/gitlab-org/gitlab/-/merge_requests/140612/issues/note_1911015817)
|
|
14
|
+
|
|
1
15
|
# [85.3.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v85.2.2...v85.3.0) (2024-06-26)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import GlAlert from '../../../base/alert/alert';
|
|
1
2
|
import GlButton from '../../../base/button/button';
|
|
2
3
|
import FeedbackModal from './user_feedback_modal';
|
|
3
4
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
@@ -9,6 +10,7 @@ const i18n = {
|
|
|
9
10
|
var script = {
|
|
10
11
|
name: 'GlDuoUserFeedback',
|
|
11
12
|
components: {
|
|
13
|
+
GlAlert,
|
|
12
14
|
GlButton,
|
|
13
15
|
FeedbackModal
|
|
14
16
|
},
|
|
@@ -60,7 +62,7 @@ var script = {
|
|
|
60
62
|
const __vue_script__ = script;
|
|
61
63
|
|
|
62
64
|
/* template */
|
|
63
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-pt-4"},[_c('div',[(!_vm.feedbackReceived)?_c('gl-button',{attrs:{"variant":"link","target":"_blank","href":_vm.feedbackLinkUrl,"button-text-classes":"gl-white-space-normal! gl-text-left"},on:{"click":function($event){_vm.shouldRenderModal && _vm.$refs.feedbackModal.show();}}},[_vm._v(_vm._s(_vm.feedbackLinkText))]):_c('
|
|
65
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-pt-4 gl-w-full"},[_c('div',[(!_vm.feedbackReceived)?_c('gl-button',{attrs:{"variant":"link","target":"_blank","href":_vm.feedbackLinkUrl,"button-text-classes":"gl-white-space-normal! gl-text-left"},on:{"click":function($event){_vm.shouldRenderModal && _vm.$refs.feedbackModal.show();}}},[_vm._v(_vm._s(_vm.feedbackLinkText))]):_c('gl-alert',{attrs:{"variant":"success","dismissible":false}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.FEEDBACK_THANKS)+"\n ")])],1),_vm._v(" "),(_vm.shouldRenderModal)?_c('feedback-modal',{ref:"feedbackModal",on:{"feedback-submitted":_vm.notify},scopedSlots:_vm._u([{key:"feedback-extra-fields",fn:function(){return [_vm._t("feedback-extra-fields")]},proxy:true}],null,true)}):_vm._e()],1)};
|
|
64
66
|
var __vue_staticRenderFns__ = [];
|
|
65
67
|
|
|
66
68
|
/* style */
|
|
@@ -191,17 +191,15 @@ const BModal = /*#__PURE__*/extend({
|
|
|
191
191
|
modalClasses() {
|
|
192
192
|
return [{
|
|
193
193
|
fade: !this.noFade,
|
|
194
|
-
show: this.isShow
|
|
194
|
+
show: this.isShow,
|
|
195
|
+
'd-block': this.isBlock
|
|
195
196
|
}, this.modalClass];
|
|
196
197
|
},
|
|
197
198
|
modalStyles() {
|
|
198
199
|
const sbWidth = `${this.scrollbarWidth}px`;
|
|
199
200
|
return {
|
|
200
201
|
paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',
|
|
201
|
-
paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : ''
|
|
202
|
-
// Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457
|
|
203
|
-
// Even though we are using v-show, we must ensure 'none' is restored in the styles
|
|
204
|
-
display: this.isBlock ? 'block' : 'none'
|
|
202
|
+
paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : ''
|
|
205
203
|
};
|
|
206
204
|
},
|
|
207
205
|
dialogClasses() {
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import GlAlert from '../../../base/alert/alert.vue';
|
|
2
3
|
import GlButton from '../../../base/button/button.vue';
|
|
3
4
|
import FeedbackModal from './user_feedback_modal.vue';
|
|
4
5
|
|
|
@@ -10,6 +11,7 @@ export const i18n = {
|
|
|
10
11
|
export default {
|
|
11
12
|
name: 'GlDuoUserFeedback',
|
|
12
13
|
components: {
|
|
14
|
+
GlAlert,
|
|
13
15
|
GlButton,
|
|
14
16
|
FeedbackModal,
|
|
15
17
|
},
|
|
@@ -59,7 +61,7 @@ export default {
|
|
|
59
61
|
</script>
|
|
60
62
|
|
|
61
63
|
<template>
|
|
62
|
-
<div class="gl-pt-4">
|
|
64
|
+
<div class="gl-pt-4 gl-w-full">
|
|
63
65
|
<div>
|
|
64
66
|
<gl-button
|
|
65
67
|
v-if="!feedbackReceived"
|
|
@@ -70,9 +72,9 @@ export default {
|
|
|
70
72
|
@click="shouldRenderModal && $refs.feedbackModal.show()"
|
|
71
73
|
>{{ feedbackLinkText }}</gl-button
|
|
72
74
|
>
|
|
73
|
-
<
|
|
75
|
+
<gl-alert v-else variant="success" :dismissible="false">
|
|
74
76
|
{{ $options.i18n.FEEDBACK_THANKS }}
|
|
75
|
-
</
|
|
77
|
+
</gl-alert>
|
|
76
78
|
</div>
|
|
77
79
|
<feedback-modal v-if="shouldRenderModal" ref="feedbackModal" @feedback-submitted="notify">
|
|
78
80
|
<template #feedback-extra-fields>
|
|
@@ -237,7 +237,8 @@ export const BModal = /*#__PURE__*/ extend({
|
|
|
237
237
|
return [
|
|
238
238
|
{
|
|
239
239
|
fade: !this.noFade,
|
|
240
|
-
show: this.isShow
|
|
240
|
+
show: this.isShow,
|
|
241
|
+
'd-block': this.isBlock
|
|
241
242
|
},
|
|
242
243
|
this.modalClass
|
|
243
244
|
]
|
|
@@ -246,10 +247,7 @@ export const BModal = /*#__PURE__*/ extend({
|
|
|
246
247
|
const sbWidth = `${this.scrollbarWidth}px`
|
|
247
248
|
return {
|
|
248
249
|
paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',
|
|
249
|
-
paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : ''
|
|
250
|
-
// Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457
|
|
251
|
-
// Even though we are using v-show, we must ensure 'none' is restored in the styles
|
|
252
|
-
display: this.isBlock ? 'block' : 'none'
|
|
250
|
+
paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : ''
|
|
253
251
|
}
|
|
254
252
|
},
|
|
255
253
|
dialogClasses() {
|
|
@@ -138,7 +138,7 @@ describe('modal', () => {
|
|
|
138
138
|
expect($modal.attributes('aria-modal')).toBeDefined()
|
|
139
139
|
expect($modal.attributes('aria-modal')).toEqual('true')
|
|
140
140
|
expect($modal.classes()).toContain('modal')
|
|
141
|
-
expect($modal.element.style.display).toEqual('
|
|
141
|
+
expect($modal.element.style.display).toEqual('')
|
|
142
142
|
|
|
143
143
|
// Should have a backdrop
|
|
144
144
|
const $backdrop = wrapper.find('div.modal-backdrop')
|
|
@@ -220,7 +220,7 @@ describe('modal', () => {
|
|
|
220
220
|
expect($modal.attributes('aria-hidden')).toBeUndefined()
|
|
221
221
|
expect($modal.attributes('aria-modal')).toBeDefined()
|
|
222
222
|
expect($modal.attributes('aria-modal')).toEqual('true')
|
|
223
|
-
expect($modal.element.style.display).toEqual('
|
|
223
|
+
expect($modal.element.style.display).toEqual('')
|
|
224
224
|
|
|
225
225
|
// Should have a backdrop
|
|
226
226
|
const $backdrop = wrapper.find('div.modal-backdrop')
|
|
@@ -459,7 +459,7 @@ describe('modal', () => {
|
|
|
459
459
|
const $modal = wrapper.find('div.modal')
|
|
460
460
|
expect($modal.exists()).toBe(true)
|
|
461
461
|
|
|
462
|
-
expect($modal.element.style.display).toEqual('
|
|
462
|
+
expect($modal.element.style.display).toEqual('')
|
|
463
463
|
|
|
464
464
|
const $buttons = wrapper.findAll('header button')
|
|
465
465
|
expect($buttons.length).toBe(1)
|
|
@@ -485,7 +485,7 @@ describe('modal', () => {
|
|
|
485
485
|
await waitRAF()
|
|
486
486
|
|
|
487
487
|
// Modal should still be open
|
|
488
|
-
expect($modal.element.style.display).toEqual('
|
|
488
|
+
expect($modal.element.style.display).toEqual('')
|
|
489
489
|
|
|
490
490
|
// Try and close modal (and not prevent it)
|
|
491
491
|
cancelHide = false
|
|
@@ -536,7 +536,7 @@ describe('modal', () => {
|
|
|
536
536
|
const $modal = wrapper.find('div.modal')
|
|
537
537
|
expect($modal.exists()).toBe(true)
|
|
538
538
|
|
|
539
|
-
expect($modal.element.style.display).toEqual('
|
|
539
|
+
expect($modal.element.style.display).toEqual('')
|
|
540
540
|
|
|
541
541
|
const $buttons = wrapper.findAll('footer button')
|
|
542
542
|
expect($buttons.length).toBe(2)
|
|
@@ -562,7 +562,7 @@ describe('modal', () => {
|
|
|
562
562
|
await waitRAF()
|
|
563
563
|
|
|
564
564
|
// Modal should still be open
|
|
565
|
-
expect($modal.element.style.display).toEqual('
|
|
565
|
+
expect($modal.element.style.display).toEqual('')
|
|
566
566
|
|
|
567
567
|
// Try and close modal (and not prevent it)
|
|
568
568
|
cancelHide = false
|
|
@@ -616,7 +616,7 @@ describe('modal', () => {
|
|
|
616
616
|
const $modal = wrapper.find('div.modal')
|
|
617
617
|
expect($modal.exists()).toBe(true)
|
|
618
618
|
|
|
619
|
-
expect($modal.element.style.display).toEqual('
|
|
619
|
+
expect($modal.element.style.display).toEqual('')
|
|
620
620
|
|
|
621
621
|
expect(wrapper.emitted('hide')).toBeUndefined()
|
|
622
622
|
expect(trigger).toEqual(null)
|
|
@@ -672,7 +672,7 @@ describe('modal', () => {
|
|
|
672
672
|
const $modal = wrapper.find('div.modal')
|
|
673
673
|
expect($modal.exists()).toBe(true)
|
|
674
674
|
|
|
675
|
-
expect($modal.element.style.display).toEqual('
|
|
675
|
+
expect($modal.element.style.display).toEqual('')
|
|
676
676
|
|
|
677
677
|
expect(wrapper.emitted('hide')).toBeUndefined()
|
|
678
678
|
expect(trigger).toEqual(null)
|
|
@@ -736,7 +736,7 @@ describe('modal', () => {
|
|
|
736
736
|
const $footer = wrapper.find('footer.modal-footer')
|
|
737
737
|
expect($footer.exists()).toBe(true)
|
|
738
738
|
|
|
739
|
-
expect($modal.element.style.display).toEqual('
|
|
739
|
+
expect($modal.element.style.display).toEqual('')
|
|
740
740
|
|
|
741
741
|
expect(wrapper.emitted('hide')).toBeUndefined()
|
|
742
742
|
expect(trigger).toEqual(null)
|
|
@@ -752,7 +752,7 @@ describe('modal', () => {
|
|
|
752
752
|
expect(trigger).toEqual(null)
|
|
753
753
|
|
|
754
754
|
// Modal should not be closed
|
|
755
|
-
expect($modal.element.style.display).toEqual('
|
|
755
|
+
expect($modal.element.style.display).toEqual('')
|
|
756
756
|
|
|
757
757
|
// Try and close modal via a "dragged" click out
|
|
758
758
|
// starting from inside modal and finishing on backdrop
|
|
@@ -765,7 +765,7 @@ describe('modal', () => {
|
|
|
765
765
|
expect(trigger).toEqual(null)
|
|
766
766
|
|
|
767
767
|
// Modal should not be closed
|
|
768
|
-
expect($modal.element.style.display).toEqual('
|
|
768
|
+
expect($modal.element.style.display).toEqual('')
|
|
769
769
|
|
|
770
770
|
// Try and close modal via click out
|
|
771
771
|
await $modal.trigger('click')
|
|
@@ -811,7 +811,7 @@ describe('modal', () => {
|
|
|
811
811
|
await waitRAF()
|
|
812
812
|
|
|
813
813
|
// Modal should now be open
|
|
814
|
-
expect($modal.element.style.display).toEqual('
|
|
814
|
+
expect($modal.element.style.display).toEqual('')
|
|
815
815
|
|
|
816
816
|
// Try and close modal via `bv::hide::modal`
|
|
817
817
|
wrapper.vm.$root.$emit('bv::hide::modal', 'test')
|
|
@@ -858,7 +858,7 @@ describe('modal', () => {
|
|
|
858
858
|
await waitRAF()
|
|
859
859
|
|
|
860
860
|
// Modal should now be open
|
|
861
|
-
expect($modal.element.style.display).toEqual('
|
|
861
|
+
expect($modal.element.style.display).toEqual('')
|
|
862
862
|
|
|
863
863
|
// Try and close modal via `bv::toggle::modal`
|
|
864
864
|
wrapper.vm.$root.$emit('bv::toggle::modal', 'test')
|
|
@@ -879,7 +879,7 @@ describe('modal', () => {
|
|
|
879
879
|
await waitNT(wrapper.vm)
|
|
880
880
|
await waitRAF()
|
|
881
881
|
|
|
882
|
-
// Modal should
|
|
882
|
+
// Modal should now be open
|
|
883
883
|
expect($modal.element.style.display).toEqual('none')
|
|
884
884
|
|
|
885
885
|
wrapper.destroy()
|
|
@@ -947,7 +947,7 @@ describe('modal', () => {
|
|
|
947
947
|
|
|
948
948
|
// Modal should now be open
|
|
949
949
|
expect(called).toBe(true)
|
|
950
|
-
expect($modal.element.style.display).toEqual('
|
|
950
|
+
expect($modal.element.style.display).toEqual('')
|
|
951
951
|
|
|
952
952
|
wrapper.destroy()
|
|
953
953
|
})
|
|
@@ -983,7 +983,7 @@ describe('modal', () => {
|
|
|
983
983
|
await waitRAF()
|
|
984
984
|
|
|
985
985
|
// Modal should now be open
|
|
986
|
-
expect($modal.element.style.display).toEqual('
|
|
986
|
+
expect($modal.element.style.display).toEqual('')
|
|
987
987
|
|
|
988
988
|
// Try and close modal via `.toggle()` method
|
|
989
989
|
wrapper.vm.toggle()
|
|
@@ -1020,7 +1020,7 @@ describe('modal', () => {
|
|
|
1020
1020
|
const $modal = wrapper.find('div.modal')
|
|
1021
1021
|
expect($modal.exists()).toBe(true)
|
|
1022
1022
|
|
|
1023
|
-
expect($modal.element.style.display).toEqual('
|
|
1023
|
+
expect($modal.element.style.display).toEqual('')
|
|
1024
1024
|
|
|
1025
1025
|
// Simulate an other modal opening (by emitting a fake BvEvent)
|
|
1026
1026
|
// `bvEvent.vueTarget` is normally a Vue instance, but in this
|
|
@@ -1089,7 +1089,7 @@ describe('modal', () => {
|
|
|
1089
1089
|
await waitRAF()
|
|
1090
1090
|
|
|
1091
1091
|
// Modal should now be open
|
|
1092
|
-
expect($modal.element.style.display).toEqual('
|
|
1092
|
+
expect($modal.element.style.display).toEqual('')
|
|
1093
1093
|
expect(document.activeElement).not.toBe(document.body)
|
|
1094
1094
|
expect(document.activeElement).not.toBe($button.element)
|
|
1095
1095
|
expect($modal.element.contains(document.activeElement)).toBe(true)
|
|
@@ -1173,7 +1173,7 @@ describe('modal', () => {
|
|
|
1173
1173
|
await waitRAF()
|
|
1174
1174
|
|
|
1175
1175
|
// Modal should now be open
|
|
1176
|
-
expect($modal.element.style.display).toEqual('
|
|
1176
|
+
expect($modal.element.style.display).toEqual('')
|
|
1177
1177
|
expect(document.activeElement).not.toBe(document.body)
|
|
1178
1178
|
expect(document.activeElement).not.toBe($button.element)
|
|
1179
1179
|
expect(document.activeElement).not.toBe($button2.element)
|
|
@@ -1231,7 +1231,7 @@ describe('modal', () => {
|
|
|
1231
1231
|
const $content = $modal.find('div.modal-content')
|
|
1232
1232
|
expect($content.exists()).toBe(true)
|
|
1233
1233
|
|
|
1234
|
-
expect($modal.element.style.display).toEqual('
|
|
1234
|
+
expect($modal.element.style.display).toEqual('')
|
|
1235
1235
|
expect(document.activeElement).not.toBe(document.body)
|
|
1236
1236
|
expect(document.activeElement).toBe($content.element)
|
|
1237
1237
|
|
|
@@ -1328,7 +1328,7 @@ describe('modal', () => {
|
|
|
1328
1328
|
const $content = $modal.find('div.modal-content')
|
|
1329
1329
|
expect($content.exists()).toBe(true)
|
|
1330
1330
|
|
|
1331
|
-
expect($modal.element.style.display).toEqual('
|
|
1331
|
+
expect($modal.element.style.display).toEqual('')
|
|
1332
1332
|
expect(document.activeElement).not.toBe(document.body)
|
|
1333
1333
|
expect(document.activeElement).toBe($content.element)
|
|
1334
1334
|
|
|
@@ -1396,7 +1396,7 @@ describe('modal', () => {
|
|
|
1396
1396
|
const $content = $modal.find('div.modal-content')
|
|
1397
1397
|
expect($content.exists()).toBe(true)
|
|
1398
1398
|
|
|
1399
|
-
expect($modal.element.style.display).toEqual('
|
|
1399
|
+
expect($modal.element.style.display).toEqual('')
|
|
1400
1400
|
expect(document.activeElement).not.toBe(document.body)
|
|
1401
1401
|
expect(document.activeElement).toBe($content.element)
|
|
1402
1402
|
|