@gitlab/ui 132.0.2 → 132.1.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.
Files changed (73) hide show
  1. package/dist/components/base/link/link.js +2 -2
  2. package/dist/components/dashboards/dashboard_layout/grid_layout/grid_layout.js +3 -3
  3. package/dist/index.css +1 -1
  4. package/dist/index.css.map +1 -1
  5. package/dist/utils/url_utils.js +56 -0
  6. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +5 -2
  7. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +11 -4
  8. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +31 -8
  9. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +15 -4
  10. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +31 -8
  11. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +35 -8
  12. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +35 -8
  13. package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +66 -14
  14. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +4 -2
  15. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +9 -3
  16. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +16 -5
  17. package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +10 -3
  18. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +26 -7
  19. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +24 -9
  20. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +5 -2
  21. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +10 -3
  22. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +25 -6
  23. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +20 -5
  24. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +11 -4
  25. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +26 -7
  26. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +21 -7
  27. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +74 -20
  28. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +6 -3
  29. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +71 -16
  30. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +16 -5
  31. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +7 -3
  32. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +26 -7
  33. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +21 -6
  34. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +36 -9
  35. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +10 -3
  36. package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +20 -5
  37. package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +24 -9
  38. package/package.json +2 -2
  39. package/src/components/base/link/link.vue +2 -2
  40. package/src/components/dashboards/dashboard_layout/grid_layout/grid_layout.vue +21 -19
  41. package/src/utils/url_utils.js +66 -0
  42. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +5 -2
  43. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +16 -4
  44. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +31 -8
  45. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +15 -4
  46. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +32 -8
  47. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +35 -8
  48. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +35 -8
  49. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.js +67 -14
  50. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +4 -2
  51. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +9 -3
  52. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.js +16 -9
  53. package/src/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +10 -3
  54. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +26 -7
  55. package/src/vendor/bootstrap-vue/src/components/popover/popover.js +23 -7
  56. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +5 -2
  57. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +10 -3
  58. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +25 -6
  59. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +20 -5
  60. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +11 -4
  61. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +27 -7
  62. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +21 -7
  63. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +72 -18
  64. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +6 -3
  65. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +72 -17
  66. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +18 -6
  67. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +7 -3
  68. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +27 -7
  69. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +21 -6
  70. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +36 -13
  71. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +10 -3
  72. package/src/vendor/bootstrap-vue/src/components/transition/bv-transition.js +20 -5
  73. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.js +22 -6
