@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
@@ -1,9 +1,10 @@
1
1
  import { NAME_FORM_GROUP } from '../../constants/components'
2
2
  import { IS_BROWSER } from '../../constants/env'
3
3
  import {
4
- PROP_TYPE_ARRAY_OBJECT_STRING,
4
+ PROP_TYPE_ARRAY,
5
5
  PROP_TYPE_BOOLEAN,
6
6
  PROP_TYPE_BOOLEAN_NUMBER_STRING,
7
+ PROP_TYPE_OBJECT,
7
8
  PROP_TYPE_STRING
8
9
  } from '../../constants/props'
9
10
  import { RX_SPACE_SPLIT } from '../../constants/regex'
@@ -66,19 +67,71 @@ export const generateProps = () =>
66
67
  props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING)
67
68
  return props
68
69
  }, create(null)),
69
- description: makeProp(PROP_TYPE_STRING),
70
- disabled: makeProp(PROP_TYPE_BOOLEAN, false),
71
- feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),
72
- invalidFeedback: makeProp(PROP_TYPE_STRING),
73
- label: makeProp(PROP_TYPE_STRING),
74
- labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
75
- labelFor: makeProp(PROP_TYPE_STRING),
76
- labelId: makeProp(PROP_TYPE_STRING),
77
- labelSize: makeProp(PROP_TYPE_STRING),
78
- labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),
79
- tooltip: makeProp(PROP_TYPE_BOOLEAN, false),
80
- validFeedback: makeProp(PROP_TYPE_STRING),
81
- validated: makeProp(PROP_TYPE_BOOLEAN, false)
70
+ description: {
71
+ type: PROP_TYPE_STRING,
72
+ required: false,
73
+ default: undefined
74
+ },
75
+ disabled: {
76
+ type: PROP_TYPE_BOOLEAN,
77
+ required: false,
78
+ default: false
79
+ },
80
+ feedbackAriaLive: {
81
+ type: PROP_TYPE_STRING,
82
+ required: false,
83
+ default: 'assertive'
84
+ },
85
+ invalidFeedback: {
86
+ type: PROP_TYPE_STRING,
87
+ required: false,
88
+ default: undefined
89
+ },
90
+ label: {
91
+ type: PROP_TYPE_STRING,
92
+ required: false,
93
+ default: undefined
94
+ },
95
+ labelClass: {
96
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
97
+ required: false,
98
+ default: undefined
99
+ },
100
+ labelFor: {
101
+ type: PROP_TYPE_STRING,
102
+ required: false,
103
+ default: undefined
104
+ },
105
+ labelId: {
106
+ type: PROP_TYPE_STRING,
107
+ required: false,
108
+ default: undefined
109
+ },
110
+ labelSize: {
111
+ type: PROP_TYPE_STRING,
112
+ required: false,
113
+ default: undefined
114
+ },
115
+ labelSrOnly: {
116
+ type: PROP_TYPE_BOOLEAN,
117
+ required: false,
118
+ default: false
119
+ },
120
+ tooltip: {
121
+ type: PROP_TYPE_BOOLEAN,
122
+ required: false,
123
+ default: false
124
+ },
125
+ validFeedback: {
126
+ type: PROP_TYPE_STRING,
127
+ required: false,
128
+ default: undefined
129
+ },
130
+ validated: {
131
+ type: PROP_TYPE_BOOLEAN,
132
+ required: false,
133
+ default: false
134
+ }
82
135
  })
83
136
 
84
137
  // --- Main component ---
@@ -4,7 +4,6 @@ import { PROP_TYPE_STRING } from '../../constants/props'
4
4
  import { SLOT_NAME_FIRST } from '../../constants/slots'
5
5
  import { htmlOrText } from '../../utils/html'
6
6
  import { sortKeys } from '../../utils/object'
7
- import { makeProp } from '../../utils/props'
8
7
  import { formOptionsMixin, props as formOptionsProps } from '../../mixins/form-options'
