@gitlab/ui 132.0.2 → 132.0.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.
Files changed (67) hide show
  1. package/dist/components/base/link/link.js +2 -2
  2. package/dist/utils/url_utils.js +56 -0
  3. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +5 -2
  4. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +11 -4
  5. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +31 -8
  6. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +15 -4
  7. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +31 -8
  8. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +35 -8
  9. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +35 -8
  10. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +4 -2
  11. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +9 -3
  12. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +16 -5
  13. package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +10 -3
  14. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +26 -7
  15. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +24 -9
  16. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +5 -2
  17. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +10 -3
  18. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +25 -6
  19. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +20 -5
  20. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +11 -4
  21. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +26 -7
  22. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +21 -7
  23. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +74 -20
  24. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +6 -3
  25. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +71 -16
  26. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +16 -5
  27. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +7 -3
  28. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +26 -7
  29. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +21 -6
  30. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +36 -9
  31. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +10 -3
  32. package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +20 -5
  33. package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +24 -9
  34. package/package.json +1 -1
  35. package/src/components/base/link/link.vue +2 -2
  36. package/src/utils/url_utils.js +66 -0
  37. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +5 -2
  38. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +16 -4
  39. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +31 -8
  40. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +15 -4
  41. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +32 -8
  42. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +35 -8
  43. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +35 -8
  44. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +4 -2
  45. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +9 -3
  46. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.js +16 -9
  47. package/src/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +10 -3
  48. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +26 -7
  49. package/src/vendor/bootstrap-vue/src/components/popover/popover.js +23 -7
  50. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +5 -2
  51. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +10 -3
  52. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +25 -6
  53. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +20 -5
  54. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +11 -4
  55. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +27 -7
  56. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +21 -7
  57. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +72 -18
  58. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +6 -3
  59. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +72 -17
  60. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +18 -6
  61. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +7 -3
  62. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +27 -7
  63. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +21 -6
  64. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +36 -13
  65. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +10 -3
  66. package/src/vendor/bootstrap-vue/src/components/transition/bv-transition.js +20 -5
  67. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.js +22 -6
@@ -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 ---
@@ -1,14 +1,13 @@
1
1
  import { extend } from '../../../vue'
2
2
  import { EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events'
3
3
  import {
4
- PROP_TYPE_ARRAY_STRING,
4
+ PROP_TYPE_ARRAY,
5
5
  PROP_TYPE_BOOLEAN,
6
6
  PROP_TYPE_FUNCTION,
7
7
  PROP_TYPE_OBJECT,
8
8
  PROP_TYPE_STRING
9
9
  } from '../../../constants/props'
10
10
  import { isFunction, isUndefinedOrNull } from '../../../utils/inspect'
11
- import { makeProp } from '../../../utils/props'
12
11
  import { safeVueInstance } from '../../../utils/safe-vue-instance'
13
12
  import { stableSort } from '../../../utils/stable-sort'
14
13
  import { trim } from '../../../utils/string'
@@ -30,36 +29,91 @@ const SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION
30
29
  // --- Props ---
31
30
 
32
31
  export const props = {
33
- labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort ascending'),
34
- labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),
35
- labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort descending'),
36
- noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),
37
- noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),
32
+ labelSortAsc: {
33
+ type: PROP_TYPE_STRING,
34
+ required: false,
35
+ default: 'Click to sort ascending'
36
+ },
37
+ labelSortClear: {
38
+ type: PROP_TYPE_STRING,
39
+ required: false,
40
+ default: 'Click to clear sorting'
41
+ },
42
+ labelSortDesc: {
43
+ type: PROP_TYPE_STRING,
44
+ required: false,
45
+ default: 'Click to sort descending'
46
+ },
47
+ noFooterSorting: {
48
+ type: PROP_TYPE_BOOLEAN,
49
+ required: false,
50
+ default: false
51
+ },
52
+ noLocalSorting: {
53
+ type: PROP_TYPE_BOOLEAN,
54
+ required: false,
55
+ default: false
56
+ },
38
57
  // Another prop that should have had a better name
39
58
  // It should be `noSortClear` (on non-sortable headers)
40
59
  // We will need to make sure the documentation is clear on what
41
60
  // this prop does (as well as in the code for future reference)
42
- noSortReset: makeProp(PROP_TYPE_BOOLEAN, false),
43
- [MODEL_PROP_NAME_SORT_BY]: makeProp(PROP_TYPE_STRING),
44
- sortCompare: makeProp(PROP_TYPE_FUNCTION),
61
+ noSortReset: {
62
+ type: PROP_TYPE_BOOLEAN,
63
+ required: false,
64
+ default: false
65
+ },
66
+ [MODEL_PROP_NAME_SORT_BY]: {
67
+ type: PROP_TYPE_STRING,
68
+ required: false,
69
+ default: undefined
70
+ },
71
+ sortCompare: {
72
+ type: PROP_TYPE_FUNCTION,
73
+ required: false,
74
+ default: undefined
75
+ },
45
76
  // String: locale code
46
77
  // Array: array of Locale strings
47
- sortCompareLocale: makeProp(PROP_TYPE_ARRAY_STRING),
78
+ sortCompareLocale: {
79
+ type: [PROP_TYPE_ARRAY, PROP_TYPE_STRING],
80
+ required: false,
81
+ default: undefined
82
+ },
48
83
  // Supported localCompare options, see `options` section of:
49
84
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
50
- sortCompareOptions: makeProp(PROP_TYPE_OBJECT, { numeric: true }),
85
+ sortCompareOptions: {
86
+ type: PROP_TYPE_OBJECT,
87
+ required: false,
88
+ default: () => ({ numeric: true })
89
+ },
51
90
  // TODO: Make this tri-state: `true`, `false`, `null`
52
- [MODEL_PROP_NAME_SORT_DESC]: makeProp(PROP_TYPE_BOOLEAN, false),
91
+ [MODEL_PROP_NAME_SORT_DESC]: {
92
+ type: PROP_TYPE_BOOLEAN,
93
+ required: false,
94
+ default: false
95
+ },
53
96
  // This prop is named incorrectly
54
97
  // It should be `initialSortDirection` as it is a bit misleading
55
98
  // (not to mention it screws up the ARIA label on the headers)
56
- sortDirection: makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, value => {
57
- return SORT_DIRECTIONS.includes(value)
58
- }),
99
+ sortDirection: {
100
+ type: PROP_TYPE_STRING,
101
+ required: false,
102
+ default: SORT_DIRECTION_ASC,
103
+ validator: value => SORT_DIRECTIONS.includes(value)
104
+ },
59
105
  // Place the sorting icon on the left of the header cells
60
- sortIconLeft: makeProp(PROP_TYPE_BOOLEAN, false),
106
+ sortIconLeft: {
107
+ type: PROP_TYPE_BOOLEAN,
108
+ required: false,
109
+ default: false
110
+ },
61
111
  // Sort null and undefined to appear last
62
- sortNullLast: makeProp(PROP_TYPE_BOOLEAN, false)
112
+ sortNullLast: {
113
+ type: PROP_TYPE_BOOLEAN,
114
+ required: false,
115
+ default: false
116
+ }
63
117
  }
64
118
 
65
119
  // --- 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
  export 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 ---