@@ -4,7 +4,6 @@ import { PROP_TYPE_BOOLEAN } from '../../../constants/props';
4
4
  import { SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';
5
5
  import { stopEvent } from '../../../utils/events';
6
6
  import { isFunction } from '../../../utils/inspect';
7
- import { makeProp } from '../../../utils/props';
8
7
  import { BTr } from '../tr';
9
8
  import { BTd } from '../td';
10
9
 
@@ -16,7 +15,11 @@ const MODEL_EVENT_NAME_BUSY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_BUSY;
16
15
  // --- Props ---
17
16
 
18
17
  const props = {
19
- [MODEL_PROP_NAME_BUSY]: makeProp(PROP_TYPE_BOOLEAN, false)
18
+ [MODEL_PROP_NAME_BUSY]: {
19
+ type: PROP_TYPE_BOOLEAN,
20
+ required: false,
21
+ default: false
22
+ }
20
23
  };
21
24
 
22
25
  // --- Mixin ---
@@ -2,13 +2,20 @@ import { extend } from '../../../vue';
2
2
  import { PROP_TYPE_STRING } from '../../../constants/props';
3
3
  import { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';
4
4
  import { htmlOrText } from '../../../utils/html';
5
- import { makeProp } from '../../../utils/props';
6
5
 
7
6
  // --- Props ---
8
7
 
9
8
  const props = {
10
- caption: makeProp(PROP_TYPE_STRING),
11
- captionHtml: makeProp(PROP_TYPE_STRING)
9
+ caption: {
10
+ type: PROP_TYPE_STRING,
11
+ required: false,
12
+ default: undefined
13
+ },
14
+ captionHtml: {
15
+ type: PROP_TYPE_STRING,
16
+ required: false,
17
+ default: undefined
18
+ }
12
19
  // `caption-top` is part of table-render mixin (styling)
13
20
  // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)
14
21
  };
@@ -3,7 +3,6 @@ import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../../constants/props';
3
3
  import { SLOT_NAME_TABLE_BUSY, SLOT_NAME_EMPTYFILTERED, SLOT_NAME_EMPTY } from '../../../constants/slots';
4
4
  import { htmlOrText } from '../../../utils/html';
5
5
  import { isFunction } from '../../../utils/inspect';
6
- import { makeProp } from '../../../utils/props';
7
6
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
8
7
  import { BTr } from '../tr';
9
8
  import { BTd } from '../td';
@@ -11,11 +10,31 @@ import { BTd } from '../td';
11
10
  // --- Props ---
12
11
 
13
12
  const props = {
14
- emptyFilteredHtml: makeProp(PROP_TYPE_STRING),
15
- emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),
16
- emptyHtml: makeProp(PROP_TYPE_STRING),
17
- emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),
18
- showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)
13
+ emptyFilteredHtml: {
14
+ type: PROP_TYPE_STRING,
15
+ required: false,
16
+ default: undefined
17
+ },
18
+ emptyFilteredText: {
19
+ type: PROP_TYPE_STRING,
20
+ required: false,
21
+ default: 'There are no records matching your request'
22
+ },
23
+ emptyHtml: {
24
+ type: PROP_TYPE_STRING,
25
+ required: false,
26
+ default: undefined
27
+ },
28
+ emptyText: {
29
+ type: PROP_TYPE_STRING,
30
+ required: false,
31
+ default: 'There are no records to show'
32
+ },
33
+ showEmpty: {
34
+ type: PROP_TYPE_BOOLEAN,
35
+ required: false,
36
+ default: false
37
+ }
19
38
  };
20
39
 
21
40
  // --- Mixin ---
@@ -8,7 +8,6 @@ import { mathMax } from '../../../utils/math';
8
8
  import { makeModelMixin } from '../../../utils/model';
9
9
  import { toInteger } from '../../../utils/number';
10
10
  import { sortKeys, clone } from '../../../utils/object';
11
- import { makeProp } from '../../../utils/props';
12
11
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
13
12
  import { normalizeFields } from './normalize-fields';
14
13
 
