@gitlab/ui 66.3.1 → 66.5.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/base/table/table.js +7 -2
- package/dist/components/base/table_lite/table_lite.js +7 -2
- package/dist/components/charts/single_stat/single_stat.js +20 -1
- package/dist/components/utilities/animated_number/animated_number.js +13 -1
- 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/utility_classes.css +1 -1
- package/dist/utility_classes.css.map +1 -1
- package/dist/utils/number_utils.js +26 -1
- package/package.json +5 -3
- package/src/components/base/table/table.spec.js +9 -0
- package/src/components/base/table/table.vue +6 -1
- package/src/components/base/table_lite/table_lite.spec.js +9 -0
- package/src/components/base/table_lite/table_lite.vue +9 -2
- package/src/components/charts/single_stat/single_stat.spec.js +57 -11
- package/src/components/charts/single_stat/single_stat.stories.js +10 -0
- package/src/components/charts/single_stat/single_stat.vue +22 -1
- package/src/components/utilities/animated_number/animated_number.spec.js +36 -24
- package/src/components/utilities/animated_number/animated_number.stories.js +3 -1
- package/src/components/utilities/animated_number/animated_number.vue +14 -1
- package/src/scss/utilities.scss +6 -0
- package/src/scss/utility-mixins/spacing.scss +4 -0
- package/src/utils/number_utils.js +24 -0
- package/src/utils/number_utils.spec.js +21 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [66.5.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v66.4.0...v66.5.0) (2023-09-07)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **GlSingleStat:** Format the displayed number based on locale ([b6a845d](https://gitlab.com/gitlab-org/gitlab-ui/commit/b6a845d4344ad1ecef83738b6ef1b82a45d786a5))
|
|
7
|
+
|
|
8
|
+
# [66.4.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v66.3.1...v66.4.0) (2023-09-04)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **css:** Add gl-gap-1 class ([8248bf7](https://gitlab.com/gitlab-org/gitlab-ui/commit/8248bf73385db0b15a87c03dc8ccc4310e0f7306))
|
|
14
|
+
|
|
1
15
|
## [66.3.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v66.3.0...v66.3.1) (2023-09-01)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -21,7 +21,12 @@ var script = {
|
|
|
21
21
|
},
|
|
22
22
|
inheritAttrs: false,
|
|
23
23
|
props: {
|
|
24
|
-
tableClass
|
|
24
|
+
tableClass,
|
|
25
|
+
fields: {
|
|
26
|
+
type: Array,
|
|
27
|
+
required: false,
|
|
28
|
+
default: null
|
|
29
|
+
}
|
|
25
30
|
},
|
|
26
31
|
computed: {
|
|
27
32
|
localTableClass() {
|
|
@@ -41,7 +46,7 @@ var script = {
|
|
|
41
46
|
const __vue_script__ = script;
|
|
42
47
|
|
|
43
48
|
/* template */
|
|
44
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table',_vm._g(_vm._b({attrs:{"table-class":_vm.localTableClass},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'b-table',_vm.$attrs,false),_vm.$listeners))};
|
|
49
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table',_vm._g(_vm._b({attrs:{"table-class":_vm.localTableClass,"fields":_vm.fields},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'b-table',_vm.$attrs,false),_vm.$listeners))};
|
|
45
50
|
var __vue_staticRenderFns__ = [];
|
|
46
51
|
|
|
47
52
|
/* style */
|
|
@@ -11,7 +11,12 @@ var script = {
|
|
|
11
11
|
},
|
|
12
12
|
inheritAttrs: false,
|
|
13
13
|
props: {
|
|
14
|
-
tableClass
|
|
14
|
+
tableClass,
|
|
15
|
+
fields: {
|
|
16
|
+
type: Array,
|
|
17
|
+
required: false,
|
|
18
|
+
default: null
|
|
19
|
+
}
|
|
15
20
|
},
|
|
16
21
|
computed: {
|
|
17
22
|
localTableClass() {
|
|
@@ -24,7 +29,7 @@ var script = {
|
|
|
24
29
|
const __vue_script__ = script;
|
|
25
30
|
|
|
26
31
|
/* template */
|
|
27
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table-lite',_vm._g(_vm._b({attrs:{"table-class":_vm.localTableClass},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'b-table-lite',_vm.$attrs,false),_vm.$listeners))};
|
|
32
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table-lite',_vm._g(_vm._b({attrs:{"table-class":_vm.localTableClass,"fields":_vm.fields},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'b-table-lite',_vm.$attrs,false),_vm.$listeners))};
|
|
28
33
|
var __vue_staticRenderFns__ = [];
|
|
29
34
|
|
|
30
35
|
/* style */
|
|
@@ -2,6 +2,7 @@ import { badgeVariantOptions, variantCssColorMap } from '../../../utils/constant
|
|
|
2
2
|
import GlBadge from '../../base/badge/badge';
|
|
3
3
|
import GlIcon from '../../base/icon/icon';
|
|
4
4
|
import GlAnimatedNumber from '../../utilities/animated_number/animated_number';
|
|
5
|
+
import { formatNumberToLocale } from '../../../utils/number_utils';
|
|
5
6
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
6
7
|
|
|
7
8
|
var script = {
|
|
@@ -25,6 +26,14 @@ var script = {
|
|
|
25
26
|
required: false,
|
|
26
27
|
default: null
|
|
27
28
|
},
|
|
29
|
+
/**
|
|
30
|
+
* Requires the `value` property to be a valid Number or convertible to one
|
|
31
|
+
*/
|
|
32
|
+
useDelimiters: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
required: false,
|
|
35
|
+
default: false
|
|
36
|
+
},
|
|
28
37
|
variant: {
|
|
29
38
|
type: String,
|
|
30
39
|
required: false,
|
|
@@ -85,6 +94,16 @@ var script = {
|
|
|
85
94
|
},
|
|
86
95
|
canAnimate() {
|
|
87
96
|
return this.shouldAnimate && !Number.isNaN(Number(this.value));
|
|
97
|
+
},
|
|
98
|
+
statValue() {
|
|
99
|
+
if (this.useDelimiters) {
|
|
100
|
+
var _this$value$toString$;
|
|
101
|
+
const minimumFractionDigits = ((_this$value$toString$ = this.value.toString().split('.')[1]) === null || _this$value$toString$ === void 0 ? void 0 : _this$value$toString$.length) || 0;
|
|
102
|
+
return formatNumberToLocale(this.value, {
|
|
103
|
+
minimumFractionDigits
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return this.value;
|
|
88
107
|
}
|
|
89
108
|
},
|
|
90
109
|
methods: {
|
|
@@ -98,7 +117,7 @@ var script = {
|
|
|
98
117
|
const __vue_script__ = script;
|
|
99
118
|
|
|
100
119
|
/* template */
|
|
101
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._g(_vm._b({staticClass:"gl-single-stat gl-display-flex gl-flex-direction-column gl-p-2"},'div',_vm.$attrs,false),_vm.$listeners),[_c('div',{staticClass:"gl-display-flex gl-align-items-center gl-text-gray-700 gl-mb-2"},[(_vm.showTitleIcon)?_c('gl-icon',{class:['gl-mr-2', _vm.titleIconClass],attrs:{"name":_vm.titleIcon,"data-testid":"title-icon"}}):_vm._e(),_vm._v(" "),_c('span',{staticClass:"gl-font-base gl-font-weight-normal",attrs:{"data-testid":"title-text"}},[_vm._v(_vm._s(_vm.title))])],1),_vm._v(" "),_c('div',{staticClass:"gl-display-flex gl-align-items-baseline gl-font-weight-bold gl-text-gray-900"},[_c('span',{staticClass:"gl-font-size-h-display",class:{ 'gl-mr-2': !_vm.unit },attrs:{"data-testid":"displayValue"}},[(_vm.canAnimate)?_c('gl-animated-number',{attrs:{"number":Number(_vm.value),"decimal-places":_vm.animationDecimalPlaces},on:{"animating":function($event){return _vm.setHideUnits(true)},"animated":function($event){return _vm.setHideUnits(false)}}}):_c('span',{attrs:{"data-testid":"non-animated-value"}},[_vm._v(_vm._s(_vm.
|
|
120
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._g(_vm._b({staticClass:"gl-single-stat gl-display-flex gl-flex-direction-column gl-p-2"},'div',_vm.$attrs,false),_vm.$listeners),[_c('div',{staticClass:"gl-display-flex gl-align-items-center gl-text-gray-700 gl-mb-2"},[(_vm.showTitleIcon)?_c('gl-icon',{class:['gl-mr-2', _vm.titleIconClass],attrs:{"name":_vm.titleIcon,"data-testid":"title-icon"}}):_vm._e(),_vm._v(" "),_c('span',{staticClass:"gl-font-base gl-font-weight-normal",attrs:{"data-testid":"title-text"}},[_vm._v(_vm._s(_vm.title))])],1),_vm._v(" "),_c('div',{staticClass:"gl-display-flex gl-align-items-baseline gl-font-weight-bold gl-text-gray-900"},[_c('span',{staticClass:"gl-font-size-h-display",class:{ 'gl-mr-2': !_vm.unit },attrs:{"data-testid":"displayValue"}},[(_vm.canAnimate)?_c('gl-animated-number',{attrs:{"number":Number(_vm.value),"decimal-places":_vm.animationDecimalPlaces,"use-delimiters":_vm.useDelimiters},on:{"animating":function($event){return _vm.setHideUnits(true)},"animated":function($event){return _vm.setHideUnits(false)}}}):_c('span',{attrs:{"data-testid":"non-animated-value"}},[_vm._v(_vm._s(_vm.statValue))])],1),_vm._v(" "),(_vm.unit)?_c('span',{staticClass:"gl-font-sm gl-mx-2 gl-transition-medium gl-opacity-10",class:{ 'gl-opacity-0!': _vm.hideUnits },attrs:{"data-testid":"unit"}},[_vm._v(_vm._s(_vm.unit))]):_vm._e(),_vm._v(" "),(_vm.showMetaIcon)?_c('gl-icon',{class:_vm.textColor,attrs:{"name":_vm.metaIcon,"data-testid":"meta-icon"}}):_vm._e(),_vm._v(" "),(_vm.showBadge)?_c('gl-badge',{attrs:{"variant":_vm.variant,"icon":_vm.metaIcon,"data-testid":"meta-badge"}},[_vm._v(_vm._s(_vm.metaText))]):_vm._e()],1)])};
|
|
102
121
|
var __vue_staticRenderFns__ = [];
|
|
103
122
|
|
|
104
123
|
/* style */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { formatNumberToLocale } from '../../../utils/number_utils';
|
|
1
2
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
2
3
|
|
|
3
4
|
var script = {
|
|
@@ -23,6 +24,11 @@ var script = {
|
|
|
23
24
|
required: false,
|
|
24
25
|
default: 0
|
|
25
26
|
},
|
|
27
|
+
useDelimiters: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
required: false,
|
|
30
|
+
default: false
|
|
31
|
+
},
|
|
26
32
|
animateOnMount: {
|
|
27
33
|
type: Boolean,
|
|
28
34
|
required: false,
|
|
@@ -37,7 +43,13 @@ var script = {
|
|
|
37
43
|
},
|
|
38
44
|
computed: {
|
|
39
45
|
animatedNumber() {
|
|
40
|
-
|
|
46
|
+
const number = this.displayNumber.toFixed(this.decimalPlaces);
|
|
47
|
+
if (this.useDelimiters) {
|
|
48
|
+
return formatNumberToLocale(number, {
|
|
49
|
+
minimumFractionDigits: this.decimalPlaces
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return number;
|
|
41
53
|
}
|
|
42
54
|
},
|
|
43
55
|
ready() {
|
package/dist/tokens/js/tokens.js
CHANGED