9
8
  import { normalizeSlotMixin } from '../../mixins/normalize-slot'
10
9
  import { BFormSelectOption } from './form-select-option'
@@ -13,7 +12,10 @@ import { BFormSelectOption } from './form-select-option'
13
12
 
14
13
  export const props = sortKeys({
15
14
  ...formOptionsProps,
16
- label: makeProp(PROP_TYPE_STRING, undefined, true) // Required
15
+ label: {
16
+ type: PROP_TYPE_STRING,
17
+ required: true
18
+ }
17
19
  })
18
20
 
19
21
  // --- Main component ---
@@ -1,13 +1,19 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_FORM_SELECT_OPTION } from '../../constants/components'
3
3
  import { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props'
4
- import { makeProp } from '../../utils/props'
5
4
 
6
5
  // --- Props ---
7
6
 
8
7
  export const props = {
9
- disabled: makeProp(PROP_TYPE_BOOLEAN, false),
10
- value: makeProp(PROP_TYPE_ANY, undefined, true) // Required
8
+ disabled: {
9
+ type: PROP_TYPE_BOOLEAN,
10
+ required: false,
11
+ default: false
12
+ },
13
+ value: {
14
+ type: PROP_TYPE_ANY,
15
+ required: true
16
+ }
11
17
  }
12
18
 
13
19
  // --- Main component ---
@@ -1,18 +1,13 @@
1
1
  import { extend } from '../../vue'
2
2
  import { NAME_FORM_SELECT } from '../../constants/components'
3
3
  import { EVENT_NAME_CHANGE } from '../../constants/events'
4
- import {
5
- PROP_TYPE_BOOLEAN,
6
- PROP_TYPE_BOOLEAN_STRING,
7
- PROP_TYPE_NUMBER
8
- } from '../../constants/props'
4
+ import { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props'
9
5
  import { SLOT_NAME_FIRST } from '../../constants/slots'
10
6
  import { from as arrayFrom } from '../../utils/array'
11
7
  import { attemptBlur, attemptFocus } from '../../utils/dom'
12
8
  import { htmlOrText } from '../../utils/html'
13
9
  import { isArray } from '../../utils/inspect'
14
10
  import { sortKeys } from '../../utils/object'
15
- import { makeProp } from '../../utils/props'
16
11
  import { formControlMixin, props as formControlProps } from '../../mixins/form-control'
17
12
  import { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom'
18
13
  import { formSizeMixin, props as formSizeProps } from '../../mixins/form-size'
@@ -38,11 +33,23 @@ export const props = sortKeys({
38
33
  ...formCustomProps,
39
34
  ...formSizeProps,
40
35
  ...formStateProps,
41
- ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),
42
- multiple: makeProp(PROP_TYPE_BOOLEAN, false),
36
+ ariaInvalid: {
37
+ type: [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING],
38
+ required: false,
39
+ default: false
40
+ },
41
+ multiple: {
42
+ type: PROP_TYPE_BOOLEAN,
43
+ required: false,
44
+ default: false
45
+ },
43
46
  // Browsers default size to `0`, which shows 4 rows in most browsers in multiple mode
44
47
  // Size of `1` can bork out Firefox
45
- selectSize: makeProp(PROP_TYPE_NUMBER, 0)
48
+ selectSize: {
49
+ type: PROP_TYPE_NUMBER,
50
+ required: false,
51
+ default: 0
52
+ }
46
53
  })
47
54
 
48
55
  // --- Main component ---
@@ -3,15 +3,22 @@ import { PROP_TYPE_STRING } from '../../../constants/props'
3
3
  import { get } from '../../../utils/get'
4
4
  import { isNull, isPlainObject, isUndefined } from '../../../utils/inspect'
5
5
  import { sortKeys } from '../../../utils/object'
6
- import { makeProp } from '../../../utils/props'
7
6
  import { formOptionsMixin, props as formOptionsProps } from '../../../mixins/form-options'
8
7
 
9
8
  // --- Props ---
10
9
 
11
10
  export const props = sortKeys({
12
11
  ...formOptionsProps,
13
- labelField: makeProp(PROP_TYPE_STRING, 'label'),
14
- optionsField: makeProp(PROP_TYPE_STRING, 'options')
12
+ labelField: {
13
+ type: PROP_TYPE_STRING,
14
+ required: false,
15
+ default: 'label'
16
+ },
17
+ optionsField: {
18
+ type: PROP_TYPE_STRING,
19
+ required: false,
20
+ default: 'options'
21
+ }
15
22
  })
16
23
 
17
24
  // --- Mixin ---
@@ -1,12 +1,11 @@
1
1
  import { extend } from '../../vue'
2
2
  import { NAME_FORM_TEXTAREA } from '../../constants/components'
3
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props'
3
+ import { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props'
4
4
  import { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom'
5
5
  import { isNull } from '../../utils/inspect'
6
6
  import { mathCeil, mathMax, mathMin } from '../../utils/math'
7
7
  import { toInteger, toFloat } from '../../utils/number'
8
8
  import { sortKeys } from '../../utils/object'
9
- import { makeProp } from '../../utils/props'
10
9
  import { formControlMixin, props as formControlProps } from '../../mixins/form-control'
11
10
  import { formSelectionMixin } from '../../mixins/form-selection'
12
11
  import { formSizeMixin, props as formSizeProps } from '../../mixins/form-size'
@@ -26,15 +25,35 @@ export const props = sortKeys({
26
25
  ...formSizeProps,
27
26
  ...formStateProps,
28
27
  ...formTextProps,
29
- maxRows: makeProp(PROP_TYPE_NUMBER_STRING),
28
+ maxRows: {
29
+ type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
30
+ required: false,
31
+ default: undefined
32
+ },
30
33
  // When in auto resize mode, disable shrinking to content height
31
- noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),
34
+ noAutoShrink: {
35
+ type: PROP_TYPE_BOOLEAN,
36
+ required: false,
37
+ default: false
38
+ },
32
39
  // Disable the resize handle of textarea
33
- noResize: makeProp(PROP_TYPE_BOOLEAN, false),
34
- rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),
40
+ noResize: {
41
+ type: PROP_TYPE_BOOLEAN,
42
+ required: false,
43
+ default: false
44
+ },
45
+ rows: {
46
+ type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
47
+ required: false,
48
+ default: 2
49
+ },
35
50
  // 'soft', 'hard' or 'off'
36
51
  // Browser default is 'soft'
37
- wrap: makeProp(PROP_TYPE_STRING, 'soft')
52
+ wrap: {
53
+ type: PROP_TYPE_STRING,
54
+ required: false,
55
+ default: 'soft'
56
+ }
38
57
  })
39
58
 
40
59
  // --- Main component ---
@@ -2,12 +2,12 @@ import { extend } from '../../vue'
2
2
  import { NAME_POPOVER } from '../../constants/components'
3
3
  import { EVENT_NAME_CLICK } from '../../constants/events'
4
4
  import {
5
- PROP_TYPE_ARRAY_STRING,
6
- PROP_TYPE_NUMBER_OBJECT_STRING,
5
+ PROP_TYPE_ARRAY,
6
+ PROP_TYPE_NUMBER,
7
+ PROP_TYPE_OBJECT,
7
8
  PROP_TYPE_STRING
8
9
  } from '../../constants/props'
9
10
  import { SLOT_NAME_TITLE } from '../../constants/slots'
10
- import { makeProp } from '../../utils/props'
11
11
  import { BTooltip, props as BTooltipProps } from '../tooltip/tooltip'
12
12
  import { BVPopover } from './helpers/bv-popover'
13
13
  import { sortKeys } from '../../utils/object'
@@ -16,10 +16,26 @@ import { sortKeys } from '../../utils/object'
16
16
 
17
17
  export const props = sortKeys({
18
18
  ...BTooltipProps,
19
- content: makeProp(PROP_TYPE_STRING),
20
- delay: makeProp(PROP_TYPE_NUMBER_OBJECT_STRING, { show: 50, hide: 150 }),
21
- placement: makeProp(PROP_TYPE_STRING, 'right'),
22
- triggers: makeProp(PROP_TYPE_ARRAY_STRING, EVENT_NAME_CLICK)
19
+ content: {
20
+ type: PROP_TYPE_STRING,
21
+ required: false,
22
+ default: undefined
23
+ },
24
+ delay: {
25
+ type: [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
26
+ required: false,
27
+ default: () => ({ show: 50, hide: 150 })
28
+ },
29
+ placement: {
30
+ type: PROP_TYPE_STRING,
31
+ required: false,
32
+ default: 'right'
33
+ },
34
+ triggers: {
35
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_STRING],
36
+ required: false,
37
+ default: EVENT_NAME_CLICK
38
+ }
23
39
  })
24
40
 
25
41
  // --- Main component ---
@@ -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
  export 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
  export 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
  }
@@ -7,7 +7,6 @@ import {
7
7
  } from '../../../constants/slots'
8
8
  import { htmlOrText } from '../../../utils/html'
9
9
  import { isFunction } from '../../../utils/inspect'
10
- import { makeProp } from '../../../utils/props'
11
10
  import { safeVueInstance } from '../../../utils/safe-vue-instance'
12
11
  import { BTr } from '../tr'
13
12
  import { BTd } from '../td'
@@ -15,11 +14,31 @@ import { BTd } from '../td'
15
14
  // --- Props ---
16
15
 
17
16
  export const props = {
18
- emptyFilteredHtml: makeProp(PROP_TYPE_STRING),
19
- emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),
20
- emptyHtml: makeProp(PROP_TYPE_STRING),
21
- emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),
22
- showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)
17
+ emptyFilteredHtml: {
18
+ type: PROP_TYPE_STRING,
19
+ required: false,
20
+ default: undefined
21
+ },
22
+ emptyFilteredText: {
23
+ type: PROP_TYPE_STRING,
24
+ required: false,
25
+ default: 'There are no records matching your request'
26
+ },
27
+ emptyHtml: {
28
+ type: PROP_TYPE_STRING,
29
+ required: false,
30
+ default: undefined
31
+ },
32
+ emptyText: {
33
+ type: PROP_TYPE_STRING,
34
+ required: false,
35
+ default: 'There are no records to show'
36
+ },
37
+ showEmpty: {
38
+ type: PROP_TYPE_BOOLEAN,
39
+ required: false,
40
+ default: false
41
+ }
23
42
  }