@@ -28,14 +27,30 @@ const {
28
27
 
29
28
  const props = sortKeys({
30
29
  ...modelProps,
31
- fields: makeProp(PROP_TYPE_ARRAY, null),
30
+ fields: {
31
+ type: PROP_TYPE_ARRAY,
32
+ required: false,
33
+ default: null
34
+ },
32
35
  // Provider mixin adds in `Function` type
33
- items: makeProp(PROP_TYPE_ARRAY, []),
36
+ items: {
37
+ type: PROP_TYPE_ARRAY,
38
+ required: false,
39
+ default: () => []
40
+ },
34
41
  // Primary key for record
35
42
  // If provided the value in each row must be unique!
36
- primaryKey: makeProp(PROP_TYPE_STRING),
43
+ primaryKey: {
44
+ type: PROP_TYPE_STRING,
45
+ required: false,
46
+ default: undefined
47
+ },
37
48
  // `v-model` for retrieving the current displayed rows
38
- [MODEL_PROP_NAME]: makeProp(PROP_TYPE_ARRAY, [])
49
+ [MODEL_PROP_NAME]: {
50
+ type: PROP_TYPE_ARRAY,
51
+ required: false,
52
+ default: () => []
53
+ }
39
54
  });
40
55
 
41
56
  // --- Mixin ---
@@ -1,15 +1,22 @@
1
1
  import { extend } from '../../../vue';
2
- import { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';
2
+ import { PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../../constants/props';
3
3
  import { mathMax } from '../../../utils/math';
4
4
  import { toInteger } from '../../../utils/number';
5
- import { makeProp } from '../../../utils/props';
6
5
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
7
6
 
8
7
  // --- Props ---
9
8
 
10
9
  const props = {
11
- currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),
12
- perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)
10
+ currentPage: {
11
+ type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
12
+ required: false,
13
+ default: 1
14
+ },
15
+ perPage: {
16
+ type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
17
+ required: false,
18
+ default: 0
19
+ }
13
20
  };
14
21
 
15
22
  // --- Mixin ---
@@ -1,12 +1,11 @@
1
1
  import { extend } from '../../../vue';
2
2
  import { NAME_TABLE } from '../../../constants/components';
3
3
  import { EVENT_NAME_REFRESHED, EVENT_NAME_REFRESH } from '../../../constants/events';
4
- import { PROP_TYPE_STRING, PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN } from '../../../constants/props';
4
+ import { PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION, PROP_TYPE_BOOLEAN } from '../../../constants/props';
5
5
  import { getRootEventName, getRootActionEventName } from '../../../utils/events';
6
6
  import { isFunction, isArray, isPromise } from '../../../utils/inspect';
7
7
  import { looseEqual } from '../../../utils/loose-equal';
8
8
  import { clone } from '../../../utils/object';
9
- import { makeProp } from '../../../utils/props';
10
9
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
11
10
  import { warn } from '../../../utils/warn';
12
11
  import { listenOnRootMixin } from '../../../mixins/listen-on-root';
@@ -21,12 +20,32 @@ const ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_
21
20
  const props = {
22
21
  // Passed to the context object
23
22
  // Not used by `<b-table>` directly
24
- apiUrl: makeProp(PROP_TYPE_STRING),
23
+ apiUrl: {
24
+ type: PROP_TYPE_STRING,
25
+ required: false,
26
+ default: undefined
27
+ },
25
28
  // Adds in 'Function' support
26
- items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),
27
- noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),
28
- noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),
29
- noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)
29
+ items: {
30
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION],
31
+ required: false,
32
+ default: () => []
33
+ },
34
+ noProviderFiltering: {
35
+ type: PROP_TYPE_BOOLEAN,
36
+ required: false,
37
+ default: false
38
+ },
39
+ noProviderPaging: {
40
+ type: PROP_TYPE_BOOLEAN,
41
+ required: false,
42
+ default: false
43
+ },
44
+ noProviderSorting: {
45
+ type: PROP_TYPE_BOOLEAN,
46
+ required: false,
47
+ default: false
48
+ }
30
49
  };
31
50
 
32
51
  // --- Mixin ---
@@ -6,7 +6,6 @@ import { identity } from '../../../utils/identity';
6
6
  import { isArray, isNumber } from '../../../utils/inspect';
7
7
  import { looseEqual } from '../../../utils/loose-equal';
8
8
  import { mathMin, mathMax } from '../../../utils/math';
9
- import { makeProp } from '../../../utils/props';
10
9
  import { toString } from '../../../utils/string';
11
10
  import { sanitizeRow } from './sanitize-row';
12
11
 
@@ -19,12 +18,27 @@ const ROLE_GRID = 'grid';
19
18
 
20
19
  const props = {
21
20
  // Disable use of click handlers for row selection
22
- noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),
23
- selectMode: makeProp(PROP_TYPE_STRING, 'multi', value => {
24
- return SELECT_MODES.includes(value);
25
- }),
26
- selectable: makeProp(PROP_TYPE_BOOLEAN, false),
27
- selectedVariant: makeProp(PROP_TYPE_STRING, 'active')
21
+ noSelectOnClick: {
22
+ type: PROP_TYPE_BOOLEAN,
23
+ required: false,
24
+ default: false
25
+ },
26
+ selectMode: {
27
+ type: PROP_TYPE_STRING,
28
+ required: false,
29
+ default: 'multi',
30
+ validator: value => SELECT_MODES.includes(value)
31
+ },
32
+ selectable: {
33
+ type: PROP_TYPE_BOOLEAN,
34
+ required: false,
35
+ default: false
36
+ },
37
+ selectedVariant: {
38
+ type: PROP_TYPE_STRING,
39
+ required: false,
40
+ default: 'active'
41
+ }
28
42
  };
