@gitlab/ui 114.3.0 → 114.7.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/README.md +4 -2
- package/bin/migrate_custom_utils_to_tw.bundled.mjs +398 -401
- package/dist/components/base/link/link.js +6 -5
- package/dist/components/base/sorting/sorting.js +10 -1
- package/dist/components/base/table/constants.js +1 -1
- package/dist/components/base/toast/toast.js +1 -1
- package/dist/components/base/toggle/toggle.js +0 -1
- package/dist/config.js +1 -1
- package/dist/directives/safe_link/mock_data.js +1 -1
- package/dist/directives/safe_link/safe_link.js +1 -1
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/utils/is_slot_empty.js +0 -2
- package/dist/utils/number_utils.js +3 -3
- package/dist/utils/use_mock_intersection_observer.js +0 -4
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +1 -1
- package/package.json +9 -6
- package/src/components/base/button/button.md +1 -1
- package/src/components/base/drawer/drawer.scss +2 -1
- package/src/components/base/form/form_character_count/form_character_count.md +1 -1
- package/src/components/base/form/form_combobox/form_combobox.md +4 -4
- package/src/components/base/link/link.md +34 -1
- package/src/components/base/link/link.scss +1 -1
- package/src/components/base/link/link.vue +6 -4
- package/src/components/base/sorting/sorting.vue +11 -0
- package/src/components/base/table/constants.js +1 -1
- package/src/components/base/toast/toast.js +1 -1
- package/src/components/base/toggle/toggle.vue +2 -3
- package/src/components/charts/heatmap/heatmap.md +1 -1
- package/src/config.js +1 -1
- package/src/directives/safe_link/mock_data.js +1 -1
- package/src/directives/safe_link/safe_link.js +1 -1
- package/src/utils/is_slot_empty.js +0 -1
- package/src/utils/number_utils.js +3 -3
- package/src/utils/use_mock_intersection_observer.js +1 -3
- package/src/vendor/bootstrap-vue/src/components/table/_table.scss +2 -4
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +1 -1
- package/translations.js +1 -0
|
@@ -28,8 +28,6 @@ function isVnodeEmpty(vnode) {
|
|
|
28
28
|
function isSlotEmpty(vueInstance, slot, slotArgs) {
|
|
29
29
|
var _vueInstance$$scopedS, _vueInstance$$scopedS2;
|
|
30
30
|
const slotContent = (_vueInstance$$scopedS = (_vueInstance$$scopedS2 = vueInstance.$scopedSlots)[slot]) === null || _vueInstance$$scopedS === void 0 ? void 0 : _vueInstance$$scopedS.call(_vueInstance$$scopedS2, slotArgs);
|
|
31
|
-
|
|
32
|
-
// eslint-disable-next-line unicorn/no-array-callback-reference
|
|
33
31
|
return isVnodeEmpty(slotContent);
|
|
34
32
|
}
|
|
35
33
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adds two numbers together
|
|
3
|
-
* @param {Number} a
|
|
4
|
-
* @param {Number} b
|
|
3
|
+
* @param {Number|String} a
|
|
4
|
+
* @param {Number|String} b
|
|
5
5
|
*/
|
|
6
|
-
const addition = (a, b) => a + b;
|
|
6
|
+
const addition = (a, b) => Number(a) + Number(b);
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Returns the sum of all arguments
|
|
@@ -24,8 +24,6 @@ class MockObserver {
|
|
|
24
24
|
this.$_observers = [];
|
|
25
25
|
}
|
|
26
26
|
takeRecords() {}
|
|
27
|
-
|
|
28
|
-
// eslint-disable-next-line camelcase
|
|
29
27
|
$_triggerObserve(nodeParam) {
|
|
30
28
|
let {
|
|
31
29
|
entry = {},
|
|
@@ -41,8 +39,6 @@ class MockObserver {
|
|
|
41
39
|
}
|
|
42
40
|
});
|
|
43
41
|
}
|
|
44
|
-
|
|
45
|
-
// eslint-disable-next-line camelcase
|
|
46
42
|
$_hasObserver(node) {
|
|
47
43
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
48
44
|
return this.$_observers.some(_ref => {
|
|
@@ -66,7 +66,7 @@ const tableRendererMixin = extend({
|
|
|
66
66
|
const {
|
|
67
67
|
isResponsive
|
|
68
68
|
} = this;
|
|
69
|
-
return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? `table-responsive-${this.responsive}` : ''].filter(identity);
|
|
69
|
+
return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? `table-responsive table-responsive-${this.responsive}` : ''].filter(identity);
|
|
70
70
|
},
|
|
71
71
|
wrapperStyles() {
|
|
72
72
|
const {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitlab/ui",
|
|
3
|
-
"version": "114.
|
|
3
|
+
"version": "114.7.1",
|
|
4
4
|
"description": "GitLab UI Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"test:visual:internal": "NODE_ENV=test IS_VISUAL_TEST=true start-test storybook:run http-get://${STORYBOOK_HOST:-localhost}:${STORYBOOK_PORT:-9001}/iframe.html",
|
|
67
67
|
"prettier": "prettier --check '**/*.{js,mjs,ts,vue}'",
|
|
68
68
|
"prettier:fix": "prettier --write '**/*.{js,mjs,ts,vue}'",
|
|
69
|
-
"eslint": "eslint --max-warnings 0
|
|
69
|
+
"eslint": "eslint --max-warnings 0 .",
|
|
70
70
|
"eslint:fix": "yarn eslint --fix",
|
|
71
71
|
"stylelint": "stylelint 'src/**/*.scss'",
|
|
72
72
|
"stylelint:fix": "yarn stylelint --fix",
|
|
@@ -102,7 +102,8 @@
|
|
|
102
102
|
"jackspeak": "2.1.1",
|
|
103
103
|
"postcss": "8.5.3",
|
|
104
104
|
"json5": "2.2.3",
|
|
105
|
-
"rollup-plugin-vue/@vue/component-compiler/postcss-modules-sync/generic-names/loader-utils": "1.4.2"
|
|
105
|
+
"rollup-plugin-vue/@vue/component-compiler/postcss-modules-sync/generic-names/loader-utils": "1.4.2",
|
|
106
|
+
"eslint-plugin-import": "2.31.0"
|
|
106
107
|
},
|
|
107
108
|
"devDependencies": {
|
|
108
109
|
"@babel/core": "^7.27.1",
|
|
@@ -111,6 +112,8 @@
|
|
|
111
112
|
"@babel/preset-env": "^7.27.2",
|
|
112
113
|
"@babel/preset-react": "^7.27.1",
|
|
113
114
|
"@cypress/grep": "^4.0.1",
|
|
115
|
+
"@eslint/eslintrc": "^3.3.1",
|
|
116
|
+
"@eslint/js": "^9.28.0",
|
|
114
117
|
"@gitlab/eslint-plugin": "20.7.1",
|
|
115
118
|
"@gitlab/fonts": "^1.3.0",
|
|
116
119
|
"@gitlab/stylelint-config": "6.2.2",
|
|
@@ -154,10 +157,10 @@
|
|
|
154
157
|
"emoji-regex": "^10.0.0",
|
|
155
158
|
"entities": "^4.5.0",
|
|
156
159
|
"esbuild": "^0.18.0",
|
|
157
|
-
"eslint": "
|
|
158
|
-
"eslint-formatter-gitlab": "^
|
|
160
|
+
"eslint": "9.28.0",
|
|
161
|
+
"eslint-formatter-gitlab": "^6.0.0",
|
|
159
162
|
"eslint-import-resolver-jest": "3.0.2",
|
|
160
|
-
"eslint-plugin-cypress": "
|
|
163
|
+
"eslint-plugin-cypress": "5.0.1",
|
|
161
164
|
"eslint-plugin-storybook": "0.12.0",
|
|
162
165
|
"fuse.js": "^7.0.0",
|
|
163
166
|
"gitlab-api-async-iterator": "^1.3.1",
|
|
@@ -110,7 +110,7 @@ sanitization. This component exposes the `is-unsafe-link` prop for that purpose.
|
|
|
110
110
|
href="data:text/plain;charset=utf-8,GitLab%20is%20awesome">Download</gl-button>
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
[SafeLinkDirective docs]: https://
|
|
113
|
+
[SafeLinkDirective docs]: https://design.gitlab.com/storybook?path=/docs/directives-safe-link-directive--default
|
|
114
114
|
[Data URL]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
|
|
115
115
|
|
|
116
116
|
## vue-bootstrap component
|
|
@@ -51,7 +51,7 @@ $gl-drawer-scrim-gradient: linear-gradient(
|
|
|
51
51
|
.gl-drawer-body > * {
|
|
52
52
|
@apply gl-border-b;
|
|
53
53
|
@apply gl-mx-5;
|
|
54
|
-
|
|
54
|
+
|
|
55
55
|
&:last-child {
|
|
56
56
|
@apply gl-border-none;
|
|
57
57
|
}
|
|
@@ -112,6 +112,7 @@ $gl-drawer-scrim-gradient: linear-gradient(
|
|
|
112
112
|
|
|
113
113
|
.gl-drawer-body {
|
|
114
114
|
@apply gl-grow;
|
|
115
|
+
min-height: 0;
|
|
115
116
|
// prevent safari bug where box shadow is visible
|
|
116
117
|
// above the drawer when hovering interactive elements
|
|
117
118
|
// see https://gitlab.com/gitlab-org/gitlab/-/issues/366558
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
## Usage
|
|
2
2
|
|
|
3
3
|
`GlFormCharacterCount` can be used to add a character count to an input.
|
|
4
|
-
If you are using `GlFormTextarea` on its own see [with character count example](https://
|
|
4
|
+
If you are using `GlFormTextarea` on its own see [with character count example](https://design.gitlab.com/storybook?path=/story/base-form-form-textarea--with-character-count).
|
|
5
5
|
If you are wrapping your input, such as in a markdown component, and need the character
|
|
6
6
|
count separate from the input, use `GlFormCharacterCount`.
|
|
7
7
|
|
|
@@ -46,7 +46,7 @@ The algorithm to match tokens with the input is very naive. If you need to use t
|
|
|
46
46
|
very large list of matches, you may want to update the implementation or use one of the search
|
|
47
47
|
inputs, like [`GlSearchBoxByType`], [`GlSearchBoxByClick`], or [`GlFilteredSearch`].
|
|
48
48
|
|
|
49
|
-
[`GlSearchBoxByType`]: https://
|
|
50
|
-
[`GlSearchBoxByClick`]: https://
|
|
51
|
-
[`GlTokenSelector`]: https://
|
|
52
|
-
[`GlFilteredSearch`]: https://
|
|
49
|
+
[`GlSearchBoxByType`]: https://design.gitlab.com/storybook?path=/story/base-search-box-by-type--default
|
|
50
|
+
[`GlSearchBoxByClick`]: https://design.gitlab.com/storybook?path=/story/base-search-box-by-click--default
|
|
51
|
+
[`GlTokenSelector`]: https://design.gitlab.com/storybook?path=/story/base-token-selector--default
|
|
52
|
+
[`GlFilteredSearch`]: https://design.gitlab.com/storybook?path=/story/base-filtered-search--default
|
|
@@ -25,6 +25,39 @@ and also Vue Router and Nuxt links.
|
|
|
25
25
|
<gl-link href="#foo">Link</gl-link>
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## External link indicator
|
|
29
|
+
|
|
30
|
+
The `show-external-icon` prop displays a "↗" character after the link text to indicate external links.
|
|
31
|
+
This feature is available for **inline**, **UI (default)**, and **meta** variants only.
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<!-- External link with indicator -->
|
|
35
|
+
<gl-link href="https://kubernetes.io/docs" target="_blank" show-external-icon>
|
|
36
|
+
Kubernetes documentation
|
|
37
|
+
</gl-link>
|
|
38
|
+
<!-- Renders as: Kubernetes documentation ↗ -->
|
|
39
|
+
|
|
40
|
+
<!-- Different variants with external indicator -->
|
|
41
|
+
<gl-link variant="inline" href="https://prometheus.io" target="_blank" show-external-icon>
|
|
42
|
+
Learn more about Prometheus monitoring
|
|
43
|
+
</gl-link>
|
|
44
|
+
|
|
45
|
+
<gl-link variant="meta" href="https://docker.com" target="_blank" show-external-icon>
|
|
46
|
+
Docker Hub
|
|
47
|
+
</gl-link>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Requirements for the external icon to appear:**
|
|
51
|
+
|
|
52
|
+
- `show-external-icon` prop must be `true`.
|
|
53
|
+
- `href` prop must be provided.
|
|
54
|
+
- `target="_blank"` must be set.
|
|
55
|
+
- Destination domain must be [determined as external](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/blob/b5e4b0b4241455ed0fa45e0f6f5b83a3b76755ff/packages/gitlab-ui/src/directives/safe_link/safe_link.js#L12).
|
|
56
|
+
- Link variant must be `inline`, `meta`, or default (UI).
|
|
57
|
+
|
|
58
|
+
**Note:** The external icon is not available for `mention` or `unstyled` variants as these have
|
|
59
|
+
specific design purposes that don't align with external link indication.
|
|
60
|
+
|
|
28
61
|
## Link type
|
|
29
62
|
|
|
30
63
|
By specifying a value in the `href` prop, a standard link (`<a>`) element will be rendered. To
|
|
@@ -150,5 +183,5 @@ sanitization. This component exposes the `is-unsafe-link` prop for that purpose.
|
|
|
150
183
|
</gl-link>
|
|
151
184
|
```
|
|
152
185
|
|
|
153
|
-
[SafeLinkDirective docs]: https://
|
|
186
|
+
[SafeLinkDirective docs]: https://design.gitlab.com/storybook?path=/docs/directives-safe-link-directive--default
|
|
154
187
|
[Data URL]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
|
|
@@ -15,6 +15,7 @@ import { attemptFocus, attemptBlur } from '../../../vendor/bootstrap-vue/src/uti
|
|
|
15
15
|
import {
|
|
16
16
|
linkVariantOptions,
|
|
17
17
|
linkVariantInline,
|
|
18
|
+
linkVariantMeta,
|
|
18
19
|
linkVariantUnstyled,
|
|
19
20
|
isVue3,
|
|
20
21
|
} from '../../../utils/constants';
|
|
@@ -130,7 +131,7 @@ export default {
|
|
|
130
131
|
default: null,
|
|
131
132
|
},
|
|
132
133
|
/**
|
|
133
|
-
*
|
|
134
|
+
* Controls ↗ character visibility for external links
|
|
134
135
|
*/
|
|
135
136
|
showExternalIcon: {
|
|
136
137
|
type: Boolean,
|
|
@@ -169,10 +170,11 @@ export default {
|
|
|
169
170
|
isVue3RouterLink() {
|
|
170
171
|
return this.tag === VUE_ROUTER_LINK_TAG && isVue3;
|
|
171
172
|
},
|
|
172
|
-
|
|
173
|
+
shouldShowExternalIcon() {
|
|
174
|
+
const allowedVariants = [linkVariantInline, linkVariantMeta, null]; // null represents default/UI variant
|
|
173
175
|
return (
|
|
174
176
|
this.showExternalIcon &&
|
|
175
|
-
this.variant
|
|
177
|
+
allowedVariants.includes(this.variant) &&
|
|
176
178
|
this.href &&
|
|
177
179
|
isExternalURL(this.target, this.href)
|
|
178
180
|
);
|
|
@@ -247,7 +249,7 @@ export default {
|
|
|
247
249
|
{
|
|
248
250
|
disabled: this.disabled,
|
|
249
251
|
active: this.active,
|
|
250
|
-
'gl-link-
|
|
252
|
+
'gl-link-external': this.shouldShowExternalIcon,
|
|
251
253
|
},
|
|
252
254
|
];
|
|
253
255
|
},
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import uniqueId from 'lodash/uniqueId';
|
|
2
3
|
import { GlTooltipDirective } from '../../../directives/tooltip/tooltip';
|
|
3
4
|
import GlButton from '../button/button.vue';
|
|
4
5
|
import GlButtonGroup from '../button_group/button_group.vue';
|
|
@@ -94,7 +95,15 @@ export default {
|
|
|
94
95
|
default: false,
|
|
95
96
|
},
|
|
96
97
|
},
|
|
98
|
+
data() {
|
|
99
|
+
return {
|
|
100
|
+
sortingListboxId: uniqueId('sorting-listbox-'),
|
|
101
|
+
};
|
|
102
|
+
},
|
|
97
103
|
computed: {
|
|
104
|
+
sortingListboxLabel() {
|
|
105
|
+
return translate('GlSorting.sortByLabel', 'Sort by:');
|
|
106
|
+
},
|
|
98
107
|
localSortDirection() {
|
|
99
108
|
return this.isAscending ? 'sort-lowest' : 'sort-highest';
|
|
100
109
|
},
|
|
@@ -146,8 +155,10 @@ export default {
|
|
|
146
155
|
:class="dropdownClass"
|
|
147
156
|
placement="bottom-end"
|
|
148
157
|
:block="block"
|
|
158
|
+
:toggle-aria-labelled-by="sortingListboxId"
|
|
149
159
|
@select="onSortByChanged"
|
|
150
160
|
/>
|
|
161
|
+
<span :id="sortingListboxId" class="gl-sr-only">{{ sortingListboxLabel }}</span>
|
|
151
162
|
<gl-button
|
|
152
163
|
v-gl-tooltip
|
|
153
164
|
:title="sortDirectionText"
|
|
@@ -45,4 +45,4 @@ export const tableFullProps = [
|
|
|
45
45
|
];
|
|
46
46
|
|
|
47
47
|
export const glTableLiteWarning =
|
|
48
|
-
'This GlTable could be a GlTableLite component, please consider using GlTableLite instead of GlTable to reduce the page bundlesize more about this here: https://
|
|
48
|
+
'This GlTable could be a GlTableLite component, please consider using GlTableLite instead of GlTable to reduce the page bundlesize more about this here: https://design.gitlab.com/storybook?path=/docs/base-table-table-lite--default';
|
|
@@ -79,7 +79,7 @@ function showToast(message, options = {}) {
|
|
|
79
79
|
* Note: This is not a typical Vue component and needs to be registered before instantiating a Vue app.
|
|
80
80
|
* Once registered, the toast will be globally available throughout your app.
|
|
81
81
|
*
|
|
82
|
-
* See https://
|
|
82
|
+
* See https://design.gitlab.com/storybook for detailed documentation.
|
|
83
83
|
*/
|
|
84
84
|
export default {
|
|
85
85
|
install(Vue) {
|
|
@@ -92,7 +92,6 @@ export default {
|
|
|
92
92
|
},
|
|
93
93
|
computed: {
|
|
94
94
|
shouldRenderDescription() {
|
|
95
|
-
// eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots
|
|
96
95
|
return Boolean(this.$scopedSlots.description || this.description) && this.isVerticalLayout;
|
|
97
96
|
},
|
|
98
97
|
shouldRenderHelp() {
|
|
@@ -164,7 +163,7 @@ export default {
|
|
|
164
163
|
class="gl-description-label gl-mb-3"
|
|
165
164
|
data-testid="toggle-description"
|
|
166
165
|
>
|
|
167
|
-
<!-- @slot A description text to be shown below the label. -->
|
|
166
|
+
<!-- @slot A description text to be shown below the label. Unavailable when the label is positioned on the left. -->
|
|
168
167
|
<slot name="description">{{ description }}</slot>
|
|
169
168
|
</span>
|
|
170
169
|
<input v-if="name" :name="name" :value="value" type="hidden" />
|
|
@@ -189,7 +188,7 @@ export default {
|
|
|
189
188
|
</span>
|
|
190
189
|
</button>
|
|
191
190
|
<span v-if="shouldRenderHelp" :id="helpId" class="gl-help-label" data-testid="toggle-help">
|
|
192
|
-
<!-- @slot A help text to be shown below the toggle. -->
|
|
191
|
+
<!-- @slot A help text to be shown below the toggle. Unavailable when the label is positioned on the left. -->
|
|
193
192
|
<slot name="help">{{ help }}</slot>
|
|
194
193
|
</span>
|
|
195
194
|
</div>
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
**Note** This component uses `<gl-legend>`, which should allow a user to click on any data point(s)
|
|
4
4
|
in the legend and make the corresponding data point(s) on the chart rendered disappear.
|
|
5
|
-
_See [area chart](https://
|
|
5
|
+
_See [area chart](https://design.gitlab.com/storybook?path=/story/charts-area-chart--default)
|
|
6
6
|
for an example_ For this particular chart, there is a [known issue](https://gitlab.com/gitlab-org/gitlab-ui/issues/352)
|
|
7
7
|
with the functionality of the legend, where clicking on it does nothing.
|
package/src/config.js
CHANGED
|
@@ -14,7 +14,7 @@ export const javascriptUrls = [
|
|
|
14
14
|
'javascript:alert("XSS")',
|
|
15
15
|
'jav\tascript:alert("XSS");',
|
|
16
16
|
];
|
|
17
|
-
/* eslint-
|
|
17
|
+
/* eslint-enable no-script-url */
|
|
18
18
|
|
|
19
19
|
export const encodedJavaScriptUrls = [
|
|
20
20
|
'javascript:alert('XSS')',
|
|
@@ -30,6 +30,5 @@ export function isVnodeEmpty(vnode) {
|
|
|
30
30
|
export function isSlotEmpty(vueInstance, slot, slotArgs) {
|
|
31
31
|
const slotContent = vueInstance.$scopedSlots[slot]?.(slotArgs);
|
|
32
32
|
|
|
33
|
-
// eslint-disable-next-line unicorn/no-array-callback-reference
|
|
34
33
|
return isVnodeEmpty(slotContent);
|
|
35
34
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adds two numbers together
|
|
3
|
-
* @param {Number} a
|
|
4
|
-
* @param {Number} b
|
|
3
|
+
* @param {Number|String} a
|
|
4
|
+
* @param {Number|String} b
|
|
5
5
|
*/
|
|
6
|
-
export const addition = (a, b) => a + b;
|
|
6
|
+
export const addition = (a, b) => Number(a) + Number(b);
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Returns the sum of all arguments
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* global jest, beforeEach, afterEach */
|
|
2
|
-
/* eslint-disable class-methods-use-this, max-classes-per-file
|
|
2
|
+
/* eslint-disable class-methods-use-this, max-classes-per-file */
|
|
3
3
|
import isMatch from 'lodash/isMatch';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -27,7 +27,6 @@ class MockObserver {
|
|
|
27
27
|
|
|
28
28
|
takeRecords() {}
|
|
29
29
|
|
|
30
|
-
// eslint-disable-next-line camelcase
|
|
31
30
|
$_triggerObserve(nodeParam, { entry = {}, options = {} } = {}) {
|
|
32
31
|
const nodes = this.$_getNodesFromParam(nodeParam);
|
|
33
32
|
|
|
@@ -38,7 +37,6 @@ class MockObserver {
|
|
|
38
37
|
});
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
// eslint-disable-next-line camelcase
|
|
42
40
|
$_hasObserver(node, options = {}) {
|
|
43
41
|
return this.$_observers.some(
|
|
44
42
|
([obvNode, obvOptions]) => node === obvNode && isMatch(options, obvOptions)
|
|
@@ -93,8 +93,7 @@
|
|
|
93
93
|
|
|
94
94
|
@if $bv-enable-table-sticky {
|
|
95
95
|
.b-table-sticky-header,
|
|
96
|
-
.table-responsive
|
|
97
|
-
[class*="table-responsive-"] {
|
|
96
|
+
.table-responsive {
|
|
98
97
|
// Move the table bottom margin to the wrapper
|
|
99
98
|
margin-bottom: $spacer;
|
|
100
99
|
|
|
@@ -137,8 +136,7 @@
|
|
|
137
136
|
// Sticky columns only work when table has sticky
|
|
138
137
|
// headers and/or is responsive
|
|
139
138
|
.b-table-sticky-header,
|
|
140
|
-
.table-responsive
|
|
141
|
-
[class*="table-responsive-"] {
|
|
139
|
+
.table-responsive {
|
|
142
140
|
> .table.b-table {
|
|
143
141
|
> thead,
|
|
144
142
|
> tbody,
|
package/translations.js
CHANGED
|
@@ -31,6 +31,7 @@ export default {
|
|
|
31
31
|
'GlProgressBar.ariaLabel': 'Progress bar',
|
|
32
32
|
'GlSearchBoxByType.clearButtonTitle': 'Clear',
|
|
33
33
|
'GlSearchBoxByType.input.placeholder': 'Search',
|
|
34
|
+
'GlSorting.sortByLabel': 'Sort by:',
|
|
34
35
|
'GlSorting.sortAscending': 'Sort direction: ascending',
|
|
35
36
|
'GlSorting.sortDescending': 'Sort direction: descending',
|
|
36
37
|
'GlToken.closeButtonTitle': 'Remove',
|