24
43
 
25
44
  // --- Mixin ---
@@ -9,7 +9,6 @@ import { makeModelMixin } from '../../../utils/model'
9
9
 
10
10
  import { toInteger } from '../../../utils/number'
11
11
  import { clone, sortKeys } from '../../../utils/object'
12
- import { makeProp } from '../../../utils/props'
13
12
  import { safeVueInstance } from '../../../utils/safe-vue-instance'
14
13
  import { normalizeFields } from './normalize-fields'
15
14
 
@@ -31,14 +30,30 @@ export { MODEL_PROP_NAME, MODEL_EVENT_NAME }
31
30
 
32
31
  export const props = sortKeys({
33
32
  ...modelProps,
34
- fields: makeProp(PROP_TYPE_ARRAY, null),
33
+ fields: {
34
+ type: PROP_TYPE_ARRAY,
35
+ required: false,
36
+ default: null
37
+ },
35
38
  // Provider mixin adds in `Function` type
36
- items: makeProp(PROP_TYPE_ARRAY, []),
39
+ items: {
40
+ type: PROP_TYPE_ARRAY,
41
+ required: false,
42
+ default: () => []
43
+ },
37
44
  // Primary key for record
38
45
  // If provided the value in each row must be unique!
39
- primaryKey: makeProp(PROP_TYPE_STRING),
46
+ primaryKey: {
47
+ type: PROP_TYPE_STRING,
48
+ required: false,
49
+ default: undefined
50
+ },
40
51
  // `v-model` for retrieving the current displayed rows
41
- [MODEL_PROP_NAME]: makeProp(PROP_TYPE_ARRAY, [])
52
+ [MODEL_PROP_NAME]: {
53
+ type: PROP_TYPE_ARRAY,
54
+ required: false,
55
+ default: () => []
56
+ }
42
57
  })