29
43
 
30
44
  // --- Mixin ---
@@ -1,8 +1,7 @@
1
1
  import { extend } from '../../../vue';
2
2
  import { EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';
3
- import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY_STRING, PROP_TYPE_OBJECT } from '../../../constants/props';
3
+ import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../../constants/props';
4
4
  import { isFunction, isUndefinedOrNull } from '../../../utils/inspect';
5
- import { makeProp } from '../../../utils/props';
6
5
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
7
6
  import { stableSort } from '../../../utils/stable-sort';
8
7
  import { trim } from '../../../utils/string';
@@ -22,38 +21,93 @@ const SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION
22
21
  // --- Props ---
23
22
 
24
23
  const props = {
25
- labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort ascending'),
26
- labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),
27
- labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort descending'),
28
- noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),
29
- noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),
24
+ labelSortAsc: {
25
+ type: PROP_TYPE_STRING,
26
+ required: false,
27
+ default: 'Click to sort ascending'
28
+ },
29
+ labelSortClear: {
30
+ type: PROP_TYPE_STRING,
31
+ required: false,
32
+ default: 'Click to clear sorting'
33
+ },
34
+ labelSortDesc: {
35
+ type: PROP_TYPE_STRING,
36
+ required: false,
37
+ default: 'Click to sort descending'
38
+ },
39
+ noFooterSorting: {
40
+ type: PROP_TYPE_BOOLEAN,
41
+ required: false,
42
+ default: false
43
+ },
44
+ noLocalSorting: {
45
+ type: PROP_TYPE_BOOLEAN,
46
+ required: false,
47
+ default: false
48
+ },
30
49
  // Another prop that should have had a better name
31
50
  // It should be `noSortClear` (on non-sortable headers)
32
51
  // We will need to make sure the documentation is clear on what
33
52
  // this prop does (as well as in the code for future reference)
34
- noSortReset: makeProp(PROP_TYPE_BOOLEAN, false),
35
- [MODEL_PROP_NAME_SORT_BY]: makeProp(PROP_TYPE_STRING),
36
- sortCompare: makeProp(PROP_TYPE_FUNCTION),
53
+ noSortReset: {
54
+ type: PROP_TYPE_BOOLEAN,
55
+ required: false,
56
+ default: false
57
+ },
58
+ [MODEL_PROP_NAME_SORT_BY]: {
59
+ type: PROP_TYPE_STRING,
60
+ required: false,
61
+ default: undefined
62
+ },
63
+ sortCompare: {
64
+ type: PROP_TYPE_FUNCTION,
65
+ required: false,
66
+ default: undefined
67
+ },
37
68
  // String: locale code
38
69
  // Array: array of Locale strings
39
- sortCompareLocale: makeProp(PROP_TYPE_ARRAY_STRING),
70
+ sortCompareLocale: {
71
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_STRING],
72
+ required: false,
73
+ default: undefined
74
+ },
40
75
  // Supported localCompare options, see `options` section of:
41
76
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
42
- sortCompareOptions: makeProp(PROP_TYPE_OBJECT, {
43
- numeric: true
44
- }),
77
+ sortCompareOptions: {
78
+ type: PROP_TYPE_OBJECT,
79
+ required: false,
80
+ default: () => ({
81
+ numeric: true
82
+ })
83
+ },
45
84
  // TODO: Make this tri-state: `true`, `false`, `null`
