@gitlab/ui 134.1.1 → 134.1.3
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/dist/components/base/form/form_textarea/form_textarea.js +4 -10
- package/dist/components/base/form/form_textarea/visible.js +50 -0
- package/dist/components/base/token_selector/token_selector.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/utils/use_mock_intersection_observer.js +12 -1
- package/package.json +1 -1
- package/src/components/base/form/form_textarea/form_textarea.vue +4 -10
- package/src/components/base/form/form_textarea/visible.js +52 -0
- package/src/components/base/token_selector/token_selector.scss +4 -2
- package/src/components/base/token_selector/token_selector.vue +1 -1
- package/src/utils/use_mock_intersection_observer.js +6 -1
- package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +0 -183
- package/src/vendor/bootstrap-vue/src/directives/visible/index.js +0 -3
- package/src/vendor/bootstrap-vue/src/directives/visible/visible.js +0 -188
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { toString, uniqueId, isBoolean, toInteger } from 'lodash-es';
|
|
2
2
|
import { toFloat } from '../../../../utils/number_utils';
|
|
3
3
|
import { stopEvent, isVisible } from '../../../../utils/utils';
|
|
4
|
-
import { VBVisible } from '../../../../vendor/bootstrap-vue/src/directives/visible/visible';
|
|
5
4
|
import GlFormCharacterCount from '../form_character_count/form_character_count';
|
|
5
|
+
import { GlVisibleDirective } from './visible';
|
|
6
6
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
7
7
|
|
|
8
8
|
var script = {
|
|
@@ -11,7 +11,7 @@ var script = {
|
|
|
11
11
|
GlFormCharacterCount
|
|
12
12
|
},
|
|
13
13
|
directives: {
|
|
14
|
-
|
|
14
|
+
GlVisible: GlVisibleDirective
|
|
15
15
|
},
|
|
16
16
|
inheritAttrs: false,
|
|
17
17
|
model: {
|
|
@@ -311,7 +311,6 @@ var script = {
|
|
|
311
311
|
},
|
|
312
312
|
mounted() {
|
|
313
313
|
this.handleAutofocus();
|
|
314
|
-
this.setHeight();
|
|
315
314
|
this.$nextTick(() => {
|
|
316
315
|
this.localId = uniqueId('gl-form-textarea-');
|
|
317
316
|
});
|
|
@@ -443,11 +442,6 @@ var script = {
|
|
|
443
442
|
this.$emit('submit');
|
|
444
443
|
}
|
|
445
444
|
},
|
|
446
|
-
visibleCallback(visible) {
|
|
447
|
-
if (visible) {
|
|
448
|
-
this.$nextTick(this.setHeight);
|
|
449
|
-
}
|
|
450
|
-
},
|
|
451
445
|
setHeight() {
|
|
452
446
|
this.$nextTick(() => {
|
|
453
447
|
window.requestAnimationFrame(() => {
|
|
@@ -503,11 +497,11 @@ var script = {
|
|
|
503
497
|
const __vue_script__ = script;
|
|
504
498
|
|
|
505
499
|
/* template */
|
|
506
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showCharacterCount)?_c('div',[_c('textarea',_vm._g(_vm._b({directives:[{name:"
|
|
500
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showCharacterCount)?_c('div',[_c('textarea',_vm._g(_vm._b({directives:[{name:"gl-visible",rawName:"v-gl-visible",value:(_vm.setHeight),expression:"setHeight"}],ref:"input",class:_vm.computedClass,style:(_vm.computedStyle),attrs:{"aria-describedby":_vm.characterCountTextId},domProps:{"value":_vm.localValue},on:{"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleKeyPress.apply(null, arguments)}}},'textarea',_vm.computedAttrs,false),_vm.computedListeners)),_vm._v(" "),_c('gl-form-character-count',{attrs:{"value":_vm.value,"limit":_vm.characterCountLimit,"count-text-id":_vm.characterCountTextId},scopedSlots:_vm._u([{key:"over-limit-text",fn:function(ref){
|
|
507
501
|
var count = ref.count;
|
|
508
502
|
return [_vm._t("character-count-over-limit-text",null,{"count":count})]}},{key:"remaining-count-text",fn:function(ref){
|
|
509
503
|
var count = ref.count;
|
|
510
|
-
return [_vm._t("remaining-character-count-text",null,{"count":count})]}}],null,true)})],1):_c('textarea',_vm._g(_vm._b({directives:[{name:"
|
|
504
|
+
return [_vm._t("remaining-character-count-text",null,{"count":count})]}}],null,true)})],1):_c('textarea',_vm._g(_vm._b({directives:[{name:"gl-visible",rawName:"v-gl-visible",value:(_vm.setHeight),expression:"setHeight"}],ref:"input",class:_vm.computedClass,style:(_vm.computedStyle),domProps:{"value":_vm.localValue},on:{"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleKeyPress.apply(null, arguments)}}},'textarea',_vm.computedAttrs,false),_vm.computedListeners))};
|
|
511
505
|
var __vue_staticRenderFns__ = [];
|
|
512
506
|
|
|
513
507
|
/* style */
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { isFunction } from 'lodash-es';
|
|
2
|
+
|
|
3
|
+
// IntersectionObserver-backed visibility directive.
|
|
4
|
+
// Calls the function when the element enters the viewport.
|
|
5
|
+
// The element is expanded by ROOT_MARGIN.
|
|
6
|
+
const ROOT_MARGIN = '640px';
|
|
7
|
+
let observer = null;
|
|
8
|
+
|
|
9
|
+
// Exported for testing purposes only
|
|
10
|
+
const resetObserver = () => {
|
|
11
|
+
var _observer;
|
|
12
|
+
(_observer = observer) === null || _observer === void 0 ? void 0 : _observer.disconnect();
|
|
13
|
+
observer = null;
|
|
14
|
+
};
|
|
15
|
+
const attachObserver = (el, callback) => {
|
|
16
|
+
if (!isFunction(callback)) {
|
|
17
|
+
throw TypeError('directive value must be a function');
|
|
18
|
+
}
|
|
19
|
+
if (!observer) {
|
|
20
|
+
// the observer instance is shared for performance reasons
|
|
21
|
+
// more information: https://github.com/WICG/ResizeObserver/issues/59
|
|
22
|
+
observer = new IntersectionObserver(entries => {
|
|
23
|
+
entries.forEach(entry => {
|
|
24
|
+
if (entry.isIntersecting) {
|
|
25
|
+
entry.target.glVisibleHandler();
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}, {
|
|
29
|
+
rootMargin: ROOT_MARGIN
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
el.glVisibleHandler = callback;
|
|
33
|
+
observer.observe(el);
|
|
34
|
+
};
|
|
35
|
+
const detachObserver = el => {
|
|
36
|
+
if (el.glVisibleHandler) {
|
|
37
|
+
var _observer2;
|
|
38
|
+
delete el.glVisibleHandler;
|
|
39
|
+
(_observer2 = observer) === null || _observer2 === void 0 ? void 0 : _observer2.unobserve(el);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const GlVisibleDirective = {
|
|
43
|
+
bind(el, _ref) {
|
|
44
|
+
let callback = _ref.value;
|
|
45
|
+
attachObserver(el, callback);
|
|
46
|
+
},
|
|
47
|
+
unbind: detachObserver
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export { GlVisibleDirective, resetObserver };
|
|
@@ -413,7 +413,7 @@ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=
|
|
|
413
413
|
_vm.containerClass,
|
|
414
414
|
_vm.stateClass ],on:{"click":_vm.handleContainerClick}},[(_vm.showEmptyPlaceholder)?_vm._t("empty-placeholder"):_vm._e(),_vm._v(" "),_c('gl-token-container',{attrs:{"tokens":_vm.selectedTokens,"state":_vm.state,"register-focus-on-token":_vm.registerFocusOnToken,"view-only":_vm.viewOnly,"show-clear-all-button":_vm.showClearAllButton},on:{"token-remove":_vm.removeToken,"cancel-focus":_vm.cancelTokenFocus,"clear-all":_vm.clearAll},scopedSlots:_vm._u([{key:"token-content",fn:function(ref){
|
|
415
415
|
var token = ref.token;
|
|
416
|
-
return [_vm._t("token-content",null,{"token":token})]}},{key:"text-input",fn:function(){return [_c('input',_vm._b({ref:"textInput",staticClass:"gl-token-selector-input gl-h-auto gl-w-4/10 gl-grow gl-border-none gl-bg-transparent gl-
|
|
416
|
+
return [_vm._t("token-content",null,{"token":token})]}},{key:"text-input",fn:function(){return [_c('input',_vm._b({ref:"textInput",staticClass:"gl-token-selector-input gl-h-auto gl-w-4/10 gl-grow gl-border-none gl-bg-transparent gl-font-regular gl-text-base gl-leading-normal gl-text-default gl-outline-none",attrs:{"type":"text","aria-activedescendant":_vm.handleAriaActiveDescendent(_vm.focusedDropdownItem),"autocomplete":_vm.autocomplete,"aria-controls":_vm.uniqueId,"aria-expanded":_vm.dropdownIsOpen.toString(),"aria-invalid":_vm.handleAriaInvalid(),"aria-label":_vm.ariaLabelledby ? null : _vm.ariaLabel,"aria-labelledby":_vm.ariaLabelledby,"placeholder":_vm.placeholder,"disabled":_vm.viewOnly,"aria-autocomplete":"list","role":"combobox"},domProps:{"value":_vm.inputText},on:{"input":function($event){_vm.inputText = $event.target.value;},"focus":_vm.handleFocus,"blur":_vm.handleBlur,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleEnter.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }return _vm.handleEscape.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"delete",[8,46],$event.key,["Backspace","Delete","Del"])){ return null; }return _vm.handleBackspace.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.dropdownEventHandlers.handleUpArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.dropdownEventHandlers.handleDownArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"home",undefined,$event.key,undefined)){ return null; }return _vm.dropdownEventHandlers.handleHomeKey.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"end",undefined,$event.key,undefined)){ return null; }return _vm.dropdownEventHandlers.handleEndKey.apply(null, arguments)},function($event){$event.stopPropagation();return _vm.$emit('keydown', $event)}],"click":_vm.handleInputClick}},'input',_vm.textInputAttrs,false))]},proxy:true}],null,true)})],2),_vm._v(" "),_c('gl-token-selector-dropdown',{attrs:{"menu-class":_vm.menuClass,"show":_vm.dropdownIsOpen,"loading":_vm.loading,"dropdown-items":_vm.filteredDropdownItems,"input-text":_vm.inputText,"user-defined-token-can-be-added":_vm.userDefinedTokenCanBeAdded,"component-id":_vm.uniqueId,"register-dropdown-event-handlers":_vm.registerDropdownEventHandlers,"register-reset-focused-dropdown-item":_vm.registerResetFocusedDropdownItem},on:{"dropdown-item-click":_vm.addToken,"input":function($event){_vm.focusedDropdownItem = $event;},"aria-active-descendant":_vm.handleAriaActiveDescendent,"show":_vm.openDropdown},scopedSlots:_vm._u([{key:"loading-content",fn:function(){return [_vm._t("loading-content")]},proxy:true},{key:"user-defined-token-content",fn:function(){return [_vm._t("user-defined-token-content",null,{"inputText":_vm.inputText})]},proxy:true},{key:"no-results-content",fn:function(){return [_vm._t("no-results-content")]},proxy:true},{key:"dropdown-item-content",fn:function(ref){
|
|
417
417
|
var dropdownItem = ref.dropdownItem;
|
|
418
418
|
return [_vm._t("dropdown-item-content",null,{"dropdownItem":dropdownItem})]}},{key:"dropdown-footer",fn:function(){return [_vm._t("dropdown-footer")]},proxy:true}],null,true)})],1)};
|
|
419
419
|
var __vue_staticRenderFns__ = [];
|