43
58
 
44
59
  // --- 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
  export 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 ---
@@ -2,15 +2,15 @@ import { extend } from '../../../vue'
2
2
  import { NAME_TABLE } from '../../../constants/components'
3
3
  import { EVENT_NAME_REFRESH, EVENT_NAME_REFRESHED } from '../../../constants/events'
4
4
  import {
5
- PROP_TYPE_ARRAY_FUNCTION,
5
+ PROP_TYPE_ARRAY,
6
6
  PROP_TYPE_BOOLEAN,
7
+ PROP_TYPE_FUNCTION,
7
8
  PROP_TYPE_STRING
8
9
  } from '../../../constants/props'
9
10
  import { getRootActionEventName, getRootEventName } from '../../../utils/events'
10
11
  import { isArray, isFunction, isPromise } from '../../../utils/inspect'
11
12
  import { looseEqual } from '../../../utils/loose-equal'
12
13
  import { clone } from '../../../utils/object'
13
- import { makeProp } from '../../../utils/props'
14
14
  import { safeVueInstance } from '../../../utils/safe-vue-instance'
15
15
  import { warn } from '../../../utils/warn'
16
16
  import { listenOnRootMixin } from '../../../mixins/listen-on-root'
@@ -25,12 +25,32 @@ const ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_
25
25
  export const props = {
26
26
  // Passed to the context object
27
27
  // Not used by `<b-table>` directly
28
- apiUrl: makeProp(PROP_TYPE_STRING),
28
+ apiUrl: {
29
+ type: PROP_TYPE_STRING,
30
+ required: false,
31
+ default: undefined
32
+ },
29
33
  // Adds in 'Function' support
30
- items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),
31
- noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),
32
- noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),
33
- noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)
34
+ items: {
35
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION],
36
+ required: false,
37
+ default: () => []
38
+ },
39
+ noProviderFiltering: {
40
+ type: PROP_TYPE_BOOLEAN,
41
+ required: false,
42
+ default: false
43
+ },
44
+ noProviderPaging: {
45
+ type: PROP_TYPE_BOOLEAN,
46
+ required: false,
47
+ default: false
48
+ },
49
+ noProviderSorting: {
50
+ type: PROP_TYPE_BOOLEAN,
51
+ required: false,
52
+ default: false
53
+ }
34
54
  }