46
- [MODEL_PROP_NAME_SORT_DESC]: makeProp(PROP_TYPE_BOOLEAN, false),
85
+ [MODEL_PROP_NAME_SORT_DESC]: {
86
+ type: PROP_TYPE_BOOLEAN,
87
+ required: false,
88
+ default: false
89
+ },
47
90
  // This prop is named incorrectly
48
91
  // It should be `initialSortDirection` as it is a bit misleading
49
92
  // (not to mention it screws up the ARIA label on the headers)
50
- sortDirection: makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, value => {
51
- return SORT_DIRECTIONS.includes(value);
52
- }),
93
+ sortDirection: {
94
+ type: PROP_TYPE_STRING,
95
+ required: false,
96
+ default: SORT_DIRECTION_ASC,
97
+ validator: value => SORT_DIRECTIONS.includes(value)
98
+ },
53
99
  // Place the sorting icon on the left of the header cells
54
- sortIconLeft: makeProp(PROP_TYPE_BOOLEAN, false),
100
+ sortIconLeft: {
101
+ type: PROP_TYPE_BOOLEAN,
102
+ required: false,
103
+ default: false
104
+ },
55
105
  // Sort null and undefined to appear last
56
- sortNullLast: makeProp(PROP_TYPE_BOOLEAN, false)
106
+ sortNullLast: {
107
+ type: PROP_TYPE_BOOLEAN,
108
+ required: false,
109
+ default: false
110
+ }
57
111
  };
58
112
 
59
113
  // --- Mixin ---
@@ -1,11 +1,14 @@
1
1
  import { extend } from '../../../vue';
2
- import { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';
3
- import { makeProp } from '../../../utils/props';
2
+ import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';
4
3
 
5
4
  // --- Props ---
6
5
 
7
6
  const props = {
8
- stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)
7
+ stacked: {
8
+ type: [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING],
9
+ required: false,
10
+ default: false
11
+ }
9
12
  };
10
13
 
11
14
  // --- Mixin ---
@@ -1,8 +1,7 @@
1
1
  import { extend } from '../../../vue';
2
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';
2
+ import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../../constants/props';
3
3
  import { identity } from '../../../utils/identity';
4
4
  import { isBoolean } from '../../../utils/inspect';
5
- import { makeProp } from '../../../utils/props';
6
5
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
7
6
  import { toString } from '../../../utils/string';
8
7
  import { attrsMixin } from '../../../mixins/attrs';
@@ -13,21 +12,77 @@ import { attrsMixin } from '../../../mixins/attrs';
13
12
  // --- Props ---
14
13
 
15
14
  const props = {
16
- bordered: makeProp(PROP_TYPE_BOOLEAN, false),
17
- borderless: makeProp(PROP_TYPE_BOOLEAN, false),
18
- captionTop: makeProp(PROP_TYPE_BOOLEAN, false),
19
- dark: makeProp(PROP_TYPE_BOOLEAN, false),
20
- fixed: makeProp(PROP_TYPE_BOOLEAN, false),
21
- hover: makeProp(PROP_TYPE_BOOLEAN, false),
22
- noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),
23
- outlined: makeProp(PROP_TYPE_BOOLEAN, false),
24
- responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),
25
- small: makeProp(PROP_TYPE_BOOLEAN, false),
15
+ bordered: {
16
+ type: PROP_TYPE_BOOLEAN,
17
+ required: false,
18
+ default: false
19
+ },
20
+ borderless: {
21
+ type: PROP_TYPE_BOOLEAN,
22
+ required: false,
23
+ default: false
24
+ },
25
+ captionTop: {
26
+ type: PROP_TYPE_BOOLEAN,
27
+ required: false,
28
+ default: false
29
+ },
30
+ dark: {
31
+ type: PROP_TYPE_BOOLEAN,
32
+ required: false,
33
+ default: false
34
+ },
35
+ fixed: {
36
+ type: PROP_TYPE_BOOLEAN,
37
+ required: false,
38
+ default: false
39
+ },
40
+ hover: {
41
+ type: PROP_TYPE_BOOLEAN,
42
+ required: false,
43
+ default: false
44
+ },
45
+ noBorderCollapse: {
46
+ type: PROP_TYPE_BOOLEAN,
47
+ required: false,
48
+ default: false
49
+ },
50
+ outlined: {
51
+ type: PROP_TYPE_BOOLEAN,
52
+ required: false,
53
+ default: false
54
+ },
55
+ responsive: {
56
+ type: [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING],
57
+ required: false,
58
+ default: false
59
+ },
60
+ small: {
61
+ type: PROP_TYPE_BOOLEAN,
62
+ required: false,
63
+ default: false
64
+ },
26
65
  // If a string, it is assumed to be the table `max-height` value
27
- stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),
28
- striped: makeProp(PROP_TYPE_BOOLEAN, false),
29
- tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
30
- tableVariant: makeProp(PROP_TYPE_STRING)
66
+ stickyHeader: {
67
+ type: [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING],
68
+ required: false,
69
+ default: false
70
+ },
71
+ striped: {
72
+ type: PROP_TYPE_BOOLEAN,
73
+ required: false,
74
+ default: false
75
+ },
76
+ tableClass: {
77
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
78
+ required: false,
79
+ default: undefined
80
+ },
81
+ tableVariant: {
82
+ type: PROP_TYPE_STRING,
83
+ required: false,
84
+ default: undefined
85
+ }
31
86
  };
32
87
 
33
88
  // --- Mixin ---
@@ -1,11 +1,10 @@
1
1
  import { extend, REF_FOR_KEY } from '../../../vue';
2
2
  import { EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED, EVENT_NAME_ROW_CLICKED } from '../../../constants/events';
3
- import { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_OBJECT_FUNCTION, PROP_TYPE_FUNCTION } from '../../../constants/props';
3
+ import { PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING, PROP_TYPE_FUNCTION } from '../../../constants/props';
4
4
  import { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';
5
5
  import { useParentMixin } from '../../../mixins/use-parent';
6
6
  import { get } from '../../../utils/get';
7
7
  import { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';
8
- import { makeProp } from '../../../utils/props';
9
8
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
10
9
  import { toString } from '../../../utils/string';
11
10
  import { BTr } from '../tr';
@@ -16,9 +15,21 @@ import { FIELD_KEY_SHOW_DETAILS, FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT }
16
15
  // --- Props ---
17
16
 
18
17
  const props = {
19
- detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
20
- tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),
21
- tbodyTrClass: makeProp([...PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION])
18
+ detailsTdClass: {
19
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
20
+ required: false,
21
+ default: undefined
22
+ },
23
+ tbodyTrAttr: {
24
+ type: [PROP_TYPE_OBJECT, PROP_TYPE_FUNCTION],
25
+ required: false,
26
+ default: undefined
27
+ },
28
+ tbodyTrClass: {
29
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING, PROP_TYPE_FUNCTION],
30
+ required: false,
31
+ default: undefined
32
+ }
22
33
  };
23
34
 
24
35
  // --- Mixin ---
@@ -1,13 +1,13 @@
1
1
  import { extend } from '../../../vue';
2
2
  import { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED } from '../../../constants/events';
3
3
  import { CODE_ENTER, CODE_SPACE, CODE_UP, CODE_DOWN, CODE_HOME, CODE_END } from '../../../constants/key-codes';