35
55
 
36
56
  // --- 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 { mathMax, mathMin } 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
 
@@ -20,12 +19,27 @@ const ROLE_GRID = 'grid'
20
19
 
21
20
  export const props = {
22
21
  // Disable use of click handlers for row selection
23
- noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),
24
- selectMode: makeProp(PROP_TYPE_STRING, 'multi', value => {
25
- return SELECT_MODES.includes(value)
26
- }),
27
- selectable: makeProp(PROP_TYPE_BOOLEAN, false),
28
- selectedVariant: makeProp(PROP_TYPE_STRING, 'active')
22
+ noSelectOnClick: {
23
+ type: PROP_TYPE_BOOLEAN,
24
+ required: false,
25
+ default: false
26
+ },
27
+ selectMode: {
28
+ type: PROP_TYPE_STRING,
29
+ required: false,
30
+ default: 'multi',
31
+ validator: value => SELECT_MODES.includes(value)
32
+ },
33
+ selectable: {
34
+ type: PROP_TYPE_BOOLEAN,
35
+ required: false,
36
+ default: false
37
+ },
38
+ selectedVariant: {
39
+ type: PROP_TYPE_STRING,
40
+ required: false,
41
+ default: 'active'
42
+ }
29
43
  }
30
44
 
31
45
  // --- Mixin ---