4
- import { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';
4
+ import { PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../../constants/props';
5
5
  import { from } from '../../../utils/array';
6
6
  import { isElement, closest, isActiveElement, attemptFocus } from '../../../utils/dom';
7
7
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
8
8
  import { stopEvent } from '../../../utils/events';
9
9
  import { sortKeys } from '../../../utils/object';
10
- import { makeProp, pluckProps } from '../../../utils/props';
10
+ import { pluckProps } from '../../../utils/props';
11
11
  import { props as props$1, BTbody } from '../tbody';
12
12
  import { filterEvent } from './filter-event';
13
13
  import { textSelectionActive } from './text-selection-active';
@@ -22,7 +22,11 @@ const getCellSlotName = value => `cell(${value || ''})`;
22
22
  const props = sortKeys({
23
23
  ...props$1,
24
24
  ...props$2,
25
- tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)
25
+ tbodyClass: {
26
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
27
+ required: false,
28
+ default: undefined
29
+ }
26
30
  });
27
31
 
28
32
  // --- Mixin ---
@@ -1,20 +1,39 @@
1
1
  import { extend } from '../../../vue';
2
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';
2
+ import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../../constants/props';
3
3
  import { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';
4
- import { makeProp } from '../../../utils/props';
5
4
  import { BTfoot } from '../tfoot';
6
5
 
7
6
  // --- Props ---
8
7
 
9
8
  const props = {
10
- footClone: makeProp(PROP_TYPE_BOOLEAN, false),
9
+ footClone: {
10
+ type: PROP_TYPE_BOOLEAN,
11
+ required: false,
12
+ default: false
13
+ },
11
14
  // Any Bootstrap theme variant (or custom)
12
15
  // Falls back to `headRowVariant`
13
- footRowVariant: makeProp(PROP_TYPE_STRING),
16
+ footRowVariant: {
17
+ type: PROP_TYPE_STRING,
18
+ required: false,
19
+ default: undefined
20
+ },
14
21
  // 'dark', 'light', or `null` (or custom)
15
- footVariant: makeProp(PROP_TYPE_STRING),
16
- tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
17
- tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)
22
+ footVariant: {
23
+ type: PROP_TYPE_STRING,
24
+ required: false,
25
+ default: undefined
26
+ },
27
+ tfootClass: {
28
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
29
+ required: false,
30
+ default: undefined
31
+ },
32
+ tfootTrClass: {
33
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
34
+ required: false,
35
+ default: undefined
36
+ }
18
37
  };
19
38
 
20
39
  // --- Mixin ---
@@ -1,14 +1,13 @@
1
1
  import { extend } from '../../../vue';
2
2
  import { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';
3
3
  import { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';
4
- import { PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';
4
+ import { PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../../constants/props';
5
5
  import { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';
6
6
  import { stopEvent } from '../../../utils/events';
7
7
  import { htmlOrText } from '../../../utils/html';
8
8
  import { identity } from '../../../utils/identity';
9
9
  import { isUndefinedOrNull } from '../../../utils/inspect';
10
10
  import { noop } from '../../../utils/noop';
11
- import { makeProp } from '../../../utils/props';
12
11
  import { safeVueInstance } from '../../../utils/safe-vue-instance';
13
12
  import { startCase } from '../../../utils/string';
14
13
  import { BThead } from '../thead';
@@ -27,11 +26,27 @@ const getFootSlotName = value => `foot(${value || ''})`;
27
26
 
28
27
  const props = {
29
28
  // Any Bootstrap theme variant (or custom)
30
- headRowVariant: makeProp(PROP_TYPE_STRING),
29
+ headRowVariant: {
30
+ type: PROP_TYPE_STRING,
31
+ required: false,
32
+ default: undefined
33
+ },
31
34
  // 'light', 'dark' or `null` (or custom)
32
- headVariant: makeProp(PROP_TYPE_STRING),
33
- theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
34
- theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)
35
+ headVariant: {
36
+ type: PROP_TYPE_STRING,
37
+ required: false,
38
+ default: undefined
39
+ },
40
+ theadClass: {
41
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
42
+ required: false,
43
+ default: undefined
44
+ },
45
+ theadTrClass: {
46
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
47
+ required: false,
48
+ default: undefined
49
+ }
35
50
  };
36
51
 
37
52
  // --- Mixin ---